@charset "utf-8";
/*+++++++++++++++++++++++++++++++++++++++++
  　root
*+++++++++++++++++++++++++++++++++++++++++*/
:root {
  --purple: rgba(128,128,172,0.15);
  --pink: #DE7580;
  --grey: #808080;
  --blue : #597F80;
  --g-wd: #597F80;
  --sp-ex_subtitle: #231815;
  --program-border: #80809B;
  --program-youbi-noactive: #C0C0C0;
  --support-border: #7F80A0;
  --reserve-btn: #8F174B;
}

/*+++++++++++++++++++++++++++++++++++++++++
  共通セット
*+++++++++++++++++++++++++++++++++++++++++*/
.explanation dt {
  font-weight: var(--fw-medium);
}

/*+++++++++++++++++++++++++++++++++++++++++
  共通
*+++++++++++++++++++++++++++++++++++++++++*/
.explanation {
  margin-top: 20px;
}
.ex_section{
  padding-bottom: 100px;
}
@media (max-width: 900px) {
  .explanation {
    margin-top: 20px;
  }
  .ex_section{
    padding-bottom: 50px;
  }
}

/* ---- テキストリンク  ---- */
.explanation .text-link {
  color: var(--black);
}

/* ---- アンカーリンク  ---- */
/* @media (max-width: 900px) {
  .ex_anchorlink {
    margin-top: -30px;
    padding-top: 36px;
  }
} */

/* ---- 背景  ---- */
.ex_bg {
  background-color: var(--purple);
}
@media (max-width: 900px) {
  .ex_bg {
    margin-top: 0;
  }
}

/* ---- インナー  ---- */
.explanation .inner {
  padding: 0 30px;
  max-width: calc(1038px + 60px);
}
.ex_inner {
  padding: 0 35px;
}
@media (max-width: 900px) {
  .ex_inner {
    margin: 0 auto;
    padding: 0 13px;
    max-width: calc(500px + 26px);
  }
}

/* ---- ページヘッダー  ---- */
.ex_header {
  display: grid;
  place-content: center;
}
.ex_header_title {
  padding-left: 100px;
  position: relative;
  height: 85px;
  font-size: 20px;
  font-weight: var(--fw-bold);
  line-height: 85px;
}
.ex_header_title::before {
  content: "";
  display: block;
  width: 85px;
  height: 85px;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
@media (max-width: 900px) {
  .ex_header_title {
    padding-left: 80px;
    height: 64px;
    font-size: 16px;
    line-height: 64px;
  }
  .ex_header_title::before {
    width: 64px;
    height: 64px;
  }
}

/* ---- メニュー  ---- */
.ex_nav {
  margin-top: 30px;
  padding: 113px 0;
  position: relative;
}
.ex_nav::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(137,176,255,1) 0%, rgba(217,142,146,1) 100%);
  opacity: 0.3;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.ex_nav_box {
  margin: 0 auto;
  padding: 0 33px;
  max-width: calc(1084px + 66px);
  display: grid;
  /* grid-template-columns: 1fr 1fr 1fr; */
  grid-template-columns: 1fr 1fr 360px;
  gap: clamp(1.25rem, -4.469rem + 11.02vw, 3rem);
}
.ex_nav_link {
  display: block;
  position: relative;
  background: var(--white);
  border-radius: 10px;
  font-size: 20px;
}
.ex_nav_link::after {
  content: "";
  display: block;
  width: 14px;
  height: 7px;
  background-image: url(../images/icon/icon-arrow.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
}
/* 正方形 */
.ex_nav_link.--square {
  display: grid;
  place-content: center;
  place-items: center;
  gap: clamp(0rem, -11.233rem + 21.65vw, 3.438rem);
  aspect-ratio: 1 / 1;
}
.ex_nav_link.--square img {
  width: clamp(3.75rem, -0.064rem + 7.94vw, 5.313rem);
  height: clamp(3.75rem, -0.064rem + 7.94vw, 5.313rem);
}
.ex_nav_link.--square::after {
  bottom: clamp(1.563rem, -1.501rem + 5.91vw, 2.5rem);
  left: 50%;
  transform: translateX(-50%);
}
/* 長方形 */
.ex_nav_link.--rectangle {
  padding: 44px 60px 44px 27px;
  display: grid;
  grid-template-columns: 50px 1fr;
  align-items: center;
}
.ex_nav_link.--rectangle span {
  text-align: center;
}
.ex_nav_link.--rectangle::after {
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
}
/* SPアイコン・テキスト位置を合わせる */
.ex_nav_link span {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ex_nav_right {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
.ex_nav_link:nth-of-type(1) span {
  text-align: center;
}

@media (max-width: 900px) {
  .ex_nav {
    margin-top: 30px;
    padding: 40px 0;
  }
  .ex_nav_box {
    max-width: 500px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 30px;
  }
  .ex_nav_link {
    font-size: 14px;
  }

  /* 正方形 */
  .ex_nav_link.--square {
    padding-bottom: 15px;
    width: calc(50% - 8px);
    gap: 10px;
  }
  .ex_nav_link.--square img {
    width: 50px;
    height: 50px;
  }
  .ex_nav_link.--square::after {
    bottom: 22px;
  }
  /* 長方形 */
  .ex_nav_link.--rectangle {
    padding: 10px 25px;
    padding-right: 55px;
    grid-template-columns: 33px 1fr;
  }
  .ex_nav_link.--rectangle img {
    width: 33px;
    height: 33px;
  }
  .ex_nav_link.--rectangle::after {
    right: 34px;
  }

  .ex_nav_right {
    gap: 15px;
    width: 100%;
  }
}


/* ---- レイアウト ---- */
.ex_grid {
  display: grid;
  max-width: 934px;
  grid-template-columns: 263px 1fr;
  gap: 60px;
}
.ex_box {
  padding-top: 50px;
  padding-bottom: 50px;
}
.ex_box:last-child {
  padding-bottom: 0;
}
.ex_box:first-child {
  margin-top: 70px;
}
.ex_box_title {
  margin-bottom: 30px;
  font-size: 18px;
  color: var(--blue);
}
.ex_box_title span {
  font-size: 16px;
}
.ex_box_text {
  font-size: 15px;
  line-height: 1.87;
  text-align: justify;
}
.ex_subtitle span {
  padding-left: 10px;
}
.ex_grid_content_text {
  max-width: 574px;
  text-align: justify;
}

/* 左右逆の配置 */
.ex_grid.ex_grid_reverse{
  grid-template-columns: 1fr 264px;
}

/* タイトル長いver */
.ex_grid.ex_grid_nogap {
  grid-template-columns: 323px 1fr;
  gap: 0;
}

/* ボックスタイトル */
.ex_subtitle {
  margin-bottom: 35px;
  font-size: 18px;
  font-weight: var(--fw-bold);
  color: var(--blue);
}

@media (max-width: 900px) {
  .ex_grid {
    grid-template-rows: repeat(2,auto);
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ex_subtitle {
    font-size: 16px;
    margin-bottom: 4px;
  }
  .ex_box_title {
    margin-bottom: 15px;
    font-size: 13px;
    line-height: 1.5;
  }
  .ex_box_title span {
    font-size: 13px;
  }
  .ex_grid.ex_grid_nogap {
    grid-template-columns: 1fr;
  }
  .ex_box_text {
    font-size: 14px;
  }
  .ex_grid.ex_grid_reverse {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* ---- タイトル  ---- */
.ex_title {
  margin-bottom: 70px;
  padding-top: 80px;
  padding-bottom: 38px;
  position: relative;
  display: grid;
  place-content: center;
}
.ex_title::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, rgba(157, 191, 255,1) 0%, rgba(221, 159, 161,1) 100%);
  position: absolute;
  bottom: 0;
  left: 0;
}
.ex_title span {
  padding-left: 100px;
  position: relative;
  display: grid;
  place-content: center;
  height: 85px;
  font-size: 20px;
  font-weight: var(--fw-bold);
}
.ex_title span::before {
  content: "";
  display: block;
  width: 85px;
  height: 85px;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
@media (max-width: 900px) {
  .ex_title {
    padding-top: 50px;
    padding-bottom: 24px;
    margin-bottom: 35px;
  }
  .ex_title::after {
    height: 1px;
  }
  .ex_title span {
    padding-left: 75px;
    height: 65px;
    font-size: 16px;
  }
  .ex_title span::before {
    width: 65px;
    height: 65px;
  }
}

/* ---- PDF ---- */
.explanation .ly_pdf img{
  width: 55px;
}
@media (max-width: 900px) {
  .explanation .ly_pdf img {
    width: 59px;
  }
}

/* ---- 紫のボックス ---- */
.ex_grid_box {
  padding: 35px 43px;
  background-color: var(--purple);
  border-radius: 10px;
}
.ex_grid_box_title {
  margin-bottom: 10px;
}
.ex_grid_box .ly_pdf {
  margin-top: 32px;
}
.ex_grid_box .ly_pdf_text {
  line-height: 1.4;
}
:where(.ex_grid_content) p {
  text-align: justify;
}

@media (max-width: 900px) {
  :where(.ex_grid_content) p {
    font-size: 14px;
  }
  /* 紫のボックス */
  .ex_grid_box {
    margin-left: -8px;
    padding: 35px 18px;
    width: calc(100% + 16px);
    border-radius: 20px;
    font-size: 13px;
  }
  .ex_grid_box_title {
    font-size: 16px;
    margin-bottom: 20px;
  }
  .ex_grid_box .ly_pdf {
    margin-top: 18px;
    flex-direction: column;
    align-content: flex-start;
  }
  .ex_grid_box .ly_pdf > li {
    width: 100%;
  }
  .ex_grid_box .ly_pdf_text {
    font-size: 12px;
  }
}

/* ---- ボタン ---- */
.ex_btn_box {
  width: fit-content;
  margin-top: 30px;
  display: flex;
  align-items: center;
  gap: 36px;
}
.ex_btn {
  padding: 7px 24px;
  display: block;
  max-width: 228px;
  text-align: center;
  font-size: 14px;
  border-radius: 9999vh;
}
.ex_btn::after {
  content: '＞';
  display: inline-block;
  padding-left: 8px;
}

/* ---- 枠線あり ---- */
.ex_box .btn-border {
  color: var(--blue);
  border: 1px solid var(--blue);
}

/* ---- web予約ボタン ---- */
.reserve_btn {
  display: grid;
  place-items: center;
  width: 176px;
  height: 38px;
  background-color: var(--reserve-btn);
  border-radius: 999svh;
  font-size: 14px;
  color: var(--white);
}
.reserve_btn_text {
  margin-top: 5px;
  text-align: center;
  font-size: 12px;
}

@media (max-width: 900px) {
  .ex_btn_box {
    flex-direction: column;
  }
  .ex_btn {
    margin-left: auto;
    margin-right: auto;
    font-size: 13px;
  }
  .reserve_btn_text {
    font-size: 13px;
  }
}

/* ---- 電話 ---- */
.ex_tel_box {
  width: fit-content;
}
.ex_tel_box dl {
  display: grid;
  grid-template-columns: 72px 1fr;
  align-items: center;
  gap: 10px;
}
.ex_tel_box dt {
  width: 72px;
  height: 36px;
  background-color: var(--white);
  border: 1px solid var(--black);
  border-radius: 10px;
  display: grid;
  place-items: center;
  text-align: center;
  font-size: 10px;
  line-height: 1.3;
}
.ex_tel_box a {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  width: fit-content;
  padding-left: 24px;
  position: relative;
  display: block;
  font-size: 25px;
  font-weight: var(--fw-bold);
  white-space: nowrap;
}
.ex_tel_box a::before {
  content: "";
  display: block;
  width: 21px;
  height: 21px;
  background-image: url(../images/icon/icon-tel.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.ex_tel_box dl a {
  margin-left: 0;
  margin-right: 0;
}
.ex_tel_box_title {
  margin-bottom: 23px;
  font-size: 15px;
}
.ex_tel_box_text {
  margin-top: 7px;
  text-align: center;
  font-size: 12px;
  line-height: 1.3;
}

@media (max-width: 900px) {
  .ex_tel_box.--sp_center {
    margin-left: auto;
    margin-right: auto;
  }
  .ex_tel_box dl {
    grid-template-columns: 65px 1fr;
    gap: 11px;
  }
  .ex_tel_box dt {
    width: 65px;
    height: 35px;
  }
  .ex_tel_box dd a {
    padding-left: 24px;
    height: 35px;
    font-size: 23px;
  }
  .ex_tel_box_title {
    margin-bottom: 30px;
  }
  .ex_tel_box_text {
    margin-top: 5px;
    font-size: 13px;
  }
}

/*----  予約方法（電話＋ボタン） -----*/
.ex_form_block {
  margin-top: 20px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: 50px;
  row-gap: 20px;
}

@media (max-width: 900px) {
  .ex_form_block {
    margin-top: 45px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}

/*----  チェックリスト -----*/
.ex_check {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 66px;
}
.ex_check_box {
  margin-top: 45px;
  padding: 75px 25px 40px;
  position: relative;
  background: var(--white);
  border: 1px solid var(--grey);
  font-size: 15px;
  min-height: 340px;
}
.ex_check_box::before {
  content: "";
  display: block;
  width: 90px;
  height: 90px;
  background-color: var(--white);
  background-repeat: no-repeat;
  background-size: contain;
  border: 1px solid var(--grey);
  border-radius: 999svh;
  position: absolute;
  top: -45px;
  left: 50%;
  transform: translateX(-50%);
}
.ex_check_title {
  margin-top: 10px;
  text-align: center;
  font-size: 22px;
  color: var(--blue);
}
.ex_check_title span{
  font-size: 18px;
}
.ex_check_subtitle {
  margin: 35px 0 20px;
  padding: 3px 10px;
  border: 1px solid var(--grey);
  border-radius: 9999svh;
  text-align: center;
}
.ex_check_text {
  margin-top: 30px;
}
.ex_check_list {
  margin-left: auto;
  margin-right: auto;
}
.ex_check_list > li {
  padding-left: 20px;
  position: relative;
}
.ex_check_list > li + li {
  margin-top: 15px;
}
.ex_check_list > li::before {
  content: "□";
  position: absolute;
  top: 0;
  left: 0;
}
@media (max-width: 900px) {
  .ex_check {
    margin-left: auto;
    margin-right: auto;
    max-width: 500px;
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .ex_check_box {
    margin-top: 22px;
    padding: 55px 10px;
    font-size: 13px;
    min-height: auto;
  }
  .ex_check_box::before {
    content: "";
    display: block;
    width: 60px;
    height: 60px;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
  }
  .ex_check_title {
    margin-top: 25px;
    font-size: 20px;
  }
  .ex_check_title span {
    font-size: 16px;
  }
  .ex_check_subtitle {
    margin: 17px 0 12px;
  }
  .ex_check_text {
    margin-top: 16px;
    font-size: 12px;
  }
  .ex_check_list {
    gap: 5px;
  }


  .ex_check_list > li + li {
    margin-top: 10px;
  }
}

/* ---- 注意事項 ---- */
.ex_attention {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ex_attention li {
  font-size: 12px;
  text-indent: -1em;
  padding-left: 1em;
}
.ex_grid_content .ex_attention {
  margin-top: 0;
}

@media (max-width: 900px){
  .ex_attention{
    margin-top: 20px;
  }
}

/* ---- リスト「・」 ---- */
.ex_list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ex_list-maru li::before {
  content: '・';
}

@media (max-width: 900px) {
  .ex_list {
    text-indent: -1em;
    padding-left: 1em;
    gap: 0;
  }
}


/*+++++++++++++++++++++++++++++++++++++++++
  ご受診の方へ
*+++++++++++++++++++++++++++++++++++++++++*/
@media (max-width: 900px) {
  .outpatient .ex_subtitle {
    margin-bottom: 20px;
  }
}
.outpatient .ex_header_title::before {
  background-image: url(../images/icon/icon-menu03.svg);
}
.outpatient .o_flow .ex_title span::before {
  background-image: url(../images/outpatient/menu/icon-menu01.svg);
}
.outpatient .o_window .ex_title span::before {
  background-image: url(../images/outpatient/menu/icon-menu02.svg);
}
.outpatient .o_room .ex_title span::before {
  width: 65px;
  height: 65px;
  background-image: url(../images/outpatient/menu/icon-menu03.svg);
}
.outpatient .o_onegai .ex_title span::before {
  width: 65px;
  height: 65px;
  background-image: url(../images/outpatient/menu/icon-menu04.svg);
}

/* [PC]診療予約アプリ「アットリンク」　*/
.banner_alink {
  padding: 16px;
  padding-right: 50px;
  width: 370px;
  display: grid;
  align-items: center;
  grid-template-columns: 60px 1fr;
  gap: 20px;
  background: var(--white);
  border: 1px solid var(--black);
  border-radius: 10px;
  position: absolute;
  top: -130px;
  right: 127px;
}
.banner_alink::after {
  content: "";
  display: block;
  width: 19px;
  height: 10px;
  background-image: url(../images/icon/icon-arrow.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}
.banner_alink img {
  flex-shrink: 0;
  width: 60px;
}
.banner_alink dt {
  font-weight: var(--fw-medium);
  font-size: 12px;
}
.banner_alink dd {
  margin-top: 6px;
  font-size: 10px;
}

@media (max-width: 1340px) {
  .banner_inner{
    position: relative;
  }
  .banner_alink{
    top: -163px;
    right: -4px;
  }
}

@media (max-width: 900px) {
  /* [SP]診療予約アプリ「アットリンク」 */
  .banner_inner{
    width: 100%;
  }
  .banner_alink_sp_box {
    padding: 43px 33px;
  }
  .banner_alink_sp {
    padding-right: 18px;
    margin: 0 auto;
    max-width: 500px;
    display: grid;
    grid-template-columns: 65px 1fr;
    gap: 18px;
    position: relative;
  }
  .banner_alink_sp::after {
    content: "";
    display: block;
    width: 10px;
    height: 5px;
    background-image: url(../images/icon/icon-arrow.svg);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
  .banner_alink_sp img {
    width: 65px;
  }
  .banner_alink_sp dt {
    font-weight: var(--fw-medium);
    font-size: 14px;
  }
  .banner_alink_sp dd {
    margin-top: 7px;
    font-size: 11px;
  }
}


/* ---- ご予約〜ご来院までの流れ ---- */
.o_flow .ex_form_block .ex_tel_box {
  width: 330px;
}
.o_flow .ex_form_block {
  margin-top: 40px;
  gap: 40px;
}
.o_flow .ex_form_block ~ .ex_form_block {
  margin-top: 30px;
}
.o_flow .ex_form_block .ex_tel_box dl {
  grid-template-columns: 72px 190px;
  justify-content: center;
}
.o_flow_dental_block {
  margin-top: 70px;
  padding: 5px 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border: 1px solid var(--blue);
  border-radius: 6px;
}
.o_flow_dental_img {
  height: 28px;
}
.o_flow_dental_text {
  color: var(--blue);
}
.o_flow .ex_box_text ~ .ex_box_text {
  margin-top: 50px;
}
.o_flow .ex_list {
  gap: 0;
  font-size: 13px;
}
.o_flow .o_dental_btn {
  font-size: 12px;
}
/* 紫のボックス */
.o_flow .ex_grid_box {
  padding: 35px 50px;
}

@media (max-width: 900px) {
  .o_flow_dental_block {
    margin-top: 40px;
    padding: 15px 10px;
    gap: 10px;
    border-radius: 10px;
  }
  .o_flow .ex_form_block ~ .ex_form_block {
    margin-top: 40px;
  }
  .o_flow .ex_form_block .ex_tel_box dl {
    grid-template-columns: 66px 180px;
  }
  .o_flow .reserve_btn {
    font-size: 13px;
  }
  .o_flow .ex_form_block .ex_tel_box {
    width: 100%;
  }
  .o_flow .ex_box_text ~ .ex_box_text {
    margin-top: 40px;
  }
  /* 紫のボックス */
  .o_flow .ex_grid_box {
    padding: 35px 18px;
  }
  /* 電話下のテキスト */
  .ex_tel_box_text .sp_900 {
    display: inline-block!important;
  }
}

/* ---- レイアウト ---- */
.o_flow .o_flow_child_ly01 {
  margin-top: 30px;
}
/* PDF */
.o_pdf {
  margin-top: 40px;
}
@media (max-width: 900px) {
  .o_flow .o_flow_child_ly01 {
    margin-top: 50px;
  }
  .o_pdf {
    margin-top: 30px;
  }
}


/* ご予約の際は以下にご注意ください */
.o_flow .ex_grid_img_box {
  display: flex;
  align-items: center;
  gap: 20px;
}
.o_flow .ex_grid_img_box > img {
  height: 90px;
  background-color: var(--white);
  border: 1px solid var(--grey);
  border-radius: 9999vh;
}
.o_flow .ex_grid_img_box .ex_subtitle {
  margin-bottom: 0;
}
.o_flow_ex_grid_box + .o_flow_ex_grid_box {
  margin-top: 30px;
}
.o_flow_ex_grid_box .ex_grid {
  margin-top: 30px;
}
.o_flow_ex_grid_attention {
  font-size: 13px;
  padding-left: 1em;
}

@media (max-width: 900px) {
  .o_flow_ex_grid_box + .o_flow_ex_grid_box {
    margin-top: 50px;
  }
  .o_flow .ex_list {
    text-indent: -1em;
    padding-left: 1em;
  }
  .o_flow_ex_grid_box .ex_subtitle {
    font-feature-settings: "palt";
  }
  .o_flow_ex_grid_box .ex_grid {
    margin-top: 20px;
  }
  .o_flow_ex_grid_box .ex_grid .ex_grid_content {
    order: 1;
  }
  .o_flow .ex_grid.ex_grid_reverse {
    gap: 30px;
  }
  .o_flow .ex_grid_img_box {
    gap: 10px;
  }
  .o_flow .ex_grid_img_box > img {
    height: 50px;
  }
  .o_flow .ex_box_title_text {
    font-size: 13px;
  }
  .o_flow .ex_list {
    font-size: 12px;
  }
  .o_flow_ex_grid_attention {
    font-size: 12px;
  }
}


/* 受付・会計のご案内 */
.o_window_box {
  margin-top: 20px;
}
.o_window .ex_grid_box {
  margin-top: 30px;
  background-color: var(--white);
}
.o_window_box .ex_grid {
  max-width: 966px;
  gap: 120px;
}
.o_window_box .ex_grid_content_text {
  max-width: 582px;
}
.o_window_box_03 {
  margin-top: 40px;
}
.o_window_box_04 {
  margin-top: 70px;
}
.o_window_pdf {
  margin-top: 40px;
}
.o_window .ex_grid_box {
  margin-top: 30px;
}

@media (max-width: 900px) {
  .o_window_img_box {
    order: -1;
  }
  .o_window_box + .o_window_box {
    margin-top: 40px;
  }
  .o_window_box .ex_subtitle {
    margin-bottom: 25px;
  }
  .o_window_box .ex_grid {
    gap: 25px;
  }
  .o_window_box .ex_grid_content_text {
    margin-top: 0;
  }
  .o_window_box_03 .ex_box_text {
    font-feature-settings: "palt";
  }
  .o_reserve_img_box {
    order: -1;
  }
  .o_window_pdf {
    margin-top: 0;
  }
}


/* 休診日のご案内 */
.o_flow .o_flow_child_ly02 {
  margin-top: 70px;
}
.o_flow_kyushin .ex_subtitle {
  margin-bottom: 20px;
}
.o_flow_border_box {
  padding: 20px 30px;
  max-width: 580px;
  border: 1px solid var(--grey);
}
.o_flow_border_box .text {
  font-size: 13px;
}
.o_flow_border_list {
  margin-top: 20px;
  display: flex;
  align-items: flex-start;
  gap: 50px;
}
.o_flow_border_list li {
  font-size: 15px;
  text-align: center;
}
.o_flow_border_list li span {
  font-size: 13px;
  display: block;
}
.o_flow_attention_list {
  margin-top: 10px;
  font-size: 15px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.o_flow .ex_grid_noimg {
  grid-template-columns: 580px 1fr;
}
.o_flow .ex_check_list > li:nth-of-type(n+3) {
  display: inline-block;
}
.o_flow .ex_check_list > li:nth-of-type(n+4) {
  margin-left: 30px;
}
.outpatient .ex_check_list {
  font-size: 15px;
}

@media (max-width: 900px) {
  .o_flow .o_flow_child_ly02 {
    margin-top: 50px;
  }
  .o_flow_border_box {
    padding: 35px 30px;
  }
  .o_flow .ex_grid_noimg {
    grid-template-columns: 1fr;
  }
  .o_flow_border_list {
    margin-top: 25px;
    flex-direction: column;
    gap: 20px;
  }
  .o_flow_border_list li span {
    display: inline-block;
    font-size: 14px;
  }
  .o_flow_attention_list {
    margin-top: 30px;
    text-indent: -1em;
    padding-left: 1em;
    font-size: 12px;
  }
  .o_flow_border_box .text {
    font-size: 12px;
  }
  .o_flow .ex_check_list > li:nth-of-type(n+3) {
    display: block;
  }
  .o_flow .ex_check_list > li:nth-of-type(n+4) {
    margin-left: 0;
  }
  .outpatient .ex_check_list {
    font-size: 14px;
  }
  .o_flow_border_box .sp_900 {
    display: inline-block!important;
  }
}

/* 持ち物のご案内 */
.o_flow_bring .o_flow_border_box {
  margin-top: 30px;
  padding: 30px;
}
@media (max-width: 900px) {
  .o_flow_bring .o_flow_border_box {
    padding: 30px 20px;
  }
}

/* 初診の方へ */
.o_flow .o_flow_child_ly01.o_flow_first {
  margin-top: 70px;
}
.o_flow_first .ex_grid {
  max-width: 914px;
  gap: 70px;
}
.o_flow_first .ex_form_block .ex_tel_box dl {
  grid-template-columns: 92px 190px;
}
.o_flow_first .ex_tel_box dt {
  width: 92px;
}
.o_flow_first .ex_list {
  font-size: 15px;
}

@media (max-width: 900px) {
  .o_flow_first .ex_tel_box dt {
    width: 80px;
  }
  .o_flow_first .ex_form_block .ex_tel_box dl {
    grid-template-columns: 80px 190px;
  }
}

/* お子さまの【健診】や【予防接種】は「母子保健科」で実施しています */
@media (max-width: 900px) {
  .o_flow .o_flow_kenshin .ex_subtitle {
    font-size: 13px;
  }
  .o_flow_kenshin .ex_list {
    text-indent: -0.5em;
    padding-left: 0.5em;
    font-size: 13px;
    gap: 15px;
    font-feature-settings: "palt";
  }
  .o_flow_kenshin .ex_grid_box .ly_pdf {
    margin-top: 30px;
    flex-direction: row;
  }
  .o_flow_kenshin .ex_grid_box .ly_pdf > li {
    width: fit-content;
  }
  .explanation .o_flow_kenshin .ly_pdf img {
    width: 50px;
  }
  .explanation .o_flow_kenshin .ly_pdf_link {
    gap: 10px;
  }
}

/* 【妊娠判定】や【4Dエコー】で「産科」を受診される場合は「適切な時期」をご確認ください */
@media (max-width: 900px) {
  .o_flow .o_flow_judge .ex_subtitle {
    font-size: 13px;
  }
  .o_flow_judge .ex_list {
    text-indent: -0.5em;
    padding-left: 0.5em;
    font-size: 13px;
    gap: 15px;
    font-feature-settings: "palt";
  }
}

/* ---- 医療福祉室のご案内 ---- */
.o_room_lead_text {
  max-width: 582px;
  font-size: 15px;
  line-height: 1.87;
}

@media (max-width: 900px) {
  .o_room_lead_text {
    max-width: 100%;
  }
}


/*----  診療予約アプリ「アットリンク」ダウンロードのお願い -----*/
.o_alink {
  padding-top: 80px;
  padding-bottom: 120px;
}
.o_alink_box {
  display: grid;
  grid-template-columns: 1fr 365px;
  gap: 80px;
}
.o_alink_title {
  display: flex;
  align-items: center;
  font-size: 20px;
}
.o_alink_title img {
  margin-right: 20px;
  width: 75px;
  height: 75px;
}
.o_alink_text {
  margin-top: 70px;
  font-size: 15px;
  line-height: 1.8;
}
.o_alink_list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 46px;
}
.o_alink_list li {
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
}
.o_alink_qr {
  margin-top: 88px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.o_alink_qr img {
  max-width: 108px;
}
.o_alink_qr p {
  font-size: 15px;
}
/* AppStore */
.o_alink_list li.--appstore .o_alink_btn img {
  max-width: 135px;
}
/* GooglePlay */
.o_alink_list li.--googleplay .o_alink_btn img {
  max-width: 164px;
}
.o_alink .ly_pdf {
  margin-top: 20px;
}
.o_alink .ly_pdf > a {
  width: fit-content;
}
.o_alink .ly_pdf img {
  width: 54px;
}
.o_alink .ly_pdf_text {
  font-size: 11px;
}
@media (max-width: 900px) {
  .o_alink {
    padding-top: 50px;
    padding-bottom: 47px;
  }
  .o_alink .inner{
    max-width: 500px;
    margin-right: auto;
    margin-left: auto;
  }
  .o_alink_box {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .o_alink_title {
    font-size: 16px;
  }
  .o_alink_title img {
    margin-right: 12px;
    width: 60px;
    height: 60px;
  }
  .o_alink_text {
    margin-top: 17px;
    font-size: 14px;
  }
  .o_alink_list {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .o_alink .ly_pdf {
    margin-top: 35px;
  }
  .o_alink .ly_pdf img {
    width: 58px;
  }
  .o_alink .ly_pdf_text {
    font-size: 12px;
  }
}




/*+++++++++++++++++++++++++++++++++++++++++
  子育てプログラムのご案内
*+++++++++++++++++++++++++++++++++++++++++*/
/* ---- ページヘッダー ---- */
.program .ex_header {
  position: relative;
}
.program .ex_header_title::before {
  background-image: url(../images/icon/icon-menu13.png);
}
.p_menu .ex_title span::before {
  background-image: url(../images/program/menu/icon-menu01.svg);
}
.program .ex_nav_box {
  grid-template-columns: repeat(3, 1fr);
}


@media (max-width: 900px) {
  /* ---- アンカーリンク ---- */
  .program .ex_nav_link.--square {
    width: 100%;
    min-height: 75px;
    display: grid;
    align-items: center;
    grid-template-columns: 48px 1fr;
    gap: 0;
    padding: 10px 25px;
    padding-right: 55px;
    text-align: center;
    aspect-ratio: auto;
  }
  .program .ex_nav_link.--square::after {
    top: 50%;
    right: 34px;
    transform: translateY(-50%);
    bottom: inherit;
    left: inherit;
  }
}

/* ---- 子育てプログラムはチケット制 ---- */
.p_menu_lead_box {
  display: grid;
  align-items: flex-start;
  grid-template-columns: 1fr 267px;
  gap: 46px;
}
.p_menu_lead_box_child {
  margin-top: 30px;
  display: grid;
  align-items: center;
  grid-template-columns: 126px 1fr;
  gap: 30px;
}
.p_menu_lead_box_imgbox {
  width: 126px;
  height: 126px;
  background-color: var(--white);
  display: grid;
  place-content: center;
  border-radius: 9999vh;
}
.p_menu_lead_box_img {
  width: 96px;
}
.p_menu_lead_box_text_title {
  margin-bottom: 20px;
  font-size: 18px;
  color: var(--blue);
  font-weight: var(--fw-bold);
}
.p_menu_lead_box_text_desc {
  font-size: 15px;
  line-height: 1.87;
  text-align: justify;
}

@media (max-width: 900px) {
  .p_menu_lead_box {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .p_menu_lead_box_imgbox {
    width: 100px;
    height: 100px;
  }
  .p_menu_lead_box_img {
    width: 76px;
  }
  .p_menu_lead_box_child {
    margin-top: 10px;
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .p_menu_lead_box_text_title {
    font-size: 16px;
  }
  .p_menu_lead_box_text_desc {
    font-size: 14px;
  }
}

/* ---- ボタン ---- */
.ex_btn.p_menu_schedule_btn {
  padding: 8px 20px;
  color: var(--white);
  background-color: var(--pink);
  width: 188px;
}
.p_menu_box .program_btn {
  margin-top: 40px;
  margin-left: 323px;
}
@media (max-width: 900px) {
  .ex_btn_box.p_menu_schedule_btn_box{
    margin-top: 50px;
    margin-left: auto;
    margin-right: auto;
    gap: 50px;
  }
  .ex_btn.p_menu_schedule_btn{
    width: 200px;
  }
  .p_menu_box .program_btn {
    margin-left: auto;
    margin-right: auto;
  }
  .p_menu_box .btn_box {
    margin-top: 40px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ---- レイアウト ---- */
.p_menu_box + .p_menu_box {
  border-top: 1px solid var(--program-border);
}
.p_menu_box_first {
  margin-top: 20px;
}
.p_menu_box_first .btn_box {
  margin-top: 30px;
}
.p_menu .ex_grid_box {
  margin-top: 60px;
}

@media (max-width: 900px) {
  .p_menu_box_first {
    margin-top: 0;
  }
  .p_menu_box_first .btn_box {
    margin-top: 40px;
  }
  .p_menu .ex_grid_box {
    margin-top: 45px;
  }
}

/* ---- 曜日 ---- */
.ex_box_lists {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(26px,1fr));
  align-items: center;
  justify-content: space-around;
  max-width: 338px;
  gap: 25px;
}
.ex_box_lists span {
  position: relative;
  top: -1px;
}
.ex_box_youbi {
  align-items: flex-start;
}
.ex_box_youbi li {
  height: 26px;
  width: 26px;
  background-color: var(--program-youbi-noactive);
  color: var(--white);
  border-radius: 9999vh;
  display: grid;
  place-content: center;
}
.ex_box_youbi li.active {
  background-color: var(--blue);
}

@media (max-width: 900px) {
  .ex_box_lists {
    margin-bottom: 15px;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: repeat(7,1fr);
    justify-items: center;
    gap: 16px;
    max-width: 270px;
  }
  .ex_box .ex_box_lists {
    gap: 17px;
  }
  .ex_box_youbi li {
    width: 24px;
    height: 24px;
  }
  .ex_box_youbi .ex_subtitle {
    margin-bottom: 15px;
  }
  .ex_box .ex_grid_youbi .ex_grid {
    display: grid;
    grid-template-columns: 1fr;
    order: -2;
  }
  .program .p_menu_label:nth-of-type(1) {
    margin-top: 20px;
  }
  .program .p_menu_label:nth-of-type(2) {
    margin-top: 15px;
  }
  .program .ex_grid_youbi .ex_attention {
    margin-top: 0;
  }
  .ex_box .ex_box_lists span {
    top: 0;
  }

  /* 曜日ありの並び順変更 */
  .ex_box {
    display: grid;
  }
  .ex_box_youbi {
    order: -2;
  }
  .program .ex_grid_youbi .ex_box_title {
    order: -1;
  }
  .ex_grid_sp_contents {
    display: contents;
  }
}

/* ---- チケット、対象、持ち物 ---- */
.p_menu_ticket {
  width: 72px;
}
.p_menu_ticket_text {
  color: var(--pink);
}
.p_menu_ticket_box {
  margin-top: 50px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.p_menu_label_box {
  margin-top: 40px;
}
.p_menu_label {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.p_menu_label:not(:nth-of-type(1)) {
  margin-top: 25px;
}
.p_menu_label_title {
  padding: 2px 4px;
  min-width: 86px;
  display: grid;
  place-items: center;
  background-color: var(--blue);
  color: var(--white);
  border-radius: 4px;
}
.p_menu_label_title span {
  position: relative;
  top: -1px;
}
.p_menu_label_text {
  color: var(--blue);
}
.p_menu_label_text_ls {
  letter-spacing: -0.05em;
}

/* ママヨガwithベビー */
.p_menu_box_yoga {
  position: relative;
  top: 6px;
}
.p_menu_box_yoga .p_menu_label_text span{
  padding-left: 16px;
}

@media (max-width: 900px) {
  .p_menu_box .p_menu_ticket_box {
    margin-top: 15px;
    gap: 10px;
  }
  .p_menu_ticket {
    width: 54px;
  }
  .p_menu_ticket_text {
    font-size: 13px;
  }
  .ex_grid_content_text {
    margin-top: 25px;
  }
  .p_menu_box .p_menu_label {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
  .p_menu_label_box {
    margin-top: 0;
  }
  .p_menu_box .ex_attention {
    margin-top: 50px;
  }
  .p_menu_label_title {
    min-width: 70px;
    font-size: 12px;
  }
  .p_menu_label_title span {
    top: 0;
  }
  .p_menu_label_text_ls {
    letter-spacing: 0;
  }
  /* ママヨガwithベビー */
  .p_menu_box_yoga {
    top: 0px;
  }
  .p_menu_box_yoga .p_menu_label_text span{
    padding-left: 8px;
  }
}

/* ---- テキストリンク ---- */
.program .text_link_box {
  margin-top: 50px;
}
.program .text_link_box:nth-of-type(n+2) {
  margin-top: 30px;
}

@media (max-width: 900px) {
  .program .text_link_box {
    margin-top: 45px;
  }
  .program .text_link_box:nth-of-type(n+2) {
    margin-top: 25px;
  }
}

/* ---- ご予約方法について---- */
.p_reserve .ex_title span::before {
  background-image: url(../images/program/menu/icon-menu02.svg);
}
.p_reserve .ex_attention {
  margin-top: 10px;
}
.p_reserve .ex_attention li:nth-of-type(n+2) {
  margin-top: 5px;
}
.p_reserve_02 {
  margin-top: 50px;
}
.p_reserve_02_child {
  margin-top: 50px;
}
.p_reserve_02_img {
  max-width: 580px;
}
@media (max-width: 900px) {
  .p_reserve_img_box {
    order: -1;
  }
  .p_reserve_02_img {
    max-width: 100%;
  }
  .p_reserve_02_child {
    margin-top: 50px;
  }
  .p_reserve_02 .ex_subtitle {
    margin-bottom: 20px;
  }
  .p_reserve_02 .p_reserve_02_subtitle {
    font-feature-settings: "palt";
  }
}

/* ---- WEBサイト・Instagram---- */
.p_menu_box_info .ex_subtitle {
  text-align: justify;
}

/* ---- ご参加に関するお願い---- */
.p_join {
  padding-bottom: 100px;
}
.p_join .ex_title span::before {
  background-image: url(../images/program/menu/icon-menu03.svg);
}


/*+++++++++++++++++++++++++++++++++++++++++
  産前・産後サポートのご案内
*+++++++++++++++++++++++++++++++++++++++++*/
.support .ex_header_title::before {
  background-image: url(../images/icon/icon-menu08.svg);
}
.support .ex_title span::before {
  background-image: url(../images/program/menu/icon-menu01.svg);
}

.s_menu_box + .s_menu_box {
  border-top: 1px solid var(--support-border);
}

/* ---- メニュー ---- */
@media (max-width: 900px) {
  .support .ex_nav_link.--square::after{
    bottom: 15px;
  }
  .s_menu .ex_box_title {
    font-size: 16px;
    order: -1;
  }
  .s_menu .ex_box_title span {
    font-size: 12px;
  }
  .s_menu_box .ex_grid {
    gap: 0;
  }
}


/* ---- キャプション ---- */
.support .caption{
  text-align: right;
}
/* ---- ボタン ---- */
.s_menu .s_menu_btn {
  margin-top: 30px;
}
/* ---- 注意事項 ---- */
.s_attention {
  margin-top: 30px;
  font-size: 15px;
  text-indent: -1em;
  padding-left: 1em;
}
.s_menu .ex_attention{
  margin-top: 30px;
}
/* ---- リンク ---- */
.s_menu_text_link_box {
  margin-top: 5px;
  font-size: 12px;
}

@media (max-width: 900px) {
  .support .caption {
    margin-top: 5px;
    font-size: 12px;
    text-align: left;
  }
  .s_menu .s_menu_btn {
    margin-top: 40px;
  }
  .s_attention {
    margin-top: 25px;
    font-size: 12px;
    font-feature-settings: "palt";
    letter-spacing: -0.01em;
  }
}

/* ---- チェックボックス ---- */
.support .ex_check > li:nth-of-type(1) .ex_check_box::before {
  background-image: url(../images/support/s-reserve/icon-obstetrics.svg);
}
.support .ex_check > li:nth-of-type(2) .ex_check_box::before {
  background-image: url(../images/support/s-reserve/icon-mental.svg);
}
.support .ex_check_box_triangle {
  margin-top: 20px;
  text-align: center;
}

/* ---- プレパパママ外来 ---- */
.s_pre .ex_attention {
  margin-top: 0;
}
.s_pre .ex_attention_inline {
  font-size: 12px;
}
@media (max-width: 900px) {
  .s_pre .ex_attention {
    margin-top: 4px;
  }
}

/* ---- ご予約方法について ---- */
.s_reserve .ex_title span::before {
  background-image: url(../images/support/menu/icon-menu02.svg);
}
.s_reserve .ex_grid_content {
  max-width: 582px;
}
.s_reserve .ex_grid {
  gap: 120px;
}
.s_reserve_02.ex_inner {
  max-width: calc(600px + (35px * 2));
}
.s_reserve_02 {
  margin-top: 50px;
}
.s_reserve_03 {
  margin-top: 70px;
}
.s_reserve_03 .ex_check_list {
  max-width: fit-content;
}
.s_reserve_02_child,
.s_reserve_03_child {
  margin-top: 50px;
}
.s_reserve_02_img {
  max-width: 582px;
}

@media (max-width: 900px) {
  .s_reserve_02.ex_inner {
    max-width: 500px;
  }
  .s_reserve_02_img {
    max-width: 100%;
  }
  .s_reserve_02_child {
    margin-top: 50px;
  }
  .s_reserve_03 {
    margin-top: 50px;
  }
  .s_reserve_03 .ex_check {
    margin-top: 30px;
  }
  .s_reserve .ex_grid.ex_grid_reverse{
    gap: 25px;
  }
  .s_reserve .ex_subtitle {
    margin-bottom: 20px;
  }
  .s_reserve_02 .s_reserve_02_subtitle{
    font-feature-settings: "palt";
  }
  .support .ex_check_box_02 .ex_check_box_triangle {
    margin-top: 20px;
  }
}

/* ---- 受付・会計のご案内 ---- */
.s_window .ex_title span::before {
  background-image: url(../images/support/menu/icon-menu03.svg);
}
.s_window_box {
  margin-top: 20px;
}
.s_window_box .ex_grid {
  max-width: 966px;
  gap: 120px;
}
.s_window_box .ex_grid_content_text {
  max-width: 582px;
}
.s_window_box_03 {
  margin-top: 40px;
}
.s_window_box_04 {
  margin-top: 70px;
}
.s_window_pdf {
  margin-top: 40px;
}
.s_window .ex_grid_box {
  margin-top: 30px;
}

@media (max-width: 900px) {
  .s_window_img_box {
    order: -1;
  }
  .s_window_box + .s_window_box {
    margin-top: 40px;
  }
  .s_window_box .ex_subtitle {
    margin-bottom: 25px;
  }
  .s_window_box .ex_grid {
    gap: 25px;
  }
  .s_window_box .ex_grid_content_text {
    margin-top: 0;
  }
  .s_window_box_03 .ex_box_text {
    font-feature-settings: "palt";
  }
}

/* ---- ご利用に関するお願い ---- */
.support .s_use .ex_title span::before {
  background-image: url(../images/support/s-use/icon-onegai.svg);
}
