/*Reset*/
body {
  margin: 0;
  padding: 0;
  width: 100%;
  font-family: 
  "Yu Gothic Medium", "Yu Gothic", "YuGothic", "游ゴシック体", 
  "Hiragino Kaku Gothic ProN", sans-serif;

  letter-spacing: 0.07em;
  color: #333333;
}
main {
background: #f5f5f5;
}
img {
    vertical-align: bottom;
    max-width: 100%;
    height: auto;
}
a {
  color: #333333; 
}
/* 訪問済み（visited）でも黒を維持 */
a:visited {
  color: #333333;
}
@media (any-hover: hover) {
  a:hover {
    color: #666666;
  }
}
strong{
  font-weight: 700;
}
.pb0 {
padding-bottom: 0 !important;
}
.mt60{
  margin-top: min(60px,calc(60 / 750 * 100vw)) !important;
}
.mt80{
  margin-top: clamp( 40px, 10.67vw, 80px) !important;
}
.w95{
  width: 95%;
  margin-inline:auto;
}

/* ユーティリティクラス（汎用レイアウト用） */
.u-flex-col-center
{
    display: flex;
    flex-direction: column;
    align-items: center;
}
/* 1. 太字 ＋ 下線あり */
.u-text-link--bold-underline {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.2em; /* 線がテキストにくっつきすぎない調整 */
}
/* 2. 通常表示（太字なし） ＋ 下線なし */
.u-text-link--plain {
  font-weight: 400;
  text-decoration: none;
}

/*共通css 調整*/
#contents.p-contents--no-header{
  padding-top: 0;
}
#contents.p-contents--no-footer{
  padding-bottom: 0;
}
footer.l-footer{
  display: none;
}
.l-container{
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
  box-shadow: 3px 3px 10px rgba(0 0 0 / 0.1);
}
@media screen and (min-width: 640px){
  .l-container{
      max-width: 750px;
  }
}

/*当ページ用*/
/*セクション デバイス用*/
.p-section-body{
  width: 100%;
  padding-inline: clamp(26px,5vw,52px);
  font-size: clamp(13px, 3.47vw, 26px);
  padding-bottom: clamp(40px, 10.67vw, 80px);
  box-sizing: border-box;
  position: relative;
}
/* .p-section-body の直後に要素が続く場合 */
.p-section-body:has(+ .p-section-application) {
  padding-bottom: 0px;
}

.p-section-inline{
  padding-inline: clamp(26px,5vw,52px);
  box-sizing: border-box;
}
.p-section-block{
  padding-block: clamp(30px,5vw,60px);
  box-sizing: border-box;
}
.p-section-inner-box{
  width: 100%;
  padding-inline: clamp(26px,5vw,52px);
  padding-block: clamp(30px,5vw,60px);
  box-sizing: border-box;
}

.p-fv,
.p-contents,
.p-schedule,
.p-overview,
.p-faq {
  position:relative;
  z-index:0;
}

.p-summary,
.p-schedule,
.p-faq,
.p-content,
.p-doctor,
.p-meetup,
.p-overview,
.p-career{
  display:flex;
  flex-direction: column;
  align-items: center;
}

.p-summary,
.p-schedule,
.p-faq{
  background: #ffffff;
}
.p-content,
.p-doctor,
.p-meetup{
  background: #b7e0fd;
}
.p-overview{
  background: #b1cafa;
}
.p-career{
  background: #eef6ff;
}

/*セクション見出し*/
.p-section-title{
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 500;
  padding-inline: clamp(25px,5vw,50px);
  padding-block: clamp(30px,8vw,60px);
}
.p-section-title__main{
  display: flex;
  flex-direction: column;
  align-items: center;
  background: linear-gradient(to right, #000000, #333333); 
  -webkit-background-clip: text; 
  background-clip: text;
  color: transparent;
  font-size: clamp(38px, 10.13vw, 76px);
  font-family: "Yu Mincho", "YuMincho", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-weight: 400;
}
.p-section-title__sub{
  color: #333333;
  font-size: clamp(20px, 4.8vw, 36px);
  font-family: "Yu Gothic Medium", "Yu Gothic", "游ゴシック Medium", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
}
.p-section-title__text{
  display: block;
  color: #333333;
  font-size: clamp(13px, 3.47vw, 26px);
  font-weight: 500;
  margin-top: clamp(20px, 4.8vw, 40px);
}
.p-section-title__text--center{
  text-align: center;
}

/*Content*/
.p-content{
  position: relative;
}

/*スケジュール：リスト*/
.p-schedule__list {
  list-style: none; /* 数字の自動付与を消す */
  padding: 0;
  /*width: fit-content;
    margin: 0 auto; */
}
.p-schedule__item {
  display: flex; /* 時間と内容を横並びにする */
  gap: 16px;
  align-items: baseline;
}
.p-schedule__item:not(:last-child){
  padding-bottom: clamp(12px,3.2vw,24px);
}

.p-schedule__time{
  background: #4e66aa;
  font-size: clamp(12px, 3.2vw, 24px);
  font-weight: 700;
  color: white;
  border-radius: 8px;
  padding: 0.01em 0.7em;
  border-radius: 9999px;
}
.p-schedule__comment,
.p-schedule__content{
  font-size: clamp(11px, 3.2vw, 22px);
  font-weight: 500;
}
.p-schedule__content{
  line-height: 2.4;
  letter-spacing: 0.03em;
  font-feature-settings: "palt"
}
.p-schedule__comment{
  margin-top: clamp(20px, 4.8vw, 40px);
}
.p-section-comment{
  font-size: clamp(13px, 3.47vw, 26px);
  font-weight: 700;
}

/*meetup*/
.p-section-meetup__text{
  display:flex;
  flex-direction: column;
  gap: clamp(12px,3.2vw,24px);
  margin-bottom: clamp(15px, 3.8vw, 30px);
}

/*overview*/
/* 1行ごとの枠線と余白 */
.p-overview__item {
  display: flex;
  flex-direction: column;
  padding-block: clamp(16px, 3.2vw, 24px);
  border-bottom: 1px solid #333333;
  width: 100%;
}

/* 項目名（dt）：CSSで「ー」を先頭に付与 */
.p-overview__label {
  font-size: clamp(13px, 2.4vw, 26px);
  font-weight: 700; 
  color: #333333;
  margin-bottom: 8px;
}

.p-overview__label::before {
  content: "- ";
}

/* 内容（dd） */
.p-overview__detail {
  margin-left: 0; /* dt/ddブラウザデフォルト値の削除 */
  font-size: clamp(13px, 2.4vw, 26px);
  font-weight: 500; 
  line-height: 1.6;
  color: #333333;
  letter-spacing: 0.03em;
}

/* 補足注記（※〜）のスタイル */
.p-overview__note {
  display: block;
  font-size: clamp(12px, 1.73vw, 14px);
  color: #666;
  margin-top: 4px;
}

/* PC（スマホ横幅以上）で左右の横並び配置にする場合 
@media screen and (min-width: 600px) {
  .p-overview__item {
    flex-direction: row;
    align-items: baseline;
  }

  .p-overview__label {
    width: 220px;
    flex-shrink: 0;
    margin-bottom: 0;
  }

  .p-overview__detail {
    flex-grow: 1;
  }
}
*/

/*FAQ*/
/* 各質問と回答のブロック */
.p-faq__item:not(:last-child) {
  margin-bottom: clamp(30px, 8vw, 60px);
}

/* --- Q（質問）部分 --- */
.p-faq__question {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  font-weight: 700;
  color: #333;
}

.p-faq__q-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(30px, 8vw, 60px);
  height: clamp(30px, 8vw, 60px);
  flex-shrink: 0;
  border: 2px solid #333333; /* 四角囲み */
  border-radius: 4px;    /* 少しだけ角丸にする（完全な四角なら 0） */
  font-weight: bold;
  font-size: clamp(18px,4.8vw, 36px);
  line-height: 1;
  color: #ffffff;
  background-color: #333333;
  font-family: "Yu Mincho", "YuMincho", "YuMincho Medium", "Hiragino Mincho ProN", serif;
}

.p-faq__question-text {
  font-size: clamp(13px, 3.47vw, 26px);
  font-weight: 700;
  line-height: 1.5;
  padding-top: 3px; /* アイコンとの上下揃え微調整 */
}

/* --- A（回答）部分（枠囲みデザイン） --- */
.p-faq__answer {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-left: 0; /* dt/ddデフォルト余白消去 */
  padding: clamp(16px, 3.2vw, 20px);
  border: 1px solid #e0e0e0; /* A全体を囲む枠線 */
  border-radius: 8px;
  background-color: #B7E0FD; /* 薄い背景色（必要に応じて変更可） */
}

.p-faq__a-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(30px, 8vw, 60px);
  height: clamp(30px, 8vw, 60px);
  flex-shrink: 0;
  border: 2px solid #ffffff; /* 四角囲み */
  border-radius: 4px;
  font-weight: bold;
  font-size: clamp(18px,4.8vw, 36px);
  line-height: 1;
  color: #333333;
  background-color: #ffffff; 
  font-family: "Yu Mincho", "YuMincho", "YuMincho Medium", "Hiragino Mincho ProN", serif;
}

.p-faq__answer-text {
  font-size: clamp(13px, 3.47vw, 26px);
  font-weight: 700;
  line-height: 1.6;
  color: #000;
  padding-top: 3px; /* アイコンとの上下揃え微調整 */
}

/*選べる勤務体系　表*/
.center-recommended-box {
  width: 100%;
  margin: 0 auto;
}
.center-recommended-box-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.center-recommended-box-tbl {
  --conter-recommended-box-ttl-bg: #000000;
  --conter-recommended-box-line-col: #666666;

  width: 100%;
  margin: 0 auto;

  background-color: var(--conter-recommended-box-ttl-bg);
  border: clamp(2px, 0.625vw, 4px) solid var(--conter-recommended-box-ttl-bg);
  border-radius: clamp(10px, 2.5vw, 20px);
  overflow: hidden;
}

.center-recommended-box-tbl-body {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: clamp(12px, 3.4375vw, 22px);
  line-height: 1.6;
  font-family: var(--midashi-font);
}

/* 1行目：見出し（2列を結合） */
.center-recommended-box-tbl-body thead th {
  background-color: var(--conter-recommended-box-ttl-bg);
  color: #ffffff;
  padding: clamp(4px, 1.25vw, 8px);
  text-align: center;
  font-weight: bold;
}

/* 2〜5行目の基本スタイル（グラデーション：中央が明るい斜め線形） */
.center-recommended-box-tbl-body tbody {
  background: linear-gradient(135deg, #dec269 0%, #f6f1dd 50%, #d4af37 100%);
}

/* 2〜5行目の区切り線（ドットの罫線） */
.center-recommended-box-tbl-body tbody tr:not(:last-child) th,
.center-recommended-box-tbl-body tbody tr:not(:last-child) td {
  border-bottom: clamp(2px, 0.267vw, 3px) dotted var(--conter-recommended-box-line-col);
}

.center-recommended-box-tbl-body tbody th,
.center-recommended-box-tbl-body tbody td {
  padding: clamp(6px, 1.875vw, 12px) clamp(8px, 2.65vw, 20px);
  text-align: left;
  font-weight: bold;
  box-sizing: border-box;
  vertical-align: middle;
}

/* 1列目（ラベル） */
.center-recommended-box-tbl-body tbody th {
  width: 30%;
  border-right: clamp(2px, 0.267vw, 3px) dotted var(--conter-recommended-box-line-col);
  text-align: center;
}

/*1列目（ラベル内）*/
.center-recommended-box-tbl-ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
}

.center-recommended-box-tbl-ttl-text {
  font-size: clamp(13px, 4.0625vw, 26px);
}


/*COPYRIGHTS*/
.p-footer,
.l-footer{
  display: block;
  width: 100%;
  background: #000000;
  color: white;
  text-align: center;
  box-sizing: border-box;
  padding-bottom: clamp(63px, 22vw, 170px);
}

.p-footer__copyright,
.copyright {
    font-weight: 500;
    font-size: clamp(11px, 2.2vw, 22px);
    letter-spacing: 0.05em;
    text-align: center;
    color: #fff;
    opacity: 0.5;
    padding: 1.1em 0;
}

/*絶対配置パーツ*/
.p-form-link--fv{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 82.0%;
  width: 83%;
  text-align: center;
  z-index: 1;

}

.p-form-link--doctor {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 73.5%;
  width: 90%;
  text-align: center;
  z-index: 1;
}
@media screen and (max-width: 640px){
  .p-form-link--doctor {
    width: 91%;
  }
}

.p-form-link--application {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 54.5%;
  width: 91%;
  max-width: 640px;
  text-align: center;
  z-index: 1;
}

.p-form-link--fv img,
.p-form-link--doctor img,
.p-form-link--application img {
  width: 100%;
  height: auto;
  display: block;
}

@media (any-hover: hover) {
  .p-form-link--fv:hover,
  .p-form-link--doctor:hover,
  .p-form-link--application:hover {
    opacity: 0.8;
    transition: opacity 0.3s ease;
  }
}

.p-form-link--button{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(45deg, #333 0%, #111 15%, #111 85%, #333 100%);
    background: #222;
    border: 2px solid #ffffff;    
    padding: clamp(4px, 0.8vw, 6px) clamp(7px, 0.9vw, 14px);;
    border-radius: clamp(3px, 0.8vw, 6px);
    cursor: pointer;
    font-weight: bold;
    font-size: clamp(13px, 1.867vw, 14px);
    color: #fff;
    position: relative;
    overflow: hidden;
    transition: all 0.2s ease;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.p-form-link--button:visited{
    color: #fff;
}
@media (any-hover: hover) {
  .p-form-link--button:hover{
    color: #fff;
    background: #005eaa;
    border: 2px solid #dadada;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  }
}

/* 画像の余白除去・レスポンシブ化 */
.p-form-link img {
  display: block; 
  max-width: 100%;
  height: auto;
}

/*Application*/
.p-section-application{
  width: 100%;
  padding-inline: clamp(12px,2.5vw,25px);
  padding-block: clamp(30px,5vw,70px);
  box-sizing: border-box;
  position: relative;
}

/*JS 戻るボタン*/
.btn_pagetop {
  display:none; /*初期時に非表示*/

}
.btn_pagetop a {
    position: fixed;
    bottom: 0;
    right: 0;
    display: block;
    width: 80px;
    height: 80px;
    background-color: #005eaa;
    -webkit-transition: all ease .3s;
    transition: all ease .3s;
    z-index: 1000;
}

@media screen and (max-width: 769px) {
    .btn_pagetop a {
        bottom: 95px;
        right: 0;
        width: 50px;
        height: 50px;
    }
}

.btn_pagetop a {
    background-color: #005eaa; /*31588a;*/
}

.btn_pagetop a::before {
    content: "";
    position: absolute;
    top: calc(50% - 5px);
    left: calc(50% - 14px);
    width: 24px;
    height: 24px;
    border-top: 6px solid #fff;
    border-right: 6px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transition: all ease .3s;
    transition: all ease .3s;
}

@media screen and (max-width: 769px) {
    .btn_pagetop a::before {
        top: calc(50% - 4px);
        left: calc(50% - 8px);
        width: 14px;
        height: 14px;
        border-top: 4px solid #fff;
        border-right: 4px solid #fff;
    }
}
@media (any-hover: hover) {
  .btn_pagetop a:hover {
    background-color: #005eaa;
    filter: brightness(1.2);
  }
}

/*追随バナー l-footer-fixed */
.l-footer-fixed {
  display:none; /*初期時に非表示*/
  
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: transparent;
  z-index: 999;  /*PageTop=7000より-1*/

  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  padding-bottom: clamp(4px, 0.889vw+1px ,8px);
}

/* PC用固定幅1300対策 ※基準位置をメインコンテンツに揃えるための対策*/
.p-footer-limit1300w,
.l-footer-fixed-limit1300w {
  width: 100%;
  min-width: 1300px;
  margin: 0 auto;
}
@media screen and (min-width: 640px){
  .p-footer-limit1300w,
  .l-footer-fixed-limit1300w {
      max-width: 750px;
  }
}
@media screen and (max-width: 639px){
  .p-footer-limit1300w {
    min-width: auto;
  }
}
.l-footer-fixed-items {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 750px;
  margin: 0 auto;
}
.l-footer-fixed-item {
  width: 50%;
  font-size: 20px;
  text-align: center;
  color: white;
  letter-spacing: 0;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  transition: background-color 0.2s ease, opacity 0.2s ease, transform 0.1s ease;
}

.l-footer-fixed-items .p-form-link{
  display: block;
  position: relative;
  z-index: 10;
  pointer-events: auto; /* マウス入力を確実に受け取る */
  transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), filter 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, filter;
}
@media (any-hover: hover) {
  .l-footer-fixed-items .p-form-link:hover {
    transform: translateY(-3px);
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.25));
  }
}

.l-footer-fixed-item:focus-visible {
  opacity: 0.7;
}

@media screen and (max-width: 640px) {
  .l-footer-fixed-item::after {
    font-size: min(28px, 3.733vw);
  }

  .l-footer-fixed-text {
    padding: 0 min(35px, 4.667vw);
    font-size: min(28px, 3.733vw);
  }
  .l-footer-fixed-limit1300w {
    min-width: auto;
  }
}

/*ドクター紹介 2カラム用*/
.p-doctor-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(10px, 2.6vw, 24px);
  width: 100%;
  box-sizing: border-box;
}
.p-doctor-card {
  display: flex;
  flex-direction: column;
  background-color: transparent;
  overflow: hidden;
  width: 48.13%;
}

.p-doctor-card__img-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: #f5f5f5;
  border-radius: clamp(4px, 1.2vw, 8px);
}
.p-doctor-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-doctor-card__body {
  padding-block: clamp(8px, 2.1vw, 16px);
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-grow: 1;
}
.p-doctor-section {
  margin-top: min(50px, calc(calc(50 / 750) * 100vw));
}

.p-doctor-card__name {
  font-weight: 700;
  color: #333333;
  line-height: 1.3;
  font-size: min(32px, calc(calc(32 / 750) * 100vw));
  margin-top: min(5px, calc(calc(5 / 750) * 100vw));
  margin-bottom: min(5px, calc(calc(5 / 750) * 100vw));
}

.p-doctor-card__name--en {
  color: #666;
  letter-spacing: normal;
  white-space: nowrap
}
.p-doctor-card__desc {
    line-height: 1.4;
    color: #000;
    background: #ffffff;
    margin: 0;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    height: min(110px, calc(calc(110 / 750) * 100vw));
    font-size: min(22px, calc(calc(22 / 750) * 100vw));
    border-radius: min(8px, calc(calc(8 / 750) * 100vw));
    margin-top: min(10px, calc(calc(10 / 750) * 100vw));
    text-align: center;
}

/*ドクター紹介 3カラム用*/
.p-doctor-grid--col3 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(10px, 2.6vw, 24px) 5%;
  width: 100%;
  box-sizing: border-box;
}
.p-doctor-card--col3 {
  display: flex;
  flex-direction: column;
  background-color: transparent;
  overflow: hidden;
  width: 30%;
}
.p-doctor-card__body--col3 {
  padding-block: clamp(8px, 2.1vw, 16px);
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-grow: 1;
}
.p-doctor-card__name--col3 {
  font-weight: 700;
  color: #333333;
  line-height: 1.3;
  font-size: min(22px, calc(calc(22 / 750) * 100vw));
  margin-top: min(5px, calc(calc(5 / 750) * 100vw));
  margin-bottom: min(5px, calc(calc(5 / 750) * 100vw));
}
/* 補足メッセージ */
.p-doctor-card__more{
  text-align: center;
}
.p-doctor-card__more-label{
  display: inline-block;
  padding: clamp(6px, 1.875vw, 12px) clamp( 40px, 10.67vw, 80px);
  font-size: clamp(22px,3vw,35px);
  font-weight: bold;
  color: #005eaa; /*#333333;*/
  line-height: 1.6;
  width: fit-content;
  margin-inline: auto;
  text-align: center;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.7) 10%, rgba(255, 255, 255, 0.7) 90%, rgba(255, 255, 255, 0) 100%);
}
/*---------------------------*/
/*公式HP用CSS */
/*---------------------------*/
.l-official-container{
  width: 100%;
  overflow: hidden;
  background: #ffffff;
  margin-top:min(100px,calc(100 / 750 * 100vw));
}
@media screen and (max-width: 640px) {
  .l-official-container{
    margin-top: 0px;
  }
} 

.l-official-container__inner{
  width: 100%;
  max-width: 1100px;
  padding-bottom: clamp(40px,10vw,145px);

  margin-inline: auto;
  box-sizing: border-box;
}
.l-official-container__inner:has(.p-official-introduction-box){
  padding-top: clamp(32px,8vw,85px);
  padding-bottom: clamp(32px,8vw,85px);
}
.l-official-container__inner:has(.p-official-section-application){
  padding-bottom: clamp(32px,8vw,115px);
}
@media screen and (max-width: 750px) {
  .l-official-container__inner{
    padding-inline: 5%;
  }
}

/*基本設定*/
.p-official-doctor,
.p-official-access,
.p-official-introduction,
.p-official-schedule
{
  max-width: 2000px;
  margin:0 auto;

  display:flex;
  flex-direction: column;
  align-items: center;
  position:relative;
  z-index:0;
}

/*背景色*/
.p-official-schedule,
.p-official-access
{
  background: #ffffff;
}
.p-official-doctor,
.p-official-introduction
{
  background: #b7e0fd;
}

/* FV */
#main_visual{
  width: 100%;
  margin: 0 auto;
  max-width: 2000px;
}

.p-official-introduction-box{
  background: transparent; 
}

/*ドクター紹介 4カラム用*/
.p-doctor-grid--col4 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(16px, 5.33vw, 40px) clamp(12px, 1.2vw, 40px);
  width: 100%;
  max-width: 1100px;
  margin-inline:auto;
  box-sizing: border-box;
}
.p-doctor-card--col4 {
  display: flex;
  flex-direction: column;
  background-color: transparent;
  overflow: hidden;
  
  flex: 0 0 calc(25% - clamp(12px,2.4vw,30px)); 
  width: calc(25% - clamp(12px,2.4vw,30px)); 
}
.p-doctor-card__body--col4 {
  padding-block: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-grow: 1;
}
.p-doctor-card__name--col4 {
  display:flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: clamp(2px, 0.5vw, 4px);  
  font-weight: 700;
  color: #333333;
  line-height: 1.3;
  font-size: clamp(15px, 2.133vw, 16px);
  margin-top: min(15px, calc(calc(15 / 750) * 100vw));
}
@media screen and (max-width: 750px) {
  .p-doctor-card__name--col4 {
    margin-top: 10px;
  }
}
.p-doctor-card__sub--col4{
  color: #4a4949;
  font-size: 0.85em;
  display:block;
}
.p-doctor-card__desc--col4{
  background: #fff;
  color: #333333;
  line-height: 1.4;
  margin: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 76px;
  font-size: clamp(13px, 1.867vw, 14px);
  border-radius: min(8px, calc(calc(8 / 750) * 100vw));
  margin-top: min(15px, calc(calc(15 / 750) * 100vw));
  text-align: center;  
}
@media screen and (max-width: 750px) {
  .p-doctor-card--col4 {
    /* 隙間（12px）を1つ分差し引いた上で50%（2列）にする */
    flex: 0 0 calc(50% - 6px);
    width: calc(50% - 6px);
  }
}

/*schedule(overview)*/
.p-official-overview__item {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: start;
  padding-block: clamp(8px, 1.6vw, 12px);
  width: 100%;
  gap: clamp(15px, 2.3vw, 25px);
}

/* 項目名（dt）*/
.p-official-overview__label {
  flex: 0 0 clamp(115px, 18.18vw, 200px);
  width: clamp(115px, 18.18vw, 200px);
  padding-inline: clamp(4px, 1.067vw, 8px);  
  font-size: clamp(13px, 2.4vw, 18px);
  font-weight: 700; 
  color: #005eaa; /* #333333;*/
  text-align: center;
  border: 1px solid #005eaa; /* #333333;*/
  border-radius: min(10px,calc(10 / 750 * 100vw));

  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;

}
  
/* 内容（dd） */
.p-official-overview__detail {
  flex: 1 1 auto;
  min-width: 0;
  min-height: min(60px,calc(60 / 750 * 100vw));
  margin-left: 0; 

  font-size: clamp(13px, 2.133vw, 16px);
  font-weight: 700; 
  color: #333333;
  letter-spacing: 0.03em;

  box-sizing: border-box;
  display: grid;
  align-content: center;
}
@media screen and (max-width: 750px) {
  .p-official-overview__detail {
    padding-block: 0.4em;
  }
}
.p-official-list{
    display: flex;
    flex-direction: row;
}
@media screen and (max-width: 750px) {
  .p-official-list{
    flex-direction:column;
  }
}

.p-official-list-bullet{
  list-style: disc;
  list-style-position: inside;
  padding-left: 0;
}
.p-official-list-bullet li::marker {
  content: "•\00a0"; /* ★「•」の後に「半角スペース(\00a0)」を追加して隙間を作る */
}
.p-official-list__item{
  line-height: 1.4;
}
.p-official-list__item:not(:last-child){
  padding-bottom: 8px;
}

/* 補足注記（※〜）のスタイル */
.p-official-note {
  display: inline-block;
  font-weight: 500;
}
.p-official-note-text{
  display:inline-block;
  margin-inline: 0.25em;
}

/*セクション見出し*/
.p-official-section-title{
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 500;
  padding-block: clamp(30px, 6.8vw, 60px);
}
.p-official-introduction .p-official-section-title{
  padding-block: clamp(25px, 3.4vw, 30px);
}
.p-official-section-title__main{
  display: flex;
  flex-direction: column;
  align-items: center;
  background: linear-gradient(to right, #000000, #333333); 
  -webkit-background-clip: text; 
  background-clip: text;
  color: transparent;
  font-size: clamp(39px, 6.4vw, 48px);
  font-family: "Yu Mincho", "YuMincho", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-weight: 400;
  line-height: 1.6;
}
@media screen and (max-width: 750px) {
  .p-official-section-title__main {
    background: linear-gradient(to right, #000000, #444444); 
    -webkit-background-clip: text; 
    background-clip: text;
    color: transparent;
    letter-spacing: 0em;
    line-height: 1.3;
  }
}
.p-official-section-title__sub{
  color: #333333;
  font-size: clamp(19.5px, 3.2vw, 24px);
  font-family: "Yu Gothic Medium", "Yu Gothic", "游ゴシック Medium", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 750px) {
  .p-official-section-title__sub {
    font-weight: 600;
    color: #444444;
  }
}

/*Access*/
.p-official-access-info{
  font-size: clamp(13px, 2.133vw, 16px);
  margin-bottom: clamp(20px, 4vw, 40px);
}
.p-official-access-info__title{
  font-weight: 700;
  margin-bottom: 5px;
}
.p-official-access-info__list{
  font-weight: 500;
}
.p-official-access-map{
  margin-top: 0.5em;
}

/*Application*/
.p-official-section-application{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  background: #F8FCFF;
  border: 1px solid #DADADA;
  box-sizing: border-box;
  position: relative;
  border-radius: clamp(10px, 3.47vw, 20px);
  padding: clamp(15px, 4vw, 30px);
}
.p-official-section-application--title{
  font-size: clamp(39px, 6.4vw, 48px); 
  font-family: "Yu Mincho", "YuMincho", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-weight: 500;
  background: linear-gradient(135deg, #2a99f4 0%, #9f86d9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent; 
  display: inline-block;
  line-height: 2em;
}
.p-official-section-application--subtitle{
  font-size: clamp(13px, 2.133vw, 16px);
  font-weight: 700;
  color:#005eaa;
  line-height: 1.5em;
}
@media screen and (max-width: 750px) {
  .p-official-section-application--subtitle{
    line-height:1em;
  }
}

.p-official-section-application--msg{
  text-align: center;
  font-size: clamp(13px, 2.133vw, 16px);
  font-weight: 500;
  padding-block:clamp(10px, 3.47vw, 20px);
  line-height: 1.8;
  letter-spacing: 0em;
}
.p-official-introduction-box--inline{
  padding-inline: min(140px,calc(140 / 750 * 100vw));
}
@media screen and (max-width: 750px) {
  .p-official-introduction-box--inline{
    padding-inline: min(40px,calc(40 / 750 * 100vw));
  }
}

/* 親コンテナ（絶対配置の基準および可変制御） */
.p-official-form-link {
  position: relative;
  width: 100%;
  max-width: 400px;
  margin-top: 40px; 
  margin-inline: auto; 
}
@media screen and (max-width: 750px) {
  .p-official-form-link {
    margin-top: 30px;
  }
}

/* 1. 吹き出し（オレンジ色・下向き矢印） */
.p-official-form-link__fukidashi {
  position: absolute;
  top: -20px; 
  left: 50%;
  transform: translateX(-50%);
  
  background-color: #ff824c; /* オレンジ色 */
  color: #ffffff;
  font-size: clamp(13px, 1.867vw, 14px);
  font-weight: 700;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);

  padding: 4px 16px;
  border-radius: 4px;
  white-space: nowrap;
  letter-spacing: 0.2em;
  z-index: 2;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
@media screen and (max-width: 750px) {
  .p-official-form-link__fukidashi{
    top: -15px;  
    padding-block: 2px;
    /*padding: 2px 8px;
    border-radius: 2px;*/
  }
}
/* 吹き出しの下向き矢印 */
.p-official-form-link__fukidashi::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: #ff824c transparent transparent transparent;
}
@media screen and (max-width: 750px) {
  .p-official-form-link__fukidashi::after {
    border-width: 4px 4px 0 4px;
  }
}

/* 2. ボタン本体 */
.p-official-form-link__button {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  
  width: 100%;
  height: clamp(62px, calc(70 / 750 * 100vw), 70px);  
  padding-inline: clamp(16px, calc(32 / 750 * 100vw), 32px);
  box-sizing: border-box;
  text-decoration: none;
  
  /* 上下にほんのり白が入った黒グラデーション */
  background: linear-gradient(
    180deg, 
    #333333 0%, 
    #000000 15%, 
    #000000 85%, 
    #333333 100%
  );
  
  /* フチ線（白）と角丸 */
  border: 2px solid #ffffff;
  border-radius: 9999px;
  
  /* ドロップシャドウ */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
@media screen and (max-width: 750px) {
  .p-official-form-link__button {
    width: 95%;
    margin-inline: auto;
  }
}
/* 3. ボタンテキスト */
.p-official-form-link__text {
  color: #ffffff;
  font-size: clamp(14.625px, 2.4vw, 18px);
  font-weight: 700;
  letter-spacing: 0.05em;
}

/* 4. 右端の矢印 (→) */
.p-official-form-link__button::after {
  content: "→";
  position: absolute;
  right: clamp(8px, calc(20 / 750 * 100vw), 20px);
  color: #ffffff;
  font-size: min(20px,calc(20 / 750 * 100vw));
  font-weight: 700;
  transition: transform 0.2s ease;
}

/* ホバーアニメーション（PC環境） */
@media (any-hover: hover) {
  .p-official-form-link__button:hover {
    opacity: 0.8;
  }
  
  .p-official-form-link__button:hover::after {
    transform: translateX(4px);
  }
}

/*モーダル：動画用*/
.c-video-thumbnail {
    position: relative;
    display: block; 
    overflow: hidden;
    cursor: pointer;
    margin-bottom:  clamp(15px, 4vw, 30px);
    z-index: 1;
    max-width: 800px;
    margin-inline: auto;
}
.c-video-thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    z-index: 0;
    transition: filter 0.3s ease;
}
.c-video-thumbnail::before,
.c-video-thumbnail::after {
    position: absolute;
    top: 50%;
    left: 50%;
    pointer-events: none; 
    transform: translate(-50%, -50%);
}
@media (hover: hover) {
    .c-video-thumbnail:hover img {
        filter: brightness(0.8);
    }
    .c-video-thumbnail::before,
    .c-video-thumbnail::after {
        transition: all 0.3s ease;
    }
}
.c-video-thumbnail::before {
    content: "";
    width: 64px;
    height: 64px;
    background-color: rgba(255, 255, 255, 0.4); 
    border-radius: 50%;
    backdrop-filter: blur(4px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    z-index: 1;
}
.c-video-thumbnail::after {
    content: "";
    border-style: solid;
    border-width: 12px 0 12px 20px; 
    border-color: transparent transparent transparent #ffffff; 
    transform: translate(calc(-50% + 2px), -50%);
    z-index: 2;
}
.c-video-thumbnail:hover::before {
    background-color: rgba(255, 255, 255, 0.6); 
}
@media (hover: hover) {        
    .c-video-thumbnail:hover::before {
        transform: translate(-50%, -50%) scale(1.1);
    }
    .c-video-thumbnail:hover::after {
        transform: translate(calc(-50% + 2px), -50%) scale(1.1);
    }        
}
/*サムネイル画像の高さ調整*/
.c-video-thumbnail .c-modal_img {
    padding-bottom: 0; /*サムネイル画像の高さ調整*/
}
/*虫眼鏡アイコンOFF*/
.c-video-thumbnail .c-modal_img::after{ 
    display: none;
}
@media screen and (max-width: 640px){
  .modal-video-movie-wrap {
      width: 90%;
      margin-inline: auto;
  }
  .modal-video-close-btn{
    top: -30px;
    right: 0;
  }
}
