﻿@charset "UTF-8";
/*
Theme Name: master_template
Author: num
Description: This is my original theme.
Version: 1.0
*/

@font-face {
    font-family: "KaiseiTokumin";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src:
        local("KaiseiTokumin"),
        url("../fonts/KaiseiTokumin-Bold.woff2") format("woff2");
}

@font-face {
    font-family: "KaiseiTokumin";
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src:
        local("KaiseiTokumin"),
        url("../fonts/KaiseiTokumin-ExtraBold.woff2") format("woff2");
}

@font-face {
    font-family: "KaiseiTokumin";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src:
        local("KaiseiTokumin"),
        url("../fonts/KaiseiTokumin-Medium.woff2") format("woff2");
}

/*-------------------------------------
定義
-------------------------------------*/
:root {
    --font_ja: "NotoSansJP", san-serif;
    --font_ja2: "KaiseiTokumin", san-serif;
    --font_en2: "Montserrat", san-serif;
    --h1_font: clamp(22px, 7vw, 32px);
    --h2_font: clamp(30px, 7vw, 60px);
    --h3_font: clamp(22px, 7vw, 55px);
    --m_color: #aa4775;
    --m_color2: #890043;
    --a_color: #f7ad09;
    --a_color2: #473c19;
    --a_color3: #ec6400;
    --f_color: #473c19;
    --f_color2: #0a123c;
    --b_color2: #e2cfda;
    --b_color3: #efe8ec;
    --border_r: max(10px, min(15px, calc((100vw - 10px - 100%) * 9999)));
    --tr: 0.3s ease-out;
    --main_w: min(100%, 1240px);
    --main_w2: min(100%, 1040px);
    --main_mp: 100px;
    --m_ps3: 30px;
    --m_ps5: 50px;
    --m_ps8: 80px;
    --bg02: url(../img/qr/qr_bg04.jpg);
    --bg03: url(../img/qr/bg01.webp);
    --gr: linear-gradient(45deg, var(--a_color) 0%, var(--a_color3) 100%);
    --gr2: linear-gradient(45deg, #dd3e95 0%, var(--m_color2) 100%);
    --gr3: linear-gradient(145deg, var(--m_color) 0%, var(--m_color) 40%, var(--m_color2) 40%, var(--m_color2) 100%);
}

/*-------------------------------------
JSアニメーションパーツ
-------------------------------------*/

/*-------------------------------------
共通パーツ
-------------------------------------*/
.pc_none2 {
    display: none;
}

.flex {
    display: -webkit-flex;
    display: flex;
}

.flex_c {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
}

.flex_c2 {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}

.flex_c_c {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
}

.main_col {
    margin-bottom: var(--main_mp);
}

.main_pa {
    padding-top: var(--main_mp);
    padding-bottom: var(--main_mp);
}

.m_a {
    max-width: var(--main_w);
    padding-left: 10px;
    padding-right: 10px;
}

.m_a2 {
    max-width: var(--main_w2);
    padding-left: 10px;
    padding-right: 10px;
}

.m_lr {
    max-width: min(1280px, calc(100% - (var(--m_ps8) * 2)));
    margin-right: auto;
    margin-left: auto;
}

.m_ps3 {
    margin-bottom: var(--m_ps3);
}

.m_ps5 {
    margin-bottom: var(--m_ps5);
}

.m_ps8 {
    margin-bottom: var(--m_ps8);
}

.mb10 {
    margin-bottom: 10px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb50 {
    margin-bottom: 50px;
}

.fc {
    text-align: center;
}

.fl {
    text-align: left;
}

.fr {
    text-align: right;
}

.fb {
    font-weight: bold;
}

strong {
    background: linear-gradient(transparent 60%, #ff6 60%);
    color: #f44336;
    font-weight: 700;
}

.bubble_wrap {
    justify-content: center;
    gap: 30px;
}

.bubble {
    line-height: 1;
    transition: var(--tr);
}

.bubble_wrap span {
    background-color: #fff;
    padding: 0.8em 1em;
    border-radius: 999px;
    display: block;
    font-weight: 700;
    font-size: min(0.6530612245vw + 0.5969387755rem, 1.25rem);
    position: relative;
    white-space: nowrap;
    color: var(--color-white);
    letter-spacing: 0.1em;
    line-height: 1;
    width: fit-content;
    font-size: clamp(13px, 4vw, 16px);
}

.bubble_wrap span:after {
    content: "";
    position: absolute;
    top: calc(100% - 1px);
    left: 50%;
    transform: translateX(-50%);
    border-width: 12px;
    border-style: solid;
    border-color: #fff transparent transparent transparent;
}

.stripe_bg {
    position: relative;
}

.stripe_bg:before {
    content: "";
    position: absolute;
    left: 15px;
    top: calc(var(--main_mp) * 1);
    width: 8px;
    height: 100%;
    background-size: auto auto;
    background-color: transparent;
    background-image: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 4px,
        rgb(71 60 25 / 25%) 4px,
        rgb(71 60 25 / 25%) 6px
    );
}

.stripe_bg:after {
    content: "";
    position: absolute;
    right: 15px;
    top: calc(var(--main_mp) * 1);
    width: 8px;
    height: 100%;
    background-size: auto auto;
    background-color: transparent;
    background-image: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 4px,
        rgb(71 60 25 / 25%) 4px,
        rgb(71 60 25 / 25%) 6px
    );
}

/*ボタン*/
.common_btn {
    display: flex;
}

.common_btn.fc {
    justify-content: center;
}

.common_btn.fr {
    justify-content: flex-end;
}

.common_btn a {
    display: flex;
    align-items: baseline;
    gap: 10px;
    color: #fff;
    /* color: var(--f_color); */
    font-family: var(--font_ja2);
    text-decoration: none;
    font-size: clamp(16px, 7vw, 18px);
}

.common_btn a:after {
    display: block;
    content: "";
    width: 20px;
    height: auto;
    mask-image: url(../img/common/arrow2.svg);
    background: #fff;
    transition: var(--tr);
    aspect-ratio: 171 / 150;
    mask-repeat: no-repeat;
}

.common_btn02 {
    width: fit-content;
    margin-inline: auto;
}

.common_btn02 a {
    background: var(--bg02);
    color: #fff;
    text-decoration: none;
    font-family: var(--font_ja2);
    font-size: clamp(16px, 3vw, 25px);
    padding: 15px 30px;
    display: flex;
    align-items: baseline;
    gap: var(--m_ps3);
}

.common_btn02 a:after {
    content: "";
    width: 20px;
    height: auto;
    mask-image: url(../img/common/arrow2.svg);
    background: #fff;
    transition: var(--tr);
    aspect-ratio: 171 / 150;
    mask-repeat: no-repeat;
    display: block;
}

/*-------------------------------------
CTA
-------------------------------------*/
.common_cta_wrap {
    background: var(--m_color);
    background:
        url(../img/snow/cta.png) no-repeat 50% 50% / contain,
        linear-gradient(0deg, var(--m_color) 0%, #ed63a3 82.7%, transparent 50%, transparent 100%);
    position: relative;
    padding-top: 90px;
    padding-bottom: 20px;
}

.common_cta_inner {
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: min(38px, 3vw);
}

.common_cta_inner_inner {
    width: min(500px, 50vw);
}

.common_cta_01 > div:nth-child(1) {
    width: min(280px, 28vw);
    margin-bottom: 11px;
    margin-left: 10px;
}

.common_cta_01 > div:nth-child(2) {
    position: relative;
    z-index: 0;
    margin-bottom: 15px;
}

.common_cta_01 > div:nth-child(2) a {
    position: relative;
    overflow: hidden;
    display: block;
}

.common_cta_wrap a:hover {
    filter: saturate(200%);
}

.common_cta_01 > div:nth-child(2):before {
    content: "";
    background: url(../img/snow/cta_btn01_03.svg) no-repeat 50% 50% / contain;
    width: min(140px, 12vw);
    height: auto;
    aspect-ratio: 130/150;
    position: absolute;
    z-index: -1;
    bottom: calc(100% - 27%);
    right: 10%;
    transform: rotate(20deg);
    filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.3));
}

.common_cta_01 > div:nth-child(2) a:after {
    position: absolute;
    content: "";
    display: inline-block;
    top: -180px;
    left: 0;
    width: 30px;
    height: 100%;
    background-color: #fff;
    animation: shiny-btn1 3s ease-in-out infinite;
    pointer-events: none;
}

.common_cta_02 {
}

.common_cta_02 > p {
    color: #fff;
    font: bold clamp(16px, 2vw, 25px) var(--font_ja);
    margin-bottom: 5px;
}

.common_cta_02 > p:last-child {
    font: normal clamp(13px, 3vw, 18px) var(--font_ja);
    margin-bottom: 0;
}

.common_cta_02 > p:last-child span {
    color: #fff;
}

.common_cta_02 > div {
    margin-bottom: 10px;
}

.common_cta_02 > div a {
    display: block;
}

/*CTAボタン01*/
.cta_btn01 {
    position: absolute;
    bottom: 0%;
    max-width: 1000px;
    width: 70vw;
    left: 50%;
    transform: translateX(-50%);
    height: min(250px, 16.3vw);
}

.cta_btn01 > div {
}

.cta_btn01 > div img {
    width: 100%;
    height: 100%;
}

.cta_btn01 > div:nth-child(1) {
    width: min(510px, 35vw);
    position: absolute;
    bottom: 16%;
    left: 14%;
    overflow: hidden;
    transition: var(--tr);
}

.cta_btn01 > div:nth-child(1):before {
    position: absolute;
    content: "";
    display: inline-block;
    top: -180px;
    left: 0;
    width: 30px;
    height: 100%;
    background-color: #fff;
    animation: shiny-btn1 3s ease-in-out infinite;
    pointer-events: none;
}

@-webkit-keyframes shiny-btn1 {
    0% {
        -webkit-transform: scale(0) rotate(45deg);
        opacity: 0;
    }

    80% {
        -webkit-transform: scale(0) rotate(45deg);
        opacity: 0.5;
    }

    81% {
        -webkit-transform: scale(4) rotate(45deg);
        opacity: 1;
    }

    100% {
        -webkit-transform: scale(50) rotate(45deg);
        opacity: 0;
    }
}

.cta_btn01 > div:nth-child(1):hover {
    filter: saturate(200%);
}

.cta_btn01 > div:nth-child(2) {
    width: min(330px, 22vw);
    left: 23%;
    position: absolute;
    bottom: 63%;
}

.cta_btn01 > div:nth-child(3) {
    width: min(170px, 12vw);
    bottom: 9%;
    position: absolute;
    left: 1%;
    filter: drop-shadow(4px 4px 6px rgba(0, 0, 0, 0.3));
}

/*-------------------------------------
見出し
-------------------------------------*/
h2 {
    margin: 0 0 var(--m_ps8);
    position: relative;
    font-weight: 700;
    font-size: clamp(18px, 7vw, 24px);
    display: flex;
    align-items: baseline;
    gap: 30px;
    letter-spacing: 0;
}

.h2_wrap {
    display: flex;
    align-items: center;
    flex-flow: column;
    margin-bottom: 80px;
    gap: 20px;
}

.h2_wrap h2 {
    flex-flow: column;
    gap: 0;
    align-items: center;
    font-size: clamp(26px, 7vw, 50px);
    font-family: var(--font_ja2);
    line-height: 1;
    display: flex;
    align-items: baseline;
    position: relative;
    z-index: 1;
    margin-bottom: 0;
}

.h2_wrap h2:before {
    margin-bottom: -10px;
}

.h2_wrap span {
    display: flex;
    font-weight: bold;
    letter-spacing: 0.1em;
    position: relative;
    align-items: baseline;
    gap: 20px;
    font-family: var(--font_ja2);
    font-size: clamp(16px, 3vw, 25px);
    /* display: block; */
    line-height: 1;
}

.h2_wrap span:before {
    content: "";
    background: #000;
    width: 2px;
    display: block;
    height: auto;
    aspect-ratio: 1/ 15;
    transform: rotate(-30deg) translateY(10px);
}

.h2_wrap span:after {
    content: "";
    background: #000;
    width: 2px;
    display: block;
    height: auto;
    aspect-ratio: 1 / 15;
    transform: rotate(30deg) translateY(10px);
}

.h2_other {
    font-family: var(--font_ja2);
    flex-flow: column;
    gap: 0;
    line-height: 1;
    width: fit-content;
    margin-inline: auto;
    z-index: 0;
}

h2.h2_other.fc {
    /* align-items: center; */
}

.h2_other .small {
    font-family: var(--font_ja2);
    font-size: clamp(16px, 4vw, 25px);
    display: block;
    line-height: 1;
    margin-inline: auto;
}

.h2_other span:not(.small) {
    font-size: clamp(25px, 6vw, 50px);
    font-family: var(--font_ja2);
    line-height: 1;
    display: flex;
    align-items: baseline;
    position: relative;
    z-index: 0;
}

.h2_other span:not(.small) .big {
    font-size: clamp(20px, 8vw, 80px);
    font-family: var(--font_ja2);
    line-height: 1;
    display: block;
}

h3 {
    font-weight: bold;
    margin: 0 0 50px;
    font-size: clamp(20px, 4vw, 26px);
    position: relative;
}

/*-------------------------------------
レイアウト
-------------------------------------*/
.wrap {
    position: relative;
}

body:not(.home) .wrap {
    margin: 0 auto;
    overflow: hidden;
    max-width: 1920px;
    background: var(--m_color2);
}
.main_wrap {
    position: relative;
}
.main_wrap:before {
    content: "";
    width: 100%;
    height: auto;
    background: url(../img/qr/bg_icon01.webp) no-repeat 50% / contain;
    aspect-ratio: 640/ 51;
    mask-repeat: no-repeat;
    display: block;
    margin-bottom: -1px;
}

/*-------------------------------------
header
-------------------------------------*/
header {
}

.header {
    padding-bottom: 85vh;
    position: relative;
}
.header:before {
    content: "";
    position: absolute;
    left: 0;
    top: -15px;
    width: 100%;
    height: auto;
    background: url(../img/qr/header_top_bg.webp) no-repeat 50%;
    /* aspect-ratio: 120/11; */
    z-index: 1;
    /* background-size: auto; */
    height: 166px;
}

/* サイトタイトル */
.site_ttl {
    line-height: 0;
    width: min(280px, 30vw);
    padding: 30px 0 0 min(50px, 4vw);
    transition: var(--tr);
    position: relative;
    z-index: 1;
}
.site_ttl a {
    display: block;
    color: var(--f_color);
    font-weight: bold;
    text-decoration: none;
    margin: 0 auto;
    transition: var(--tr);
}
.site_ttl a:hover {
    opacity: 0.7;
}

.h_nav_wrap {
    justify-content: space-between;
}
.h_nav_inner {
    position: relative;
    z-index: 1;
    padding: 35px min(50px, 4vw) 0 0px;
    gap: min(30px, 3vw);
    align-items: center;
}
.g_nav_tel {
}

.g_nav_tel a {
    display: flex;
    flex-flow: column;
    align-items: flex-start;
    text-decoration: none;
    gap: min(5px, 2vw);
}
.g_nav_tel p {
    color: var(--f_color);
    font-family: var(--font_ja2);
    width: 100%;
    cursor: pointer;
    letter-spacing: 0.05em;
    font-size: clamp(16px, 2vw, 25px);
    font-weight: 700;
    line-height: 1;
}
.g_nav_tel span {
    font-size: 15px;
    line-height: 1.6;
    font-family: var(--font_ja2);
    font-size: clamp(12px, 2vw, 15px);
}
.g_nav_cta {
}
.g_nav_cta a {
    color: #fff;
    background: var(--bg02);
    color: #fff;
    text-decoration: none;
    font-family: var(--font_ja2);
    font-size: clamp(16px, 2vw, 20px);
    padding: 10px 19px;
    display: flex;
    align-items: baseline;
    gap: var(--m_ps3);
    transition: var(--tr);
}
.g_nav_cta a:after {
    content: "";
    width: 20px;
    height: auto;
    mask-image: url(../img/common/arrow2.svg);
    background: #fff;
    transition: var(--tr);
    aspect-ratio: 171 / 150;
    mask-repeat: no-repeat;
    display: block;
}
.g_nav_cta a:hover * {
    opacity: 0.7;
}

/*************************************/
body .h_img_wrap {
    /* padding-top: 128.7px; */
    display: flex;
    justify-content: center;
    position: relative;
    /* background: var(--m_color2); */
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
}

body .h_img_wrap:before {
    content: "";
    /* background: url(../img/qr/noise.webp), rgba(0, 0, 0, 0.3); */
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    opacity: 0.5;
    mix-blend-mode: overlay;
}

.h_img_wrap {
    position: relative;
}

.fb_txt {
    position: absolute;
    left: 50%;
    top: 55%;
    transform: translate(-50%, -50%);
    z-index: 4;
    display: flex;
    flex-flow: column;
    align-items: center;
}

.fb_txt .img {
    width: min(400px, 25vw);
    aspect-ratio: 119 / 126.73;
    margin-bottom: 50px;
    filter: drop-shadow(0px 0px 10px #89004366);
    color: #89004366;
}

.fb_txt .img img {
}

.fb_txt .txt {
    color: #fff;
    text-align: center;
    transform: translateY(1.875rem);
    opacity: 0;
    transition: all 2s ease;
    font-size: clamp(15px, 3vw, 18px);
    font-family: var(--font_ja2);
}

.fv_bg {
    height: 100vh;
    transform: translateY(1.875rem);
    transition: all 2s ease;
    transform: translateY(1.875rem);
    transition: all 2s ease;
}

.fv_bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* max-height: 1080px; */
}

.fv_icon01 {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    transform: translateY(1.875rem);
    opacity: 0;
    transition: all 2s ease;
}

.fv_icon01 picture {
    height: 100%;
    display: block;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: min(1000px, 70vw);
    margin-inline: auto;
}

.fv_icon01 img {
    display: block;
}

.fv {
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    background: #f3f5f8;
}

.fv_inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.fv_inner:before {
    content: "";
    position: absolute;
    background: linear-gradient(0deg, var(--m_color2) 0%, var(--m_color2) 60%, rgba(21, 55, 102, 0) 100%);
    height: 30%;
    bottom: 0;
    width: 100%;
    left: 0;
    opacity: 0.3;
    z-index: 3;
    pointer-events: none;
}

.fv_inner:after {
    /* content: ""; */
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: var(--a_color2);
    z-index: 2;
    opacity: 0.15;
    pointer-events: none;
}

.fb_cta {
    position: absolute;
    right: 10%;
    bottom: 5%;
    width: min(330px, 26vw);
    height: auto;
    aspect-ratio: 330/265;
    z-index: 3;
}

.fb_cta a {
    display: block;
}

.fb_cta img {
}

.fb_txt .txt.is-show,
.fv_icon01.is-show,
.fv_line_bg.is-show,
.fv_bg.is-show {
    transform: translateY(0);
    opacity: 1;
}

.fv_line_bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
    width: 100%;
    height: 100%;
    transform: translateY(1.875rem);
    opacity: 0;
    transition: all 2s ease;
}

.line-svg {
    display: block;
    width: 100%;
    height: 100%;
}

.line-path {
    fill: none;
    stroke: var(--m_color2);
    stroke-width: 100px;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0;
    visibility: hidden;
    stroke-dasharray: 0 1000;
    stroke-dashoffset: 1;
}

.line-anime2 {
    stroke: #ddd;
}

.line-anime3 {
    stroke: var(--m_color2);
}

.line-anime4 {
    stroke: #ddd;
}

.line-anime5 {
    stroke: #fff;
}

.line-anime6 {
    stroke: var(--m_color2);
}

.line-anime7 {
    stroke: var(--m_color2);
}

.line-anime8 {
    stroke: #fff;
}

/*テキストアニメーション*/
.fb_txt #text {
    mask: url(#mask);
}

.fb_txt .handwriting {
    width: 100%;
    height: auto;
    stroke: none;
    /* fill: #ffffff; */
}

.fb_txt .handwriting_text {
    fill: #ffffff;
}

.fb_txt .handwriting_mask_line {
    fill: none;
    stroke: #fff;
    stroke-width: 7;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 4000px;
    stroke-dashoffset: 4000px;
}

.is-animate .handwriting_mask_line {
    animation: handwriting 2s linear forwards;
}

@keyframes handwriting {
    0% {
        stroke-dashoffset: 4000px;
    }

    100% {
        stroke-dashoffset: 0;
    }
}

/*-------------------------------------
1コンテンツ目 私たちについて
-------------------------------------*/
.qr_con01 {
    background:
        url(../img/qr/qr_con01_left_bg.webp) no-repeat 0 100% / 45%,
        url(../img/qr/qr_con01_right_bg.webp) no-repeat 100% 100% / 45%,
        var(--bg03);
    position: relative;
    padding-top: calc(var(--main_mp) * 1.5);
    padding-bottom: calc(var(--main_mp) * 2.5);
}

.qr_con01:before {
    content: "";
    background: url(../img/qr/icon03.webp) no-repeat 50% / contain;
    aspect-ratio: 1000/ 582;
    height: auto;
    width: min(1000px, 50vw);
    position: absolute;
    left: -3%;
    top: -16%;
}

.qr_con01_inner {
    display: flex;
}

.qr_con01_img_left {
}

.qr_con01_img_left li {
    position: absolute;
}

.qr_con01_img_left li img {
    width: 10vw;
}

.qr_con01_img_left li:nth-child(2) {
    left: 5%;
    top: 36%;
    animation: floating-y 3.5s ease-in-out infinite alternate-reverse 0.3s;
}

.qr_con01_img_left li:nth-child(2):before {
    /*     content: "";
    width: min(190px, 84%);
    height: auto;
    mask-image: url(../img/qr/staff/staff_img_nama01.svg);
    background: var(--a_color3);
    position: absolute;
    top: -4%;
    left: -20%;
    aspect-ratio: 300/ 133;
    mask-repeat: no-repeat;
    transform: rotate(339deg); */
}

.qr_con01_img_left li:nth-child(2) img {
    width: min(260px, 14vw);
}

.qr_con01_img_left li:nth-child(3) {
    left: 10%;
    bottom: 10%;
    animation: floating-y 2.5s ease-in-out infinite alternate-reverse;
}

.qr_con01_img_left li:nth-child(3) img {
    width: min(260px, 14vw);
    width: min(200px, 9vw);
}

.qr_con01_img_right {
}

.qr_con01_img_right li {
    top: 12%;
    position: absolute;
    right: 12%;
    animation: floating-y 3s ease-in-out infinite alternate-reverse 0.3s;
}

.qr_con01_img_right li img {
    width: 10vw;
    width: min(220px, 11vw);
}

.qr_con01_img_right li:nth-child(2) {
    right: 5%;
    top: 48%;
    animation: floating-y 2.5s ease-in-out infinite alternate-reverse;
}

.qr_con01_img_right li:nth-child(2) img {
    width: min(269px, 14vw);
}

.qr_con01_img_right li:nth-child(3) {
    right: 20%;
    bottom: 10%;
    top: auto;
    animation: floating-y 3.5s ease-in-out infinite alternate-reverse 0.3s;
}

.qr_con01_img_right li:nth-child(3) img {
    width: min(269px, 10vw);
}

@keyframes floating-y {
    0% {
        transform: translateY(-10%);
    }

    100% {
        transform: translateY(5%);
    }
}

.qr_con01_main {
    width: fit-content;
    margin-inline: auto;
}

.qr_con01_main .ttl {
    margin-bottom: var(--m_ps8);
    position: relative;
}

.qr_con01_main .ttl:before {
    right: 9%;
    content: "";
    width: min(270px, 44vw);
    height: auto;
    mask-image: url(../img/qr/qr_con01_ttl.svg);
    background: var(--m_color2);
    position: absolute;
    transition: var(--tr);
    aspect-ratio: 300/128;
    mask-repeat: no-repeat;
    z-index: 0;
    opacity: 0.3;
    top: -28%;
}

.qr_con01_main .ttl span {
    font-size: clamp(23px, 6vw, 40px);
    font-weight: 700;
    position: relative;
    z-index: 0;
    font-family: var(--font_ja2);
    display: block;
    z-index: 0;
}

.qr_con01_main .ttl span:nth-child(3)::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -9px;
    height: auto;
    width: 61%;
    background: url(../img/qr/icon09.svg);
    aspect-ratio: 300/42;
    z-index: -1;
}

.qr_con01_main .txt {
    /* font-size: clamp(16px, 7vw, 18px); */
    position: relative;
    background: url(../img/qr/ruled_line.webp) repeat 0% 0% / 491px;
    font-family: var(--font_ja2);
    width: fit-content;
}
.qr_con01_main .txt p {
    line-height: 51px;
    font-size: clamp(14px, 4vw, 18px);
}

.qr_con01_main .name {
    font-size: clamp(13px, 7vw, 16px);
    font-family: var(--font_ja2);
    text-align: right;
    padding-bottom: 25px;
    margin-top: 54px;
}

.qr_con01_main .name span {
    font-size: clamp(19px, 5vw, 23px);
    font-family: var(--font_ja2);
}

/*-------------------------------------
2コンテンツ目 私たちについて
-------------------------------------*/
.case_study_wrap {
    display: block;
    text-align: center;
    font-size: clamp(20px, 3vw, 32px);
    border-bottom: 5px solid;
    width: fit-content;
    margin-inline: auto;
    padding: 20px 30px 30px;
}

.case_study_wrap::before {
    position: absolute;
    top: 100%;
    left: 50%;
    content: "";
    height: 0;
    width: 0;
    border: 16px solid;
    border-color: transparent;
    border-top-color: black;
    margin-left: -16px;
}

.case_study_wrap::after {
    position: absolute;
    top: 100%;
    left: 50%;
    content: "";
    height: 0;
    width: 0;
    border: 10px solid;
    border-color: transparent;
    border-top-color: white;
    margin-left: -10px;
}

.case_study_wrap span {
    margin-right: 15px;
    font-size: clamp(30px, 5vw, 60px);
    color: #dd2e1e;
}

.qr_con02 {
    position: relative;
    z-index: 0;
}

.qr_con02:before {
    content: "";
    background: url(../img/qr/qr_bg_icon01.webp) no-repeat 50% / cover;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1920/131;
    position: absolute;
    bottom: calc(100% + -1px);
}

.qr_con02::after {
    content: "";
    background: url(../img/qr/icon10.webp) no-repeat 50% / contain;
    aspect-ratio: 1000/389;
    position: absolute;
    right: -17%;
    bottom: 0%;
    height: auto;
    width: min(1000px, 48vw);
}

.qr_con02_inner {
    padding-top: calc(var(--main_mp) * 0.5);
    padding-bottom: calc(var(--main_mp) * 2.5);
    background: url(../img/qr/qr_bg03.jpg);
}

.qr_con02_inner .icon01 {
    position: absolute;
    left: -10%;
    top: 0;
    aspect-ratio: 1000/326;
    height: auto;
    width: min(1000px, 48vw);
}

.qr_con02_inner .icon01:before {
    content: "";
    background: url(../img/qr/icon04.webp) no-repeat 50% / contain;
    aspect-ratio: 300/367;
    height: auto;
    width: min(300px, 20vw);
    position: absolute;
    right: 0;
    bottom: -24%;
}

.qr_con02_inner_inner {
}

.qr_con02_inner_inner .h2_other_wrap {
    display: flex;
    position: relative;
    z-index: 0;
    width: fit-content;
    margin-inline: auto;
    gap: min(100px, 5vw);
    align-items: flex-end;
    margin-bottom: var(--main_mp);
}

.qr_con02_inner_inner .h2_other_wrap:before {
    left: 0;
    display: block;
    content: "";
    width: min(150px, 15vw);
    height: auto;
    mask-image: url(../img/qr/icon10.svg);
    background: var(--f_color);
    aspect-ratio: 135/ 150;
    mask-repeat: no-repeat;
    z-index: -1;
    transform: scale(-1, 1);
}

.qr_con02_inner_inner .h2_other_wrap:after {
    right: 0;
    display: block;
    content: "";
    width: min(150px, 15vw);
    height: auto;
    mask-image: url(../img/qr/icon10.svg);
    background: var(--f_color);
    aspect-ratio: 135/ 150;
    mask-repeat: no-repeat;
    z-index: -1;
}

.qr_con02_inner_inner .h2_other {
    margin-bottom: 0;
}

.qr_con02_inner_inner .h2_other:before {
    display: block;
    content: "";
    width: min(120px, 18vw);
    height: auto;
    mask-image: url(../img/qr/icon05.svg);
    background: var(--f_color);
    transition: var(--tr);
    aspect-ratio: 300/ 142;
    mask-repeat: no-repeat;
    margin-bottom: min(20px, 4vw);
    margin-inline: auto;
}

.qr_con02_inner_inner .h2_other::after {
    content: "";
    opacity: 0.3;
    position: absolute;
    left: 0;
    top: 16%;
    width: min(171px, 15vw);
    background: url(../img/qr/qr_con02_ttl.svg) no-repeat 50% / contain;
    aspect-ratio: 285/150;
}

.qr_con02_inner_inner .h2_other > span:not(.small):before {
    /* left: 0; */
    display: block;
    content: "";
    width: min(274px, 20vw);
    height: auto;
    mask-image: url(../img/qr/icon02.svg);
    background: var(--a_color);
    background: #f2ea32;
    position: absolute;
    bottom: -35px;
    aspect-ratio: 300/ 88;
    mask-repeat: no-repeat;
    left: 44%;
    z-index: -1;
}

.qr_con02_inner_inner .qr_con02_inner ul {
    max-width: calc(var(--main_w2) + 100px);
    margin-inline: auto;
}

.qr_con02_inner li {
    /* width: 380px; */
    position: relative;
    z-index: 0;
    display: flex;
    padding-left: min(var(--m_ps5), 4vw);
    padding-right: min(var(--m_ps5), 4vw);
    flex: 1;
}

.qr_con02_inner li section {
    flex: 1;
}

.qr_con02_inner li:not(:last-child):before {
    content: "";
    width: 11px;
    height: 100%;
    display: block;
    background: url(../img/qr/line_tate.webp) repeat-y 50% 0;
    position: absolute;
    right: -6px;
    top: 0;
}

.qr_con02_inner li .img {
    margin-inline: auto;
    aspect-ratio: 1;
    width: min(100px, 20vw);
    height: auto;
    margin-bottom: var(--m_ps3);
    z-index: 0;
    position: relative;
}

.qr_con02_inner li .img:before {
    content: "";
    background: url(../img/qr/qr_con02_num01.svg) no-repeat 50% / contain;
    position: absolute;
    right: 59%;
    bottom: 24%;
    aspect-ratio: 1;
    height: auto;
    width: min(110px, 8vw);
    opacity: 0.15;
    z-index: -1;
}

.qr_con02_inner li:nth-child(2) .img:before {
    background: url(../img/qr/qr_con02_num02.svg) no-repeat 50% / contain;
}

.qr_con02_inner li:nth-child(3) .img:before {
    background: url(../img/qr/qr_con02_num03.svg) no-repeat 50% / contain;
}

.qr_con02_inner li .img img {
    width: 100%;
    height: 100%;
    display: block;
}

.qr_con02_inner li .ttl {
    font-size: clamp(20px, 4vw, 25px);
    text-align: center;
    margin-bottom: var(--m_ps3);
    font-family: var(--font_ja2);
    font-weight: 500;
    line-height: 1.6;
}

.qr_con02_inner li p {
    font-size: clamp(14px, 3vw, 16px);
}

/*-------------------------------------
3コンテンツ目 施工事例
-------------------------------------*/
.qr_con03 {
    position: relative;
    background: var(--bg03);
}

.qr_con03:before {
    content: "";
    width: 100%;
    height: auto;
    background: url(../img/qr/bg_icon01.webp) no-repeat 50% / contain;
    aspect-ratio: 1920/ 154;
    mask-repeat: no-repeat;
    display: block;
    position: absolute;
    bottom: calc(100% + -1px);
    left: 0;
}

.qr_con03:after {
    content: "";
    width: 100%;
    height: auto;
    background: url(../img/qr/bg_icon02.webp) no-repeat 100% 0 / contain;
    aspect-ratio: 1920 / 153;
    mask-repeat: no-repeat;
    position: absolute;
    top: calc(100% + -1px);
    right: 0;
    z-index: 1;
}

.qr_con03_inner {
    padding-top: 0;
}

.qr_con03_inner::before {
    content: "";
    background: url(../img/qr/icon02.webp) no-repeat 50% / contain;
    width: min(301px, 14vw);
    height: auto;
    aspect-ratio: 301/279;
    position: absolute;
    bottom: -4%;
    left: 17%;
    z-index: 2;
}

.qr_con03_inner::after {
    content: "";
    background: url(../img/qr/icon14.webp) no-repeat 50% / contain;
    width: min(340px, 18vw);
    height: auto;
    aspect-ratio: 340/397;
    position: absolute;
    bottom: -17%;
    right: 11%;
    z-index: 2;
    pointer-events: none;
}

.qr_con03_inner_inner {
}

.qr_con03_inner_inner .h2_wrap .img {
    position: relative;
    display: flex;
    align-items: baseline;
    gap: min(40px, 5vw);
}

.qr_con03_inner_inner .h2_wrap .img img {
    width: min(291px, 30vw);
}

.qr_con03_inner_inner .h2_wrap .img:before {
    display: block;
    content: "";
    width: min(105px, 20vw);
    height: auto;
    mask-image: url(../img/qr/icon11.svg);
    background: var(--f_color);
    aspect-ratio: 183/150;
    mask-repeat: no-repeat;
    transform: scale(-1, 1);
}

.qr_con03_inner_inner .h2_wrap .img:after {
    display: block;
    content: "";
    width: min(105px, 20vw);
    height: auto;
    mask-image: url(../img/qr/icon11.svg);
    background: var(--f_color);
    aspect-ratio: 183/150;
    mask-repeat: no-repeat;
}

.qr_con03_inner_inner .slick_wrap {
    position: relative;
    z-index: 0;
}

.qr_con03_inner_inner .slick_wrap:before {
    content: "";
    background: url(../img/qr/icon13.webp) no-repeat 50% / contain;
    aspect-ratio: 149/270;
    height: auto;
    width: min(149px, 12vw);
    position: absolute;
    bottom: 90%;
    left: 7%;
    z-index: -1;
}

.qr_con03_inner_inner .slick_wrap:after {
    content: "";
    background: url(../img/qr/icon12.webp) no-repeat 50% / contain;
    aspect-ratio: 139/244;
    height: auto;
    width: min(139px, 11vw);
    position: absolute;
    bottom: 93%;
    right: 7%;
    z-index: -1;
}

.qr_con03_inner_inner .slick {
}

.qr_con03_inner_inner .slick-list {
    overflow: visible !important;
}

.qr_con03_inner_inner .slick .item {
    /* width: min(1000px, 80%); */
    /* width: 80%; */
    /* max-width: 1000px; */
    margin-inline: max(20px, 3vw);
    /* height: 100%; */
    background: var(--f_color);
    position: relative;
}

.qr_con03_inner_inner .slick .item:before {
    content: "";
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    border-image: url(../img/qr/line_icon02.svg) 25 / 8px / 20px;
}

.qr_con03_inner_inner .slick .item:after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    border-image: url(../img/qr/line_tate.webp) 8 / 6px / 20px;
    pointer-events: none;
}

.qr_con03_inner_inner .slick .item section {
    padding: 46px 40px;
    position: relative;
}

.qr_con03_inner_inner .slick .item section::before {
    content: "";
    background: url(../img/qr/noise.webp);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0.3;
    pointer-events: none;
}

.qr_con03_inner_inner .slick .item h3 {
    font-family: var(--font_ja2);
    font-size: clamp(16px, 4vw, 25px);
    color: #fff;
    font-weight: normal;
    margin-bottom: var(--m_ps3);
    line-height: 1.6;
}

.qr_con03_inner_inner .slick .item h3::after {
    display: block;
    content: "";
    width: 100%;
    height: auto;
    mask-image: url(../img/qr/line_icon02.svg);
    background: #fff;
    aspect-ratio: 300 / 8;
    mask-repeat: repeat-x;
    margin-top: 30px;
}

.qr_con03_inner_inner .num {
    position: absolute;
    right: -5%;
    top: -9%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(206px, 21%);
    height: auto;
    aspect-ratio: 157/150;
    z-index: 1;
    background: url(../img/qr/icon01.svg) no-repeat 50% / contain;
}

.qr_con03_inner_inner .num img {
    aspect-ratio: 194/197;
    height: auto;
    width: min(95px, 50%);
}

.qr_con03_inner_inner .slick .item_inner {
    gap: var(--m_ps5);
    align-items: flex-start;
}

.qr_con03_inner_inner .slick .works_img {
    width: 60%;
}

.qr_con03_inner_inner .slick .txt {
    flex: 1;
    padding-top: min(206px, 8%);
}

.qr_con03_inner_inner .slick .txt .cat {
    display: flex;
    align-items: center;
    color: var(--m_color2);
    margin-bottom: 30px;
}

.qr_con03_inner_inner .slick .txt .cat a {
}

.qr_con03_inner_inner .slick .txt .cat span {
    display: block;
    color: #fff;
    background: var(--m_color2);
    width: fit-content;
    line-height: 1;
    padding: 5px 10px;
    font-size: clamp(13px, 3vw, 16px);
}

.qr_con03_inner .slide-arrow {
    display: block;
    width: 5vw;
    height: auto;
    aspect-ratio: 1;
    background: var(--m_color2);
    border-radius: 50%;
    transition: all 0.3s ease;
    cursor: pointer;
    position: absolute;
    right: -3.6%;
    top: 44%;
    z-index: 2;
    transform: translateY(-50%);
}

.qr_con03_inner .prev-arrow {
    transform: translateY(-50%) rotate(180deg);
    position: absolute;
    right: auto;
    left: -3.6%;
}

.qr_con03_inner .slide-arrow::before {
    left: 50%;
    display: block;
    content: "";
    transform: translate(-50%, -50%);
    transition: var(--tr);
    width: 30%;
    height: auto;
    mask-image: url(../img/common/arrow2.svg);
    background: #fff;
    position: absolute;
    top: 50%;
    transition: var(--tr);
    aspect-ratio: 171 / 150;
    mask-repeat: no-repeat;
}

.qr_con03_inner .slick-dots {
    position: static;
    margin-top: var(--m_ps5);
    display: flex;
    justify-content: center;
    gap: clamp(5px, 2vw, 10px);
}

.qr_con03_inner .slick-dots li {
    margin: 0;
    height: auto;
    aspect-ratio: 1;
}

.qr_con03_inner .slick-dots li button {
    display: flex;
    align-items: center;
    justify-content: center;
}

.qr_con03_inner .slick-dots li button:before {
    font-size: clamp(13px, 3vw, 20px);
    position: static;
    line-height: 1;
    display: block;
    color: var(--m_color2);
}

.qr_con03_inner .slick-dots li.slick-active button:before {
    color: var(--m_color2);
}

/*ビフォアフスライダー*/
.slick-track {
    display: flex !important;
}

.slick-slide {
    /* height: auto !important; */
}

.works_img .twentytwenty_inner {
    position: relative;
    max-height: 675px;
    width: 100%;
    aspect-ratio: 16 / 12;
}

.works_img .twentytwenty-before_wrap,
.works_img .twentytwenty-after_wrap {
    width: 100%;
    position: absolute;
    top: 0;
    display: block;
    height: 100%;
    /* aspect-ratio: 16 / 9;*/
}

.works_img .twentytwenty-before_wrap:before {
    content: "before";
    font-family: var(--font_en);
    font-weight: bold;
    letter-spacing: 0.1vw;
    text-transform: uppercase;
    color: #fff;
    background: var(--m_color2);
    border-radius: 500px;
    line-height: 1;
    padding: 8px 18px;
    font-size: clamp(12px, 3vw, 16px);
    z-index: 20;
    position: absolute;
    left: 1.5rem;
    top: 1.5rem;
}

.works_img .twentytwenty-after_wrap {
}

.works_img .twentytwenty-after_wrap:before {
    content: "after";
    font-family: var(--font_en);
    font-weight: bold;
    letter-spacing: 0.1vw;
    text-transform: uppercase;
    color: #fff;
    background: var(--m_color2);
    border-radius: 500px;
    line-height: 1;
    padding: 8px 18px;
    font-size: clamp(12px, 3vw, 16px);
    z-index: 20;
    position: absolute;
    right: 1.5rem;
    top: 1.5rem;
}

.works_img .twentytwenty-handle {
    border: none;
    border-radius: 3px;
    background: var(--m_color2);
    aspect-ratio: 1/1;
    height: auto;
    width: min(48px, 10vw);
}

.works_img .twentytwenty-horizontal .twentytwenty-handle:before {
    background: var(--m_color2);
    box-shadow:
        0 3px 0 var(--m_color2),
        0px 0px 12px rgba(51, 51, 51, 0.5);
}

.works_img .twentytwenty-horizontal .twentytwenty-handle:after {
    background: var(--m_color2);
    box-shadow:
        0 -3px 0 var(--m_color2),
        0px 0px 12px rgba(51, 51, 51, 0.5);
}

.works_img .twentytwenty-left-arrow {
    width: 100%;
    border: 0;
    left: 0;
    top: 0;
    height: 100%;
    margin: 0;
}

.works_img .twentytwenty-left-arrow:before {
    left: 50%;
    display: block;
    content: "";
    transform: translate(-50%, -50%);
    transition: var(--tr);
    width: 50%;
    height: auto;
    mask-image: url(../img/works/single_works_drag_icon.svg);
    background: #fff;
    position: absolute;
    top: 50%;
    transition: var(--tr);
    aspect-ratio: 119 / 150;
}

.works_img .twentytwenty-right-arrow {
    display: none;
}

.works_img_bf {
    width: 100%;
    height: auto;
    border: 5px solid #fff;
}

.works_img img {
    margin: 0 !important;
    aspect-ratio: 16/10;
}

/*-------------------------------------
4コンテンツ目 お問い合わせ
-------------------------------------*/
.qr_con04 {
    background: url(../img/qr/qr_bg03.jpg);
    /* padding-top: calc(var(--main_mp) * 2.5); */
    z-index: 0;
    position: relative;
}

.qr_con04 > div {
    padding-top: calc(var(--main_mp) * 2);
}

.qr_con04:before {
    content: "";
    /* background:
        url(../img/qr/qr_con04_bg_left.webp) no-repeat 0% 0% / min(960px, 80%),
        url(../img/qr/qr_con04_bg_right.webp) no-repeat 100% 100% / min(1072px, 80%); */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.qr_con04_inner {
    max-width: 1000px;
}

.qr_con04_inner .h2_wrap {
    width: fit-content;
    margin-inline: auto;
    position: relative;
}

.qr_con04_inner .h2_wrap h2:before {
    display: block;
    content: "";
    width: min(300px, 40vw);
    height: auto;
    mask-image: url(../img/qr/qr_con04_midasi.svg);
    background: var(--m_color2);
    aspect-ratio: 300/75;
    mask-repeat: no-repeat;
    margin-bottom: -3%;
    transform: rotate(-10deg);
    opacity: 0.1;
    z-index: -1;
    position: relative;
}

.qr_con04_inner h2:after {
    left: 50%;
    display: block;
    content: "";
    transform: translate(-50%, 0%);
    width: 100%;
    height: auto;
    mask-image: url(../img/qr/icon09.svg);
    background: #f2ea32;
    position: absolute;
    bottom: -19px;
    aspect-ratio: 300/42;
    mask-repeat: no-repeat;
    z-index: -1;
}

.qr_con04_inner .h2_wrap h2 {
    display: block;
}

.qr_con04_inner .h2_wrap:before {
    content: "";
    right: 70%;
    bottom: 0;
    background: url(../img/qr/qr_con04_icon01.webp) no-repeat 50% / contain;
    aspect-ratio: 382/247;
    height: auto;
    width: min(382px, 46vw);
    position: absolute;
    filter: drop-shadow(0px 0px 10px rgba(255, 255, 255, 1)) drop-shadow(0px 0px 10px rgba(255, 255, 255, 1));
    z-index: 1;
}

.qr_con04_inner .h2_wrap:after {
    left: 108%;
    content: "";
    transform: translateY(-50%);
    width: min(197px, 21vw);
    height: auto;
    mask-image: url(../img/qr/icon10.svg);
    background: var(--f_color);
    position: absolute;
    top: 50%;
    aspect-ratio: 135 / 150;
    mask-repeat: no-repeat;
}

.contact_info_wrap {
    gap: var(--m_ps3);
    justify-content: center;
}

.contact_info_banner_wrap {
    align-items: end;
    gap: 30px;
}
.contact_info_banner_wrap > div {
    flex: 1;
}
.line_btn img {
    width: min(500px, 100vw) !important;
}
a.line_btn {
    display: flex;
    justify-content: center;
    width: fit-content;
    margin-inline: auto;
}
.contact_info_banner_wrap a:hover {
    opacity: 0.8;
}
.contact_info_corporate {
}
.contact_info_corporate img {
}

/*-------------------------------------
お問い合わせ
-------------------------------------*/
.contact_wrap {
    background: url(../img/snow/contact_bg.png);
    margin-top: -49px;
}

.contact_inner {
    background: #fff;
    box-shadow:
        0 0 5px rgb(0 0 0 / 20%),
        inset 5px 5px 0 #eee,
        inset -5px -5px 0 #eee;
    padding: var(--m_ps5);
    width: 95%;
}

.contact_info {
    margin-bottom: var(--m_ps5);
}

.contact_info a {
    width: 100%;
    cursor: pointer;
}

.contact_info a:hover {
    filter: saturate(150%);
}

.contact_info {
    text-align: center;
    /* padding: 20px min(20px, 3vw); */
    display: flex;
    flex-flow: column;
    justify-content: center;
    gap: 10px;
    /* border-image: url(../img/qr/line_icon02.svg) 10 / 5px / 10px; */
    width: min(580px, 100%);
    margin-inline: auto;
}

.contact_info:before {
    /* content: ""; */
    position: absolute;
    top: 10px;
    right: 10px;
    left: 10px;
    bottom: 10px;
    display: block;
    border: solid 1px #ffffff69;
    pointer-events: none;
}

.contact_info p {
    font-size: clamp(13px, 2vw, 15px);
    line-height: 1.6;
    font-family: var(--font_ja2);
    color: #fff;
}
.contact_info p:first-child {
    letter-spacing: 0.05em;
    font: 700 clamp(20px, 4vw, 35px) / 1 var(--font_en2);
    font-family: var(--font_ja2);
    margin-bottom: 10px;
}

.contact_info a {
    text-decoration: none;
    color: #ffffff;
    width: 100%;
    cursor: pointer;
    letter-spacing: 0.05em;
    font: 700 clamp(20px, 4vw, 35px) / 1 var(--font_en2);
    font-family: var(--font_ja2);
    background: var(--a_color);
    background: var(--m_color2);
    border-radius: 1000px;
    padding: 20px min(20px, 3vw);
    position: relative;
}
.contact_info a:before {
    content: "";
    width: min(20px, 4vw);
    height: auto;
    mask-image: url(../img/common/arrow2.svg);
    background: #fff;
    transition: var(--tr);
    aspect-ratio: 171 / 150;
    mask-repeat: no-repeat;
    display: block;
    position: absolute;
    top: 50%;
    right: min(40px, 4vw);
    transform: translateY(-50%);
}
.contact_info a i {
    margin-right: 10px;
    color: #fff;
}

.contact_info a:hover {
    opacity: 0.7;
}

/*お問い合わせフォーム内*/
.wpcf7 {
}

.wpcf7-list-item-label {
    margin-left: 5px;
}

.wpcf7-form_form {
    border: 1px solid #cccccc;
    background: #fff;
    padding: var(--m_ps5);
    border-radius: 5px;
    border-image: url(../img/qr/line_icon02.svg) 22 / 5px / 0px;
    position: relative;
}

.wpcf7-form_form:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    border-image: url(../img/qr/line_tate.webp) 8 / 6px / 0px;
}

.wpcf7_left {
    display: block;
    max-width: 230px;
    width: 100%;
    padding: 25px 15px;
    list-style: none;
    /* border-bottom: 1px solid #ddd; */
    font-weight: bold;
}

form.wpcf7-form .required:before {
    content: "必須";
    width: auto;
    /* display: inline-block; */
    background: #e74c3c;
    padding: 3px 5px 3px 5px;
    font-weight: normal;
    font-size: 10px;
    color: #fff;
    margin-right: 5px;
    vertical-align: middle;
}

form.wpcf7-form .required2:after {
    content: "任意";
    width: auto;
    /* display: inline-block; */
    background: #999;
    padding: 3px 5px 3px 5px;
    font-weight: normal;
    font-size: 10px;
    color: #fff;
    margin-right: 5px;
    vertical-align: middle;
}

.wpcf7_right {
    /* width: 100%; */
    padding: 25px 15px;
    /* border-bottom: 1px solid #ddd; */
    border-left: none;
    flex: 1;
}

.wpcf7_checkbox_title {
    max-width: 200px;
    width: 100%;
    border: 1px solid #ddd;
    border-bottom: none;
    background: #f3f3f3;
}

span.wpcf7-list-item {
    display: block !important;
}

.wpcf7-list-item_first_input input {
    width: auto !important;
}

span.wpcf7-list-item input {
    width: auto !important;
}

.wpcf7-validation-errors,
.wpcf7-acceptance-missing {
    border: 2px solid #e94e43 !important;
    font-size: 14px;
    color: #e94e43;
    margin: 30px 0;
}

@media all and (-ms-high-contrast: none) {
    span.wpcf7-list-item input {
        margin: 0px 5px 0px 0;
    }
}

.form_privacy span.wpcf7-list-item input {
    margin: 0px 5px 4px 0;
}

.wpcf7_container #info2 {
    margin: 10px 0 0;
}

.wpcf7-form-control-wrap input,
.wpcf7-form-control-wrap textarea {
    border: 1px solid rgba(0, 0, 0, 0.1);
    border: none;
    padding: 8px;
    width: 100%;
    font-size: 100%;
    background: #f3f3f3;
    outline: none;
}

.wpcf7-checkbox input,
.wpcf7-checkbox label span {
    cursor: pointer;
}

.form_privacy {
    margin: 30px 0;
    display: block;
    text-align: center;
}

.wpcf7c-elm-step2 {
    text-align: center;
}

.wpcf7_container {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

input::placeholder {
    color: #ddd;
}

input::-moz-input-placeholder {
    color: #ddd;
}

input::-ms-input-placeholder {
    color: #ddd;
}

textarea::placeholder {
    color: #ddd;
}

textarea::-ms-placeholder {
    color: #ddd;
}

textarea::-moz-placeholder {
    color: #ddd;
}

/*submitボタンのリセットCSS*/
input[type="submit"],
input[type="button"] {
    border-radius: 0;
    -webkit-box-sizing: content-box;
    -webkit-appearance: button;
    appearance: button;
    border: none;
    box-sizing: border-box;
    cursor: pointer;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
    display: none;
}

input[type="submit"]::focus,
input[type="button"]::focus {
    outline-offset: -2px;
}

.wpcf7-form div.wpcf7-validation-errors,
div.wpcf7-acceptance-missing {
    border: 2px solid #e94e43;
    font-size: 14px;
    color: #e94e43;
    margin: 30px 0;
}

.wpcf7-form span.wpcf7-not-valid-tip {
    font-size: 14px;
    color: #e94e43;
}

/*submitボタンの装飾*/
.wpcf7c_submit {
    text-align: center;
    width: min(500px, 80%);
    margin-inline: auto;
    position: relative;
}

.wpcf7c_submit:before {
    right: 108%;
    content: "";
    transform: translateY(-50%) scale(-1, 1);
    transition: var(--tr);
    width: min(105px, 10vw);
    height: auto;
    mask-image: url(../img/qr/icon11.svg);
    background: var(--f_color);
    position: absolute;
    top: 50%;
    transition: var(--tr);
    aspect-ratio: 183 / 150;
    mask-repeat: no-repeat;
}

.wpcf7c_submit:after {
    left: 108%;
    content: "";
    transform: translateY(-50%);
    transition: var(--tr);
    width: min(105px, 10vw);
    height: auto;
    mask-image: url(../img/qr/icon11.svg);
    background: var(--f_color);
    position: absolute;
    top: 50%;
    transition: var(--tr);
    aspect-ratio: 183 / 150;
    mask-repeat: no-repeat;
}

.wpcf7c_submit input {
    outline: none;
    max-width: 250px;
    width: 100%;
    margin: 15px auto 0;
    display: block;
    color: #fff;
    font-weight: 700;
    z-index: 0;
    border: none;
    padding: 15px;
    font-size: 14px;
    letter-spacing: 0.18em;
}

.wpcf7c_submit input[type="submit"] {
    text-align: center;
    background: var(--bg02);
    font-size: var(--h1_font);
    height: 80px;
    width: 100%;
    max-width: 100%;
    font-family: var(--font_ja2);
    font-weight: normal;
}

.wpcf7c_submit input[type="submit"]:hover,
.wpcf7c_submit input[type="button"]:hover {
    opacity: 0.8;
}

.wpcf7c_submit input[type="button"] {
    background: none;
    border: 1px solid;
    color: #555;
}

/*プライバシーポリシー*/
.readme {
    width: 78%;
    height: 200px;
    margin: 40px auto 10px;
    overflow-y: scroll;
    padding: 10px 20px;
    border: 1px solid #dadada;
    font-size: 0.8125rem;
}

.readme dl {
    margin: 20px 0 0;
}

.readme dt {
    font-weight: bold;
}

.readme dd {
    margin: 0 0px 0px 15px;
}

.readme ol li {
    margin: 0 0 0 40px;
    list-style: decimal-leading-zero;
}

/* コンタクトフォーム確認画面 */
#wpcf7cpcnf {
    position: fixed !important;
    padding: var(--m_ps8);
    background: rgba(255, 255, 255, 0.95) !important;
    height: 100% !important;
}

#wpcf7cpcnf table {
    border: none;
    width: 100%;
}

#wpcf7cpcnf table th {
    background: #fbfbf8;
    border: 1px solid #ccc;
    color: #202020;
    text-align: left;
    width: 25%;
    padding: 10px 15px;
}

#wpcf7cpcnf table th p {
    color: #202020;
}

#wpcf7cpcnf table td {
    background: #fff;
    border: 1px solid #ccc;
    width: 75%;
    padding: 5px 15px;
}

.wpcf7cp-btns {
    text-align: center;
}

.wpcf7cp-btns button {
    padding: 15px 20px;
    font-weight: bold;
    cursor: pointer;
}

.wpcf7cp-cfm-edit-btn {
    color: #ffffff;
    border: none;
    font-size: var(--h1_font);
    height: 80px;
    max-width: 500px;
    box-shadow: -3px 3px 2px #ebdecb inset;
    border-radius: 10px;
    text-shadow: 1px 2px 5px #947139;
    background: #f3e2c7;
    background: -moz-linear-gradient(top, #f3e2c7 0%, #c19e67 50%, #b68d4c 51%, #e9d4b3 100%);
    background: -webkit-linear-gradient(top, #f3e2c7 0%, #c19e67 50%, #b68d4c 51%, #e9d4b3 100%);
    background: linear-gradient(to bottom, #f3e2c7 0%, #c19e67 50%, #b68d4c 51%, #e9d4b3 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3e2c7', endColorstr='#e9d4b3', GradientType=0);
}

.wpcf7cp-cfm-submit-btn {
    background: #555;
    color: #fff;
    border: none;
    text-align: center;
    background: #555;
    font-size: var(--h1_font);
    height: 80px;
    max-width: 500px;
    background: #aae034;
    background: linear-gradient(to bottom, #aae034 0%, #aae034 0%, #45b035 100%);
    background: #9dd53a;
    background: -moz-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);
    background: -webkit-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);
    background: linear-gradient(to bottom, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9dd53a', endColorstr='#7cbc0a', GradientType=0);
    box-shadow: -3px 3px 2px #d9ff71 inset;
    border-radius: 10px;
    text-shadow: 1px 2px 5px #4fa328;
}

/*recaptcha*/
.grecaptcha-badge {
    bottom: 90px !important;
    z-index: 5;
}

/*-------------------------------------
フッター部分
-------------------------------------*/
/* フッター */
.footer {
    background: #222;
    position: relative;
    z-index: 0;
}

.footer_inner {
    justify-content: space-between;
    flex-wrap: wrap;
    padding-bottom: calc(var(--main_mp) / 2);
    max-width: min(1280px, calc(100% - (var(--m_ps8) * 2)));
}

.footer_nav {
    display: flex;
}

.footer_nav > li {
    margin-right: min(35px, 5vw);
}

.footer_nav2 a,
.footer_nav a {
    text-decoration: none;
    position: relative;
    margin: 0 30px 0 0;
    font-size: 0.8125rem;
    color: #fff;
}

.footer_nav > li > a {
    font-size: 13px;
    display: block;
    margin-bottom: 20px;
}

.footer_nav a:before,
.footer_nav2 a:before {
    content: "-";
    display: inline-block;
    margin: 0 10px 0 0;
}

.footer_nav > li > a:before {
    content: attr(data-text);
    display: block;
    font: bold clamp(18px, 3vw, 22px) var(--font_en);
    text-transform: uppercase;
    color: var(--a_color3);
}

.footer_nav > li > a:after {
    content: "";
    width: 100%;
    height: 1px;
    background: #4d4637;
    display: block;
    margin-top: 20px;
}

.footer_nav a:hover,
.footer_nav2 a:hover {
    opacity: 0.5;
}

.footer_left {
    width: fit-content;
}

.footer_address .site_ttl {
    padding: 0;
    position: static;
    background: none;
    width: min(250px, 80%);
}

.footer_address .site_ttl a {
    margin: 0 auto;
}

.footer_right {
    width: fit-content;
}

/*sns部分*/
.footer_sns {
    margin-top: 20px;
}

.footer_sns a {
    font-size: 25px;
    display: inline-block;
}

.footer_sns i {
    color: #fff;
    font-size: clamp(32px, 3vw, 32px);
    width: 20%;
    text-align: center;
}

.footer_sns_ig {
    border: 2px solid #c21500;
    border-image: linear-gradient(
        45deg,
        rgb(255 211 14) 0%,
        rgba(229, 61, 93, 1) 50%,
        rgba(194, 49, 134, 1) 70%,
        rgba(156, 56, 187, 1) 100%
    );
    border-image-slice: 1;
    padding: 20px;
    position: relative;
    max-width: 330px;
}

.footer_sns_ig:before {
    content: "";
    width: 10px;
    height: 60%;
    position: absolute;
    left: -5px;
    top: 50%;
    transform: translateY(-50%);
    background: #222;
    transition: var(--tr);
}

.footer_sns_ig:after {
    content: "";
    width: 10px;
    height: 60%;
    position: absolute;
    right: -5px;
    top: 50%;
    transform: translateY(-50%);
    background: #222;
    transition: var(--tr);
}

.footer_sns_ig:hover:before,
.footer_sns_ig:hover:after {
    height: 0%;
}

.footer_sns_ig a {
    display: flex;
    text-decoration: none;
    justify-content: space-between;
    align-items: center;
}

.footer_sns_ig p {
    color: #fff;
    font-size: 14px;
    width: 75%;
}

.footer_sns_other {
    display: flex;
}

.footer_sns_other a {
    display: block;
    margin-right: 20px;
}

.footer_sns_other i {
    font-size: 22px;
}

.footer_sns_other a:hover {
    opacity: 0.5;
}

/*アドレス*/
.address_container {
    font-size: 0.8125rem;
    margin: 30px 0 0;
    color: #fff;
}

.address_container a {
    color: #fff;
    text-decoration: none;
}

.copyright {
    text-align: center;
    border: none;
    color: #fff;
    font-size: 0.6875rem;
    border-top: 1px solid #474747;
    padding: 35px 20px;
}

.copyright p {
    color: #fff;
}

.copyright a {
    font-size: 0.875rem;
    color: #fff;
}

.footer_googlemap {
    margin-bottom: var(--main_mp);
}

.footer_googlemap iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 16/6;
}

/* topに戻る */
#page-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 6;
}

#page-top a {
    display: block;
    position: relative;
    padding: 10px 12px;
    background: var(--m_color);
    width: 50px;
    height: 50px;
}

#page-top a::after {
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    border-top: 1px solid #fff;
    border-left: 1px solid #fff;
    transform: translate(-50%, -50%) rotate(45deg);
    position: absolute;
    left: 50%;
    top: 61%;
}

#page-top a:hover {
    opacity: 0.7;
}

@media only screen and (max-width: 1100px) {
    .sp_none3 {
        display: none;
    }
}
@media only screen and (max-width: 550px) {
    .sp_none3 {
        display: block;
    }
}

@media only screen and (max-width: 1024px) {
    .header {
        padding-bottom: 68vh;
    }
    body .h_img_wrap {
        height: auto;
    }
    .fv_inner {
        height: 85vh;
    }
    .fv_icon01 picture {
        width: 110vw;
        /* margin-inline-start: -5vw; */
        max-width: 800px;
        margin-inline: auto;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }

    .qr_con02::after {
        right: -26%;
        width: 65vw;
    }

    .lp_con06_wrap {
        background-size: 90%;
    }
    .lp_con06_wrap h2 {
        text-shadow:
            2px 2px 0 #fff,
            -2px -2px 0 #fff,
            -2px 2px 0 #fff,
            2px -2px 0 #fff,
            0px 2px 0 #fff,
            0-2px 0 #fff,
            -2px 0 0 #fff,
            2px 0 0 #fff;
    }

    .qr_con02_inner_inner .h2_other_wrap:before {
        position: absolute;
        right: calc(100% + 5vw);
        left: auto;
        width: 10vw;
    }
    .qr_con02_inner_inner .h2_other_wrap:after {
        position: absolute;
        right: auto;
        left: calc(100% + 5vw);
        width: 10vw;
    }

    .qr_con02_inner li .img:before {
        bottom: 49%;
    }

    .qr_con03_inner .slide-arrow {
        width: 10vw;
    }
}

@media only screen and (min-width: 821px) {
    .pc_none {
        display: none;
    }
}

@media only screen and (max-width: 820px) {
    :root {
        --main_mp: 80px;
        --m_ps3: 20px;
        --m_ps5: 30px;
        --m_ps8: 50px;
    }

    /*-------------------------------------
    共通パーツ
    -------------------------------------*/
    .main_col {
        margin-bottom: 80px;
    }

    .main_pa {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .sp_none {
        display: none !important;
    }

    .main_wrap {
        /* padding-top: 80px; */
        /* padding-bottom: 80px; */
    }
    .m_lr {
        max-width: min(1280px, calc(100% - (var(--m_ps5) * 2)));
    }

    /*-------------------------------------
    header
    -------------------------------------*/
    .h_nav_wrap {
    }
    .h_nav_inner {
    }
    .g_nav_tel {
    }
    .g_nav_cta {
    }

    /*-------------------------------------
    1コンテンツ目
    -------------------------------------*/
    .qr_con01:before {
        width: 70vw;
        left: -13%;
    }
    .qr_con01_inner {
        padding-top: 100px;
    }
    .qr_con01_img_left li:nth-child(2) {
        top: 2%;
        left: 17%;
    }
    .qr_con01_img_left li:nth-child(3) {
        top: 3%;
        left: 31%;
    }
    .qr_con01_img_right li {
        top: 2%;
        right: 49%;
    }
    .qr_con01_img_right li:nth-child(2) {
        top: -2%;
        left: 53%;
        right: auto;
    }
    .qr_con01_img_right li:nth-child(3) {
        top: 5%;
        right: 21%;
    }

    @keyframes floating-y {
        0% {
            transform: translateY(-5%);
        }

        100% {
            transform: translateY(0%);
        }
    }

    /*-------------------------------------
    2コンテンツ目
    -------------------------------------*/
    .qr_con02_list {
    }
    .qr_con02_inner li .img:before {
        bottom: 63%;
        width: 10vw;
    }

    /*-------------------------------------
   3コンテンツ目
    -------------------------------------*/
    .qr_con03_inner_inner .slick-dotted.slick-slider {
        /* margin-bottom: 0; */
    }
    .qr_con03_inner_inner .num {
        width: 25%;
        top: -11%;
        right: -9%;
    }
    .qr_con03_inner_inner .slick .item section {
        padding: 20px 20px;
    }
    .qr_con03_inner_inner .slick .item {
        margin-inline: 10px;
        height: auto !important;
    }
    .qr_con03_inner_inner .slick .item:before {
        border-image: url(../img/qr/line_icon02.svg) 25 / 8px / 10px;
    }
    .qr_con03_inner_inner .slick .item:after {
        border-image: url(../img/qr/line_tate.webp) 8 / 6px / 10px;
    }
    .qr_con03_inner_inner .slick .item_inner {
        flex-flow: column;
        gap: 15px;
    }
    .qr_con03_inner_inner .slick .works_img {
        width: 100%;
    }
    .works_img .twentytwenty-before_wrap:before {
        top: 10px;
        padding: 5px 10px;
        left: 10px;
    }
    .works_img .twentytwenty-after_wrap:before {
        right: 10px;
        top: 10px;
        padding: 5px 10px;
    }
    .qr_con03_inner_inner .slick .txt {
        padding: 0;
    }
    .qr_con03_inner_inner .slick .item h3::after {
        margin-top: 20px;
        content: none;
    }
    .qr_con03_inner_inner .slick .txt .cat {
        margin-bottom: 0;
    }

    /*-------------------------------------
    footer
    -------------------------------------*/
    .footer_right {
        display: block;
        width: 100%;
    }

    .footer_nav {
        margin-bottom: 30px;
        justify-content: space-between;
    }

    .footer_nav > li {
        width: calc(100% / 3 - 4vw);
        margin-right: 0;
    }

    .footer_nav > li > a {
        margin-right: 0;
    }
}

@media only screen and (max-width: 768px) {
    .lp_con06_wrap ul:after {
        display: none;
    }

    .lp_con06_wrap h2 {
        width: fit-content;
    }
}

@media only screen and (max-width: 550px) {
    /*-------------------------------------
    定義
    -------------------------------------*/
    :root {
        --main_mp: 50px;
        --m_ps3: 20px;
        --m_ps5: 30px;
        --m_ps8: 50px;
    }

    /*-------------------------------------
    共通パーツ
    -------------------------------------*/
    .sp_none2 {
        display: none !important;
    }

    .pc_none2 {
        display: block;
    }

    h3 {
        font-size: 20px;
        margin-bottom: 30px;
    }
    .m_lr {
        max-width: min(1280px, calc(100% - (25px * 2)));
        padding-inline: 0;
    }
    .h2_other span:not(.small) {
        margin-top: 5px;
    }

    .main_pa {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    /*-------------------------------------
    CTA
    -------------------------------------*/
    .common_cta_wrap {
        background: url(../img/snow/cta_sp.jpg) no-repeat 50% 50% / 100%;
        padding-top: 27px;
        padding-bottom: 20px;
    }

    .common_cta_inner {
        padding-left: 15px;
        padding-right: 15px;
    }

    .common_cta_inner_inner {
        width: 100%;
        display: flex;
        flex-flow: column;
    }

    .common_cta_01 {
        order: 2;
    }

    .common_cta_01 > div:nth-child(1) {
        display: none;
    }

    .common_cta_01 > div:nth-child(2):before {
        content: none;
    }

    .common_cta_02 {
        width: 57vw;
        margin-bottom: 20px;
    }

    .common_cta_02 > p {
        font: bold clamp(12px, 2vw, 25px) var(--font_ja);
    }

    /*-------------------------------------
    レイアウト
    -------------------------------------*/
    .wrap {
        font-size: 15px;
    }

    /*-------------------------------------
    header
    -------------------------------------*/

    .header {
        padding-bottom: 530px;
    }
    .header:before {
        height: 130px;
    }

    .h_nav_wrap {
        /* position: static; */
    }

    .site_ttl {
        width: 40vw;
        margin-inline-start: auto;
        padding: 11px 20px 0 0;
    }

    body .h_img_wrap {
        padding-top: 0;
    }
    .fv_inner {
        height: 600px;
    }
    .site_ttl a {
        /* color: #fff; */
        display: block;
        line-height: 1;
    }
    .fb_cta {
        display: none;
    }

    .g_nav_tel img {
        width: 40vw;
    }

    .menu-trigger {
        top: 17px;
        right: 10px;
    }
    .fv_icon01 picture {
        width: min(500px, 135vw);
        margin-inline: auto;
        /* margin-left: -21%; */
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }
    .fb_txt {
        width: calc(100% - 40px);
    }
    .fb_txt .img {
        width: 50vw;
        margin-bottom: 30px;
    }
    .fb_txt .txt {
    }

    .cta_btn01 {
        transform: translateX(0);
        left: 10px;
        height: min(250px, 25.3vw);
        width: 100vw;
        bottom: 2%;
    }

    .cta_btn01 > div:nth-child(1) {
        width: min(510px, 70vw);
        left: 16%;
    }

    .cta_btn01 > div:nth-child(2) {
        width: min(330px, 45vw);
        bottom: 75%;
        left: 21%;
    }

    .cta_btn01 > div:nth-child(3) {
        width: min(170px, 20vw);
        bottom: 11%;
        left: 0;
    }

    /*-------------------------------------
    1コンテンツ目
    -------------------------------------*/
    .qr_con01 {
        padding-bottom: 80px;
    }
    .qr_con01:before {
        top: -9%;
        width: 100vw;
    }
    .qr_con01_inner {
        position: relative;
        padding-top: 120px;
    }
    .qr_con01_main .txt {
        background-size: 384px;
    }
    .qr_con01_main .txt p {
        line-height: 40px;
        font-size: 14px;
    }
    .qr_con01_main .name {
        margin-top: 39px;
        padding-bottom: 10px;
    }
    .qr_con01_img_left {
    }
    .qr_con01_img_left li:nth-child(2) {
        top: 0%;
        left: 26%;
    }
    .qr_con01_img_left li:nth-child(2) img {
        width: 20vw;
    }
    .qr_con01_img_left li:nth-child(3) {
        top: -2%;
        left: 46%;
    }
    .qr_con01_img_left li:nth-child(3) img {
        width: 15vw;
    }
    .qr_con01_img_right {
    }
    .qr_con01_img_right li:nth-child(1) {
        right: 24%;
    }
    .qr_con01_img_right li:nth-child(1) img {
        width: 13vw;
    }
    .qr_con01_img_right li:nth-child(2) {
        left: auto;
        top: -5%;
        right: 0;
    }
    .qr_con01_img_right li:nth-child(2) img {
        width: 20vw;
    }
    .qr_con01_img_right li:nth-child(3) {
        right: 0%;
        display: none;
    }
    .qr_con01_img_right li:nth-child(3) img {
        width: 15vw;
    }

    /*-------------------------------------
    2コンテンツ目
    -------------------------------------*/
    .qr_con02_inner {
        padding-top: 50px;
    }
    .qr_con02_inner_inner .h2_other_wrap:before {
        width: 17vw;
        right: calc(100% + 4vw);
    }
    .qr_con02_inner_inner .h2_other_wrap:after {
        width: 17vw;
        left: calc(100% + 4vw);
    }
    .qr_con02_inner_inner .h2_other > span:not(.small):before {
        bottom: -8px;
    }
    .qr_con02_inner_inner .h2_other::after {
        width: 30vw;
        top: -2%;
    }
    .qr_con02_inner .icon01:before {
        width: 39vw;
        bottom: -86%;
    }
    .qr_con02::after {
        width: 90vw;
        right: -35%;
        z-index: 0;
    }
    .qr_con02_list {
        flex-flow: column;
        gap: 70px;
    }
    .qr_con02_list li {
    }
    .qr_con02_inner li:not(:last-child):before {
        background: url(../img/qr/line_yoko.webp) repeat-x 50% 0;
        height: 11px;
        width: 80%;
        top: auto;
        bottom: -40px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }
    .qr_con02_inner li .img:before {
        bottom: 31%;
        width: 20vw;
    }

    /*-------------------------------------
    3コンテンツ目
    -------------------------------------*/
    .qr_con03_inner {
        padding-bottom: 80px;
    }
    .qr_con03_inner::before {
        width: 30vw;
        left: 3%;
        bottom: -3%;
        display: none;
    }
    .qr_con03_inner_inner .h2_wrap {
        gap: 10px;
        position: relative;
        z-index: 1;
        margin-bottom: 50px;
    }
    .qr_con03_inner_inner .h2_wrap .img:after,
    .qr_con03_inner_inner .h2_wrap .img:before {
        content: none;
    }
    .qr_con03_inner_inner .h2_wrap .img:after {
    }
    .qr_con03_inner_inner .h2_wrap .img img {
        width: 50vw;
    }
    .qr_con03_inner_inner .h2_wrap span {
        gap: 5px;
        width: calc(100% + 20px);
        margin-inline: auto;
        margin-bottom: 5px;
        justify-content: center;
    }
    .qr_con03_inner_inner .h2_wrap span:before {
        left: -10px;
        position: relative;
    }
    .qr_con03_inner_inner .h2_wrap span:after {
        position: relative;
        right: -10px;
    }
    .qr_con03_inner_inner .slick_wrap:before {
        width: 24vw;
        left: -13px;
        bottom: 119%;
    }
    .qr_con03_inner_inner .slick_wrap:after {
        width: 20vw;
        right: -7%;
        bottom: 118%;
    }

    .qr_con03_inner_inner .slick .txt .common_btn {
        display: none;
    }
    .qr_con03_inner::after {
        bottom: -3%;
        width: 30vw;
        right: -3%;
    }
    /*-------------------------------------
    4コンテンツ目
    -------------------------------------*/
    .qr_con04 > div {
        padding-top: calc(var(--main_mp) * 1.5);
    }
    .qr_con04_inner > p,
    .contact_info_wrap {
        padding-inline: 15px;
    }
    .contact_info p:first-child {
        margin: 0;
        text-align: left;
        padding-left: 15px;
    }
    .contact_info_banner_wrap {
        flex-flow: column;
        gap: 20px;
    }
    .contact_info a + p {
        color: var(--f_color);
    }

    /*-------------------------------------
    お問い合わせ
    -------------------------------------*/
    .wpcf7 {
        margin: 30px 0 0;
    }

    .wpcf7_container div.flex {
        display: block;
    }

    .wpcf7_checkbox_title {
        border: none;
    }

    .wpcf7-form-control-wrap input,
    .wpcf7-form-control-wrap textarea {
        font-size: 16px;
    }

    .wpcf7-form_form .flex {
        display: block;
        border-bottom: 1px solid #ddd;
        padding: 0 0 15px;
    }

    .wpcf7_left {
        max-width: 100%;
        border: none;
        padding: 10px 0;
    }

    .wpcf7_right {
        padding: 0;
        border: none;
    }

    .readme {
        width: 100%;
        margin: 30px 0 10px;
        height: 150px;
    }

    div#wpcf7cpcnf {
        padding: 30px 20px;
    }

    .wpcf7cp-cfm-edit-btn,
    .wpcf7cp-cfm-submit-btn {
        font-size: clamp(18px, 3vw, 32px);
        height: min(80px, 15vw);
    }

    /*-------------------------------------
    footer
    -------------------------------------*/
    .footer {
    }
    .footer_address .site_ttl {
        margin: 0;
    }
    .footer_inner {
        display: block;
        /* padding-left: 20px; */
        /* padding-right: 20px; */
    }

    .footer_nav {
        display: block;
    }

    .footer_nav {
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-justify-content: space-between;
        justify-content: space-between;
    }

    .footer_nav li {
        margin: 0 0 5px;
    }

    .footer_nav > li {
        width: 100%;
        margin-bottom: 50px;
    }

    .footer_nav > li > a:before {
        margin-right: 0;
    }

    .footer_nav > li > a:after {
        margin-top: 15px;
    }

    .footer_nav > li > a {
        margin-bottom: 15px;
    }

    .copyright {
        padding: 35px 50px 100px;
        margin: 0;
    }

    .footer_googlemap iframe {
        aspect-ratio: 3 / 2;
    }

    .footer_right {
        margin-top: 50px;
    }

    /*-------------------------------------
    footer追従ナビ
    -------------------------------------*/
    .sp_bar {
        padding-bottom: env(safe-area-inset-bottom);
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: 9;
        background: var(--m_color2);
    }

    .sp_bar li {
        width: calc(100% / 2);
    }

    .sp_bar a {
        color: #fff;
        padding: 9px 10px;
        display: block;
        text-decoration: none;
    }

    /*recaptcha*/
    .grecaptcha-badge {
        bottom: 70px !important;
        z-index: 5;
    }
}
