@charset "UTF-8";
/*$bgColor:#FFF;
$baseColor:#444;
$subcolor:#CCC;
$link:#444;
$link-hover:#444;
$white:#FFF;*/
/*
$fontSize14: 1.4rem;
$fontSize16: 1.6rem;
$fontSize18: 1.8rem;
$fontSize20: 2.0rem;
$fontSize24: 2.4rem;
$fontSize30: 3.0rem;
*/
.title-area {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: right center;
  padding: 80px 0 25px;
  margin-bottom: 40px; }
  @media screen and (max-width: 768px) {
    .title-area {
      padding: 70px 0 25px;
      margin-bottom: 30px; } }
  @media screen and (max-width: 480px) {
    .title-area {
      padding: 50px 0 20px;
      margin-bottom: 25px; } }
  .title-area.title-bg1 {
    background-image: url("../images/title-bg1.jpg"); }
  .title-area.title-bg2 {
    background-image: url("../images/title-bg2.jpg"); }
  .title-area.title-bg3 {
    background-image: url("../images/title-bg3.jpg"); }
  .title-area.title-bg4 {
    background-image: url("../images/title-bg4.jpg"); }
  .title-area.title-bg5 {
    background-image: url("../images/title-bg5.jpg"); }
  .title-area.title-bg6 {
    background-image: url("../images/title-bg6.jpg"); }

h1 {
  width: 1024px;
  margin: 0 auto;
  font-size: 2.4rem;
  line-height: 1.0em;
  font-weight: 700;
  color: #026767;
  box-sizing: border-box; }
  @media screen and (max-width: 1100px) {
    h1 {
      width: 94%; } }
  @media screen and (max-width: 768px) {
    h1 {
      font-size: 2.0rem; } }
  @media screen and (max-width: 480px) {
    h1 {
      font-size: 2.0rem; } }
  h1 span {
    background-image: url("../images/title-arrow.png");
    background-size: auto;
    background-repeat: no-repeat;
    background-position: left center;
    padding-left: 25px; }

h2 {
  font-weight: 700;
  font-size: 2.0rem;
  color: #026767;
  margin-top: 30px;
  background-image: url("../images/arrow1.svg");
  background-size: 0.8em;
  background-repeat: no-repeat;
  background-position: left 0.5em;
  padding-left: 1em; }
  h2.search-title {
    background-image: none;
    padding-left: 0;
    border-bottom: 2px dotted #026767; }

.mg-top {
  margin-top: 1.5em; }

/*メインビジュアル*/
#main-bj-bg {
  background-image: linear-gradient(0deg, #EAFCFC, #FFF); }

#main-bj {
  padding: 40px 0;
  position: relative;
  text-align: center;
  background: url("../images/mj-bg.webp");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center bottom; }
  @media screen and (max-width: 480px) {
    #main-bj {
      padding: 20px 0; } }
  #main-bj h1 {
    font-size: 1.4rem;
    line-height: 1.6em;
    font-weight: normal;
    color: #333; }
  #main-bj .mj-img {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; }
    #main-bj .mj-img img {
      width: 300px; }
      @media screen and (max-width: 768px) {
        #main-bj .mj-img img {
          width: 40%; } }
      @media screen and (max-width: 480px) {
        #main-bj .mj-img img {
          width: 48%; } }
  #main-bj .mj-logo {
    position: absolute;
    right: 40px;
    bottom: 20px;
    width: 140px; }
    @media screen and (max-width: 768px) {
      #main-bj .mj-logo {
        width: 100px;
        right: 20px;
        bottom: 20px; } }
    @media screen and (max-width: 480px) {
      #main-bj .mj-logo {
        width: 80px;
        right: 10px;
        bottom: 10px; } }

#map-area {
  width: 600px;
  margin: 80px auto 0; }
  @media screen and (max-width: 768px) {
    #map-area {
      width: 94%;
      margin: 50px auto 0; } }
  @media screen and (max-width: 480px) {
    #map-area {
      margin: 40px auto 0; } }

#box, #movie, #news, #inner, #privacy, #about {
  width: 1024px;
  margin: 0 auto; }
  @media screen and (max-width: 1100px) {
    #box, #movie, #news, #inner, #privacy, #about {
      width: 94%; } }

#movie {
  margin: 80px auto; }
  @media screen and (max-width: 768px) {
    #movie {
      margin: 50px auto; } }
  @media screen and (max-width: 480px) {
    #movie {
      margin: 40px auto; } }
  #movie .mv {
    width: 85%;
    margin: 1.5em auto 0; }
    @media screen and (max-width: 768px) {
      #movie .mv {
        width: 100%; } }
    #movie .mv div {
      position: relative;
      height: 0;
      padding: 0 0 56.25%;
      overflow: hidden;
      box-sizing: border-box; }
      #movie .mv div iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; }

#box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  #box .ml-box {
    width: 49%;
    border-radius: 6px;
    border: 1px solid #DDD;
    background-image: linear-gradient(0deg, #EAFCFC, #FFF);
    box-sizing: border-box;
    padding: 1.2em;
    font-size: 1.5rem;
    line-height: 1.6em;
    color: #026767; }
    @media screen and (max-width: 768px) {
      #box .ml-box {
        width: 100%;
        margin-bottom: 15px; } }
    #box .ml-box .sm-text {
      font-size: 1.2rem;
      line-height: 1.6em; }
    #box .ml-box h2 {
      margin: 0 auto 0.6em;
      background-position: left 0.25em; }
    #box .ml-box .btn-area {
      margin-top: 1em; }
      #box .ml-box .btn-area .btn,
      #box .ml-box .btn-area a.btn,
      #box .ml-box .btn-area button.btn {
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.5;
        position: relative;
        display: inline-block;
        width: 100%;
        box-sizing: border-box;
        padding: 1rem 0;
        cursor: pointer;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        -webkit-transition: all 0.3s;
        transition: all 0.3s;
        text-align: center;
        vertical-align: middle;
        text-decoration: none;
        letter-spacing: 0.1em;
        color: #212529;
        border-radius: 0.5rem; }
      #box .ml-box .btn-area a.btn--orange {
        color: #fff;
        background-color: #eb6100;
        border-bottom: 5px solid #b84c00; }
        #box .ml-box .btn-area a.btn--orange:hover {
          margin-top: 3px;
          color: #fff;
          background: #f56500;
          border-bottom: 2px solid #b84c00; }
      #box .ml-box .btn-area a.btn--shadow {
        -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
        box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3); }

/*新着情報*/
#news {
  margin-top: 80px; }
  @media screen and (max-width: 768px) {
    #news {
      margin-top: 50px; } }
  @media screen and (max-width: 480px) {
    #news {
      margin-top: 40px; } }
  #news h2 span {
    font-size: 1.4rem;
    color: #289F9F;
    margin-left: 1em; }
  #news dl {
    display: flex;
    flex-wrap: wrap;
    height: 500px;
    overflow: scroll; }
    #news dl::-webkit-scrollbar {
      width: 10px;
      height: 10px; }
    #news dl::-webkit-scrollbar-track {
      border-radius: 5px;
      background: rgba(110, 108, 108, 0.2); }
    #news dl::-webkit-scrollbar-thumb {
      border-radius: 5px;
      background: #FF9D3A; }
    #news dl dt, #news dl dd {
      padding: 6px 0;
      border-top: 1px dotted #DDD; }
    #news dl dt {
      width: 20%;
      color: #AAA;
      font-weight: 700; }
      #news dl dt:first-of-type {
        border-top: none; }
      @media screen and (max-width: 768px) {
        #news dl dt {
          width: 100%;
          padding-bottom: 0; } }
    #news dl dd {
      width: 80%; }
      #news dl dd:nth-child(2) {
        border-top: none; }
      @media screen and (max-width: 768px) {
        #news dl dd {
          padding-top: 0;
          border-top: none; } }

/*ミラクルフィットとは*/
#about .about-box {
  margin: 0 auto 30px;
  background-image: url("../images/miracl-fit-logo.png");
  background-size: 180px;
  background-repeat: no-repeat;
  background-position: right bottom; }
  @media screen and (max-width: 768px) {
    #about .about-box {
      background-size: 140px; } }
  @media screen and (max-width: 480px) {
    #about .about-box {
      background-size: 100px;
      padding-bottom: 40px;
      margin-bottom: 10px; } }
  #about .about-box .sub-title {
    font-size: 3.0rem;
    line-height: 1.6em;
    margin-bottom: 1em;
    color: #026767; }
    @media screen and (max-width: 768px) {
      #about .about-box .sub-title {
        font-size: 2.4rem; } }
    @media screen and (max-width: 480px) {
      #about .about-box .sub-title {
        font-size: 2.2rem; } }
#about .img-area {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 30px 0; }
  @media screen and (max-width: 480px) {
    #about .img-area {
      margin-top: 10px; } }
  #about .img-area figure {
    border: 1px solid #DDD;
    border-radius: 6px;
    background-image: linear-gradient(0deg, #97e9ff, #FFF);
    width: 24%; }
    @media screen and (max-width: 480px) {
      #about .img-area figure {
        width: 49%;
        margin-top: 10px; } }
    #about .img-area figure img {
      border-radius: 6px; }
#about .info-area {
  background-color: #ECF5F4;
  border-radius: 6px;
  margin: 50px 0;
  padding: 30px; }
  #about .info-area p {
    margin-bottom: 1em; }
    #about .info-area p:last-of-type {
      margin-bottom: 0; }
    #about .info-area p span {
      color: #FF0004; }
#about ul {
  margin-left: 1.5em; }
  #about ul li {
    background-image: url("../images/arrow2.svg");
    background-size: 0.4em;
    background-repeat: no-repeat;
    background-position: left 0.6em;
    padding-left: 0.7em; }

/*症例と患者さんの声*/
.case {
  margin-top: 30px; }
  .case table {
    border-collapse: collapse;
    width: 100%;
    box-sizing: border-box;
    vertical-align: middle;
    border-spacing: 0;
    margin-top: 1em; }
    .case table tr:first-of-type {
      display: table-row; }
      @media screen and (max-width: 768px) {
        .case table tr:first-of-type {
          display: none; } }
    .case table th, .case table td {
      display: table-cell;
      width: auto;
      padding: 6px;
      text-align: center;
      vertical-align: middle;
      box-sizing: border-box;
      border: 1px solid #DDD; }
      @media screen and (max-width: 768px) {
        .case table th, .case table td {
          display: block;
          width: 100%;
          text-align: left; } }
    .case table th {
      background-color: #398988;
      color: #FFF; }
    .case table td {
      font-size: 1.4rem; }
      .case table td::before {
        display: none; }
        @media screen and (max-width: 768px) {
          .case table td::before {
            display: inline-block;
            content: attr(data-type);
            width: 7em;
            font-weight: 700;
            color: #398988; } }
        .case table td::before:first-of-type {
          display: block; }
          @media screen and (max-width: 768px) {
            .case table td::before:first-of-type {
              background-color: #ECF4F4; } }
    .case table img {
      width: 15px;
      height: 15px; }
      @media screen and (max-width: 480px) {
        .case table img {
          width: 12px;
          height: 12px; } }
    .case table .clinic {
      margin: 0; }
      @media screen and (max-width: 768px) {
        .case table .clinic {
          margin-left: 7em; } }
  .case .defect {
    display: flex;
    align-items: center;
    justify-content: center; }
    @media screen and (max-width: 768px) {
      .case .defect {
        justify-content: flex-start;
        margin-left: 7em; } }
    .case .defect div {
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1.2em;
      padding: 3px; }
  .case .defect1 {
    display: flex;
    align-items: center; }
    .case .defect1 div {
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1.2em;
      padding: 3px; }
  .case .fuwatto_btn {
    display: inline-block;
    background-color: #FFC605;
    color: #FFF;
    padding: 0.3em 0.8em;
    text-decoration: none;
    border-radius: 4px;
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
    -webkit-tap-highlight-color: transparent;
    transition: .3s ease-out; }
    .case .fuwatto_btn:hover {
      cursor: pointer;
      text-decoration: none;
      box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.12), 0 3px 20px 0 rgba(0, 0, 0, 0.12), 0 5px 6px -2px rgba(0, 0, 0, 0.2); }
  .case .voice_top {
    font-weight: 700;
    border-bottom: 1px dotted #398988;
    margin-bottom: 1em;
    color: #398988; }
  .case .voice_2 {
    /*
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    */
    margin-top: 1em;
    background-color: #ECF5F4;
    border: 1px solid #DDD;
    border-radius: 6px;
    padding: 30px;
    box-sizing: border-box; }
    @media screen and (max-width: 768px) {
      .case .voice_2 {
        padding: 20px; } }
    @media screen and (max-width: 480px) {
      .case .voice_2 {
        padding: 15px; } }

/*検索窓*/
.search-form-012 {
  margin: 1em 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 300px;
  /* 任意の幅に調整してください */
  overflow: hidden;
  border-radius: 6px;
  background-color: #e6edf3; }
  .search-form-012 input {
    height: 45px;
    padding: 5px 15px;
    border: none;
    box-sizing: border-box;
    background-color: #e6edf3;
    font-size: 1em;
    outline: none; }
    .search-form-012 input::placeholder {
      color: #767d83; }
  .search-form-012 button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 45px;
    border: none;
    background-color: transparent;
    cursor: pointer; }
    .search-form-012 button::after {
      width: 20px;
      height: 20px;
      background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%20%3Cpath%20d%3D%22M23.7%2020.8%2019%2016.1c-.2-.2-.5-.3-.8-.3h-.8c1.3-1.7%202-3.7%202-6C19.5%204.4%2015.1%200%209.7%200S0%204.4%200%209.7s4.4%209.7%209.7%209.7c2.3%200%204.3-.8%206-2v.8c0%20.3.1.6.3.8l4.7%204.7c.4.4%201.2.4%201.6%200l1.3-1.3c.5-.5.5-1.2.1-1.6zm-14-5.1c-3.3%200-6-2.7-6-6s2.7-6%206-6%206%202.7%206%206-2.6%206-6%206z%22%20fill%3D%22%23767d83%22%3E%3C%2Fpath%3E%20%3C%2Fsvg%3E");
      background-repeat: no-repeat;
      content: ''; }

.area-search {
  display: flex;
  flex-wrap: wrap; }
  .area-search .button {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    margin: 0 10px 10px 0;
    width: 170px;
    padding: .5em 3em .5em 1em;
    box-sizing: border-box;
    border: 1px solid #398988;
    border-radius: 5px;
    background-color: #fff;
    color: #398988;
    font-size: 1em; }
    @media screen and (max-width: 480px) {
      .area-search .button {
        width: 150px; } }
    .area-search .button::after {
      position: absolute;
      right: 1.0em;
      transform: translateY(-50%);
      transform-origin: left;
      width: 1.5em;
      height: .5em;
      background-color: #398988;
      clip-path: polygon(0 100%, 100% 100%, 70% 40%, 70% 90%, 0% 90%);
      content: '';
      transition: transform .3s; }
    .area-search .button:hover::after {
      transform: translateY(-50%) scaleX(1.4); }

.clinic_name {
  margin-top: 30px;
  margin-bottom: 1px; }
  .clinic_name span {
    border: 1px solid #398988;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    color: #398988;
    font-weight: 700;
    padding: 5px 1.2em;
    background-image: linear-gradient(0deg, #EAFCFC, #FFF);
    font-size: 1.8rem; }

.clinic_pro {
  border: 1px solid #398988;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
  border-top-right-radius: 6px;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  @media screen and (max-width: 768px) {
    .clinic_pro {
      padding: 20px; } }
  @media screen and (max-width: 480px) {
    .clinic_pro {
      padding: 15px; } }
  .clinic_pro figure {
    width: 17%; }
    @media screen and (max-width: 768px) {
      .clinic_pro figure {
        width: 100%;
        margin: 0 auto 15px; } }
  .clinic_pro dl {
    width: 78%;
    display: flex;
    flex-wrap: wrap; }
    @media screen and (max-width: 768px) {
      .clinic_pro dl {
        width: 100%; } }
    .clinic_pro dl dt, .clinic_pro dl dd {
      padding: 4px 0;
      border-top: 1px dotted #DDD; }
    .clinic_pro dl dt {
      width: 20%;
      color: #0F6F6E; }
      @media screen and (max-width: 768px) {
        .clinic_pro dl dt {
          width: 100%;
          padding-bottom: 0; } }
      .clinic_pro dl dt:first-of-type {
        border-top: none; }
    .clinic_pro dl dd {
      width: 80%; }
      @media screen and (max-width: 768px) {
        .clinic_pro dl dd {
          width: 100%;
          border-top: none;
          padding-top: 0; } }
      .clinic_pro dl dd:nth-child(2) {
        border-top: none; }
    .clinic_pro dl a {
      color: #0F6F6E;
      text-decoration: underline; }
  .clinic_pro table {
    width: 100%;
    border-collapse: collapse; }
    .clinic_pro table th, .clinic_pro table td {
      padding: 3px 10px;
      border: 1px solid #DDD;
      text-align: center;
      vertical-align: middle; }
    .clinic_pro table th {
      background-color: #E6F0F1; }
    .clinic_pro table td {
      font-size: 1.4rem; }
    .clinic_pro table .red {
      color: #FF0004; }

/*ミラクルラボ*/
.mlb-box {
  margin: 1em auto 1em;
  border: 1px solid #EEE;
  padding: 1em 1.5em;
  box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border-radius: 6px; }
  @media screen and (max-width: 480px) {
    .mlb-box {
      padding: 1em 1em; } }
  .mlb-box .name {
    width: 100%;
    font-weight: 700;
    border-bottom: 1px dotted #CCC;
    margin-bottom: 0.5em; }
    .mlb-box .name .joined-year {
      margin-left: 1em;
      font-size: 0.8em;
      font-weight: normal;
      color: #AAA; }
  .mlb-box figure {
    width: 15%; }
    @media screen and (max-width: 1100px) {
      .mlb-box figure {
        width: 20%; } }
    @media screen and (max-width: 768px) {
      .mlb-box figure {
        width: 20%; } }
    @media screen and (max-width: 480px) {
      .mlb-box figure {
        width: 23%; } }
    .mlb-box figure img {
      display: inline-block;
      border-radius: 5px; }
  .mlb-box .technician {
    width: 82%;
    font-size: 0.9em;
    line-height: 1.8em; }
    @media screen and (max-width: 1100px) {
      .mlb-box .technician {
        width: 77%; } }
    @media screen and (max-width: 768px) {
      .mlb-box .technician {
        width: 77%;
        font-size: 1.0em; } }
    @media screen and (max-width: 480px) {
      .mlb-box .technician {
        width: 75%; } }

.mlb-contact {
  text-align: right; }
  .mlb-contact span {
    font-weight: 700; }

/*個人情報保護法*/
#privacy dl {
  margin-bottom: 30px; }
  #privacy dl dt, #privacy dl dd {
    border: 1px solid #DDD;
    padding: 15px 30px;
    box-sizing: border-box; }
    @media screen and (max-width: 768px) {
      #privacy dl dt, #privacy dl dd {
        padding: 10px 20px; } }
    @media screen and (max-width: 480px) {
      #privacy dl dt, #privacy dl dd {
        padding: 10px 15px; } }
  #privacy dl dt {
    font-weight: 700;
    background-color: #E6F0F1;
    color: #398988;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    margin-top: 30px; }
  #privacy dl dd {
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    border-top: none; }

/*マーカー*/
.marker-animation.active {
  background-position: -100% .5em; }

.marker-animation {
  background-image: -webkit-linear-gradient(left, transparent 50%, #E1F3E0 50%);
  background-image: -moz-linear-gradient(left, transparent 50%, #E1F3E0 50%);
  background-image: -ms-linear-gradient(left, transparent 50%, #E1F3E0 50%);
  background-image: -o-linear-gradient(left, transparent 50%, #E1F3E0 50%);
  background-image: linear-gradient(left, transparent 50%, #E1F3E0 50%);
  background-repeat: repeat-x;
  background-size: 200% .8em;
  background-position: 0 .5em;
  transition: all 2s ease;
  font-weight: bold; }

.marker-animation1.active {
  background-position: -100% .5em; }

.marker-animation1 {
  background-image: -webkit-linear-gradient(left, transparent 50%, #fffa99 50%);
  background-image: -moz-linear-gradient(left, transparent 50%, #fffa99 50%);
  background-image: -ms-linear-gradient(left, transparent 50%, #fffa99 50%);
  background-image: -o-linear-gradient(left, transparent 50%, #fffa99 50%);
  background-image: linear-gradient(left, transparent 50%, #fffa99 50%);
  background-repeat: repeat-x;
  background-size: 200% .8em;
  background-position: 0 .5em;
  transition: all 2s ease;
  font-weight: bold; }

.mvFadeUp {
  animation-name: mvFadeUpAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes mvFadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(40px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
/*ページ送り*/
#pageEjection {
  text-align: center;
  clear: both;
  margin-bottom: 20px;
  margin-top: 20px; }
  #pageEjection span {
    padding-top: 5px;
    padding-right: 10px;
    padding-bottom: 5px;
    padding-left: 10px;
    border: 1px solid #AAA;
    color: #333333;
    text-decoration: none;
    display: inline-block;
    background-color: #d3d3d3; }
  #pageEjection a {
    padding-top: 5px;
    padding-right: 10px;
    padding-bottom: 5px;
    padding-left: 10px;
    border: 1px solid #AAA;
    color: #AAA;
    text-decoration: none;
    display: inline-block;
    background-color: #FFF;
    border-radius: 3px; }
    #pageEjection a:hover {
      background-color: #AAA;
      border-radius: 3px;
      color: #FFF; }
