/*
Theme Name: GRACE BODY REPAIR
Description: GRACE BODY REPAIR のテーマ
Version: 1.0
Author:	株式会社GRACE
License: GPL
License URI: https://www.gnu.org/copyleft/gpl.html
*/


@charset "utf-8";

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    font-weight: normal;
    vertical-align: baseline;
    background: transparent;
}

html {
    scroll-behavior: smooth;
}

body {
    line-height: 1;
    -webkit-text-size-adjust: 100%;
}

address {
    font-style: normal
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
menu,
nav,
section {
    display: block;
}

nav ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

/* change colours to suit your needs */
ins {
    background: #ff9;
    color: #000;
    text-decoration: none;
}

/* change colours to suit your needs */
mark {
    background: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold;
}

del {
    text-decoration: line-through;
}

abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0;
}

input,
select {
    vertical-align: middle;
}

/* Reset+ */

ol li,
ul li {
    list-style: none;
    list-style-position: inside;
}

img {
    border: none;
    vertical-align: bottom;
    max-width: 100%;
    height: auto;
}

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

.material-icon {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    /* font-size: 24px; */
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
}

.mt05 {
    margin-top: 5px !important;
}

.mt10 {
    margin-top: 10px !important;
}

.mt15 {
    margin-top: 15px !important;
}

.mt20 {
    margin-top: 20px !important;
}

.mt25 {
    margin-top: 25px !important;
}

.mt30 {
    margin-top: 30px !important;
}

.mt35 {
    margin-top: 35px !important;
}

.mt40 {
    margin-top: 40px !important;
}

.mt45 {
    margin-top: 45px !important;
}

.mt50 {
    margin-top: 50px !important;
}

.mt55 {
    margin-top: 55px !important;
}

.mt60 {
    margin-top: 60px !important;
}

.mt65 {
    margin-top: 65px !important;
}

.mt70 {
    margin-top: 70px !important;
}

.mt75 {
    margin-top: 75px !important;
}

.mt80 {
    margin-top: 80px !important;
}

.mt85 {
    margin-top: 85px !important;
}

.mt90 {
    margin-top: 90px !important;
}

.mt95 {
    margin-top: 95px !important;
}

.mt100 {
    margin-top: 100px !important;
}

.mb00 {
    margin-bottom: 0 !important;
}

.mb05 {
    margin-bottom: 5px !important;
}

.mb10 {
    margin-bottom: 10px !important;
}

.mb15 {
    margin-bottom: 15px !important;
}

.mb20 {
    margin-bottom: 20px !important;
}

.mb25 {
    margin-bottom: 25px !important;
}

.mb30 {
    margin-bottom: 30px !important;
}

.mb35 {
    margin-bottom: 35px !important;
}

.mb40 {
    margin-bottom: 40px !important;
}

.mb45 {
    margin-bottom: 45px !important;
}

.mb50 {
    margin-bottom: 50px !important;
}

.mb55 {
    margin-bottom: 55px !important;
}

.mb60 {
    margin-bottom: 60px !important;
}

.mb65 {
    margin-bottom: 65px !important;
}

.mb70 {
    margin-bottom: 70px !important;
}

.mb75 {
    margin-bottom: 75px !important;
}

.mb80 {
    margin-bottom: 80px !important;
}

.mb85 {
    margin-bottom: 85px !important;
}

.mb90 {
    margin-bottom: 90px !important;
}

.mb95 {
    margin-bottom: 95px !important;
}

.mb100 {
    margin-bottom: 100px !important;
}

.mr05 {
    margin-right: 5px !important;
}

.mr10 {
    margin-right: 10px !important;
}

.mr15 {
    margin-right: 15px !important;
}

.mr20 {
    margin-right: 20px !important;
}

.mr25 {
    margin-right: 25px !important;
}

.mr30 {
    margin-right: 30px !important;
}

.mr35 {
    margin-right: 35px !important;
}

.mr40 {
    margin-right: 40px !important;
}

.mr45 {
    margin-right: 45px !important;
}

.mr50 {
    margin-right: 50px !important;
}

.mr55 {
    margin-right: 55px !important;
}

.mr60 {
    margin-right: 60px !important;
}

.mr65 {
    margin-right: 65px !important;
}

.mr70 {
    margin-right: 70px !important;
}

.mr75 {
    margin-right: 75px !important;
}

.mr80 {
    margin-right: 80px !important;
}

.mr85 {
    margin-right: 85px !important;
}

.mr90 {
    margin-right: 90px !important;
}

.mr95 {
    margin-right: 95px !important;
}

.mr100 {
    margin-right: 100px !important;
}

.ml05 {
    margin-left: 5px !important;
}

.ml10 {
    margin-left: 10px !important;
}

.ml15 {
    margin-left: 15px !important;
}

.ml20 {
    margin-left: 20px !important;
}

.ml25 {
    margin-left: 25px !important;
}

.ml30 {
    margin-left: 30px !important;
}

.ml35 {
    margin-left: 35px !important;
}

.ml40 {
    margin-left: 40px !important;
}

.ml45 {
    margin-left: 45px !important;
}

.ml50 {
    margin-left: 50px !important;
}

.ml55 {
    margin-left: 55px !important;
}

.ml60 {
    margin-left: 60px !important;
}

.ml65 {
    margin-left: 65px !important;
}

.ml70 {
    margin-left: 70px !important;
}

.ml75 {
    margin-left: 75px !important;
}

.ml80 {
    margin-left: 80px !important;
}

.ml85 {
    margin-left: 85px !important;
}

.ml90 {
    margin-left: 90px !important;
}

.ml95 {
    margin-left: 95px !important;
}

.ml100 {
    margin-left: 100px !important;
}

.m_a {
    margin-right: auto;
    margin-left: auto;
}

.pt00 {
    padding-top: 0 !important;
}

.pt05 {
    padding-top: 5px !important;
}

.pt10 {
    padding-top: 10px !important;
}

.pt15 {
    padding-top: 15px !important;
}

.pt20 {
    padding-top: 20px !important;
}

.pt25 {
    padding-top: 25px !important;
}

.pt30 {
    padding-top: 30px !important;
}

.pt35 {
    padding-top: 35px !important;
}

.pt40 {
    padding-top: 40px !important;
}

.pt45 {
    padding-top: 45px !important;
}

.pt50 {
    padding-top: 50px !important;
}

.pt55 {
    padding-top: 55px !important;
}

.pt60 {
    padding-top: 60px !important;
}

.pt65 {
    padding-top: 65px !important;
}

.pt70 {
    padding-top: 70px !important;
}

.pt75 {
    padding-top: 75px !important;
}

.pt80 {
    padding-top: 80px !important;
}

.pt85 {
    padding-top: 85px;
}

.pt90 {
    padding-top: 90px;
}

.pt95 {
    padding-top: 95px;
}

.pt100 {
    padding-top: 100px;
}

.pb00 {
    padding-bottom: 0 !important;
}

.pb05 {
    padding-bottom: 5px !important;
}

.pb10 {
    padding-bottom: 10px !important;
}

.pb15 {
    padding-bottom: 15px !important;
}

.pb20 {
    padding-bottom: 20px !important;
}

.pb25 {
    padding-bottom: 25px !important;
}

.pb30 {
    padding-bottom: 30px !important;
}

.pb35 {
    padding-bottom: 35px !important;
}

.pb40 {
    padding-bottom: 40px !important;
}

.pb45 {
    padding-bottom: 45px !important;
}

.pb50 {
    padding-bottom: 50px !important;
}

.pb55 {
    padding-bottom: 55px !important;
}

.pb60 {
    padding-bottom: 60px !important;
}

.pb65 {
    padding-bottom: 65px !important;
}

.pb70 {
    padding-bottom: 70px !important;
}

.pb75 {
    padding-bottom: 75px !important;
}

.pb80 {
    padding-bottom: 80px !important;
}

.pb85 {
    padding-bottom: 85px;
}

.pb90 {
    padding-bottom: 90px;
}

.pb95 {
    padding-bottom: 95px;
}

.pb100 {
    padding-bottom: 100px;
}

.pb120 {
    padding-bottom: 120px;
}

.pb150 {
    padding-bottom: 150px;
}

.pr05 {
    padding-right: 5px;
}

.pr10 {
    padding-right: 10px;
}

.pr15 {
    padding-right: 15px;
}

.pr20 {
    padding-right: 20px;
}

.pr25 {
    padding-right: 25px;
}

.pr30 {
    padding-right: 30px;
}

.pr35 {
    padding-right: 35px;
}

.pr40 {
    padding-right: 40px;
}

.pr45 {
    padding-right: 45px;
}

.pr50 {
    padding-right: 50px;
}

.pr55 {
    padding-right: 55px;
}

.pr60 {
    padding-right: 60px;
}

.pr65 {
    padding-right: 65px;
}

.pr70 {
    padding-right: 70px;
}

.pr75 {
    padding-right: 75px;
}

.pr80 {
    padding-right: 80px;
}

.pr85 {
    padding-right: 85px;
}

.pr90 {
    padding-right: 90px;
}

.pr95 {
    padding-right: 95px;
}

.pr100 {
    padding-right: 100px;
}

.pl05 {
    padding-left: 5px;
}

.pl10 {
    padding-left: 10px;
}

.pl15 {
    padding-left: 15px;
}

.pl20 {
    padding-left: 20px;
}

.pl25 {
    padding-left: 25px;
}

.pl30 {
    padding-left: 30px;
}

.pl35 {
    padding-left: 35px;
}

.pl40 {
    padding-left: 40px;
}

.pl45 {
    padding-left: 45px;
}

.pl50 {
    padding-left: 50px;
}

.pl55 {
    padding-left: 55px;
}

.pl60 {
    padding-left: 60px;
}

.pl65 {
    padding-left: 65px;
}

.pl70 {
    padding-left: 70px;
}

.pl75 {
    padding-left: 75px;
}

.pl80 {
    padding-left: 80px;
}

.pl85 {
    padding-left: 85px;
}

.pl90 {
    padding-left: 90px;
}

.pl95 {
    padding-left: 95px;
}

.pl100 {
    padding-left: 100px;
}

.fl_r,
.floatR {
    float: right;
}

.fl_l,
.floatL {
    float: left;
}

.fw_b,
.bold {
    font-weight: bold;
}

.txt_c,
.textC {
    text-align: center;
}

.txt_r,
.textR {
    text-align: right;
}

.txt_l,
.textL {
    text-align: left;
}

.w100per {
    width: 100%;
}

.w95per {
    width: 95%;
}

.w90per {
    width: 90%;
}

.w85per {
    width: 85%;
}

.w80per {
    width: 80%;
}

.w75per {
    width: 75%;
}

.w70per {
    width: 70%;
}

.w65per {
    width: 65%;
}

.w60per {
    width: 60%;
}

.w55per {
    width: 55%;
}

.w50per {
    width: 50%;
}

:root {
    --lgGold: linear-gradient(90deg, #c0aa74, #c3ac77, #b49b61);
    --lgBlue: linear-gradient(90deg, #035392, #004681);
    --mainColor: #005e99;
    --margin: 24px;
}

@media only screen and (max-width: 767px) {
    :root {
        --margin: 15px;
    }
}

/* Common */

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

    .pc,
    .mini {
        display: none;
    }
}

body {
    font-family: Avenir, "Open Sans", "Helvetica Neue", Helvetica, Arial, Verdana, Roboto, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "メイリオ", Meiryo, "Meiryo UI", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 14px;
    line-height: 1.8;
    color: #000;
    background: #fff;
}

.serif {
    font-family: "Roboto Slab", Garamond, "Times New Roman", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    font-size: 16px;
}

a {
    color: currentColor;
    text-decoration: none;
}

a:hover {
    opacity: 0.6;
    -webkit-transition: all .5s;
    transition: all .5s;
}

a:hover img {
    opacity: 0.8;
    -webkit-transition: all .5s;
    transition: all .5s;
}

.white {
    color: #fff;
}

.black {
    color: #000;
}

.blue {
    color: var(--mainColor);
}

.red {
    color: #ee0000;
}

.yl {
    color: #ffc000;
}

.bgRed {
    background: #d5001c;
}

.bgGray {
    background: #ebeff3;
}

.bgBlue {
    background: var(--mainColor);
}

.bgBlack {
    background: #000;
}

.bgBlack2 {
    background: #333;
}

.bgWhite {
    background: #fff;
}

.bgPink {
    background: #fcf3fb;
}

.bgYl {
    background: #fbfcf3;
}

.bgF0 {
    background: #f0f0f0;
}

.bgF5 {
    background: #f5f5f5;
}

.bgD0 {
    background: #d0d0d0;
}

.fs12 {
    font-size: 12px;
}

.fs13 {
    font-size: 13px;
}

.fs14 {
    font-size: 100%;
}

.fs15 {
    font-size: 15px;
}

.fs16 {
    font-size: 16px;
}

.fs18 {
    font-size: 18px;
}

.fs20 {
    font-size: 20px;
}

.fs22 {
    font-size: 22px;
}

.fs24 {
    font-size: 24px;
}

.fs26 {
    font-size: 26px;
}

.fs28 {
    font-size: 28px;
}

.fs30 {
    font-size: 30px;
}

.fs32 {
    font-size: 32px;
}

.fs36 {
    font-size: 36px;
}

.fs38 {
    font-size: 38px;
}

.fs40 {
    font-size: 40px;
}

.opensans,
.en {
    font-family: 'Open Sans', sans-serif;
}

.smp {
    display: none;
}

/*クリアフィックス*/
.cf:after {
    content: ".";
    display: block;
    clear: both;
    height: 0;
    visibility: hidden;
}

.contentWrp {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    text-align: left;
}

.contentWrpS {
    max-width: 1000px;
    width: 96%;
    margin: 0 auto;
    position: relative;
}

.inner {
    padding-right: var(--margin);
    padding-left: var(--margin);
    margin: 0 auto;
    position: relative;
}

.dispTb {
    display: table;
}

.vMiddle {
    display: table-cell;
    vertical-align: middle;
}

iframe {
    width: 100%;
}

.flex {
    display: -webkit-flex;
    display: flex;
}

.flex1 {
    -webkit-justify-content: space-between;
    justify-content: space-between;
}

.flex2 {
    justify-content: space-around;
    align-items: stretch;
}

.flex3 {
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
}

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

.col1of2,
.col2 li {
    width: 49%;
}

.col1of2 {
    max-width: 580px;
}

.col3 li {
    width: 32%;
    max-width: 390px;
}

.col4 li {
    width: 24%;
}

.col5 li {
    width: 19%;
}

.img img {
    width: 100%;
    height: auto;
}

.btn {
    position: relative;
    cursor: pointer;
    font-size: 100%;
}

.btn:hover {
    transition: .3s;
}

.btn a {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 3;
}

.btn span {
    position: relative;
    display: block;
    z-index: 1;
}

.btn1 {
    position: relative;
    width: 200px;
    height: 35px;
    text-align: center;
    background: var(--lgBlue);
    border-radius: 5px;
}

.btn1 span:before {
    content: '';
    position: absolute;
    top: 40%;
    left: 85%;
    width: 15px;
    height: 7px;
    background-image: url(images/btn/arrow01.png);
}

.btn1:hover span:before {
    left: 87%;
    transition: .2s;
}

.btn1 span {
    padding: 5px;
    text-align: center;
    color: #fff;
}

.btn2 {
    position: relative;
    max-width: 200px;
    width: 100%;
    text-align: center;
    background: #fff;
}

.btn2 span:before {
    content: '';
    position: absolute;
    top: 40%;
    left: 85%;
    width: 15px;
    height: 7px;
    background-image: url(images/btn/arrow02.png);
}

.btn2:hover span:before {
    left: 87%;
    transition: .2s;
}

.btn2 span {
    padding: 5px;
    text-align: center;
    color: var(--mainColor);
}

.btn3 {
    width: 185px;
    padding: 10px 0 10px 30px;
    text-align: left;
    color: #fff;
    background: #333 url(images/btn/arrow01.png) no-repeat 80% 50%;
}

.btn3:hover {
    background: #d5001c url(images/btn/arrow01.png) no-repeat 80% 50%;
}

.lh2 {
    line-height: 2;
}

.lh12 {
    line-height: 1.2;
}

.lh13 {
    line-height: 1.3;
}

.lh14 {
    line-height: 1.4;
}

.lh15 {
    line-height: 1.5;
}

ul.disc li {
    margin-left: 1.2em;
    list-style-type: disc;
    list-style-position: outside;
}

#loading {
    width: 100%;
    height: 100%;
    margin: 0;
    background: #fff;
    opacity: 1.0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
}

#loading img {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    margin-top: -80px;
    margin-left: -80px;
    width: 80px;
    margin: auto;
}

/*---------------------
header
---------------------*/
.header {
    position: relative;
    width: 100%;
    height: 80px;
}

.header__content {
    display: flex;
    align-items: stretch;
    height: 100%;
}

.header__site-title {
    min-width: max-content;
    padding: 0 20px;
    align-content: center;
}

.header__home-link,
.header__store-name {
    font-weight: 700;
    font-size: clamp(14px, 1.5vw, 32px);
}

.header__store-kana {
    font-weight: 700;
    text-align: center;
}


.header__gnav {
    display: flex;
    margin-top: 2em;
}

.header__gnav___link {
    align-content: center;
    border-bottom: transparent 3px solid;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 14px;
    font-size: clamp(10px, 1.09vw, 14px);
    flex-grow: 1;
    text-align: center;
    line-height: 1.2;
}

.header__gnav___link.current,
.header__gnav___link:hover {
    border-color: #043c78;
}

.header__gnav___item span {
    display: block;
}

.header__cta {
    display: flex;
    margin-left: auto;
}

.header__cta__link {
    padding: 0 10px;
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;
}

@media only screen and (max-width: 767px) {
    .header__cta__link {
        aspect-ratio: 1/1;
    }
}

.header__tel-link {
    color: #043c78;
    background: #f5f5f5;
}

.header__tel-link:hover {
    color: #043c78;
}

.header__tel-num {
    font-size: 16px;
    font-size: clamp(12px, 1.1vw, 16px);
    font-weight: 700;
    line-height: 1.4;
}

.header__mail-link {
    color: #fff;
    background: var(--lgGold);
}

.header__mail-link:hover {
    color: #fff;
}


.header__mail__title {
    font-size: 14px;
    font-size: clamp(10px, 1vw, 14px);
    font-weight: 700;
    line-height: 1.4;
}

.header__cta__info {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
}

.header__cta__icon {
    font-size: 24px;
}

@media only screen and (max-width: 999px) {
    .header {
        height: 64px;
    }

    .header__gnav {
        display: none;
    }

    .header__cta {
        margin-right: 64px;
    }
}


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

    .header__tel__text-content,
    .header__mail__text-content {
        display: none;
    }
}


.drawer-hamburger {
    display: none;
}

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

    /* ドロワー */
    .drawer-hamburger {
        display: block;
        height: 64px;
        width: 64px;
        box-sizing: border-box;
        top: 0;
        background: rgba(255, 255, 255, 0.9) !important;
        border: 1px solid #ccc;
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
        z-index: 100;
    }

    .header__home-link,
    .header__store-name {
        font-size: 20px;
    }

    @media screen and (-webkit-min-device-pixel-ratio: 0) {

        _::-webkit-full-page-media,
        _:future,
        :root .drawer-hamburger {
            top: -2px;
        }
    }

    .drawer-nav {
        color: #fff;
        background: rgba(0, 0, 0, 0.7);
        padding: 20px 0;
        z-index: 10000;
    }

    .drawer-nav ul li {
        width: 100%;
        text-align: left;
        font-size: 14px;
        border-bottom: 1px solid #586e85;
    }

    .drawer-nav ul li.last {
        text-align: center;
    }

    .drawer-nav ul li a {
        color: #fff;
        display: block;
        padding: 10px;
    }

    .drawer-hamburger-icon,
    .drawer-hamburger-icon::before,
    .drawer-hamburger-icon::after {
        background: #000;
    }

    .drawer-nav ul li .telarea a {
        padding: 0;
    }

    .drawer-nav .telarea {
        padding: 0 10px;
    }

    .drawer-nav .telarea .icon {
        margin-right: 5px;
    }

    .drawer-nav .telarea .number {
        text-align: center;
    }

    .drawer-nav .telarea .number .tel {
        font-size: 18px;
        font-weight: bold;
    }
}

/* メインビジュアル */
section#mv {
    padding: 0;
}

#mv {
    position: relative;
    width: 100%;
    left: 0;
    right: 0;
    margin: 0 auto;
    z-index: 1;
}

#mv .bx-wrapper {}

/* 
#mv .bx-wrapper .bx-controls-direction{
    display: none;
}
*/
#mv .bx-wrapper .bx-viewport ul .slide01 {
    background-position: center bottom;
    background-image: url(images/mv01.jpg);
}

#mv .bx-wrapper .bx-viewport ul .slide02 {
    background-image: url(images/mv02.jpg);
}

#mv .bx-wrapper .bx-viewport ul .slide03 {
    background-image: url(images/mv03.jpg);
}

#mv .bx-wrapper .bx-controls-direction a {
    position: absolute;
    top: 50%;
    margin-top: -18px;
    outline: 0;
    width: 60px;
    height: 60px;
    text-indent: -9999px;
    z-index: 80;
}

#mv .bx-wrapper .bx-prev {
    background: url('images/main/top/prev.png') no-repeat 0 0;
}

#mv .bx-wrapper .bx-next {
    background: url('images/main/top/next.png') no-repeat 0 0;
}

#mv .mvtit {
    position: absolute;
    bottom: 15%;
    left: 10%;
    max-width: 521px;
}

#mainImage h1 span {
    font-size: 42px;
    font-weight: bold;
}

#mainImage h1 {
    text-align: center;
}

#mainImage {
    width: 100%;
    margin: auto;
    background-size: cover;

}

/* セクション共通 */
section {
    padding: 64px 0 80px;
}

h2,
h3,
h2 span,
h3 span {
    font-weight: bold;
}

.h2 {
    font-size: 36px;
}

.h3 {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 15px;
}

.h3 span {
    display: block;
    font-weight: bold;
}

.h3 .en {
    font-size: 32px;
    font-weight: normal;
}

.h2tit {
    position: relative;
    height: 200px;
    padding-top: 40px;
    background: #ebeff3;
}

.h2tit h2 span {
    color: var(--mainColor);
}

.h2tit h2 {
    text-align: center;
}

.titArea h3 span {
    display: block;
}

.t28 {
    font-size: 28px;
}

.t32 {
    font-size: 32px;
}

.redLine {
    background-image: linear-gradient(transparent 50%, #b91c1c 90%);
    display: inline;
}

@media screen and (-webkit-min-device-pixel-ratio:0) {

    ::i-block-chrome,
    .redLine {
        background-image: linear-gradient(transparent 50%, #b91c1c 90%);
        display: inline;
    }
}

.ylline {
    background: linear-gradient(transparent 60%, #ffde00 0%);
}

.horizontal-line {
    overflow: hidden;
    text-align: center;
}

.horizontal-line span {
    display: inline-block;
    padding: 0 0.5em;
    position: relative;
    font-weight: bold;
}

.horizontal-line span::before,
.horizontal-line span::after {
    border-top: 1px solid;
    content: "";
    position: absolute;
    top: 50%;
    width: 99em;
}

.horizontal-line span::before {
    right: 100%;
}

.grayline {
    background: #353535;
    color: #fff;
    margin-bottom: 0;
    position: relative;
    line-height: 1.5;
    letter-spacing: 2px;
    font-size: 30px;
    padding: 25px 10px 20px;
    position: relative;
}

.grayline::before {
    position: absolute;
    content: "";
    display: block;
    width: 140px;
    height: 8px;
    background: #810021;
    top: 0;
    left: 50%;
    margin-left: -70px;
}

.grayline.lh2 {
    line-height: 2;
}

.tablebox {
    display: table;
    width: 100%;
}

.tablebox .left,
.tablebox .right {
    display: table-cell;
    vertical-align: top;
    width: 50%;
}

.tablebox .left img,
.tablebox .right img {
    vertical-align: top;
}


.telinfo span {
    display: block;
    line-height: 1.3;
}

.halfImg .upper,
.halfImg .lower {
    width: 50%;
}

.halfImg .upper {
    margin-right: 50%;
}

.halfImg .lower {
    margin-left: 50%;
}

.telArea p.icon {
    width: 21px;
    margin-right: 5px;
}

.telArea .tel {
    font-size: 26px;
    font-weight: bold;
    color: var(--mainColor);
    line-height: 1;
}

.telArea .tel a {
    color: var(--mainColor);
}

.breadcrumb {
    padding: 10px 0;
    text-align: right;
    font-size: 13px;
}

.breadcrumb a {
    text-decoration: underline;
}

/*************************** 
トップページコンテンツ 
**************************/
.top__news__header {
    display: flex;
    flex-direction: column;
    max-width: 420px;
    width: 33%;
    gap: 40px 0;
}


@media only screen and (max-width: 767px) {
    .top__news__header {
        width: 100%;
        max-width: inherit;
        flex-direction: row;
        display: -webkit-flex;
        -webkit-justify-content: space-between;
        justify-content: space-between;
    }
}

.top__news__header h2 {
    line-height: 1;
}

.top__news__category-list {
    display: flex;
    gap: .5em;
    order: -1;
}

.top__news__content {
    display: flex;
    justify-content: space-between;
}

@media only screen and (max-width: 767px) {
    .top__news__content {
        flex-direction: column;
    }

}

.top__news__header {
    flex-grow: 1;
}

.top__news-list {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.top__news-item {
    border-bottom: var(--mainColor) 1px solid;
    width: 70vw;
    max-width: 896px;
}

@media only screen and (max-width: 767px) {
    .top__news-item {
        width: 100%;
        ;
    }
}

.top__news__link {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 10px 0;
}

.top__news__info {
    display: flex;
    gap: 24px;
}

.top__news__item__title {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow-x: hidden;
    text-overflow: ellipsis;
    font-size: 16px;
}

.btn1 {
    display: block;
    color: #fff;
    font-weight: 600;
    text-align: center;
    position: relative;
    width: 200px;
    height: 35px;
    text-align: center;
    background: var(--mainColor);
    border-radius: 5px;
    align-content: center;
}


.top_bnr {
    width: 100%;
    text-align: center;
}

#top01 h2 {
    margin-bottom: 15px;
}

#top01 .bgGray {
    position: relative;
    max-width: 980px;
    margin: 0 auto 40px;
    padding: 40px 45px;
    border-radius: 5px;
}

#top01 .bgGray:before {
    position: absolute;
    width: 0;
    height: 0;
    border-color: #ebeff3 transparent transparent;
    border-width: 30px;
    border-style: solid;
    bottom: -60px;
    left: 45%;
    content: " ";
}

#top01 .bgGray li {
    max-width: 320px;
    width: 32%;
    text-align: center;
}

#top01 .bgGray li img {
    max-width: 270px;
    width: 100%;
    margin: 0 auto 10px;
}

.cont02 {
    margin-top: 50px;
}

.cont02 .upper,
.cont02 .lower {
    position: relative;
    padding: 160px 0 50px;
    background: #fff bottom;
}

.cont02 .upper:before,
.cont02 .lower:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 300px;
}

#top01 .cont02 .upper:before {
    background: url(images/toppage/top01_02_01.jpg) no-repeat center;
    background-size: cover;
}

#top01 .cont02 .lower:before {
    background: url(images/toppage/top01_02_02.jpg) no-repeat center;
    background-size: cover;
}

.cont02 .box {
    max-width: 795px;
    width: 100%;
    padding: 40px 60px;
    background: #fff;
    box-shadow: 2px 2px 2px #f2f2f2;
}

.cont02 .box h3 {
    margin-bottom: 15px;
    color: var(--mainColor);
}

.cont02 .upper .box {
    float: right;
}

#top02 {
    position: relative;
}

.h2-bmcont {
    position: relative;
    top: -60px;
    margin-bottom: -60px;
}

#top02 li {
    max-width: 610px;
    width: 48%;
    margin-bottom: 30px;
    padding: 80px 0px;
    text-align: center;
    background-size: cover;
}

#top02 li:nth-child(1) {
    background: url(images/toppage/top02_01.jpg) no-repeat center;
}

#top02 li:nth-child(2) {
    background: url(images/toppage/top02_02.jpg) no-repeat center;
}

#top02 li:nth-child(3) {
    background: url(images/toppage/top02_03.jpg) no-repeat center;
}

#top02 li:nth-child(4) {
    background: url(images/toppage/top02_04.jpg) no-repeat center;
}

#top02 li h3 {
    margin-bottom: 20px;
}

#top02 li h3 span.en {
    display: block;
    margin-bottom: 20px;
    font-size: 24px;
}

#top02 li .inner {
    max-width: 450px;
    width: 100%;
    margin: auto;
    color: #fff;
}

#top02 li p.price {
    margin-top: 20px;
    font-size: 24px;
}

#top02 li .btn2 {
    margin: 40px auto 0;
}

#top03 .lower .box .btn {
    margin-top: 20px;
}

#top04 .bgGray {
    max-width: 1280px;
    width: 100%;
    margin: auto;
    padding: 40px 0 60px;
    border-top: 10px solid #2a93d4;
}

#top04 h2 {
    margin-bottom: 20px;
}

#top04 .img {
    max-width: 560px;
    width: 48%;
}

#top04 .right {
    max-width: 560px;
    width: 48%;
}

#top04 .right .txt {
    margin-bottom: 20px;
}

/*---------------------
下層共通
---------------------*/
.cont01 .inner {
    max-width: 1280px;
    width: 100%;
    margin: auto;
}

.cont01 .upper,
.cont01 .lower {
    position: relative;
}

.cont01 .upper .img,
.cont01 .lower .img {
    position: relative;
    max-width: 620px;
    z-index: 2;
}

.cont01 .upper .box,
.cont01 .lower .box {
    position: relative;
    max-width: 720px;
    background: #ebeff3;
    z-index: 1;
}

.cont01 .upper {
    margin-top: 50px;
    margin-bottom: 100px;
}

.cont01 .upper .box {
    top: -400px;
    margin-left: 560px;
    margin-bottom: -400px;
    padding: 40px 40px 120px 80px;
}

.cont01 .lower {}

.cont01 .lower .img {
    margin-left: 660px
}

.cont01 .lower .box {
    top: -490px;
    margin-bottom: -490px;
    padding: 40px 80px 40px 40px;
}

.cont03 h2 {
    margin-bottom: 35px;
}

.cont03 p {
    max-width: 670px;
    width: 100%;
    line-height: 2;
}

.aiming .h2 {
    margin-bottom: 30px;
    line-height: 1.5;
}



.top__menu__more {
    display: block;
    text-align: center;
    color: var(--mainColor);
    position: relative;
    max-width: 200px;
    width: 100%;
    align-content: center;
    text-align: center;
    background: #fff;
    font-weight: 600;
    height: 32px;
}

.btn::after {
    content: "→";
    font-size: 1em;
    padding-bottom: .1em;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 15px;
}

/*---------------------
初めて
---------------------*/
#guest01.cont01 .upper .box {
    padding: 150px 40px 150px 80px
}

#guest01.cont01 .lower .box {
    padding: 80px 80px 80px 40px;
}

#guest01.cont01 .lower {
    margin-bottom: 60px;
}

#guest02 .bgImg {
    background: #f5f5f5;
}

.guest__flow-item {
    position: relative;
    margin-bottom: 50px;
    padding: 40px 0;
    background: #fff;
}

.guest__flow-item::before {
    position: absolute;
    width: 0;
    height: 0;
    border-color: #fff transparent transparent;
    border-width: 40px;
    border-style: solid;
    bottom: -80px;
    left: 45%;
    content: " ";
}

.guest__flow-item__colWrap {
    display: grid;
    --col: 2;
    /*⬇︎*/
    grid-template-columns: repeat(var(--col), calc((100% - ((var(--col) - 1)* var(--margin)))/var(--col)));
    gap: 30px var(--margin);
    justify-content: space-between;
    align-items: stretch;
}

@media only screen and (max-width: 767px) {
    .guest__flow-item__colWrap {

        --col: 1;
    }
}

.guest__flow-item:last-child:before {
    content: none;
}

.guest__flow__img img {
    height: 100%;
    width: auto;
    object-fit: cover;
}

.guest__flow__payment-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: space-between;
    gap: 24px;
    padding: 12px;
}

.guest__flow__payment-item {
    max-width: 200px;
    margin: auto;
}

.guest__flow-header {
    width: 100%;
    height: 45px;
    margin-bottom: 15px;
}

.guest__flow-title {
    display: flex;
    width: 100%;
    height: 48px;
}

.guest__flow-header span {
    align-content: center;
    padding: .1em 24px 0;
}

.guest__flow-index {
    text-align: center;
    color: #fff;
    background: var(--mainColor);
    font-size: clamp(14px, 1.4vw, 18px);
    width: max-content;
}

.guest__flow__title-text {
    color: var(--mainColor);
    background: #f5f5f5;
    font-size: clamp(16px, 1.56vw, 20px);
    flex-grow: 1;
}

.guest__flow__service-list {
    display: flex;
    gap: var(--margin);
}

.guest__flow__service-link {
    display: block;
    position: static;
    flex-grow: 1;
    height: 56px;
    align-content: center;
}

.guest__flow-item .info {
    margin-top: 30px;
}


.guest__flow-item .info .catch.blue {
    text-align: center;
}

.guest__flow-item .info .telArea p.icon {
    width: 16px;
}

.guest__flow-item .info .open {
    margin-bottom: 20px;
}

.guest__flow-item .info .mail {
    max-width: 206px;
}

.guest__flow-item h4 {
    width: 100%;
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 5px 10px;
    text-align: center;
    color: var(--mainColor);
    background: #f5f5f5;
}

.guest__flow-item .linkarea .flex {
    max-width: 480px;
    width: 100%;
    margin: auto;
}

.guest__flow-item .card {
    max-width: 235px;
    width: 100%;
    margin: 0 auto 15px;
}

.guest02_08 .left p.img {
    margin-bottom: 20px;
}

.guest02_08 .left .payment li {
    width: 50%;
    margin-bottom: 15px;
    padding: 5px 0;
}

.guest02_08 .left .payment li span {
    display: block;
    max-width: 202px;
    width: 80%;
    margin: auto;
}

.guest02_08 .left .payment li:nth-child(1),
.guest02_08 .left .payment li:nth-child(3) {
    border-right: 1px solid #ccc;
}

/*---------------------
ガラス交換
---------------------*/
#mainImage.exchange {
    padding: 140px 0;
}

#mainImage.exchange h1 {
    max-width: 708px;
    width: 90%;
    margin: auto;
}

#exchange01 {
    padding: 70px 0 170px;
    background: url(images/exchange/bg01.jpg) no-repeat center bottom;
    background-size: cover;
}

#exchange01 h2 {
    margin-bottom: 35px;
}

#exchange01 h3 {
    margin-bottom: 60px;
    font-size: 16px;
}

#exchange01 h3 span {
    font-size: 26px;
}

#exchange01 .left {
    max-width: 740px;
    width: 58%;
    line-height: 2.1;
}

#exchange01 .right {
    max-width: 510px;
    width: 40%;
}

#exchange01 .right table {
    max-width: 470px;
    width: 100%;
    margin: auto;
    background: #fff;
    border-top: 1px solid var(--mainColor);
    border-right: 1px solid var(--mainColor);
}

#exchange01 .right table td {
    width: 50%;
    padding: 15px 10px;
    text-align: center;
    vertical-align: middle;
    color: var(--mainColor);
    border-left: 1px solid var(--mainColor);
    border-bottom: 1px solid var(--mainColor);
}

#exchange02 .bgWhite {
    padding: 40px 0;
}

#exchange02 ul {
    margin-top: 30px;
}

#exchange02 li h3 {
    width: 100%;
    height: 45px;
    background: #f5f5f5;
}

#exchange02 li h3 span {
    display: inline-block;
    height: 45px;
    vertical-align: middle;
    line-height: 1;
}

#exchange02 li h3 span.num {
    max-width: 92px;
    width: 20%;
    padding-top: 12px;
    font-size: 18px;
    color: #fff;
    background: var(--mainColor);
    text-align: center;
}

#exchange02 li h3 span.txt {
    width: 80%;
    padding-top: 11px;
    padding-left: 20px;
    font-size: 20px;
    color: var(--mainColor);
}

#exchange03 .h2tit {
    height: 230px;
}

#exchange03 .h2tit h2 {
    margin-bottom: 10px;
}

#exchange03 .h2tit p {
    max-width: 650px;
    width: 100%;
    margin: auto;
    padding: 10px;
    font-weight: bold;
    color: #fff;
    background: var(--mainColor);
    border-radius: 50px;
    text-align: center;
}

.reason .box {
    position: relative;
    margin-bottom: 50px;
    padding: 60px 0 50px;
    background: #f5f5f5;
}

.reason .box .num {
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    width: 140px;
    margin: auto;
    padding: 10px;
    text-align: center;
    color: #fff;
    background: var(--mainColor);
}

.reason .box h3 {
    margin-bottom: 30px;
    text-align: center;
    color: var(--mainColor);
}

.reason .box .right {
    padding-top: 20px;
}

.reason .box .right h4 {
    margin-bottom: 20px;
    font-weight: bold;
    color: var(--mainColor);
}

.reason01 {
    margin-top: 50px;
}

.reason .reason04.box {
    margin-bottom: 0;
}

.reason04 .btn {
    margin-top: 30px;
}

.exchange__reaser__colWrp {
    display: grid;
    --col: 2;
    /*⬇︎*/
    grid-template-columns: repeat(var(--col), calc((100% - ((var(--col) - 1)* var(--margin)))/var(--col)));
    gap: 30px var(--margin);
    justify-content: space-between;
    align-items: stretch;
}

@media only screen and (max-width: 767px) {
    .exchange__reaser__colWrp {
        --col: 1;
    }
}

#exchange04 .h2tit {
    height: 230px;
    text-align: center;
    line-height: 1.4;
}

#exchange04 .bgImg {
    padding-bottom: 100px;
    background: url(images/exchange/bg04.jpg) no-repeat bottom;
    background-size: cover;
}

#exchange04 .bgWhite {
    padding: 40px;
}

#exchange04 .box {
    width: 100%;
}

.exchange04_01 {
    margin-top: 40px;
}

#exchange04 .box .h3 {
    margin-bottom: 0;
    padding: 5px;
    background: var(--mainColor);
}

#exchange04 .box .inner {
    padding: 40px;
    background: #f5f5f5;
}

#exchange04 .box .boxinner {
    margin-top: 25px;
    padding: 30px 20px;
    background: #fff;
    border-radius: 5px;
}

#exchange04 .box .boxinner h4 {
    margin-bottom: 15px;
}

#exchange04 .box .boxinner h4 span {
    display: inline-block;
    vertical-align: middle;
    font-weight: bold;
    line-height: 1;
}

#exchange04 .box .boxinner h4 span.icon {
    width: 23px;
    margin-right: 10px;
}

#exchange04 .box .boxinner h4 span:nth-child(2) {
    padding-top: 3px;
}

.exchange04_03 .btn {
    margin: 20px auto 0;
}

#exchange04 .bottom {
    margin-top: 30px;
}

.pre-confirm .bgGray {
    padding: 40px 40px 80px;
    border-top: 10px solid #2a93d4;
}

.pre-confirm h2 {
    margin-bottom: 20px;
}

.pre-confirm .num {
    width: 40px;
    height: 40px;
    margin: 30px auto 20px;
    padding: 10px;
    text-align: center;
    color: #fff;
    background: var(--mainColor);
    border-radius: 5px;
    line-height: 1;
}

.pre-confirm .h3 {
    color: var(--mainColor);
}

.pre-confirm .upper {
    position: relative;
    padding-bottom: 20px;
    gap: var(--margin);
}

.pre-confirm .upper .img {
    width: 60%;
}

.pre-confirm .upper .right {
    width: calc(40% - var(--margin));
}

.pre-confirm .upper .right .bgWhite {
    margin-right: 10px;
    padding: 20px 0px;
    border-radius: 10px;
}

.pre-confirm .upper .right .bgWhite .inner {
    width: 90%;
    margin: auto;
}

.pre-confirm .lower {
    max-width: 1150px;
    width: 100%;
    margin: auto;
}

.pre-confirm .lower .col4 li {
    max-width: 268px;
}

/*---------------------
リペア
---------------------*/
#mainImage.repair {
    padding: 140px 0;
}

#mainImage.repair h1 {
    max-width: 789px;
    width: 90%;
    margin: auto;
}

#repair01 {
    padding: 70px 0 140px;
    background: url(images/repair/bg01.jpg) no-repeat center bottom;
    background-size: cover;
}

#repair01 h2 {
    margin-bottom: 35px;
}

#repair01 .inner {
    max-width: 1010px;
    margin: auto;
}

#repair01 .box {
    margin-bottom: 40px;
    padding: 20px 10px;
}

#repair01 .box .flex {
    max-width: 850px;
    width: 100%;
    margin: auto;
}

#repair01 .box .flex .img {
    max-width: 162px;
    width: 20%;
}

#repair01 .box .flex .txt {
    padding-top: 15px;
    width: 78%;
}

#repair02 .bgWhite,
#repair03 .bgWhite,
#repair04 .bgWhite {
    padding: 40px 0;
}

#repair02 .col3 li,
#repair03 .col3 li,
#repair04 .col3 li {
    position: relative;
}

#repair02 .col3 {
    margin-top: 20px;
}

#repair02 .col3 li {
    background: #f5f5f5;
}

#repair02 .col3 li h3 {
    padding: 10px;
    background: var(--mainColor);
    line-height: 1;
}

#repair02 .col3 li .bottom {
    padding: 15px 20px;
}

#repair03 .bgImg {
    background: url(images/repair/bg03.jpg) no-repeat center;
    background-size: cover;
}

.num3.col3 li h3 {
    position: relative;
    top: -30px;
    max-width: 350px;
    width: 94%;
    height: auto;
    margin: 0 auto -30px;
    padding: 5px 5px 10px;
    text-align: center;
    color: var(--mainColor);
    background: #fff;
}

#repair03 .bgF5 {
    margin-top: 40px;
    padding: 35px 0;
}

#repair03 .bgF5 .inner {
    max-width: 890px;
    width: 100%;
    margin: auto;
}

#repair03 .bgF5 .inner p {
    display: inline-block;
    vertical-align: middle;
    line-height: 1.3;
}

#repair03 .bgF5 .inner p.icon {
    max-width: 57px;
    width: 10%;
    margin-right: 1%;
}

#repair03 .bgF5 .inner p.txt {
    width: 88%;
}

#repair04 .bgImg {
    position: relative;
    padding-top: 300px;
}

#repair04 .bgImg:before {
    content: '';
    position: absolute;
    top: 0;
    width: 100%;
    max-height: 568px;
    padding-top: 35%;
    background: url(images/repair/bg04.jpg) no-repeat center;
    background-size: cover;
}

#repair04 .col3 li {
    margin-bottom: 60px;
    background: url(images/common/frame01.png) no-repeat 100% 100%;
}

#repair04 .col3 li h3 {
    position: relative;
    padding: 10px 10px 10px 80px;
    color: var(--mainColor);
    background: #f5f5f5;
}

#repair04 .col3 li h3 span {
    display: block;
}

#repair04 .col3 li h3 span.num {
    position: absolute;
    top: -20px;
    left: 20px;
    width: 50px;
    height: 50px;
    padding-top: 10px;
    text-align: center;
    color: #fff;
    font-size: 30px;
    font-weight: bold;
    background: var(--mainColor);
    line-height: 1;
}

#repair04 .col3 li p {
    min-height: 300px;
    padding: 25px 0 0;
}

/*---------------------
断熱ガラス
---------------------*/
#insulation01 {
    padding: 70px 0 140px;
    background: url(images/insulation/bg01.jpg) no-repeat center bottom;
    background-size: cover;
}

#insulation02 .titArea {
    background: url(images/insulation/bg02tit.jpg) no-repeat center;
    background-size: cover;
}

.insulated-glass .cont02 {
    margin-top: 0;
}

.insulated-glass .cont02 .upper ul {
    margin: 10px 0;
}

.insulated-glass .cont02 .upper:before {
    background: url(images/insulation/insulation02_01.jpg) no-repeat center;
    background-size: cover;
}

.insulated-glass .cont02 .lower:before {
    background: url(images/insulation/insulation02_02.jpg) no-repeat center;
    background-size: cover;
}

#insulation03 .bgWhite {
    padding: 40px 0;
}

#insulation03 .bgWhite h3 {
    margin-bottom: 20px;
}

.glass-maker {
    margin-top: 30px;
}

.glass-maker .box {
    max-width: 560px;
    width: 49%;
    margin-bottom: 40px;
    border: 1px solid #e2e2e2;
}

.glass-maker .box h4.h3 {
    margin-bottom: 0;
    padding: 10px;
    text-align: center;
    color: var(--mainColor);
    background: #f5f5f5;
    border-bottom: 1px solid #e2e2e2;
}

.glass-maker .box .boxinner {
    padding: 30px 35px 35px;
    background: #fff;
}

.glass-maker .box .boxinner h5 {
    margin-top: 25px;
    margin-bottom: 10px;
    font-weight: bold;
    color: var(--mainColor);
}

/*---------------------
その他サービス
---------------------*/
#others01 h2 {
    margin-bottom: 35px;
}

#others01 li {
    max-width: 390px;
    margin-bottom: 60px;
}

#others02 h2 span {
    display: block;
    line-height: 1.3;
}

#others02 .bgF5 {
    position: relative;
    padding-top: 50px;
}

#others02 .bgF5:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 610px;
}

.others02_01.bgF5:before {
    background: url(images/others/bg02_01.jpg) no-repeat center;
    background-size: cover;
}

.others02_02.bgF5:before {
    background: url(images/others/bg02_02.jpg) no-repeat center;
    background-size: cover;
}

#others02 .upper.bgWhite {
    float: right;
    max-width: 960px;
    width: 100%;
    margin-bottom: 100px;
    padding: 40px 50px;
}

#others02 .upper.bgWhite h3 {
    margin-bottom: 20px;
    color: var(--mainColor);
    line-height: 1.5;
}

#others02 .lower.bgWhite {
    width: 100%;
    padding: 40px 40px 50px;
}

#others02 .lower.bgWhite h4 {
    margin-bottom: 20px;
    text-align: center;
    font-weight: bold;
    color: var(--mainColor);
}

#others02 .lower.bgWhite .lower2 {
    margin-top: 50px;
}

#others02 .others02_01_02 h2 {
    margin-top: 50px;
    margin-bottom: 20px;
}

#others02 .others02_01_02 table {
    width: 100%;
}

#others02 .others02_01_02 thead {
    color: #fff;
    text-align: center;
    background: var(--mainColor);
}

#others02 .others02_01_02 tbody {
    font-size: 24px;
}

#others02 .others02_01_02 th,
#others02 .others02_01_02 td {
    vertical-align: middle;
    width: 50%;
    padding: 20px 40px;
    border: #ccc 1px solid;
}

#others02 .others02_01_02 td {
    text-align: center;
}

#others02 .others02_03 h2 {
    color: var(--mainColor);
    margin-top: 40px;
    margin-bottom: 35px;
}

#others02 .others02_03 h3 {
    color: var(--mainColor);
    margin-bottom: 20px;
}

#others02 .others02_03 .Pricerist {
    width: 920px;
    margin: 0 auto;
    border-collapse: collapse;
    border: 1px solid #000000;
    text-indent: initial;
    border-spacing: 2px;
}

#others02 .others02_03 tbody {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}

#others02 .others02_03 table.Pricerist td {
    display: table-cell;
    vertical-align: inherit;
    text-align: center;
    padding: 10px 0;
    border: 1px solid #000;
    font-size: 16px;
}

#others02 .others02_03 table.Pricerist tr {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
}

#others02 .others02_03 .TPkoumoku {
    background: #88B6C7;
    font-weight: bold;
}

#others02 .others02_03 .text-combine {
    writing-mode: vertical-rl;
}

#others02 .others02_03 .TPtypeA {
    background: #B5E4E8;
}

#others02 .others02_03 .TPtypeB {
    background: #EDB5E9;
}

#others02 .others02_03 .TPtypeC {
    background: #C5DEF9;
}

#others02 .others02_03.tablePricerist p {
    margin-block-start: 1em;
    margin-block-end: 1em;
}

#others02 .others02_03 strong {
    font-size: 20px;
    font-weight: bold;
    color: #ff0004;
}

#others02 .others02_03 .col1of2 {
    max-width: 720px;
}

#others02 .others02_04 h2 {
    margin-top: 50px;
    margin-bottom: 20px;
}

#others02 .others02_04 table {
    width: 100%;
}

#others02 .others02_04 thead {
    color: #fff;
    text-align: center;
    background: var(--mainColor);
}

#others02 .others02_04 tbody {
    font-size: 24px;
}

#others02 .others02_04 th,
#others02 .others02_04 td {
    text-align: center;
    vertical-align: middle;
    padding: 20px 40px;
    border: #ccc 1px solid;
}

#others02 .others02_04 td {
    text-align: center;
}

#others02 .others02_04 .others02_04__tbody--width320px {
    width: 320px;
}

#others02 .others02_04 .others02_04__tbody--paddingnone {
    padding: 20px 15px;
}

#others02 .others02_04 .others02_04__tbody--backblue {
    color: #fff;
    text-align: center;
    background: var(--mainColor);
}

#others02 .others02_04 .others02_04__tbody--backgray {
    background: #f6f6f6;
}

.tableArea {
    max-width: 100%;
    /* 最大80%の領域内で要素をおさめる */
    margin: 57px auto 0;
    overflow: auto;
    /*枠からはみ出たらスクロールさせる、はみ出なかった場合は何もしない*/
}

.tableArea table {
    border-collapse: collapse;
    /*隣接するセルのボーダーを共有する*/
}

.tableArea table th,
.tableArea table td {
    padding: 20px;
    white-space: nowrap;
    /*文字を折り返さない*/
}

.scroll-hint-text {
    margin-top: 0;
}

/*---------------------
保険
---------------------*/
#insurance01 {
    padding: 70px 0 180px;
    background: url(images/insurance/bg01.jpg) no-repeat center bottom;
    background-size: cover;
}

#insurance02 .point {
    position: relative;
    max-width: 1020px;
    width: 100%;
    margin: 0 auto 40px;
}

#insurance02 .point .icon {
    max-width: 198px;
    width: 20%;
}

#insurance02 .point .right {
    position: absolute;
    right: 0;
    bottom: 0;
    max-width: 810px;
    width: 79%;
}

#insurance02 .point .right .arrow {
    max-width: 216px;
}

#insurance02 .insurance02_03 .point .right .arrow {
    max-width: 256px;
}

#insurance02 .point .right .box {
    width: 100%;
    padding: 30px;
    background: #ebeff3;
    border-radius: 5px;
}

#insurance02 .point .right .box .fs30 {
    text-align: center;
}

#insurance02 .inner {
    max-width: 1280px;
    width: 100%;
    margin: auto;
}

#insurance02 .box {
    position: relative;
}

#insurance02 .box .left {
    position: relative;
    width: 620px;
    z-index: 2;
}

#insurance02 .box .right {
    position: relative;
    top: -500px;
    width: 720px;
    margin-left: 560px;
    margin-bottom: -450px;
    padding: 45px 50px 50px 100px;
    z-index: 1;
}

.insurance02_01_01,
.insurance02_01_02 {
    margin-top: 100px;
}

#insurance02 .insurance02_01_02 .box .right {
    top: -600px;
    margin-bottom: -550px;
}

#insurance02 .insurance02_02 {
    margin-top: 100px;
}

#insurance02 .insurance02_02 .box .right {
    top: -600px;
    margin-bottom: -500px;
}

#insurance02 .insurance02_03 {
    margin-top: 60px;
}

#insurance02 .insurance02_03 .bgYl {
    margin-bottom: 40px;
    padding: 40px;
}

#insurance02 .insurance02_03 .bgYl h4 {
    position: relative;
    max-width: 800px;
    width: 100%;
    margin: 20px auto 50px;
    padding: 10px;
}

#insurance02 .insurance02_03 .bgYl h4:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 65px;
    height: 65px;
    background: url(images/insurance/bg02_03L.png) no-repeat;
    background-size: 100%;
}

#insurance02 .insurance02_03 .bgYl h4:after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 65px;
    height: 65px;
    background: url(images/insurance/bg02_03R.png) no-repeat;
    background-size: 100%;
}

#insurance02 .insurance02_03 .point {
    margin-bottom: 0;
}

#insurance02 .insurance02_03 .point .right {
    position: relative;
}

#insurance02 .insurance02_03 .point .right .box {
    padding: 30px 0;
}

#insurance02 .insurance02_03 .point .right .box ul {
    max-width: 740px;
    width: fit-content;
    margin: auto;
}

#insurance02 .insurance02_03 .point .right .box li {
    margin-bottom: 20px;
    list-style-position: outside;
    display: flex;
}

#insurance02 .insurance02_03 .point .right .box li p {
    display: inline-block;
    line-height: 1.3;
}

#insurance02 .insurance02_03 .point .right .box li:nth-child(4) {
    margin-bottom: 0;
}

#insurance02 .insurance02_03 .point .right .box li:nth-child(4) p {
    vertical-align: top;
    padding-top: 5px;
}

#insurance02 .insurance02_03 .point .right .box li:before {
    content: '';
    display: inline-block;
    width: 39px;
    height: 34px;
    margin-right: 8px;
    background: url(images/icon/iconCheck01.png) no-repeat;
    background-size: 100%;
}

#insurance02 .insurance02_03 .point .right .box li span {
    display: inline-block;
}

#insurance03 {
    position: relative;
    padding-bottom: 90px;
}

#insurance03:before {
    content: '';
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 50%;
    background: url(images/insurance/bg03.jpg) no-repeat center;
    background-size: cover;
}

#insurance03 .bgWhite {
    padding: 40px;
}

#insurance03 .bgWhite h2 {
    margin-bottom: 30px;
}

#insurance03 .bgF5 {
    padding: 30px 10px;
    text-align: center;
}

#insurance04 .h2tit {
    height: auto;
    margin-bottom: 60px;
    padding-bottom: 40px;
}

#insurance04 .h2tit .icon {
    max-width: 36px;
    margin: 10px auto 20px;
}

#insurance04 .box {
    position: relative;
    margin-bottom: 50px;
    padding: 50px 40px 40px;
}

#insurance04 .box .num {
    position: absolute;
    top: -15px;
    left: 0;
    right: 0;
    width: 150px;
    padding: 10px;
    margin: auto;
    text-align: center;
    background: #fff000;
    line-height: 1;
}

#insurance04 .box h3 {
    margin-bottom: 30px;
}

#insurance04 .h2tit .textC p.fs15 {
    text-align: center;
}

.insurance04_02 .bgWhite {
    margin-top: 40px;
    padding: 30px 40px;
}

.insurance04_02 .bgWhite h4 {
    margin-bottom: 15px;
}

#insurance05 {
    position: relative;
    padding-top: 300px;
}

#insurance05:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 550px;
    background: url(images/insurance/bg05.jpg) no-repeat center top;
    background-size: cover;
}

#insurance05 .bgWhite {
    padding: 60px 10px 80px;
    text-align: center;
    border-radius: 10px 10px 0 0;
}

/*---------------------
エーミング
---------------------*/
#aiming02 {
    position: relative;
    background: #f5f5f5;
}

#aiming02:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 230px;
    background: #ebeff3;
}

#aiming02 .bgWhite,
#aiming03 .bgWhite,
#aiming04 .bgWhite {
    padding: 40px 40px 60px;
}

#aiming02 .bgWhite h3,
#aiming03 .bgWhite h3,
#aiming04 .bgWhite h3 {
    margin-bottom: 20px;
}

.aiming02_01,
.aiming02_02,
.aiming03_01,
.aiming03_02 {
    margin-bottom: 50px;
}

#aiming02 .bgGray,
.aiming03_02 .bgGray,
#aiming04 .bgGray {
    padding: 40px;
    border-radius: 10px;
}

#aiming02 .bgGray img,
.aiming03_02 .bgGray img,
#aiming04 .bgGray img {
    margin-bottom: 10px;
}

.aiming03_01 .col3 li {
    max-width: 357px;
    margin-bottom: 10px;
}

#aiming04 {
    position: relative;
    background: #f5f5f5;
}

#aiming04:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 320px;
    background: url(images/aiming/bg04.jpg) no-repeat center;
    background-size: cover;
}

#aiming04 h2 {
    margin-bottom: 60px;
}

#aiming04 .bgGray h4 {
    margin-bottom: 20px;
}

.aiming04_01 {
    margin: 30px 0;
}

.aiming04_01 li {
    margin-bottom: 30px;
}

#aiming05 {
    position: relative;
    padding-top: 80px;
    padding-bottom: 70px;
}

#aiming05:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 620px;
    background: url(images/aiming/bg05.jpg) no-repeat center;
    background-size: cover;
}

#aiming05 .bgWhite {
    width: 690px;
    margin-left: 590px;
    padding: 50px 0 70px;
    box-shadow: 2px 2px 2px #f2f2f2;
}

#aiming05 .bgWhite .inner {
    max-width: 600px;
    margin: auto;
}

#aiming05 .bgWhite h2 {
    margin-bottom: 20px;
}

#aiming05 .bgWhite h3 {
    margin-bottom: 40px;
    padding: 20px 40px;
    border-top: 1px solid var(--mainColor);
    border-bottom: 1px solid var(--mainColor);
}

/*---------------------
会社概要
---------------------*/
#aboutus01.cont01 .upper {
    margin-bottom: 60px;
}

#aboutus02 .bgWhite {
    margin-bottom: 80px;
    padding: 40px;
}

#aboutus02 .bgWhite table {
    width: 100%;
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
}

#aboutus02 .bgWhite table th,
#aboutus02 .bgWhite table td {
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#aboutus02 .bgWhite table th {
    width: 25%;
    padding: 10px 20px;
    text-align: left;
    background: #ebeff3;
}

#aboutus02 .bgWhite table td {
    width: 75%;
    padding: 10px 20px;
}

#aboutus03 .bgWhite {
    padding: 40px;
}

#aboutus03 h4.h2.bold {
    text-align: center;
}

#aboutus03 .titArea {
    padding: 20px 0 30px;
}

/*---------------------
お問い合わせ
---------------------*/
#inquiry {
    padding-bottom: 100px;
}

#inquiry .bgWhite {
    padding: 40px 20px;
}

#inquiry .telArea {
    max-width: 240px;
    width: 100%;
    margin: 25px auto 40px;
}

#inquiry .telArea .icon {
    width: 16px;
    margin-right: 5px;
    padding-top: 5px;
}

#inquiry .telArea .tel {
    padding-top: 5px;
    font-size: 27px;
    font-weight: bold;
    line-height: 1;
}

#inquiry .telArea .txt {
    padding-left: 5px;
    line-height: 1.2;
}

#inquiry .pre-confirm {
    margin-top: 30px;
}

.inquiryForm__table {
    width: 100%;
    max-width: 1000px;
    margin: 80px auto 40px;
    font-size: 16px;
    border-top: 1px solid #d2d2d2;
}

.inquiryForm__table th {
    width: 30%;
    padding: 15px;
    font-weight: bold;
    text-align: left;
    border-bottom: 1px solid #d2d2d2;
}

.inquiryForm__table th span.red {
    display: inline-block;
    margin-left: 8px;
}

.inquiryForm__table th .img {
    display: inline-block;
    vertical-align: middle;
    width: 80%;
}

.inquiryForm__table tr:last-child th {
    vertical-align: top;
}

.inquiryForm__table td {
    width: 70%;
    padding: 15px 30px;
    border-bottom: 1px solid #d2d2d2;
    vertical-align: top;
}

.inquiryForm__table td.select span {
    display: inline-block;
    margin-right: 10px;
}

.mw_wp_form .horizontal-item+.horizontal-item {
    margin-left: 0 !important;
}

.inquiryForm__table td select:not(:first-of-type) {
    margin-top: 8px;
}

.tyuui {
    white-space: nowrap;
}

.mwform-checkbox-field label,
.mwform-radio-field label {
    white-space: nowrap;
}

.inquiryForm__table .w80 {
    width: 80%;
    padding: 5px;
    background: #f4f4f4;
}

.inquiryForm__table .w80::-webkit-input-placeholder {
    color: #b2b2b2;
    font-weight: normal;
}

.inquiryForm__table .w80:-ms-input-placeholder {
    color: #b2b2b2;
    font-weight: normal;
}

.inquiryForm__table .w80::-moz-placeholder {
    color: #b2b2b2;
    font-weight: normal;
}

.mwform-tel-field input[type="text"],
.mwform-zip-field input[type="text"] {
    background: #f4f4f4;
}

.inquiryForm__table input[type="file"] {
    font-size: 95%;
}

span.mwform-tel-field input[name="tel[data][0]"],
span.mwform-tel-field input[name="fax[data][0]"] {
    width: 15%;
    padding: 5px;
    background: #f4f4f4;
}

span.mwform-tel-field input[name="tel[data][1]"],
span.mwform-tel-field input[name="fax[data][1]"] {
    width: 20%;
    padding: 5px;
    background: #f4f4f4;
}

span.mwform-tel-field input[name="tel[data][2]"],
span.mwform-tel-field input[name="fax[data][2]"] {
    width: 20%;
    padding: 5px;
    background: #f4f4f4;
}

.checkPolicy {
    text-align: center;
    margin-bottom: 30px;
}

.checkPolicy a {
    color: #000;
    text-decoration: underline;
}

.checkPolicy input {
    margin-right: 10px;
}

.inquiry__form__buttons {
    display: flex;
    gap: var(--margin);
    justify-content: center;
}

.inquiry__form__confirmWrp {
    color: #fff;
}
.inquiry__form__button-confirm {
    position: relative;
    width: 200px;
    padding: 15px 0;
    font-size: 16px;
    color: #fff;
    background: var(--lgGold);
    text-align: center;
    font-weight: bold;
    cursor: pointer;
    border: none;
    border-radius: 10px;
    line-height: 1;
}

.inquiry__form__button-back {
    width: 200px;
    padding: 15px 0;
    font-size: 16px;
    color: #fff;
    background: var(--lgBlue);
    text-align: center;
    font-weight: bold;
    cursor: pointer;
    border: none;
    border-radius: 10px;
    line-height: 1;
}


.inquiry__form__confirmWrp:hover,
.inquiry__form__button-back:hover {
    opacity: .6;
}

input.btn_contact_return {
    margin: 0 10px;
}

#inquiry .checkPolicy {
    margin-bottom: 30px;
}

#inquiry .checkPolicy a {
    color: #da1313;
    text-decoration: underline;
}

input.btn_contact_return {
    margin: 0 10px;
}

.nowrap {
    max-width: 70%;
}

.checkPolicy label .mwform-checkbox-field-text {
    display: none;
}

.mwform-checkbox-field input,
.mwform-radio-field input {
    display: inline-block;
}

.checkPolicy .mwform-checkbox-field {
    display: inline-block;
}

.mw_wp_form .error {
    display: inline-block;
}

.checkPolicy .textLink {
    display: inline-block;
}

.mw_wp_form_confirm .checkPolicy {
    display: none;
}

.mw-wp-form_image img {
    width: 40%;
}

/* プライバシーポリシー */
#privacy .bgWhite {
    padding: 40px;
}

/*---------------------
施工事例
---------------------*/

.case-list__thumbnail {
    display: flex;
    align-items: center;
    aspect-ratio: 3/2;
    overflow: hidden;
    width: 100%;
}

#topCase.page {
    position: relative;
    padding: 40px 0 80px;
    background: #fff;
}

#topCase.page:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 200px;
    background: #ebeff3;
}

#topCase.page .titArea {
    margin-bottom: 40px;
}

#topCase .titArea .contentWrp h2 {
    text-align: center;
}

.works__header {
    padding: 40px 0;
    background: #ebeff3;
}

.works__content {
    margin-top: 80px;
}

@media only screen and (max-width: 767px) {
    .works__content {
        margin-top: 40px;
    }
}

.works__title {
    text-align: center;
    color: var(--mainColor);
    font-size: 36px;
}

.works__term-list {
    display: grid;
    max-width: 1070px;
    gap: 15px 10px;
    width: 100%;
    margin: auto;
    grid-template-columns: repeat(3, 1fr);
}


@media only screen and (max-width: 767px) {
    .works__term-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media only screen and (max-width: 414px) {
    .works__model-list {
        grid-template-columns: 1fr;
    }
}


.works__data-item {
    display: grid;
    grid-template-columns: max-content 1fr;
    white-space: nowrap;
    border-bottom: 1px solid #ccc;
}


.works__data-text {
    white-space: nowrap;
}


.works__data-value {
    display: block;
    width: 100%;
    overflow-x: hidden;
    text-overflow: ellipsis;
}


.works__data-title::after {
    content: "：";
}



#topCase .bx-wrapper {
    position: static;
}


.works__case-slider {
    position: relative;
    padding-right: 60px;
    padding-left: 60px;
    width: max-content;
    max-width: calc(100% - 120px);
    margin-right: auto;
    margin-left: auto;
}

.works__notfound {
    text-align: center;
}

@media only screen and (max-width: 767px) {
    #topCase .topcase {
        padding: 0;
        max-width: 100%;
    }

    .archivePost article {
        width: 45vw;
        max-width: 330px;
    }
}

#topCase .works__case-list li:nth-child(n+5) {
    display: none;
}

.works__case-item__title {
    font-weight: 700;
    font-size: 16px;
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow-x: hidden;
    text-overflow: ellipsis;
}


#topCase .bx-viewport {
    height: auto !important;
    max-height: 280px;
    margin: auto;
}

#topCase .bx-wrapper .bx-controls-direction a {
    position: absolute;
    top: 40%;
    margin-top: -16px;
    outline: 0;
    width: 48px;
    height: 48px;
    text-indent: -9999px;
    z-index: 8;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

#topCase .bx-wrapper .bx-prev {
    left: -30px;
    background-image: url('images/main/top/prev.png');
}

#topCase .bx-wrapper .bx-next {
    right: -30px;
    background-image: url('images/main/top/next.png');
}

#topCase.case .archivePost {
    position: relative;
    margin: inherit;
}

.topCaseS {
    display: none;
}


/* 施工事例一覧 */
#case .topArea {
    padding: 70px 0 140px;
    background: url(images/works/bg01.jpg) no-repeat center;
    background-size: cover;
}

#case .topArea h2 {
    margin-bottom: 20px;
}

#menuArea .h2tit {
    height: 230px;
}

#menuArea .h2tit .contentWrp p.fs16 {
    text-align: center;
}

#menuArea h3 {
    margin-bottom: 25px;
}

#menuArea .case_type .menu {
    max-width: 1080px;
    width: 98%;
    margin: auto;
}

.works__term-title {
    text-align: center;
    font-size: 28px;
}

.case .menu .col3 li {
    max-width: 390px;
    margin-right: 1.3%;
    margin-bottom: 15px;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}

.case .menu .col3 li:nth-child(3n) {
    margin-right: 0;
}

.case .menu .col4 li {
    max-width: 230px;
    width: 24%;
}

.works__term-link {
    display: flex;
    gap: .5em;
    color: var(--mainColor);
    background: #fff;
    border: 1px solid #ccc;
    padding: 15px 10px;
    align-items: center;
    line-height: 1;
    transition: all .2s;
}

.works__term-link::after {
    content: "→";
    font-size: 24px;
    padding-bottom: .1em;
}

.works__all-link {
    max-width: 400px;
    margin-right: auto;
    margin-left: auto;
}

@keyframes shake {
    0% {
        transform: translateX(-2px);
    }

    50% {
        transform: translateX(2px);
    }

    100% {
        transform: translateX(-2px);
    }
}

.works__term-link:hover::after {
    animation: shake 2s infinite both alternate;
    /* アニメーションの持続時間と無限ループ */
}


.works__term-link .en {
    font-size: .8em;
    font-weight: 600;
}

.works__term-link .en::before {
    content: "-";
    margin-right: .5em;
}

.case .menu .col3 li.btn {
    padding: 15px 50px 15px 20px;
    background-position: 97% 50%;
}


.works__term-link:hover {
    color: #fff;
    background: var(--mainColor);
    opacity: 1;
}

.works__term-name {
    margin-right: auto;
}

.works__case-contents {
    margin-top: 15px;
    flex-grow: 1;
}

.case-list__more-button {
    margin-top: 40px;
    margin-right: auto;
    margin-left: auto;
}

.works__case-list {
    display: grid;
    --col: 4;
    /*⬇︎*/
    grid-template-columns: repeat(var(--col), calc((100% - ((var(--col) - 1)* var(--margin)))/var(--col)));
    gap: 30px var(--margin);
    justify-content: space-between;
    align-items: stretch;
}

@media only screen and (max-width: 767px) {
    .works__case-list {
        --col: 2;
    }
}

#topCase .works__case-list {
    display: none;
}

@media only screen and (max-width: 1200px) {
    .works__case-slider {
        display: none;
    }

    #topCase .works__case-list {
        display: grid;
    }
}

#case_list {
    position: relative;
    padding: 40px 0 80px;
    background: #fff;
}

#case_list:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 200px;
    background: #ebeff3;
}

#case_list .titArea .contentWrp h2 {
    text-align: center;
}

.topcase {}

.archivePost {
    position: relative;
    transition: all .2s;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.case .archiveContents .sort {
    margin-bottom: 5px;
}

.case .archiveContents .sort span {
    display: inline-block;
}


.case-type__label,
.case .archiveContents .sort span,
#case-detail .sort span {
    display: inline-block;
    margin-right: 3px;
    margin-bottom: 3px;
    padding: 5px 9px;
    font-size: 12px;
    color: #fff;
    border-radius: 5px;
    line-height: 1;
}

.case-type__exist {
    background: var(--mainColor);
}

.case-type__empty {
    background: #d9d9d9;
}

.archiveContents .title {}

/* 詳細共通 */
.detail #casetop {
    position: relative;
    padding: 60px 0 80px;
}

.detail #casetop:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 230px;
    background: #ebeff3;
}

.detail #casetop .bgWhite {
    padding: 40px;
}

.detail #casetop .inner {
    max-width: 700px;
    width: 100%;
    margin: auto;
}

.detail #casetop .upper {
    margin-bottom: 18px;
}

.detail #casetop .date {
    margin-right: 10px;
}

/* 施工事例詳細 */
#case-detail #casetop .lower>div {
    margin-right: 15px;
    margin-bottom: 40px;
    padding: 5px 10px 5px 0;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#case-detail_flow {
    margin-bottom: 40px
}

#case-detail .flow .box {
    position: relative;
    width: 100%;
    margin: 0 auto 20px;
    padding: 20px;
    background: #f5f5f5;
}

#case-detail .flow .box:before {
    content: none;
}

#case-detail .flow .box:last-child {
    margin-bottom: 0;
}

#case-detail .flow .box .img {
    width: 400px;
}

#case-detail .flow .box .right {
    width: 530px;
}

#case-detail .flow .box .right h3 {
    margin-bottom: 10px;
}

#case-detail .btn {
    max-width: 254px;
    width: 40%;
    margin: auto;
}

/* 新着情報一覧/共通 */
#news.pagetop {
    padding-top: 20px;
}

.news li .datecate {
    margin-bottom: 10px;
}

.datecate p {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
}

.news .cate span {
    display: inline-block;
    width: auto;
    padding: 2px 10px;
    font-size: 12px;
    color: #fff;
    text-align: center;
    background: var(--mainColor);
    border-radius: 3px;
    line-height: 1.2;
}

.news #mainLeft {
    max-width: 960px;
    width: 75%;
}

#news_list li {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px solid #bcbcbc;
}

#news_list li .img {
    width: 250px;
    width: 26.2%;
    margin-right: 1%;
}

#news_list li .right {
    max-width: 690px;
    width: 72%;
}

#news_list li .right h3 {
    margin-bottom: 15px;
    padding-bottom: 5px;
}

#news-detail .datecate {
    max-width: 225px;
    width: 100%;
    margin: 0 auto 40px;
}

#news-detail .inner {
    max-width: 700px;
    margin: auto;
}

/* サイドバー */
.news #sidebar {
    max-width: 260px;
    width: 23%;
}

.news #sidebar .box {
    padding: 15px;
}

.news #sidebar h2 {}

.news #sidebar li {
    padding: 15px 18px;
    border-bottom: 1px dotted #7b7b7b;
}

.news #sidebar li a {
    text-decoration: underline;
}

.news .sp {
    display: none;
}

/*---------------------
Pager
---------------------*/
.pager::before,
.pager::after {
    content: " ";
    display: table;
}

.pager::after {
    clear: both;
}

.pager::before,
.pager::after {
    content: " ";
    display: table;
}

.pager {
    position: relative;
    color: #fff;
}

.pager.bottomPager {
    padding-top: 20px;
}

.pager span.pageNumber {
    display: inline-block;
    vertical-align: top;
    margin-right: 5px;
    padding-top: 8px;
}

.pager div.pager_num {
    display: inline-block;
    text-align: center;
    margin: 0 auto;
}

.pager .pager_num span,
.pager .pager_num a {
    position: relative;
    display: block;
    float: left;
    width: 28px;
    height: 28px;
    text-align: center;
    margin: 0 5px;
    padding-top: 0px;
    color: #000;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 20px;
}

.pager .pager_num a.next,
.pager .pager_num a.prev {}

.pager .pager_num span.current,
.pager .pager_num a:hover {
    color: #fff;
    background: var(--mainColor);
    opacity: 1;
}

/* 詳細ページナビ */
.pagenavi {
    max-width: 750px;
    width: 96%;
    margin: auto;
}

.pagenavi .left,
.pagenavi .right {
    position: relative;
    width: auto;
    padding-top: 8px;
}

.pagenavi .left span {
    display: inline-block;
    vertical-align: middle;
}

.pagenavi .left span.arrow,
.pagenavi .right span.arrow {
    width: 25px;
    height: 25px;
    padding-top: 3px;
    text-align: center;
    border: 1px solid #000;
    line-height: 1;
}

.pagenavi .left span.arrow {
    margin-right: 10px;
}

.pagenavi .left span.txt,
.pagenavi .right span.txt {}

.pagenavi .right span {
    display: inline-block;
    vertical-align: middle;
}

.pagenavi .right span.arrow {
    margin-left: 10px;
}

.pagenavi .left a,
.pagenavi .right a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.pagenavi p {
    width: calc(100%/3);
}

.pagenavi .btn {
    max-width: 254px;
    margin: auto;
}

.pagenavi .btn3 {
    width: 250px;
    background-position: 90% 45%;
}

/* 新着情報詳細 */


/* ビジュアルエディタ装飾 */
.freeeditor h1 {
    text-align: left;
    font-size: 140%;
    font-weight: bold;
    border-bottom: 3px solid #e8e7e3;
    padding-bottom: 5px;
    margin-bottom: 20px;
}

.freeeditor h2 {
    text-align: left;
    border: none;
    font-size: 130%;
    font-weight: bold;
    border-bottom: 2px solid #e8e7e3;
    padding-left: 0;
    padding-bottom: 5px;
    margin-bottom: 20px;
}

.freeeditor h3 {
    text-align: left;
    font-size: 120%;
    font-weight: bold;
    border-bottom: 1px solid #e8e7e3;
    padding-bottom: 5px;
    margin-bottom: 10px;
}

.freeeditor h4 {
    text-align: left;
    font-size: 110%;
    font-weight: bold;
    margin-bottom: 10px;
}

.freeeditor h5 {
    text-align: left;
    font-weight: bold;
    margin-bottom: 10px;
}

.freeeditor strong {
    font-weight: bold;
}

.freeeditor img.alignright {
    display: block;
    margin: 0 0 0 auto;
}

/* 配置位置 右 */
.freeeditor img.alignleft {
    display: block;
    margin: 0 auto 0 0;
}

/* 配置位置 左 */
.freeeditor img.aligncenter {
    display: block;
    margin: 0 auto;
}

/* 配置位置 中央 */
.freeeditor img {
    max-width: 700px;
    height: auto;
}

/*---------------------
フッター
---------------------*/
#business-trip {
    background: url(images/footer/bgTrip.png) no-repeat center;
    background-size: cover;
}

.footer__glassMaker-list {
    display: grid;
    grid-template-columns: 7fr 10fr;
    width: 50%;
    gap: var(--margin);
    margin: auto;
}

.footer__glassMaker-link {
    display: block;
    margin: auto;
}


@media only screen and (max-width: 767px) {
    .footer__glassMaker-list {
        display: grid;
        grid-template-columns: 100%;
        width: 240px;
        margin: auto;
    }

    .footer__coattect-link {
        width: 70%;
    }
}

.business-trip__colWrap {
    display: grid;
    --col: 2;
    /*⬇︎*/
    grid-template-columns: repeat(var(--col), calc((100% - ((var(--col) - 1)* var(--margin)))/var(--col)));
    gap: 0 var(--margin);
    justify-content: space-between;
    align-items: stretch;
}

@media only screen and (max-width: 767px) {
    .business-trip__colWrap {
        --col: 1;
    }
}

#business-trip .flex>div {
    max-width: 610px;
}

.footer-support__list {
    display: grid;
    --col: 4;
    /*⬇︎*/
    grid-template-columns: repeat(var(--col), calc((100% - ((var(--col) - 1)* var(--margin)))/var(--col)));
    gap: 30px var(--margin);
    justify-content: space-between;
    align-items: stretch;
    max-width: 1110px;
    width: 100%;
    margin: auto;
}

@media only screen and (max-width: 960px) {
    .footer-support__list {
        --col: 2;
        max-width: 560px;
    }
}

.support .titArea {
    position: relative;
    height: 200px;
    padding-top: 40px;
}

.support .bgImg {
    position: relative;
    background: url(images/support/bg.jpg) no-repeat center;
    background-size: cover;
}


.footer-support__item {
    padding: 10px;
    background: #fff;
    border: 1px solid #ccc;
}

.footer-support__item .img {
    margin-bottom: 10px;
}

.footer-support__item h3 {
    margin-bottom: 5px;
}

.accessmap h2 {
    margin-bottom: 20px;
}

.accessmap .bgGray {
    padding: 45px 0 30px;
}

.accessmap .inner {
    max-width: 1510px;
    margin: auto;
}

.accessmap li:nth-child(1) .info,
.accessmap li:nth-child(3) .info {
    max-width: 330px;
    width: 100%;
    margin: 10px auto 0;
}

.accessmap li:nth-child(2) .info {
    max-width: 360px;
    width: 100%;
    margin: 10px auto 0;
}

#ftContact {
    position: relative;
}

#ftContact .inner {
    max-width: 1280px;
    width: 100%;
    margin: auto;
}

#ftContact .photo {
    display: none;
}

#ftContact:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    height: 100%;
    background: url(images/footer/bgContact.jpg) no-repeat center;
    background-size: cover;
    z-index: 1;
}

#ftContact .right {
    position: relative;
    top: 60px;
    max-width: 670px;
    width: 100%;
    margin-left: 560px;
    padding: 70px 40px;
    background: url(images/footer/bgContactR.png) no-repeat center;
    background-size: cover;
    z-index: 2;
}

#ftContact .right h2 {
    margin-bottom: 15px;
    color: #fff;
}

#ftContact .right p.mb30 {
    color: #fff;
}

#ftContact .contact {
    max-width: 540px;
    width: 100%;
}

#ftContact .telArea {
    max-width: 295px;
    width: 56%;
    padding: 10px 20px;
    color: #000;
    background: #fff;
    border-radius: 3px;
}

#ftContact .telArea .icon {
    width: 16px;
}

#ftContact .telArea .tel {
    font-weight: bold;
    color: #000;
}

#ftContact .telArea .tel a {
    color: #000;
}

#ftContact .telArea .open {
    margin-top: 5px;
}

#ftContact .mail {
    max-width: 206px;
    width: 40%;
}

#line {
    background: #06c755;
    padding: 80px 0 30px;
}

#line a {
    display: block;
    width: 70%;
    margin: 0 auto;
}

#line a img {
    width: 100%;
}


#footer {
    background: #efefef;
}


.footer__info {
    width: max-content;
    max-width: 100%;
    margin: auto;
    text-align: left;
}


.footer__info__child-item {
    list-style-type: "-";
}

.footer__sns {
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
    margin-top: 24px;
}

#footer section {
    padding-bottom: 20px;
}

#footer a {}

#footer a:hover {}

#footer .footer__sitemap__title {
    margin-bottom: 20px;
    border-bottom: 1px solid var(--mainColor);
    text-align: center;
}

#footer .footer__sitemap__list {
    max-width: 720px;
    width: 100%;
    margin: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    justify-content: center;
}

#footer .footer__sitemap__item {
    text-align: center;
}

#footer .bgWhite {
    max-width: 1180px;
    width: 100%;
    margin: 40px auto 20px;
    padding: 50px 40px 70px;
    border-radius: 5px;
}

#footer .logo {
    max-width: 199px;
    width: 100%;
    margin: 0 auto 60px;
}

#footer .bgWhite .company h3 {
    position: relative;
    height: 30px;
    border-top: 1px solid var(--mainColor);
}

#footer .bgWhite .company h3 span {
    display: inline-block;
    position: absolute;
    top: -18px;
    left: 0;
    right: 0;
    width: 250px;
    margin: auto;
    padding: 0 10px;
    text-align: center;
    background: #fff;
}


.footer__glassMaker__title {
    margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
    .footer__glassMaker__title {
        margin-bottom: 20px;
    }
}

#footer .copyright {
    font-size: 12px;
    text-align: right;
}

/* フッター追尾 */
#footer-btn {
    display: block;
    width: 100%;
    left: 0px;
    bottom: 0;
    z-index: 9;
    padding: 10px 0;
    color: #fff;
    background: var(--lgBlue);
}

#footer-btn .tit {
    margin-bottom: 5px;
    padding-bottom: 5px;
    text-align: center;
    border-bottom: 1px solid #fff;
}

.fixed-footer__content {
    max-width: 900px;
    width: 100%;
}

.fixed-footer__copy {
    font-weight: 700;
    font-size: 20px;
}

.fixed-footer__content .totop {
    position: absolute;
    top: -40px;
    right: -10%;
}

.fixed-footer__tel {
    display: flex;
    align-items: center;
}

.fixed-footer__tel-icon {
    font-size: 40px;
}

.fixed-footer__tel .icon {
    max-width: 26px;
    padding-top: 5px;
    margin-right: 10px;
}

.fixed-footer__tel .tel {
    font-size: 30px;
    font-weight: bold;
    color: #fff;
    line-height: 1;
}

.fixed-footer__tel .tel a {
    color: #fff;
}

.fixed-footer__tel .open {
    line-height: 1.2;
    font-size: 11px;
}

#footer-btn .container {
    position: relative;
    justify-content: center;
    align-items: center;
}

.footer-contact-bnr {
    position: absolute;
    bottom: 0;
    right: 0;
}

.footer-btn-pc {
    align-items: center;
    padding: 10px 0 10px;
}

.footer-btn-sp {
    display: none;
}

#footer-btn a.lineArea {
    height: 70px;
    padding: 10px 5px;
    color: #fff;
    background: #06c755;
    max-width: 150px;
    width: 18%;
    justify-content: center;
    align-items: center;
}

#footer-btn a.lineArea img {
    width: 34%;
}

#footer-btn a.lineArea p {
    width: 65%;
    line-height: 1.25;
    font-weight: bold;
}


.fixed-footer__mail {
    border-radius: 5px;
    display: flex;
    padding: 10px;
    color: #fff;
    background: var(--lgGold);
    align-items: center;
}

.fixed-footer__mail__text {
    font-size: 14px;
    font-weight: 600;
}

.fixed-footer__mail {
    font-size: 2em;
}

.fixed-footer__allow {
    font-size: .5em;
}

.fixed-footer__bottom-content {
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

/* error */
.error {
    margin: 30px auto;
}

.error h2 {
    font-size: 18px;
    margin-bottom: 15px;
}


/* gotop */
#top {
    position: relative;
    overflow: hidden;
}

.gotop {
    position: fixed;
    right: var(--margin);
    bottom: 150px;
    z-index: 10;
    cursor: pointer;
}

.gotop:hover {
    opacity: 1;
}

@media screen and (-webkit-min-device-pixel-ratio: 0) {

    _::-webkit-full-page-media,
    _:future,
    :root .gotop {
        padding-top: 20px;
    }
}

/************************************************
      PC
************************************************ */

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

    .sp,
    .mini {
        display: none;
    }
}

@media only screen and (max-width: 1850px) {
    .header a.lineArea {
        right: 23%;
    }
}

@media only screen and (max-width: 1785px) {
    .header .contact.btn {
        width: 160px;
        padding: 20px 10px;
    }

    .header .telArea {
        right: 160px;
    }

    .header a.lineArea {
        right: 21%;
    }
}

@media only screen and (max-width: 1750px) {
    .header a.lineArea {
        right: 22%;
    }

    .header__gnav___list {
        justify-content: space-evenly;
    }
}

@media only screen and (max-width: 1675px) {
    .header a.lineArea {
        right: 23%;
    }
}

@media only screen and (max-width: 1600px) {
    .header__site-title {}

    .header .telArea {
        right: 9%;
        max-width: 190px;
        width: 18%;
    }

    .telArea p.icon {
        max-width: 21px;
        width: 10%;
    }

    .header .telArea .tel {
        font-size: 1.3vw;
    }

    .header .telArea .opentime {
        font-size: 10px;
    }

    .header .contact.btn {
        max-width: 140px;
        width: 13%;
        padding: 20px 15px;
    }

    .header a.lineArea {
        right: 21%;
    }

    .topcase {
        width: 96%;
        margin-right: auto;
        margin-left: auto;
    }

    #topCase .bx-wrapper .bx-prev {
        left: 0px;
    }

    #topCase .bx-wrapper .bx-next {
        right: 0px;
    }

    .header .telArea {
        right: 140px;
    }

    .header a.lineArea {
        right: 20%;
    }
}

@media only screen and (max-width: 1570px) {
    .header a.lineArea {
        right: 21%;
    }
}

@media only screen and (max-width: 1475px) {
    .header a.lineArea {
        right: 22%;
    }
}

@media only screen and (max-width: 1410px) {
    .header a.lineArea {
        right: 23%;
    }
}

@media only screen and (max-width: 1350px) {
    .header a.lineArea {
        right: 24%;
    }
}

@media only screen and (max-width: 1300px) {
    .header .contact.btn {
        max-width: 120px;
        padding: 20px 10px;
    }

    .header .telArea {
        right: 115px;
        max-width: 160px;
    }

    .header a.lineArea {
        right: 21%;
    }
}

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

    .header__gnav___item {
        font-size: 1vw;
    }

    .header .telArea .opentime br {
        display: block;
    }

    /* page */
    .cont01 .upper,
    .cont01 .lower,
    #insurance02 .box {
        display: flex;
    }

    .cont01 .upper .img,
    .cont01 .lower .img,
    .cont01 .box {
        width: 50%;
        top: 0;
        margin: 0;
        background: #ebeff3;
    }

    .cont01 .upper {
        margin-bottom: 60px;
    }

    .cont01 .upper .box,
    .cont01 .lower .box {
        top: 0;
        margin: 0;
        padding: 40px;
    }

    #guest01.cont01 .upper .box,
    #guest01.cont01 .lower .box {
        padding: 40px;
    }

    #guest01.cont01 .lower {
        margin-bottom: 0;
    }

    .pre-confirm .upper .right .bgWhite {
        margin-right: 0;
    }

    #repair04 .col3 li h3 span.fs20 {
        font-size: 1.4vw;
    }

    #insurance02 .box .left,
    #insurance02 .box .right,
    #insurance02 .insurance02_01_02 .box .right,
    #insurance02 .insurance02_02 .box .right {
        width: 50%;
        top: 0;
        margin: 0;
    }

    #insurance02 .box .right {
        padding: 40px 40px 50px;
    }

    #insurance02 .insurance02_01_02 .box {
        background: #fbfcf3;
    }

    #insurance02 .insurance02_01_01 .box,
    #insurance02 .insurance02_02 .box {
        background: #fcf3fb;
    }

    #aiming05 .bgWhite {
        margin: auto;
    }

    /* case */
    .case .menu .col3.fs16 {
        font-size: 1.2vw;
    }

    #case-detail .flow .box .img {
        max-width: 400px;
        width: 44%;
    }

    #case-detail .flow .box .right {
        max-width: 540px;
        width: 54%;
    }

    /* news */
    #news_list li .img {
        max-width: 250px;
        width: 30%;
        margin-right: 2%;
    }

    #news_list li .right {
        max-width: 700px;
        width: 68%;
    }

    /* footer */
    #ftContact:before {
        width: 60%;
    }

    #ftContact .right {
        width: 60%;
        margin-left: 40%;
    }
}

@media only screen and (max-width: 1220px) {
    .header a.lineArea {
        right: 22%;
    }
}

@media only screen and (max-width: 1175px) {
    .header .telArea {
        right: 100px;
    }

    .header a.lineArea {
        right: 21%;
    }
}

@media only screen and (max-width: 1140px) {
    .header a.lineArea {
        right: 22%;
    }
}

@media only screen and (max-width: 1120px) {
    .header .telArea {
        right: 95px;
    }

    .header a.lineArea {
        max-width: 130px;
    }

    .header a.lineArea p {
        font-size: 12px;
    }
}

@media only screen and (max-width: 1080px) {
    .header a.lineArea {
        right: 23%;
    }
}

@media only screen and (max-width: 1035px) {
    .header .telArea {
        right: 85px;
    }
}

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

    header {
        height: 62px;
    }

    .header__site-title {}

    #mv {}

    .mvtit {
        position: absolute;
        width: 70%;
    }

    /* グローバルナビ */

    .h2 {
        font-size: 30px;
    }

    .h2tit {
        height: auto;
        padding-bottom: 80px;
    }

    /* page */
    .cont01 .upper .box,
    .cont01 .lower .box {
        top: 0;
        margin: 0;
        padding: 20px;
    }

    #repair04 .h2tit {
        height: auto;
        padding-bottom: 40px;
    }

    #repair04 .bgImg {
        padding-top: 150px;
    }

    #repair04 .col3 li {
        background-size: 30px;
    }

    #repair04 .col3 li h3 {
        padding-left: 50px;
    }

    #repair04 .col3 li h3 span.num {
        width: auto;
        height: auto;
        padding: 8px 13px;
        font-size: 2.2vw;
        left: 5px;
    }

    #repair04 .col3 li p {
        min-height: inherit;
        padding-bottom: 20px;
    }

    #repair04 .col3 li p.fs16 {
        font-size: 14px;
    }

    #insurance02 .point .right .box .fs30 {
        font-size: 2.8vw;
    }

    /* servic */
    #others02 .others02_03 table.Pricerist {
        width: 100%;
    }

    /* company */


    /* works */

    #topCase .h2tit {
        padding-bottom: 40px;
    }

    .topCaseS {
        display: block;
    }

    .case .menu .col3 li {
        background-size: 6%;
    }

    .case .menu .col3 li.btn {
        padding: 15px 40px 15px 10px;
    }

    #case_maker .flex.imported {
        -webkit-justify-content: inherit;
        justify-content: inherit;
    }

    #case_maker .flex.imported li {
        width: calc(100%/9);
        border-right: none;
    }

    #case_maker .flex.jpn li {
        width: 10%;
        border-right: none;
    }

    #case_maker .flex li:last-child {
        border-right: 1px solid #cccccc;
    }

    #case_type li {
        font-size: 1.2vw;
    }

    /* footer */
    #ftContact .right {
        padding: 40px 20px;
    }

    .gotop {
        bottom: 170px;
    }

    /* default - footer - 追尾 - */
    .footer-btn-pc {
        display: none;
    }

    .fixed-footer__content .totop {
        width: 50px;
        top: -30px;
        right: 1%;
    }

    .footer-btn-sp {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 16px 0;
        background: url(../images/footer/footer_bg_sp.png);
        background-size: cover;
    }

    .footer-btn-sp p {
        margin: 10px 1% 0;
    }
}





/************************************************
        SP: 767px
************************************************ */
@media only screen and (max-width: 767px) {
    body {
        font-size: 13px;
        line-height: 1.6;
    }

    .pt40 {
        padding-top: 20px !important;
    }

    .pt50 {
        padding-top: 25px !important;
        ;
    }

    .pt60,
    .pt70,
    .pt80 {
        padding-top: 30px !important;
    }

    .pt100 {
        padding-top: 50px !important;
    }

    .pb40,
    .pb50 {
        padding-bottom: 25px !important;
    }

    .pb60,
    .pb70,
    .pb80 {
        padding-bottom: 30px !important;
    }

    .pb100,
    .pb120,
    .pb150 {
        padding-bottom: 50px !important;
    }

    .mb30,
    .mb40 {
        margin-bottom: 20px !important;
    }

    .mb50 {
        margin-bottom: 25px !important;
    }

    .mb90 {
        margin-bottom: 40px !important;
    }

    .mt50 {
        margin-top: 20px !important;
    }

    .fs12 {
        font-size: 10px;
    }

    .fs15,
    .fs16 {
        font-size: 100%;
    }

    .fs18 {
        font-size: 15px;
    }

    .fs20 {
        font-size: 18px;
    }

    .fs24,
    .fs26,
    .fs28 {
        font-size: 20px;
    }

    .fs30 {
        font-size: 20px;
    }

    .fs36 {
        font-size: 30px;
    }

    .fs38 {
        font-size: 30px;
    }

    .fs40 {
        font-size: 34px;
    }

    .breadcrumb {
        font-size: 12px;
    }

    /* セクション共通 */
    section {
        padding: 20px 0 40px;
    }

    .h2 {
        margin-bottom: 15px;
        font-size: 26px;
    }

    .h3 {
        font-size: 22px;
    }

    .h2tit {
        height: auto;
        padding-top: 30px;
        padding-bottom: 80px;
    }

    .t28 {
        font-size: 24px;
    }

    .t32 {
        font-size: 28px;
    }

    .breadcrumb {}

    #mainImage h1 span {
        font-size: 36px;
    }

    /* コンテンツ */
    .h2-bmcont {
        top: -30px;
        margin-bottom: -30px;
    }

    #mv .bx-wrapper .bx-prev,
    #mv .bx-wrapper .bx-next {
        display: none;
    }

    #top01 .bgGray {
        padding: 20px;
    }

    #top02 li {
        width: 100%;
        margin: 0 auto 20px;
        padding: 40px 0;
    }

    #top04 .bgGray {
        padding: 30px 0;
    }

    #top04 .img {
        width: 100%;
        margin: 0 auto 20px;
    }

    #top04 .right {
        width: 100%;
        margin: auto;
    }

    .col1of2 {
        width: 100%;
        margin: 0 auto 20px;
    }

    .cont01 .upper {
        margin-top: 25px;
        margin-bottom: 25px;
    }

    .cont01 .upper,
    .cont01 .lower,
    #insurance02 .box {
        display: block;
    }

    .cont01 .upper .img,
    .cont01 .lower .img,
    .cont01 .box {
        width: 100%;
        margin: auto;
    }

    .cont01 .upper .box,
    .cont01 .lower .box {
        max-width: 620px;
        margin: auto;
    }

    .cont02 .upper .box {
        float: none;
    }

    .cont02 .box {
        padding: 30px 20px;
    }

    .cont02 .lower {
        padding-bottom: 0;
    }

    .cont02 .upper,
    .cont02 .lower {
        padding: 120px 0 50px;
    }

    .cont02 .upper:before,
    .cont02 .lower:before {
        height: 250px;
    }

    .guest__flow-item {
        margin-bottom: 40px;
    }

    .guest__flow-item::before {
        border-width: 30px;
        bottom: -60px;
    }

    .guest__flow-item .info {
        text-align: center;
    }

    .guest__flow-item .info .telArea {
        max-width: 210px;
        width: 100%;
        margin: 5px auto;
    }

    .guest__flow-item .info .mail {
        margin: auto;
    }

    #guest01.cont01 .upper .box,
    #guest01.cont01 .lower .box {
        padding: 20px;
    }

    #exchange01 {
        padding: 40px 0 60px;
    }

    #exchange01 h3 {
        margin-bottom: 25px;
    }

    #exchange04 .bgImg {
        padding-bottom: 50px;
    }

    #exchange04 .h2tit {
        height: auto;
    }

    .pre-confirm .bgGray {
        padding: 30px 20px 40px;
    }

    #repair01 {
        padding: 30px 0 50px;
    }

    #repair01 .box .flex .txt {
        padding-top: 0;
    }


    #repair02 .col3 li .bottom {
        padding: 10px;
    }

    #exchange03 .h2tit {
        height: auto;
        padding-bottom: 40px;
    }

    #exchange04 .box .boxinner {
        padding: 20px 15px;
    }

    .reason .box {
        padding: 50px 0 30px;
    }

    .pre-confirm .num {
        width: 30px;
        height: 30px;
        padding-top: 5px;
    }

    .pre-confirm .upper .img {
        width: 100%;
        margin: auto;
    }

    .pre-confirm .upper .right {
        width: 100%;
        margin: 20px auto 0;
    }

    .pre-confirm .upper .right .bgWhite {
        margin: 0;
        padding: 10px 0;
    }

    .num3.col3 li h3 {
        top: -20px;
        margin-bottom: -20px;
    }

    .num3.col3 li h3.fs20 {
        font-size: 16px;
    }

    #repair04 .h2tit {
        padding-bottom: 30px;
    }

    #repair04 .col3 li {
        width: 48%;
        margin-bottom: 40px;
    }

    #repair04 .col3 li h3 {
        padding-left: 40px;
    }

    #repair04 .col3 li h3 span.num {
        top: -15px;
        padding: 8px 10px;
    }

    #repair04 .col3 li h3 span.fs20 {
        font-size: 2.3vw;
    }

    #repair04 .col3 li p.fs16 {
        font-size: 13px;
    }

    #insulation01 {
        padding: 50px 0;
    }

    .cont03 h2 {
        margin-bottom: 20px;
    }

    .glass-maker .box .boxinner {
        padding: 20px;
        background: #fff;
    }

    #others01 li {
        margin-bottom: 30px;
    }

    #others02 .bgF5:before {
        height: 430px;
    }

    #others02 .h2tit {
        padding-bottom: 30px;
    }

    #others02 .upper.bgWhite {
        margin-bottom: 50px;
        padding: 20px;
    }

    #others02 .lower.bgWhite {
        padding: 20px 20px 30px;
    }

    #others02 .lower.bgWhite .lower2 {
        margin-top: 20px;
    }

    #others02 .others02_01_02 .fs16 {
        font-size: 16px;
    }

    #others02 .others02_01_02 th,
    #others02 .others02_01_02 td {
        padding: 15px;
    }

    #others02 .others02_03 .left h3 {
        text-align: center;
    }

    #others02 .others02_03 .left h3 br {
        display: none;
    }

    #others02 .others02_03 table.Pricerist td {
        font-size: 13px;
    }

    #others02 .others02_03 table.Pricerist td img {
        max-width: 100%;
        height: auto;
    }

    #others02 .others02_03.tablePricerist p {
        font-size: 14px;
    }

    #others02 .others02_03 strong {
        font-size: 18px;
    }

    #insurance01 {
        padding: 50px 0;
    }

    #insurance02 .point {
        margin-bottom: 0;
    }

    #insurance02 .point .right {
        position: relative;
    }

    #insurance02 .point .right .arrow {
        width: 45%;
    }

    .insurance02_01_01,
    .insurance02_01_02,
    #insurance02 .insurance02_02 {
        margin-top: 50px;
    }

    .insurance02_01_02,
    #insurance02 .insurance02_02 .box {
        margin-bottom: 50px;
    }

    #insurance02 .box {
        max-width: 620px;
        margin: auto;
    }

    #insurance02 .box .left,
    #insurance02 .box .right,
    #insurance02 .insurance02_01_02 .box .right,
    #insurance02 .insurance02_02 .box .right {
        width: 100%;
        max-width: 620px;
        margin: auto;
    }

    #insurance02 .box .right,
    #insurance02 .insurance02_01_02 .box .right,
    #insurance02 .insurance02_02 .box .right {
        padding: 20px;
    }

    #insurance02 .insurance02_03 {
        margin-top: 30px;
    }

    #insurance02 .insurance02_03 .bgYl {
        padding: 20px;
    }

    #insurance02 .insurance02_03 .point .right .box li:before {
        width: 30px;
        height: 25px;
    }

    #insurance02 .insurance02_03 .point .right .box ul.fs20 {
        font-size: 2.6vw;
    }

    #insurance02 .insurance02_03 .bgYl h4:before,
    #insurance02 .insurance02_03 .bgYl h4:after {
        width: 40px;
        height: 40px;
    }

    #insurance03 {
        padding-bottom: 40px;
    }

    #insurance03 .bgWhite {
        padding: 20px;
    }

    #insurance04 .box {
        padding: 40px 20px 20px;
    }

    #insurance04 .box h3 {
        margin-bottom: 20px;
    }

    .insurance04_02 .bgWhite {
        padding: 20px 15px;
    }

    #insurance05 {
        padding-top: 150px;
    }

    #insurance05:before {
        height: 400px;
    }

    #insurance05 .bgWhite {
        padding: 30px 15px 40px;
    }

    #insurance05 .bgWhite .brNone {
        display: none;
    }

    #aboutus01.cont01 .upper {
        margin-bottom: 20px;
    }

    #aboutus02 .bgWhite {
        margin-bottom: 20px;
        padding: 20px;
    }

    #aboutus03 .bgWhite {
        padding: 20px;
    }

    #aboutus03 .titArea {
        padding: 0 0 20px;
    }

    #privacy .bgWhite {
        padding: 20px;
    }

    #aiming02 .bgWhite,
    #aiming03 .bgWhite,
    #aiming04 .bgWhite {
        padding: 20px;
    }

    #aiming02 .bgGray,
    .aiming03_02 .bgGray,
    #aiming04 .bgGray {
        padding: 20px;
    }

    #aiming05 {
        padding: 40px 0 80px;
        overflow: hidden;
    }

    #aiming05 .bgWhite {
        width: 100%;
        padding: 20px;
    }

    /* 施工事例一覧 */
    #topCase .h2tit {
        padding: 20px 0;
    }

    #menuArea .h2tit {
        height: auto;
    }

    .works__term-link::after {
        font-size: 15px;
    }

    .case .menu .col3 li {
        width: 48%;
    }

    .case .menu .col3 li,
    .case .menu .col3 li:nth-child(3n) {
        margin: 0 1% 10px;
    }

    .case .menu .col3.fs16 {
        font-size: 1.6vw;
    }

    .case .menu .col4.fs16 {
        font-size: 1.6vw;
    }

    .works__term-link {
        padding: 10px 10px;
        background-position: 95% 50%;
    }

    .case .archiveContents .sort span,
    #case-detail .sort span {
        font-size: 10px;
    }

    #case .topArea {
        padding: 30px 0 40px;
    }

    #case_list,
    #topCase.page {
        padding: 20px 0 50px;
    }

    #case_list:before,
    #topCase.page:before {
        height: 120px;
    }

    #topCase.page .titArea {
        margin-bottom: 0;
    }

    /* 詳細共通 */
    .detail #casetop {
        padding: 20px 0 50px;
    }

    .detail #casetop:before {
        height: 120px;
    }

    .detail #casetop .bgWhite {
        padding: 20px;
    }

    /* 新着情報一覧 */
    .news .sp {
        display: block;
    }

    .news #mainLeft {
        width: 100%;
    }

    .news #sidebar {
        display: none;
    }

    #news_list li {
        margin-bottom: 10px;
    }

    #news #news_list ul li {
        padding: 15px 0;
    }

    .news .datecate {
        margin-bottom: 8px;
    }

    .news .datecate .cate span {
        font-size: 10px;
    }

    .archiveList li {
        display: inline-block;
        margin-right: 10px;
    }

    #cate_archive h3,
    #monthly_archive h3 {
        margin-bottom: 10px;
        padding: 5px;
        font-weight: bold;
        color: white;
        background: var(--mainColor);
    }

    /* pager */
    .pager .pager_num span,
    .pager .pager_num a {
        padding-top: 3px;
    }

    /* 新着情報詳細 */
    #news-detail {
        padding-top: 0;
    }

    #news-detail .inner {
        padding: 10px;
    }

    #news-detail #news-detail_top {
        padding-bottom: 0;
    }

    /* pagenavi */
    .pagenavi .left,
    .pagenavi .right {
        padding-top: 4px;
    }


    #business-trip .flex>div {
        max-width: 610px;
        margin: auto;
    }

    #business-trip .flex>div.right {
        margin-top: 20px;
    }

    #ftContact .img {
        display: block;
    }

    #ftContact:before {
        display: none;
    }

    #ftContact .right {
        top: 0;
        width: 100%;
        max-width: inherit;
        margin: 0;
        text-align: center;
    }

    #ftContact .contact {
        margin: auto;
    }

    #ftContact .right {
        padding: 20px;
    }

    #footer .bgWhite {
        margin-top: 20px;
        padding: 30px 20px;
    }

    #footer .logo {
        margin-bottom: 30px;
    }


    .footer-btn-sp {
        padding: 0 0 10px;
    }

    .fixed-footer__content .totop {
        width: 40px;
        top: -25px;
        right: 1%;
    }

    /* gotop */
    .gotop {
        width: 40px;
        height: 40px;
        right: 10px;
        bottom: 160px;
    }

    @media screen and (-webkit-min-device-pixel-ratio: 0) {

        _::-webkit-full-page-media,
        _:future,
        :root .gotop {
            padding-top: 11px;
            padding-left: 9px;
        }
    }

    /* メールフォームテンプレート */
    .inquiryForm__table {
        font-size: 100%;
    }

}

/************************************************
      Smartphone max-width: 640px
************************************************ */
@media only screen and (max-width: 640px) {

    /* page */


    /* メールフォームテンプレート */
    .inquiryForm__table th,
    .inquiryForm__table td {
        display: block;
        width: 100%;
    }

    .inquiryForm__table th {
        padding-bottom: 0;
        border-bottom: none;
    }

    .inquiryForm__table .w80 {
        width: 100%;
    }

    .inquiry__form__button-confirm {
        max-width: 300px;
    }

    /* footer */
    #line {
        padding: 20px 0 20px;
    }

    #line a {
        width: 100%;
    }

    /* case */

}

@media only screen and (max-width: 568px) {}

/************************************************
    Smartphone max-width: 414px
************************************************ */
@media only screen and (max-width: 414px) {
    .pb40 {
        padding-bottom: 20px !important;
    }

    .pb50,
    .pb100 {
        padding-bottom: 30px !important;
    }

    .pt30,
    .pt40 {
        padding-top: 20px !important;
    }

    .pt100 {
        padding-top: 30px !important;
    }

    .mb20,
    .mb30 {
        margin-bottom: 15px !important;
    }

    .mb60,
    .mb80,
    .mb90 {
        margin-bottom: 30px !important;
    }

    .mini {
        display: block;
    }

    body {
        font-size: 12px;
    }

    .fs16,
    .fs18 {
        font-size: 14px;
    }

    .fs20,
    .fs22 {
        font-size: 16px;
    }

    .fs24,
    .fs26,
    .fs28 {
        font-size: 18px;
    }

    .fs30 {
        font-size: 18px;
    }

    .fs36 {
        font-size: 20px;
    }

    .fs38 {
        font-size: 20px;
    }

    .fs40 {
        font-size: 26px;
    }

    .grayline {
        font-size: 19px;
        padding: 20px 1%;
        margin-bottom: 0;
    }

    .h2 {
        font-size: 20px;
    }

    .h3 {
        font-size: 16px;
    }

    .h2tit {
        padding-top: 25px;
        padding-bottom: 60px;
    }

    .t28 {
        font-size: 18px;
    }

    .t32 {
        font-size: 22px;
    }

    .btn {
        font-size: 10px;
    }

    .btn1 {
        width: 130px;
        height: 24px;
    }

    .btn1 span {
        padding: 2px;
    }

    .btn1 span:before {
        top: 35%;
    }

    .col3 li {
        width: 100%;
        margin: 0 auto 15px;
    }

    /*header*/


    header {}

    .header__site-title {}

    #mainImage h1 span {
        font-size: 26px;
        -webkit-text-stroke: 2px #000;
        paint-order: stroke;
    }

    /* page */
    #top01 .bgGray {
        padding: 20px 10px;
    }

    #top01 .bgGray:before {
        border-width: 20px;
        bottom: -40px;
        left: 45%;
    }

    .cont02 .upper,
    .cont02 .lower {
        padding: 80px 0 30px;
    }

    .cont02 .upper:before,
    .cont02 .lower:before {
        height: 200px;
    }

    .guest__flow-item {
        margin-bottom: 30px;
        padding: 20px;
    }

    .guest__flow-item::before {
        left: 45%;
        border-width: 20px;
        bottom: -40px;
    }


    #exchange01 .left,
    #exchange01 .right {
        width: 100%;
        margin: 0 auto 20px;
    }

    #exchange02 li h3 span.num {
        width: 25%;
    }

    #exchange02 li h3 span.txt {
        width: 75%;
    }

    .reason .box {
        padding: 40px 0 30px;
    }

    .reason .box .num {
        top: -15px;
        padding: 5px;
    }

    .pre-confirm .bgGray {
        padding: 20px 10px 30px;
    }

    .pre-confirm .lower .col4 li {
        width: 48%;
        margin: 0 0.5% 15px;
    }

    #repair03 .bgF5 {
        padding: 15px 0;
    }

    #repair03 .bgF5 .inner p {
        display: block;
    }

    #repair03 .bgF5 .inner p.icon {
        max-width: 40px;
        width: 100%;
        margin: 0 auto 15px;
    }

    #repair03 .bgF5 .inner p.txt {
        width: 100%;
    }

    .num3.col3 li h3 {
        top: 0;
        margin-bottom: 0;
        padding-top: 10px;
    }

    #repair04 .h2tit {
        padding-bottom: 20px;
    }

    #repair04 .col3 li {
        width: 100%;
        margin: 0 auto 30px;
        background-size: 20px;
    }

    #repair04 .col3 li h3 span.num {
        font-size: 3vw;
    }

    #repair04 .col3 li h3 span.fs20 {
        font-size: 16px;
    }

    #insulation03 .bgWhite {
        padding-bottom: 0;
    }

    .glass-maker .box {
        width: 100%;
        margin: 0 auto 20px;
    }

    #others02 .h2tit {
        padding-bottom: 10px;
    }

    #others02 .upper.bgWhite {
        padding: 20px 15px;
    }

    #others02 .lower.bgWhite {
        padding: 20px 15px;
    }

    #insurance02 .point .icon {
        width: 100%;
        max-width: 100px;
        margin: 0 auto 10px;
    }

    #insurance02 .point .right {
        width: 100%;
    }

    #insurance02 .point .right .arrow {
        margin: auto;
    }

    #insurance02 .point .right .box {
        padding: 15px;
    }

    #insurance02 .point .right .box .fs30 {
        font-size: 16px;
    }

    #insurance02 .insurance02_03 .point .right .box li:before {
        width: 25px;
        height: 20px;
    }

    #insurance02 .insurance02_03 .point .right .box ul.fs20 {
        font-size: 3vw;
    }

    .insurance02_01_02,
    #insurance02 .insurance02_02 .box {
        margin-bottom: 20px;
    }

    #insurance02 .insurance02_03 {
        margin-top: 20px;
    }

    #insurance02 .insurance02_03 .bgYl {
        margin-bottom: 20px;
    }

    #insurance02 .insurance02_03 .bgYl h4:before,
    #insurance02 .insurance02_03 .bgYl h4:after {
        width: 30px;
        height: 30px;
    }

    #insurance03 .bgWhite {
        padding: 20px 10px;
    }

    #aboutus02 .bgWhite table th,
    #aboutus02 .bgWhite table td {
        display: block;
        width: 100%;
    }

    /* 施工事例 */
    #topCase .bgGray .menu li {
        width: 48%;
        margin-bottom: 15px;
    }

    #case .topArea {
        padding: 20px 0 30px;
    }

    #case .topArea .box h2 {
        font-size: 20px;
    }

    .case .menu .col3 li {
        width: 100%;
    }

    .case .menu .col3 li,
    .case .menu .col3 li:nth-child(3n) {
        margin: 0 auto 10px;
    }

    .case .menu .col4 li {
        width: 48%;
        margin-bottom: 10px;
    }

    #case_list,
    #topCase.page {
        padding: 20px 0 40px;
    }

    .archiveContents table th {
        width: 50px;
    }

    .detail #casetop {
        padding: 20px 0 40px;
    }

    .detail #casetop .bgWhite {
        padding: 20px 10px;
    }

    /* news */
    #news_list li .img {
        max-width: 250px;
        width: 100%;
        margin: 0 auto 15px;
    }

    #news_list li .right {
        width: 100%;
    }

    .pagenavi .left,
    .pagenavi .right {
        padding-top: 2px;
    }

    .pagenavi .left span.txt,
    .pagenavi .right span.txt {
        display: none;
    }

    .pagenavi .left span.arrow,
    .pagenavi .right span.arrow {
        width: 20px;
        height: 20px;
    }

    /* フッター */
    #ftContact .telArea,
    #ftContact .mail {
        width: 100%;
        margin: 0 auto 20px;
    }

    #ftContact .mail {
        margin-bottom: 0;
    }

    .footer-support__item {
        width: 100%;
        margin: 0 auto 20px;
    }

    #footer .bgWhite {
        padding: 25px 15px;
    }

    .gotop {
        bottom: 130px;
    }
}

/************************************************
  Smartphone max-width: 360px
************************************************ */
@media only screen and (max-width: 361px) {

    #repair01 .box .flex .img,
    #repair01 .box .flex .txt {
        width: 100%;
        margin: 0 auto 15px;
    }

    #repair01 .box .flex .img {
        max-width: 120px;
    }

    .archiveContents dd:nth-child(3) {
        width: 100%;
    }
}

@media only screen and (max-width: 330px) {}


.bottom-cta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin);
}

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

    .bottom-cta {
        justify-content: center;
        max-width: 560px;
        margin: auto;
    }
}

.bottom-cta__link {
    display: flex;
    align-items: center;
    border-radius: 3px;
    gap: 5px;
    padding: 10px 24px;
    box-shadow: 2px 2px 5px #0004;
    flex-grow: 1;
    max-width: 300px;
}

.bottom-cta__tel-link {
    background: #fff;
}

.bottom-cta__mail-link {
    color: #fff;
    background: var(--lgGold);
}

.bottom-cta__icon {
    font-size: 40px;
}


.bottom-cta__tel-num {
    font-size: 24px;
    line-height: 1.2;
}

.bottom-cta__info {
    line-height: 1.4;
}


.guest__flow__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 10px;
}


.guest__flow__cta__link {
    flex-grow: 1;
    display: flex;
    align-items: center;
    border-radius: 3px;
    gap: 5px;
    padding: 10px 24px;
    box-shadow: 2px 2px 5px #0004;

}

.guest__flow__cta__tel-link {
    color: var(--mainColor);
    background: #fff;
}

.guest__flow__cta__mail-link {
    color: #fff;
    background: var(--lgGold);
}

.guest__flow__cta__icon {
    font-size: 40px;
}


.guest__flow__cta__tel-num {
    font-size: 24px;
    line-height: 1.2;
}

.guest__flow__cta__info {
    line-height: 1.4;
}

.info__title {
    white-space: nowrap;
    width: 100%;
    overflow-x: hidden;
    text-overflow: ellipsis;
}

.news__thumbnail {
    display: flex;
    align-items: center;
    aspect-ratio: 3/2;
    overflow: hidden;

}