/* // =======================================
// COMMONっぽいcss
// ======================================= */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  color: #4d4d4d;
  box-sizing: border-box;
  font-weight: 400;
  font-style: normal;
}

html,body{
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  width: 100%;
  max-width: 100%;
  background-color:#fff;
  overflow-x: clip;
  font-size:18px;	
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #4d4d4d;
  line-height: 1.8;
}

body.fixed {
  position: fixed;
  inset: 0;
  width: 100%;
  overflow: hidden;
}

@media screen and (max-width: 750px) {
html,body{
    font-size: 16px;
}
}

main{
  position: relative;
  z-index: 0;
}

ul, ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

h2.c-ttl{
    font-family: "Shippori Mincho", serif;
    font-weight: bold;
    font-style: normal;
    font-size: clamp(44px, calc(44px + (100 - 44) * ((100vw - 375px) / (1920 - 375))), 100px);
    color: #d5a1d8;
    text-shadow: -12px 0 4px rgba(93, 68, 94, 0.1);
    letter-spacing: 0.05em;
    text-align: center;
}

.sub-head{
  font-size: clamp(22px, calc(22px + (36 - 22) * ((100vw - 375px) / (1920 - 375))), 36px);
  text-align:center;
  color:#8cbbe7;
  letter-spacing:0.05em;
  margin-top:10px;
  white-space: nowrap;
}


.c-inner{
  position: relative;
  width: 100%;
  max-width: 1340px;
  margin: auto;
  padding: 0 20px;
}

@media screen and (max-width: 750px) {
.c-inner{
  padding: 0 10px;
}
}

.flex-box{
 display: flex;
}

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

.head-text-area p{
    font-family: "Zen Kaku Gothic New", sans-serif;
    text-align: center;
    margin-top: 20px;
    line-height: 2.67;
    letter-spacing: 0.05em;
}

.hamburger-box{
    display: none;
}

.sp-nav{
    display: none;
}

.sp{
  display: none;
}

/* // =======================================
// フォント系
// ======================================= */

.cormorant {
  font-family: "Cormorant", serif;
  font-optical-sizing: auto;
  font-weight: weight;
  font-style: normal;
}

.shippori-mincho {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.toppan{
    font-family: "toppan-bunkyu-midashi-go-std", sans-serif;
    font-weight: 900;
    font-style: normal;
}

.zen-maru {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

/* // =======================================
// header
// ======================================= */

.header-wrapper{
  --s: min(1, 100vw / 1920);
  height: calc(130px * var(--s));
  overflow: hidden;
}

.header-wrapper > #header{
  width: 100%;
  height: 130px;
  transform: scale(var(--s));
  transform-origin: top left;
}

header{
   width: 100%;
   height: 130px;
}

header .logo-area{
    width: 27vw;
}

header .ttl-area{
    padding: 0 80px 0 20px;
    justify-content: space-between;
    align-items: center;
    flex: 7;
    background-color: #ffffed;
}

header .ttl-area h1.site-ttl{
    font-size: 2.5vw;
    font-weight: bold;
    color: #fff;
    -webkit-text-stroke: 0.52vw #8cbbe7;
    paint-order: stroke;
}

header .info-area{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 3;
    background-color: #629bd2;
}

header .info-area p{
    color: #fff;
}

header .info-area .address-area {
    font-size: 1.25vw;
    line-height: 1.25;
    letter-spacing: 0.05em;
}

header .info-area .tel-area {
    position: relative;
    font-size: 38px;
    text-align: right;
}

header .info-area .tel-area a{
  position: relative;
  letter-spacing: 0.05em;;
}

header .info-area .tel-area a::before{
    position: absolute;
    content: "";
    background-image: url(../img/icon-tel.png);
    background-repeat: no-repeat;
    width: 26px;
    height: 33px;
    top: 54%;
    transform: translateY(-50%) ;
    left:-35px;
}

@media screen and (max-width: 1200px) {
.header-wrapper > #header{
  height: 0;
}

header .ttl-area {
    padding: 0 20px;
}

header .ttl-area h1.site-ttl {
    font-size: 22px;
}

header .info-area .tel-area {
    font-size: 20px;
}

header .info-area .tel-area a::before {
    transform:translateY(-50%) scale(0.6);
}
}

@media screen and (max-width: 750px) {
    header.ttl-area{
        display: none;
    }

.hamburger-box {
    display: block;
    position: fixed;
    top: 15px;
    right: 10px;
    width: 60px;
    height: 60px;
    z-index: 3000;
}

.hamburger {
    position: absolute;
    top: 10px;
    left: 0;
    width: 37px;
    height: 36px;
    z-index: 2001;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    background: transparent;
    border: none;
    cursor: pointer;
    border-radius: 2px;
    transition: transform 0.4s ease, opacity 0.4s ease, width 0.4s ease;
    transform-origin: center;
}

.hamburger span.hamburger-line {
  position: relative;
  display: block;
  left: -3px;
  top:-1px;
  width: 100%;
  background-color: #629bd2;
  border-radius: 2px;
  height: 4px;
  transition: all 0.4s ease;
  z-index: 2002;
}

.hamburger >span.hamburger-line{
  width: 45px;
}

.hamburger.active span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
    width: 45px;
    top: 7px;
    left: 0;
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
    width: 45px;
    left: 0;
}

.hamburger.active {
  top: 17px;
}

.hamburger.active::after {
    content: ""; 
}

.sp-nav{
    display: block;
}
}

.sp-nav {
  position: fixed;
  top: 0;
  right: 0;
  width: 85%;
  height: 100vh;
  background-color: #fff;
  z-index: 2999;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
  padding: 20px;
  box-sizing: border-box;
  opacity: .9;
}

.sp-nav.active {
  transform: translateX(0%);
}

.sp-nav .sp-nav-list {
    padding: 0 ;
    margin: 130px auto 0;
}

.sp-nav .sp-nav-list > li{
    position: relative;
    padding: 10px 0 10px 15px;
    display: flex;
    flex-direction: column-reverse;
    border-top: 1px solid #8cbbe7;
}

.sp-nav .sp-nav-list > li span{
  font-size: 12px;
  color: #a1905a;
}

.sp-nav .sp-nav-list > li:not(:first-child) {
  border-top: 1px solid #8cbbe7;
}

.sp-nav .sp-nav-list > li:last-child {
    border-bottom: 1px solid #8cbbe7;
}

.sp-nav .sp-nav-list > li > a::before {
    content: "";
    width: 0;
    height: 0;
    display: block;
    border-left: 8px solid #629bd2;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    position: absolute;
    right: 12px;
    bottom: 15px;
}

.sp-nav .sp-nav-list > li.has-dropdown > a::before {
    right: 12px;
    bottom: 15px;
}

.sp-nav .dropdown {
  position: relative;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;

}

.sp-nav .dropdown > li{
    position: relative;
    padding-left: 30px;
}

/* .sp-nav .dropdown > li:before{
    position: absolute;
    content: "";
    background-image: url(../img/top/sp-navarrow.png);
    background-repeat: no-repeat;
    width: 5px;
    height: 2px;
    background: #d2d2d2;
    top: 15px;
    left: 10px;
}

.sp-nav .dropdown.open {
  margin-top: 7px;
  max-height: 500px;
} */

.sp-nav ul li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #4d4d4d;;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.sp-nav .button-area{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
}

.nav-button {
    position: relative;
    width: 200px;
    text-align: center;
    background-color: #629bd2;
    padding: 10px 0 10px 30px;
    color: #fff;
}

.nav-button.tel:before {
    position: absolute;
    content: "";
    background-image: url(../img/icon-tel.png);
    background-repeat: no-repeat;
    width: 26px;
    height: 33px;
    top: 20%;
    left: 30px;
    transform: scale(0.6);
}

.nav-button a{
    font-size: 18px;
    color: #fff;
}


/* // =======================================
// top-mv
// ======================================= */

.top-mv{
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.top-mv .mv-inner{
  position: relative;
}
.top-mv .mv-bg{
  display: block;
  line-height: 0;
}
.top-mv .mv-bg img{
  width: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.top-mv .mv-copy{
    position: absolute;
    top: 0;
    bottom: 0;
    right: 3vw;
    place-content: center;
    margin-left: auto;
    text-align: left;
    z-index: 2;
}

.mv-top-text-01{
  font-size: 4.4vw;
  letter-spacing: .08em;
  color: #5279a1;
  line-height: 1.3;
}
.mv-top-text-01 span{
  font-size: 3.9vw;
  letter-spacing: .08em;
  color: #5279a1;
}

.mv-top-text-02{
  font-size: 3.9vw;
  letter-spacing: .08em;
  color: #5279a1;
  line-height: 1.3;
}
.mv-top-text-02 span{
  font-size: 5.1vw;
  letter-spacing: .08em;
  color: #649ad2;
}

.mv-bottom-text {
    margin-top: 2.6vw;
    font-size: 2.6vw;
    line-height: 1.7;
    letter-spacing: .06em;
    color: #fff;
}

.top-mv .mv-inner::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,0) 55%);
  z-index:1;
  pointer-events:none;
}

/* 1) 頭痛がする（439×178） */
.top-mv::before{
  content:"";
  position:absolute;
  background-image:url(../img/top-mv-text-01.png);
  background-repeat:no-repeat;
  background-size:contain;

  /* 幅: min=1200時, preferred=vw(1920基準), max=元px */
  width:  clamp(calc(439px * 1200 / 1920), calc(439 / 1920 * 100vw), 439px);
  height: clamp(calc(178px * 1200 / 1920), calc(178 / 1920 * 100vw), 178px);

  /* 位置も1920基準のvwでOK（23.47vw=1920基準） */
  left: 23.47vw;
  top:  1.56vw;
  z-index:2;
}

/* 2) いびき（301×138） */
.top-mv::after{
  content:"";
  position:absolute;
  background-image:url(../img/top-mv-text-02.png);
  background-repeat:no-repeat;
  background-size:contain;

  width:  clamp(calc(301px * 1200 / 1920), calc(301 / 1920 * 100vw), 301px);
  height: clamp(calc(138px * 1200 / 1920), calc(138 / 1920 * 100vw), 138px);

  left: 2.6vw;
  top:  4.6vw;
  z-index:2;
}

/* 3) 日中の眠気（439×146） */
.top-mv .mv-bg::after{
  content:"";
  position:absolute;
  background-image:url(../img/top-mv-text-03.png);
  background-repeat:no-repeat;
  background-size:contain;

  width:  clamp(calc(439px * 1200 / 1920), calc(439 / 1920 * 100vw), 439px);
  height: clamp(calc(146px * 1200 / 1920), calc(146 / 1920 * 100vw), 146px);

  left:   5.7vw;
  bottom: 3.6vw;
  z-index:2;
}

.top-mv, .top-mv .mv-bg{ position: relative; }

/* ===== レスポンシブ調整 ===== */
@media (max-width: 1200px){
  .top-mv .mv-copy {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 1vw;
    place-content: center;
    margin-left: auto;
    text-align: left;
    z-index: 2;
  }
  /* ===== 頭痛がする ===== */
  .top-mv::before {
    background-image:url(../img/top-mv-text-01.png);
    background-repeat:no-repeat;
    background-size:contain;
    width: calc(262px + (439 - 262) * ((100vw - 750px) / (1200 - 750))); 
    height: calc(106px + (178 - 106) * ((100vw - 750px) / (1200 - 750)));
    left: calc(38px + (60 - 38) * ((100vw - 750px) / (1200 - 750)));
    transform: rotate(-15deg);
  }

  /* ===== いびき ===== */
  .top-mv::after {
    background-image:url(../img/top-mv-text-02.png);
    background-repeat:no-repeat;
    background-size:contain;
    width: calc(180px + (301 - 180) * ((100vw - 750px) / (1200 - 750)));
    height: calc(82px + (138 - 82) * ((100vw - 750px) / (1200 - 750)));
    left: calc(174px + (290 - 174) * ((100vw - 750px) / (1200 - 750)));
    top: calc(168px + (280 - 168) * ((100vw - 750px) / (1200 - 750)));
  }

  /* ===== 日中の眠気 ===== */
  .top-mv .mv-bg::after {
    background-image:url(../img/top-mv-text-03.png);
    background-repeat:no-repeat;
    background-size:contain;
    width: calc(262px + (439 - 262) * ((100vw - 750px) / (1200 - 750)));
    height: calc(87px + (146 - 87) * ((100vw - 750px) / (1200 - 750)));
    left: calc(102px + (170 - 102) * ((100vw - 750px) / (1200 - 750)));
    bottom: calc(60px + (100 - 60) * ((100vw - 750px) / (1200 - 750)));
  }

  /* ===== 見出しテキスト ===== */
  .mv-top-text-01{
    font-size: calc(46px + (76 - 46) * ((100vw - 750px) / (1200 - 750)));
    letter-spacing: .08em;
    color: #5279a1;
    line-height: 1.3;
  }
  .mv-top-text-01 span{
    font-size: calc(42px + (68 - 42) * ((100vw - 750px) / (1200 - 750)));
    color: #5279a1;
  }

  .mv-top-text-02{
    font-size: calc(42px + (68 - 42) * ((100vw - 750px) / (1200 - 750)));
    letter-spacing: .08em;
    color: #5279a1;
    line-height: 1.3;
  }
  .mv-top-text-02 span{
    font-size: calc(55px + (88 - 55) * ((100vw - 750px) / (1200 - 750)));
    color: #649ad2;
  }

  .mv-bottom-text {
    margin-top: 2.6vw;
    font-size: calc(27px + (45 - 27) * ((100vw - 750px) / (1200 - 750)));
    line-height: 1.7;
    letter-spacing: .06em;
    color: #fff;
  }
}

@media (max-width: 750px){
  .top-mv .mv-copy{
    padding-right: 10px;
  }
  .mv-ttl{ 
    line-height: 1.35; 
    }
}

/* // =======================================
// ナビゲーションメニュー
// ======================================= */

.top-nav{
    width: 100%;
}

.pc-nav{
    height:85px;
    line-height: 85px;
    background-color: #8cbbe7;
    justify-content: space-around;
}

.pc-nav-list{   
    justify-content: space-around;
}

.pc-nav-list li {   
    color: #fff;
    position: relative;
    font-size: clamp(16px, calc(16px + (24 - 16) * ((100vw - 750px) / (1920 - 750))), 24px);
}

.pc-nav-list li a{   
  font-weight: bold;
}

.pc-nav-list li:not(:first-child)::before{  
    position: absolute;
    content: "";
    height: 45px;
    width: 2px;
    top: 50%;
    transform: translateY(-50%);
    background-color: #fff;
    background-repeat:no-repeat;
    background-size:contain;
    left: -3.333vw;
}

@media (max-width: 1200px){
    .pc-nav-list li:not(:first-child)::before{  
    left: -2.5vw;
}
}

@media (max-width: 850px){
        .pc-nav-list li:not(:first-child)::before{  
    left: -1.5vw;
}
}

@media (max-width: 750px){
    .pc-nav{
        display: none;
    }
}

/* // =======================================
// こんなお悩みありませんか？
// ======================================= */
.top-trouble{
  position: relative;
  padding-top: 70px;
  background-color: #ffffed;
}

.top-trouble::before{
    content: "";
    position: absolute;
    height: 10vw;
    width: 100%;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    background-color: #ffffed;
    left: 0;
    bottom: -10vw;
}

.top-trouble h2{
  position: relative;
  font-size: 32px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 120px;
}

.top-trouble h2::before {
    content: "";
    position: absolute;
    background-image: url(../img/icon-arrow.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 60px;
    height: 63px;
    top: 100%;
    left: 50%;
    transform: translatex(-50%);
    z-index: 2;
}

.top-trouble h2 .q {
    font-family: "Shippori Mincho", serif;
    font-size: 100px;
    color: #d5a1d8;
    vertical-align: -0.1em;
    margin-right: 0.3em;
}

.top-trouble h2 span{
  font-size: 42px;
  font-weight: bold;
  color: #e78d8d;
}

/* ▼ カード */
.trouble-card{
  background: #f4f5a5;
  border-radius: 20px;
  box-shadow: 0 2px 0 0 rgba(180,180,180,.35);
  padding: 50px 20px 50px 90px;
  width: 100%;
  margin: 0 auto 50px;
}

.trouble-list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 50px 36px;
  letter-spacing: .03em;
}

.trouble-list li{
  position: relative;
  padding-left: 40px;
  line-height: 1.9;
  font-size: clamp(24px, calc(24px + (30 - 24) * ((100vw - 1200px) / (1920 - 1200))), 30px);  font-weight: bold;
  color: #333;
}

.trouble-list li::before{
  content:"";
  position:absolute;
  background-image: url(../img/check-box.png);
  background-repeat: no-repeat;
  background-position: center;
  left: -25px;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
}

/* ▼ 下の注意ブロック */
.trouble-note{
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: center;
  gap: 24px;
  max-width: 840px;
  margin: 0 auto;
}

.note-illust{ 
  margin: 0;
  text-align: center; 
}

.note-text{
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: 30px;
    font-weight: bold;
    letter-spacing: .06em;
    line-height: 1.9;
    color: #333;
    text-align: center;
}
.note-text span{
  display: inline-block;
  margin: 4px 0;
  font-weight: bold;
  font-size: 36px;
  color: #e58e99;
}

@media (max-width: 1200px){
  .top-trouble h2{
    margin-bottom: 70px;
    font-size: clamp(20px, 2.5vw, 32px);
  }

  .top-trouble h2::before {
    top:85%;
    transform: translatex(-50%) scale(0.7);
}


  .top-trouble h2 .q{
    font-size: clamp(42px, 8vw, 100px);
  }

  .top-trouble h2 span{
    font-size: clamp(24px, 3vw, 42px);
  }

  .trouble-card {
    padding: 35px 15px 35px 40px;
}

  .trouble-list {
    gap: 35px 20px;
}

  .trouble-list li {
    font-size: clamp(16px, calc(16px + (24 - 16) * ((100vw - 750px) / (1200 - 750))), 24px);
    padding-left: 20px;
}

  .trouble-list li::before {
    transform: translateY(-50%) scale(0.7);
}

.note-illust img{
  transform: scale(0.7);
}

  .note-text{
    font-size: clamp(24px, calc(24px + (30 - 24) * ((100vw - 750px) / (1200 - 750))), 30px);
    }

      .note-text span{
    font-size: clamp(28px, calc(28px + (36 - 28) * ((100vw - 750px) / (1200 - 750))), 36px);
    }
}

@media (max-width: 750px){
    .top-trouble h2{
    line-height: 1.5;
    }

    .top-trouble h2::before {
      top: 105%;
      transform: translatex(-50%) scale(0.5);
    }

    .trouble-card {
    max-width: 500px;
    margin: 0 auto 40px;
    }   

    .trouble-list {
      gap: 25px;
      grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .trouble-list li {
        font-size: clamp(16px, calc(16px + (18 - 16) * ((100vw - 375px) / (750 - 375))), 18px);
    }

    .trouble-list li::before {
        top:55%;
        transform: translateY(-50%) scale(0.5);
    }

    .trouble-note {
      grid-template-columns: 1fr;
      gap: 0;
      margin: 0 auto;
    }

    .note-text {
        font-size: 20px;
        margin-top: -25px;
    }

    .note-text span{
        font-size: 22px;
    }
}

@media (max-width: 400px){
      .top-trouble .sp{
      display: block;
    }
}


/* // =======================================
// MEDICAL
// ======================================= */
.top-medical{ 
    padding: 13vw 0 18vw;
 }

.medical-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 34px 36px;
  margin-top: 50px;
  align-items: stretch;
}

/* カード全体がクリック領域 */
.medical-card{
    justify-content: center;
    align-items: center;
    gap: 70px;
    width: 100%;
    height: 200px;
    padding: 60px 75px 60px 0;
    border-radius: 20px;
    background-color: #8cbbe7;
    color: #fff;
    box-shadow: 0 3px 0 rgba(0, 0, 0, .06);
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.medical-card:hover{ 
  transform: translatey(2px) translatex(2px); 
  box-shadow:0 6px 14px rgba(0,0,0,.12); 
  opacity:.95; 
}

.medical-card:focus-visible{ 
  outline:3px solid #8cbbe7; 
  outline-offset:3px; 
}

/* アイコン・ラベル・矢印 */
.medical-icon img{
   display:block; 
   width:clamp(52px,7vw,92px); 
   height:auto; 
  }
  
.medical-label{
  position: relative;
  color: #fff;
  font-weight:bold;
  letter-spacing:.05em;
  font-size: clamp(16px, calc(16px + (24 - 16) * ((100vw - 375px) / (1920 - 375))), 24px);
  white-space:nowrap; 
  text-align: center;
}

.medical-label::before{
  content:"";
  position:absolute;
  background-image: url(../img/icon-arrow-02.png);
  background-repeat: no-repeat;
  background-position: center;
  right: -5.2vw;
  top: 50%;
  transform: translateY(-50%);
  width: 23px;
  height: 26px;
}

/* 余白やサイズのレスポンシブ微調整 */
@media (max-width: 1200px){
.medical-grid{
  gap: 20px;
}

  .medical-card{ 
    height: 160px;
    gap: 50px; 
  }
}

@media (max-width: 1000px){
.medical-card {
  padding: 0 40px 0 0;
}

.medical-label::before{
  transform: translateY(-50%) scale(0.7);
}

}

@media (max-width: 750px){
    .medical-grid {
        gap: 10px;
    }

  .top-medical{ 
    padding: 60px 0 30vw;
  }
  .medical-card{ 
        height: 120px;
        gap: 15px;
  }
}

@media (max-width: 600px){
.medical-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.medical-card{
  position:relative;
    margin: auto;
    max-width: 450px;
    height: 100px;
    gap: 25px;
}

.medical-label::before{
  content:none;
}

.medical-card::before{
  content: "";
  position: absolute;
  background-image: url(../img/icon-arrow-02.png);
  background-repeat: no-repeat;
  background-position: center;
  right: 8.33333333vw;
  top: 50%;
  transform: translateY(-50%) scale(0.6);
  width: 23px;
  height: 26px;
}
}



/* // =======================================
// FEATURE
// ======================================= */

.top-feature{
    background: #e4f1fc;
}

.top-feature .flex-box{
  align-items: center;
  gap: 40px;
}
.top-feature .flex-box:not(:first-child){
  margin-top: 50px;
}

.top-feature h3.feature-ttl{
  position: relative;
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 0.05em;
    margin-top: -7vw;
}
.top-feature h3.feature-ttl::before{
    position: absolute;
        content: "";
    background-color: #d5a1d8;
    width: 100%;
    height: 1px;
    bottom: 15px;
}

.top-feature h3.feature-ttl span{
  font-family: "Shippori Mincho", serif;
  font-size: 85px;
  font-weight: bold;
  color: #d5a1d8;
  letter-spacing: 0.05em;
  margin-right: 1.5vw;
}

.top-feature .c-inner{
    padding: 150px 20px 120px;
}

.ttl-wrapper{
  position: absolute;
  top: -5.2vw;
  left: 50%;
  transform: translateX(-50%);
}

.top-feature .feature-content{
  margin: 110px auto 0;
  width: 100%;
}

.top-feature .img-area{
    flex: 1;
    overflow: hidden;
    border-radius: 25px;
    width: 100%;
    max-width: 600px;
}

.top-feature .text-area{
  flex: 1;
}

.top-feature .text-area .text-box p{
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.05em;
}


@media (max-width: 1200px){
  .ttl-wrapper {
    top: -6.2vw;
}

  .top-feature .feature-content {
    margin: 80px auto 0;
  }

  .top-feature .flex-box{
    flex-direction: column;
    margin: auto;
  }

  .top-feature .flex-box:not(:first-child) {
    margin-top: 100px;
}

  .top-feature .text-area{
    display: contents;
  }

.top-feature h3.feature-ttl {
  order: 1;
}
.top-feature .img-area{
  order: 2;
}
.top-feature .text-box{
  order: 3;
  max-width: 750px;
  width: 100%;
}
}

@media (max-width: 750px){
.top-feature .sp{
  display: block;
}

.top-feature .c-inner {
    padding: 60px 20px 120px;
}

.ttl-wrapper {
      top: -9vw;
  }

.top-feature h3.feature-ttl {
    font-size: clamp(20px, calc(20px + (4 * ((100vw - 375px) / 375))), 24px);
    text-align: center;
    line-height: 1.5;
}

.top-feature h3.feature-ttl::before {
    position: absolute;
    content: "";
    background-color: #d5a1d8;
    width: 100%;
    height: 1px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.top-feature h3.feature-ttl span {
    font-size: 50px;
    margin: 0;
}

.top-feature .text-area .text-box p {
    font-size: 18px;
}
}


/* // =======================================
// 当院の受診方法について
// ======================================= */
.top-howto{
  padding: 200px 0;
}

.top-howto .flex-box {
    margin-top: 6.25vw;
    gap: 3vw;
    width: 100%;
    justify-content: center;
}

.top-howto .button{
    position: relative;
    font-size: clamp(18px, calc(18px + (6 * ((100vw - 750px) / 1170))), 24px);
    font-weight: bold;
    flex: 1;
    background-color: #8cbbe7;
    color: #fff;
    height: clamp(120px, calc(120px + (30 * ((100vw - 750px) / 1170))), 150px);
    line-height: clamp(120px, calc(120px + (30 * ((100vw - 750px) / 1170))), 150px);
    border-radius: 20px;
    text-align: center;
}

.top-howto .button::before {
    content: "";
    position: absolute;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: center;
    right: 15px;
    bottom: 15px;
    clip-path: polygon(100% 0, 0% 100%, 100% 100%);
    width: 30px;
    height: 30px;
    border-radius: 5px;
}

@media (max-width: 750px){
.top-howto {
    padding: 100px 0 200px;
}

.top-howto .flex-box {
  flex-direction: column;
  align-items: center;
}

.top-howto .button{
  width: 100%;
  max-width: 500px;
}

.top-howto .button::before {
    right: 10px;
    bottom: 10px;
    clip-path: polygon(100% 0, 0% 100%, 100% 100%);
    width: 20px;
    height: 20px;
    border-radius: 4px;
}
}

/* // =======================================
// STEP
// ======================================= */
.top-step{
  background-color: #ffffed;
}

.top-step h3.step-ttl {
    position: relative;
    font-size: 24px;
    font-weight: 500;
    overflow-wrap: anywhere;
}
.top-step h3.step-ttl::before{
    content: "";
    position: absolute;
    background-color: #d5a1d8;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    height: 1px;
    bottom: 0;
}

.top-step h3.step-ttl span{
  color: #d5a1d8;
}

.top-step h3.step-ttl span.number{
  font-size: 38px;
  margin-right: 20px;
}

.top-step .c-inner {
    padding: 150px 20px 120px;
}

.step-content{
  margin-top: 100px;
}

.top-step .flex-box{
  position: relative;
  padding: 50px;
  border-radius: 20px;
  background-color: #fff;
  justify-content: center;
  align-items: start;
  gap: 6vw;
}

.top-step .flex-box:not(:last-child)::before{
    content: "";
    position: absolute;
    background-image: url(../img/step-arrow.png);
    background-repeat: no-repeat;
    background-position: center;
    bottom: -75px;
    left: 50%;
    transform: translateX(-50%);
    width: 38px;
    height: 23px;
}

.top-step .flex-box:not(:first-child) {
    margin-top: 120px;
}

.top-step .flex-box .text-area{
   flex: 1 1 0;  
   min-width: 0; 
}

.top-step .flex-box .text-area .text-box{
  margin-top: 50px;
}

.top-step .flex-box .text-area .text-box p{
  position: relative;
  font-size: 20px;
  font-weight: 500;
}

.top-step .flex-box .img-area{
  flex: 0.7 1 0; 
  min-width: 0;
  text-align: center;
}

.top-step .flex-box .img-area img{
  object-fit: cover;
}

.top-step .button {
    display: block;
    position: relative;
    font-size: clamp(18px, calc(18px + (6 * ((100vw - 750px) / 1170))), 24px);
    font-weight: bold;  
    background-color: #8cbbe7;
    color: #fff;
    width: 100%;
    height: clamp(120px, calc(120px + (30 * ((100vw - 750px) / 1170))), 150px);
    line-height: clamp(120px, calc(120px + (30 * ((100vw - 750px) / 1170))), 150px);
    border-radius: 20px;
    text-align: center;
    max-width: 450px;
    margin: 50px auto 0;
}

.top-step .button::before {
    content: "";
    position: absolute;
    background-image: url(../img/icon-arrow-02.png);
    background-repeat: no-repeat;
    background-position: center;
    right: 3.5vw;
    top: 50%;
    transform: translateY(-50%);
    width: 23px;
    height: 26px;
}

@media (max-width: 1200px){
  .top-step .sp{
    display: block;
  }
}

@media (max-width:750px){
.top-step .c-inner {
    padding: 60px 10px 120px;
}

.top-step .flex-box {
  flex-direction: column;
  align-items: center;
  padding: 20px;
}

  .top-step .flex-box .text-area{
    display: contents;
  }

.top-step h3.step-ttl{
    order: 1;
    font-size: clamp(20px, calc(20px + (4 * ((100vw - 375px) / 375))), 24px);
  }

.top-step .flex-box .img-area {
    order: 2;
    max-width: 200px;
    width: 50%;
  }

.top-step .flex-box .text-area .text-box{
    order: 3;
    margin-top: 0;
  }

  .top-step .button {
    height: 75px;
    line-height: 75px;
    margin: 25px auto;
    font-size: clamp(16px, calc(16px + (2 * ((100vw - 375px) / 375))), 18px);
}

.top-step .button::before {
    right: 4.5vw;
    transform: translateY(-50%) scale(0.5);
}

  .top-step .flex-box .text-area .text-box p {
    font-size: 18px;
}
}
/* // =======================================
// Q&A
// ======================================= */
.top-qa .ttl-wrapper{
  top: 0;
}

.top-qa .c-inner {
    padding: 22vw 20px 120px;
}

.details {
	transition: .3s;
	overflow: hidden;
	margin-top: -10px;
	padding-bottom: 10px;
	&:last-of-type {
		margin-bottom: 0;
	}
}
.details[open] {
	margin-top: 0;
	padding-bottom: 0;
} 
.details-summary {
  position: relative;
	display: block;
	padding: 15px 0 15px 55px;
  transition: .3s;
	transform: translateY(10px);
	background-color: #e4f1fc;
  font-size: clamp(18px, calc(18px + (2 * ((100vw - 750px) / 1170))), 20px);
	font-weight: bold;
	color: #333;
	&:hover {
		cursor: pointer;
	}
}
.details-summary::before {
    content: "Q";
    position: absolute;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 400;
    font-size: clamp(18px, calc(18px + (2 * ((100vw - 750px) / 1170))), 20px);
    font-style: normal;
    color: #5576a3;
    background-repeat: no-repeat;
    background-position: center;
    top: 50%;
    transform: translateY(-50%);
    left: 23px;
}

.details-summary::after {
    content: "";
    position: absolute;
    background-image: url(../img/icon-arrow-03.png);
    width: 18px;
    height: 12px;
    background-repeat: no-repeat;
    background-position: center;
    right: 23px;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    transition: transform .25s ease;
}

.details[open] > .details-summary::after {
  transform: translateY(-50%) rotate(180deg);
}

.details-summary::-webkit-details-marker {
	display: none;
}
.details[open] .details-summary {
	transform: translateY(0);
}
.details-content {
    position: relative;
    padding: 15px 0 15px 55px;
    background-color: #f1f7fd;
    font-size: clamp(18px, calc(18px + (2 * ((100vw - 750px) / 1170))), 20px);
}
.details-content::before {
    content: "A";
    position: absolute;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 400;
    font-size: clamp(18px, calc(18px + (2 * ((100vw - 750px) / 1170))), 20px);
    font-style: normal;
    color: #e79595;
    background-repeat: no-repeat;
    background-position: center;
    top: 14px;
    left: 23px;
}

@media (max-width: 750px){

  .top-qa .c-inner{
    padding: 200px 10px 120px;
  }

  .details-summary,
  .details-content{
    line-height: 1.6;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .details-summary{
    padding: 15px 50px;
  }

  .details-content{
      padding: 15px 15px 15px 50px;
  }

  .details-summary::after{
    transform: translateY(-50%) rotate(0deg) scale(0.7);
  }

  .details[open] > .details-summary::after {
    transform: translateY(-50%) rotate(180deg) scale(0.7);
  }
}

/* // =======================================
// footer
// ======================================= */
footer{
  background-color: #e4f1fc;
  padding-bottom: 55px;
}

footer .gmap-wrapper{
  width: 100%;
}

footer .gmap-wrapper iframe{
  width: 100%;
}


footer .info-content.flex-box{
    align-items: center;
    justify-content: space-between;
    margin-top: 100px;
    gap: 50px;
}

footer .logo-area{
  max-width: 450px;
}

footer .info-area{
    position: relative;
    font-size: 20px;
}

footer .address-area{
    letter-spacing: 0.05em;
    text-align: center;
    margin-top: 10px;
}

footer .tel-area{
    font-size: 36px;
    letter-spacing: 0.05em;
    text-align: center;
}

footer .tel-area a{
    position: relative;
    padding-left: 5px;
}

footer .tel-area a::before{
  position: absolute;
  content: "";
  background-image: url(../img/icon-tel-02.png);
  background-repeat: no-repeat;
  background-position: center;
  width: 22px;
  height: 29px;
  top: 56%;
  transform: translateY(-50%);
  left: -40px;
}

.table-area{
  max-width: 750px;
}

.c-ct__table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background-color: #fff;
  border: 1px solid #629bd2;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
}

.c-ct__table thead  {
  background-color: #629bd2;
}

.c-ct__table thead tr:first-child th,
.c-ct__table thead tr:first-child td{
    white-space: nowrap;
    text-align: center;
}

.c-ct__table thead th,
.c-ct__table thead td{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 18px;
  color: #585858;
  text-align: center;
  padding: 10px 28px;
  border-bottom: 1px solid #cbcbcb;
  background: transparent;
  color: #fff;
}

.c-ct__table thead td.saturday {
  color: #2f547a;
}

.c-ct__table thead td.sunday {
  color: #e79595;
}

.c-ct__table thead th:first-child{ 
  width: 38%; text-align: left; 
}

.c-ct__table tbody tr:first-child th {
  border-bottom: 1px solid #629bd2;
}

.c-ct__table tbody tr:first-child td {
  border-bottom: 1px solid #629bd2;
}

.c-ct__table tbody{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 20px;
  line-height: 1.3;
}

.c-ct__table tbody th{
  padding: 18px 18px 14px 26px;
  vertical-align: top;
}
.c-ct__table tbody th span{
  display: inline-block;
  font-size: 16px;
  font-weight: 400;
}

.c-ct__table tbody td{
  text-align: center;
  vertical-align: middle;
}

.c-ct__table tbody td:not(.off){
  color:#333 ;
}

.c-ct__table tbody td:last-child{
  text-align: center;
  vertical-align: middle;
}

.c-ct__note{
  font-size: 16px;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.bottom-nav .sitemap-label{
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  color: #629bd2;
  margin-top: 80px;
}

footer .bottom-nav{
  position: relative;
}

footer .bottom-nav::before{
    content: "";
    position: absolute;
    background-color: #629bd2;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    height: 2px;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
}

footer .bottom-nav::after{
    content: "";
    position: absolute;
    background-color: #629bd2;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    height: 2px;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
}

 footer .pc-nav-list{   
    justify-content: space-around;
    margin-top: 15px;
}

 footer .pc-nav-list li {
    color: #333;
    position: relative;
    font-size: clamp(16px, calc(16px + (20 - 16) * ((100vw - 750px) / (1920 - 750))), 20px);
    font-weight: 400;
}

footer .pc-nav-list li:not(:first-child)::before {
    content: none;
}

footer .copy-area{
  margin-top: 90px;
  text-align: center;
}

@media (max-width: 1200px){
  footer .gmap-wrapper iframe {
    height: 450px;
}

footer .flex-box.info-content {
  flex-direction: column;
  margin-top: 50px;
}

footer .address-area{
  text-align: center;
}
}


@media (max-width: 750px){
footer {
    padding-bottom: 25px;
}

  footer .sp{
    display: block;
  }

  footer .gmap-wrapper iframe {
    height: 350px;
}

footer .info-content.flex-box {
    margin-top: 35px;
    gap: 20px;
}

  footer .logo-area {
        width: 60%;
        margin: auto;
  }

    footer .address-area {
      font-size :16px ;

  }
  footer .tel-area a::before {
    transform: translateY(-50%) scale(0.7);
    left: -30px;
  }

  footer .tel-area {
    font-size: 24px;
  }

  footer .table-area {
    max-width: 550px;
}

 .c-ct__table {
    table-layout: fixed; 
    border-spacing: 0;
  }

  .c-ct__table thead th:first-child,
  .c-ct__table tbody th {
    width: 30%;
    padding: 10px 8px;
  }
  .c-ct__table thead td,
  .c-ct__table tbody td {
    width: 8%;
    padding: 10px 0;
    text-align: center;
  }

  .c-ct__table thead th,
  .c-ct__table thead td { font-size: 14px; }
  .c-ct__table tbody { font-size: 14px; line-height: 1.25; }
  .c-ct__table tbody th { font-size: 16px; }
  .c-ct__table tbody th span { font-size: 14px; }

  .c-ct__table tbody td:not(.off)::before {
    width: 14px; 
    height: 14px;
  }
  .c-ct__table tbody td.off::before {
    font-size: 14px;
  }

.c-ct__note { 
  margin-top: 8px; font-size: 14px; 
}

footer .bottom-nav {
  text-align: center;
}

footer .bottom-nav .sitemap-label {
    margin-top: 60px;
}

footer .bottom-nav .flex-box {
    flex-direction: column;
    display: inline-block;
    text-align: left;
}

footer .copy-area {
    margin-top: 50px;
    line-height: 1.2;
}
}


/* // =======================================
// footerナビゲーション（追従タイプ）
// ======================================= */
footer .c-floatbnr {
  position: fixed;
  bottom: 0;
  right: 0;
  gap: 50px;
  z-index: 998;
  opacity: 0;
  transform: translateY(110px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
}

footer .c-floatbnr.active {
  opacity: 1;
  transform: translateY(0) scale(0.7);
  pointer-events: auto;
}

footer .button-area {
  margin: 0;
}

@media (max-width: 1200px) {
    .button-area {
        flex-direction: column;
        margin-top: 65px; 
    }

    footer .c-floatbnr {
    gap: 15px;
    bottom: 0;
    right: -15px;
}

footer .c-floatbnr.active {
    transform: translateY(0) scale(0.6);
}
}

@media (max-width: 750px) {
    footer .c-floatbnr {
        gap: 15px;
        bottom: -15px;
        right: -25px;
      }
    footer .c-floatbnr.active {
        transform: translateY(0) scale(0.5);
    }
}