/* Shared reading style, matched to requestgroup.jp. Keep print and slide layouts intact. */
@font-face {
  font-family: "Request Brand Mincho";
  src: url("/assets/request-proposal-regular.woff") format("woff");
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
}


@media screen {
  :root {
    --request-font: Georgia, "游明朝", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "Request Brand Mincho", Meiryo, serif;
    --sans: var(--request-font);
    --serif: var(--request-font);
    --ink: #001858;
    --deep: #001858;
    --muted: #526176;
    --paper: #fff;
    --bg: #fff;
    --warm: #f5f7f9;
    --wash: #f5f7f9;
    --line: #d7dfe6;
    --gold: #536b8a;
    --gold-light: #f2f5f8;
    --blue-light: #f2f5f8;
    --radius: 4px;
    --shadow: none;
  }

  body { font-family: var(--request-font); font-size: 18px; line-height: 1.95; background: #fff; color: var(--ink); }
  button, input, select, textarea, .entry-number span { font-family: var(--request-font); }
  h1, h2, h3, h4, h5, h6 { font-family: var(--request-font); font-weight: 500 !important; letter-spacing: .025em; text-wrap: balance; }
  strong, b, .button, summary, dt, label { font-weight: 500 !important; }
  h1, h2, h3, h4, p, li, dd, a, button { line-break: strict; }
  :where(p, li, dd) { overflow-wrap: anywhere; }
  a, button, input, select, textarea { touch-action: manipulation; }
  button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline-color: #536b8a;
  }
  input, textarea, select { accent-color: #001858; }
  input:focus, textarea:focus, select:focus { outline-color: #536b8a; }
  .shell { max-width: 1180px; }
  .header { background: #fffffff5; border-color: var(--line); }
  .brand { font-weight: 500; font-size: 20px; }
  .brand small { font-size: 12px; }
  .brand-symbol i { border-radius: 1px; }
  .header nav a, .header .button.small { font-size: 15px; }
  .button { border-radius: 3px; box-shadow: none !important; font-weight: 500; }
  .button.primary { background: var(--ink); }
  .button.primary:hover { background: #203b6c; }
  .button.secondary { background: #edf2f7; border: 1px solid #b9c7d6; }
  .button.quiet { background: #fff; }
  .hero { padding-block: 76px 70px; gap: 6%; }
  .hero h1 { color: var(--ink); font-size: clamp(34px, 3.4vw, 49px); letter-spacing: .025em; line-height: 1.7; }
  .hero h1 em { background: none; }
  .hero-intro, .hero .hero-intro { font-size: 18px; line-height: 1.95; color: #344762; }
  .eyebrow { color: var(--muted); font-weight: 400; }
  .small-line { background: #7b8ba3; }
  .hero-note { font-size: 16px; line-height: 1.85; }
  .hero-actions .button { font-size: 17px; }
  .hero-visual { transform: none; box-shadow: 9px 10px 0 #f0f3f6; border-color: var(--line); border-radius: 2px; }
  .preview-steps > div:last-child { background: var(--blue-light); border-color: #90a1b1; }
  .between span { color: #526176; border-color: #b3bfce; }
  .dot { background: #536b8a; }
  .paper-result { background: #f5f7f9; }
  .outputs-strip { background: #f5f7f9; border-color: var(--line); }
  .strip-inner p, .strip-inner > span.strip-pdf { font-size: 15px; }
  .strip-inner > span { font-size: 16px; }
  .strip-inner > span::before { color: #536b8a; }
  .knowledge-section, .builder-section { background: #f5f7f9; border-color: var(--line); }
  .introduction > div > p:not(.eyebrow), .section-heading > div > p:not(.eyebrow), .knowledge-intro { font-size: 18px; line-height: 1.95; }
  .section-heading h2, .introduction h2, #training-types-title { font-size: 31px; line-height: 1.7; }
  .quick-start .section-heading h2 { text-wrap: pretty; }
  .hint, .evidence-note, .resource-card .limit { font-size: 16px; line-height: 1.9; }
  .text-link, .text-button, .reading-links a, .resource-card a { font-size: 16px; }
  .pill:hover:not(.active) { background: #f2f5f8; border-color: #536b8a; }
  .returning-plan, .plan-reuse, .review-guide, .design-note, .scope-callout, .followup-card {
    background: #f2f5f8; border-color: #b9c7d6; border-radius: 3px;
  }
  .returning-plan strong { font-weight: 500; }
  .quick-guide-open { background: #f2f5f8; border-color: var(--line); }
  .quick-guide-open:hover { background: #eaf0f6; border-color: #536b8a; }
  .publication-room-note { gap: 32px; }
  .publication-room-note a { font-weight: 500; }
  .publication-room-note p { font-size: 16px; }

  /* Two generous columns let readers compare the examples without narrow lines. */
  .training-types { padding-block: 44px 56px; }
  .catalog-group { margin-bottom: 44px; }
  .catalog-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 40px; }
  .catalog-group > h3 { font-size: 25px; border-color: #9aaac0; padding-bottom: 16px; }
  .catalog-card { padding: 28px 14px 32px; }
  .catalog-card h4 { font-size: 24px; line-height: 1.8; font-weight: 500; }
  .catalog-card-focus { font-size: 17px; line-height: 1.95; margin-bottom: 22px; }
  .catalog-card-facts dt { font-size: 16px; line-height: 1.9; font-weight: 500; color: #526176; margin-bottom: 5px; }
  .catalog-card-facts dd { font-size: 18px; line-height: 1.95; color: #253b5e; }
  .catalog-card-facts > div + div { margin-top: 20px; }
  .catalog-category.catalog-filter[aria-pressed=true], .catalog-filter[aria-pressed=true], .catalog-variant[aria-pressed=true] {
    background: #edf2f7; border-color: #536b8a;
  }
  .catalog-category-label, .catalog-filter-all[aria-pressed=true] { font-weight: 500; }
  #catalog-preview { background: #fff; border: 1px solid var(--line); border-top: 3px solid #536b8a; padding: 34px 36px; }
  #catalog-preview-title { font-size: 29px; line-height: 1.8; font-weight: 500; }
  .catalog-preview-context { max-width: 960px; margin-block: 28px; }
  .catalog-preview-context dt { font-size: 17px; font-weight: 500; }
  .catalog-preview-context dd { font-size: 18px; line-height: 1.95; }
  .catalog-preview-context > div { grid-template-columns: 9em minmax(0, 1fr); gap: 22px; margin-top: 16px; }
  .catalog-preview-conditions { font-size: 17px; background: #f2f5f8; border-color: #a2b2c5; margin-block: 24px 32px; }
  .catalog-preview-program { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .catalog-preview-program > li {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    grid-template-areas: "number number" "title title" "activities output" "goal output";
    column-gap: 40px; row-gap: 4px;
    align-items: start;
    padding: 28px 30px;
    border-color: var(--line);
  }
  .catalog-preview-program > li + li::before { content: none; }
  .catalog-session-number { grid-area: number; justify-self: start; background: #f2f5f8; border: 0; border-radius: 0; padding: 2px 13px; color: #526176; font-weight: 400; }
  .catalog-preview-program h4 { grid-area: title; font-size: 24px; line-height: 1.8; font-weight: 500; margin: 5px 0 16px; }
  .catalog-session-activities { grid-area: activities; margin: 0; }
  .catalog-session-activities > li, .catalog-session-output li { font-size: 18px; line-height: 1.95; margin-block: 7px; }
  .catalog-session-goal { grid-area: goal; margin: 10px 0 0; }
  .catalog-session-goal > summary { font-size: 17px; }
  .catalog-session-goal > p { font-size: 18px; line-height: 1.95; }
  .catalog-session-output { grid-area: output; margin: 0; padding: 5px 0 0 28px; border-top: 0; border-left: 1px solid var(--line); align-self: stretch; }
  .catalog-session-output > strong { font-size: 17px; font-weight: 500; }
  .catalog-preview-note, #catalog-status { font-size: 17px; }
  .catalog-pdf-row h3 { font-size: 22px; font-weight: 500; }
  .catalog-pdf-row p, .catalog-pdf-actions a, .catalog-pdf-actions .text-button { font-size: 16px; }
  .catalog-archive { background: #f5f7f9; }
  .resource-card > span, .resource-list span { color: #526176; font-size: 15px; }
  .resource-card p, .resource-list p { font-size: 17px; line-height: 1.95; }
  .field { font-size: 17px; }
  .field input, .field textarea, .field select { font-size: 17px; }
  .field small, .field-intro { font-size: 16px; line-height: 1.9; }
  .step-nav button.active { border-bottom-color: #536b8a; }
  .step-nav button.active span { background: #e8eef5; border-color: #b9c7d6; }
  .result-tabs button.active { border-bottom-color: #536b8a; font-weight: 500; }
  .report-card h4, .report-label, .step-eyebrow { color: #526176; }
  .live-aside { background: #f5f7f9; }
  .live-line { background: #a2b2c5; }
  .timeline-card:last-child .session-top { background: var(--blue-light); }
  .planning-flow, .planning-deliverables, .slides-transfer { background: #f5f7f9; border-color: var(--line); box-shadow: none; }
  .planning-flow-current, .planning-flow-next, .planning-step-number { font-weight: 500; }
  .planning-step-number { border-color: #a2b2c5; color: #526176; }
  .planning-flow-arrow { color: #71829b; }
  .planning-flow-next { background: #e8eef5; border-color: #a2b2c5; }
  .planning-flow-next:hover { background: #dfe8f2; border-color: #536b8a; }
  .quick-reaction:hover, .quick-reaction[aria-pressed=true] { background: #edf2f7; border-color: #536b8a; }
  .slides-transfer select { border-color: #b9c7d6; }

  /* The publication pages share the same reading identity. */
  .publication-header nav { font-size: 15px; }
  .publication-brand > span { font-size: 13px; }
  .publication-count, .publication-footer p, .publication-footer nav { font-size: 15px; }
  .practice-entry h3, .practice-entry.is-featured h3 { font-size: 23px; line-height: 1.85; }
  .practice-entry-copy > p:not(.entry-number), .approach-list p, .section-intro > p:last-child, .collection-heading > p { font-size: 17px; line-height: 1.95; }

  @media (max-width: 1050px) {
    .header nav { gap: 16px; }
    .header nav a { font-size: 14px; }
    .hero { gap: 35px; }
    .catalog-group-grid { gap: 24px; }
    .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 800px) {
    .catalog-preview-program > li { grid-template-columns: minmax(0, 1fr); grid-template-areas: "number" "title" "activities" "goal" "output"; padding: 25px; }
    .catalog-session-output { margin-top: 18px; padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--line); }
    .catalog-preview-context > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .publication-room-note { display: block; }
    .publication-room-note p { margin-top: 12px; }
  }
  @media (max-width: 680px) {
    body { font-size: 17px; }
    .shell { width: calc(100% - 40px); }
    .header-inner { gap: 12px; min-height: 82px; }
    .brand { font-size: 17px; gap: 10px; }
    .brand small { font-size: 10px; }
    .header nav > a { display: none; }
    .header .button.small { font-size: 15px; min-width: 96px; min-height: 48px; padding: 9px 10px; gap: 6px; }
    .header [data-entry-label="short"] { max-width: none; }
    .hero { padding-block: 42px 45px; }
    .hero h1 { font-size: clamp(29px, 7.5vw, 36px); line-height: 1.8; letter-spacing: .01em; }
    .hero-intro, .hero .hero-intro { font-size: 18px; }
    .hero-intro br { display: none; }
    .hero-actions .button { width: 100%; }
    .hero-visual { padding: 24px 22px; box-shadow: 6px 7px 0 #f0f3f6; }
    .paper-title h2 { font-size: 25px; }
    .section-heading h2, .introduction h2, #training-types-title { font-size: 27px; line-height: 1.85; }
    .training-types { padding-block: 32px 40px; }
    .catalog-group-grid, .resource-grid { grid-template-columns: minmax(0, 1fr); }
    .catalog-card { padding: 27px 0 32px; }
    .catalog-card h4 { font-size: 23px; }
    .catalog-card-facts dd { font-size: 17px; }
    .catalog-card .catalog-card-open { width: 100%; }
    #catalog-preview { padding: 25px 18px; }
    #catalog-preview-title { font-size: 25px; }
    .catalog-preview-program > li { padding: 22px 18px; }
    .catalog-preview-program h4 { font-size: 23px; }
    .catalog-preview-context dd, .catalog-session-activities > li, .catalog-session-output li, .catalog-session-goal > p { font-size: 17px; }
    .catalog-pdf-row h3 { font-size: 21px; }
    .catalog-preview-heading { display: block; }
    .catalog-preview-close { margin-top: 14px; }
    .quick-start > details { padding: 22px 18px; }
    .hero-note, .hint, .evidence-note { font-size: 16px; }
  }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
  @media (max-width: 480px) {
    .header .brand-symbol { display: none; }
    .header .brand { font-size: 16px; gap: 0; }
    .header .brand > span:last-child { text-wrap: pretty; }
    .header .brand small { font-size: 10px; }
  }
}

/* A scene first, a short choice next; the full explanation follows selection. */
@media screen {
  .hero.hero-scene-entry {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    gap: 20px 48px;
    padding-block: 45px 16px;
    align-items: center;
  }
  .hero-scene-entry .hero-copy { min-width: 0; }
  .hero-scene-entry h1 { font-size: clamp(32px, 3.15vw, 45px); line-height: 1.7; margin-bottom: 22px; }
  .hero-scene-entry .eyebrow { font-size: 15px; margin-bottom: 18px; }
  .hero-scene-entry .hero-intro { margin-bottom: 25px; line-height: 1.95; }
  .hero-scene-entry .hero-actions { gap: 10px; }
  .hero-scene-entry .hero-note { margin-top: 15px; }
  .hero-resume { display: none; }
  body:has(#returning-plan:not([hidden])) .hero-resume { display: inline-flex; font-size: 15px; padding-inline: 14px; }
  .hero-work-scene { min-width: 0; margin: 0 -30px 0 0; }
  .hero-work-scene img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: contain; display: block; }
  .hero-work-scene figcaption { font-size: 16px; color: var(--muted); text-align: center; padding: 12px 10px 0; }
  .explore-cue { grid-column: 1/-1; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-block: 20px 12px; margin-top: 12px; text-decoration: none; font-size: 17px; border-bottom: 1px solid var(--line); }
  .explore-cue > span:last-child { font-size: 24px; padding-right: 14px; }
  .saved-plan-access .returning-plan { margin: 12px 0 0; padding: 0 18px; border-left-width: 2px; }
  .saved-plan-access:has(#returning-plan[hidden]) { display: none; }
  #returning-plan-content.saved-plan-overview { border: 0; margin-top: 0; padding-top: 0; }
  #returning-plan-content.saved-plan-overview > summary { display: flex; align-items: center; gap: 18px; padding-block: 14px; }
  .saved-plan-caption, .saved-plan-expand { flex-shrink: 0; font-size: 15px; color: var(--muted); }
  .saved-plan-overview summary strong { font-size: 17px; line-height: 1.8; margin-right: auto; }
  .saved-plan-overview > .text-button { display: inline-block; margin: 8px 20px 18px 0; }
  .entry-utilities { display: flex; flex-wrap: wrap; gap: 12px 30px; align-items: start; padding-block: 12px; }
  .entry-utilities .quick-guide-open { border: 0; background: none; margin: 0; padding: 5px 0; min-height: 40px; font-size: 15px; }
  .entry-utilities .quick-guide-play { width: 24px; height: 24px; font-size: 10px; }
  .entry-utilities .quick-guide-sound { font-size: 13px; }
  .entry-file-tools { margin-left: auto; font-size: 15px; }
  .entry-file-tools > summary { min-height: 40px; padding-block: 5px; cursor: pointer; color: var(--muted); }
  .entry-file-tools .entry-import { margin-block: 12px 0; }
  #training-types { padding-top: 35px; }
  #training-types > .eyebrow { margin-bottom: 12px; }
  #training-types > p:not(.eyebrow):not(.training-method) { max-width: 850px; }
  .catalog-category-grid { gap: 16px; }
  .catalog-category.catalog-filter { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 16px 12px; min-height: 240px; border: 1px solid var(--line); }
  .catalog-category.catalog-filter[aria-pressed=true] { padding: 15px 11px; }
  .catalog-category-image { width: 100%; height: 135px; object-fit: contain; }
  .catalog-category-label { font-size: 20px; line-height: 1.7; }
  .catalog-category-examples { display: block; font-size: 14px; line-height: 1.8; color: var(--muted); }
  .catalog-category-count { display: block; font-size: 14px; color: var(--muted); margin-top: auto; }
  .catalog-group { margin-top: 30px; }
  .catalog-group-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
  .catalog-card { padding: 20px 0 26px; }
  .catalog-work-scene { margin-bottom: 16px; }
  .catalog-work-scene img { height: auto; aspect-ratio: 3/2; object-fit: contain; }
  .catalog-card h4 { font-size: 22px; line-height: 1.75; margin-bottom: 10px; text-wrap: pretty; }
  .catalog-card-focus { font-size: 17px; line-height: 1.85; margin-bottom: 18px; }
  .catalog-card .catalog-card-open { width: 100%; margin-top: auto; }
  .catalog-preview-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 30px; align-items: center; padding-bottom: 25px; border-bottom: 1px solid var(--line); }
  .catalog-preview-intro .catalog-preview-heading { display: block; margin-bottom: 0; }
  .catalog-preview-intro .catalog-preview-close { margin-top: 20px; }
  .catalog-preview-scene { margin: 0; }
  .catalog-preview-scene img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: contain; }
  .all-pdf-samples { margin-top: 28px; border: 1px solid var(--line); padding-inline: 22px; }
  .all-pdf-samples > summary { padding-block: 18px; font-size: 18px; }
  .visual-plan-sample { grid-column: 1/-1; width: 100%; margin-top: 20px; }
  .visual-plan-sample .hero-visual { margin: 24px auto; max-width: 560px; }
  .visual-plan-sample > summary { font-size: 17px; }
  @media (max-width: 1000px) {
    .catalog-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .catalog-category-label { font-size: 18px; }
    .catalog-category-examples { font-size: 13px; }
    .hero.hero-scene-entry { gap: 18px 25px; }
    .hero-work-scene { margin-right: 0; }
    .hero-scene-entry h1 { font-size: 36px; }
    .hero-scene-entry .hero-intro { font-size: 17px; }
    .hero-resume { width: 100%; }
  }
  @media (max-width: 760px) {
    .hero.hero-scene-entry { grid-template-columns: minmax(0, 1fr); padding-block: 30px 12px; }
    .hero-scene-entry h1 { font-size: clamp(29px, 7vw, 39px); margin-bottom: 18px; }
    .hero-scene-entry .hero-intro { font-size: 18px; line-height: 1.85; }
    .hero-scene-entry .desktop-break { display: none; }
    .hero-work-scene { max-width: 580px; width: 100%; margin-inline: auto; }
    .hero-work-scene img { max-height: 310px; }
    .hero-work-scene figcaption { padding-top: 6px; }
    .explore-cue { margin-top: 0; }
    #returning-plan-content.saved-plan-overview > summary { flex-wrap: wrap; gap: 4px 12px; }
    .saved-plan-caption { width: 100%; }
    .saved-plan-overview summary strong { flex: 1; font-size: 16px; }
    .saved-plan-expand { font-size: 14px; }
    .entry-utilities { gap: 6px 20px; padding-block: 10px; }
    .entry-file-tools { margin-left: 0; }
    .entry-utilities .quick-guide-sound { display: none; }
    #training-types { padding-top: 24px; }
    #training-types-title { font-size: 26px; }
    .catalog-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .catalog-category.catalog-filter { padding: 12px 9px; min-height: 225px; }
    .catalog-category.catalog-filter[aria-pressed=true] { padding: 11px 8px; }
    .catalog-category-image { height: 110px; }
    .catalog-category-label { font-size: 18px; text-wrap: balance; }
    .catalog-category-examples { font-size: 13px; }
    .catalog-preview-intro { grid-template-columns: minmax(0, 1fr); gap: 15px; }
    .catalog-preview-intro .catalog-preview-close { margin-top: 14px; }
    .catalog-preview-scene { max-width: 500px; }
    .catalog-preview-scene img { max-height: 260px; }
  }
  @media (max-width: 520px) {
    .hero-scene-entry .hero-actions .button { font-size: 17px; }
    .hero-scene-entry .hero-note { font-size: 15px; }
    .hero-work-scene img { max-height: 245px; }
    .hero-work-scene figcaption { font-size: 15px; }
    .catalog-group-grid { grid-template-columns: minmax(0, 1fr); }
    .catalog-work-scene img { max-height: 250px; }
    .catalog-card { padding-inline: 0; }
    .catalog-card h4 { font-size: 23px; }
    .all-pdf-samples { padding-inline: 16px; }
  }
}
