/* ============================================================
   東京ミドルワークチャレンジ — Page Template Styles
   ファイル: tokyo-middle-work.css
   ============================================================ */

/* ── Variables ── */
#tmwc-page {
  --tmwc-blue:        #64b3f4;
  --tmwc-blue-dark:   #45a3f0;
  --tmwc-green:       #83c567;
  --tmwc-green-light: #c2e59c;
  --tmwc-bg-blue:     #d9e8f4;
  --tmwc-bg-green:    #e0f1ce;
  --tmwc-text:        #3c403a;
  --tmwc-gray:        #969795;
  --tmwc-max:         1280px;
  --tmwc-font:        'Kiwi Maru', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', sans-serif;
}

/* ── Reset (scoped) ── */
#tmwc-page *, #tmwc-page *::before, #tmwc-page *::after {
  box-sizing: border-box;
}
#tmwc-page {
  font-family: var(--tmwc-font);
  color: var(--tmwc-text);
  overflow-x: hidden;
  background: #fff;
}

/* ── Shared Inner ── */
.tmwc-inner {
  max-width: var(--tmwc-max);
  margin: 0 auto;
  padding: 0 40px;
}

/* ── Section Title ── */
.tmwc-section-title {
  font-size: 52px;
  font-weight: 500;
  text-align: center;
  color: var(--tmwc-text);
  margin-bottom: 40px;
}
.tmwc-section-title--left  { text-align: left; }
.tmwc-section-title--green { color: var(--tmwc-green); }
.tmwc-section-title--blue  { color: var(--tmwc-blue-dark); }

/* ════════════════════════════════════════
   HEADER
════════════════════════════════════════ */
.tmwc-header {
  display: flex;
  flex-direction: column;
  padding: 16px 53px 0;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 100;
}
/* 1行目: ロゴ + ボタン */
.tmwc-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.tmwc-header-logos {
  display: flex;
  align-items: center;
  gap: 24px;
}
.tmwc-header-logos img {
  height: 56px;
  width: auto;
  object-fit: contain;
}
/* 2行目: ナビ */
.tmwc-nav {
  display: flex;
  align-items: center;
  gap: 36px;
  padding-bottom: 14px;
}
.tmwc-nav a {
  font-size: 20px;
  color: var(--tmwc-text);
  text-decoration: none;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 300;
  transition: color .2s;
  white-space: nowrap;
}
.tmwc-nav a:hover { color: var(--tmwc-blue); }
.tmwc-btn-contact {
  background: linear-gradient(to right, var(--tmwc-blue), var(--tmwc-green-light));
  color: #fff !important;
  border-radius: 40px;
  padding: 14px 30px;
  font-size: 20px;
  font-family: var(--tmwc-font) !important;
  font-weight: 400 !important;
  box-shadow: 0 2px 2px rgba(117,116,116,.25);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ════════════════════════════════════════
   HERO
════════════════════════════════════════ */
.tmwc-hero {
  position: relative;
  display: grid;
  grid-template-columns: 660px 1fr;
  grid-template-rows: minmax(680px, auto);
  max-width: 1300px;
  margin: 0 auto;
  background: #fff;
}
.tmwc-hero-deco { display: none; }
.tmwc-hero-content {
  position: relative;
  z-index: 2;
  padding: 32px 40px 32px 53px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* Year + badges on the same row */
.tmwc-hero-year-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: nowrap;
  margin-bottom: 4px;
}
.tmwc-hero-year  { font-size: 60px; font-weight: 500; line-height: 1.35; margin: 0; white-space: nowrap; }
.tmwc-hero-title { font-size: 67px; font-weight: 500; color: var(--tmwc-green); line-height: 1.2; margin: 0; }
.tmwc-hero-subtitle { font-size: 20px; color: var(--tmwc-text); margin: 8px 0 0; line-height: 1.6; }

/* Badges (now inline with year) */
.tmwc-hero-badges { display: flex; gap: 14px; flex-shrink: 0; }
.tmwc-badge-circle {
  width: 112px; height: 112px;
  border-radius: 50%;
  background: var(--tmwc-blue);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 30px;
  font-weight: 700;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', sans-serif;
  line-height: 1.17;
  flex-shrink: 0;
}
.tmwc-badge-circle p { margin: 0; line-height: inherit; }

/* 「対象 35〜54歳」badge — slightly smaller base font */
.tmwc-badge-circle--target {
  font-size: 25px;
  line-height: 1.1;
}
.tmwc-badge-circle--target p { margin: 0; line-height: 1.1; }
.tmwc-badge-num  { font-size: 25px; letter-spacing: -0.05em; }
.tmwc-badge-tilde{ font-size: 18px; letter-spacing: -0.036em; }
.tmwc-badge-age  { font-size: 18px; }

/* Two bottom photos */
.tmwc-hero-photos {
  display: flex;
  gap: 16px;
  margin-top: 24px;
}
.tmwc-hero-photos img {
  width: 260px;
  height: 244px;
  object-fit: cover;
  border-radius: 32px;
}

/* Hero image (right — rounded rectangle, grid item) */
.tmwc-hero-image {
  position: relative;
  margin: 20px 36px 40px 0;
  overflow: hidden;
  border-radius: 44px;
}
.tmwc-hero-image > img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
}
.tmwc-hero-image-overlay { display: none; }

/* Support circle — direct child of .tmwc-hero, overlaps image bottom-right edge */
.tmwc-hero-support-circle {
  position: absolute;
  right: 8px;
  bottom: 16px;
  width: 250px; height: 250px;
  border-radius: 50%;
  background: var(--tmwc-blue);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 36px;
  font-weight: 700;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  text-align: center;
  line-height: 1.25;
  z-index: 3;
}
.tmwc-hero-support-circle p { margin: 0; }

/* ════════════════════════════════════════
   TAB NAV
════════════════════════════════════════ */
.tmwc-tab-nav {
  max-width: 1200px;
  margin: 40px auto 0;
}
.tmwc-tab-nav-inner {
  display: flex;
  align-items: stretch;
  height: 88px;
  overflow: visible;
}
.tmwc-tab-item {
  padding: 20px 24px;
  font-size: 36px;
  font-weight: 400;
  font-family: var(--tmwc-font);
  color: #aaa;
  cursor: pointer;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.3;
  transition: color .25s;
  position: relative;
}
/*
  青タブ（左）: 両上角丸 → 右上80pxアークが青→緑の遷移カーブになる
  z-index:2 で緑の上に重なる
*/
.tmwc-tab-item[data-tab="personal"] {
  flex: 0 0 49%;
  background: var(--tmwc-bg-blue);
  border-radius: 80px 80px 0 0;
  z-index: 2;
}
/*
  緑タブ（右）: 右上だけ丸く
  margin-left:-80px で青のアーク部分の下に潜り込み、隙間をなくす
  padding-left:80px でテキスト表示位置を補正
  z-index:1 で青の背面に来る
*/
.tmwc-tab-item[data-tab="family"] {
  flex: 1;
  background: var(--tmwc-bg-green);
  border-radius: 0 80px 0 0;
  z-index: 1;
  margin-left: -80px;
  padding-left: 100px;
}
/* Active: 色付きテキスト */
.tmwc-tab-item[data-tab="personal"].tmwc-tab-item--active { color: var(--tmwc-blue); }
.tmwc-tab-item[data-tab="family"].tmwc-tab-item--active   { color: var(--tmwc-green); }
/* Inactive: グレー */
.tmwc-tab-item:not(.tmwc-tab-item--active) { color: #aaa; }

/*
  緑タブがアクティブのとき (.tmwc-family-active はJSで付与):
  ・緑 → 両上角丸 + 前面 z-index:2
  ・青 → 左上角のみ丸 + 背面 z-index:1
*/
.tmwc-family-active .tmwc-tab-item[data-tab="family"] {
  border-radius: 80px 80px 0 0;
  z-index: 2;
}
.tmwc-family-active .tmwc-tab-item[data-tab="personal"] {
  border-radius: 80px 0 0 0;
  z-index: 1;
}

/* 旧ウェーブ要素・区切り線は非表示 */
.tmwc-tab-wave  { display: none; }
.tmwc-tab-divider { display: none; }

/* ════════════════════════════════════════
   NEWS
════════════════════════════════════════ */
#tmwc-page .tmwc-news {
  padding: 60px 0;
}
#tmwc-page .tmwc-news-inner {
  display: grid !important;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: center;
}
#tmwc-page .tmwc-news-label-col {
  display: flex !important;
  justify-content: center;
  align-items: center;
}
#tmwc-page .tmwc-news-tag {
  display: inline-block;
  background: var(--tmwc-blue);
  color: #fff;
  border-radius: 100px;
  padding: 10px 30px;
  font-size: 34px;
  font-weight: 500;
  white-space: nowrap;
  text-align: center;
}
#tmwc-page .tmwc-news-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
#tmwc-page .tmwc-news-list li {
  display: flex !important;
  align-items: center;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid #ccc;
  font-size: 22px;
}
#tmwc-page .tmwc-news-list li:first-child { border-top: 1px solid #ccc; }
#tmwc-page .tmwc-news-date  { color: var(--tmwc-text); min-width: 180px; flex-shrink: 0; }
#tmwc-page .tmwc-news-title { color: var(--tmwc-text); text-decoration: none; }
#tmwc-page a.tmwc-news-title:hover { color: var(--tmwc-blue); }

/* ════════════════════════════════════════
   BLUE BG AREA
════════════════════════════════════════ */
.tmwc-blue-area {
  background: var(--tmwc-bg-blue);
  border-radius: 0 0 120px 120px;
  padding: 60px 40px 80px;
  max-width: 1200px;
  margin: 0 auto 60px;
}

/* ════════════════════════════════════════
   SCHEDULE TABLE
════════════════════════════════════════ */
.tmwc-schedule { padding: 40px 0; }
.tmwc-schedule-lead {
  font-size: 19px;
  text-align: center;
  margin-bottom: 32px;
}
.tmwc-table-wrap { overflow-x: auto; }
.tmwc-schedule-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
}
.tmwc-schedule-table th {
  background: var(--tmwc-blue);
  color: #fff;
  padding: 20px 12px;
  font-size: 22px;
  font-weight: 600;
  border: 1px solid #d9d9d9;
  text-align: center;
}
.tmwc-schedule-table--green th {
  background: var(--tmwc-green);
}
.tmwc-th-empty {
  background: transparent !important;
  border: none !important;
  width: 13%;
}
.tmwc-schedule-table td {
  background: #fff;
  border: 1px solid #d9d9d9;
  padding: 14px 16px;
  vertical-align: middle;
  font-size: 16px;
}
/* 行ラベル（青パネル） */
.tmwc-row-label {
  background: #fff !important;
  color: #45a3f0 !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif !important;
  vertical-align: middle !important;
  text-align: center;
  border-left: none !important;
  border-right: none !important;
}
/* 行ラベル（緑パネル） */
.tmwc-row-label--green {
  background: #fff !important;
  color: #83c567 !important;
}
/* 注釈行の空ラベルセル */
.tmwc-row-label--note {
  padding: 0 !important;
  border-top: none !important;
  border-bottom: none !important;
}
/* 注釈行の colspan セル */
.tmwc-note-cell {
  background: #fff !important;
  border: 1px solid #d9d9d9 !important;
  border-top: none !important;
  padding: 6px 16px 10px !important;
}
.tmwc-note-cell .tmwc-note { display: inline; margin-top: 0; }
.tmwc-period { font-size: 16px; font-weight: 700; color: #3c403a; margin-bottom: 3px; }
.tmwc-note   { font-size: 14px; color: #45a3f0; margin-top: 5px; }
.tmwc-note--green { color: #83c567 !important; }
.tmwc-tags   { display: flex; flex-wrap: wrap; gap: 6px; }
.tmwc-tag {
  background: var(--tmwc-bg-blue);
  border-radius: 100px;
  padding: 5px 16px;
  font-size: 15px;
  color: var(--tmwc-text);
}
.tmwc-tag--green {
  background: #fff;
  border: 1px solid var(--tmwc-green);
}

/* ════════════════════════════════════════
   2か月PROGRAM
════════════════════════════════════════ */
.tmwc-program { padding: 60px 0 0; text-align: center; }
.tmwc-program-desc  { font-size: 24px; line-height: 1.8; margin-bottom: 16px; }
.tmwc-program-title { font-size: 58px; font-weight: 500; color: var(--tmwc-blue-dark); }
.tmwc-program-images {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 30px;
  margin: 44px 0 0;
  flex-wrap: nowrap;
  padding-bottom: 80px;
}
.tmwc-program-images img {
  object-fit: cover;
  border-radius: 200px;
  flex-shrink: 0;
}
/* 左: 縦長・オフセットなし */
.tmwc-program-images img:nth-child(1) {
  width: 214px;
  height: 403px;
}
/* 中央: 回転 + 大きくオフセット */
.tmwc-program-images img:nth-child(2) {
  width: 248px;
  height: 372px;
  margin-top: 160px;
  transform: rotate(13deg);
}
/* 右: 細め + さらに大きいオフセット */
.tmwc-program-images img:nth-child(3) {
  width: 202px;
  height: 372px;
  margin-top: 330px;
}
.tmwc-img-offset { /* deprecated */ }

/* ════════════════════════════════════════
   こんな方にオススメ
════════════════════════════════════════ */
.tmwc-target { padding: 40px 0; }
.tmwc-target-intro { font-size: 21px; line-height: 1.9; margin-bottom: 28px; }
.tmwc-check-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.tmwc-check-list li {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 22px;
  font-weight: 500;
}
.tmwc-check-icon {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--tmwc-blue);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 17px;
  font-weight: 700;
}

/* ════════════════════════════════════════
   CURRICULUM
════════════════════════════════════════ */
.tmwc-curriculum { padding: 60px 0; }
.tmwc-curriculum-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}
.tmwc-curriculum-table thead th {
  background: var(--tmwc-green);
  color: #fff;
  padding: 16px 12px;
  font-size: 20px;
  font-weight: 500;
  border: 1px solid #d9d9d9;
  text-align: center;
}
.tmwc-curriculum-table tbody td {
  border: 1px solid #d9d9d9;
  background: #fff;
  padding: 16px 14px;
  vertical-align: middle;
  line-height: 1.6;
}
.tmwc-week  { color: var(--tmwc-green); font-size: 26px; font-weight: 500; text-align: center; white-space: nowrap; }
.tmwc-theme { color: var(--tmwc-green); font-size: 22px; font-weight: 500; text-align: center; }
.tmwc-hours { text-align: center; font-size: 20px; font-weight: 500; }

/* ════════════════════════════════════════
   募集要項
════════════════════════════════════════ */
.tmwc-requirements { padding: 80px 0; }
.tmwc-req-card {
  background: #fff;
  border-radius: 70px;
  padding: 50px 60px;
  max-width: 860px;
  margin: 0 auto;
}
.tmwc-req-row {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid #eee;
  font-size: 19px;
}
.tmwc-req-row:last-child { border-bottom: none; }
.tmwc-req-label {
  background: var(--tmwc-blue-dark);
  color: #fff;
  border-radius: 200px;
  padding: 8px 20px;
  font-size: 20px;
  font-weight: 500;
  white-space: nowrap;
  min-width: 110px;
  text-align: center;
  flex-shrink: 0;
}
.tmwc-req-value { line-height: 1.8; padding-top: 6px; }
.tmwc-req-note  { font-size: 15px; color: var(--tmwc-gray); margin-top: 4px; }

/* ════════════════════════════════════════
   受講までの流れ
════════════════════════════════════════ */
.tmwc-flow { padding: 60px 0; text-align: center; }
.tmwc-flow-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: 40px;
  flex-wrap: wrap;
}
.tmwc-flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.tmwc-flow-step img {
  width: 170px; height: 170px;
  object-fit: contain;
}
.tmwc-flow-step p { font-size: 36px; font-weight: 400; line-height: 1.4; margin: 0; }
.tmwc-flow-arrow  { font-size: 44px; color: var(--tmwc-blue); margin: 0 20px; padding-bottom: 40px; }

/* ════════════════════════════════════════
   開催場所
════════════════════════════════════════ */
.tmwc-venue {
  background: var(--tmwc-bg-blue);
  border-radius: 40px;
  max-width: 1200px;
  margin: 0 auto 60px;
  padding: 60px 40px;
}
.tmwc-venue-card {
  background: #fff;
  border-radius: 47px;
  padding: 44px 50px;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.tmwc-venue-info { flex: 1; }
.tmwc-venue-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
  font-size: 18px;
}
.tmwc-venue-label {
  background: var(--tmwc-blue);
  color: #fff;
  border-radius: 100px;
  padding: 8px 16px;
  font-size: 18px;
  font-weight: 500;
  white-space: nowrap;
  flex-shrink: 0;
}
.tmwc-venue-value { padding-top: 8px; line-height: 1.7; }
.tmwc-venue-map { flex-shrink: 0; }
.tmwc-map-placeholder {
  width: 240px; height: 240px;
  background: #e8e8e8;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  color: #999;
}

/* ════════════════════════════════════════
   お申込み・お問い合わせ
════════════════════════════════════════ */
.tmwc-contact { padding: 80px 0; text-align: center; }
.tmwc-contact-subtitle {
  font-size: 34px;
  font-weight: 500;
  color: var(--tmwc-text);
  margin: 44px 0 20px;
  font-family: var(--tmwc-font);
}
.tmwc-btn-group {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 16px 0;
}
.tmwc-btn {
  padding: 20px 44px;
  border-radius: 58px;
  font-size: 28px;
  font-weight: 500;
  font-family: var(--tmwc-font);
  cursor: pointer;
  border: none;
  box-shadow: 0 4px 4px rgba(172,187,199,.5);
  text-decoration: none;
  display: inline-block;
  transition: opacity .2s;
}
.tmwc-btn:hover { opacity: .85; }
.tmwc-btn--blue-bg  { background: var(--tmwc-bg-blue);  color: var(--tmwc-text); }
.tmwc-btn--green-bg { background: var(--tmwc-bg-green); color: var(--tmwc-text); }
.tmwc-btn--gradient {
  background: linear-gradient(to right, var(--tmwc-blue), var(--tmwc-green-light));
  color: #fff;
}
.tmwc-contact-tel { margin-top: 60px; }
.tmwc-contact-org {
  font-size: 32px;
  font-weight: 700;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  margin-bottom: 16px;
}
.tmwc-contact-phone-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin: 16px 0;
}
.tmwc-phone-icon { width: 64px; height: 64px; object-fit: contain; }
.tmwc-phone-num {
  font-size: 64px;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  font-weight: 300;
  color: var(--tmwc-text);
}
.tmwc-contact-hours { font-size: 20px; line-height: 2; }

/* ════════════════════════════════════════
   TAB PANELS
════════════════════════════════════════ */
.tmwc-tab-item {
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--tmwc-font);
}
.tmwc-tab-panel { display: block; }
.tmwc-tab-panel[hidden] { display: none; }

/* ════════════════════════════════════════
   GREEN THEME (就労支援機関/ご家族向け)
════════════════════════════════════════ */

/* Green bg area */
.tmwc-green-area {
  background: var(--tmwc-bg-green);
  border-radius: 0 0 120px 120px;
  padding: 60px 40px 80px;
  max-width: 1200px;
  margin: 0 auto 60px;
}

/* Tab active — green variant */
.tmwc-tab-item--active[data-tab="family"] {
  color: var(--tmwc-green);
  border-bottom-color: var(--tmwc-green);
}

/* Family intro keywords */
.tmwc-family-intro { padding: 32px 0 24px; text-align: center; }
.tmwc-family-keywords {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.tmwc-keyword-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-family: var(--tmwc-font);
  color: var(--tmwc-text);
}
.tmwc-keyword-circle {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: var(--tmwc-green);
  flex-shrink: 0;
}
.tmwc-family-desc { font-size: 20px; line-height: 1.9; }

/* Green schedule table header */
.tmwc-schedule-table--green thead th { background: var(--tmwc-green); }
.tmwc-row-label--green { color: var(--tmwc-green) !important; }
.tmwc-note--green      { color: var(--tmwc-green) !important; }

/* Green tags */
.tmwc-tag--green { background: var(--tmwc-green-light); }

/* Green check icon */
.tmwc-check-icon--green { background: var(--tmwc-green); }

/* Blue curriculum variant (used inside green panel) */
.tmwc-curriculum-table--blue thead th { background: var(--tmwc-blue-dark); }
.tmwc-week--blue  { color: var(--tmwc-blue-dark); }
.tmwc-theme--blue { color: var(--tmwc-blue-dark); }

/* Green requirements labels */
.tmwc-req-label--green { background: var(--tmwc-green); }

/* ════════════════════════════════════════
   RESPONSIVE (tablet / mobile)
════════════════════════════════════════ */
/* ────────────────────────────────────────
   TABLET (〜 900px)
──────────────────────────────────────── */
@media (max-width: 900px) {

  /* Header */
  .tmwc-header { padding: 12px 20px 0; }
  .tmwc-header-logos img { height: 44px; }
  .tmwc-btn-contact { font-size: 16px; padding: 10px 20px; }
  .tmwc-nav { gap: 20px; padding-bottom: 10px; }
  .tmwc-nav a { font-size: 16px; }

  /* Hero */
  .tmwc-hero { grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .tmwc-hero-content { padding: 28px 24px; }
  .tmwc-hero-year  { font-size: 40px; }
  .tmwc-hero-title { font-size: 48px; }
  .tmwc-hero-subtitle { font-size: 17px; }
  .tmwc-badge-circle { width: 88px; height: 88px; font-size: 24px; }
  .tmwc-badge-num  { font-size: 20px; }
  .tmwc-hero-image { margin: 0 20px 20px; border-radius: 32px; height: 320px; }
  .tmwc-hero-support-circle { width: 180px; height: 180px; font-size: 26px; right: 24px; bottom: 24px; }
  .tmwc-hero-photos img { width: 200px; height: 188px; }

  /* Tabs */
  .tmwc-tab-item { font-size: 26px; padding: 16px 20px; }
  .tmwc-tab-nav-inner { height: auto; }

  /* Inner padding */
  .tmwc-inner { padding: 0 24px; }
  .tmwc-blue-area, .tmwc-green-area { padding: 40px 24px; }

  /* Section title */
  .tmwc-section-title { font-size: 38px; }
  .tmwc-program-title { font-size: 42px; }
  .tmwc-program-desc  { font-size: 18px; }

  /* News */
  .tmwc-news-inner { grid-template-columns: 1fr !important; gap: 16px !important; }
  .tmwc-news-label-col { justify-content: flex-start !important; }

  /* Schedule / Curriculum tables */
  .tmwc-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .tmwc-schedule-table { min-width: 640px; font-size: 14px; }
  .tmwc-curriculum-table { min-width: 640px; font-size: 14px; }

  /* Requirements */
  .tmwc-req-card  { padding: 30px 24px; border-radius: 36px; }
  .tmwc-req-row   { flex-wrap: wrap; }

  /* Venue / Contact */
  .tmwc-venue-card { flex-direction: column; padding: 30px 24px; }
  .tmwc-map-placeholder { width: 100%; height: 200px; }
  .tmwc-phone-num { font-size: 44px; }
  .tmwc-btn { font-size: 18px; padding: 14px 24px; }
}

/* ────────────────────────────────────────
   MOBILE (〜 600px)
──────────────────────────────────────── */
@media (max-width: 600px) {

  /* Header */
  .tmwc-header { padding: 10px 16px 0; }
  .tmwc-header-logos { gap: 12px; }
  .tmwc-header-logos img { height: 32px; }
  .tmwc-btn-contact { font-size: 13px; padding: 8px 14px; }
  .tmwc-nav { gap: 12px; padding-bottom: 8px; flex-wrap: wrap; }
  .tmwc-nav a { font-size: 13px; }

  /* Hero */
  .tmwc-hero-content { padding: 20px 16px; }
  .tmwc-hero-year  { font-size: 28px; }
  .tmwc-hero-title { font-size: 36px; }
  .tmwc-hero-subtitle { font-size: 15px; }
  .tmwc-hero-year-row { flex-wrap: wrap; gap: 10px; }
  .tmwc-badge-circle { width: 72px; height: 72px; font-size: 18px; }
  .tmwc-badge-num  { font-size: 16px; }
  .tmwc-badge-tilde, .tmwc-badge-age { font-size: 14px; }
  .tmwc-hero-photos { gap: 10px; }
  .tmwc-hero-photos img { width: calc(50% - 5px); height: 160px; }
  .tmwc-hero-image { margin: 0 16px 16px; height: 240px; border-radius: 24px; }
  .tmwc-hero-support-circle { width: 130px; height: 130px; font-size: 19px; right: 20px; bottom: 16px; }

  /* Tabs */
  .tmwc-tab-nav { margin-top: 24px; }
  .tmwc-tab-nav-inner { flex-direction: row; }
  .tmwc-tab-item { font-size: 18px; padding: 12px 16px; flex: 1; text-align: center; }

  /* Inner padding */
  .tmwc-inner { padding: 0 16px; }
  .tmwc-blue-area, .tmwc-green-area { padding: 32px 16px; }

  /* Section title */
  .tmwc-section-title { font-size: 28px; margin-bottom: 24px; }
  .tmwc-program-title { font-size: 32px; }
  .tmwc-program-desc  { font-size: 15px; }

  /* News */
  .tmwc-news-list li { flex-direction: column !important; align-items: flex-start !important; gap: 2px !important; }
  .tmwc-news-date { font-size: 13px !important; }
  .tmwc-news-title { font-size: 14px !important; }

  /* Schedule / Curriculum tables */
  .tmwc-schedule-table { min-width: 560px; font-size: 12px; }
  .tmwc-curriculum-table { min-width: 560px; font-size: 12px; }
  .tmwc-period { font-size: 12px; }

  /* Requirements */
  .tmwc-req-row { flex-direction: column; gap: 8px; }
  .tmwc-req-label { min-width: unset; }

  /* Flow */
  .tmwc-flow-steps { flex-direction: column; align-items: center; }
  .tmwc-flow-arrow { transform: rotate(90deg); padding: 0; }

  /* Venue / Contact */
  .tmwc-phone-num { font-size: 36px; }
  .tmwc-btn { font-size: 16px; padding: 12px 20px; width: 100%; text-align: center; }
  .tmwc-map-placeholder { height: 180px; }
}
