@charset "UTF-8";

:root {
  --header: 120px;
  --bgSite: #67c9bf;
  --content-width: 1000px;
  --font-yugothic: "游ゴシック体", "Yu Gothic", YuGothic, sans-serif;
  --font-yumincho: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3",
    "Hiragino Mincho ProN", "HG明朝B", serif;
  --font-meiryo: "Meiryo UI", Meiryo, メイリオ, Osaka, "MS PGothic", arial,
    helvetica, sans-serif;
}

@media (min-width: 960px) {
  .inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
}

@media screen and (min-width: 751px) and (max-width: 1540px) {
  :root {
    --header: 100px;
  }

  header {
    height: 100px;
    align-items: center;
  }

  .scroll header {
    align-items: center;
    height: 100px;
  }

  .hlogo {
    margin-right: 50px;
    margin-left: 50px;
  }

  .hContent {
    padding-left: 50px;
  }

  .hContent::before {
    clip-path: polygon(38px 0%, 100% 0, 100% 100%, 0% 100%);
  }

  .hnav {
    margin-right: 30px;
  }

  .hnav>li>span,
  .hnav>li>a:not(.Gmail) {
    top: 0;
    font-size: 18px;
  }

  .hnav>li {
    margin-right: 20px;
  }

  .hnav .hnav-buy a,
  .hnav .hnav-mail a {
    height: 50px;
    background-position: right 15px top 20px;
    background-size: 16px;
  }

  .hnav .hnav-mail a {
    width: 150px;
    font-size: 22px;
  }

  .hnav .hnav-buy a {
    width: 220px;
    font-size: 18px;
    letter-spacing: -0.05px;
  }

  .bg_mv .mv_img_r {
    position: relative;
    right: -180px;
  }

  .bg_txt_mv .en {
    font-size: 12vw;
  }

  .fContact-wrap {
    max-width: 1140px;
    padding: 0px 28px 46px 130px;
  }

  .fContact-wrap::before {
    clip-path: polygon(100px 0%, 100% 0, 100% 100%, 0% 100%);
  }

  .fContact-wrap::after {
    left: -22px;
  }

  .idx_about_flex .txt {
    width: auto;
    max-width: 545px;
    margin-right: 60px;
  }

  .idx_about_flex .thumb {
    margin-right: -100px;
    max-width: 725px;
  }

  .idx_about_flex .txt .ttl {
    font-size: 140%;
    font-weight: 700;
  }

  .idx_ttl_h2 .en {
    font-size: 6.5em;
  }

  .idx_about_flex .txt p.mb60 {
    margin-bottom: 30px !important;
  }

  .idx_about_flex .btn_more {
    margin-top: 30px;
  }
}

@media screen and (min-width: 751px) and (max-width: 1200px) {
  .hnav {
    margin-right: 15px;
  }

  .hnav .hnav-mail a {
    font-size: 20px;
  }

  .hnav .hnav-buy a {
    width: 185px;
  }

  .hnav-lv2 li a,
  .hnav>li>span,
  .hnav>li>a:not(.Gmail),
  .hnav .hnav-buy a {
    font-size: 15px;
  }

  .hnav .hnav-buy,
  .hnav .hnav-mail {
    margin-left: 5px;
    margin-right: 5px;
  }

  .hnav>li>span::before {
    left: 45%;
  }

  .hlogo {
    margin-right: 10px;
    margin-left: 10px;
  }

  .hlogo-txt {
    font-size: 10px;
  }

  .hicon-wrap {
    padding-right: 15px;
  }

  .bg_mv .mv_img_r {
    right: -20%;
    margin-top: -10%;
  }

  .bg_txt_mv .en {
    font-size: 12vw;
    padding-top: 16vw;
  }

  .mv .txt_mv {
    letter-spacing: 10px;
    font-size: 50px;
    padding: 0 10%;
  }

  .idx_ttl_h2 .en {
    font-size: 4.5em;
    letter-spacing: 5px;
  }

  .idx_about_flex .thumb {
    max-width: 60%;
  }

  .idx_about_flex .txt {
    width: 40%;
    margin-right: 50px;
  }

  .fPartner,
  .idx_info,
  .idx_about {
    padding: 100px 0;
  }

  .idx_service {
    padding: 100px 0 140px 0;
  }

  #idx_tab_info .tab_info .tabs li {
    max-width: 28%;
  }

  .idx_order .btn_order {
    margin: 35px auto 0;
  }

  .idx_order .btn_order a {
    height: 60px;
    max-width: 400px;
    margin: 0 auto;
  }

  .fPartner h2 {
    font-size: 1.85em;
    margin-bottom: 8vw;
  }

  .fPartner_flex {
    gap: 0 20px;
    padding: 0 20px;
  }

  .fPartner_flex .item.dentists .thumb img {
    max-width: 75%;
    margin: 0 auto;
  }

  .fnav {
    padding: 100px 20px;
  }

  .fContact-wrap::before {
    background-size: 150px;
    background-position: bottom 10% left 95%;
  }

  .fnav-info .fadd address {
    margin-top: 20px;
    text-align: left;
    top: 0;
  }

  .to-top>a {
    width: 60px;
    height: 60px;
  }
}

@media screen and (min-width: 751px) and (max-width: 768px) {

  .hnav .hnav-buy,
  .hnav .hnav-mail {
    display: none;
  }

  .bg_mv .mv_img_l {
    z-index: 1;
  }

  .bg_txt_mv .en {
    padding-top: 25vw;
  }

  .idx_about_flex .txt .ttl {
    font-size: 115%;
  }

  .idx_about_flex .btn_more a {
    min-width: 300px;
  }

  .fnav-flex {
    gap: 0 20px;
  }

  .fnav-list ul li a {
    font-size: 14px;
  }

  .fnav-info .fadd {
    font-size: 14px;
  }
}

@media (min-width: 769px) and (max-width: 959px) {
  .inner {
    max-width: 100%;
    margin: 0 auto;
    position: relative;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }

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

@media screen and (min-width: 1px) and (max-width: 750px) {
  .break_pc {
    display: contents;
  }

  .break_sp {
    display: block;
  }

  /*-- /header -------------------------------
	------------------------------------------*/
  header {
    justify-content: space-between;
    align-items: center;
    height: 80px;
    padding: 0 0 0 10px;
  }

  .hContent {
    display: none;
  }

  .hlogo-txt {
    font-size: 10px;
  }

  .hlogo {
    margin-right: 4vw;
  }

  .hicon {
    position: relative;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 110;
    overflow: hidden;
    cursor: pointer;
    top: 2px;
    padding-bottom: 14px;
  }

  .hicon::before {
    position: absolute;
    content: "MENU";
    color: #fff;
    font-size: 10px;
    font-family: var(--font-yumincho);
    line-height: 1;
    white-space: nowrap;
    bottom: 0;
  }

  .open-nav .hicon::before {
    color: #fff;
  }

  .open-nav .hamburger>span,
  .open-nav .hamburger>span::before,
  .open-nav .hamburger>span::after {
    background: #fff;
  }

  .hicon-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100px;
    padding-left: 35px;
    background: transparent;
  }

  .hicon-wrap::before {
    position: absolute;
    content: "";
    z-index: -1;
    clip-path: polygon(30px 0%, 100% 0, 100% 100%, 0% 100%);
    background-color: var(--bgSite);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }

  .hicon-wrap::after {
    position: absolute;
    content: "";
    top: 0;
    left: -8px;
    width: 100%;
    height: 100%;
    background-image: url(../images/icon-lines.svg);
    pointer-events: none;
    background-size: contain;
    background-repeat: no-repeat;
  }

  .hamburger>span::before {
    top: -8px;
  }

  .hamburger>span::after {
    top: 8px;
  }

  nav {
    background: transparent;
  }

  nav .nav-flex {
    flex-wrap: wrap;
  }

  nav .nav-wrapp {
    width: 100%;
    padding: 40px 30px 60px 30px;
    margin-top: 80px;
    height: calc(100dvh - 80px);
  }

  .nav-flex .item .title {
    display: none;
  }

  .nav-flex .item .title.sp {
    display: block;
  }

  .nav-flex .item .title.sp a {
    color: #333;
    text-decoration: none;
  }

  .nav-info .nav-btn a {
    width: 100%;
    max-width: 300px;
    height: 60px;
    font-size: 18px;
  }

  .nav-flex .item ul li {
    margin-bottom: 10px;
  }

  .nav-flex {
    margin-bottom: 12vw;
    padding-bottom: 8vw;
  }

  .nav-info .nav-add {
    font-size: 95%;
    line-height: 2.1875em;
  }

  .mvFixedBtn {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: #fff;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    border-top: 1px solid #e0e0e0;
  }

  .mvFixedBtn-item {
    flex: 1;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    text-decoration: none;
    color: #333;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
    transition: background-color 0.2s;
  }

  .mvFixedBtn-item:hover {
    background-color: #f5f5f5;
  }

  .mvFixedBtn-order {
    background-color: #7ED4B6;
    color: #fff;
  }

  .mvFixedBtn-order:hover {
    background-color: #6BC2A4;
  }

  .mvFixedBtn-phone {
    background-color: #B8E6A3;
    color: #333;
  }

  .mvFixedBtn-phone:hover {
    background-color: #A5D991;
  }

  .mvFixedBtn-contact {
    background-color: #D4E6B6;
    color: #333;
  }

  .mvFixedBtn-contact:hover {
    background-color: #C2D4A4;
  }

  .mvFixedBtn-text {
    font-size: 12px;
    color: #fff;
    font-weight: 900;
    text-align: center;
    line-height: 1.2;
  }

  .mvFixedBtn-icon {
    width: 28px;
    height: 28px;
  }

  /*-- /header -------------------------------
	------------------------------------------*/

  /*-- mv -----------------------------------
	------------------------------------------*/
  .mv {
    padding-bottom: 0;
  }

  .mv .txt_mv {
    font-size: 8vw;
    letter-spacing: 0;
    top: 49%;
    left: 4vw;
  }

  .mv .txt_mv h1 {
    line-height: 1.7;
  }

  .bg_txt_mv {
    padding-left: 4vw;
    position: relative;
    top: unset;
    left: 0;
    opacity: .75;
    right: 4vw;
    bottom: 0;
    text-align: left;
  }

  .bg_txt_mv .en {
    font-size: 14vw;
  }

  .bg_mv .mv_img_l {
    width: 43vw;
  }

  .bg_mv .mv_img_r {
    width: 100vw;
    right: -25vw;
    position: relative;
    z-index: -1;
  }

  .mv .scroll {
    margin-top: 8vw;
  }

  .mv .scroll a,
  .mv .scroll:before {
    height: 24vw;
  }

  /*-- /mv ----------------------------------
	------------------------------------------*/

  /*-- title h2 -----------------------------
	------------------------------------------*/
  .idx_ttl_h2 {
    margin-bottom: 10vw;
  }

  .idx_ttl_h2 .en {
    font-size: 10vw;
    letter-spacing: 1vw;
  }

  .idx_ttl_h2 .ja {
    font-size: 4vw;
  }

  /*-- /title h2 ----------------------------
	------------------------------------------*/

  /*-- idx_about ----------------------------
	------------------------------------------*/
  .idx_about {
    padding: 15vw 0;
    margin-top: 22vw;
  }

  .idx_about_flex {
    flex-wrap: wrap;
  }

  .idx_about_flex .txt {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    padding: 0 4vw;
  }

  .idx_about_flex .txt p {
    margin-bottom: 20px;
    line-height: 2.1875em;
  }

  .idx_about_flex .txt p.mb30 {
    margin-bottom: 4vw !important;
    font-size: 95%;
  }

  .idx_about_flex .txt .ttl {
    font-size: 5vw;
  }

  .idx_about_flex .btn_more {
    margin: 0 auto;
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .idx_about_flex .btn_more a {
    min-width: 300px;
    padding: 15px 50px 15px;
  }

  .idx_about_flex .btn_more a span {
    padding-right: 30px;
  }

  /*-- /idx_about ---------------------------
	------------------------------------------*/

  /*-- idx_service --------------------------
	------------------------------------------*/
  .idx_service {
    padding: 15vw 0 20vw 0;
  }

  .service-slider-wrap .slick-slide {
    padding: 0 2vw;
  }

  .service-slider-wrap .slick-slide h3 a img {
    transform: scale(1);
  }

  .service-slider-wrap .slick-slide.slick-current.slick-active h3 a img,
  .service-slider-wrap .slick-slide.slick-current.slick-active {
    width: auto;
    height: auto;
    filter: unset;
  }

  .service-slider-wrap .slick-dots {
    bottom: -35px;
  }

  .service-slider-wrap .service-arrow>span {
    display: none;
  }

  .service-slider-wrap .slick-dotted.slick-slider {
    margin-bottom: 0;
  }

  /*-- /idx_service -------------------------
	------------------------------------------*/

  /*-- idx_info -----------------------------
	------------------------------------------*/
  .idx_info {
    padding: 15vw 0 0 0;
  }

  .idx_info_box {
    padding: 10vw 4vw 18vw 4vw;
  }

  #idx_tab_info .tab_info {
    margin-bottom: 8vw;
  }

  #idx_tab_info .tab_info .tabs li {
    width: 31%;
    margin: 0 1%;
    height: 40px;
    font-size: 90%;
  }

  #idx_tab_info .info_list li a {
    padding: 15px 5px;
  }

  #idx_tab_info .info_list li a .title {
    width: 100%;
    padding-right: 20px;
  }

  #idx_tab_info .info_list li a .date_cate {
    width: 100%;
    display: flex;
    align-items: center;
  }

  #idx_tab_info .info_list .cate_name {
    font-size: 18px;
    padding: 0 0 0 15px;
    width: auto;
    margin-right: 15px;
  }

  #idx_tab_info .info_list li span.date {
    margin-right: 0;
    color: #666;
    font-size: 15px;
  }

  /*-- /idx_info ----------------------------
	------------------------------------------*/

  /*-- idx_order -----------------------------
	------------------------------------------*/
  .idx_order {
    padding: 15vw 0;
  }

  .idx_order .title_h2_order .en {
    font-size: 9vw;
    letter-spacing: 1vw;
  }

  .idx_order .title_h2_order .ja {
    font-size: 4.5vw;
  }

  .idx_order .btn_order {
    padding: 0 4vw;
    margin: 6vw auto 0;
  }

  .idx_order .btn_order a {
    height: 60px;
    font-size: 18px;
  }

  /*-- /idx_order ----------------------------
	------------------------------------------*/

  /*-- footer --------------------------------
	------------------------------------------*/
  .fContact .fContact-wrap .linkfull {
    left: 0;
    width: 100%;
  }

  .fContact-wrap::after {
    clip-path: none;
    top: 0;
    left: 0;
    top: -10px;
    background-image: url(../images/iContact-lines.svg);
    background-size: 750px auto;
    background-position: top center;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
  }

  .fContact-wrap::before {
    clip-path: none;
    background-size: 172px;
    background-position: bottom 50px right 20px;
  }

  .fContact-wrap:hover::before {
    background-position: bottom 50px right 20px;
  }

  .fContact-h3 {
    margin-bottom: 5vw;
  }

  .fContact-wrap {
    padding: 10vw 4vw;
  }

  .fContact .ens {
    font-size: 12vw;
  }

  .fContact-desc {
    padding-bottom: 12vw;
    padding-right: 15vw;
    line-height: 2.1875em;
  }

  .fPartner {
    padding: 12vw 4vw 15vw 4vw;
  }

  .fPartner h2 {
    font-size: 5.5vw;
    margin-bottom: 6vw;
  }

  .fPartner_flex {
    gap: 0;
    flex-wrap: wrap;
  }

  .fPartner_flex .item {
    height: 100px;
  }

  .fPartner_flex .item.official {
    margin-bottom: 10px;
  }

  .fPartner_flex .item .title {
    line-height: 1;
    font-size: 20px;
  }

  .fPartner_flex .item .title .en {
    font-size: 25px;
  }

  .fPartner_flex .item.dentists .thumb {
    width: 80%;
    margin: 0 auto;
  }

  .fPartner_flex .item .txt {
    font-size: 16px;
  }

  .fnav {
    padding: 15vw 4vw 24vw 4vw;
  }

  .fnav-flex {
    flex-wrap: wrap;
  }

  .fnav-list ul li {
    margin-bottom: 10px;
  }

  .fnav-info {
    margin-top: 6vw;
  }

  .to-top>a {
    width: 50px;
    height: 50px;
  }

  .fnav-info .fadd {
    letter-spacing: 0;
    line-height: 1.85em;
  }

  .fnav-info .fadd p {
    font-size: 95%;
  }

  .fnav-info .fadd address {
    top: -15px;
  }

  /*-- /footer -------------------------------
	------------------------------------------*/
}