@charset "UTF-8";
/* CSS Document */

/*							*/
/*			Reset			*/
/*							*/
*,
*::before,
*::after {
    box-sizing: border-box;
    font-feature-settings: "palt"
}

body {
    margin: 0;
    padding: 0;
    border: none
}

img,
div,
p,
blockquote,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
dl,
dt,
dd,
form,
fieldset,
textarea,
address,
main,
article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav,
section {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    text-decoration: none;
    list-style-type: none;
}

main,
article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav,
section {
    display: block
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: inherit
}

table {
    border: none;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0
}

th,
td {
    text-align: left;
    vertical-align: top
}

caption {
    text-align: left
}

h1,
h2,
h3,
h4,
h5,
h6,
dt,
p {
    overflow-wrap: break-word;
    -ms-word-wrap: break-word;
    word-wrap: break-word;
}

br {
    display: inline-block;
}

a {
    transition: color text-decoration 250ms;
    color: #185FA4;
    text-decoration: underline;
}

a,
a:focus,
a:hover,
a:active {
    outline: 0
}

input,
input:focus,
input:hover,
input:active,
textarea,
textarea:focus,
textarea:hover,
textarea:active {
    outline: 0
}

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

strong {
    font-weight: 700;
}

figure {
    margin: 0;
}

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

address {
    display: block;
    font-style: normal;
}

::selection {
    background: #3F5C76;
    color: #fff;
}

::-moz-selection {
    background: #3F5C76;
    color: #fff;
}

::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background-color: rgba(#3F5C76, 0.5);
    opacity: 0;
}

::-webkit-scrollbar-thumb {
    background-color: #3F5C76;
    border-radius: 100vh;
    box-shadow: 2px 2px 5px rgba(#000, 0.5);
}

/*							*/
/*		html & body			*/
/*							*/
html {
    font-size: 10px
}

body {
    color: #0E141A;
    font-family: -apple-system, YuGothic, BlinkMacSystemFont, "Yu Gothic Medium", "Yu Gothic", Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, Verdana, Meiryo, sans-serif;
    font-size: 2rem;
    line-height: 1.9;
    letter-spacing: 0;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

@media only screen and (min-width: 1366px) {
    html {
        font-size: 12.5px
    }
}

@media only screen and (max-width: 768px) {
    html {
        font-size: 2.564vw
    }

    body {
        font-size: 1.8rem
    }
}

/*fonts*/

/*Frame*/

/*class*/
.inner {
    max-width: 1240px;
    margin: 0 auto;
}

.flex {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.col {
    display: grid;
}

.col2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 3%;
}

.col3 {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.4%;
}

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

    .col2,
    .col3 {
        grid-template-columns: repeat(1, 1fr);
    }
}

.background-color-base {
    background-color: #EFFFFC;
    padding: 10rem 0;
}

.background-color-sub,
.background-color-sub {
    background-color: #FFFBEF;
}

.level1-heading,
.level2-heading,
.level3-heading,
.level4-heading,
.level5-heading {
    font-weight: bold;
}

.level1-heading {
    font-size: 5.2rem;
    line-height: 1.2;
    color: #3F5C76;
    margin-bottom: 2rem;
    position: relative;
    padding-bottom: 2.5rem;
}

.level1-heading__inner {
    display: inline-block;
    font-size: 2rem;
    padding-bottom: 2.5rem;
    color: #4BCCB9;
    font-family: "Akshar", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
    text-transform: uppercase;
}

.level1-heading::before,
.level1-heading::after {
    position: absolute;
    content: '';
    display: block;
    bottom: 0;
    left: 0;
    border: 1px solid #3F5C76;
}

.level1-heading::before {
    width: 100%;
}

.level1-heading::after {
    border-color: #4BCCB9;
    width: 16%;
}

.level2-heading {
    font-size: 3.8rem;
    line-height: 1.2;
    padding-bottom: 2.8rem;
    margin-bottom: 2.5rem;
    color: #3F5C76;
    position: relative;
}

.level2-heading::after {
    position: absolute;
    content: '';
    display: block;
    bottom: 0;
    left: 0;
    border: 1px solid #4BCCB9;
}

.level2-heading::after {
    width: 20rem;
}

.level3-heading {
    font-size: 3.8rem;
    line-height: 1.2;
    color: #3F5C76;
    margin-bottom: 1rem;
}

.level4-heading {
    color: #FF5294;
    font-size: 2.8rem;
    margin-bottom: 1.333rem;
    text-align: center;
}

.level5-heading {
    text-align-last: left;
    color: #34CFBD;
    font-size: 2.8rem;
    margin-bottom: 2rem;
}

.small {
    font-size: 1.4rem;
}

.fz-1 {
    font-size: 5.8rem;
}

.fz-2 {
    font-size: 4.6rem;
}

.fz-3 {
    font-size: 2.8rem;
}

.fz-4 {
    font-size: 2.6rem;
}

.fz-5 {
    font-size: 2rem;
}

.fz-6 {
    font-size: 1.6rem;
}

.arrow-up-right-from-square::before {
    content: '';
    display: inline-block;
    margin-right: .7em;
    width: .9em;
    height: 1em;
    background-image: url('../images/arrow-up-right-from-square.svg');
    background-size: contain;
    background-position: center bottom;
    background-repeat: no-repeat;
}

@media screen and (max-width: 768px) {
    .level1-heading {
        font-size: 3.6rem;
    }

    .level2-heading {
        font-size: 3rem;
    }

    .level3-heading {}

    .fz-1 {
        font-size: 14.872vw;
    }

    .fz-2 {
        font-size: 11.795vw;
    }

    .fz-3 {
        font-size: 2.2rem;
    }

    .fz-6 {
        font-size: 14px;
    }
}

.mb10r {
    margin-bottom: 10rem;
}

.mb6r {
    margin-bottom: 6rem;
}

.mb4r {
    margin-bottom: 4rem;
}

.mb2r {
    margin-bottom: 2rem;
}

.aligncenter {
    text-align: center;
}

.alignright {
    text-align: right;
}

.btn {
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0;
    color: #fff;
    text-align: center;
    display: inline-block;
    padding: 3rem 10rem;
    background-color: #3F5C76;
    border: 2px solid #3F5C76;
    text-decoration: none;
    border-radius: 100vh;
    transition: all .5s;
    cursor: pointer;
    margin: 10rem auto;
}

.btn:hover {
    background-color: #4BCCB9;
    transform: scale(1.1);
}

@media screen and (max-width: 768px) {
    .btn {
        font-size: 2.4rem;
        padding: 2rem 3.2rem;
        display: block;
    }
}

.js-fadeIn {
    opacity: 0;
    transition-duration: 500ms;
    transition-property: opacity, transform;
}

.fade-in-up {
    transform: translate(0, 50px);
}

.fade-in-down {
    transform: translate(0, -50px);
}

.fade-in-left {
    transform: translate(-50px, 0);
}

.fade-in-right {
    transform: translate(50px, 0);
}

.is-scrollIn {
    opacity: 1;
    transform: translate(0, 0);
}

.pc_only {
    display: inherit;
}

.sp_only {
    display: none;
}

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

    .sp_only {
        display: inherit;
    }
}

/*layout*/
.contents-wrap {
    max-width: 1200px;
    margin: 20rem auto 0;
    padding: 0 2rem;
}

.contents-wrap-color {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

@media screen and (min-width: 1240px) {

    .contents-wrap,
    .contents-wrap-color {
        padding: 0;
    }
}

.merit {
    margin-top: 20rem;
}

.page-main {
    padding: 6rem 0;
}

.page-main .contents-wrap {
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .merit {
        margin-top: 10rem;
    }
}

/* header */
.header__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.header-utilities__logo {
    display: inline-block;
    width: 166px;
    margin-top: 20px;
}

.jumbotron {
    padding-top: calc(730 / 1200 * 100%);
    background-image: url('../images/mainv.png');
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
    text-indent: -9999px;
    height: 0;
}

.page .jumbotron {
    padding-top: calc(300 / 1200 * 100%);
    background-image: url('../images/page-mainv.png');
}


@media screen and (min-width: 1240px) {
    .header__inner {
        padding: 0;
    }
}

@media screen and (max-width: 768px) {
    .jumbotron {
        padding-top: calc(676 / 374 * 100%);
        background-image: url('../images/mainv-sp.png');
    }
}

/* contents */
.half-media {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
    gap: 2rem;
}

.half-media__img-wrapper {
    text-align: center;
}

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

    .half-media__img-wrapper {
        margin-top: 2rem;
    }
}

.media {
    display: grid;
    grid-template-columns: 1fr 43.7rem;
    gap: 6rem;
    margin-top: 14rem;
}

.choosing .media {
    min-height: 20rem;
    margin-top: 0;
    margin-bottom: 5rem;
    align-items: center;
}

.contentscolumn .media {
    place-items: start center;
    margin-top: 10rem;
}

.media-left {
    grid-template-columns: 30rem 1fr;
    gap: 3rem;
    margin-top: 2rem;
}

.media__img-wrapper {
    display: grid;
    place-content: center;
    place-items: center;
}

.media__text {
    /* css-wipeではスタイリングなし */
}

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

    .media__img-wrapper {
        margin: 2rem auto;
    }
}

.photo {
    margin-top: 20rem;
}

.photo img {
    margin-right: 2rem;
}

.photo-bottom {
    margin-top: 8rem;
}

@media screen and (max-width: 768px) {
    .photo {
        margin-top: 10rem;
    }
}

.cta {
    background-image: url('../images/cta-bg.jpg');
    background-size: cover;
    background-position: center center;
    padding: 8rem 0;
}

.cta__title {
    font-size: 2.4rem;
    display: inline-block;
    color: #313841;
    background-color: #5FFFE7;
    padding: 2.4rem 11rem;
    font-weight: bold;
}

.cta__tel,
.cta__open {
    color: #fff;
    font-weight: bold;
}

.cta__tel {
    font-size: 6rem;
    margin-top: 2.8rem;
}

.cta__open {
    font-size: 2.4rem;
}

@media screen and (max-width: 768px) {
    .cta__title {
        font-size: 2.4rem;
        display: inline-block;
        color: #313841;
        background-color: #5FFFE7;
        padding: 2rem;
        font-weight: bold;
    }

    .cta__tel {
        font-size: 4rem;
        margin-top: 2rem;
    }

    .cta__open {
        font-size: 1.6rem;
    }
}

#footer {
    font-size: 1.6rem;
    text-align: center;
    padding: 8rem 0 6rem;
}

#footer a {
    color: #FFF;
}

#footer p {
    font-size: 1.6rem;
    margin-bottom: 1rem;
}

.footerlogo {
    vertical-align: bottom;
}