@charset "utf-8";
/* CSS Document */
body.subPage .h2-style {
  width: 1080px;
  margin-left: auto;
  margin-right: auto;
  font-size: 4rem;
  letter-spacing: 0.1em;
  margin-bottom: 120px;
padding-left: 0!important;
}
@media only screen and (max-width: 1081px) {
  body.subPage .h2-style {
    width: 90%;
    font-size: 2.8rem;
    margin-bottom: 60px;
  }
}
body.subPage .h2-style span:not(.athleteH1) {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  color: #005C42;
  font-size: 1rem;
  letter-spacing: 0.6em;
  display: block;
  line-height: 1.6em;
}
body.subPage .h2-style span.athleteH1 {
  display: block;
  line-height: 1.6em;
  font-size: 1.4rem;
  color: rgba(0, 0, 0, 0.5);
  font-weight: 400;
  letter-spacing: 0.08em;
}
body.subPage .h2-style:before {
  margin-right: 0!important;
  background: none!important;
  width: 0!important;
  height: 0!important;
}

body.subPage .h3-style {
  position: relative;
  font-size: 2.4rem;
  margin-bottom: 20px;
  font-weight: 700;
  padding-left: 50px;
 border-bottom:none!important;
}
body.subPage .h3-style:before {
  content: "";
  display: block;
  margin-right: 5px;
  background: #005C42;
  width: 40px;
  height: 1px;
  position: absolute;
  left: 0;
  top: 22px;
}
.h4-style {
  font-weight: 700;
  border-bottom: 1px solid #000;
  padding-bottom: 10px;
  margin-bottom: 20px;
  margin-top:20px;
  font-size: 1.8rem;
  border-color: rgba(0, 0, 0, 0.2)!important;
}
body.subPage .aboutCap h3 {
  text-align: center;
  padding-left: 0;
border:none!important;
font-size: 2.8rem!important;
}
@media only screen and (max-width: 1081px) {
  body.subPage .aboutCap h3 {
    font-size: 2.1rem!important;
  }
}
@media only screen and (max-width: 440px) {
  body.subPage .aboutCap h3 {
    font-size: 2.1rem;
  }
}
body.subPage .aboutCap h3:before {
  display: none;
}



body.subPage .contetsportsCap h3 {
  padding-left: 0;
border:none!important;
font-size: 2.4rem!important;
}
@media only screen and (max-width: 1081px) {
body.subPage .contetsportsCap h3 {
    font-size: 2.1rem!important;
  }
}
@media only screen and (max-width: 440px) {
body.subPage .contetsportsCap h3 {
    font-size: 2.1rem;
  }
}
body.subPage .contetsportsCap h3 {
  padding-left: 0;
  border:none!important;
}
body.subPage .contetsportsCap h3:before {
  display: none;
}



body.subPage .recruitCap h3 {
  padding-left: 0;
border:none!important;
font-size: 2.8rem!important;
}
@media only screen and (max-width: 1081px) {
body.subPage .recruitCap h3 {
    font-size: 2.1rem!important;
  }
}
@media only screen and (max-width: 440px) {
body.subPage .recruitCap h3 {
    font-size: 2.1rem;
  }
}
body.subPage .recruitCap h3 {
  padding-left: 0;
  border:none!important;
}
body.subPage .recruitCap h3:before {
  display: none;
}

/*ヘッダー改修*/
@media screen and (min-width: 769px) {
.h1-style{
position:absolute;
font-size:12px!important;
font-weight:normal!important;
left:40px;
}
.headerLogo{
position:relative;
}	
}
@media screen and (max-width: 768px) {
.h1-style{
position:absolute;
font-size:12px!important;
font-weight:normal!important;
left:20px;
}
.headerLogo{
position:relative;
}	
}
/* ========== PC専用（1082px以上） ========== */
@media screen and (min-width: 1082px) {
  /* ロゴ可変 */
  #header .headerLogo img { max-width: 22vw !important; min-width: 140px !important; height: auto !important; }
  /* 診療時間テーブル */
  .sh-tbl-li { padding: 4px 10px 4px 1px !important; border-right: 1px solid rgba(0,0,0,0.1); }
  .sh-tbl table { border-collapse: collapse; }
  .sh-tbl th, .sh-tbl td { border: none !important; padding: 2px 4px; text-align: center; font-size: clamp(10px, 0.8vw, 12px) !important; line-height: 1.2; color: #005C42 !important; background: none !important; }
  .sh-tbl th { font-weight: 600; color: #333 !important; background: rgba(0,0,0,0.03) !important; font-size: clamp(10px, 0.8vw, 12px) !important; }
  .sh-tbl th:first-child, .sh-tbl td:first-child { font-size: clamp(9px, 0.7vw, 11px) !important; color: #000 !important; white-space: nowrap; padding-right: 6px; }
  .sh-hol { color: #c0392b !important; }
  .sh-x { color: #bbb !important; }
  .sh-tri { color: #005C42 !important; font-size: 8px; }
  .sh-note { font-size: clamp(7px, 0.7vw, 10px) !important; color: #000 !important; margin-top: 1px; line-height: 1.3; text-align: center; font-weight: 400; }
  /* ナビ */
  #header .menu ul { padding: 4px 2px 4px 12px !important; gap: 0 !important; align-items: center !important; }
  #header .menu ul li a { padding: 6px 0.8vw !important; font-size: 14px !important; white-space: nowrap !important; }
  /* サブメニュー */
  #header .menu ul li.menuHover { position: relative !important; }
  #header .menu ul li.menuHover .normal-sub { left: 50% !important; transform: translateX(-50%) !important; top: 100% !important; }
  /* 予約ボタン */
  #header .menu ul li.sh-reserve-li { margin: 28px 0 0 0 !important; padding: 0 1px !important; display: flex !important; align-items: center !important; }
  #header .menu ul li.sh-reserve-li a { background: #005C42 !important; color: #fff !important; border-radius: 50px !important; font-size: 12px !important; font-weight: 600 !important; text-align: center !important; line-height: 1.3 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; flex-direction: column !important; width: 160px !important; height: 44px !important; padding: 4px 12px !important; }
  #header .menu ul li.sh-reserve-li a:hover { background: #004a38 !important; }
  .sh-reserve-li small { font-size: 9px; font-weight: 400; opacity: .85; }
  /* お問合せ */
  #header .menu ul li.sh-contact-li { display: flex !important; align-items: center !important; padding: 0 !important; margin: 28px 12px 0 0 !important; position: relative !important; }
  #header .menu ul li.sh-contact-li a { background: #e6002e !important; border-radius: 50px !important; font-size: 12px !important; font-weight: 600 !important; color: #fff !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 120px !important; height: 44px !important; text-align: center !important; padding: 4px 8px !important; }
  /* 電話番号 */
  .sh-tel-above { position: fixed !important; top: -8px; right: 20px; white-space: nowrap; font-size: 20px !important; font-weight: 700; color: #000; letter-spacing: .02em; z-index: 100000002; display: block !important; }
  .sh-tel-label { font-size: 13px !important; font-weight: 600; }
  /* SP用非表示 */
  .sh-sp-clinic { display: none !important; }
}
/* 電話番号ベーススタイル */
.sh-tel-above { position: fixed !important; top: -8px; right: 20px; white-space: nowrap; font-size: 20px !important; font-weight: 700; color: #000; letter-spacing: .02em; z-index: 100000002; display: block !important; }
.sh-tel-label { font-size: 13px !important; font-weight: 600; }
/* 1285-1424px：ロゴ縮小 */
@media screen and (min-width: 1082px) and (max-width: 1424px) {
  #header .headerLogo img { max-width: 16vw !important; }
}
/* 1082-1286px：さらに縮小 */
@media screen and (min-width: 1082px) and (max-width: 1286px) {
  #header .headerLogo img { max-width: 12vw !important; min-width: 120px !important; }
  #header .menu ul li a { font-size: 12px !important; padding: 6px 0.5vw !important; }
  #header .menu ul li.sh-contact-li a { font-size: 10px !important; width: 100px !important; height: 38px !important; }
  #header .menu ul li.sh-reserve-li a { font-size: 10px !important; width: 130px !important; height: 38px !important; }
  .sh-tel-above { font-size: 16px !important; top: -36px; }
}

/* ========== SP専用（1081px以下） ========== */
@media screen and (max-width: 1081px) {
  .sh-tbl-li, .sh-contact-li, .sh-reserve-li, .sh-tel-above { display: none !important; }
  #header .menu ul li.sh-contact-li { display: none !important; }
  #header .menu ul li.sh-reserve-li { display: none !important; }
  #header .menu ul li.menuContact.sh-reserve-li { display: none !important; }
}
/* SP：ハンバーガー内 診療情報 */
.sh-sp-inner { padding: 20px 20px; text-align: center; border-bottom: 1px solid rgba(255,255,255,0.2); }
.sh-sp-tbl { border-collapse: collapse; margin: 0 auto !important; width: auto !important; }
.sh-sp-tbl th, .sh-sp-tbl td { border: 1px solid rgba(255,255,255,0.3); padding: 6px 6px; text-align: center; font-size: 14px !important; color: #fff !important; background: none !important; }
.sh-sp-tbl th { font-weight: 600; color: #fff; background: rgba(255,255,255,0.1); font-size: 14px; }
.sh-sp-tbl th:first-child, .sh-sp-tbl td:first-child { font-size: 13px; color: #fff; white-space: nowrap; }
.sh-sp-tbl .sh-hol { color: #ff6b6b !important; }
.sh-sp-tbl .sh-x { color: rgba(255,255,255,0.35) !important; }
.sh-sp-tbl .sh-tri { color: #fff; font-size: 11px; }
.sh-sp-inner p.sh-sp-note { font-size: 11px; color: rgba(255,255,255,0.7); margin: 2px 0 0 0 !important; padding: 0 !important; line-height: 1.4; }
.sh-sp-inner p.sh-sp-tel { font-size: 16px !important; font-weight: 700; color: #fff !important; margin: 10px 0 10px 0 !important; padding: 0 !important; white-space: nowrap; line-height: 1.2 !important; word-spacing: -4px; }
.sh-sp-inner p.sh-sp-tel a { color: #fff !important; text-decoration: none; font-size: 28px !important; }
.sh-sp-inner .sh-sp-btns { display: flex; gap: 10px; justify-content: center; margin-top: 0 !important; }
.sh-sp-btn-contact { display: inline-flex; align-items: center; justify-content: center; background: #e6002e; color: #fff !important; border-radius: 50px; padding: 8px 20px!important; font-size: 14px; font-weight: 600; text-decoration: none; min-width: 120px;text-decoration:none!important; }
.sh-sp-btn-reserve { display: inline-flex; align-items: center; justify-content: center; flex-direction: column; background: #005C42; color: #fff !important; border-radius: 50px; padding: 8px 20px!important; font-size: 14px; font-weight: 600; text-decoration: none; min-width: 160px; line-height: 1.3; text-decoration:none!important;}
.sh-sp-btn-reserve small { font-size: 11px; font-weight: 400; opacity: .85; }


/*フッター改修*/
/* フッター3カラム */
#footer .ft-container {
  display: flex !important;
  gap: 12px !important;
}
#footer .ft-brand { flex: 0 0 22% !important; }
#footer .ft-nav { flex: 1 !important; padding-left: 0 !important; }
#footer .ft-clinic { flex: 0 0 28% !important; }
/* 診療時間テーブル */
.ft-clinic-tbl { border-collapse: separate; border-spacing: 0; width: 100%; background: rgba(255,255,255,0.95); border-radius: 8px; overflow: hidden; }
.ft-clinic-tbl th, .ft-clinic-tbl td { border: 1px solid rgba(0,0,0,0.08); border-top: none; border-left: none; padding: 4px 0; text-align: center; font-size: 11px; line-height: 1.3; color: #005C42; background: none; }
.ft-clinic-tbl th { font-weight: 600; font-size: 11px; background: rgba(0,0,0,0.03); border-top: none; color: #333; }
.ft-clinic-tbl tr:first-child th:first-child { border-top-left-radius: 8px; }
.ft-clinic-tbl tr:first-child th:last-child { border-top-right-radius: 8px; }
.ft-clinic-tbl tr:last-child td:first-child { border-bottom-left-radius: 8px; }
.ft-clinic-tbl tr:last-child td:last-child { border-bottom-right-radius: 8px; }
.ft-clinic-tbl th:first-child, .ft-clinic-tbl td:first-child { font-size: 10px; white-space: nowrap; padding: 4px 6px; border-left: none; color: #333; }
.ft-clinic-tbl td { color: #005C42; }
.ft-hol { color: #c0392b !important; }
.ft-x { color: #bbb !important; }
.ft-tri { color: #005C42; font-size: 9px; }
.ft-clinic-note { font-size: 10px; color: rgba(255,255,255,0.6); margin-top: 6px; line-height: 1.4; }
/* ボタン横並び */
.ft-clinic-btns {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.ft-clinic-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 20px;
  background: #e6002e;
  color: #fff !important;
  font-size: 12px;
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none;
  transition: background .2s;
  flex: 1;
  text-decoration:none!important;
}
.ft-clinic-contact:hover { background: #c00028; }
/* ネット予約ボタン */
.ft-clinic-reserve {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 6px 20px;
  background: #005C42;
  color: #fff !important;
  font-size: 12px;
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none;
  line-height: 1.3;
  transition: background .2s;
  flex: 1;
  text-decoration:none!important;
}
.ft-clinic-reserve:hover { background: #004a38; }
.ft-clinic-reserve small { font-size: 10px; font-weight: 400; opacity: .85; }
/* SP */
@media screen and (max-width: 768px) {
  #footer .ft-container {
    flex-direction: column !important;
    gap: 24px !important;
  }
  #footer .ft-brand, #footer .ft-nav, #footer .ft-clinic {
    flex: none !important;
    width: 100% !important;
    padding-left: 0 !important;
  }
  .ft-clinic { text-align: center; }
  .ft-clinic-tbl { margin: 0 auto; width: 100%; }
  .ft-clinic-btns { justify-content: center; }
}