@charset "UTF-8";

/* ======================
   CSS Variables
====================== */
:root{
    --red:#e7201a;
    --red-dk:#bb0000;
    --black:#111;
    --gray-dk:#333;
    --gray:#666;
    --gray-lt:#f5f5f5;
    --white:#fff;
    --nav-h:70px;
    --nav-sp:60px;
}
 
/* ======================
   Base Reset / Common
====================== */
*,*::before,*::after{box-sizing:border-box;}
html{font-size:62.5%;scroll-behavior:smooth;}
body{
    font-family:'Noto Sans JP',sans-serif;
    font-size:1.6rem;
    line-height:1.7;
    color:var(--gray-dk);
    background:var(--white);
    overflow-x:hidden;
}
img{max-width:100%;height:auto;vertical-align:middle;display:block;}
a{color:inherit;text-decoration:none;transition:opacity .25s;}
a:hover{opacity:.8;}
ul,ol{list-style:none;margin:0;padding:0;}
.pc-show{display:block;}
.sp-show{display:none;}
@media(max-width:768px){
    .pc-show{display:none;}
    .sp-show{display:block;}
}
 
/* ======================
   Scroll Animations
====================== */
.js-fade{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .65s ease,transform .65s ease;
}
.js-fade-l{
    opacity:0;
    transform:translateX(-36px);
    transition:opacity .7s ease,transform .7s ease;
}
.js-fade-r{
    opacity:0;
    transform:translateX(36px);
    transition:opacity .7s ease,transform .7s ease;
}
.js-fade.on,.js-fade-l.on,.js-fade-r.on{
    opacity:1;
    transform:translate(0,0);
}
.delay1{transition-delay:.1s;}
.delay2{transition-delay:.2s;}
.delay3{transition-delay:.3s;}
 
/* ======================
   Navigation
====================== */
.g-nav{
    position:fixed;
    top:0;left:0;
    width:100%;
    height:var(--nav-h);
    background:var(--white);
    box-shadow:0 2px 10px rgba(0,0,0,.1);
    z-index:1000;
}
.g-nav__inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:100%;
    max-width:1240px;
    margin:0 auto;
    padding:0 24px;
}
 
/* logo */
.g-nav__logo{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}
.g-nav__logo img{width:400px;height:auto;}
@media(max-width:768px){
.g-nav__logo img{width:200px;height:auto;}
}
.g-nav__logo-text{
    line-height:1.25;
}
.g-nav__logo-text strong{
    display:block;
    font-size:1.8rem;
    font-weight:900;
    color:var(--black);
    letter-spacing:.02em;
}
.g-nav__logo-text span{
    display:block;
    font-size:1.05rem;
    color:var(--gray);
    font-weight:400;
}
 
/* menu */
.g-nav__menu{
    display:flex;
    align-items:center;
    gap:0;
}
.g-nav__menu li a{
    display:flex;
    align-items:center;
    height:var(--nav-h);
    padding:0 14px;
    font-size:1.3rem;
    font-weight:700;
    color:var(--gray-dk);
    border-bottom:3px solid transparent;
    white-space:nowrap;
    transition:color .2s,border-color .2s;
}
.g-nav__menu li a:hover,
.g-nav__menu li.is-current a{
    color:var(--red);
    border-bottom-color:var(--red);
    opacity:1;
}
.g-nav__menu .nav-btn{
    display:flex !important;
    align-items:center;
    gap:5px;
    height:40px !important;
    padding:0 20px !important;
    margin-left:10px;
    background:var(--red) !important;
    color:var(--white) !important;
    border-radius:4px;
    border-bottom:none !important;
    font-size:1.3rem !important;
    transition:background .2s !important;
}
.g-nav__menu .nav-btn:hover{
    background:var(--red-dk) !important;
    opacity:1 !important;
}
.g-nav__menu .nav-btn .material-symbols-outlined{font-size:16px;}
 
/* hamburger */
.g-nav__hum{
    display:none;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    width:40px;height:40px;
    background:none;border:none;
    cursor:pointer;padding:0;
    flex-shrink:0;
}
.g-nav__hum span{
    display:block;
    width:26px;height:2px;
    background:var(--gray-dk);
    transition:all .3s;
    transform-origin:center;
}
.g-nav__hum.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.g-nav__hum.is-open span:nth-child(2){opacity:0;}
.g-nav__hum.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
 
/* sp drawer */
.sp-drawer{
    position:fixed;
    top:var(--nav-sp);left:0;
    width:100%;
    height:calc(100vh - var(--nav-sp));
    background:var(--white);
    z-index:999;
    overflow-y:auto;
    transform:translateX(100%);
    transition:transform .35s ease;
}
.sp-drawer.is-open{transform:translateX(0);}
.sp-drawer__menu li a{
    display:block;
    padding:16px 24px;
    font-size:1.6rem;font-weight:700;
    border-bottom:1px solid #eee;
    color:var(--gray-dk);
}
.sp-drawer__contact{
    padding:24px 20px;
    display:flex;flex-direction:column;gap:12px;
}
.sp-drawer__tel{
    display:flex;align-items:center;justify-content:center;gap:8px;
    font-size:2.4rem;font-weight:700;
    border:2px solid #ddd;border-radius:6px;
    padding:14px 0;color:var(--gray-dk);
}
.sp-drawer__btn{
    display:flex;align-items:center;justify-content:center;gap:8px;
    background:var(--red);color:var(--white);
    font-size:1.6rem;font-weight:700;
    border-radius:6px;padding:16px 0;
}
 
@media(max-width:960px){
    .g-nav__menu{display:none;}
    .g-nav__hum{display:flex;}
}
 
/* ======================
   KV
====================== */
.kv{
    position:relative;
    width:100%;
    min-height:780px;
    background:url('../image/kv_main.jpg') center / cover no-repeat;
    margin-top:var(--nav-h);
    display:flex;
    align-items:center;
    overflow:hidden;
}
@media(max-width:768px){
    .kv{margin-top:var(--nav-sp);min-height:480px;background-position:70% center;}
}
.kv::before{
    content:'';
    position:absolute;inset:0;
    background:linear-gradient(90deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.05) 100%);
}
@media(max-width:768px){
    .kv::before{background:rgba(0,0,0,.52);}
}
.kv__inner{
    position:relative; z-index:1;
    padding:60px 60px 80px;
    max-width:1000px;
    margin: auto;
}
@media(max-width:768px){
    .kv__inner{padding:40px 20px 60px;max-width:100%;}
}
.kv__sub{
    display:inline-block;
    background:var(--red);
    color:var(--white);
    font-size:1.7rem;font-weight:700;
    padding:4px 14px 5px;border-radius:2px;
    margin-bottom:14px;letter-spacing:.06em;
}
.kv__ttl{
    font-size:clamp(3.2rem,5.5vw,5.8rem);
    font-weight:900;
    color:var(--white);
    line-height:1.2;
    text-shadow:0 2px 14px rgba(0,0,0,.4);
    letter-spacing:.02em;
    margin-bottom:0;
}
.kv__ttl em{
    font-style:normal;
    color:#fff;
    padding: 0 10px 0 0;
}

.kv__ttl em img{
    width: 450px;
    
}
@media(max-width:768px){
    .kv__ttl{font-size:clamp(2.8rem,8vw,4.2rem);}
}
 
/* badges */
.kv__badges{
    display:flex;gap:14px;
    margin-top:36px;flex-wrap:wrap;
}
.kv__badge{
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    background:rgba(222, 202, 121, 0.9);
    color:var(--black);
    border-radius:50%;
    width:120px;height:120px;
    font-weight:700;text-align:center;
    line-height:1.25;
    box-shadow:0 4px 16px rgba(0,0,0,.28);
    padding:8px;
}
.kv__badge-main{
    font-size:2.0rem;font-weight:900;
    display:block;line-height:1.05;
}
.kv__badge-main small{font-size:.6em;}
.kv__badge-sub{
    font-size:1.0rem;font-weight:700;
    display:block;line-height:1.3;
}
.kv__badge--red{
    background:var(--red);
    color:var(--white);
}
.kv__badge--red .kv__badge-main{font-size:2.5rem;}
@media(max-width:768px){
    .kv__badge{width:110px;height:110px;}
    .kv__badge-main{font-size:1.9rem;}
    .kv__badge-sub{font-size:.95rem;}
}
@media(max-width:390px){
    .kv__badge{width:105px;height:105px;}
}

@media(max-width:380px){
    .kv__badge{width:100px;height:100px;}
}
 
/* ======================
   BUSINESS
====================== */
.sec-business{
    background:rgb(255, 255, 255);
    overflow:hidden;
}
.sec-business__inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas: "left right";
    min-height:420px;
    align-items: start;
}

.sec-business__img { grid-area: right; }
.sec-business__txt { grid-area: left; }

@media(max-width:768px){
    .sec-business__inner{grid-template-columns:1fr;}
    .sec-business__img { grid-area: left; }
    .sec-business__txt { grid-area: right; }
}
.sec-business__txt{
    padding:72px 64px 72px 120px;
    display:flex;flex-direction:column;justify-content:center;
}
@media(max-width:1080px){.sec-business__txt{padding:48px 40px;}}
@media(max-width:768px){.sec-business__txt{padding:40px 24px;}}
 
.sec-en{
    font-family:'Oswald',sans-serif;
    font-size:clamp(3.6rem,5vw,5.8rem);
    font-weight:700;
    letter-spacing:.04em;
    line-height:1;
    margin-bottom:18px;
}
.sec-en--white{color:var(--white);}
.sec-en--dark{color:var(--gray-dk);}
 
.sec-business__lead{
    font-size:1.55rem;font-weight:700;
    color:var(--black);margin-bottom:14px;
}
.sec-business__body{
    font-size:1.4rem;
    color:rgba(0,0,0,.72);
    line-height:1.9;margin-bottom:32px;
}
.btn-outline{
    display:inline-flex;align-items:center;gap:8px;
    border:3px solid;
    font-size:1.5rem;font-weight:700;
    padding:12px 32px;border-radius:20px;
    transition:background .2s,color .2s;
    width:fit-content;cursor:pointer;
}
.btn-outline--red{border-color:var(--red);color:var(--black);}
.btn-outline--red:hover{background:var(--red);color:var(--white); opacity:1;}
.btn-outline--dark{border-color:var(--gray-dk);color:var(--gray-dk);}
.btn-outline--dark:hover{background:var(--gray-dk);color:var(--white);opacity:1;}
 
.sec-business__img{
    position:relative;overflow:hidden;

}
.sec-business__img img {
    width:100%;height:100%;
    object-fit:cover;display:block;
}

@media(max-width:768px){
    .sec-business__img{height:260px;}
}
 
/* ======================
   WHY CHOOSE US
====================== */
.sec-why{
    background:#fff;
    overflow:hidden;
}
.sec-why__inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:440px;
}
@media(max-width:768px){
    .sec-why__inner{grid-template-columns:1fr;}
}
.sec-why__img{
    position:relative;overflow:hidden;
}
.sec-why__img img{
    width:100%;height:100%;
    object-fit:cover;display:block;
}
@media(max-width:768px){
    .sec-why__img{height:260px;order:1;}
    .sec-why__txt{order:2;}
}
.sec-why__txt{
    padding:72px 64px 72px 60px;
    display:flex;flex-direction:column;justify-content:center;
    background:var(--white);
}
@media(max-width:1080px){.sec-why__txt{padding:48px 40px;}}
@media(max-width:768px){.sec-why__txt{padding:40px 24px;}}
 
.sec-why__body{
    font-size:1.55rem;
    color:var(--gray-dk);
    line-height:1.95;
    margin-bottom:32px;
}
 
/* ======================
   ラインナップ セクション
====================== */
.sec-lineup{
    padding:72px 0 80px;
    background:var(--white);
}
@media(max-width:768px){.sec-lineup{padding:48px 0 60px;}}
 
.sec-ttl-area{
    text-align:center;
    margin-bottom:48px;
}
.sec-ttl-area h2{
    font-size:clamp(2rem,3vw,2.6rem);
    font-weight:900;
    color:var(--gray-dk);
    letter-spacing:.04em;
    margin-bottom:8px;
}
.sec-ttl-area p{
    font-size:1.4rem;
    color:var(--gray);
}
 
.inner{
    max-width:1080px;
    margin:0 auto;
    padding:0 40px;
}
@media(max-width:768px){.inner{padding:0 20px;}}
 
/* lineup block */
.lineup-block{
    background:var(--white);
    border:1px solid #e0e0e0;
    border-radius:6px;
    overflow:hidden;
    margin-bottom:28px;
}
.lineup-block:last-child{margin-bottom:0;}
 
.lineup-block__head{
    display:flex;align-items:center;gap:16px;
    background:var(--red);
}
@media(max-width:768px){.lineup-block__head{padding:10px 16px;flex-wrap:wrap;gap:4px;}}
.lineup-block__cat{
    font-size:1.55rem;font-weight:900;
    color:var(--white);letter-spacing:.04em;
    white-space:nowrap;
    background-color: #000;
    display: inline-block; /* 横幅に合わせるなら block のままでも可 */
    padding: 12px 24px;
    position: relative; /* 疑似要素の基準 */
}
.lineup-block__cat::after{
content: "";
position: absolute;
top: 0;
right: -20px; /* 三角の幅に合わせて調整 */
transform: translateY(-50%);
width: 0;
height: 0;
border-top: 0px solid transparent; /* 三角の高さ調整 */
border-bottom: 100px solid transparent;
border-left: 20px solid #000; /* 三角の色（背景と揃える） */
pointer-events: none;
}

.lineup-block__desc{
    font-size:1.3rem;
    color:rgba(255,255,255,.82);
}
@media(max-width:599px){
.lineup-block__cat{
    background-color: rgba(0,0,0,0);
    padding: 0px 0px;
}
.lineup-block__cat::after{display: none;}
}
 
.lineup-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
}
@media(max-width:900px){.lineup-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.lineup-grid{grid-template-columns:repeat(2,1fr);}}
 
.lineup-item{
    border-right:1px solid #ececec;
    border-bottom:1px solid #ececec;
    padding:16px 10px 14px;
    text-align:center;
    transition:background .2s;
}
.lineup-item:hover{background:#fef4f4;}
 
/* 4カラム時：4の倍数番目の右ボーダー消す */
.lineup-grid--4 .lineup-item:nth-child(4n){border-right:none;}
@media(max-width:900px){
    .lineup-grid--4 .lineup-item:nth-child(4n){border-right:1px solid #ececec;}
    .lineup-grid--4 .lineup-item:nth-child(3n){border-right:none;}
}
@media(max-width:560px){
    .lineup-grid--4 .lineup-item:nth-child(3n){border-right:1px solid #ececec;}
    .lineup-grid--4 .lineup-item:nth-child(2n){border-right:none;}
}
 
.lineup-item__img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:contain;
    background:#f5f5f5;
    margin-bottom:8px;
    border-radius:2px;
}
.lineup-item__name{
    font-size:1.25rem;font-weight:700;
    color:var(--gray-dk);
    margin-bottom:3px;line-height:1.3;
}
.lineup-item__type{
    font-size:1.1rem;color:var(--gray);
    line-height:1.4;
}
 
/* ======================
   バナー3枚
====================== */
.sec-banners{}
.banner-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap: 10px 10px;
}
@media(max-width:768px){.banner-grid{grid-template-columns:1fr;}}
 
.banner-item{
    position:relative;overflow:hidden;
    aspect-ratio:4/3;
    display:block;
}
.banner-item img{
    width:100%;height:100%;
    object-fit:cover;display:block;
    transition:transform .4s ease;
}
.banner-item:hover img{transform:scale(1.06);opacity:1;}
.banner-item::before{
    content:'';
    position:absolute;inset:0;
    background:rgba(0,0,0,.1);
    z-index:1;
    transition:background .3s;
}
.banner-item:hover::before{background:rgba(0,0,0,.22);}
.banner-item__label{
    position:absolute;
    bottom:18px;left:50%;
    transform:translateX(-50%);
    z-index:2;
    background:var(--red);
    color:var(--white);
    font-size:1.35rem;font-weight:700;
    padding:5px 18px;border-radius:2px;
    white-space:nowrap;letter-spacing:.06em;
}
 












/* ======================
   Common Utility
====================== */
.inner{
    max-width:1080px;
    margin:0 auto;
    padding:0 40px;
}
@media(max-width:768px){.inner{padding:0 20px;}}

.btn-white{
    display:inline-flex;align-items:center;gap:10px;
    background:var(--white);color:var(--red);
    font-size:1.6rem;font-weight:700;
    padding:14px 36px;border-radius:4px;
    width:fit-content;
    box-shadow:0 4px 16px rgba(0,0,0,.18);
    transition:background .2s,color .2s;
}
.btn-white:hover{background:var(--gray-dk);color:var(--white);opacity:1;}
.btn-white .material-symbols-outlined{font-size:20px;}

/* ======================
   Page KV（下層共通）
====================== */
.about_kv{
    position:relative;
    width:100%;
    height:220px;
    margin-top:var(--nav-h);
    background:url('../image/about_kv.jpg') center / cover no-repeat;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
}
@media(max-width:768px){
    .about_kv{margin-top:var(--nav-sp);height:160px;}
}
.about_kv::before{
    content:'';
    position:absolute;inset:0;
    background:rgba(0,0,0,.48);
}
.page-kv__inner{
    position:relative;z-index:1;
    text-align:center;
    padding:0 20px;
}
.page-kv__en{
    font-family:'Oswald',sans-serif;
    font-size:1.3rem;font-weight:600;
    color:rgba(255,255,255,.7);
    letter-spacing:.2em;
    text-transform:uppercase;
    margin-bottom:8px;
}
.page-kv__ttl{
    font-size:clamp(2.2rem,4vw,3.4rem);
    font-weight:900;color:var(--white);
    letter-spacing:.04em;
    text-shadow:0 2px 10px rgba(0,0,0,.35);
    line-height:1.3;
}

/* breadcrumb */
.breadcrumb{
    background:#f5f5f5;
    border-bottom:1px solid #e8e8e8;
    padding:10px 0;
}
.breadcrumb__list{
    display:flex;align-items:center;flex-wrap:wrap;gap:0;
    max-width:1080px;margin:0 auto;padding:0 40px;
}
@media(max-width:768px){.breadcrumb__list{padding:0 20px;}}
.breadcrumb__list li{
    display:flex;align-items:center;
    font-size:1.2rem;color:var(--gray);
}
.breadcrumb__list li a{
    color:var(--gray);
    transition:color .2s;
}
.breadcrumb__list li a:hover{color:var(--red);opacity:1;}
.breadcrumb__list li + li::before{
    content:'›';
    margin:0 8px;
    color:#bbb;font-size:1.4rem;line-height:1;
}
.breadcrumb__list li:last-child{color:var(--gray-dk);}

/* ======================
   リード文（中央）
====================== */
.sec-lead{
    padding:72px 0 56px;
    text-align:center;
    background:var(--white);
}
@media(max-width:768px){.sec-lead{padding:48px 0 40px;}}
.sec-lead__ttl{
    font-size:clamp(1.8rem,2.8vw,2.4rem);
    font-weight:900;
    color:var(--gray-dk);
    line-height:1.6;
    letter-spacing:.04em;
    margin-bottom:0;
}
.sec-lead__ttl span{
    display:block;
    font-size:clamp(2.2rem,3.5vw,3rem);
    color:var(--red);
    margin-top:4px;
}
@media(max-width:768px){
    .sec-lead__ttl br{display:none;}
}

/* ======================
   カテゴリヘッダーバー（共通）
====================== */
.cat-bar{
    display:flex;align-items:center;gap:20px;
    background:var(--red);
    padding:12px 24px;
    margin-bottom:48px;
}
@media(max-width:768px){.cat-bar{padding:10px 16px;gap:10px;}}
.cat-bar__name{
    font-size:1.6rem;font-weight:900;
    color:var(--white);letter-spacing:.04em;
    white-space:nowrap;
}
.cat-bar__desc{
    font-size:1.3rem;
    color:rgba(255,255,255,.82);
    line-height:1.5;
}
@media(max-width:560px){.cat-bar__desc{display:none;}}

/* ======================
   強み セクション
====================== */
.sec-strength{
    padding:0 0 80px;
    background:var(--white);
}
@media(max-width:768px){.sec-strength{padding:0 0 56px;}}

/* 1項目 = 画像＋テキスト横並び */
.strength-item{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    margin-bottom:64px;
    align-items:stretch;
    border:1px solid #e8e8e8;
    border-radius:4px;
    overflow:hidden;
    box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.strength-item:last-child{margin-bottom:0;}

/* 偶数番目：画像を右に */
.strength-item:nth-child(even){
    direction:rtl;
}
.strength-item:nth-child(even) > *{
    direction:ltr;
}

@media(max-width:768px){
    .strength-item{
        grid-template-columns:1fr;
        direction:ltr !important;
    }
    .strength-item:nth-child(even) > *{direction:ltr;}
}

/* 画像エリア */
.strength-item__img{
    position:relative;
    overflow:hidden;
    min-height:300px;
}
.strength-item__img img{
    width:100%;height:100%;
    object-fit:cover;
    display:block;
    transition:transform .5s ease;
}
.strength-item:hover .strength-item__img img{
    transform:scale(1.04);
}
@media(max-width:768px){
    .strength-item__img{min-height:220px;}
}

/* テキストエリア */
.strength-item__txt{
    padding:48px 52px;
    display:flex;flex-direction:column;justify-content:center;
    background:var(--white);
}
@media(max-width:1080px){.strength-item__txt{padding:40px 36px;}}
@media(max-width:768px){.strength-item__txt{padding:32px 24px;}}

.strength-item__num{
    font-family:'Oswald',sans-serif;
    font-size:1.2rem;font-weight:600;
    color:var(--red);
    letter-spacing:.15em;
    margin-bottom:10px;
    display:flex;align-items:center;gap:8px;
}
.strength-item__num::after{
    content:'';
    display:block;
    width:32px;height:2px;
    background:var(--red);
    border-radius:1px;
}

.strength-item__ttl{
    font-size:clamp(1.8rem,2.5vw,2.2rem);
    font-weight:900;
    color:var(--gray-dk);
    line-height:1.4;
    margin-bottom:18px;
    letter-spacing:.03em;
}

.strength-item__body{
    font-size:1.45rem;
    color:var(--gray);
    line-height:1.9;
}
.strength-item__body + .strength-item__body{
    margin-top:14px;
}

/* ======================
   WHY CHOOSE US まとめBOX
====================== */
.sec-why-box{
    background:var(--black);
    padding:0;
    overflow:hidden;
}
.why-box__inner{
    display:grid;
    grid-template-columns:280px 1fr;
    min-height:260px;
    max-width:100%;
}
@media(max-width:768px){
    .why-box__inner{grid-template-columns:1fr;}
}
.why-box__label{
    background:#1a1a1a;
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    padding:40px 32px;
}
.why-box__en{
    font-family:'Oswald',sans-serif;
    font-size:clamp(3.2rem,4vw,5rem);
    font-weight:700;
    color:var(--white);
    letter-spacing:.04em;
    line-height:1.1;
    text-align:center;
}
@media(max-width:768px){
    .why-box__label{padding:36px 24px;}
    .why-box__en{font-size:4rem;}
}
.why-box__txt{
    padding:48px 60px;
    display:flex;flex-direction:column;justify-content:center;
    border-left:1px solid rgba(255,255,255,.08);
}
@media(max-width:1080px){.why-box__txt{padding:40px;}}
@media(max-width:768px){.why-box__txt{padding:36px 24px;border-left:none;border-top:1px solid rgba(255,255,255,.08);}}
.why-box__lead{
    font-size:clamp(1.7rem,2.2vw,2rem);
    font-weight:700;
    color:var(--white);
    line-height:1.6;
    margin-bottom:14px;
    letter-spacing:.02em;
}
.why-box__body{
    font-size:1.45rem;
    color:rgba(255,255,255,.7);
    line-height:1.9;
}










/* ======================
   Page KV（下層共通）
====================== */
.company_kv{
    position:relative;
    width:100%;height:220px;
    margin-top:var(--nav-h);
    background:url('../image/company_kv.jpg') center / cover no-repeat;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
}
@media(max-width:768px){
    .company_kv{margin-top:var(--nav-sp);height:160px;}
}
.company_kv::before{
    content:'';position:absolute;inset:0;
    background:rgba(0,0,0,.5);
}

/* ======================
   代表メッセージ
====================== */
.sec-message{
    padding:0;
    background:var(--white);
    overflow:hidden;
}
.message-inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:500px;
}
@media(max-width:768px){
    .message-inner{grid-template-columns:1fr;}
}

/* 左：写真エリア */
.message-img{
    position:relative;overflow:hidden;
}
.message-img img{
    width:100%;height:100%;
    object-fit:cover;display:block;
}
.message-img__caption{
    position:absolute;bottom:16px;left:16px;
    background:rgba(0,0,0,.55);
    color:var(--white);font-size:1.1rem;
    padding:4px 10px;border-radius:2px;
    letter-spacing:.08em;
}
@media(max-width:768px){
    .message-img{min-height:280px;}
}

/* 右：テキストエリア */
.message-txt{
    padding:64px 60px 64px 56px;
    display:flex;flex-direction:column;justify-content:center;
    background:var(--white);
}
@media(max-width:1080px){.message-txt{padding:48px 40px;}}
@media(max-width:768px){.message-txt{padding:36px 24px;}}

.message-txt__ttl{
    font-size:clamp(2rem,2.8vw,2.6rem);
    font-weight:900;color:var(--gray-dk);
    letter-spacing:.04em;margin-bottom:22px;
    line-height:1.3;
}

.message-txt__body{
    font-size:1.5rem;color:var(--gray-dk);
    line-height:2.0;margin-bottom:0;
}

/* 代表者名 */
.message-ceo{
    margin-top:36px;
    text-align:right;
    border-top:1px solid #e8e8e8;
    padding-top:24px;
}
.message-ceo__role{
    font-size:1.2rem;color:var(--gray);
    margin-bottom:6px;letter-spacing:.06em;
}
.message-ceo__name{
    font-size:clamp(2.4rem,3vw,3.2rem);
    font-weight:900;color:var(--gray-dk);
    letter-spacing:.06em;line-height:1.2;
}
.message-ceo__name-en{
    font-family:'Oswald',sans-serif;
    font-size:1.3rem;font-weight:500;
    color:var(--gray);letter-spacing:.1em;
    margin-top:4px;display:block;
}

/* ======================
   会社概要 テーブル
====================== */
.sec-overview{
    padding:80px 0 90px;
    background:var(--white);
}
@media(max-width:768px){.sec-overview{padding:52px 0 64px;}}

.sec-overview__ttl{
    font-size:clamp(2rem,2.8vw,2.6rem);
    font-weight:900;color:var(--gray-dk);
    letter-spacing:.06em;
    text-align:center;
    margin-bottom:48px;
}
@media(max-width:768px){.sec-overview__ttl{margin-bottom:32px;}}

/* テーブル */
.overview-table{
    width:100%;
    border-collapse:collapse;
    font-size:1.5rem;
}
.overview-table tr{
    border-top:1px solid #e4e4e4;
}
.overview-table tr:last-child{
    border-bottom:1px solid #e4e4e4;
}
.overview-table th{
    width:160px;
    min-width:120px;
    padding:20px 24px;
    background:#fafafa;
    font-weight:700;color:var(--gray-dk);
    text-align:left;vertical-align:top;
    letter-spacing:.04em;
    white-space:nowrap;
}
@media(max-width:768px){
    .overview-table th{
        width:100px;min-width:80px;
        padding:16px 14px;
        font-size:1.35rem;
    }
}
.overview-table td{
    padding:20px 28px;
    color:var(--gray-dk);
    vertical-align:top;
    line-height:1.8;
}
@media(max-width:768px){
    .overview-table td{
        padding:16px 16px;
        font-size:1.4rem;
    }
}
.overview-table tr:nth-child(even) td{
    background:rgba(231,32,26,.025);
}
.overview-table tr:hover td,
.overview-table tr:hover th{
    background:#fef5f5;
    transition:background .2s;
}











/* ======================
   Page KV（下層共通）
====================== */
.contact_kv{
    position:relative;
    width:100%;height:220px;
    margin-top:var(--nav-h);
    background:url('../image/company_kv.jpg') center / cover no-repeat;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
}
@media(max-width:768px){
    .contact_kv{margin-top:var(--nav-sp);height:160px;}
}
.contact_kv::before{
    content:'';position:absolute;inset:0;
    background:rgba(0,0,0,.5);
}


/* ======================
   リード文
====================== */
.sec-lead{
    padding:64px 0 52px;
    text-align:center;
    background:var(--white);
}
@media(max-width:768px){.sec-lead{padding:44px 0 36px;}}
.sec-lead__txt{
    font-size:clamp(1.65rem,2.4vw,2rem);
    font-weight:700;color:var(--gray-dk);
    line-height:1.75;letter-spacing:.02em;
}
@media(max-width:768px){
    .sec-lead__txt{font-size:1.6rem;}
    .sec-lead__txt br{display:none;}
}

/* ======================
   フォームセクション
====================== */
.sec-form{
    padding:0 0 80px;
    background:var(--white);
}
@media(max-width:768px){.sec-form{padding:0 0 56px;}}

/* フォームボックス */
.form-box{
    border:1px solid #ddd;
    border-radius:4px;
    overflow:hidden;
}

/* フォームヘッダー（黒帯） */
.form-box__head{
    background:var(--black);
    padding:16px 24px;
    text-align:center;
}
.form-box__head-ttl{
    font-size:1.7rem;font-weight:700;
    color:var(--white);letter-spacing:.08em;
}

/* フォーム本体 */
.form-box__body{
    padding:32px 48px 44px;
    background:#f7f7f7;
}
@media(max-width:768px){.form-box__body{padding:24px 20px 32px;}}

/* 案内テキスト */
.form-box__note{
    text-align:center;
    font-size:1.4rem;color:var(--gray-dk);
    line-height:1.8;margin-bottom:6px;
}
.form-box__note a{color:var(--red);text-decoration:underline;}
.form-box__caution{
    text-align:center;
    font-size:1.25rem;color:var(--gray);
    margin-bottom:24px;
}
.form-box__caution a{color:var(--red);}

/* 電話番号 */
.form-tel{
    text-align:center;
    margin-bottom:36px;
}
.form-tel__num{
    display:inline-flex;align-items:center;gap:6px;
    font-size:clamp(2.8rem,4.5vw,4rem);
    font-weight:900;color:var(--gray-dk);
    letter-spacing:.04em;
    line-height:1;
}
.form-tel__num::before{
    content:'☎';
    font-size:.7em;
    color:var(--gray);
}
@media(max-width:768px){
    .form-tel__num{font-size:3rem;}
}

/* 区切り線 */
.form-divider{
    border:none;border-top:1px solid #ddd;
    margin:0 0 32px;
}

/* ラベル */
.form-row{
    margin-bottom:20px;
}
.form-label{
    display:flex;align-items:center;gap:8px;
    font-size:1.45rem;font-weight:700;
    color:var(--gray-dk);margin-bottom:8px;
}
.form-label .req{
    display:inline-block;
    background:var(--red);color:var(--white);
    font-size:1.1rem;font-weight:700;
    padding:2px 7px;border-radius:2px;
    letter-spacing:.04em;line-height:1.4;
}

/* ======================
   CF7 完全スタイリング
====================== */

/* ラッパー・コントロール */
.wpcf7{ margin:0; }
.wpcf7 form{ margin:0; }
.wpcf7 .wpcf7-form-control-wrap{
    display:block;width:100%;
}

/* テキスト・メール・TEL 入力 */
.wpcf7 form input[type="text"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="tel"]{
    display:block;
    width:100%;
    background:#e8e8e8;
    border:1px solid #d0d0d0;
    border-radius:3px;
    padding:12px 16px;
    font-size:1.5rem;
    font-family:inherit;
    color:var(--gray-dk);
    outline:none;
    transition:border-color .2s,background .2s,box-shadow .2s;
    appearance:none;-webkit-appearance:none;
}
.wpcf7 form input[type="text"]:focus,
.wpcf7 form input[type="email"]:focus,
.wpcf7 form input[type="tel"]:focus{
    background:var(--white);
    border-color:var(--red);
    box-shadow:0 0 0 3px rgba(231,32,26,.12);
}
@media(max-width:768px){
    .wpcf7 form input[type="text"],
    .wpcf7 form input[type="email"],
    .wpcf7 form input[type="tel"]{
        padding:11px 14px;font-size:1.45rem;
    }
}

/* テキストエリア */
.wpcf7 form textarea{
    display:block;
    width:100%;
    min-height:200px;
    background:#e8e8e8;
    border:1px solid #d0d0d0;
    border-radius:3px;
    padding:12px 16px;
    font-size:1.5rem;
    font-family:inherit;
    color:var(--gray-dk);
    outline:none;
    resize:vertical;
    line-height:1.75;
    transition:border-color .2s,background .2s,box-shadow .2s;
    appearance:none;-webkit-appearance:none;
}
.wpcf7 form textarea:focus{
    background:var(--white);
    border-color:var(--red);
    box-shadow:0 0 0 3px rgba(231,32,26,.12);
}

/* バリデーションエラー */
.wpcf7 .wpcf7-not-valid-tip{
    display:block;
    font-size:1.2rem;color:var(--red);
    margin-top:5px;font-weight:500;
}
.wpcf7 form .wpcf7-form-control-wrap input.wpcf7-not-valid,
.wpcf7 form .wpcf7-form-control-wrap textarea.wpcf7-not-valid{
    border-color:var(--red);
    background:var(--white);
    box-shadow:0 0 0 3px rgba(231,32,26,.12);
}

/* レスポンスメッセージ */
.wpcf7 .wpcf7-response-output{
    margin:20px 0 0;padding:14px 18px;
    font-size:1.4rem;border-radius:4px;
    text-align:center;font-weight:500;
}
.wpcf7 form.sent .wpcf7-response-output{
    background:#e8f5e9;border:1px solid #81c784;color:#2e7d32;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{
    background:#ffebee;border:1px solid #ef9a9a;color:#c62828;
}

/* スピナー */
.wpcf7 .wpcf7-spinner{
    vertical-align:middle;margin-left:10px;
}

/* 送信ボタン */
.wpcf7 form input[type="submit"]{
    display:block;
    margin:36px auto 0;
    background:var(--red);
    color:var(--white);
    font-size:1.7rem;font-weight:700;
    padding:16px 80px;
    border-radius:4px;border:none;
    cursor:pointer;
    letter-spacing:.08em;
    box-shadow:0 4px 16px rgba(231,32,26,.32);
    transition:background .2s,box-shadow .2s,transform .15s;
    font-family:inherit;
}
.wpcf7 form input[type="submit"]:hover{
    background:var(--red-dk);
    box-shadow:0 6px 20px rgba(231,32,26,.4);
    transform:translateY(-1px);
    opacity:1;
}
.wpcf7 form input[type="submit"]:active{
    transform:translateY(0);
}
@media(max-width:768px){
    .wpcf7 form input[type="submit"]{
        width:100%;padding:16px 20px;font-size:1.6rem;
    }
}

/* ======================
   個人情報保護方針ボックス
====================== */
.sec-privacy{
    padding:0 0 80px;
    background:var(--white);
}
@media(max-width:768px){.sec-privacy{padding:0 0 56px;}}

.privacy-box{
    background:#f5f5f5;
    border:1px solid #e0e0e0;
    border-radius:4px;
    padding:40px 48px;
    position:relative;
}
@media(max-width:768px){.privacy-box{padding:28px 20px;}}

/* タイトル（横線付き） */
.privacy-box__ttl{
    display:flex;align-items:center;gap:16px;
    font-size:1.6rem;font-weight:700;
    color:var(--gray-dk);letter-spacing:.06em;
    margin-bottom:24px;
    text-align:center;justify-content:center;
}
.privacy-box__ttl::before,
.privacy-box__ttl::after{
    content:'';flex:1;max-width:80px;
    height:1px;background:#bbb;display:block;
}

.privacy-box__body{
    font-size:1.35rem;color:var(--gray);
    line-height:1.9;margin-bottom:18px;
}
.privacy-box__body:last-child{margin-bottom:0;}
.privacy-box__list-ttl{
    font-size:1.35rem;font-weight:700;
    color:var(--gray-dk);margin-bottom:6px;margin-top:14px;
}
.privacy-box__list{
    font-size:1.3rem;color:var(--gray);
    line-height:1.8;padding-left:1.2em;
}
.privacy-box__list li{
    position:relative;padding-left:.4em;
}
.privacy-box__list li::before{
    content:'';
    position:absolute;left:0;top:.7em;
    width:5px;height:5px;
    background:var(--gray);border-radius:50%;
}

/* 注記エリア */
.privacy-box__note{
    background:#ebebeb;border-radius:3px;
    padding:14px 20px;margin-top:20px;
    font-size:1.3rem;color:var(--gray-dk);
    line-height:1.85;
}
















/* ======================
   CTA 重機専用車両
====================== */
.sec-cta{
    margin-top: 20px;
    background:var(--red);
    overflow:hidden;
}
.sec-cta__inner{
    display:block;
    min-height:300px;
    position: relative;
}
@media(max-width:768px){
    .sec-cta__inner{grid-template-columns:1fr;}
}
.sec-cta__txt{
    padding:56px 56px 56px 64px;
    display:flex;flex-direction:column;justify-content:center;
    position: absolute;
    left: 0px;
    top:0px;
    z-index: 9;
    background-color: rgba(255, 0, 0, 0.2);
}
@media(max-width:1080px){.sec-cta__txt{padding:48px 40px;}}
@media(max-width:768px){.sec-cta__txt{padding:40px 24px;}}
 
.sec-cta__en{
    font-size:1.3rem;
    color:rgba(255,255,255,.8);
    font-weight:700;letter-spacing:.1em;
    margin-bottom:10px;
}
.sec-cta__ttl{
    font-size:clamp(2.2rem,3.6vw,3.6rem);
    font-weight:900;color:var(--white);
    line-height:1.3;margin-bottom:28px;
    letter-spacing:.02em;
    text-shadow:0 2px 8px rgba(0,0,0,.18);
}
.btn-white{
    display:inline-flex;align-items:center;gap:10px;
    background:var(--white);color:var(--red);
    font-size:1.6rem;font-weight:700;
    padding:14px 36px;border-radius:4px;
    width:fit-content;
    box-shadow:0 4px 16px rgba(0,0,0,.18);
    transition:background .2s,color .2s;
}
.btn-white:hover{
    background:var(--gray-dk);color:var(--white);opacity:1;
}
.btn-white .material-symbols-outlined{font-size:20px;}
.sec-cta__img{
    position:absolute;
    width: 100%;
    right: -1px;
    z-index: 8;
    overflow:hidden;
}
.sec-cta__img img{
    width:auto;height:100%;
    object-fit:cover;display:block;
}
@media(max-width:768px){.sec-cta__img{height:220px;}}



 
/* ======================
   Footer
====================== */
.footer{
    background:var(--black);
    color:rgba(255,255,255,.78);
}
.footer__inner{
    display:block;
    min-height:280px;
    position: relative;
    width:1100px ;
    margin: auto;
    background-color: #666;
}
@media(max-width:768px){
    .footer__inner{grid-template-columns:1fr;     width:95% ;}
}
.footer__info{
    padding:48px 56px 48px 64px;
    display:flex;flex-direction:column;justify-content:center;
}
@media(max-width:1080px){.footer__info{padding:40px;}}
@media(max-width:768px){.footer__info{padding:36px 24px;}}
 
.footer__logo{
    display:flex;align-items:center;gap:12px;
    margin-bottom:22px;
}
.footer__logo img{width:52px;filter:brightness(0) invert(1);}
.footer__logo-text strong{
    display:block;
    font-size:1.6rem;font-weight:900;color:var(--white);
}
.footer__logo-text span{
    font-size:1.1rem;font-weight:400;
    color:rgba(255,255,255,.55);
    display:block;margin-top:2px;
}
.footer__address{
    font-size:1.3rem;
    color:rgba(255,255,255,.65);
    line-height:1.8;margin-bottom:18px;
}
.footer__tel-label{
    font-size:1.1rem;color:rgba(255,255,255,.5);
    margin-bottom:4px;
}
.footer__tel{
    font-size:3rem;font-weight:700;color:var(--white);
    letter-spacing:.04em;line-height:1;
}
.footer__fax{
    font-size:1.3rem;color:rgba(255,255,255,.55);
    margin-top:5px;
}
.footer__img{
    position: absolute;
    overflow:hidden;
    max-height:280px;
    right: 20px;
    top:0px;}
.footer__img img{
    width:auto;    max-height:300px;
    object-fit:cover; display:block;
}
@media(max-width:768px){
    .footer__img{
        position: relative;
        background-color: #666;
        overflow:hidden;
        width: 100%;
        height: auto;
        max-height:300px;
}
.footer__img img{
    width:auto;    max-height:280px;
    object-fit:cover; display:block;
}
}

.footer__copy{
    background:#000;
    text-align:center;
    padding:14px 20px;
    font-size:1.1rem;
    color:rgba(255,255,255,.4);
    line-height:1.6;
}

/* ======================
Page Top
====================== */
#page-top{
    position:fixed;
    right:24px;bottom:32px;
    z-index:500;
    opacity:0;pointer-events:none;
    transition:opacity .3s;
}
#page-top.is-show{opacity:1;pointer-events:auto;}
#page-top a{
    display:flex;align-items:center;justify-content:center;
    width:52px;height:52px;
    background:var(--red);border-radius:50%;
    box-shadow:0 4px 14px rgba(0,0,0,.22);
}
#page-top a::before{
    content:'';
    display:block;
    width:12px;height:12px;
    border-top:3px solid #fff;
    border-right:3px solid #fff;
    transform:rotate(-45deg) translate(-2px,2px);
}
#page-top a:hover{opacity:.85;}
