@charset "UTF-8";
/**
 * @file
 * CTA block: subtitle, title, description, cards, links and tables.
 */
/* ==========================================================================
   Layout fix
   ========================================================================== */
/* Let flex children shrink so wide content (tables) can't stretch the layout */
.subpage-wrapper > .flex-auto {
  min-width: 0; }

/* ==========================================================================
   Block
   ========================================================================== */
.cta-block__inner {
  border-bottom: 1px solid #e5e7eb;
  /* separator line under each section */ }

/* Small uppercase label above the title */
.cta-block__subtitle {
  margin: 0 0 1.25rem;
  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #3a83c4; }

.cta-block__title {
  margin: 0 0 2.5rem;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.4;
  color: #000; }

/* ==========================================================================
   Description (rich text)
   ========================================================================== */
.cta-block__description {
  margin: 0 0 2.5rem;
  font-size: 1.125rem;
  line-height: 1.6;
  color: #222; }

.cta-block__description > * + * {
  margin-top: 2rem; }

.cta-block__description p {
  margin: 0; }

.cta-block__description strong {
  font-weight: 700; }

.cta-block__description h3 {
  margin: 2rem 0 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6; }

.cta-block__description h3 + p {
  margin-top: 1.5rem; }

.cta-block__description ul {
  margin: 2rem 0 0;
  padding: 0;
  list-style: none; }

.cta-block__description li {
  position: relative;
  margin: 0;
  padding-left: 2.5rem; }

.cta-block__description li + li {
  margin-top: 2rem; }

/* Custom bullet */
.cta-block__description li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0.25rem;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #222; }

/* Spacing inside each list item */
.cta-block__description li > * + * {
  margin-top: 1.5rem; }

/* Small gray note */
.cta-block__description small {
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  color: #8a97a6; }

/* ==========================================================================
   Cards
   ========================================================================== */
/* Column count is set by the template (2 or 3) */
.cards-grid {
  display: -ms-grid;
  display: grid;
  gap: 1.5rem;
  margin-top: 3rem; }

.cards-grid--cols-2 {
  -ms-grid-columns: (1fr)[2];
      grid-template-columns: repeat(2, 1fr); }

.cards-grid--cols-3 {
  -ms-grid-columns: (1fr)[3];
      grid-template-columns: repeat(3, 1fr); }

.card {
  height: 100%;
  /* equal height cards in the same row */
  padding: 3rem 2.5rem;
  border: 4px solid #eceef1;
  background: #fff; }

.card__subtitle {
  margin: 0 0 1rem;
  font-size: 1rem;
  letter-spacing: 0.05em;
  color: #3a83c4; }

.card__title {
  margin: 0 0 1.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  color: #000; }

.card__description {
  font-size: 1rem;
  line-height: 1.6;
  color: #222; }

.card__description > * + * {
  margin-top: 1.5rem; }

.card__description p {
  margin: 0; }

.card__description a {
  color: #5a7d99;
  text-decoration: underline;
  word-break: break-all;
  /* long email addresses must not overflow */ }

.card__description ul {
  margin: 0;
  padding: 0;
  list-style: none; }

.card__description li {
  position: relative;
  padding-left: 2.5rem;
  font-weight: 400;
  font-size: 20px;
  line-height: 140%;
  letter-spacing: -0.005em; }

.card__description li + li {
  margin-top: 1.5rem; }

.card__description li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0.25rem;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #222; }

/* ==========================================================================
   Links (buttons)
   ========================================================================== */
/* Target the direct parent of the link items (field wrapper) */
.cta-block__links,
.cta-block :has(> .cta-links--item) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 1rem 1.5rem; }

/* Override the theme's primary button for this block only */
.cta-block .cta-links--item a {
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 19rem;
  min-height: 3.75rem;
  padding: 0.75rem 3rem;
  border: 0;
  border-radius: 9999px;
  background: #eceef1;
  color: #7b8794 !important;
  /* beat Tailwind's text-[#fff] utility */
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s; }

.cta-block .cta-links--item a:hover,
.cta-block .cta-links--item a:focus-visible {
  background: #3a83c4;
  color: #fff !important; }

/* ==========================================================================
   Table (any table inside a CTA block)
   ========================================================================== */
.cta-block table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
  line-height: 1.4;
  text-align: center; }

.cta-block th,
.cta-block td {
  padding: 1rem 0.75rem;
  border: 0;
  vertical-align: middle; }

/* Header – first row: dark blue */
.cta-block thead tr:first-child th {
  background: #24527a;
  color: #fff;
  font-weight: 700; }

/* Vertical separators between year groups */
.cta-block thead tr:first-child th + th {
  border-left: 1px solid #3d6a91; }

/* Header – second row: light gray (東京 / 中部) */
.cta-block thead tr:nth-child(2) th {
  background: #eceef1;
  color: #333;
  font-weight: 500; }

/* Body: row label */
.cta-block tbody th {
  color: #7b8794;
  font-weight: 400; }

/* Body: values */
.cta-block tbody td {
  color: #7b8794;
  font-size: 0.875rem;
  font-weight: 700; }

/* CKEditor 5 wraps tables in <figure class="table"> */
.cta-block figure.table {
  margin: 0;
  max-width: 100%;
  overflow-x: auto; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1023px) {
  .cards-grid--cols-3 {
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr); }
  /* Table becomes its own horizontal scroll container */
  .cta-block table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; }
  /* Keep cells on one line so the table scrolls instead of squashing */
  .cta-block th,
  .cta-block td {
    white-space: nowrap; } }

/* Table wrapper (added by js/table-scroll.js) */
.cta-block .table-scroll {
  max-width: 100%;
  overflow-x: auto;
  /* fallback when smooth-scrollbar is not present */ }

/* smooth-scrollbar content box must be as wide as the table */
.cta-block .table-scroll .scroll-content {
  display: inline-block;
  min-width: 100%; }

@media (max-width: 1023px) {
  /* Give the table a real width so it overflows and scrolls */
  .cta-block .table-scroll table {
    min-width: 48rem; }
  .cta-block th,
  .cta-block td {
    white-space: nowrap; } }

@media (max-width: 767px) {
  .cta-block__inner {
    padding: 4rem 0 3rem; }
  .cta-block__title {
    margin-bottom: 1.5rem;
    font-size: 1.375rem; }
  .cta-block__description {
    margin-bottom: 2rem;
    font-size: 1rem; }
  .cards-grid--cols-2,
  .cards-grid--cols-3 {
    -ms-grid-columns: 1fr;
        grid-template-columns: 1fr; }
  .card {
    padding: 2rem 1.5rem; }
  .cta-block .cta-links--item {
    width: 100%; }
  .cta-block .cta-links--item a {
    min-width: 0;
    width: 100%;
    padding: 0.75rem 1.5rem; } }
