@charset "utf-8";
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

common

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* ----------------------------------------------------
element base setting (common)
---------------------------------------------------- */
body {
  color: #333333;
  line-height: 1.8;
  background: #fff;
}
a {
  color: #1d2f82;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
.clickable a, .clickable a:hover {
  color: #333;
}
.inrContent {
  width: 90%;
  max-width: 1200px;
  margin-inline: auto;
}
/* ----------------------------------------------------
parts (common)
---------------------------------------------------- */ :root {
  --ff-symbol: 'Material Symbols Outlined';
  --ff-en: "Montserrat", sans-serif;
  --ff-en-serif: "Dawning of a New Day", cursive;
  --c-blue: #498DC8;
  --c-lightblue: #8AC5E0;
  --bg-grad-blue: linear-gradient(0deg, rgba(73, 141, 200, 1) 0%, rgba(138, 197, 224, 1) 100%);
  --bg-grad-orange: linear-gradient(0deg, rgba(229, 90, 3, 1) 0%, rgba(255, 179, 38, 1) 100%);
}
/* icon */
.ic--symbol {
  position: relative;
}
.ic--symbol::before {
  font-family: var(--ff-symbol);
  position: absolute;
}
.ic--fill::before {
  font-variation-settings: 'FILL'1;
}
.ic--left::before {
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.ic--top::before {
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}
/* flex */
.flex {
  display: flex;
  display: -webkit-flex;
  flex-wrap: wrap;
}
.jc--sb {
  justify-content: space-between;
}
.jc--c {
  justify-content: center;
}
.jc--fe {
  justify-content: flex-end;
}
/* img */
img {
  width: 100%;
  height: auto;
}
.img-obj {
  overflow: hidden;
}
.img-obj img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* ----------------------------------------------------
calendar (common)
---------------------------------------------------- */
.ft__cal {
  width: min(40%, 430px);
  border: 1px solid #fff;
  padding: var(--w-30);
  border-radius: var(--w-15);
}
.ft__cal table {
  width: 100%;
}
/* month prev/next */
div.cal_wrapper .cal_ui input:not(:nth-child(2)) {
  font-size: var(--fs-15);
  padding: 5px var(--w-15);
  border-radius: 30vw;
  background: #fff;
  color: var(--c-blue);
  height: var(--w-30);
  line-height: 1px;
}
/* date */
div.cal_wrapper .headline {
  background: var(--c-blue);
}
div.cal_wrapper .headline td {
  padding: var(--w-10) 0;
  font-size: var(--fs-14);
}
/* day */
div.cal_wrapper tr:not(.headline) {
  column-gap: 2px;
}
div.cal_wrapper tr:not(.headline) td {
  margin-top: 2px;
  font-size: var(--fs-14);
  color: #333;
}
div.cal_wrapper td > div {
  background: #fff;
}
@media (max-width: 780px) {}
/* color */
/* 午後休診 */
div.cal_wrapper td > div.Sat, div.cal_wrapper td > div.Thu {
  background: #CCE7F4;
  color: #427198;
}
.cal-halfOff {
  color: #CCE7F4;
}
/* 日曜・祝日 */
div.cal_wrapper td > div.Sun, div.cal_wrapper td > div.Holyday {
  background: #FFDDF0;
  color: #FA5F86;
}
.cal-off {
  color: #FFDDF0;
}
/* その他 */
div.cal_wrapper td > div.otherDay {
  background: #EDF4C4;
  color: #333333;
}
.cal-other {
  color: #EDF4C4;
}
/* 午後休診（イレギュラー) */
div.cal_wrapper td > div.PMOff {
  background: #CCE7F4;
  color: #427198;
}
/* 休診（イレギュラー） */
div.cal_wrapper td > div.dayOff {
  background: #FFDDF0;
  color: #FA5F86;
}
/* 休診→受診日（イレギュラー） */
div.cal_wrapper td > div.weekday {
  background: transparent;
  color: #333;
}
/* 本日 */
div.cal_wrapper td > div.Today {
  font-weight: bold;
  color: #333;
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

header

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.btnFixed a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--bg-grad-orange);
  color: #fff !important;
  position: fixed;
  z-index: 100;
}
@media (min-width: 901px) {
  #header {
    position: sticky;
    width: 100%;
    left: 0;
    top: 0;
    padding: var(--w-12) var(--w-30) 0 0;
    background: rgba(255, 255, 255, 0.8);
    z-index: 10;
    height: min(10vw, 120px);
    display: flex;
    flex-direction: column;
  }
  #header::before {
    content: "";
    background: url("../../img/common/bg_header-01.svg") center center / cover no-repeat;
    aspect-ratio: 1114/160;
    position: absolute;
    right: 0;
    top: 0;
    width: 80%;
    max-width: 1114px;
  }
  #header #hd-logo {
    width: min(30vw, 420px);
    position: absolute;
    left: var(--w-30);
    top: 50%;
    translate: 0 -50%;
    z-index: 100;
  }
  #header .hdInfo {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    column-gap: var(--w-15);
    position: relative;
    color: #fff;
    margin-bottom: 5px;
  }
  #header .hdInfo .hdInfo__address {
    font-size: var(--fs-12);
  }
  #header .hdInfo .pc-tel {
    font-size: var(--fs-16);
  }
  #header .hdInfo .pc-tel a {
    font-size: var(--fs-24);
  }
  #header .hdInfo .hdInfo__line {
    width: var(--w-35);
  }
  #navGlobal {
    display: flex;
    justify-content: flex-end;
    column-gap: min(2vw, 30px);
  }
  #navGlobal li {
    position: relative;
    padding: 5px 0;
    line-height: 1.5;
    font-size: min(1.5vw, 1.8rem);
  }
  #navGlobal li a {
    color: #fff;
  }
  .nav-toggle {
    padding-right: 1em;
    position: relative;
  }
  .nav-toggle::before, .nav-toggle::after {
    content: "";
    width: var(--w-10);
    height: 2px;
    background: #fff;
    border-radius: 10vw;
    position: absolute;
    right: 0;
    top: 50%;
    translate: 0 -30%;
  }
  .nav-toggle::before {
    rotate: 90deg;
  }
  .navChild {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 100%);
    background: var(--c-lightblue);
    border-radius: 10px;
    z-index: 16;
    display: none;
    width: var(--w-240);
    padding: var(--w-10);
  }
  #navGlobal li .navChild li a {
    color: var(--c-blue);
    padding: var(--w-10) var(--w-15);
    background: #fff;
    display: block;
    border-radius: 5px;
    font-size: var(--fs-16);
    font-weight: 600;
    line-height: 1.5;
  }
  #navGlobal li .navChild li a:hover {
    background: var(--c-blue);
    color: #fff;
  }
  #navGlobal li .navChild li {
    padding: 0 !important;
  }
  #navGlobal li .navChild li:not(:last-child) {
    margin-bottom: 5px;
  }
  #header .sp-btnTel, #header #btnGlobal {
    display: none;
  }
  .btnFixed a {
    right: 0;
    top: 50%;
    translate: 0 -50%;
    border-radius: 10px 0 0 10px;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: var(--fs-22);
    padding: var(--w-40) var(--w-10);
  }
  @media (max-width: 1080px) {
    #header {
      padding: 0.5vw 2vw 0 0;
    }
    #header #hd-logo {
      left: 2vw;
    }
    #header .hdInfo {
      margin-bottom: 0;
    }
  }
}
@media (max-width: 900px) {
  /* tabletでは電話させない */
  @media (min-width: 670px) {
    #header .hdInfo {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      right: min(16vw, 80px);
      display: flex;
      align-items: center;
      column-gap: 10px;
    }
    #header .hdInfo__address {
      display: none;
    }
    #header .pc-tel {
      display: block !important;
      color: var(--c-blue);
    }
    #header .pc-tel a {
      font-size: var(--fs-36);
      color: var(--c-blue);
    }
    #header .hdInfo__line {
      width: min(5vw, 60px);
    }
    #header .sp-btnTel {
      display: none !important;
    }
  }
  body {
    padding-bottom: min(14vw, 60px);
  }
  #home main {
    width: 100%;
    position: relative;
  }
  #header {
    position: sticky;
    left: 0;
    top: 0;
    z-index: 120;
    width: 100%;
    height: min(15vw, 70px);
    background: #fff;
    display: flex;
    align-items: center;
    padding: 2vw;
  }
  #header #hd-logo {
    height: min(10vw, 50px);
  }
  #header #hd-logo img {
    height: 100%;
    width: auto;
  }
  #header #hd-logo a {
    color: #fff;
  }
  #header .sp-btnTel {
    position: absolute;
    height: min(15vw, 70px);
    aspect-ratio: 1/1;
    right: min(15vw, 70px);
    top: 0;
    z-index: 120;
    background: var(--c-lightblue);
    display: flex;
    display: -webkit-flex;
    justify-content: center;
    align-items: center;
  }
  #header .sp-btnTel a {
    line-height: 1
  }
  #header .sp-btnTel span {
    color: #fff;
    font-size: var(--fs-46);
    line-height: 1;
  }
  #header .sp-btnTel span.fill {
    font-variation-settings: 'FILL'1;
  }
  #btnGlobal {
    position: absolute;
    height: min(15vw, 70px);
    aspect-ratio: 1/1;
    right: 0;
    top: 0;
    z-index: 120;
    background: var(--c-blue);
    display: flex;
    display: -webkit-flex;
    justify-content: center;
    align-items: center;
  }
  #btnGlobal .btnWrapGlobal {
    position: relative;
    width: min(6vw, 3.2rem);
    height: min(4.5vw, 2.2rem);
  }
  #btnGlobal .btnLine {
    height: 3px;
    background: #fff;
    position: absolute;
    right: 0;
    width: 100%;
  }
  #btnGlobal .btnLine.btnLineT {
    top: 0;
  }
  #btnGlobal .btnLine.btnLineM {
    top: 50%;
    transform: translateY(-50%);
  }
  #btnGlobal .btnLine.btnLineB {
    bottom: 0;
  }
  #btnGlobal.active .btnLine {
    background: #fff;
  }
  #btnGlobal.active .btnLine.btnLineT {
    display: none;
  }
  #btnGlobal.active .btnLine.btnLineM {
    transform: translateY(0) rotate(45deg);
  }
  #btnGlobal.active .btnLine.btnLineB {
    transform: rotate(-45deg);
    bottom: inherit;
    top: 50%;
  }
  #btnGlobal .btnLine.btnLineM, #btnGlobal .btnLine.btnLineB {
    transition: all, ease-in-out, 0.3s;
  }
  #grandMenu {
    background: rgba(0, 0, 0, 0.9);
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: 100;
    left: 0;
    top: 0;
    display: none;
    overflow: auto;
    padding: min(18vw, 100px) 8%;
  }
  #grandMenu a {
    color: #fff;
  }
  #grandMenu #navGlobal li {
    font-size: var(--fs-20);
    border-bottom: 1px dotted #888;
    line-height: 1;
  }
  #grandMenu #navGlobal li a {
    display: block;
    padding: min(4vw, 24px) 0;
    position: relative;
  }
  #grandMenu #navGlobal li a::after {
    content: "";
    position: absolute;
    right: 3%;
    top: 50%;
    width: min(2vw, 10px);
    aspect-ratio: 1/1;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg) translateX(-50%);
  }
  #grandMenu #navGlobal li.btn-navChild a::after {
    transform: rotate(135deg);
  }
  #grandMenu #navGlobal li.btn-navChild .navChild {
    display: none;
  }
  #grandMenu #navGlobal li.btn-navChild .navChild li {
    border-bottom: none;
    font-size: var(--fs-18);
    padding-left: 1em;
  }
  #grandMenu #navGlobal li.btn-navChild .navChild a::after {
    transform: rotate(45deg);
  }
  .spBtn {
    display: flex !important;
    justify-content: center;
    align-items: center;
    column-gap: var(--w-30);
    margin: var(--w-50) auto 0;
  }
  .spBtn__sns img {
    width: var(--w-80);
  }
  .spBtn__web {
    width: 70%;
  }
  .spBtn__web a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--bg-grad-orange);
    color: #fff;
    border-radius: 30vw;
    padding: 0 var(--w-20);
    font-size: var(--fs-22);
    height: var(--w-90);
  }
  #header .pc-tel {
    display: none;
  }
  .btnFixed a {
    right: 0;
    bottom: 0;
    width: 100%;
    height: min(14vw, 60px);
    font-size: var(--fs-22);
  }
  /* ===========================
   iOS Safariのみ疑似要素対策
=========================== */
  @supports (-webkit-touch-callout: none) {
    /* まず a を fixed にする設計をやめて、コンテナを fixed にする */
    .btnFixed {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 100;
      background: #fff; /* 透け防止の遮断レイヤー */
    }
    .btnFixed a {
      position: relative; /* fixed を外す */
      display: flex;
      justify-content: center;
      align-items: center;
      color: #fff !important;
      height: min(14vw, 60px);
    }
    /* グラデは疑似要素で描く */
    .btnFixed::before {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--bg-grad-orange);
      z-index: 0;
    }
    .btnFixed a {
      z-index: 1;
    }
  }
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

footer

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* bnrRecruit */
#bnrRecruit {
  width: calc(100% - calc(var(--w-30)*2));
  max-width: 1380px;
  min-height: min(30vw, 365px);
  padding: var(--w-40);
  background: #8AC5E0;
  background: linear-gradient(90deg, rgba(138, 197, 224, 1) 0%, rgba(73, 141, 200, 1) 100%);
  border-radius: var(--w-15);
  margin: var(--w-60) auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  color: #fff;
  position: relative;
}
#bnrRecruit::before {
  content: "";
  background: url("../../img/common/bg-bnrRecruit-01.png") center center / cover no-repeat;
  aspect-ratio: 732/365;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: var(--w-15) 0 0 var(--w-15);
}
.bnrInrReruit {
  width: 55%;
  position: relative;
  z-index: 1;
}
.bnrInrReruit h2 {
  font-size: var(--fs-36);
}
.bnrInrReruit h2 a, .bnrInrReruit h2 a:hover {
  color: #fff;
}
.bnrRec__list {
  display: flex;
  display: -webkit-flex;
  column-gap: var(--w-15);
  flex-wrap: wrap;
  margin-top: var(--w-30);
}
.bnrRec__list li {
  background: #fff;
  border-radius: 30vw;
  margin-top: var(--w-15);
  text-align: center;
  color: var(--c-blue);
  padding: var(--w-10) var(--w-40);
  min-width: var(--w-240);
}
.bnrRec__list li:nth-child(-n+2) {
  margin-top: 0;
}
@media (max-width: 550px) {
  #bnrRecruit::before {
    content: none;
  }
  .bnrInrReruit {
    width: 100%;
  }
  .bnrInrReruit h2 {
    text-align: center;
  }
  .bnrRec__list {
    margin-top: 0;
  }
  .bnrRec__list li {
    min-width: inherit;
    flex-grow: 2;
    margin-top: var(--w-15) !important;
  }
}
/* footer */
#footer {
  margin-top: var(--w-100);
}
.ft__wrap {
  padding: var(--w-30) 0 0;
  background: #498DC8;
  background: var(--bg-grad-blue);
  margin-top: -1px;
  color: #fff;
}
.ft__wrap h2 {
  text-align: center;
  font-size: var(--fs-14);
  color: #fff;
  margin-bottom: var(--w-60);
}
.ft__wrap h2 img {
  width: clamp(200px, 137.500px + 16.667vw, 360px);
  margin-bottom: var(--w-10);
}
.inrFooter {
  width: 90%;
  max-width: 1080px;
  margin-inline: auto;
}
.ft__info {
  width: min(53%, 575px);
  font-size: var(--fs-16);
}
.ft__contact {
  display: flex;
  column-gap: var(--w-30);
  align-items: center;
  margin: var(--w-10) 0 var(--w-50);
  padding-bottom: var(--w-30);
  border-bottom: 1px dashed #fff;
}
.ft__contact__tel {
  font-family: var(--ff-en);
  font-size: var(--fs-20);
}
.ft__contact__tel a {
  font-size: var(--fs-36);
  color: #fff;
}
.ft__contact__web {
  flex: 1;
}
.ft__contact__web a {
  display: block;
  max-width: 400px;
  background: var(--bg-grad-orange);
  color: #fff;
  text-align: center;
  padding: var(--w-12);
  border-radius: 30vw;
  font-size: var(--fs-20);
}
.ft__info table {
  width: 100%;
}
.ft__info table thead th {
  background: #fff;
  color: var(--c-blue);
  padding: var(--w-15) var(--w-10);
  text-align: center;
}
.ft__info table thead th:first-child {
  border-radius: var(--w-10) 0 0 0;
}
.ft__info table thead th:last-child {
  border-radius: 0 var(--w-10) 0 0;
  padding-right: var(--w-30);
}
.ft__info table tbody tr {
  border-bottom: 1px solid #fff;
}
.ft__info table tbody th, .ft__info table tbody td {
  padding: var(--w-15) var(--w-10);
  text-align: center;
}
.ft__info table tbody td:last-child {
  padding-right: var(--w-30);
}
.ft__map {
  aspect-ratio: 1080/400;
  overflow: hidden;
  border-radius: var(--w-15);
  margin-top: var(--w-40);
}
.ft__map iframe {
  width: 100%;
  height: 100%;
}
.copy {
  text-align: center;
  font-size: var(--fs-12);
  padding: var(--w-30) 5%;
}
.copy a {
  color: #fff;
}
#pagetop {
  position: fixed;
  bottom: 4%;
  right: 3%;
  z-index: 90;
}
#pagetop a {
  display: block;
  width: var(--w-50);
  aspect-ratio: 1/1;
  background-color: var(--c-blue);
  color: #fff;
  position: relative;
  z-index: 8;
  border-radius: 50%;
}
#pagetop a::before {
  content: "";
  width: 12px;
  aspect-ratio: 1/1;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  z-index: 9;
}
@media (max-width: 850px) {
  .ft__info {
    text-align: center;
  }
  .ft__contact {
    display: block;
    text-align: center;
  }
  .ft__contact__web a {
    margin-inline: auto;
  }
  #pagetop {
    bottom: min(14vw, 60px);
    right: 0;
  }
  #pagetop a {
    border-radius: 30vw 0 0 0;
    width: var(--w-80);
  }
  #pagetop a::before {
    transform: translate(0, -15%) rotate(-45deg);
    z-index: 9;
  }
  @media (max-width: 735px) {
    #footer {
      position: relative;
    }
    .ft__info {
      width: 100%;
    }
    .ft__cal {
      width: 80%;
      max-width: 460px;
      margin: var(--w-40) auto;
    }
  }
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

home

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.bgTxt {
  font-family: var(--ff-en);
  font-size: 18rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.5);
  position: absolute;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  line-height: 0.8;
}
/* homVisual */
#homVisual {
  position: relative;
  width: calc(100% - calc(var(--w-30)*2));
  margin: 0 auto;
  background: #E1ECF0;
  border-radius: var(--w-15);
}
.homSlider__wrap {
  position: relative;
}
.homSlider__wrap h2 {
  text-align: center;
  font-weight: 600;
  color: #fff;
  font-size: var(--fs-36);
  width: 100%;
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -100%;
  line-height: 1.6;
  z-index: 3;
}
.homSlider {
  width: 100%;
  aspect-ratio: 138/66;
}
.homSlide {
  width: calc(100% - calc(var(--w-30)*2));
  aspect-ratio: 138/66;
  background: #ccc;
  border-radius: var(--w-15);
  overflow: hidden;
}
.homSlide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.homVis__bg {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48%;
  max-width: 665px;
  border-radius: 0 0 0 var(--w-15);
  overflow: hidden;
}
#homVisual .homVis__info {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 0;
  padding: 0 var(--w-30) var(--w-30);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
#homVisual .homVisTable {
  background: #fff;
  border-radius: var(--w-20);
  padding: var(--w-20) var(--w-30);
}
#homVisual .homVisTable table {
  margin: 0;
  font-size: var(--fs-16);
  text-align: center;
}
#homVisual .homVisTable table thead tr {
  border-bottom: 1px solid #333;
}
#homVisual .homVisTable table th, #homVisual .homVisTable td {
  padding: var(--w-10) var(--w-15);
}
#homVisual .homVisTable tbody tr:last-child th, #homVisual .homVisTable tbody tr:last-child td {
  padding-top: 0;
}
#homVisual .homVisTable table .sat {
  color: #2E9DEB;
}
#homVisual .homVisTable table .sun {
  color: #DA392A;
}
#homVisual .homVisAccess {
  background: rgba(255, 255, 255, 0.8);
  border-radius: var(--w-10);
  padding: var(--w-20) var(--w-40) var(--w-20) var(--w-30);
  display: flex;
  align-items: center;
}
#homVisual .homVisAccess p {
  margin: 0;
  line-height: 1.5;
}
#homVisual .homVisAccess p.homVisAcs__img {
  padding-right: var(--w-20);
  border-right: 1px solid #aaa;
  margin-right: var(--w-20);
}
#homVisual .homVisAccess a p span {
  display: block;
  font-size: var(--fs-12);
  color: var(--c-blue);
  font-family: var(--ff-en);
}
@media (max-width: 900px) {
  #homVisual {
    width: 100%;
  }
  .homSlide, .homSlider {
    width: 100%;
    aspect-ratio: 900/460;
    border-radius: 0;
  }
}
@media (max-width: 749px) {
  .homSlider__wrap h2 {
    translate: 0 -50%;
    padding: 0 5%;
    font-size: min(5vw, 3.2rem);
  }
  .homSlide, .homSlider {
    aspect-ratio: 900/500;
  }
  #homVisual .homVis__info {
    display: block;
    text-align: center;
    position: relative;
    padding: var(--w-30);
  }
  #homVisual .homVisTable, #homVisual .homVisAccess {
    margin: var(--w-10) auto 0;
    max-width: 460px;
  }
  #homVisual .homVisTable {
    padding: min(3vw, 15px) min(4vw, 20px)
  }
  #homVisual .homVisTable table {
    margin: 0 auto;
    font-size: min(3.4vw, 1.6rem);
  }
  #homVisual .homVisTable table th, #homVisual .homVisTable td {
    padding: min(1vw, 10px) min(1.8vw, 10px);
  }
  .homVis__bg {
    border-radius: 0;
  }
}
/* point */
.pointWrap {
  position: relative;
  margin-top: var(--w-60);
  overflow: hidden;
}
.pointWrap::before {
  content: "";
  width: 60%;
  height: 100%;
  background: #E1ECF0;
  position: absolute;
  right: 0;
  top: 0;
}
.pointWrap .inrContent {
  padding: var(--w-60) 0 var(--w-60) var(--w-80);
  position: relative;
  z-index: 3;
}
.pointWrap .inrContent::before {
  content: "";
  background: #E1ECF0;
  border-radius: var(--w-25) 0 0 var(--w-25);
  width: 50%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.pointWrap h2 {
  font-weight: 600;
  font-size: var(--fs-32);
  text-align: right;
  color: var(--c-blue);
  position: relative;
  z-index: 3;
}
.point {
  margin: var(--w-30) auto;
  padding-bottom: var(--w-30);
  border-bottom: 1px dashed var(--c-blue);
  position: relative;
  z-index: 3;
}
.point:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border: none;
}
.point h3 {
  font-size: var(--fs-22);
  color: var(--c-blue);
  font-weight: 600;
  margin: var(--w-30) 0 0;
}
.point h3:first-of-type {
  margin-top: 0;
}
.pointWrap .bgTxt {
  right: 0;
  top: 0;
  min-height: 5em;
  z-index: 2;
}
table.schedule {
  width: 100%;
  margin-bottom: 10px;
  font-size: var(--fs-15);
}
table.schedule thead th {
  background: var(--c-blue);
  color: #fff;
  border: 1px solid var(--c-blue);
  text-align: center;
  font-weight: normal;
  padding: 5px;
  line-height: 1.4;
}
table.schedule tbody th {
  background: #fff;
  color: #333;
  border-bottom: 1px solid #E1ECF0;
}
table.schedule td {
  border-bottom: 1px solid #E1ECF0;
  text-align: center;
  padding: var(--w-10);
  color: var(--c-blue);
  background: #fff;
}
table.schedule th.sat, table.schedule thead th span.sat {
  color: #A9E3FF;
}
table.schedule th.red, table.schedule thead th span.red {
  color: #FF8282;
}
table.schedule td.red {
  color: #EB548B;
  background: #FFD4DD;
  font-weight: bold;
}
.point p:last-child {
  margin-bottom: 0;
}
/*日付統合の調整*/
table.schedule thead th.merge span {
  display: inline-block;
}
table.schedule thead th.merge span.btw {
  padding: 0 0.5em;
  vertical-align: 50%;
}
@media (max-width:640px) {
  .pointWrap .inrContent {
    padding: var(--w-60) 0 var(--w-60) var(--w-40);
  }
  table.schedule {
    display: block;
    width: auto !important;
    margin: 2vw 0 3vw;
    border-collapse: collapse;
    font-size: min(3vw, 1.4rem);
  }
  table.schedule thead {
    display: block;
    float: left;
    width: 35%;
  }
  table.schedule thead th {
    line-height: 1.6;
    border-top: 1px solid #fff;
    border-color: #fff;
  }
  table.schedule tbody {
    display: block;
    width: 65%;
    float: left;
  }
  table.schedule th, table.schedule td {
    text-align: center;
    padding: 2vw 1vw !important;
    display: block;
    line-height: 1.6;
    border-top: 1px solid #ccc;
  }
  table.schedule tbody th {}
  table.schedule th br {
    display: none;
  }
  table.schedule thead tr {
    display: block;
  }
  table.schedule tbody tr {
    width: 50%;
    display: block;
    float: left;
  }
  table.schedule th, table.schedule td {
    margin-top: -1px;
    margin-left: -1px;
  }
  table.schedule {
    zoom: 100%;
  }
  table.schedule:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
  }
  table.schedule td br {
    display: block;
  }
  table.schedule th br {
    display: none;
  }
  table.schedule th br.sp_br {
    display: block !important;
  }
  /*-----------------------------*/
  /*スマホでも横にレイアウト変したい時：長期休診用*/
  table.schedule.schedule_y {
    display: table;
    width: 100% !important;
    margin: 1vw 0;
    border-collapse: collapse;
    font-size: min(2.6vw, 1.4rem);
  }
  table.schedule.schedule_y thead {
    display: table-header-group;
    float: none;
    width: 100%;
  }
  table.schedule.schedule_y tbody {
    display: table-row-group;
    width: 100%;
    float: none;
  }
  table.schedule.schedule_y th, table.schedule.schedule_y td {
    text-align: center;
    padding: 0.6vw 0.2vw;
    display: table-cell;
    font-weight: normal;
  }
  table.schedule.schedule_y td br {
    display: block;
  }
  table.schedule.schedule_y th br {
    display: block !important;
  }
  table.schedule.schedule_y th br.sp_br {
    display: none !important;
  }
  table.schedule.schedule_y thead tr {
    display: table-row;
  }
  table.schedule.schedule_y tbody tr {
    width: 100%;
    display: table-row;
    float: none;
  }
  table.schedule.schedule_y tbody tr th {
    width: 2em;
    padding: 1px 2px;
  }
  table.schedule.schedule_y th, table.schedule.schedule_y td {
    margin-top: -1px;
    margin-left: -1px;
  }
  table.schedule.schedule_y {
    zoom: 100%;
  }
  table.schedule.schedule_y:after {
    content: ".";
    display: table;
    height: 0;
    clear: both;
    visibility: hidden;
    font-size: 0;
  }
  table.schedule.schedule_y th, table.schedule.schedule_y td {
    vertical-align: middle !important;
  }
}
@media (min-width:641px) {
  table.schedule td br {
    display: none
  }
  table.schedule th br.sp_br {
    display: none !important;
  }
}
/* silder */
#homImgSlider {
  margin: 0 auto;
}
.photoSlider {
  margin-bottom: var(--w-10);
}
.phSlide {
  margin: 0 var(--w-15);
  width: min(31.67vw, 380px);
  aspect-ratio: 380/254;
  overflow: hidden;
  background: #eee;
  border-radius: var(--w-10);
}
.phSlide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.phSlide:nth-child(odd) {
  margin-top: var(--w-40);
}
@media (max-width:960px) {
  .phSlide {
    width: min(45vw, 380px);
    ;
  }
}
/* homAbout */
#homAbout {
  margin: var(--w-100) auto 0;
}
.homAbout__above .inrContent {
  position: relative;
  padding-bottom: var(--w-70);
  z-index: 2;
}
.homAbout__above .homAbt__cont {
  width: 48%;
}
.homAbout__above .homAbt__cont h2 {
  font-size: var(--fs-38);
  line-height: 1.6;
}
.homAbout__above .homAbt__cont .homAbt__txt {
  padding: 0 0 0 var(--w-20);
  max-width: 460px;
  margin-top: var(--w-50);
}
.homAbout__above .homAbt__cont .homAbt__txt p:last-child {
  margin: 0;
}
.homAbout__above .inrContent::before {
  content: "";
  aspect-ratio: 47/63;
  width: 39%;
  position: absolute;
  right: 0;
  top: 0;
  border-radius: var(--w-15);
  background: url("../../img/home/img-homAbtAbove-01.jpg") center center / cover no-repeat;
  translate: 10px 0;
}
.homAbout__above .inrContent::after {
  content: "";
  aspect-ratio: 36/46;
  width: 30%;
  border-radius: var(--w-15);
  background: url("../../img/home/img-homAbtAbove-02.jpg") center center / cover no-repeat;
  position: absolute;
  bottom: 0;
  left: 52%;
}
.homAbout__below {
  position: relative;
  background: var(--bg-grad-blue);
  color: #fff;
  padding: var(--w-90) 0 var(--w-240);
}
.homAbout__below::before {
  content: "";
  background: url("../../img/home/bg_homAbout-01.svg") center center / cover no-repeat;
  aspect-ratio: 1440/216;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -99%;
}
.homAbout__below .inrContent {
  width: 100%;
}
.homAbout__below .homAbt__cont {
  position: relative;
  z-index: 1;
}
.homAbout__below .homAbt__cont h3 {
  font-size: var(--fs-30);
  margin-bottom: var(--w-40);
  line-height: 1.6;
}
.homAbout__below .homAbt__cont .btnAbout {
  margin: var(--w-60) 0 0;
}
.homAbout__below .homAbt__cont .btnAbout a {
  display: inline-block;
  border: 2px solid #fff;
  border-radius: 30vw;
  padding: var(--w-10) var(--w-40);
  color: #fff;
}
.homAbt__img {
  position: absolute;
}
.homAbt__img .img-obj {
  height: 100%;
  background: #eee;
  border-radius: var(--w-15);
}
.homAbt__img__img {
  margin: 0;
  position: absolute;
}
.homAbt__txt__en {
  margin: 0;
  position: absolute;
  font-family: var(--ff-en-serif);
  font-size: var(--fs-40);
  font-weight: 100;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.5;
}
.homAbt__wrap {
  position: relative;
}
.homAbout--01 .homAbt__img {
  width: 33%;
  height: 100%;
  left: 0;
  top: 0;
}
.homAbout--01 .homAbt__img__img {
  left: 0;
  bottom: 0;
  translate: -40% 10%;
  width: min(15vw, 180px);
}
.homAbout--01 .homAbt__cont {
  max-width: calc(550px + var(--w-40));
  margin-left: 39%;
  padding: var(--w-90) var(--w-40) var(--w-60) 0;
}
.homAbout--01 .homAbt__txt__en {
  right: 0;
  top: 0;
  translate: 0 -50%;
}
.homAbout--02 {
  display: flex;
  justify-content: flex-end;
}
.homAbout--02 .homAbt__img {
  width: 33%;
  height: calc(100% - var(--w-40));
  right: 0;
  top: calc(var(--w-40)* -1);
}
.homAbout--02 .homAbt__img__img {
  right: 0;
  bottom: 0;
  translate: 30% 10%;
  width: min(20vw, 250px);
}
.homAbout--02 .homAbt__cont {
  max-width: calc(360px + var(--w-40));
  text-align: right;
  margin-right: 39%;
  padding: var(--w-30) 0 0 var(--w-40);
}
.homAbout--02 .homAbt__txt__en {
  left: 0;
  top: 0;
  translate: -15% 60%;
  rotate: -5deg;
}
.homAbout--02 .homAbt__txt__en span {
  padding-left: 2em;
}
.homAbout--03 {
  margin: var(--w-70) 0 0;
}
.homAbout--03 .homAbt__img {
  width: 38%;
  height: 100%;
  left: -4vw;
  top: 0;
}
.homAbout--03 .homAbt__img__img {
  right: 0;
  bottom: 0;
  translate: 20% 10%;
  width: min(12.5vw, 150px);
}
.homAbout--03 .homAbt__cont {
  max-width: calc(580px + var(--w-40));
  margin-left: 41%;
  padding: var(--w-50) var(--w-40) 0 0;
}
.homAbout--03 .homAbt__txt__en {
  right: 0;
  bottom: 0;
  translate: 15% 100%;
}
@media (max-width:790px) {
  .homAbout__above .inrContent {
    padding: 0;
  }
  .homAbout__above .homAbt__cont {
    width: 100%;
    position: relative;
  }
  .homAbout__above .homAbt__cont .homAbt__txt {
    padding: 0;
    max-width: inherit;
  }
  .homAbout__above .inrContent::before, .homAbout__above .inrContent::after {
    content: none;
  }
}
@media (max-width:1290px) {
  .homAbout--01 .homAbt__img__img {
    translate: 0 10%;
  }
  .homAbout--02 .homAbt__img__img {
    translate: 0 10%;
  }
  @media (max-width:1200px) {
    .homAbout--01 .homAbt__cont {
      padding: var(--w-60) var(--w-40) var(--w-60) 0;
    }
    .homAbout--01 .homAbt__img .img-obj, .homAbout--03 .homAbt__img .img-obj {
      border-radius: 0 var(--w-15) var(--w-15) 0;
    }
    .homAbout--02 .homAbt__img .img-obj {
      border-radius: var(--w-15) 0 0 var(--w-15);
    }
    .homAbout--02 {
      margin-top: min(12vw, 60px);
    }
  }
  @media (max-width:760px) {
    .homAbout__below {
      padding-bottom: 30vw;
    }
    .homAbt__img {
      position: relative;
      width: 90% !important;
      margin: 6vw auto 0;
      height: 40vw !important;
      left: inherit !important;
      top: inherit !important;
    }
    .homAbt__img .img-obj {
      border-radius: var(--w-15) !important;
    }
    .homAbout--02 {
      display: block;
    }
    .homAbout--01 .homAbt__cont, .homAbout--02 .homAbt__cont, .homAbout--03 .homAbt__cont {
      width: 90%;
      max-width: inherit;
      margin: 0 auto;
      padding: 0;
    }
    .homAbout--01 .homAbt__img__img {
      width: min(20vw, 180px);
    }
    .homAbout--01 .homAbt__txt__en {
      translate: 0 -100%;
    }
    .homAbout--02 .homAbt__img__img {
      width: min(30vw, 240px);
    }
    .homAbout--02 .homAbt__txt__en {
      translate: 0 0;
      rotate: -5deg;
    }
    .homAbout--03 {
      margin-top: var(--w-90);
    }
    .homAbout--03 .homAbt__img__img {
      width: min(20vw, 150px);
    }
    .homAbout--03 .homAbt__txt__en {
      translate: 0 150%;
    }
  }
}
/* homMovie */
#homMovie {
  aspect-ratio: 1440/460;
  background: url("../../img/home/bg_homMovie.jpg") center center / cover no-repeat;
  position: relative;
}
#homMovie::before {
  content: "";
  background: url("../../img/common/bg_homMovie-02.svg") center center / cover no-repeat;
  aspect-ratio: 1440/70;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: -1px;
}
.homMovie__movie {
  aspect-ratio: 16/9;
  width: 80%;
  max-width: 750px;
  overflow: hidden;
  border-radius: var(--w-15);
  background: #fff;
  padding: 5px;
  position: absolute;
  left: 50%;
  top: 0;
  translate: -50% -25%;
  cursor: pointer;
}
.homMovie__movie img {
  border-radius: var(--w-15);
}
.ytModal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}
.ytModal.is-open {
  display: block;
}
.ytModal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .8);
}
.ytModal__dialog {
  position: absolute;
  width: min(960px, 92vw);
  margin: 0 auto 0;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
}
.ytModal__frame {
  aspect-ratio: 16 / 9;
}
.ytModal__frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.ytModal__close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(255, 255, 255, .15);
  color: #fff;
  font-size: 24px;
  line-height: 40px;
}
/* homSearch */
#homSearch {
  padding: var(--w-70) 0;
  margin-bottom: var(--w-120);
}
#homSearch h2 {
  text-align: center;
  color: var(--c-blue);
  font-size: var(--fs-48);
  line-height: 1.6;
  margin-bottom: var(--w-40);
}
#homSearch h2 span {
  display: block;
  font-size: var(--fs-30);
}
#homSearch h2 em {
  font-size: var(--fs-40);
}
.homSearch__wrap {
  position: relative;
  padding-bottom: var(--w-100);
}
.homSearch__img {
  position: absolute;
  left: 50%;
  bottom: 0;
  translate: -50% 20%;
}
.homMenu__item {
  width: var(--w-160);
}
.homMenu__item:not(.homMenu__item--01):not(.homMenu__item--02):not(.homMenu__item--03) .homMenu__symp {
  position: absolute;
}
.homMenu__item:nth-child(odd) .homMenu__symp::before {
  background: rgba(138, 197, 227, 0.5);
}
.homMenu__item:nth-child(even) .homMenu__symp::before {
  background: rgba(73, 141, 200, 0.4);
}
.homMenu__symp {
  aspect-ratio: 1/1;
  width: var(--w-160);
  position: relative;
  cursor: pointer;
  transition: 0.3s all ease-in-out;
}
.homMenu__symp:hover {
  opacity: 0.8;
}
.homMenu__symp::before {
  content: "";
  width: 100%;
  height: 100%;
  border-radius: 50%;
  aspect-ratio: 1/1;
  position: absolute;
  left: 0;
  top: 0;
  translate: -3% 3%;
}
.homMenu__symp p {
  margin: 0;
  text-align: center;
  line-height: 1.5;
  font-weight: 600;
  color: #0058A4;
  font-size: var(--fs-16);
  position: relative;
  border: 2px solid var(--c-blue);
  border-radius: 50%;
  aspect-ratio: 1/1;
  display: flex;
  justify-content: center;
  align-items: center;
  letter-spacing: 0;
}
.homMenu__item--01 {
  margin: 0 auto;
}
.homMenu__item--02 {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}
.homMenu__item--02 .homMenu__symp {
  translate: 10% 0;
}
.homMenu__item--03 .homMenu__symp {
  translate: -20% 0;
}
.homMenu__item--04 .homMenu__symp {
  left: 20%;
  top: 0;
  translate: -50% 0;
}
.homMenu__item--05 .homMenu__symp {
  right: 20%;
  top: 0;
  translate: 50% 5%;
}
.homMenu__item--06 .homMenu__symp {
  left: 58%;
  top: 0;
  translate: 0 60%;
}
.homMenu__item--07 .homMenu__symp {
  left: 27%;
  top: 0;
  translate: 0 55%;
}
.homMenu__item--08 .homMenu__symp {
  left: 2%;
  top: 0;
  translate: 0 90%;
}
.homMenu__item--09 .homMenu__symp {
  right: 15%;
  top: 0;
  translate: 0 150%;
}
.homMenu__item--10 .homMenu__symp {
  left: 16%;
  bottom: 0;
  translate: 0 -110%;
}
.homMenu__item--11 .homMenu__symp {
  left: 12%;
  bottom: 0;
  translate: 0 0;
}
.homMenu__item--12 .homMenu__symp {
  right: 2%;
  bottom: 0;
  translate: 0 -20%;
}
.homMenu__dep {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% 0;
  text-align: center;
  display: none;
}
.homMenu__dep .homMenu__dep__title {
  font-size: var(--fs-20);
  margin: 0;
  font-weight: 600;
}
.homMenu__dep .homMenu__dep__title span {
  position: relative;
  padding: 0 1em;
}
.homMenu__dep .homMenu__dep__title span::before, .homMenu__dep .homMenu__dep__title span::after {
  content: "";
  width: 2px;
  height: 100%;
  background: #333;
  position: absolute;
  bottom: 0;
}
.homMenu__dep .homMenu__dep__title span::before {
  left: 0;
  rotate: -45deg;
}
.homMenu__dep .homMenu__dep__title span::after {
  right: 0;
  rotate: 45deg;
}
.homMenu__dep .homMenu__dep__link {
  margin: 0;
  font-size: var(--fs-28);
  position: relative;
  padding: 0 1em;
  background: linear-gradient(transparent 50%, #FFF8AD 60%);
}
.homMenu__dep .homMenu__dep__link a {
  position: relative;
  padding: 0 1em;
  color: #333;
  font-weight: 600;
}
.homMenu__dep .homMenu__dep__link a::before {
  content: "\f591";
  font-family: var(--ff-symbol);
  position: absolute;
  font-variation-settings: 'FILL'1;
  right: 0;
  top: 50%;
  color: var(--c-blue);
  translate: 50% -50%;
  font-size: 1.25em;
}
.homMenu__item.is_active .homMenu__symp {
  cursor: default;
}
.homMenu__item.is_active .homMenu__symp::before {
  content: none;
}
.homMenu__item.is_active .homMenu__symp p {
  border: none;
  background: #F6EE91;
}
.homMenu__item.is_active .homMenu__dep {
  display: block;
}
@media (max-width:767px) {
  #homSearch, .homSearch__wrap {
    padding-bottom: 0;
  }
  .spFlex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .homMenu__item {
    width: 49%;
    margin-bottom: 2%;
  }
  .homMenu__item:not(.homMenu__item--01):not(.homMenu__item--02):not(.homMenu__item--03) .homMenu__symp {
    position: relative;
  }
  .homMenu__symp {
    aspect-ratio: inherit;
    width: 100%;
    translate: 0 0 !important;
    left: inherit !important;
    top: inherit !important;
    bottom: inherit !important;
    right: inherit !important;
  }
  .homMenu__symp::before {
    border-radius: 5px;
    aspect-ratio: inherit;
    translate: 3px 3px;
  }
  .homMenu__symp p {
    aspect-ratio: inherit;
    padding: min(3vw, 15px) min(2vw, 10px);
    border-radius: 5px;
  }
  .homMenu__symp p br {
    display: none;
  }
  .homMenu__item--01 {
    margin-inline: 0;
  }
  .homMenu__item--02 {
    display: block;
  }
  .homMenu__item:nth-child(odd) .homMenu__symp::before, .homMenu__item:nth-child(even) .homMenu__symp::before {
    background: rgba(73, 141, 200, 0.4);
  }
  .homMenu__item:nth-child(4n-3) .homMenu__symp::before {
    background: rgba(138, 197, 227, 0.5);
  }
  .homMenu__item:nth-child(4n) .homMenu__symp::before {
    background: rgba(138, 197, 227, 0.5);
  }
  .homMenu__dep {
    position: relative;
    left: inherit;
    top: inherit;
    translate: 0 0;
    display: block;
    padding: var(--w-10) 5px;
    margin: 5px 0;
    background: #f3f3f3;
    border-radius: 5px;
  }
  .homMenu__dep .homMenu__dep__link {
    background: none;
    line-height: 1.6;
    font-size: var(--fs-20);
  }
  .homMenu__dep .homMenu__dep__link a {
    color: var(--c-blue);
  }
  .homMenu__dep .homMenu__dep__title {
    font-size: var(--fs-16);
  }
  .homSearch__img {
    position: relative;
    left: inherit;
    bottom: inherit;
    translate: 0 0;
    margin: var(--w-30) auto 0;
    max-width: 500px;
  }
}
@media (max-width:469px) {
  .homMenu__item {
    width: 100%;
  }
  .homMenu__item:nth-child(4n-3) .homMenu__symp::before, .homMenu__item:nth-child(4n) .homMenu__symp::before {
    background: rgba(138, 197, 227, 0.5);
  }
  .homMenu__item:nth-child(odd) .homMenu__symp::before {
    background: rgba(138, 197, 227, 0.5);
  }
  .homMenu__item:nth-child(even) .homMenu__symp::before {
    background: rgba(73, 141, 200, 0.4);
  }
}
/* homMenu */
#homMenu .homMenu__top {
  position: relative;
}
#homMenu .homMenu__top::before, #homMenu .homMenu__top::after {
  content: "";
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: rgba(140, 197, 224, 0.3);
  position: absolute;
}
#homMenu .homMenu__top::before {
  width: min(31.6vw, 380px);
  left: 0;
  top: 0;
  translate: -50% -40%;
}
#homMenu .homMenu__top::after {
  width: min(13.75vw, 165px);
  left: 0;
  top: 0;
  translate: -100% 100%;
}
a.btnCommon {
  display: inline-block;
  border-radius: 30vw;
  border: 2px solid var(--c-blue);
  color: var(--c-blue);
  padding: var(--w-10) var(--w-50);
  font-weight: 600;
  line-height: 1.6;
}
a.btnCommon:hover {
  background: var(--c-blue);
  color: #fff;
}
.homMenu__title {
  width: 25%;
  position: relative;
}
.homMenu__title h2 {
  color: var(--c-blue);
  font-size: var(--fs-48);
  margin-bottom: var(--w-40);
}
.homMenu__title .homMenu__btn {
  margin: var(--w-40) 0 0;
}
.homMenu__cont {
  position: relative;
  width: 67%;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(3, max-content);
  grid-column-gap: var(--w-20);
  grid-row-gap: var(--w-20);
}
.homMenu--01 {
  grid-area: 1 / 1 / 2 / 4;
}
.homMenu--02 {
  grid-area: 1 / 4 / 2 / 7;
}
.homMenu--03 {
  grid-area: 2 / 1 / 3 / 4;
}
.homMenu--04 {
  grid-area: 2 / 4 / 3 / 7;
  position: relative;
}
.homMenu--05 {
  grid-area: 3 / 1 / 4 / 3;
}
.homMenu--06 {
  grid-area: 3 / 3 / 4 / 5;
}
.homMenu--07 {
  grid-area: 3 / 5 / 4 / 7;
}
.homMenu__grid {
  background: #f3f3f3;
  text-align: center;
  padding: var(--w-50) var(--w-20) var(--w-40);
  border-radius: var(--w-10);
  position: relative;
}
.homMenu__grid h3 {
  font-size: var(--fs-24);
  color: var(--c-blue);
  font-weight: 600;
  line-height: 1.5
}
.homMenu__grid h3 span {
  display: block;
  font-family: var(--ff-en);
  font-size: var(--fs-12);
  color: #777;
  font-weight: normal;
}
.homMenu__grid .homMenu__grid__img {
  margin: 0 auto var(--w-20);
  max-width: 175px;
  width: 80%;
}
.homMenu__grid__s h3 {
  font-size: var(--fs-20);
}
.homMenu__grid__s .homMenu__grid__img {
  max-width: 92px;
  width: 60%;
}
.homMenu--04 .homMenu__syouni {
  background: var(--c-blue);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  aspect-ratio: 1/1;
  position: absolute;
  right: 0;
  top: 0;
  font-size: var(--fs-20);
  padding: var(--w-10);
  translate: 20% -20%;
  rotate: 10deg;
}
.homMenu--04 .homMenu__syouni p {
  text-align: center;
  margin: 0;
  line-height: 1.3;
  letter-spacing: normal;
}
.homMenu--04 .homMenu__syouni p span {
  font-size: var(--fs-16);
}
@media (max-width:767px) {
  #homMenu .homMenu__top {
    display: block;
  }
  .homMenu__title {
    width: 100%;
    margin-bottom: var(--w-60);
  }
  .homMenu__cont {
    width: 100%;
    grid-column-gap: min(2vw, 10px);
    grid-row-gap: min(2vw, 10px);
  }
  .homMenu__grid {
    padding: var(--w-30) var(--w-20) var(--w-30);
  }
  .homMenu__grid__s h3 {
    font-size: var(--fs-18);
  }
}
#homMenu .inrContent {
  position: relative;
  z-index: 1;
}
.homMenu__below {
  background: var(--c-blue);
  color: #fff;
  padding: var(--w-150) 0 var(--w-100);
  position: relative;
}
.homMenu__below::before {
  content: "";
  background: url("../../img/home/bg_homMenu_below-01.svg") center center / cover no-repeat;
  aspect-ratio: 1440/216;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  translate: 0 -99%;
}
.homMenu__special {
  position: relative;
  margin-bottom: var(--w-100);
}
.homMenu__special::before {
  content: "";
  width: 43%;
  height: 100%;
  border-radius: 0 var(--w-30) var(--w-30) 0;
  position: absolute;
  left: 0;
  top: 0;
  background: url("../../img/home/img-homMenuSpecial-01.jpg") center center / cover no-repeat;
}
.homMenu__sp__cont {
  width: 50%;
  margin-left: 50%;
  padding-bottom: var(--w-40);
}
.homMenu__sp__cont h3 {
  font-size: var(--fs-40);
  line-height: 1.6;
  margin-bottom: var(--w-50);
}
.homMenu__sp__cont p {
  line-height: 2;
  margin: 0;
}
.homMenu__exam {
  border: 2px solid #fff;
  border-radius: var(--w-20);
  position: relative;
  padding: var(--w-70) var(--w-60) var(--w-50);
  margin-bottom: var(--w-60);
}
.homMenu__exam h3 {
  font-size: var(--fs-36);
  position: absolute;
  left: 50%;
  top: 0;
  translate: -50% -50%;
  min-width: 13em;
  text-align: center;
}
.homMenu__exam h3 span {
  padding: 0 var(--w-30);
  background: var(--c-blue);
}
.homMenu__exam ul {
  margin: 0;
  display: flex;
  column-gap: var(--w-25);
  flex-wrap: wrap;
}
.homMenu__exam ul li {
  width: calc(calc(100% - calc(var(--w-25)*3)) /4);
  text-align: center;
}
.homMenu__exam .homMenu__exam__img {
  border-radius: var(--w-15);
  aspect-ratio: 25/16;
  background: #fff;
  margin-bottom: var(--w-10);
}
.homExam__btn {
  margin: 0;
  text-align: center;
}
.homExam__btn a {
  display: inline-block;
  border: 2px solid #fff;
  color: #fff;
  border-radius: 30vw;
  padding: var(--w-15) var(--w-50);
  line-height: 1.6;
}
@media (max-width:767px) {
  .homMenu__special {
    padding-bottom: 50vw;
  }
  .homMenu__special::before {
    width: 90%;
    height: 50vw;
    border-radius: var(--w-30);
    left: 5%;
    top: inherit;
    bottom: 0;
  }
  .homMenu__sp__cont {
    width: 100%;
    margin-left: 0%;
  }
  .homMenu__exam ul li {
    width: calc(calc(100% - var(--w-25)) /2);
    margin-top: var(--w-25);
  }
}
/* homImgSlider */
#homImgSlider {
  position: relative;
  background: var(--c-blue);
  padding-bottom: var(--w-60);
}
#homImgSlider::before {
  content: "";
  background: url("../../img/common/bg_photoSlider-01.svg") center center / cover no-repeat;
  aspect-ratio: 1440/215;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
}
/* homGreeting */
#homGreeting {
  background: #f3f3f3;
  padding: var(--w-100) 0 var(--w-130);
}
#homGreeting .inrContent {
  position: relative;
}
#homGreeting .homGrt__photo {
  width: 37.5%;
  height: 100%;
  background: url("../../img/home/img-homGreeting-01.jpg") center center / cover no-repeat;
  border-radius: var(--w-15);
  position: absolute;
  right: 0;
  top: 0;
}
#homGreeting .homGrt__photo .homGrt__name {
  margin: 0;
  color: #fff;
  position: absolute;
  right: var(--w-20);
  bottom: var(--w-15);
  font-size: var(--fs-24);
}
#homGreeting .homGrt__photo .homGrt__name span {
  font-size: var(--fs-16);
  margin-right: 1em;
}
.homGrt__cont {
  width: 56%;
  position: relative;
}
.homGrt__cont h2 {
  font-size: var(--fs-48);
  color: var(--c-blue);
  margin-bottom: var(--w-40);
}
.homGrt__cont p {
  line-height: 2.2;
}
.homGrt__license {
  margin: var(--w-30) 0 0;
}
.homGrt__license dt {
  color: var(--c-blue);
  font-family: var(--ff-en);
  font-weight: 600;
}
.homGrt__license dd {
  padding-left: 1em;
  text-indent: -1em;
}
.homGrt__btn {
  margin: 0;
  position: absolute;
  right: 0;
  bottom: 0;
}
@media (max-width:899px) {
  #homGreeting {
    padding: var(--w-60) 0 var(--w-130);
  }
  #homGreeting .homGrt__photo {
    width: 100%;
    aspect-ratio: 900/900;
    position: relative;
    right: inherit;
    top: inherit;
  }
  .homGrt__cont {
    width: 100%;
    margin-bottom: var(--w-40);
  }
}
/* homNews */
#homNews {
  padding: var(--w-150) 0;
  background: url("../../img/home/bg_homNews-01.png") center center / cover no-repeat;
  position: relative;
  min-height: var(--w-600);
}
#homNews::before {
  content: "";
  background: url("../../img/common/bg_gray-01.svg") center center / cover no-repeat;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  aspect-ratio: 1440/72;
}
.homNews__wrap {
  width: 90%;
  max-width: 980px;
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.3);
  border-radius: var(--w-15);
  padding: var(--w-40) var(--w-60) var(--w-90);
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.homNews__wrap h2 {
  color: var(--c-blue);
  font-size: var(--fs-34);
  text-align: center;
}
.homNews__wrap dl {
  margin: 0;
  font-size: var(--fs-16);
  padding-bottom: var(--w-20);
  border-bottom: 2px dotted var(--c-blue);
}
.homNews__wrap dl dt {
  color: var(--c-blue);
}
.homNews__wrap dl dt:not(:first-child) {
  padding-top: var(--w-20);
  margin-top: var(--w-20);
  border-top: 2px dotted var(--c-blue);
}
.homNews__btn {
  margin: 0;
}
.homNews__btn a {
  aspect-ratio: 1/2;
  width: var(--w-70);
  background: var(--c-blue);
  display: block;
  position: absolute;
  right: 0;
  bottom: 0;
  translate: 0 50%;
  transform-origin: right center;
  rotate: 45deg;
}
.homNews__btn a span {
  width: 4em;
  color: #fff;
  position: absolute;
  left: -10%;
  top: 35%;
  rotate: -90deg;
  font-family: var(--ff-en);
  font-size: var(--fs-16);
}
#homNews .bgTxt {
  left: 0;
  top: 0;
  text-align: center;
  height: 100%;
}
@media (max-width:1020px) {
  .homNews__btn a span {
    left: -15%;
    top: 35%;
    font-size: var(--fs-14);
  }
  .homNews__btn a {
    width: min(12vw, 60px);
  }
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

local navi

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (min-width: 781px) { /* 781px以上 */
  #navLocal {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto 0;
  }
  #navLocal ul {
    display: flex;
    flex-wrap: wrap;
    column-gap: var(--w-30);
  }
  #navLocal ul li {
    margin-bottom: 5px;
    width: calc(calc(100% - calc(var(--w-30)*2))/3);
  }
  #navLocal ul li a {
    display: block;
    border-bottom: 1px dashed var(--c-blue);
    padding: var(--w-10) var(--w-10) var(--w-10) 0;
    color: var(--c-blue);
    position: relative;
  }
  #navLocal ul li a::before {
    content: "";
    width: var(--w-10);
    aspect-ratio: 1/1;
    border-top: 1px solid var(--c-blue);
    border-right: 1px solid var(--c-blue);
    position: absolute;
    right: 5px;
    top: 50%;
    rotate: 45deg;
  }
}
@media (max-width: 780px) { /*　780px以下 */
  .col-reverse {
    display: flex;
    display: -webkit-flex;
    flex-direction: column-reverse;
  }
  #navLocal {
    background: var(--c-blue);
    width: 100%
  }
  #navLocal ul {
    margin: 0;
  }
  #navLocal ul li a {
    display: block;
    color: #fff;
    font-size: var(--fs-24);
    padding: var(--w-20) var(--w-30);
    border-bottom: 1px solid #fff;
    position: relative;
  }
  #navLocal ul li a::after {
    content: "";
    width: var(--w-15);
    aspect-ratio: 1/1;
    margin-top: -0.5vw;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    position: absolute;
    right: var(--w-30);
    top: 50%;
    transform: rotate(45deg);
  }
  #navLocal ul li a.current, #navLocal ul.first li a.parentsLink {
    background: var(--c-lightblue);
    font-weight: 600;
  }
}
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

underlayer

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* base setting */
main {
  overflow: hidden;
}
#main {
  --w: 1200px;
  --m: 5%;
  margin-inline: max(var(--m), 50cqw - var(--w)/2);
}
.bgWhite {
  padding-block: var(--w-90);
  position: relative;
}
.bgGray {
  border-image: conic-gradient(#f3f3f3 0 0) fill 0 //0 100vw; padding-block: var(--w-90); position: relative;}
    .bgBlue {
    border-image: conic-gradient(#E1ECF0 0 0) fill 0 //0 100vw; padding-block: var(--w-90); position: relative;}
      @media (max-width: 780px) {}
    /* --------------------------------------------------
visual / topicPath 
----------------------------------------------------- */
    .visual {
      display: flex;
      display: -webkit-flex;
      justify-content: center;
      align-items: center;
      background: url("../../img/page/common/img-visual-01.jpg") center center / cover no-repeat;
      width: calc(100% - var(--w-60));
      height: min(27vw, 320px);
      margin: 0 auto;
      border-radius: var(--w-20);
      position: relative;
      overflow: hidden
    }
    .visual h2 {
      font-size: var(--fs-36);
      color: #fff;
      font-weight: 600;
    }
    @media (max-width: 900px) {
      .visual {
        width: 100%;
        border-radius: 0;
      }
    }
    /* topicPath */
    ol.topicPath {
      width: calc(100% - var(--w-60));
      margin: var(--w-10) auto;
    }
    @media (max-width: 971px) and (min-width: 781px) {}
    @media (max-width: 780px) {}
    /* --------------------------------------------------
heading / p 
----------------------------------------------------- */
    .hA {
      font-size: var(--fs-36);
      text-align: center;
      margin: var(--w-80) 0 var(--w-50);
    }
    .hA:first-child {
      margin-top: 0;
    }
    .hA span {
      font-family: var(--ff-en);
      text-transform: uppercase;
      font-size: var(--fs-20);
      color: var(--c-blue);
      display: block;
      font-weight: 600;
    }
    .hB {
      font-size: var(--fs-34);
      padding: var(--w-15) 0;
      margin: var(--w-50) 0 var(--w-30);
      border-bottom: 3px solid var(--c-lightblue);
      position: relative;
    }
    .hB::before {
      content: "";
      width: 20%;
      height: 3px;
      background: var(--c-blue);
      position: absolute;
      left: 0;
      bottom: -3px;
    }
    .hC {
      font-size: var(--fs-24);
      font-weight: bold;
      margin: var(--w-50) 0 var(--w-30);
      background: var(--c-lightblue);
      color: #fff;
      padding: var(--w-20) var(--w-40);
      border-radius: var(--w-10);
    }
    .hD {
      font-size: var(--fs-24);
      color: var(--c-blue);
      font-weight: bold;
      margin: var(--w-30) 0 var(--w-20);
    }
    .strongA {
      background: linear-gradient(transparent 50%, #FFFFB1 60%);
    }
    @media (max-width: 971px) and (min-width: 781px) {}
    @media (max-width: 780px) {}
    /* --------------------------------------------------
link / list 
----------------------------------------------------- */
    .telLink {
      font-size: var(--fs-26);
    }
    .telLink::before {
      color: var(--c-blue);
    }
    a.linkArrow {
      display: inline-block;
      min-width: min(25.5vw, 300px);
      padding: var(--w-15) var(--w-30);
      text-align: center;
      position: relative;
    }
    a.linkArrow::after {
      content: "";
      position: absolute;
      right: var(--w-15);
      top: 50%;
      width: var(--w-10);
      aspect-ratio: 1/1;
      border-top: 1px solid;
      border-right: 1px solid;
      transform: translateY(-50%) rotate(45deg);
    }
    a.linkArrow {
      background: var(--c-blue);
      color: #fff;
      border-radius: 30vw;
    }
    a.linkArrow::after {
      border-color: #fff;
    }
    a.linkExternal span::after {
      color: #fff;
    }
    ul.listDot li::before {
      background: var(--c-blue);
    }
    ul.listCheck li::before {
      color: var(--c-blue);
    }
    .listData dt {
      margin-top: 5px;
    }
    @media (max-width: 780px) {
      .telLink a {
        color: inherit;
      }
      a.linkArrow {
        display: block;
        min-width: inherit;
        width: 100%;
        margin: 0 auto;
      }
    }
    /* --------------------------------------------------
decBox
----------------------------------------------------- */
    .decBox {
      padding: var(--w-30);
      margin-bottom: var(--w-30);
      border-radius: var(--w-15);
    }
    .decBox01 {
      border: 1px solid var(--c-blue);
      background: #fff;
    }
    .decBox02 {
      background: var(--c-lightblue);
      color: #fff !important;
    }
    .decBox02 .hD {
      color: #fff;
    }
    .decBox03 {
      background: #fff;
      border: 2px solid var(--c-lightblue);
    }
    @media (max-width: 780px) {}
    /* --------------------------------------------------
table
----------------------------------------------------- */
    .tblA, .tblTime {
      border: 1px solid var(--c-lightblue);
    }
    .tblA th, .tblA td, .tblTime th, .tblTime td {
      border: 1px solid var(--c-lightblue);
      padding: var(--w-10);
    }
    .tblA th, .tblTime th {
      background: var(--c-blue);
      color: #fff;
    }
    .tblA td, .tblTime td {
      background: #fff;
      color: #333;
    }
    @media (max-width: 780px) {}
    /* --------------------------------------------------
grid list (サイズ均等)
---------------------------------------------------- */
    .grid02 {
      display: grid;
      grid-gap: 1.25em;
      grid-template-columns: repeat(2, 1fr);
    }
    .grid03 {
      display: grid;
      grid-gap: 1.25em;
      grid-template-columns: repeat(3, 1fr);
    }
    .grid04 {
      display: grid;
      grid-gap: 1.25em;
      grid-template-columns: repeat(4, 1fr);
    }
    @media (max-width: 890px) {
      .grid04 {
        grid-template-columns: repeat(3, 1fr) !important;
      }
    }
    @media (max-width: 730px) {
      .grid03, .grid04 {
        grid-template-columns: repeat(2, 1fr) !important;
      }
    }
    @media (max-width: 600px) {
      .grid02, .grid03, .grid04 {
        grid-template-columns: repeat(1, 1fr) !important;
      }
    }
    /* --------------------------------------------------
gridレイアウト / 画像上テキスト
---------------------------------------------------- */
    .grdImgBox {
      margin: var(--w-40) 0;
    }
    .picOver__txt {
      background: rgba(0, 0, 0, 0.2);
      color: #fff;
      padding: var(--w-15) var(--w-20);
    }
    @media (max-width: 780px) {}
    /* --------------------------------------------------
step
---------------------------------------------------- */
    .stpBox {
      background: #fff;
      border: 2px solid var(--c-blue);
      border-radius: var(--w-15);
      padding: var(--w-70) var(--w-60) var(--w-60);
      position: relative;
    }
    .stpBox .stpNum {
      margin: 0;
      position: absolute;
      left: 50%;
      top: 0;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background: var(--c-blue);
      color: #fff;
      aspect-ratio: 1/1;
      width: var(--w-90);
      line-height: 1.3;
      display: flex;
      display: -webkit-flex;
      justify-content: center;
      align-items: center;
    }
    .stpBox .stpNum span em {
      font-size: var(--fs-24);
      display: block;
      text-align: center;
    }
    .stpBox .stpTitle h3 {
      font-weight: 600;
      font-size: var(--fs-20);
      margin-bottom: var(--w-20);
    }
    @media (max-width: 780px) {}
    /* ---------------------------------------------------
access
--------------------------------------------------- */
    .acsStep__num {
      margin: 0 auto;
      background: var(--c-blue);
      color: #fff;
      aspect-ratio: 1/1;
      width: var(--w-50);
      display: flex;
      display: -webkit-flex;
      justify-content: center;
      align-items: center;
      border-radius: 50%;
    }
    .acsStep h3 {
      text-align: center;
      margin: var(--w-10) auto;
      font-size: var(--fs-20);
      color: var(--c-blue);
      font-weight: 600;
    }
    @media (max-width: 760px) {
      .acsStep__num {
        width: min(10vw, 50px);
      }
    }
    /* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
other
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
    @media (min-width:768px) {
      /* hover */
      a:hover, .clickable:hover {
        opacity: .8 !important;
        text-decoration: none;
        transition: all 0.2s ease-in-out;
      }
    }
    @media (max-width: 971px) and (min-width: 781px) {}
    @media (max-width: 780px) {}
    /*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
column base
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
    @media (max-width: 971px) and (min-width: 781px) {}
    @media (max-width: 780px) {}