/*
Theme Name: narikijusetsu
Theme URI: https://narikijusetsu.com/
Author: 成伯住設
Description: 株式会社成伯住設 オリジナルWordPressテーマ
Version: 1.0
*/

/* ===================================
   RESET
=================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Noto Sans JP",sans-serif;
    color:#333;
    background:#fff;
    line-height:1.8;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    transition:.3s;
}

ul{
    list-style:none;
}

.container{
    width:min(1200px,92%);
    margin:auto;
    
}

section{
    scroll-margin-top:100px;
}
.bg-cover-container{
    position: relative;
    width: 100%;
    height: 100%; /* 任意の高さ */
    overflow: hidden;
}
.bg-cover-container img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像をトリミングして枠にピッタリ合わせる */
}


/* ===================================
   HEADER
=================================== */

.header{
    background:#fff;
    position:fixed;
    width:100%;
    top:0;
    left:0;
    z-index:999;
    box-shadow:0 5px 20px rgba(0,0,0,.08);
}

.header .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:95px;
}

.logo img{
    height:62px;
}

.gnav ul{
    display:flex;
    gap:20px;
}

.gnav a{
    color:#333;
    font-size:15px;
    font-weight:700;
}

.gnav a:hover{
    color:#2ba84a;
}

.header{
    position: fixed;
    top:0;
    left:0;
    width:100%;
    z-index:9999;
    transition:.35s;
    height:100px;
    background:#fff;
}

.header.scrolled{
    height:90px;
    box-shadow:0 10px 30px rgba(0,0,0,.12);
}

.header .logo img{
    height:70px;
    transition:.35s;
}

.header.scrolled .logo img{
    height:45px;
}


/* ===========================
 CONTACT
=========================== */

.header-contact{
    display:flex;
    align-items:center;
    gap:15px;
}

.tel{
    text-align:right;
}

.tel p{
    font-size:12px;
    color:#777;
}

.tel a{
    font-size:25px;
    font-weight:700;
    color:#2ba84a;
}


/* ===========================
 BUTTON
=========================== */

.line-btn{

    background:#06C755;
    color:#fff;
    padding:14px 28px;
    border-radius:8px;
    font-weight:bold;

}

.mail-btn{

    background:#ff9900;
    color:#fff;
    padding:14px 28px;
    border-radius:8px;
    font-weight:bold;

}

.line-btn:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 25px rgba(0,0,0,.15);

}

.mail-btn:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 25px rgba(0,0,0,.15);

}


/* ===================================
 HERO
=================================== */

.hero{

    margin-top:5px;

    padding:25px 0;

    background:#fff;

    background-size:cover;

    background-position:center;

}


.hero-wrap{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:40px;

    align-items:center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

}

.catch-small{

    color:#2ba84a;

    font-weight:700;

    margin-bottom:15px;

}

.hero h1{

    font-size:50px;
    letter-spacing: 10px;
    line-height:1.3;

    margin-bottom:30px;

    font-weight:900;
    color: #fff;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);

}

.lead{

    font-size:19px;

    color:#fff;

    margin-bottom:40px;
    font-weight: 600;
    text-shadow: 2px 2px 2px #2a2a2a;

}

.hero-btn{

    display:flex;

    gap:20px;

    margin-bottom:25px;

}

.btn-line{

    background:#06C755;

    color:#fff;

    padding:18px 45px;

    border-radius:10px;

    font-size:18px;

    font-weight:bold;

}

.btn-mail{

    background:#ff9800;

    color:#fff;

    padding:18px 45px;

    border-radius:10px;

    font-size:18px;

    font-weight:bold;

}

.works-btn{

    display:inline-block;

    border:2px solid #2ba84a;

    color:#2ba84a;

    padding:15px 40px;

    border-radius:50px;

    font-weight:bold;
    background: #fff;
}

.hero-image img{

    border-radius:25px;

    box-shadow:0 30px 60px rgba(0,0,0,.15);

}


.hero{

height:100vh;

position:relative;

overflow:hidden;

}

.hero video{

position:absolute;

width:100%;

height:100%;

object-fit:cover;

}

.overlay{

position:absolute;

width:100%;

height:100%;

background:rgba(0,0,0,.35);

}

.hero-content{

position:absolute;

top:50%;

left:10%;

transform:translateY(-50%);

color:#fff;

z-index:10;

}



/* ===================================
 TRUST
=================================== */

.trust{

    margin-top:-100px;

    position:relative;

    z-index:10;

}

.trust-box{

    background:#fff;

    border-radius:20px;

    display:grid;

    grid-template-columns:repeat(3,1fr);/*※5つにする場合は3⇒5*/


    overflow:hidden;

    box-shadow:0 20px 50px rgba(0,0,0,.12);

    width: 80%;/*※5つになったら消す*/
    
    margin: 0 auto;/*※5つになったら消す*/
    

}

.trust-item{

    text-align:center;

    padding:20px 20px;

}

.trust-item img{

    width:52px;

    margin:auto;

    margin-bottom:15px;

}

.trust-item h3{

    font-size:16px;

    margin-bottom:10px;

}

.trust-item strong{

    color:#2ba84a;

    font-size:30px;

}

.trust-item bold {
    color: #2ba84a;
    font-size: 30px;
    font-weight: 600;
}

.trust-item p{

    font-size:15px;

}


/* ===========================
 Hover
=========================== */

.trust-item{

    transition:.35s;

}

.trust-item:hover{

    background:#f5fff5;

    transform:translateY(-8px);

}


/* ===========================
 Responsive
=========================== */

@media(max-width:992px){

.hero-wrap{

grid-template-columns:1fr;

}

.gnav{

display:none;

}

.header-contact{

display:none;

}

.hero{

text-align:center;

}

.hero-btn{

justify-content:center;

}

.trust-box{

grid-template-columns:repeat(2,1fr);

}

}


@media(max-width:768px){


.lead{

font-size:16px;

}

.hero-btn{

flex-direction:column;

}

.btn-line,
.btn-mail{

width:100%;

text-align:center;

}

.trust-box{

grid-template-columns:1fr;

}

}

.fade{

opacity:0;

transform:translateY(60px);

transition:1s;

}

.fade.show{

opacity:1;

transform:none;

}

.btn{

display:inline-block;

padding:18px 40px;

background:#28a745;

color:#fff;

border-radius:8px;

font-weight:bold;

transition:.35s;

position:relative;

overflow:hidden;

}

.btn:hover{

transform:translateY(-5px);

box-shadow:0 18px 35px rgba(0,0,0,.2);

}

.btn::before{

content:"";

position:absolute;

left:-120%;

top:0;

width:80px;

height:100%;

background:rgba(255,255,255,.35);

transform:skewX(-25deg);

transition:.7s;

}

.btn:hover::before{

left:150%;

}


/*==================================
WORRIES
==================================*/

.worries{

padding:120px 0;

background:#fff;

}

.section-title{

text-align:center;

margin-bottom:60px;

}

.section-title span{

color:#38A64B;

font-weight:bold;

letter-spacing:2px;

}

.section-title h2{

font-size:42px;

margin:15px 0;

}

.section-title p{

color:#666;

}

.worries-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:30px;

}

.worry-card{

background:#fff;

padding:40px;

border-radius:18px;

text-align:center;

transition:.35s;

box-shadow:0 10px 30px rgba(0,0,0,.06);

}

.worry-card:hover{

transform:translateY(-8px);

}

.worry-card img{

width:70px;

margin:auto;

margin-bottom:20px;

}

.worry-card h3{

margin-bottom:15px;

font-size:22px;

}

.worry-card p{

color:#666;

line-height:1.8;

}


/* ==========================================
   Footer
========================================== */

.footer{

background:#1b1f24;
color:#fff;
padding:70px 0 0;

}


.footer-content{

display:flex;

/*grid-template-columns:2fr 1fr 1fr 1.2fr;*/

gap:25px;

padding-bottom:50px;

justify-content: center;
}



/* 会社情報 */

.footer-company{
max-width: 270px;

}

.footer-company img{

width:180px;

height:auto;

margin-bottom:20px;

}


.footer-company p{

font-size:14px;

line-height:2;

color:#ddd;

margin:10px 0;

}



/* 共通タイトル */

.footer h3{

font-size:16px;

font-weight:700;

margin-bottom:25px;

position:relative;

padding-bottom:12px;

}


.footer h3::after{

content:"";

position:absolute;

left:0;

bottom:0;

width:40px;

height:3px;

background:#00b900;

}



/* メニュー */

.footer-menu ul,
.footer-service ul{

list-style:none;

padding:0;

margin:0;

}


.footer-menu li,
.footer-service li,
.footer-license li{

margin-bottom:14px;

font-size:14px;

}


.footer-menu a{

color:#ddd;

text-decoration:none;

transition:.3s;

}


.footer-menu a:hover{

color:#fff;

padding-left:5px;

}



/* サービス */

.footer-service li{

color:#ddd;

}



/* 問い合わせ */

.footer-contact{

background:#252b32;

padding:20px;

border-radius:10px;
margin-top: -20px;
max-width:400px;

}

.footer-contact img{
    width:100%;
}


.footer-tel a{

font-size:26px;

font-weight:700;

color:#fff;

text-decoration:none;

}


.footer-contact p{

font-size:14px;

color:#ddd;

margin:10px 0;

}



/* LINE */

.footer-line,
.footer-mail{

display:block;

text-align:center;

padding:14px;

border-radius:5px;

margin-top:15px;

font-weight:700;

text-decoration:none;

}


.footer-line{

background:#00b900;

color:#fff;

}


.footer-mail{

background:#fff;

color:#222;

}



/* 下部 */

.footer-bottom{

border-top:1px solid rgba(255,255,255,.15);

padding:25px 0;

text-align:center;

}


.footer-bottom p{

font-size:13px;

color:#aaa;

margin:5px;

}





/* ==========================================
   Company Info Table
========================================== */


.company-info{

padding:80px 0;

background:#fff;

}



.section-title{

text-align:center;

font-size:32px;

font-weight:700;

margin-bottom:50px;

color:#222;

}



.company-table{

width:100%;

max-width:900px;

margin:0 auto;

border-collapse:collapse;

font-size:16px;

}



.company-table th{

width:25%;

background:#f5f7f8;

font-weight:700;

padding:22px;

border:1px solid #ddd;

text-align:left;

}



.company-table td{

padding:22px;

border:1px solid #ddd;

line-height:1.8;

color:#333;

}



.company-table a{

color:#222;

font-weight:700;

text-decoration:none;

}



.company-table a:hover{

color:#00a63c;

}



/* スマホ */

@media screen and (max-width:600px){


.company-info{

padding:50px 0;

}


.section-title{

font-size:26px;

margin-bottom:30px;

}


.company-table{

font-size:14px;

}


.company-table th{

width:30%;

padding:15px 10px;

}


.company-table td{

padding:15px 10px;

}



}


/* ==========================================
   Service Section
========================================== */


.service{

padding:90px 0;

background:#f8f9fa;

}




.service-title span{

display:block;

font-size:18px;

font-weight:500;

margin-top:10px;

color:#555;

}



.service .section-lead{

text-align:center;

line-height:2;

margin-bottom:50px;

color:#555;

}



.service-list{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:25px;

}



.service-card{

background:#fff;

border-radius:12px;

overflow:hidden;

box-shadow:0 10px 30px rgba(0,0,0,.08);

transition:.3s;

}



.service-card:hover{

transform:translateY(-8px);

}



.service-card img{

width:100%;

height:220px;

object-fit:cover;

}



.service-body{

padding:25px;

}



.service-body h3{

font-size:20px;

margin-bottom:15px;

}



.service-body p{

font-size:14px;

line-height:1.8;

color:#555;

margin-bottom:20px;

}



.service-body a{

font-weight:700;

color:#222;

text-decoration:none;

}






/* ==========================================
   Lawyer Section
========================================== */


.lawyer{

padding:100px 0;

background:#f7f7f7;

}



.lawyer-header{

text-align:center;

margin-bottom:60px;

}


.en-title{

font-size:14px;

letter-spacing:4px;

font-weight:700;

color:#777;

margin-bottom:10px;

}


.lawyer-header h2{

font-size:36px;

margin-bottom:20px;

}



.lawyer-header p{

color:#555;

}





.lawyer-box{

display:grid;

grid-template-columns:420px 1fr;

gap:70px;

align-items:center;

background:#fff;

padding:60px;

border-radius:15px;

box-shadow:0 15px 40px rgba(0,0,0,.08);

}





/* 写真 */

.lawyer-image{

position:relative;

}


.lawyer-image img{

width:100%;

height:520px;

object-fit:cover;

border-radius:10px;

}



.lawyer-label{

position:absolute;

bottom:20px;

left:20px;

background:rgba(0,0,0,.75);

color:#fff;

padding:20px 30px;

border-radius:5px;

}



.lawyer-label p{

font-size:13px;

margin:0 0 5px;

}



.lawyer-label h3{

font-size:20px;

margin:0;

}



/* 内容 */

.lawyer-name{

font-size:28px;

margin-bottom:30px;

}



.lawyer-message{

font-size:22px;

line-height:1.8;

margin-bottom:25px;

color:#222;

}



.lawyer-content p{

line-height:2;

color:#555;

}




.career{

margin-top:35px;

border-top:1px solid #ddd;

padding-top:30px;

}


.career h4{

font-size:20px;

margin-bottom:20px;

}



.career ul{

padding-left:20px;

}



.career li{

margin-bottom:10px;

}


.timeline{
    position:relative;
    max-width:900px;
    margin:0 auto;
    padding-left:33px;
}

.timeline::before{
    content:"";
    position:absolute;
    left:12px;
    top:0;
    bottom:0;
    width:3px;
    background:#008061;
}

.timeline-item{
    position:relative;
    display:grid;
    grid-template-columns:120px 1fr;
    gap:35px;
    padding-bottom:40px;
}

.timeline-item:last-child{
    padding-bottom:0;
}

.timeline-item::before{
    content:"";
    position:absolute;
    left:-31px;
    top:7px;
    width:14px;
    height:14px;
    border-radius:50%;
    background:#008061;
    border:4px solid #fff;
    box-shadow:0 0 0 2px #008061;
}

.timeline-year{
    font-size:20px;
    font-weight:500;
    color:#008061;
    white-space:nowrap;
}

.timeline-content{
    font-size:18px;
    line-height:1.8;
    color:#444;
    padding-bottom:8px;
    border-bottom:1px solid #eee;
}





/* Tablet */

@media screen and (max-width:1024px){


.lawyer-box{

grid-template-columns:1fr;

padding:40px;

}


.lawyer-image img{

height:450px;

}


}




/* Smartphone */

@media screen and (max-width:600px){


.lawyer{

padding:60px 0;

}


.lawyer-header h2{

font-size:28px;

}



.lawyer-box{

padding:25px;

gap:30px;

}


.lawyer-image img{

height:350px;

}



.lawyer-message{

font-size:18px;

}
.timeline{
    padding-left:20px;
}

.timeline::before{
    left:8px;
}

.timeline-item{
    grid-template-columns:1fr;
    gap:8px;
    padding-bottom:25px;
    padding-left: 10px;
    padding-top: 5px;
}

.timeline-item::before{
    left:-19px;
    width:12px;
    height:12px;
    border:3px solid #fff;
}

.timeline-year{
    font-size:18px;
    line-height:1;
}

.timeline-content{
    font-size:15px;
    line-height:1.8;
    padding-bottom:18px;
}



}


/* ==========================================
   Reason
========================================== */

.reason{

    padding:100px 0;
    background:#f7f8fa;

}

.section-heading{

    text-align:center;
    margin-bottom:60px;

}

.sub-title{

    color:#0a8f3d;
    letter-spacing:3px;
    font-size:32px;
    font-weight:700;
    margin-bottom:15px;

}

.section-heading h2{

    font-size:38px;
    margin-bottom:20px;
    color:#222;

}

.section-text{

    color:#666;
    line-height:2;
    font-size: 32px;
    font-weight: 700;

}

.reason-grid{

    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;

}

.reason-card{

    background:#fff;
    padding:40px 35px;
    border-radius:15px;
    box-shadow:0 15px 40px rgba(0,0,0,.06);
    transition:.3s;
    position:relative;
    overflow:hidden;

}

.reason-card:hover{

    transform:translateY(-8px);

}

.reason-number{

    font-size:56px;
    font-weight:900;
    color:#00b140;
    opacity:.12;
    line-height:1;
    margin-bottom:20px;

}

.reason-card h3{

    font-size:22px;
    margin-bottom:20px;
    color:#222;
    line-height: 1.2;

}

.reason-card p{

    color:#666;
    line-height:1.9;
    font-size:15px;

}

/* Tablet */

@media screen and (max-width:1024px){

.reason-grid{

grid-template-columns:repeat(2,1fr);

}

}

/* Smartphone */

@media screen and (max-width:767px){

.reason{

padding:70px 0;

}

.section-heading h2{

font-size:28px;

}

.reason-grid{

grid-template-columns:1fr;

}

.reason-card{

padding:30px 25px;

}

.reason-number{

font-size:46px;

}

.reason-card h3{

font-size:20px;

}

}


/* ==========================================
   Hamburger Menu
========================================== */

/* PC */

.hamburger{
    display:none;
    background:none;
    border:none;
    padding:0;
    cursor:pointer;
}

.menu-overlay{
    display:none;
}


/*============================
社長あいさつ
============================*/

.greeting{
    padding:100px 0;
    background:#fff;
}

.greeting-content{
    max-width:900px;
    margin:50px auto 0;
}

.greeting-content p{
    font-size:17px;
    line-height:2.2;
    color:#444;
    margin-bottom:25px;
    text-align: center;
}

.greeting-name{
    margin-top:50px;
    text-align:right;
    font-size:24px;
    font-weight:700;
    color:#222;
}

@media screen and (max-width:768px){

.greeting{
    padding:70px 0;
}

.greeting-content{
    margin-top:35px;
}

.greeting-content p{
    font-size:15px;
    line-height:2;
}

.greeting-name{
    font-size:16px;
}

}

/*==================================
SPONSOR
==================================*/

.sponsor{

padding:120px 0;

background:#f7fbf7;

}

.sponsor-card{

background:#fff;

border-radius:25px;

overflow:hidden;

box-shadow:0 20px 60px rgba(0,0,0,.08);

}

.sponsor-top{

display:grid;

grid-template-columns:280px 1fr;

align-items:center;

padding:60px;

gap:60px;

}

.sponsor-logo{

display:flex;

justify-content:center;

align-items:center;

}

.sponsor-logo img{

max-width:220px;

transition:.4s;

}

.sponsor-logo img:hover{

transform:scale(1.05);

}

.sponsor-content h3{

font-size:36px;

margin-bottom:25px;

color:#222;

}

.sponsor-content p{

font-size:17px;

line-height:2;

color:#666;

margin-bottom:30px;

}

.sponsor-content ul{

padding:0;

margin:0 0 35px;

}

.sponsor-content li{

list-style:none;

position:relative;

padding-left:28px;

margin-bottom:14px;

font-size:17px;

}

.sponsor-content li:before{

content:"✓";

position:absolute;

left:0;

top:0;

color:#38a64b;

font-weight:bold;

}

.sponsor-btn{

display:inline-block;

padding:18px 45px;

background:#38a64b;

color:#fff;

text-decoration:none;

border-radius:50px;

font-weight:bold;

transition:.3s;

}

.sponsor-btn:hover{

background:#2d8740;

transform:translateX(8px);

}

.sponsor-photo{

overflow:hidden;

}

.sponsor-photo img{

display:block;

width:100%;

height:450px;

object-fit:cover;

transition:.6s;

object-position: center;
}

.sponsor-photo:hover img{

transform:scale(1.05);

}

/*==================================
ACCESS
==================================*/

.access{

padding:120px 0 0;

background:#fff;

}

.access-wrapper{

position:relative;

}

.access-map{

    width:100%;

    height:520px;

}

.access-map iframe{

width:100%;

    width:100%;

    height:100%;

    border:0;

    display:block;

}

.access-card{

position:absolute;

top:-20%;

left:7%;

transform:translateY(-50%);

width:360px;

padding:35px;

background:rgba(255,255,255,.95);

backdrop-filter:blur(12px);

border-radius:20px;

box-shadow:0 15px 40px rgba(0,0,0,.15);

z-index:10;

}

.access-subtitle{

display:block;

color:#38A64B;

font-weight:bold;

letter-spacing:2px;

margin-bottom:10px;

}

.access-card h3{

font-size:34px;

margin-bottom:30px;

color:#222;

}

.access-card ul{

margin:0;

padding:0;

}

.access-card li{

display:flex;

justify-content:space-between;

align-items:flex-start;

padding:16px 0;

border-bottom:1px solid #eee;

gap:20px;

}

.access-card li strong{

width:90px;

color:#38A64B;

flex-shrink:0;

}

.access-card li span{

flex:1;

color:#555;

line-height:1.8;

}

.access-card li span a{

flex:1;

color:#555;

line-height:1.8;

font-weight:700;

}

.access-btn{

display:block;

margin-top:35px;

text-align:center;

padding:18px;

background:#38A64B;

color:#fff;

text-decoration:none;

border-radius:50px;

font-weight:bold;

transition:.3s;

}

.access-btn:hover{

background:#2E8B57;

transform:translateY(-3px);

box-shadow:0 12px 30px rgba(56,166,75,.35);

}



.service-lottie{
    width:140px;
    height:140px;
    margin:0 auto 25px;
    display:flex;
    align-items:center;
    justify-content:center;
}


.service-lottie svg{
    width:100%;
    height:100%;
}


#Air-Conditioner{
    transform:scale(1.85);
}


#toilet{
    transform:scale(1);
    margin-left: 26px;
}

#water-drop{
transform:scale(1);
}
#kitchen{
transform:scale(1.85);
}
#wall{
transform:scale(1.85);
}


.service-lottie{
    cursor:pointer;
    transition:.3s;
}


.service-lottie:hover{
    transform:translateY(-8px);
}
