@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/
/* WEBフォントインポート  */
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP&display=swap");
@import url("https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500;600;700;800&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@100;300;400;500&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;500;600;700&display=swap");

body {
    font-family: "Zen Maru Gothic", "Noto Sans JP" !important;
    letter-spacing: 0.1em !important;
}

/*-------------------------------------------
            基本設定
-------------------------------------------*/
.l-content {
    margin: 0 auto;
    padding-top: 0;
}

.post_content > * {
    margin-bottom: 0;
}

.center {
    text-align: center !important;
}

.top #content {
    padding-top: 0 !important;
}

/*  スマホのときだけ改行 */
.spon {
    display: none;
}

@media (max-width: 599px) {
    .spon {
        display: block;
    }
}

@media (min-width: 600px) {
    .u-fz-14 {
        font-size: 25px;
    }
}

.none-border {
    border: none !important;
}

.mincho {
    font-family: "noto serif JP";
}

.bossn {
    font-family: "ab-shinyubipenjigyosyotai", sans-serif;
}

/*-----------見出し-----------------------*/
.post_content h2 {
    font-weight: 300;
    font-size: 2em;
    letter-spacing: 0.1em;
    margin-bottom: 1em;
    font-weight: 400 !important;
}

@media (min-width: 768px) {
    .post_content h2 {
        font-size: 2.5em;
        letter-spacing: 0.1em;
    }
}

.is-style-section_ttl span {
    font-size: 18px;
    display: block;
    font-weight: 400;
}

.is-style-section_ttl span:before,
h2.borderline:before {
    position: absolute;
    top: 65%;
    left: calc(50% - 10%);
    width: 20%;
    height: 1px;
    content: "";
    border-radius: 0px;
    background: #fff;
    right: 50%;
}

@media (max-width: 767px) {
    .is-style-section_ttl span:before,
    h2.borderline:before {
        top: 60%;
    }

    .fs_xl,
    .has-huge-font-size,
    .has-xl-font-size,
    .u-fz-xl {
        font-size: 1.5em !important;
    }
}

.line-bl span:before {
    background: #000 !important;
}

.hd-margin {
    margin: 1em 0 !important;
}

.no-margin {
    margin-top: 0.25em !important;
    margin-bottom: 0.5em !important;
}

/*-------------左寄せ----------------------*/
.m-left {
    text-align: left !important;
    font-size: 1.5em !important;
}

@media (min-wdith: 768px) {
    .m-left {
        font-size: 2em !important;
    }
}

/*---------row-reverse--------------*/
.row-reverse {
    flex-direction: row-reverse !important;
}

/*--swellボタンをhtml内に設置する際のmargin--*/
.btn-margin {
    margin: 40px auto 10px;
}

/*------padding-top----------------------*/
.padding-top {
    padding-top: 5em;
}

/*------------ボタンキラリの設定----------*/
.is-style-btn_shiny a {
    color: #fff !important;
    font-family: "Noto Sans Japanese";
}

/*-----------ボタン------------*/
.green_ a:hover {
    color: #000 !important;
}

.btn-left {
    text-align: left;
}

@media (max-width: 767px) {
    .btn-left {
        text-align: center;
    }
}
/*-------フルワイドのマージン調整------------*/
.swell-block-fullWide + .swell-block-fullWide {
    margin-top: 0;
}
/*------------pのlineheight調整-------------*/
.line-height_25 {
    line-height: 2.5;
}

@media (max-width: 767px) {
    .line-height_25 {
        line-height: 1.8;
    }

    .has-medium-font-size {
        font-size: 15pxf !important;
    }
}
/*-------------------------------------------
SPヘッダー
-------------------------------------------*/
.l-header__menuBtn {
    display: none;
}
/*-------------------------------------------
        メニューの文字の大きさ
--------------------------------------------*/
@media (min-width: 1280px) {
    .c-gnav > .menu-item > a .ttl {
        display: block;
        font-size: 1.05rem;
    }
}

/*-------------------------------------------
            固定ページヘッダー
-------------------------------------------*/

.c-pageTitle {
    font-size: 3em;
    font-weight: 400;
    text-align: center;
}

@media (min-width: 600px) {
    .l-topTitleArea {
        min-height: 300px;
    }

    .c-pageTitle {
        font-size: 4em;
        letter-spacing: 0.2em;
        font-weight: 300;
        text-align: left;
    }
}

/*-------------------------------------------
            MVのテキスト
-------------------------------------------*/
@media screen and (min-width: 800px) {
    .p-mainVisual__textLayer {
        left: 60%;
    }
}

.t-mainVisual_box {
    position: absolute;
    top: 15%;
    right: 1%;
    max-width: 950px;
    z-index: 10000;
}

.mv-inner_box {
    position: relative;
    padding: 5rem 6rem;
    background: rgba(255, 255, 255, 0.5);
    border: 5px solid #f0513c;
    border-radius: 10px;
}

.mv-inner_box:before {
    position: absolute;
    top: -3%;
    left: 2%;
    width: 96%;
    height: 106%;
    content: "";
    border: 5px solid #0eafa9;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.5);
}

.p-mainVisual__slideTitle {
    position: relative;
    color: #f0513c;
    z-index: 1;
    text-align: left;
    font-size: 3vw;
    font-weight: 700;
    text-shadow: rgba(0, 0, 0, 0.3) 2px 2px 4px;
}

.-height-full .p-mainVisual__slideText {
    position: relative;
    color: #0eafa9;
    z-index: 1;
    text-align: left;
    font-size: 2.5vw;
    font-weight: 500;
    text-shadow: rgba(0, 0, 0, 0.3) 2px 2px 4px;
}

.mvp {
    font-size: 0.5em;
    color: #fff;
    background: #0eafa9;
    border-radius: 15px;
    padding: 0.25em 0.5em;
}

@media (max-width: 799px) {
    .t-mainvisual_box {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
    }

    .t-mainVisual_box {
        position: absolute;
        top: 30%;
        right: 3%;
        max-width: 950px;
        z-index: 10000;
    }

    .p-mainVisual__slideTitle {
        font-size: 5vw;
    }

    .-height-full .p-mainVisual__slideText {
        font-size: 4vw;
    }

    .mvp {
        font-size: 2.2vw;
    }
}

@media (max-width: 768px) {
    .mv-inner_box {
        padding: 2rem 3rem;
    }
}

/*-------------------------------------------
        アコーディオン
--------------------------------------------*/
.round .swell-block-accordion.is-style-main .swell-block-accordion__title {
    border-radius: 10px !important;
}

.round .swell-block-accordion.is-style-main .swell-block-accordion__body {
    border: 3px solid var(--color_main);
    border-top: none;
    border-radius: 30px !important;
    margin-top: -2px;
}

/*-------------------------------------------
        FAQのQの背景
--------------------------------------------*/
.faq_q {
    background: #d9b9b9;
}

/*-------------------------------------------
        table黒線消す
--------------------------------------------*/
.wp-block-table td,
.wp-block-table th {
    border: 1px solid #ededed;
}

/*-------------------------------------------
        big step
--------------------------------------------*/

.is-style-big > .swell-block-step__item:first-child,
.is-style-big > .swell-block-step__item {
    border: 3px dashed #57a19f;
    border-radius: 10px;
}

.is-style-big > .swell-block-step__item {
    margin-top: 25px;
}

.is-style-big > .swell-block-step__item:before {
    border: 30px solid transparent;
    border-top: 29px solid #57a19f;
    display: block;
    height: 0;
    left: 50%;
    top: 100%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 0;
}

.is-style-big > .swell-block-step__item > .swell-block-step__number .__label {
    font-size: 18px;
}

.is-style-big > .swell-block-step__item > .swell-block-step__number:after {
    font-size: 25px;
    font-weight: 500;
}

/* 問い合わせタブのカスタム*/
@media (min-width: 600px) {
    .arkb-tabList__button,
    .c-tabList__button {
        font-size: 1.5em;
    }
}

/*Contact Form 7カスタマイズ*/
/*スマホContact Form 7カスタマイズ*/
.inquiry table,
.inquiry tbody,
.inquiry tr,
.inquiry th,
.inquiry td,
.inquiry td:last-child,
.inquiry th:last-child {
    border: 0;
}

button,
input,
select,
textarea {
    padding: 0.5em 0.75em;
}

.border-bottom {
    border-bottom: 1px solid #eee !important;
}

@media (max-width: 500px) {
    .inquiry th,
    .inquiry td {
        display: block !important;
        width: 100% !important;
        -webkit-box-sizing: border-box !important;
        -moz-box-sizing: border-box !important;
        box-sizing: border-box !important;
    }

    /* 必須・任意のサイズ調整 */
}

.require {
    color: #a40000;
    font-size: 1em;
}

input,
select,
textarea {
    background: #fff;
}

.wpcf7-list-item {
    display: inline-block;
    margin: 0em 2em 0.5em 2em;
}

.wpcf7-list-item .radio2 {
    margin-bottom: 0.5em;
}

.wpcf7-acceptance .wpcf7-list-item {
    margin-left: 0.5em !important;
}

.inquiry-width100 {
    width: 100%;
}

.inquiry tr {
    padding: 1em 0;
}

/*見出し欄*/
.inquiry th {
    text-align: left;
    font-size: 1.1em;
    font-weight: 400 !important;
    color: #444;
    padding: 1em 0.3em 0 1em !important;
    width: 30%;
    background: none !important;
}

.inquiry th:before {
    background: none !important;
}

/*通常欄*/
.inquiry td {
    font-size: 1.1em;
    padding: 1em 0 1em 1em !important;
}

.daythree {
    margin: 1em 0;
}

.daythree span,
.jusho {
    margin: 0.25em;
    display: block;
}

.dayhour {
    padding: 0.25em 0.5em;
    background: var(--color_main);
    color: #fff;
}

.width100 {
    width: 100% !important;
}

.width100 a {
    width: 100% !important;
    padding: 0.42em 0;
}

@media (min-width: 600px) {
    .daythree span,
    .jusho {
        margin: 0.25em;
        display: inline-block;
    }

    .p-postal-code {
        width: 20% !important;
    }
}

@media (min-width: 960px) {
    .width100 a {
        padding: 0.67795138624em 0;
    }
}

@media (min-width: 1285px) {
    .width100 a {
        padding: 0.7em 0;
    }
}

.width100 a:before {
    content: "";
    border-top: 1px solid #19274a;
    position: absolute;
    right: 90%;
    top: 50%;
    width: 20%;
    transition: 0.4s ease;
}

.width100 a:hover::before {
    width: 24%;
    right: 86%;
}

/*ラジオボタンを縦並び指定*/
.verticallist .wpcf7-list-item {
    display: block;
}

.wpcf7 input[type="submit"] {
    width: 300px;
    padding: 10px;
    margin-top: 30px;
    margin-left: 35%;
    color: #000;
    -moz-border-radius: 0px;
    border: 1px solid var(--color_main);
    background: #fff;
    position: relative;
}

.wpcf7-submit:hover {
    background: var(--color_main);
    color: #fff;
}

.submitbtm {
    position: relative;
}

.submitbtm:after {
    content: "";
    border-top: 1px solid var(--color_main);
    position: absolute;
    right: 61.5%;
    top: 50%;
    width: 7%;
    transition: 0.4s ease;
}

.submitbtm:hover::after {
    right: 60%;
    width: 7%;
}

@media (max-width: 800px) {
    .wpcf7 input[type="submit"] {
        width: 34%;
        margin-left: 33%;
    }

    .submitbtm:after {
        right: 62%;
    }
}

@media (max-width: 599px) {
    .wpcf7 input[type="submit"] {
        width: 60%;
        margin-left: 20%;
    }

    .submitbtm:after {
        right: 71%;
        width: 20%;
    }

    input,
    select,
    textarea {
        background: #fff;
        max-width: 300px;
        box-sizing: border-box;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
    }

    input .spam1 {
        width: auto !important;
    }

    .inquiry td {
        font-size: 1.1em;
        padding: 0.5em 0 !important;
    }
}

@media (max-width: 391px) {
    .submitbtm:after {
        top: 30%;
    }
}

/*-------------------------------------------
           contact 個人情報保護
-------------------------------------------*/
.personalinfo {
    margin: 2em auto;
}

.personal-head {
    padding: 0.5em 0;
    background: var(--color_main);
    text-align: center;
    color: #fff;
    font-size: 1.5em;
}

.personalinfo-inner {
    height: 250px;
    overflow-y: scroll;
    border: 1px solid #ccc;
    padding: 1em 2em;
    background: #fff;
}

.personalinfo-inner dl {
    display: flex;
    justify-content: flex-start;
    padding: 0.75em 0 0;
    border-bottom: 1px solid #eee;
}

.personalinfo-inner dt {
    font-size: 1.1em;
    font-weight: 400;
    padding-right: 2em;
}

.personalinfo-inner dd {
    font-size: 1em;
}
