/*!
Template:rishun
Theme Name: rishun_child
Theme URI: https://rishuntrading.co.jp
Description: Rishun is a very simple & easy to customize theme which is based on the Bootstrap. It is also very friendly with custom post types and custom taxonomies. When you add a new one, the breadcrumbs will be adjusted and posts will look beautifully without editing or adding a template files.
Author: RishunTrading Limited.
Author URI: https://rishuntrading.co.jp
Version: 1.0.0
Requires at least: 1.0
Tested up to: 1.0.0
Requires PHP: 5.6.0
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Rishun WordPress theme, Copyright (C) 2022 RishunTrading Limited.
Rishun WordPress theme is licensed under the GPL.
Update Author:RishunTrading Limited
Update Author URI:https://rishuntrading.co.jp/
Version:1.0.0
*/
@charset "utf-8";
/************************************************************/
:root{
    --main-color:#0248a3;
    --sub-color:#BFECFF;
    --sub-color2:#80D9FF;
    --sub-color3:#48c8ff;
    --sub-color4:#31b78f;
    --main-thin-color:#e7f0fc;
    --sub-thin-color:#f1fbf9;
    --linear-gradient:linear-gradient(45deg, #80D9FF, #010066);
    --bk-topslide-color:#ebf9ff;
    --mobile-header-button-size:60px;
    --ptnB-sp-header-height:80px;
    --ptnB-pc-header-height:140px;
    --ptnB-pc-menu-height:50px;
    --strength-hero:linear-gradient(135deg, #ceedfb, #eff8fc);
    --strength-difference:rgba(219, 239, 254, 0.5);
    --strength-case:rgba(219, 239, 254, 0.3);
    --strength-faq:rgba(219, 239, 254, 0.3);
    --estate-hero:linear-gradient(135deg, #ceedfb, #eff8fc);
    --estate-faq:rgba(219, 239, 254, 0.3);
    --estate-area:rgba(219, 239, 254, 0.3);
    --estate-flow:rgba(219, 239, 254, 0.3);
    --company-message:rgba(219, 239, 254, 0.3);
    --company-hero:linear-gradient(135deg, #ceedfb, #eff8fc);
    --company-info:rgba(219, 239, 254, 0.3);
    --company-access:rgba(219, 239, 254, 0.3);
    --contact-method:linear-gradient(180deg, #BFECFF 0%, #ffffff 100%);
    --contact-form:rgb(2, 72, 163, 0.4);
    --font-color:#102033;
    --font-color2:#455260;
    --font-color3:#0e0e0e;
    --focus-color:rgb(255, 215, 0);
    --bk-privacy:rgb(230, 242, 251, 0.8);
    --noto-sans:"Noto Sans JP", sans-serif;
    --noto-serif:"Noto Serif JP", serif;
    --sp-pgheader-height: 250px;
    --tb-pgheader-height: 300px;
    --pc-pgheader-height: 350px;
}
/*==========================================================*/
/* defalt define											*/
/*==========================================================*/
body, p{
    font-size:16px;
    font-family:var(--noto-sans);
    color:var(--font-color2);
}
body a{
    color:var(--font-color2);
    font-family:var(--noto-sans);
}
body a:hover{
    color:var(--font-color);
}
.nodata{
    color:#ff0000;
}
img{
    width:100%;
    height:auto;
}
.entry-body img{
    display:unset;
    width:auto;
    height: auto;
    max-width: 100%;
}
.grecaptcha-badge{
    z-index:9999;
}
@media print {
    #mobile-menu {
        display: none !important;
    }
}
/* ブラウザ縮小 80%相当設定 */
@media(min-width:992px){
    .contains-frm {
        max-width: 960px;
    }
    body, p{
        font-size:15px;
    }
    body a{
        font-size:15px;
    }
}
@media(min-width:1200px){
    .contains-frm {
        max-width:1100px;
    }
}
@media(min-width:1400px){
    .contains-frm {
        max-width: 1300px;
    }
}
/*==========================================================*/
/* header                                                   */
/*==========================================================*/
.site-header.ptnB{
    height:0;
}
.ptnB .site-header-wrap{
    box-shadow:none;
    height: var(--ptnB-sp-header-height);
    position: absolute;
    inset:0;
    z-index: 1800;
    background: transparent;
}
.ptnB .site-header-inner{
    justify-content:flex-start;
}
.site-header-logo a img{
    height:var(--ptnB-sp-header-height);
    width:auto;
}
.site-header-contact-btn{
    display:none;
}
.ptnB .site-header-menu>li.only_scroll_show{
    display:none;        
}
@media(min-width:992px){
    .site-header.ptnB{
        height:var(--ptnB-pc-header-height);
    }
    .front-page .site-header.ptnB{
        height:var(--ptnB-pc-header-height);
        background:var(--bk-topslide-color);
    }
    .ptnB .container.site-header-container{
        grid-template-columns: 150px 1fr;
        grid-template-rows: 90px 1fr;
    }
    .ptnB .site-header-inner{
        grid-row:1/3;
        height:var(--ptnB-pc-header-height);
        position:relative;
        z-index:5;
    }
    .site-header-contact-btn{
        display:flex;
        grid-row:1/2;
        grid-column:2/3;
        align-items:center;
        justify-content: flex-end;
        gap:10px;
    }
    .ptnB .site-header-wrap{
        height:var(--ptnB-pc-header-height);
        background: var(--header-bk-color);
        transition:all 0.3s;
    }
    .front-page .ptnB .site-header-wrap{
        opacity:0;
    }
    .front-page .site-header-wrap.site-header-end-anime{
        opacity:1;
    }    
    .site-header-logo a{
        display:block;
        position:relative;
        width:120px;
        height:var(--ptnB-pc-header-height);
    }
    .site-header-logo a img{
        width:100%;
        height:auto;
    }
    .site-header-contact-btn .linelink, .site-header-contact-btn .maillink{
        width:160px;
        height:50px;
        display:flex;
        justify-content: center;
        align-items:center;
        position:relative;
        padding-left:20px;
        line-height:1;
        font-size:15px;
        border-radius:5px;
        transition:all 0.5s;
    }
    .site-header-contact-btn .linelink:hover, .site-header-contact-btn .maillink:hover{
        color:#fff;
        filter:brightness(1.1);
    }
    .site-header-contact-btn .linelink small{
        display:block;
        text-align:center;
        margin-top:4px;
    }
    .site-header-contact-btn .linelink i{
        position:absolute;
        top:50%;
        left:5px;
        translate:0 -50%;
        font-size:32px;
    }
    .site-header-contact-btn .maillink{
        background:var(--main-color);
    }    
    .site-header-contact-btn .maillink i{
        position:absolute;
        top:50%;
        left:10px;
        translate:0 -50%;
        font-size:24px;
    }
    .site-header-contact-wrap{
        display:flex;
        flex-flow:column nowrap;
        line-height:1;
    }
    .site-header-company{
        color:var(--font-color3);
        letter-spacing:0.1em;
        font-family:var(--noto-sans);
        font-size:14px;
    }
    .site-header-biztime{
        color:var(--font-color3);
        letter-spacing:0.1em;
        font-family:var(--noto-sans);
        font-size:14px;
    }
    .site-header-telno{
        font-size:24px;
        letter-spacing:0;
        font-weight:500;
        color:var(--font-color3);
        display:flex;
        align-items:center;
    }
    .site-header-telno a{
        pointer-events:none;
        font-size:24px;
    }
    .ptnB .site-header-nav{
        height:var(--ptnB-pc-menu-height);
        width:100%;
        justify-content:center;
        position:absolute;
        bottom:0;
        left:0;
        z-index:1;
    }
    .menu-globalmenu-container{
        height:100%;
    }
    .site-header-menu{
        height:100%;
    }
    .scrolled .ptnB .site-header-nav{
        position:fixed;
        top:0;
        left:0;
        bottom:auto;
        backdrop-filter: blur(3px);
        background:rgba(255,255,255,0.9);
        z-index:9999;
    }
    .scrolled .ptnB .site-header-menu>li.only_scroll_show{
        display:flex;        
    }
    .scrolled .site-header-menu>li>a{
        min-width:100px;
        padding:0 20px;
    }
}
/*==========================================================*/
/* header drop animation                                    */
/*==========================================================*/
/* 下層ページ用：初期状態 */
body:not(.front-page) .site-header-wrap,
body:not(.front-page) #mobile-button{
    opacity:0;
    visibility:hidden;
    transition:
        opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.5s,
        visibility 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
    will-change:opacity;
}
/* transform は site-header-wrap ではなく、中の要素にかける */
body:not(.front-page) .site-header-wrap > *,
body:not(.front-page) #mobile-button{
    transform:translateY(-24px);
    transition:
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
    will-change:transform;
}
/* 下層ページ用：表示状態 */
body:not(.front-page).is-header-drop-show .site-header-wrap,
body:not(.front-page).is-header-drop-show #mobile-button{
    opacity:1;
    visibility:visible;
}
body:not(.front-page).is-header-drop-show .site-header-wrap > *,
body:not(.front-page).is-header-drop-show #mobile-button{
    transform:translateY(0);
}
/*==========================================================*/
/* header menu                                              */
/*==========================================================*/
@media(min-width:992px){
    .site-header-menu>li>a{
        font-size:15px;
        font-weight:500;
        letter-spacing:0.1em;
        min-width:150px;
        height:100%;
        padding:0;
        display:flex;
        justify-content: center;
        align-items: center;
    }
    .site-header-menu>li>a::before{
        border-radius:0;
    }
    .site-header-menu>li>.menu-trigger{
        font-size:16px;
        font-weight:500;
        letter-spacing:0.1em;
    }
    .site-header-menu ul.sub-menu>li>a{
        font-size:16px;
        font-weight:500;
    }
    .site-header-menu ul.sub-menu>li a:hover {
        background:var(--sub-color);
        color:#222;
    }
}
@media(min-width:1200px){
    .site-header-menu>li>a{
        min-width:180px;
    }
}
@media(min-width:1400px){
    .site-header-menu>li>a{
        min-width:200px;
    }
}
/*==========================================================*/
/* mobile menu                                              */
/*==========================================================*/
.mobile-fixed-btn{
    position:fixed;
    top:0;
    right:0;
    z-index:2000;
    display:flex;
    flex-flow:row wrap;
    caret-color:transparent;
}
/* mobile menu */
.scrolled .mobile-navi-btn.right{
    position:relative;
}
.mobile-navi-btn.right{
    display:block;
    width:var(--mobile-header-button-size);
    height:var(--mobile-header-button-size);
    top:0;
    right:0;
    background:var(--burger-bkcolor);
    position:relative;
}
.scrolled .mobile-navi-btn.right{
    box-shadow:none;
}
.mobile-navi-btn span{
    position: absolute;
    background:#fff;
    height:2px;
    width:30px;
    left:50%;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    transition: all .3s;
}
.mobile-navi-btn span:nth-child(1){
    top:34%;
}
.mobile-navi-btn span:nth-child(2){
    top:50%;
}
.mobile-navi-btn span:nth-child(3){
    top:66%;
}
.mobile-navi-btn.mobile-navi-open{
    background:var(--burger-bkcolor);
    box-shadow:none;
}
.mobile-navi-btn.mobile-navi-open span:nth-child(1){
    transform-origin: top center;
    top:50%;
    left:15px;
    transform: rotate(135deg) translate(0, -50%);
}
.mobile-navi-btn.mobile-navi-open span:nth-child(2){
    opacity: 0;
}
.mobile-navi-btn.mobile-navi-open span:nth-child(3){
    transform-origin: top center;
    left:15px;
    top:50%;
    transform: rotate(45deg) translate(0, -50%);
}
.mobile-telno-btn a{
    width:var(--mobile-header-button-size);
    height:var(--mobile-header-button-size);
    background:rgb(191, 236, 255, 0.9);
    color:var(--main-color);
    border:solid 1px var(--main-color);
    display:flex;
    justify-content:center;
    align-items:center;
    line-height:1;
}
.mobile-telno-btn a i{
    font-size:24px;
}
.mobile-telno-btn a small{
    display:block;
    text-align:center;
    letter-spacing:0.1em;
    margin-top:4px;
}
.mobile-menu-slide{
    background:var(--linear-gradient);
}
.site-mobile-menu>li>a, .site-mobile-menu>li>button.menu-trigger{
    font-weight:400;
    letter-spacing:0.1em;
    font-family:var(--noto-sans);
}
.site-mobile-menu ul.sub-menu>li>a{
    font-weight:400;
    letter-spacing:0.1em;
    font-family:var(--noto-sans);
}
.site-mobile-menu>li.menu-item-has-children>a::before, .site-mobile-menu>li.menu-item-has-children>a::after, .site-mobile-menu>li.menu-item-has-children>button.menu-trigger::before, .site-mobile-menu>li.menu-item-has-children>button.menu-trigger::after{
    background:var(--main-color);
}
@media(min-width:992px){
    .mobile-fixed-btn{
        display:none;
    }
}
/*==========================================================*/
/* loading      											*/
/*==========================================================*/
.intro-layers{
    width:100vw;
    height:100vh;
    position:fixed;
    inset:0;
    z-index:3000;
}
.intro-layers .wrap{
    width:100%;
    height:100%;
    background:#f0f0f0;
    display:flex;
    justify-content:center;
    align-items:center;
}
.logo_title{
    width:250px;
    opacity:1;
}
.logo_title .tp-main-logo{
    display:table;
    width:150px;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
    opacity:0;
}
.logo-sub{
    display:flex;
    width:100%;
    gap:20px;
    margin-left:auto;
    margin-right:auto;
    margin-top:20px;
}
.logo-sub>div{
    width:calc((100% - 20px) / 2);
    opacity:0;
}
@media(min-width:768px){
    .logo_title{
        width:300px;
        opacity:1;
    }
    .logo_title .tp-main-logo{
        width:200px;
    }
    .logo-sub{
        gap:40px;
    }
    .logo-sub>div{
        width:calc((100% - 40px) / 2);
    }
}
/*==========================================================*/
/* page header                                              */
/*==========================================================*/
.page-header{
    overflow: hidden;
}
.page-header-wrap{
    filter:blur(1px);
}
.page-header-ttl{
    margin-top:20px;
    font-weight:700;
}
.page-header-ttl .jp{
    letter-spacing:0.1em;
}
.page-header-ttl .en{
    letter-spacing:0.1em;
}
.real-estate-pgheader .page-header-ttl, .cleaning-pgheader .page-header-ttl{
    display:flex;
    flex-flow:row nowrap;
    align-items:center;
    justify-content:center;
}
.page-header-h1{
    display:table;
    font-size:24px;
    font-weight:700;
    padding: 0;
    border: 0;
    margin:0 auto 10px 0;
    color: var(--pghead-font-color);
    text-shadow: 2px 0 3px var(--pghead-font-frame-color), 0 2px 3px var(--pghead-font-frame-color), 2px 2px 3px var(--pghead-font-frame-color), -2px 0 3px var(--pghead-font-frame-color), -2px 2px 3px var(--pghead-font-frame-color), 0 -2px 3px var(--pghead-font-frame-color), -2px -2px 3px var(--pghead-font-frame-color), 2px -2px 3px var(--pghead-font-frame-color);
}
.page-header-h1 span{
    display:block;
    text-align:center;
}
.page-header-h1 small{
    letter-spacing: 0.1em;
    font-size: 16px;
    display:block;
    text-align:center;
}
.page-header-logo{
    width:140px;
    margin:0 0 0 auto;
}
@media(min-width:768px){
    .page-header-h1{
        font-size:36px;
        margin:0 auto 10px 10px;
    }
    .page-header-logo{
        margin:0 10px 0 auto;
        width:180px;
    }
    .page-header-h1 small{
        font-size: 18px;
    }
}
/*==========================================================*/
/* top slide      											*/
/*==========================================================*/
.topslide-sec{
    position:relative;
    padding:0;
    background:#fff;
}
.slider-wrapper{
    width:100%;
    position:relative;
    height:400px;
}
.slider-wrapper:before{
    content:'';
    width:100%;
    height:100%;
    background:rgba(255,255,255,0.4);
    position:absolute;
    inset:0;
    z-index:1;
}
.slider-wrapper .slide{
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    opacity:0;
    overflow:hidden;
}
.slider-wrapper .slide img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.catchcopy{
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    padding-left:20px;
    display:flex;
    align-items:flex-end;
    z-index:2;
    opacity:0;
}
.catchcopy>div{
    background:rgba(255, 255, 255, 0.3);
    padding:20px;
}
.catchcopy h2{
    color:var(--main-color);
    font-size:23px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:2;
    margin-bottom:20px;
/*
    text-shadow: 
    2px 2px 5px rgb(255, 255, 255, 0.9),
    -2px -2px 5px rgb(255, 255, 255, 0.9),
    2px -2px 5px rgb(255, 255, 255, 0.9),
    -2px 2px 5px rgb(255, 255, 255, 0.9),
    0 3px 5px rgb(255, 255, 255, 0.9),
    0 -3px 5px rgb(255, 255, 255, 0.9),
    -3px 0 5px rgb(255, 255, 255, 0.9),
    3px 0 5px rgb(255, 255, 255, 0.9);
*/
}
.catchcopy p{
    color:#222;
    font-size:16px;
    font-weight:400;
    letter-spacing:0.1em;
}
.tpslide-btn{
    display:none;
    position:absolute;
    bottom:20px;
    right:20px;
    opacity:0;
}
@media(min-width:768px){
    .slider-wrapper{
        height:700px;
    }
    .catchcopy{
        padding-left:calc((100vw - 700px) / 2);
    }
    .catchcopy h2{
        font-size:40px;
    }
    .catchcopy p{
        font-size:20px;
    }
    .br_catchcopy{
        display:none;
    }
}
@media(min-width:992px){
    .topslide-sec{
        background:var(--bk-topslide-color);
    }
    .topslide-sec .hero-slider{
        padding-left:calc((50vw - 470px) + 200px);
    }
    .slider-wrapper{
        height:600px;
    }
    .catchcopy{
        padding-left:calc((100vw - 940px) / 2);
        padding-bottom:120px;
    }
    .catchcopy>div{
        background:transparent;
    }
    .catchcopy h2{
        font-size:36px;
    }
    .catchcopy p{
        font-size:20px;
    }
    .tpslide-btn{
        display:flex;
        right:calc((100vw - 940px) / 2);
        flex-flow:row nowrap;
        z-index:5;
    }
    .tpslide-btn a{
        display:flex;
        width:200px;
        height:50px;
        border-radius:25px;
        align-items:center;
        justify-content:center;
        position:relative;
        color:#fff;
        font-weight:700;
        padding-left:10px;
        transition:transform 0.5s;
    }
    .tpslide-btn a:hover{
        transform:scale(1.1);
        color:#fff;
    }
    .tpslide-btn a i{
        content:'';
        font-size:24px;
        position:absolute;
        top:50%;
        left:20px;
        transform:translateY(-50%);
    }
    .tpslide-btn .linelink{
        background:var(--hd-left-bt-color);
        margin-right:15px;
        line-height:1;
    }
    .tpslide-btn .emaillink{
        background:var(--main-color);
        margin-right:15px;
    }
    .tpslide-btn .telnolink{
        background:var(--sub-color);
        color:var(--main-color);
        pointer-events:none;
        border:solid 1px var(--main-color);
        line-height:1.2;
    }
    .tpslide-btn .telnolink small{
        display:block;
        font-size:12px;
        font-weight:400;
        text-align:center;
    }
    .tpslide-btn .linelink small{
        display:block;
        text-align:center;
        font-size:14px;
        font-weight:400;
        margin-top:4px;
    }
}
@media(min-width:1200px){
    .topslide-sec .hero-slider{
        padding-left:calc((50vw - 560px) + 200px);
    }
    .catchcopy{
        padding-left:calc((100vw - 1120px) / 2);
    }
    .catchcopy h2{
        letter-spacing:0.1em;
    }
    .catchcopy p{
        letter-spacing:0.1em;
    }
    .tpslide-btn{
        right:calc((100vw - 1120px) / 2);
    }
}
@media(min-width:1400px){
    .topslide-sec .hero-slider{
        padding-left:calc((50vw - 650px) + 200px);
    }
    .catchcopy{
        padding-left:calc((100vw - 1300px) / 2);
    }
    .tpslide-btn{
        right:calc((100vw - 1300px) / 2);
    }
}
/*==========================================================*/
/* top service page button  								*/
/*==========================================================*/
.tpservice-sec{
    position:relative;
    background:var(--bk-topslide-color);
    padding:20px 0 20px 0;
}
.tpservice-btn{
    display:flex;
    width:100%;
    flex-flow:row wrap;
    margin-bottom:20px;
}
.tpservice-btn a{
    display:flex;
    width:100%;
    max-width:350px;
    height:100px;
    justify-content:center;
    align-items:center;
    color:#000;
    border-radius:5px;
    position:relative;
    padding-left:60px;
    letter-spacing:0.1em;
    font-size:18px;
    font-weight:400;
    margin-left:auto;
    margin-right:auto;
    box-shadow:3px 3px 5px rgba(0,0,0,0.1);
    transition:transform 0.5s;
}
.tpservice-btn a:hover{
    transform:translate3d(3px,3px,3px);
    box-shadow:none;
    opacity:1;
}
.tpservice-btn a img{
    width:auto;
    height:80px;
    position:absolute;
    left:10px;
    top:50%;
    translate:0 -50%;
}
.tpservice-btn a.cl_estate_link{
    border:solid 3px var(--main-color);
    margin-bottom:20px;
    background:#fff;
}
.tpservice-btn a.cl_cleaning_link{
    border:solid 3px var(--main-color);
    background:#fff;
}
.tpservice-btn a i{
    position:absolute;
    top:50%;
    right:10px;
    translate:0 -50%;
    font-size:24px;
    color:var(--main-color);
}
.tpservice-suumo-btn{
    width:100%;
}
.tpservice-suumo-btn a{
    display:block;
    max-width:250px;
    margin:0 auto;
    margin-bottom:10px;
    transition:all 0.3s;
}
.tpservice-suumo-btn a:hover{
    transform:translate3d(3px,3px,3px);
    filter:brightness(1.1);
}
.tpservice-suumo-btn p{
    font-size:14px;
    letter-spacing:0.1em;
    line-height:1.7;
    text-align:center;
}
@media(min-width:992px){
    .tpservice-sec{
        padding:40px 0;
    }
    .tpservice-btn a.cl_estate_link{
        margin-bottom:0;
    }
    .tpservice-btn a{
        font-size:17px;
    }
}

/*==========================================================*/
/* top common section                                       */
/*==========================================================*/
.tp-section-head{
    margin-bottom:40px;
}
.tp-section-en{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    margin-bottom:10px;
    text-align:center;
}
.tp-section-ttl{
    color:#102033;
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:40px;
    text-align:center;
}
.tp-section-ttl span{
    display:inline-block;
    position:relative;
    padding-bottom:20px;
}
.tp-section-ttl span::after{
    content:'';
    width:70px;
    height:3px;
    border-radius:3px;
    background:var(--linear-gradient);
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
}
.tp-section-lead{
    margin-left:auto;
    margin-right:auto;
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    text-align:justify;
}
.tp-more-link{
    text-align:center;
    margin-top:35px;
}
.tp-more-link a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:50px;
    max-width:300px;
    padding-right:20px;
    border-radius:30px;
    background:#fff;
    border:solid 1px var(--main-color);
    color:var(--main-color);
    font-weight:700;
    letter-spacing:0.1em;
    text-decoration:none;
    transition:all 0.4s;
    line-height:1;
    margin-left:auto;
    margin-right:auto;
    position:relative;
}
.tp-more-link a i{
    font-size:24px;
    position:absolute;
    top:50%;
    right:20px;
    translate:0 -50%;
}
.tp-more-link a:hover{
    background:var(--main-color);
    color:#fff;
}
.js-scroll-fade{
    opacity:0;
    transform:translateY(30px);
    filter:blur(10px);
    transition:opacity 0.8s ease, transform 0.8s ease, filter 0.8s ease;
}
.js-scroll-fade.is-show{
    opacity:1;
    transform:translateY(0);
    filter:blur(0);
}
@media(min-width:768px){
    .tp-section-en{
        text-align:center;
    }
    .tp-section-ttl{
        font-size:32px;
    }
}
@media(min-width:992px){
    .tp-section-ttl{
        font-size:30px;
    }
}

/*==========================================================*/
/* top concept                                              */
/*==========================================================*/
.tpconcept-sec{
    position:relative;
    padding:80px 0;
    background:rgb(255, 255, 255,0.4);
    overflow:hidden;
}
.tpconcept-sec::before{
    content:'';
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(60, 218, 177, 0.12);
    position:absolute;
    top:40px;
    right:-90px;
}
.tpconcept-wrap{
    position:relative;
    display:flex;
    flex-flow:column wrap;
    gap:40px;
    z-index:1;
}
.tpconcept-img{
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 15px 35px rgba(1, 96, 179, 0.12);
}
.tpconcept-img img{
    width:100%;
    height:auto;
    display:block;
}
.tpconcept-desc p.tpconcept-catch{
    color:var(--main-color);
    font-size:20px;
    font-weight:700;
    line-height:1.7;
    margin-bottom:20px;
}
.tpconcept-desc p.tpconcept-catch br{
    display:none;
}
.tpconcept-desc{
    background:#f7fbff;
    border-left:solid 4px var(--sub-color2);
    border-radius:20px;
    padding:30px 20px;
    text-align:justify;
}
.tpconcept-desc p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
}
@media(min-width:768px){
    .tpconcept-desc p.tpconcept-catch{
        font-size:18px;
    }
}
@media(min-width:992px){
    .br_sp{
        display: none;
    }
    .tpconcept-wrap{
        flex-flow:row nowrap;
        align-items:center;
        gap:50px;
    }
    .tpconcept-img{
        width:52%;
    }
    .tpconcept-desc{
        width:48%;
        padding:30px 25px;
        margin-left:-90px;
        background:rgba(247, 251, 255, 0.94);
        backdrop-filter:blur(6px);
    }
    .tpconcept-catch{
        font-size:28px;
    }
}

/*==========================================================*/
/* top reason                                               */
/*==========================================================*/
.tpreason-sec{
    padding:80px 0;
    position:relative;
}
.tpreason-sec::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.8;
    position:absolute;
    inset:0;
    z-index:-1;
}
.tpreason-list{
    display:grid;
    grid-template-columns:1fr;
    gap:40px;
}
.tpreason-card{
    position:relative;
    background:rgb(255, 255, 255, 0.8);
    border-radius:22px;
    padding:34px 24px 28px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.1);
    overflow:hidden;
}
.tpreason-card::before{
    content:'';
    width:110px;
    height:110px;
    border-radius:50%;
    background:rgba(60, 218, 177, 0.1);
    position:absolute;
    top:-38px;
    right:-38px;
}
.tpreason-num{
    color:rgba(1, 96, 179, 0.12);
    font-size:54px;
    font-weight:700;
    line-height:1;
    position:absolute;
    top:18px;
    right:22px;
}
.tpreason-icon{
    width:62px;
    height:62px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:26px;
    background:var(--linear-gradient);
    margin-bottom:20px;
}
.tpreason-card h3{
    color:#102033;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:14px;
}
.tpreason-card p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.06em;
    margin-bottom:0;
}
@media(min-width:768px){
    .tpreason-list{
        grid-template-columns:repeat(3, 1fr);
        gap:18px;
    }
}
@media(min-width:992px){
    .tpreason-list{
        gap:28px;
    }
    .tpreason-card{
        padding:40px 25px 30px;
    }
    .tpreason-card h3{
        font-size:16px;
    }
    .tpreason-num{
        font-size:48px;
    }
    .tpreason-sec .tp-section-lead{
        text-align:center;
    }
}

/*==========================================================*/
/* top business                                             */
/*==========================================================*/
.tpbusiness-sec{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.8);
}
.tpbusiness-list{
    display:grid;
    grid-template-columns:1fr;
    gap:40px;
}
.tpbusiness-card{
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 15px 35px rgba(0, 0, 0, 0.08);
}
.tpbusiness-img{
    position:relative;
    overflow:hidden;
}
.tpbusiness-img img{
    width:100%;
    aspect-ratio:5/3;
    object-fit:center;
    height:auto;
    display:block;
    transition:transform 0.7s ease;
}
.tpbusiness-card:hover .tpbusiness-img img{
    transform:scale(1.06);
}
.tpbusiness-body{
    padding:28px 22px 30px;
}
.tpbusiness-body p.tpbusiness-label{
    color:var(--sub-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    margin-bottom:8px;
}
.tpbusiness-body h3{
    color:#102033;
    font-size:20px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.5;
    margin-bottom:15px;
}
.tpbusiness-body p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.06em;
}
.tpbusiness-link{
    display:inline-flex;
    align-items:center;
    color:var(--main-color);
    font-weight:700;
    letter-spacing:0.06em;
    margin-top:20px;
}
.tpbusiness-link i{
    margin-left:10px;
    transition:transform 0.4s ease;
}
.tpbusiness-link:hover{
    color:var(--main-color);
}
.tpbusiness-link:hover i{
    transform:translateX(6px);
}
.tpbusiness-cleaning .tpbusiness-label{
    color:var(--main-color);
}
@media(min-width:768px){
    .tpbusiness-list{
        grid-template-columns:repeat(2, 1fr);
        gap:28px;
    }
}
@media(min-width:992px){
    .tpbusiness-body{
        padding:38px 34px 40px;
    }
    .tpbusiness-body h3{
        font-size:20px;
    }
    .tpbusiness-link br{
        display:none;
    }
    .tpbusiness-sec .tp-section-lead{
        text-align:center;
    }
}

/*==========================================================*/
/* top flow                                                 */
/*==========================================================*/
.tpflow-sec{
    padding:80px 0;
    background:rgb(246, 251, 255, 0.8);
}
.tpflow-list{
    display:grid;
    grid-template-columns:1fr;
    gap:40px;
}
.tpflow-item{
    position:relative;
    background:rgb(255, 255, 255, 0.8);
    border-radius:18px;
    padding:24px 22px 22px 82px;
    box-shadow:0 10px 24px rgba(1, 96, 179, 0.08);
}
.tpflow-num{
    width:46px;
    height:46px;
    border-radius:50%;
    background:var(--linear-gradient);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:17px;
    font-weight:700;
    position:absolute;
    top:24px;
    left:22px;
}
.tpflow-item h3{
    color:var(--font-color);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.08em;
    margin-bottom:8px;
}
.tpflow-item p{
    color:var(--font-color2);
    line-height:1.8;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align:justify;
}
@media(min-width:768px){
    .tpflow-list{
        grid-template-columns:repeat(2, 1fr);
        gap:20px;
    }
}
@media(min-width:992px){
    .tpflow-list{
        grid-template-columns:repeat(3, 1fr);
        gap:30px;
    }
    .tpflow-item{
        padding:80px 20px 30px;
    }
    .tpflow-num{
        top:20px;
        left:20px;
    }
    .tpflow-item h3{
        font-size:17px;
    }
}

/*==========================================================*/
/* top voice                                                */
/*==========================================================*/
.tpvoice-sec{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.8);
}
.tpvoice-list{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
}
.tpvoice-card{
    position:relative;
    background:rgb(255, 255, 255, 0.8);
    border:solid 1px rgba(1, 96, 179, 0.12);
    border-radius:20px;
    padding:10px 20px 10px 20px;
    box-shadow:0 12px 28px rgba(0, 0, 0, 0.05);
}
.tpvoice-stars{
    display:inline;
    color:#f4bf36;
    font-size:20px;
    letter-spacing:0.1em;
    margin-left:10px;
    margin-right:5px;
}
.tpvoice-card p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0;
    margin-bottom:0;
    text-align:justify;
}
.tpvoice-hd{
    width:100%;
    display:flex;
    flex-flow:row nowrap;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    margin-bottom:10px;
}
.tpvoice-stars-wrap{
    order:2;
    color:var(--main-color);
}
.tpvoice-hd .pict{
    display:flex;
    flex-flow:row nowrap;
    align-items:center;
    order:1;
}
.tpvoice-hd .pict img{
    width:50px;
}
.tpvoice-name{
    margin-left:20px;
}
.tpvoice-card p.tpvoice-option{
    margin-top:10px;
    color:#aaa;
    display:flex;
    flex-flow:row nowrap;
    justify-content: space-between;
}
.review-link-btn{
    width:100%;
    margin-top:20px;
}
.review-link-btn a{
    width:100%;
    max-width:300px;
    height:60px;
    display:flex;
    justify-content:center;
    align-items:center;
    border:solid 1px var(--main-color);
    color:var(--main-color);
    position:relative;
    letter-spacing: 0.1em;
    padding-right:20px;
    transition:background 0.5s, color 0.5s;
    text-align:center;
    line-height:1.4;
    margin:10px auto 0 auto;
}
.review-link-btn a i{
    position:absolute;
    top:50%;
    right:15px;
    translate:0 -50%;
    font-size:18px;
}
.review-link-btn a:hover{
    background:var(--main-color);
    color:#fff;
}
/* new voice layout */
.tpvoice-google-wrap{
    width:100%;
    padding-bottom:40px;
    border-bottom:1px dashed #ccc;
}
.tpvoice-list-hd{
    width:100%;
    margin-bottom:40px;
}
.tpvoice-list-hd .pict{
    width:150px;
    margin:0 auto;
}
.tpvoice-list-hd h3{
    font-size:16px;
    text-align:center;
    letter-spacing:0.1em;
    font-weight:700;
    color:var(--main-color);
}
.tpvoice-list-hd>p{
    text-align:center;
    font-size:24px;
    color:#000;
    font-weight:700;
    margin-bottom:20px;
}
.tpvoice-medal{
    background:var(--main-thin-color);
    padding:20px;
    border-radius:10px;
}
.tpvoice-medal>div{
    position:relative;
    padding-left:35px;
}
.tpvoice-medal>div i{
    font-size:24px;
    position:absolute;
    top:2px;
    left:0;
    color:var(--main-color);
}
.tpvoice-medal p{
    letter-spacing: 0.1em;
    font-weight:500;
}
.tpvoice-list-link{
    width:100%;
    max-width:350px;
    height:60px;
    display:flex;
    justify-content:center;
    align-items:center;
    border:solid 1px var(--main-color);
    color:var(--main-color);
    position:relative;
    letter-spacing: 0.1em;
    transition:background 0.5s, color 0.5s;
    text-align:center;
    line-height:1.4;
    margin:10px auto 0 auto;
    border-radius:5px;
}
.tpvoice-list-link i{
    position:absolute;
    top:50%;
    right:10px;
    translate:0 -50%;
    font-size:18px;
    font-size:24px;
}
.tpvoice-list-link:hover{
    background:var(--main-color);
    color:#fff;
}
.tpvoice-list-link img{
    width:40px;
    height:40px;
    object-fit:cover;
    position:absolute;
    top:50%;
    left:10px;
    translate:0 -50%;
}
.tpvoice-list-hd .tpvoice-list-link{
    display:none;
}
.tpvoice-google-wrap>.tpvoice-list-link{
    margin-top:40px;
}
.tpvoice-kurashi-wrap{
    width:100%;
    padding-top:40px;
}
.tpvoice-kurashi-wrap .tpvoice-list-hd h3{
    color:var(--sub-color4);
}
.tpvoice-kurashi-wrap .tpvoice-medal{
    background:var(--sub-thin-color);
}
.tpvoice-kurashi-wrap .tpvoice-medal>div i{
    color:var(--sub-color4);
}
.tpvoice-kurashi-wrap>.tpvoice-list-link{
    margin-top:40px;
    color:var(--sub-color4);
    border-color: var(--sub-color4);
}
.tpvoice-kurashi-wrap>.tpvoice-list-link:hover{
    background:var(--sub-color4);
    color:#ffffff;
}
@media(min-width:768px){
    .tpvoice-list{
        grid-template-columns:repeat(2, 1fr);
        gap:20px;
    }
    .review-link-btn{
        display:flex;
        flex-flow:row nowrap;
        justify-content:space-between;
    }
    .review-link-btn a{
        width:49%;
    }    
}
@media(min-width:992px){
    .tpvoice-sec .tp-section-lead{
        text-align: center;
    }
    .tpvoice-list{
        grid-template-columns:repeat(3, 1fr);
        gap:10px;
    }
    .tpvoice-card p.desc{
        min-height:300px;
    }
    .tpvoice-name{
        font-size:15px
    }
    .tpvoice-name{
        margin-left:10px;
    }
    .review-link-btn{
        justify-content:space-evenly;
    }
    .review-link-btn a{
        width:50%;
    }    
}
@media(min-width:1200px){
    .review-link-btn{
        display:block;
    }
    .review-link-btn a{
        width:100%;
    }
    .tpvoice-card p.desc{
        min-height:360px;
    }
    .tpvoice-google-wrap, .tpvoice-kurashi-wrap{
        width:100%;
        display:flex;
        flex-flow:row nowrap;
        justify-content:space-between;
    }
    .tpvoice-list-hd{
        width:24%;
        margin:0;
    }
    .tpvoice-list{
        width:74%;
    }
    .tpvoice-google-wrap>.tpvoice-list-link, .tpvoice-kurashi-wrap>.tpvoice-list-link{
        display:none;
    }
    .tpvoice-list-hd .tpvoice-list-link{
        display:flex;
    }
    .tpvoice-kurashi-wrap .tpvoice-list-hd .tpvoice-list-link{
        border-color:var(--sub-color4);
        color:var(--sub-color4);
    }
    .tpvoice-kurashi-wrap .tpvoice-list-hd .tpvoice-list-link:hover{
        background:var(--sub-color4);
        color:#fff;
    }
    .tpvoice-medal{
        margin-bottom:40px;
    }
}
@media(min-width:1400px){
    .tpvoice-list-hd{
        width:23%;
        margin:0;
    }
    .tpvoice-list{
        width:73%;
    }
    .tpvoice-card p.desc{
        min-height:330px;
    }
    .tpvoice-list{
        gap:20px;
    }
    .tpvoice-medal{
        margin-bottom:30px;
    }
}
/*==========================================================*/
/* top info                                                 */
/*==========================================================*/
.tpinfo-sec{
    padding:80px 0;
    background:linear-gradient(135deg, rgba(60, 218, 177, 0.12), rgba(1, 96, 179, 0.12));
}
.tpinfo-wrap{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
}
.tpinfo-box{
    background:rgba(255, 255, 255, 0.8);
    border-radius:22px;
    padding:30px 24px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.tpinfo-label{
    color:var(--main-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
}
.tpinfo-box h2{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    margin-bottom:20px;
}
.tpinfo-box p.tpinfo-label{
    color:var(--sub-color3);
    margin-bottom:10px;
}
.tpinfo-box p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align:justify;
}
.tpinfo-box p.tpinfo-time{
    color:var(--main-color);
    font-size:20px;
    font-weight:700;
    line-height:1.4;
    margin-bottom:20px;
}
.tpinfo-box p.tpinfo-note{
    font-size:14px;
    margin-top:20px;
}
@media(min-width:768px){
    .tpinfo-wrap{
        grid-template-columns:repeat(2, 1fr);
        gap:26px;
    }
}
@media(min-width:992px){
    .tpinfo-box{
        padding:40px 34px;
    }
    .tpinfo-box h2{
        font-size:20px;
    }
    .tpinfo-box p.tpinfo-time{
        font-size:18px;
    }    
}

/*==========================================================*/
/* top news                                                 */
/*==========================================================*/
.tpnews-sec{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.8);
}
.tpnews-head{
    display:flex;
    flex-flow:column wrap;
    gap:20px;
    margin-bottom:30px;
}
.tpnews-head .tp-section-en{
    text-align:left;
}
.tpnews-head .tp-section-ttl{
    text-align:left;
    margin-bottom:0;
}
.tpnews-head .tp-section-ttl span::after{
    left:0;
    transform:none;
}
.tpnews-more{
    display:inline-flex;
    align-items:center;
    color:var(--main-color);
    font-weight:700;
    letter-spacing:0.08em;
}
.tpnews-more i{
    margin-left:10px;
}
.tpnews-list{
    display:grid;
    grid-template-columns:1fr;
    gap:15px;
}
.tpnews-card{
    width:100%;
}
.tpnews-date{
    color:#718092;
    font-size:14px;
    margin-bottom:0;
}
.tpnews-cat{
    color:#fff;
    background:var(--main-color);
    border-radius:20px;
    font-size:11px;
    font-weight:700;
    padding:4px 10px;
    margin-bottom:0;
}
.tpnews-card h3{
    color:var(--font-color);
    font-size:16px;
    font-weight:500;
    line-height:1.6;
    letter-spacing:0.06em;
    margin-bottom:0;
}
@media(min-width:768px){
    .tpnews-head{
        flex-flow:row nowrap;
        align-items:flex-end;
        justify-content:space-between;
    }
    .tpnews-card{
        padding:20px 24px;
    }
    .tpnews-sec .tp-section-en{
        text-align:justify;
    }
}
@media(min-width:992px){
}

/*==========================================================*/
/* top contact                                              */
/*==========================================================*/
.tpcontact-sec{
    padding:80px 0;
    position:relative;
}
.tpcontact-sec::before{
    content:'';
    width:100%;
    height:100%;
    background:var(--linear-gradient);
    opacity:0.8;
    position:absolute;
    inset:0;
    z-index:-1;
}
.tpcontact-wrap{
    display:flex;
    flex-flow:column wrap;
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.12);
    margin-bottom:20px;
}
.tpcontact-img img{
    width:100%;
    height:auto;
    display:block;
}
.tpcontact-body{
    padding:30px 20px;
}
.tpcontact-body h2{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    margin-bottom:40px;
}
.tpcontact-body p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.06em;
}
.tpcontact-body p.tp-section-en{
    color: var(--sub-color2);
    font-size: 14px;    
}
.tpcontact-btn{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
    margin-top:40px;
}
.tpcontact-btn a{
    display:flex;
    min-height:54px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:500;
    letter-spacing:0.1em;
    transition:transform 0.4s ease;
    position:relative;
    line-height:1;
    text-align:center;
}
.tpcontact-btn a:hover{
    transform:translateY(-3px);
    color:#fff;
}
.tpcontact-btn a i{
    margin-right:10px;
    font-size:20px;
    position:absolute;
    top:50%;
    left:20px;
    translate:0 -50%;
    font-size:32px;
}
.tpcontact-btn .linelink{
    background:var(--hd-left-bt-color);
}
.tpcontact-btn .linelink small{
    display:block;
    text-align: center;
    margin-top:4px;
}
.tpcontact-mail{
    background:var(--main-color);
}
.tpcontact-tel{
    background:var(--sub-color);
    color:var(--main-color) !important;
    border:solid 1px var(--main-color);
}
.tpcontact-tel small{
    display:block;
    font-size:12px;
    font-weight:500;
    text-align:center;
    margin-top:4px;
}
.br-pc{
    display:none;
}
.tpcontact-sec .tpservice-suumo-btn{
    background:#fff;
    border-radius:28px;
    padding:20px;
}
.tpcontact-sec .tpservice-suumo-btn p br{
    display:none;
}
@media(min-width:768px){
    .tpcontact-btn{
        grid-template-columns:repeat(2, 1fr);
    }
    .tpcontact-btn a.tpcontact-tel{
        pointer-events:none;
    }
    .tpcontact-sec .tp-section-en{
        text-align:left;
    }
    .tpcontact-sec .tpservice-suumo-btn{
        width:100%;
        display:flex;
        flex-flow:row nowrap;
        align-items: center;
    }
    .tpcontact-sec .tpservice-suumo-btn a{
        width:200px;
        margin:0;
    }
    .tpcontact-sec .tpservice-suumo-btn p{
        width:calc(100% - 200px);
        text-align:left;
        padding-left:20px;
    }
}
@media(min-width:992px){
    .br-pc{
        display:block;
    }
    .tpcontact-wrap{
        flex-flow:row nowrap;
        align-items:stretch;
    }
    .tpcontact-img{
        width:43%;
    }
    .tpcontact-img img{
        width:100%;
        height:100%;
        object-fit:cover;
    }
    .tpcontact-body{
        width:57%;
        padding:40px 20px;
    }
    .tpcontact-body h2{
        font-size:20px;
    }
    .tpcontact-btn{
        display:flex;
        justify-content: space-evenly;
        flex-flow:row wrap;
    }
    .tpcontact-btn a{
        width:230px;
    }
}
@media(min-width:1200px){
    .tpcontact-btn a{
        width:250px;
    }
}
/*==========================================================*/
/* scroll fade animation - to left                         */
/*==========================================================*/
.js-scroll-toleft-fade{
    opacity:0;
    transform:translateX(40px);
    filter:blur(10px);
    transition:opacity 0.8s ease, transform 0.8s ease, filter 0.8s ease;
}
.js-scroll-toleft-fade.is-show{
    opacity:1;
    transform:translateX(0);
    filter:blur(0);
}

@media(min-width:992px){
    .js-scroll-toleft-fade{
        transform:translateX(60px);
    }
    .js-scroll-toleft-fade.is-show{
        transform:translateX(0);
    }
}

/*==========================================================*/
/* top news shortcode                                      */
/*==========================================================*/
.tpnews-card{
    padding:0;
    overflow:hidden;
}
.tpnews-card-link{
    display:flex;
    flex-flow:row wrap;
    align-items:center;
    gap:10px;
    width:100%;
    padding:20px;
    color:inherit;
    text-decoration:none;
    background:rgb(243, 248, 254, 0.8);
    transition:background 0.4s;
}
.tpnews-card-link:hover{
    background:rgba(1, 96, 179, 0.1);
    color:inherit;
}
.tpnews-card-link .tpnews-date{
    color:#718092;
    font-size:14px;
    margin-bottom:0;
}
.tpnews-card-link .tpnews-cat{
    min-width:100px;
    height:35px;
    display:flex;
    color:#fff;
    background:var(--main-color);
    border-radius:18px;
    font-size:14px;
    font-weight:500;
    margin-bottom:0;
    justify-content:center;
    align-items:center;
}
.tpnews-card-link h3{
    width:100%;
    color:var(--font-color);
    font-size:16px;
    font-weight:500;
    line-height:1.6;
    letter-spacing:0.1em;
    margin-bottom:0;
}
.tpnews-card-link:hover h3{
    color:var(--main-color);
}
@media(min-width:768px){
    .tpnews-card-link{
        padding:20px;
    }
}
@media(min-width:992px){
    .tpnews-card-link{
        flex-flow:row nowrap;
    }
    .tpnews-card-link .tpnews-date-wrap{
        width:80px;
    }
    .tpnews-card-link .tpnews-cat-wrap{
        width:100px;
    }
    .tpnews-card-link h3{
        width:calc((100% - 20px) - 180px);
    }
    .tpnews-card-link h3{
        font-size:15px;
    }
}
/*==========================================================*/
/* footer                                                   */
/*==========================================================*/
.site-footer{
    padding:40px 0 100px 0;
}
.footerwidget{
    margin-bottom:40px;
}
.copyright{
    font-weight:400;
    letter-spacing:0.1em;
}
.footer_widget{
    width:100%;
    margin-top:40px;
}
.ft-sec{
    width:100%;
}
.ft-logo-wrap{
    margin-bottom:20px;
}
.ft-logo-wrap a{
    display:flex;
    flex-flow:row nowrap;
    margin:0 auto;
    align-items: center;
    justify-content: center;
    font-weight:500;
    color:var(--font-color2);
}
.ft-logo-wrap a img{
    width:80px;
}
.ft-logo-wrap a span{
    font-size:24px;
    margin-left:10px;
    font-family:var(--noto-serif);
}
.address-wrap{
    width:100%;
    padding:0 20px;
}
.address-wrap address{
    font-size:16px;
    margin-bottom:10px;
}
.add_zipcode{
    display:block;
}
.telno-wrap{
    margin-bottom:10px;
}
.telno-wrap>p{
    text-align:justify;
    letter-spacing:0.1em;
    font-size:16px;
}
.ft-sec .telnolink{
    font-weight:500;
    margin-left:8px;
    color:var(--font-color);
    position:relative;
}
.ft-sec .telnolink::before{
    content:'';
    width:100%;
    height:1px;
    background:var(--font-color);
    position:absolute;
    bottom:0;
    left:0;
    transform:scale(0, 1);
    transform-origin:right center;
    transition:transform 0.5s;
}
.ft-sec .telnolink:hover::before{
    transform:scale(1, 1);
    transform-origin:left center;
}
.faxnolink{
    position:relative;
    margin-left:5px;
    pointer-events:none;
    font-size:16px;
}
.cleaning-telno-wrap>p{
    text-align:justify;
    letter-spacing:0.1em;
    font-size:16px;
}
.footerwidget ul>li a{
    font-size:17px;
    line-height:2;
    position:relative;
    padding-left:20px;
    transition:opacity 0.5s;
}
.footerwidget ul>li a::before{
    content:'';
    content: "\f0da";
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    position: absolute;
    left: 0px;
    top: 50%;
    translate:0 -50%;
    color: var(--main-color);
    transition:transform 0.5s;
}
.footerwidget ul>li a:hover::before{
    transform:translateX(5px);
}
.footerwidget ul>li a:hover{
    opacity:0.8;
}
@media(min-width:768px){
    .telnolink{
        pointer-events:none;
        font-weight:400;
        color:var(--font-color2);
    }
    .ft-sec .telnolink{
        font-weight:400;
        color:var(--font-color2);
    }
    .footerwidget{
        gap:20px;
        flex-flow:row nowrap;
    }
    .footerwidget>.footer_widget{
        width:calc((100% - 20px) / 2);
    }
    .address-wrap{
        padding:0;
    }
    .ft-logo-wrap a{
        justify-content: flex-start;
    }
}
@media(min-width:992px){
    .br_add{
        display:none;
    }
    .footerwidget ul.menu{
        display:flex;
        flex-flow:row wrap;
    }
    .footerwidget ul.menu li{
        width:50%;
    }
    .footerwidget ul>li a{
        font-size:15px;
    }
    .ft-logo-wrap a span{
        font-size:20px;
    }
    .address-wrap address{
        font-size:15px;
    }
    .cleaning-telno-wrap>p{
        font-size:15px;
    }    
}
@media(min-width:1200px){
    .add_zipcode{
        display:inline;
        margin-right:5px;
    }
}
/*==========================================================*/
/* fixed-btn    											*/
/*==========================================================*/
.fixed-btn{
    position:fixed;
    bottom:0;
    left:0;
    z-index:100;
    height:70px;
    z-index:1800;
}
.fixed-btn.contact-btn .linelink{
    width:33.333%;
    line-height:1.2;
    text-align:center;
    color:var(--hd-left-bt-color);
    background:#fff;
    border-top:solid 1px var(--hd-left-bt-color);
    font-weight:700;
    font-size:17px;
    letter-spacing:0;
    transition:all 0.5s;
    border-right:solid 1px var(--hd-left-bt-color);
}
.fixed-btn.contact-btn .maillink{
    width:33.333%;
    background:var(--sub-color3);
    color:#fff;
    transition:all 0.5s;
}
.fixed-btn.contact-btn .telnolink{
    width:25%;
    background:var(--main-color);
    color:#fff;
    display:flex;
    justify-content:center;
    margin:0;
    transition:all 0.5s;
}
.fixed-btn.contact-btn .maillink p{
    color:#fff;
    font-size:18px;
    letter-spacing:-1px;
    font-weight:700;
    text-align:center;
    line-height:1.2;
}
.fixed-btn.contact-btn .maillink p .font-emphasis{
    color:#ffff00;
    display:block;
}
.fixed-btn.contact-btn .maillink p small{
    display:block;
    letter-spacing:-1px;
    font-size:12px;
}
.dl-contact-tel{
    width:100%;
    display:flex;
    margin:0;
    flex-flow:row nowrap;
    max-width:190px;
}
.dl-contact-tel>dt{
    width:45px;
    height:70px;
    margin:0;
    display:flex;
    align-items:center;
}
.dl-contact-tel>dd{
    width:calc(100% - 45px);
    margin:0;
    display:flex;
    align-items: center;
}
.dl-contact-tel>dt i{
    font-size:30px;
}
.dl-contact-tel>dd p, .dl-contact-tel>dd small{
    display:block;
    color:#fff;
    line-height:1;
}
.dl-contact-tel>dd p{
    font-size:20px;
    letter-spacing: -1px;
    transform:scaleY(1.2);
    font-weight:700;
    margin-bottom:4px;
}
.dl-contact-tel>dd small{
    letter-spacing: -1px;
}
.dl-contact-tel>dd small .font-emphasis{
    color:var(--emphasis-yellow);
}
.fixed-btn.contact-btn .telnolink i{
    font-size:32px;
}
.fixed-btn.contact-btn .linelink small{
    display:block;
    text-align:center;
    margin-top:4px;
    color:var(--font-color2);
}
@media(min-width:768px){
    .fixed-btn.contact-btn .linelink{
        width:33.333%;
        font-size:22px;
    }
    .fixed-btn.contact-btn .maillink{
        width:33.333%;
        font-size:22px;
    }
    .fixed-btn.contact-btn .telnolink{
        width:33.333%;
    }
}
@media(min-width:992px){
    .fixed-btn{
        display:none!important;
    }
}

/*==========================================================*/
/* reason page common                                      */
/*==========================================================*/
.strength-sec{
    overflow:hidden;
    padding:0;
}
.strength-section-head{
    text-align:center;
    margin-bottom:40px;
}
.strength-section-en{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    margin-bottom:10px;
    text-align:center;
}
.strength-hero-wrap .strength-section-en{
    text-align:left;
}
.strength-section-ttl{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:40px;
    text-align:center;
}
.strength-section-ttl span{
    display:inline-block;
    position:relative;
    padding-bottom:20px;
}
.strength-section-ttl span::after{
    content:'';
    width:70px;
    height:3px;
    border-radius:3px;
    background:var(--linear-gradient);
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
}
.strength-section-lead{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    text-align:justify;
}
.strength-section-ttl .strength_br{
    display:none;
}
@media(min-width:768px){
    .strength-section-head{
        margin-bottom:50px;
    }
    .strength-section-ttl{
        font-size:32px;
    }
    .strength-section-ttl br{
        display:none;
    }
}
@media(min-width:992px){
    .strength-section-lead{
        text-align:center;
    }
    .strength-section-ttl{
        font-size:28px;
    }
}
/*==========================================================*/
/* reason hero                                             */
/*==========================================================*/
.strength-hero{
    position:relative;
    padding:80px 0;
}
.strength-hero::before{
    content:'';
    width:260px;
    height:260px;
    border-radius:50%;
    background:var(--sub-color);
    position:absolute;
    top:-120px;
    right:-90px;
}
.strength-hero::after{
    content:'';
    position:absolute;
    width:100%;
    height:100%;
    background:var(--strength-hero);
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
    opacity:0.8;
}
.strength-hero-wrap{
    position:relative;
    display:flex;
    flex-flow:column wrap;
    gap:40px;
    z-index:1;
}
.strength-hero-ttl{
    color:var(--main-color);
    font-size:24px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.1em;
    margin-bottom:40px;
}
.strength-hero-ttl span{
    background:linear-gradient(transparent 66%, rgba(60, 218, 177, 0.28) 66%);
}
.strength-hero-lead{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align: justify;
}
.strength-hero-img{
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.14);
}
.strength-hero-img img{
    display:block;
    width:100%;
    height:auto;
}
@media(min-width:768px){
    .strength-hero-ttl{
        font-size:32px;
    }
}
@media(min-width:992px){
    .strength-hero-wrap{
        flex-flow:row nowrap;
        align-items:center;
        gap:40px;
    }
    .strength-hero-body{
        width:50%;
    }
    .strength-hero-img{
        width:50%;
    }
    .strength-hero-ttl{
        font-size:26px;
    }
}

/*==========================================================*/
/* reason list                                             */
/*==========================================================*/
.strength-reason-block{
    padding:80px 0;
    background:rgba(255,255,255,0.4);
}
.strength-reason-list{
    display:flex;
    flex-flow:column wrap;
    gap:40px;
}
.strength-reason-card{
    display:flex;
    flex-flow:column wrap;
    background:rgba(255,255,255,0.8);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 16px 38px rgba(1, 96, 179, 0.1);
}
.strength-reason-img{
    overflow:hidden;
}
.strength-reason-img img{
    display:block;
    width:100%;
    height:auto;
    transition:transform 0.7s;
}
.strength-reason-card:hover .strength-reason-img img{
    transform:scale(1.05);
}
.strength-reason-body{
    position:relative;
    padding:30px 25px;
}
.strength-reason-num{
    color:var(--sub-color2);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    margin-bottom:10px;
}
.strength-reason-body p.strength-reason-num{
    color:var(--sub-color3);
}
.strength-reason-body h3{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.08em;
    margin-bottom:16px;
    text-align: justify;
}
.strength-reason-body p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align: justify;
}
@media(min-width:992px){
    .strength-reason-list{
        gap:60px;
    }
    .strength-reason-card{
        flex-flow:row nowrap;
        align-items:stretch;
    }
    .strength-reason-card.strength-reason-reverse{
        flex-direction:row-reverse;
    }
    .strength-reason-img{
        width:46%;
    }
    .strength-reason-img img{
        height:100%;
        object-fit:cover;
    }
    .strength-reason-body{
        width:54%;
        padding:48px 46px;
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
    .strength-reason-body h3{
        font-size:20px;
    }
}

/*==========================================================*/
/* recommend                                               */
/*==========================================================*/
.strength-target-block{
    padding:80px 0;
    position:relative;
}
.strength-target-block::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.5;
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
}
.strength-target-list{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}
.strength-target-card{
    background:#fff;
    border-radius:22px;
    padding:30px 24px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.strength-target-card i{
    width:58px;
    height:58px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:24px;
    background:var(--linear-gradient);
    margin-bottom:18px;
}
.strength-target-card h3{
    color:var(--font-color);
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.08em;
    margin-bottom:12px;
}
.strength-target-card p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
}
@media(min-width:768px){
    .strength-target-list{
        grid-template-columns:repeat(2, 1fr);
    }
}
@media(min-width:992px){
    .strength-target-list{
        grid-template-columns:repeat(3, 1fr);
        gap:20px;
    }
    .strength-target-card h3{
        font-size:16px;
    }
    .strength-target-card{
        padding:30px 20px;
    }
}

/*==========================================================*/
/* difference                                              */
/*==========================================================*/
.strength-difference-block{
    padding:80px 0;
    background:rgba(255,255,255,0.4);
}
.strength-difference-wrap{
    background:var(--strength-difference);
    border-radius:30px;
    padding:30px 20px;
}
.strength-difference-head{
    width:100%;
    margin-bottom:50px;
}
.strength-difference-list{
    display:flex;
    flex-flow:column wrap;
    gap:30px;
}
.strength-difference-row{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    background:rgba(255,255,255,0.8);
    border-radius:16px;
    padding:18px 18px;
    box-shadow:0 8px 20px rgba(1, 96, 179, 0.06);
}
.strength-difference-question{
    color:var(--font-color);
    font-size:16px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.06em;
    position:relative;
    padding-left:40px;
}
.strength-difference-question::before{
    content:'?';
    width:30px;
    height:30px;
    border-radius:50%;
    background:#dcecf8;
    color:var(--main-color);
    font-size:14px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    position:absolute;
    top:2px;
    left:0;
}
.strength-difference-answer{
    color:var(--font-color2);
    font-size:16px;
    line-height:1.9;
    letter-spacing:0.06em;
    position:relative;
    padding-left:40px;
}
.strength-difference-answer::before{
    content:'A';
    width:30px;
    height:30px;
    border-radius:50%;
    background:var(--linear-gradient);
    color:#fff;
    font-size:12px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    position:absolute;
    top:3px;
    left:0;
}
@media(min-width:768px){
    .strength-difference-wrap{
        padding:50px 40px;
    }
    .strength-difference-row{
        grid-template-columns:0.8fr 1.5fr;
        align-items:center;
        gap:20px;
        padding:20px 30px;
    }
}
@media(min-width:992px){
    .strength-difference-question{
        font-size:15px;
    }
    .strength-difference-answer{
        font-size:15px;
    }
}
@media(min-width:1200px){
    .strength-difference-row{
        grid-template-columns:0.7fr 1.7fr;
        align-items:center;
        gap:20px;
        padding:20px 30px;
    }
}
/*==========================================================*/
/* case                                                     */
/*==========================================================*/
.strength-case-block{
    padding:80px 0;
    background:var(--strength-case);
}
.strength-case-list{
    display:grid;
    grid-template-columns:1fr;
    gap:26px;
}
.strength-case-card{
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 14px 32px rgba(1, 96, 179, 0.1);
}
.strength-case-img img{
    display:block;
    width:100%;
    height:auto;
}
.strength-case-body{
    padding:28px 24px 32px;
}
.strength-case-label{
    color:var(--main-color);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    margin-bottom:10px;
}
.strength-case-body p.strength-case-label{
    color:var(--main-color);
}
.strength-case-body h3{
    color:var(--font-color);
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.08em;
    margin-bottom:14px;
}
.strength-case-body p{
    color:var(--font-color2);
    font-size:16px;
    line-height:1.95;
    letter-spacing:0.06em;
    margin-bottom:0;
}
@media(min-width:768px){
    .strength-case-list{
        grid-template-columns:repeat(3, 1fr);
        gap:20px;
    }
}
@media(min-width:992px){
    .strength-case-body{
        padding:35px 25px 35px;
    }
    .strength-case-body h3{
        font-size:18px;
    }
    .strength-case-body p{
        font-size:15px;
    }    
}

/*==========================================================*/
/* voice                                                    */
/*==========================================================*/
.strength-voice-block{
    padding:80px 0;
    background:rgba(255,255,255,0.4);
}
.strength-voice-list{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
}
.strength-voice-card{
    position:relative;
    background:rgba(255,255,255,0.8);
    border:solid 1px rgba(1, 96, 179, 0.12);
    border-radius:20px;
    padding:30px 20px;
    box-shadow:0 12px 28px rgba(0, 0, 0, 0.05);
}
.strength-voice-card::before{
    content:'"';
    color:rgba(60, 218, 177, 0.22);
    font-size:82px;
    font-family:serif;
    line-height:1;
    position:absolute;
    top:10px;
    right:20px;
}
.strength-voice-stars{
    color:#f4bf36;
    font-size:18px;
    letter-spacing:0.08em;
    margin-bottom:14px;
}
.strength-voice-card p{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.06em;
    margin-bottom:0;
}
@media(min-width:768px){
    .strength-voice-list{
        grid-template-columns:repeat(3, 1fr);
        gap:20px;
    }
}
@media(min-width:992px){
    .strength-voice-list{
        gap:30px;
    }
    .strength-voice-card{
        padding:40px 30px;
    }
    .strength-voice-card p{
        font-size:15px;
    }    
}

/*==========================================================*/
/* faq                                                      */
/*==========================================================*/
.strength-faq-block{
    padding:80px 0;
    position:relative;
    background:var(--strength-faq);
}
.strength-faq-list{
    margin-left:auto;
    margin-right:auto;
    display:flex;
    flex-flow:column wrap;
    gap:20px;
}
.strength-faq-item{
    background:#fff;
    border-radius:18px;
    padding:30px 20px;
    box-shadow:0 10px 24px rgba(1, 96, 179, 0.07);
}
.strength-faq-item h3{
    display:flex;
    align-items:flex-start;
    color:var(--font-color);
    font-size:17px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.1em;
    margin-bottom:20px;
}
.strength-faq-item h3 span,
.strength-faq-item p span{
    width:30px;
    height:30px;
    min-width:30px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:700;
    margin-right:10px;
}
.strength-faq-item h3 span{
    background:#dcecf8;
    color:var(--main-color);
}
.strength-faq-item p{
    display:flex;
    align-items:flex-start;
    color:var(--font-color2);
    font-size:16px;
    line-height:1.9;
    letter-spacing:0.1em;
    margin-bottom:0;
}
.strength-faq-item p span{
    background:var(--linear-gradient);
    color:#fff;
}
@media(min-width:768px){
    .strength-faq-list{
        gap:30px;
    }
    .strength-faq-item{
        padding:30px 40px;
    }
    .strength-faq-item h3{
        font-size:18px;
    }
}
@media(min-width:992px){
    .strength-faq-item h3{
        font-size:16px;
    }
    .strength-faq-item p{
        font-size:15px;
    }    
}
/*==========================================================*/
/* reason contact                                          */
/*==========================================================*/
.strength-contact-block{
    padding:80px 0;
    background:#fff;
}
.strength-contact-wrap{
    display:flex;
    flex-flow:column wrap;
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.12);
}
.strength-contact-img img{
    display:block;
    width:100%;
    height:auto;
}
.strength-contact-body{
    padding:34px 24px;
    background:linear-gradient(135deg, rgba(1, 96, 179, 0.08), rgba(60, 218, 177, 0.12));
}
.strength-contact-body h2{
    color:var(--font-color);
    font-size:25px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    margin-bottom:18px;
}
.strength-contact-body p{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.06em;
}
.strength-contact-btn{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:26px;
}
.strength-contact-btn a{
    display:flex;
    min-height:54px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:700;
    letter-spacing:0.06em;
    text-decoration:none;
    transition:transform 0.4s;
}
.strength-contact-btn a:hover{
    transform:translateY(-3px);
    color:#fff;
}
.strength-contact-btn a i{
    margin-right:10px;
    font-size:20px;
}
.strength-contact-btn .linelink{
    background:var(--hd-left-bt-color);
}
.strength-contact-mail{
    background:var(--sub-color);
}
.strength-contact-tel{
    background:#fff;
    color:var(--main-color);
    border:solid 1px var(--main-color);
}
.strength-contact-tel:hover{
    color:var(--main-color);
}
.strength-contact-tel small{
    display:block;
    font-size:12px;
    font-weight:400;
    text-align:center;
}
@media(min-width:768px){
    .strength-contact-btn{
        grid-template-columns:repeat(3, 1fr);
    }
}
@media(min-width:992px){
    .strength-contact-wrap{
        flex-flow:row nowrap;
        align-items:stretch;
    }
    .strength-contact-img{
        width:42%;
    }
    .strength-contact-img img{
        width:100%;
        height:100%;
        object-fit:cover;
    }
    .strength-contact-body{
        width:58%;
        padding:58px 50px;
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
    .strength-contact-body h2{
        font-size:34px;
    }
}

/*==========================================================*/
/* estate page common                                      */
/*==========================================================*/
.estate-sec{
    overflow:hidden;
    padding:0;
}
.estate-section-head{
    text-align:center;
    margin-bottom:40px;
}
.estate-section-en{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.2em;
    margin-bottom:10px;
    text-align:center;
}
.estate-hero-wrap .estate-section-en{
    text-align:left;
}
.estate-section-ttl{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:40px;
    text-align:center;
}
.estate-section-ttl span{
    display:inline-block;
    position:relative;
    padding-bottom:20px;
}
.estate-section-ttl span::after{
    content:'';
    width:70px;
    height:3px;
    border-radius:3px;
    background:var(--linear-gradient);
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
}
.estate-section-lead{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    text-align:left;
}
@media(min-width:768px){
    .estate-section-head{
        margin-bottom:50px;
    }
    .estate-section-ttl{
        font-size:32px;
    }
}
@media(min-width:992px){
    .estate-section-lead{
        text-align:center;
    }
    .estate-section-ttl{
        font-size:28px;
    }
}

/*==========================================================*/
/* estate hero                                             */
/*==========================================================*/
.estate-hero{
    position:relative;
    padding:80px 0;
}
.estate-hero::before{
    content:'';
    width:260px;
    height:260px;
    border-radius:50%;
    background:var(--sub-color);
    position:absolute;
    top:-120px;
    right:-90px;
}
.estate-hero::after{
    content:'';
    position:absolute;
    width:100%;
    height:100%;
    background:var(--estate-hero);
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
    opacity:0.8;
}
.estate-hero-wrap{
    position:relative;
    display:flex;
    flex-flow:column wrap;
    gap:40px;
    z-index:1;
    margin-bottom:40px;
}
.estate-hero-ttl{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.1em;
    margin-bottom:40px;
}
.estate-hero-ttl span{
    background:linear-gradient(transparent 66%, rgba(60, 218, 177, 0.28) 66%);
}
.estate-hero-lead{
    color:var(--font-color2);
    font-size:15px;
    line-height:2.1;
    letter-spacing:0.06em;
    margin-bottom:0;
}
.estate-hero-img{
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.14);
}
.estate-hero-img img{
    display:block;
    width:100%;
    height:auto;
}
.estate-hero-btn{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
    margin-top:40px;
}
.estate-hero-btn a{
    display:flex;
    min-height:60px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    line-height:1;
    color:#fff;
    font-weight:500;
    letter-spacing:0.1em;
    text-decoration:none;
    transition:all 0.5s;
    position:relative;
    width:100%;
    max-width:280px;
    margin-left:auto;
    margin-right:auto;
}
.estate-hero-btn a i{
    font-size:32px;
    position:absolute;
    top:50%;
    left:40px;
    translate:0 -50%;
}
.estate-hero-btn a:hover{
    transform:translateY(-3px);
    color:#fff;
    filter:brightness(1.1);
}
.estate-hero-btn .linelink{
    background:var(--hd-left-bt-color);
}
.estate-hero-btn>a:nth-of-type(2){
    display:none;
}
.estate-hero-mail{
    background:var(--main-color);
}
.estate-hero-btn .linelink small{
    display:block;
    text-align:center;
    margin-top:4px;
}
@media(min-width:768px){
    .estate-hero-btn{
        grid-template-columns:repeat(3, minmax(0, 220px));
    }
    .estate-hero-btn a span{
        padding-left:20px;
    }
    .estate-hero-btn a i{
        left:20px;
    }
    .estate-hero-ttl{
        font-size:32px;
    }
    .estate-sec .tpservice-suumo-btn a{
        width:200px;
    }
}
@media(min-width:992px){
    .estate-hero-wrap{
        flex-flow:row nowrap;
        align-items:center;
        gap:50px;
        margin-bottom:0;
    }
    .estate-hero-btn{
        grid-template-columns:repeat(2, minmax(0, 220px));
        margin-bottom:20px;
    }
    .estate-hero-body{
        width:50%;
    }
    .estate-hero-img{
        width:50%;
    }
    .estate-hero-ttl{
        font-size:30px;
    }
}

/*==========================================================*/
/* support                                                  */
/*==========================================================*/
.estate-support-block{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.4);
}
.estate-support-list{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}
.estate-support-card{
    background:rgb(255, 255, 255, 0.8);
    border-radius:22px;
    padding:30px 24px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.estate-support-icon{
    width:58px;
    height:58px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:24px;
    background:var(--linear-gradient);
    margin-bottom:18px;
}
.estate-support-card h3{
    color:var(--font-color);
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.08em;
    margin-bottom:12px;
}
.estate-support-card p{
    color:var(--font-color2);
    font-size:15px;
    line-height:1.9;
    letter-spacing:0.06em;
    margin-bottom:0;
}
@media(min-width:768px){
    .estate-support-list{
        grid-template-columns:repeat(2, 1fr);
    }
}
@media(min-width:992px){
    .estate-support-list{
        grid-template-columns:repeat(3, 1fr);
        gap:20px;
    }
    .estate-support-card h3{
        font-size:16px;
    }
}

/*==========================================================*/
/* worry                                                    */
/*==========================================================*/
.estate-worry-block{
    padding:80px 0;
    position:relative;
}
.estate-worry-block::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.5;
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
}
.estate-worry-wrap{
    display:flex;
    flex-flow:column wrap;
    gap:30px;
}
.estate-worry-img{
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 16px 38px rgba(1, 96, 179, 0.12);
}
.estate-worry-img img{
    display:block;
    width:100%;
    height:auto;
}
.estate-worry-body{
    background:#fff;
    border-radius:26px;
    padding:30px 20px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.estate-worry-list{
    display:flex;
    flex-flow:column wrap;
    gap:20px;
    margin-top:30px;
}
.estate-worry-item{
    display:flex;
    align-items:flex-start;
    color:var(--font-color2);
    line-height:1.8;
    letter-spacing:0.1em;
    text-align:justify;
    font-size:16px;
}
.estate-worry-item i{
    color:var(--sub-color3);
    margin-right:10px;
    margin-top:6px;
}
.estate-worry-message{
    color:var(--main-color);
    font-weight:700;
    line-height:2;
    letter-spacing:0.1em;
    margin-top:30px;
    margin-bottom:0;
}
@media(min-width:768px){
    .estate-worry-wrap .estate-section-ttl br{
        display:none;
    }
}
@media(min-width:992px){
    .estate-worry-item{
        font-size:15px;
    }
}
@media(min-width:1200px){
    .estate-worry-wrap{
        flex-flow:row nowrap;
        align-items:center;
        gap:50px;
    }
    .estate-worry-img{
        width:45%;
        height:100%;
    }
    .estate-worry-img>img{
        width:100%;
        height:554px;
        object-fit:cover;
    }
    .estate-worry-body{
        width:55%;
        padding:20px;
    }
}
/*==========================================================*/
/* estate reason                                           */
/*==========================================================*/
.estate-reason-block{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.4);
}
.estate-reason-list{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
}
.estate-reason-card{
    position:relative;
    background:rgb(255, 255, 255, 0.8);
    border-radius:22px;
    padding:36px 24px 30px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.1);
    overflow:hidden;
}
.estate-reason-card::before{
    content:'';
    width:120px;
    height:120px;
    border-radius:50%;
    background:rgba(60, 218, 177, 0.1);
    position:absolute;
    top:-45px;
    right:-45px;
}
.estate-reason-num{
    color:rgba(1, 96, 179, 0.12);
    font-size:42px;
    font-weight:700;
    line-height:1;
    position:absolute;
    top:18px;
    right:22px;
}
.estate-reason-icon{
    width:62px;
    height:62px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:26px;
    background:var(--linear-gradient);
    margin-bottom:20px;
}
.estate-reason-card h3{
    color:var(--font-color);
    font-size:20px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:20px;
}
.estate-reason-card p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align: justify;
}
.estate-reason-link{
    text-align:center;
    margin-top:40px;
}
.estate-reason-link a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:50px;
    max-width:300px;
    padding-right:20px;
    border-radius:30px;
    background:#fff;
    border:solid 1px var(--main-color);
    color:var(--main-color);
    font-weight:700;
    letter-spacing:0.1em;
    text-decoration:none;
    transition:all 0.4s;
    line-height:1;
    margin-left:auto;
    margin-right:auto;
    position:relative;
}
.estate-reason-link a i{
    font-size:24px;
    position:absolute;
    top:50%;
    right:20px;
    translate:0 -50%;
}
.estate-reason-link a:hover{
    background:var(--main-color);
    color:#fff;
}
@media(min-width:768px){
    .estate-reason-list{
        grid-template-columns:repeat(3, 1fr);
        gap:18px;
    }
    .estate-section-head .estate-section-ttl br{
        display:none;
    }
}
@media(min-width:992px){
    .estate-reason-list{
        gap:30px;
    }
    .estate-reason-card{
        padding:40px 30px;
    }
    .estate-reason-card h3{
        font-size:18px;
    }    
}

/*==========================================================*/
/* estate flow                                             */
/*==========================================================*/
.estate-flow-block{
    padding:80px 0;
    background:var(--estate-flow);
}
.estate-flow-list{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
}
.estate-flow-item{
    position:relative;
    background:#fff;
    border-radius:18px;
    padding:33px 20px 20px 70px;
    box-shadow:0 10px 24px rgba(1, 96, 179, 0.08);
}
.estate-flow-num{
    width:50px;
    height:50px;
    border-radius:50%;
    background:var(--linear-gradient);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:15px;
    font-weight:700;
    position:absolute;
    top:20px;
    left:10px;
    letter-spacing:0.1em;
}
.estate-flow-item h3{
    color:var(--font-color);
    font-size:18px;
    font-weight:700;
    letter-spacing:0.08em;
    margin-bottom:10px;
}
.estate-flow-item p{
    color:var(--font-color2);
    font-size:15px;
    line-height:1.8;
    letter-spacing:0.06em;
    margin-bottom:0;
    text-align:justify;
}
@media(min-width:768px){
    .estate-flow-list{
        grid-template-columns:repeat(2, 1fr);
        gap:20px;
    }
}
@media(min-width:992px){
    .estate-flow-list{
        grid-template-columns:repeat(3, 1fr);
        gap:24px;
    }
    .estate-flow-item{
        padding:90px 30px 30px;
    }
    .estate-flow-num{
        top:20px;
        left:20px;
    }
    .estate-flow-item h3{
        font-size:16px;
    }
}

/*==========================================================*/
/* estate case                                             */
/*==========================================================*/
.estate-case-block{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.4);
}
.estate-case-list{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}
.estate-case-card{
    background:rgb(255, 255, 255, 0.8);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 14px 32px rgba(1, 96, 179, 0.1);
}
.estate-case-img img{
    display:block;
    width:100%;
    height:auto;
}
.estate-case-body{
    padding:30px 25px 30px;
}
.estate-case-label{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    margin-bottom:10px;
}
.estate-case-body p.estate-case-label{
    color:var(--sub-color3);
}
.estate-case-body h3{
    color:var(--main-color);
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.1em;
    margin-bottom:20px;
}
.estate-case-body p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align: justify;
}
@media(min-width:768px){
    .estate-case-list{
        grid-template-columns:repeat(3, 1fr);
        gap:20px;
    }
}
@media(min-width:992px){
    .estate-case-body{
        padding:35px 25px 35px;
    }
    .estate-case-body h3{
        font-size:18px;
    }
}

/*==========================================================*/
/* cost                                                     */
/*==========================================================*/
.estate-cost-block{
    padding:80px 0;
    position:relative;
}
.estate-cost-block::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.5;
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
}
.estate-cost-wrap{
    display:grid;
    grid-template-columns:1fr;
    gap:30px;
    align-items:center;
}
.estate-cost-body{
    background:rgb(255, 255, 255, 0.8);
    border-radius:26px;
    padding:40px 30px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.estate-cost-body .estate-section-ttl{
    text-align:left;
    color:var(--main-color);
}
.estate-cost-body .estate-section-ttl span{
    padding:0;
}
.estate-cost-body .estate-section-ttl span::after{
    content:none;
}
.estate-cost-body p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
}
.estate-cost-box{
    background:#fff;
    border-radius:26px;
    padding:40px 30px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.estate-cost-box h3{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.1em;
    margin-bottom:30px;
}
.estate-cost-list{
    display:flex;
    flex-flow:column wrap;
    gap:20px;
}
.estate-cost-item{
    display:flex;
    align-items:center;
    color:var(--font-color2);
    font-size:16px;
    line-height:1.7;
    letter-spacing:0.1em;
    background:#e9f2fb;
    border-radius:14px;
    padding:10px 20px;
}
.estate-cost-item span{
    width:40px;
    height:40px;
    min-width:40px;
    border-radius:50%;
    background:var(--linear-gradient);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:700;
    line-height:1;
    margin-right:10px;
}
@media(min-width:768px){
    .estate-cost-body .estate-section-ttl{
        font-size:24px;
    }
}
@media(min-width:992px){
    .estate-cost-wrap{
        grid-template-columns:1fr 1fr;
        gap:40px;
    }
    .estate-cost-body,
    .estate-cost-box{
        padding:50px 40px;
        height:587px;
    }
    .estate-cost-body .estate-section-ttl{
        font-size:20px;
    }
    .estate-cost-box h3{
        font-size:20px;
    }
    .estate-cost-item{
        font-size:15px;
    }
}

/*==========================================================*/
/* area                                                     */
/*==========================================================*/
.estate-area-block{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.4);
}
.estate-area-wrap{
    display:flex;
    flex-flow:column wrap;
    gap:20px;
    background:var(--estate-area);
    border-radius:28px;
    padding:40px 30px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.estate-area-icon{
    width:70px;
    height:70px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:30px;
    background:var(--linear-gradient);
}
.estate-area-body h2{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:30px;
    text-align:center;
    color:var(--main-color);
}
.estate-area-body p{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
}
.estate-area-body p.estate-section-en{
    color:var(--sub-color3);
}
.estate-area-body p.estate-area-note{
    margin-top:20px;
    font-size:14px;
    text-indent: -1em;
    margin-left:1.5em;
}
@media(min-width:768px){
    .estate-area-wrap{
        flex-flow:row nowrap;
        align-items:flex-start;
        padding:40px 30px;
    }
    .estate-area-icon{
        margin-top:4px;
    }
    .estate-area-body{
        flex:1;
    }
    .estate-area-body h2{
        font-size:32px;
    }
}
@media(min-width:992px){
}

/*==========================================================*/
/* estate faq                                              */
/*==========================================================*/
.estate-faq-block{
    padding:80px 0;
    background:var(--estate-faq);
}
.estate-faq-list{
    margin-left:auto;
    margin-right:auto;
    display:flex;
    flex-flow:column wrap;
    gap:20px;
}
.estate-faq-item{
    background:rgb(255, 255, 255,0.8);
    border-radius:18px;
    padding:30px 20px;
    box-shadow:0 10px 24px rgba(1, 96, 179, 0.07);
}
.estate-faq-item h3{
    display:flex;
    align-items:flex-start;
    color:var(--font-color);
    font-size:17px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.1em;
    margin-bottom:20px;
}
.estate-faq-item h3 span,
.estate-faq-item p span{
    width:30px;
    height:30px;
    min-width:30px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:700;
    margin-right:10px;
}
.estate-faq-item h3 span{
    background:#dcecf8;
    color:var(--main-color);
}
.estate-faq-item p{
    display:flex;
    align-items:flex-start;
    color:var(--font-color2);
    line-height:1.9;
    letter-spacing:0.1em;
    margin-bottom:0;
}
.estate-faq-item p span{
    background:var(--linear-gradient);
    color:#fff;
}
@media(min-width:768px){
    .estate-faq-list{
        gap:30px;
    }
    .estate-faq-item{
        padding:30px 40px;
    }
    .estate-faq-item h3{
        font-size:18px;
    }
}
@media(min-width:992px){
    .estate-faq-item h3{
        font-size:16px;
    }
}

/*==========================================================*/
/* estate contact                                          */
/*==========================================================*/
.estate-contact-block{
    padding:80px 0;
    background:#fff;
}
.estate-contact-wrap{
    display:flex;
    flex-flow:column wrap;
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.12);
}
.estate-contact-img img{
    display:block;
    width:100%;
    height:auto;
}
.estate-contact-body{
    padding:34px 24px;
    background:linear-gradient(135deg, rgba(1, 96, 179, 0.08), rgba(60, 218, 177, 0.12));
}
.estate-contact-body h2{
    color:var(--font-color);
    font-size:25px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    margin-bottom:18px;
}
.estate-contact-body p{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.06em;
}
.estate-contact-btn{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:26px;
}
.estate-contact-btn a{
    display:flex;
    min-height:54px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:700;
    letter-spacing:0.06em;
    text-decoration:none;
    transition:transform 0.4s;
}
.estate-contact-btn a:hover{
    transform:translateY(-3px);
    color:#fff;
}
.estate-contact-btn a i{
    margin-right:10px;
    font-size:20px;
}
.estate-contact-btn .linelink{
    background:var(--hd-left-bt-color);
}
.estate-contact-mail{
    background:var(--sub-color);
}
.estate-contact-tel{
    background:#fff;
    color:var(--main-color);
    border:solid 1px var(--main-color);
}
.estate-contact-tel:hover{
    color:var(--main-color);
}
.estate-contact-tel small{
    display:block;
    font-size:12px;
    font-weight:400;
    text-align:center;
}
@media(min-width:768px){
    .estate-contact-btn{
        grid-template-columns:repeat(3, 1fr);
    }
}
@media(min-width:992px){
    .estate-contact-wrap{
        flex-flow:row nowrap;
        align-items:stretch;
    }
    .estate-contact-img{
        width:42%;
    }
    .estate-contact-img img{
        width:100%;
        height:100%;
        object-fit:cover;
    }
    .estate-contact-body{
        width:58%;
        padding:58px 50px;
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
    .estate-contact-body h2{
        font-size:34px;
    }
}

/*==========================================================*/
/* company page common                                     */
/*==========================================================*/
.company-sec{
    overflow:hidden;
    padding:0;
}
.company-section-head{
    text-align:center;
    margin-bottom:40px;
}
.company-section-en{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    margin-bottom:10px;
}
.company-hero-wrap .strength-section-en{
    text-align:left;
}
.company-section-ttl{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:40px;
}
.company-section-ttl span{
    display:inline-block;
    position:relative;
    padding-bottom:20px;
}
.company-section-ttl span::after{
    content:'';
    width:70px;
    height:3px;
    border-radius:3px;
    background:var(--linear-gradient);
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
}
.company-section-lead{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.1em;
    text-align:justify;
}
@media(min-width:768px){
    .company-section-head{
        margin-bottom:50px;
    }
    .company-section-ttl{
        font-size:32px;
    }
}
@media(min-width:992px){
    .company-section-lead{
        text-align:center;
    }
    .company-section-ttl{
        font-size:30px;
    }
}
/*==========================================================*/
/* company hero                                            */
/*==========================================================*/
.company-hero{
    position:relative;
    padding:80px 0;
}
.company-hero::before{
    content:'';
    width:260px;
    height:260px;
    border-radius:50%;
    background:var(--sub-color);
    position:absolute;
    top:-120px;
    right:-90px;
}
.company-hero::after{
    content:'';
    position:absolute;
    width:100%;
    height:100%;
    background:var(--company-hero);
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
    opacity:0.8;
}
.company-hero-wrap{
    position:relative;
    display:flex;
    flex-flow:column wrap;
    gap:40px;
    z-index:1;
}
.company-hero-ttl{
    color:var(--main-color);
    font-size:24px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.1em;
    margin-bottom:40px;
}
.company-hero-ttl span{
    background:linear-gradient(transparent 66%, rgba(60, 218, 177, 0.28) 66%);
}
.company-hero-lead{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align: justify;
}
.company-hero-img{
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.14);
}
.company-hero-img img{
    display:block;
    width:100%;
    height:auto;
}
@media(min-width:768px){
    .company-hero-ttl{
        font-size:32px;
    }
}
@media(min-width:992px){
    .company-hero{
        padding:105px 0 115px;
    }
    .company-hero-wrap{
        flex-flow:row nowrap;
        align-items:center;
        gap:40px;
    }
    .company-hero-body{
        width:50%;
    }
    .company-hero-img{
        width:50%;
    }
    .company-hero-ttl{
        font-size:28px;
    }
}

/*==========================================================*/
/* company message                                         */
/*==========================================================*/
.company-message-block{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.4);
}
.company-message-wrap{
    display:block;
}
.company-message-img{
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 16px 38px rgba(1, 96, 179, 0.12);
    margin-bottom:40px;
}
.company-message-img img{
    display:block;
    width:100%;
    height:auto;
}
.company-message-body{
    width:100%;
}
.company-message-body .company-section-ttl{
    text-align:center;
}
.company-message-body p{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.1em;
    text-align: justify;
}
.company-message-name{
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    gap:20px;
    margin-top:30px;
    font-family: var(--noto-serif);
}
.company-message-name span{
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.1em;
}
.company-message-name strong{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
}
.company-message-body p.company-section-en{
    color:var(--sub-color3);
    text-align:center;
}
.company-message-div{
    width:100%;
}
@media(min-width:992px){
    .company-message-div{
        width:100%;
    }
    .company-message-div>.company-message-desc{
        width:100%;
    }
    .company-message-img>img{
        width:100%;
        height:100%;
        object-fit:cover;
        object-position:right center;
    }
}

/*==========================================================*/
/* company service                                         */
/*==========================================================*/
.company-service-block{
    padding:80px 0;
    position:relative;
}
.company-service-block::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.8;
    position:absolute;
    inset:0;
    z-index: -1;
}
.company-service-list{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}
.company-service-card{
    background:rgb(255, 255, 255,0.8);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 14px 32px rgba(1, 96, 179, 0.1);
}
.company-service-img{
    overflow:hidden;
}
.company-service-img img{
    display:block;
    width:100%;
    aspect-ratio:5/3;
    object-fit:cover;
    height:auto;
    transition:transform 0.7s;
}
.company-service-card:hover .company-service-img img{
    transform:scale(1.05);
}
.company-service-body{
    padding:28px 24px 32px;
}
.company-service-label{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    margin-bottom:10px;
}
.company-service-body h3{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.08em;
    margin-bottom:14px;
}
.company-service-body p{
    color:var(--font-color2);
    line-height:1.9;
    letter-spacing:0.1em;
}
.company-service-body p.company-service-label{
    color:var(--sub-color3);
}
.company-service-link{
    display:inline-flex;
    align-items:center;
    color:var(--main-color);
    font-weight:700;
    letter-spacing:0.1em;
    text-decoration:none;
    margin-top:10px;
}
.company-service-link i{
    margin-left:10px;
    transition:transform 0.4s;
}
.company-service-link:hover{
    color:var(--main-color);
}
.company-service-link:hover i{
    transform:translateX(6px);
}
@media(min-width:768px){
    .company-service-list{
        grid-template-columns:repeat(2, 1fr);
    }
}
@media(min-width:992px){
    .company-service-body{
        padding:35px 30px 35px;
    }
    .company-service-body h3{
        font-size:20px;
    }
}

/*==========================================================*/
/* company information                                     */
/*==========================================================*/
.company-info-block{
    padding:80px 0;
    background:rgb(255, 255, 255, 0.4);
}
.company-info-wrap{
    width:100%;
}
.company-info-logo{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border-radius:22px;
    min-height:180px;
}
.company-info-logo img{
    display:block;
    max-width:240px;
    width:100%;
    height:auto;
}
.company-info-table{
    overflow:hidden;
}
.company-info-row{
    margin-top:30px;
}
.company-info-row:first-of-type{
    margin-top:0;
}
.company-info-row:last-child{
    border-bottom:none;
}
.company-info-label{
    font-size:16px;
    font-weight:500;
    letter-spacing:0.1em;
    background:rgb(2, 72, 163, 0.8);
    color:#fff;
    padding:14px 16px;
    border:solid 1px var(--main-color);
}
.company-info-data{
    color:var(--font-color2);
    font-weight:500;
    font-size:16px;
    line-height:1.8;
    letter-spacing:0.1em;
    padding:14px 16px;
    text-align: justify;
    background:rgb(255, 255, 255, 0.8);
    border-left:solid 1px rgb(2, 72, 163, 0.2);
    border-right:solid 1px rgb(2, 72, 163, 0.2);
    border-bottom:solid 1px rgb(2, 72, 163, 0.2);
}
.company-info-data a.telnolink{
    color:var(--main-color);
    text-decoration:none;
    position:relative;
    margin-right:5px;
}
.company-info-data a.telnolink::before{
    content:'';
    width:100%;
    height:1px;
    background:var(--main-color);
    position:absolute;
    left:0;
    bottom:0;
    transform:scale(0, 1);
    transform-origin:right center;
    transition:transform 0.5s;
}
.company-info-data a.telnolink:hover::before{
    transform:scale(1,1);
    transform-origin:left center;
}
.company-info-data a.telnolink:hover{
    color:var(--main-color);
    opacity:0.8;
}
@media(min-width:768px){
    .company-info-label,
    .company-info-data{
        padding:20px;
    }
    .company-info-data .telnolink{
        color:var(--font-color2);
    }
    .company-info-data a.telnolink{
        color:var(--font-color2);
    }
}
@media(min-width:992px){
    .company-info-row{
        width:100%;
        display:flex;
        flex-flow:row nowrap;
        margin:0;
    }
    .company-info-label{
        width:30%;
        border-bottom:solid 1px rgba(255, 255, 255, 0.4);
        border-left:solid 1px rgba(255, 255, 255, 0.4);
        border-right:solid 1px rgba(255, 255, 255, 0.4);
    }
    .company-info-data{
        width:70%;
    }
    .company-info-data p a{
        font-size:16px;
        font-weight:500;
    }
    .company-info-row:first-of-type .company-info-label{
        border-top:solid 1px rgba(255, 255, 255, 0.4);
    }
    .company-info-row:first-of-type .company-info-data{
        border-top:solid 1px rgb(2, 72, 163, 0.2);
    }
}

/*==========================================================*/
/* company access                                          */
/*==========================================================*/
.company-access-block{
    padding:80px 0;
    background:var(--company-access);
}
.company-access-wrap{
    width:100%;
    padding:20px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
    background:rgb(255, 255, 255,0.8);
    border-radius:26px;
}
.company-access-body{
    width:100%;
}
.company-access-body h3{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.1em;
    margin-bottom:16px;
}
.company-access-body p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    text-align: justify;
}
.company-access-address{
    color:var(--main-color);
    font-weight:500;
    margin-bottom:30px;
}
.company-access-btn{
    margin-top:40px;
}
.company-access-btn a{
    display:flex;
    min-height:60px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:700;
    letter-spacing:0.1em;
    text-decoration:none;
    transition:transform 0.4s;
}
.company-map-frame{
    width:100%;
    padding-top:320px;
    overflow:hidden;
    background:linear-gradient(135deg, rgba(1, 96, 179, 0.08), rgba(60, 218, 177, 0.14));
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.company-map-frame p{
    color:var(--font-color2);
    font-size:16px;
    letter-spacing:0.06em;
    margin-bottom:0;
    text-align: justify;
}
.company-map-frame iframe{
    width:100%;
    height:100%;
    border:0;
    display:block;
    position:absolute;
    top:0;
    left:0;
}
.company-map{
    margin-bottom:30px;
}
@media(min-width:768px){
    .company-access-address .br_zip{
        display:none;
    }
    .company-access-address .br_add{
        display:none;
    }
}
@media(min-width:992px){
    .company-access-wrap{
        grid-template-columns:0.42fr 0.58fr;
        align-items:stretch;
        gap:34px;
    }
    .company-map-frame{
        height:100%;
        min-height:420px;
    }
    .company-map-frame iframe{
        height:100%;
        min-height:420px;
    }
    .tpcontact-btn.company-access-btn a{
        max-width:280px;
        width:100%;
    }    
}
/*==========================================================*/
/* company contact                                         */
/*==========================================================*/
.company-contact-block{
    padding:80px 0;
    background:#fff;
}
.company-contact-wrap{
    display:flex;
    flex-flow:column wrap;
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.12);
}
.company-contact-img img{
    display:block;
    width:100%;
    height:auto;
}
.company-contact-body{
    padding:34px 24px;
    background:linear-gradient(135deg, rgba(1, 96, 179, 0.08), rgba(60, 218, 177, 0.12));
}
.company-contact-body h2{
    color:var(--font-color);
    font-size:25px;
    font-weight:700;
    letter-spacing:0.08em;
    line-height:1.7;
    margin-bottom:18px;
}
.company-contact-body p{
    color:var(--font-color2);
    font-size:15px;
    line-height:2;
    letter-spacing:0.06em;
}
.company-contact-btn{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:26px;
}
.company-contact-btn a{
    display:flex;
    min-height:54px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:700;
    letter-spacing:0.06em;
    text-decoration:none;
    transition:transform 0.4s;
}
.company-contact-btn a:hover{
    transform:translateY(-3px);
    color:#fff;
}
.company-contact-btn a i{
    margin-right:10px;
    font-size:20px;
}
.company-contact-btn .linelink{
    background:var(--hd-left-bt-color);
}
.company-contact-mail{
    background:var(--sub-color);
}
.company-contact-tel{
    background:#fff;
    color:var(--main-color);
    border:solid 1px var(--main-color);
}
.company-contact-tel:hover{
    color:var(--main-color);
}
.company-contact-tel small{
    display:block;
    font-size:12px;
    font-weight:400;
    text-align:center;
}
@media(min-width:768px){
    .company-contact-btn{
        grid-template-columns:repeat(3, 1fr);
    }
}
@media(min-width:992px){
    .company-contact-wrap{
        flex-flow:row nowrap;
        align-items:stretch;
    }
    .company-contact-img{
        width:42%;
    }
    .company-contact-img img{
        width:100%;
        height:100%;
        object-fit:cover;
    }
    .company-contact-body{
        width:58%;
        padding:58px 50px;
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
    .company-contact-body h2{
        font-size:34px;
    }
}
/*==========================================================*/
/* post                                                     */
/*==========================================================*/
.post-sec{
    padding:40px 0 80px;
    background:rgba(255,255,255,0.6);
}
.ul-infolist>li>a .desc{
    background:rgba(255, 255, 255, 0.8);
}
.viewmore-btn{
    margin-top:60px;
}
.viewmore-btn a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:60px;
    max-width:350px;
    border-radius:30px;
    background:#fff;
    border:solid 1px var(--main-color);
    color:var(--main-color);
    font-weight:700;
    letter-spacing:0.1em;
    text-decoration:none;
    transition:all 0.4s;
    line-height:1;
    margin-left:auto;
    margin-right:auto;
    position:relative;
}
.viewmore-btn a i{
    font-size:24px;
    position:absolute;
    top:50%;
    right:20px;
    translate:0 -50%;
}
.viewmore-btn a:hover{
    background:var(--main-color);
    color:#fff;
}

/*==========================================================*/
/* contact page common                                     */
/*==========================================================*/
.contact-sec{
    overflow:hidden;
    padding:0;
}
.contact-section-head{
    text-align:center;
    margin-bottom:40px;
}
.contact-section-en{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    margin-bottom:10px;
}
.contact-section-ttl{
    color:var(--font-color);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.1em;
    line-height:1.6;
    margin-bottom:40px;
}
.contact-section-ttl span{
    display:inline-block;
    position:relative;
    padding-bottom:20px;
}
.contact-section-ttl span::after{
    content:'';
    width:70px;
    height:3px;
    border-radius:3px;
    background:var(--linear-gradient);
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
}
.contact-section-lead{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    text-align:justify;
}
@media(min-width:768px){
    .contact-section-head{
        margin-bottom:50px;
    }
    .contact-section-ttl{
        font-size:32px;
    }
    .contact-section-ttl br{
        display:none;
    }
}
@media(min-width:992px){
    .contact-section-lead{
        text-align:center;
    }
    .contact-section-ttl{
        font-size:28px;
    }
    .contact-example-body h3{
        font-size:18px;
    }
    .contact-example-items div{
        font-size:15px;
    }    
}
/*==========================================================*/
/* contact hero                                            */
/*==========================================================*/
.page-contact .tpcontact-sec{
    display:none;
}
.contact-hero{
    position:relative;
    padding:80px 0;
    background:var(--contact-hero);
}
.contact-hero::before{
    content:'';
    width:260px;
    height:260px;
    border-radius:50%;
    background:var(--sub-color);
    position:absolute;
    top:-120px;
    right:-90px;
}
.contact-hero-wrap{
    position:relative;
    display:flex;
    flex-flow:column wrap;
    gap:40px;
    z-index:1;
}
.contact-hero-ttl{
    color:var(--main-color);
    font-size:24px;
    font-weight:700;
    line-height:1.7;
    letter-spacing:0.1em;
    margin-bottom:40px;
}
.contact-hero-ttl span{
    background:linear-gradient(transparent 66%, rgba(60, 218, 177, 0.28) 66%);
}
.contact-hero-lead{
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.1em;
    margin-bottom:0;
    text-align: justify;
}
.contact-hero-img{
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(1, 96, 179, 0.14);
}
.contact-hero-img img{
    display:block;
    width:100%;
    height:auto;
}
@media(min-width:768px){
    .contact-hero-ttl{
        font-size:32px;
    }
}
@media(min-width:992px){
    .contact-hero{
        padding:105px 0 115px;
    }
    .contact-hero-wrap{
        flex-flow:row nowrap;
        align-items:center;
        gap:40px;
    }
    .contact-hero-body{
        width:50%;
    }
    .contact-hero-img{
        width:50%;
    }
}

/*==========================================================*/
/* contact method                                          */
/*==========================================================*/
.contact-method-block{
    padding:80px 0;
    position:relative;
}
.contact-method-block::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.8;
    position:absolute;
    inset:0;
    z-index: -1;
}
.contact-method-list{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}
.contact-method-card{
    background:rgb(255, 255, 255, 0.8);
    border-radius:24px;
    padding:30px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.1);
    text-align:center;
}
.contact-method-icon{
    width:70px;
    height:70px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:32px;
    margin:0 auto 20px;
    background:var(--linear-gradient);
}
.contact-method-card h3{
    color:var(--font-color);
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.1em;
}
.contact-method-card p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
    text-align:left;
}
.contact-method-card p.contact-method-time{
    color:var(--main-color);
    font-weight:700;
    margin-top:20px;
    text-align:center;
    font-size:16px;
}
.contact-method-card .desc{
    margin-top:20px;
    margin-bottom:20px;
}
.contact-method-btn a,
.contact-method-link{
    display:flex;
    min-height:60px;
    border-radius:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:700;
    letter-spacing:0.1em;
    text-decoration:none;
    transition:all 0.5s;
    position:relative;
    line-height:1;
}
.contact-method-btn a:hover,
.contact-method-link:hover{
    transform:translateY(-3px);
    color:#fff;
    filter:brightness(1.1);
}
.contact-method-btn a i{
    position:absolute;
    font-size:32px;
    top:50%;
    left:20px;
    translate: 0 -50%;
}
.contact-method-btn a.linelink{
    background:var(--hd-left-bt-color);
    padding-left:20px;
}
.contact-method-btn a.linelink:first-of-type{
    margin-bottom:10px;
}
.contact-method-btn a.linelink small{
    display:block;
    margin-top:4px;
}
.contact-method-tel-link{
    background:#fff;
    color:var(--main-color);
    border:solid 1px var(--main-color);
    font-size:24px;
}
.contact-method-tel-link:hover{
    color:var(--main-color);
}
.contact-method-mail-link{
    background:var(--main-color);
}
@media(min-width:768px){
    .contact-method-list{
        display:flex;
        flex-flow:row wrap;
        gap:20px;
        justify-content: center;
    }
    .contact-method-list>div{
        width:calc((100% - 20px) / 2);
    }
    .contact-method-card .desc{
        min-height:110px;
    }
    .contact-method-tel-link{
        pointer-events:none;
    }
}
@media(min-width:992px){
    .contact-method-list>div{
        width:calc((100% - 40px) / 3);
    }
    .contact-method-card h3{
        font-size:18px;
    }
}
/*==========================================================*/
/* contact example                                         */
/*==========================================================*/
.contact-example-block{
    padding:80px 0;
    position:relative;
}
.contact-example-block::before{
    content:'';
    width:100%;
    height:100%;
    background:linear-gradient(180deg, #eef9ff 0%, #ffffff 100%);
    opacity:0.8;
    position:absolute;
    inset:0;
    z-index: -1;
}
.contact-example-list{
    display:grid;
    grid-template-columns:1fr;
    gap:30px;
}
.contact-example-card{
    background:rgb(255, 255, 255, 0.8);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 14px 32px rgba(1, 96, 179, 0.1);
}
.contact-example-img img{
    display:block;
    width:100%;
    aspect-ratio:5/3;
    object-fit:cover;
    height:auto;
}
.contact-example-body{
    padding:28px 24px 32px;
}
.contact-example-label{
    color:var(--sub-color3);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.1em;
    margin-bottom:10px;
}
.contact-example-body h3{
    color:var(--font-color);
    font-size:22px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:0.08em;
    margin-bottom:18px;
}
.contact-example-items{
    display:flex;
    flex-flow:column wrap;
    gap:12px;
}
.contact-example-items div{
    display:flex;
    align-items:flex-start;
    color:var(--font-color2);
    font-size:16px;
    line-height:2;
    letter-spacing:0.1em;
}
.contact-example-items i{
    color:var(--sub-color3);
    margin-right:10px;
    margin-top:5px;
}
@media(min-width:768px){
    .contact-example-list{
        grid-template-columns:repeat(2, 1fr);
    }
}
@media(min-width:992px){
    .contact-example-body{
        padding:36px 32px 40px;
    }
}

/*==========================================================*/
/* contact form block                                      */
/*==========================================================*/
.contact-form-block{
    padding:80px 0;
    background:var(--contact-form);
}
.contact-form-wrap-page{
    display:grid;
    grid-template-columns:1fr;
    gap:30px;
    align-items:start;
}
.contact-form-guide{
    background:rgb(255, 255, 255, 0.8);
    border-radius:26px;
    padding:30px 20px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
.contact-form-guide .contact-section-ttl{
    text-align:left;
}
.contact-form-guide .contact-section-ttl span::after{
    left:0;
    transform:none;
}
.contact-form-guide p{
    color:var(--font-color2);
    line-height:2;
    letter-spacing:0.1em;
}
.contact-form-guide p.contact-section-en{
    color:var(--sub-color3);
}
.contact-form-note{
    color:var(--main-color);
    font-weight:700;
    background:#f7fbff;
    border-left:solid 4px var(--sub-color3);
    padding:20px;
    margin-bottom:0;
    margin-top:20px;
}
.contact-form-guide p.contact-form-note{
    color:var(--main-color);
}
.contact-form-box{
    background:rgb(255, 255, 255, 0.8);
    border-radius:26px;
    padding:30px 20px;
    box-shadow:0 12px 28px rgba(1, 96, 179, 0.08);
}
@media(min-width:992px){
    .contact-form-wrap-page{
        grid-template-columns:0.38fr 0.62fr;
    }
    .contact-form-guide,
    .contact-form-box{
        padding:40px 30px;
    }
}
/*==========================================================*/
/* Contact Form 7 custom style                             */
/*==========================================================*/
.contactform-wrap{
    display:flex;
    flex-flow:column wrap;
    gap:30px;
}
.contactform-row label{
    display:block;
    color:var(--font-color);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.1em;
    margin-bottom:10px;
}
.contactform-row .required{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:#ff0000e0;
    border-radius:14px;
    font-size:14px;
    font-weight:700;
    line-height:1;
    padding:4px 8px;
    margin-left:8px;
}
.contactform-input,
.contactform-textarea{
    width:100%;
    border:solid 1px rgba(1, 96, 179, 0.18);
    border-radius:14px;
    background:#f7fbff;
    color:var(--font-color);
    font-size:16px;
    line-height:1.6;
    padding:14px 16px;
    outline:none;
    transition:border 0.3s, box-shadow 0.3s, background 0.3s;
}
.contactform-input:focus,
.contactform-textarea:focus{
    border-color:var(--focus-color);
    background:#fff;
    box-shadow:0 0 0 4px rgba(255, 215, 0, 0.1);
}
.contactform-textarea{
    min-height:180px;
}
.contactform-radio .wpcf7-list-item{
    display:block;
    margin:0 0 10px;
}
.contactform-radio .wpcf7-list-item label{
    display:flex;
    align-items:center;
    color:var(--font-color2);
    font-weight:500;
    line-height:1.7;
    margin-bottom:0;
}
.contactform-radio input{
    margin-right:10px;
}
.contactform-radio input{
    width:20px;
    height:20px;
}
.contactform-privacy{
    background:#eff6fc;
    border-radius:14px;
    padding:16px;
}
.contactform-privacy .wpcf7-list-item{
    margin:0;
}
.contactform-privacy input[type='checkbox']{
    width:20px;
    height:20px;
    position:absolute;
    top:5px;
    left:0;
}
.contactform-privacy label{
    color:var(--font-color2);
    font-size:16px;
    line-height:1.8;
    letter-spacing:0.1em;
    position:relative;
    padding-left:30px;
}
.contactform-privacy a{
    display:table;
    color:var(--main-color);
    text-decoration:underline;
    margin-bottom:10px;
    margin-left:auto;
    margin-right:auto;
}
.contactform-privacy>span[data-name='privacy-consent']{
    display:table;
    margin-left:auto;
    margin-right:auto;
}
.contactform-submit{
    text-align:center;
}
.contactform-submit-btn{
    min-width:240px;
    min-height:60px;
    border:0;
    border-radius:30px;
    background:var(--linear-gradient);
    color:#fff;
    font-size:16px;
    font-weight:700;
    letter-spacing:0.12em;
    cursor:pointer;
    transition:transform 0.4s, filter 0.4s;
}
.contactform-submit-btn:disabled {
    filter:brightness(0.5);
}
.contactform-submit-btn:not(:disabled):hover{
    transform:translateY(-3px);
    filter:brightness(1.1);
}
.wpcf7 form .wpcf7-response-output{
    border-radius:14px;
    margin:24px 0 0;
    padding:14px 16px;
    color:var(--font-color2);
    font-size:14px;
    line-height:2;
}
.wpcf7-not-valid-tip{
    font-size:14px;
    line-height:1.6;
    margin-top:10px;
}
.wpcf7-spinner{
    display:table;
    text-align:center;
    margin:10px auto 0 auto;
}
@media(min-width:768px){
    .contactform-textarea{
        min-height:220px;
    }
}
/* ==========================================================================
   Privacy Policy Page
   ========================================================================== */
.privacy_sec{
    background:var(--bk-privacy);
}
/* 全体のラップ（白背景と柔らかな影で独立した文書感を出す） */
.p-privacy {
    background-color: rgb(255, 255, 255, 0.8);
    padding: 40px 5%;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
    margin-bottom: 80px;
}
@media (min-width: 768px) {
    .p-privacy {
        padding: 80px 8%;
    }
}
.p-privacy__container {
    max-width: 840px;
    margin: 0 auto;
}

/* リード文 */
.p-privacy__lead {
    font-size: 16px;
    line-height: 2.0;
    color: #2D3748;
    margin-bottom: 56px;
    padding-bottom: 40px;
    border-bottom: 2px solid #E2E8F0;
}

/* 各セクション（グループ）の区切り */
.p-privacy__section {
    margin-bottom: 56px;
}
.p-privacy__section:last-child {
    margin-bottom: 0;
}

/* 見出し */
.p-privacy__heading {
    font-size: 20px;
    font-weight: 700;
    color: #1A365D; /* 少し濃い紺色 */
    margin-bottom: 24px;
    padding-left: 16px;
    border-left: 4px solid #0A4B8F; /* ブランドカラーのアクセント */
    line-height: 1.4;
}
@media (min-width: 768px) {
    .p-privacy__heading {
        font-size: 22px;
    }
}

/* 本文（小さくしすぎない、読みやすいサイズと行間） */
.p-privacy__text {
    font-size: 16px;
    line-height: 1.9;
    color: #4A5568;
    margin-bottom: 16px;
}
.p-privacy__text:last-child {
    margin-bottom: 0;
}

/* リスト（liタグ） */
.p-privacy__list {
    margin: 16px 0 0 24px;
    padding: 0;
    list-style-type: disc;
}
.p-privacy__list-item {
    font-size: 16px;
    line-height: 1.8;
    color: #4A5568;
    margin-bottom: 12px;
}
.p-privacy__list-item:last-child {
    margin-bottom: 0;
}

/* リンク（aタグ） */
.p-privacy__link {
    color: #3182CE;
    text-decoration: underline;
    transition: all 0.3s ease;
}
.p-privacy__link:hover {
    color: #2B6CB0;
    text-decoration: none;
}
/*==========================================================================*/
/* wave                                                                     */
/*==========================================================================*/
.site-beforefooter{
    position:relative;
    z-index:3;
}
.site-footer{
    position:relative;
    z-index:2;
}
.siteContent .container{
    position:relative;
    z-index:2;
}
.wave-area{
    width:100%;
    height:200px;
    position:fixed;
    overflow:hidden;
    pointer-events:none;
    bottom:0;
    left:0;
    z-index:1;
}
.wave{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:100%;
}
.wave01{
    bottom:0px;
    opacity:0.85;
}
.wave02{
    bottom:-10px;
    opacity:0.9;
}
.wave03{
    bottom:-20px;
    opacity:1;
}
@media(min-width:768px){
    .wave-area{
        height:300px;
    }
}
@media(min-width:992px){
    .wave-area{
        height:400px;
    }
}

/*==========================================================================*/
/* cleanページ用                                                                     */
/*==========================================================================*/

/* 全体コンテナ */
.cleaning-price-container {
  max-width: 900px;
  margin: 0 auto;
  padding: 20px;
  font-family: sans-serif;
  color: #333;
}

/* 1. メイン料金表の見出し */
.price-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #005bac;
  padding-bottom: 8px;
  margin-bottom: 15px;
  flex-wrap: wrap;
  gap: 10px;
}
.price-section-header h2 {
  font-size: 24px;
  color: #005bac;
  margin: 0;
  font-weight: bold;
}
.price-section-header h2 span {
  font-size: 14px;
  color: #666;
}
.badge-blue {
  background-color: #005bac;
  color: #fff;
  padding: 6px 16px;
  font-size: 14px;
  font-weight: bold;
  border-radius: 2px;
}

/* 料金表テーブル */
.table-responsive {
  width: 100%;
  overflow-x: auto;
  margin-bottom: 40px;
}
.main-price-table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
}
.main-price-table th {
  background-color: #fff;
  color: #005bac;
  padding: 12px;
  font-weight: bold;
  border-bottom: 1px solid #ddd;
}
.main-price-table td {
  padding: 12px;
  border-bottom: 1px solid #ddd;
}
.main-price-table tbody tr {
  background-color: #ffffff;
}
.main-price-table tbody tr:nth-child(even) {
  background-color: #f4f8fc; 
}
.main-price-table td:first-child {
  color: #005bac;
  font-weight: bold;
  text-align: left;
  padding-left: 20px;
}
.price-bold {
  font-weight: bold;
}

/* 2. 作業例ギャラリー */
.work-gallery-section {
  margin-bottom: 40px;
}
.gallery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* 3. オプションセクション */
.option-section {
  margin-bottom: 30px;
}
.option-title-wrap {
  border-bottom: 1px solid #005bac;
  padding-bottom: 10px;
  margin-bottom: 20px;
}
.option-badge {
  display: inline-block;
  border: 1px solid #005bac;
  color: #005bac;
  padding: 4px 25px;
  border-radius: 20px;
  font-weight: bold;
  font-size: 16px;
}
.diamond-icon {
  color: #00a0e9;
  margin-right: 5px;
}

/* メインオプションカード */
.option-main-card {
  margin-bottom: 25px;
}
.option-main-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.option-main-header h3 {
  font-size: 18px;
  margin: 0;
  color: #005bac;
  font-weight: bold;
}
.option-main-price {
  font-size: 18px;
  font-weight: bold;
  margin-left: auto;
}
.option-note {
  font-size: 13px;
  color: #666;
  margin: 5px 0 0 20px;
}

/* サブオプションリスト */
.option-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.option-list li {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px dashed #ddd;
}
.option-name {
  font-weight: bold;
  color: #333;
}
.option-value {
  font-weight: bold;
}

/* 4. 下部案内ボックス */
.info-footer-box {
  border: 1px solid #005bac;
  padding: 12px;
  text-align: center;
  margin-top: 30px;
}
.info-footer-box p {
  margin: 0;
  color: #005bac;
  font-weight: bold;
}

/* スマホ用レスポンシブ調整 */
@media (max-width: 600px) {
  .price-section-header h2 { font-size: 20px; }
  .gallery-grid { grid-template-columns: 1fr; } /* 画像を縦並びに */
  .option-main-price { margin-left: 20px; }
  .main-price-table th, .main-price-table td { padding: 8px; font-size: 14px; }
  .main-price-table td:first-child { padding-left: 8px; }
}

/* 清掃ページフッター設定 */
.tpcontact-img .img-cleaning {
  display: none;
}

.page-id-23 .tpcontact-img .img-default {
  display: none !important; /* 普段の画像を隠す */
}
.page-id-23 .tpcontact-img .img-cleaning {
  display: inline-block !important; /* 清掃用の画像を表示する */
}