@charset "UTF-8";

/* ------------------------- page-pc ------------------------- */


/* ------------ ごあいさつ・当科の特徴 ------------ */

#message {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background-image: url('https://tsukubakinenqq.com/wp-content/uploads/2026/01/bg-about01.avif');
  background-size: 50% 30%;
  background-position: right 10vw;
  background-repeat: no-repeat;
}

.message-inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* diamond-header */
.diamond-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  margin-bottom: 60px;
}

.diamond-icon svg {
  display: block;
  height: 62px;
  width: auto;
}

.diamond-title-group {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.diamond-title-ja {
  font-size: 2.25rem;
  font-weight: bold;
  letter-spacing: 0.2rem;
  line-height: 1.2;
  color: #2B2B2B;
  margin: 0 0 8px 0;
}

.diamond-title-en {
  font-size: 0.9rem;
  color: #c0c0c0;
  font-weight: bold;
  letter-spacing: 0.1rem;
  font-family: sans-serif;
  line-height: 1;
}

/* メインコンテンツ */
.message-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 80px;
  margin-bottom: 100px;
}

/* 左側：テキストエリア */
.message-text-box {
  flex: 1;
  padding-left: 30px;
}

.message-title {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 40px;
  text-align: left;
}

.message-text {
  font-size: 1rem;
  line-height: 2;
  margin-bottom: 30px;
  text-align: justify;
}

/* --- 右側：写真エリア --- */
.message-image-box {
  flex: 0 0 400px;
  text-align: center;
}

.message-img {
  margin: 0 0 24px 0;
  width: 100%;
}

.message-img img {
  width: 72%;
  height: auto;
  vertical-align: bottom;
}

/* プロフィール */
.message-profile {
  width: 100%;
  text-align: center;
}

.page-template-default article p.message-position {
  font-size: 0.9rem;
  margin-bottom: 8px;
}

.page-template-default article p.message-name {
  display: block;
  font-size: 1.4rem;
  font-weight: bold;
}

span.message-name-kana {
  display: block;
  font-size: 0.8rem;
  font-weight: normal;
}

/* 3枚画像 */
.message-gallery {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  display: flex;
  justify-content: space-between;
}

.message-gallery-item {
  width: 33%;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.message-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16 / 9;
  vertical-align: bottom;
}

/* 左写真エリア・右テキスト */
.message-feature-block {
  display: flex;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 100px;
  min-height: 800px;
  background-image: url('https://tsukubakinenqq.com/wp-content/uploads/2026/01/bg-about02.avif');
  background-size: 50% 50%;
  background-position: left 2vw;
  background-repeat: no-repeat;
}

.message-feature-img-box {
  width: 36%;
  position: relative;
  overflow: hidden;
  padding-top: 100px;
}

.message-feature-img-main img {
  width: 50%;
  height: auto;
  object-fit: cover;
  position: absolute;
  top: 50px;
  right: 0;
}

.message-feature-img-sub img {
  width: 80%;
  height: auto;
  position: absolute;
  bottom: 0;
  left: 0;
}

.message-feature-content {
  width: 60%;
  display: flex;
  align-items: center;
  padding-left: 60px;
  padding-right: calc((100vw - 1200px) / 2 + 20px);
}

/* 救急科・集中治療科の特徴 */
#features {
  width: 100vw;
  margin-top: 200px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-top: 50px;
  padding-bottom: 0;
  overflow-x: hidden;
  position: relative;
}

.features-intro {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 80px 0 40px;
  background: #F6F6F6;
}

.features-intro-content {
  width: 50%;
  padding-left: calc((100vw - 1200px) / 2);
  padding-right: 60px;
}

.features-intro-text {
  font-size: 1.2rem;
  padding-left: 16px;
  line-height: 2;
  text-align: justify;
}

.features-intro-image {
  width: 40%;
  height: auto;
  object-fit: cover;
  position: absolute;
  top: -20px;
  right: 0;
}

.features-wrap {
  display: flex;
  flex-direction: column;
  padding: 30px;
  background: #F6F6F6;
}

.features-main {
  display: flex;
  width: 100%;
  align-items: stretch;
  box-shadow: 0px 0px 15px -5px #777777;
  margin-bottom: 30px;
}

.features-main-image-box {
  width: 45%;
  margin: 0;
}

.features-img {
  width: 100%;
  height: 100%;
  margin: 0;
  line-height: 0;
}

.features-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.features-main-text-box {
  width: 55%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.features-title-box {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 120px;
  background-color: #CCE7FD;
  position: relative;
  overflow: hidden;
}

.features-number {
  position: absolute;
  top: -24px;
  right: -28px;
  font-size: 11rem;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  letter-spacing: -1px;
  font-family: sans-serif;
  z-index: 0;
}

.features-title {
  position: relative;
  z-index: 1;
  font-size: 1.75rem;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 2px;
}

.features-text-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  background-color: #fff;
  padding: 50px 100px;
}

.features-text-content p + p {
  margin-top: 16px;
}

.features-text {
  font-size: 1rem;
  line-height: 2;
  text-align: justify;
  margin: 0;
}

/* History */
#history {
  width: 100vw;
  margin-top: 200px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 600px;
  padding-top: 50px;
  padding-bottom: 0;
}

.history-header {
  width: 1200px;
  margin: 0 auto 80px;
}

.history-content {
  padding-left: calc((100vw - 1200px) / 2);
  padding-right: 0;
  display: flex;
  align-items: center;
  width: 100%;
  position: relative;
}

.history-text {
  width: 70%;
  padding-right: 60px;
  font-size: 1.2rem;
  padding-left: 40px;
  line-height: 2;
  text-align: justify;
}

.history-image {
  width: 30%;
  height: auto;
  object-fit: cover;
  position: absolute;
  top: 0;
  right: 0;
}





.history-list-table table {
    width: 100%;
    border-collapse: collapse;
    border: none;
    margin: 0;
}


.history-list-table tr {
    display: grid;
    grid-template-columns: 80px 1fr; 
    gap: 20px;
    border: none;
}


.history-list-table td {
    border: none;
    background: transparent;
}


.history-list-table td:first-child {
    font-size: 1.1rem;
    font-weight: 200;
    padding: 0 0 10px;
    line-height: 1.2;
    margin-bottom: 10px;
    
    height: fit-content; 
}

.history-list-table td:last-child {
    margin: 0;
    padding: 0 0 50px;
    font-size: 0.95rem;
    font-weight: 200;
    line-height: 1.6;
}




/* ------------ スタッフ紹介 ------------ */

#staff {
}

.staff-wrap {
  position: relative;
  margin-bottom: 64px;
}

.staff-position {
  background: #E0F1FF;
  padding: 16px 64px;
  font-size: 1.2rem;
  font-weight: 600;
}

.staff-name {
  background: #CCE7FD;
  padding: 16px 64px;
  font-size: 2rem;
  font-weight: 600;
}

.staff-name span {
  margin-left: 16px;
  font-size: 1rem;
  font-weight: 300;
}

.staff-layout {
  display: flex;
  justify-content: space-between;
}

.staff-profile {
  width: 67%;
  padding: 50px 0;
}

.staff-images {
  flex: 1;
  margin: -50px 0 0 0;
  padding: 0 64px;
}

.staff-images figure {
  position: relative;
}

/*
.staff-images figcaption {
  position: absolute;
  top: -16px;
  left: -24px;
  width: 200px;
}
*/
.staff-images figcaption {
  position: absolute;
  top: -16px;
  left: -30px;
  
  font-family: 'Caveat', 'Brush Script MT', cursive;
  font-size: 1.8rem;
  letter-spacing: 2px;
  color: #2B2B2B;
  transform: rotate(-8deg);
  white-space: nowrap; 
  z-index: 2;

  text-shadow: 
    1px 1px 0 #ffffff,
    -1px -1px 0 #ffffff,
    -1px 1px 0 #ffffff,
    1px -1px 0 #ffffff;
}




.staff-comment {
  padding: 30px 16px;
}

/* staff tablepress */

.staff-wrap .tablepress {
  border-collapse: collapse;
  width: 100%;
  margin: 0;
  padding: 16px;
}

.staff-wrap .tablepress tr th {
  border-top: none;
  border-bottom: none;
  font-size: 1rem;
  letter-spacing: 2px;
  padding: 8px 30px;
  vertical-align: top;
  text-align: right;
  border-right: 3px solid #CCE7FD;
  width: 12rem;
}

.staff-wrap .tablepress tr td {
  border-top: none;
  border-bottom: none;
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: 1px;
  padding: 8px 30px;
  vertical-align: top;
}

/* ------------ 業績一覧 & 臨床研究 ------------ */

#achievement,
#clinical-research {
  padding-block: 80px;
  background-color: #f7f7f6;
}

/* コンテナ */
#achievement .achievement-container,
#clinical-research .common-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ページタイトル共通 */
.achievement-main-title,
.common-main-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: bold;
  color: #2B2B2B;
  margin-bottom: 80px;
  font-family: sans-serif;
}

/* 業績一覧 */

.achievement-section {
  margin-bottom: 80px;
}

.achievement-category-label {
  display: inline-block;
  background-color: #fff;
  border: 1px solid #888;
  padding: 12px 30px;
  font-size: 1rem;
  font-weight: normal;
  color: #2B2B2B;
  margin-bottom: 20px;
}

#achievement .achievement-table,
#achievement .tablepress {
  width: 100%;
  border-collapse: collapse !important;
  background-color: #fff !important;
  font-size: 0.95rem;
  border: none !important;
}

#achievement .achievement-table thead th,
#achievement .tablepress thead th {
  background-color: #e6f2ff !important;
  color: #2B2B2B !important;
  font-weight: normal !important;
  text-align: left !important;
  padding: 15px 20px !important;
  border-bottom: 1px solid #fff !important;
  border-top: none !important;
  white-space: nowrap;
}

#achievement .achievement-table tbody td,
#achievement .tablepress tbody td {
  background-color: #fff !important;
  color: #2B2B2B !important;
  padding: 25px 20px !important;
  vertical-align: top !important;
  line-height: 1.6 !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

#achievement .achievement-table tbody tr:last-child td,
#achievement .tablepress tbody tr:last-child td {
  border-bottom: none !important;
}

.small-text {
  font-size: 0.8em;
  color: #555;
  margin-left: 5px;
}

/* 臨床研究 */

#clinical-research .research-table,
#clinical-research .tablepress {
  width: 100%;
  border-collapse: collapse !important;
  background-color: #fff !important;
  font-size: 0.95rem;
  border: none !important;
  margin-bottom: 40px !important;
}

#clinical-research .research-table tr,
#clinical-research .tablepress tr {
  border-bottom: 2px solid #fff !important;
}

#clinical-research .research-table th,
#clinical-research .tablepress tbody td.column-1 {
  width: 20%;
  background-color: #e6f2ff !important;
  color: #2B2B2B !important;
  font-weight: normal !important;
  text-align: left !important;
  padding: 20px !important;
  vertical-align: middle !important;
  white-space: nowrap;
}

#clinical-research .research-table td,
#clinical-research .tablepress tbody td.column-2 {
  background-color: #fff !important;
  color: #2B2B2B !important;
  padding: 20px !important;
  line-height: 1.6 !important;
  vertical-align: middle !important;
}

/* リンクテキスト */
#clinical-research a {
  color: #0088cc;
  text-decoration: underline;
}

#clinical-research a:hover {
  text-decoration: none;
  opacity: 0.8;
}










/* ------------ 研修プログラムの概要 ------------ */

/* --- プログラム概要/応募までの流れ　リンクボタン --- */

.btn-program-container {
  width: 100%;
  display: flex;
  justify-content: center; /* 中央寄せ */
  margin-top: 30px;        /* 上の文章との隙間 */
}

.btn-program {
  /* spanになってもボックスとして機能させる */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 22px 30px;
  gap: 1.5rem;
  
  /* デザイン */
  color: #0088CC;
  background-color: #fff;
  border: 2px solid currentColor;
  border-radius: 60px;
  text-decoration: none;
  transition: background-color 0.3s;
  
  line-height: 1.4;
  max-width: 620px;
}

.btn-program:hover {
  background-color: #f0f8ff;
}

/* テキストグループ（元div → 今span） */
.btn-text {
  display: grid; /* spanでもグリッドレイアウトを強制する */
  text-align: center;
  gap: 8px;
}

/* メイン・サブテキスト（元span → 今span） */
.btn-text .main {
  display: block; /* 念のためブロック化 */
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.2;
}

.btn-text .sub {
  display: block; /* 念のためブロック化 */
  font-size: 1rem;
  opacity: 0.9;
}

/* アイコン */
.btn-program .icon {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}









/* ------------ 研修プログラムの概要 ------------ */

/* --- STEPナビゲーション --- */

#program-nav {
	width: 1000px;
	margin: 80px auto;
}


.step-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  width: 100%;
}

.step-nav li {
  position: relative;
  flex: 1;
  height: 60px;
  line-height: 60px;
  background: #EDEDED;
  text-align: center;
  margin-right: 4px;
  padding-left: 20px;
  box-sizing: border-box;
}

.step-nav li:last-child {
  margin-right: 0;
}

.step-nav li a {
  display: block;
  text-decoration: none;
  color: #2B2B2B;
  font-weight: 300;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  margin-left: -20px;
}

.step-nav li::after {
  content: "";
  position: absolute;
  top: 0;
  right: -20px;
  z-index: 2;
  border-top: 30px solid transparent;
  border-bottom: 30px solid transparent;
  border-left: 20px solid #EDEDED;
}

.step-nav li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  border-top: 30px solid transparent;
  border-bottom: 30px solid transparent;
  border-left: 20px solid #fff;
}

.step-nav li:first-child {
  padding-left: 0;
}

.step-nav li:first-child::before {
  display: none;
}

.step-nav li:first-child a {
  margin-left: 0;
}

.step-nav li.active {
  background: #fff;
}

.step-nav li.active::after {
  border-left-color: #fff;
}



/* ------------ 研修プログラムの概要　本体 ------------ */


#program-introduction {
	display: flex;
	justify-content: space-between;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	margin-top: 5px;
}

#program-introduction figure.program-introduction-img {
}
#program-introduction figure.program-introduction-img-sp {
  display: none;
}


#program-introduction figure {
  width: 20%;
  margin: 0;
}

#program-introduction figure img {
  width: 100%;
  height: auto;
  display: block;
}

#program-introduction div.program-introduction-message {
  width: 75%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.program-introduction-message .inner {
  width: 100%;
  max-width: 600px;
  margin: 40px auto;
}

#program-introduction div.program-introduction-message h2 {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 40px;
  text-align: center;
}

#program-introduction div.program-introduction-message p {
  font-size: 1rem;
  line-height: 2;
  margin-bottom: 30px;
  text-align: justify;
}



#specialist {
  padding-block: 80px 0;
}

.specialist-topic {
  margin-bottom: 100px;
}

.specialist-title {
  text-align: center;
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 60px;
  position: relative;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-bottom: 20px;
}

.specialist-title span {
  font-size: 3rem;
  margin-inline: 5px;
}

.specialist-title::before {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background-color: #ccc;
  position: absolute;
  bottom: 0;
  left: 0;
}

.specialist-title::after {
  content: "";
  display: block;
  width: 200px;
  height: 4px;
  background-color: #e65624;
  position: absolute;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%);
}

.specialist-subtitle {
  background-color: #3198c4;
  color: #fff;
  width: 100%;
  margin: 0 auto 50px;
  text-align: center;
  padding: 30px 0;
  font-size: 2.25rem;
  font-weight: bold;
}

.specialist-list {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.specialist-item {
  width: 32%;
  background-color: #fff;
}

.specialist-item img {
  width: 100%;
  height: auto;
  display: block;
}

.specialist-box {
  text-align: center;
  padding: 30px 20px;
}

.specialist-box h4 {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 20px;
  color: #2B2B2B;
}

.specialist-icon {
  margin-bottom: 15px;
  height: 50px;
}

.specialist-icon img {
  width: 50px;
  margin: 0 auto;
}

.specialist-number {
  font-size: 1.25rem;
  font-weight: bold;
  color: #2B2B2B;
}

.specialist-number span {
  font-size: 3rem;
  color: #3198c4;
  margin: 0 5px;
}

.specialist-note {
  font-size: 0.875rem;
  color: #666;
  margin-top: 5px;
}

.specialist-desc {
  text-align: left;
  font-size: 1rem;
  line-height: 1.75;
}




#specialist .specialist-table-wrap {
  padding: 0 30px;
}
#specialist .specialist-table,
#specialist .tablepress {
  width: 96%;
  background-color: #fff;
  border: none;
}

#specialist .specialist-table thead th,
#specialist .tablepress thead th {
  background-color: #e6f2ff;
  color: #2B2B2B;
  font-weight: normal;
  text-align: center;
  padding: 15px 20px;
  border: solid 4px #F7F7F6;
  white-space: nowrap;
}

#specialist .specialist-table tbody td,
#specialist .tablepress tbody td {
  background-color: #fff;
  color: #2B2B2B;
  padding: 25px 20px;
  line-height: 1.6;
  border: solid 4px #F7F7F6;
}
  .specialist-table td:nth-child(2) {
    text-align: right;
  }



/* 2列目の中央揃え用クラス */
.u-center {
  text-align: center;
}

.specialist-text {
  padding: 0 60px;
  line-height: 1.8;
  color: #2B2B2B;
  text-align: left;
}

.specialist-research-list {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 40px;
}

.specialist-research-item {
  width: 32%;
  background-color: #fff;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 20px;
}


.specialist-research-icon {
  width: 60px;
  flex-shrink: 0;
}

.specialist-research-icon svg {
  width: 100%;
  height: auto;
  fill: #E0F1FF;
}

.specialist-research-title {
  font-size: 1.125rem;
  font-weight: bold;
  line-height: 1.5;
  color: #2B2B2B;
  margin: 0;
  display: block !important;
}

.specialist-career {
  width: 1200px;
  position: relative;
  margin: 160px auto 0;
  padding: 30px 60px 60px;
  background-color: #dcefff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.specialist-career-img {
  width: 30%;
  flex-shrink: 0;
  margin: -30px 0 0 0;
  z-index: 2;
}

.specialist-career-img img {
  width: 100%;
  height: auto;
  display: block;
  margin-top: -40px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

.specialist-career-content {
  width: 70%;
}

.specialist-career-title {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.8;
  color: #2B2B2B;
  margin: 0 0 50px 30px;
}

.specialist-career-title .highlight {
  background-color: #3198c4;
  color: #fff;
  padding: 0 5px;
  margin: 0 5px;
  display: inline-block;
}

.specialist-career-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.specialist-career-list li {
  position: relative;
  background-color: #fff;
  height: 60px;
  display: flex;
  align-items: center;
  padding-left: 50px;
  padding-right: 30px;
  clip-path: polygon(0 0, 100% 0, 95% 100%, 0 100%);
  filter: drop-shadow(2px 4px 5px rgba(0,0,0,0.05));
}

.specialist-career-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 2px;
  background-color: #bde0fc;
}

.specialist-career-list li::after {
  content: "";
  position: absolute;
  left: 30px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #bde0fc;
}

.specialist-career-list li .text {
  font-size: 1rem;
  font-weight: bold;
  color: #2B2B2B;
}











#omni-er {
}

.omni-er {
  width: 1200px;
  position: relative;
  margin: 0 auto;
  padding: 30px 60px 60px;
  background-color: #dcefff;
  display: flex;
  align-items: center;
  justify-content: center;
}


.omni-er-section {
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}

.omni-er-intro {
  text-align: center;
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 20px;
  color: #2b2b2b;
}

.omni-er-banner {
  background-color: #3185b8;
  color: #fff;
  text-align: center;
  padding: 25px 20px;
  margin-bottom: 30px;
}

.omni-er-banner-title {
  font-size: 2rem;
  font-weight: bold;
  margin: 0 0 10px 0;
}

.omni-er-banner-sub {
  font-size: 1.2rem;
  font-weight: bold;
  margin: 0;
}


.omni-er-desc {
  line-height: 1.8;
  color: #2b2b2b;
  margin: 0 auto 30px;
  padding: 10px 60px;
  width: 1000px;
}


.omni-er-white-box {
  background-color: #fff;
  padding: 50px 40px;
  box-sizing: border-box;
  margin-bottom: 40px;
}

.omni-er-image-wrap {
  text-align: center;
  margin-bottom: 50px;
}

.omni-er-image-wrap img {
  max-width: 100%;
  height: auto;
}

.omni-er-features {
  list-style: none;
  padding: 0;
  margin: 0;
}

.omni-er-features li {
  margin-bottom: 35px;
}

.omni-er-features li:last-child {
  margin-bottom: 0;
}

.omni-er-feature-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  margin-bottom: 10px;
}

.omni-er-badge {
  background-color: #4fa5cc;
  color: #fff;
  padding: 6px 16px;
  margin-right: 1.4rem;
  font-weight: bold;
  font-size: 1.4rem;
  white-space: nowrap;
}

.omni-er-feature-title {
  font-size: 1.2rem;
  font-weight: bold;
  color: #2b2b2b;
  margin: 0;
}

.omni-er-feature-text {
  line-height: 1.7;
  color: #2b2b2b;
  margin: 0;
  padding-left: 2px;
}

.omni-er-outro {
  line-height: 1.8;
  color: #2b2b2b;
  margin: 60px auto 0;
  padding: 0 60px;
  width: 1000px;
}









#voice {
  position: relative;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-top: 100px;
  padding-bottom: 0;
  overflow: hidden;
  background-color: #ccc;
  background-image: url('https://tsukubakinenqq.com/wp-content/uploads/2026/01/bg-voice-scaled.avif');
  background-size: cover;
  background-position: center;
}

.voice-container {
  position: relative;
  width: 100%;
}

.voice-header {
  position: absolute;
  top: -60px;
  left: 50px;
  z-index: 10;
}

.voice-bubble-wrapper {
  position: relative;
  width: 300px;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.voice-bubble-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  filter: drop-shadow(0 5px 10px rgba(0,0,0,0.2));
}

.voice-title {
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 0;
  position: absolute;
  top: 40px;
}

.voice-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.voice-icon svg {
  width: 100%;
  height: auto;
}

.voice-list {
  display: flex;
  gap: 40px;
  overflow-x: auto;
  padding: 40px 80px 100px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.5) transparent;
}

.voice-list::-webkit-scrollbar {
  height: 8px;
  display: block;
}

.voice-list::-webkit-scrollbar-track {
  background: transparent;
}

.voice-list::-webkit-scrollbar-thumb {
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 4px;
}

.voice-item {
  width: 800px;
  height: 300px;
  background-color: #fff;
  border-radius: 8px;
  padding: 40px;
  box-sizing: border-box;
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
  flex-shrink: 0;
  white-space: normal;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.voice-meta {
  text-align: center;
  font-weight: bold;
  color: #2B2B2B;
  margin-bottom: 30px;
  font-size: 1.125rem;
}

.voice-body {
  font-size: 1rem;
  line-height: 2;
  color: #2B2B2B;
}


.voice-body p::first-letter {
  font-size: 2rem;
  line-height: 1;
  float: left;
  margin-right: 3px;
  margin-top: -5px;
  font-weight: normal;
}

#program-message {
  padding: 100px 40px;
  background-color: #fff;
}

.program-message-container {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.program-message-content {
  width: 70%;
}

.program-message-title {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "HGSMinchoE", serif;
  font-size: 1.75rem;
  font-weight: bold;
  color: #2B2B2B;
  margin-bottom: 40px;
  line-height: 1.6;
}

.program-message-text {
  font-size: 1rem;
  line-height: 2;
  color: #2B2B2B;
  margin-bottom: 30px;
  text-align: justify;
}

.program-message-images {
  width: 24%;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.program-message-img-main img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  display: block;
  object-fit: cover;
  border-radius: 8px;
}

.program-message-img-sub img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 8px;
}

/* ------------ 応募までの流れ ------------ */

#recruitment-flow {
  padding: 80px 0;
  background-color: #f9f9f9;
}

.recruitment-flow-step {
  max-width: 900px;
  width: 100%;
  margin: 0 auto 60px;
  background-color: #fff;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

/* STEP1, 2, 3 共通ヘッダー */
.recruitment-flow-header {
  background-color: #3198c4;
  color: #fff;
  text-align: center;
  font-size: 1.75rem;
  font-weight: bold;
  padding: 15px 0;
  font-family: sans-serif;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.recruitment-flow-body {
  padding: 50px;
}

.recruitment-flow-title {
  text-align: center;
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 40px;
  color: #2B2B2B;
}

/* --- STEP1 --- */
.step1-layout {
  display: grid;
  grid-template-columns: 1fr 250px;
  gap: 40px;
  align-items: center;
  padding: 40px 50px;
}

.step1-layout .recruitment-flow-title,
.step1-layout .btn-program-container {
  grid-column: 1 / -1;
  width: 100%;
}

.step1-layout .btn-program-container {
  margin-top: 60px;
}

.recruitment-flow-text {
  line-height: 2;
  color: #2B2B2B;
  margin: 0;
}

.step1-layout .recruitment-flow-img {
  width: 100%;
}

.step1-layout .recruitment-flow-img img {
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* --- STEP2・3 --- */
.recruitment-flow-center-text {
  text-align: center;
  line-height: 2;
  color: #2B2B2B;
  margin-bottom: 40px;
}

.recruitment-flow-contact {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin-bottom: 40px;
}

.recruitment-flow-icon {
  width: 45px;
  height: 45px;
  flex-shrink: 0;
}

.recruitment-flow-phones {
  display: flex;
  flex-direction: column;
}

.phone-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  line-height: 1.4;
}

.phone-number {
  font-size: 2.5rem;
  font-weight: bold;
  color: #3198c4;
  font-family: sans-serif;
}

.phone-label {
  font-size: 1rem;
  color: #2B2B2B;
}

/* --- STEP3 --- */
.recruitment-flow-banner {
  text-align: center;
  margin-top: 40px;
}

.recruitment-flow-banner img {
  max-width: 100%;
  width: 400px;
  height: auto;
  display: inline-block;
  transition: opacity 0.3s;
}

.recruitment-flow-banner a:hover img {
  opacity: 0.8;
}

/* --- … --- */
.recruitment-flow-connector {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 60px;
}

.recruitment-flow-connector span {
  width: 12px;
  height: 12px;
  background-color: #3198c4;
  border-radius: 50%;
}

.btn-program-container {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.btn-program {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  padding: 22px 30px;
  gap: 1.5rem;
  color: #0088CC;
  background-color: #fff;
  border: 2px solid currentColor;
  border-radius: 60px;
  text-decoration: none;
  transition: background-color 0.3s;
  line-height: 1.4;
}

.btn-program:hover {
  background-color: #f0f8ff;
}

.btn-text {
  display: grid;
  text-align: center;
  gap: 0.5rem;
}

.btn-text .main {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.2;
}

.btn-text .sub {
  display: block;
  font-size: 1rem;
  opacity: 0.9;
}

.btn-program .icon {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}

/* ------------ 専攻医・スタッフ募集 ------------ */

#recruitment {
  padding: 0 20px 60px;
}

.recruitment-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}

/* タイトルエリア */
.recruitment-title {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "HGSMinchoE", serif;
  font-size: 1.75rem;
  font-weight: bold;
  color: #2B2B2B;
  line-height: 1.6;
  margin-bottom: 60px;
  text-align: left;
}

/* 本文エリア */
.recruitment-text {
  font-size: 1rem;
  line-height: 2.2;
  color: #2B2B2B;
  margin-bottom: 50px;
  text-align: justify;
}

/* 画像エリア */
.recruitment-image {
  width: 100%;
  margin-bottom: 50px;
}

.recruitment-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background-color: #ccc;
  display: block;
}

/* ------------ インスタグラム ------------ */

#sns {
  padding-block: 80px;
  background-color: #fff;
  overflow-x: hidden;
}

.sns-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}

.sns-header-wrapper {
  margin-bottom: 60px;
  display: flex;
  justify-content: flex-start;
  width: 100%;
}

.sns-header-bg {
  background-color: #e3f6fc;
  padding: 15px 80px 15px 40px;
  clip-path: polygon(0 0, 100% 0, calc(100% - 30px) 100%, 0 100%);
  display: inline-block;
}

.sns-title {
  font-size: 1.5rem;
  font-weight: bold;
  color: #2B2B2B;
  margin: 0;
}

.sns-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 50px;
  margin-bottom: 80px;
}

.sns-visual {
  width: 40%;
  flex-shrink: 0;
}

.sns-collage-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.sns-info {
  width: 55%;
}

.sns-heading {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 30px;
  color: #2B2B2B;
  border-bottom: none;
}

.sns-description-row {
  display: flex;
  gap: 20px;
  margin-bottom: 30px;
}

.sns-qr {
  width: 140px;
  flex-shrink: 0;
}

.sns-qr img {
  width: 100%;
  height: auto;
}

.sns-text {
  font-size: 0.95rem;
  line-height: 1.8;
  color: #2B2B2B;
  margin: 0;
}

.sns-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 350px;
  margin: 0 auto;
  padding: 15px;
  border-radius: 8px;
  background: linear-gradient(135deg, #8a2be2 0%, #ff4500 65%, #ffce00 100%);
  color: #fff;
  font-weight: bold;
  font-size: 1.1rem;
  text-decoration: none;
  transition: opacity 0.3s;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.sns-btn:hover {
  opacity: 0.9;
}

.sns-btn-arrow {
  width: 20px;
  height: 20px;
}

.sns-widget-area {
  width: 100%;
  margin-top: 50px;
}

.sns-widget-placeholder {
  width: 100%;
  height: 400px;
  background-color: #f0f0f0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
  border: 2px dashed #ccc;
  border-radius: 8px;
}




/* --- 救急医の活動,抄読会 タイトル --- */

.archive .archive-title {
  text-align: center;
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 40px;
  color: #2B2B2B;
}




/* --- 抄読会レポート用スタイル --- */

.entry-journal-club .wp-block-separator {
	border: none!important;
	margin: 30px 0;
}
.report-row {
    margin-bottom: 30px;
}
.report-icon-box {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    background-color: #00A0E9; /* デザイン画像の青色 */
    border-radius: 50%;
    margin: 0 auto 10px auto; /* 中央寄せと下余白 */
}
.report-label {
    font-size: 14px;
    font-weight: bold;
    color: #444;
    line-height: 1.4;
    margin-top: 0;
}



/* -------------------------------------------
   Sitemap 用デザイン
------------------------------------------- */

/* 全体の枠組み */
.sitemap-container {
    max-width: 100%;
    font-size: 16px;
    line-height: 1.8;
}

/* 1. 見出し（H2） */
.sitemap-container h2 {
    font-size: 20px;
    font-weight: bold;
    color: #2B2B2B;
    padding: 4px 16px;
    border-left: 5px solid #00A0E9;
    margin-top: 40px;
    margin-bottom: 20px;
}

/* 最初の見出しだけ上の余白を消す */
.sitemap-container h2:first-of-type {
    margin-top: 0;
}

/* 2. リスト全体（ul） */
.sitemap-container ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 3. リストの各項目（li） */
.sitemap-container li {
    margin-bottom: 8px;
    padding-left: 20px;
    position: relative;
}

/* 各項目の頭に「・」をつける */
.sitemap-container li::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    background-color: #ccc;
    border-radius: 50%;
    position: absolute;
    left: 5px;
    top: 10px;
}

/* 4. リンク（aタグ） */
.sitemap-container a {
    text-decoration: none;
    color: #2B2B2B;
    transition: color 0.2s;
}

.sitemap-container a:hover {
    color: #00A0E9;
    text-decoration: underline;
}

/* 5. 階層構造（子ページなどがある場合） */
.sitemap-container ul ul {
    margin-top: 5px !important;
    margin-left: 10px !important;
}

/* 子リストの点は少し小さく */
.sitemap-container ul ul li::before {
    width: 4px;
    height: 4px;
    top: 11px;
    background-color: #999;
}
