@charset "UTF-8";

@media print, screen and (min-width:1200px) {

#kvWrap {
position: relative;
width: 85vw;
height: 74vh;
margin: 0 0 0 auto;
}

#kvWrapInner {
position: relative;
background-color: #fff;
width: 85vw;
height: 74vh;
overflow: hidden;
border-radius: 50px 0 0 50px;
box-shadow: 10px 10px 0 var(--themeColor);
}

#kvWrapInner::after {
position: absolute;
background: rgba(0,0,0,.3);
width: 100vw;
height: 100vh;
content: "";
left: 0;
top: 0;
z-index: 11;
}

#kvCopy {
position: absolute;
font-size: 5.6rem;
font-weight: 700;
text-align: left;
display: block;
line-height: 1.3;
letter-spacing: .1em;
top: 53%;
left: -120px;
transform: translateY(-53%);
}

#kvCopy span {
position: relative;
font-size: 1.6rem;
letter-spacing: .07em;
top: -22px;
}

#kvCopyWh {
position: absolute;
font-size: 5.6rem;
font-weight: 700;
text-align: left;
color: #fff;
display: block;
line-height: 1.3;
letter-spacing: .1em;
z-index: 20;
top: 53%;
left: -120px;
transform: translateY(-53%);
}

#kvCopyWh span {
position: relative;
font-size: 1.6rem;
letter-spacing: .07em;
top: -22px;
}

#scrollDown {
position: absolute;
width: 240px;
right: -40px;
bottom: -50px;
animation: 60s linear infinite rotation;
z-index: 20;
}

@keyframes rotation{
0% { transform: rotate(0); }
100% { transform: rotate(360deg); }
}

#arrowDown {
position: absolute;
width: 10px;
height: 10px;
margin: auto;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(135deg);
z-index: 20;
right: 75px;
bottom: 70px;
}

#arrowDown::after {
position: absolute;
background-color: var(--themeColor);
width: 2px;
height: 80px;
content: "";
transform: rotate(-135deg);
right: 120px;
bottom: 60px;
}

#kvNews {
position: absolute;
background-color: var(--subColor);
width: 550px;
height: 70px;
font-size: 1.4rem;
font-weight: 700;
text-align: left;
z-index: 50;
display: flex;
justify-content: space-between;
align-items: center;
border-radius: 0 20px 20px 0;
border: 2px solid var(--themeColor);
box-shadow: 5px 5px 0 var(--themeColor);
left: -10px;
bottom: 10%;
}

#whatsNew {
position: absolute;
background-color: var(--themeColor);
width: 56px;
height: 56px;
font-size: 1rem;
font-weight: 600;
color: #fff;
text-align: center;
border-radius: 60px;
line-height: 55px;
transform: rotate(-20deg);
letter-spacing: 0;
left: 20px;
top: -40px;
}

#ticker {
width: 460px;
text-align: left;
margin: 0px auto;
padding: 0;
}

#ticker a {
color: var(--txtColor);
}

/**/

#bannerFlex {
width: 1200px;
text-align: center;
margin: 0 auto;
margin-bottom: 60px;
display: flex;
justify-content: space-between;
}

.bannerTop {
width: 31.5%;
}

#bannerTop {
width: 480px;
margin: 0 auto;
}

.contentsTitleCe,
.contentsTitle,
.contentsTitleR {
position: relative;
font-size: 4.4rem;
font-weight: 600;
text-align: left;
color: var(--bearColor);
margin-bottom: 50px;
padding-top: 20px;
line-height: 1.3;
}

.contentsTitleCe::before,
.contentsTitle::before,
.contentsTitleR::before {
position: absolute;
background-color: var(--themeColor);
width: 50px;
height: 5px;
content: "";
margin: auto;
border-radius: 50px;
left: 0;
right: 0;
top: 0;
}

.contentsTitle::before {
margin: 0;
}

.contentsTitleCe {
text-align: center;
}

.contentsTitleR {
text-align: right;
}

.contentsTitleR::before {
margin: 0 0 0 auto;
}

#wrapReason {
width: 100%;
margin: 0 auto;
padding: 120px 0;
}

.indexReasonFlex {
width: 92%;
margin: 80px auto;
margin-bottom: 100px;
display: flex;
justify-content: space-between;
align-items: center;
}

.indexReasonPhoto {
width: 45%;
overflow: hidden;
border-radius: 50px;
box-shadow: 10px 10px 0 var(--themeColor);
}

.indexReasonPhoto img {
width: 100%;
}

.indexReasonTxt {
width: 50%;
text-align: justify;
}

.reasonTitleFlex {
display: flex;
justify-content: flex-start;
}

.reasonTitleFlex .number {
position: relative;
background-color: var(--subColor);
font-family: var(--font-kodchasan);
width: 60px;
height: 60px;
font-size: 2.8rem;
font-weight: 600;
color: var(--themeColor);
text-align: center;
white-space: nowrap;
margin-right: 20px;
border-radius: 80px;
border: 2px solid var(--themeColor);
box-shadow: 3px 3px 0 var(--themeColor);
line-height: 54px;
}

.reasonTitle {
position: relative;
width: 90%;
font-size: 3rem;
font-weight: 700;
color: var(--bearColor);
margin-bottom: 30px;
line-height: 1.6;
top: -15px;
}

.reasonTitle span {
background: linear-gradient(transparent 60%, var(--themeColor) 60%);
}

.indexReasonTxt p {
margin-bottom: 0;
}

.wrapColor {
background-color: var(--subColor);
width: 100%;
}

.wrapColor2 {
background-color: #fff;
width: 100%;
}

.wrap {
width: 1200px;
margin: 0 auto;
padding: 120px 0;
}

#pricePlanFlex  {
margin-bottom: 70px;
display: flex;
justify-content: space-between;
}

.pricePlan {
position: relative;
background-color: #fff;
width: 370px;
text-align: center;
padding: 0 0 40px;
overflow: hidden;
border-radius: 30px;
box-shadow: 8px 8px 0 var(--bearColor);
}

.pricePlan .triangle {
position: absolute;
background-color: #f7df5f;
width: 170px;
height: calc(100px / 2 * tan(60deg));
clip-path: polygon(50% 0, 100% 100%, 0 100%);
content: "";
text-align: center;
transform: rotate(45deg);
line-height: 1;
z-index: 1;
right: -80px;
top: -30px;
}

.pricePlan .triangle::after {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 1.2rem;
font-weight: 700;
content: "PLAN";
color: var(--bearColor);
margin: auto;
transform: rotate(0deg);
z-index: 2;
left: -10px;
right: 0;
bottom: 10px;
}

.pricePlan .pricePhoto {
position: absolute;
width: 300px;
height: 300px;
overflow: hidden;
margin: auto;
border-radius: 300px;
border: 2px solid var(--themeColor);
box-shadow: 5px 5px 0 var(--bearColor);
left: 0;
right: 0;
top: -100px;
}

.pricePlan .pricePhoto img {
width: 100%;
height: 300px;
object-fit: cover;
}

.pricePlan h3 {
position: relative;
background-color: var(--themeColor);
font-size: 2.1rem;
font-weight: 600;
color: #fff;
margin: 0 auto;
padding: 30px 0;
margin-bottom: 5px;
line-height: 1.3;
}

.pricePlan h3 span {
display: block;
}

.pricePlan h3 em {
font-size: 3rem;
display: block;
letter-spacing: 0;
}

.pricePlan .mark {
height: 60px;
font-size: 1.4rem;
margin-bottom: 30px;
}

.pricePlan .price {
font-size: 2.1rem;
margin: 10px auto;
margin-bottom: 0;
line-height: 1.3;
}

.pricePlan .price span {
font-size: 5.2rem;
color: var(--themeColor);
}

.pricePlan .price em {
font-size: 3rem;
}

.pricePlan .priceTaxin {
font-size: 1.6rem;
margin-bottom: 20px;
line-height: 1;
}

.pricePlan .priceTaxin em {
font-size: 2.2rem;
}

.pricePlan .guarantee {
background-color: #f7df5f;
width: 210px;
font-size: 1.6rem;
color: var(--bearColor);
margin: 0 auto;
margin-bottom: 30px;
padding-bottom: 14px;
border-radius: 10px;
line-height: 1;
}

.pricePlan .guarantee span {
position: relative;
font-size: 3rem;
top: 4px;
}

/**/

#wrapWorks {
width: 1200px;
text-align: left;
margin: 0 auto;
padding: 120px 0;
}

.wrapTitleFlex {
display: flex;
justify-content: space-between;
}

.btnR {
width: 1200px;
margin: 0 auto;
display: flex;
justify-content: flex-end;
}

.btnL {
text-align: left;
}

#voiceFlex {
margin-top: 100px;
margin-bottom: -30px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.voice {
position: relative;
background-color: #fff;
width: 570px;
text-align: justify;
margin-bottom: 100px;
padding: 80px 50px 50px;
border-radius: 30px;
box-shadow: 8px 8px 0 var(--themeColor);
}

.wrapCo .voice {
background-color: var(--subColor);
}

.voice h3,
.voice h2 {
font-size: 2.2rem;
font-weight: 600;
color: var(--themeColor);
text-align: center;
margin-bottom: 15px;
line-height: 1.6;
}

.voice h3 span,
.voice h2 span {
font-size: 1.7rem;
display: block;
}

.voice .icon {
position: absolute;
width: 110px;
margin: auto;
border-radius: 110px;
left: 0;
right: 0;
top: -55px;
}

.voice .icon img {
border: 2px solid var(--themeColor);
border-radius: 120px;
box-shadow: 5px 5px 0 var(--bearColor);;
}

.voice .number {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 2rem;
font-weight: 700;
text-align: center;
color: var(--themeColor);
margin: auto;
line-height: 1;
left: 0;
right: 0;
top: -72px;
}

.voice p {
margin-bottom: 0;
}

#constructionFlex {
margin-bottom: 60px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.construction {
position: relative;
width: 370px;
}

.construction .number {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 6rem;
font-weight: 500;
color: #ccc;
line-height: 1;
z-index: 2;
left: 30px;
top: -30px;
}

.construction .constructionPhoto {
overflow: hidden;
border-radius: 30px;
box-shadow: 8px 8px 0 var(--themeColor);
}

.construction .constructionPhoto img {
width: 100%;
height: 240px;
object-fit: cover;
}

.construction h3 {
background-color: var(--bearColor);
width: 80%;
font-size: 1.8rem;
font-weight: 600;
color: #fff;
text-align: center;
margin: auto;
padding: 14px 10px 22px;
border-radius: 0 0 30px 30px;
border-left: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
border-bottom: 2px solid var(--themeColor);
z-index: 1;
line-height: 1.5;
}

.construction span {
font-size: 1.4rem;
display: block;
}

.freeWrap {
width: 1200px;
margin: 0 auto;
}

#wrapBlog {
width: 100%;
text-align: left;
margin: 0 auto;
padding: 120px 0;
}

.wrapBanner {
background-color: #f4f6f9;
width: 100%;
text-align: left;
margin: 0 auto;
padding: 120px 0;
}

#all-link-reformsBanner {
position: relative;
width: 1000px;
margin: 0 auto;
overflow: hidden;
}

#all-link-reformsBanner a {
position: relative;
width: 100%;
height: 100%;
display: block;
z-index: 3;
}

#all-link-reformsBanner h2 {
position: absolute;
background-color: #fff;
width: 200px;
padding: 20px;
z-index: 2;
left: 35px;
top: 0;
}

#all-link-reformsBannerTxt {
position: absolute;
font-size: 4rem;
text-align: center;
color: #fff;
padding-left: 20px;
white-space: nowrap;
top: 50%;
left: 50%;
transform: translateY(-50%)translateX(-50%);
}

#indexQaWrap {
position: relative;
width: 1200px;
margin: 0 auto;
padding: 120px 0 90px;
display: flex;
justify-content: space-between;
}

#qaR {
width: auto;
text-align: left;
}

#qaL {
width: 780px;
text-align: justify;
}

.accordion {
width: 100%;
text-align: justify;
margin: 0 auto;
}

.accordion ul {
margin: 0 auto;
padding: 0;
}

.accordion li {
position: relative;
background-color: #fff;
width: 100%;
margin-bottom: 30px;
border: 1px solid #ddd;
box-shadow: 8px 8px 0 var(--themeColor);
border-radius: 20px;
transition: .3s;
}

.accordion li p:last-child {
margin-bottom: 0;
}

.accordion li h3 {
position: relative;
font-size: 1.5rem;
font-weight: 700;
color: var(--txtColor);
}

.accordion a {
position: relative;
color: var(--themeColor);
display: block;
text-decoration: none;
cursor: pointer;
padding: 20px 76px 28px 32px;
transition: .3s;
}

.accordion li .accordion_icon {
display: inline-block;
transition: all .3s;
box-sizing: border-box;
}

.accordion li .accordion_icon {
position: absolute;
width: 15px;
height: 15px;
margin: auto;
top: 14px;
bottom: 0;
right: 34px;
}

.accordion li .accordion_icon span {
position: absolute;
background-color: var(--themeColor);
width: 100%;
height: 2px;
transition: all .3s;
}

.accordion li .accordion_icon span:nth-of-type(1) {
transform: rotate(0deg);
}

.accordion li .accordion_icon span:nth-of-type(2) {
transform: rotate(90deg);
}

.accordion li .accordion_icon.active span:nth-of-type(1) {
display:none;
}

.accordion li .accordion_icon.active span:nth-of-type(2) {
transform: rotate(180deg);
}

.toggle dt {
float: left;
font-family: var(--font-kodchasan);
font-size: 3.2rem;
font-weight: 700;
line-height: 1.2;
}

.toggle dd {
padding: 7px 0 3px 44px;
}

.qaDetail {
color: var(--txtColor);
display: none;
padding: 0 34px 34px;
overflow: hidden;
}

.qaDetail dt {
float: left;
font-family: var(--font-kodchasan);
font-size: 3.2rem;
font-weight: 700;
color: var(--themeColor);
line-height: 1;
}

.qaDetail dd {
padding: 0 0 0 44px;
}

#wrapNews {
position: relative;
width: 1200px;
margin: 0 auto;
padding: 120px 0;
display: flex;
justify-content: space-between;
}

#newsL {
width: auto;
text-align: left;
}

#newsR {
width: 800px;
text-align: justify;
line-height: 1.6;
}

.news {
position: relative;
width: 100%;
display: block;
border-bottom: 1px dotted #ccc;
transition: .3s;
overflow: hidden;
}

.news:first-of-type {
border-top: 1px dotted #ccc;
}

.news::before {
position: absolute;
width: 12px;
height: 12px;
content: "";
margin: auto;
border-top: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
transform: rotate(45deg);
right: 35px;
top: 0;
bottom: 0;
transition: .3s;
}

.news:hover::before {
right: 30px;
}

.news a {
width: 100%;
padding: 40px 30px;
display: block;
}

.news:hover {
background-color: #fff;
}

.news dt {
float: left;
font-family: var(--font-kodchasan);
font-weight: 600;
}

.news dd {
padding: 0 40px 0 160px;
}

.news .triangle {
position: absolute;
background-color: var(--themeColor);
width: 150px;
height: calc(100px / 2 * tan(60deg));
clip-path: polygon(50% 0, 100% 100%, 0 100%);
content: "";
text-align: center;
transform: rotate(45deg);
line-height: 1;
z-index: 1;
right: -80px;
top: -50px;
}

.news .triangle::after {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 1rem;
font-weight: 700;
content: "NEW";
color: #fff;
margin: auto;
transform: rotate(0deg);
z-index: 2;
left: 1px;
right: 0;
bottom: 4px;
}

/**/

#contactBottomWrap {
position: relative;
background: url("../img/contact_bottom_bg.webp") no-repeat center top;
background-size: cover;
width: 1200px;
color: #fff;
margin: 0 auto;
padding: 90px 30px 100px;
overflow: hidden;
border-radius: 30px;
box-shadow: 10px 10px 0 var(--themeColor);
}

#contactBottomWrap::after {
position: absolute;
background: rgba(0,0,0,.3);
width: 100vw;
height: 100vh;
content: "";
left: 0;
top: 0;
}

#contactBottomWrap h3 {
position: relative;
font-size: 2.2rem;
font-weight: 600;
margin-bottom: 60px;
z-index: 2;
}

#contactBottomWrap h4 {
position: relative;
font-size: 2rem;
font-weight: 600;
margin-bottom: 10px;
z-index: 2;
}

#contactBottomFlex {
position: relative;
display: flex;
justify-content: center;
z-index: 2;
}

.contactBottomLr {
margin: 0 20px;
}

.btnContact {
background-color: var(--themeColor);
width: 480px;
height: 120px;
font-size: 2.5rem;
font-weight: 700;
color: #fff;
padding-bottom: 10px;
cursor: pointer;
border: 2px solid var(--themeColor);
border-radius: 100px;
transition: .3s;
}

.btnContact i {
position: relative;
font-size: 3rem;
margin-right: 5px;
top: 3px;
}

.btnContact:hover {
background-color: #fff;
color: var(--themeColor);
}

.btnCall {
background-color: #fff;
font-family: var(--font-kodchasan);
width: 480px;
height: 120px;
font-size: 3.8rem;
font-weight: 700;
color: var(--themeColor);
padding-bottom: 10px;
cursor: pointer;
border: 2px solid var(--themeColor);
border-radius: 100px;
transition: .3s;
}

.btnCall i {
margin-right: 10px;
}

.btnCall span {
font-family: var(--font-primary);
font-size: 1.3rem;
display: block;
}

.btnCall:hover {
background-color: var(--themeColor);
color: #fff;
}

/**/

#titleWrap {
position: relative;
width: 100%;
height: 400px;
}

#titleWrap #contentsTitle {
position: absolute;
height: 82px;
width: 1200px;
font-size: 4.6rem;
font-weight: 600;
text-align: left;
margin: auto;
padding-top: 20px;
line-height: 1.4;
z-index: 1;
left: 0;
right: 0;
top: 0;
bottom: 0;
}

#titleWrap #contentsTitle::before {
position: absolute;
background-color: var(--themeColor);
width: 50px;
height: 5px;
content: "";
margin: auto;
border-radius: 50px;
left: 0;
top: 0;
}

.ku {
margin-left: -8px;
}

#bgReason,
#bgPricePlan,
#bgWorks,
#bgVoice,
#bgConstruction,
#bgNews,
#bgFaq,
#bgBlog,
#bgCompany,
#bgContact,
#bgPrivacy {
width: 55%;
height: 400px;
margin: 0 0 0 auto;
border-radius: 50px 0 0 50px;
box-shadow: 10px 10px 0 var(--themeColor);
}

#bgReason {
background: url("../img/bg_reason.webp") no-repeat center;
background-size: cover;
}

#bgPricePlan {
background: url("../img/bg_price.webp") no-repeat center;
background-size: cover;
}

#bgWorks {
background: url("../img/bg_works.webp") no-repeat center;
background-size: cover;
}

#bgVoice {
background: url("../img/bg_voice.webp") no-repeat center;
background-size: cover;
}

#bgConstruction {
background: url("../img/bg_construction.webp") no-repeat center;
background-size: cover;
}

#bgNews {
background: url("../img/bg_news.webp") no-repeat center;
background-size: cover;
}

#bgFaq {
background: url("../img/bg_faq.webp") no-repeat center;
background-size: cover;
}

#bgBlog {
background: url("../img/bg_blog.webp") no-repeat center;
background-size: cover;
}

#bgCompany {
background: url("../img/bg_company.webp") no-repeat center;
background-size: cover;
}

#bgContact {
background: url("../img/bg_contact.webp") no-repeat center;
background-size: cover;
}

#bgPrivacy {
background: url("../img/bg_privacy.webp") no-repeat center;
background-size: cover;
}

#breadcrumb{
width: 1200px;
font-size: 1.2rem;
margin: 0 auto;
margin-top: 40px;
text-align: justify;
}

.wrapNews {
width: 1000px;
text-align: justify;
margin: 0 auto;
padding: 60px 0 30px;
}

.wrapCo {
width: 1200px;
text-align: justify;
margin: 0 auto;
padding: 60px 0 0;
}

/**/

.reasonPhoto {
width: 100%;
height: 600px;
overflow: hidden;
border-radius: 50px;
box-shadow: 10px 10px 0 var(--themeColor);
}

.reasonPhoto img {
width: 100%;
height: 600px;
object-fit: cover;
}

.reasonTxt {
position: relative;
background-color: #fff;
width: 80%;
margin: 0 auto;
margin-bottom: 60px;
margin-top: -120px;
padding: 80px 70px 40px;
border-radius: 50px;
z-index: 1;
}

.reasonTxt:last-child {
margin-bottom: 120px;
}

#stepFlex {
margin: 80px auto;
margin-bottom: 0;
display: flex;
justify-content: center;
flex-wrap: wrap;
align-items: center;
}

#start,
#goal {
position: relative;
background-color: var(--themeColor);
font-family: var(--font-kodchasan);
width: 180px;
height: 180px;
font-size: 3rem;
font-weight: 600;
color: #fff;
text-align: center;
margin-bottom: 60px;
display: table;
border-radius: 180px;
border: 2px solid var(--themeColor);
box-shadow: 5px 5px 0 var(--bearColor);
line-height: 1.3;
}

#goal {
font-family: var(--font-primary);
font-size: 2.7rem;
}

.step {
position: relative;
background-color: #fff;
width: 180px;
height: 180px;
font-size: 1.6rem;
font-weight: 600;
color: var(--bearColor);
text-align: center;
margin-bottom: 60px;
display: table;
border-radius: 180px;
border: 2px solid var(--themeColor);
box-shadow: 5px 5px 0 var(--themeColor);
line-height: 1.3;
}

.stepColor {
background-color: var(--bearColor);
color: #fff;
border: 2px solid var(--bearColor);
}

.stepOther {
position: relative;
background-color: #fff;
width: 170px;
height: 170px;
font-size: 1.5rem;
font-weight: 600;
color: var(--bearColor);
text-align: center;
margin-bottom: 60px;
display: table;
border-radius: 20px;
border: 2px solid var(--themeColor);
box-shadow: 5px 5px 0 var(--themeColor);
line-height: 1.5;
}

.stepOther i {
font-size: 2.2rem;
color: var(--themeColor);
margin-bottom: 10px;
}

#start .inner,
#goal .inner,
.step .inner,
.stepOther .inner {
display: table-cell;
vertical-align: middle;
}

.stepNumber {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 2rem;
font-weight: 700;
color: var(--themeColor);
line-height: 1;
left: 0;
right: 0;
top: -34px;
}

.stepNumber span {
font-size: 3.2rem;
font-weight: 600;
}

#stepFlex .stepAarrow {
position: relative;
width: 10px;
height: 10px;
margin: 0 20px;
border-top: 2px solid var(--bearColor);
border-right: 2px solid var(--bearColor);
transform: rotate(45deg);
top: -28px;
}

.warrantyFlex {
width: 720px;
margin: 0 auto;
margin-bottom: 40px;
display: flex;
justify-content: space-between;
align-items: center;
}

.warrantyFlex:last-child {
margin-bottom: 0;
}

.warrantyL {
width: 230px;
}

.warrantyR {
width: 450px;
text-align: justify;
}

.warrantyR h3 {
font-size: 1.7rem;
font-weight: 600;
color: var(--bearColor);
margin-bottom: 15px;
}

.warrantyEtcFlex {
width: 580px;
margin: 0 auto;
display: flex;
justify-content: center;
}

.warrantyEtc {
width: 230px;
text-align: justify;
margin: 0 auto;
margin-bottom: 30px;
}

.warrantyEtc:nth-of-type(5),
.warrantyEtc:nth-of-type(6),
.warrantyEtc:nth-of-type(7),
.warrantyEtc:nth-of-type(8) {
margin-bottom: 0;
}

.warrantyEtcImg {
width: 100%;
}

.warrantyEtc h3 {
font-weight: 600;
text-align: center;
margin: 15px auto;
margin-bottom: 10px;
}

#warrantyOther {
width: auto;
text-align: left;
display: table;
margin: 0 auto;
margin-top: 50px;
}

/**/

#pricePlanCoFlex {
display: flex;
justify-content: center;
flex-wrap: wrap;
}

.pricePlanCo {
position: relative;
background-color: #fff;
width: 540px;
text-align: center;
margin: 0 30px;
margin-bottom: 60px;
padding: 0 0 20px;
overflow: hidden;
border-radius: 30px;
box-shadow: 8px 8px 0 var(--bearColor);
}

.pricePlanCo .triangle {
position: absolute;
background-color: #f7df5f;
width: 170px;
height: calc(100px / 2 * tan(60deg));
clip-path: polygon(50% 0, 100% 100%, 0 100%);
content: "";
text-align: center;
transform: rotate(45deg);
line-height: 1;
z-index: 1;
right: -80px;
top: -30px;
}

.pricePlanCo .triangle::after {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 1.2rem;
font-weight: 700;
content: "PLAN";
color: var(--bearColor);
margin: auto;
transform: rotate(0deg);
z-index: 2;
left: -10px;
right: 0;
bottom: 10px;
}

.pricePlanCo h3 {
position: relative;
background-color: var(--themeColor);
font-size: 2.8rem;
font-weight: 600;
color: #fff;
margin: 0 auto;
padding: 30px 0;
line-height: 1.3;
}

.pricePlanPhotoFlex {
display: flex;
justify-content: space-between;
}

.pricePlanPhoto {
width: 33.33333333333%;
}

.pricePlanCo h3 em {
font-size: 4rem;
display: block;
letter-spacing: 0;
}

.pricePlanCo h3 span {
font-size: 2.8rem;
}

.pricePlanCo .mark {
height: 60px;
font-size: 1.4rem;
margin-bottom: 40px;
}

.pricePlanCo .price {
font-size: 2.5rem;
margin: 20px auto;
margin-bottom: 0;
line-height: 1.3;
}

.pricePlanCo .price span {
font-size: 6.2rem;
color: var(--themeColor);
}

.pricePlanCo .price em {
font-size: 3.8rem;
}

.pricePlanCo .priceTaxin {
font-size: 1.6rem;
margin-bottom: 20px;
line-height: 1;
}

.pricePlanCo .priceTaxin em {
font-size: 2.2rem;
}

.pricePlanCo .guarantee {
background-color: #f7df5f;
width: 210px;
font-size: 1.6rem;
color: var(--bearColor);
margin: 0 auto;
margin-bottom: 30px;
padding-bottom: 14px;
border-radius: 10px;
line-height: 1;
}

.pricePlanCo .guarantee span {
position: relative;
font-size: 3rem;
top: 4px;
}

.pricePlanCoTxt {
text-align: justify;
margin-top: 40px;
padding: 0 60px;
}

/**/

#blogNav {
margin-bottom: 60px;
border-bottom: 2px solid var(--themeColor);
}

#blogNav ul {
display: flex;
justify-content: center;
}

#blogNav ul li {
background-color: #fff;
min-width: 200px;
text-align: center;
margin: 0 5px;
border-left: 2px solid var(--themeColor);
border-top: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
border-radius: 20px 20px 0 0;
transition: .3s;
}

#blogNav ul li:hover {
background-color: var(--themeColor);

}

#blogNav ul li a {
width: 100%;
height: 100%;
font-weight: 600;
color: var(--themeColor);
padding: 12px 20px;
display: block;
transition: .3s;
}

#blogNav ul li a:hover {
color: #fff;
}

/**/

#worksFlex {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}

.works {
position: relative;
width: 380px;
font-size: 1.4rem;
text-align: justify;
margin-right: 30px;
margin-bottom: 30px;
padding-right: 8px;
overflow: hidden;
border-radius: 30px;
line-height: 1.7;
}

.works:nth-of-type(3n) {
margin-right: 0;
}

.works a {
color: var(--txtColor);
display: block;
}

.works a:hover {
color: var(--themeColor);
text-decoration: none;
}

.works .worksPhoto {
position: relative;
width: 100%;
height: 240px;
overflow: hidden;
border-radius: 20px;
box-shadow: 8px 8px 0 var(--themeColor);
}

.works .worksPhoto img {
width: 100%;
height: 240px;
object-fit: cover;
transition: .3s ease-in-out;
}

.works .worksPhoto:hover img,
.works .inner:hover .worksPhoto img {
transform: scale(1.1);
}

.works .triangle,
.blogCo .triangle {
position: absolute;
background-color: var(--themeColor);
width: 150px;
height: calc(100px / 2 * tan(60deg));
clip-path: polygon(50% 0, 100% 100%, 0 100%);
content: "";
text-align: center;
transform: rotate(45deg);
line-height: 1;
z-index: 1;
right: -70px;
top: -40px;
}

.works .triangle::after,
.blogCo .triangle::after {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 1.1rem;
font-weight: 700;
content: "NEW";
color: #fff;
margin: auto;
transform: rotate(0deg);
z-index: 2;
left: 0;
right: 0;
bottom: 10px;
}

.blogCo .category {
position: absolute;
background-color: var(--bearColor);
min-width: 120px;
height: 30px;
font-size: 1.2rem;
font-weight: 600;
color: #fff;
text-align: center;
padding: 0 17px;
border-radius: 0 10px 0 0;
line-height: 28px;
z-index: 1;
left: 0;
bottom: 0;
}

.works .inner {
position: relative;
background: #fff;
width: 92%;
margin-top: -30px;
padding: 20px 20px 26px 26px;
border-radius: 0 5px 5px 30px;
transition: .3s;
z-index: 1;
border-left: 2px solid var(--themeColor);
border-bottom: 2px solid var(--themeColor);
}

.works .inner:hover {
background-color: var(--themeColor);
color: #fff;
}

.works .inner h3 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 10px;
line-height: 1.5;
}

.works .inner:hover h3 {
color: #fff;
}

.works p {
margin-bottom: 10px;
}

.slide .worksAfter,
.works .worksAfter {
position: absolute;
background-color: var(--bearColor);
font-family: var(--font-kodchasan);
width: 60px;
height: 60px;
font-size: 1.2rem;
font-weight: 700;
text-align: center;
color: #fff;
border-radius: 60px;
line-height: 58px;
z-index: 1;
left: 20px;
top: 160px;
}

#postFlex {
width: 100%;
text-align: justify;
margin: 0 auto;
display: flex;
justify-content: space-between;
}

.post {
position: relative;
width: 920px;
text-align: justify;
color: var(--txtColor);
}

.post a {
color: #2271b1;
text-decoration: underline;
}

.beforeAfterFlex {
position: relative;
width: 100%;
display: flex;
justify-content: space-between;
}

.beforeAfterWrap {
position: relative;
width: 48%;
margin-bottom: 30px;
}

.beforeAfter {
width: 100%;
height: 335px;
overflow: hidden;
border-radius: 20px;
box-shadow: 8px 8px 0 var(--themeColor);
}

.beforeAfter img {
width: 100%;
height: 335px;
object-fit: cover;
}

.beforeAfterWrap .worksBefore {
position: absolute;
background-color: #fff;
font-family: var(--font-kodchasan);
width: 70px;
height: 70px;
font-size: 1.2rem;
font-weight: 700;
text-align: center;
color: var(--bearColor);
border-radius: 70px;
border: 1px solid var(--bearColor);
line-height: 68px;
z-index: 1;
left: -10px;
top: -10px;
}

.beforeAfterWrap .worksAfter {
position: absolute;
background-color: var(--bearColor);
font-family: var(--font-kodchasan);
width: 70px;
height: 70px;
font-size: 1.2rem;
font-weight: 700;
text-align: center;
color: #fff;
border-radius: 70px;
border: 1px solid var(--bearColor);
line-height: 68px;
z-index: 1;
right: -10px;
top: -10px;
}

.beforeAfterFlex .arrow {
position: absolute;
width: 140px;
margin: auto;
z-index: 1;
top: 45%;
left: 50%;
transform: translateY(-45%)translateX(-50%);
}

.worksDetail {
margin: 50px auto;
margin-top: 20px;
border-top: 1px dotted #ccc
}

.worksDetail dt {
float: left;
font-weight: 700;
color: var(--themeColor);
padding: 20px 0;
}

.worksDetail  dd {
padding: 20px 0 20px 120px;
border-bottom: 1px dotted #ccc
}

.stateFlex {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.stateWrap {
width: 48%;
margin-bottom: 30px;
}

.stateWrap div {
width: 100%;
height: 335px;
margin-bottom: 20px;
overflow: hidden;
border-radius: 20px;
box-shadow: 8px 8px 0 var(--themeColor);
}

.stateWrap div img {
width: 100%;
height: 335px;
object-fit: cover;
}

.postSide {
width: 220px;
}

.postSide h3 {
position: relative;
font-size: 1.4rem;
font-weight: 700;
color: var(--themeColor);
margin-bottom: 20px;
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
}

.postSide ul {
margin-bottom: 40px;
}

.postSide li {
font-size: 1.4rem;
list-style: none;
}

.postTagList {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}

.postTagList li {
background-color: #ddd;
width: auto;
height: 20px;
font-size: 1.2rem;
display: inline-block;
margin: 0 5px 5px 0;
padding: 0 8px;
line-height: 18px;
}

.worksSideRankingWrap,
.blogSideRankingWrap {
position: relative;
width: 100%;
margin-bottom: 20px;
}

.worksSideRankingWrap .number,
.blogSideRankingWrap .number {
position: relative;
font-family: var(--font-kodchasan);
font-size: 1.5rem;
font-weight: 700;
color: var(--themeColor);
margin-bottom: 10px;
line-height: 1;
}

.worksSideRanking {
position: relative;
background-color: #fff;
width: 100%;
}

.worksSideRanking a {
color: var(--txtColor);
text-decoration: none;
}

.worksSideRanking .worksPhoto {
position: relative;
width: 100%;
height: 150px;
overflow: hidden;
border-radius: 20px;
box-shadow: 5px 5px 0 var(--themeColor);
}

.worksSideRanking .worksPhoto img {
width: 100%;
height: 150px;
object-fit: cover;
transition: .3s ease-in-out;
}

.worksSideRanking .worksPhoto:hover img {
transform: scale(1.1);
}

.worksSideRanking:hover .inner {
color: var(--themeColor);
}

.worksSideRanking .inner {
position: relative;
background: #fff;
width: 92%;
font-size: 1.2rem;
margin-top: -20px;
padding: 15px 15px 16px 16px;
border-radius: 0 5px 5px 20px;
transition: .3s;
z-index: 1;
border-left: 2px solid var(--themeColor);
border-bottom: 2px solid var(--themeColor);
}

.worksSideRanking .inner:hover {
background-color: var(--themeColor);
}

.worksSideRanking .inner:hover {
color: #fff;
}

.worksSideRanking h4 {
font-size: 1.3rem;
font-weight: 700;
color: var(--txtColor);
margin-bottom: 5px;
line-height: 1.5;
transition: .3s;
}

.worksSideRanking:hover h4 {
color: var(--themeColor);
}

.worksSideRanking .inner:hover h4 {
color: #fff;
}

.blogSideRankingWrap .blogCo {
width: 100%;
margin-bottom: 0;
box-shadow: 5px 5px 0 var(--themeColor);
}

.blogSideRankingWrap .blogPhoto {
width: 100%;
height: 150px !important;
overflow: hidden;
}

.blogSideRankingWrap .blogPhoto img {
width: 100%;
height: 150px !important;
object-fit: cover;
transition: .3s ease-in-out;
}

.blogSideRankingWrap .blogPhoto:hover img {
transform: scale(1.1);
}

.blogSideRankingWrap .blogCo .inner {
font-size: 1.3rem;
font-weight: 700;
line-height: 1.5;
padding: 15px 20px 18px;
}

#relatedArticlesPost {
width: 100%;
margin-bottom: 100px;
display: flex;
justify-content: space-between;
}

#relatedArticlesPost a {
color: var(--txtColor);
text-decoration: none;
}

#relatedArticlesPost .works,
#relatedArticlesPost .blogCo {
position: relative;
width: 30.5%;
margin: 0;
}

#relatedArticlesPost .blogCo a:hover {
color: var(--themeColor);
}

#relatedArticlesPost .works .worksPhoto,
#relatedArticlesPost .blogCo .blogPhoto {
position: relative;
width: 100%;
height: 180px;
overflow: hidden;
}

#relatedArticlesPost .works .worksPhoto img,
#relatedArticlesPost .blogCo .blogPhoto img {
width: 100%;
height: 180px;
object-fit: cover;
transition: .3s ease-in-out;
}

#relatedArticlesPost .works .worksPhoto:hover img {
transform: scale(1.1);
}

#relatedArticlesPost .works .inner {
position: relative;
width: 90%;
font-size: 1.2rem;
text-align: left;
margin-top: -20px;
padding: 18px 20px;
z-index: 1;
}

#relatedArticlesPost .blogCo .inner {
padding: 18px 20px;
}

#relatedArticlesPost .blogCo .inner h3 {
margin: 0 0 5px;
padding: 0;
border: 0;
}

#relatedArticlesPost .works .inner:hover h3 {
color: #fff;
}

#relatedArticlesPost .works h3 {
font-size: 1.4rem;
font-weight: 700;
color: var(--txtColor);
margin-top: 0;
margin-bottom: 5px;
padding-left: 0;
border-left: 0;
transition: .3s;
}

#relatedArticlesPost .works:hover h3 {
color: var(--themeColor)
}

/**/

#postTitle {
position: relative;
font-size: 3.4rem;
font-weight: 700;
margin-bottom: 40px;
padding-bottom: 25px;
border-bottom: 1px solid #ddd;
line-height: 1.4;
}

#postTitle::before {
position: absolute;
background-color: var(--themeColor);
width: 100px;
height: 2px;
content: "";
left: 0;
bottom: 0;
z-index: 1;
}

#postDate {
font-family: var(--font-kodchasan);
font-weight: 700;
color: var(--themeColor);
margin-bottom: 40px;
}

.postBlogThumbnail {
margin-bottom: 40px;
}

.post h2 {
font-size: 2.8rem;
font-weight: 700;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--themeColor);
}

.post h3 {
font-size: 2.4rem;
font-weight: 700;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--themeColor);
}

.post h4 {
font-size: 2rem;
font-weight: 700;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--themeColor);
}

.post h5 {
font-size: 1.7rem;
font-weight: 700;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--themeColor);
}

.post ol {
list-style: decimal;
padding-inline-start: 20px;
margin-bottom: 32px;
}

.post ul {
list-style: disc;
padding-inline-start: 20px;
margin-bottom: 32px;
}

#supervisorWrap {
background-color: var(--subColor);
width: 100%;
margin: 40px auto;
padding: 30px 60px;
border-radius: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}

#supervisorPhotoWrap {
position: relative;
width: 150px;
}

#supervisorPhoto {
width: 150px;
height: 150px;
overflow: hidden;
border-radius: 150px;
}

#supervisorPhoto img {
width: 100%;
height: 150px;
object-fit: cover;
}

#supervisorPlate {
position: absolute;
background-color: var(--themeColor);
width: 90%;
height: 30px;
color: #fff;
font-size: 1.4rem;
font-weight: 600;
text-align: center;
margin: 0 auto;
border-radius: 100px;
line-height: 28px;
z-index: 1;
left: 0;
right: 0;
bottom: 0;
}

#supervisorTxt {
width: 610px;
}

#supervisorName {
font-size: 1.8rem;
font-weight: 600;
}

#toc_container {
background-color: var(--subColor);
width: 100%;
margin: 60px auto;
margin-top: 40px;
padding: 30px 40px 36px;
border-radius: 20px;
}

.toc_title {
font-size: 2rem;
font-weight: 700;
color: var(--themeColor);
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1px solid #ddd;
}

.toc_title::before {
content: '\f03a';
font-family: "Font Awesome 6 Free";
font-wigth: 400;
margin-right: 5px;
}

.toc_list,
.toc_list ul {
margin: 0 !important;
padding-inline-start: 5px !important;
list-style: none !important;
}

.toc_list li {
font-size: 1.6rem;
}

.toc_list li a {
color: var(--txtColor);
text-decoration: none;
}

.toc_list li a:hover {
color: var(--themeColor);
}

.toc_list li::before {
content: "- ";
}

.toc_list li ul li {
font-size: 1.5rem;
margin-left: 15px;
}

.mediaWrap {
width: 100%;
color: var(--themeColor);
text-align: center;
margin: 80px auto;
margin-top: 60px;
}

.mediaWrap i {
font-size: 3.6rem;
color: var(--themeColor);
margin: 0 5px;
}

#prevNextWrap {
margin-top: 30px;
display: flex;
justify-content: space-between;
align-items: center;
}

#prevNextWrap a {
text-decoration: none;
}

.btnBackToList {
background-color: #fff;
font-family: var(--font-primary);
width: 200px;
height: 60px;
font-size: 1.4rem;
font-weight: 600;
color: var(--themeColor);
cursor: pointer;
padding-bottom: 3px;
border: 2px solid var(--themeColor);
border-radius: 100px;
transition: .3s;
}

.btnBackToList:hover {
background-color: var(--themeColor);
color: #fff;
}

.btnPrevWrap,
.btnNextWrap {
width: 110px;
}

.btnPrev,
.btnNext {
position: relative;
background: transparent;
width: 110px;
height: 25px;
font-size: 1.4rem;
font-weight: 700;
text-align: left;
color: var(--themeColor);
border: none;
cursor: pointer;
line-height: 23px;
}

.btnPrev {
text-align: right;
}

.btnPrev::after {
position: absolute;
width: 10px;
height: 10px;
content: "";
margin: auto;
border-top: 2px solid var(--themeColor);
border-left: 2px solid var(--themeColor);
transform: rotate(-45deg);
left: 5px;
top: 0;
bottom: 0;
transition: .5s;
}

.btnNext::after {
position: absolute;
width: 10px;
height: 10px;
content: "";
margin: auto;
border-top: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
transform: rotate(45deg);
z-index: 10;
right: 5px;
top: 0;
bottom: 0;
transition: .5s;
}

.btnNext:hover::after {
right: 0;
}

.btnPrev:hover::after {
left: 0;
}

.wp-block-image {
margin-bottom: 40px;
}

/**/

#wrapConstructionCo {
width: 1200px;
margin: 0 auto;
padding: 60px 0 0;
}

.constructionCo {
position: relative;
width: 100%;
margin-bottom: 80px;
}

.constructionCo .number {
position: absolute;
font-family: var(--font-kodchasan);
font-size: 7rem;
font-weight: 500;
color: #ccc;
line-height: 1;
z-index: 2;
left: 30px;
top: -40px;
}

.constructionCo .constructionPhoto {
overflow: hidden;
border-radius: 30px;
box-shadow: 10px 10px 0 var(--themeColor);
}

.constructionCo .constructionPhoto img {
width: 100%;
height: 600px;
object-fit: cover;
}

.constructionCoTitle {
background-color: var(--bearColor);
width: 60%;
font-size: 3rem;
font-weight: 600;
color: #fff;
text-align: center;
margin: auto;
padding: 14px 10px 22px;
border-radius: 30px 30px 0 0;
border-left: 2px solid var(--themeColor);
border-top: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
line-height: 1.5;
}

.constructionCoTitle span {
font-size: 1.6rem;
display: block;
}

.constructionMb {
margin-bottom: 60px;
}

/**/

#wrapFaqCo {
width: 900px;
margin: 0 auto;
}

#wrapFaqCo .accordion li {
background-color: var(--subColor);
}

/**/

#blogFlex {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}

.blogCo {
position: relative;
background-color: #fff;
width: 368px;
font-size: 1.4rem;
margin-right: 42px;
margin-bottom: 42px;
overflow: hidden;
border-radius: 30px;
box-shadow: 8px 8px 0 var(--themeColor);
line-height: 1.7;
}

.blogCo:nth-of-type(3n) {
margin-right: 0;
}

.blogCo .blogPhoto {
position: relative;
width: 100%;
height: 230px;
overflow: hidden;
border-radius: 20px 20px 0 0;
}

.blogCo .blogPhoto img {
width: 100%;
height: 230px;
object-fit: cover;
transition: .3s ease-in-out;
}

.blogCo .blogPhoto:hover img {
transform: scale(1.1);
}

.blogCo .inner {
background-color: #fff;
text-align: justify;
padding: 26px 30px;
}

.blogCo .inner h3 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 10px;
}

.blogCo .inner p {
margin-bottom: 10px;
}

.blogCo .inner .postDate {
font-family: var(--font-kodchasan);
font-weight: 600;
font-size: 1.3rem;
}

.blogCo a {
transition: .3s;
}

.blogCo a:hover {
color: var(--themeColor);
}

/**/

.pageNavi {
margin: 0 auto;
margin-top: 60px;
}

.wp-pagenavi {
position: relative;
font-size: 1.4rem;
text-align: center;
margin: 0 auto;
display: flex;
justify-content: center;
line-height: 40px;
}

.wp-pagenavi .pages {
display: none;
}

.wp-pagenavi .page {
margin: 0 3px;
}

.wp-pagenavi .current {
background-color: var(--themeColor);
width: 45px;
height: 45px;
color: #fff;
margin: 0 3px;
display: block;
border: 1px solid var(--themeColor) !important;
}

.wp-pagenavi a,
.wp-pagenavi .extend {
width: 45px;
height: 45px;
display: block;
border: 1px solid var(--themeColor) !important;
}
.wp-pagenavi .first,
.wp-pagenavi .last {
display: none;
}

.wp-pagenavi a:hover {
background-color: var(--themeColor);
color: #fff;
}

.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
position: relative;
font-size: 0;
text-indent: -1000px;
border: 0 !important;
}

.wp-pagenavi a:hover.previouspostslink,
.wp-pagenavi a:hover.nextpostslink {
background-color: #fff;
}

.wp-pagenavi .previouspostslink::after {
position: absolute;
width: 12px;
height: 12px;
content: "";
margin: auto;
border-top: 1px solid var(--themeColor);
border-left: 1px solid var(--themeColor);
transform: rotate(-45deg);
left: 0;
right: 0;
top: 0;
bottom: 0;
}

.wp-pagenavi .nextpostslink::after {
position: absolute;
width: 12px;
height: 12px;
content: "";
margin: auto;
border-top: 1px solid var(--themeColor);
border-right: 1px solid var(--themeColor);
transform: rotate(45deg);
left: 0;
right: 0;
top: 0;
bottom: 0;
}

/**/

.btn {
position: relative;
background-color: var(--themeColor);
width: 280px;
height: 70px;
font-size: 1.5rem;
font-weight: 700;
color: #fff;
padding-bottom: 3px;
cursor: pointer;
border: 2px solid var(--themeColor);
border-radius: 100px;
transition: .3s;
}

.btn:hover {
background-color: #fff;
color: var(--themeColor);
}

.btn::before {
position: absolute;
width: 10px;
height: 10px;
content: "";
margin: auto;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(45deg);
transition: .3s;
right: 25px;
top: -2px;
bottom: 0;
}

.btn:hover::before  {
border-top: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
right: 20px;
}

.btnWh {
position: relative;
background-color: #fff;
width: 240px;
height: 60px;
font-size: 1.4rem;
font-weight: 700;
color: var(--themeColor);
padding-bottom: 3px;
cursor: pointer;
border: 2px solid var(--themeColor);
border-radius: 100px;
transition: .3s;
}

.btnWh:hover {
background-color: var(--themeColor);
color: #fff;
}

.btnWh::before {
position: absolute;
width: 10px;
height: 10px;
content: "";
margin: auto;
border-top: 2px solid var(--themeColor);
border-right: 2px solid var(--themeColor);
transform: rotate(45deg);
transition: .3s;
right: 20px;
top: -2px;
bottom: 0;
}

.btnWh:hover::before  {
border-top: 2px solid #fff;
border-right: 2px solid #fff;
right: 15px;
}

/**/

#messageFlex {
width: 100%;
margin: 0 auto;
margin-bottom: 100px;
display: flex;
justify-content: space-between;
}

#message {
width: 755px;
text-align: justify;
}

#message p {
margin-bottom: 22px;
}

#messagePhoto {
width: 390px;
height: 600px;
overflow: hidden;
border-radius: 30px;
box-shadow: 10px 10px 0 var(--themeColor);
}

#messagePhoto img {
width: 100%;
height: 600px;
object-fit: cover;
}

#representative {
width: 260px;
text-align: right;
margin: 0 0 0 auto;
line-height: 1.5;
}

#representative img {
margin-bottom: 15px;
}

#representative span {
font-size: 2.2rem;
}

.outline {
width: 780px;
text-align: left;
margin: 0 auto;
margin-bottom: 100px;
border-top: 1px dotted #ccc;
}

.outline dt {
float: left;
padding: 30px 0;
}

.outline dd {
position: relative;
padding: 30px 0 30px 180px;
border-bottom: 1px dotted #ccc;
}

.outline dd::before {
position: absolute;
background-color: var(--themeColor);
width: 130px;
height: 2px;
content: "";
left: 0;
bottom: 0;
}

.googleMap {
position: relative;
width: 1000px;
height: 0;
margin: 0 auto;
margin-bottom: 80px;
margin-bottom: 0;
padding-top: 40%;
overflow: hidden;
border-radius: 30px;
box-shadow: 10px 10px 0 var(--themeColor);
}

.googleMap iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

#groupCompanyFlex {
background-color: #fff;
width: 1100px;
margin: 0 auto;
margin-bottom: -100px;
padding: 50px 50px 30px;
border-radius: 30px;
box-shadow: 10px 10px 0 var(--themeColor);
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.groupCompany {
width: 300px;
font-size: 1.4rem;
margin-bottom: 30px;
}

.groupLogo {
width: 240px;
height: 80px;
margin: 0 auto;
display: table;
}

.groupCompany a {
display: table-cell;
vertical-align: middle;
}

.groupCompany span {
display: block;
}

/**/

#wrapContact {
width: 1000px;
text-align: justify;
margin: 0 auto;
padding: 80px 0 100px;
}

.contactSubTitle {
position: relative;
font-size: 3rem;
font-weight: 600;
color: var(--bearColor);
margin-bottom: 40px;
padding-bottom: 15px;
border-bottom: 1px solid #ccc;
}

.contactSubTitle::after {
position: absolute;
background-color: var(--themeColor);
width: 130px;
height: 2px;
content: "";
left: 0;
bottom: 0;
}

#stepFlexContact {
margin: 100px auto;
display: flex;
justify-content: center;
flex-wrap: wrap;
}

#stepFlexContact .stepAarrow {
position: relative;
width: 10px;
height: 10px;
margin: 0 30px;
border-top: 2px solid var(--bearColor);
border-right: 2px solid var(--bearColor);
transform: rotate(45deg);
top: 220px;
}

.stepContact {
position: relative;
background-color: #fff;
width: 460px;
font-size: 1.6rem;
font-weight: 600;
color: var(--bearColor);
text-align: center;
margin-bottom: 60px;
display: table;
border-radius: 30px;
border: 2px solid var(--themeColor);
box-shadow: 8px 8px 0 var(--bearColor);
line-height: 1.5;
}

.stepContactTitle {
background-color: var(--themeColor);
border-radius: 27px 27px 0 0;
width: 100%;
height: 80px;
font-size: 2.3rem;
color: #fff;
display: table;
line-height: 1.4;
}

.stepContact h3 {
display: table-cell;
vertical-align: middle;
}

.stepContact .inner {
font-size: 1.5rem;
font-weight: 500;
text-align: justify;
padding: 28px 30px;
line-height: 1.7;
}

.stepContact .inner dt {
float: left;
color: var(--themeColor);
}

.stepContact .inner dd {
padding: 0 0 0 18px;
}

.stepContact .inner dd span {
border-bottom: 1px solid #ee0003;
}

.contectStep {
margin-bottom: 30px !important;
}

.contactCallWrap {
position: relative;
background-color: var(--subColor);
font-family: var(--font-kodchasan);
width: 100%;
font-size: 5rem;
font-weight: 600;
color: var(--themeColor);
text-align: center;
margin: 40px auto;
margin-bottom: 80px;
padding: 40px 40px 50px;
border-radius: 20px;
box-shadow: 10px 10px 0 var(--themeColor);
line-height: 1.2;
}

.contactCallWrap a {
color: var(--themeColor);
}

.contactCallWrap .manager {
font-family: var(--font-primary);
font-size: 1.5rem;
margin-left: 25px;
line-height: 1.5;
}

.contactTxt {
text-align: center;
margin-bottom: 45px;
}

.contactFlex {
width: 100%;
color: var(--txtColor);
padding: 30px 0;
display: flex;
justify-content: space-between;
align-items: center;
border-top: 1px dotted #ccc;
}

.contactFlex p {
margin-bottom: 0;
}

.contactL {
width: 300px;
}

.contactR {
width: 700px;
text-align: left;
}

.contactR .inputW {
background-color: #f2f2f2;
font-family: var(--font-primary);
width: 100%;
height: 80px;
font-size: 1.5rem;
padding: 20px;
border: 1px solid #f2f2f2;
border-radius: 10px;
transition: .3s;
}

.contactR .inputW:hover {
background-color: #fff;
border: 1px solid var(--themeColor);
}

.contactR textarea {
background-color: #f2f2f2;
font-family: var(--font-primary);
width: 100%;
height: 250px;
font-size: 1.5rem;
font-weight: 500;
color: var(--txtColor);
padding: 20px;
border: 1px solid #f2f2f2;
border-radius: 10px;
transition: .3s;
}

.contactR textarea:hover {
background-color: #fff;
border: 1px solid var(--themeColor);
}

.required,
.any {
position: relative;
background-color: #da2124;
width: 46px;
height: 22px;
font-size: 1.1rem;
font-weight: 600;
color: #fff;
text-align: center;
display: inline-block;
margin-right: 10px;
border-radius: 300px;
line-height: 20px;
top: -1px;
}

.any {
background-color: #ccc;
}

.formSelect {
position: relative;
}

.formSelect select {
position: relative;
background-color: #f2f2f2;
font-family: var(--font-primary);
width: 100%;
height: 80px;
font-size: 1.5rem;
font-weight: 500;
color: var(--txtColor);
padding: 20px;
border: 1px solid #f2f2f2;
border-radius: 10px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
transition: .3s;
}

.formSelect select:hover {
background-color: #fff;
border: 1px solid var(--themeColor);
}

.formSelect::after {
position: absolute;
width: 10px;
height: 10px;
content: "";
border-right: 1px solid var(--themeColor);
border-bottom: 1px solid var(--themeColor);
margin: auto;
transform: rotate(45deg);
z-index: 1;
top: -8px;
bottom: 0;
right: 30px;
}

.contactR .checkWrap input[type="checkbox"] {
margin: 0;
padding: 0;
background: none;
border: none;
border-radius: 0;
outline: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}

.contactR .checkWrap input[type="checkbox"] {
display: flex;
flex-wrap: wrap;
gap: .5em 2em;
border: none;
}

.contactR .checkWrap .wpcf7-list-item {
display: inline-block;
}

.contactR .checkWrap .wpcf7-list-item label {
position: relative;
display: flex;
align-items: center;
gap: 0 .3em;
cursor: pointer;
left: -12px;
}

.contactR .checkWrap .wpcf7-list-item label::before,
.contactR .checkWrap .wpcf7-list-item label:has(:checked)::after {
content: '';
}

.contactR .checkWrap .wpcf7-list-item label::before {
position: relative;
background-color: #fff;
width: 20px;
height: 20px;
border-radius: 3px;
border: 1px solid var(--themeColor);
top: 1px;
}

.contactR .checkWrap .wpcf7-list-item label:has(:checked)::before {
background-color: var(--themeColor);
}

.contactR .checkWrap .wpcf7-list-item label:has(:checked)::after {
position: absolute;
top: 6px;
left: 6px;
transform: rotate(45deg);
width: 8px;
height: 12px;
border: solid #fff;
border-width: 0 2px 2px 0;
}

.submitWrap {
position: relative;
width: 100%;
text-align: center;
margin: 0 auto;
margin-bottom: 30px;
padding-top: 60px;
border-top: 1px dotted #ccc;
}

.wpcf7-submit {
background-color: var(--themeColor);
font-family: var(--font-primary);
width: 300px;
height: 90px;
font-size: 2rem;
font-weight: 600;
color: #fff;
padding-bottom: 5px;
cursor: pointer;
transition: .3s;
border: 2px solid #ED9F0C;
border-radius: 500px;
}

.wpcf7-submit:hover {
background-color: #fff;
color: #ED9F0C;
}

.thanksTxt {
text-align: center;
padding: 80px 0 130px;
}

/**/

.privacy {
text-align: justify;
padding-bottom: 100px;
}

.privacy h2 {
font-size: 2rem;
font-weight: 700;
margin-bottom: 30px;
}

/**/

footer {
position: relative;
background-color: var(--subColor);
width: 97vw;
font-size: 1.4rem;
padding: 100px 80px 130px;
border-radius: 0 50px 0 0;
box-shadow: 15px 15px 0 var(--themeColor);
display: flex;
justify-content: space-between;
}

#footerL {
position: relative;
width: 450px;
font-weight: 500;
text-align: left;
}

#footerLogo {
width: 200px;
text-align: center;
margin-bottom: 30px;
}

#footerLogoAllLinkReforms {
position: relative;
font-family: var(--font-kodchasan);
font-size: 1.2rem;
font-weight: 700;
color: var(--bearColor);
margin-top: 3px;
}

#footerFollowUs {
font-family: var(--font-kodchasan);
font-size: 1.4rem;
font-weight: 500;
margin-top: 40px;
margin-bottom: 10px;
line-height: 1;
}

#copyRight {
position: relative;
font-family: var(--font-kodchasan);
font-size: 1.2rem;
font-weight: 500;
margin-top: 30px;
}

#footerR {
width: 750px;
text-align: center;
}

#footerR ul {
display: flex;
justify-content: flex-end;
flex-wrap: wrap;
}

#footerR ul li {
position: relative;
width: 230px;
text-align: center;
margin-bottom: 20px;
border-right: 1px solid #ddd;
}

#footerR ul li:nth-of-type(1),
#footerR ul li:nth-of-type(4),
#footerR ul li:nth-of-type(7),
#footerR ul li:nth-of-type(10) {
border-left: 1px solid #ddd;
}

#footerR ul li a {
position: relative;
font-size: 1.4rem;
color: var(--txtColor);
line-height: 1.5;
}

#footerR ul li a:hover {
text-decoration: underline;
}

#footerAreaSp {
display: none;
}

#footerArea {
width: 560px;
text-align: left;
margin: 30px 0 0 auto;
display: table;
}

#areaMap {
width: 100%;
margin: 20px auto;
margin-bottom: 0;
}

#areaMap img {
border-radius: 30px;
}

#footerBg {
position: fixed;
background: url("../img/footer_bg.svg") repeat-x;
background-size: 1200px;
width: 100%;
height: 62px;
left: 0;
bottom: 0;
z-index: 500;
}

#pagetop {
position: fixed;
background-color: var(--themeColor);
width: 80px;
height: 80px;
border-radius: 20px 0 0;
bottom: -80px;
right: 0;
transition: .3s;
z-index: 1010;
}

#pagetop::before {
position: absolute;
width: 10px;
height: 10px;
content: "";
margin: auto;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(-45deg);
left: 0;
right: 0;
top: 0;
bottom: 0;
}

#kumasan {
position: absolute;
width: 65px;
margin: auto;
left: 0;
right: 0;
top: -78px;
}

.alignright {
float: right;
margin: 0 0 50px 50px;
}

.alignleft {
float: left;
margin: 0 50px 50px 0;
}

.aligncenter {
display: block;
margin: 0 auto;
}

}