/* ============================================================
   global-exchange-program.css
   /global-exchange-program/ ページ専用スタイル
   ページタイトル・パンくずは共通クラス（lowerPage--pageTitle-box 等）を使用
============================================================ */

    /* ========================================
       Base
       ※ html/body の共通スタイルは style.min.css・reset.css・sanitize.css に準拠
         （html { font-size: 62.5% } 等は共通CSSで設定済みのためここでは重複定義しない）
    ======================================== */
    html { scroll-behavior: smooth; }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
    }
    .global-exchange-program {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 1.6rem;
      color: #1a1a1a;
      line-height: 1.8;
    }

    /* ========================================
       Utilities
    ======================================== */
    .inner {
      max-width: 1000px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
      padding: 0 30px;
    }
    .en-font {
      font-family: 'Overpass', sans-serif;
    }
    .text-center { text-align: center; }

    /* ========================================
       Hero Section
    ======================================== */
    .hero {
      background: #1a1a1a;
      position: relative;
    }
    /* 画像は自然な縦横比のまま横幅100%で表示し、どの画面幅でも上下左右が見切れないようにする */
    .hero-img {
      display: block;
    }
    .global-exchange-program .hero-img .ofi {
      display: block;
      width: 100%;
      height: auto;
      object-fit: initial;
    }

    /* ========================================
       Program Intro (after hero)
    ======================================== */
    .program-intro {
      padding: 60px 30px;
      background: #fff;
      text-align: center;
    }
    .program-intro-title {
      font-size: 2.4rem;
      font-weight: 700;
      line-height: 1.5;
      margin-bottom: 20px;
    }
    .program-intro-desc {
      font-size: 1.5rem;
      color: #444;
      max-width: 640px;
      margin: 0 auto 30px;
      line-height: 1.9;
      text-align: center;
    }
    .hero-programs {
      display: flex;
      justify-content: center;
      gap: 20px;
      margin-top: 40px;
      flex-wrap: wrap;
    }
    .hero-program-badge {
      background: rgba(255, 241, 53, 0.15);
      border: 2px solid #fff135;
      color: #fff;
      padding: 10px 28px;
      font-family: 'Overpass', sans-serif;
      font-size: 1.8rem;
      font-weight: 600;
      letter-spacing: 0.1em;
    }
    .program-badge-dark {
      color: #1a1a1a !important;
      background: rgba(255, 241, 53, 0.3) !important;
      border-color: #1a1a1a !important;
    }
    .program-badge-sow {
      display: inline-block !important;
      background: #fff !important;
      border: 2px solid #2ec868 !important;
      color: #0aaa5a !important;
      padding: 12px 36px !important;
      font-size: 1.45rem !important;
      font-weight: 700 !important;
      letter-spacing: 0.08em !important;
      border-radius: 3px !important;
      box-shadow: none !important;
      text-decoration: none !important;
      transition: background 0.2s ease, color 0.2s ease !important;
    }
    .program-badge-sow:hover {
      background: #2ec868 !important;
      color: #fff !important;
    }
    .program-badge-twelve {
      display: inline-block !important;
      background: #fff !important;
      border: 2px solid #1a5ae8 !important;
      color: #1a5ae8 !important;
      padding: 12px 36px !important;
      font-size: 1.45rem !important;
      font-weight: 700 !important;
      letter-spacing: 0.08em !important;
      border-radius: 3px !important;
      box-shadow: none !important;
      text-decoration: none !important;
      transition: background 0.2s ease, color 0.2s ease !important;
    }
    .program-badge-twelve:hover {
      background: #1a5ae8 !important;
      color: #fff !important;
    }
    @media screen and (max-width: 767px) {
      .program-intro-title { font-size: 1.9rem; }
    }

    /* ========================================
       Section Common
    ======================================== */
    .section {
      padding: 90px 0;
    }
    .section-alt {
      background: #f7f7f5;
    }
    .section-title {
      font-size: 2.6rem;
      font-weight: 700;
      line-height: 1.4;
      margin-bottom: 12px;
    }
    .section-title-en {
      font-family: 'Overpass', sans-serif;
      font-size: 1.2rem;
      font-weight: 600;
      letter-spacing: 0.2em;
      color: #fff135;
      text-transform: uppercase;
      margin-bottom: 12px;
      display: block;
    }
    .section-lead {
      font-size: 1.5rem;
      line-height: 1.9;
      color: #444;
      margin-bottom: 50px;
    }

    /* ========================================
       Program Header (SOW / TWELVE)
    ======================================== */
    .program-header {
      padding: 60px 30px 0;
    }
    .program-header-inner {
      max-width: 1000px;
      margin: 0 auto;
      display: flex;
      align-items: flex-end;
      gap: 30px;
      padding-bottom: 24px;
      border-bottom: 4px solid #fff135;
    }
    .program-header-logo {
      height: 76px;
      width: auto;
      display: block;
    }
    .program-header-tagline {
      font-size: 2rem;
      font-weight: 700;
      line-height: 1.5;
      padding-bottom: 4px;
      text-align: left;
    }

    /* ========================================
       SOW Header Override
    ======================================== */
    #sow .program-header-inner {
      border-bottom: 4px solid transparent;
      border-image: linear-gradient(to right, #6adf92 0%, #2ec868 55%, #0aaa5a 100%) 1;
    }
    .sow-tagline-word-y {
      color: #1a1a1a;
      font-weight: 700;
    }
    .sow-tagline-num {
      font-family: 'Overpass', sans-serif;
      font-weight: 700;
      color: #1a1a1a;
    }

    /* ========================================
       SOW Section
    ======================================== */
    .sow-section {
      padding: 50px 30px 90px;
      background: #f7f7f5;
    }
    .sow-section .inner { padding: 0; }
    .sow-section .features-title::before {
      background: linear-gradient(180deg, #6adf92, #0aaa5a);
    }
    .sow-section .session-info-grid {
      border: 1.5px solid #d4ecd4;
    }
    .sow-section .session-info-item {
      border-right: 1px solid #d4ecd4;
      border-bottom: 1px solid #d4ecd4;
    }
    .sow-section .session-info-label {
      color: #2ec868;
    }

    .sow-intro {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .sow-intro p {
      font-size: 1.55rem;
      line-height: 1.9;
      color: #333;
      text-align: left;
    }

    /* SOW Photo Gallery */
    .sow-photo-gallery {
      position: relative;
      background: linear-gradient(135deg, #1aa830 0%, #4ccc60 50%, #22aa36 100%);
      overflow: hidden;
      margin-bottom: 60px;
    }
    .sow-gallery-pattern {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      opacity: 0.22;
      pointer-events: none;
    }
    .sow-gallery-inner {
      position: relative;
      max-width: 1000px;
      margin: 0 auto;
      height: 460px;
      padding: 0 30px;
      z-index: 1;
    }
    .sow-photo {
      position: absolute;
      overflow: hidden;
      border-radius: 50%;
      border: 4px solid rgba(255,255,255,0.88);
      box-shadow: 0 8px 28px rgba(0,0,0,0.28);
    }
    .sow-photo-1 {
      width: 420px;
      height: 284px;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
    }
    .sow-photo-2 {
      width: 300px;
      height: 200px;
      right: 0;
      top: 36px;
    }
    .sow-photo-3 {
      width: 318px;
      height: 214px;
      right: 30px;
      bottom: 36px;
    }
    .sow-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .sow-photo-ph {
      width: 100%;
      height: 100%;
      background: rgba(255,255,255,0.18);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      color: rgba(255,255,255,0.9);
      font-size: 1.4rem;
      font-weight: 700;
    }
    .sow-photo-ph::before {
      content: '';
      display: block;
      width: 44px;
      height: 36px;
      border: 3px solid rgba(255,255,255,0.7);
      border-radius: 4px;
      background: rgba(255,255,255,0.12);
    }
    @media screen and (max-width: 767px) {
      .sow-gallery-inner { height: auto; padding: 30px 20px; display: flex; flex-direction: column; gap: 16px; }
      .sow-photo { position: static; transform: none; width: 100% !important; height: 200px !important; border-radius: 12px; }
    }

    /* Features */
    .features {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .features-title {
      font-size: 1.8rem;
      font-weight: 700;
      margin-bottom: 24px;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .features-title::before {
      content: '';
      display: block;
      width: 5px;
      height: 2.2rem;
      background: #fff135;
      flex-shrink: 0;
    }
    .features-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .feature-card {
      background: #fff;
      border: 1px solid #ddeedd;
      border-radius: 10px;
      overflow: hidden;
      position: relative;
      box-shadow: 0 2px 16px rgba(10, 170, 90, 0.07);
      display: flex;
      flex-direction: column;
      border-top: 3px solid #2ec868;
    }
    .feature-point-badge {
      position: absolute;
      top: 0;
      left: 0;
      background: linear-gradient(135deg, #0aaa5a, #2ec868);
      color: #fff;
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      padding: 5px 13px;
      border-bottom-right-radius: 10px;
      font-family: 'Overpass', sans-serif;
      z-index: 2;
    }
    .feature-card-header {
      padding: 40px 24px 16px;
      position: relative;
    }
    .feature-card-header-bg {
      position: absolute;
      bottom: 0;
      left: 20px;
      font-family: 'Overpass', sans-serif;
      font-size: 1.85rem;
      font-weight: 700;
      color: rgba(46, 200, 104, 0.45);
      white-space: nowrap;
      overflow: hidden;
      font-style: italic;
      pointer-events: none;
      z-index: 0;
      line-height: 1;
    }
    .feature-num-title {
      display: flex;
      align-items: center;
      gap: 10px;
      position: relative;
      z-index: 1;
    }
    .feature-card-num {
      font-family: 'Overpass', sans-serif;
      font-size: 4.5rem;
      font-weight: 700;
      color: #e6b800;
      line-height: 1;
      flex-shrink: 0;
    }
    .feature-card-title {
      font-size: 1.7rem;
      font-weight: 700;
      color: #1a1a1a;
      line-height: 1.3;
      margin: 0;
    }
    .feature-card-img {
      padding: 16px 24px;
      display: flex;
      justify-content: center;
      align-items: center;
      flex: 1;
    }
    .feature-card-img-inner {
      width: 140px;
      height: 140px;
      border-radius: 8px;
      overflow: hidden;
      background: #fff;
      flex-shrink: 0;
    }
    /* 画像は .ofi（style.min.css 共通ユーティリティ）で object-fit: cover 対応 */
    .feature-card-txt {
      font-size: 1.4rem;
      color: #555;
      line-height: 1.85;
      padding: 12px 24px 28px;
      border-top: 1px solid #f0f8f0;
      margin: 0;
      text-align: left;
    }

    /* Session Info */
    .session-info {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .session-info-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      border: 2px solid #e8e8e4;
      border-radius: 10px;
      overflow: hidden;
    }
    .session-info-item {
      padding: 24px 20px;
      text-align: center;
      border-right: 1px solid #e8e8e4;
    }
    .session-info-item:last-child { border-right: none; }
    .session-info-label {
      font-size: 1.1rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      color: #888;
      margin-bottom: 8px;
      font-family: 'Overpass', sans-serif;
      text-transform: uppercase;
      text-align: center;
    }
    .session-info-value {
      font-size: 1.5rem;
      font-weight: 700;
      color: #1a1a1a;
      line-height: 1.5;
      text-align: center;
    }
    .session-info-value strong {
      font-size: 2.4rem;
      font-family: 'Overpass', sans-serif;
      color: #1a1a1a;
    }

    /* Themes */
    .themes {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .themes-list {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .theme-item {
      display: flex;
      gap: 0;
      align-items: stretch;
      background: #fff;
      border: 1.5px solid #d4ecd4;
      border-top: 3px solid #2ec868;
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 2px 14px rgba(10, 170, 90, 0.08);
    }
    .theme-thumb {
      flex-shrink: 0;
      width: 160px;
      min-height: 140px;
      background: #d8d8d8;
      position: relative;
      overflow: hidden;
    }
    /* 画像は .ofi（style.min.css 共通ユーティリティ）で object-fit: cover 対応 */
    .theme-body {
      padding: 22px 26px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .theme-txt {
      font-size: 1.4rem;
      color: #555;
      line-height: 1.8;
    }
    .theme-txt strong {
      display: block;
      font-weight: 700;
      font-size: 1.55rem;
      color: #1a1a1a;
      margin-bottom: 6px;
    }
    @media screen and (max-width: 767px) {
      .theme-thumb { width: 110px; min-height: 110px; }
      .theme-body { padding: 16px 18px; }
    }

    /* Network */
    .network {
      max-width: 1000px;
      margin: 0 auto;
      border: 2px solid #2ec868;
      border-radius: 10px;
      overflow: hidden;
    }
    .network-header {
      background: linear-gradient(135deg, #0aaa5a 0%, #2ec868 55%, #6adf92 100%);
      padding: 18px 24px;
    }
    .network-txt {
      color: #fff;
      font-size: 1.55rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      line-height: 1;
      text-align: left;
    }
    .network-txt-note {
      font-size: 1.25rem;
      font-weight: 400;
      opacity: 0.8;
      margin-left: 4px;
    }
    .network-schools-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      background: #fff;
    }
    .network-school-item {
      display: flex;
      gap: 12px;
      align-items: center;
      padding: 14px 16px;
      border-right: 1px solid #e4f4e4;
      border-bottom: 1px solid #e4f4e4;
    }
    .network-school-item:nth-child(3n) { border-right: none; }
    .network-school-item:nth-last-child(-n+3) { border-bottom: none; }
    .network-school-flag {
      flex-shrink: 0;
      width: 58px;
      height: 38px;
      overflow: hidden;
      border: 1px solid #ddd;
      border-radius: 3px;
      background: #f9f9f9;
    }
    .network-school-flag svg {
      width: 100%;
      height: 100%;
      display: block;
    }
    .network-school-country {
      font-size: 1.35rem;
      font-weight: 700;
      color: #1a1a1a;
      line-height: 1.3;
      margin-bottom: 3px;
    }
    .network-school-name {
      font-family: 'Overpass', sans-serif;
      font-size: 1.2rem;
      color: #2ec868;
      font-weight: 600;
      line-height: 1.3;
    }
    .network-school-more {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 14px 16px;
      border-bottom: none;
      color: #aaa;
      font-size: 1.3rem;
    }

    /* ========================================
       TWELVE Section
    ======================================== */
    #twelve .program-header-inner {
      border-bottom: 4px solid transparent;
      border-image: linear-gradient(to right, #34e2e4 0%, #1a5ae8 60%, #0a2fd4 100%) 1;
    }
    .twelve-section .features-title::before {
      background: linear-gradient(180deg, #34e2e4, #0a2fd4);
    }
    .twelve-section .edu-card {
      border-top: 4px solid transparent;
      border-image: linear-gradient(to right, #34e2e4, #0a2fd4) 1;
    }
    .twelve-section .edu-card-country {
      background: linear-gradient(135deg, #34e2e4, #0a2fd4);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      color: #1a5ae8;
    }
    .twelve-section .participation-card-role {
      color: #1a5ae8;
    }
    .twelve-section .participation-card.highlight {
      border: 2px solid transparent;
      border-image: linear-gradient(135deg, #34e2e4, #1a5ae8, #0a2fd4) 1;
      background: #f0f4ff;
    }
    .twelve-section .format-tag {
      border-color: #1a5ae8;
      color: #1a5ae8;
    }

    .twelve-section {
      padding: 50px 30px 90px;
      background: #f7f7f5;
    }

    .twelve-intro {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .twelve-intro p {
      font-size: 1.55rem;
      line-height: 1.9;
      color: #333;
      text-align: left;
    }

    /* Education Examples */
    .edu-examples {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .edu-examples-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .edu-card {
      background: #fff;
      padding: 28px 24px;
      position: relative;
      border-top: 4px solid #fff135;
      border-radius: 10px;
      overflow: hidden;
    }
    .edu-card-country {
      font-family: 'Overpass', sans-serif;
      font-size: 2.2rem;
      font-weight: 600;
      color: #fff135;
      margin-bottom: 0;
    }
    .edu-card-name {
      font-size: 1.25rem;
      color: #666;
      margin-top: 8px;
      margin-bottom: 4px;
      font-weight: 700;
      letter-spacing: 0.03em;
    }
    .edu-card-title {
      font-size: 1.5rem;
      font-weight: 700;
      color: #1a1a1a;
      margin-bottom: 12px;
      line-height: 1.5;
    }
    .edu-card-txt {
      font-size: 1.35rem;
      color: #555;
      line-height: 1.8;
      text-align: left;
    }

    /* Participation */
    .participation {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .participation-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }
    .participation-card {
      padding: 30px 28px;
      border: 2px solid #e8e8e4;
      background: #fff;
      text-align: center;
      border-radius: 10px;
    }
    .participation-card-role {
      font-family: 'Overpass', sans-serif;
      font-size: 1.1rem;
      font-weight: 600;
      letter-spacing: 0.2em;
      color: #888;
      text-transform: uppercase;
      margin-bottom: 10px;
    }
    .participation-card-title {
      font-size: 2rem;
      font-weight: 700;
      margin-bottom: 14px;
    }
    .participation-card-txt {
      font-size: 1.4rem;
      color: #555;
      line-height: 1.8;
    }
    .participation-card.highlight {
      border-color: #fff135;
      border-width: 2px;
      background: #fffde8;
    }

    .format-list {
      max-width: 1000px;
      margin: 0 auto 60px;
    }
    .format-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .format-tag {
      background: #fff;
      border: 2px solid #ffe035;
      font-size: 1.4rem;
      font-weight: 700;
      padding: 8px 20px;
      color: #1a1a1a;
      border-radius: 6px;
    }

    /* TWELVE Event Screenshot */
    .twelve-event-wrap {
      margin-top: 28px;
      position: relative;
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 6px 36px rgba(10, 47, 212, 0.14);
      border: 2px solid transparent;
      background-image: linear-gradient(#f7f7f5, #f7f7f5), linear-gradient(to right, #34e2e4, #1a5ae8, #0a2fd4);
      background-origin: border-box;
      background-clip: padding-box, border-box;
    }
    .twelve-event-ph {
      width: 100%;
      aspect-ratio: 16 / 9;
      background: #c8c8c8;
    }
    @supports not (aspect-ratio: 16 / 9) {
      .twelve-event-ph {
        height: 0;
        padding-top: 56.25%;
        position: relative;
      }
    }
    /* 画像は .ofi（style.min.css 共通ユーティリティ）で object-fit: cover 対応 */
    .twelve-event-badge {
      position: absolute;
      top: 14px;
      left: 14px;
      background: linear-gradient(135deg, #34e2e4, #1a5ae8);
      color: #fff;
      font-family: 'Overpass', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      padding: 4px 14px;
      border-radius: 4px;
    }

    /* TWELVE Join Block */
    .twelve-join-block {
      max-width: 1000px;
      margin: 0 auto 0;
      padding: 0;
    }
    .twelve-join-desc {
      font-size: 1.5rem;
      color: #444;
      line-height: 1.95;
      margin-bottom: 32px;
      text-align: left;
    }
    .twelve-cta-btn {
      display: inline-block;
      background: linear-gradient(135deg, #34e2e4 0%, #1a5ae8 55%, #0a2fd4 100%);
      color: #fff;
      font-size: 1.5rem;
      font-weight: 700;
      padding: 14px 44px;
      border-radius: 3px;
      text-decoration: none;
      letter-spacing: 0.08em;
      box-shadow: 0 4px 20px rgba(10, 47, 212, 0.35);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .twelve-cta-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 28px rgba(10, 47, 212, 0.5);
    }
    .twelve-site-btn {
      display: inline-block;
      border: 2px solid #0a2fd4;
      color: #1a5ae8;
      font-size: 1.45rem;
      font-weight: 700;
      padding: 12px 36px;
      border-radius: 3px;
      text-decoration: none;
      letter-spacing: 0.08em;
      transition: background 0.2s ease, color 0.2s ease;
    }
    .twelve-site-btn:hover {
      background: #0a2fd4;
      color: #fff;
    }
    .twelve-btn-row {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 24px;
      flex-wrap: wrap;
      margin-top: 28px;
    }


    /* ========================================
       CTA Section
    ======================================== */
    .cta-section {
      padding: 90px 30px;
      background: #fff;
      text-align: center;
    }
    .cta-title {
      font-size: 2.6rem;
      font-weight: 700;
      margin-bottom: 16px;
      line-height: 1.5;
    }
    .cta-sub {
      font-size: 1.5rem;
      color: #555;
      margin-bottom: 10px;
      line-height: 1.8;
      text-align: center;
    }
    .cta-note {
      font-size: 1.35rem;
      color: #777;
      margin-bottom: 44px;
      text-align: center;
    }
    .cta-btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: #fff135;
      color: #1a1a1a;
      font-size: 1.6rem;
      font-weight: 700;
      padding: 18px 50px;
      transition: background 0.2s;
      letter-spacing: 0.04em;
      border-radius: 10px;
    }
    .cta-btn:hover { background: #ffe000; }
    .cta-btn::after {
      content: '›';
      font-size: 2rem;
      line-height: 1;
      margin-top: -2px;
    }
    .cta-links {
      margin-top: 30px;
      display: flex;
      justify-content: center;
      gap: 30px;
      flex-wrap: wrap;
    }
    .cta-link-item {
      font-size: 1.4rem;
      color: #555;
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .cta-link-item a {
      color: #1a1a1a;
      text-decoration: underline;
      font-weight: 700;
    }
    .cta-link-item a:hover { color: #888; }

    /* ========================================
       Divider
    ======================================== */
    .section-divider {
      height: 5px;
      background: linear-gradient(to right, #ffc100, #ffed00);
    }

    /* ========================================
       Responsive
    ======================================== */
    @media screen and (max-width: 999px) {
      /* html のフォントサイズは共通CSS準拠で固定のため変更しない（下記「rem scale compensation」参照） */
      .features-grid { grid-template-columns: repeat(3, 1fr); }
      .edu-examples-grid { grid-template-columns: repeat(3, 1fr); }
      .session-info-grid { grid-template-columns: 1fr; }
      .session-info-item { border-right: none; border-bottom: 1px solid #e8e8e4; }
      .session-info-item:last-child { border-bottom: none; }
    }
    @media screen and (max-width: 767px) {
      /* html のフォントサイズは共通CSS準拠で固定のため変更しない（下記「rem scale compensation」参照） */
      .program-header-logo { height: 52px; }
      .features-grid { grid-template-columns: 1fr; }
      .feature-card {
        display: grid;
        grid-template-columns: 1fr 80px;
        grid-template-areas: "header thumb" "txt thumb";
      }
      .feature-card-header { grid-area: header; }
      .feature-card-img {
        grid-area: thumb;
        padding: 8px;
        border-top: none;
        align-self: center;
      }
      .feature-card-img-inner { width: 64px; height: 64px; border-radius: 6px; }
      .feature-card-txt { grid-area: txt; }
      .themes-list { grid-template-columns: 1fr; }
      .edu-examples-grid { grid-template-columns: 1fr; gap: 10px; }
      .twelve-section .edu-card {
        border-width: 0 0 0 4px;
        border-style: solid;
        border-image: linear-gradient(to bottom, #34e2e4, #1a5ae8, #0a2fd4) 1;
        border-radius: 0 10px 10px 0;
        padding: 16px 18px;
      }
      .participation-grid { grid-template-columns: 1fr; }
      .sow-section, .twelve-section { padding: 40px 20px 70px; }
      .program-header { padding: 50px 20px 0; }
      .program-header-inner { flex-direction: column; align-items: flex-start; gap: 16px; }
      .network-schools-grid { grid-template-columns: repeat(2, 1fr); }
      .network-school-item:nth-child(3n) { border-right: 1px solid #e4f4e4; }
      .network-school-item:nth-child(2n) { border-right: none; }
      .network-school-item:nth-last-child(-n+3) { border-bottom: 1px solid #e4f4e4; }
      .network-school-item:nth-last-child(-n+2) { border-bottom: none; }
      .network-school-flag { width: 46px; height: 32px; }
      .network-school-country { font-size: 1.25rem; }
      .cta-section { padding: 70px 20px; }
      .inner { padding: 0 20px; }
    }
    @media screen and (max-width: 480px) {
      .network-schools-grid { grid-template-columns: 1fr; }
      .network-school-item { border-right: none !important; border-bottom: 1px solid #e4f4e4 !important; }
      .network-school-item:last-child { border-bottom: none !important; }
    }

    /* ========================================
       Responsive rem scale compensation
       元プレビューは html 自体のフォントサイズをブレークポイントごとに縮小し
       rem 値を一括調整していたが、html は共通CSS（reset.css）で62.5%固定のため
       ここでは同一の見た目になるよう .global-exchange-program 配下に限定して
       px換算した同等の値を明示指定する（共通ヘッダー・パンくず等には影響させない）
    ======================================== */
    @media screen and (max-width: 999px) {
      .global-exchange-program { font-size: 14.848px; }
      .global-exchange-program .program-intro-title { font-size: 22.272px; }
      .global-exchange-program .program-intro-desc { font-size: 13.92px; }
      .global-exchange-program .hero-program-badge { font-size: 16.704px; }
      .global-exchange-program .program-badge-sow { font-size: 13.456px !important; }
      .global-exchange-program .program-badge-twelve { font-size: 13.456px !important; }
      .global-exchange-program .section-title { font-size: 24.128px; }
      .global-exchange-program .section-title-en { font-size: 11.136px; }
      .global-exchange-program .section-lead { font-size: 13.92px; }
      .global-exchange-program .program-header-tagline { font-size: 18.56px; }
      .global-exchange-program .sow-intro p { font-size: 14.384px; }
      .global-exchange-program .sow-photo-ph { font-size: 12.992px; }
      .global-exchange-program .features-title { font-size: 16.704px; }
      .global-exchange-program .features-title::before { height: 20.416px; }
      .global-exchange-program .feature-point-badge { font-size: 9.28px; }
      .global-exchange-program .feature-card-header-bg { font-size: 17.168px; }
      .global-exchange-program .feature-card-num { font-size: 41.76px; }
      .global-exchange-program .feature-card-title { font-size: 15.776px; }
      .global-exchange-program .feature-card-txt { font-size: 12.992px; }
      .global-exchange-program .session-info-label { font-size: 10.208px; }
      .global-exchange-program .session-info-value { font-size: 13.92px; }
      .global-exchange-program .session-info-value strong { font-size: 22.272px; }
      .global-exchange-program .theme-txt { font-size: 12.992px; }
      .global-exchange-program .theme-txt strong { font-size: 14.384px; }
      .global-exchange-program .network-txt { font-size: 14.384px; }
      .global-exchange-program .network-txt-note { font-size: 11.6px; }
      .global-exchange-program .network-school-country { font-size: 12.528px; }
      .global-exchange-program .network-school-name { font-size: 11.136px; }
      .global-exchange-program .network-school-more { font-size: 12.064px; }
      .global-exchange-program .twelve-intro p { font-size: 14.384px; }
      .global-exchange-program .edu-card-country { font-size: 20.416px; }
      .global-exchange-program .edu-card-name { font-size: 11.6px; }
      .global-exchange-program .edu-card-title { font-size: 13.92px; }
      .global-exchange-program .edu-card-txt { font-size: 12.528px; }
      .global-exchange-program .participation-card-role { font-size: 10.208px; }
      .global-exchange-program .participation-card-title { font-size: 18.56px; }
      .global-exchange-program .participation-card-txt { font-size: 12.992px; }
      .global-exchange-program .format-tag { font-size: 12.992px; }
      .global-exchange-program .twelve-event-badge { font-size: 9.28px; }
      .global-exchange-program .twelve-join-desc { font-size: 13.92px; }
      .global-exchange-program .twelve-cta-btn { font-size: 13.92px; }
      .global-exchange-program .twelve-site-btn { font-size: 13.456px; }
      .global-exchange-program .cta-title { font-size: 24.128px; }
      .global-exchange-program .cta-sub { font-size: 13.92px; }
      .global-exchange-program .cta-note { font-size: 12.528px; }
      .global-exchange-program .cta-btn { font-size: 14.848px; }
      .global-exchange-program .cta-btn::after { font-size: 18.56px; }
      .global-exchange-program .cta-link-item { font-size: 12.992px; }
    }
    @media screen and (max-width: 767px) {
      .global-exchange-program { font-size: 13.824px; }
      .global-exchange-program .program-intro-title { font-size: 16.416px; }
      .global-exchange-program .program-intro-desc { font-size: 12.96px; }
      .global-exchange-program .hero-program-badge { font-size: 15.552px; }
      .global-exchange-program .program-badge-sow { font-size: 12.528px !important; }
      .global-exchange-program .program-badge-twelve { font-size: 12.528px !important; }
      .global-exchange-program .section-title { font-size: 22.464px; }
      .global-exchange-program .section-title-en { font-size: 10.368px; }
      .global-exchange-program .section-lead { font-size: 12.96px; }
      .global-exchange-program .program-header-tagline { font-size: 17.28px; }
      .global-exchange-program .sow-intro p { font-size: 13.392px; }
      .global-exchange-program .sow-photo-ph { font-size: 12.096px; }
      .global-exchange-program .features-title { font-size: 15.552px; }
      .global-exchange-program .features-title::before { height: 19.008px; }
      .global-exchange-program .feature-point-badge { font-size: 8.64px; }
      .global-exchange-program .feature-card-header-bg { font-size: 15.984px; }
      .global-exchange-program .feature-card-num { font-size: 38.88px; }
      .global-exchange-program .feature-card-title { font-size: 14.688px; }
      .global-exchange-program .feature-card-txt { font-size: 12.096px; }
      .global-exchange-program .session-info-label { font-size: 9.504px; }
      .global-exchange-program .session-info-value { font-size: 12.96px; }
      .global-exchange-program .session-info-value strong { font-size: 20.736px; }
      .global-exchange-program .theme-txt { font-size: 12.096px; }
      .global-exchange-program .theme-txt strong { font-size: 13.392px; }
      .global-exchange-program .network-txt { font-size: 13.392px; }
      .global-exchange-program .network-txt-note { font-size: 10.8px; }
      .global-exchange-program .network-school-country { font-size: 10.8px; }
      .global-exchange-program .network-school-name { font-size: 10.368px; }
      .global-exchange-program .network-school-more { font-size: 11.232px; }
      .global-exchange-program .twelve-intro p { font-size: 13.392px; }
      .global-exchange-program .edu-card-country { font-size: 19.008px; }
      .global-exchange-program .edu-card-name { font-size: 10.8px; }
      .global-exchange-program .edu-card-title { font-size: 12.96px; }
      .global-exchange-program .edu-card-txt { font-size: 11.664px; }
      .global-exchange-program .participation-card-role { font-size: 9.504px; }
      .global-exchange-program .participation-card-title { font-size: 17.28px; }
      .global-exchange-program .participation-card-txt { font-size: 12.096px; }
      .global-exchange-program .format-tag { font-size: 12.096px; }
      .global-exchange-program .twelve-event-badge { font-size: 8.64px; }
      .global-exchange-program .twelve-join-desc { font-size: 12.96px; }
      .global-exchange-program .twelve-cta-btn { font-size: 12.96px; }
      .global-exchange-program .twelve-site-btn { font-size: 12.528px; }
      .global-exchange-program .cta-title { font-size: 22.464px; }
      .global-exchange-program .cta-sub { font-size: 12.96px; }
      .global-exchange-program .cta-note { font-size: 11.664px; }
      .global-exchange-program .cta-btn { font-size: 13.824px; }
      .global-exchange-program .cta-btn::after { font-size: 17.28px; }
      .global-exchange-program .cta-link-item { font-size: 12.096px; }
    }
