*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Hiragino Sans','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;line-height:1.7;color:#333;background:#fff;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:#5a9b5a;text-decoration:none;transition:color .3s,opacity .3s}
a:hover,a:focus{color:#A8D18D;opacity:.8}
ul{list-style:none}
button{cursor:pointer;border:none;background:transparent;font-family:inherit}
:focus-visible{outline:2px solid #5a9b5a;outline-offset:2px}
.container{max-width:1000px;margin:0 auto;padding:0 20px}
.section-title{font-size:2.5rem;text-align:center;margin-bottom:3rem;color:#5a9b5a;position:relative;padding-bottom:1rem}
.section-title::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:80px;height:4px;background:linear-gradient(90deg,#A8D18D,#5a9b5a);border-radius:2px}
@media(max-width:768px){
.section-title{font-size:2rem;margin-bottom:2rem}
}
.nav{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.1);position:sticky;top:0;z-index:1000;transition:box-shadow .3s}
.nav-container{max-width:1200px;margin:0 auto;padding:1rem 20px;display:flex;justify-content:space-between;align-items:center}
.logo{font-size:1.8rem;font-weight:bold;color:#5a9b5a;letter-spacing:2px}
.nav-menu{display:flex;gap:2rem;align-items:center}
.nav-menu a{color:#333;font-weight:500;padding:.5rem 1rem;border-radius:4px;transition:background .3s,color .3s}
.nav-menu a:hover,.nav-menu a:focus{background:#A8D18D;color:#fff}
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:5px}
.nav-toggle span{width:25px;height:3px;background:#5a9b5a;border-radius:2px;transition:all .3s}
@media(max-width:768px){
.nav-toggle{display:flex}
.nav-menu{position:fixed;top:70px;left:-100%;width:100%;background:#fff;flex-direction:column;padding:2rem;box-shadow:0 4px 10px rgba(0,0,0,.1);transition:left .3s;gap:0}
.nav-menu.active{left:0}
.nav-menu li{width:100%;border-bottom:1px solid #eee}
.nav-menu a{display:block;padding:1rem}
.nav-toggle.active span:nth-child(1){transform:rotate(45deg) translate(7px,7px)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}
}
.hero{min-height:75vh;display:flex;align-items:center;background:linear-gradient(135deg,#A8D18D 0%,#e8f5e9 100%);padding:6rem 20px 4rem;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-50%;right:-10%;width:500px;height:500px;background:rgba(255,255,255,.3);border-radius:50%;animation:float 6s ease-in-out infinite}
.hero::after{content:'';position:absolute;bottom:-30%;left:-5%;width:400px;height:400px;background:rgba(255,255,255,.2);border-radius:50%;animation:float 8s ease-in-out infinite reverse}
@keyframes float{0%,100%{transform:translateY(0)}
50%{transform:translateY(-30px)}
}
.hero-content{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:center;position:relative;z-index:1}
.hero-title{font-size:3.2rem;font-weight:bold;color:#2c5f2d;line-height:1.4;margin-bottom:1.5rem;animation:fadeInUp .8s}
.hero-text{font-size:1.05rem;color:#555;margin-bottom:2.5rem;line-height:1.9;animation:fadeInUp 1s .2s both}
.hero-btn{display:inline-block;padding:1.1rem 3rem;background:#5a9b5a;color:#fff;font-weight:bold;font-size:1.05rem;border-radius:50px;box-shadow:0 4px 15px rgba(90,155,90,.3);transition:transform .3s,box-shadow .3s;animation:fadeInUp 1.2s .4s both}
.hero-btn:hover,.hero-btn:focus{transform:translateY(-3px);box-shadow:0 6px 20px rgba(90,155,90,.4);background:#4a8a4a}
.hero-image{animation:fadeIn 1s .6s both;display:flex;align-items:center;justify-content:center}
.hero-image img{border-radius:20px;box-shadow:0 15px 50px rgba(0,0,0,.2);width:100%;object-fit:cover}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}
to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{from{opacity:0}
to{opacity:1}
}
@media(max-width:1024px){
.hero-content{grid-template-columns:1fr;gap:3rem;text-align:center}
.hero-title{font-size:2.5rem}
.hero-image{margin-top:1rem}
.hero-image img{max-width:600px}
}
@media(max-width:768px){
.hero{min-height:auto;padding:4rem 20px 3rem}
.hero-title{font-size:2rem;margin-bottom:1rem}
.hero-text{font-size:1rem;margin-bottom:2rem}
.hero-btn{padding:1rem 2rem;font-size:1rem}
.hero-image img{max-width:100%}
}
.services{padding:5rem 0;background:#f9f9f9}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}
.service-card{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 5px 20px rgba(0,0,0,.08);transition:transform .3s,box-shadow .3s;animation:fadeInUp .6s both}
.service-card:nth-child(1){animation-delay:.1s}
.service-card:nth-child(2){animation-delay:.2s}
.service-card:nth-child(3){animation-delay:.3s}
.service-card:nth-child(4){animation-delay:.4s}
.service-card:nth-child(5){animation-delay:.5s}
.service-card:nth-child(6){animation-delay:.6s}
.service-card:hover,.service-card:focus-within{transform:translateY(-10px);box-shadow:0 10px 30px rgba(90,155,90,.2)}
.service-icon{width:80px;height:80px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center}
.service-icon img{transition:transform .3s}
.service-card:hover .service-icon img,.service-card:focus-within .service-icon img{transform:scale(1.1) rotate(5deg)}
.service-card h3{font-size:1.5rem;color:#5a9b5a;margin-bottom:1rem;text-align:center}
.service-card p{color:#666;text-align:center;line-height:1.8}
.company{padding:5rem 0;background:#fff}
.company-content{max-width:800px;margin:0 auto}
.info-table{width:100%;border-collapse:collapse;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.08);border-radius:10px;overflow:hidden}
.info-table th,.info-table td{padding:1.2rem 1.5rem;border-bottom:1px solid #eee;text-align:left}
.info-table th{background:#A8D18D;color:#333;font-weight:bold;width:30%}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}
@media(max-width:768px){
.info-table th,.info-table td{display:block;width:100%;padding:1rem}
.info-table th{background:#A8D18D;border-bottom:none}
.info-table td{border-bottom:2px solid #eee}
}
.store{padding:5rem 0;background:#f9f9f9}
.store-card{background:#fff;padding:3rem;border-radius:15px;box-shadow:0 5px 20px rgba(0,0,0,.08)}
.store-card h3{font-size:2rem;color:#5a9b5a;margin-bottom:2rem;text-align:center}
.store-description{font-size:1.1rem;color:#666;margin-bottom:2rem;line-height:1.8;text-align:center;padding:1.5rem;background:#f5f5f5;border-radius:10px}
.business-hours{margin:3rem 0}
.business-hours h4,.store-details h4,.legal-info h4{font-size:1.3rem;color:#5a9b5a;margin:2rem 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #A8D18D}
.hours-table{width:100%;max-width:600px;margin:1rem auto;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.05)}
.hours-table th,.hours-table td{padding:1rem 1.5rem;border-bottom:1px solid #eee}
.hours-table th{background:#f5f5f5;color:#333;font-weight:bold;width:30%}
.hours-table tr:last-child th,.hours-table tr:last-child td{border-bottom:none}
.store-details{margin:2rem 0}
.store-details p{margin:1rem 0;color:#666;line-height:1.8}
.services-list,.facilities-list,.payment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin:1.5rem 0}
.service-item,.facility-item,.payment-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9f9f9;border-radius:10px;transition:background .3s,transform .3s}
.service-item:hover,.service-item:focus-within,.facility-item:hover,.facility-item:focus-within,.payment-item:hover,.payment-item:focus-within{background:#A8D18D;transform:translateX(5px)}
.service-item img,.facility-item img,.payment-item img{width:40px;height:40px;flex-shrink:0}
.service-item span,.facility-item span,.payment-item span{font-size:.95rem;color:#333}
.payment-detail{margin:1rem 0;padding:1rem;background:#f5f5f5;border-radius:10px;color:#666;font-size:.9rem;line-height:1.6}
.insurance-list{margin:1rem 0;padding-left:1.5rem}
.insurance-list li{color:#666;margin:.5rem 0;line-height:1.6;position:relative;padding-left:1.5rem}
.insurance-list li::before{content:'✓';position:absolute;left:0;color:#5a9b5a;font-weight:bold}
.legal-info{margin:3rem 0;padding:2rem;background:#f5f5f5;border-radius:10px}
.pdf-btn{display:inline-block;margin:2rem auto 0;padding:1rem 2rem;background:#5a9b5a;color:#fff;font-weight:bold;border-radius:50px;box-shadow:0 4px 15px rgba(90,155,90,.3);transition:transform .3s,box-shadow .3s;text-align:center}
.pdf-btn:hover,.pdf-btn:focus{transform:translateY(-3px);box-shadow:0 6px 20px rgba(90,155,90,.4)}
.news{padding:5rem 0;background:#fff}
.news-list{max-width:900px;margin:0 auto}
.news-item{background:#fff;padding:2rem;margin-bottom:2rem;border-radius:10px;box-shadow:0 3px 15px rgba(0,0,0,.08);border-left:4px solid #A8D18D;transition:transform .3s,box-shadow .3s}
.news-item:hover,.news-item:focus-within{transform:translateX(5px);box-shadow:0 5px 20px rgba(90,155,90,.2)}
.news-date{color:#999;font-size:.9rem;margin-bottom:.5rem}
.news-title{font-size:1.3rem;color:#5a9b5a;margin-bottom:1rem;font-weight:bold}
.news-content{color:#666;line-height:1.8}
.recruit{padding:5rem 0;background:#f9f9f9}
.recruit-content{max-width:800px;margin:0 auto;text-align:center;padding:3rem;background:#fff;border-radius:15px;box-shadow:0 5px 20px rgba(0,0,0,.08)}
.recruit-content p{font-size:1.1rem;color:#666;margin:1rem 0;line-height:1.8}
.contact{padding:5rem 0;background:#fff}
.contact-content{max-width:900px;margin:0 auto}
.contact-info{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.contact-item{background:#f9f9f9;padding:2rem;border-radius:10px;transition:background .3s,transform .3s}
.contact-item:hover,.contact-item:focus-within{background:#A8D18D;transform:translateY(-5px)}
.contact-item h3{font-size:1.2rem;color:#5a9b5a;margin-bottom:1rem}
.contact-tel,.contact-fax,.contact-email,.contact-address{font-size:1.1rem;color:#333;line-height:1.6}
.contact-tel a{font-size:1.5rem;font-weight:bold;color:#5a9b5a;display:block;margin:.5rem 0}
.contact-hours{font-size:.9rem;color:#666;margin-top:.5rem}
.contact-email a{color:#5a9b5a;word-break:break-all}
.contact-map{margin-top:3rem;background:#f9f9f9;padding:2rem;border-radius:10px}
.contact-map h3{font-size:1.5rem;color:#5a9b5a;margin-bottom:1.5rem;text-align:center}
.contact-map iframe{border-radius:10px;box-shadow:0 3px 15px rgba(0,0,0,.1)}
.footer{background:#333;color:#fff;padding:2rem 0;text-align:center}
.footer p{margin:0;font-size:.9rem;opacity:.8}
@media(max-width:768px){
.contact-info{grid-template-columns:1fr}
.services-list,.facilities-list,.payment-list{grid-template-columns:1fr}
}