@charset "UTF-8";
/* サイトの配置を調整する。文字・色・操作部品はGYOMU-UIの定義を使う。 */
.gm.site-ui {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  --gm-content-width: 65rem;
  --gm-scroll-offset: 1rem;
  font-size: 100%;
  --gm-navigation-bg: #e5eaf0;
  --gm-background: #f0f3f6;
  --gm-border: #c4ceda;
  --gm-brand-soft: #dce8fa;
}
.gm.site-ui[data-mode='dark'] {
  --gm-navigation-bg: #101720;
  --gm-background: #141c27;
  --gm-border: #46566a;
  --gm-brand-soft: #30415b;
}
.site-ui body {
  margin: 0;
  min-width: 0;
  font-size: var(--gm-text-size);
}
.site-ui .container {
  width: min(var(--gm-content-width), calc(100% - 3rem));
  margin-inline: auto;
}
.site-ui a {
  overflow-wrap: anywhere;
}
.site-ui .small {
  font-size: var(--gm-meta-size);
  color: var(--gm-muted);
}
.site-ui .skip-link {
  position: absolute;
  z-index: 50;
  top: -10rem;
  left: 1rem;
  padding: 0.5rem;
  background: var(--gm-surface);
}
.site-ui .skip-link:focus {
  top: 0.5rem;
}
.site-ui .site-header {
  background: var(--gm-navigation-bg);
}
.site-ui .header-inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  min-height: 4rem;
  padding-block: 0.75rem;
}
.site-ui .brand {
  color: var(--gm-text);
  font-size: var(--gm-title-size);
  font-weight: 700;
  text-decoration: none;
  line-height: var(--gm-title-line-height);
}
.site-ui .brand:hover {
  text-decoration: underline;
}
.site-ui .header-tools {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-inline-start: auto;
  order: 2;
}
.gm.site-ui .gm-mode-tooltip {
  padding: 0.125rem 0.375rem;
  font-size: var(--gm-meta-size);
  line-height: 1.5;
}
.site-ui .site-nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-inline-start: auto;
  font-size: var(--gm-label-size);
}
.site-ui .site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: var(--gm-button-height);
  padding: 0.125rem 0.5rem;
  color: var(--gm-text);
  text-decoration: none;
}
.site-ui .site-nav a:hover {
  background: var(--gm-surface);
  text-decoration: underline;
}
.site-ui .site-nav a[aria-current='page'] {
  background: var(--gm-brand-soft);
  color: var(--gm-brand);
  font-weight: 700;
}
.site-ui .menu-toggle {
  display: none;
}
.site-ui .home-content {
  padding-block: 1.5rem 2rem;
}
.site-ui .home-columns {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(15rem, 1fr);
  gap: 3rem;
  margin-top: 1rem;
}
.site-ui .home-main,
.site-ui .home-aside {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 1.5rem;
}
.site-ui .home-aside {
  align-self: start;
  padding: 1rem;
  background: var(--gm-background);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius);
}
.site-ui .home-aside p + p {
  margin-top: 0.5rem;
}
.site-ui .home-aside .gm-link {
  margin-top: 0.25rem;
}
.site-ui .course-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  background: var(--gm-background);
  padding: 0.75rem;
}
.site-ui .course-entry h3 {
  margin: 0 0 0.25rem;
}
.site-ui .course-description {
  margin-block: 0.5rem;
}
.site-ui .course-domains {
  margin: 0.75rem 0 0;
  font-size: var(--gm-label-size);
}
.site-ui .course-domains > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.375rem 0.75rem;
}
.site-ui .course-domains > div:nth-child(even) {
  background: var(--gm-background);
}
.site-ui .course-domains dt {
  min-width: 0;
}
.site-ui .course-domains dd {
  margin: 0;
  flex: none;
  font-variant-numeric: tabular-nums;
  color: var(--gm-muted);
}
.site-ui .section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.site-ui .section-heading h2 {
  margin: 0;
}
.site-ui .breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: var(--gm-meta-size);
  color: var(--gm-muted);
  padding-block: 1rem 0.5rem;
}
.site-ui .breadcrumbs a {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
}
.site-ui .page-hero {
  padding-block: 1rem 0.5rem;
}
.site-ui .page-hero > .container {
  max-width: 48rem;
}
.site-ui .page-hero .lead {
  margin-top: 0.5rem;
  font-size: var(--gm-text-size);
  color: var(--gm-muted);
}
.site-ui .page-hero .actions {
  margin-top: 0.5rem;
}
.site-ui .page-body {
  padding-block: 0.5rem 2rem;
}
.site-ui .prose {
  max-width: 48rem;
  margin-inline: auto;
  min-width: 0;
}
.site-ui .prose > p,
.site-ui .prose > ul,
.site-ui .prose > ol {
  margin-block: 0.75rem;
}
.site-ui .prose h2 {
  margin-block: 1.5rem 0.5rem;
}
.site-ui .prose h2:first-child {
  margin-top: 0.5rem;
}
.site-ui .prose h3 {
  margin-block: 1rem 0.5rem;
}
.site-ui .prose li + li {
  margin-top: 0.375rem;
}
.site-ui .prose ul,
.site-ui .prose ol {
  padding-inline-start: 1.5rem;
}
.site-ui .prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: var(--gm-label-size);
}
.site-ui .prose pre {
  margin-block: 1rem;
  padding: 1rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  tab-size: 2;
  background: var(--gm-background);
  font-size: var(--gm-label-size);
  line-height: 1.8;
}
.site-ui .prose :not(pre) > code {
  padding: 0.125rem 0.25rem;
  background: var(--gm-background);
}
.site-ui .sample-question {
  margin-block: 1.5rem;
  scroll-margin-top: 5rem;
}
.site-ui .sample-question p {
  margin-block: 0.75rem;
}
.site-ui .sample-question .sample-choices {
  list-style: none;
  padding: 0;
}
.site-ui .sample-choices li {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}
.site-ui .sample-choices code {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  min-width: 0;
}
.site-ui .sample-answer {
  margin-block: 1rem;
  background: var(--gm-background);
}
.site-ui .sample-answer summary {
  padding: 0.75rem;
  cursor: pointer;
  font-weight: 600;
  min-height: 2.75rem;
}
.site-ui .sample-explanation {
  padding: 0 0.75rem 0.75rem;
}
.site-ui .sample-explanation > :last-child {
  margin-bottom: 0;
}
.site-ui .prose .callout,
.site-ui .note-box {
  margin-block: 1rem;
  padding: 0.75rem;
  background: var(--gm-background);
}
.site-ui .callout p {
  margin-top: 0.5rem;
}
.site-ui .table-wrap {
  overflow: auto;
  max-height: min(28rem, 60dvh);
  margin-block: 1rem;
  scroll-padding: 1rem;
}
.site-ui .prose table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--gm-label-size);
}
.site-ui .prose th,
.site-ui .prose td {
  padding: 0.5rem;
  vertical-align: top;
  text-align: left;
}
.site-ui .prose th {
  position: sticky;
  top: 0;
  background: var(--gm-background);
  color: var(--gm-text);
}
.site-ui .prose tbody tr:nth-child(even) {
  background: var(--gm-background);
}
.site-ui .domain-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-block: 1rem;
}
.site-ui .domain-item {
  font-size: var(--gm-label-size);
}
.site-ui .domain-item strong {
  display: block;
  margin-bottom: 0.25rem;
}
.site-ui .domain-item span {
  font-size: var(--gm-meta-size);
  color: var(--gm-muted);
}
.site-ui .article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: var(--gm-meta-size);
  color: var(--gm-muted);
}
.site-ui .toc {
  margin-block: 1rem;
  padding: 0.75rem;
  background: var(--gm-background);
}
.site-ui .toc p {
  font-size: var(--gm-label-size);
  font-weight: 600;
}
.site-ui .toc ol {
  margin: 0.5rem 0 0;
}
.site-ui .toc a {
  min-height: 1.5rem;
  display: inline-flex;
  align-items: center;
  font-size: var(--gm-label-size);
}
.site-ui .source-list,
.site-ui .source-list a {
  font-size: var(--gm-meta-size);
}
.site-ui .related {
  margin-top: 1.5rem;
  padding: 0.75rem;
  background: var(--gm-background);
}
.site-ui .related .small {
  margin-top: 0.5rem;
}
.site-ui .actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.site-ui .text-link {
  font-size: var(--gm-label-size);
}
.site-ui .section {
  padding-block: 1rem 1.5rem;
}
.site-ui .section.tint {
  background: var(--gm-background);
}
.site-ui .contact-form {
  display: grid;
  gap: 1rem;
  margin-block: 1.5rem;
  max-width: 38rem;
}
.site-ui .contact-form .actions {
  margin-top: 0;
}
.site-ui .contact-form .gm-field > label {
  font-weight: 600;
}
.site-ui .contact-form .gm-textarea {
  min-height: 9rem;
}
.site-ui .contact-destination {
  overflow-wrap: anywhere;
}
.site-ui .form-status {
  font-size: var(--gm-meta-size);
  color: var(--gm-muted);
}
.site-ui .form-status.gm-error-text {
  color: var(--gm-error);
}
.site-ui .form-status:empty {
  display: none;
}
.site-ui .no-script {
  padding: 0.75rem;
  background: var(--gm-background);
}
.site-ui .site-footer {
  padding-block: 1.25rem;
  background: var(--gm-navigation-bg);
}
.site-ui .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: var(--gm-meta-size);
}
.site-ui .footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
}
.site-ui .footer-note {
  margin-top: 0.75rem;
  font-size: var(--gm-meta-size);
  color: var(--gm-muted);
}
@media (width <= 800px) {
  .site-ui .header-inner {
    gap: 0.5rem 1rem;
  }
  .site-ui .header-tools {
    order: 0;
  }
  .site-ui .menu-toggle {
    display: inline-flex;
  }
  .site-ui .site-nav {
    width: 100%;
    margin: 0;
    padding-top: 0.5rem;
  }
  .site-ui.js-ready .site-nav {
    display: none;
  }
  .site-ui.js-ready .site-nav.is-open {
    display: flex;
  }
  .site-ui .home-columns {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }
  .site-ui .home-aside {
    gap: 1rem;
  }
}
@media (width <= 400px) {
  .site-ui .container {
    width: calc(100% - 2rem);
  }
  .site-ui .header-inner {
    gap: 0.5rem;
  }
  .site-ui .domain-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (any-pointer: coarse) {
  .site-ui .site-nav a,
  .site-ui .footer-links a,
  .site-ui .toc a,
  .site-ui .breadcrumbs a {
    min-height: 2.75rem;
  }
}
@media print {
  .site-ui .site-header,
  .site-ui .site-footer,
  .site-ui .actions,
  .site-ui .contact-form {
    display: none;
  }
  .site-ui .container {
    width: 100%;
  }
  .site-ui .home-columns {
    display: block;
  }
  .site-ui .table-wrap {
    max-height: none;
    overflow: visible;
  }
  .site-ui .prose th {
    position: static;
  }
}

/* 紹介ページの広告を演習の操作部品と分離する。広告が未設定なら表示しない。 */
[data-ad-placement] {
  margin-block: 2rem;
}
.ad-settings {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: var(--gm-label-size);
}
.ad-settings p {
  flex-basis: 100%;
}
.ad-label {
  margin-block: 1rem 0.25rem;
  color: var(--gm-muted);
  font-size: var(--gm-meta-size);
}
.adsbygoogle {
  min-height: 100px;
  max-width: 100%;
}
