@charset "utf-8";
/*
Theme Name: sora-link
Theme URI: https://sora-link.jp/
Description: pcbrain
Version: 1.0
Author: pcbrain.co.jp
*/

/* YUI fonts.css - font size設定
----------------------------------------------------------- */
@import url("css/cssfonts-min.css");

/* default style - リセット及びbody基本設定
----------------------------------------------------------- */
@import url("css/default.css");

/* all style
----------------------------------------------------------- */
@import url("css/style.css");
@import url("setting.css");

html {
    scroll-behavior: smooth;
}

body {
    width: 100%;
    min-width: 1100px;
    font-size: 16px;
    box-sizing: border-box;
    -webkit-text-size-adjust: 100% !important;
    color: var(--body-text-color);
    background: var(--main-color02);
    overflow-wrap: anywhere;
    /* word-break: normal; */
    word-break: break-all;
    line-break: strict;
}

body.iframe {
    min-width: 0;
}

a {
    color: var(--main-color01);
    text-decoration: none;
    transition: 0.3s;
}

a:hover {
    opacity: 0.8;
    color: var(--main-color01);
}

img {
    image-rendering: -webkit-optimize-contrast;
}

figure {
    margin-bottom: 0;
}

em {
    font-weight: bold;
    font-style: normal;
}

time {
    font-size: 14px;
    font-weight: 400;
    text-transform: capitalize;
}

.wide_lg {
    max-width: 1600px;
    margin: 0 auto;
}

.wide {
    max-width: 1200px;
    margin: 0 auto;
}

.spblock,
.spinline,
.sptr {
    display: none;
}

.inner {
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    padding: 0;
    box-sizing: border-box;
}

.flex {
    display: flex;
}

.en {
    font-family: var(--en-font-family);
    font-weight: 700 !important;
    text-transform: capitalize;
}

.tel i[class*='fa-'] {
    font-size: 35px;
    margin-right: 0.25em;
    vertical-align: 1px;
}

.tel .tel_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 75px;
    height: 75px;
    background: var(--white);
    border-radius: 50%;
}

.tel .tel-link {
    font-family: var(--en-font-family);
    font-size: 47px;
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1;
    margin-left: 5px;
    color: var(--body-text-color);
}

.tel .tel-link a {
    color: var(--body-text-color);
}

.tel .tel-open {
    font-size: 12px;
    font-family: var(--base-font-family);
    font-weight: 500;
    margin-top: -5px;
}

/* -----------------------------------------------------------
    common
----------------------------------------------------------- */
.non-register {
    padding: 50px;
    text-align: center;
    transform: rotate(0.03deg);
}

/* -----------------------------------------------------------
    box
----------------------------------------------------------- */
.box_border01 {
    background: var(--white);
    border: 2px solid var(--main-color01);
    border-radius: 6px;
    padding: 60px;
}

.box_border01 > .tl_border02 {
    padding-top: 0;
}

.voiceCstContent.box_border01 {
    border: none;
    background: none;
    padding: 0 60px 60px;
    transform: rotate(0.03deg);
}

/* -----------------------------------------------------------
    title
----------------------------------------------------------- */
.tl_popup01 {
    font-size: 36px;
    font-weight: 700;
    text-align: center;
    display: flex;
    flex-direction: column-reverse;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    ;
}

.tl_popup01 small {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: var(--main-color01);
    font-family: var(--en-font-family);
    margin-bottom: 5px;
    transform: rotate(0.03deg);
}

.tl_popup01 small::before {
    transform: skew(20deg) translateY(-0%);
    padding-right: 20px;
}

.tl_popup01 small::after {
    transform: skew(-20deg) translateY(-0%);
    padding-left: 20px;
}

.tl_popup01 .balloon01 {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 102px;
    height: 102px;
    box-sizing: border-box;
    padding-bottom: 5px;
    inset: 15px auto 0 -0.5em;
    margin: auto;
    color: var(--sub-color02);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.08;
    pointer-events: none;
    transform: translate(-100%, -50%);
}

.tl_popup01 .balloon01::before {
    content: "";
    position: absolute;
    background: var(--sub-color02);
    display: block;
    inset: 0;
    width: 100%;
    height: 100%;
    --mask: url(./img/svg_balloon10.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.tl_border01 {
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    border-top: 4px solid currentColor;
    border-bottom: 4px solid currentColor;
    margin-bottom: 60px;
    /* padding: 30px 25px; */
    padding: 0.833em 0.694em;
}

.tl_border02 {
    font-size: 30px;
    font-weight: 700;
    line-height: 1.2;
    padding: 20px 0;
    border-bottom: 1px solid var(--sub-color02);
    margin-bottom: 40px;
}

.tl_border03 {
    font-size: 30px;
    font-weight: 700;
    line-height: 1.33;
    text-align: center;
    padding: 20px 0;
    margin-bottom: 40px;
    position: relative;
}

.tl_border03 small {
    font-size: 0.73em;
    font-weight: 700;
    display: block;
}

.tl_border03::before {
    display: block;
    position: absolute;
    inset: auto 0 0;
    margin: 0 auto;
    content: "";
    background: var(--main-color01);
    width: 50px;
    height: 7px;
    pointer-events: none;
}

.tl_bar01 {
    font-size: 22px;
    font-weight: 600;
    color: var(--white);
    background: var(--body-text-color);
    margin: 40px 0;
    padding: 20px 0;
    box-sizing: border-box;
    line-height: 1.25;
}

#works .tl_bar01, 
#voice .tl_bar01 {
    text-align: center;
}

.tl_bar01:after {
    content: none;
}

.tl {
    text-align: center;
    margin: 25px 0 120px;
}

.tl h2 {
    font-size: 36px;
    line-height: 60px;
    padding-bottom: 20px;
    margin-bottom: 20px;
}

.tl h2::after {
    content: none;
}

.tl h2 b {
    color: var(--sub-color01);
}

.tl p {
    font-size: 16px;
    line-height: 40px;
    transform: rotate(0.03deg);
}

.tl p span {
    display: none;
}

#points .tl p {
    display: inline-block;
    text-align: left;
}
#points .tl p small {
    font-size: 16px;
    color: var(--sub-color02);
}

.cats .cat {
    font-size: 14px;
    color: var(--body-text-color);
    background: #e9e9e9;
    padding: 7px 15px 8px;
    line-height: 1;
    transition: 0.3s ease;
}

.cats .cat:hover {
    opacity: 0.7;
}

.categories {
    position: relative;
}

.categories:not(.flatCategories) {
    /* margin-top: -25px; */
    /* padding: 0 0 80px; */
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.categories:not(.flatCategories) .cats .cat {
    border: 2px solid currentColor;
    background: transparent;
    font-size: 16px;
    font-weight: 500;
    padding: 10px 25px 12px;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    min-width: 160px;
    box-sizing: border-box;
    margin: 0;
    transition: 0.3s ease;
}

.categories:not(.flatCategories) .cats .flex .cat {
    white-space: wrap;
}

.categories:not(.flatCategories) .cats .cat:hover,
.categories:not(.flatCategories) .cats .cat.active {
    color: var(--white) !important;
    background: var(--body-text-color);
    border-color: transparent;
}

/* .flatCategories */
.categories.flatCategories .cats {
    display: flex;
    gap: 0 1px;
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    transform: rotate(0.03deg);
}

.categories.flatCategories .cats .cat {
    --background: #777;
    display: block;
    flex: 1;
    padding: 20px 20px 18px;
    font-size: 18px;
    font-weight: 500;
    color: var(--white) !important;
    background: var(--background);
    border: none;
    text-align: center;
    margin: 10px 0 0 0;
    position: relative;
    transition: 0.3s ease;
    transform: rotate(0);
}

.categories.flatCategories .cats .cat.active,
.categories.flatCategories .cats .cat:hover {
    --background: var(--body-text-color);
    padding-top: 23px;
    margin-top: 0;
    padding-bottom: 23px;
}

.categories.flatCategories .cats .cat::after {
    display: block;
    position: absolute;
    inset: auto 0 2px;
    margin: 0 auto;
    content: "";
    width: 18px;
    height: 8px;
    background: transparent;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    transform: translateY(100%);
}

.categories.flatCategories .cats .cat.active::after,
.categories.flatCategories .cats .cat:hover::after {
    background: var(--background);
}

/* -----------------------------------------------------------
    list
----------------------------------------------------------- */
.lst_checkbox01 {
    display: block;
    margin: 0;
    padding: 0;
}

.lst_checkbox01 li {
    padding-left: 30px;
    padding-right: 1em;
    padding-bottom: 2px;
    position: relative;
}

.lst_checkbox01 li::before {
    content: "";
    position: absolute;
    display: block;
    width: 25px;
    height: 25px;
    inset: 0.2em auto auto 0;
    margin: 0;
    background: var(--red);
    --mask: url(./img/svg_check01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.lst_number01 {
    counter-reset: list-item !important;
    line-height: 2;
    margin: 1rem 0;
}

.lst_number01 li {
    counter-increment: list-item;
    margin-left: 2rem;
    margin-bottom: 1rem;
    padding-left: 0 !important;
}

.lst_number01 li::marker {
    content: counter(list-item) '.    ';
}

.lst_number01 li::before,
.lst_number01 li::after {
    display: none !important;
}

.lst01 li {
    list-style: none;
    line-height: 2;
    padding-left: 1em;
    position: relative;
}

.lst01 li::before {
    content: '';
    display: block;
    left: 0.5em;
    top: 1em;
    width: 4px;
    height: 4px;
    border-radius: 4px;
    background: currentColor;
    position: absolute;
    transform: translate(-50%, -50%);
}

.lst_img02 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.lst_img02 > * {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.lst_img02 > * img {
    display: block;
    border: 1px solid var(--sub-color02);
}



/* -----------------------------------------------------------
    table
----------------------------------------------------------- */
table {
    width: 100%;
}

th {
    background: #777;
    font-size: 16px;
    font-weight: 500;
    color: var(--white);
}

caption, th, td {
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    padding: 20px 40px;
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict;
}
td > p:last-of-type{
    margin-bottom: 0;
}
.tbl01 caption, 
.tbl01 th,
.tbl01 td {
    border: 2px solid var(--body-text-color);
}

.tbl01 caption {
    font-size: 18px;
    color: var(--white);
    text-align: center;
    background: #777;
    border-top: none;
    border-bottom: none;
}

.tbl01:first-of-type caption {
    border-top: 2px solid var(--body-text-color);
}

.tbl01 td {
    background: var(--white);
}

.tbl01 td a {
    text-decoration: underline;
    text-underline-offset: 8px;
    transition: 0.3s ease;
}

/* -----------------------------------------------------------
    button
----------------------------------------------------------- */
a.btn, .btn a {
    display: block;
    background: var(--body-text-color);
    color: var(--white) !important;
    font-size: 18px;
    font-weight: 500;
    min-width: 200px;
    width: fit-content;
    outline: 2px solid transparent;
    box-sizing: border-box;
    margin: 20px 20px 20px 0;
    padding: 20px 80px 20px 60px;
    line-height: 1.5;
    position: relative;
    border: 2px solid var(--body-text-color);
    border-radius: 40px;
    text-decoration: none;
    transition: 0.3s ease;
    transition: 0.3s ease;
    transform: rotate(0.03deg);
}

.infoList .btn a {
    padding: 20px 50px 20px 40px;
}

a.btn::before,
.btn a::before {
    position: absolute;
    inset: 0 15px 0 auto;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

a.btn:hover, .btn a:hover {
    background-color: #777;
    border: 2px solid var(--body-text-color);
    box-shadow: 0 3px transparent;
    opacity: 1 !important;
}

.textLeft.btn a,
.textLeft a.btn {
    margin-right: auto;
}

.textCenter.btn a,
.textCenter a.btn {
    margin-left: auto;
    margin-right: auto;
}

.textRight.btn a,
.textRight a.btn {
    margin-left: auto;
}

a.btn_outline,
.btn_outline a,
.btn_outline span {
    display: block;
    border-radius: 30px;
    position: relative;
    font-size: 14px;
    font-weight: 700;
    padding: 15px 45px 15px 30px;
    line-height: 1;
    color: var(--white);
    background: var(--body-text-color);
    border: 2px solid var(--body-text-color);
    width: fit-content;
    min-width: 220px;
    box-sizing: border-box;
    transition: background-color 0.3s ease;
}

a.btn_outline.btn_outline02,
.btn_outline.btn_outline02 a,
.btn_outline.btn_outline02 span {
    border-color: var(--body-text-color);
    ;
    color: var(--body-text-color);
    background: var(-white);
}

.btn_outline span {
    min-width: 180px;
}

a.btn_outline::before,
.btn_outline a::before,
.btn_outline span::before {
    position: absolute;
    inset: 0 15px 0 auto;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.textLeft.btn_outline a,
.textLeft a.btn_outline,
.textLeft .btn_outline span {
    margin-right: auto;
}

.textCenter.btn_outline a,
.textCenter a.btn_outline,
.textCenter.btn_outline span {
    margin-left: auto;
    margin-right: auto;
}

.textRight.btn_outline a,
.textRight a.btn_outline,
.textRight .btn_outline a {
    margin-left: auto;
}

a.btn_outline:hover,
.btn_outline a:hover,
a:hover .btn_outline span,
li:has(a) a:hover ~ a:not(.cat) .btn_outline span {
    border-color: var(--body-text-color) !important;
    color: var(--body-text-color);
    background: #777;
    color: var(--white);
    opacity: 1 !important;
}

.btn_ico {
    display: block;
    background: var(--main-color01);
    color: var(--white) !important;
    font-size: 16px;
    font-weight: 700;
    width: 200px;
    outline: 2px solid transparent;
    box-sizing: border-box;
    margin: 20px 20px 20px 0;
    padding: 17px 0 17px 65px;
    /* align-items: center; */
    line-height: 1;
    position: relative;
    border-radius: 4px;
    text-decoration: none;
    transition: 0.3s ease;
    box-shadow: 0 3px #af1406;
    transition: 0.3s ease;
}

.btn_ico::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 20px;
    bottom: 0;
    margin: auto 0;
    background-color: currentColor;
}

.btn_ico.ico_mail01::before,
span[class='ico_mail01']::before {
    /* width: 23px;
    height: 16px; */
    width: 1.4375em;
    height: 1em;
    --mask: url(./img/svg_mail01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.btn_ico.ico_file01::before,
span[class='ico_file01']::before {
    /* width: 16px;
    height: 21px; */
    width: 1em;
    height: 1.3125em;
    --mask: url(./img/svg_file01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.btn_ico.ico_fdl01::before,
span[class='ico_fdl01']::before {
    /* width: 28px;
    height: 13.75px; */
    /* width: 1.75em;
    height: 0.86em; */
    width: 2.275em;
    height: 1.118em;
    --mask: url(./img/svg_fdl01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.btn_ico.ico_tel01::before,
span[class='ico_tel01']::before {
    width: 1.58125em;
    height: 1.58125em;
    --mask: url(./img/svg_tel01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.btn_ico:hover {
    color: var(--main-color01) !important;
    background: var(--white) !important;
    outline: 2px solid currentColor;
    /* padding-bottom: 20px; */
    box-shadow: 0 3px transparent;
    opacity: 1 !important;
}

.btn_ico small {
    display: block;
    background: var(--white);
    color: var(--main-color01);
    border: 2px solid #af1406;
    font-size: 14px;
    font-weight: 700;
    padding: 2px 12px 4px;
    margin-bottom: 10px;
    position: absolute;
    left: 30px;
    top: 0;
    transform: translateY(-50%);
    line-height: 1;
    /* width: 100%; */
    box-sizing: border-box;
    text-align: center;
    pointer-events: none;
}

.btn_ico small::before,
.btn_ico small::after {
    content: "";
    position: absolute;
    transform: translate(-50%, 100%);
    left: 50%;
    bottom: 0;
}

.btn_ico small::before {
    border-top: #af1406 11px solid;
    border-left: transparent 5px solid;
    border-right: transparent 5px solid;
}

.btn_ico small::after {
    border-top: var(--white) 9px solid;
    border-left: transparent 3px solid;
    border-right: transparent 3px solid;
}

.btn_ico img {
    position: absolute;
    top: 0;
    left: 15px;
    bottom: 0;
    margin: auto 0;
}

/*----- .cats -----*/
.cats {
    display: block;
    margin: 0 10px;
}

.cats .cat {
    display: inline-block;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    background: #def5ff;
    margin: 10px 10px 0 0;
    padding: 7px 10px;
    color: var(--body-text-color) !important;
    transform: rotate(0.03deg);
}

/*----- other -----*/
.formBoxNotes {
    padding-left: 1em;
    text-indent: -1em;
}

/* -----------------------------------------------------------
    .wp-pagenavi
----------------------------------------------------------- */
.wp-pagenavi {
    text-align: center;
    display: flex;
    gap: 5px;
    justify-content: center;
    align-items: center;
    margin: 60px 0 0;
    transform: rotate(0.03deg);
}

.wp-pagenavi .pages {
    border: 0;
}

.wp-pagenavi a {
    text-decoration: none !important;
}

.wp-pagenavi a,
.wp-pagenavi span {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 35px;
    border: 0;
    color: var(--body-text-color) !important;
    background: var(--white);
    padding: 10px 5px 10px;
    line-height: 1;
    border-radius: 0;
    transition: all 0.3s ease;
    font-size: 16px;
    font-weight: 500;
    min-width: 2.1875em;
    box-sizing: border-box;
}

.wp-pagenavi span.extend {
    background: transparent !important;
}

.wp-pagenavi a:hover,
.wp-pagenavi span.current {
    background: #444;
    color: var(--white) !important;
}

.wp-pagenavi a.previouspostslink,
.wp-pagenavi a.nextpostslink {
    position: relative;
    text-align: center;
    font-size: 14px;
    color: var(--white) !important;
    background: var(--body-text-color);
    padding-top: 5px;
    padding-bottom: 5px;
}

.wp-pagenavi a.previouspostslink {
    padding-left: 60px;
    padding-right: 25px;
    margin-right: 50px;
    order: -1;
}

.wp-pagenavi a.previouspostslink::after,
.wp-pagenavi a.nextpostslink::after {
    position: absolute;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.wp-pagenavi a.previouspostslink::after {
    inset: 0 auto 0 25px;
    transform: scaleX(-1);
}

.wp-pagenavi a.nextpostslink {
    padding-left: 25px;
    padding-right: 60px;
    margin-left: 50px;
    order: 999;
}

.wp-pagenavi a.nextpostslink::after {
    inset: 0 25px 0 auto;
}

/* -----------------------------------------------------------
    .pagenavi
----------------------------------------------------------- */
.pagenavi {
    clear: both;
    width: 100%;
    max-width: 1200px;
    margin: 80px 0;
}

#works .worksSingle .pagenavi, 
#voice .voiceSingle .pagenavi {
    padding: 80px 0 120px;
    margin: 0;
}

#menu .pagenavi {
    margin-bottom: 0;
}

.pagenavi ul {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    transform: rotate(0.03deg);
    /* max-width: 640px; */
}

.pagenavi ul li {
    flex: 1;
    display: block;
    /* width: 33.3%; */
    padding: 0 !important;
    margin-bottom: 0;
}

.pagenavi ul li:before {
    content: none;
}

.pagenavi ul li a {
    display: block;
    border: 0;
    color: var(--body-text-color) !important;
    background: var(--white);
    padding: 6px 20px;
    line-height: 1;
    border-radius: 0;
    transition: all 0.3s ease;
    font-size: 16px;
    font-weight: 500;
    min-width: 2.1875em;
    box-sizing: border-box;
}

.pagenavi ul li.list a {
    background: transparent;
    width: fit-content;
    margin: 0 auto;
}

.pagenavi ul li.list a i[class^='fa'] {
    margin-right: 1em;
    font-size: 1.4em;
    vertical-align: middle;
}

.pagenavi ul li.list a:hover {
    /* color: var(--white); */
    color: var(--white) !important;
    background: var(--body-text-color);
}

.pagenavi ul li.next a,
.pagenavi ul li.prev a {
    width: fit-content;
    font-size: 14px;
    color: var(--white) !important;
    background: var(--body-text-color);
    padding-top: 10px;
    padding-bottom: 11px;
}

.pagenavi ul li.prev {
    text-align: left;
}

.pagenavi ul li.next a {
    position: relative;
    margin: 0 auto 0 50px;
    padding-left: 25px;
    padding-right: 60px;
    text-align: left;
}

.pagenavi ul li.prev a {
    position: relative;
    margin: 0 50px 0 auto;
    padding-left: 60px;
    padding-right: 25px;
    text-align: right;
}

.pagenavi ul li.next a::before {
    position: absolute;
    inset: 0 15px 0 auto;
    margin: auto 0;
    content: "";
    /* width: 10px;
    height: 16px; */
    width: 17px;
    height: 12px;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.pagenavi ul li.prev a::after {
    position: absolute;
    inset: 0 auto 0 15px;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 12px;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    transform: scaleX(-1);
}

.pagenavi ul li.prev a i {
    margin-right: 1.0rem;
}

.pagenavi ul li.next {
    text-align: right;
}

.pagenavi ul li.next a i {
    margin-left: 1.0rem;
}

.pagenavi ul li.next a:hover,
.pagenavi ul li.prev a:hover {
    background: var(--body-text-color);
    color: var(--white) !important;
}

.pagenavi ul li.list {
    text-align: center;
}

/* -----------------------------------------------------------
    background
----------------------------------------------------------- */


/* -----------------------------------------------------------
    header
----------------------------------------------------------- */
header {
    background: var(--main-color02);
    width: 100%;
}

header .wide_lg {
    position: absolute;
    display: flex;
    justify-content: space-between;
    width: 100%; max-width: 100%;  min-width: 1100px; 
    z-index: 100;
}

header .wide_lg.fiexd--nav {
    background: var(--white);
    position: fixed;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
    opacity: 0;
    transform: translateY(-100%);
    transition: all 0.5s ease-in-out;
}

.scrolled .wide_lg.fiexd--nav {
    opacity: 1;
    transform: translateY(0);
}

header > .wide_lg {
    padding-left: 50px;
    padding-right: 50px;
    box-sizing: border-box;
}

@media screen and (max-width : 1280px) {
    header > .wide_lg {
        padding: 0;
    }
}

header .wide_lg .boxL {
    display: flex;
    align-items: flex-end;
    height: fit-content;
    margin: auto 0;
    gap: 20px;
}

header a.htxt,
header .htxt a,
header h1.htxt a {
    padding: 5px 0;
    color: var(--black);
    transition: 0.3s ease;
}

header a.htxt:hover,
header .htxt a:hover,
header h1.htxt a:hover {
    color: var(--main-color01);
}

header h1.htxt,
header .htxt h1,
header .htxt a,
header .htxt p {
    font-size: 14px;
    display: block;
    font-weight: 500;
    line-height: 1;
}

@media screen and (max-width : 1499px) {
    header .wide_lg .boxL {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding-left: 20px;
    }
}

header .htxt p strong {
    font-weight: 500;
}

header .hdrLogo {
    width: 18rem;
}

header .fiexd--nav .hdrLogo {
    width: 15rem;
}

header .hdrLogo img {
    display: block;
    width: 100%;
    height: auto;
}

header .boxR {
    /* text-align: right; */
    padding: 0 0 0 10px;
    box-sizing: border-box;
}

header .hdrTelContact {
    display: flex;
    align-items: center;
}

header .hdrTelContact a {
    transition: 0.3s ease;
}

header .hdrTelContact a:hover {
    opacity: 0.7;
}

header .hdrTelContact > * {
    /* padding: 20px; */
    color: var(--white);
    line-height: 1;
}

header .hdrTel {
    display: flex;
    align-items: center;
}

header .hdrTel .tel {
    display: flex;
    flex-direction: row;
    justify-content: center;
    font-size: 16px;
    color: var(--black);
    justify-content: center;
    align-items: center;
    padding: 20px;
}

@media screen and (max-width : 1440px) {
    header .hdrTel .tel {
        flex-direction: column;
        gap: 5px;
    }
}

header .hdrTel .tel i[class*="fa-"] {
    font-size: 27px;
    margin-right: 0.25em;
}

header .hdrTel .tel-link {
    font-size: 32px;
    font-weight: 700;
    color: var(--body-text-color);
    letter-spacing: -0.05em;
    padding-right: 20px;
    white-space: nowrap;
}

header .hdrTel .tel-link img {
    vertical-align: text-bottom;
    margin-right: 0.5rem;
}

header .hdrTel .tel-open {
    font-size: 12px;
    font-weight: 500;
}

#hdrNv {
    width: 100%;
}

header nav {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-left: 2rem;
}

header .fiexd--nav nav {
    padding: 20px 0 20px 1rem;
}

header nav .gNav {
    /* position: relative; */
    display: flex;
    font-size: 16px;
    font-weight: 400;
    padding: 0 1px;
    gap: 0;
    justify-content: flex-end;
    align-items: center;
}

header nav .gNav * {
    line-height: 1.0;
}

header nav .gNav > li {
    display: block;
    text-align: center;
}

header nav .gNav .gNav_simulation a, 
header nav .gNav .gNav_mail a {
    display: flex;
    flex-direction: column;
    padding: 30px 20px;
    transform: rotate(0);
}

header nav .gNav .gNav_simulation a { 
    background: var(--main-color01); 
    gap: 13px;
}
header nav .gNav .gNav_mail a { 
    background: var(--sub-color01); 
    gap: 10px;
}

header nav .gNav .gNav_simulation p, 
header nav .gNav .gNav_mail p {
    transform: rotate(0.03deg);
}

header nav .gNav > li > a {
    color: var(--white);
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    padding: 20px;
    box-sizing: border-box;
    line-height: 1;
    box-sizing: border-box;
    position: relative;
    transform: rotate(0.03deg);
    transition: 0.3s ease;
}

header .fiexd--nav nav .gNav > li > a {
    color: var(--body-text-color);
    font-weight: 500;
}

#menu .gNav_menu > a::before,
#works .gNav_works > a::before,
#voice .gNav_voice > a::before,
#blog .gNav_blog > a::before,
#corporate .gNav_corporate > a::before,
#staff .gNav_staff > a::before, 
#points .gNav_points > a::before {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    display: block;
    content: "";
    width: 20px;
    height: 4px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 4px;
}

#menu .gNav_menu > a::after,
#works .gNav_works > a::after,
#voice .gNav_voice > a::after,
#blog .gNav_blog > a::after,
#corporate .gNav_corporate > a::after,
#staff .gNav_staff > a::after, 
#points .gNav_points > a::after {
    content: none;
}

#menu .fiexd--nav .gNav_menu > a::before,
#works .fiexd--nav .gNav_works > a::before,
#voice .fiexd--nav .gNav_voice > a::before,
#blog .fiexd--nav .gNav_blog > a::before,
#corporate .fiexd--nav .gNav_corporate > a::before,
#staff .fiexd--nav .gNav_staff > a::before, 
#points .fiexd--nav .gNav_points > a::before {
    background: var(--main-color01);
}

header nav .gNav > li > a::after {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: 0;
    display: block;
    content: "";
    width: 20px;
    height: 4px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 4px;
    transform: scale(0, 1);
    transform-origin: center top;
    transition: 0.3s ease;
}
header .fiexd--nav nav .gNav > li > a::after { 
    background: var(--main-color01); 
}

header nav .gNav > li > a:hover::after, 
header .fiexd--nav nav .gNav > li > a:hover::after { 
    transform: scale(1, 1); 
}

header nav .gNav > li.gNav_simulation > a::after, 
header nav .gNav > li.gNav_mail > a::after {
    content: none;
}

header nav .gNav > li.gNav_simulation > a:hover, 
header nav .gNav > li.gNav_mail > a:hover { 
    opacity: 1;
    background: var(--body-text-color);
}

header nav .gNav > li.gNav_simulation > a:hover img, 
header nav .gNav > li.gNav_mail > a:hover img { 
    opacity: 1;
}

@media screen and (max-width : 1520px) {
    header nav { padding-left: 1rem; }
    header .hdrLogo { width: 13rem; }
    header nav .gNav li a { font-size: 12px; padding: 13px; }

    .dropmenu { min-width: 170px !important; }
    .dropmenu .inner { padding: 10px !important; }
    .dropmenu a::after { width: 15px !important; height: 15px !important; }
    header nav .gNav > li .dropmenu .inner > ul > li > a { font-size: 12px !important; }
}

.gNav_menu.js-dropmenu {
    position: relative;
}

.dropmenu {
    min-width: 200px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    color: var(--white);
    background: var(--body-text-color);
    opacity: 0;
    pointer-events: none;
    transition: 0.3s ease;
}

.gNav.open .dropmenu {
    opacity: 1;
    pointer-events: auto;
}

h2 {
    padding-bottom: 30px;
    margin-bottom: 30px;
}

h2::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 120px;
    height: 4px;
    border-radius: 2px;
    background: var(--main-color01);
}

.wysiwyg h2::after {
    display: none;
}

.shopContent h2::after, 
.pointsContent h2::after, 
.menuContent h2::after, 
.areaContent .flex h2::after, 
.staffList .leftBox h2::after, 
.worksList h2::after,
#staff .bgGray h2::after,  
.faqContent h2::after {
    background: rgba(255, 255, 255, 0.6);
}


.contactContent h2, 
.infoList h2, 
.messageContent h2 {
    margin-bottom: 60px;
}

.dropmenu h2 {
    font-size: 20px;
    font-weight: 500;
    max-width: 300px;
    margin: 10px auto 0px;
    text-align: center;
}

.dropmenu h2 a {
    padding: 40px 0;
    display: block;
}

.dropmenu h2 a::after {
    position: absolute;
    inset: 5px 15px 0 auto;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    transition: 0.3s ease;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.dropmenu h2 a::before {
    position: absolute;
    inset: 5px 8px 0 auto;
    margin: auto 0;
    content: "";
    width: 30px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, 0.23);
}

.dropmenu h2 a:hover {
    background: transparent !important;
}

.dropmenu .inner {
    padding: 15px;
}

.dropmenu a {
    color: var(--white);
    position: relative;
    transition: 0.3s ease;
}

.dropmenu a::after {
    position: absolute;
    inset: 0 5px 0 auto;
    margin: auto 0;
    content: "";
    width: 21px;
    height: 17px;
    transition: 0.3s ease;
    background-color: currentColor;
    --mask: url(./img/svg_arrow10.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.dropmenu a:hover {
    background-color: var(--main-color01) !important;
    opacity: 1 !important;
}

.dropmenu a:hover::after {
    /* background-color: var(--red); */
}

.dropmenu > ul {
    opacity: 1 !important;
}

header nav .gNav > li ul {
    pointer-events: none;
    z-index: 100;
    box-sizing: border-box;
    text-align: left;
}

header nav .gNav > li:hover ul {
    opacity: 1;
    transition: opacity 1.0s;
    pointer-events: auto;
}

header nav .gNav > li .dropmenu .inner > ul > li > a {
    font-size: 16px;
    font-weight: 400;
    padding: 15px 10px;
    transform: rotate(0.03deg);
}

header nav .gNav > li .dropmenu .inner > ul > li > a::before {
    position: absolute;
    inset: 0 8px 0 auto;
    margin: auto 0;
    content: "";
    width: 30px;
    height: 30px;
}

header nav .gNav > li .dropmenu .inner > ul > li li a {
    font-size: 14px;
    font-weight: 500;
    padding: 11px 50px 14px 20px;
    background: rgba(255, 255, 255, 0);
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}



header nav .gNav > li ul li {
    display: block;
}

header nav .gNav > li ul li a {
    display: block;
    font-weight: 700;
    padding: 10px;
}

header nav .gNav > li ul li a:hover {
    opacity: 0.7;
    transition: 0.6s;
}


/* -----------------------------------------------------------
    cornerName
----------------------------------------------------------- */
#cornerName {
    position: relative;
    background: url(./img/bg_points.jpg) no-repeat center;
    background-size: cover;
    text-align: left;
    padding: 200px 0;
    z-index: 1;
    overflow: hidden;
}

#cornerName::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 50%;
    top: 0;
    left: 0;
    /* background: linear-gradient(rgba(0, 0, 0, 0.5), transparent); */
}

#corporate #cornerName { background-image: url(./img/bg_corporate.jpg); }
#works #cornerName { background-image: url(./img/bg_works.jpg); }
#voice #cornerName { background-image: url(./img/bg_voice.jpg); }
#blog #cornerName { background-image: url(./img/bg_blog.jpg); }
#staff #cornerName { background-image: url(./img/bg_staff.jpg); }
#contact #cornerName, #privacy #cornerName { background-image: url(./img/bg_contact.jpg); }

#menu #cornerName.solar { background-image: url(./img/bg_menu_solar.jpg); }
#menu #cornerName.battery { background-image: url(./img/bg_menu_battery.jpg); }
#menu #cornerName.v2h { background-image: url(./img/bg_menu_v2h.jpg); }

#cornerName > .wide_lg {
    position: relative;
    display: block;
    text-align: center;
    z-index: 2;
    box-sizing: border-box;
}

#cornerName .title {
    display: inline-block;
    font-size: 46px;
    font-weight: 700;
    line-height: 1;
    color: var(--white);
    background: var(--body-text-color);
    padding: 20px 40px;
}

#cornerName .title .sub {
    display: inline-block;
    margin-left: 1em;
    padding-left: 1em;
    position: relative;
}

span.sub::before {
    content: "";
    display: block;
    height: 0.75em;
    width: 1px;
    background: var(--white);
    position: absolute;
    inset:0.1em auto 0 0;
    margin: auto 0;
}

#cornerName p {
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 10px;
}

/*----- .breadcrumb -----*/
.breadcrumbList {
    width: fit-content;
    box-sizing: border-box;
    font-size: 16px;
    font-weight: 400;
    color: var(--body-text-color);
    margin: 30px 0;
    padding: 0 40px;
    line-height: 1.5;
    transform: rotate(0.03deg);
}

.breadcrumbList a {
    color: var(--body-text-color);
}

.breadcrumbList > span > a,
.breadcrumbList > span > span {
    padding: 5px;
    /* display: inline-block; */
    display: inline;
}

.breadcrumbList > span > a {
    color: var(--main-color01);
    text-decoration: underline;
    text-underline-offset: 2px;
}


/* -----------------------------------------------------------
    main
----------------------------------------------------------- */
/*----- .topMainv -----*/
#jsMainv.swiper-container {
    position: relative;
    background: var(--main-color02);
}

.swiper-slide {
    width: auto;
}

@media screen and (min-width : 1920px) {
    #jsMainv .swiper-slide img {
        width: 100%;
    }    
}
.swiper-pagination-bullet {
    width: 12px !important;
    height: 12px !important;
    background: rgba(255, 255, 255, 0.5) !important;
    margin: 10px !important;
    opacity: 1 !important;
}

.swiper-pagination-bullet-active {
    background:  var(--white) !important;
}

.slogan {
    position: absolute;
    top: 40%;
    right: 5%;
    color: var(--white);
    background: var(--body-text-color);
    padding: 0 15px 0 30px;
    z-index: 1;
    font-size: 56px;
    font-weight: bold;
    letter-spacing: 10px;
}

.mainvPR { display: flex; gap: 1px; }
.mainvPR li { width: calc(100% / 3); }
.mainvPR li img { width: 100%; }

/*----- #jsVoiceWorks -----*/
#jsVoiceWorks .slick-track {
    display: block !important;
    position: relative;
    width: auto !important;
}

#jsVoiceWorks .slick-track span.slick-slide {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
}


.slick-dots {
    position: absolute;
    bottom: -50px;
    padding: 0;
    width: 100%;
    list-style: none;
    text-align: center;
}

.slick-dots li {
    position: relative;
    display: inline-block;
    margin: 0 10px !important;
    padding: 0;
    width: 12px !important;
    height: 12px !important;
    cursor: pointer;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
}

.slick-dots li.slick-active {
    background-color: rgba(255, 255, 255, 1);
}

.slick-dots li button {
    position: relative;
    display: block;
    width: 12px;
    height: 12px;
    outline: none;
    border: 0;
    background: transparent;
    color: transparent;
    font-size: 0;
    line-height: 0;
    cursor: pointer;
}

.slick-dots li button:hover,
.slick-dots li button:focus {
    outline: none;
}

.slick-dots li button:hover::before,
.slick-dots li button:focus::before {
    opacity: 1;
}

.slick-slider .slick-dots {
    bottom: 0;
    transform: translateY(100%);
    z-index: 100;
}

.slick-slider .slick-dots li button::before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #b3b3b3;
    content: '' !important;
    text-align: center;
    font-size: 6px;
    line-height: 20px;
    opacity: 1 !important;
}

.slick-dots li.slick-active button::before {
    background: var(--main-color01);
    opacity: 1 !important;
}

/*----- メインカラム -----*/
#contents {
    margin: 0 auto 0;
    overflow: hidden;
}

/*----- .reasonContent -----*/
.reasonContent {
    position: relative;
    margin: 100px 0;
}

.reasonContent .inner {
    max-width: 1200px;
    text-align: center;
}

.reasonContent .inBox.flex {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 60px;
    text-align: left;
}

.reasonContent .leftBox {
    margin-right: 50px;
}

.reasonContent .leftBox h2 {
    color: var(--body-text-color);
}

.reasonContent .leftBox p {
    font-size: 18px;
    font-weight: 400;
    line-height: 2;
    color: var(--body-text-color);
    transform: rotate(0.03deg);
    margin-right: -20px;
}

.reasonContent .reasonSuccess {
    font-size: 26px;
    font-weight: bold;
    display: inline-block;
    border: 6px solid var(--sub-color02);
    border-radius: 50px;
    padding: 5px 30px;
}

.reasonContent .reasonSuccess .underline {
    background: linear-gradient(transparent 65%, #ffc8ce 50%);
}

.reasonContent .reasonSuccess .underline strong {
    font-size: 30px;
    font-weight: bold;
    color: var(--sub-color02);
}

/*----- .pointsContent -----*/
.pointsContent {
    background: var(--main-color01);
    padding: 120px 0;
}

.pointsContent .pointsList {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: space-between;
    margin-bottom: 50px;
}

.pointsContent .tl_popup01 {
    margin-bottom: 100px;
}

.pointsContent .tl_popup01 b {
    font-size: 56px;
    padding: 0 10px;
}

.pointsContent .tl_popup01, 
.pointsContent .tl_popup01 small {
    color: var(--white);
}

.pointsContent .pointsList li {
    position: relative;
    width: calc(100% / 3 - 30px);
    background: var(--white);
    padding: 3cap;
    border: 6px solid #c2eeff;
    box-sizing: border-box;
}

.pointsContent .pointsList li .pointsIcon {
    text-align: center;
    margin: 50px 0 30px;
}

#top .pointsContent .pointsList li .pointsIcon {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 120px;
}

.pointsContent .pointsList li:nth-of-type(4) .pointsIcon { 
    transform: translateX(30px);
}

#top .pointsContent .pointsList li:nth-of-type(1) .pointsIcon img { width: 96px; }
#top .pointsContent .pointsList li:nth-of-type(2) .pointsIcon img { width: 105px; }
#top .pointsContent .pointsList li:nth-of-type(3) .pointsIcon img { width: 105px; }
#top .pointsContent .pointsList li:nth-of-type(4) .pointsIcon img { width: 155px; }
#top .pointsContent .pointsList li:nth-of-type(5) .pointsIcon img { width: 67px; }
#top .pointsContent .pointsList li:nth-of-type(6) .pointsIcon img { width: 115px; }

.pointsContent .pointsList li h3 {
    font-size: 30px;
    text-align: center;
    margin-bottom: 10px;
}

.pointsContent .pointsList li .number {
    position: absolute;
    font-size: 50px;
    top: 0;
    left: 20px;
    font-weight: bold;
    color: var(--white);
    text-shadow: 
        var(--main-color01) 2px 0px 0px, var(--main-color01) 1.75517px 0.958851px 0px, var(--main-color01) 1.0806px 1.68294px 0px,  var(--main-color01) 0.141474px 1.99499px 0px, 
        var(--main-color01) -0.832294px 1.81859px 0px, var(--main-color01) -1.60229px 1.19694px 0px, var(--main-color01) -1.97998px 0.28224px 0px, 
        var(--main-color01) -1.87291px -0.701566px 0px, var(--main-color01) -1.30729px -1.5136px 0px,  var(--main-color01) -0.421592px -1.95506px 0px, 
        var(--main-color01) 0.567324px -1.91785px 0px, var(--main-color01) 1.41734px -1.41108px 0px, var(--main-color01) 1.92034px -0.558831px 0px;
    z-index: 10;
}

.pointsContent .pointsList li .number::after {
    content: "";
    position: absolute;
    top: 50px;
    left: 0;
    background: url(./img/svg_cloud.svg) no-repeat;
    background-size: 113px;
    width: 100%;
    padding: 30px;
    z-index: -1;
}

.pointsContent .pointsList li h3 b {
    color: var(--sub-color01);
}

.pointsContent .pointsList li p {
    transform: rotate(0.03deg);
}

/*----- planContent -----*/
.planContent {
    background: #fffedf;
    padding: 120px 0;
}

.planContent .tl_popup01 {
    margin-bottom: 80px;
    line-height: 50px;
}

.planContent .tl_popup01 small {
    line-height: normal;
}

.planContent .tl_popup01 span span {
    display: block;
    font-size: 26px;
}

.planContent .tl_popup01 span span::before {
    content: "|";
    font-size: 23px;
    display: inline-block;
    transform: skew(20deg) translateY(-7%);
    padding-right: 30px;
}

.planContent .tl_popup01 span span::after {
    content: "|";
    font-size: 23px;
    display: inline-block;
    transform: skew(-20deg) translateY(-7%);
    padding-left: 30px;
}

.planContent .tl_popup01 b {
    font-size: 56px;
    padding: 0 10px;
}

.planContent .planList {
    display: flex;
    flex-wrap: wrap;
    gap: 80px 60px;
    margin-bottom: 60px;
}

.planContent .planList li {
    position: relative;
    width: calc(100% / 2 - 30px);
    background: var(--white);
    border: 4px solid var(--main-color01);
    box-sizing: border-box;
    transform: rotate(0.03deg);
}

.planContent .planList li .planImg {
    position: absolute;
    top: -60px;
    left: 50%;
    transform: translateX(-50%);
}

.planContent .planList li .number {
    font-size: 20px;
    font-weight: 600;
    color: var(--white);
    line-height: 18px;
    text-align: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--body-text-color);
    margin: 10px auto;
    position: relative;
    z-index: 10;
}

.planContent .planList li .number::after {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--white);
}

.planContent .planList li .number span {
    display: block;
    font-size: 14px;
    padding-top: 25px;
    margin-bottom: 2px;
}

.planContent .planList li h3 {
    font-size: 34px;
    color: var(--white);
    text-align: center;
    background: var(--main-color01);
    padding: 20px 0;
}

.planContent .planList li h3 b {
    color: var(--sub-color03);
}

.planContent .planList li .planPoint, 
.planContent .planList li .planCom {
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    margin: 30px 0;
}

.planContent .planList li .planPoint span, 
.planContent .planList li .planCom span {
    display: block;
    font-size: 16px;
    font-weight: 600;
    width: 260px;
    border-radius: 30px;
    margin: 0 auto 15px;
    padding: 6px 0;
}

.planContent .planList li .planPoint span {
    background: var(--sub-color01);
    color: var(--white);
}

.planContent .planList li .planCom span {
    border: 2px solid var(--body-text-color);
    position: relative;
}

.planContent .planList li .planCom span::before {
    content: "";
    background: url(./img/planCom_img.png) no-repeat;
    position: absolute;
    top: -2px;
    left: 20px;
    padding: 15px;
}

.planContent .planList li .planPrice {
    font-size: 22px;
    font-weight: 500;
    color: var(--white);
    line-height: 30px;
    text-align: center;
    background: #003953;
    padding: 30px 0 20px;
}

.planContent .planList li .planPrice .price2 {
    font-size: 30px;
    font-weight: 600;
}

.planContent .planList li .planPrice .price strong {
    font-size: 46px;
    font-weight: 600;
}

.planContent .planList li .planPrice .price small {
    display: inline;
    font-size: 16px;
    font-weight: 500;
    margin: 0 10px 0 3px;
}

.planContent .planList li .planPrice small {
    display: block;
    font-size: 14px;
    font-weight: normal;
}

.planContent .btn a::before {
    transform: rotate(90deg);
}

/*----- .comVoiceContent / .comWorksContent -----*/
.voiceContent, 
.worksContent {
    margin-top: 240px;
}

.worksContent {
    margin-bottom: 240px;
}

.voiceContent .inner.flex, 
.worksContent .inner.flex {
    max-width: 1200px;
    justify-content: space-between;
    gap: 30px;
    overflow: visible;
}

.worksContent .inner.flex {
    flex-flow: row-reverse;
}

.voiceContent .leftBox, 
.worksContent .leftBox {
    display: flex;
}

.worksContent .leftBox {
    flex-flow: row-reverse;
}

.voiceContent .leftBox h2, 
.worksContent .leftBox h2 {
    bottom: 60px;
    font-size: 42px;
    writing-mode: vertical-rl;
    text-indent: -1em;
    padding-top: 1em;
    transform: translateY(-60px);
}

.worksContent .leftBox h2 span {
    text-combine-upright: all;
}

.voiceContent .leftBox h2::after, 
.worksContent .leftBox h2::after {
    content: none;
}

.voiceContent .leftBox .text, 
.worksContent .leftBox .text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 330px;
    transform: translateY(60px);
}

.voiceContent .leftBox .text p, 
.worksContent .leftBox .text p {
    line-height: 40px;
    transform: rotate(0.03deg);
    margin-bottom: 20px;
}

.slide-container {
    width: 100%;
}
.slide-container .swiper-container {
    width: 100%;
    right: -10%;
}
.swiper-slide {
    width: 100% !important;
}
.slide-container .swiper-container img {
    width: 100%;
}

.voiceContent .slide-container {
    margin-right: calc(50% - 50vw);
}

.worksContent .slide-container {
    margin-left: calc(50% - 50vw);
}

@media screen and (max-width : 1100px) {
    .voiceContent .slide-container {
        margin-right: auto;
    }

    .worksContent .slide-container {
        margin-left: auto;
    }
}

.voiceContent .swiper-pagination {
    text-align: start;
}
.worksContent .swiper-pagination {
    text-align: end;
}

.voiceContent .swiper-pagination .swiper-pagination-bullet:first-of-type {
    margin-left: 50px !important;
}
.worksContent .swiper-pagination .swiper-pagination-bullet:last-of-type {
    margin-right: 50px !important;
}

/*----- .infoList -----*/
#top .blogContent {
    padding: 420px 0 0;
    position: relative;
    background: center top #fff url(img/img_blog.jpg) no-repeat;
    background-attachment: fixed;
}

.infoList {
    background: var(--white);
    padding: 120px 0;
}

.infoList .full.flex {
    align-items: baseline;
    gap: 50px;
}

.infoList .flex .leftBox {
    padding: 0 5px;
    /* min-height: 528px; */
}

.infoList > .flex > .rightBox {
    background: var(--white);
    flex-grow: 1;
    /* width: calc(50% + 7.8vw); */
}

.infoList > .flex > .leftBox .inBox {
    max-width: 810px;
    margin-left: auto;
    position: relative;
    height: 100%;
}

.infoList > .flex > .leftBox h2 {
    padding: 70px 0 20px;
    color: var(--body-text-color);
}

.infoList > .flex > .leftBox h2 small {
    color: var(--main-color01);
}

.infoList > .flex > .leftBox .imgLayer {
    position: absolute;
    inset: auto 0 50px;
    margin: 0 auto 0;
    max-width: calc(100% - 75px);
    height: auto;
    transform: translate(-75px, 0);
}

@media screen and (max-width : 1440px) {
    .infoList > .flex > .leftBox .imgLayer {
        transform: translate(0, 0);
    }
}

.infoList > .flex .rightBox > ul {
    display: block;
    margin-right: auto;
    max-width: 770px;
    padding: 70px 0 70px 50px;
    box-sizing: border-box;
}

.infoList ul {
    display: block;
}

.infoList li {
    display: block;
    margin: 0 0 20px;
    padding: 0 40px 20px 0;
    position: relative;
    border-bottom: 1px solid #d8d8d8;
}

.infoList li .inBox {
    display: flex;
    align-items: center;
    gap: 35px;
    overflow: hidden;
}

.infoList li .flex {
    gap: 25px;
    /* position: relative; */
    transition: 0.3s ease;
}

.infoList li time {
    display: block;
    font-size: 16px;
    font-weight: 400;
    transform: rotate(0.03deg);
}

.infoList li .cats {
    margin: 5px 0;
}

.infoList li a:not(.cat) {
    color: var(--body-text-color);
}

.infoList .rightBox {
    position: relative;
    flex: 1;
}

.infoList li::after {
    position: absolute;
    inset: 0 15px 0 auto;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    background-color: var(--main-color01);
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    transition: 0.3s ease;
    transform: translate(0, 0);
}

.infoList li:hover::after {
    transform: translate(50%, 0);
}


.infoList h3 {
    font-size: 16px;
    font-weight: normal;
    line-height: 1.625;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transform: rotate(0.03deg);
}

.infoList li .mainThumb {
    width: 220px;
    height: auto;
    aspect-ratio: 11 / 8;
    border-radius: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.0), 0 5px 2px rgba(0, 0, 0, 0.0);
    transition: 0.3s ease;
}

.infoList li:hover .mainThumb {
    opacity: 1;
    transform: scale(1.05) rotate(-5deg);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1), 0 5px 2px rgba(0, 0, 0, 0.1);
}

/*----- .menuContent -----*/
.menuContent {
    background: var(--sub-color01);
    padding: 120px 0;
}

.menuContent .menuCatList {
    display: none;
}

.menuContent .tl_popup01 {
    margin-bottom: 80px;
}

.menuContent .tl_popup01, 
.menuContent .tl_popup01 small {
    color: var(--white);
}

.menuContent .inner {
    overflow: visible;
}

#menu .menuContent { background: #fffedf; }
#menu .menuContent h2::after { background: var(--main-color01); }
#menu .menuContent .tl_popup01 { color: var(--body-text-color); }
#menu .menuContent .tl_popup01 small { color: var(--main-color01); }
#menu .menuContent { 
    position: relative;
    /* margin-top: 240px;  */
    padding: 0 0 120px 0; 
}
#menu .menuContent::before {
    content: '';
    position: absolute;
    top: -120px;
    left: 50%;
    transform: translateX(-50%);
    width: 1600px;
    height: 500px;
    background-color: #fffedf;
}

/*----- .menuCatListL -----*/
.menuCatList,
.menuCatList:has(>.menuCatListL) {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 80px;
    margin: 70px 0 0;
}


.menuCatList .menuCatListL:has(a):hover {
    outline: 10px solid #fff;
}

.menuCatList .menuCatListL a:hover {
    opacity: 1;
}

.menuCatList .menuCatListL .flex {
    color: var(--body-text-color);
}

.menuCatList .menuCatListL {
    display: block;
    background: var(--sub-color01);
    box-sizing: border-box;
    padding: 60px 0 180px;
    outline: 0px solid #fff;
    position: relative;
    transition: 0.3s ease;
}

.menuCatList .menuCatListL .flex {
    flex-direction: column;
}

.menuCatList .menuCatListL h2 {
    color: var(--white);
    font-size: 26px;
    font-weight: 700;
    position: absolute;
    inset: 0 0 auto;
    margin: 0 auto;
    box-sizing: border-box;
    transform: translateY(-50%);
    text-align: center;
    transition: 0.3s ease;
}

.menuCatList .menuCatListL h2 span {
    position: relative;
    background: var(--body-text-color);
    padding: 20px 30px;
}

.menuCatList .menuCatListL h2 span::after {
    position: absolute;
    inset: auto 0 1%;
    margin: 0 auto;
    content: "";
    width: 16px;
    height: 8px;
    background: var(--body-text-color);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    transform: translateY(100%);
}

.menuCatList .menuCatListL h2::after {
    content: none;
}

.menuCatList .menuCatListL a:hover h2 {
    background: var(--main-color01);
    opacity: 1;
}

.menuCatList .menuCatListL .inBox {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
}

.menuCatList .menuCatListL .inBox div {
    border: 4px solid var(--body-text-color);
}

.menuCatList .menuCatListL .inBox div.ico {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 330px;
    height: 220px;
    background: var(--main-color01);
}

.menuCatList .menuCatListL .inBox div.txt {
    background: var(--white);
    margin: 0 0 0 150px;
}

.menuCatList .menuCatListL .inBox div.txt p {
    line-height: 32px;
    padding: 80px 50px 80px 230px;
    transform: rotate(0.03deg);
}

.menuCatList .menuCatListL a:hover h2 .ico {
    opacity: 1 !important;
}

.menuCatList .menuCatListL .flex > figure {
    display: flex;
    justify-content: center;
}

.menuCatList .menuCatListL .flex > figure figure {
    margin: 0 20px 20px;
    border: 1px solid var(--sub-color02);
    max-width: 380px;
}

.menuCatList .menuCatListL figure img {
    width: 100%;
    height: auto;
    display: block;
}

.menuCatList .menuCatListL p {
    line-height: 1.625;
}

.menuCatListL_free01 {
    width: fit-content;
    margin: 50px auto 0;
}

/*----- .menuCatListS -----*/
.menuContent ul.menuCatList:has(>.menuCatListS) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    margin: 50px 0 50px;
}

.menuContent ul.menuCatList .menuCatListS {
    display: block;
    border: 2px solid var(--main-color01);
    border-radius: 6px;
    background: var(--white);
    box-sizing: border-box;
    padding: 28px;
    outline: 0px solid #fff;
    transition: 0.3s ease;
}

.menuContent ul.menuCatList .menuCatListS:hover {
    outline: 10px solid #fff;
}

.menuContent ul.menuCatList .menuCatListS a.flex {
    color: var(--body-text-color);
    gap: 20px;
}

.menuContent ul.menuCatList .menuCatListS figure {
    width: 200px;
    flex-shrink: 0;
}

.menuContent ul.menuCatList .menuCatListS figure img {
    width: 100%;
    height: auto;
    display: block;
}

.menuContent ul.menuCatList .menuCatListS h3 {
    font-size: 22px;
    font-weight: 700;
    color: var(--main-color01);
    line-height: 1.09;
    margin: 20px 0 10px;
}

.menuContent ul.menuCatList .menuCatListS p {
    line-height: 1.625;
}

.menuCatTab {
    display: flex;
    gap: 0 1px;
    position: relative;
    z-index: 2;
    transform: rotate(0.03deg);
}

.menuCatTab li {
    display: block;
    flex: 1;
}

.menuCatTab li a {
    --background: #777;
    display: block;
    padding: 18px;
    font-size: 18px;
    color: var(--white);
    background: var(--background);
    text-align: center;
    margin-top: 10px;
    position: relative;
    transition: 0.3s ease;
}

.menuCatTab li a::after {
    display: block;
    position: absolute;
    inset: auto 0 2px;
    margin: 0 auto;
    content: "";
    width: 18px;
    height: 8px;
    background: transparent;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    transform: translateY(100%);
}

.menuCatTab li a:hover::after,
.menuCatTab li a.active::after {
    background: var(--background);
}

.menuCatTab li a.active,
.menuCatTab li a:hover {
    --background: var(--body-text-color);
    padding-top: 23px;
    margin-top: 0;
    padding-bottom: 23px;
}

.menuCatTabContent {
    display: block;
    background: var(--white);
    position: relative;
    z-index: 1;
}

.menuCatTabContent > div > a,
.menuCatTabContent > div > a * {
    width: fit-content;
    margin: 0 auto;
}

.menuCatTabContent > *.active {
    position: relative;
    z-index: 2;
    opacity: 1;
    pointer-events: all;
}

.menuCatTabContent > * {
    position: absolute;
    background: var(--white);
    padding: 60px;
    border-radius: 0 0 6px 6px;
    inset: 0;
    z-index: 1;
    opacity: 0;
    pointer-events: none;
    transition: 0.3s ease;
}

#menu .menuCatTabContent {
    background: none;
}

#menu .menuCatTabContent > * {
    padding: 0;
    background: none;
}

.menuCatTabContent ul li {
    transition: 0.3s ease;
}

#menu .menuCatTabContent ul li {
    background: var(--white);
    border: 4px solid var(--body-text-color);
    padding: 30px 30px 40px;
}

#menu .menuCatTabContent table {
    margin-bottom: 30px;
}

#menu .menuCatTabContent li a {
    display: flex;
    flex-flow: column;
    height: 100%;
}

#menu .menuCatTabContent li a span.bottom {
    margin-top: auto;
}

#menu .menuCatTabContent li a span.bottom p.textCenter {
    transform: rotate(0.03deg);
}

.menuCatTabContent ul {

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    /* margin: 50px 0 50px; */
}

.menuContent ul.menuCatList .menuCatListS {
    display: block;
    background: var(--white);
    /* border: 2px solid var(--main-color01);
    border-radius: 6px;
    box-sizing: border-box;
    padding: 28px; */
}

.menuCatTabContent li a {
    color: var(--body-text-color);
    display: block;
    transition: 0.3s ease;
}

.menuCatTabContent li:hover {
    transform: scale(1.05);
}

.menuCatTabContent figure {
    width: 100%;
    /* border: 1px solid #d8d8d8; */
    aspect-ratio: 47 / 26;
    transition: 0.3s ease;
}

.menuCatTabContent figure img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* object-fit: cover; */
}

.menuCatTabContent figure img.blank {
    object-fit: cover;
}

.menuCatTabContent table,
.menuCatTabContent tbody,
.menuCatTabContent th,
.menuCatTabContent td {
    display: block;
}

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

.menuCatTabContent table {
    border-top: 0;
    border-bottom: 0;
}

.menuCatTabContent table tr th,
.menuCatTabContent table tr td {
    color: var(--body-text-color);
    border-top: 0;
    border-bottom: 2px solid var(--body-text-color);
    transform: rotate(0.03deg);
}

.menuCatTabContent table tr th {
    width: 20%;
    background: none;
    font-weight: 500;
}

.menuCatTabContent table tr td {
    width: 80%;
}

.menuCatTabContent table tr:first-of-type td {
    font-size: 20px;
    font-weight: 700;
    width: 100%;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    height: 100px;
    box-sizing: border-box;
}

.menu-marker img {
    display: block;
    max-height: 70px;
    width: auto;
}

.menuCatTabContent table tr:first-of-type th {
    display: none;
}

/*----- menu_detail -----*/
.menuSingle {
    padding-top: 70px;
}

#menu .menuSingle .tl_bar01 {
    padding: 20px 0 20px 40px;
}

#menu .worksContent {
    margin: 120px 0 0;
}

#menu .worksContent .worksList {
    margin-bottom: 0;
}

#menu .worksContent + .contactContent02 {
    margin-top: 0;
}

#menu .headerContent .teslaHeader {
    margin-top: 85px;
    background: center top url(img/bg_tesla_header.jpg) no-repeat;
    /* padding: 420px 0 0; */
    /* margin-bottom: 80px; */
    /* overflow: hidden; */
    position: relative;
    /* background-attachment: fixed; */
    overflow: hidden;
}

#menu .teslaHeader .full {
    color: var(--white);
    background: rgba(0, 0, 0, 0.7);
    padding: 30px;
}

#menu .teslaHeader .full h1 {
    margin-bottom: 0;
    text-align: center;
}

#menu .teslaHeader p {
    font-size: 40px;
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 1.25;
}

#menu .teslaHeader p strong {
    display: block;
    font-size: 18px;
    font-weight: 500;
    text-indent: 0.4em;
    letter-spacing: 0.4em;
    margin: 30px 0 20px;
    padding: 6px 10px 7px;
    background: #444;
    line-height: 1.25;
    text-align: center;
}

#menu .teslaHeader > .inner {
    margin-top: 500px;
    /* padding-bottom: 40px; */
    color: var(--white);
    position: relative;
    z-index: 2;
    overflow: visible;
    display: flex;
    gap: 30px;
}

#menu .teslaHeader > .inner::before {
    position: absolute;
    inset: 0 -100% auto;
    margin: 0 auto;
    content: "";
    display: block;
    width: 200vw;
    height: 100%;
    z-index: -1;
    background: var(--sub-color01);
}

#menu .teslaHeader > .inner .logo {
    display: block;
    margin-bottom: -40px;
    background: var(--white);
    transform: translateY(-80px);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2), 0 0 10px rgba(0, 0, 0, 0.2);
}

#menu .teslaHeader > .inner .logo img {
    display: block;
}

.headerContent_bar {
    /* position: absolute; */
    inset: auto 0 0;
    text-align: center;
    color: var(--white);
    background: var(--main-color01);
    line-height: 1;
    padding: 32px 30px;
}

.headerContent_bar p {
    font-size: 30px;
    font-weight: 500;
    letter-spacing: -0.05em;
}

.headerContent_bar p strong {
    font-size: 1.33em;
    font-weight: 500;
    /* letter-spacing: -0.05em; */
    display: inline-block;
    background: #bc190a;
    padding: 8px 20px 12px;
    margin: 0 15px;
    /* vertical-align: sub; */
}

#menu .mainContent {
    display: flex;
    gap: 60px;
}

#menu #main .mainContent .slider {
    overflow: hidden;
    width: 470px;
    flex-shrink: 0;
}

#menu #main .mainContent .slider button {
    z-index: 10;
    width: 30px;
    height: 30px;
}

#menu #main .mainContent .slider .slick-prev {
    left: 10px;
}

#menu #main .mainContent .slider .slick-next {
    right: 10px;
}

#menu #main .mainContent .slider .slick-prev::before,
#menu #main .mainContent .slider .slick-next::before,
#menu #main .mainContent .slider .slick-prev::after,
#menu #main .mainContent .slider .slick-next::after {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    transform: none;
}

#menu #main .mainContent .slider .slick-prev::after,
#menu #main .mainContent .slider .slick-next::after {
    background: var(--body-text-color);
    --mask: url(./img/svg_arrow_square01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

#menu #main .mainContent .slider .slick-prev::after {
    transform: scaleX(-1);
}

#menu #main .mainContent .slider .slick-prev::before,
#menu #main .mainContent .slider .slick-next::before {
    background: var(--white);
    transform: scale(0.75);
    mask-image: none;
    --mask-image: none;
}

#menu #main .mainContent .slider li img {
    max-width: 100%;
    max-height: 100%;
    display: block;
    object-fit: contain;
    object-position: center center;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}

#menu #main .mainContent .slider .slick-list {
    margin: 0;
}

#menu #main .mainContent .slider .slick .slick-slide {
    height: auto;
    background: var(--white);
    display: block;
}

#menu #main .mainContent .slider .slick .slick-slide .img {
    /* aspect-ratio: 47 / 34; */
    display: flex;
    justify-content: center;
    align-items: center;
}

#menu #main .mainContent .slider-nav {
    margin-left: -10px;
    margin-right: -10px;
}

#menu #main .mainContent .slider-nav li {
    margin: 20px 10px 0;
    width: 110px !important;
    height: 90px !important;
    background: var(--white);
    position: relative;
    cursor: pointer;
    opacity: 0.8;
    transition: 0.3s ease;
}

#menu #main .mainContent .slider-nav li img {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    object-fit: cover;
    border: 1px solid #d8d8d8;
}

#menu #main .mainContent .slider-nav li.slick-current {
    opacity: 1;
}

#menu #main .mainContent .slider-nav li::before {
    position: absolute;
    inset: 0;
    margin: auto;
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    /* width: calc(100% - 24px);
    height: calc(100% - 24px); */
    box-sizing: border-box;
    border: 2px solid transparent;
    transition: 0.3s ease;
    pointer-events: none;
}

#menu #main .mainContent .slider-nav li.slick-current::before {
    border: 2px solid var(--body-text-color);
}

#menu #main .mainContent .slider-nav .slick-track {
    display: flex;
    justify-content: center;
    transform: none !important;
}

#menu .mainContent .inBox:not(.slider) {
    width: 100%;
}

#menu .mainContent .inBox table,
#menu .mainContent .inBox tbody,
#menu .mainContent .inBox th,
.menuCatTabContent td {
    display: block;
}

#menu .mainContent .inBox table tr {
    display: flex;
    justify-content: space-between;
    transform: rotate(0.03deg);
}

#menu .mainContent .inBox table {
    /* margin-top: 40px; */
    border-top: 0;
    border-bottom: 0;
}

#menu .mainContent .inBox table tr th,
#menu .mainContent .inBox table tr td {
    color: var(--body-text-color);
    border-top: 0;
    border-bottom: 2px solid currentColor;
    width: 100%;
}

#menu .mainContent .inBox table tr th {
    width: 20%;
    background: none;
    font-weight: 500;
}

/* #menu #main .flex .inBox table tr td {
    width: 80%;
} */


#menu .mainContent .inBox table th,
#menu .mainContent .inBox table td {
    padding: 34px 20px;
    font-size: 18px;
}

#menu .mainContent .inBox table tr:not(.menu-model-number) th {
    display: none;
}

#menu .mainContent .inBox table tr.menu-cat td {
    border: 2px solid currentColor;
    text-align: center;
    padding: 14px 20px;
}

#menu .mainContent .inBox table tr.menu-marker td {
    font-size: 20px;
    font-weight: 400;
    width: 100%;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    height: 115px;
    box-sizing: border-box;
    padding-top: 50px;
}

#menu .mainContent .inBox table tr.menu-cat .ico {
    display: inline-block;
    background: currentColor;
    /* width: 48px;
    height: 39px; */
    margin-right: 15px;
    width: 37px;
    height: 30px;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    vertical-align: bottom;
}

#menu .mainContent .inBox table tr.menu-add td {
    padding: 40px 0;
    border: 0;
}

#menu .mainContent .inBox table td ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 auto;
}

#menu .mainContent .inBox table td li {
    display: block;
    border: 1px solid currentColor;
    padding: 10px;
    line-height: 1;
    background: var(--white);
    text-align: center;
    font-size: 16px;
}

#menu .mainContent .inBox table td li small {
    font-size: 0.75em;
    margin-right: 1em;
    vertical-align: 0.1em;
}

#menu .detailContent {
    margin: 60px 0;
}

#menu .detailContent dl,
#menu .detailContent dt,
#menu .detailContent dd {
    display: block;
}

#menu .detailContent dl {
    border-top: 1px solid var(--sub-color02);
    border-left: 1px solid var(--sub-color02);
    border-right: 1px solid var(--sub-color02);
}

#menu .detailContent dt,
#menu .detailContent dd {
    padding: 15px 20px;
    border-bottom: 1px solid var(--sub-color02);
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict;
}

#menu .detailContent dt {
    background: #eee;
    text-align: center;
    font-weight: 700;
}

#menu .detailContent dd {
    text-align: center;
    background: var(--white);
    padding: 20px 50px;
}

#menu .detailContent dd ul {
    margin: 0 auto;
    display: grid;
    /* grid-template-rows: repeat(3,minmax(0, 1fr));
    grid-auto-flow: column; */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    /* grid-auto-flow: column; */
}

#menu .detailContent dd ul li {
    text-align: left;
}

#menu .pointContent {
    margin: 80px 0;
}

.inner .pointContent:last-of-type {
    margin-bottom: 0;
}

.pointContent dl > div {
    display: grid;
    grid-template-areas:
        "dt figure"
        "dd figure"
        ". figure";
    place-items: start;
    border-bottom: 2px solid currentColor;
    padding-bottom: 40px;
    margin-bottom: 40px;
    transform: rotate(0.03deg);
}

.pointContent dl > div:last-of-type {
    margin-bottom: 0;
}

.pointContent dl > div dt {
    grid-area: dt;
}

.pointContent dl > div dt .number b {
    color: var(--main-color01);
}

.pointContent dl > div dt b {
    color: var(--sub-color02);
}

.pointContent dl > div dd {
    grid-area: dd;
    border: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

.pointContent dl > div figure {
    grid-area: figure;
    max-width: 400px;
}

.pointContent dl > div figure img {
    width: 100%;
    height: auto;
    display: block;
}

.pointContent dl dt {
    display: flex;
    justify-content: flex-start;
    align-items: start;
    /* align-items: center; */
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 1.346em;
}

.pointContent dl dd {
    border-bottom: 1px solid var(--sub-color02);
    padding-bottom: 30px;
    margin-bottom: 40px;
}

.pointContent dl dd b,
.pointContent dl dd strong {
    font-weight: 400;
    color: var(--main-color01);
}

.pointContent dl dd b {
    font-weight: 500;
    color: var(--body-text-color);
    background: linear-gradient(transparent 65%, #ffc8ce 50%);
}

.pointContent dl dd em {
    font-weight: 700;
    font-style: normal;
}

.pointContent .number {
    color: var(--main-color01);
    font-family: var(--en-font-family);
    font-size: 18px;
    font-weight: 700;
    border: 2px solid currentColor;
    line-height: 1;
    width: fit-content;
    padding: 6px 20px;
    margin-right: 30px;
    min-width: 188px;
    box-sizing: border-box;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background: var(--main-color02);
    /* position: absolute;
    top: 60px;
    right: 60px; */
}

.pointContent .number::before,
.pointContent .number::after {
    content: "";
    display: block;
    position: absolute;
    left: 25%;
    right: 0;
    bottom: 0;
    margin: 0 auto;
    width: 15px;
    height: 15px;
    background: var(--white);
    clip-path: polygon(100% 0, 0 0, 100% 100%);
    transform: translate(0, 95%);
}

.pointContent .number::before {
    background: var(--main-color01);
    transform: translate(-2px, 99%);
}

.pointContent .number small {
    font-size: 1em;
    margin-top: 0.1em;
}

.pointContent .number b {
    font-size: 30px;
    font-weight: 700;
    margin-left: 0.75rem;
}

#menu .specContent {
    transform: rotate(0.03deg);
}

#menu .specContent .tbl01 th {
    width: 27%;
}

#menu .specContent .tbl01 td {
    width: 73%;
}
#menu .specContent .tbl01 td p + p{
    margin-top: 1em;
}
#menu .introContent {
    text-align: center;
    margin: 80px 0;
}

#menu .introContent + .pointContent {
    padding-top: 80px;
}

#menu .introContent h2 {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.38;
    margin: 40px 0;
}

#menu .introContent h2 b {
    color: var(--main-color01);
    font-weight: 700;
}

#menu .introContent b {
    color: var(--main-color01);
    font-weight: 400;
}

#menu .notesContent {
    margin-top: 80px;
    font-size: smaller;
}

/* -----------------------------------------------------------
    #voice
----------------------------------------------------------- */
/*----- #voice.single -----*/
.voiceSingle {
    position: relative;
    background: #fffedf;
}

.voiceSingle .inner {
    z-index: 1;
    overflow: visible;
}

#voice.single .infoBox h1 b {
    background: var(--main-color01);
    padding: 0.555em 2em;
}

.voiceSingle .worksPhotosContent {
    padding-top: 60px;
}

.voiceSingle .worksPhotosContent::after {
    content: '';
    position: absolute;
    top: 0;
    width: 100%;
    height: 300px;
    background: var(--sub-color02);
    margin: 0 calc(50% - 50vw);
    padding: 0 calc(50vw - 50%);
    z-index: -1;
}

@media screen and (max-width : 1100px) {
    .voiceSingle .worksPhotosContent::after {
        margin: 0;
        padding: 0;
    }
}

#voice.single .worksPhotosContent ul {
    grid-template-columns: 2fr 1fr;
    gap: 60px;
}

#voice.single .worksPhotosContent.wpc02 ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

#voice.single .worksPhotosContent li {
    height: 420px;
}

#voice.single .worksPhotosContent.wpc02 li {
    height: 100%;
}

#voice.single .worksPhotosContent li span.img > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#voice .tl {
    margin: 25px 0 80px;
}

.single .worksPhotosContent + .voiceCstContent {
    margin-top: 60px;
}

.voiceCstContent > h2 {
    padding-top: 0;
    margin-bottom: 10px;
}

.voiceCstContent dt,
.voiceCstContent dd {
    padding: 1.111em 1.111em 1.111em 3.6111em;
}

.voiceCstContent dt {
    font-size: 18px;
    font-weight: 500;
    position: relative;
    border-bottom: 2px solid currentColor;
}

.voiceCstContent dt::before {
    position: absolute;
    display: block;
    content: "";
    inset: calc(0.3em * 1.8 + 1.111em) auto auto 1.111em;
    margin: 0;
    width: 30px;
    height: 10px;
    background: var(--main-color01);
    border-radius: 10px;
}

.voiceCstContent dd + dt {
    margin-top: 20px;
}

.voiceCstContent dd {
    padding: 40px 40px 0;
}

.voiceCstContent figure {
    display: block;
    margin: auto;
    width: fit-content;
}

.voiceCstContent figcaption {
    text-align: center;
    padding: 10px;
}

.voiceCstContent figure img {
    display: block;
    border-radius: 20px;
}




/* -----------------------------------------------------------
    #blog
----------------------------------------------------------- */
#blog .blogCategories {
    position: relative;
    margin-top: 70px;
    overflow: visible;
}

#blog .blogCategories h2 {
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 22px;
    font-weight: 500;
    color: #fff;
    background: var(--main-color01);
    margin: 0;
    padding: 10px 80px;
    /* border-radius: 40px; */
    z-index: 10;
}

#blog .blogCategories h2::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
    width: 64px;
    height: 57px;
    background: url(./img/svg_icon_blog.svg) no-repeat;
    background-size: 64px auto;
}

#blog .categories{
    display: block;
    border: 4px solid var(--main-color01);
    padding: 60px;
    margin-bottom: 80px;
}

#blog .categories .cats {
    display: flex;
    gap: 20px;
    margin: 0;
}

#blog .categories .cats .flex {
    flex-wrap: wrap;
    gap: 20px;
}

/*----- .blogList -----*/
.blogList {
    overflow: hidden;
    position: relative;
    background: var(--main-color02);
    /* margin: 80px 0; */
    margin: 0 0 80px;
}

#blog .blogList {
    background-color: var(--main-color01);
    margin: 0;
    padding: 60px 0 120px;
}

#blog .blogList .categories + ul {
    margin-top: 40px;
}

.blogList .inner {
    overflow: visible;
    box-sizing: content-box;
}

.blogList > .header {
    padding: 0 0 60px;
    border-bottom: 1px solid var(--sub-color02);
}

.blogList ul {
    width: 100%;
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}

.blogList ul .slick-slide {
    opacity: 1;
    height: auto;
}

.blogList li {
    padding: 20px 20px 70px;
    box-sizing: border-box;
    /* margin: 10px 0; */
    position: relative;
    border-right: 1px solid var(--sub-color02);
    word-break: break-all;
    word-wrap: break-word;
    transition: 0.3s ease;
}

.blogList ul > li {
    width: calc(100% / 3 - 27px);
    background-color: var(--white);
    border: 4px solid var(--body-text-color);
    padding: 0 0 70px;
}

.slider-multi .slick-slide > div li:nth-of-type(3n),
.blogList ul li:nth-of-type(3n) {
    /* border-right: 0; */
}

.blogList li a {
    color: var(--body-text-color);
    display: block;
    text-align: center;
}

.blogList li a:nth-of-type(2) {
    padding: 0 30px;
}

.blogList li:hover {
    transform: scale(1.05);
}

.blogList li figure {
    margin-bottom: 20px;
    transition: 0.3s ease;
}

.blogList li .mainThumb {
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 3 / 2;
}

.blogList li a:hover .mainThumb {
    opacity: 1 !important;
}

.blogList li a .time {
    padding: 0 20px;
}

.blogList li a .time time {
    color: #777;
}

#blog .blogList li .cats {
    display: block;
    border-top: 2px solid var(--body-text-color);
    border-bottom: 2px solid var(--body-text-color);
    margin: 15px 30px 0;
    padding: 10px 0 20px;
}

#blog .blogList li .cats .cat {
    padding: 7px 20px 8px;
    background: #efefef;
    border: 1px solid var(--body-text-color);
}

.blogList li h3 {
    font-size: 18px;
    font-weight: 700;
    text-align: left;
    border-bottom: 2px dotted #777;
    padding: 20px 0;
    transform: rotate(0.03deg);
}

.blogList .excerpt {
    display: block;
    text-align: left;
    padding: 20px 0 40px;
    transform: rotate(0.03deg);
}

.blogList li .bottom {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0 30px 30px;
    transform: rotate(0.03deg);
}

.blogList .btn {
    margin-top: 30px;
    margin-bottom: -10px;
}


/* -----------------------------------------------------------
    #works
----------------------------------------------------------- */
/*----- #works.single -----*/
.worksSingle {
    position: relative;
    background: #fffedf;
}

.worksSingle .inner {
    z-index: 1;
    overflow: visible;
}

.worksSingle .worksPhotosContent {
    margin-bottom: 100px;
    padding-top: 60px;
}

.worksSingle .worksPhotosContent::after {
    content: '';
    position: absolute;
    top: 0;
    width: 100%;
    height: 300px;
    background: #1685ec;
    margin: 0 calc(50% - 50vw);
	padding: 0 calc(50vw - 50%);
    z-index: -1;
}

@media screen and (max-width : 1100px) {
    .worksSingle .worksPhotosContent::after {
        margin: 0;
        padding: 0;
    }
}

.worksSingle .worksPhotosContent.wpc02 ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

#works .tl {
    margin: 25px 0 80px;
}

#works .tl p span{
    display: block;
}

#works.single .infoBox h1 b {
    color: #1685ec;
    background: none;
    margin-top: 1.111em;
}

#works.single .infoBox h1 small {
    color: var(--white);
}

#works.single .pointContent .inBox {
    background: var(--white);
    padding: 60px;
}

#works.single .pointContent {
    margin: 80px 0;
    transform: rotate(0.03deg);
}


/*----- .worksList -----*/
.worksList {
    overflow: hidden;
    position: relative;
    background: #1685ec;
    padding: 120px 15px;
}

.worksList .tl_popup01, 
.worksList .tl_popup01 small {
    color: var(--white);
}

#works .worksList {
    margin: 0;
    padding: 0;
    padding: 50px 0 120px;
}

#works .worksList ul {
    width: auto;
}

#works .worksList .categories + ul {
    margin-top: 40px;
    gap: 40px;
}

.worksList .inner {
    overflow: visible;
    /* padding: 20px; */
    box-sizing: content-box;
}

.worksList > .header {
    padding: 0 0 60px;
}

#voice .worksList h2 {
    padding-top: 40px;
    margin-bottom: 40px;
}

.worksList ul {
    width: 100%;
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}

.worksList ul .slick-slide {
    opacity: 1;
    height: auto;
    margin: 0 20px;
    background: var(--white);
    border: 4px solid var(--body-text-color);
    transform: rotate(0.03deg);
}

.worksList li {
    box-sizing: border-box;
    margin: 10px 0;
    position: relative;
    word-break: break-all;
    word-wrap: break-word;
    transition: 0.3s ease;
}

.worksList.slider li > .inBox {
    display: block;
    padding: 20px 20px 70px;
}

.worksList li > .inBox {
    display: block;
    padding: 20px 20px 70px;
    box-sizing: border-box;
}

.worksList ul > li {
    background: var(--white);
    border: 4px solid var(--body-text-color);
    width: calc(100% / 3 - 27px);
    transform: rotate(0.03deg);
}

.worksList li a {
    color: var(--body-text-color);
    display: block;
}

.worksList li:hover {
    transform: scale(1.05);
}

.worksList li figure {
    margin-bottom: 20px;
    transition: 0.3s ease;
}

.worksList li .mainThumb {
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 3 / 2;
}

.worksList li h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--body-text-color);
    text-align: left;
    word-break: break-all;
}

.worksList .post_detail {
    display: block;
    text-align: center;
    border-top: 2px solid var(--body-text-color);
    margin: 10px 0;
    padding: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.worksList .post_detail + .post_detail {
    border-top: 0;
    margin-top: -10px;
    border-bottom: 0;
}

.worksList .cats {
    margin: 0  0 30px;
}

.worksList .cats .cat {
    background: #efefef;
    border: 1px solid var(--body-text-color);
}

.worksList li a .time {
    margin-top: 30px;
    /* color: #999; */
    text-align: right;
}

.worksList li .bottom {
    position: absolute;
    display: block;
    right: 0;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0 30px 30px;
}

.worksList .btn {
    margin-top: 80px;
    margin-bottom: -10px;
}

.worksList.slider .slick-list {
    padding: 15px 0;
}

.worksList.slider .slick-arrows01 .slick-next {
    right: -5px;
}
.worksList.slider .slick-arrows01 .slick-prev {
    left: -5px;
}

/*----- .messageContent -----*/
.messageContent {
    background: #eaf8ff;
    padding: 120px 0;
}

#corporate .messageContent {
    background: none;
}

.messageContent .inner {
    overflow: visible;
}

.messageContent .flex {
    gap: 50px;
}

.messageContent h3 {
    font-size: 40px;
    font-weight: 800;
    line-height: 1.217;
    margin-bottom: 50px;
}

.messageContent h3 b {
    /* font-size: 1.15em; */
    color: var(--main-color01);
    font-weight: 800;
}

.messageContent p {
    line-height: 2;
    text-align: justify;
    letter-spacing: -0.025em;
    transform: rotate(0.03deg);
}

.messageContent p + p {
    margin-top: 1.5em;
}

.messageContent figure {
    max-width: 360px;
    flex-shrink: 0;
    margin: 50px 0 50px auto;
}

.messageContent figure img {
    width: 100%;
    height: auto;
    overflow: hidden;
    margin-bottom: 10px;
}

.messageContent figcaption {
    display: block;
    text-align: right;
    line-height: 1.33;
    transform: rotate(0.03deg);
}

.messageContent figcaption b {
    font-size: 18px;
    font-weight: 500;
}

.messageContent .inBox img.floatR {
    margin-left: 75px;
    margin-bottom: 75px;
}

/*----- .areaContent -----*/
.areaContent {
    padding: 120px 0;
}

.areaContent .wide_lg {
    padding: 0 100px;
    box-sizing: border-box;
}

.areaContent .flex {
    align-items: center;
    justify-content: stretch;
    align-items: stretch;
    gap: 0;
    border: 2px solid var(--main-color01);
    overflow: hidden;
    /* box-shadow: 0 0 10px rgba(0, 0, 0, 0.06), 0 0 10px rgba(0, 0, 0, 0.06); */
    /* border-radius: 6px; */
}

.areaContent .flex > * {
    flex-shrink: 0;
    /* width: 50%; */
}

.areaContent .flex .content {
    width: 46%;
    color: var(--white);
    background: var(--main-color01);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 50px;
    box-sizing: border-box;
}

.areaContent .flex h2 {
    flex-shrink: 0;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

.areaContent .flex h2 small {
    color: var(--white);
}

.areaContent .flex h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--body-text-color);
    background: var(--white);
    border-radius: 100vh;
    padding: 15px 50px;
    line-height: 1;
    margin: 10px 0 50px;
    transform: rotate(0.03deg);
}

.areaContent .flex p {
    font-size: 18px;
    line-height: 1.25;
    transform: rotate(0.03deg);
    /* margin: 30px 0 30px; */
}

.areaContent .flex p strong {
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    display: block;
    margin-bottom: -10px;
}

.areaContent .flex figure {
    width: 54%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 40px 0;
    box-sizing: border-box;
    background: var(--white);
}

.areaContent .flex figure img {
    max-width: 100%;
    height: auto;
}

/*----- .slider -----*/
.slick:not(.slick-initialized) {
    opacity: 0;
    transition: 0.3s ease;
}

.slick.slick-initialized {
    opacity: 1;
}

.slider .inner {
    overflow: visible;
}

.slider .slick-track {
    display: flex !important;
    gap: 0;
    align-items: stretch;
}

.slider .slick-slide {
    opacity: 1 !important;
}

.slider-multi .slick-slide > div {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.slider a:hover img {
    opacity: 1 !important;
}

.slider .slick-arrows01 .slick-prev, 
.slider .slick-arrows01 .slick-next {
    width: 50px;
    height: 50px;
    background: var(--body-text-color);
    border-radius: 50%;
    box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.15);
}

.slider .slick-arrows01 .slick-prev {
    left: 0;
    z-index: 2;
}

.slider .slick-arrows01 .slick-next {
    right: 0;
    z-index: 2;
}

.slider .slick-arrows01 .slick-prev::before,
.slider .slick-arrows01 .slick-next::before {
    content: "";
    display: block;
    position: absolute;
    width: 13px;
    height: 21px;
    background: var(--white);
    opacity: 1;
    --mask: url(./img/svg_arrow10.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}

.slider .slick-arrows01 .slick-prev::before {
    transform: translateX(-50%)  translateY(-50%) scaleX(-1);
}

.slider .slick-arrows01 .slick-prev:hover::before,
.slider .slick-arrows01 .slick-next:hover::before {
    opacity: 1;
    background: var(--body-text-color)
}

.slider .slick-arrows01 .slick-prev:hover,
.slider .slick-arrows01 .slick-next:hover {
    background: var(--white);
}

/*----- .blogList -----*/
.blogList {
    overflow: hidden;
}

.blogList .inner {
    overflow: visible;
    box-sizing: content-box;
}

/*----- .voiceList -----*/
.voiceList {
    margin: 80px 0 0;
    padding-bottom: 120px;
}

#voice .voiceList {
    margin-top: 0;
    background: #fffedf;
}

.voiceList .inner {
    overflow: visible;
    /* padding: 20px; */
    box-sizing: content-box;
}

.voiceList h2 {
    padding-top: 80px;
}

#voice .voiceList h2 {
    padding-top: 40px;
    margin-bottom: 40px;
}

.voiceList ul {
    width: 100%;
    display: flex;
    gap: 0;
    /* width: 1100px; */
}

#voice .voiceList ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 -20px 25px;
    padding-top: 30px;
    width: auto;
}

.slick-track {
    display: flex !important;
    gap: 0;
}

.voiceList ul .slick-slide {
    opacity: 1;
    height: auto;
}

.voiceList li {
    background: var(--white);
    text-align: center;
    padding: 30px 30px 145px;
    border: 4px solid var(--body-text-color);
    box-sizing: border-box;
    margin: 20px;
    word-wrap: break-word;
    transition: 0.3s ease;
    position: relative;
    transform: rotate(0.03deg);
    transition: 0.3s ease;
}

.voiceList li a {
    color: var(--body-text-color);
    display: block;
}

.voiceList .btn_outline span {
    min-width: 200px;
}

.voiceList li:hover {
    transform: scale(1.05);
}

.voiceList li figure {
    margin-bottom: 20px;
}

.voiceList li .mainThumb {
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 3 / 2;
}

.voiceList li h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--body-text-color);
    text-align: left;
}

.voiceList .post_detail {
    display: inline-block;
    color: var(--white);
    text-align: center;
    background: var(--main-color01);
    margin: 10px 0;
    padding: 7px 45px;
    overflow: hidden;
}

.voiceList .post_detail b {
    display: block;
}

.voiceList .post_detail b span + span {
    margin-left: 1em;
}

.voiceList .post_detail + .post_detail {
    border-top: 0;
    margin-top: -10px;
}

.voiceList .cats {
    text-align: left;
    margin: 10px 0;
}

.voiceList .cats .cat {
    background: #efefef;
    border: 1px solid var(--body-text-color);
}

.voiceList li a .time {
    margin-top: 25px;
    color: #999;
    text-align: right;
}

.voiceList li .bottom {
    /* margin-top: 20px; */
    position: absolute;
    display: block;
    right: 0;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0 30px 30px;
}

.voiceList .btn {
    margin-top: 10px;
}

/* -----------------------------------------------------------
    #points
----------------------------------------------------------- */
#points .pointsContent .pointsList {
    gap: 60px;
}

#points .pointsContent .pointsList li {
    width: 100%;
    padding: 50px;
}

#points .pointsContent .pointsList li h3 {
    font-size: 40px;
}

#points .pointsContent .pointsList li .number {
    font-size: 80px;
    left: 40px;
}

#points .pointsContent .pointsList li .number::after {
    top: 80px;
    background-size: 180px;
    padding: 50px;
}

#points .pointsContent .pointsList li p {
    padding: 0 70px;
}

#points .pointsContent .pointsList li div.pointsImg {
    text-align: center;
    padding: 40px;
    margin-top: 50px;
    background: #efefef;
}

/* -----------------------------------------------------------
    #corporate
----------------------------------------------------------- */
#corporate .lead {
    margin: 40px 0;
}

.leadContainer .containerList {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 60px;
    transform: rotate(0.03deg);
}

.leadContainer .containerList li a {
    display: flex;
    align-items: center;
    position: relative;
    color: var(--body-text-color);
    width: 260px;
    padding: 0 0 20px 20px;
    border-bottom: 2px solid currentColor;
}

.leadContainer .containerList li a::after {
    content: "";
    position: absolute;
    right: 20px;
    width: 8px;
    height: 14px;
    transform: rotate(90deg);
    transition: 0.3s ease;
    background-color: currentColor;
    --mask: url(./img/svg_arrow10.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
}

.leadContainer .containerList li a:hover::after {
    transform: rotate(90deg) translateX(5px);
}

#corporate table {
    margin: 60px 0 0;
}

#corporate table th {
    width: 27%;
}

#corporate table td span {
    display: block;
    font-weight: 600;
    margin-top: 20px;
}
#corporate table td span:first-child {
    margin-top: 0;
}

.corporateOutline {
    background: #eaf8ff;
    padding: 120px 0;
}

.corporateOutline table {
    transform: rotate(0.03deg);
}

.corporatePhotos ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: space-between;
    align-content: space-between;
    gap: 40px 40px;
}

.corporatePhotos li figure img {
    width: 100%;
    height: auto;
}

#corporate .licenceContent {
    margin: 60px 0;
}

#corporate .shopContent {
    padding: 120px 0;
    background: var(--main-color01);
}

#corporate .messageContent figure {
    margin-bottom: 0;
}

.shopContent .tl_popup01 {
    margin-bottom: 100px;
}

.shopContent .tl_popup01,  
.shopContent .tl_popup01 small {
    color: var(--white);
}

.shopContent .shopContentList {
    display: flex;
    flex-flow: column;
    gap: 100px;
}

.shopContent .shopContentList li {
    position: relative;
    text-align: center;
    padding: 90px 60px 60px;
    background: var(--white);
    border: 6px solid #c2eeff;
    transform: rotate(0.03deg);
}

.shopContent .shopContentList li h3 {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    font-size: 26px;
    color: var(--white);
    padding: 10px 50px;
    background: var(--sub-color01);
}

.shopContent .shopContentList li p {
    font-size: 18px;
    line-height: 36px;
}

.shopContent .shopContentList .shopContentImg {
    display: flex;
    justify-content: space-between;
    margin-top: 60px;
}

.shopContent .shopContentList .shopContentImg li {
    padding: 0;
    border: none;
    transform: rotate(0);
}

.shopContent span .tl_bar01 {
    font-size: 18px;
    margin-bottom: -1px;
    padding: 20px 0 16px;
}

.shopContent iframe {
    width: 100%;
    height: 400px;
    border: 4px solid var(--body-text-color) !important;
    box-sizing: border-box;
}

.groupContent {
    background: #fffedf;
    padding: 120px 0;
}

.groupContent .inner {
    transform: rotate(0.03deg);
}

.groupContent .tl_popup01 {
    margin-bottom: 60px;
}

.groupContent a {
    text-decoration: none !important;
    color: var(--body-text-color);
}

.division {
    border: 2px solid var(--body-text-color);
}

.division .divisionTtl {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #e4d0ab;
    padding: 30px 0;
    border-bottom: 2px solid var(--body-text-color);
}

.division .divisionTtl p {
    font-size: 20px;
    font-weight: 600;
    margin-right: 70px;
}

.division .divisionList {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 60px;
    background: var(--white);
    padding: 30px 50px;
}

#corporate .groupContent .groupTbl .tbl01 {
    margin-top: 30px;
}

#corporate .groupContent .groupTbl th {
    color: var(--body-text-color);
    width: 40%;
    background: #efefef;
}

#corporate .areaContent {
    padding: 120px 0;
}

/*----- .shopAccess -----*/
#main ul.shopAccess {
    margin-top: 10px;
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(2, 1fr);
}

#main ul.shopAccess > li {
    background: none !important;
    padding: 0 !important;
}

#main ul.shopAccess > li .bandTitle03 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 20px;
    padding: 6px 25px 8px;
}

.shopAccess iframe {
    width: 100%;
    display: block;
}

.corporateImages ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-content: space-between;
    align-content: space-between;
    gap: 30px 20px;
}

.corporateImages li figcaption {
    padding-top: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.923;
}

.corporateImages li figure img {
    width: 100%;
    height: auto;
}

/* -----------------------------------------------------------
    staff
----------------------------------------------------------- */
/*----- .staffList -----*/
.staffList {
    padding: 0 50px 200px 0;
    display: flex;
}

.staffList .leftBox {
    min-width: 360px;
    background: var(--body-text-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.staffList .leftBox .tl_popup01, 
.staffList .leftBox .tl_popup01 small {
    color: var(--white);
}

.staffList .leftBox .btn a {
    color: var(--body-text-color) !important;
    background: var(--white);
}

.staffList .leftBox .btn a:hover {
    opacity: 0.8 !important;
}

.staffList .leftBox .btn a::before {
    transition: 0.3s ease;
}

.staffList .leftBox .btn a:hover::before {
    transform: translateX(10px);
}

.staffList .rightBox {
    width: calc(100% - 360px);
    padding-left: 35px;
}

.staffList .rightBox .slick-slider {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    width: 100%;
}

.staffList ul:not(.slick) {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    margin: 10px 0 120px;
}

.staffList ul:not(.slick) li {
    width: calc(100% / 3 - 37px);
    box-sizing: border-box;
    position: relative;
    box-shadow: 10px 10px 0px 0px #efefef;
    transition: 0.3s ease;
}

.staffList ul:not(.slick) li:nth-of-type(2n-1)::before {
    position: absolute;
    content: "";
    display: block;
    width: 200%;
    height: 1px;
    left: 0;
    bottom: -50px;
}

.staffList ul:not(.slick) li:nth-last-of-type(-n+2)::before {
    display: none;
}


.staffList ul:not(.slick) li > a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* padding: 0 0 20px; */
    position: relative;
}

.staffList ul:not(.slick) li:hover {
    transform: scale(1.05);
}

.staffList ul:not(.slick) li figure {
/*    width: 346px;*/
    width: 340px;
    height: auto;
    max-width: 100%;
    margin: 0 auto 20px;
}

.staffList li .cats .cat,
#staff .cats .cat {
    /* .staffList h3 small { */
    font-size: 14px;
    font-weight: 500;
    color: var(--white) !important;
    background: var(--body-text-color);
    display: block;
    width: fit-content;
    padding: 10px 20px;
    margin: 0 auto;
}

.staffList li .cats .cat {
    text-align: center;
    line-height: 20px;
}

#staff .staffList li .cats .cat {
    line-height: 15px;
}

.staffList h3 {
    text-align: center;
    line-height: 1;
    margin: 20px 0 25px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.25;
    color: var(--body-text-color);
    transform: rotate(0.03deg);
}

.staffList .mainThumbWrap,
#staff .mainThumbWrap {
    aspect-ratio: 306 / 284;
    overflow: hidden;
    margin-bottom: 25px;
}

.staffList a:hover figure img {
    opacity: 1 !important;
}

.staffList .mainThumb,
#staff .mainThumb {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 0%;
    /* --mask: url(./img/svg_polygon01.svg); */
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: 100%;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: 100%;
    mask-image: var(--mask);
}

.staffList .slick-slider .slick-list {
    padding: 20px 0 20px !important;
    margin: -20px 0 -10px;
}

.staffList.slider li {
    margin: 0 25px;
    background: var(--white);
    box-shadow: 10px 10px 0px 0px #efefef;
    transition: 0.3s ease;
}

.staffList.slider li:hover {
    transform: scale(1.05);
}

.staffList.slider li .cats a {
    color: var(--white);
    background: var(--black);
}

/*----- #staff ---- */
#staff .staffList .inner {
    overflow: visible;
}

#staff .staffSingle {
    position: relative;
}

#staff .staffSingle::after {
    content: '';
    position: absolute;
    top: 0;
    width: 100%;
    height: 600px;
    background: var(--main-color01);
    z-index: -1;
}

#staff .staffList {
    padding: 0;
}

/*----- #staff.single -----*/

#staff.single .mainContent {
    position:relative;
    margin: 100px 60px 120px auto;
    background: #efefef;
}

#staff.single .mainContent > .inBox {
    display: flex;
    justify-content: space-between;
    text-align: center;
}

#staff.single .mainContent > .inBox .leftBox {
    margin-top: 60px;
    margin-left: 60px;
    transform: rotate(0.03deg);
}

#staff.single .mainContent .mainThumbWrap {
    width: 100%;
    max-width: 530px;
    height: 600px;
    margin-bottom: 0;
    transform: translate(60px, -60px);
}

#staff.single .mainContent h1 {
    font-size: 36px;
    font-weight: 600;
    margin-top: 30px;
}

#staff.single .mainContent .cats .cat {
    font-size: 20px;
    font-weight: 400;
    min-width: 380px;
    box-sizing: border-box;
    padding: 14px 30px;
}

#staff.single .cats {
    margin-top: 0;
}

#staff.single .cats .cat {
    margin-bottom: 0;
}

#staff.single .mainContent .cats .cat:hover {
    opacity: 1;
}

#staff .mainContent .alphabet {
    color: var(--main-color01);
    font-size: 16px;
    text-transform: uppercase;
}

#staff.single .mainContent .msg {
    line-height: 32px;
    text-align: left;
    margin: 50px 0;
}

#staff.single .detailContent {
    padding: 0 60px 60px;
    transform: rotate(0.03deg);
}

#staff.single .detailContent dl,
#staff.single .detailContent dt,
#staff.single .detailContent dd {
    display: block;
}

#staff.single .detailContent dt,
#staff.single .detailContent dd {
    padding: 15px 20px;
    overflow-wrap: anywhere;
    word-break: break-all;
    line-break: strict;
}

#staff.single .detailContent dt {
    font-weight: 700;
    color: var(--white);
    text-align: center;
    background: #777;
    border: 2px solid var(--body-text-color);
}

#staff.single .detailContent dd {
    text-align: left;
    background: var(--white);
    padding: 20px 50px;
    border-left: 2px solid var(--body-text-color);
    border-right: 2px solid var(--body-text-color);
}

#staff.single .detailContent dd:last-of-type {
    border-bottom: 2px solid var(--body-text-color);
}

#staff.single .detailContent dd ul {
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

#staff.single .detailContent dd ul li {
    text-align: left;
}

#staff.single .bgGray {
    padding: 120px 0;
}

#staff.single .bgGray .tl_popup01 {
    margin-bottom: 70px;
}

#staff.single .bgGray .tl_popup01, 
#staff.single .bgGray .tl_popup01 small {
    color: var(--white);
}

#staff.single .staffList {
    padding: 25px 10px 0;
}

#staff.single .staffList .rightBox {
    width: 100%;
    padding-left: 0;
}


/*----- .contactContent -----*/
.contactContent {
    padding: 120px 0;
    border-radius: 60px;
}

.topMainv + .contactContent,
.messageContent + .contactContent {
    margin-top: 0;
}

.contactContent .inner {
    position: relative;
    overflow: visible;
}

.contactContent h2 .imgLayer {
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform: translate(-57%, -87%);
}

.contactContent .contactBox {
    color: var(--white);
    max-width: 620px;
    margin: 0 auto 60px;
    background: var(--body-text-color);
    border-radius: 100px;
}

.contactContent .contactBox .inBox {
    position: relative;
    text-align: center;
    padding: 40px 60px;
}

.contactContent .contactBox .lst_checkbox01 {
    display: flex;
    justify-content: center;
    margin-bottom: 15px;
}

.contactContent .contactBox .inBox .btn_ico {
    margin-bottom: 10px;
}

.contactContent .contactBox .inBox h3 {
    color: var(--main-color01);
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.contactContent .contactBox .imgLayer {
    position: absolute;
    bottom: 0;
    right: 85px;
}

.contactContent .contactBox .imgLayer p {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.125;
    position: relative;
    margin-right: -60px;
    margin-left: 60px;
}

.contactContent .contactBox .imgLayer p::before,
.contactContent .contactBox .imgLayer p::after {
    display: block;
    position: absolute;
    content: "";
    height: 120%;
    width: 4px;
    background: var(--sub-color01);
    border-radius: 2px;
    top: 0;
    bottom: 0;
    margin: auto 0;
}

.contactContent .contactBox .imgLayer p::before {
    left: 0;
    transform: skewX(25deg);
}

.contactContent .contactBox .imgLayer p::after {
    right: 0;
    transform: skewX(-25deg);
}

.contactContent .contactBox .inBox p {
    font-size: 16px;
}

#main .contactContent .contactBox .btn_ico {
    position: relative;
    text-decoration: none;
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    padding: 28px 10px 28px 45px;
    width: 360px;
    border-radius: 40px;
    transition: 0.3s ease;
}

#main .contactContent .contactBox .btn_ico + .btn_ico {
    margin-left: 40px;
}

#main .contactContent .contactBox a img {
    left: 40px;
}

#main .contactContent .contactBox a:hover {
    opacity: 0.7;
}

#main .contactContent .contactBox .tel {
    display: flex;
    gap: 50px;
    align-items: center;
}

.contactContent .contactBox .tel .tel-txt {
    text-align: left;
    letter-spacing: normal;
    transform: rotate(0.03deg);
}

.contactContent .contactBox .tel span.tel-link {
    color: var(--white);
    font-size: 40px;
    padding: 0;
    margin: 0;
}

.contactContent .contactBox .tel span {
    display: block;
}

.contactContent .contactBox .tel span.tel-open {
    font-size: 14px;
    font-weight: 400;
    margin-top: 5px;
}


/*----- .contactContent02 -----*/
.contactContent02 {
    color: var(--white);
    /* padding-bottom: 50px; */
}

.worksContent + .contactContent02 {
    margin-top: 80px;
}

.contactContent02 .inner {
    position: relative;
    overflow: visible;
}

.contactContent02 h2 {
    text-align: center;
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    color: var(--white);
    margin-bottom: 40px;
}

.contactContent02 h2 b {
    display: inline-block;
    background: #bc190a;
    padding: 3px 8px 7px;
    margin: 0 5px;
    font-weight: 700;
}

#main .contactContent02 h2 small {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--white);
    font-family: var(--en-font-family);
    margin-bottom: 45px;
}

#main .contactContent02 h2 small::before,
#main .contactContent02 h2 small::after {
    content: "|";
    font-family: var(--en-font-family);
    font-size: 14px;
    display: inline-block;
}

#main .contactContent02 h2 small::before {
    transform: skew(20deg) translateY(-10%);
    padding-right: 20px;
}

#main .contactContent02 h2 small::after {
    transform: skew(-20deg) translateY(-10%);
    padding-left: 20px;
}

.contactContent02 h2 + p {
    font-size: 20px;
    text-align: center;
    margin-bottom: 25px;
}


.contactContent02 {
    text-align: center;
    position: relative;
    background: center bottom #fff url(img/img_contactContent.jpg) no-repeat;
    background-size: cover;
    background-attachment: fixed;
    padding-top: 50px;
}

.contactContent02 h2 {
    font-size: 100px;
    font-weight: 800;
    line-height: normal;
    margin: 0;
    padding: 0;
}

.contactContent02 h2::after {
    content: none;
}

.contactContent02 .closed {
    display: inline-block;
    background: var(--body-text-color);
    padding: 5px 30px;
    margin-bottom: 90px;
    border-radius: 40px;
    transform: rotate(0.03deg);
}

.contactContent02 .contactList {
    display: flex;
    width: 100%;
    background: var(--body-text-color);
}

.contactContent02 .contactList li {
    display: flex;
    align-items: center;
    width: calc(100% / 3);
    border-right: 1px solid var(--white);
}

#top .contactContent02 .contactList li, 
#points .contactContent02 .contactList li { 
    width: calc(100% / 4); 
}

.contactContent02 .contactList li:last-of-type {
    border-right: none;
}

.contactContent02 .contactList li a {
    position: relative;
    display: flex;
    flex: 1;
    justify-content: center;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-size: clamp(14px,1vw,20px);
    color: var(--white);
    text-align: left;
    transform: rotate(0.03deg);
    padding: 50px 20px;
}

#top .contactContent02 .contactList li a, 
#points .contactContent02 .contactList li a {
    justify-content: left;
}
#top .contactContent02 .contactList li:first-of-type a, 
#points .contactContent02 .contactList li:first-of-type a {
    justify-content: center;
}

.contactContent02 .contactList li.contactList_tel a {
    cursor: default;
    justify-content: center;
}

.contactContent02 .contactList li.contactList_tel a:hover, 
.contactContent02 .contactList li.contactList_tel a:hover img {
    opacity: 1;
}

.contactContent02 .contactList li a::before {
    position: absolute;
    right: 20px;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    background-color: currentColor;
    --mask: url(./img/svg_arrow01.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-image: var(--mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    transition: 0.3s;
}

.contactContent02 .contactList li.contactList_tel a::before {
    content: none;
}

.contactContent02 .contactList li.contactList_simu a::before {
    transform: rotate(90deg);
}

.contactContent02 .contactList li a:hover::before {
    transform: translateX(10px);
}

.contactContent02 .contactList li.contactList_simu a:hover::before {
    transform: rotate(90deg) translateX(10px);
}

.contactContent02 .contactList li a p span {
    font-size: 40px;
    font-size: clamp(20px,2vw,40px);;
    font-weight: 700;
    line-height: 40px;
}

/*----- 404 -----*/
#not-found .single-content .btn {
    margin-top: 2rem;
}

/* -----------------------------------------------------------
    form
----------------------------------------------------------- */
#main .formBox{
    background: #efefef;
    padding: 80px 0;
}

#main .formBox table {
    border-right: none !important;
    /* border-top: 1px solid var(--black);
    border-bottom: 1px solid var(--black); */
    max-width: min(100%, 900px);
    margin-left: auto;
    margin-right: auto;
}

.formBox table th,
.formBox table td {
    border-top: none;
    border-bottom: none;
    line-height: 1.3;
    vertical-align: top;
}

.formBox table tr:first-of-type th,
.formBox table tr:first-of-type td {
    transform: rotate(0.03deg);
    border-top: none;
}

.formBox table th {
    width: 30%;
    font-weight: 600;
    color: var(--body-text-color);
    vertical-align: middle;
    background: none;
    position: relative;
    line-height: 1;
    padding: 29px 20px;
    transform: rotate(0.03deg);
    /* background: #eee; */
}

.formBox table td {
    position: static;
    padding: 18px 20px;
    vertical-align: middle;
}

.formBox table th p,
.formBox table td p {
    margin-bottom: 0 !important;
}

.formBox table th span {
    display: block;
    font-size: 14px;
    font-weight: 400;
    background: var(--body-text-color);
    color: var(--white);
    margin-left: 1rem;
    padding: 5px;
    line-height: 1;
    display: inline-block;
    /* position: absolute;
    inset: 0 0 0 auto; */
    height: fit-content;
}

.formBox table th span.req {
    background: var(--body-text-color);
}

.formBox input:not(input[type="checkbox"]):not(input[type="submit"]):not(input[type="radio"]),
.formBox select,
.formBox textarea {
    font-size: 16px;
    padding: 0 5px;
    width: 380px;
    border: 2px solid var(--body-text-color);
    box-sizing: border-box;
    /* border-boxを指定する際は環境によっては見えなくなるのでheightを指定しないか、十分なheightを指定する */
    background: #fff;
    border-radius: 0;
    width: 100%;
}

.formBox input:not(input[type="checkbox"]):not(input[type="submit"]):not(input[type="radio"]),
.formBox select {
    min-height: 40px;
}

.formBox input:not(input[type="checkbox"]):not(input[type="submit"]):not(input[type="radio"])::placeholder,
.formBox textarea::placeholder {
    color: var(--sub-color02);
    font-weight: 500;
}

.formBox input[name="your-name"],
.formBox input[name="your-tel"],
.formBox input[name="your-email"] {
    width: 380px !important;
    max-width: 100%;
}

.formBox input[name="your-add"] {
    width: 98% !important;
}

.formBox select {
    width: 380px;
}

.formBox textarea {
    width: 100%;
}

.formBox .accept {
    border-radius: 6px;
    text-align: center;
    padding: 20px;
    /* margin: 30px 0; */
    line-height: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.formBox .accept .wpcf7-list-item-label {
    font-size: 16px;
    font-weight: 500;
}

.formBox .accept input[type="checkbox"] {
    vertical-align: text-bottom;
}

.formBox .accept small {
    display: inline-block;
    line-height: 1;
    font-size: 14px;
    margin-top: 0.35em;
}

.formBox .accept small a {
    color: var(--main-color01);
}


.formBox input[type="checkbox"],
.formBox input[type="radio"] {
    transform: scale(1.5);
    margin: 0 6px 0 0;
}

input[type="radio"] {
    opacity: 0;
    visibility: hidden;
    position: absolute;
}

.wpcf7-list-item.first {
    margin-left: 0;
}

span.wpcf7-list-item-label {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
}

span.wpcf7-list-item-label::before {
    display: block;
    content: "";
    border-radius: 50%;
    border: 2px solid var(--body-text-color);
    width: 16px;
    height: 16px;
    background: var(--white);
    margin-right: 10px;
}

span.wpcf7-list-item-label::after {
    display: block;
    position: absolute;
    content: "";
    border-radius: 50%;
    width: 12px;
    height: 12px;
    background-color: var(--body-text-color);
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    display: none;
}

input[type="radio"]:checked + span.wpcf7-list-item-label::after {
    display: block;
}

.formBox input[type="submit"],
.searchBox input[type="submit"] {
    border: 0;
    display: block;
    background: var(--main-color01);
    color: var(--white) !important;
    font-size: 18px;
    font-weight: 500;
    width: 290px;
    outline: 2px solid transparent;
    box-sizing: border-box;
    margin: 20px auto;
    padding: 27px 0;
    /* align-items: center; */
    line-height: 1;
    position: relative;
    border-radius: 35px;
    text-decoration: none;
    transition: 0.3s ease;
    transition: 0.3s ease;
    cursor: pointer;
}

.formBox .submit {
    text-align: center;
}

.formBox input[type="submit"]:disabled {
    color: var(--white) !important;
    cursor: default;
    background: #ccc;
    box-shadow: 0 3px #bbb;
    transition: all 0.3s ease;
}

.formBox .wpcf7-spinner {
    display: none !important;
	margin: 5px auto 0;
}
.submitting .formBox .wpcf7-spinner {
    display: block !important;
}

.formBox .wpcf7-list-item-label {
    font-weight: 600;
    vertical-align: text-bottom;
}

.formBox input[readonly="readonly"] {
    background: #f3f3f3 !important;
    color: #555;
    width: 100% !important;
}

.formBoxNotes {
    padding-left: 1em;
    text-indent: -1em;
}

.formBox p {
    font-size: 14px;
    text-align: center;
    padding-top: 25px;
    transform: rotate(0.03deg);
}

.formBox p a {
    color: var(--body-text-color);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.wpcf7-not-valid-tip {
    transform: rotate(0.03deg);
}

/* -----------------------------------------------------------
    .single 投稿系共通
----------------------------------------------------------- */
.single-content {
    margin: 20px 0 0;
}

.single .infoBox {
    margin-bottom: 20px;
}

.infoBox .cats .cat {
    background: #efefef;
    border: 1px solid var(--body-text-color);
}

.infoBox h1 {
    position: relative;
    font-size: 30px;
    font-weight: 600;
    padding: 1.266em 1.666em;
    margin: 20px 0;
    line-height: 1.2;
    transform: rotate(0.03deg);
}

.infoBox h1::before, 
.infoBox h1::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 4px;
    background: currentColor;
    border-radius: 2px;
} 

.infoBox h1::before { top: 0; }
.infoBox h1::after { bottom: 0; }

.infoBox h1 b {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    font-size: 0.6em;
    font-weight: 700;
    text-align: center;
    line-height: 1;
    width: fit-content;
    margin: 0 auto 1.111em;
    padding: 0.555em 1.111em;
    color: var(--white);
    background: var(--sub-color01);
    gap: 5px 1em;
}

.infoBox h1 b span {
    display: block;
}

.infoBox h1 b span:empty {
    display: none;
}

.infoBox h1 small {
    display: flex;
    font-size: 0.6em;
    font-weight: 700;
    text-align: center;
    line-height: 1;
    width: fit-content;
    margin: 0 auto;
    padding: 10px 30px;
    background: var(--body-text-color);
    color: var(--main-color01);
    gap: 0 1em;
}

.infoBox h1 b + small {
    margin-top: 1.111em;
}

.infoBox h1 small span {
    display: block;
}

.infoBox h1 small span:empty {
    display: none;
}

.single .infoBox .time {
    text-align: right;
    font-size: 14px;
    color: #777;
    line-height: 1;
    transform: rotate(0.03deg);
}

.single .worksDetailsContent {
    margin: 60px 0 60px;
    transform: rotate(0.03deg);
}

.single .worksDetailsContent th {
    color: var(--body-text-color);
    width: 27%;
    background: #dfdfdf;
}

.single .worksPhotosContent ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    margin: 0;
}

.single .worksPhotosContent.wpc02 {
    margin: 0 calc(50% - 50vw);
	padding: 60px calc(50vw - 50%);
    background: #faf8c9;
}

@media screen and (max-width : 1100px) {
    .single .worksPhotosContent.wpc02 {
        margin: 0;
        padding: 60px 0;
    }
}

.single .worksPhotosContent li {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 10px;
    transform: rotate(0.03deg);
    /* height: 100%; */
    /* aspect-ratio: 47 / 34; */
}

.single .worksPhotosContent li b {
    font-size: 18px;
    margin-top: 10px;
}

.single .worksPhotosContent ul > * a {
    display: block;
    width: 100%;
    box-sizing: border-box;
}

.single .worksPhotosContent li a img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-sizing: border-box;
    /* aspect-ratio: 47 / 34; */
}

.single .worksPhotosContent ul span.img {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--white);
    box-sizing: border-box;
    overflow: hidden;
    /* aspect-ratio: 47 / 34; */
}

.single .worksPhotosContent ul span.img a {
    display: block;
    width: 100%;
    height: 100%;
}

.single .worksPhotosContent li span.img > img {
    max-width: 100%;
    height: 100%;
    object-fit: none;
    display: block;
    margin: auto;
}

/*----- lightbox関連 -----*/
a.colorbox,
a[rel='lightbox'] {
    display: block;
    position: relative;
    transition: 0.3s ease;
    z-index: 1;
}

a.colorbox:hover,
a[rel='lightbox']:hover {
    opacity: 0.8;
}

a.colorbox:hover img,
a[rel='lightbox']:hover img {
    opacity: 1;
}

a.colorbox::before,
a[rel='lightbox']::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f002";
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex !important;
    justify-content: center;
    align-items: center;

    width: 2.5em;
    height: 2.5rem;
    font-size: 1rem;
    box-sizing: border-box;
    color: #fff;
    background: rgba(0, 0, 0, 0.75);
    transition: 0.3s ease;
    z-index: 2;
}

/* -----------------------------------------------------------
    wysiwyg
----------------------------------------------------------- */
.wysiwyg strong {
    font-weight: 600;
}

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

.wysiwyg p {
    margin: 0 0 15px 0;
    line-height: 2.18;
}

.wysiwyg p a,
.wysiwyg th a,
.wysiwyg td a {
        color: var(--main-color01);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: 0.3s ease;
}

.wysiwyg a:hover {
    opacity: 0.8;
}

.wysiwyg h2, .h2 {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.25;
    border-left: 7px solid var(--main-color01);
    padding: 5px 0 7px 1em;
    margin: 30px 0;
}

.wysiwyg * + h2 {
    margin-top: 4rem;
}

.wysiwyg h3, .h3 {
    font-size: 26px;
    font-weight: 500;
    background: var(--body-text-color);
    color: var(--white);
    padding: 10px 40px;
    margin: 2rem 0;
}

.wysiwyg h4, .h4 {
    font-size: 24px;
    font-weight: 500;
    color: var(--white);
    background: var(--main-color01);
    padding: 5px 40px;
    margin: 2rem 0;
    line-height: 1.8;
}

.wysiwyg h5, .h5 {
    font-size: 22px;
    font-weight: 500;
    padding: 15px 40px;
    margin: 2rem 0;
    line-height: 1.25;
    border-top: 4px solid var(--main-color01);
    border-bottom: 4px solid var(--main-color01);
}

.wysiwyg h6, .h6 {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.25;
    margin: 2rem 0;
    padding: 15px 40px;
    border-top: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
}

.wysiwyg h7, .h7 {
    display: block;
    font-size: 18px;
    font-weight: 500;
    padding: 15px 40px;
    margin: 2rem 0 !important;
    line-height: 1.25;
    border-bottom: 3px double currentColor;
}

.wysiwyg blockquote {
    background: #f6f6f6;
    padding: 1.875em 3.125em;
    margin-bottom: 1em;
    /* border: 1px dotted var(--body-text-color); */
    --bc: var(--body-text-color);
    background-image:
        linear-gradient(to right, var(--bc), var(--bc) 1px, transparent 1px, transparent 3px),
        linear-gradient(to bottom, var(--bc), var(--bc) 1px, transparent 1px, transparent 3px),
        linear-gradient(to left, var(--bc), var(--bc) 1px, transparent 1px, transparent 3px),
        linear-gradient(to top, var(--bc), var(--bc) 1px, transparent 1px, transparent 3px);
    background-size: 3px 1px, 1px 3px, 3px 1px, 1px 3px;
    background-position: left top, right top, right bottom, left bottom;
    background-repeat: repeat-x, repeat-y, repeat-x, repeat-y;
}

.wysiwyg blockquote p {
    margin: 0;
}

:where(.wysiwyg) ul {
    margin: 0 0 15px 0;
}

:where(.wysiwyg ul) li {
    list-style: none;
    line-height: 1.7;
    margin-bottom: 10px;
    padding-left: 30px;
    position: relative;
}

:where(.wysiwyg ul) li::before {
    content: '';
    display: block;
    left: 8px;
    top: 10px;
    width: 10px;
    height: 10px;
    border-radius: 10px;
    background: var(--main-color01);
    position: absolute;
}


.wysiwyg ol {
    counter-reset: my-counter;
    list-style: none;
    padding: 0;
    margin-bottom: 30px;
}

.wysiwyg ol li {
    list-style: none;
    line-height: 1.7;
    margin-bottom: 10px;
    padding-left: 36px;
    position: relative;
}

.wysiwyg ol li:before {
    font-family: Roboto, sans-serif;
    font-size: 16px;
    content: counter(my-counter);
    counter-increment: my-counter;
    background-color: var(--sub-color01);
    color: var(--white);
    display: block;
    float: left;
    line-height: 31px;
    margin-left: -36px;
    text-align: center;
    height: 30px;
    width: 30px;
    border-radius: 50%;
}

.wysiwyg table {
    width: 100%;
    /* margin: 1rem 0; */
}

.wysiwyg * + table {
    margin-top: 2rem;
}

.wysiwyg table caption {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    padding-bottom: 15px;
}

.wysiwyg table caption strong {
    font-weight: 700;
    display: inline-block;
    color: var(--white);
    background: var(--main-color01);
    padding: 1px 5px 3px;
    margin-right: 0.5rem;
    text-align: center;
    min-width: 90px;
}

.wysiwyg table th,
.wysiwyg table td {
    padding: 20px 40px;
    font-size: 16px;
    font-weight: 400;
    text-align: left;
    position: relative;
    border: 2px solid currentColor;
}

.wysiwyg table th {
    font-weight: 500;
    color: var(--body-text-color);
    width: 27%;
    background: #efefef;
}

.wysiwyg iframe {
    width: 100%;
    height: 500px;
}

/* -----------------------------------------------------------
    toc_container
----------------------------------------------------------- */
#toc_container .toc_list li {
    padding-left: 10px;
}

#toc_container :where(.wysiwyg ul) li::before {
    left: 0;
    width: 5px;
    height: 5px;
}


/* -----------------------------------------------------------
    #blog.single 
----------------------------------------------------------- */
#blog.single .wysiwyg {
    background: var(--white);
    padding: 30px 0 60px;
    transform: rotate(0.03deg);
}

#blog.single .blogImg {
    margin: 40px 40px 0;
}

#blog.single .blogImg img {
    width: 100%;
}

#blog.single .wysiwyg ul, 
#blog.single .wysiwyg ol, 
#blog.single .wysiwyg blockquote, 
#blog.single .blogTbl {
    margin: 0 40px 15px;
}

#blog.single .wysiwyg p {
    margin: 0 40px 15px 40px;
}

#blog.single .wysiwyg table p {
    margin: 0;
}

#blog.single .wysiwyg blockquote p {
    margin: 0;
}

#blog.single .pagenavi {
    margin: 80px 0 120px;
}

#blog .infoBox .cats .cat {
    background: #def5ff;
    border: none;
}

#blog .infoBox h1::before, 
#blog .infoBox h1::after {
    background: var(--main-color01);
}

/* -----------------------------------------------------------
    contact
----------------------------------------------------------- */
#contact #cornerName > .wide_lg {

}

#contact .contactContent {
    padding: 0;
}

#contact .contactContent .tl {
    margin-bottom: 75px;
}

/*----- comFaq.php -----*/
.faqContent {
    position: relative;
    max-width: 1600px;
    margin: 120px auto;
    padding: 120px 0;
    background: var(--sub-color04);
    border: 4px solid var(--body-text-color);
}

.faqContent::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 129px;
    height: 147px;
    background: url(./img/icon_faq.png) no-repeat;
    background-size: 129px auto;
}

.faqContent .tl_popup01 {
    margin-bottom: 80px;
}

.faqContent .tl_popup01 small {
    color: var(--body-text-color);
}

.faqList dl {
    margin-bottom: 20px;
}

.faqList dt {
    position: relative;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.3;
    background: var(--white);
    margin-bottom: 20px;
    padding: 25px 30px 25px 80px;
    transform: rotate(0.03deg);
    transition: 0.7s;
    cursor: pointer;
}

.faqList dt.active {
    color: var(--white);
    background: var(--body-text-color);
}

.faqList dt.active:before {
    color: var(--white);
}

.faqList dt:hover {
    opacity: 0.7;
}

.faqList dt:first-child {
    border-top: none;
}

.faqList dt:before {
    content: "Q";
    position: absolute;
    top: 12px;
    left: 25px;
    font-size: 36px;
    font-weight: bold;
    color: var(--body-text-color);
}

.faqList dt .btnPlus {
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
}

.faqList dt .btnPlus::before, 
.faqList dt .btnPlus::after {
    content: '';
    display: inline-block;
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 5px;
    height: 25px;
    background-color: var(--body-text-color);
}

.faqList dt .btnPlus::before {
    transition: 0.5s;
}
.faqList dt .btnPlus::after {
    transform: translateX(-50%) translateY(-50%) rotate(90deg);
}

.faqList dt .btnPlus.minus::before {
    transform: translateX(-50%) translateY(-50%) rotate(90deg);
    background-color: var(--white);
}
.faqList dt .btnPlus.minus::after {
    opacity: 0;
}

.faqList dd {
    display: none;
    position: relative;
    font-weight: 500;
    line-height: 36px;
    background: var(--white);
    padding: 20px 20px 20px 80px;
    word-break: break-all;
    transform: rotate(0.03deg) translateY(-22px);
}

.faqList dd strong:nth-child(n+2) {
    padding-top: 10px;
}

.faqList dd:before {
    content: "A";
    position: absolute;
    top: 50%;
    left: 25px;
    transform: translateY(-50%);
    font-size: 36px;
    font-weight: bold;
    color: var(--sub-color02);
}

#main .faqList p {
    display: none;
}

#privacy h2::after {
    content: none;
}

#privacy .wysiwyg.inner {
    transform: rotate(0.03deg);
}

/*----- comFlowContent -----*/
.flowContent {
    margin: 120px 0;
}

.flowContent  .tl_popup01 {
    margin-bottom: 80px;
}

.flowContent .flowList .flowList_item {
    margin-bottom: 60px;
    counter-increment: number;
}

.flowContent .flowList .flowList_item h4 {
    position: relative;
    font-size: 30px;
    text-align: center;
    max-width: 920px;
    margin: 0 auto;
    padding: 15px 0;
    background: #ffdea7;
    border: 4px solid var(--sub-color01);
    border-radius: 50px;
}

.flowContent .flowList .flowList_item h4::before {
    content: "STEP";
    font-size: 24px;
    position: absolute;
    top: 0;
    left: -4px;
    width: 140px;
    height: 140px;
    color: var(--white);
    z-index: 10;
}

.flowContent .flowList .flowList_item h4::after {
    content: counter(number);
    position: absolute;
    top: -25px;
    left: -4px;
    line-height: 180px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    text-align: center;
    color: var(--white);
    background-color: var(--body-text-color);
    font-weight: 600;
    font-size: 46px;
}

.flowContent .flowList .flowList_item p {
    margin-top: 60px;
    padding: 0 150px;
    transform: rotate(0.03deg);
}

.flowContent .flowList .flowList_item p a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.flowContent .contactBox {
    color: var(--white);
    max-width: 400px;
    margin: 30px auto 60px;
    border: 4px solid var(--body-text-color);
    border-radius: 100px;
    transform: rotate(0.03deg);
}

.flowContent .contactBox .inBox {
    position: relative;
    text-align: center;
    padding: 5px 0 10px;
}

.flowContent .tel .tel-link {
    position: relative;
    font-size: 30px;
    margin: 12px 70px 0;
    padding-left: 50px;
}

.flowContent .tel .tel-link::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: url(./img/icon_ftr_tel.png) no-repeat;
}

.flowContent .tel .tel_icon {
    display: none;
}

.flowContent .tel span:first-of-type {
    display: none;
}

.flowContent .tel span {
    display: block;
    font-size: 14px;
    color: var(--body-text-color);
    margin-top: 12px;
}


.simuBtn {
    width: 450px;
    margin: 75px auto 0;
    transform: rotate(0.03deg);
}

.simuBtn a {
    display: flex;
    gap: 30px;
    align-items: center;
    padding: 10px;
    background: var(--sub-color01);
    border-radius: 50px;
}

.simuBtn a::before {
    position: absolute;
    right: 30px;
    margin: auto 0;
    content: "";
    width: 17px;
    height: 13px;
    background-color: var(--white);
    --mask: url(./img/svg_arrow01.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    mask-image: var(--mask);
    transition: 0.3s;
}

.simuBtn a:hover::before {
    transform: translateX(10px);
}

.simuBtn a p {
    font-size: 18px;
    color: var(--white);
}

/* -----------------------------------------------------------
    footer
----------------------------------------------------------- */
footer a {
    color: var(--black);
    text-decoration: none;
}

.ftrNav {
    padding: 20px 0;
}

.ftrNav .wide {
    display: flex;
    justify-content: flex-start;
    gap: 0 200px
}

/*----- .ftrNavSitemap -----*/
.ftrNavSitemap {
    padding: 60px 0 80px;
    display: flex;
    justify-content: space-between;
    gap: 0 100px;
    transform: rotate(0.03deg);
}

.ftrNavSitemap > ul {
    display: block;
    font-size: 14px;
    line-height: 2.14;
}

.ftrNavSitemap li {
    font-size: 14px;
    position: relative;
}

.ftrNavSitemap li ul {
    display: block;
}

.ftrNavSitemap > ul > li {
    padding-left: 1em;
}

.ftrNavSitemap > ul > li::before {
    content: "─";
    margin-right: 0.5em;
    color: var(--white);
}

.ftrNavSitemap > ul > li.ftrNav_menu::before {
    content: none;
}

.ftrNavSitemap > ul > li.ftrNav_menu div {
    color: #fff;
}

.ftrNavSitemap > ul > li li::before {
    content: "└";
    margin-right: 0.5em;
    color: var(--white);
}

footer .ftrContent {
    /* padding: 35px 0 20px; */
    font-size: 14px;
    background: #efefef;
}

footer .ftrContent > .wide {
    /* display: flex;
    justify-content: space-between; */
}

footer .footerAdd {
    padding: 60px 0;
}

footer .footerAdd .inner {
    display: flex;
    align-items: center;
}

footer .footerAdd h3 {
    transform: rotate(0.03deg);
}

footer .footerAdd .leftBox {
    text-align: center;
    margin-right: 100px;
}

footer .footerAdd .leftBox h3 {
    font-size: 14px;
    font-weight: 500;
}

footer .footerAdd .rightBox {
    transform: rotate(0.03deg);
}

footer .footerAdd .rightBox div {
    margin-bottom: 50px;
}

footer .footerAdd .rightBox div:first-of-type {
    padding-top: 25px;
}

footer .footerAdd .rightBox div h3 {
    font-size: 14px;
    font-weight: 400;
}

footer .footerMenu {
    background: var(--body-text-color);
    padding-bottom: 100px;
}

footer .footerMenu a {
    color: var(--white);
}

.ftrLogo {
    display: block;
    margin-bottom: 20px;
}

.ftrLogo + h3 {
    display: block;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 1em;
}

.ftrContent dl {
    display: grid;
    grid-template-columns: auto 1fr auto 1fr;
    grid-template-rows: repeat(3, 1fr);
    grid-auto-flow: column;
    gap: 10px;
    margin: 20px 0;
}

.ftrContent dl > div {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: span 2;
}

.ftrContent dl dt {
    background: var(--main-color01);
    color: var(--white);
    border-radius: 4px;
    text-align: center;
    padding: 0 10px;
}

.ftrSNS {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
}

footer .copyRight {
    float: none;
    clear: both;
    font-size: 12px;
    color: var(--white);
    width: 100%;
    text-align: center;
    transform: rotate(0.03deg);
}

.ftrBnr01 {
    width: fit-content;
    display: block;
    margin: 20px 20px 10px auto;
}

.ftrBnr01 li + li {
    margin-top: 10px;
}

.ftrBnr01 li {
    width: fit-content;
    display: block;
}

.ftrBnr01 li a {
    display: block;
    width: fit-content;
}

.ftrFabWrapper {
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 100;
}

.pageTop {
    margin: 0 40px 10px auto;
    width: fit-content;
    height: fit-content;
    opacity: 0;
    border-radius: 6px 6px 0 0;
    overflow: hidden;
    transition: all 0.3s ease;
}

.scrolled .pageTop {
    opacity: 1;
}

.pageTop a {
    display: block;
    transition: all 0.3s ease;
    width: 60px;
    height: 60px;
    background-color: #000;
    border-radius: 50%;
}

.pageTop a:hover {
    background: var(--main-color01);
}

/*----- .ftrTelContact -----*/
.ftrTelContactWrapper {
    display: flex;
    align-items: center;
    opacity: 0;
    z-index: 10;
    transition: all 0.5s ease-in-out;
    position: fixed;
    margin: 0 auto;
    left: 0;
    right: 0;
    bottom: 0;
    min-width: 1100px;
    box-sizing: border-box;
    pointer-events: none;
}

.scrolled .ftrTelContactWrapper {
    opacity: 1;
    pointer-events: auto;
}

.ftrTelContact {
    display: flex;
    width: 100%;
    background: var(--main-color01);
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
}

.ftrTelContact li {
    padding: 20px 0;
    min-width: calc(100% / 3);
    border-right: 1px solid var(--white);
}

#top .ftrTelContact li, 
#points .ftrTelContact li {
    min-width: calc(100% / 4);
}

.ftrTelContact li:last-of-type {
    border-right: none;
}

.ftrTelContact a {
    transition: 0.3s ease;
}

.ftrTelContact li a {
    color: var(--white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.ftrTelContact li a p {
    transform: rotate(0.03deg);
    font-weight: 500;
}

.ftrTelContact li:first-of-type a p {
    font-size: 14px;
    font-weight: 400;
}

.ftrTelContact li a p span {
    font-size: 26px;
    font-weight: 500;
}

.ftrTelContact li.ftrContent_tel a {
    cursor: default;
}

.ftrTelContact li.ftrContent_tel a:hover, 
.ftrTelContact li.ftrContent_tel a:hover img { 
    opacity: 1; 
} 

.hdrTelContact a:hover {
    opacity: 0.7;
}

.ftrTelContact > * {
    color: var(--white);
    line-height: 1;
}

.ftrTel {
    display: flex;
    align-items: center;
    margin-right: auto;
    /* background: var(--main-color02); */
}

.ftrTel .tel {
    display: flex;
    flex-direction: row;
    justify-content: center;
    font-size: 16px;
    color: var(--black);
    justify-content: center;
    align-items: center;
    margin-right: auto;
}

.ftrTel .tel i[class*="fa-"] {
    font-size: 27px;
    margin-right: 0.25em;
}

.ftrTel span.tel-link {
    font-size: 32px;
    font-weight: 700;
    color: var(--body-text-color);
    letter-spacing: -0.05em;
    padding-right: 20px;
}

.ftrTel .tel-link img {
    vertical-align: text-bottom;
    margin-right: 0.5rem;
}

.ftrTel .tel-open {
    font-size: 14px;
    font-weight: 500;
    margin-top: 0;
}

.ftrContact {
    color: var(--white);
    font-size: 16px;
    font-weight: 700;
    width: 200px;
    box-sizing: border-box;
    margin: 20px 20px 20px 0;
    padding: 17px 0 17px 65px;
    background: var(--main-color01);
    align-items: center;
    line-height: 1;
    position: relative;
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.3s ease;
    box-shadow: 0 3px #af1406;
}

.ftrContact small {
    display: block;
    background: var(--white);
    color: var(--main-color01);
    border: 2px solid #af1406;
    font-size: 14px;
    font-weight: 700;
    padding: 2px 12px 4px;
    margin-bottom: 10px;
    position: absolute;
    left: 30px;
    top: 0;
    transform: translateY(-50%);
    line-height: 1;
    /* width: 100%; */
    box-sizing: border-box;
    text-align: center;
    pointer-events: none;
}

.ftrContact small::before,
.ftrContact small::after {
    content: "";
    position: absolute;
    transform: translate(-50%, 100%);
    left: 50%;
    bottom: 0;
}

.ftrContact small::before {
    border-top: #af1406 11px solid;
    border-left: transparent 5px solid;
    border-right: transparent 5px solid;
}

.ftrContact small::after {
    border-top: var(--white) 9px solid;
    border-left: transparent 3px solid;
    border-right: transparent 3px solid;
}

.ftrContact img {
    position: absolute;
    top: 0;
    left: 15px;
    bottom: 0;
    margin: auto 0;
}

.ftrLine {
    background-color: var(--line-color);
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
    color: var(--white);
}

.ftrLine img {
    width: auto;
    height: 36px;
    margin-bottom: 10px;
}