@charset "utf-8";
:root{--main-color:#004588;--sub-color:#0056a0;--sub2-color:#6b7280;--accent-color:#0066cc;--light-bg:#f8fafc;--navy-blue:#003366;--light-blue:#1e7bb8;--gray-dark:#374151}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Noto Sans JP",sans-serif;background:#fff;color:#333;overflow-x:hidden;position:relative}
.sp{display:none}
.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--main-color),var(--accent-color));display:flex;justify-content:center;align-items:center;z-index:10000;opacity:1;transition:opacity 0.5s ease-out}
.loading-screen.fade-out{opacity:0}
.loading-logo{position:relative;text-align:center}
.loading-text{font-family:"Roboto",sans-serif;font-size:4rem;font-weight:900;color:white;display:inline-block;letter-spacing:0.2em;animation:waveText 2s ease-in-out infinite;margin-bottom:15px}
.loading-subtitle{font-family:"Noto Sans JP",sans-serif;font-size:1.2rem;font-weight:600;color:rgba(255,255,255,0.9);letter-spacing:0.3em;margin-bottom:20px;animation:subtitleWave 2s ease-in-out infinite 0.2s}
.loading-wave{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);width:200px;height:4px;background:white;border-radius:2px;animation:loadingWaveMove 2s ease-in-out infinite}
@keyframes waveText{0%,100%{transform:translateY(0px) scale(1);text-shadow:0 0 20px rgba(255,255,255,0.3)}25%{transform:translateY(-5px) scale(1.02);text-shadow:0 5px 30px rgba(255,255,255,0.5)}50%{transform:translateY(0px) scale(1);text-shadow:0 0 20px rgba(255,255,255,0.3)}75%{transform:translateY(3px) scale(0.98);text-shadow:0 -3px 25px rgba(255,255,255,0.4)}}
@keyframes subtitleWave{0%,100%{transform:translateY(0px);opacity:0.9}25%{transform:translateY(-2px);opacity:1}50%{transform:translateY(0px);opacity:0.9}75%{transform:translateY(1px);opacity:0.8}}
@keyframes loadingWaveMove{0%{transform:translateX(-50%) scaleX(0.8);opacity:0.7}50%{transform:translateX(-50%) scaleX(1.2);opacity:1}100%{transform:translateX(-50%) scaleX(0.8);opacity:0.7}}
.background-waves{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden;pointer-events:none}
.wave{position:absolute;opacity:0.06}
.wave-1{top:15%;left:-10%;width:120%;height:200px;animation:waveMove1 12s ease-in-out infinite}
.wave-2{bottom:25%;right:-15%;width:110%;height:160px;animation:waveMove2 15s ease-in-out infinite reverse}
.wave-3{top:55%;left:5%;width:100%;height:140px;animation:waveMove3 18s ease-in-out infinite}
.wave-svg{width:100%;height:100%}
.wave-path{fill:var(--main-color);animation:wavePath 8s ease-in-out infinite}
.wave-2 .wave-path{fill:var(--accent-color);animation:wavePath 10s ease-in-out infinite reverse}
.wave-3 .wave-path{fill:var(--light-blue);animation:wavePath 12s ease-in-out infinite}
@keyframes waveMove1{0%,100%{transform:translateX(0px) translateY(0px) rotate(-2deg)}25%{transform:translateX(-20px) translateY(-15px) rotate(-1deg)}50%{transform:translateX(0px) translateY(-30px) rotate(-2deg)}75%{transform:translateX(15px) translateY(-10px) rotate(-3deg)}}
@keyframes waveMove2{0%,100%{transform:translateX(0px) translateY(0px) rotate(3deg)}33%{transform:translateX(25px) translateY(20px) rotate(2deg)}66%{transform:translateX(-10px) translateY(25px) rotate(4deg)}}
@keyframes waveMove3{0%,100%{transform:translateX(0px) translateY(0px) rotate(-1deg)}40%{transform:translateX(-15px) translateY(-20px) rotate(1deg)}80%{transform:translateX(20px) translateY(-5px) rotate(-2deg)}}
@keyframes wavePath{0%,100%{d:path("M0,60 C300,100 600,20 900,60 C1050,90 1150,30 1200,60 L1200,120 L0,120 Z")}25%{d:path("M0,50 C300,90 600,30 900,70 C1050,100 1150,40 1200,50 L1200,120 L0,120 Z")}50%{d:path("M0,70 C300,110 600,10 900,50 C1050,80 1150,20 1200,70 L1200,120 L0,120 Z")}75%{d:path("M0,40 C300,80 600,40 900,80 C1050,110 1150,50 1200,40 L1200,120 L0,120 Z")}}
.fade-in{opacity:0;transform:translateY(30px);transition:all 0.8s ease-out}
.fade-in.visible{opacity:1;transform:translateY(0)}
header{position:fixed;top:0;left:0;width:100%;z-index:100;background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);padding:20px 40px;display:flex;align-items:center;justify-content:space-between;min-height:80px;animation:fadeInDown 1s ease-out;border-bottom:1px solid rgba(0,69,136,0.1)}
.logo{width:25%;opacity:0;animation:fadeInLeftLogo 1.2s ease-out 0.3s forwards;display:flex;align-items:center}
.logo img{height:60px;width:auto;object-fit:contain;transition:transform 0.3s ease}
.logo img:hover{transform:scale(1.05)}
.nav-container{width:68%;display:flex;align-items:center;justify-content:flex-end;height:100%}
.nav-menu{list-style:none;display:flex;gap:0;margin:0;opacity:0;animation:fadeInRight 1.2s ease-out 0.5s forwards;background:rgba(0,69,136,0.05);border-radius:50px;padding:20px 16px;width:70%;justify-content:space-around;border:1px solid rgba(0,69,136,0.2)}
.nav-menu li{position:relative}
.nav-menu a{font-family:"Roboto",sans-serif;text-decoration:none;color:var(--main-color);font-weight:700;font-size:1.2rem;padding:12px 18px;border-radius:25px;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);position:relative;overflow:hidden;letter-spacing:0.2px}
.nav-menu a:hover{background:rgba(0,69,136,0.1);color:var(--navy-blue);transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;cursor:pointer;padding:12px;background:#f8fafc;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,0.1);border:1px solid rgba(0,69,136,0.2)}
.hamburger span{width:24px;height:3px;background:var(--main-color);margin:2px 0;transition:0.3s;border-radius:2px}
.slideshow-container{position:relative;width:100%;height:100vh;overflow:hidden;margin-top:80px}
.slide{position:relative;width:100%;height:calc(100vh - 80px);background:transparent;display:flex;align-items:center;justify-content:center;margin-top:10px}
.slide-content{position:relative;width:100%;height:80vh}
.slide-text{font-family:"Noto Sans JP",sans-serif;position:absolute;top:50%;left:8%;transform:translateY(-50%);color:#333;z-index:10;width:35%;opacity:0;animation:fadeInLeft 1.5s ease-out 1s forwards;background:rgba(255,255,255,0.9);padding:40px 25px;border-radius:15px;border:1px solid rgba(0,69,136,0.1);box-shadow:0 10px 40px rgba(0,69,136,0.1)}
.slide-text h1{font-weight:700;font-size:3.2rem;line-height:1.3;margin-bottom:24px;color:var(--main-color);letter-spacing:0.5px}
.slide-text .subtitle{font-weight:700;font-size:1.5rem;margin-bottom:28px;color:var(--sub-color);letter-spacing:0.3px}
.slide-text .company{font-weight:600;font-size:1.1rem;color:var(--main-color);letter-spacing:0.5px}
.slide-image{position:absolute;top:0;right:0;width:70%;height:100%;opacity:0;animation:slideInRight 1.5s ease-out 0.8s forwards}
.slideshow-images{width:100%;height:100%}
.slide-image-item{width:100%;height:80vh;position:relative}
.slide-image-item img{width:100%;height:100%;object-fit:cover;border-radius:30px 0 0 30px;filter:brightness(1.05) contrast(1.02)}
.main-content{padding:80px 0}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.section-header{text-align:center;margin-bottom:60px}
.section-header h2{display:flex;flex-direction:column;align-items:center;gap:10px}
.section-title-en{font-size:1.2rem;font-weight:400;color:var(--sub2-color);letter-spacing:2px;text-transform:uppercase}
.section-title-ja{font-size:2.5rem;font-weight:700;color:var(--main-color);letter-spacing:1px}
.philosophy-section{padding:100px 0;background:var(--light-bg)}
.section-content{display:flex;align-items:center;gap:60px}
.content-image{flex:0.7}
.content-image img{width:100%;height:400px;object-fit:cover;border-radius:15px;box-shadow:0 10px 30px rgba(0,69,136,0.1)}
.content-text{flex:1;position:relative}
.content-text p{font-size:1.1rem;line-height:1.8;color:var(--sub-color);margin-bottom:40px}
.detail-btn{display:inline-block;background:var(--main-color);color:white;padding:16px 40px;border-radius:25px;text-decoration:none;min-width:200px;text-align:center;font-weight:600;font-size:1.1rem;transition:all 0.3s ease;letter-spacing:0.5px;box-shadow:0 4px 15px rgba(0,69,136,0.2)}
.detail-btn:hover{background:var(--accent-color);transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,69,136,0.3)}
.detail-btn-outline{display:inline-block;background:transparent;color:var(--main-color);padding:16px 40px;border:2px solid var(--main-color);border-radius:25px;text-decoration:none;min-width:200px;text-align:center;font-weight:600;font-size:1.1rem;transition:all 0.3s ease;letter-spacing:0.5px;position:absolute;bottom:0;right:0}
.detail-btn-outline:hover{background:var(--main-color);color:white;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,69,136,0.3)}
.business-section{padding:100px 0}
.business-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;margin-bottom:60px}
.business-item{text-align:center;padding:30px 20px;background:white;border-radius:15px;transition:all 0.3s ease;border:1px solid rgba(0,69,136,0.1);box-shadow:0 5px 20px rgba(0,69,136,0.05)}
.business-item:hover{transform:translateY(-5px);box-shadow:0 15px 40px rgba(0,69,136,0.15);border-color:var(--main-color)}
.business-image{margin-bottom:20px}
.business-image img{width:100%;height:200px;object-fit:cover;border-radius:10px}
.business-item h3{font-size:1.3rem;font-weight:700;color:var(--main-color);margin-bottom:15px}
.business-item p{font-size:0.95rem;color:var(--sub-color);line-height:1.6}
.section-footer{text-align:center}
.company-section{padding:100px 0;background:var(--light-bg)}
.company-info{background:white;padding:60px;border-radius:15px;box-shadow:0 10px 30px rgba(0,69,136,0.1);border:1px solid rgba(0,69,136,0.1)}
.company-grid{display:grid;grid-template-columns:200px 1fr;gap:30px 40px;align-items:start}
.company-label{font-weight:700;color:var(--main-color);font-size:1.1rem;padding:12px 0;border-bottom:2px solid var(--main-color)}
.company-value{font-size:1rem;color:var(--sub-color);line-height:1.8;padding:12px 0;border-bottom:1px solid rgba(0,69,136,0.1)}
.company-value.address{line-height:1.6}
.company-value.business{line-height:1.8}
.contact-section{padding:100px 0;background:var(--main-color);color:white}
.contact-container{text-align:center}
.contact-section .section-title-en{color:rgba(255,255,255,0.7)}
.contact-section .section-title-ja{color:white}
.contact-options{display:flex;gap:40px;justify-content:center;margin-top:60px}
.contact-option{background:white;color:var(--main-color);padding:40px 30px;border-radius:15px;min-width:280px;text-decoration:none;transition:all 0.3s ease;box-shadow:0 10px 30px rgba(0,0,0,0.2)}
.contact-option:hover{transform:translateY(-5px);box-shadow:0 15px 40px rgba(0,0,0,0.3)}
.contact-option h3{font-size:1.4rem;font-weight:700;margin-bottom:15px}
.contact-option p{font-size:1rem;line-height:1.6}
.phone-number{font-size:1.8rem;font-weight:700;color:var(--accent-color);margin-top:10px}
footer{background:var(--gray-dark);color:white;padding:60px 0 30px}
.footer-content{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-section h4{font-size:1.2rem;font-weight:700;margin-bottom:20px;color:var(--accent-color)}
.footer-section p,.footer-section a{color:rgba(255,255,255,0.8);text-decoration:none;line-height:1.8;transition:color 0.3s ease}
.footer-section a:hover{color:var(--accent-color)}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.2);padding-top:30px;text-align:center;color:rgba(255,255,255,0.6)}
.mobile-menu{display:none;position:fixed;top:80px;left:0;width:100%;background:rgba(248,250,252,0.95);backdrop-filter:blur(15px);z-index:99;padding:20px;box-shadow:0 4px 20px rgba(0,69,136,0.1);border-bottom:1px solid rgba(0,69,136,0.1);overflow:hidden}
.mobile-menu.active{display:block;animation:slideDown 0.3s ease-out}
.mobile-menu-wave{position:absolute;top:0;left:0;width:100%;height:60px;opacity:0.1;animation:mobileWaveMove 3s ease-in-out infinite}
.menu-wave-svg{width:100%;height:100%}
.menu-wave-path{fill:var(--main-color);animation:mobileWavePath 4s ease-in-out infinite}
@keyframes mobileWaveMove{0%,100%{transform:translateX(0px)}50%{transform:translateX(-20px)}}
@keyframes mobileWavePath{0%,100%{d:path("M0,30 Q100,60 200,30 T400,30 L400,60 L0,60 Z")}25%{d:path("M0,20 Q100,50 200,40 T400,20 L400,60 L0,60 Z")}50%{d:path("M0,40 Q100,70 200,20 T400,40 L400,60 L0,60 Z")}75%{d:path("M0,35 Q100,65 200,35 T400,35 L400,60 L0,60 Z")}}
.mobile-menu ul{list-style:none;position:relative;z-index:2;margin-top:20px}
.mobile-menu li{margin:15px 0}
.mobile-menu a{font-family:"Roboto",sans-serif;display:block;padding:15px 20px;text-decoration:none;color:var(--main-color);font-size:1.1rem;font-weight:600;border-radius:10px;transition:all 0.3s ease;letter-spacing:0.3px;position:relative;overflow:hidden}
.mobile-menu a::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,69,136,0.1),transparent);transition:left 0.5s ease}
.mobile-menu a:hover::before{left:100%}
.mobile-menu a:hover{background:rgba(0,69,136,0.1);color:var(--navy-blue);transform:translateX(10px)}
.slick-dots{bottom:30px;z-index:15}
.slick-dots li button:before{font-size:16px;color:rgba(0,69,136,0.4);opacity:1}
.slick-dots li.slick-active button:before{color:var(--main-color);opacity:1}
.slick-dots li{margin:0 8px}
.slick-arrow{display:none !important}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeftLogo{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateY(-50%) translateX(-30px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(50px) scale(0.95)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.page-hero{position:relative;width:100%;height:30vh;margin-top:80px;background:linear-gradient(135deg,rgba(0,69,136,0.8),rgba(0,86,160,0.6)),url('../img/kaso-visual.jpg') center/cover;display:flex;align-items:center;justify-content:center;color:white;overflow:hidden}
.page-hero::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.3);z-index:1}
.page-hero-content{position:relative;z-index:2;text-align:center;opacity:0;animation:fadeInUp 1.5s ease-out 0.5s forwards}
.page-title{font-size:3.5rem;font-weight:800;margin-bottom:20px;letter-spacing:2px;text-shadow:2px 2px 4px rgba(0,0,0,0.5)}
.page-subtitle{font-size:1.3rem;font-weight:400;opacity:0.9;letter-spacing:1px}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
html{margin-top:0 !important}
#wpadminbar{position:fixed;top:0;z-index:9999}
@media (max-width:900px){
header{padding:15px 20px;min-height:70px}
.logo{width:30%;height:50px}
.logo img{height:50px;width:auto}
.nav-container{width:70%}
.nav-menu{display:none}
.hamburger{display:flex}
.slideshow-container{margin-top:70px}
.slide{height:calc(100vh - 70px)}
.slide-text{left:6%;width:50%;background:rgba(255,255,255,0.9)}
.slide-text h1{font-size:2.5rem;margin-bottom:20px}
.slide-text .subtitle{font-size:1.3rem;margin-bottom:22px}
.slide-text .company{font-size:1rem}
.slide-image{width:75%}
.slide-image-item{height:70vh}
.slide-image-item img{border-radius:20px 0 0 20px}
.section-content{flex-direction:column;gap:40px}
.detail-btn-outline{position:static;margin-top:30px}
.business-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px}
.philosophy-section,.business-section,.company-section,.contact-section{padding:60px 0}
.section-title-ja{font-size:2rem}
.company-info{padding:40px 30px}
.company-grid{grid-template-columns:1fr;gap:20px}
.company-label{border-bottom:none;border-left:4px solid var(--main-color);padding-left:15px}
.contact-options{flex-direction:column;align-items:center;gap:30px}
.footer-content{grid-template-columns:1fr;text-align:center;gap:30px}
.sp{display:block}
}
@media (max-width:480px){
.loading-text{font-size:3rem;margin-bottom:10px}
.loading-subtitle{font-size:1rem;margin-bottom:15px}
.loading-wave{width:150px;bottom:-15px}
header{padding:12px 15px;min-height:60px}
.logo{width:35%;height:45px}
.nav-container{width:65%}
.slideshow-container{margin-top:60px;height:80vh}
.slide{height:calc(80vh - 60px);margin-top:0px}
.slide-text{left:6%;width:70%;padding:30px 20px}
.slide-text h1{font-size:2rem;margin-bottom:16px}
.slide-text .subtitle{font-size:1.1rem;margin-bottom:18px}
.slide-text .company{font-size:0.9rem}
.slide-image{width:75%}
.slide-image-item{height:60vh}
.slide-image-item img{border-radius:15px 0 0 15px}
.slick-dots{bottom:120px}
.slick-dots li button:before{font-size:12px}
.business-grid{grid-template-columns:1fr;gap:20px}
.section-title-ja{font-size:1.8rem}
.container{max-width:480px;padding:0 25px}
.philosophy-section,.business-section,.company-section,.contact-section{padding:40px 0}
.main-content{padding:20px 0}
.content-image{text-align:center;}
.content-image img{width:80%;height:auto;}
.slide-content{height:55vh}
.company-info{padding:30px 20px}
.detail-btn,.detail-btn-outline{min-width:180px;padding:14px 30px;font-size:1rem;margin-inline:auto;display:block;width:70%}
.contact-option{min-width:250px;padding:30px 20px;width:85%}
.phone-number{font-size:1.5rem;width:85%}
.sp{display:block}
}