@charset "UTF-8";

/* Reset
----------------------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  zoom: 1;
  /* hasLayout in IE */
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font: inherit;
  font-size: 100%;
  font-weight: normal;
  font-style: normal;
  vertical-align: baseline;
  background: transparent;
  -webkit-text-size-adjust: 100%;
  word-break: break-all;
}

p {
  font-family: "Noto Sans JP", sans-serif;
  color: #444444;
  max-height: 100%;
  line-height: 2;
  letter-spacing: 0.1em;
  text-align: justify;

  @media screen and (max-width: 767px) {
    font-size: 4vw;
  }
}

header, menu, nav, footer,
section, article, aside,
details, summary,
figure, figcaption {
  display: block;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

q, blockquote {
  quotes: none;

  &:before,
  &:after {
    content: "";
    content: none;
  }
}

img {
  max-width: 100%;
  font-size: 0;
  line-height: 0;
  vertical-align: bottom;
  height: auto;

  @media screen and (max-width: 767px) {
    width: 100%;
    min-width: 100%;
  }
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  color: #444444;

  &:focus {
    outline: none;
  }

  & img {
    border: none;
  }
}

button,
input[type=submit] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 0;
  border: none;
  outline: none;
  background: transparent;
}

textarea {
  overflow: auto;
}

label {
  cursor: pointer;
}

.clearfix:after {
  display: block;
  visibility: hidden;
  content: ".";
  clear: both;
  height: 0;
  font-size: 0;
  line-height: 0;
}

* html .clearfix {
  zoom: 1;
}

*:first-child + html .clearfix {
  zoom: 1;
}

a {
  text-decoration: none;
  color: #444444;

  &:hover {
    opacity: 0.7;
    cursor: pointer;
    transition: 0.4s ease;
  }
}

a[href^="tel:"] {
  pointer-events: auto;
}

strong {
  font-weight: normal;
}

ul, ol, li {
  list-style-type: none;
}

body {
  font-family: "noto sans jp", sans-serif;
  min-width: 1280px;
  margin: 0;
  color: #444444;

  @media screen and (max-width: 767px) {
    width: 100%;
    min-width: initial;
  }
}

.wrapper {
  width: 100%;
  max-width: 1440px;
  min-width: 1280px;
  margin: 0 auto;

  @media screen and (max-width: 767px) {
    min-width: initial;
    max-width: initial;
    width: 100%;
  }
}

.no-scroll {
  overflow: hidden;
}

.sp {
  display: none;

  @media screen and (max-width: 767px) {
    display: block;
  }
}

.pc {
  @media screen and (max-width: 767px) {
    display: none;
  }
}

.pc02 {
  display: none;

  @media screen and (max-width: 1439px) and (min-width: 769px) {
    display: block;
  }

  @media screen and (max-width: 767px) {
    display: none;
  }
}

.tab {
  display: none;
}

br.between {
  display: none;
}

.inner {
  width: 100%;
  max-width: 1440px;
  min-width: 1280px;
  padding: 0 80px;
  margin: 0 auto;
  box-sizing: border-box;

  @media screen and (max-width: 767px) {
    min-width: initial;
    max-width: initial;
    width: 100%;
    padding: 0 5vw;
  }
}

.sec_text {
  letter-spacing: 0.1em;
  line-height: 2;
  text-align: justify;
  color: #444444;
}

.flexbox {
  display: flex;
  justify-content: center;
  align-items: center;
}

.reverse {
  flex-direction: row-reverse;
}

.gridbox {
  display: grid;
}

.imagebox {
  box-sizing: border-box;
  position: relative;

  @media screen and (max-width: 767px) {
    width: 100%;
    margin-bottom: 3vw;
  }
}

.textbox, .box_text {
  box-sizing: border-box;
  position: relative;
  text-align: justify;
  line-height: 2;
  letter-spacing: 0.1em;
  color: #444444;

  @media screen and (max-width: 767px) {
    width: 100%;
    font-size: 4vw;
    text-align: justify;
  }
}

.box_title {
  letter-spacing: 0.1em;
  font-family: serif;
  line-height: 1.5;
}

.cont_title{
  border-bottom: 1px solid #85AE37;
  padding-bottom: 30px;
  margin-bottom: 80px;
  text-align: center;
  font-family: serif;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0.1em;
  @media screen and (max-width: 767px){
    font-size: 5vw;
    padding-bottom: 3vw;
    margin-bottom: 5vw;
  }
}

.btn_box {
  display: flex;
  justify-content: center;
}

.about_btn {
  width: -moz-fit-content;
  width: fit-content;
  box-sizing: border-box;
  width: 295px;
  height: 67px;
  border: 2px solid #79B0BF;
  color: #444444;
  border-radius: 60px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  text-align: center;
  position: relative;
  padding: 15px 0 15px 35px;
  letter-spacing: 0.1em;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;

  &:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 55px;
    background: url(/images/common/yajirushi_paleblue.webp) center/contain no-repeat;
  }

  @media screen and (max-width: 767px) {
    width: -moz-fit-content;
    width: fit-content;
    box-sizing: border-box;
    width: 79vw;
    height: 16vw;
    border-radius: 70px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    letter-spacing: 0.1em;
    font-size: 4.3vw;
    font-weight: bold;
    text-align: center;
    position: relative;
    margin: 0 auto;
    padding: 3vw 0 3vw 5vw;

    &:before {
      content: "";
      position: absolute;
      right: 4vw;
      top: 50%;
      transform: translateY(-50%);
      width: 8vw;
      height: 12vw;
    }

    .about_link {
      padding: 0;
    }
  }
}
.about_green{
  border: 2px solid #85AE37;
  &::before{
    background: url(/images/common/yajirushi.webp) center/contain no-repeat;
  }
}
.about_pink{
  border: 2px solid #F2A880;
  &::before{
    background: url(/images/common/yajirushi_pink.webp) center/contain no-repeat;
  }
}


/* ヘッダー・ハンバーガーメニュー
----------------------------------------------------------- */
/* header */
.header {
  position: absolute;
  z-index: 1000;
  width:  100%;
  /*height: 172px;*/


  .header_left {
    padding: 27px 0 0 29px;

    .link{
      display: block;
      width: 360px;
      height: 74px;
      margin-bottom: 16px;
    }
    .company_name{
      width: 360px;
      height: 74px;
    }
    .recruit_img{
      width: 362px;
      height: 56px;
    }
    .recruit_dh{
      box-sizing: border-box;
      width: 362px;
      height: 56px;
      border: 2px solid #FF6D9B;
      background-color: #FAF8F5;

      display: flex;
      justify-content: center;
      align-items: baseline;

      font-size: 26px;
      font-weight: bold;
      text-align: center;
    }
    .recruit_dh span{
      color: #FF6D9B;
      font-size: 26px;
      font-weight: bold;
    }
  }

  @media screen and (max-width: 767px) {
    .header_left {
      padding: 2.4vw 0 0 2.6vw;

      .link{
        width: 57.33vw;
        height: 11.73vw;
        margin-bottom: 1.33vw;
      }
      .company_name{
        width: 57.33vw;
        height: 11.73vw;
      }
      .recruit_img{
        width: 57.33vw;
        height: 10.13vw;
        min-width: initial;
      }

      .recruit_dh{
        width:  57.33vw;
        height: 10.13vw;
        border: .53vw solid #FF6D9B;
        background-color: #FAF8F5;

        line-height: 10.13vw;
        letter-spacing: .2em;
        font-size: 4.2vw;
      }
      .recruit_dh span{
        color: #FF6D9B;
        letter-spacing: .2em;
        font-size: 4.2vw;
      }
    }
  }
}
/* header END */

/* ham */
.ham{
  display: none;
  @media screen and (max-width: 767px) {
    display: block;
    position: fixed;
    z-index: 1001;
    top:   1vw;
    right: 2vw;
    width:  18.66vw;
    height: 21.33vw;
    background: #FF6D9B;
    transition: all 0.4s;

    & a {
      display: block;
      width: 100%;
      height: 100%;
      font-size: 13vw;
      background: #FF6D9B;
      text-align: center;
    }
    & span{
        position: absolute;
        left: 0;
        right: 0;
        width: 9.4vw;
        height: 1px;
        margin: 0 auto;
        background: #fff;
        transition: 0.5s;
    }
    & span:nth-of-type(1){
      top: 4.5vw;
    }
    & span:nth-of-type(2){
      top: 7.5vw;
    }
    & span:nth-of-type(3){
      top: 10.5vw;
    }
    .menu_text {
      position: absolute;
      top: 12.5vw;
      font-size: 3vw;
      width: 100%;
      color: #fff;
      text-align: center;
    }

    .menu_border {
      position: absolute;
      left: 0;
      right: 0;
      width: 50%;
      height: 1px;
      margin: 0 auto;
      background: #fff;
      transition: .4s;

      &:nth-of-type(1) {
        top: 25px;
      }

      &:nth-of-type(2) {
        top: 40px;
      }

      &:nth-of-type(3) {
        top: 55px;
      }
    }
    & a.active{
      background: #FF6D9B;
      .menu_text{
        color: #fff;
        font-size: 0; /* 「メニュー」を隠す */

        /* 開いているときは「CLOSE」を表示 */
        &::before{
          content: "CLOSE";
          font-size: 3.4vw;
          font-weight: bold;
          letter-spacing: .05em;
        }

      }
    }
    & a.active span {

      &:nth-of-type(1) {
        top: 6.5vw;
        background: #fff;
        transform: rotate(45deg);
      }

      &:nth-of-type(2) {
        display: none;
      }

      &:nth-of-type(3) {
        top: 6.5vw; ;
        background: #fff;
        transform: rotate(-45deg);
      }
    }
  }
}
/* ham END */

.copy_header{
  position: fixed;
  left: 0;
  top: -170px;
  z-index: 100;

  width:  100%;
  height: 158px; /* 168px; */
  background-color: #fff;
  box-sizing: border-box;

  transition: 0.4s;
  overflow-x: scroll;

  &.show {
    top: 0px;
  }
  .wrrap {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    margin: 0 auto;
    min-width: 1280px;
    max-width: 1440px;
    padding: 15px 28px 15px; /* 27px 28px 22px; */

    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    column-gap: 20px;
  }
  .header_left{
    box-sizing: border-box;
    width:  826px;
    height: 120px;

    padding: 26px 0;

    margin: 42px auto 50px;
    background-color: #fff;
    border-radius: 20px;
    box-shadow: 0px 6px 3px 4px rgba(217, 217, 217, 0.34);

    .list {
      width: 100%;
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 0;
      justify-self: center;


      .item a {
        height: 73px;
        display: flex;
        justify-content: center;
        align-items: center;

        letter-spacing: .03em;
        font-family: "Zen Maru Gothic";
        font-size: 17px;
        font-weight: 400;
        text-align: center;

        position: relative;

        /* ホバー時に出す葉っぱアイコン */
        &::after {
          content: "";
          position: absolute;
          bottom: -27px;
          left: 50%;
          transform: translate(-50%, 6px);
          background: url(/images/nav_hover_icon.webp) center / contain no-repeat;
          width:  32px;
          height: 28px;
          opacity: 0;
          transition: opacity .3s, transform .3s;
          pointer-events: none;
        }
        &:hover::after {
          opacity: 1;
          transform: translate(-50%, 0);
        }

      }
    }
    .item:not(:last-of-type) {
        border-right: 1px solid #FF6D9B;
    }
    .item{
      text-align: center;
          flex-shrink: 0;
    }
  }

  .header_right{
    .gridbox{
      width: 452px;
      height: 120px;
      max-width: 100%;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 20px;
      row-gap: 0;
      justify-self: center;
    }
    .apply_btn{
      width:  215px;
      height: 120px;
      margin: 0;

      & a {
        box-sizing: border-box;
        display: block;
        width:  100%;
        height: 100%;

        padding: 15px;
        border-radius: 20px;
        background-color: #EFEE85;
      }

      .text01 {
        position: relative;
        width: fit-content;
        margin: 0 auto;
        padding: 8px 14px;
        border-radius: 8px;
        background-color: #fff;

        line-height: 1.5;
        letter-spacing: .01em;
        font-size: 16px;
        font-weight: bold;
        text-align: center;
        color: #555;

        &::after {
          content: "";
          position: absolute;
          top: 100%;
          left: 18%;
          width:  20px;
          height: 11px;
          background-color: #fff;
          clip-path: polygon(0 0, 100% 0, 10% 100%);
        }
      }
      .text02 {
        padding-right: .3em;
        margin-top: 5px;
        font-size: 21px;
        font-weight: bold;
        letter-spacing: .08em;
        text-align: center;
        color: #444;

        position: relative;
        &::before{
          content: "▶";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: -.6em;
          font-size: 14px;
          color: #FF6D9B;
        }
        &::after{
          content: "";
          position: absolute;
          bottom: -.2vw;
          left: 50%;
          transform: translateX(-50%);
          border-bottom: 4px solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #FF6D9B 1.8px, transparent 2px) left bottom / 8px 8px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          width: 175px;
          height: 4px;
        }
      }

    }
    .tel_btn{
      width:  215px;
      height: 120px;
      margin: 0;

      & a {
        box-sizing: border-box;
        display: block;
        width:  100%;
        height: 100%;

        padding: 15px;
        border-radius: 20px;
        border: 2px solid #FF6D9B;
        background-color: #fff;
      }
      .text01 {
        padding-top: 25px;
        font-size: 15px;
        letter-spacing: .01em;
        text-align: center;
        position: relative;
        &::before {
          content: "";
          position: absolute;
          top: 0;
          left: 50%;
          transform: translateX(-50%);
          background: url(/images/fix_phone.webp) center / contain no-repeat;
          width:  18px;
          height: 18px;
        }
      }
      .tel_num {
        width: fit-content;
        margin-top: -15px;
        letter-spacing: .02em;
        font-family: "Zen Maru Gothic";
        font-size: 30px;
        font-weight: bold;
        text-align: center;
      }
    }
  }

  @media screen and (max-width: 767px) {
    display: none;
  }
}

/* ham_sitemap */
.ham_sitemap {
  display: none;
  @media screen and (max-width: 767px) {
    display: block;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: scroll;
    opacity: 0;
    visibility: hidden;
    transition: all .4s;
    background-color: #fff;

    &.active {
        opacity: 1;
        visibility: visible;
    }

    .sitemap_inner {
        width: 100%;
        max-width: 100%;
        padding: 0vw 0 21.3vw;
        margin: 0 auto;
        box-sizing: border-box;
    }

    .clinic_box{
      box-sizing: border-box;
      width: 62.86vw;
      padding: 2.4vw 0 4.2vw 2.6vw;

      .clinic_name{
        display: block;
        width: 57.33vw;
        min-width: initial;
        height: 11.73vw;
        margin-bottom: 1.33vw;
      }
      .recruit_img{
        width: 57.3vw;
        height: 10.13vw;
      }

      .recruit_dh{
        box-sizing: border-box;
        width:  57.33vw;
        height: 10.13vw;
        border: .53vw solid #FF6D9B;
        background-color: #FAF8F5;

        display: flex;
        justify-content: center;
        align-items: baseline;

        line-height: 10.13vw;
        letter-spacing: .2em;
        font-size: 4.2vw;
        font-weight: bold;
        text-align: center;
      }
      .recruit_dh span{
        color: #FF6D9B;
        letter-spacing: .2em;
        font-size: 4.2vw;
        font-weight: bold;
      }
    }
    .list{
      padding: 0 5vw;
    }
    .item {
        position: relative;
        padding-left: 0;
        margin-bottom: 0;

        display: block;
        width: 100%;
        letter-spacing: .03em;
        padding: 4vw 0 4vw 2vw;
        border-bottom: .26vw solid #FF6D9B;
        box-sizing: border-box;

        &:before {
          content: "＞";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: 0;
          font-size: 4.2vw;
          font-weight: 700;
          color: #FF6D9B;
        }
        & a {
            box-sizing: border-box;
            display: block;
            width: 100%;
            padding: 2.5vw 0;

            letter-spacing: .06em;
            font-family: "Zen Maru Gothic";
            font-size: 4.8vw;
            font-weight: bold;
        }
    }

    .sitemap01{
      margin-bottom: 10.13vw;
    }
    .nav_contact {
      margin-bottom: 5.5vw;

      .tel_btn{
        box-sizing: border-box;
        width: 85.33vw;
        margin: 0 auto;

        background-color: #FFEAEA;
        border: .8vw solid #FF6D9B;
        padding: 2.66vw 2.46vw ;

        & a{
          display: block;
          width:  100%;
        }
        .flexbox{
          display: flex;
          justify-content: center;
          align-items: center;
        }

        .text01{
          width: fit-content;
          margin-right: 2vw;

          letter-spacing: 0;
          line-height: 1.3;
          font-size: 4vw;
          font-weight: 500;
          text-align: center;
          white-space: nowrap;
        }
        .tel_num{
          letter-spacing: .04em;
          font-family: "Zen Maru Gothic";
          font-size: 8.266vw;
          font-weight: 500;
          white-space: nowrap;
        }
      }
    }
  }
}
/* ham_sitemap END */


/* mainvisual */
.mainvisual {
  position: relative;
  height: clamp(853px, 66.666vw, 66.666vw);

  @media screen and (max-width: 767px) {
    position: relative;
    height: 224.26vw;
  }
}
/* mainvisual END */

/* key */
.key {
  position: relative;
  width: 100%;
  height: clamp(853px, 66.666vw, 66.666vw);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;

  .cont {
    position: relative;
    width:  100%;
    height: clamp(853px, 66.666vw, 66.666vw);
  }

  .key_bg {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width:  100%;
    height: clamp(853px, 66.666vw, 66.666vw);
  }

  .cont01 {
    width: 100%;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;


    &:before {
      display: none;
    }
    .key_bg {
      background: url(/images/mainvisual01.webp) center/cover no-repeat;
    }

    .key_text {
      position: relative;
      z-index: 5;
      top: -60px;
      width: fit-content;
      /* max-width: 100%; */
      margin: 0 auto;
      height: auto;
      padding: 0;
      font-family: "Zen Maru Gothic";
      color: #fff;
      text-align: center;
      text-shadow: 0 0 10px rgba(0, 0, 0, .2);

      /* リセットの font-weight: normal とグレー・両端揃えを打ち消す */
      & p, & span {
        font-family: inherit;
        font-weight: 700;
        color: inherit;
        letter-spacing: .08em;
      }
      & p {
        text-align: center;
      }
      /* ＼ 歯科衛生士として ／（左寄せ） */
      .catch_sub {
        display: block;
        width: fit-content;
        position: relative;
        margin: 0 0 -31px 43px;
      }

      /* この先も、おとのは歯科で働きたい ＋ 下の点線 */
      .catch_main {
        margin-bottom: 22px;
        font-size: 60px;
        letter-spacing: 0;
        line-height: 1.3;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
        position: relative;
        &::before{
          content: "";
          position: absolute;
          bottom:  -36px;
          left:   -110px;
          background: url(/images/mv_chtch_kazari01.webp) center/contain no-repeat;
          width: 101px;
          height: 102px;
        }
        &::after{
          content: "";
          position: absolute;
          bottom: -12px;
          right: -107px;
          background: url(/images/mv_chtch_kazari02.webp) center/contain no-repeat;
          width:  98px;
          height: 80px;
        }
      }
      .catch_main .t_big {
        font-size: 80px;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
      }
      .catch_main .t_small {
        font-size: 50px;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
        margin-right: .2em;
      }
      .catch_line{
        width: 900px;
        margin-bottom: 22px;
      }
      /* 結婚や出産、〜 */
      .catch_text {
        font-size: 28px;
        line-height: 1.7;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
      }
    }
  }

  @media screen and (max-width: 767px) {
    height: 224.26vw;

    .cont {
      position: relative;
      width: 100%;
      height: 224.26vw;
    }

    .key_bg {
      position: absolute;
      top: 0;
      left: 0;
      z-index: -1;
      width: 100%;
      height: 224.26vw;
    }

    .cont01 {
      position: relative;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;

      &:before {
        display: none;
      }
      .key_bg {
        background: url(/images/mainvisual01_sp.webp) center/cover no-repeat;
      }
    .key_text {
        top: -10vw;
        width: 100%;
        height: auto;
        padding: 0;

        /* ＼ 歯科衛生士として ／（画像） */
        .catch_sub {
          width: 68vw;
          margin: 0 0 -2vw 8vw;
        }

        /* この先も、おとのは歯科で */
        .catch_main {
          margin-bottom: 1vw;
          font-size: 8.53vw;
          font-style: italic;
          line-height: 1.45;

          /* PC用の左右の飾りは、スマホでは「働きたい」の行だけに出す */
          &::before,
          &::after {
            display: none;
          }
        }
        .catch_main .t_big {
          font-size: 10.66vw;
          font-style: italic;
        }
        .catch_main .t_small {
          font-size: 6.4vw;
          margin-right: 0;
        }

        /* 点線（共通のimg指定 min-width:100% を解除） */
        .catch_line {
          display: block;
          width: 80vw;
          min-width: initial;
          margin: 0 auto 2vw;
        }
        .catch_line2 {
          display: block;
          width: 53.33vw;
          min-width: initial;
          margin: 0 auto 2vw;
        }
        /* 働きたい ＋ 左右の飾り */
        .catch_main2 {
          width: fit-content;
          margin: 0 auto 1vw;

          &::before,
          &::after {
            display: block;
          }
          &::before {
            top: -2vw;
            bottom: auto;
            left: -21vw;
            background: url(/images/mv_chtch_kazari01_sp.webp) center/cover no-repeat;
            width:  18.13vw;
            height: 18.26vw;
          }
          &::after {
            right: -21vw;
            bottom: -9vw;
            background: url(/images/mv_chtch_kazari02_sp.webp) center/cover no-repeat;
            width:  21.86vw;
            height: 17.86vw;
          }
        }
        .catch_main2 .t_big {
          font-size: 12.26vw;
          font-weight: 500;
          font-style: italic;

          letter-spacing: .12em;
        }

        /* 結婚や出産、〜 */
        .catch_text {
          margin-top: 4vw;
          font-size: 5.3vw;
          line-height: 1.75;
        }
      }

    }
  }
}
/* key END */

/* nav */
.nav {
  position: relative;
  z-index: 10;
  width: clamp(1224px, 95.625vw, 1377px);  /*1377px;*/
  padding: 15px 0;

  margin: min(-165px, -12.916vw) auto 50px;
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0px 6px 3px 4px rgba(217, 217, 217, 0.34);

  .list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0;
    justify-self: center;


    .item a {
      height: 113px;
      display: flex;
      justify-content: center;
      align-items: center;

      letter-spacing: .1em;
      font-family: "Zen Maru Gothic";
      font-size: 18px;
      font-weight: 400;
      text-align: center;

      position: relative;
      /* ホバー時に出す葉っぱアイコン */
      &::after {
        content: "";
        position: absolute;
        bottom: -27px;
        left: 50%;
        transform: translate(-50%, 6px);
        background: url(/images/nav_hover_icon.webp) center / contain no-repeat;
        width:  32px;
        height: 28px;
        opacity: 0;
        transition: opacity .3s, transform .3s;
        pointer-events: none;
      }
      &:hover::after {
        opacity: 1;
        transform: translate(-50%, 0);
      }
    }
  }
  .item:not(:last-of-type) {
      border-right: 1px solid #FF6D9B;
  }
  .item{
    text-align: center;
        flex-shrink: 0;
  }
  @media screen and (max-width: 767px) {
      display: none;
  }
}
/* nav END */


/* セクション、見出し
----------------------------------------------------------- */
.common_sec {
  width: 1280px;
  min-width: 100%;
  margin: 0 auto 150px;
  box-sizing: border-box;

  .header_wrapper {
    position: relative;
  }
  .sec_body{
    max-width: 1100px;
    margin: 0 auto;

  }

  .sec_header {
    background-color: #85AE37;
    height: 105px;
    max-width: 1280px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 80px;
    position: relative;
    z-index: 1;

    .sec_title {
      color: #fff;
      font-family: serif;
      font-size: 32px;
      position: relative;
      z-index: 2;
      text-align: center;
      letter-spacing: 0.1em;
      font-weight: 500;
      line-height: 1.8;
    }
  }

  @media screen and (max-width: 767px) {
    width: 1280px;
    max-width: 100%;
    padding: 0;
    margin: 0 auto 13.8vw;
    box-sizing: border-box;

    .sec_header {
      position: relative;
      padding: 0;
      margin-bottom: 10vw;
      height: 32vw;


      .sec_title {
        font-size: 6vw;
        font-weight: 600;
        text-align: center;
        letter-spacing: 0.1em;
        line-height: 1.5;
        z-index: 10;
      }

      .sec_subtitle {
        font-size: 4vw;
        letter-spacing: 0.2em;
      }
    }

    .sec_body {
      padding: 0;
    }
  }
}

/*
----------------------------------------------------------- */
/* banner */
.banner{
  margin-bottom: 100px;
  .renewal_open{
    width: 686px;
    margin: 80px auto;
    text-align: center;
  }

  @media screen and (max-width: 767px) {
    width: 93.33vw;
    margin: 0 auto 14.48vw;

    .renewal_open{
      width: 100%;
      margin: 0 auto;
    }
  }
}

/* lead_sec */
.lead_sec{
  .box {
    max-width: 1440px;
    margin: 0 auto;
    box-sizing: border-box;
    padding-left: 100px;
    position: relative;
    z-index: 1;
  }
  position: relative;
  .back_image{
    position: absolute;
    z-index: -1;
    top: -15px;
    right: 0;
    width:  648px;
    height: 563px;
  }
  .sec_title{
    margin-bottom: 50px;
    margin-left: -15px;
    letter-spacing: .1em;
    line-height: 2.2;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 40px;
    font-weight: 500;
  }
  .sec_title .t_pink{
    font-size: 50px;
    font-weight: 600;
    line-height: 1;
    color: #FF6D9B;
  }
  .sec_title .y_border {
    border-bottom: 1px solid #EECE30;
    padding: 0 0 8px 15px;
    /* 2行それぞれに左の余白と下線を付ける */
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  .sec_text{
    width: 920px;
    max-width: 100%;
    margin-bottom: 70px;
    font-size: 20px;
    line-height: 3;
  }
  .list {
    position: relative;
    z-index: 1;

    margin-bottom: 75px;
    display: flex;
    justify-content: center;
    align-items: center;
    & li{
      padding: 0 28px 0 54px;
      letter-spacing: .05em;
      font-size: 24px;
      font-weight: bold;
      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 0;
        background: url(/images/check.webp) center/contain no-repeat;
        width:  44px;
        height: 44px;
      }
    }
  }

  .title_kangei{
    font-family: "Zen Maru Gothic";
    font-size: 48px;
    font-weight: bold;
    font-style: italic;

    text-align: center;
    margin-bottom: 60px;
  }

  .link_box{
    width: 1010px;
    max-width: 100%;
    margin: 0 auto 166px;
    column-gap: 65px;
  }

  .message_box{
    padding-bottom: 135px;
    background-image: linear-gradient(rgba(250, 248, 245, 0), rgb(250, 248, 245) 350px);

    position: relative;
    .lead_staff01{
      position: absolute;
      top: 89px;
      left: min(calc(50% + 390px), calc(100% - 298px));
    }
    .lead_staff02{
      position: absolute;
      top: 308px;
      left: calc(50% - 668px);
    }
    .lead_staff03{
      position: absolute;
      top: 614px;
      left: calc(50% + 411px);
    }


    .title{
      width: fit-content;
      margin: 0 auto;

      margin-bottom: 50px;
      line-height: 2.5;
      font-family: "Noto Sans JP", sans-serif;
      font-size: 32px;
      font-weight: 500;
      text-align: center;
      font-feature-settings: "palt";

      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: -10px;
        left: -106px;
        background: url(/images/lead_kazari01.webp) center / contain no-repeat;
        width:  70px;
        height: 67px;
      }
      &::after{
        content: "";
        position: absolute;
        top: 100px;
        right: -15px;
        background: url(/images/lead_kazari02.webp) center / contain no-repeat;
        width:  74px;
        height: 71px;
      }
    }
    .title .t_big{
      letter-spacing: .1em;
      font-size: 48px;
    }

    .text{
      letter-spacing: .1em;
      line-height: 2.9;
      font-family: "Noto Sans JP", sans-serif;
      font-size: 25px;
      font-weight: 500;
      text-align: center;
      font-feature-settings: "palt";
    }
  }

  @media screen and (max-width: 767px) {

    .box {
      padding-left: initial;
      padding: 0 5vw;
    }
    .back_image{
      position: absolute;
      z-index: -1;
      top: -15px;
      right: 0;
      width:  100vw;
      height: 86.93vw;
    }

    .sec_title{
      padding-top: 42vw;
      margin-bottom: 4.2vw;
      margin-left: 0;
      line-height: 2.5;
      font-size: 5.6vw;
    }
    .sec_title .t_pink{
      font-size: 6.93vw;
    }
    .sec_title .y_border {
      border-bottom: 0.26vw solid #EECE30;
      padding: 0 0 2.13vw 4vw;
    }

    .sec_text{
      margin-bottom: 8vw;
      font-size: 5.3vw;
      font-weight: 500;
      line-height: 2;
    }
    .list {
      padding-left: 3.5em;
      margin-bottom: 8.8vw;
      flex-direction: column;
      align-items: flex-start;
      & li{
        padding: 0 0 0 2.3em;
        font-size: 4.8vw;
        &::before{
          top: 50%;
          transform: translateY(-50%);
          left: 0;
          width:  8.53vw;
          height: 8.53vw;
        }
      }
      & li:not(:last-of-type){
        margin-bottom: 4.2vw;
      }
    }

    .title_kangei{
      font-size: 7.46vw;
      margin-bottom: 7.46vw;
    }

    .link_box{
      flex-direction: column;
      margin: 0 auto 13.8vw;
      column-gap: 0;
      row-gap: 8vw;
      .kengaku{
        width: 88vw;
        position: relative;
        &::before{
          content: "";
          position: absolute;
          bottom: 0;
          left: -3.46vw;
          background: url(/images/kengaku_kazari.webp) center/contain no-repeat;
          width: 22.66vw;
          height: 20.26vw;
        }
      }
      .bosyu{
        width: 88vw;
      }
    }

    .message_box{
      padding-top: 42.4vw;
      padding-bottom: 10vw;
      background-image: linear-gradient(rgba(250, 248, 245, 0), rgb(250, 248, 245) 350px);

      position: relative;
      .lead_staff01{
        position: absolute;
        top: 0;
        right: 4vw;
        left: initial;

        width: 36vw;
        height: 36vw;
        min-width: initial;
      }
      .lead_staff02{
        position: absolute;
        top: 9.6vw;
        left: 6.13vw;

        width: 28.8vw;
        height: 28.8vw;
        min-width: initial;
      }
      .lead_staff03{
        position: absolute;
        top: initial;
        bottom: -24vw;
        right: 4vw;
        left: initial;

        width: 42.9vw;
        height: 42.9vw;
        min-width: initial;
      }

      .title{
        margin-bottom: 8vw;
        letter-spacing: .1em;
        line-height: 2;
        font-size: 4vw;
        &::before{
          top: 4.26vw;
          left: -10.93vw;
          background: url(/images/lead_kazari01_sp.webp) center / contain no-repeat;
          width:  13.33vw;
          height: 12.76vw;
        }
        &::after{
          top: 41.6vw;
          right: -10.13vw;
          background: url(/images/lead_kazari02_sp.webp) center / contain no-repeat;
          width:  14.4vw;
          height: 13.81vw;
        }
      }
      .title .t_big{
        letter-spacing: .15em;
        font-size: 6.4vw;
        font-weight: 500;
      }
      .text{
        padding: 0 5vw;
        line-height: 2.3;
        font-size: 4.8vw;
        text-align: justify;
        margin-bottom: 6vw;
      }
    }
  }
}

/* sec01 */
.sec01{
  overflow-x: clip;
  .section_title{
    width: fit-content;
    margin: 0 auto 237px;
    position: relative;
    &::before{
      content: "";
      position: absolute;
      z-index: -1;
      top: 78%;
      left: 50%;
      transform: translate(-50%,-50%);
      background: url(/images/sec01_title_back_image.webp) center / contain no-repeat;
      width:  clamp(1270px, 99.236vw, 1429px); /* 1429px; */
      height: clamp(422px, 32.986vw, 475px);   /*  475px; */
    }
  }
  .cont01, .cont02, .cont03, .cont04{
    width: 1280px;
    max-width: 100%;
    margin: 0 auto 120px;

    .flexbox{
      align-items: flex-start;
      column-gap: 50px;
      margin-bottom: 60px;
    }
    .imagebox{
      width: 100%;
      max-width: 600px;
    }
    .textbox{
      width: 100%;
    }
    .box_title{
      line-height: 1.4;
      font-family: "Zen Maru Gothic";
      font-size: 36px;
      font-weight: bold;
      margin-bottom: 28px;
    }

    .first_flex {
      .box_title{
        padding-left: 160px;
        white-space: nowrap;
        position: relative;
        &::before{
          content: "";
          position: absolute;
          bottom: 0;
          left: 0;
          background: url(/images/num_01.webp) center / contain no-repeat;
          width:  160px;
          height: 123px;
        }
      }
    }
  }

  .cont01{
    position: relative;
    &::before{
      content: "";
      position: absolute;
      z-index: -1;
      top: -96px;
      left: 50%;
      transform: translateX(-50%);
      border-radius: 50px 50px 0 0;
      background-image: linear-gradient(#faf2f4 61%, transparent);
      width:  1000px;
      height: 1218px;
    }
    .first_flex {
      .box_title{
        &::before{
          background: url(/images/num_01.webp) center / contain no-repeat;
          width:  131px;
          height: 123px;
        }
      }
      .imagebox{
        position: relative;
        &::before{
          content: "";
          position: absolute;
          top:  288px;
          left: 408px;
          background: url(/images/sec01_01_kazari01.webp) center / contain no-repeat;
          width:  172px;
          height: 146px;
        }
      }
    }
    .second_flex{
      .box_title{
        letter-spacing: .1em;
        line-height: 1.75;
        font-family: "Noto Sans JP", sans-serif;
        font-size: 24px;
        font-weight: bold;
        padding-bottom: 10px;
        border-bottom: 6px solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, #FF6D9B 2.7px, transparent 3px) left bottom / 12px 10px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 10px;
      }
      .box_title span{
        color: #FF6D9B;
        font-size: 28px;
        font-weight: bold;
      }
      .imagebox{
        text-align: center;
        .circle_image{
          margin: 0 auto;
        }
        position: relative;
        .circle_text{
          position: absolute;
          top: 36%;
          left: 63%;
          transform: translate(-50%, -50%);
          text-align: center;
          white-space: nowrap;
          font-size: 18px;
          font-weight: 500;
        }
      }
    }

    .gridbox{
      width: 1085px;
      max-width: 100%;
      margin: 0 auto;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 82px;
      row-gap: 0;
      justify-self: center;
      .item_title{
        width: fit-content;
        margin: 0 auto 10px;
        font-size: 24px;
        font-weight: bold;
        text-align: center;
        position: relative;
        &::before{
          content: "";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          left: -1.6em;
          background: url(/images/sec01_title_kazari01.webp) center/contain no-repeat;
          width:  30px;
          height: 30px;
        }
      }
      .item_image{
        margin-bottom: 20px;
      }

      .item:nth-of-type(2){
        .item_image{
          position: relative;
          .circle_text{
            position: absolute;
            top:   72px;
            left: 333px;
            border-radius: 50%;
            background-color: #FAF8F5;
            width: 157px;
            height: 157px;

            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;

            letter-spacing: .03em;
            font-family: "Zen Maru Gothic";
            font-size: 18px;
            font-weight: bold;
            text-align: center;

          }
          .p_text{
            letter-spacing: .1em;
            font-family: "Zen Maru Gothic";
            font-size: 21px;
            font-weight: bold;
            text-align: center;
            color: #FF6D9B;
            margin-bottom: 8px;
          }
        }
      }

    }
  }
  .cont02{
    margin: 0 auto 214px;

    .first_flex {
      .box_title{
        &::before{
          background: url(/images/num_02.webp) center / contain no-repeat;
          width:  146px;
          height: 123px;
        }
      }
    }

    .gridbox{
      width: 100%;
      grid-template-columns: repeat(2, minmax(0, 608px));
      justify-content: space-between;
      column-gap: 20px;
      row-gap: 0;
      margin-bottom: 60px;

      .item{
        width: 100%;
        position: relative;
      }
      .item_image{
        margin-right: auto;
        margin-bottom: 20px;
      }
      .item_box{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 0;
        width: 400px;
        height: 332px;
        border-radius: 10px;
        border: 2px solid #52CBB4;
        padding: 20px;
        box-sizing: border-box;
      }
      .item_title{
        letter-spacing: .1em;
        line-height: 1.3;
        font-size: 24px;
        font-weight: bold;
        text-align: center;
        padding-bottom: 10px;
        border-bottom: 4px solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, #52CBB4 1.8px, transparent 2px) left bottom / 8px 8px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 10px;
      }
    }

    .third_flex{
      width: 1192px;
      max-width: 100%;
      margin: 0 auto;
      background-color: #CBEFE9;
      border-radius: 20px;
      position: relative;
      .box_title{
        letter-spacing: .1em;
        line-height: 1.3;
        font-family: 'Noto Sans JP';
        font-size: 24px;
        font-weight: bold;
        padding-bottom: 10px;
        border-bottom: 6px solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, #52CBB4 2.7px, transparent 3px) left bottom / 12px 10px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 10px;
      }
      .box_title span{
        color: #358475;
        font-size: 28px;
        font-weight: bold;
      }
      .textbox{
        flex: 1;
        width: auto;
        max-width: 728px;
        padding: 44px 0 44px 64px;
        box-sizing: border-box;

      }
      .imagebox{
        position: static;
        flex-shrink: 0;
        width:  425px;
        height: 274px;
        .circle_image{
          position: absolute;
          bottom: 0;
          right: 20px;
        }
        .circle_text{
          position: absolute;
          top:  49%;
          left: 74%;
          transform: translate(-50%, -50%);
          text-align: center;
          white-space: nowrap;
          line-height: 1.6;
          font-family: "Zen Maru Gothic";
          font-size: 18px;
          font-weight: bolder;
        }
      }
    }
  }
  .cont03{
    position: relative;
    &::before{
      content: "";
      position: absolute;
      z-index: -1;
      top: -82px;
      left: 50%;
      transform: translateX(-50%);
      border-radius: 50px 50px 0 0;
      background-image: linear-gradient(#FDF5E9 61%, transparent);
      width:  1000px;
      height: 1218px;
    }

    .first_flex {
      .box_title{
        &::before{
          background: url(/images/num_03.webp) center / contain no-repeat;
          width:  149px;
          height: 123px;
        }
      }
    }

    .gridbox{
      width: 1170px;
      max-width: 100%;
      margin: 0 auto 80px;

      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 82px;
      row-gap: 0;
      justify-self: center;

      .item_title_box{
        display: flex;
        justify-content: space-between;
        margin-bottom: 10px;
      }
      .item_title {
        min-height: 131px;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        padding-right: 10px;

        line-height: 1.3;
        font-size: 24px;
        font-weight: bold;
        font-feature-settings: "palt";
      }
    }
    .third_flex{
      align-items: flex-end;
      .box_title{
        letter-spacing: .1em;
        line-height: 1.75;
        font-family: "Noto Sans JP", sans-serif;
        font-size: 24px;
        font-weight: bold;
        padding-bottom: 10px;
        border-bottom: 6px solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, #E99631 2.7px, transparent 3px) left bottom / 12px 10px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 10px;
      }
      .box_title span{
        color: #E99631;
        font-size: 28px;
        font-weight: bold;
      }
      .imagebox{
        text-align: center;
        .circle_image{
          margin: 0 auto;
        }
        position: relative;
        .circle_text{
          position: absolute;
          top: 36%;
          left: 63%;
          transform: translate(-50%, -50%);
          text-align: center;
          white-space: nowrap;
        }
      }
    }

  }
  .cont04{
    .first_flex{
      margin-bottom: 0;
      .box_title{
        &::before{
          background: url(/images/num_04.webp) center / contain no-repeat;
          width:  149px;
          height: 123px;
        }
      }
      .imagebox{
        position: relative;
        &::before{
          content: "";
          position: absolute;
          top:  95.25%;  /* (331 + 50) ÷ 400 */
          left: 7.5%;    /* (-5 + 50) ÷ 600 */
          transform: translate(-50%, -50%);
          background: url(/images/sec01_04_kazari01.webp) center / contain no-repeat;
          width:  100px;
          height: 100px;
        }
        &::after{
          content: "";
          position: absolute;
          top:  53.25%;  /* (163 + 50) ÷ 400 */
          left: 95.5%;   /* (523 + 50) ÷ 600 */
          transform: translate(-50%, -50%);
          background: url(/images/sec01_04_kazari01.webp) center / contain no-repeat;
          width:  100px;
          height: 100px;
        }

      }
    }
    .circle_list {
      position: relative;
      z-index: 1;
      margin: -34px auto 90px;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      column-gap: 30px;
      row-gap: 0;
      justify-self: center;
      .circle{
        width: 222px;
        height: 222px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;

        line-height: 1.58;
        font-size: 24px;
        font-weight: bold;
        text-align: center;
        color: #fff;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
      }
      .circle .t_big{
        font-size: 32px;
        font-weight: bold;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
      }
      .circle .t_small{
        font-size: 20px;
        font-weight: 400;
        text-shadow: 0px 0px 14px rgba(0, 0, 0, 0.45);
      }

      .circle_text1, .circle_text3 {
        background: url(/images/sec01_04_list01.webp) center/contain no-repeat;
      }
      .circle_text2, .circle_text4 {
        background: url(/images/sec01_04_list02.webp) center/contain no-repeat;
      }
    }

    .second_flex{
      align-items: center;
      .box_title{
        letter-spacing: .1em;
        line-height: 1.75;
        font-family: "Noto Sans JP", sans-serif;
        font-size: 24px;
        font-weight: bold;
        padding-bottom: 10px;
        border-bottom: 6px solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, #5BA3BB 2.7px, transparent 3px) left bottom / 12px 10px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 10px;
      }
      .box_title span{
        color: #5BA3BB;
        font-size: 28px;
        font-weight: bold;
      }
      .imagebox{
        .list {
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          column-gap: 15px;
          row-gap: 20px;
          justify-self: center;
        }
        .item{
          padding-left: 2em;
          letter-spacing: .1em;
          font-size: 24px;

          position: relative;
          &::before{
            content: "";
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 0;
            background: url(/images/sec01_04_check.webp) center/contain no-repeat;
            width:  43px;
            height: 35px;
          }
        }
      }
    }

    .hukuri_box{
      width: 1195px;
      max-width: 100%;
      margin: 0 auto;
      border-radius: 20px;
      background-color: #E8F3F4;

      padding: 73px 45px;
      box-sizing: border-box;

      .title{
        line-height: 1.5;
        font-size: 32px;
        font-weight: bold;
        text-align: center;
        margin-bottom: 80px;

        position: relative;
        &::before{
          content: "";
          position: absolute;
          top: -120px;
          left: 50%;
          transform: translateX(-50%);
          background: url(/images/sec01_04_hukuri_kazari01.webp) center/contain no-repeat;
          width: 202px;
          height: 97px;
        }
        &::after{
          content: "";
          position: absolute;
          bottom: 10px;
          left: 50%;
          transform: translateX(-50%);
          background: url(/images/sec01_04_hukuri_kazari02.webp) center/contain no-repeat;
          width: 776px;
          height: 51px;
        }
      }
      .title span{
        color: #5BA3BB;
        font-size: 32px;
        font-weight: bold;
      }
      .box{
        .item_title{
          font-size: 27px;
          font-weight: bold;
          padding-bottom: 5px;
          border-bottom: 1px solid #5BA3BB;
          margin-bottom: 30px;


        }
        .item_title span{
          padding-left: 2em;
          color: #1C596D;
          font-size: 24px;
          font-weight: bold;
          position: relative;
          &::before{
            content: "";
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 0;
            background: url(/images/sec01_04_title_check.webp) center/contain no-repeat;
            width:  43px;
            height: 35px;
          }
        }
        .grid{
          width: 1045px;
          margin: 0 auto 58px;
          grid-template-columns: repeat(4, minmax(0, 1fr));
          column-gap: 28px;
          row-gap: 0;
        }
        .item{
          width: 240px;
          height: 86px;
          border-radius: 10px;
          background-color: #CEEAEF;

          display: flex;
          justify-content: center;
          align-items: center;

          line-height: 1.6;
          font-size: 20px;
          font-weight: bold;
          text-align: center;

          position: relative;
        }
        .item .text{
          position: absolute;
          bottom: -25px;
          font-size: 15px;
        }
      }


    }
  }

  @media screen and (max-width: 767px) {
    margin-top: 40vw;
    padding-top: 11.2vw;

    .inner{
      padding: 0;
    }

    .section_title{
      width: fit-content;
      margin: 0 auto 30vw;
      text-align: center;
      & img {
        width: 72.8vw;
        height: 45.33vw;
      }
      &::before{
        top: -11.2vw;
        left: 50%;
        transform: translateX(-50%);
        background: url(/images/sec01_title_back_image_sp.webp) center / contain no-repeat;
        width:  100vw;
        height: 70.13vw;
      }
    }

    .cont01, .cont02, .cont03, .cont04{
      margin: 0 auto 13.8vw;

      .flexbox{
        flex-direction: column;
        align-items: flex-start;
        column-gap: 0;
        row-gap: 8vw;
        margin-bottom: 13.8vw;
      }
      .imagebox{
        max-width: 90vw;
        margin-bottom: 3vw;
      }
      .textbox{

      }
      .box_title{
        box-sizing: border-box;
        padding: 0 5vw;

        line-height: 1.28;
        font-family: "Zen Maru Gothic";
        font-size: 7.46vw;
        text-align: center;
        margin-bottom: 3vw;
        font-feature-settings: "palt";
      }
      .box_text{
        padding: 0 5vw;
      }

      .first_flex {
        .box_title{
          padding-left: initial;
          white-space: normal;
          padding: 0 3vw;

          position: relative;
          &::before{
            content: "";
            position: absolute;
            bottom: initial;
            top: -18vw;
            left: 50%;
            transform: translateX(-50%);
            width:  16vw;
            height: 15vw;
          }
        }
      }
    }

    .cont01{
      margin: 0 auto 29.6vw;
      position: relative;
      &::before{
        content: "";
        position: absolute;
        z-index: -1;
        top: -10.53vw;
        border-radius: 13.3vw 13.3vw 0 0;
        background-image: linear-gradient(#faf2f4 61%, transparent);
        width:  100vw;
        height: 609vw;
      }
      .first_flex {
        .box_title{
          &::before{
            background: url(/images/num_01.webp) center / contain no-repeat;
            width:  16vw;
            height: 15vw;
          }
        }
        .imagebox{
          max-width: initial;
          &::before{
            top:  46.4vw;
            left: 68vw;
            background: url(/images/sec01_01_kazari01_sp.webp) center / contain no-repeat;
            width:  29.33vw;
            height: 24.92vw;
          }
        }
      }
      .second_flex{
        .box_title{
          padding: 0;
          margin: 0 5vw;
          font-size: 4.8vw;
          text-align: left;
          padding-bottom: 2.66vw;
          border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #FF6D9B 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          margin-bottom: 2.66vw;
        }
        .box_title span{
          font-size: 6.4vw;
        }
        .imagebox{
          padding: 0 5vw;
          .circle_text{
            top: 54%;
            left: 59%;
            font-size: 4vw;
          }
        }
      }

      .gridbox{
        width: 100%;
        grid-template-columns: repeat(1, minmax(0, 1fr));
        column-gap: 0;
        row-gap: 8vw;

        .item{
          box-sizing: border-box;
          width: 100%;
          padding: 0 5vw;
        }
        .item_title{
          margin: 0 auto 3vw;
          font-size: 4.8vw;
          &::before{
            width:  5.3vw;
            height: 5.3vw;
          }
        }
        .item_image{
          margin-bottom: 3vw;
        }

        .item:nth-of-type(2){
          .item_image{
            .circle_text{
              top:   4vw;
              left: 55.06vw;
              width:  38.66vw;
              height: 38.66vw;
              font-size: 4.2vw;
            }
            .p_text{
              font-size: 5.6vw;
              margin-bottom: 2.1vw;
            }
          }
        }

      }
    }
    .cont02{
      margin: 0 auto 29.6vw;

      .first_flex {
        margin-bottom: 4vw;
        .box_title{
          &::before{
            width:  17.8vw;
            height: 14.93vw;
          }
        }
        .imagebox{
          max-width: initial;
        }
      }

      .gridbox{
        grid-template-columns: repeat(1, minmax(0, 1fr));
        column-gap: 0;
        row-gap: 8vw;
        margin-bottom: 9.6vw;

        .item{
          width: 100vw;
          height: 124.26vw;
          position: relative;
        }
        .item_image{
          margin-right: initial;
          margin-bottom: initial;
          position: absolute;
          top: 0;
          left: 50%;
          transform: translateX(-50%);
          width: 75.2vw;
          height: 49.6vw;
        }
        .item_box{
          top: 35.73vw;
          transform: initial;
          left: 50%;
          transform: translateX(-50%);
          right: initial;
          width: 90vw;
          height: 88.53vw;
          border-radius: 2.66vw;
          border: .53vw solid #52CBB4;
          padding: 5vw;
        }
        .item_title{
          line-height: 1.7;
          font-size: 4.8vw;
          padding-bottom: 2.6vw;
          border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #52CBB4 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          margin-bottom: 2.6vw;
        }
      }

      .third_flex{
        width: 100%;
        border-radius: 5.33vw;
        row-gap: 0;

        .box_title{
          letter-spacing: .03em;
          font-size: 4.8vw;
          padding-bottom: 2.6vw;
          border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #52CBB4 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          margin-bottom: 2.6vw;
        }
        .box_title span{
          font-size: 6.6vw;
        }
        .box_text{
          padding: 0;
          font-size: 4.2vw;
        }
        .textbox{
          width: 100%;
          padding: 9.8vw 5vw 0;
        }
        .imagebox{
          margin-top: 0vw;
          position: relative;
          bottom: 0;
          left: 50%;
          transform: translateX(-50%);
          width:  100vw;
          max-width: 100%;
          width: 83.73vw;
          height: 34.93vw;
          margin-bottom: 0;
          .circle_image{
            position: absolute;
            bottom: 0;
            left: 0;
            right: initial;
            width:  83.73vw;
            height: 34.93vw;
          }
          .circle_text{
            position: absolute;
            top:  49%;
            left: 36%;
            transform: translate(-50%, -50%);
            text-align: center;
            white-space: nowrap;
            line-height: 1.5;
            font-size: 4.2vw;
            font-weight: bolder;
          }
        }
      }
    }
    .cont03{
      position: relative;
      &::before{
        content: "";
        position: absolute;
        z-index: -1;
        top: -10.53vw;
        border-radius: 13.3vw 13.3vw 0 0;
        background-image: linear-gradient(#FDF5E9 61%, transparent);
        width:  100vw;
        height: 455vw;
      }

      .first_flex {
        .box_title{
          &::before{
            width:  18.13vw;
            height: 14.93vw;
          }
        }
        .imagebox{
          max-width: initial;
        }
      }

      .gridbox{
        width: 100%;
        margin: 0 auto 8vw;

        grid-template-columns: repeat(1, minmax(0, 1fr));
        column-gap: 0;
        row-gap: 10vw;
        justify-self: center;

        .item{
          width: 90vw;
          margin: 0 auto;
        }
        .item_title_box{
          display: block;
          justify-content: initial;
          margin-bottom: 3vw;
          position: relative;
        }
        .item_title {
          position: relative;
          z-index: 2;
          min-height: initial;
          display: flex;
          justify-content: center;
          align-items: center;
          padding-right: initial;

          line-height: 1.6;
          font-size: 5.3vw;
          text-align: center;
          font-feature-settings: "palt";
        }

        .item:nth-of-type(1){
          .item_image{
            position: absolute;
            z-index: 0;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
            width:  21.33vw;
            height: 19.46vw;
          }
        }
        .item:nth-of-type(2){
          .item_image{
            position: absolute;
            z-index: 0;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
            width:  21.33vw;
            height: 21.33vw;
          }
        }
      }
      .third_flex{
        align-items: center;
        margin-bottom: 27.6vw;
        row-gap: 3vw;
        .box_title{
          margin: 0 5vw;
          line-height: 1.3;
          font-size: 4.8vw;
          padding-bottom: 2.6vw;
          border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #E99631 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          margin-bottom: 2.6vw;
        }
        .box_title span{
          font-size: 6.4vw;
        }
        .imagebox{
          margin: 0 3vw;
          text-align: center;
          .circle_image{
            margin: 0 auto;
          }
          position: relative;
          .circle_text{
            position: absolute;
            top: 36%;
            left: 63%;
            transform: translate(-50%, -50%);
            text-align: center;
            white-space: nowrap;
          }
        }
      }
    }
    .cont04{
      .first_flex{
        margin-bottom: 0;
        .box_title{
          &::before{
            width:  18.13vw;
            height: 14.2vw;
          }
        }
        .imagebox{
          max-width: initial;
          &::before{
            top: 62vw;
            left: 13.13vw;
            width:  13.3vw;
            height: 13.3vw;
          }
          &::after{
            top: 15.2vw;
            left: 88.46vw;
            width:  16vw;
            height: 16vw;
          }

        }
      }
      .circle_list {
        width: 90vw;
        margin: 0 auto;
        margin: 4.2vw auto ;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 4vw;
        row-gap: 4vw;
        .circle{
          width:  41.6vw;
          height: 41.6vw;

          line-height: 1.6;
          font-size: 4.8vw;
        }
        .circle .t_big{
          font-size: 6.93vw;
        }
        .circle .t_small{
          line-height: 1.1;
          font-size: 4.26vw;
        }

        .circle_text1, .circle_text3 {
          background: url(/images/sec01_04_list01.webp) center/contain no-repeat;
        }
        .circle_text2, .circle_text4 {
          background: url(/images/sec01_04_list02.webp) center/contain no-repeat;
        }
      }

      .second_flex{
        align-items: center;
        .box_title{
          box-sizing: border-box;
          margin: 0 5vw;
          line-height: 1.3;
          font-size: 4.8vw;
          padding-bottom: 2.6vw;
          border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #5BA3BB 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          margin-bottom: 2.6vw;
        }
        .box_title span{
          font-size: 6.4vw;
        }
        .imagebox{
          .list {
            width: 60vw;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(1, minmax(0, 1fr));
            column-gap: 0;
            row-gap: 4vw;
            justify-self: center;
          }
          .item{
            font-size: 4.8vw;

            &::before{
              width:  8.53vw;
              height: 6.94vw;
            }
          }
        }
      }

      .hukuri_box{
        width: 100%;
        border-radius: 5.3vw;

        padding: 12.8vw 5vw 8vw;
        box-sizing: border-box;

        .title{
          line-height: 1.33;
          font-size: 6.4vw;
          margin-bottom: 13.33vw;

          &::before{
            top: -25.4vw;
            width:  34.1vw;
            height: 21.6vw;
          }
          &::after{
            bottom: 0;
            background: url(/images/sec01_04_hukuri_kazari02_sp.webp) center/contain no-repeat;
            width: 89.33vw;
            height: 10.47vw;
          }
        }
        .title span{
          font-size: 6.4vw;
        }


        .box{
          .item_title{
            font-size: 5vw;
            padding-bottom: 1.3vw;
            border-bottom: .26vw solid #5BA3BB;
            margin-bottom: 4.2vw;

            display: flex;
            flex-direction: column;
            align-items: center;
          }
          .item_title span{
            padding-left: 2em;
            font-size: 4.8vw;
            &::before{
              width:  8vw;
              height: 6.13vw;
            }
          }
          .grid{
            width: 90vw;
            margin: 0 auto 8vw;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            column-gap: 3.73vw;
            row-gap: 3.73vw;
          }
          .item{
            width: 42.9vw;
            height: 22.93vw;
            border-radius: 2.6vw;

            display: flex;
            justify-content: center;
            align-items: center;

            line-height: 1.6;
            font-size: 4.2vw;
            font-weight: bold;
            text-align: center;

            position: relative;
          }
          .item .text{
            bottom: -6.6vw;
            font-size: 3.73vw;
          }
        }
        .box:nth-of-type(3){
          .item:nth-of-type(1),
          .item:nth-of-type(2){
            margin-bottom: 5.3vw;
          }

        }
      }
    }
  }
}

/* sec02 */
.sec02{
  .flexbox{
    align-items: flex-start;
    column-gap: 50px;
    margin-bottom: 60px;
  }
  .imagebox{
    width: 100%;
    max-width: 490px;
  }
  .textbox{
    width: 100%;
  }
  .box_title{
    line-height: 1.4;
    font-family: "Zen Maru Gothic";
    font-size: 58px;
    font-weight: 500;
    font-style: italic;
    margin-bottom: 28px;
  }
  .box_title span{
    line-height: 1.4;
    font-family: "Zen Maru Gothic";
    font-size: 58px;
    font-weight: 500;
    font-style: italic;
  }

  .sec_titlebox{
    column-gap: 30px;
    .imagebox{
      max-width: 500px;
      display: flex;
      justify-content: flex-end;
    }
    .box_text{
      margin-top: -20px;
    }
  }

  .qa_box{
    width: 1280px;
    max-width: 100%;
    margin: 0 auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 50px;
    row-gap: 65px;
    justify-self: center;

    .item:nth-of-type(4){
      .title_box{
        position: relative;
        &::before{
          content: "";
          position: absolute;
          bottom: 15px;
          right: 10px;
          background: url(/images/sec02_interview_kazari01.webp) center / contain no-repeat;
          width: 170px;
          height: 97px;
        }
      }
    }
    .item:nth-of-type(7){
      .title_box{
        position: relative;
        &::before{
          content: "";
          position: absolute;
          bottom: -17px;
          right: 6px;
          width:  51px;
          height: 60px;
        }
      }
    }
    .title_box{
      display: flex;
      justify-content: flex-start;
      align-items: center;
      padding-bottom: 15px;
      border-bottom: 4px solid transparent; /* 点線の場所（高さ）だけ確保 */
      background: radial-gradient(circle, currentColor 1.8px, transparent 2px) left bottom / 8px 8px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
      margin-bottom: 15px;
      .num{
        padding: 0 .5em 0 .2em;
        letter-spacing: .1em;
        font-family: "Zen Maru Gothic";
        font-size: 38px;
        font-weight: bold;
        font-style: italic;
        white-space: nowrap;
        position: relative;
        &::before{
          content: "";
          position: absolute;
          z-index: -1;
          top:  59%;
          left: 50%;
          transform: translate(-50%,-50%);
          width: 87px;
          height: 79px;
        }
      }
      .num span{
        letter-spacing: .1em;
        font-family: "Zen Maru Gothic";
        font-size: 38px;
        font-weight: bold;
        font-style: italic;
      }
      .item_title{
        padding-left: .4em;
        letter-spacing: .06em;
        line-height: 1.42;
        font-family: "Zen Maru Gothic";
        font-size: 26px;
        font-weight: 400;
      }
    }
    .item_text .y_border {
      border-bottom: 3px solid #E8E5B3;
      padding-bottom: 1px;
    }
    .item_image{
      width: 100%;
      aspect-ratio: 602 / 298; /* 元画像の縦横比を保つ */

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

  .interview01, .interview02, .interview03{
    margin-top: 140px;
    .comment{
      width: fit-content;
      margin: 80px auto;
      font-family: "Zen Maru Gothic";
      font-size: 32px;
      font-weight: bolder;
      font-feature-settings: "palt";

      position: relative;
      &::before{
        content: "";
        position: absolute;
        top:   -42px; /* -66px;*/
        right: -47px; /*-b57px; */
        background: url(/images/sec02_interview_comment_kazari01.webp) center / contain no-repeat;
        width:  56px;
        height: 57px;
      }
      &::after{
        content: "";
        position: absolute;
        bottom: -42px; /* -66px;*/
        left:   -47px; /*-b57px; */
        background: url(/images/sec02_interview_comment_kazari01.webp) center / contain no-repeat;
        transform: rotate(180deg);
        width:  56px;
        height: 57px;
      }
    }
    .comment_hn{
      padding-right: 3em;
      font-size: 25px;
      text-align: right;
    }
  }
  .interview01{
    margin-top: 100px;
    .title_box{
      .num{
        &::before{
          background: url(/images/question_pink.webp) center/contain no-repeat;
        }
      }
      .num span{
        color: #FF6D9B;
      }
    }
    .box_title span{
      color: #FF6D9B;
    }

    .comment{
      &::before{
        background: url(/images/sec02_interview_comment_kazari01.webp) center / contain no-repeat;
      }
      &::after{
        background: url(/images/sec02_interview_comment_kazari01.webp) center / contain no-repeat;
      }
    }

    .title_box{
      background-image: radial-gradient(circle, #FF6D9B 1.8px, transparent 2px); /* 点線の色 */
    }

    .item:nth-of-type(7){
      .title_box{
        &::before{
          background: url(/images/sec02_interview_kazari_p.webp) center / contain no-repeat;
        }
      }
    }
  }
  .interview02{
    .title_box{
      .num{
        &::before{
          background: url(/images/question_orange.webp) center/contain no-repeat;
        }
      }
      .num span{
        color: #F3A94F;
      }
    }
    .box_title span{
      color: #F3A94F;
    }

    .comment{
      &::before{
        background: url(/images/sec02_interview_comment_kazari02.webp) center / contain no-repeat;
      }
      &::after{
        background: url(/images/sec02_interview_comment_kazari02.webp) center / contain no-repeat;
      }
    }

    .title_box{
      background-image: radial-gradient(circle, #F3A94F 1.8px, transparent 2px); /* 点線の色 */
    }
    .item:nth-of-type(7){
      .title_box{
        &::before{
          background: url(/images/sec02_interview_kazari_o.webp) center / contain no-repeat;
        }
      }
    }
  }
  .interview03{
    .title_box{
      .num{
        &::before{
          background: url(/images/question_aqua.webp) center/contain no-repeat;
        }
      }
      .num span{
        color: #7AC0D8;
      }
    }
    .box_title span{
      color: #7AC0D8;
    }

    .comment{
      &::before{
        background: url(/images/sec02_interview_comment_kazari03.webp) center / contain no-repeat;
        right: -127px;
      }
      &::after{
        background: url(/images/sec02_interview_comment_kazari03.webp) center / contain no-repeat;
        left: -127px;
      }
    }

    .title_box{
      background-image: radial-gradient(circle, #7AC0D8 1.8px, transparent 2px); /* 点線の色 */
    }
    .item:nth-of-type(7){
      .title_box{
        &::before{
          background: url(/images/sec02_interview_kazari_a.webp) center / contain no-repeat;
        }
      }
    }
  }

  @media screen and (max-width: 767px) {

    .flexbox{
      flex-direction: column;
      align-items: flex-start;
      column-gap: 50px;
      margin-bottom: 4vw;
    }
    .imagebox{
      width: 100%;
      max-width: 90.66vw;
    }
    .textbox{
      width: 100%;
    }
    .box_title{
      line-height: 1.07;
      font-size: 7.46vw;
      margin-bottom: 3vw;
    }
    .box_title span{
      line-height: 1.07;
      font-size: 7.46vw;
    }

    .sec_titlebox{
      column-gap: 30px;
      flex-direction: column-reverse;
      .imagebox{
        width: 92vw;
        max-width: 100vw;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .box_text{
        margin-top: 3vw;
        font-size: 4.2vw;
      }
    }

    .qa_box{
      width: 100%;
      grid-template-columns: repeat(1, minmax(0, 1fr));
      column-gap: 0;
      row-gap: 8vw;

      .item{
        box-sizing: border-box;
        width: 90vw;
        padding: 0;
      }
      .item:nth-of-type(4){
        .title_box{
          &::before{
            bottom: -4vw;
            right:  -2vw;
            width:  24vw;
            height: 13.69vw;
          }
        }
      }
      .item:nth-of-type(7){
        .title_box{
          &::before{
            bottom:  -4.5vw;
            right:     -2vw;
            width:   11.2vw;
            height: 13.06vw;
          }
        }
      }
      .item:nth-of-type(8){
        .item_image{
          margin-bottom: 20.6vw;
        }
      }
      .title_box{
        padding-bottom: 4vw;
        border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, currentColor 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 4vw;
        .num{
          font-size: 5.6vw;
          &::before{
            width: 13.3vw;
            height: 12.12vw;
          }
        }
        .num span{
          font-size: 5.6vw;
        }
        .item_title{
          padding-left: .8em;
          letter-spacing: .03em;
          line-height: 1.3;
          font-size: 4.8vw;
          font-weight: bolder;
        }
      }
      .item_text{
        font-size: 4.2vw;
      }
      .item_text .y_border {
        border-bottom: .8vw solid #E8E5B3;
        padding-bottom: .26vw;
      }
      .item_image{
        width: 100%;
        height: auto;
      }
    }

    .interview01, .interview02, .interview03{
      margin-top: 0vw;
      .comment{
        width: 100%;
        margin: 14vw auto 10vw; /*14vw auto 17vw;*/
        line-height: 1.3;
        font-size: 6.4vw;
        text-align: center;

        &::before{
          top: -8.46vw; /* -11.46vw */;
          right: 0; /* 1vw; */
          width:  9.6vw;
          height: 9.6vw;
        }
        &::after{
          bottom: -8.46vw; /* -11.46vw */;
          left: 0; /* 1vw; */
          width:  9.6vw;
          height: 9.6vw;
        }
      }
      .comment_hn{
        padding-right: initial;
        line-height: 2.2;
        font-size: 4.8vw;
        text-align: center;
      }
    }
    .interview01{
      margin-top: 0;
      .title_box{
        .num{
          &::before{
            background: url(/images/question_pink.webp) center/contain no-repeat;
          }
        }
        .num span{
          color: #FF6D9B;
        }
      }
      .box_title span{
        color: #FF6D9B;
      }

      .comment{
        &::before{
          background: url(/images/sec02_interview_comment_kazari01.webp) center / contain no-repeat;
        }
        &::after{
          background: url(/images/sec02_interview_comment_kazari01.webp) center / contain no-repeat;
        }
      }

      .title_box{
        background-image: radial-gradient(circle, #FF6D9B 0.48vw, transparent 0.53vw); /* 点線の色 */
      }

      .item:nth-of-type(7){
        .title_box{
          &::before{
            background: url(/images/sec02_interview_kazari_p.webp) center / contain no-repeat;
          }
        }
      }
    }
    .interview02{
      .title_box{
        .num{
          &::before{
            background: url(/images/question_orange.webp) center/contain no-repeat;
          }
        }
        .num span{
          color: #F3A94F;
        }
      }
      .box_title{
        font-feature-settings: "palt";
      }
      .box_title span{
        color: #F3A94F;
      }

      .comment{
        &::before{
          background: url(/images/sec02_interview_comment_kazari02.webp) center / contain no-repeat;
        }
        &::after{
          background: url(/images/sec02_interview_comment_kazari02.webp) center / contain no-repeat;
        }
      }

      .title_box{
        background-image: radial-gradient(circle, #F3A94F 0.48vw, transparent 0.53vw); /* 点線の色 */
      }
      .item:nth-of-type(7){
        .title_box{
          &::before{
            background: url(/images/sec02_interview_kazari_o.webp) center / contain no-repeat;
          }
        }
      }
    }
    .interview03{
      .title_box{
        .num{
          &::before{
            background: url(/images/question_aqua.webp) center/contain no-repeat;
          }
        }
        .num span{
          color: #7AC0D8;
        }
      }
      .box_title span{
        color: #7AC0D8;
      }

      .comment{
        &::before{
          background: url(/images/sec02_interview_comment_kazari03.webp) center / contain no-repeat;
          right: 0;
        }
        &::after{
          background: url(/images/sec02_interview_comment_kazari03.webp) center / contain no-repeat;
          left: 0;
        }
      }
      .comment_hn{
        padding: 3vw 0 0;
        line-height: 1.3;
      }
      .comment_hn2{
        padding: 1vw .8em 0 0; /*1vw 0 0;*/
        line-height: 1;
        font-size: 4.8vw;
        text-align: right;
      }

      .title_box{
        background-image: radial-gradient(circle, #7AC0D8 0.48vw, transparent 0.53vw); /* 点線の色 */
      }
      .item:nth-of-type(7){
        .title_box{
          &::before{
            background: url(/images/sec02_interview_kazari_a.webp) center / contain no-repeat;
          }
        }
      }
    }
  }
}

/* sec03 */
.sec03{
  .flexbox{
    align-items: flex-start;
    column-gap: 50px;
    padding-bottom: 60px;
  }
  .imagebox{
    width: 100%;
    max-width: 600px;
  }
  .textbox{
    width: 100%;
  }
  .box_title{
    line-height: 1.4;
    font-family: "Zen Maru Gothic";
    font-size: 36px;
    font-weight: bold;
    font-style: italic;
    margin-bottom: 28px;
  }
  .box_text{
    padding-top: 15px;
    margin-bottom: 20px;
  }

  /* doctor message */
  .inner_message{
    width: 1440px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 80px;
    box-sizing: border-box;

    .flexbox{
      padding-bottom: 0;
    }
  }
  .sec_title{
    padding-left: .8em;
    font-family: "Zen Maru Gothic";
    font-size: 50px;
    letter-spacing: .1em;
    margin-bottom: 20px;
    position: relative;
    &::before{
      content: "";
      position: absolute;
      top: 55%;
      left: 0;
      transform: translateY(-50%);
      background: url(/images/sec03_title_icon_pink.webp) center/contain no-repeat;
      width:  24px;
      height: 34px;
    }
  }

  .flex_title{
    font-family: "Zen Maru Gothic";
    letter-spacing: 0.1em;
    font-size: 78px;
    font-weight: 400;
    font-style: italic;
  }

  .inner_message2{
    /* 写真の右端 = コンテナ左の余白 + 写真幅594px */
    --photo-edge: calc(max((100% - 1440px) / 2, 0px) + 594px);
    background-image: linear-gradient(
      90deg,
      transparent calc(var(--photo-edge) - 150px),
      #faf4f4 var(--photo-edge)
    );

    .sec_titlebox{
      width: 1440px;
      max-width: 100%;
      margin: 0 auto;

      position: relative;
      .textbox{
        position: absolute;
        z-index: 1;
        margin-left: min(684px, calc(100% - 660px));
        width: fit-content;
        padding: 80px 0;

        .box_text{
          line-height: 1.75;
          font-family: "Zen Maru Gothic";
          font-size: clamp(34px, 2.78vw, 40px);
          font-weight: 500;
          white-space: nowrap;
        }
      }
      .imagebox{
        position: relative;
        z-index: -1;
        max-width: 594px;
      }

    }
    .name .line{
      display: flex;
      justify-content: flex-end;
      align-items: center;
    }
    .name{
      font-size: 26px;
      font-weight: 500;
    }
    .name .t_small{
      font-size: 18px;
      font-weight: 400;
    }
  }

  /* message */
  .inner_pink{
    --slant: 140px; /* 斜めの高低差（左が低く右が高い） */
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding-bottom: 120px;
    background-color: #FFEAEA;
    clip-path: polygon(
      0 -100px,
      100% -100px,
      100% calc(100% - var(--slant)),
      0 100%
    );

  }
  .inner{
    position: relative;
  }
  .cont01_title{
    position: absolute;
    top: -71px;
    left: 73px;
    color: #fff;
  }
  .cont01{
    padding-top: 85px;
    .imagebox{
      text-align: left;
    }
  }
  .cont02{
    .imagebox{
      text-align: right;
    }
  }

  /* step up plan */
  .inner_aqua{
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 80px 0 135px 0;
    background-image: linear-gradient(#fff 150px, #CFEAEE 650px);

  }
  .cont03_color_title{
    padding-left: .6em;
    font-size: 58px;
    font-weight: 300;
    color: #369ABB;
    position: relative;
    &::before{
      content: "";
      position: absolute;
      top: 55%;
      left: 0;
      transform: translateY(-50%);
      background: url(/images/sec03_title_icon_blue.webp) center/contain no-repeat;
      width:  24px;
      height: 34px;
    }
  }
  .cont03_subtitle{
    font-family: "Zen Maru Gothic";
    font-size: 28px;
    font-weight: 500;
    font-style: italic;
    text-align: center;
    margin-bottom: 25px;
  }
  .cont03_title{
    letter-spacing: .1em;
    line-height: 1.5;
    font-family: "Zen Maru Gothic";
    font-size: 40px;
    font-weight: 500;
    text-align: center;
    margin-bottom: 75px;
  }
  .cont03_title span{
    color: #FF6D9B;
    letter-spacing: .1em;
    line-height: 1.5;
    font-family: "Zen Maru Gothic";
    font-size: 50px;
    font-weight: 500;
  }
  .cont03_text{
    width: 975px;
    max-width: 100%;
    margin: 0 auto 115px;
  }
  .cont03{
    margin-bottom: 160px;
    .box_title{
      font-family: "Zen Maru Gothic";
      font-size: 28px;
      font-weight: 400;
      margin-bottom: 20px;
      font-style: normal;
    }
    .learning_box{
      border-radius: 20px;
      background-color: #fff;
      padding: 12px 20px;
      box-sizing: border-box;
    }
    .learning_title{
      padding-left: 2em;
      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 0;
        background: url(/images/maru_icon.webp) center/contain no-repeat;
        width:  26px;
        height: 26px;
      }
    }
    .learning_text{
      line-height: 1.7;
    }
    .textbox{
        position: relative;
        padding-left: 45px;   /* 飾りの分の余白 */
        min-height: 140px;    /* 星＋最低限の線の長さ */
    }
    /* 星：サイズ固定（縦横比は変わらない） */
    .textbox::before {
      content: "";
      position: absolute;
      left: 1px;
      top: 6px;
      width:  24px;
      height: 34px;
      background: url(/images/star.webp) no-repeat center / contain;
    }

    /* 線：テキストの高さに合わせて伸びる */
    .textbox::after {
      content: "";
      position: absolute;
      left: 11px;           /* (星の幅48 − 線の幅6) ÷ 2 */
      top:  50px;           /* 星の高さ＋隙間 */
      bottom: -62px;
      width: 3px;
      background: linear-gradient(to bottom, #f0c930 60%, transparent);
      clip-path: polygon(0 0, 100% 0, 50% 100%); /* 下に向かって細くなる */
    }

    .imagebox{
      max-width: 500px;
    }
  }

  .cont04_subtitle{
    position: relative;
    z-index: 4;
    font-family: "Zen Maru Gothic";
    font-size: 28px;
    font-weight: 500;
    font-style: italic;
    text-align: center;
    margin-bottom: 25px;
  }
  .cont04_title{
    position: relative;
    z-index: 3;
    font-family: "Zen Maru Gothic";
    font-size: 28px;
    font-weight: 500;
    text-align: center;
    margin-bottom: 25px;

    position: relative;
    &::before{
      content: "";
      position: absolute;
      z-index: -1;
      bottom: -75px;
      left: 0;
      background: url(/images/cont04_title_staff01.webp) center / contain no-repeat;
      width: 594px;
      height: 369px;
    }
    &::after{
      content: "";
      position: absolute;
      z-index: -1;
      bottom: -75px;
      right: -5px;
      background: url(/images/cont04_title_staff02.webp) center / contain no-repeat;
      width: 594px;
      height: 363px;
    }
  }
  .cont04_title .dot_text{
    letter-spacing: .1em;
    line-height: 1.5;
    font-family: "Zen Maru Gothic";
    font-size: 32px;
    font-weight: bold;

    background-image: radial-gradient(circle at center, #FF6D9B 20%, transparent 20%); /* 点の色とサイズ調整 */
    background-position: top right; /* 点の位置 */
    background-repeat: repeat-x; /* 横方向に繰り返し */
    background-size: 1.1em 10px; /* 点の間隔とサイズ調整 */
    padding-top: .2em; /* 縦方向の位置調整 */

  }
  .cont04_title .p_text{
    color: #FF6D9B;
    letter-spacing: .1em;
    line-height: 1.5;
    font-family: "Zen Maru Gothic";
    font-size: 32px;
    font-weight: 500;
  }
  .cont04_title .big_sp_text{
    font-family: "Zen Maru Gothic";
    font-size: 28px;
    font-weight: 500;
  }

  .support_list{
    position: relative;
    z-index: 3;
    width: 1210px;
    max-width: 100%;
    margin: 0 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 50px;
    row-gap: 65px;
    justify-self: center;

    .item{
      width:  376px;
      height: 376px;
      border-radius: 50%;
      background-color: #369ABB;

      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }
    .item_title{
      height: 2.4em;
      display: flex;
      justify-content: center;
      align-items: center;

      line-height: 1.23;
      letter-spacing: .1em;
      font-size: 26px;
      font-weight: bold;
      text-align: center;
      color: #fff;
      margin-bottom: 25px;
    }
    .list_item{
      padding-left: 1.6em;
      line-height: 1.77;
      letter-spacing: .05em;
      font-size: 18px;
      font-weight: bold;
      color: #fff;
      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 0;
        background: url(/images/list_mark.webp) center/contain no-repeat;
        width:  25px;
        height: 25px;
      }
    }
    .list_item:not(:last-of-type) {
      margin-bottom: 12px;
    }
  }

  @media screen and (max-width: 767px) {
    .flexbox{
      flex-direction: column;
      justify-content: center;
      align-items: center;
      column-gap: 0;
      padding-bottom: 8vw;
    }
    .imagebox{
      width: 82vw;
      max-width: initial;
    }
    .textbox{
      width: 100%;
    }
    .box_title{
      line-height: 1.4;
      font-family: "Zen Maru Gothic";
      font-size: 36px;
      font-weight: bold;
      font-style: italic;
      margin-bottom: 28px;
    }
    .box_text{
      padding-top: 0;
      margin-bottom: 3vw;
    }


    /* doctor message */
    .inner_message{
      width: 1440px;
      max-width: 100%;
      margin: 0 auto;
      padding: 0;

      .flexbox{
        padding-bottom: 0;
      }
    }
    .sec_title{
      margin-left: 3vw;
      font-size: 7.46vw;
      margin-bottom: 3vw;
      &::before{
        top: 55%;
        width:  3.73vw;
        height: 5.33vw;
      }
    }

    .flex_title{
      font-size: 13.8vw;
    }

  .inner_message2{
    background-image: initial;
    padding-bottom: 9vw;

    .sec_titlebox{
      width: 100vw;
      display: flex;
      flex-direction: column-reverse;
      box-sizing: border-box;

      .textbox{
        position: relative;
        z-index: 0;
        margin: -18vw 0 0;
        width: 100vw;
        padding: 0;

        &::before{
          content: "";
          position: absolute;
          top: -47.46vw;
          left: 0;
          background-image: linear-gradient(0deg, #faf4f4 48%, transparent);
          width: 100vw;
          height: 114.93vw
        }

        .box_text{
          width: fit-content;
          margin: 0 auto 6vw;
          line-height: 1.52;
          font-size: 6.66vw;
          text-align: center;
          font-feature-settings: "palt";
        }
      }
      .imagebox{
        position: relative;
        z-index: -1;
        width: 100vw;
        max-width: 100vw;
        margin-bottom: 0;
      }
    }
    .name .line{
      position: relative;
      z-index: 3;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .name{
      width: 100%;
      font-size: 5.6vw;
    }
    .name .t_small{
      font-size: 4.26vw;
    }
  }


    /* message */
    .inner_pink{
      --slant: 38vw; /* 斜めの高低差（左が低く右が高い） */
      width: 100%;
      max-width: 100%;
      margin: 0 auto;
      padding-bottom: 0;
      background-color: transparent;
      clip-path: none; /* 写真が切れないように、切り取りは背景だけにする */
      position: relative;
      isolation: isolate; /* ::before を中身の後ろ・ページ背景の前に置く */

      /* ピンクの背景だけを斜めに切る */
      &::before{
        content: "";
        position: absolute;
        z-index: -1;
        inset: 0;
        background-color: #FFEAEA;
        clip-path: polygon(
          0 0,
          100% 0,
          100% calc(100% - var(--slant)),
          0 100%
        );
      }
    }
    .inner{
      position: relative;
    }
    .cont01_title{
      z-index: 5  ;
      top: -11.6vw;
      left: 3vw;
    }
    .cont01{
      padding-top: 10.66vw;
      padding-bottom: 6.4vw;
      .imagebox{
        width: 90vw;
        margin-bottom: 0;
        text-align: initial;
      }
      .box_text{
        font-size: 4.2vw;
      }
    }
    .cont02{
      .imagebox{
        width: 90vw;
        margin-bottom: 0;
        text-align: initial;
      }
      .box_text{
        font-size: 4.2vw;
      }
    }

    /* step up plan */
    .inner_aqua{
      padding: 5vw 0 16.5vw 0;
      background-image: linear-gradient(#fff 20vw, #CFEAEE 95vw);
    }
    .cont03_color_title{
      font-size: 7.46vw;
      &::before{
        top: 55%;
        width:  3.73vw;
        height: 5.33vw;
      }
    }
    .cont03_subtitle{
      font-size: 4.8vw;
      margin-bottom: 4vw;
    }
    .cont03_title{
      line-height: 1.6;
      font-size: 5.6vw;
      margin-bottom: 6.4vw;
    }
    .cont03_title span{
      font-size: 7.46vw;
    }
    .cont03_text{
      width: 100%;
      margin: 0 auto 8vw;
    }
    .cont03{
      margin-bottom: 29.6vw;
      .box_title{
        font-size: 5.6vw;
        font-weight: 500;
        margin-bottom: 3vw;
      }
      .learning_box{
        border-radius: 5.3vw;
        padding: 3.2vw 5vw;
      }
      .learning_title{
        padding-left: 2.5em;
        font-size: 4.8vw;

        &::before{
          width:  6.9vw;
          height: 6.9vw;
        }
      }
      .learning_text{
        font-size: 4.8vw;
      }
      .textbox{
          position: relative;
          padding-left: 7vw;    /* 飾りの分の余白 */
          min-height: 140px;    /* 星＋最低限の線の長さ */
      }
      /* 星：サイズ固定（縦横比は変わらない） */
      .textbox::before {
        left: 0.26vw;
        top: 1.6vw;
        width:  3.73vw;
        height: 5.3vw;
      }

      /* 線：テキストの高さに合わせて伸びる */
      .textbox::after {
        left: 1.93vw;           /* (星の幅48 − 線の幅6) ÷ 2 */
        top: 13.33vw;           /* 星の高さ＋隙間 */
        bottom: -16.53vw;
        width: 3px;
        background: linear-gradient(to bottom, #f0c930 60%, transparent);
        clip-path: polygon(0 0, 100% 0, 50% 100%); /* 下に向かって細くなる */
      }

      .imagebox{
        max-width: initial;
      }
    }

    .cont04_subtitle{
      position: relative;
      z-index: 4;
      font-size: 4.8vw;
      margin-bottom: 4.2vw;
      &::before{
        content: "";
        position: absolute;
        z-index: -1;
        top: -30vw;
        left: 50%;
        transform: translateX(-50%);
        background: url(/images/cont04_title_staff00_sp.webp) center / contain no-repeat;
        width:  100vw;
        height: 39.75vw;
      }

    }
    .cont04_title{
      line-height: 1.3;
      font-size: 4.8vw;
      margin-bottom: 4vw;
      &::before{
        display: none;
      }
      &::after{
        display: none;
      }
    }
    .cont04_title .dot_text{
      font-size: 7.46vw;

      background-image: radial-gradient(circle at center, #FF6D9B 20%, transparent 20%); /* 点の色とサイズ調整 */
      background-position: top right; /* 点の位置 */
      background-repeat: repeat-x;    /* 横方向に繰り返し */
      background-size: 1.1em 2.13vw;  /* 点の間隔とサイズ調整 */
      padding-top: .2em;              /* 縦方向の位置調整 */

    }
    .cont04_title .p_text{
      font-size: 7.46vw;
    }
    .cont04_title .big_sp_text{
      font-size: 7.46vw;
    }

    .support_list{
      width: 100%;
      grid-template-columns: repeat(1, minmax(0, 1fr));
      column-gap: 0;
      row-gap: 5.3vw;
      justify-items: center;

      .item{
        width:  88vw;
        height: 88vw;
      }
      .item_title{
        line-height: 1.52;
        font-size: 5.6vw;
        margin-bottom: 4vw;
      }
      .list_item{
        padding-left: 2em;
        line-height: 2;
        font-size: 4.2vw;
        &::before{
          width:  4.8vw;
          height: 4.8vw;
        }
      }
      .list_item:not(:last-of-type) {
        margin-bottom: 3.2vw;
      }
    }
  }
}

/* sec04 */
.sec04{
  margin: 240px auto 150px;
  .cont01{
    width: 1280px;
    max-width: 100%;
    margin: 0 auto 80px;

    .flexbox{
      align-items: flex-start;
      column-gap: 50px;
      margin-bottom: 60px;
    }
    .imagebox{
      width: 100%;
      max-width: 600px;
    }
    .textbox{
      width: 100%;
    }
    .box_title{
      line-height: 1.4;
      font-family: "Zen Maru Gothic";
      font-size: 36px;
      margin-bottom: 28px;
    }
    .box_title span{
      color: #E7694C;
      line-height: 1.4;
      font-family: "Zen Maru Gothic";
      font-size: 54px;
      font-weight: 500;
      margin-bottom: 28px;

      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: -58px;
        left: 50%;
        transform: translateX(-50%);
        background: url(/images/sec04_title.webp) center / contain no-repeat;
        width: 216px;
        height: 76px;
      }
    }
  }

  .visit_box{
    width: 1070px;
    max-width: 100%;
    margin: 0 auto 100px;

    border-radius: 20px 20px 0 0;
    border: 1px solid #E7694C;
    padding: 20px 65px 50px;
    box-sizing: border-box;

    position: relative;
    &::before{
      content: "";
      position: absolute;
      top: -20px;
      left: 10px;
      background: url(/images/sec04_flow_kazari.webp) center / contain no-repeat;
      width: 288px;
      height: 117px;
    }

    .visit_title{
      line-height: 2.85;
      font-size: 28px;
      font-weight: 500;
      text-align: center;
      padding-bottom: 10px;
      border-bottom: 1px solid #E7694C;
      margin-bottom: 20px;
    }
    .item:nth-of-type(1){
      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: -86px;
        width: 31.2px;
        height: 36px;
        background: #e7694c;
        clip-path: polygon(0 0, 0 100%, 100% 50%);
      }
    }

    .visit_flow{
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 140px;
      row-gap: 0;
      justify-self: center;
    }
    .flow_title{
      width: 400px;
      height: 48px;
      border-radius: 60px;
      background-color: rgba(234,124,98,0.12);

      display: flex;
      justify-content: center;
      align-items: center;

      font-size: 21px;
      font-weight: bold;
      margin-bottom: 16px;
    }
    .flow_title .orange{
      color: #E7694C;
      font-family: "Zen Maru Gothic";
      font-size: 25px;
      font-weight: 500;
      margin-bottom: 16px;
    }


  }

  .recruit_box{
    padding: 170px 0 100px;
    background-color: #FFD3E1;

    .info_text {
        font-family: "Zen Maru Gothic";
        font-size: 22px;
        color: #ae4927;
        text-align: center;
        margin-bottom: 40px;
    }
    .dtitle {
      box-sizing: border-box;
      font-family: "Zen Maru Gothic";
      font-size: 32px;
      letter-spacing: .2em;
      text-align: center;
      margin-bottom: 90px;

      position: relative;
      &::before{
        content: "";
        position: absolute;
        bottom: -20px;
        left: 50%;
        transform: translateX(-50%);
        border-bottom: 2px solid #FF6D9B;
        width: 149px;
        height: 2px;
      }
    }

    .dlist {
      width: 1200px;
      max-width: 100%;
      margin: 0 auto;
      box-sizing: border-box;
    }
    .dlist:not(:last-of-type) {
      margin-bottom: 155px;
    }
    .row {
      display: flex;
    }
    .row:not(:last-of-type) {
      border-bottom: 0.5px solid #FF6D9B;
    }

    .term {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 30%;
      padding: 50px 30px;
      box-sizing: border-box;
      background: #fff;
      font-size: 21px;
      letter-spacing: .1em;
      text-align: center;
      color: #555;
    }

    .desc {
      width: 70%;
      padding: 50px 30px;
      background-color: #fff;
      font-size: 18px;
      letter-spacing: .1em;
      line-height: 1.7;
      color: #444;
      border-left: 1px solid #fff;
      box-sizing: border-box;
    }
    .desc ul {
      padding: 15px 0;
    }
    .desc li {
      padding-left: 1em;
      text-indent: -1.2em;
    }
    .desc li:not(:last-of-type){
      margin-bottom: 8px;
    }
    .desc_item {
      position: relative;
    }
  }

  .apply_box{
    margin: 0;
    padding: 120px 0 100px;
    background-color: rgba(82,177,203,0.3);

    .form_wrap{
      box-sizing: border-box;
      width: 1200px;
      max-width: 100%;
      margin: 0 auto;
    }

    .form_box{
      box-sizing: border-box;
      width: 100%;
      padding: 28px 78px 88px;
      background-color: #fff;
    }

    .atitle {
      box-sizing: border-box;
      font-family: "Zen Maru Gothic";
      font-size: 34px;
      font-weight: bolder;
      letter-spacing: .2em;
      margin-bottom: 40px;

      position: relative;
      &::before{
        content: "ENTRY";
        position: absolute;
        top: -84px;
        left: -5px;

        letter-spacing: .2em;
        font-family: "Zen Maru Gothic";
        font-size: 62px;
        font-weight: 300;
        color: #7AC0D8;
      }
    }

    .table {
      margin: 0 auto;
    }

    .table .row {
      display: block;
      margin: 0 auto;
      padding: 40px 70px 33px;
      box-sizing: border-box;
    }
    /* 奇数行の背景色 */
    .table .row:nth-child(odd) {
      background-color: #F1F7F7;
    }

    /* 偶数行の背景色 */
    .table .row:nth-child(even) {
      background-color: #fff;
    }


    .t_title {
      width: 410px;
      min-width: 37%;
      font-size: 24px;
      font-weight: 400;
      text-align: left;
      vertical-align: 45%;
    }
    .t_data {
      width: 574px;
      max-width: 63%;
    }

    .row:nth-of-type(1) .t_title ,
    .row:nth-of-type(2) .t_title {
        vertical-align: top;
    }
    .row:nth-of-type(9) .t_title  {
        vertical-align: middle;
    }

    .row:nth-of-type(1) .radiolist,
    .row:nth-of-type(2) .radiolist {
      width: 600px;
      display: flex;
    }

    /* ラジオボタン：サイズ・色カスタマイズ */
    .radio {
        appearance: none;
        -webkit-appearance: none;
        width: 20px;
        height: 20px;
        border: 1px solid #333;
        border-radius: 50%;
        cursor: pointer;
        flex-shrink: 0;
        vertical-align: text-top;
    }

    .radio:checked {
        border-color: #333;
        background-color: #7AC0D8;
        box-shadow: inset 0 0 0 3px #fff;
    }

    .radioitem {
        display: flex;
        align-items: center;
    }

    .t_title .color {
        color: #363636;
        padding: 0 0 0 5px;
    }

    .t_title label {
        font-size: 24px;
        letter-spacing: .1em;
        font-weight: 400;
    }

    .t_data input.i_text,
    .t_data textarea {
        width: 600px;
        padding: 10px 20px 10px 5px;
        box-sizing: border-box;
        font-size: 18px;
        border: 1px solid #999;
        border-radius: 5px;
        background-color: #fff;
    }

    .t_data.radiobox p {
        display: inline-block;
    }

    .t_data.radiobox p:nth-of-type(1) {
        margin: 0 50px 0 0;
    }

    .radiotitle {
        padding: 10px 0;
        font-size: 18px;
    }

    .t_data.radiobox label {
        font-size: 21px;
        margin: 0 60px 0 10px;
    }

    .contact_row{
      .radiolist{
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
      }
    }
    .t_data textarea {
        height: 272px !important;
        width: 600px !important;
    }

    .required {
      color: #EC2E61;
      font-size: 15px;
      letter-spacing: 0.1em;
      padding: 4px 8px;
      border-radius: 4px;
      vertical-align: 0;
      margin-left: 10px;
      line-height: 1;
      display: inline-flex;
      align-items: center;
    }

    .submit_btn {
        box-sizing: border-box;
        width: 367px;
        height: 83px;
        margin: 0 auto 160px;
        transition: 0.4s;
    }

    .submit_btn input {
        width: 100%;
        height: 100%;
        background: #5BA3BB;
        border-radius: 20px;
        font-size: 21px;
        font-weight: bold;
        color: #fff;
        letter-spacing: .2em;
        transition: 0.4s;
          @media (hover: hover) and (pointer: fine) {
          &:hover {
            background: #5BA3BB;
            color: #fff;
            cursor: pointer;
          }
        }
      }

      @media (hover: hover) and (pointer: fine) {
        .submit_btn:has(input:hover) {
          &::after {
            color: #fff;
          }
        }
    }

    .g-recaptcha {
        width: 300px;
        margin: 0 auto 90px;
    }

    .privacy_box {
      box-sizing: border-box;
      width: 973px;
      max-width: 96%;
      margin: 65px auto 80px;
      background-color: #fff;
      border: 1px solid #7AC0D8;

      .text01 {
        width: 770px;
        max-width: 100%;
        margin: 70px auto 40px;
      }
      .privacy_list {
        width: 770px;
        max-width: 100%;
        margin: 0 auto 40px;

        .privacy_item {
          line-height: 2;
          letter-spacing: .1em;
          margin-bottom: 40px;
        }
      }
    }
    .privacy_box summary {
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        padding: 47px 0;
        border-bottom: 1px solid #7AC0D8;

        letter-spacing: .1em;
        font-size: 22px;
        font-weight: 400;
        color: #555;
        cursor: pointer;
    }
    .privacy_box summary::-webkit-details-marker {
        display: none;
    }
    .privacy_box summary::before {
        content: "";
        position: absolute;
        top:  50%;
        left: 70%;
        transform: translate(-50%, -50%);
        background: url(/images/icon_btn.webp) center / contain no-repeat;
        width:  42px;
        height: 42px;
    }
    .privacy_box summary::after {
        width: 1px;
        height: 17px;
        /*border-radius: 5px;*/
        background-color: #444;
        content: '';
    }
    .privacy_box summary::after {
        position: absolute;
        top: 44%;
        left: 70%;
        transform: translateX(-50%);
    }
    .privacy_box.is-opened summary::after {
        animation: privacy_plus_to_minus .5s ease-in-out forwards;
    }
    .privacy_box.is-closed summary::after {
        animation: privacy_minus_to_plus .5s ease-in-out forwards;
    }
    .privacy_box .accordion-content {
        overflow: hidden;
    }

    .privacy_box p {
        transform: translateY(-10px);
        opacity: 0;
        margin: 0;
        transition: transform .5s, opacity .5s;
    }

    .privacy_box[open] p {
        transform: none;
        opacity: 1;
    }

    .privacy_agree_text {
        width: fit-content; /*712px;*/
        max-width: 100%;
        margin: 0 auto 45px;
        letter-spacing: .03em;
        line-height: 2.66;
        font-size: 18px;
        font-weight: bold;
    }

    .g-recaptcha {
        width: 300px;
        margin: 0 auto 20px;
    }

  }

  .contact_box{
      box-sizing: border-box;
      width: 730px;
      max-width: 100%;
      margin: 0 auto;
      height: 256px;
      border-radius: 10px;
      background-color: #fff;
      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: -55px;
        left: 55px;
        background: url(/images/contact_kazari.webp) center / contain no-repeat;
        width: 101px;
        height: 107px;
      }
      &::after{
        content: "CONTACT";
        position: absolute;
        top: -38px;
        left: 160px;
        letter-spacing: .2em;
        font-family: "Zen Maru Gothic";
        font-size: 50px;
        font-weight: 400;
        white-space: nowrap;
        color: #FF6D9B;
      }
      & a{
        display: block;
        padding: 64px 52px 64px;
      }

      .flexbox{
        box-sizing: border-box;
        width: 100%;
        justify-content: space-around;
        align-items: center;


        padding-bottom: 0;
        border-bottom: 4px solid transparent; /* 点線の場所（高さ）だけ確保 */
        background: radial-gradient(circle, #FF6D9B 1.8px, transparent 2px) left bottom / 8px 8px space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
        margin-bottom: 5px;
      }

      .text{
        width: fit-content;
        line-height: 1.3;
        font-size: 21px;
        font-weight: bold;
        text-align: center;
        color: #555;
      }

      .tel_num{
        padding-left: .8em;
        font-family: "Zen Maru Gothic";
        font-size: 50px;
        font-weight: 500;
        color: #555;

        position: relative;
        &::before{
          content: "";
          position: absolute;
          top: 55%;
          transform: translateY(-50%);
          left: 0;
          background: url(/images/tel_icon.webp) center / contain no-repeat;
          width: 24px;
          height: 22px;
        }
      }
      .time_text{
        letter-spacing: .1em;
        font-size: 18px;
        font-weight: 500;
        text-align: center;
      }
  }

  @media screen and (max-width: 767px) {
    margin: 0;

    .cont01{
      width: 100%;
      margin: 0 auto 13.8vw;

      .flexbox{
        flex-direction: column;
        align-items: flex-start;
        column-gap: 0;
        margin-bottom: 16vw;
      }
      .imagebox{
        width: 100%;
        max-width: initial;
        margin-bottom: 5vw;
      }
      .textbox{
        font-size: 4.2vw;
      }
      .box_title{
        width: fit-content;
        margin: 0 auto;
        line-height: 1.4;
        font-size: 6.6vw;
        margin-bottom: 3vw;
      }
      .box_title span{
        font-size: 8.46vw;
        margin-bottom: 0;
        &::before{
          top: -8.8vw;
          width:  34.56vw; /* 216px; */
          height: 12.16vw; /*. 76px; */
        }
      }
    }

    .visit_box{
      width: 100%;
      margin: 0 auto 13.8vw;

      border-radius: 5.3vw 5.3vw 0 0;
      border: 0.26vw solid #E7694C;
      padding: 5vw 5vw 8vw;
      box-sizing: border-box;

      position: relative;
      &::before{
        content: "";
        position: absolute;
        top: -9.6vw;
        left: 2.6vw;
        width:  46.08vw; /* 288px; */
        height: 18.72vw; /* 117px; */
      }

      .visit_title{
        font-size: 5.6vw;
        padding-bottom: 0;
        border-bottom: .26vw solid #E7694C;
        margin-bottom: 4vw;
      }
      /*.item:nth-of-type(1){
        position: relative;
        &::before{
          content: "";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: -86px;
          width: 31.2px;
          height: 36px;
          background: #e7694c;
          clip-path: polygon(0 0, 0 100%, 100% 50%);
        }
      } */
      .item:nth-of-type(1){
        position: relative;
        &::before{
          content: "";
          position: absolute;
          top: auto;
          bottom: -7.66vw;
          left: 50%;
          right: auto;
          transform: translateX(-50%);
          width: 6.13vw;
          height: 5.33vw;
          background: #e7694c;
          clip-path: polygon(0 0, 100% 0, 50% 100%);
        }
      }

      .visit_flow{
        grid-template-columns: repeat(1, minmax(0, 1fr));
        column-gap: 0;
        row-gap: 10vw;
        justify-self: center;
      }
      .item{
        width: 100%;
      }
      .flow_title{
        width: 100%;
        height: 12.8vw;
        border-radius: 16vw;

        font-size: 4.8vw;
        margin-bottom: 3vw;
      }
      .flow_title .orange{
        font-size: 5.2vw;
        margin-bottom: 0;
      }
    }


    .recruit_box{
      padding: 13vw 0 3vw;
      .info_text {
        font-size: 4vw;
        margin: 4.2vw 0 4.2vw;
      }

      .dtitle {
        font-size: 5.3vw;
        letter-spacing: .2em;
        padding-top: 6.4vw;
        padding-bottom: 2.4vw;
        margin: 0 0 4.2vw;
        &::before{
          bottom: 0;
          border-bottom: 0.53vw solid #FF6D9B;
          width: 38vw;
          height: 0.53vw;
        }
      }

      .dlist {
        width: 95%;
        max-width: 95%;
        margin: 4.2vw 2.5vw 0;
        padding: 0vw 3.5vw 10vw;
        border-radius: 0 0 8vw 8vw;
        box-sizing: border-box;
      }
      .dlist:not(:last-of-type) {
        margin-bottom: 13.8vw;
      }
      .row {
        display: block;
      }
      .row:not(:last-of-type) {
        border-bottom: 0;
      }
      .term {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        padding: 4vw 0;
        box-sizing: border-box;
        background: rgba(204, 204, 204, .5);
        font-size: 4vw;
        font-weight: 600;
        letter-spacing: .2em;
        text-align: center;
      }

      .desc {
        width: 100%;
        padding: 3vw 3.5vw;
        box-sizing: border-box;
        font-size: 3.75vw;
        line-height: 1.8;
      }
      .text_red {
        color: #806363;
      }
    }


    .apply_box{
      padding: 20.7vw 0 13.8vw; /*20.7vw 0 13.8vw;*/

      .form_wrap{
        width: 100%;
      }

      .form{
        padding-top: 10vw;
      }

      .form_box{
        box-sizing: border-box;
        width: 100%;
        padding: 7.46vw 0 8vw;
      }

      .atitle {
        padding-left: 1em;
        font-size: 6.6vw;
        margin-bottom: 8vw;


        position: relative;
        &::before{
          content: "ENTRY";
          position: absolute;
          top: -19.46vw;
          left: 3vw;

          letter-spacing: .2em;
          font-family: "Zen Maru Gothic";
          font-size: 62px;
          font-weight: 300;
          color: #7AC0D8;

          margin-left: 3vw;
          font-size: 13.8vw;
          margin-bottom: 3vw;

        }
      }

      .table {
        width: 100%;
        margin: 0 auto;
      }

      .table .row {
        display: flex;
        flex-direction: column;
        padding: 4vw 3vw 4vw;
        box-sizing: border-box;
      }
      /* 奇数行の背景色 */
      .table .row:nth-child(odd) {
        background-color: #F1F7F7;
      }

      /* 偶数行の背景色 */
      .table .row:nth-child(even) {
        background-color: #fff;
      }

      .t_title {
        width: 100%;
        min-width: initial;
        padding: 1vw 0 4vw;
        letter-spacing: .1em;
        font-size: 4.8vw;
        font-weight: bolder;
        text-align: center;
      }
      .t_data {
        width: 100%;
        max-width: initial;
        margin: 0 auto;
      }

      .row:nth-of-type(1) .t_title ,
      .row:nth-of-type(2) .t_title {
          vertical-align: top;
      }
      .row:nth-of-type(1) .radiolist,
      .row:nth-of-type(2) .radiolist {
        width: 100%;
        display: flex;
        flex-direction: column;
      }

      /* ラジオボタン：サイズ・色カスタマイズ */
      .radio {
          appearance: none;
          -webkit-appearance: none;
          width:  5.33vw;
          height: 5.33vw;
          border: .26vw solid #333;
      }

      .radio:checked {
          box-shadow: inset 0 0 0 .8vw #fff;
      }

      .radioitem {
          display: flex;
          align-items: center;
          margin-bottom: 2.4vw;
      }

      .t_title .color {
          color: #363636;
          padding: 0 0 0 1.33vw;
      }

      .t_title label {
          font-size: 4.8vw;
          letter-spacing: .1em;
          font-weight: bolder;
      }

      .t_data input.i_text,
      .t_data textarea {
          width: 100%;
          padding: 3vw 2vw;
          font-size: 4.2vw;
          border: .26vw solid #999;
          border-radius: 1.33vw;
      }

      .t_data.radiobox p {
          display: inline-block;
      }

      .t_data.radiobox p:nth-of-type(1) {
          margin: 0 50px 0 0;
      }

      .t_data.radiobox label {
          font-size: 4.2vw;
          margin: 0 16vw 0 2.66vw;
      }

      .contact_row{
        .radiolist{
          display: flex;
          flex-wrap: nowrap;
          align-items: center;
        }
      }
      .t_data textarea {
          width: 100% !important;
          height: 34.24vw !important; /* 272px; */
      }

      .required {
        color: #EC2E61;
        font-size: 3.75vw;
        padding: 1.06vw 2.13vw;
        border-radius: 1.06vw;
        vertical-align: 0;
        margin-left: 2.66vw;
        line-height: 1;
        display: inline-flex;
        align-items: center;
      }

      .submit_btn {
          width:     90vw; /* 367px; */
          height: 21.13vw; /*  83px; */
          margin: 0 auto 27.6vw;
      }
      .submit_btn input {
          width: 100%;
          height: 100%;
          background: #5BA3BB;
          border-radius: 20px;
          font-size: 5.6vw;
          font-weight: bold;
          color: #fff;
          letter-spacing: .2em;
          transition: 0.4s;
            @media (hover: hover) and (pointer: fine) {
            &:hover {
              background: #5BA3BB;
              color: #fff;
              cursor: pointer;
            }
          }
        }

        @media (hover: hover) and (pointer: fine) {
          .submit_btn:has(input:hover) {
            &::after {
              color: #fff;
            }
          }
      }

      .privacy_box {
        box-sizing: border-box;
        width: 90%;
        max-width: 96%;
        margin: 10vw auto 4.2vw;
        border: .26vw solid #7AC0D8;

        .text01 {
          width: 90%;
          max-width: 96%;
          margin: 4vw auto;
        }
        .privacy_list {
          width: 90%;
          max-width: 96%;
          margin: 0 auto 4vw;

          .privacy_item {
            font-size: 4vw;
            margin-bottom: 6vw;
          }
          .privacy_item2 {
            padding-left: 1em;
            text-indent: -1em;
            margin-bottom: 6vw;
          }
        }
      }
      .privacy_box summary {
          padding: 6vw 0;
          border-bottom: .26vw solid #7AC0D8;

          letter-spacing: .06em;
          font-size: 4.8vw;
          cursor: pointer;
      }
      .privacy_box summary::-webkit-details-marker {
          display: none;
      }
      .privacy_box summary::before {
          top:  53%;
          left: 92%;
          width:  7vw; /* 42px; */
          height: 7vw; /* 42px; */
      }
      .privacy_box summary::after {
          width: .26vw;
          height: 3.16vw;
          /*border-radius: 5px;*/
          background-color: #444;
          content: '';
      }
      .privacy_box summary::after {
          position: absolute;
          top: 45%;
          left: 92.3%;
          transform: translateX(-50%);
      }
      .privacy_box.is-opened summary::after {
          animation: privacy_plus_to_minus .5s ease-in-out forwards;
      }
      .privacy_box.is-closed summary::after {
          animation: privacy_minus_to_plus .5s ease-in-out forwards;
      }
      .privacy_box .accordion-content {
          overflow: hidden;
      }
      .privacy_box p {
          transform: translateY(-10px);
          opacity: 0;
          margin: 0;
          transition: transform .5s, opacity .5s;
      }
      .privacy_box[open] p {
          transform: none;
          opacity: 1;
      }

      .privacy_agree_text {
          width: 80%;
          margin: 0 auto 6vw;
          line-height: 2;
          font-size: 4vw;
          font-weight: bolder;
      }

      .g-recaptcha {
          margin: 0 auto 10vw;
      }
    }

    .contact_box{
        width: 88vw;
        height: auto; /* 256px; */
        border-radius: 2.6vw;
        &::before{
          top: -10vw;
          left: 5vw;
          width:  16.16vw; /* 101px; */
          height: 17.12vw; /* 107px; */
        }
        &::after{
          top: -6vw;
          left: 23vw;
          font-size: 7.46vw;
        }
        & a{
          display: block;
          padding: 8vw 5vw 5vw;  /*64px 52px 64px; */
        }

        .flexbox{
          width: 100%;
          flex-direction: column;
          justify-content: space-around;
          align-items: center;

          padding-bottom: 0;
          border-bottom: 1.06vw solid transparent; /* 点線の場所（高さ）だけ確保 */
          background: radial-gradient(circle, #FF6D9B 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box; /* 丸い点線（上下に余白を持たせてSafariで欠けないように） */
          margin-bottom: 1.33vw;
        }

        .text{
          font-size: 4.26vw;
        }

        .tel_num{
          margin-top: -2vw;
          padding-left: .8em;
          font-size: 7.46vw;
          &::before{
            width: 4.2vw;
            height: 4vw;
          }
        }
        .time_text{
          line-height: 1.7;
          letter-spacing: .13em;
          font-size: 4vw;
        }
    }
  }

  /* 送信確認ボタン：ホバー（768px以上・押せるときのみ） */
  .apply_box .submit_btn input#check1:disabled {
    cursor: not-allowed;
  }
  @media screen and (min-width: 768px) {
    .apply_box .submit_btn input#check1:not(:disabled) {
      cursor: pointer;
    }
    .apply_box .submit_btn input#check1:not(:disabled):hover {
      opacity: .7;
      filter: brightness(1.1);
    }
  }
}

/* プライバシーポリシー：＋→－ アニメーション */
@keyframes privacy_plus_to_minus {
  0% {
    rotate: 0deg;
    opacity: 1;
  }
  99% {
    rotate: 90deg;
    opacity: 1;
  }
  100% {
    rotate: 90deg;
    opacity: 0;
  }
}
/* プライバシーポリシー：－→＋ アニメーション */
@keyframes privacy_minus_to_plus {
  0% {
    rotate: 90deg;
    opacity: 0;
  }
  1% {
    rotate: 90deg;
    opacity: 1;
  }
  100% {
    rotate: 0deg;
    opacity: 1;
  }
}

/* thanksページ */
.thanks_sec {
    padding: 100px 0 200px;

    .sec_title {
        margin-bottom: 100px;
        font-size: 35px;
        text-align: center;
    }
    .sec_text {
        font-size: 20px;
        line-height: 3;
        text-align: center;
    }
    .to_top{
      text-align: center;
      margin: 50px auto;
      font-size: 20px;
    }

    @media screen and (max-width: 767px) {
        padding: 5.5vw 5.5vw 33.3vw;
        box-sizing: border-box;

        .sec_title {
            margin-bottom: 13.8vw;
            font-size: 8.3vw;
            text-align: center;
        }
        .sec_text {
            font-size: 4.4vw;
            line-height: 3;
            text-align: center;
        }
        .to_top{
            text-align: center;
            margin: 10vw auto;
            font-size: 4vw;
          }
    }
}


/* sec05 */
.sec05{
  .back_image{
    display: block;
    width: 100%;
    height: auto;
    margin-top: -60px;
  }
  .title{
    width: fit-content;
    margin: 0 auto;
    font-family: "Zen Maru Gothic";
    font-size: 40px;
    font-weight: 500;
    text-align: center;
    font-feature-settings: "palt";

    position: relative;
    &::before{
      content: "";
      position: absolute;
      top: 34px;
      left: 6px;
      background: url(/images/sec05_kazari01.webp) center/contain no-repeat;
      width: 144px;
      height: 87px;
    }
    &::after{
      content: "";
      position: absolute;
      top: 50px;
      right: 33px;
      background: url(/images/sec05_kazari02.webp) center/contain no-repeat;
      width: 80px;
      height: 61px;
    }
  }
  .title .test{
    margin: 0 -20px;
  }
  .title .size52{
    padding-left: 1.5em;
    font-size: 52px;
    font-weight: 400;
  }
  .title .size30{
    font-size: 30px;
    font-weight: 500;
    margin: 0 -12px;
  }
  .title .size50{
    font-size: 50px;
    font-weight: 400;
  }
  .title .size50_b{
    font-size: 50px;
    font-weight: 500;
  }
  .title .size60{
    width: 81px;
    letter-spacing: .1em;
    font-size: 60px;
    font-weight: 400;
    text-align: center;

    position: relative;
    z-index: 0;
    &::before {
      content: "";
      position: absolute;
      z-index: -1;
      top:  53%;
      left: 46%;
      transform: translate(-50%,-50%);
      /* inset: 0; */
      border-radius: 50%;
      background: #ede9a8;
      width:  81px;
      height: 81px;
    }
  }
  .title .size60 + .size60{
    margin-left: 0;
  }

  @media screen and (max-width: 767px) {

    .back_image{
      display: block;
      width: 100%;
      height: auto;
      margin-top: -6.133vw;
    }
    .title{
      font-size: 7.04vw;

      &::before{
      display: none;

        content: "";
        position: absolute;
        top: 34px;
        left: 6px;
        background: url(/images/sec05_kazari01.webp) center/contain no-repeat;
        width: 144px;
        height: 87px;
      }
      &::after{
      display: none;

        content: "";
        position: absolute;
        top: 50px;
        right: 33px;
        background: url(/images/sec05_kazari02.webp) center/contain no-repeat;
        width: 80px;
        height: 61px;
      }
    }
    .title .test{
      margin: 0 -2vw;
    }
    .title .size52{
      padding-left: 0;
      font-size: 8.53vw;
      font-weight: 400;
    }
    .title .size30{
      font-size: 5.2vw;
      font-weight: 500;
      margin: 0 -1vw;
    }
    .title .size50{
      font-size: 8vw;
      font-weight: 400;
    }
    .title .size50_b{
      font-size: 8vw;
      font-weight: 500;
    }
    .title .size60{
      width: 18.93vw;
      letter-spacing: 0;
      font-size: 10.66vw;
      font-weight: 400;
      text-align: center;

      position: relative;
      z-index: 0;
      &::before {
        content: "";
        position: absolute;
        z-index: -1;
        top:  53%;
        left: 50%;
        transform: translate(-50%,-50%);
        /* inset: 0; */
        border-radius: 50%;
        background: #ede9a8;
        width:  18.93vw;
        height: 18.93vw;
      }
    }
    .title .size60 + .size60{
      margin-left: 4vw;
    }

  }
}

/* フッター・スマホ固定ボタン
----------------------------------------------------------- */
/* footer */
.footer{
  .clinic_flex{
    align-items: flex-start;
    column-gap: 50px;
    margin-bottom: 115px;
  }
  .clinic_info{
    width: 550px;
    flex-shrink: 0;

    .clinic{
      letter-spacing: .1em;
      line-height: 1.09;
      font-size: 44px;
      margin-bottom: 25px;
    }
    .clinic .houjin{
      padding-top: 6px;
      letter-spacing: .1em;
      line-height: 1.09;
      font-size: 24px;
    }
    .clinic span{
      display: flex;
      align-items: center;
    }
    .zip-code{
      letter-spacing: .1em;
      line-height: 1.55;
      font-size: 18px;
      margin-bottom: 25px;
    }
    .tel_box{
      margin-bottom: 50px;
      .box{
        display: block;
        box-sizing: border-box;
        width: 384px;
        height: 94px;
        margin: 0 auto;
        border-radius: 50px;
        border: 2px solid #FF6D9B;
        padding: 6px 25px;
      }
      .tel_text{
        font-size: 18px;
        text-align: center;
      }
      .tel_num{
        width: fit-content;
        margin: -20px auto 0;
        padding-left: .8em;
        font-family: "Zen Maru Gothic";
        font-size: 36px;
        font-weight: 500;
        color: #555;
        position: relative;
        &::before{
          content: "";
          position: absolute;
          top: 55%;
          transform: translateY(-50%);
          left: 0;
          background: url(/images/tel_icon.webp)  center / contain no-repeat;
          width:  20px;
          height: 19px;
        }
      }
    }
    .time_table{
      .time{
        width: 100%;
      }
      .title{
        background-color: #FFD8D8;
        & th{
          padding: 8px 0;
        }
        .time_text, .mark_text{
          letter-spacing: .1em;
          font-size: 19px;
          font-weight: 500;
        }
      }
      .data{
        background-color: #FEF9F5;
        & th{
          padding: 8px 0;
        }
        .time{
          padding: 8px 0;
          letter-spacing: .05em;
          font-size: 17px;
        }
        .mark{
          padding: 8px 18px;
          font-size: 18px;
          color: #FF6D9B;
        }
        .slash{
          padding: 8px 22px;
          font-size: 20px;
          font-weight: 500;
          color: #444;
        }
        .star{
          padding: 8px 19px;
          font-size: 21px;
          color: #358475;
        }
      }
      .data:last-of-type{
        border-bottom: 1px solid #444444;
      }


      .other{
        font-size: 18px;
      }
      .other .star{
        color: #358475;
        font-size: 22px;
      }
    }
  }
  .map {
    box-sizing: border-box;
    width:  620px;
    height: 494px;
    flex-shrink: 0;
  }
  .map iframe {
    width:  100%;
    height: 100%;
  }

  .official{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 100px;
    & a{
      display: block;
    }
  }
  .copy{
    padding: 20px 0;
    letter-spacing: .2em;
    text-align: center;
  }

  @media screen and (max-width: 767px) {
    padding-bottom: 16vw;

    .clinic_flex{
      flex-direction: column;
      align-items: center;
      justify-content: center;
      column-gap: 0;
      margin-bottom: 13.33vw;
    }
    .clinic_info{
      width: 100vw;
      .clinic{
        line-height: 1.09;
        font-size: 8vw;
        text-align: center;
        margin-bottom: 6.9vw;
      }
      .clinic .houjin{
        padding-top: 1.6vw;
        font-size: 4.8vw;
        text-align: center;
        margin-bottom: 2.6vw;
      }
      .clinic span{
        justify-content: center;
      }
      .zip-code{
        padding: 0 3.33vw;
        line-height: 1.5;
        font-size: 4vw;
        margin-bottom: 3.4vw;
      }
      .tel_box{
        margin-bottom: 50px;
        .box{
          width: 74.66vw;
          height: 19.7vw;
          border-radius: 13.33vw;
          border: .53vw solid #FF6D9B;
          padding: 1.2vw 8vw;
        }
        .tel_text{
          font-size: 4.2vw;
        }
        .tel_num{
          margin: -4vw auto 0;
          font-size: 7.4vw;
          &::before{
            width:  4.2vw;
            height: 4vw;
          }
        }
      }
      .time_table{
        padding: 0 3.33vw 6.4vw;
        .time{
          width: 93.33vw;
        }
        .title{
          & th{
            padding: 4vw 0;
          }
          .time_text, .mark_text{
            font-size: 4vw;
          }
          .time_text{
            width: 26.33vw;
          }
        }
        .data{
          border-bottom: 0.26vw solid #444;
          & th{
            padding: 4vw 2vw;
          }
          .time{
            width: 26.33vw;
            padding: 4vw 1.8vw;
            font-size: 4vw;
          }
          .mark{
            padding: 4vw 2vw;
            font-size: 4vw;
          }
          .slash{
            padding: 4vw 2vw;
            font-size: 4.2vw;
          }
          .star{
            padding: 4vw 2.2vw;
            font-size: 4.2vw;
          }
        }


        .other{
          padding: 2vw 3.33vw 0;
          line-height: 1.8;
          font-size: 4.2vw;
        }
        .other .star{
          font-size: 4.2vw;
        }
      }
    }
    .map {
      box-sizing: border-box;
      width:  100vw;
      height: 84.8vw;
    }

    .official{
      margin-bottom: 8vw;
      & a{
        display: block;
        width: 93.3vw;
      }
    }
    .copy{
      line-height: 3;
      font-size: 4vw;
      padding: 0;
    }
  }
}

/* sp_fixed */
.sp_fixed {
  @media screen and (max-width: 767px) {

    position: fixed;
    z-index: 100;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 16vw;
    display: flex;
    box-sizing: border-box;
    background-color: #fff;

    .fix_tel {
      width: 50%;
      margin: 0;

      & a {
        display: block;
        width:  100%;
        height: 100%;
        border: .56vw solid #FF6D9B;
        box-sizing: border-box;
      }
      .text01 {
        font-size: 3.75vw;
        letter-spacing: .01em;
        text-align: center;
      }
      .tel_num {
        width: fit-content;
        margin-top: -2.96vw;
        padding-left: 1.3em;

        letter-spacing: .1em;
        font-family: "Zen Maru Gothic";
        font-size: 5.6vw;
        font-weight: bold;
        text-align: center;

        position: relative;
        &::before {
          content: "";
          position: absolute;
          top: 55%;
          transform: translateY(-50%);
          background: url(/images/fix_phone.webp) center / contain no-repeat;
          left: 0.4em;
          width:  4.26vw;
          height: 4.26vw;
        }
      }
    }
    .fix_reserve {
      width: 50%;
      margin: 0;

      & a {
        display: block;
        width:  100%;
        height: 100%;
        background-color: #EFEE85;
      }
      .text01 {
        font-size: 3.75vw;
        font-weight: bold;
        letter-spacing: .01em;
        text-align: center;
        color: #555;
      }
      .text02 {
        padding-right: .5em;
        margin-top: -2.96vw;
        font-size: 4.8vw;
        font-weight: bold;
        letter-spacing: .01em;
        text-align: center;
        color: #444;
        position: relative;
        &::before{
          content: "▼";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: 2vw;
          color: #FF6D9B;
        }
        /* &::after{
          content: "";
          position: absolute;
          bottom: -.2vw;
          left: 50%;
          transform: translateX(-50%);
          border-bottom: 1.06vw solid transparent;
          background: radial-gradient(circle, #FF6D9B 0.48vw, transparent 0.53vw) left bottom / 2.12vw calc(1.06vw + 4px) space no-repeat border-box;
          width: 38vw;
          height: 1.06vw;
        } */
        &::after{
          content: "";
          position: absolute;
          bottom: -.4vw;
          left: 48%;
          transform: translateX(-50%);
          background: url(/images/fix_line.webp) center / contain no-repeat;
          width: 38vw;
          height: 2vw;
        }

      }
    }
  }
}
/* sp_fixed END */