  :root {
    --oj2-navy: #0b3564;
    --oj2-navy-dark: #08294f;
    --oj2-blue: #2477b7;
    --oj2-sky: #eaf5fb;
    --oj2-orange: #f58a1f;
    --oj2-red: #df2f2f;
    --oj2-green: #168c6d;
    --oj2-purple: #7255b7;
    --oj2-text: #18314f;
    --oj2-muted: #5f738a;
    --oj2-line: #dce7ef;
    --oj2-bg: #f7f9fb;
    --oj2-white: #fff;
    --oj2-shadow: 0 10px 28px rgba(18, 58, 99, .09);
  }

  html { overflow-x: hidden; }
  body,
  button,
  input,
  select,
  textarea {
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Hiragino Sans",
      "Hiragino Kaku Gothic ProN",
      "Yu Gothic",
      "YuGothic",
      Meiryo,
      sans-serif;
  }

  body {
    margin: 0;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  img { display: block; max-width: 100%; height: auto; }

  /* Theme shell (header/footer) */
  .site-header { position: relative; z-index: 100; background: #fff; border-top: 4px solid var(--oj2-orange); box-shadow: 0 2px 12px rgba(8, 41, 79, .07); }
  .header-inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .site-branding { display: flex; flex-direction: column; line-height: 1.3; }
  .site-title { color: var(--oj2-navy); font-size: 22px; font-weight: 900; text-decoration: none; }
  .site-tagline { color: var(--oj2-muted); font-size: 11px; }
  .custom-logo { width: auto; max-height: 54px; }
  .menu { display: flex; align-items: center; gap: 24px; margin: 0; padding: 0; list-style: none; }
  .menu a { color: var(--oj2-navy); font-size: 14px; font-weight: 800; text-decoration: none; }
  .menu-toggle { display: none; }
  .site-footer { padding-top: 42px; color: #c6d3df; background: var(--oj2-navy-dark); }
  .site-footer,
  .site-footer *:not(.dashicons):not([class*="icon"]):not([class^="fa"]):not([class*=" fa"]) {
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Hiragino Sans",
      "Hiragino Kaku Gothic ProN",
      "Yu Gothic",
      "YuGothic",
      Meiryo,
      sans-serif;
  }
  .footer-grid { display: flex; justify-content: space-between; gap: 32px; }
  .footer-title { margin: 0; color: #fff; font-size: 20px; font-weight: 900; }
  .site-footer .menu a { color: #fff; }
  .footer-bottom { margin-top: 28px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.12); }
  .container { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
  .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .skip-link { position: fixed; top: -100px; left: 16px; z-index: 9999; }
  .skip-link:focus { top: 16px; }

  .oj2-home,
  .oj2-home * {
    box-sizing: border-box;
  }

  .oj2-home {
    width: 100%;
    color: var(--oj2-text);
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      "Hiragino Kaku Gothic ProN",
      "Hiragino Sans",
      "Yu Gothic",
      Meiryo,
      sans-serif;
    line-height: 1.75;
  }

  .oj2-home a {
    color: inherit;
    text-decoration: none;
  }

  .oj2-home h1,
  .oj2-home h2,
  .oj2-home h3 {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .oj2-home h3::before,
  .oj2-home h3::after {
    content: none !important;
  }

  .oj2-home .oj2-container {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
  }

  .oj2-home .oj2-section {
    padding: 46px 0;
  }

  .oj2-home .oj2-section--soft {
    background: var(--oj2-bg);
  }

  .oj2-home .oj2-section--articles {
    background:
      radial-gradient(
        circle at top right,
        rgba(56, 166, 189, .12),
        transparent 34%
      ),
      linear-gradient(
        180deg,
        #f2f9fc 0%,
        #f8fbfd 100%
      );
  }

  .oj2-home .oj2-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px !important;
    color: var(--oj2-navy-dark);
    font-size: clamp(24px, 3.4vw, 34px);
    line-height: 1.4;
  }

  .oj2-home .oj2-heading::before {
    content: "";
    width: 7px;
    height: 34px;
    flex: 0 0 auto;
    background: linear-gradient(180deg, var(--oj2-blue), var(--oj2-navy));
    border-radius: 999px;
  }

  /* HERO */
  .oj2-home .oj2-hero-wrap {
    padding: 16px 0 8px;
  }

  .oj2-home .oj2-hero {
    position: relative;
    overflow: hidden;
    min-height: 610px;
    padding: 52px;
    border-radius: 28px;
    background-image:
      linear-gradient(
        90deg,
        rgba(255, 255, 255, .97) 0%,
        rgba(255, 255, 255, .91) 34%,
        rgba(255, 255, 255, .44) 58%,
        rgba(255, 255, 255, .06) 100%
      ),
      var(--hero-image);
    background-size: cover;
    background-position: center;
    box-shadow: var(--oj2-shadow);
  }

  .oj2-home .oj2-hero-content {
    position: relative;
    z-index: 2;
    width: min(680px, 62%);
  }

  .oj2-home .oj2-badge {
    display: inline-flex;
    padding: 9px 17px;
    color: var(--oj2-navy);
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(36, 119, 183, .35);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 900;
  }

  .oj2-home .oj2-hero h1 {
    margin: 25px 0 18px !important;
    color: var(--oj2-navy-dark);
    font-size: clamp(44px, 5vw, 62px);
    line-height: 1.15;
    letter-spacing: .01em;
  }

  .oj2-home .oj2-hero h1 strong {
    color: var(--oj2-red);
    font-weight: 900;
    text-shadow:
      0 1px 2px rgba(255, 255, 255, .95),
      0 3px 12px rgba(255, 255, 255, .85);
  }

  .oj2-home .oj2-hero-title-line {
    display: block;
    white-space: nowrap;
  }

  .oj2-home .oj2-hero p {
    margin: 0;
    max-width: 620px;
    color: #304a63;
    font-size: 17px;
    font-weight: 600;
  }

  .oj2-home .oj2-actions {
    display: grid;
    width: min(520px, 100%);
    margin-top: 30px;
  }

  .oj2-home .oj2-btn {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 13px 22px;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 900;
    transition: transform .2s ease, box-shadow .2s ease;
  }

  .oj2-home .oj2-btn:hover {
    transform: translateY(-2px);
  }

  .oj2-home .oj2-btn--primary {
    color: #fff !important;
    background: linear-gradient(135deg, var(--oj2-navy-dark), var(--oj2-blue));
    box-shadow: 0 10px 24px rgba(11, 53, 100, .23);
  }

  /* UNIVERSITY CARDS */
  .oj2-home .oj2-university-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .oj2-home .oj2-university-card {
    position: relative;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    overflow: hidden;
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 23px;
    background: #fff;
    border: 1px solid var(--oj2-line);
    border-radius: 20px;
    box-shadow: 0 7px 22px rgba(18, 58, 99, .06);
    transition: transform .2s ease, box-shadow .2s ease;
  }

  /* Hover lift is desktop/pointer only. On touch Safari, an unconditional :hover
     can consume the first tap and require a second tap to follow the link. */
  @media (hover: hover) and (pointer: fine) {
    .oj2-home .oj2-university-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--oj2-shadow);
    }
  }

  .oj2-home .oj2-university-card::after {
    content: "";
    position: absolute;
    pointer-events: none;
    top: -44px;
    right: -44px;
    width: 135px;
    height: 135px;
    background: var(--card-soft);
    border-radius: 50%;
  }

  .oj2-home .oj2-type {
    position: relative;
    z-index: 1;
    align-self: flex-start;
    padding: 5px 10px;
    color: #315f88;
    background: #edf4f9;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
  }

  .oj2-home .oj2-university-card h3 {
    position: relative;
    z-index: 1;
    margin: 26px 0 12px !important;
    color: var(--oj2-navy-dark);
    font-size: 25px;
    line-height: 1.4;
  }

  .oj2-home .oj2-description {
    position: relative;
    z-index: 1;
    margin: 0 0 18px;
    color: var(--oj2-muted);
    font-size: 14px;
  }

  .oj2-home .oj2-card-link {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 15px;
    border-top: 1px solid var(--oj2-line);
    color: var(--card-color);
    font-size: 14px;
    font-weight: 900;
  }

  /* TOPICS */
  .oj2-home .oj2-topic-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }

  .oj2-home .oj2-topic {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 15px;
    color: var(--topic-color, var(--oj2-navy));
    background: #fff;
    border: 1px solid var(--oj2-line);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 900;
  }

  /* LATEST ARTICLES */
.oj2-home .oj2-section--latest {
  background:
    radial-gradient(
      circle at top left,
      rgba(245, 138, 31, .08),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      #fffaf4 0%,
      #fff 100%
    );
}

.oj2-home .oj2-latest-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}

.oj2-home .oj2-latest-header .oj2-heading {
  margin-bottom: 0 !important;
}

.oj2-home .oj2-latest-all {
  color: var(--oj2-blue) !important;
  font-size: 14px;
  font-weight: 900;
}

.oj2-home .oj2-latest-list {
  display: grid;
  gap: 12px;
}

.oj2-home .oj2-latest-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 34px;
  gap: 18px;
  align-items: center;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--oj2-line);
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(18, 58, 99, .06);
  transition:
    transform .2s ease,
    box-shadow .2s ease;
}

.oj2-home .oj2-latest-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--oj2-shadow);
}

.oj2-home .oj2-latest-date {
  display: grid;
  width: 92px;
  min-height: 70px;
  place-items: center;
  padding: 8px;
  color: #fff;
  background: linear-gradient(
    135deg,
    var(--oj2-navy),
    var(--oj2-blue)
  );
  border-radius: 15px;
  line-height: 1;
}

.oj2-home .oj2-latest-month {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}

.oj2-home .oj2-latest-date strong {
  font-size: 26px;
}

.oj2-home .oj2-latest-content h3 {
  margin: 6px 0 4px !important;
  color: var(--oj2-navy-dark);
  font-size: 18px;
  line-height: 1.55;
}

.oj2-home .oj2-latest-content p {
  margin: 0;
  color: var(--oj2-muted);
  font-size: 13px;
}

.oj2-home .oj2-latest-content .oj2-tags {
  margin-bottom: 0;
}

.oj2-home .oj2-latest-arrow {
  color: var(--oj2-orange);
  font-size: 24px;
  font-weight: 900;
}

.oj2-home .oj2-latest-main {
  width: 100%;
  min-width: 0;
}

.oj2-home .oj2-section--past-exams {
  background: var(--oj2-sky);
}

.oj2-home .oj2-past-exams {
  display: grid;
  min-width: 0;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 28px 30px;
  color: var(--oj2-text);
  background: #fff;
  border: 1px solid var(--oj2-line);
  border-radius: 20px;
  box-shadow: 0 8px 22px rgba(18, 58, 99, .06);
}

.oj2-home .oj2-past-exams-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  margin: 0;
  color: #f26a00;
  background: #fff1e5;
  border-radius: 50%;
  font-size: 24px;
}

.oj2-home .oj2-past-exams-content {
  min-width: 0;
}

.oj2-home .oj2-past-exams p {
  margin: 0;
  color: var(--oj2-muted);
  font-size: 13px;
  line-height: 1.75;
}

.oj2-home .oj2-past-exams ul {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.oj2-home .oj2-past-exams li {
  position: relative;
  padding-left: 20px;
  color: var(--oj2-navy);
  font-size: 13px;
  font-weight: 800;
}

.oj2-home .oj2-past-exams li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--oj2-blue);
  font-weight: 900;
}

.oj2-home .oj2-past-exams-button {
  display: flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 11px 18px;
  color: #fff !important;
  background: linear-gradient(135deg, #ff8a1f, #f26a00);
  border-radius: 999px;
  box-shadow: 0 9px 22px rgba(11, 53, 100, .2);
  font-size: 14px;
  font-weight: 900;
  white-space: nowrap;
}

.oj2-home .oj2-past-exams-button:hover,
.oj2-home .oj2-past-exams-button:focus-visible {
  background: linear-gradient(135deg, #f57c00, #df5d00);
  transform: translateY(-2px);
}

  /* ARTICLES */
  .oj2-home .oj2-article-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .oj2-home .oj2-article-card {
    position: relative;
    display: flex;
    min-height: 250px;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--oj2-line);
    border-radius: 20px;
    box-shadow: 0 10px 26px rgba(18, 58, 99, .09);
    transition:
      transform .2s ease,
      box-shadow .2s ease,
      border-color .2s ease;
  }

  .oj2-home .oj2-article-card::before {
    content: "";
    display: block;
    width: 100%;
    height: 8px;
    background: linear-gradient(90deg, var(--oj2-navy), #38a6bd);
  }

  .oj2-home .oj2-article-card:hover {
    transform: translateY(-3px);
    border-color: rgba(36, 119, 183, .35);
    box-shadow: var(--oj2-shadow);
  }

  .oj2-home .oj2-article-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px;
  }

  .oj2-home .oj2-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 16px;
  }

  .oj2-home .oj2-tags span {
    padding: 5px 10px;
    color: var(--oj2-blue);
    background: var(--oj2-sky);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
  }

  .oj2-home .oj2-article-card h3 {
    margin: 0 !important;
    color: var(--oj2-navy-dark);
    font-size: 19px;
    line-height: 1.6;
  }

  .oj2-home .oj2-article-card p {
    margin: 14px 0 18px;
    color: var(--oj2-muted);
    font-size: 13px;
    line-height: 1.8;
  }

  .oj2-home .oj2-more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 14px;
    color: var(--oj2-orange);
    border-top: 1px solid var(--oj2-line);
    font-size: 13px;
    font-weight: 900;
  }

  /* 14インチ級PCでの見出し崩れ対策 */
  @media (max-width: 1180px) and (min-width: 701px) {
    .oj2-home .oj2-hero {
      min-height: 560px;
      padding: 42px;
    }

    .oj2-home .oj2-hero-content {
      width: min(640px, 64%);
    }

    .oj2-home .oj2-hero h1 {
      font-size: clamp(42px, 4.6vw, 56px);
    }

    .oj2-home .oj2-hero p {
      font-size: 15px;
    }
  }

  @media (max-width: 960px) and (min-width: 701px) {
    .oj2-home .oj2-university-grid,
    .oj2-home .oj2-article-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .oj2-home .oj2-topic-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  /* SMARTPHONE */
  @media (max-width: 700px) {
    .oj2-home .oj2-container {
      width: calc(100% - 24px);
    }

    .oj2-home .oj2-section {
      padding: 24px 0;
    }

    .oj2-home .oj2-heading {
      gap: 9px;
      margin: 0 0 14px !important;
      padding: 0 !important;
      font-size: 22px;
      background: none !important;
    }

    .oj2-home .oj2-heading::before {
      width: 6px;
      height: 28px;
    }

    .oj2-home .oj2-hero-wrap {
      padding: 0;
    }

    .oj2-home .oj2-hero {
      min-height: 0;
      padding: 20px 16px 22px;
      outline: none;
      border-radius: 18px;
      background-image:
        linear-gradient(
          180deg,
          rgba(255, 255, 255, .55) 0%,
          rgba(255, 255, 255, .72) 46%,
          rgba(255, 255, 255, .94) 100%
        ),
        var(--hero-image);
      background-size: cover;
      background-position: 67% center;
    }

    .oj2-home .oj2-hero-content {
      width: 100%;
      min-width: 0;
      max-width: 100%;
    }

    .oj2-home .oj2-badge {
      padding: 6px 10px;
      font-size: 11px;
      line-height: 1.5;
    }

    .oj2-home .oj2-hero-title-line {
      display: block;
      white-space: nowrap;
    }

    .oj2-home .oj2-hero h1 {
      margin: 17px 0 12px !important;
      max-width: 100%;
      font-size: clamp(25px, 8.1vw, 31px);
      line-height: 1.18;
      letter-spacing: 0;
    }

    .oj2-home .oj2-hero p {
      font-size: 13px;
      line-height: 1.75;
    }

    .oj2-home .oj2-actions {
      width: 100%;
      margin-top: 18px;
    }

    .oj2-home .oj2-btn {
      min-height: 49px;
      padding: 10px 16px;
      font-size: 14px;
    }

    .oj2-home .oj2-university-grid,
    .oj2-home .oj2-article-grid {
      grid-template-columns: 1fr;
      gap: 10px;
    }

    .oj2-home .oj2-university-card {
      min-height: 0;
      padding: 17px;
      border-radius: 17px;
    }

    .oj2-home .oj2-university-card h3 {
      margin: 14px 0 10px !important;
      padding: 0 !important;
      font-size: 22px;
      line-height: 1.4;
      background: none !important;
      border: 0 !important;
    }

    .oj2-home .oj2-description {
      margin: 0 0 12px;
      font-size: 13px;
      line-height: 1.65;
    }

    .oj2-home .oj2-card-link {
      padding-top: 11px;
      font-size: 13px;
    }

    .oj2-home .oj2-topic-grid {
      grid-template-columns: 1fr 1fr;
      gap: 7px;
    }

    .oj2-home .oj2-topic {
      min-height: 44px;
      padding: 8px 7px;
      font-size: 11px;
    }

    .oj2-home .oj2-article-card {
      min-height: 0;
      border-radius: 16px;
    }

    .oj2-home .oj2-article-card::before {
      height: 5px;
    }

    .oj2-home .oj2-article-body {
      padding: 15px;
    }

    .oj2-home .oj2-tags {
      gap: 6px;
      margin-bottom: 11px;
    }

    .oj2-home .oj2-tags span {
      padding: 4px 8px;
      font-size: 11px;
    }

    .oj2-home .oj2-article-card h3 {
      font-size: 17px;
      padding: 0 !important;
      line-height: 1.62;
      background: none !important;
      border: 0 !important;
    }

    .oj2-home .oj2-article-card p {
      margin: 9px 0 12px;
      font-size: 12px;
      line-height: 1.7;
    }

    .oj2-home .oj2-more {
      padding-top: 11px;
      font-size: 12px;
    }
  }

@media (max-width: 700px) {
.oj2-home .oj2-latest-header {
  align-items: flex-end;
  margin-bottom: 13px;
}

.oj2-home .oj2-latest-all {
  font-size: 11px;
}

.oj2-home .oj2-latest-list {
  gap: 12px;
}

.oj2-home .oj2-latest-card {
  grid-template-columns: 74px minmax(0, 1fr) 20px;
  gap: 12px;
  min-height: 0;
  height: auto;
  padding: 14px 16px;
  border-radius: 15px;
}

.oj2-home .oj2-latest-date {
  width: 74px;
  height: 74px;
  min-height: 0;
  padding: 6px;
  border-radius: 12px;
}

.oj2-home .oj2-latest-month {
  font-size: 10px;
}

.oj2-home .oj2-latest-date strong {
  font-size: 29px;
}

.oj2-home .oj2-latest-title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 5px 0 0 !important;
  font-size: 14.5px;
  line-height: 1.4;
}

.oj2-home .oj2-latest-excerpt {
  display: none;
}

.oj2-home .oj2-latest-content .oj2-tags {
  gap: 4px;
}

.oj2-home .oj2-latest-content .oj2-tags span {
  padding: 3px 6px;
  font-size: 9px;
}

.oj2-home .oj2-latest-arrow {
  font-size: 18px;
  align-self: center;
  justify-self: end;
}

.oj2-home .oj2-past-exams {
  grid-template-columns: 1fr;
  gap: 0;
  padding: 18px;
  border-radius: 17px;
}

.oj2-home .oj2-past-exams-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 9px;
  font-size: 20px;
}

.oj2-home .oj2-past-exams p {
  margin-bottom: 0;
}

.oj2-home .oj2-past-exams ul {
  gap: 6px;
  margin-block: 0;
}

.oj2-home .oj2-past-exams li {
  line-height: 1.55;
}

.oj2-home .oj2-past-exams-button {
  width: 100%;
  min-height: 46px;
  margin-top: 16px;
  padding: 10px 16px;
}
}

  @media (max-width: 370px) {
    .oj2-home .oj2-topic-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 700px) {
    .header-inner { min-height: 64px; }
    .site-title { font-size: 18px; }
    .site-tagline { display: none; }
    .menu-toggle { display: block; padding: 7px; border: 0; background: transparent; }
    .menu-toggle > span:not(.screen-reader-text) { display: block; width: 25px; height: 2px; margin: 5px; background: var(--oj2-navy); }
    .primary-navigation { display: none; position: absolute; top: 100%; right: 0; left: 0; padding: 14px 16px; background: #fff; box-shadow: 0 10px 20px rgba(8,41,79,.12); }
    .primary-navigation.is-open { display: block; }
    .primary-navigation .menu { align-items: stretch; flex-direction: column; gap: 0; }
    .primary-navigation .menu a { display: block; padding: 10px; }
    .footer-grid { flex-direction: column; }
    .site-footer .menu { align-items: flex-start; flex-direction: column; gap: 8px; }
  }

/* ==================================================
   RYUKYU UNIVERSITY PAGE - restored from additional CSS backup
   ================================================== */
/* ==================================================
   おきなわ受験.com 共通デザインシステム＋大学トップ
   Version 1.0
   更新日：2026-07-19
   ================================================== */

:root {
  --oj-navy: #123a63;
  --oj-navy-dark: #0a2949;
  --oj-blue: #2f6fa3;
  --oj-sky: #eaf6fb;
  --oj-turquoise: #36a9b6;
  --oj-orange: #f49a38;
  --oj-orange-light: #fff3e4;
  --oj-yellow: #ffd66b;
  --oj-green: #4c9a78;
  --oj-purple: #6e5697;
  --oj-red: #a84e51;
  --oj-text: #243548;
  --oj-muted: #647487;
  --oj-line: #dce6ee;
  --oj-bg: #f6f9fb;
  --oj-white: #ffffff;
  --oj-shadow-sm: 0 7px 20px rgba(18, 58, 99, 0.06);
  --oj-shadow-md: 0 12px 32px rgba(18, 58, 99, 0.09);
  --oj-shadow-lg: 0 18px 40px rgba(10, 41, 73, 0.18);
  --oj-radius-sm: 14px;
  --oj-radius-md: 20px;
  --oj-radius-lg: 28px;
  --oj-content-width: 1120px;

  /* 琉大ページ用エイリアス */
  --ru-navy: var(--oj-navy);
  --ru-navy-dark: var(--oj-navy-dark);
  --ru-blue: var(--oj-blue);
  --ru-sky: var(--oj-sky);
  --ru-orange: var(--oj-orange);
  --ru-yellow: var(--oj-yellow);
  --ru-green: var(--oj-green);
  --ru-text: var(--oj-text);
  --ru-muted: var(--oj-muted);
  --ru-line: var(--oj-line);
  --ru-bg: var(--oj-bg);
  --ru-white: var(--oj-white);
  --ru-shadow: var(--oj-shadow-md);
  --ru-radius-lg: var(--oj-radius-lg);
  --ru-radius-md: var(--oj-radius-md);
  --ru-radius-sm: var(--oj-radius-sm);
}

/* ---------- ページ全体 ---------- */

.oj-site-page,
.oj-site-page *,
.ru-page,
.ru-page * {
  box-sizing: border-box;
}

.oj-site-page,
.ru-page {
  width: 100%;
  color: var(--oj-text);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Yu Gothic",
    Meiryo,
    sans-serif;
  line-height: 1.8;
}

.oj-site-page a,
.ru-page a {
  color: inherit;
  text-decoration: none;
}

.oj-container,
.ru-container {
  width: min(var(--oj-content-width), calc(100% - 40px));
  margin: 0 auto;
}

/* ---------- 共通セクション ---------- */

.oj-section,
.ru-section {
  padding: 70px 0;
}

.oj-section--soft,
.ru-section-soft {
  background: var(--oj-bg);
}

.oj-section--sky,
.ru-section-sky {
  background:
    radial-gradient(circle at top right, rgba(54, 169, 182, 0.12), transparent 30%),
    linear-gradient(180deg, #f4fbfd 0%, #ffffff 100%);
}

.oj-section-header,
.ru-section-header {
  margin-bottom: 32px;
}

.oj-kicker,
.ru-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: var(--oj-orange);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.oj-kicker::before,
.ru-kicker::before {
  content: "";
  width: 28px;
  height: 3px;
  background: var(--oj-orange);
  border-radius: 999px;
}

.oj-section-title,
.ru-section-title {
  margin: 0;
  color: var(--oj-navy-dark);
  font-size: clamp(26px, 4vw, 38px);
  line-height: 1.45;
}

.oj-section-description,
.ru-section-text {
  max-width: 760px;
  margin: 12px 0 0;
  color: var(--oj-muted);
  font-size: 15px;
}

/* ---------- 共通ボタン ---------- */

.oj-btn,
.ru-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 11px 21px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 900;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.oj-btn:hover,
.ru-button:hover {
  transform: translateY(-2px);
}

.oj-btn--primary,
.ru-button-primary {
  color: #fff !important;
  background: linear-gradient(135deg, var(--oj-navy-dark), var(--oj-blue));
  box-shadow: 0 9px 24px rgba(18, 58, 99, 0.23);
}

.oj-btn--secondary,
.ru-button-secondary {
  color: var(--oj-navy) !important;
  background: #fff;
  border: 1px solid var(--oj-line);
  box-shadow: var(--oj-shadow-sm);
}

/* ---------- 琉大 HERO ---------- */

.ru-hero {
  position: relative;
  overflow: hidden;
  padding: 68px 0 54px;
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 216, 111, 0.42), transparent 27%),
    radial-gradient(circle at 100% 15%, rgba(47, 111, 163, 0.2), transparent 28%),
    linear-gradient(135deg, #fffdf7 0%, #f3f9fc 55%, #ffffff 100%);
}

.ru-hero::after {
  content: "";
  position: absolute;
  top: -90px;
  right: -95px;
  width: 300px;
  height: 300px;
  border: 48px solid rgba(18, 58, 99, 0.06);
  border-radius: 50%;
}

.ru-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(330px, 0.8fr);
  gap: 45px;
  align-items: center;
}

.ru-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 20px;
  color: var(--ru-muted);
  font-size: 12px;
}

.ru-breadcrumb a {
  color: var(--ru-blue);
  font-weight: 800;
}

.ru-badge {
  display: inline-flex;
  padding: 6px 13px;
  margin-bottom: 16px;
  color: var(--ru-navy);
  background: var(--ru-sky);
  border: 1px solid #cbdfea;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}

.ru-hero-title {
  margin: 0;
  color: var(--ru-navy-dark);
  font-size: clamp(38px, 6vw, 66px);
  line-height: 1.18;
  letter-spacing: 0.01em;
}

.ru-hero-en {
  display: block;
  margin-top: 8px;
  color: var(--ru-blue);
  font-size: clamp(14px, 2vw, 18px);
  font-weight: 800;
  letter-spacing: 0.08em;
}

.ru-hero-text {
  max-width: 680px;
  margin: 22px 0 0;
  color: #455b70;
  font-size: clamp(15px, 2vw, 18px);
}

.ru-hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.ru-summary-card {
  padding: 26px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--ru-line);
  border-radius: var(--ru-radius-lg);
  box-shadow: var(--ru-shadow);
}

.ru-summary-title {
  margin: 0 0 16px;
  color: var(--ru-navy-dark);
  font-size: 18px;
  font-weight: 900;
}

.ru-summary-list {
  display: grid;
  gap: 11px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ru-summary-item {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 10px;
  padding-bottom: 11px;
  border-bottom: 1px solid var(--ru-line);
  font-size: 13px;
}

.ru-summary-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.ru-summary-label {
  color: var(--ru-muted);
  font-weight: 800;
}

.ru-summary-value {
  color: var(--ru-navy-dark);
  font-weight: 900;
}

/* ---------- QUICK LINKS ---------- */

.ru-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.ru-quick-card {
  display: grid;
  min-height: 112px;
  grid-template-columns: 1fr;
  align-content: center;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--ru-line);
  border-radius: 18px;
  box-shadow: var(--oj-shadow-sm);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ru-quick-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--oj-shadow-md);
}

.ru-quick-icon {
  font-size: 28px;
}

.ru-quick-title {
  display: block;
  margin-top: 8px;
  color: var(--ru-navy-dark);
  font-size: 15px;
  font-weight: 900;
}

.ru-quick-note {
  display: block;
  margin-top: 3px;
  color: var(--ru-muted);
  font-size: 11px;
  line-height: 1.5;
}

.ru-quick-text {
  min-width: 0;
}

.ru-quick-text strong,
.ru-quick-text small {
  display: block;
}

.ru-quick-text strong {
  color: var(--ru-navy-dark);
  font-size: 15px;
  font-weight: 900;
}

.ru-quick-text small {
  margin-top: 3px;
  color: var(--ru-muted);
  font-size: 11px;
  line-height: 1.5;
}

/* ---------- FACULTIES ---------- */

.ru-faculty-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 17px;
}

.ru-faculty-card {
  position: relative;
  overflow: hidden;
  display: flex;
  min-height: 220px;
  flex-direction: column;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--ru-line);
  border-radius: var(--ru-radius-md);
  box-shadow: var(--oj-shadow-sm);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.ru-faculty-card:hover {
  transform: translateY(-4px);
  border-color: #aec7da;
  box-shadow: var(--oj-shadow-md);
}

.ru-faculty-card::after {
  content: "";
  position: absolute;
  top: -48px;
  right: -48px;
  width: 125px;
  height: 125px;
  background: var(--faculty-soft, var(--ru-sky));
  border-radius: 50%;
}

.ru-faculty-tag {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  padding: 5px 9px;
  color: var(--faculty-color, var(--ru-navy));
  background: var(--faculty-soft, var(--ru-sky));
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.ru-faculty-title {
  position: relative;
  z-index: 1;
  margin: 17px 0 8px;
  color: var(--ru-navy-dark);
  font-size: 20px;
  line-height: 1.5;
}

.ru-faculty-text {
  position: relative;
  z-index: 1;
  margin: 0 0 18px;
  color: var(--ru-muted);
  font-size: 13px;
  line-height: 1.75;
}

.ru-faculty-link {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  margin-top: auto;
  color: var(--faculty-color, var(--ru-navy));
  font-size: 13px;
  font-weight: 900;
}

/* ---------- EXAM GUIDE ---------- */

.ru-exam-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
  gap: 22px;
}

.ru-exam-main,
.ru-exam-side {
  padding: 28px;
  background: #fff;
  border: 1px solid var(--ru-line);
  border-radius: var(--ru-radius-md);
  box-shadow: var(--oj-shadow-sm);
}

.ru-card-title {
  margin: 0 0 10px;
  color: var(--ru-navy-dark);
  font-size: 21px;
}

.ru-card-text {
  margin: 0;
  color: var(--ru-muted);
  font-size: 14px;
}

.ru-exam-menu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin-top: 21px;
}

.ru-exam-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 58px;
  padding: 13px 15px;
  background: var(--ru-bg);
  border: 1px solid var(--ru-line);
  border-radius: 14px;
  color: var(--ru-navy-dark);
  font-size: 13px;
  font-weight: 900;
  transition: background 0.2s ease, transform 0.2s ease;
}

.ru-exam-link:hover {
  transform: translateX(3px);
  background: var(--ru-sky);
}

.ru-attention {
  margin-top: 18px;
  padding: 14px 16px;
  color: #795018;
  background: #fff8e9;
  border: 1px solid #f0d8aa;
  border-radius: 14px;
  font-size: 12px;
}

.ru-side-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.ru-side-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  background: var(--ru-bg);
  border-radius: 13px;
  color: var(--ru-navy-dark);
  font-size: 13px;
  font-weight: 900;
}

.ru-side-icon {
  font-size: 20px;
}

/* ---------- CONTENT ---------- */

.ru-content-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ru-content-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--ru-line);
  border-radius: var(--ru-radius-md);
  box-shadow: var(--oj-shadow-sm);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.ru-content-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--oj-shadow-md);
}

.ru-content-visual {
  display: grid;
  min-height: 145px;
  place-items: center;
  background:
    radial-gradient(circle at top left, rgba(255, 216, 111, 0.42), transparent 35%),
    linear-gradient(135deg, var(--ru-navy-dark), var(--ru-blue));
  color: #fff;
  font-size: 48px;
}

.ru-content-body {
  padding: 20px;
}

.ru-content-label {
  display: inline-flex;
  padding: 4px 9px;
  color: var(--ru-blue);
  background: var(--ru-sky);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.ru-content-title {
  margin: 11px 0 8px;
  color: var(--ru-navy-dark);
  font-size: 17px;
  line-height: 1.6;
}

.ru-content-text {
  margin: 0 0 14px;
  color: var(--ru-muted);
  font-size: 12px;
  line-height: 1.75;
}

.ru-content-more {
  color: var(--ru-orange);
  font-size: 12px;
  font-weight: 900;
}

/* ---------- MESSAGE ---------- */

.ru-message {
  padding: 36px;
  background:
    radial-gradient(circle at top right, rgba(255, 216, 111, 0.18), transparent 28%),
    linear-gradient(135deg, var(--ru-navy-dark), var(--ru-navy), #245e87);
  border-radius: var(--ru-radius-lg);
  color: #fff;
  box-shadow: var(--oj-shadow-lg);
}

.ru-message-title {
  margin: 0;
  color: #fff;
  font-size: clamp(24px, 4vw, 35px);
  line-height: 1.5;
}

.ru-message-text {
  max-width: 780px;
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
}

.ru-message-button {
  margin-top: 22px;
  color: var(--ru-navy-dark) !important;
  background: var(--ru-yellow);
}

/* ---------- RESPONSIVE ---------- */

@media (max-width: 960px) {
  .ru-hero-inner,
  .ru-exam-wrap {
    grid-template-columns: 1fr;
  }

  .ru-summary-card {
    max-width: 680px;
  }

  .ru-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ru-faculty-grid,
  .ru-content-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .oj-container,
  .ru-container {
    width: min(100% - 24px, var(--oj-content-width));
  }

  .oj-section,
  .ru-section {
    padding: 52px 0;
  }

  .ru-hero {
    padding: 45px 0 38px;
  }

  .ru-hero-title {
    font-size: 38px;
  }

  .ru-hero-buttons {
    display: grid;
    grid-template-columns: 1fr;
  }

  .oj-btn,
  .ru-button {
    width: 100%;
  }

  .ru-summary-card {
    padding: 20px;
    border-radius: 22px;
  }

  .ru-summary-item {
    grid-template-columns: 78px 1fr;
  }

  .ru-quick-grid,
  .ru-faculty-grid,
  .ru-content-grid,
  .ru-exam-menu {
    grid-template-columns: 1fr;
  }

  .ru-quick-grid {
    gap: 11px;
  }

  .ru-quick-card {
    min-width: 0;
    min-height: 0;
    height: auto;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 2px;
    align-content: center;
    padding: 15px;
  }

  .ru-quick-icon {
    grid-row: 1 / 3;
    align-self: center;
    font-size: 31px;
    line-height: 1;
  }

  .ru-quick-text {
    grid-column: 2;
    align-self: center;
  }

  .ru-quick-title {
    grid-column: 2;
    margin-top: 0;
    line-height: 1.35;
  }

  .ru-quick-note {
    grid-column: 2;
    margin-top: 1px;
    line-height: 1.4;
  }

  .ru-quick-text small {
    margin-top: 1px;
    line-height: 1.4;
  }

  .ru-faculty-card {
    min-height: 0;
  }

  .ru-exam-main,
  .ru-exam-side {
    padding: 22px;
  }

  .ru-message {
    padding: 27px 21px;
    border-radius: 22px;
  }
}

@media (max-width: 430px) {
  .ru-hero-title {
    font-size: 33px;
  }

  .oj-section-title,
  .ru-section-title {
    font-size: 25px;
  }
}

/* ==================================================
   RYUKYU FACULTY PAGES - restored from additional CSS backup
   ================================================== */
/* 学部攻略ページ共通CSS v1 */
.oj-faculty-page{--faculty-main:var(--oj-navy);--faculty-dark:var(--oj-navy-dark);--faculty-soft:var(--oj-sky);--faculty-accent:var(--oj-orange)}
.of-hero{position:relative;overflow:hidden;padding:58px 0 48px;background:radial-gradient(circle at 8% 0%,rgba(255,214,107,.34),transparent 25%),linear-gradient(135deg,#fffdf8 0%,var(--faculty-soft) 58%,#fff 100%)}
.of-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:40px;align-items:center}.of-breadcrumb{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px;color:var(--oj-muted);font-size:12px}.of-breadcrumb a{color:var(--oj-blue);font-weight:800}.of-label{display:inline-flex;padding:6px 13px;margin-bottom:15px;color:var(--faculty-main);background:#fff;border:1px solid var(--oj-line);border-radius:999px;font-size:12px;font-weight:900}.of-title{margin:0;color:var(--faculty-dark);font-size:clamp(34px,5.6vw,58px);line-height:1.22}.of-parent{display:block;margin-top:8px;color:var(--faculty-main);font-size:15px;font-weight:800;letter-spacing:.06em}.of-lead{max-width:700px;margin:20px 0 0;color:#455b70;font-size:clamp(15px,2vw,18px)}
.of-summary,.of-data-card,.of-fit-card,.of-strategy-card{padding:25px;background:#fff;border:1px solid var(--oj-line);border-radius:var(--oj-radius-md);box-shadow:var(--oj-shadow-sm)}.of-summary-title{margin:0 0 14px;color:var(--faculty-dark);font-size:18px}.of-summary-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.of-summary-list li{display:grid;grid-template-columns:92px 1fr;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--oj-line);font-size:13px}.of-summary-list li:last-child{padding-bottom:0;border-bottom:0}.of-summary-key{color:var(--oj-muted);font-weight:800}.of-summary-value{color:var(--faculty-dark);font-weight:900}
.of-nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);border-bottom:1px solid var(--oj-line);box-shadow:0 5px 16px rgba(18,58,99,.05);backdrop-filter:blur(10px)}.of-nav-inner{display:flex;gap:8px;overflow-x:auto;padding:12px 0}.of-nav a{flex:0 0 auto;padding:8px 13px;color:var(--faculty-dark);background:var(--faculty-soft);border-radius:999px;font-size:12px;font-weight:900}
.of-department-grid,.of-fit-grid,.of-strategy-grid,.of-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.of-department-card{display:flex;min-height:210px;flex-direction:column;padding:22px;background:#fff;border:1px solid var(--oj-line);border-radius:var(--oj-radius-md);box-shadow:var(--oj-shadow-sm)}.of-department-tag,.of-chip{display:inline-flex;align-self:flex-start;padding:5px 9px;color:var(--department-color,var(--faculty-main));background:var(--department-soft,var(--faculty-soft));border-radius:999px;font-size:11px;font-weight:900}.of-department-title{margin:16px 0 8px;color:var(--faculty-dark);font-size:19px;line-height:1.5}.of-department-text,.of-data-text,.of-fit-text,.of-strategy-text{margin:0;color:var(--oj-muted);font-size:13px;line-height:1.75}
.of-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.of-data-card--wide{grid-column:1/-1}.of-data-title{margin:0 0 13px;color:var(--faculty-dark);font-size:20px}.of-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:18px}.of-stat{padding:15px;text-align:center;background:var(--oj-bg);border-radius:14px}.of-stat-label{display:block;color:var(--oj-muted);font-size:11px;font-weight:800}.of-stat-value{display:block;margin-top:4px;color:var(--faculty-main);font-size:20px;font-weight:900}
.of-table-wrap{overflow-x:auto;margin-top:17px;border:1px solid var(--oj-line);border-radius:14px}.of-table{width:100%;min-width:700px;border-collapse:collapse;background:#fff;font-size:13px}.of-table th,.of-table td{padding:13px 14px;border-bottom:1px solid var(--oj-line);border-right:1px solid var(--oj-line);text-align:left;vertical-align:top}.of-table th{color:var(--faculty-dark);background:var(--faculty-soft);font-weight:900}.of-status{display:inline-flex;padding:5px 9px;color:#795018;background:#fff8e9;border-radius:999px;font-size:11px;font-weight:900}
.of-fit-icon,.of-strategy-number{display:grid;width:44px;height:44px;place-items:center;margin-bottom:14px;background:var(--faculty-soft);border-radius:14px;font-size:22px}.of-strategy-number{color:#fff;background:var(--faculty-main);font-size:14px;font-weight:900}.of-fit-title,.of-strategy-title{margin:0 0 8px;color:var(--faculty-dark);font-size:17px}.of-link-card{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:17px 18px;color:var(--faculty-dark);background:#fff;border:1px solid var(--oj-line);border-radius:16px;box-shadow:var(--oj-shadow-sm);font-size:13px;font-weight:900}
.page-ryudai-jinbun{--faculty-main:#315f88;--faculty-dark:#123a63;--faculty-soft:#e9f2f8;--faculty-accent:#f49a38}
@media(max-width:960px){.of-hero-inner{grid-template-columns:1fr}.of-department-grid,.of-fit-grid,.of-strategy-grid,.of-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.of-title{font-size:34px}.of-department-grid,.of-data-grid,.of-fit-grid,.of-strategy-grid,.of-link-grid,.of-stat-grid{grid-template-columns:1fr}.of-data-card--wide{grid-column:auto}.of-table-wrap{border:0;overflow:visible}.of-table{min-width:0}.of-table thead{display:none}.of-table,.of-table tbody,.of-table tr,.of-table td{display:block;width:100%}.of-table tr{margin-bottom:13px;overflow:hidden;border:1px solid var(--oj-line);border-radius:14px}.of-table td{display:grid;grid-template-columns:118px 1fr;gap:10px;border-right:0}.of-table td::before{content:attr(data-label);color:var(--faculty-main);font-weight:900}}

/* 国際地域創造学部ページの配色 */
.page-ryudai-kokusai {
  --faculty-main: #2d857a;
  --faculty-dark: #174f49;
  --faculty-soft: #e7f5f2;
  --faculty-accent: #f49a38;
}

/* Ryudai page table fallback for WordPress core table markup. */
.ru-page .wp-block-table {
  overflow-x: auto;
  margin-block: 20px;
  border: 1px solid var(--ru-line);
  border-radius: 14px;
}

.ru-page table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  background: var(--ru-white);
  font-size: 13px;
}

.ru-page th,
.ru-page td {
  padding: 13px 14px;
  border-right: 1px solid var(--ru-line);
  border-bottom: 1px solid var(--ru-line);
  text-align: left;
  vertical-align: top;
}

.ru-page th {
  color: var(--ru-navy-dark);
  background: var(--ru-sky);
  font-weight: 900;
}

@media (max-width: 700px) {
  .ru-page .wp-block-table {
    -webkit-overflow-scrolling: touch;
  }
}

/* Mobile devices: force the theme's Japanese Gothic stack without touching icon fonts. */
@media (max-width: 700px) {
  .site-title,
  .site-description,
  .site-tagline,
  .entry-title,
  .page-title,
  .of-page-title,
  .of-title,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  a:not(.dashicons):not([class*="icon"]):not([class^="fa"]):not([class*=" fa"]),
  span:not(.dashicons):not([class*="icon"]):not([class^="fa"]):not([class*=" fa"]),
  .site-footer,
  .site-footer *:not(.dashicons):not([class*="icon"]):not([class^="fa"]):not([class*=" fa"]) {
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Hiragino Sans",
      "Hiragino Kaku Gothic ProN",
      "Yu Gothic",
      "YuGothic",
      Meiryo,
      sans-serif;
  }

  .page-ryudai-jinbun .of-page-title,
  .page-ryudai-kokusai .of-page-title,
  .page-ryudai-jinbun .entry-title,
  .page-ryudai-kokusai .entry-title {
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Hiragino Sans",
      "Hiragino Kaku Gothic ProN",
      "Yu Gothic",
      "YuGothic",
      Meiryo,
      sans-serif !important;
    font-weight: 800;
  }
}

/* Shared metadata structure for faculty department, program, and field cards. */
.of-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 16px;
}

.of-card-type,
.of-card-detail {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.4;
}

.of-card-type {
  color: var(--faculty-main);
  background: var(--faculty-soft);
}

.of-card-detail {
  color: var(--oj-muted);
  background: var(--oj-bg);
  border: 1px solid var(--oj-line);
}

/* Faculty cards: content-height layout and tighter rhythm on mobile only. */
@media (max-width: 700px) {
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-department-card,
    .of-program-card,
    .of-field-card
  ) {
    min-height: 0;
    height: auto;
    padding: 18px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-department-grid,
    .of-program-grid,
    .of-field-grid
  ) {
    gap: 13px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-card-meta {
    gap: 7px;
    margin-bottom: 15px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-department-tag,
    .of-chip
  ) {
    margin-bottom: 15px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-department-card,
    .of-program-card,
    .of-field-card
  ) :is(
    h3,
    .of-department-title,
    .of-program-title,
    .of-field-title
  ) {
    margin: 0 0 8px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-department-card,
    .of-program-card,
    .of-field-card
  ) :is(
    p,
    .of-department-text,
    .of-program-text,
    .of-field-text
  ) {
    margin: 0;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-card-meta :is(
    .of-card-type,
    .of-card-detail
  ) {
    margin-bottom: 0;
  }
}

/* Human Sciences faculty: compact mobile rhythm only. */
@media (max-width: 700px) {
  .page-ryudai-jinbun .oj-section,
  .page-ryudai-jinbun .of-section,
  .page-ryudai-jinbun .of-content-section,
  .page-ryudai-jinbun .of-exam-section,
  .page-ryudai-jinbun .of-schedule-section,
  .page-ryudai-jinbun .of-strategy-section {
    padding-block: 32px;
  }

  .page-ryudai-jinbun .oj-section-header,
  .page-ryudai-jinbun .of-section-header {
    margin-bottom: 16px;
  }

  .page-ryudai-jinbun .oj-kicker,
  .page-ryudai-jinbun .of-kicker {
    margin-bottom: 5px;
  }

  .page-ryudai-jinbun .oj-section-description,
  .page-ryudai-jinbun .of-section-description {
    margin-top: 8px;
  }

  .page-ryudai-jinbun .of-hero {
    padding-block: 38px 32px;
  }

  .page-ryudai-jinbun .of-hero-inner {
    gap: 28px;
  }

  .page-ryudai-jinbun .of-breadcrumb {
    margin-bottom: 12px;
  }

  .page-ryudai-jinbun .of-label {
    margin-bottom: 10px;
  }

  .page-ryudai-jinbun .of-parent {
    margin-top: 6px;
  }

  .page-ryudai-jinbun .of-lead {
    margin-top: 14px;
  }

  .page-ryudai-jinbun .of-hero-buttons,
  .page-ryudai-jinbun .of-actions {
    gap: 10px;
    margin-top: 18px;
  }

  .page-ryudai-jinbun .of-summary,
  .page-ryudai-jinbun .of-data-card,
  .page-ryudai-jinbun .of-fit-card,
  .page-ryudai-jinbun .of-strategy-card {
    padding: 20px;
  }

  .page-ryudai-jinbun .of-department-grid,
  .page-ryudai-jinbun .of-data-grid,
  .page-ryudai-jinbun .of-fit-grid,
  .page-ryudai-jinbun .of-strategy-grid,
  .page-ryudai-jinbun .of-link-grid {
    gap: 14px;
  }

  .page-ryudai-jinbun .of-department-card {
    padding: 18px;
  }

  .page-ryudai-jinbun .of-department-title {
    margin-block: 12px 6px;
  }

  .page-ryudai-jinbun .of-summary-title,
  .page-ryudai-jinbun .of-data-title {
    margin-bottom: 10px;
  }

  .page-ryudai-jinbun .of-summary-list {
    gap: 8px;
  }

  .page-ryudai-jinbun .of-summary-list li {
    padding-bottom: 8px;
  }

  .page-ryudai-jinbun .of-stat-grid {
    gap: 10px;
    margin-top: 14px;
  }

  .page-ryudai-jinbun .of-stat {
    padding: 12px;
  }

  .page-ryudai-jinbun .of-fit-icon,
  .page-ryudai-jinbun .of-strategy-number {
    margin-bottom: 10px;
  }

  .page-ryudai-jinbun .of-link-card {
    min-height: 68px;
    padding: 14px 16px;
  }

  .page-ryudai-jinbun .of-table tr {
    margin-bottom: 12px;
  }

  .page-ryudai-jinbun .of-table td {
    padding: 12px 13px;
  }
}

/* Ryukyu faculty pages: use the available mobile width without horizontal overflow. */
@media (max-width: 700px) {
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .oj-container,
    .ru-container
  ) {
    width: calc(100% - 24px);
    max-width: none;
    margin-inline: auto;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-hero-inner,
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-hero-inner > *,
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-data-grid > *,
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table td {
    min-width: 0;
    max-width: 100%;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-title {
    max-width: 100%;
    font-size: clamp(28px, 8vw, 34px);
    line-height: 1.25;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-summary,
    .of-department-card,
    .of-data-card,
    .of-fit-card,
    .of-strategy-card
  ) {
    width: 100%;
    max-width: 100%;
    padding: 18px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-data-card {
    padding: 16px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-department-grid,
    .of-data-grid,
    .of-fit-grid,
    .of-strategy-grid,
    .of-link-grid
  ) {
    width: 100%;
    gap: 14px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-hero-buttons,
    .of-actions
  ) {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .oj-btn,
    .ru-button,
    .of-hero-buttons a,
    .of-actions a
  ) {
    width: 100%;
    max-width: none;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-summary-list li {
    grid-template-columns: minmax(110px, auto) minmax(0, 1fr);
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-nav-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
    padding: 10px 0;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-nav a {
    min-width: 0;
    padding: 8px 10px;
    text-align: center;
    white-space: normal;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table-wrap,
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table,
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table tbody,
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table tr {
    width: 100%;
    max-width: 100%;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table-wrap {
    overflow: hidden;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table {
    min-width: 0;
    table-layout: fixed;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table td {
    grid-template-columns: minmax(110px, 118px) minmax(0, 1fr);
    gap: 10px;
    padding: 12px 13px;
    overflow-wrap: anywhere;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table td::before {
    min-width: 110px;
    word-break: keep-all;
  }
}

@media (max-width: 380px) {
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table td {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-table td::before {
    min-width: 0;
  }
}

/* Ryukyu faculty page titles: mobile typography and deliberate two-line layout. */
@media (max-width: 700px) {
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .article-header {
    margin: 24px 16px 22px;
    text-align: left;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .entry-title,
    .page-title,
    .of-page-title,
    .of-title
  ),
  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) > h1 {
    max-width: 100%;
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      "Hiragino Kaku Gothic ProN",
      "Hiragino Sans",
      "Yu Gothic",
      "YuGothic",
      Meiryo,
      sans-serif !important;
    font-size: clamp(30px, 8.5vw, 38px);
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: 0;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) .of-page-title {
    display: grid;
    gap: 4px;
    margin: 0;
  }

  :is(.page-ryudai-jinbun, .page-ryudai-kokusai) :is(
    .of-page-title-university,
    .of-page-title-faculty
  ) {
    display: block;
    width: 100%;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }
}

/* =========================
   琉大トップ・名桜大トップ
   受験対策カードをすっきり化
========================= */

.page-ryudai .ru-content-grid,
.page-meio .ru-content-grid {
  gap: 24px;
}

.page-ryudai .ru-content-card,
.page-meio .ru-content-card {
  padding: 24px;
  border-radius: 24px;
  align-items: flex-start;
}

/* 大きすぎるアイコンエリアを小さなバッジ化 */
.page-ryudai .ru-content-visual,
.page-meio .ru-content-visual {
  width: 56px !important;
  min-width: 56px !important;
  height: 56px !important;
  min-height: 56px !important;
  margin: 0 0 14px 0 !important;
  padding: 0 !important;
  border-radius: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 28px !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

/* 琉大 */
.page-ryudai .ru-content-card:nth-child(1) .ru-content-visual {
  background: linear-gradient(135deg, #315f88 0%, #244a6d 100%) !important;
}
.page-ryudai .ru-content-card:nth-child(2) .ru-content-visual {
  background: linear-gradient(135deg, #2f7d71 0%, #246257 100%) !important;
}
.page-ryudai .ru-content-card:nth-child(3) .ru-content-visual {
  background: linear-gradient(135deg, #aa681c 0%, #8c5312 100%) !important;
}

/* 名桜大 */
.page-meio .ru-content-card:nth-child(1) .ru-content-visual {
  background: linear-gradient(135deg, #315f88 0%, #244a6d 100%) !important;
}
.page-meio .ru-content-card:nth-child(2) .ru-content-visual {
  background: linear-gradient(135deg, #2f7f88 0%, #245f66 100%) !important;
}
.page-meio .ru-content-card:nth-child(3) .ru-content-visual {
  background: linear-gradient(135deg, #3f806b 0%, #2f6252 100%) !important;
}

.page-ryudai .ru-content-body,
.page-meio .ru-content-body {
  width: 100%;
}

.page-ryudai .ru-content-label,
.page-meio .ru-content-label {
  margin-bottom: 10px;
}

.page-ryudai .ru-content-title,
.page-meio .ru-content-title {
  margin-bottom: 10px;
  font-size: 1.45rem;
  line-height: 1.4;
}

.page-ryudai .ru-content-text,
.page-meio .ru-content-text {
  margin-bottom: 14px;
  line-height: 1.75;
}

.page-ryudai .ru-content-more,
.page-meio .ru-content-more {
  margin-top: auto;
}

/* スマホ */
@media (max-width: 767px) {
  .page-ryudai .ru-content-grid,
  .page-meio .ru-content-grid {
    gap: 18px;
  }

  .page-ryudai .ru-content-card,
  .page-meio .ru-content-card {
    padding: 20px;
    border-radius: 20px;
  }

  .page-ryudai .ru-content-visual,
  .page-meio .ru-content-visual {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    border-radius: 14px !important;
    font-size: 24px !important;
    margin-bottom: 12px !important;
  }

  .page-ryudai .ru-content-title,
  .page-meio .ru-content-title {
    font-size: 1.2rem;
  }
}
/* =========================================================
   University database pilot
   ========================================================= */
.page-university-database .ru-button--exam {
  background: #e97824;
  border-color: #e97824;
  color: #fff;
}
.page-university-database .ru-button--exam:hover {
  background: #d86616;
  border-color: #d86616;
  color: #fff;
  transform: translateY(-2px);
}
.page-university-database .ru-summary-map {
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid #dce6ef;
  border-radius: 16px;
  background: #fff;
}
.page-university-database .ru-summary-map iframe {
  display: block;
  width: 100%;
  height: 190px;
  border: 0;
}
.page-university-database .ru-summary-map-link {
  display: block;
  padding: 11px 14px;
  color: #e97824;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  border-top: 1px solid #e5edf3;
}
.page-university-database .ru-summary-map-link:hover {
  background: #fff7ef;
  color: #d86616;
}
.university-exam-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.university-exam-card {
  display: flex;
  min-height: 132px;
  padding: 24px;
  border: 1px solid #dce6ef;
  border-radius: 18px;
  background: #fff;
  color: #18344c;
  text-decoration: none;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 10px 24px rgba(30, 62, 88, .06);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.university-exam-card:hover {
  transform: translateY(-3px);
  border-color: #9eb8ce;
  box-shadow: 0 14px 30px rgba(30, 62, 88, .11);
}
.university-exam-card strong {
  font-size: 20px;
}
.university-exam-card span {
  margin-top: 18px;
  color: #315f88;
  font-size: 13px;
  font-weight: 700;
}
.university-exam-card--orange {
  border-color: #e97824;
  background: #e97824;
  color: #fff;
}
.university-exam-card--orange span {
  color: #fff;
}
.university-exam-card--orange:hover {
  border-color: #d86616;
  background: #d86616;
}
.university-exam-links--labo{grid-template-columns:repeat(2,minmax(0,1fr))}
.university-exam-card--labo{background:#eef5ff;border-color:#c8daee;color:#173b67}
.university-exam-card--labo span{color:#315f88}
.university-exam-card--labo.is-disabled{width:100%;font:inherit;text-align:left;opacity:.68;cursor:not-allowed}
.university-exam-card--labo.is-disabled:hover{transform:none;border-color:#c8daee;box-shadow:0 10px 24px rgba(30,62,88,.06)}
.university-exam-card--labo small{margin-top:7px;color:#607486;font-size:12px;font-weight:700}
.university-free-content {
  padding: 26px;
  border: 1px solid #dce6ef;
  border-radius: 18px;
  background: #fff;
  line-height: 1.9;
}
.university-official-more {
  margin-top: 8px !important;
  color: #e97824 !important;
  font-weight: 700 !important;
}
@media (max-width: 900px) {
  .university-exam-links { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .page-university-database .ru-summary-map iframe { height: 180px; }
}


/* =========================================================
   University database pilot — layout refinement
   ========================================================= */
@media (min-width: 961px) {
  .page-university-database .ru-hero {
    padding: 48px 0 42px;
  }

  .page-university-database .ru-breadcrumb {
    margin-bottom: 14px;
  }

  .page-university-database .ru-hero-inner {
    grid-template-columns: minmax(0, 1.28fr) minmax(330px, .72fr);
    gap: 38px;
  }

  .page-university-database .ru-hero-text {
    max-width: 720px;
    margin-top: 16px;
  }

  .page-university-database .ru-hero-buttons {
    margin-top: 22px;
  }

  .page-university-database .ru-summary-card {
    padding: 22px;
  }

  .page-university-database .ru-summary-list {
    gap: 8px;
  }

  .page-university-database .ru-summary-item {
    padding-bottom: 8px;
  }

  .page-university-database .ru-summary-map {
    margin-top: 14px;
  }

  .page-university-database .ru-summary-map iframe {
    height: 152px;
  }

  .page-university-database .ru-section {
    padding: 56px 0;
  }

  .page-university-database .ru-section-header {
    margin-bottom: 26px;
  }

  .page-university-database .ru-faculty-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
  }

  .page-university-database .ru-faculty-card {
    min-height: 196px;
    padding: 20px;
  }

  .page-university-database #features .ru-quick-grid {
    max-width: 920px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0 auto;
  }

  .page-university-database #features .ru-quick-card {
    min-height: 132px;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 20px;
  }

  .page-university-database #features .ru-quick-title {
    margin-top: 0;
  }

  .page-university-database .university-exam-links {
    max-width: 920px;
    margin: 0 auto;
  }

  .page-university-database #past-exams .ru-attention {
    max-width: 920px;
    margin-right: auto;
    margin-left: auto;
  }
}

@media (min-width: 701px) and (max-width: 960px) {
  .page-university-database .ru-hero {
    padding: 50px 0 42px;
  }

  .page-university-database .ru-summary-map iframe {
    height: 165px;
  }

  .page-university-database .ru-section {
    padding: 58px 0;
  }

  .page-university-database #features .ru-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .page-university-database .ru-hero {
    padding: 38px 0 34px;
  }

  .page-university-database .ru-hero-text {
    margin-top: 16px;
  }

  .page-university-database .ru-hero-buttons {
    margin-top: 20px;
  }

  .page-university-database .ru-section {
    padding: 46px 0;
  }

  .page-university-database .ru-section-header {
    margin-bottom: 24px;
  }

  .page-university-database .ru-faculty-card {
    min-height: 185px;
  }
}


/* =========================================================
   University database — information navigation and tuition
   ========================================================= */
.page-university-database .university-find-section { background:#fff; }
.university-find-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.university-find-card { display:flex; min-height:150px; padding:20px; border:1px solid #dce6ef; border-radius:18px; background:#fff; color:#18344c; text-decoration:none; flex-direction:column; box-shadow:0 8px 22px rgba(30,62,88,.06); transition:.2s ease; }
.university-find-card:hover { transform:translateY(-3px); border-color:#9eb8ce; box-shadow:0 13px 28px rgba(30,62,88,.11); }
.university-find-icon { font-size:25px; }
.university-find-card strong { margin-top:13px; font-size:18px; }
.university-find-card > span:last-child { margin-top:auto; padding-top:16px; color:#315f88; font-size:12px; font-weight:700; }
.university-admission-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); gap:20px; align-items:stretch; }
.university-admission-card,.university-admission-note { padding:26px; border:1px solid #dce6ef; border-radius:20px; background:#fff; box-shadow:0 9px 24px rgba(30,62,88,.06); }
.university-admission-card h3,.university-admission-note strong { margin:0; color:#18344c; font-size:20px; }
.university-admission-card p,.university-admission-note p { color:#607486; line-height:1.8; }
.university-admission-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.university-admission-links a { display:flex; padding:13px 14px; border-radius:12px; background:#eef5fa; color:#234c6f; font-weight:700; text-decoration:none; justify-content:space-between; }
.university-admission-links a:hover { background:#e2eef6; }
.university-admission-note { background:#fff8ef; border-color:#f2d9bd; }
.university-admission-note a,.university-tuition-card a,.university-tuition-official a { color:#e97824; font-weight:700; text-decoration:none; }
.university-tuition-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.university-tuition-stat { padding:22px; border:1px solid #dce6ef; border-radius:18px; background:#fff; text-align:center; box-shadow:0 8px 22px rgba(30,62,88,.05); }
.university-tuition-stat span { display:block; color:#607486; font-size:13px; font-weight:700; }
.university-tuition-stat strong { display:block; margin-top:8px; color:#18344c; font-size:28px; }
.university-tuition-stat--accent { border-color:#e97824; background:#fff8ef; }
.university-tuition-stat--accent strong { color:#d86616; }
.university-tuition-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.university-tuition-card { padding:24px; border:1px solid #dce6ef; border-radius:18px; background:#fff; }
.university-tuition-card h3 { margin:0 0 14px; color:#18344c; font-size:19px; }
.university-tuition-card dl { margin:0; }
.university-tuition-card dl div { display:flex; padding:12px 0; border-bottom:1px solid #e5edf3; justify-content:space-between; gap:20px; }
.university-tuition-card dt { color:#607486; font-weight:700; }
.university-tuition-card dd { margin:0; color:#18344c; font-weight:800; }
.university-tuition-card p { color:#607486; line-height:1.8; }
.university-tuition-note { margin-top:18px; }
.university-tuition-official { margin:16px 0 0; text-align:right; }
@media(max-width:960px){.university-find-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.university-admission-layout{grid-template-columns:1fr}.university-tuition-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.university-find-grid{grid-template-columns:1fr}.university-find-card{min-height:auto}.university-admission-links{grid-template-columns:1fr}.university-tuition-stats,.university-tuition-grid{grid-template-columns:1fr}.university-tuition-stat strong{font-size:25px}.university-tuition-official{text-align:left}}

/* =========================================================
   University database — simple vertical anchor navigation
   ========================================================= */
.page-university-database .university-type-badge {
  background: color-mix(in srgb, var(--university-badge-color) 12%, #fff);
  color: var(--university-badge-color);
  border: 1px solid color-mix(in srgb, var(--university-badge-color) 24%, #fff);
}

.university-anchor-nav {
  padding: 26px 0;
  background: #fff;
  border-top: 1px solid #e6edf3;
  border-bottom: 1px solid #e6edf3;
}

.university-anchor-list {
  display: grid;
  gap: 9px;
  max-width: 920px;
  margin: 0 auto;
}

.university-anchor-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 13px 20px;
  border: 1px solid #dce6ef;
  border-radius: 13px;
  background: #f9fbfd;
  color: #18344c;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.university-anchor-list a:hover {
  background: #edf6fb;
  border-color: #a9c1d3;
  transform: translateX(3px);
}

.university-anchor-list a span:last-child {
  color: #315f88;
  font-size: 16px;
}

@supports not (background: color-mix(in srgb, #000 10%, #fff)) {
  .page-university-database .university-type-badge {
    background: #e9f2f8;
    color: #315f88;
    border-color: #cbdde9;
  }
}

@media (max-width: 700px) {
  .university-anchor-nav { padding: 18px 0; }
  .university-anchor-list { gap: 7px; }
  .university-anchor-list a {
    min-height: 50px;
    padding: 12px 16px;
    border-radius: 11px;
    font-size: 14px;
  }
}


/* =========================================================
   University database — photo hero and compact information nav
   ========================================================= */
.page-university-database .university-hero-with-photo {
  padding: 38px 0 34px;
}

.page-university-database .university-hero-main {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  gap: 34px;
  align-items: center;
}

.page-university-database .university-hero-copy {
  min-width: 0;
}

.page-university-database .university-hero-main.no-photo {
  grid-template-columns: minmax(0, 1fr);
}
.page-university-database .university-hero-main.no-photo .university-hero-copy {
  max-width: 920px;
  padding: 22px 0 10px;
}

.page-university-database .university-hero-photo {
  position: relative;
  min-height: 310px;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(25, 58, 83, .16);
}

.page-university-database .university-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 62%, rgba(8, 35, 57, .42) 100%);
  pointer-events: none;
}

.page-university-database .university-hero-photo img {
  display: block;
  width: 100%;
  height: 310px;
  object-fit: cover;
  object-position: 62% center;
}

.page-university-database .university-hero-photo figcaption {
  position: absolute;
  z-index: 1;
  right: 18px;
  bottom: 14px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
}

.page-university-database .university-info-nav-grid {
  display: grid;
  grid-template-columns: minmax(330px, .40fr) minmax(0, .60fr);
  gap: 22px;
  align-items: stretch;
  margin-top: 28px;
}

.page-university-database .university-compact-summary {
  display: flex;
  height: 100%;
  padding: 20px;
  flex-direction: column;
}

.page-university-database .university-compact-summary .ru-summary-title {
  margin-bottom: 10px;
}

.page-university-database .university-compact-summary .ru-summary-list {
  gap: 5px;
}

.page-university-database .university-compact-summary .ru-summary-item {
  padding: 7px 0;
}

.page-university-database .university-campus-maps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: auto;
}

.page-university-database .university-compact-summary .ru-summary-map {
  min-width: 0;
  margin-top: 8px;
}

.page-university-database .university-compact-summary .ru-summary-map-title {
  padding: 7px 9px;
  background: #eef4f9;
  color: #244f72;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
}

.page-university-database .university-compact-summary .ru-summary-map iframe {
  height: 92px;
}

.page-university-database .university-compact-summary .ru-summary-map-link {
  padding: 7px 5px;
  font-size: 10px;
}

.page-university-database .ru-summary-item--campus {
  align-items: flex-start;
}
.page-university-database .ru-summary-item--campus .ru-summary-label {
  width: 43%;
}

.page-university-database .university-anchor-nav {
  display: flex;
  padding: 0;
  border: 0;
  background: transparent;
}

.page-university-database .university-anchor-list {
  width: 100%;
  max-width: none;
  grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.page-university-database .university-anchor-list a {
  min-height: 0;
  padding: 14px 20px;
  border-width: 1px;
  box-shadow: 0 7px 18px rgba(30,62,88,.05);
}

.page-university-database .university-anchor-list a {
  background: linear-gradient(135deg, #f4f8fc 0%, #e7f0f8 58%, #dce9f4 100%);
  border-color: #c6d8e7;
  color: #234d70;
}

.page-university-database .university-anchor-list a:hover {
  filter: brightness(.975);
  transform: translateX(4px);
}

.page-university-database .university-anchor-list a span:last-child {
  color: currentColor;
}

@media (max-width: 960px) {
  .page-university-database .university-hero-main {
    grid-template-columns: 1fr;
  }
  .page-university-database .university-hero-photo,
  .page-university-database .university-hero-photo img {
    min-height: 260px;
    height: 260px;
  }
  .page-university-database .university-info-nav-grid {
    grid-template-columns: 1fr;
  }
  .page-university-database .university-compact-summary .ru-summary-map iframe {
    height: 112px;
  }
}

@media (max-width: 700px) {
  .page-university-database .university-hero-with-photo {
    padding: 28px 0 24px;
  }
  .page-university-database .university-hero-main {
    gap: 22px;
  }
  .page-university-database .university-hero-photo {
    order: -1;
    min-height: 210px;
    border-radius: 18px;
  }
  .page-university-database .university-hero-photo img {
    height: 210px;
    object-position: 66% center;
  }
  .page-university-database .university-info-nav-grid {
    gap: 14px;
    margin-top: 22px;
  }
  .page-university-database .university-anchor-list {
    gap: 8px;
  }
  .page-university-database .university-anchor-list a {
    min-height: 52px;
    padding: 12px 16px;
  }
 .page-university-database .university-campus-maps {
    grid-template-columns: 1fr;
  }
  .page-university-database .university-compact-summary .ru-summary-map iframe {
    height: 130px;
  }
}

/* University compact summary: one map for multiple campuses */
.page-university-database .university-campus-maps--single {
  display: block;
  margin-top: auto;
}
.page-university-database .university-campus-maps--single .ru-summary-map {
  width: 100%;
  margin-top: 8px;
}
.page-university-database .university-campus-maps--single .ru-summary-map iframe {
  height: 150px;
}
.page-university-database .university-campus-maps--single .ru-summary-map-link {
  padding: 8px 10px;
  font-size: 11px;
}
.page-university-database .ru-summary-item--campus .ru-summary-label {
  width: 34%;
}
.page-university-database .ru-summary-item--campus .ru-summary-value {
  line-height: 1.55;
}
@media (max-width: 960px) {
  .page-university-database .university-campus-maps--single .ru-summary-map iframe {
    height: 150px;
  }
}
@media (max-width: 700px) {
  .page-university-database .university-campus-maps--single .ru-summary-map iframe {
    height: 145px;
  }
}


/* University summary map: one embedded map plus two campus links */
.page-university-database .ru-summary-map-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid #e5edf3;
}
.page-university-database .ru-summary-map-links .ru-summary-map-link {
  border-top: 0;
  padding: 8px 6px;
  font-size: 10px;
  line-height: 1.35;
}
.page-university-database .ru-summary-map-links .ru-summary-map-link + .ru-summary-map-link {
  border-left: 1px solid #e5edf3;
}
.page-university-database .university-anchor-list a {
  font-size: 17px;
  font-weight: 800;
}
@media (max-width: 700px) {
  .page-university-database .university-anchor-list a {
    font-size: 16px;
  }
  .page-university-database .ru-summary-map-links {
    grid-template-columns: 1fr;
  }
  .page-university-database .ru-summary-map-links .ru-summary-map-link + .ru-summary-map-link {
    border-left: 0;
    border-top: 1px solid #e5edf3;
  }
}

/* University database final alignment adjustments */
.page-university-database .university-compact-summary .ru-summary-item {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  column-gap: 12px;
  align-items: start;
}

.page-university-database .university-compact-summary .ru-summary-label,
.page-university-database .ru-summary-item--campus .ru-summary-label {
  width: auto;
  min-width: 0;
  white-space: nowrap;
}

.page-university-database .university-anchor-list a span:last-child {
  display: inline-flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  flex: 0 0 22px;
  font-size: 19px;
  font-weight: 700;
  line-height: 1;
  transform: none;
}

@media (max-width: 700px) {
  .page-university-database .university-compact-summary .ru-summary-item {
    grid-template-columns: 88px minmax(0, 1fr);
    column-gap: 10px;
  }

  .page-university-database .university-anchor-list a span:last-child {
    width: 20px;
    height: 20px;
    flex-basis: 20px;
    font-size: 18px;
  }
}


/* University DB: single-campus summary and tuition wrapping fix */
@media (min-width: 961px) {
  .page-university-database .university-tuition-stats {
    grid-template-columns: minmax(0,.8fr) minmax(0,.8fr) minmax(360px,1.4fr);
  }
  .page-university-database .university-tuition-stat strong {
    font-size: clamp(21px, 2vw, 28px);
    line-height: 1.35;
    word-break: keep-all;
    overflow-wrap: normal;
  }
  .page-university-database .university-tuition-stat--accent strong {
    white-space: nowrap;
    font-size: clamp(20px, 1.65vw, 25px);
  }
}
@media (max-width: 960px) and (min-width: 701px) {
  .page-university-database .university-tuition-stats {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .page-university-database .university-tuition-stat--accent {
    grid-column: 1 / -1;
  }
  .page-university-database .university-tuition-stat strong {
    word-break: keep-all;
  }
}


/* University tuition: deliberate two-line regional amounts */
.page-university-database .university-tuition-value-line {
  display: block;
  white-space: nowrap;
}
.page-university-database .university-tuition-value-line + .university-tuition-value-line {
  margin-top: 3px;
}
@media (max-width: 700px) {
  .page-university-database .university-tuition-stat strong {
    font-size: 23px;
    line-height: 1.38;
  }
  .page-university-database .university-tuition-card dd {
    text-align: right;
    line-height: 1.45;
  }
}


/* ===== FACULTY GUIDE DESIGN UNIFICATION ===== */
.fg-page{
  --fg-navy:#173b67;
  --fg-blue:#315f88;
  --fg-muted:#6f8193;
  --fg-border:#d9e6ef;
  --fg-soft:#f3f8fb;
  --fg-orange:#ef8b23;
}

.fg-page .fg-hero{
  padding:58px 0 54px;
  background:
    radial-gradient(circle at 86% 18%,rgba(239,139,35,.13),transparent 26%),
    linear-gradient(135deg,#edf7fb 0%,#f8fbff 62%,#fff8ef 100%);
}

.fg-back{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0 0 22px;
  color:var(--fg-blue);
  font-size:14px;
  font-weight:800;
  text-decoration:none;
}
.fg-back:hover{opacity:.75}

.fg-hero-card{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(250px,.65fr);
  gap:28px;
  align-items:stretch;
}

.fg-hero-main,
.fg-hero-note{
  border:1px solid rgba(49,95,136,.15);
  border-radius:22px;
}

.fg-hero-main{
  padding:34px 38px;
  background:rgba(255,255,255,.88);
  box-shadow:0 16px 42px rgba(27,61,94,.06);
}

.fg-page .fg-title{
  margin-top:2px;
  font-size:clamp(30px,4.5vw,48px);
}

.fg-page .fg-lead{
  max-width:760px;
  margin-top:15px;
  color:#61768a;
}

.fg-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}

.fg-page .ru-button-primary{
  background:var(--fg-navy);
  border:1px solid var(--fg-navy);
  color:#fff;
}

.fg-page .ru-button-outline{
  background:#fff;
  border:1px solid #bfd3e1;
  color:var(--fg-navy);
}

.fg-page .ru-button:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(31,65,98,.09);
}

.fg-hero-note{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:28px;
  background:#fff8ee;
  border-color:#f2d7b7;
}

.fg-note-icon{
  width:max-content;
  margin-bottom:14px;
  padding:5px 10px;
  border-radius:999px;
  background:var(--fg-orange);
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}

.fg-hero-note strong{
  color:var(--fg-navy);
  font-size:19px;
  line-height:1.55;
}

.fg-hero-note p{
  margin:10px 0 0;
  color:#7a6b5b;
  font-size:14px;
  line-height:1.8;
}

.fg-point-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.fg-point-card{
  display:flex;
  gap:13px;
  align-items:flex-start;
  min-height:82px;
  padding:20px 22px;
  border:1px solid var(--fg-border);
  border-radius:16px;
  background:#f0f7fb;
  color:var(--fg-navy);
  line-height:1.75;
}

.fg-check{
  display:grid;
  flex:0 0 26px;
  width:26px;
  height:26px;
  place-items:center;
  margin-top:1px;
  border-radius:50%;
  background:#fff;
  color:var(--fg-orange);
  font-size:15px;
  font-weight:900;
  box-shadow:0 2px 8px rgba(25,61,96,.08);
}

.fg-advice-card{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:28px 30px;
  border:1px solid #d8e7f1;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(24,59,91,.04);
}

.fg-advice-mark{
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border-radius:50%;
  background:var(--fg-orange);
  color:#fff;
  font-size:22px;
  font-weight:900;
}

.fg-richtext{
  color:#435e73;
  font-size:16px;
  line-height:2;
}
.fg-richtext p{margin:0 0 1em}
.fg-richtext p:last-child{margin-bottom:0}

.fg-choice-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.fg-choice-card{
  padding:22px;
  border:1px solid #d8e7f1;
  border-radius:16px;
  background:#f5faff;
}
.fg-choice-card h3{
  margin:0 0 10px;
  color:#123a63;
  font-size:18px;
  line-height:1.5;
}
.fg-choice-card p{
  margin:0;
  color:#435e73;
  font-size:15px;
  line-height:1.85;
}
@media(max-width:700px){
  .fg-choice-grid{grid-template-columns:1fr;gap:12px}
  .fg-choice-card{padding:18px}
}

/* Comprehensive selection guide: reusable detail-page components. */
.okicom-basic-cards.okicom-basic-cards--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.okicom-basic-check-list{list-style:none;padding-left:0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.okicom-basic-check-list li{position:relative;margin:0;padding:14px 16px 14px 42px;border:1px solid #d8e6f0;border-radius:12px;background:#f5faff}
.okicom-basic-check-list li::before{content:'✓';position:absolute;left:16px;color:#1785bf;font-weight:900}
.okicom-basic-steps{list-style:none;counter-reset:okicom-basic-step;padding-left:0!important}
.okicom-basic-steps li{counter-increment:okicom-basic-step;display:grid;grid-template-columns:minmax(190px,.7fr) 1.3fr;gap:18px;margin:0 0 10px;padding:16px 18px;border:1px solid #d8e6f0;border-radius:12px;background:#fbfdff}
.okicom-basic-steps strong::before{content:counter(okicom-basic-step) '. ';color:#ef7b21}
.okicom-basic-steps span{color:#526b82}
.okicom-basic-university-link{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:22px 0 30px;padding:22px 24px;border:1px solid #cfe1ed;border-radius:17px;background:#edf7fc}
.okicom-basic-university-link strong{color:#0d345f;font-size:18px}
.okicom-basic-university-link p{margin:5px 0 0}
.okicom-basic-university-link a,.okicom-guide-ready-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:11px 16px;border-radius:10px;background:#ef7b21;color:#fff!important;font-weight:800;text-decoration:none!important}
.okicom-basic-faq{display:grid;gap:10px;margin:20px 0 28px}
.okicom-basic-faq details{border:1px solid #d8e6f0;border-radius:13px;background:#fbfdff;overflow:hidden}
.okicom-basic-faq summary{padding:16px 18px;color:#0d345f;font-weight:800;cursor:pointer}
.okicom-basic-faq details p{margin:0;padding:0 18px 18px}
.okicom-guide-ready-link{margin-top:12px}
@media(max-width:700px){
  .okicom-basic-cards.okicom-basic-cards--three,.okicom-basic-check-list{grid-template-columns:1fr}
  .okicom-basic-steps li{grid-template-columns:1fr;gap:2px}
  .okicom-basic-university-link{align-items:flex-start;flex-direction:column;padding:18px}
  .okicom-basic-university-link a{width:100%}
}

.fg-info-card{
  padding:26px 30px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 24px rgba(25,59,90,.035);
}

.fg-info-card-blue{
  border:1px solid #d6e6f0;
  border-left:5px solid #4b86ae;
}

.fg-info-card-orange{
  border:1px solid #efdfca;
  border-left:5px solid var(--fg-orange);
  background:#fffdf9;
}

.fg-official-section{
  background:linear-gradient(180deg,#f4f9fc 0%,#fff 100%);
}

.fg-official-card{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
  gap:32px;
  align-items:center;
  padding:34px 38px;
  border:1px solid #d9e6ef;
  border-radius:22px;
  background:#fff;
}

.fg-official-card h2{
  margin:0;
  color:var(--fg-navy);
  font-size:clamp(24px,3vw,32px);
  line-height:1.5;
}
.fg-official-card p{
  max-width:680px;
  margin:12px 0 0;
  color:#64788a;
  line-height:1.9;
}

.fg-official-actions{
  display:grid;
  gap:10px;
}
.fg-official-actions .ru-button{
  width:100%;
}

@media(max-width:900px){
  .fg-hero-card,
  .fg-official-card{
    grid-template-columns:1fr;
  }
  .fg-hero-note{
    padding:22px 24px;
  }
}

@media(max-width:700px){
  .fg-page .fg-hero{
    padding:34px 0 30px;
  }
  .fg-back{
    margin-bottom:16px;
    font-size:13px;
  }
  .fg-hero-main{
    padding:24px 21px;
    border-radius:18px;
  }
  .fg-hero-note{
    padding:20px;
    border-radius:18px;
  }
  .fg-page .fg-title{
    font-size:30px;
    line-height:1.35;
  }
  .fg-page .fg-lead{
    font-size:14px;
    line-height:1.85;
  }
  .fg-hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    margin-top:20px;
  }
  .fg-hero-actions .ru-button{
    width:100%;
  }
  .fg-point-grid{
    grid-template-columns:1fr;
    gap:11px;
  }
  .fg-point-card{
    min-height:auto;
    padding:17px 18px;
    border-radius:14px;
    font-size:14px;
  }
  .fg-advice-card{
    grid-template-columns:36px minmax(0,1fr);
    gap:12px;
    padding:20px 18px;
    border-radius:15px;
  }
  .fg-advice-mark{
    width:34px;
    height:34px;
    font-size:17px;
  }
  .fg-richtext{
    font-size:14px;
    line-height:1.9;
  }
  .fg-info-card{
    padding:20px 19px;
    border-radius:15px;
  }
  .fg-official-card{
    gap:20px;
    padding:24px 20px;
    border-radius:18px;
  }
}

/* ===== FACULTY GUIDE EXAM MODAL ===== */
.fg-hero-card-single{grid-template-columns:1fr}
.fg-page .ru-button-accent{background:#ef8b23;border:1px solid #ef8b23;color:#fff;cursor:pointer}
.fg-page .ru-button-accent:hover{background:#df7d16;border-color:#df7d16}
.fg-exam-modal{position:fixed;inset:0;z-index:99999;display:none}
.fg-exam-modal.is-open{display:block}
.fg-exam-modal-backdrop{position:absolute;inset:0;background:rgba(14,31,47,.58);backdrop-filter:blur(2px)}
.fg-exam-modal-dialog{position:relative;z-index:2;width:min(980px,calc(100% - 48px));max-height:calc(100vh - 70px);margin:35px auto;overflow:auto;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(13,39,64,.24)}
.fg-exam-modal-head{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;border-bottom:1px solid #dce7ef;background:rgba(255,255,255,.97)}
.fg-exam-modal-head h2{margin:2px 0 0;color:#173b67;font-size:1.55rem}
.fg-exam-modal-close{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid #cddce7;border-radius:10px;background:#f7fafc;color:#173b67;font-weight:800;cursor:pointer}
.fg-exam-modal-body{padding:24px}
.fg-exam-sheet{padding:22px;border:1px solid #d9e6ef;border-radius:18px;background:#fbfdff}
.fg-exam-sheet+.fg-exam-sheet{margin-top:18px}
.fg-exam-sheet-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}
.fg-exam-sheet-head h3{margin:0;color:#173b67;font-size:1.25rem}
.fg-exam-sheet-head span{color:#6c8193}
.fg-exam-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fg-exam-block{padding:20px;border:1px solid #dce8f0;border-radius:15px;background:#f3f8fb}
.fg-exam-block h4{margin:0 0 14px;color:#173b67;font-size:1.05rem}
.fg-exam-block p{margin:0;color:#304b61;line-height:1.9;word-break:normal;overflow-wrap:anywhere}
.fg-total{margin-top:14px!important;padding-top:12px;border-top:1px solid #dbe6ee}
.fg-exam-note{margin-top:14px;padding-top:12px;border-top:1px solid #dbe6ee}
.fg-exam-note>strong{color:#173b67}.fg-exam-note p{margin-top:6px}
.fg-grand-total{margin:16px 0 0;padding:14px 16px;border-radius:12px;background:#eef5f9;color:#173b67;font-size:1.04rem}
@media(max-width:700px){
 .fg-exam-modal-dialog{width:calc(100% - 18px);max-height:calc(100vh - 18px);margin:9px auto;border-radius:16px}
 .fg-exam-modal-head{padding:16px}
 .fg-exam-modal-head h2{font-size:1.25rem}
 .fg-exam-modal-close span{display:none}
 .fg-exam-modal-body{padding:14px}
 .fg-exam-sheet{padding:16px;border-radius:14px}
 .fg-exam-two-col{grid-template-columns:1fr}
 .fg-exam-block{padding:16px}
 .fg-exam-block p{font-size:.94rem;line-height:1.8}
}


/* ===== UNIVERSITY / FACULTY EXAM MODAL UNIFIED ===== */
.okicom-modal.fg-exam-modal{position:fixed;inset:0;z-index:99999;display:none}
.okicom-modal.fg-exam-modal.is-open{display:block}
.okicom-modal.fg-exam-modal .fg-exam-modal-dialog{
  width:min(980px,calc(100% - 48px));max-height:calc(100vh - 70px);
  margin:35px auto;overflow:auto;border-radius:22px;background:#fff;
  box-shadow:0 24px 70px rgba(13,39,64,.24)
}
.okicom-modal.fg-exam-modal .fg-exam-modal-head{
  position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 26px;border-bottom:1px solid #dce7ef;background:rgba(255,255,255,.98)
}
.okicom-modal.fg-exam-modal .fg-exam-modal-head h2{margin:2px 0 0;color:#173b67;font-size:1.55rem}
.okicom-modal.fg-exam-modal .fg-exam-modal-close{
  display:inline-flex!important;flex:0 0 auto;align-items:center;gap:6px;min-width:48px;min-height:48px;
  justify-content:center;padding:9px 12px;border:1px solid #cddce7;border-radius:12px;background:#f7fafc;
  color:#173b67;font-weight:900;font-size:1rem;cursor:pointer;visibility:visible!important;opacity:1!important
}
.okicom-modal.fg-exam-modal .fg-exam-modal-body{padding:24px}

.okicom-target-rate{
  display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 10px;margin:14px 0 18px;padding:14px 16px;
  border:1px solid #f0d8bc;border-radius:12px;background:#fff8ef
}
.okicom-target-rate-label{color:#173b67;font-weight:700}
.okicom-target-rate-value{
  color:#ef861b!important;font-size:1.75rem!important;line-height:1!important;font-weight:900!important;letter-spacing:.01em
}
.okicom-target-rate-value em{color:#ef861b;font-size:.72em;font-style:normal}
.okicom-target-rate-points{color:#66788a;font-size:.92rem}

@media(max-width:700px){
  .okicom-modal.fg-exam-modal .fg-exam-modal-dialog{
    width:calc(100% - 18px);max-height:calc(100vh - 18px);margin:9px auto;border-radius:16px
  }
  .okicom-modal.fg-exam-modal .fg-exam-modal-head{padding:16px}
  .okicom-modal.fg-exam-modal .fg-exam-modal-head h2{font-size:1.25rem}
  .okicom-modal.fg-exam-modal .fg-exam-modal-close{width:48px;height:48px;padding:0}
  .okicom-modal.fg-exam-modal .fg-exam-modal-close span{display:none}
  .okicom-modal.fg-exam-modal .fg-exam-modal-body{padding:14px}
  .okicom-target-rate{padding:12px 14px;gap:7px 9px}
  .okicom-target-rate-value{font-size:1.9rem!important}
  .okicom-target-rate-points{width:100%;margin-top:2px}
}


/* ===== ONE-LINE SUBJECTS / CAPACITY ===== */
.okicom-subject-lines{display:grid;gap:7px;width:100%}
.okicom-subject-line{display:block;white-space:nowrap;line-height:1.65;color:#304b61}
.fg-capacity-list{display:grid;gap:12px;margin:16px 0 6px}
.fg-capacity-group{display:grid;gap:7px}
.fg-capacity-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 2px 0;color:#173b67;font-size:.9rem;font-weight:900}
.fg-capacity-group-title strong{color:#ef861b;white-space:nowrap}
.fg-capacity-item{display:block;padding:10px 14px;border:1px solid #d7e5ef;border-radius:12px;background:#f1f7fb;color:#173b67}
.fg-capacity-main{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0}
.fg-capacity-name{font-weight:800;min-width:0;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;flex-shrink:0}
.fg-capacity-values{display:flex;align-items:stretch;flex:0 0 auto;border-left:1px solid #c9d9e5}
.fg-capacity-values>span{display:flex;align-items:center;gap:6px;padding:0 10px;white-space:nowrap}
.fg-capacity-values>span+span{border-left:1px solid #c9d9e5}
.fg-capacity-values small{color:#66788a;font-size:.7rem;font-weight:800}
.fg-capacity-values strong{color:#ef861b;font-weight:900}
.fg-capacity-note{display:block;margin-top:4px;color:#66788a;font-size:.79rem;font-weight:700}
.fg-capacity-explain{margin:10px 2px 2px;padding:9px 11px;border-radius:9px;background:#f8fafc;color:#65758a;font-size:.78rem;line-height:1.65}
@media(max-width:700px){
  .okicom-subject-lines{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .okicom-subject-line{width:max-content;min-width:100%;font-size:13px}
  .fg-capacity-list{gap:10px;margin-top:13px}
  .fg-capacity-group{gap:6px}
  .fg-capacity-group-title{font-size:.83rem;margin-top:4px}
  .fg-capacity-item{padding:9px 11px;border-radius:10px}
  .fg-capacity-main{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;align-items:start}
  .fg-capacity-name{font-size:.86rem;line-height:1.45;padding-top:0;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
  .fg-capacity-values{border-left:0;gap:4px;flex-wrap:wrap;justify-content:flex-start}
  .fg-capacity-values>span{gap:3px;padding:2px 6px;border:1px solid #d6e2eb!important;border-radius:8px;background:#fff}
  .fg-capacity-values small{font-size:.62rem}
  .fg-capacity-values strong{font-size:.82rem}
  .fg-capacity-note{font-size:.72rem;margin-top:4px}
  .fg-capacity-explain{margin-top:8px;padding:8px 9px;font-size:.7rem;line-height:1.6}
}



/* ===== UNIFIED EXAM RENDERER V3 ===== */
.okicom-exam-department-title{
  margin:0 0 14px;padding:0 2px 12px;border-bottom:1px solid #dce7ef;
  color:#173b67;font-size:1.08rem;font-weight:800
}
.okicom-subject-lines{display:grid;gap:7px;width:100%}
.okicom-subject-line{
  display:block;white-space:nowrap!important;color:#304b61;
  line-height:1.65;font-size:14px;letter-spacing:-.015em
}
.okicom-target-rate-points{color:#66788a;font-size:.96rem;font-weight:600}
@media(max-width:700px){
  .okicom-subject-lines{overflow:visible!important;padding-bottom:0!important}
  .okicom-subject-line{
    width:auto!important;min-width:0!important;white-space:nowrap!important;
    font-size:12px!important;letter-spacing:-.03em;line-height:1.7
  }
  .fg-exam-block,.okicom-uem-block.fg-exam-block{
    padding-left:12px!important;padding-right:12px!important
  }
  .okicom-exam-department-title{font-size:1rem;margin-bottom:12px}
}
@media(max-width:390px){.okicom-subject-line{font-size:11.4px!important}}

/* ===== HOME PRIMARY NAVIGATION + ADMISSION BASICS ===== */
.oj2-home .oj2-primary-links{padding:16px 0 8px;background:#fff}
.oj2-home .oj2-primary-links-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.oj2-home .oj2-primary-link-card{display:flex;min-width:0;height:86px;padding:12px 18px;border:2px solid transparent;border-radius:17px;background:#123a63;color:#fff;text-align:center;text-decoration:none;align-items:center;justify-content:center;box-shadow:0 7px 18px rgba(18,58,99,.13);transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}
.oj2-home .oj2-primary-link-card:nth-child(2){background:#df792d}.oj2-home .oj2-primary-link-card:nth-child(3){background:#258b8e}
.oj2-home .oj2-primary-link-card:hover{transform:translateY(-3px);filter:brightness(1.07);box-shadow:0 11px 23px rgba(18,58,99,.18)}
.oj2-home .oj2-primary-link-card:focus-visible{outline:3px solid #ffd66b;outline-offset:3px;transform:translateY(-2px);filter:brightness(1.07)}
.oj2-home .oj2-primary-link-card h2{margin:0!important;padding:0!important;border:0!important;background:none!important;color:#fff!important;font-size:21px;line-height:1.35;font-weight:900;letter-spacing:.02em}
.oj2-home .oj2-primary-link-card h2 span+span{margin-left:0}
.oj2-home .oj2-section--basics{background:#f6f9fb}
.oj2-home .oj2-section-lead{max-width:720px;margin:-6px 0 25px;color:#607486;font-size:15px;line-height:1.8}
.oj2-home .oj2-basics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.oj2-home .oj2-basic-card{display:flex;min-width:0;min-height:184px;padding:21px;border:1px solid #dce6ee;border-radius:17px;background:#fff;color:#173b67;text-decoration:none;flex-direction:column;box-shadow:0 6px 18px rgba(18,58,99,.045);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.oj2-home .oj2-basic-card:hover,.oj2-home .oj2-basic-card:focus-visible{transform:translateY(-2px);border-color:#a9bfd1;box-shadow:0 10px 24px rgba(18,58,99,.09)}
.oj2-home .oj2-basic-card h3{margin:0!important;padding:0!important;border:0!important;background:none!important;color:#173b67;font-size:17px;line-height:1.5}
.oj2-home .oj2-basic-card p{margin:10px 0 16px;color:#607486;font-size:13px;line-height:1.7}
.oj2-home .oj2-basic-card>span{margin-top:auto;color:#2f6fa3;font-size:12px;font-weight:800}
.oj2-home .oj2-section-eyebrow{margin:0 0 7px;color:var(--oj2-blue);font-size:12px;font-weight:900;letter-spacing:.14em}
.oj2-home .oj2-home-lower-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.oj2-home .oj2-basic-card--static:hover{transform:none;border-color:#dce6ee;box-shadow:0 6px 18px rgba(18,58,99,.045)}
.oj2-home .oj2-home-lower-note{margin:14px 0 0;color:#718397;font-size:12px;line-height:1.7}
@media(max-width:960px){.oj2-home .oj2-basics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  .oj2-home .oj2-primary-links{padding:10px 0 4px}
  .oj2-home .oj2-primary-links-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .oj2-home .oj2-primary-link-card{height:68px;padding:7px 4px;border-radius:12px}
  .oj2-home .oj2-primary-link-card h2{font-size:clamp(12px,3.7vw,16px);line-height:1.35;letter-spacing:0;word-break:keep-all}
  .oj2-home .oj2-primary-link-card:first-child h2 span{display:block}
  .oj2-home .oj2-section-lead{margin:-4px 0 18px;font-size:13px;line-height:1.7}
  .oj2-home .oj2-basics-grid{grid-template-columns:1fr;gap:10px}
  .oj2-home .oj2-basic-card{min-height:0;padding:17px;border-radius:15px}
  .oj2-home .oj2-basic-card h3{font-size:16px}
  .oj2-home .oj2-basic-card p{margin:7px 0 12px;font-size:12.5px}
}


/* =========================================================
   HOME POLISH 2026-08: feature slider / compact latest / basics / footer
   ========================================================= */
.oj2-home .oj2-feature-slider-wrap{padding:18px 0 4px;background:#fff}
.oj2-home .oj2-feature-slider{position:relative;overflow:hidden;border-radius:22px;box-shadow:0 10px 28px rgba(18,58,99,.09)}
.oj2-home .oj2-feature-slider-viewport{position:relative;height:270px;min-height:270px}
.oj2-home .oj2-feature-slide{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:24px;padding:34px 40px;color:#fff;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(16px);transition:opacity .35s ease,transform .35s ease,visibility .35s ease}
.oj2-home .oj2-feature-slide.is-active{position:absolute;opacity:1;visibility:visible;pointer-events:auto;transform:none}
.oj2-home .oj2-feature-slide--navy{background:linear-gradient(135deg,#0b3564 0%,#2477b7 100%)}
.oj2-home .oj2-feature-slide--orange{background:linear-gradient(135deg,#b95614 0%,#f58a1f 100%)}
.oj2-home .oj2-feature-slide--teal{background:linear-gradient(135deg,#146b70 0%,#258b8e 100%)}
.oj2-home .oj2-feature-slide--purple{background:linear-gradient(135deg,#514078 0%,#7255b7 100%)}
.oj2-home .oj2-feature-slide::after{content:"";position:absolute;right:-80px;top:-120px;width:330px;height:330px;border-radius:50%;background:rgba(255,255,255,.10);pointer-events:none}
.oj2-home .oj2-feature-slide-copy{position:relative;z-index:1;max-width:790px}
.oj2-home .oj2-feature-eyebrow{display:inline-flex;margin-bottom:10px;font-size:12px;font-weight:900;letter-spacing:.16em;opacity:.82}
.oj2-home .oj2-feature-slide h2{margin:0 0 10px!important;color:#fff!important;font-size:clamp(24px,3.4vw,38px)!important;line-height:1.35!important;font-weight:900}
.oj2-home .oj2-feature-slide p{max-width:720px;margin:0 0 18px;color:rgba(255,255,255,.9);font-size:15px;line-height:1.8}
.oj2-home .oj2-feature-link{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid rgba(255,255,255,.48);border-radius:999px;background:rgba(255,255,255,.10);color:#fff!important;font-weight:900;transition:background .18s ease,transform .18s ease}
.oj2-home .oj2-feature-link:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.oj2-home .oj2-feature-slide-mark{position:relative;z-index:1;display:grid;place-items:center;justify-self:end;width:130px;height:130px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(255,255,255,.08)}
.oj2-home .oj2-feature-slide-mark span{font-size:42px;font-weight:900;letter-spacing:.05em;opacity:.88}
.oj2-home .oj2-feature-slider-controls{position:absolute;right:22px;bottom:18px;z-index:4;display:flex;align-items:center;gap:14px}
.oj2-home .oj2-feature-slider-arrows{display:flex;gap:6px}
.oj2-home .oj2-feature-arrow{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(8,41,79,.2);color:#fff;font:inherit;font-weight:900;cursor:pointer;backdrop-filter:blur(4px)}
.oj2-home .oj2-feature-arrow:hover,.oj2-home .oj2-feature-arrow:focus-visible{background:rgba(255,255,255,.22)}
.oj2-home .oj2-feature-slider-dots{display:flex;gap:7px}
.oj2-home .oj2-feature-dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.4);cursor:pointer;transition:width .2s ease,background .2s ease}
.oj2-home .oj2-feature-dot.is-active{width:24px;background:#fff}

/* Latest articles: intentionally compact. */
.oj2-home .oj2-section--latest{padding:28px 0 34px}
.oj2-home .oj2-latest-header{margin-bottom:12px}
.oj2-home .oj2-latest-header .oj2-heading{margin-bottom:0!important;font-size:clamp(22px,2.8vw,28px)}
.oj2-home .oj2-latest-header .oj2-heading::before{height:28px}
.oj2-home .oj2-latest-list{gap:10px}
.oj2-home .oj2-latest-card{min-height:96px;padding:13px 15px;gap:13px;border-radius:13px}
.oj2-home .oj2-latest-date{width:72px;min-width:72px;padding:8px}
.oj2-home .oj2-latest-month{font-size:10px;white-space:nowrap;letter-spacing:.04em}
.oj2-home .oj2-latest-date strong{font-size:22px}
.oj2-home .oj2-latest-title{margin:4px 0 0!important;font-size:15px!important;line-height:1.55!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.oj2-home .oj2-latest-excerpt{display:none!important}
.oj2-home .oj2-latest-content .oj2-tags{margin:0}
.oj2-home .oj2-latest-content .oj2-tags span{font-size:10px;padding:3px 7px}
.oj2-home .oj2-latest-arrow{font-size:17px}

/* Basics accordion. */
.oj2-home .oj2-section--basics{padding:30px 0}
.oj2-home .oj2-basics-details{overflow:hidden;border:1px solid var(--oj2-line);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(18,58,99,.05)}
.oj2-home .oj2-basics-details>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;cursor:pointer;list-style:none;color:var(--oj2-navy-dark)}
.oj2-home .oj2-basics-details>summary::-webkit-details-marker{display:none}
.oj2-home .oj2-basics-details>summary:hover{background:#f8fbfd}
.oj2-home .oj2-basics-summary-copy{display:flex;flex-direction:column;gap:4px}
.oj2-home .oj2-basics-summary-copy strong{font-size:22px;font-weight:900}
.oj2-home .oj2-basics-summary-copy small{color:var(--oj2-muted);font-size:13px;font-weight:600}
.oj2-home .oj2-basics-toggle{position:relative;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:#edf5fb}
.oj2-home .oj2-basics-toggle::before,.oj2-home .oj2-basics-toggle::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;border-radius:2px;background:var(--oj2-navy);transform:translate(-50%,-50%);transition:transform .2s ease}
.oj2-home .oj2-basics-toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.oj2-home .oj2-basics-details[open] .oj2-basics-toggle::after{transform:translate(-50%,-50%) rotate(0deg)}
.oj2-home .oj2-basics-panel{padding:0 22px 22px;border-top:1px solid #edf2f6}
.oj2-home .oj2-basics-panel .oj2-basics-grid{padding-top:20px}

/* Footer information architecture + back-to-top. */
.site-footer{padding-top:44px}
.okicom-footer-main{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:54px}
.okicom-footer-brand p:not(.footer-title){max-width:280px;margin:10px 0 0;line-height:1.8;font-size:13px}
.okicom-footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.okicom-footer-heading{margin:0 0 13px;color:#fff;font-weight:900;font-size:14px}
.okicom-footer-links ul{margin:0;padding:0;list-style:none}
.okicom-footer-links li+li{margin-top:8px}
.okicom-footer-links a{color:#d9e5ef;text-decoration:none;font-size:13px;line-height:1.6}
.okicom-footer-utility .okicom-footer-heading{color:#d9e5ef;font-size:12px}
.okicom-footer-utility a{color:#b9c9d7;font-size:12px}
.okicom-footer-links a:hover,.okicom-footer-links a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px}
.okicom-footer-top-link-wrap{display:flex;justify-content:flex-end;margin-top:28px}
.okicom-footer-top-link{color:#fff;text-decoration:none;font-size:13px;font-weight:800}
.okicom-back-to-top{position:fixed;right:20px;bottom:20px;z-index:120;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:#123a63;color:#fff;font:inherit;font-size:20px;font-weight:900;box-shadow:0 8px 22px rgba(8,41,79,.24);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease,background .2s ease}
.okicom-back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.okicom-back-to-top:hover,.okicom-back-to-top:focus-visible{background:#2477b7}

@media(max-width:760px){
  .oj2-home .oj2-feature-slider-wrap{padding:12px 0 0}
  .oj2-home .oj2-feature-slider{border-radius:16px}
  .oj2-home .oj2-feature-slider-viewport{height:300px;min-height:300px}
  .oj2-home .oj2-feature-slide{grid-template-columns:1fr;min-height:300px;padding:26px 22px 68px}
  .oj2-home .oj2-feature-slide-mark{display:none}
  .oj2-home .oj2-feature-slide h2{font-size:24px!important}
  .oj2-home .oj2-feature-slide p{font-size:13px;line-height:1.75}
  .oj2-home .oj2-feature-slider-controls{right:16px;bottom:14px;left:16px;justify-content:space-between}
  .oj2-home .oj2-feature-arrow{width:34px;height:34px}
  .oj2-home .oj2-section--latest{padding:24px 0 30px}
  .oj2-home .oj2-latest-header{align-items:center}
  .oj2-home .oj2-latest-card{min-height:82px;padding:10px 11px;gap:10px}
  .oj2-home .oj2-latest-date{width:60px;min-width:60px;padding:6px}
  .oj2-home .oj2-latest-date strong{font-size:20px}
  .oj2-home .oj2-latest-title{font-size:13px!important;line-height:1.5!important}
  .oj2-home .oj2-latest-content .oj2-tags{display:none}
  .oj2-home .oj2-latest-all{font-size:12px}
  .oj2-home .oj2-basics-details>summary{padding:18px}
  .oj2-home .oj2-basics-summary-copy strong{font-size:19px}
  .oj2-home .oj2-basics-summary-copy small{font-size:12px;line-height:1.6}
  .oj2-home .oj2-basics-panel{padding:0 14px 14px}
  .site-footer{padding-top:32px}
  .okicom-footer-main{grid-template-columns:1fr;gap:24px}
  .okicom-footer-links{grid-template-columns:1fr 1fr;gap:18px}
  .okicom-back-to-top{right:14px;bottom:14px;width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce){
  .oj2-home .oj2-feature-slide,.oj2-home .oj2-feature-dot,.okicom-back-to-top{transition:none}
}

/* About page: the body is managed with the WordPress page editor. */
.okicom-about-page{background:var(--oj2-bg);color:var(--oj2-text)}
.okicom-about-header{padding:48px 0 42px;background:var(--oj2-navy-dark);color:#fff}
.okicom-about-header-inner{max-width:840px}
.okicom-about-eyebrow{margin:0 0 8px;color:#8fc8ed;font-size:12px;font-weight:900;letter-spacing:.16em}
.okicom-about-header h1{margin:0;color:#fff;font-size:clamp(30px,5vw,42px);line-height:1.35}
.okicom-about-content{max-width:840px;padding-top:46px;padding-bottom:64px;font-size:16px;line-height:1.95}
.okicom-about-content>p:first-child{margin-top:0;font-size:18px;font-weight:700;color:var(--oj2-navy)}
.okicom-about-content h2{margin:40px 0 16px;padding:0 0 10px;border-bottom:2px solid var(--oj2-line);color:var(--oj2-navy);font-size:clamp(21px,3vw,26px);line-height:1.45}
.okicom-about-content p{margin:0 0 1.35em}
.okicom-about-content a{color:var(--oj2-blue);text-underline-offset:3px}
.okicom-about-content strong{color:var(--oj2-navy)}
.okicom-about-content blockquote,
.okicom-about-content .okicom-about-notice{margin:24px 0;padding:18px 20px;border:1px solid #f1cfaa;border-left:5px solid var(--oj2-orange);border-radius:8px;background:#fff8ef;color:#344e68;font-style:normal;font-weight:700}
.okicom-about-content blockquote p:last-child,
.okicom-about-content .okicom-about-notice p:last-child{margin-bottom:0}
@media(max-width:700px){
  .okicom-about-header{padding:34px 0 30px}
  .okicom-about-content{padding-top:30px;padding-bottom:48px;font-size:16px;line-height:1.9}
  .okicom-about-content>p:first-child{font-size:17px}
  .okicom-about-content h2{margin-top:32px;font-size:21px}
  .okicom-about-content blockquote,
  .okicom-about-content .okicom-about-notice{margin:20px 0;padding:16px 15px}
}

/* 2026-08-11: compact latest-article cards on mobile and keep the full date inside the badge. */
@media (max-width: 760px) {
  .oj2-home .oj2-latest-list {
    gap: 8px;
  }

  .oj2-home .oj2-latest-card {
    grid-template-columns: 60px minmax(0, 1fr) 18px;
    min-height: 70px;
    padding: 8px 10px;
    gap: 10px;
    border-radius: 13px;
  }

  .oj2-home .oj2-latest-date {
    width: 60px;
    min-width: 60px;
    height: 58px;
    min-height: 58px;
    padding: 6px 4px;
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 11px;
  }

  .oj2-home .oj2-latest-month {
    max-width: 100%;
    white-space: nowrap;
    font-size: 8.5px;
    letter-spacing: .02em;
    line-height: 1;
  }

  .oj2-home .oj2-latest-date strong {
    font-size: 21px;
    line-height: 1;
  }

  .oj2-home .oj2-latest-title {
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
  }

  .oj2-home .oj2-latest-arrow {
    font-size: 16px;
  }
}

/* 2026-08-11: 受験の基礎知識を独立セクションとして明確化 */
.oj2-home .oj2-section--basics{
  background:#f7fafc;
}
.oj2-home .oj2-section--basics .oj2-heading{
  margin-bottom:22px;
}
.oj2-home .oj2-section--basics .oj2-basics-details{
  border-color:#d7e6f0;
  box-shadow:0 6px 18px rgba(18,58,99,.045);
}
@media(max-width:640px){
  .oj2-home .oj2-section--basics .oj2-heading{margin-bottom:16px}
  .oj2-home .oj2-section--basics .oj2-basics-details>summary{padding:17px 18px}
  .oj2-home .oj2-section--basics .oj2-basics-summary-copy strong{font-size:17px;line-height:1.45}
}

/* 2026-08-11: topic heading emphasis + compact recommended articles. */
.oj2-home .oj2-section--soft .oj2-heading{
  font-size:clamp(28px,3.6vw,36px);
}
.oj2-home .oj2-article-grid--compact{
  gap:12px;
}
.oj2-home .oj2-article-card--compact{
  min-height:108px;
}
.oj2-home .oj2-article-card--compact .oj2-article-body{
  position:relative;
  justify-content:center;
  padding:16px 48px 16px 18px;
}
.oj2-home .oj2-article-card--compact .oj2-tags{
  margin-bottom:8px;
}
.oj2-home .oj2-article-card--compact h3{
  font-size:15px;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.oj2-home .oj2-compact-arrow{
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  color:var(--oj2-orange);
  font-size:20px;
  font-weight:900;
}
@media(max-width:760px){
  .oj2-home .oj2-section--soft .oj2-heading{
    font-size:26px;
    line-height:1.35;
  }
  .oj2-home .oj2-article-grid--compact{
    gap:8px;
  }
  .oj2-home .oj2-article-card--compact{
    min-height:78px;
    border-radius:13px;
  }
  .oj2-home .oj2-article-card--compact::before{
    height:4px;
  }
  .oj2-home .oj2-article-card--compact .oj2-article-body{
    min-height:74px;
    padding:9px 38px 9px 12px;
  }
  .oj2-home .oj2-article-card--compact .oj2-tags{
    gap:5px;
    margin-bottom:5px;
  }
  .oj2-home .oj2-article-card--compact .oj2-tags span{
    padding:3px 7px;
    font-size:9px;
  }
  .oj2-home .oj2-article-card--compact h3{
    font-size:13px;
    line-height:1.4;
  }
  .oj2-home .oj2-compact-arrow{
    right:12px;
    font-size:17px;
  }
}

/* ==================================================
   Header navigation final polish - 2026-08-11
   Mobile: simple vertical drawer / Desktop: sticky nav
   ================================================== */
.mobile-menu-heading,
.mobile-menu-subnav,
.menu-toggle-label { display: none; }

/* Desktop: keep the primary navigation visible and pin the header while scrolling. */
@media (min-width: 701px) {
  .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  body.admin-bar .site-header { top: 32px; }
  .primary-navigation { display: block; }
  .primary-navigation .menu {
    display: flex;
    align-items: center;
    gap: 22px;
  }
  .primary-navigation .menu a {
    position: relative;
    display: inline-flex;
    min-height: 72px;
    align-items: center;
    padding: 0 2px;
    color: var(--oj2-navy);
    font-size: 14px;
    font-weight: 900;
  }
  .primary-navigation .menu a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 16px;
    left: 0;
    height: 2px;
    border-radius: 999px;
    background: var(--oj2-orange);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .18s ease;
  }
  .primary-navigation .menu a:hover::after,
  .primary-navigation .menu a:focus-visible::after,
  .primary-navigation .current-menu-item > a::after,
  .primary-navigation .current_page_item > a::after {
    transform: scaleX(1);
  }
}

@media (min-width: 701px) and (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

@media (max-width: 700px) {
  body.mobile-menu-open { overflow: hidden; }
  body.mobile-menu-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(8, 41, 79, .22);
  }

  .site-header { position: relative; z-index: 100; }
  .header-inner { min-height: 68px; }

  .menu-toggle {
    position: relative;
    z-index: 120;
    display: inline-flex;
    width: 52px;
    min-width: 52px;
    height: 52px;
    min-height: 52px;
    padding: 7px 5px 6px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    border: 0;
    border-radius: 14px;
    color: var(--oj2-navy);
    background: #eef6fb;
    cursor: pointer;
  }
  .menu-toggle:hover,
  .menu-toggle:focus-visible { background: #e5f1f8; }

  /* Override the theme's old generic `.menu-toggle > span` rule. */
  .menu-toggle > span.menu-toggle-icon:not(.screen-reader-text) {
    position: relative;
    display: block;
    width: 25px;
    height: 18px;
    margin: 0;
    background: transparent;
  }
  .menu-toggle > span.menu-toggle-label:not(.screen-reader-text) {
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    color: var(--oj2-navy);
    background: transparent;
    font-size: 8px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
  }
  .menu-toggle-icon > span {
    position: absolute;
    left: 0;
    display: block;
    width: 25px;
    height: 2px;
    margin: 0;
    border-radius: 999px;
    background: var(--oj2-navy);
    transform-origin: center;
    transition: top .2s ease, transform .2s ease, opacity .16s ease;
  }
  .menu-toggle-icon > span:nth-child(1) { top: 1px; }
  .menu-toggle-icon > span:nth-child(2) { top: 8px; }
  .menu-toggle-icon > span:nth-child(3) { top: 15px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon > span:nth-child(1) { top: 8px; transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-icon > span:nth-child(3) { top: 8px; transform: rotate(-45deg); }

  .primary-navigation {
    display: block;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 115;
    max-height: calc(100vh - 72px);
    padding: 18px 24px 22px;
    overflow-y: auto;
    border-top: 1px solid #e3edf4;
    border-bottom: 1px solid #d9e6ef;
    border-radius: 0 0 20px 20px;
    background: rgba(255,255,255,.99);
    box-shadow: 0 18px 34px rgba(8,41,79,.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  }
  .primary-navigation.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .mobile-menu-heading {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin: 0 0 10px;
    color: var(--oj2-navy);
  }
  .mobile-menu-heading span {
    color: var(--oj2-blue);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .16em;
  }
  .mobile-menu-heading strong {
    font-size: 20px;
    line-height: 1.3;
    font-weight: 900;
  }

  .primary-navigation .menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
  }
  .primary-navigation .menu > li {
    min-width: 0;
    border-top: 1px solid #e4edf3;
  }
  .primary-navigation .menu > li:last-child {
    border-bottom: 1px solid #e4edf3;
  }
  .primary-navigation .menu a {
    position: relative;
    display: flex;
    min-height: 52px;
    padding: 13px 34px 13px 3px;
    align-items: center;
    border: 0;
    border-radius: 0;
    color: var(--oj2-navy);
    background: transparent;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 900;
    box-shadow: none;
  }
  .primary-navigation .menu a::after {
    content: "→";
    position: absolute;
    right: 4px;
    color: var(--oj2-orange);
    font-size: 18px;
    font-weight: 900;
  }
  .primary-navigation .menu a:hover,
  .primary-navigation .menu a:focus-visible,
  .primary-navigation .current-menu-item > a,
  .primary-navigation .current_page_item > a {
    color: var(--oj2-blue);
    background: transparent;
  }

  .mobile-menu-subnav {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 12px;
    padding-top: 0;
    border-top: 0;
  }
  .mobile-menu-subnav a {
    position: relative;
    display: flex;
    min-height: 43px;
    padding: 10px 28px 10px 3px;
    align-items: center;
    border-bottom: 1px solid #edf2f6;
    color: var(--oj2-muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    text-align: left;
    text-decoration: none;
  }
  .mobile-menu-subnav a::after {
    content: "›";
    position: absolute;
    right: 5px;
    color: var(--oj2-blue);
    font-size: 18px;
  }
  .mobile-menu-subnav a + a { border-left: 0; }
}

@media (max-width: 390px) {
  .primary-navigation { padding-right: 20px; padding-left: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-toggle-icon > span,
  .primary-navigation,
  .primary-navigation .menu a::after { transition: none !important; }
}

/* === Entrance exam calendar / 2026-08-11 === */
.okicom-exam-calendar{background:#f7fafc;color:#123a63;min-height:60vh}.okicom-exam-calendar__container{width:min(1120px,calc(100% - 40px));margin:0 auto}.okicom-exam-calendar__hero{padding:64px 0 34px;background:linear-gradient(180deg,#edf7fc 0%,#f7fafc 100%)}.okicom-exam-calendar__eyebrow{margin:0 0 8px;font-weight:800;letter-spacing:.14em;font-size:.78rem;color:#258b8e}.okicom-exam-calendar__hero h1{margin:0;color:#123a63;font-size:clamp(2rem,4vw,3.25rem);line-height:1.15}.okicom-exam-calendar__lead{max-width:720px;margin:16px 0 0;color:#60778f;font-size:1rem;line-height:1.9}.okicom-exam-calendar__body{padding:26px 0 72px}.okicom-exam-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px;background:#fff;border:1px solid #d7e5ee;border-radius:20px;box-shadow:0 12px 30px rgba(18,58,99,.06)}.okicom-exam-filter label{display:grid;gap:7px}.okicom-exam-filter label>span{font-size:.78rem;font-weight:800;color:#58738c}.okicom-exam-filter select{width:100%;height:46px;border:1px solid #cbdce7;border-radius:12px;background:#fff;padding:0 36px 0 12px;color:#123a63;font-weight:700;font-size:.92rem}.okicom-exam-calendar__summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 2px 28px;color:#61768a;font-weight:700}.okicom-exam-calendar__summary-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end}.okicom-exam-calendar__summary button{appearance:none;border:0;background:transparent;color:#1479b8;font-weight:800;cursor:pointer;padding:8px 0}.okicom-exam-calendar__summary [data-exam-past-toggle]{color:#5b6f82}.okicom-exam-calendar__summary [data-exam-past-toggle][aria-pressed="true"]{color:#1479b8}.okicom-exam-month{margin:0 0 36px}.okicom-exam-month[hidden]{display:none!important}.okicom-exam-month h2{display:flex;align-items:baseline;gap:8px;margin:0 0 14px;padding-left:16px;border-left:7px solid #1885c5;color:#123a63;font-size:1.72rem}.okicom-exam-month h2 span{font-size:.78rem;color:#6f8295;letter-spacing:.04em}.okicom-exam-month__items{display:grid;gap:10px}.okicom-exam-event{display:grid;grid-template-columns:78px minmax(0,1fr) 38px;align-items:center;gap:18px;min-height:112px;padding:14px 18px 14px 14px;background:#fff;border:1px solid #d5e4ed;border-radius:18px;box-shadow:0 4px 14px rgba(18,58,99,.035)}.okicom-exam-event[hidden]{display:none!important}.okicom-exam-date{display:grid;place-items:center;align-content:center;min-height:78px;border-radius:14px;background:#edf6fb;color:#123a63}.okicom-exam-date strong{font-size:1.45rem;line-height:1.05}.okicom-exam-date span{margin-top:6px;font-size:.72rem;font-weight:800;color:#668096}.okicom-exam-event__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}.okicom-exam-badge,.okicom-exam-event-type{display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:800;line-height:1.2}.okicom-exam-badge{color:#fff}.okicom-exam-badge.is-sogo{background:#f39a25}.okicom-exam-badge.is-recommend{background:#df792d}.okicom-exam-badge.is-general{background:#3a9b72}.okicom-exam-badge.is-common{background:#7b62ba}.okicom-exam-badge.is-other{background:#60798f}.okicom-exam-event-type{background:#edf3f7;color:#516c84}.okicom-exam-event__content h3{margin:0 0 3px;font-size:1rem;color:#123a63}.okicom-exam-event__title{margin:0;color:#213f5c;font-weight:800;font-size:.96rem;line-height:1.55}.okicom-exam-event__note{display:flex;flex-wrap:wrap;gap:5px 14px;margin:7px 0 0;color:#6a7d8f;font-size:.8rem;line-height:1.5}.okicom-exam-event__link{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#ef7a18;text-decoration:none;font-size:1.55rem;font-weight:700;transition:background .2s ease,transform .2s ease}.okicom-exam-event__link:hover{background:#fff2e7;transform:translateX(2px)}.okicom-exam-empty{padding:42px 24px;text-align:center;background:#fff;border:1px dashed #c7dbe8;border-radius:20px;color:#667e92}.okicom-exam-empty h2{margin:0 0 8px;color:#123a63}.okicom-exam-calendar__notice{margin:34px 2px 0;color:#6b7e90;font-size:.82rem;line-height:1.7}
@media(max-width:860px){.okicom-exam-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.okicom-exam-calendar__summary{align-items:flex-start}.okicom-exam-calendar__summary-actions{gap:10px 14px;justify-content:flex-end}.okicom-exam-calendar__container{width:min(100% - 28px,760px)}.okicom-exam-calendar__hero{padding:38px 0 24px}.okicom-exam-calendar__hero h1{font-size:2rem}.okicom-exam-calendar__lead{font-size:.9rem;line-height:1.75}.okicom-exam-calendar__body{padding-top:18px}.okicom-exam-filter{grid-template-columns:1fr;padding:14px;border-radius:16px;gap:10px}.okicom-exam-filter label>span{font-size:.74rem}.okicom-exam-filter select{height:44px}.okicom-exam-calendar__summary{margin:14px 2px 24px;font-size:.85rem}.okicom-exam-month{margin-bottom:30px}.okicom-exam-month h2{font-size:1.45rem;margin-bottom:10px;padding-left:11px;border-left-width:5px}.okicom-exam-event{grid-template-columns:60px minmax(0,1fr) 30px;gap:11px;min-height:92px;padding:11px 10px;border-radius:15px}.okicom-exam-date{min-height:64px;border-radius:11px}.okicom-exam-date strong{font-size:1.15rem}.okicom-exam-date span{font-size:.65rem;margin-top:4px}.okicom-exam-badge,.okicom-exam-event-type{font-size:.64rem;min-height:22px;padding:3px 7px}.okicom-exam-event__meta{gap:5px;margin-bottom:4px}.okicom-exam-event__content h3{font-size:.88rem}.okicom-exam-event__title{font-size:.84rem;line-height:1.45}.okicom-exam-event__note{font-size:.72rem;margin-top:5px;gap:3px 10px}.okicom-exam-event__link{width:30px;height:30px;font-size:1.25rem}.okicom-exam-calendar__notice{font-size:.75rem;margin-top:28px}}

/* ==================================================
   v8 compact calendar + compact menu + past-exam categories
   2026-08-11
   ================================================== */

/* Past-exam landing page */
.okicom-past-exams{background:#f7fafc;color:#123a63;min-height:60vh}
.okicom-past-exams__container{width:min(1120px,calc(100% - 40px));margin:0 auto}
.okicom-past-exams__hero{padding:56px 0 28px;background:linear-gradient(180deg,#edf7fc 0%,#f7fafc 100%)}
.okicom-past-exams__eyebrow{margin:0 0 8px;color:#258b8e;font-size:.78rem;font-weight:900;letter-spacing:.14em}
.okicom-past-exams__hero h1{margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;color:#123a63}
.okicom-past-exams__hero>div>p:last-child{max-width:720px;margin:14px 0 0;color:#60778f;line-height:1.8}
.okicom-past-exams__body{padding:26px 0 72px}
.okicom-past-exams__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.okicom-past-exam-card{display:flex;min-height:310px;padding:28px;flex-direction:column;border-radius:24px;color:#fff;box-shadow:0 14px 32px rgba(18,58,99,.10);scroll-margin-top:100px;overflow:hidden;position:relative}
.okicom-past-exam-card::after{content:"";position:absolute;width:220px;height:220px;right:-70px;top:-65px;border-radius:50%;background:rgba(255,255,255,.09);pointer-events:none}
.okicom-past-exam-card.is-orange{background:linear-gradient(145deg,#d96d13,#f58a1f)}
.okicom-past-exam-card.is-blue{background:linear-gradient(145deg,#124b83,#2477b9)}
.okicom-past-exam-card.is-red{background:linear-gradient(145deg,#b51f2e,#df3342)}
.okicom-past-exam-card__eyebrow{margin:0 0 12px;font-size:.72rem;font-weight:900;letter-spacing:.14em;opacity:.88}
.okicom-past-exam-card h2{margin:0 0 14px;color:#fff;font-size:2rem;line-height:1.2}
.okicom-past-exam-card__description{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.93);line-height:1.75;font-weight:600}
.okicom-past-exam-card__link,.okicom-past-exam-card__soon{position:relative;z-index:1;margin-top:auto;padding-top:24px;font-weight:900;color:#fff;text-decoration:none}
.okicom-past-exam-card__link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.30)}
.okicom-past-exam-card__link span{font-size:1.3rem}
.okicom-past-exam-card__soon{opacity:.82}

/* Desktop dropdown for the fallback Past Exams menu. */
@media (min-width:701px){
  .primary-navigation .menu>.menu-item-has-children{position:relative}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu{position:absolute;top:calc(100% - 8px);left:50%;display:block;width:180px;margin:0;padding:8px;background:#fff;border:1px solid #dce8f0;border-radius:14px;box-shadow:0 14px 30px rgba(8,41,79,.14);list-style:none;opacity:0;visibility:hidden;transform:translate(-50%,-4px);transition:.16s ease}
  .primary-navigation .menu>.menu-item-has-children:hover>.sub-menu,.primary-navigation .menu>.menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a{min-height:38px;padding:8px 10px;border-radius:8px;font-size:12px}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a::after{display:none}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a:hover{background:#f2f7fa}
}

/* Calendar: reduce empty space while preserving touch targets. */
@media (max-width:600px){
  .okicom-exam-calendar__hero{padding:26px 0 15px}
  .okicom-exam-calendar__lead{margin-top:10px;line-height:1.62}
  .okicom-exam-calendar__body{padding-top:10px;padding-bottom:46px}
  .okicom-exam-filter{padding:11px 12px;gap:7px;border-radius:15px}
  .okicom-exam-filter label{gap:4px}
  .okicom-exam-filter select{height:41px}
  .okicom-exam-calendar__summary{margin:9px 2px 14px}
  .okicom-exam-month{margin-bottom:20px}
  .okicom-exam-month h2{margin-bottom:7px;font-size:1.36rem}
  .okicom-exam-month__items{gap:7px}
  .okicom-exam-event{min-height:82px;padding:8px 9px;gap:9px}
  .okicom-exam-date{min-height:58px}
  .okicom-exam-event__meta{margin-bottom:2px}
  .okicom-exam-calendar__notice{margin-top:19px}
}

/* Mobile menu: tighter vertical rhythm and nested Past Exams categories. */
@media (max-width:700px){
  .primary-navigation{padding:12px 22px 15px}
  .mobile-menu-heading{margin-bottom:5px}
  .mobile-menu-heading strong{font-size:18px}
  .primary-navigation .menu a{min-height:44px;padding:9px 31px 9px 3px;font-size:13px}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu{display:block;margin:0;padding:2px 0 5px 14px;list-style:none;border-top:1px dashed #e5edf3;background:#fbfdfe}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu li{border:0}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a{min-height:35px;padding:6px 27px 6px 10px;color:#547088;font-size:11.5px;font-weight:800}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a::before{content:"";width:5px;height:5px;margin-right:8px;border-radius:50%;background:#8eb7d0}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a::after{font-size:15px;color:#ef7a18}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu li:last-child a{color:#b92534}
  .primary-navigation .menu>.menu-item-has-children>.sub-menu li:last-child a::before{background:#cf2d3c}
  .mobile-menu-subnav{margin-top:6px}
  .mobile-menu-subnav a{min-height:35px;padding:7px 26px 7px 3px;font-size:11.5px}
}

@media(max-width:760px){
  .okicom-past-exams__container{width:min(100% - 28px,760px)}
  .okicom-past-exams__hero{padding:34px 0 20px}
  .okicom-past-exams__hero h1{font-size:2rem}
  .okicom-past-exams__body{padding:16px 0 48px}
  .okicom-past-exams__grid{grid-template-columns:1fr;gap:12px}
  .okicom-past-exam-card{min-height:210px;padding:21px;border-radius:20px}
  .okicom-past-exam-card h2{font-size:1.62rem;margin-bottom:10px}
  .okicom-past-exam-card__description{font-size:.9rem;line-height:1.65}
  .okicom-past-exam-card__link,.okicom-past-exam-card__soon{padding-top:17px;font-size:.9rem}
}


/* ==================================================
   v9 past-exam chooser + neutral mobile menu
   2026-08-11
   ================================================== */
/* The Past Exams tile on the home page opens three destination choices. */
.oj2-home .oj2-primary-link-card--toggle{
  appearance:none;
  width:100%;
  border:2px solid transparent;
  font:inherit;
  cursor:pointer;
}
.oj2-home .oj2-primary-link-card--toggle[aria-expanded="true"]{
  box-shadow:0 0 0 3px rgba(223,121,45,.16),0 9px 22px rgba(18,58,99,.15);
}
.oj2-home .oj2-past-exam-choices{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.oj2-home .oj2-past-exam-choices[hidden]{display:none!important}
.oj2-home .oj2-past-exam-choice{
  display:flex;
  min-height:72px;
  padding:13px 16px;
  flex-direction:column;
  justify-content:center;
  border-radius:14px;
  color:#fff;
  text-decoration:none;
  box-shadow:0 6px 16px rgba(18,58,99,.10);
  transition:transform .16s ease,filter .16s ease;
}
.oj2-home .oj2-past-exam-choice:hover,
.oj2-home .oj2-past-exam-choice:focus-visible{transform:translateY(-2px);filter:brightness(1.05)}
.oj2-home .oj2-past-exam-choice span{font-size:16px;font-weight:900;line-height:1.25}
.oj2-home .oj2-past-exam-choice small{margin-top:3px;color:rgba(255,255,255,.88);font-size:11px;font-weight:700;line-height:1.35}
.oj2-home .oj2-past-exam-choice.is-university{background:linear-gradient(135deg,#d96d13,#f58a1f)}
.oj2-home .oj2-past-exam-choice.is-common{background:linear-gradient(135deg,#124b83,#2477b9)}
.oj2-home .oj2-past-exam-choice.is-eiken{background:linear-gradient(135deg,#b51f2e,#df3342)}

/* Mobile hamburger: keep all text neutral; category is communicated by hierarchy, not colour. */
@media(max-width:700px){
  .primary-navigation .menu a,
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a,
  .primary-navigation .menu>.menu-item-has-children>.sub-menu li:last-child a,
  .mobile-menu-subnav a{
    color:var(--oj2-navy)!important;
  }
  .primary-navigation .current-menu-item>a,
  .primary-navigation .current_page_item>a,
  .primary-navigation .menu a:hover,
  .primary-navigation .menu a:focus-visible{
    color:var(--oj2-navy)!important;
  }
  .primary-navigation .menu>.menu-item-has-children>.sub-menu a::before{
    background:#9bb2c4!important;
  }
  .primary-navigation .menu>.menu-item-has-children>.sub-menu li:last-child a::before{
    background:#9bb2c4!important;
  }
  .oj2-home .oj2-past-exam-choices{gap:7px;margin-top:8px}
  .oj2-home .oj2-past-exam-choice{min-height:58px;padding:9px 8px;border-radius:11px;text-align:center;align-items:center}
  .oj2-home .oj2-past-exam-choice span{font-size:13px}
  .oj2-home .oj2-past-exam-choice small{font-size:9px}
}


/* ==================================================
   v10 home Past Exams modal chooser
   2026-08-11
   ================================================== */
.oj2-home .oj2-past-exam-modal{
  position:fixed;
  inset:0;
  z-index:12000;
  display:grid;
  place-items:center;
  padding:24px;
}
.oj2-home .oj2-past-exam-modal[hidden]{display:none!important}
.oj2-home .oj2-past-exam-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,36,62,.55);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
.oj2-home .oj2-past-exam-modal__panel{
  position:relative;
  z-index:1;
  width:min(520px,100%);
  max-height:min(720px,calc(100vh - 48px));
  overflow:auto;
  padding:28px;
  border:1px solid #d6e4ee;
  border-radius:28px;
  background:#fff;
  box-shadow:0 24px 70px rgba(8,35,61,.28);
}
.oj2-home .oj2-past-exam-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.oj2-home .oj2-past-exam-modal__eyebrow{
  display:block;
  margin-bottom:3px;
  color:#2385bd;
  font-size:12px;
  font-weight:900;
  letter-spacing:.15em;
}
.oj2-home .oj2-past-exam-modal__header h2{
  margin:0;
  color:var(--oj2-navy);
  font-size:30px;
  line-height:1.2;
}
.oj2-home .oj2-past-exam-modal__close{
  appearance:none;
  width:46px;
  height:46px;
  flex:0 0 46px;
  border:0;
  border-radius:50%;
  background:#eef6fb;
  color:var(--oj2-navy);
  font:700 30px/1 sans-serif;
  cursor:pointer;
}
.oj2-home .oj2-past-exam-modal__lead{
  margin:10px 0 18px;
  color:#637d92;
  font-size:14px;
  font-weight:700;
}
.oj2-home .oj2-past-exam-modal__choices{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  min-height:82px;
  padding:17px 54px 17px 20px;
  align-content:center;
  border-radius:16px;
  text-align:left;
  color:#fff;
  text-decoration:none;
  box-shadow:0 7px 18px rgba(18,58,99,.12);
}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice span{
  grid-column:1;
  font-size:19px;
  font-weight:900;
  line-height:1.25;
}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice small{
  grid-column:1;
  margin-top:4px;
  color:rgba(255,255,255,.9);
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice b{
  position:absolute;
  top:50%;
  right:20px;
  transform:translateY(-50%);
  font-size:24px;
  line-height:1;
}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice.is-university{background:linear-gradient(135deg,#d96d13,#f58a1f)}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice.is-common{background:linear-gradient(135deg,#124b83,#2477b9)}
.oj2-home .oj2-past-exam-modal .oj2-past-exam-choice.is-eiken{background:linear-gradient(135deg,#b51f2e,#df3342)}
.oj2-home .oj2-labo-next-step{display:grid;gap:7px;margin:18px 0;padding:16px;border:1px solid #dce7ef;border-radius:16px;background:#f7fafc;text-align:center}
.oj2-home .oj2-labo-next-step p{margin:0;padding:12px;border-radius:11px;background:#fff;color:#173b67;box-shadow:0 3px 10px rgba(18,58,99,.05)}
.oj2-home .oj2-labo-next-step p span,.oj2-home .oj2-labo-next-step p strong{display:block}
.oj2-home .oj2-labo-next-step p span{color:#607486;font-size:12px;font-weight:800}
.oj2-home .oj2-labo-next-step p strong{margin-top:3px;font-size:15px}
.oj2-home .oj2-labo-next-step__arrow{color:#2477b7;font-size:18px;font-weight:900;line-height:1}
.oj2-home .oj2-labo-cta{width:100%;min-height:50px;border:0;border-radius:13px;background:var(--oj2-navy);color:#fff;font:inherit;font-size:15px;font-weight:900;opacity:.58;cursor:not-allowed}
.oj2-home .oj2-labo-coming-soon{margin:7px 0 0;color:#607486;font-size:12px;font-weight:700;text-align:center}
body.okicom-modal-open{overflow:hidden}
@media(max-width:700px){
  .oj2-home .oj2-past-exam-modal{padding:18px}
  .oj2-home .oj2-past-exam-modal__panel{padding:22px 18px 20px;border-radius:24px}
  .oj2-home .oj2-past-exam-modal__header h2{font-size:25px}
  .oj2-home .oj2-past-exam-modal__close{width:42px;height:42px;flex-basis:42px;font-size:27px}
  .oj2-home .oj2-past-exam-modal__lead{margin:8px 0 14px;font-size:13px}
  .oj2-home .oj2-past-exam-modal__choices{gap:9px}
  .oj2-home .oj2-past-exam-modal .oj2-past-exam-choice{min-height:72px;padding:13px 48px 13px 17px;border-radius:14px;align-items:center;text-align:left}
  .oj2-home .oj2-past-exam-modal .oj2-past-exam-choice span{font-size:17px}
  .oj2-home .oj2-past-exam-modal .oj2-past-exam-choice small{font-size:11px}
  .oj2-home .oj2-past-exam-modal .oj2-past-exam-choice b{right:17px;font-size:21px}
  .oj2-home .oj2-labo-next-step{margin:14px 0;padding:12px}
  .oj2-home .oj2-labo-next-step p{padding:10px}
  .oj2-home .oj2-labo-cta{min-height:48px;font-size:14px}
}


/* Past exam guide: subject / EIKEN roadmap */
.okicom-past-exams__details{display:grid;gap:22px;margin-top:28px}
.okicom-past-exams__detail-block{padding:28px;border:1px solid #dfe8f0;border-radius:24px;background:#fff;box-shadow:0 12px 28px rgba(18,58,99,.06)}
.okicom-past-exams__detail-block.is-eiken{border-color:#f1d3d7;background:linear-gradient(180deg,#fff 0%,#fff8f8 100%)}
.okicom-past-exams__detail-heading p{margin:0 0 5px;color:#258b8e;font-size:.72rem;font-weight:900;letter-spacing:.14em}
.okicom-past-exams__detail-block.is-eiken .okicom-past-exams__detail-heading p{color:#c52a38}
.okicom-past-exams__detail-heading h2{margin:0;color:#123a63;font-size:1.45rem}
.okicom-past-exams__detail-lead{margin:12px 0 0;color:#60778f;line-height:1.8}
.okicom-past-exams__mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.okicom-past-exams__mini-card{display:flex;min-height:110px;padding:17px;border-radius:16px;background:#f5f8fb;flex-direction:column;gap:7px}
.okicom-past-exams__mini-card strong{color:#123a63;font-size:1.05rem}
.okicom-past-exams__mini-card span{color:#61768b;font-size:.84rem;line-height:1.6}
.okicom-past-exams__grade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.okicom-past-exams__grade-card{display:flex;padding:18px;border:1px solid #efc7cc;border-radius:16px;background:#fff;flex-direction:column}
.okicom-past-exams__grade-card span{color:#bd2735;font-size:.7rem;font-weight:900;letter-spacing:.12em}
.okicom-past-exams__grade-card strong{margin-top:4px;color:#9f1f2c;font-size:1.35rem}
.okicom-past-exams__grade-card small{margin-top:8px;color:#7b6670;font-weight:700}
.okicom-past-exams__note{margin:15px 0 0;color:#7b6670;font-size:.84rem;line-height:1.7}
@media (max-width: 760px){
  .okicom-past-exams__detail-block{padding:20px;border-radius:19px}
  .okicom-past-exams__mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .okicom-past-exams__grade-grid{grid-template-columns:1fr;gap:9px}
  .okicom-past-exams__mini-card{min-height:96px;padding:14px}
  .okicom-past-exams__detail-heading h2{font-size:1.2rem}
}

/* 2026-08-11: desktop hero copy position, latest-title readability, guide-card links. */
@media (min-width: 761px) {
  .oj2-home .oj2-hero-content {
    transform: translateY(58px);
  }

  .oj2-home .oj2-latest-title {
    font-size: 18px !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 760px) {
  .oj2-home .oj2-latest-content {
    min-width: 0;
  }

  .oj2-home .oj2-latest-title {
    display: block;
    max-width: 100%;
    overflow: hidden;
    margin: 0 !important;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 15px !important;
    line-height: 1.35 !important;
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
  }
}

/* Cards on /juken-guide/ that are connected to university custom posts by JS. */
.okicom-guide-university-linked {
  position: relative;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}
.okicom-guide-university-linked:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(18,58,99,.10);
}
.okicom-guide-university-linked:focus-visible {
  outline: 3px solid rgba(36,119,183,.28);
  outline-offset: 3px;
}

/* 2026-08-11 v3: hero copy balance and exam-calendar terminology guide. */
@media (min-width: 761px) {
  .oj2-home .oj2-hero-content {
    transform: translateY(74px);
    width: min(760px, 67%);
  }

  .oj2-home .oj2-badge {
    padding: 10px 19px;
    font-size: 16px;
    line-height: 1.4;
  }

  .oj2-home .oj2-hero h1 {
    margin-top: 28px !important;
    margin-bottom: 20px !important;
  }

  .oj2-home .oj2-hero p {
    max-width: 720px;
    font-size: 17px;
    line-height: 1.9;
  }
}

.okicom-exam-guide {
  margin: 14px 0 4px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d7e5ee;
  border-radius: 16px;
}
.okicom-exam-guide summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 52px;
  padding: 12px 16px;
  color: #123a63;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}
.okicom-exam-guide summary::-webkit-details-marker { display: none; }
.okicom-exam-guide__toggle {
  position: relative;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #edf6fb;
}
.okicom-exam-guide__toggle::before,
.okicom-exam-guide__toggle::after {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  top: 13px;
  height: 2px;
  border-radius: 99px;
  background: #1479b8;
}
.okicom-exam-guide__toggle::after {
  transform: rotate(90deg);
  transition: transform .18s ease;
}
.okicom-exam-guide[open] .okicom-exam-guide__toggle::after { transform: rotate(0); }
.okicom-exam-guide__body {
  padding: 0 16px 16px;
  border-top: 1px solid #edf2f6;
}
.okicom-exam-guide__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
  padding-top: 14px;
}
.okicom-exam-guide__grid > div {
  padding: 12px 13px;
  background: #f8fbfd;
  border-radius: 12px;
}
.okicom-exam-guide__grid strong {
  display: block;
  margin-bottom: 4px;
  color: #123a63;
  font-size: .88rem;
}
.okicom-exam-guide__grid p {
  margin: 0;
  color: #60778f;
  font-size: .78rem;
  line-height: 1.65;
}
.okicom-exam-guide__link {
  display: inline-flex;
  margin-top: 13px;
  color: #1479b8;
  font-size: .82rem;
  font-weight: 900;
  text-decoration: none;
}

@media (max-width: 760px) {
  .oj2-home .oj2-badge {
    padding: 7px 11px;
    font-size: 12px;
  }
  .oj2-home .oj2-hero p {
    font-size: 12.5px;
    line-height: 1.72;
  }
  .okicom-exam-guide {
    margin-top: 10px;
    border-radius: 14px;
  }
  .okicom-exam-guide summary {
    min-height: 48px;
    padding: 10px 13px;
    font-size: .88rem;
  }
  .okicom-exam-guide__body {
    padding: 0 12px 13px;
  }
  .okicom-exam-guide__grid {
    grid-template-columns: 1fr;
    gap: 7px;
    padding-top: 10px;
  }
  .okicom-exam-guide__grid > div {
    padding: 10px 11px;
  }
  .okicom-exam-guide__grid strong { font-size: .82rem; }
  .okicom-exam-guide__grid p { font-size: .74rem; line-height: 1.55; }
}


/* 2026-08-11 v5: hero copy line balance and popular-topic readability. */
@media (min-width: 761px) {
  .oj2-home .oj2-hero-content {
    width: min(680px, 61%);
  }

  .oj2-home .oj2-hero-description {
    max-width: 650px;
    font-size: 17px;
    line-height: 1.9;
  }

  .oj2-home .oj2-hero-description > span {
    display: block;
  }

  .oj2-home .oj2-topic {
    min-height: 70px;
    padding: 15px 18px;
    font-size: 16px;
    line-height: 1.35;
  }
}

@media (max-width: 760px) {
  .oj2-home .oj2-hero-description > span {
    display: inline;
  }

  .oj2-home .oj2-hero-description > span:not(:last-child)::after {
    content: " ";
  }

  .oj2-home .oj2-topic-grid {
    gap: 9px;
  }

  .oj2-home .oj2-topic {
    min-height: 58px;
    padding: 10px 8px;
    font-size: 13px;
    line-height: 1.35;
  }
}

/* 2026-08-11: 受験の基礎知識 詳細5ページ */
.okicom-basic-guide{background:#f6f9fc;color:#0d345f;padding:36px 0 70px}.okicom-basic-guide__container{width:min(1040px,calc(100% - 40px));margin:0 auto}.okicom-basic-guide__breadcrumb{display:flex;flex-wrap:wrap;gap:8px;color:#6b8199;font-size:13px;margin:0 0 22px}.okicom-basic-guide__breadcrumb a{color:#2879b8;text-decoration:none}.okicom-basic-guide__article{background:#fff;border:1px solid #d9e7f2;border-radius:26px;box-shadow:0 12px 34px rgba(18,58,99,.06);overflow:hidden}.okicom-basic-guide__header{padding:42px 48px 34px;background:linear-gradient(135deg,#f7fbff,#eef7fb)}.okicom-basic-guide__eyebrow{margin:0 0 10px;color:#1785bf;font-size:13px;font-weight:800;letter-spacing:.12em}.okicom-basic-guide__header h1{margin:0;color:#0d345f;font-size:clamp(32px,4vw,48px);line-height:1.25}.okicom-basic-guide__summary{margin:16px 0 0;color:#58728d;font-size:17px;line-height:1.85}.okicom-basic-guide__content{padding:42px 48px 50px;color:#263f59;font-size:16px;line-height:1.95}.okicom-basic-guide__content h2{margin:46px 0 18px;padding-left:16px;border-left:6px solid #168bc1;color:#0d345f;font-size:27px;line-height:1.45}.okicom-basic-guide__content h2:first-child{margin-top:0}.okicom-basic-guide__content h3{margin:0 0 8px;color:#0d345f;font-size:20px}.okicom-basic-guide__content p{margin:0 0 18px}.okicom-basic-guide__content ul,.okicom-basic-guide__content ol{padding-left:1.45em;margin:0 0 24px}.okicom-basic-guide__content li{margin:7px 0}.okicom-basic-lead{font-size:18px;color:#355b79}.okicom-basic-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 28px}.okicom-basic-card{padding:22px 24px;border:1px solid #d8e6f0;border-radius:18px;background:#fbfdff}.okicom-basic-card p{margin-bottom:0}.okicom-basic-note{margin:26px 0;padding:18px 20px;border-radius:15px;background:#fff7e9;border-left:5px solid #ef7b21;color:#4b5562}.okicom-basic-source{margin-top:26px;padding-top:18px;border-top:1px solid #e2ebf2;font-size:14px}.okicom-basic-source a{color:#147ab5;font-weight:700}.okicom-basic-table{width:100%;border-collapse:separate;border-spacing:0;margin:22px 0 30px;border:1px solid #d8e6f0;border-radius:15px;overflow:hidden}.okicom-basic-table th,.okicom-basic-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #e5edf4;vertical-align:top}.okicom-basic-table tr:last-child td{border-bottom:0}.okicom-basic-table th{background:#edf7fc;color:#0d345f}.okicom-basic-report-preview{margin:18px 0 20px;padding:20px;border:2px solid #b8cfdf;border-radius:12px;background:#fff}.okicom-basic-report-preview__title{font-weight:800;color:#0d345f;border-bottom:2px solid #b8cfdf;padding-bottom:12px;margin-bottom:12px}.okicom-basic-report-preview__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.okicom-basic-report-preview__grid span{padding:12px;border:1px solid #d8e6f0;background:#f8fbfd;border-radius:7px}.okicom-basic-timeline{display:grid;gap:10px;margin:20px 0 24px}.okicom-basic-timeline div{display:grid;grid-template-columns:170px 1fr;gap:16px;align-items:center;padding:14px 18px;border:1px solid #d8e6f0;border-radius:12px;background:#fbfdff}.okicom-basic-timeline strong{color:#0d345f}.okicom-basic-guide__footer{padding:24px 48px 34px;border-top:1px solid #e5edf4}.okicom-basic-guide__footer a{color:#147ab5;font-weight:800;text-decoration:none}
@media(max-width:700px){.okicom-basic-guide{padding:18px 0 48px}.okicom-basic-guide__container{width:min(100% - 24px,1040px)}.okicom-basic-guide__article{border-radius:20px}.okicom-basic-guide__header{padding:28px 22px 24px}.okicom-basic-guide__header h1{font-size:30px}.okicom-basic-guide__summary{font-size:15px;line-height:1.75}.okicom-basic-guide__content{padding:26px 22px 34px;font-size:15px;line-height:1.85}.okicom-basic-guide__content h2{font-size:22px;margin-top:36px}.okicom-basic-lead{font-size:16px}.okicom-basic-cards{grid-template-columns:1fr;gap:12px}.okicom-basic-card{padding:18px}.okicom-basic-report-preview__grid{grid-template-columns:1fr}.okicom-basic-timeline div{grid-template-columns:1fr;gap:2px}.okicom-basic-guide__footer{padding:20px 22px 28px}.okicom-basic-table{font-size:13px}.okicom-basic-table th,.okicom-basic-table td{padding:11px 10px}}


/* 2026-08-12: grouped national/public general-selection dates. */
.okicom-exam-event.is-grouped{grid-template-columns:78px minmax(0,1fr);}
.okicom-exam-event.is-grouped .okicom-exam-event__content{min-width:0;}
.okicom-exam-group-details{margin-top:9px;}
.okicom-exam-group-details>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#1479b8;font-size:.8rem;font-weight:800;list-style:none;}
.okicom-exam-group-details>summary::-webkit-details-marker{display:none;}
.okicom-exam-group-details>summary::after{content:"＋";font-size:.85em;}
.okicom-exam-group-details[open]>summary::after{content:"−";}
.okicom-exam-group-list{display:grid;gap:7px;margin:9px 0 0;padding:0;list-style:none;}
.okicom-exam-group-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:10px;background:#f6fafc;color:#36536d;font-size:.8rem;}
.okicom-exam-group-list li span{display:grid;gap:2px;min-width:0}.okicom-exam-group-list li small{color:#6b7f91;font-size:.72rem;line-height:1.45;overflow-wrap:anywhere}
.okicom-exam-group-list a{flex:0 0 auto;color:#ef7a18;font-weight:900;text-decoration:none;}
.okicom-exam-event__targets{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 12px;align-items:start;margin-top:8px;color:#526d84;font-size:.8rem;line-height:1.55}.okicom-exam-event__targets>strong{color:#294c69}.okicom-exam-event__targets ul{display:flex;flex-wrap:wrap;gap:5px 8px;margin:0;padding:0;list-style:none}.okicom-exam-event__targets li{padding:3px 8px;border-radius:8px;background:#f2f7fa;overflow-wrap:anywhere}
.okicom-exam-target-schools>summary{width:100%;min-height:36px;justify-content:flex-start;padding:5px 0;box-sizing:border-box}.okicom-exam-target-schools>summary::after{content:"▼";margin-left:auto;font-size:.72em}.okicom-exam-target-schools[open]>summary::after{content:"▲"}
@media(max-width:600px){.okicom-exam-event.is-grouped{grid-template-columns:60px minmax(0,1fr)}.okicom-exam-group-list li{font-size:.72rem;padding:7px 8px}}
@media(max-width:600px){.okicom-exam-event__targets{grid-template-columns:1fr;gap:4px;margin-top:6px;font-size:.72rem}.okicom-exam-event__targets ul{display:grid;grid-template-columns:1fr;gap:4px}.okicom-exam-event__targets li{padding:4px 7px}.okicom-exam-event__content{min-width:0}.okicom-exam-target-schools>summary{min-height:44px}.okicom-exam-target-schools .okicom-exam-group-list{margin-top:5px}}

/* ===== v15 GENERAL ADMISSIONS PICKER: match FACULTY GUIDE exam modal ===== */
.okicom-modal.okicom-general-picker-modal .okicom-modal-backdrop{
  background:rgba(14,31,47,.58)!important;
  backdrop-filter:blur(2px)!important;
}
.okicom-modal.okicom-general-picker-modal .okicom-modal-dialog{
  position:relative!important;
  z-index:2!important;
  width:min(980px,calc(100% - 48px))!important;
  height:auto!important;
  max-height:calc(100vh - 70px)!important;
  margin:35px auto!important;
  overflow:auto!important;
  border:0!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(13,39,64,.24)!important;
}
.okicom-modal.okicom-general-picker-modal .okicom-modal-head{
  position:sticky!important;
  top:0!important;
  z-index:10!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  padding:22px 26px!important;
  border-bottom:1px solid #dce7ef!important;
  background:rgba(255,255,255,.98)!important;
}
.okicom-modal.okicom-general-picker-modal .okicom-modal-head h3{
  margin:2px 0 0!important;
  color:#173b67!important;
  font-size:1.55rem!important;
}
.okicom-modal.okicom-general-picker-modal .okicom-modal-close{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:9px 12px!important;
  border:1px solid #cddce7!important;
  border-radius:12px!important;
  background:#f7fafc!important;
  color:#173b67!important;
  font-weight:900!important;
  visibility:visible!important;
  opacity:1!important;
}
.okicom-modal.okicom-general-picker-modal .okicom-modal-body{
  padding:24px!important;
  background:#fff!important;
}
.okicom-general-picker-modal .okicom-general-picker-lead{
  margin:0 0 18px!important;
  padding:0!important;
  color:#607487!important;
  line-height:1.75!important;
  background:transparent!important;
}
.okicom-general-picker-modal .okicom-choice-label{
  margin:0 0 12px!important;
  color:#173b67!important;
  font-size:1.05rem!important;
  font-weight:800!important;
}
.okicom-general-picker-modal .okicom-choice-list{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}
.okicom-general-picker-modal .okicom-choice-button{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  min-height:64px!important;
  padding:16px 18px!important;
  border:1px solid #dce8f0!important;
  border-radius:15px!important;
  background:#f3f8fb!important;
  color:#173b67!important;
  font-size:1.02rem!important;
  font-weight:800!important;
  text-align:left!important;
  box-shadow:none!important;
}
.okicom-general-picker-modal .okicom-choice-button:hover,
.okicom-general-picker-modal .okicom-choice-button:focus-visible,
.okicom-general-picker-modal .okicom-choice-button.is-selected{
  border-color:#bcd4e4!important;
  background:#eaf3f9!important;
}
.okicom-general-picker-modal #okicom-general-department-wrap{
  margin-top:20px!important;
  padding-top:20px!important;
  border-top:1px solid #dbe6ee!important;
}
@media(max-width:700px){
  .okicom-modal.okicom-general-picker-modal .okicom-modal-dialog{
    width:calc(100% - 18px)!important;
    height:auto!important;
    max-height:calc(100dvh - 18px)!important;
    margin:9px auto!important;
    border-radius:16px!important;
  }
  .okicom-modal.okicom-general-picker-modal .okicom-modal-head{
    padding:16px!important;
  }
  .okicom-modal.okicom-general-picker-modal .okicom-modal-head h3{
    font-size:1.25rem!important;
  }
  .okicom-modal.okicom-general-picker-modal .okicom-modal-close{
    min-width:48px!important;
    width:auto!important;
    height:48px!important;
    padding:0 12px!important;
  }
  .okicom-modal.okicom-general-picker-modal .okicom-modal-body{
    padding:14px!important;
  }
  .okicom-general-picker-modal .okicom-choice-list{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .okicom-general-picker-modal .okicom-choice-button{
    min-height:60px!important;
    padding:14px 16px!important;
    border-radius:14px!important;
    font-size:1rem!important;
  }
}

/* v17: 入試カレンダー - 入試方式と日程種別を視覚的に区別 */
.okicom-exam-badge.is-sogo{background:#ef7a18;color:#fff}
.okicom-exam-badge.is-recommend{background:#258b8e;color:#fff}
.okicom-exam-badge.is-general{background:#245f9f;color:#fff}
.okicom-exam-badge.is-common{background:#7357b5;color:#fff}
.okicom-exam-event-type{border:1px solid transparent}
.okicom-exam-event-type.is-application-start{background:#e7f4ff;color:#176ca5;border-color:#c8e5f8}
.okicom-exam-event-type.is-application-deadline{background:#fff0f0;color:#ba3e45;border-color:#f3ced1}
.okicom-exam-event-type.is-exam-day{background:#fff4df;color:#a65b00;border-color:#f3d7a5}
.okicom-exam-event-type.is-result-day{background:#eaf7ee;color:#257343;border-color:#cce7d4}
.okicom-exam-event-type.is-other{background:#edf3f7;color:#516c84;border-color:#d8e3ea}
/* v39: カード左端の色帯を廃止。日付ボックス側にごく薄い色差を持たせる。 */
.okicom-exam-event{border-left:1px solid #d5e4ed}
.okicom-exam-event[data-event-type="出願開始"] .okicom-exam-date{background:#eef8ff;border:1px solid #d5ebf8}
.okicom-exam-event[data-event-type="出願締切"] .okicom-exam-date{background:#fff5f5;border:1px solid #f2dddd}
.okicom-exam-event[data-event-type="試験日"] .okicom-exam-date{background:#fff8ec;border:1px solid #f0e0c2}
.okicom-exam-event[data-event-type="合格発表"] .okicom-exam-date{background:#f0f8f2;border:1px solid #d8eadc}

/* =========================================================
   Past exam explanation v23: compact reading layout
   ========================================================= */
.okicom-exp-article{
  padding-top:18px;
  padding-bottom:40px;
}
.okicom-exp-breadcrumb{
  padding-top:10px;
  margin-bottom:0;
}
.okicom-exp-header{
  padding:22px 28px;
  margin-bottom:12px;
}
.okicom-exp-eyebrow{
  margin-bottom:4px;
}
.okicom-exp-header h1{
  margin-bottom:8px;
}
.okicom-exp-info-bar{
  margin-top:0;
  padding:9px 11px;
  gap:10px;
}
.okicom-exp-official-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex:0 0 auto;
  padding:10px 16px;
  border-radius:8px;
  background:#123a63;
  color:#fff !important;
  text-decoration:none !important;
  font-size:.9rem;
  font-weight:800;
  line-height:1.2;
  box-shadow:0 4px 10px rgba(18,58,99,.14);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.okicom-exp-official-button:visited{color:#fff !important;}
.okicom-exp-official-button:hover{
  background:#0d3157;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(18,58,99,.2);
}
.okicom-exp-official-button span{
  font-size:1em;
  line-height:1;
}
.okicom-exp-copyright-note{
  margin-top:10px;
  padding-top:9px;
}
.okicom-exp-featured{
  margin-bottom:12px;
}
.okicom-exp-content{
  padding:22px 32px;
  line-height:1.72;
}
.okicom-exp-content p{
  margin-top:0;
  margin-bottom:.72em;
}
.okicom-exp-content ul,
.okicom-exp-content ol{
  margin-top:.35em;
  margin-bottom:.72em;
}
.okicom-exp-content li + li{
  margin-top:.18em;
}
.okicom-exp-content h2{
  margin:1.1em 0 .42em;
  padding-bottom:.28em;
}
.okicom-exp-content > h2:first-child{
  margin-top:0;
}
.okicom-exp-content h3{
  margin:.8em 0 .3em;
}
.okicom-exp-content h4{
  margin:.68em 0 .25em;
}
.okicom-exp-content hr,
.okicom-exp-content .wp-block-separator{
  margin:1em 0;
}
.okicom-exp-content blockquote{
  margin:.8em 0;
}

@media(max-width:720px){
  .okicom-exp-article{padding-top:12px;padding-bottom:32px;}
  .okicom-exp-header{padding:18px 16px;margin-bottom:10px;}
  .okicom-exp-content{padding:18px 16px;line-height:1.68;}
  .okicom-exp-info-bar{padding:9px 10px;}
  .okicom-exp-official-button{display:flex;width:100%;box-sizing:border-box;margin-top:8px;}
  .okicom-exp-content h2{margin-top:.95em;}
  .okicom-exp-content h3{margin-top:.72em;}
  .okicom-exp-content h4{margin-top:.62em;}
}


/* =========================================================
   Past exam explanation v26: study accents + tighter rhythm
   - Important vocabulary: teal chips
   - Answers: green accent
   - Strategy section: warm orange accent
   ========================================================= */
.okicom-exp-header{
  padding:20px 26px;
}
.okicom-exp-content{
  padding:18px 30px 22px;
  line-height:1.66;
}
.okicom-exp-content p{margin-bottom:.58em;}
.okicom-exp-content ul,
.okicom-exp-content ol{margin-top:.28em;margin-bottom:.6em;}
.okicom-exp-content h2{margin:.9em 0 .34em;padding-bottom:.22em;}
.okicom-exp-content h3{margin:.68em 0 .24em;}
.okicom-exp-content h4{margin:.52em 0 .2em;}
.okicom-exp-content hr,
.okicom-exp-content .wp-block-separator{margin:.75em 0;}

/* 本文の流れ：青系アクセント */
.okicom-exp-content .okicom-exp-flow-heading{
  position:relative;
  padding-left:14px;
  border-left:5px solid #2f80b7;
}

/* 重要語句 */
.okicom-exp-content .okicom-exp-keywords-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:.5em 0 .25em;
  padding:5px 10px;
  border-radius:999px;
  background:#e7f6f4;
  color:#176a69;
  font-size:.86rem;
  font-weight:900;
  letter-spacing:.02em;
}
.okicom-exp-content .okicom-exp-keywords-list{
  display:flex;
  flex-wrap:wrap;
  gap:7px 8px;
  margin:.15em 0 .7em;
  padding:0;
  list-style:none;
}
.okicom-exp-content .okicom-exp-keywords-list li{
  margin:0;
  padding:6px 10px;
  border:1px solid #c9e8e4;
  border-radius:9px;
  background:#f4fbfa;
  color:#315b5a;
  font-size:.91rem;
  line-height:1.45;
}
.okicom-exp-content .okicom-exp-keywords-list code{
  padding:0;
  background:transparent;
  color:#0d5b67;
  font-family:inherit;
  font-weight:900;
}

/* 正解：設問名を増やさず、答えそのものを目立たせる */
.okicom-exp-content .okicom-exp-answer-heading{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  margin:.42em 0 .2em;
  padding:7px 11px;
  border:1px solid #cfe8d9;
  border-left:5px solid #3b8d62;
  border-radius:9px;
  background:#f0f9f4;
  color:#1f6846;
  font-size:1rem;
  line-height:1.4;
  box-sizing:border-box;
}
.okicom-exp-content .okicom-exp-answer-heading strong{color:inherit;}

/* 根拠語句 */
.okicom-exp-content .okicom-exp-evidence{
  margin:.35em 0 .6em;
  padding:7px 10px;
  border-radius:8px;
  background:#f2f7fb;
  color:#355d7c;
  font-size:.9rem;
}

/* 攻略ポイント */
.okicom-exp-content .okicom-exp-strategy-heading{
  margin-top:.8em;
  padding:12px 15px;
  border:1px solid #f1d2a7;
  border-left:6px solid #e88924;
  border-radius:10px;
  background:#fff7eb;
  color:#8a4b0d;
}
.okicom-exp-content .okicom-exp-strategy-body{
  padding-left:14px;
  padding-right:14px;
  border-left:2px solid #f4dfc2;
}

/* 無料/追加学習への案内 */
.okicom-exp-content .okicom-exp-more-heading{
  margin-top:.8em;
  padding-left:12px;
  border-left:5px solid #7b68aa;
  color:#4d3f78;
}
.okicom-exp-content .okicom-exp-more-body{
  padding:10px 13px;
  border:1px solid #e2dcf1;
  border-radius:10px;
  background:#f8f6fc;
}

@media(max-width:720px){
  .okicom-exp-header{padding:17px 15px;}
  .okicom-exp-content{padding:16px 15px 20px;line-height:1.64;}
  .okicom-exp-content h2{margin-top:.78em;}
  .okicom-exp-content h3{margin-top:.6em;}
  .okicom-exp-content h4{margin-top:.46em;}
  .okicom-exp-content .okicom-exp-keywords-list{gap:6px;}
  .okicom-exp-content .okicom-exp-keywords-list li{font-size:.87rem;padding:6px 8px;}
  .okicom-exp-content .okicom-exp-strategy-body{padding-left:10px;padding-right:6px;}
}

/* =========================================================
   Past exam explanation v27: cleaner textbook-style accents
   - Answer labels: solid green + white text
   - Strategy heading: single soft orange surface, no side bar
   - Remove heavy side-bar accents from study labels
   ========================================================= */
.okicom-exp-content .okicom-exp-answer-heading{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  margin:.38em 0 .18em;
  padding:7px 12px;
  border:0;
  border-radius:7px;
  background:#23734d;
  color:#fff;
  font-size:1rem;
  line-height:1.4;
  font-weight:800;
  box-shadow:none;
}
.okicom-exp-content .okicom-exp-answer-heading strong{
  color:#fff;
}

.okicom-exp-content .okicom-exp-strategy-heading{
  margin-top:.72em;
  padding:10px 14px;
  border:0;
  border-radius:7px;
  background:#f4a340;
  color:#fff;
  box-shadow:none;
}
.okicom-exp-content .okicom-exp-strategy-body{
  padding-left:0;
  padding-right:0;
  border-left:0;
}

.okicom-exp-content .okicom-exp-keywords-label{
  border:0;
  border-radius:7px;
  background:#dff3f0;
  color:#176a69;
  box-shadow:none;
}
.okicom-exp-content .okicom-exp-keywords-list li{
  border:0;
  border-radius:7px;
  background:#eef8f7;
  box-shadow:none;
}

.okicom-exp-content .okicom-exp-flow-heading{
  padding-left:0;
  border-left:0;
}
.okicom-exp-content .okicom-exp-more-heading{
  padding-left:0;
  border-left:0;
}

@media(max-width:720px){
  .okicom-exp-content .okicom-exp-answer-heading{padding:6px 10px;}
  .okicom-exp-content .okicom-exp-strategy-heading{padding:9px 11px;}
}

/* =========================================================
   V30: Subject strategy hub + university source library links
   ========================================================= */
.university-exam-card--strategy{
  background:#eef5ff;
  border-color:#cbdcf1;
}
.university-exam-card--strategy strong{color:#173b67;}

.okicom-exp-parent-guide{
  margin:10px 0 0;
}
.okicom-exp-parent-guide a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:800;
  color:#1d5e96;
  text-decoration:none;
}
.okicom-exp-parent-guide a:hover{text-decoration:underline;}

.okicom-guide-single,
.okicom-guide-archive{
  background:#f3f6f9;
  padding:34px 0 60px;
}
.okicom-guide-article{
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 28px rgba(20,54,88,.06);
}
.okicom-guide-header{
  padding:38px 42px 28px;
  border-bottom:1px solid #e4eaf0;
}
.okicom-guide-header h1{
  margin:8px 0 18px;
  color:#103e6c;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.25;
}
.okicom-guide-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:16px;
}
.okicom-guide-meta-row span{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:#eef3f8;
  color:#3d5874;
  font-size:.92rem;
  font-weight:700;
}
.okicom-guide-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.okicom-guide-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:8px;
  background:#173b67;
  color:#fff;
  text-decoration:none;
  font-weight:800;
}
.okicom-guide-actions a+ a{
  background:#fff;
  color:#173b67;
  border:1px solid #b8c9da;
}
.okicom-guide-content{
  padding:34px 42px 10px;
  color:#273a4d;
  line-height:1.9;
}
.okicom-guide-content h2{
  margin:1.35em 0 .6em;
  padding-bottom:10px;
  border-bottom:1px solid #d9e4ee;
  color:#103e6c;
}
.okicom-guide-content h3{color:#1d5e96;}
.okicom-guide-content p{margin:.75em 0;}
.okicom-guide-years{
  margin:18px 42px 42px;
  padding-top:24px;
  border-top:2px solid #173b67;
}
.okicom-guide-years h2{
  margin:0 0 16px;
  color:#103e6c;
}
.okicom-guide-year-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:12px;
}
.okicom-guide-year-card{
  position:relative;
  display:block;
  padding:16px;
  border:1px solid #dce5ed;
  border-radius:12px;
  background:#fff;
  color:#1f3448;
  text-decoration:none;
}
.okicom-guide-year-card:hover{
  border-color:#9eb7cf;
  transform:translateY(-1px);
}
.okicom-guide-year-card>div{
  display:flex;
  gap:8px;
  color:#60758a;
  font-size:.88rem;
  margin-bottom:7px;
}
.okicom-guide-year-card strong{
  display:block;
  padding-right:74px;
}
.okicom-guide-year-card em{
  position:absolute;
  right:12px;
  top:12px;
  padding:4px 8px;
  border-radius:999px;
  font-size:.76rem;
  font-style:normal;
  font-weight:800;
}
.okicom-guide-year-card em.is-free{background:#1f8a57;color:#fff;}
.okicom-guide-year-card em.is-member{background:#eef1f4;color:#53606d;}

@media(max-width:720px){
  .okicom-guide-single,.okicom-guide-archive{padding:20px 0 40px;}
  .okicom-guide-header{padding:26px 20px 20px;}
  .okicom-guide-content{padding:24px 20px 8px;}
  .okicom-guide-years{margin:14px 20px 28px;}
  .okicom-guide-actions a{width:100%;}
}


/* =========================================================
   V34: paragraph-by-paragraph long-reading explanation
   ========================================================= */
.okicom-exp-content .okicom-exp-paragraph-heading{
  margin:.72em 0 .3em;
  padding:9px 12px;
  border-radius:7px;
  background:#eef5fb;
  color:#174f7a;
  font-size:1.12rem;
  line-height:1.45;
}
.okicom-exp-content .okicom-exp-reading-point{
  margin:.32em 0 .45em;
  padding:8px 10px;
  border-radius:7px;
  background:#f6f8fb;
  color:#334b61;
}
.okicom-exp-content .okicom-exp-reading-point strong{
  color:#1b5c8d;
}
@media(max-width:720px){
  .okicom-exp-content .okicom-exp-paragraph-heading{padding:8px 10px;font-size:1.03rem;}
  .okicom-exp-content .okicom-exp-reading-point{padding:7px 9px;}
}


/* =========================================================
   V35: mobile strategy CTA + readable strategy tables + compact past-exam hub
   ========================================================= */
.okicom-exp-parent-guide{
  margin:12px 0 0;
}
.okicom-exp-parent-guide a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 15px;
  border-radius:10px;
  background:#e97824;
  color:#fff !important;
  font-weight:800;
  line-height:1.35;
  text-decoration:none !important;
  box-shadow:0 4px 10px rgba(233,120,36,.18);
  transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.okicom-exp-parent-guide a:hover{
  background:#d86616;
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(233,120,36,.24);
  text-decoration:none;
}

/* Subject-strategy tables: avoid tall, one-character wrapping on phones. */
.okicom-guide-content .wp-block-table{
  margin:16px 0 24px;
  overflow-x:visible;
}
.okicom-guide-content table.okicom-guide-table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  font-size:.9rem;
  line-height:1.55;
}
.okicom-guide-content table.okicom-guide-table th,
.okicom-guide-content table.okicom-guide-table td{
  min-width:0;
  padding:8px 7px;
  vertical-align:middle;
  border:1px solid #25415d;
  overflow-wrap:anywhere;
  word-break:normal;
}
.okicom-guide-content table.okicom-guide-table th{
  font-weight:800;
  color:#203a55;
  background:#f6f9fc;
}
.okicom-guide-content table.okicom-guide-table--trend th:nth-child(1),
.okicom-guide-content table.okicom-guide-table--trend td:nth-child(1){width:16%;white-space:nowrap;text-align:center;}
.okicom-guide-content table.okicom-guide-table--trend th:nth-child(2),
.okicom-guide-content table.okicom-guide-table--trend td:nth-child(2){width:36%;}
.okicom-guide-content table.okicom-guide-table--trend th:nth-child(n+3),
.okicom-guide-content table.okicom-guide-table--trend td:nth-child(n+3){width:16%;}
.okicom-guide-content table.okicom-guide-table--structure th:nth-child(1),
.okicom-guide-content table.okicom-guide-table--structure td:nth-child(1){width:12%;white-space:nowrap;text-align:center;}
.okicom-guide-content table.okicom-guide-table--structure th:nth-child(2),
.okicom-guide-content table.okicom-guide-table--structure td:nth-child(2){width:31%;}
.okicom-guide-content table.okicom-guide-table--structure th:nth-child(3),
.okicom-guide-content table.okicom-guide-table--structure td:nth-child(3){width:12%;white-space:nowrap;text-align:center;}
.okicom-guide-content table.okicom-guide-table--structure th:nth-child(4),
.okicom-guide-content table.okicom-guide-table--structure td:nth-child(4){width:45%;}

@media(max-width:720px){
  .okicom-exp-parent-guide{margin-top:10px;}
  .okicom-exp-parent-guide a{
    width:100%;
    box-sizing:border-box;
    padding:11px 14px;
    font-size:.94rem;
  }

  .okicom-guide-content{
    padding:20px 14px 6px;
    line-height:1.78;
  }
  .okicom-guide-content h2{
    margin:1.2em 0 .5em;
    padding-bottom:8px;
    font-size:1.48rem;
  }
  .okicom-guide-content .wp-block-table{
    width:100%;
    margin:12px 0 20px;
  }
  .okicom-guide-content table.okicom-guide-table{
    display:table;
    width:100%;
    min-width:0;
    font-size:.72rem;
    line-height:1.45;
    letter-spacing:0;
  }
  .okicom-guide-content table.okicom-guide-table th,
  .okicom-guide-content table.okicom-guide-table td{
    padding:6px 4px;
    min-width:0;
  }
  .okicom-guide-content table.okicom-guide-table th{
    font-size:.74rem;
    line-height:1.35;
  }

  /* Keep the university past-exam choices visually grouped instead of three floating cards. */
  .page-university-database #past-exams{
    padding-top:38px;
    padding-bottom:38px;
  }
  .page-university-database #past-exams .ru-section-header{
    margin-bottom:18px;
  }
  .page-university-database #past-exams .ru-section-text{
    margin-top:8px;
    line-height:1.75;
  }
  .page-university-database #past-exams .university-exam-links{
    gap:8px;
    padding:9px;
    border:1px solid #d9e5ef;
    border-radius:18px;
    background:rgba(255,255,255,.88);
    box-shadow:0 8px 22px rgba(30,62,88,.06);
  }
  .page-university-database #past-exams .university-exam-card{
    min-height:0;
    padding:16px 18px;
    border-radius:12px;
    box-shadow:none;
  }
  .page-university-database #past-exams .university-exam-card strong{
    font-size:1.16rem;
    line-height:1.4;
  }
  .page-university-database #past-exams .university-exam-card span{
    margin-top:6px;
    font-size:.83rem;
    line-height:1.5;
  }
  .page-university-database #past-exams .university-exam-card--strategy{
    background:#eef5ff;
    border-color:#c8daee;
  }
  .page-university-database #past-exams .university-exam-card--orange{
    background:#e97824;
    border-color:#e97824;
  }
  .page-university-database #past-exams .ru-attention{
    margin-top:12px !important;
    padding:15px 16px;
    border-radius:14px;
    font-size:.87rem;
    line-height:1.7;
  }
}

/* =========================================================
   V36: university strategy hub + subject entry cards
   ========================================================= */
.okicom-strategy-subject-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.okicom-strategy-subject-card{
  display:flex;
  min-height:150px;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  padding:22px;
  border:1px solid #d7e4ef;
  border-radius:18px;
  background:#fff;
  color:#173b67;
  text-decoration:none;
  box-shadow:0 7px 20px rgba(35,69,99,.06);
}
.okicom-strategy-subject-card strong{font-size:1.45rem;line-height:1.3;}
.okicom-strategy-subject-card>span:last-child{color:#3f678c;font-weight:700;line-height:1.55;}
.okicom-strategy-subject-university{font-size:.82rem;font-weight:800;color:#e97824;}
.okicom-strategy-subject-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(35,69,99,.1);}
@media(max-width:720px){
  .okicom-strategy-subject-grid{grid-template-columns:1fr;gap:11px;}
  .okicom-strategy-subject-card{min-height:0;padding:17px 18px;border-radius:14px;gap:7px;}
  .okicom-strategy-subject-card strong{font-size:1.22rem;}
  .okicom-strategy-subject-card>span:last-child{font-size:.9rem;}
}

/* ===== v45 CAPACITY NESTED TRACKS ===== */
.fg-capacity-department{background:#eef5fa}
.fg-capacity-track-list{display:grid;gap:7px;margin-left:22px;padding-left:12px;border-left:2px solid #dce8f1}
.fg-capacity-track-item{background:#fff}
.fg-capacity-track-item .fg-capacity-name{font-weight:750}
@media(max-width:700px){
  .fg-capacity-track-list{margin-left:10px;padding-left:8px;gap:6px}
  .fg-capacity-track-item{padding-left:10px}
}

/* =========================================================
   V48: Faculty guide capacity modal / compact action row
   ========================================================= */
.fg-hero-actions--three{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:22px;
}
.fg-hero-actions--three .ru-button{
  width:100%;
  min-height:58px;
  padding:13px 14px;
  justify-content:center;
  text-align:center;
}
.fg-exam-primary-action{margin-top:18px}
.fg-exam-primary-action .ru-button{width:100%;justify-content:center;min-height:58px}
.fg-capacity-modal .fg-exam-modal-dialog{width:min(860px,calc(100% - 48px))}
.fg-capacity-list--modal{margin:0;gap:12px}
.fg-capacity-list--modal .fg-capacity-item{background:#f4f8fb}
.fg-capacity-list--modal .fg-capacity-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
}
.fg-capacity-list--modal .fg-capacity-values{
  justify-self:end;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.fg-capacity-list--modal .fg-capacity-track-list{
  margin:4px 0 0 20px;
  padding-left:14px;
  border-left:2px solid #dce8f0;
  display:grid;
  gap:8px;
}
.fg-capacity-list--modal .fg-capacity-track-item{background:#fff}
@media(max-width:700px){
  .fg-hero-actions--three{grid-template-columns:1fr;gap:9px;margin-top:18px}
  .fg-hero-actions--three .ru-button{min-height:54px}
  .fg-exam-primary-action{margin-top:12px}
  .fg-capacity-modal .fg-exam-modal-dialog{width:calc(100% - 18px)}
  .fg-capacity-list--modal .fg-capacity-main{
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:start;
  }
  .fg-capacity-list--modal .fg-capacity-name{
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:anywhere;
    padding-top:5px;
  }
  .fg-capacity-list--modal .fg-capacity-values{
    justify-self:end;
    justify-content:flex-end;
    max-width:58vw;
  }
  .fg-capacity-list--modal .fg-capacity-track-list{margin-left:8px;padding-left:10px}
}

/* =========================================================
   V49: Faculty popup reliability / balanced actions / tuition normalization
   ========================================================= */
.fg-page .fg-capacity-button{
  background:#2f7d86;
  border:1px solid #2f7d86;
  color:#fff;
  cursor:pointer;
}
.fg-page .fg-capacity-button:hover,
.fg-page .fg-capacity-button:focus-visible{
  background:#276d75;
  border-color:#276d75;
  color:#fff;
}

/* Show “× 閉じる” consistently on faculty popups, including phones. */
.fg-page .fg-exam-modal-close,
.okicom-modal.fg-exam-modal .fg-exam-modal-close{
  width:auto!important;
  height:auto!important;
  min-width:92px!important;
  min-height:44px!important;
  padding:9px 12px!important;
  white-space:nowrap;
}
.fg-page .fg-exam-modal-close span,
.okicom-modal.fg-exam-modal .fg-exam-modal-close span{display:inline!important}

/* Tuition/support: consistent sizes and intentional two-line regional values. */
.page-university-database .university-tuition-stat{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
}
.page-university-database .university-tuition-stat strong{
  word-break:keep-all;
  overflow-wrap:normal;
}
.page-university-database .university-tuition-stat.is-multiline strong{
  font-size:20px;
  line-height:1.45;
}
.page-university-database .university-tuition-value-line{
  display:block;
  white-space:nowrap;
}
.page-university-database .university-tuition-value-line + .university-tuition-value-line{margin-top:4px}
.page-university-database .university-tuition-card h3{font-size:19px}
.page-university-database .university-tuition-card p,
.page-university-database .university-tuition-card dt,
.page-university-database .university-tuition-card dd{font-size:15px}
@media(max-width:700px){
  .page-university-database .university-tuition-stat{padding:18px 16px}
  .page-university-database .university-tuition-stat span{font-size:13px}
  .page-university-database .university-tuition-stat strong{font-size:23px;line-height:1.35}
  .page-university-database .university-tuition-stat.is-multiline strong{font-size:18px;line-height:1.5}
  .page-university-database .university-tuition-grid{gap:12px;margin-top:14px}
  .page-university-database .university-tuition-card{padding:18px}
  .page-university-database .university-tuition-card h3{font-size:18px;margin-bottom:10px}
  .page-university-database .university-tuition-card p,
  .page-university-database .university-tuition-card dt,
  .page-university-database .university-tuition-card dd{font-size:14px;line-height:1.65}
  .page-university-database .university-tuition-card dl div{gap:12px;padding:10px 0}
  .page-university-database .university-tuition-card dd .university-tuition-value-line{font-size:14px}
}


/* =========================================================
   V50: faculty action hit-area + tuition typography polish
   ========================================================= */

/* Decorative hero ring must never cover/take taps from action buttons. */
.ru-hero::after{
  pointer-events:none !important;
}
.fg-page .fg-hero-card,
.fg-page .fg-hero-main,
.fg-page .fg-hero-actions,
.fg-page .fg-hero-actions .ru-button,
.fg-page .fg-exam-primary-action,
.fg-page .fg-exam-primary-action .ru-button{
  position:relative;
  z-index:2;
}

/* Make the full visible capacity button reliably tappable. */
.fg-page .fg-capacity-button{
  display:flex !important;
  width:100% !important;
  position:relative;
  z-index:3;
  pointer-events:auto !important;
  touch-action:manipulation;
}
.fg-page .fg-capacity-button > *{
  pointer-events:none;
}

/* Tuition cards: keep amount hierarchy readable and consistent across universities. */
.page-university-database .university-tuition-stat{
  padding:20px 18px;
}
.page-university-database .university-tuition-stat > span{
  font-size:13px;
  line-height:1.4;
}
.page-university-database .university-tuition-stat strong{
  margin-top:7px;
  font-size:22px !important;
  line-height:1.35 !important;
  letter-spacing:.005em;
}
.page-university-database .university-tuition-stat.is-multiline strong{
  font-size:18px !important;
  line-height:1.55 !important;
}
.page-university-database .university-tuition-stat--accent strong{
  font-size:21px !important;
}
.page-university-database .university-tuition-stat--accent.is-multiline strong{
  font-size:18px !important;
}
.page-university-database .university-tuition-value-line{
  line-height:inherit;
}
.page-university-database .university-tuition-card dd{
  font-size:15px;
  font-weight:800;
  line-height:1.5;
}
@media(max-width:700px){
  .page-university-database .university-tuition-stat{
    padding:17px 14px;
    min-height:0;
  }
  .page-university-database .university-tuition-stat > span{
    font-size:12.5px;
  }
  .page-university-database .university-tuition-stat strong{
    margin-top:6px;
    font-size:19px !important;
    line-height:1.38 !important;
  }
  .page-university-database .university-tuition-stat.is-multiline strong,
  .page-university-database .university-tuition-stat--accent.is-multiline strong{
    font-size:16.5px !important;
    line-height:1.55 !important;
  }
  .page-university-database .university-tuition-stat--accent strong{
    font-size:18.5px !important;
  }
  .page-university-database .university-tuition-value-line + .university-tuition-value-line{
    margin-top:2px;
  }
  .page-university-database .university-tuition-card dd{
    font-size:13.5px;
    line-height:1.55;
  }
}


/* =========================================================
   V51: flexible capacity breakdowns for public/private universities
   ========================================================= */
.fg-capacity-quota-public{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fg-capacity-quota-public>span{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid #d6e2eb;border-radius:8px;background:#fff;white-space:nowrap}
.fg-capacity-quota-public small{font-size:.7rem;color:#66788a;font-weight:800}
.fg-capacity-quota-public strong{font-size:.86rem;color:#ef861b;font-weight:900}
@media(max-width:700px){
  .fg-capacity-quota-public{gap:5px;margin-top:7px}
  .fg-capacity-quota-public>span{padding:4px 7px;gap:4px}
  .fg-capacity-quota-public small{font-size:.64rem}
  .fg-capacity-quota-public strong{font-size:.8rem}
}


/* =========================================================
   V52: compact university cards + tuition readability
        + faculty/department official-link picker
   ========================================================= */

/* Top university cards: the description was identical in purpose, so remove its space. */
.oj2-home .oj2-university-card{
  padding-top:20px;
  padding-bottom:18px;
}
.oj2-home .oj2-university-card h3{
  margin-bottom:18px !important;
}
.oj2-home .oj2-card-link{
  margin-top:0;
}
@media(max-width:700px){
  .oj2-home .oj2-university-card{
    padding-top:15px;
    padding-bottom:14px;
  }
  .oj2-home .oj2-university-card h3{
    margin-bottom:13px !important;
  }
  .oj2-home .oj2-card-link{
    padding-top:10px;
  }
}

/* Tuition: make all principal amounts as readable as annual tuition.
   Multiline regional amounts stay on two lines but no longer look secondary. */
.page-university-database .university-tuition-stat > span{
  color:#526a80 !important;
}
.page-university-database .university-tuition-stat strong,
.page-university-database .university-tuition-stat--accent strong{
  color:#183f60 !important;
  font-weight:900 !important;
}
.page-university-database .university-tuition-stat strong{
  font-size:24px !important;
}
.page-university-database .university-tuition-stat.is-multiline strong,
.page-university-database .university-tuition-stat--accent.is-multiline strong{
  font-size:21px !important;
  line-height:1.48 !important;
}
.page-university-database .university-tuition-stat--accent strong{
  font-size:23px !important;
}
.page-university-database .university-tuition-card dd{
  color:#183f60 !important;
  font-size:17px !important;
  line-height:1.5 !important;
}
@media(max-width:700px){
  .page-university-database .university-tuition-stat{
    padding:18px 14px;
  }
  .page-university-database .university-tuition-stat strong{
    font-size:21px !important;
    line-height:1.4 !important;
  }
  .page-university-database .university-tuition-stat.is-multiline strong,
  .page-university-database .university-tuition-stat--accent.is-multiline strong{
    font-size:19px !important;
    line-height:1.5 !important;
  }
  .page-university-database .university-tuition-stat--accent strong{
    font-size:20px !important;
  }
  .page-university-database .university-tuition-card dd,
  .page-university-database .university-tuition-card dd .university-tuition-value-line{
    font-size:16px !important;
    line-height:1.55 !important;
  }
}

/* Department/course official-link picker. */
.fg-official-link-list{
  display:grid;
  gap:10px;
}
.fg-official-link-list a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 16px;
  border:1px solid #d9e5ee;
  border-radius:12px;
  background:#fff;
  color:#153f68;
  font-weight:800;
  text-decoration:none;
}
.fg-official-link-list a:hover{
  background:#f5f9fc;
}
@media(max-width:700px){
  .fg-official-link-list a{
    padding:13px 14px;
    font-size:14px;
  }
}


/* V53: tuition official link inside the total-cost card */
.page-university-database .university-tuition-inline-official{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #e4ebf1;
  color:#e97816;
  font-weight:800;
  font-size:14px;
  line-height:1.45;
  text-decoration:none;
}
.page-university-database .university-tuition-inline-official:hover{
  text-decoration:underline;
}
@media(max-width:700px){
  .page-university-database .university-tuition-inline-official{
    display:flex;
    margin-top:12px;
    padding-top:11px;
    font-size:13.5px;
  }
}


/* =========================================================
   V60: faculty exam modal - vertical scrolling only on mobile
   ========================================================= */
@media(max-width:700px){
  .fg-page .fg-exam-modal,
  .fg-page .fg-exam-modal-dialog,
  .fg-page .fg-exam-modal-body,
  .fg-page .fg-exam-sheet,
  .fg-page .fg-exam-block,
  .okicom-modal.fg-exam-modal,
  .okicom-modal.fg-exam-modal .fg-exam-modal-dialog,
  .okicom-modal.fg-exam-modal .fg-exam-modal-body{
    max-width:100%;
    box-sizing:border-box;
  }

  .fg-page .fg-exam-modal-dialog,
  .okicom-modal.fg-exam-modal .fg-exam-modal-dialog{
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  .fg-page .fg-exam-modal-body,
  .okicom-modal.fg-exam-modal .fg-exam-modal-body,
  .fg-page .fg-exam-sheet,
  .fg-page .fg-exam-block{
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  /* Long subject/condition lines should wrap instead of creating a horizontal scroller. */
  .fg-page .okicom-subject-lines,
  .okicom-modal.fg-exam-modal .okicom-subject-lines{
    width:100% !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }
  .fg-page .okicom-subject-line,
  .okicom-modal.fg-exam-modal .okicom-subject-line{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  .fg-page .fg-exam-block p,
  .okicom-modal.fg-exam-modal .fg-exam-block p,
  .fg-page .fg-exam-note p,
  .okicom-modal.fg-exam-modal .fg-exam-note p{
    max-width:100%;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
}


/* =========================================================
   V61: faculty exam modal - close button + mobile density
   ========================================================= */
.fg-page .fg-exam-modal-close,
.okicom-modal.fg-exam-modal .fg-exam-modal-close{
  width:auto !important;
  height:auto !important;
  min-width:92px !important;
  min-height:44px !important;
  padding:9px 12px !important;
  border:1px solid #cddce7 !important;
  border-radius:10px !important;
  background:#f7fafc !important;
  color:#173b67 !important;
  box-shadow:none !important;
  outline:none !important;
}
.fg-page .fg-exam-modal-close span,
.okicom-modal.fg-exam-modal .fg-exam-modal-close span{
  display:inline !important;
}
.fg-page .fg-exam-modal-close:focus,
.fg-page .fg-exam-modal-close:focus-visible,
.okicom-modal.fg-exam-modal .fg-exam-modal-close:focus,
.okicom-modal.fg-exam-modal .fg-exam-modal-close:focus-visible{
  box-shadow:0 0 0 2px rgba(36,119,183,.12) !important;
  outline:none !important;
}

/* Give the contents a little more usable width without making the modal feel cramped. */
@media(max-width:700px){
  .fg-page .fg-exam-modal-dialog,
  .okicom-modal.fg-exam-modal .fg-exam-modal-dialog{
    width:calc(100% - 12px) !important;
    max-height:calc(100vh - 12px) !important;
    margin:6px auto !important;
  }

  .fg-page .fg-exam-modal-head,
  .okicom-modal.fg-exam-modal .fg-exam-modal-head{
    padding:14px 14px !important;
    gap:10px !important;
  }

  .fg-page .fg-exam-modal-head h2,
  .okicom-modal.fg-exam-modal .fg-exam-modal-head h2{
    font-size:1.18rem !important;
    line-height:1.35 !important;
  }

  .fg-page .fg-exam-modal-body,
  .okicom-modal.fg-exam-modal .fg-exam-modal-body{
    padding:10px !important;
  }

  .fg-page .fg-exam-sheet,
  .okicom-modal.fg-exam-modal .fg-exam-sheet{
    padding:12px !important;
  }

  .fg-page .fg-exam-block,
  .okicom-modal.fg-exam-modal .fg-exam-block{
    padding:12px !important;
  }

  .fg-page .fg-exam-block h4,
  .okicom-modal.fg-exam-modal .fg-exam-block h4{
    margin-bottom:10px !important;
  }

  .fg-page .okicom-subject-lines,
  .okicom-modal.fg-exam-modal .okicom-subject-lines{
    gap:5px !important;
  }

  .fg-page .okicom-subject-line,
  .okicom-modal.fg-exam-modal .okicom-subject-line{
    font-size:13px !important;
    line-height:1.55 !important;
    letter-spacing:-.01em;
  }

  /* Short labels stay together; only genuinely long conditions wrap. */
  .fg-page .okicom-subject-line strong,
  .okicom-modal.fg-exam-modal .okicom-subject-line strong{
    white-space:nowrap;
  }

  .fg-page .fg-exam-sheet-head,
  .okicom-modal.fg-exam-modal .fg-exam-sheet-head{
    gap:8px !important;
    margin-bottom:12px !important;
  }
}


/* =========================================================
   V62: exam modal close parity + notes typography
   ========================================================= */
.fg-page .fg-exam-modal-close,
.okicom-modal.fg-exam-modal .fg-exam-modal-close{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-width:48px!important;
  min-height:48px!important;
  width:auto!important;
  height:48px!important;
  padding:0 12px!important;
  border:1px solid #cddce7!important;
  border-radius:12px!important;
  background:#f7fafc!important;
  color:#173b67!important;
  font-weight:800!important;
  box-shadow:none!important;
}
.fg-page .fg-exam-modal-close span,
.okicom-modal.fg-exam-modal .fg-exam-modal-close span{
  display:inline!important;
}
.fg-page .fg-exam-note,
.okicom-modal.fg-exam-modal .fg-exam-note{
  font-size:inherit!important;
}
.fg-page .fg-exam-note>strong,
.fg-page .fg-exam-note p,
.okicom-modal.fg-exam-modal .fg-exam-note>strong,
.okicom-modal.fg-exam-modal .fg-exam-note p{
  font-size:inherit!important;
  line-height:1.65!important;
}
@media(max-width:700px){
  .fg-page .fg-exam-note>strong,
  .fg-page .fg-exam-note p,
  .okicom-modal.fg-exam-modal .fg-exam-note>strong,
  .okicom-modal.fg-exam-modal .fg-exam-note p{
    font-size:.94rem!important;
  }
}


/* =========================================================
   V64: admission-capacity modal - one quota per row
   ========================================================= */

/* Overall intake stays at the upper-right and uses teal to distinguish
   the total capacity from the orange breakdown figures. */
.fg-capacity-modal .fg-capacity-total strong{
  color:#258b8e !important;
  font-weight:900 !important;
}

/* Each admission category is shown as a simple full-width row. */
.fg-capacity-modal .fg-capacity-quota-public{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:0 !important;
  margin-top:10px !important;
  border-top:1px solid #dbe6ee;
}
.fg-capacity-modal .fg-capacity-quota-public>span{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  gap:14px !important;
  padding:9px 2px !important;
  border:0 !important;
  border-bottom:1px solid #e3ebf1 !important;
  border-radius:0 !important;
  background:transparent !important;
  white-space:normal !important;
}
.fg-capacity-modal .fg-capacity-quota-public>span:last-child{
  border-bottom:0 !important;
}
.fg-capacity-modal .fg-capacity-quota-public small{
  flex:1 1 auto;
  min-width:0;
  color:#304b61 !important;
  font-size:.84rem !important;
  line-height:1.45 !important;
  font-weight:800 !important;
  text-align:left !important;
}
.fg-capacity-modal .fg-capacity-quota-public strong{
  flex:0 0 auto;
  color:#ef861b !important;
  font-size:.92rem !important;
  line-height:1.35 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}

/* Keep the total line compact: label on the left, total on the right. */
.fg-capacity-modal .fg-capacity-main{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
}
.fg-capacity-modal .fg-capacity-values{
  margin-left:auto !important;
  flex:0 0 auto !important;
}

@media(max-width:700px){
  .fg-capacity-modal .fg-capacity-item{
    padding:11px 13px !important;
  }
  .fg-capacity-modal .fg-capacity-main{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
  }
  .fg-capacity-modal .fg-capacity-values{
    border-left:0 !important;
    margin-left:auto !important;
  }
  .fg-capacity-modal .fg-capacity-values>span{
    padding:4px 7px !important;
  }
  .fg-capacity-modal .fg-capacity-values small{
    font-size:.66rem !important;
  }
  .fg-capacity-modal .fg-capacity-values strong{
    font-size:.92rem !important;
    color:#258b8e !important;
  }
  .fg-capacity-modal .fg-capacity-quota-public{
    margin-top:9px !important;
  }
  .fg-capacity-modal .fg-capacity-quota-public>span{
    gap:10px !important;
    padding:8px 1px !important;
  }
  .fg-capacity-modal .fg-capacity-quota-public small{
    font-size:.76rem !important;
    line-height:1.45 !important;
  }
  .fg-capacity-modal .fg-capacity-quota-public strong{
    font-size:.86rem !important;
  }
}


/* =========================================================
   V65: faculty-wide admission capacity
   ========================================================= */
.fg-capacity-modal .fg-capacity-faculty-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px;
  padding:13px 15px;
  border:1px solid #c8dde3;
  border-radius:12px;
  background:#eef8f8;
}
.fg-capacity-modal .fg-capacity-faculty-total-label{
  min-width:0;
  color:#173b67;
  font-size:.96rem;
  line-height:1.45;
  font-weight:900;
}
.fg-capacity-modal .fg-capacity-faculty-total-value{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid #c5dadd;
  border-radius:9px;
  background:#fff;
  white-space:nowrap;
}
.fg-capacity-modal .fg-capacity-faculty-total-value small{
  color:#66788a;
  font-size:.72rem;
  font-weight:800;
}
.fg-capacity-modal .fg-capacity-faculty-total-value strong{
  color:#258b8e;
  font-size:1rem;
  font-weight:900;
}
@media(max-width:700px){
  .fg-capacity-modal .fg-capacity-faculty-total{
    gap:10px;
    margin-bottom:11px;
    padding:11px 12px;
  }
  .fg-capacity-modal .fg-capacity-faculty-total-label{
    font-size:.84rem;
  }
  .fg-capacity-modal .fg-capacity-faculty-total-value{
    gap:5px;
    padding:4px 7px;
  }
  .fg-capacity-modal .fg-capacity-faculty-total-value small{
    font-size:.65rem;
  }
  .fg-capacity-modal .fg-capacity-faculty-total-value strong{
    font-size:.92rem;
  }
}


/* =========================================================
   V66: exam score action first
   ========================================================= */
.fg-page .fg-exam-primary-action--top{
  margin-top:22px;
  margin-bottom:10px;
}
.fg-page .fg-exam-primary-action--top + .fg-hero-actions--three{
  margin-top:0;
}
@media(min-width:901px){
  .fg-page .fg-hero-action-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-top:22px;
  }
  .fg-page .fg-hero-action-grid .fg-exam-primary-action--top{
    margin:0;
  }
  .fg-page .fg-hero-action-grid .fg-hero-actions--three{
    display:contents;
  }
  .fg-page .fg-hero-action-grid .ru-button{
    width:100%;
  }
}
@media(min-width:701px) and (max-width:900px){
  .fg-page .fg-hero-action-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:22px;
  }
  .fg-page .fg-hero-action-grid .fg-exam-primary-action--top{
    margin:0;
  }
  .fg-page .fg-hero-action-grid .fg-hero-actions--three{
    display:contents;
  }
  .fg-page .fg-hero-action-grid .ru-button{
    width:100%;
  }
}
@media(max-width:700px){
  .fg-page .fg-exam-primary-action--top{
    margin-top:18px;
    margin-bottom:9px;
  }
}


/* =========================================================
   V68: compact exam footnotes
   ========================================================= */
.fg-exam-modal .fg-exam-footnotes{
  margin-top:14px !important;
  padding-top:12px !important;
  border-top:1px solid #d9e5ed !important;
  background:transparent !important;
}
.fg-exam-modal .fg-exam-footnotes strong{
  display:block;
  margin-bottom:5px;
  color:#173f69;
  font-size:.84rem;
  line-height:1.4;
}
.fg-exam-modal .fg-exam-footnotes p{
  margin:0 !important;
  color:#516b80 !important;
  font-size:.79rem !important;
  line-height:1.75 !important;
}
@media(max-width:700px){
  .fg-exam-modal .fg-exam-footnotes{
    margin-top:11px !important;
    padding-top:10px !important;
  }
  .fg-exam-modal .fg-exam-footnotes strong{
    font-size:.76rem;
  }
  .fg-exam-modal .fg-exam-footnotes p{
    font-size:.73rem !important;
    line-height:1.7 !important;
  }
}

/* Public admission UI final overrides. */
.okicom-exam-event{
  grid-template-columns:78px minmax(0,1fr);
}
@media(max-width:600px){
  .okicom-exam-event{
    grid-template-columns:60px minmax(0,1fr);
  }
  .okicom-special-frame-conditions div,
  .okicom-special-common dl div{
    grid-template-columns:minmax(0,1fr);
    gap:4px;
    padding:9px 0;
  }
  .okicom-special-frame-conditions dt,
  .okicom-special-common dt{
    line-height:1.5;
  }
  .okicom-special-frame-conditions dd,
  .okicom-special-common dd{
    min-width:0;
    line-height:1.75;
    overflow-wrap:anywhere;
  }
}
