*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{
font-family:"Noto Sans JP",sans-serif;
font-size:16px;
line-height:1.8;
color:#1d2939;
background:#fff;
overflow-x:hidden;
}

img{
display:block;
max-width:100%;
}

a{
text-decoration:none;
color:inherit;
transition:.3s;
}

ul{
list-style:none;
}

.container{
width:min(1200px,92%);
margin:auto;
}

section{
padding:110px 0;
}

/*==========================
Header
==========================*/

header{
position:fixed;
top:0;
left:0;
width:100%;
height:80px;
background:rgba(255,255,255,.96);
backdrop-filter:blur(12px);
border-bottom:1px solid #e8eef5;
z-index:999;
}

.header-inner{
height:80px;
display:flex;
align-items:center;
justify-content:space-between;
width:min(1200px,92%);
margin:auto;
}

.logo{
font-size:28px;
font-weight:900;
color:#082b63;
letter-spacing:.05em;
}

nav ul{
display:flex;
gap:34px;
}

nav a{
font-size:14px;
font-weight:700;
color:#4d5a6d;
}

nav a:hover{
color:#0066ff;
}

/*==========================
Hero
==========================*/

.hero{
padding-top:170px;
padding-bottom:120px;
background:
linear-gradient(135deg,#ffffff 0%,#eef5ff 100%);
}

.hero-inner{
display:grid;
grid-template-columns:1.2fr .8fr;
gap:60px;
align-items:center;
}

.hero-label{
display:inline-block;
padding:8px 18px;
border-radius:50px;
background:#e9f2ff;
color:#0066ff;
font-size:13px;
font-weight:700;
margin-bottom:28px;
}

.hero h1{
font-size:clamp(42px,5vw,64px);
line-height:1.35;
font-weight:900;
color:#082b63;
margin-bottom:28px;
}

.hero-description{
font-size:18px;
color:#5f6d81;
max-width:640px;
}

.hero-buttons{
display:flex;
gap:18px;
margin-top:45px;
}

.btn-primary{
display:flex;
align-items:center;
justify-content:center;
height:58px;
padding:0 38px;
background:#0066ff;
color:#fff;
border-radius:50px;
font-weight:700;
box-shadow:0 15px 35px rgba(0,102,255,.25);
}

.btn-primary:hover{
transform:translateY(-4px);
}

.btn-secondary{
display:flex;
align-items:center;
justify-content:center;
height:58px;
padding:0 34px;
border:2px solid #0066ff;
border-radius:50px;
color:#0066ff;
font-weight:700;
}

.btn-secondary:hover{
background:#0066ff;
color:#fff;
}
/*==========================
Hero Right Cards
==========================*/

.hero-right{
display:flex;
flex-direction:column;
gap:22px;
}

.hero-card{
background:#fff;
padding:28px;
border-radius:24px;
border:1px solid #e6edf7;
box-shadow:0 15px 40px rgba(0,40,100,.08);
transition:.3s;
position:relative;
overflow:hidden;
}

.hero-card::before{
content:"";
position:absolute;
left:0;
top:0;
width:6px;
height:100%;
background:#0066ff;
}

.hero-card:hover{
transform:translateY(-6px);
box-shadow:0 25px 55px rgba(0,40,100,.16);
}

.hero-card h3{
font-size:23px;
font-weight:900;
color:#082b63;
margin-bottom:12px;
}

.hero-card p{
font-size:15px;
color:#607085;
line-height:1.9;
}

/*==========================
Section Title
==========================*/

.section-title{
text-align:center;
margin-bottom:70px;
}

.section-en{
display:inline-block;
font-size:13px;
font-weight:900;
letter-spacing:.25em;
color:#0066ff;
margin-bottom:16px;
}

.section-title h2{
font-size:42px;
font-weight:900;
line-height:1.4;
color:#082b63;
}

.section-title p{
margin-top:18px;
font-size:17px;
color:#607085;
}

/*==========================
Strength
==========================*/

.strength{
background:#f7faff;
}

.strength-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.strength-card{
background:#fff;
padding:45px 35px;
border-radius:28px;
box-shadow:0 15px 40px rgba(0,40,100,.08);
position:relative;
overflow:hidden;
transition:.3s;
}

.strength-card:hover{
transform:translateY(-8px);
}

.strength-number{
position:absolute;
top:10px;
right:22px;
font-size:68px;
font-weight:900;
color:#edf4ff;
}

.strength-card h3{
font-size:24px;
font-weight:900;
margin-bottom:22px;
color:#082b63;
position:relative;
z-index:1;
}

.strength-card p{
font-size:15px;
color:#607085;
position:relative;
z-index:1;
}

/*==========================
Service
==========================*/

.service{
background:#fff;
}

.service-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.service-card{
background:#fff;
padding:42px 34px;
border-radius:28px;
border:1px solid #e8eef7;
box-shadow:0 15px 40px rgba(0,40,100,.07);
transition:.3s;
}

.service-card:hover{
transform:translateY(-8px);
box-shadow:0 25px 60px rgba(0,40,100,.15);
}

.service-icon{
width:80px;
height:80px;
border-radius:24px;
background:#edf5ff;
display:flex;
align-items:center;
justify-content:center;
font-size:22px;
font-weight:900;
color:#0066ff;
margin-bottom:28px;
}

.service-card h3{
font-size:25px;
font-weight:900;
margin-bottom:18px;
color:#082b63;
}

.service-card p{
font-size:15px;
color:#607085;
margin-bottom:24px;
}

.service-card ul{
margin-bottom:30px;
}

.service-card li{
padding:8px 0;
border-bottom:1px solid #eef3f8;
font-size:14px;
}

.service-button{
display:flex;
justify-content:center;
align-items:center;
height:52px;
background:#082b63;
color:#fff;
border-radius:50px;
font-weight:700;
}

.service-button:hover{
background:#0066ff;
}
/*==========================
Achievement
==========================*/

.achievement{
background:#f7faff;
}

.achievement-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.achievement-card{
background:#fff;
padding:45px 35px;
border-radius:28px;
text-align:center;
box-shadow:0 15px 40px rgba(0,40,100,.08);
transition:.3s;
}

.achievement-card:hover{
transform:translateY(-8px);
box-shadow:0 25px 60px rgba(0,40,100,.15);
}

.achievement-number{
font-size:72px;
font-weight:900;
line-height:1;
color:#0066ff;
margin-bottom:20px;
}

.achievement-card h3{
font-size:24px;
font-weight:900;
color:#082b63;
margin-bottom:18px;
}

.achievement-card p{
font-size:15px;
color:#607085;
margin-bottom:25px;
}

.achievement-card a{
display:inline-block;
padding-bottom:3px;
border-bottom:2px solid #0066ff;
color:#0066ff;
font-weight:700;
}

.achievement-links{
margin-top:60px;
}

.link-card{
background:linear-gradient(135deg,#082b63,#0066ff);
color:#fff;
padding:50px;
border-radius:30px;
text-align:center;
}

.link-card h3{
font-size:30px;
font-weight:900;
margin-bottom:15px;
}

.link-card p{
font-size:16px;
color:#d9e8ff;
margin-bottom:30px;
}

.link-card a{
display:inline-flex;
align-items:center;
justify-content:center;
height:54px;
padding:0 34px;
margin:8px;
border-radius:50px;
background:#fff;
color:#082b63;
font-weight:700;
}

.link-card a:hover{
transform:translateY(-4px);
}

/*==========================
Flow
==========================*/

.process{
background:#ffffff;
}

.process-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:25px;
}

.process-card{
background:#f7faff;
padding:40px 28px;
border-radius:26px;
text-align:center;
transition:.3s;
}

.process-card:hover{
transform:translateY(-8px);
}

.process-card span{
display:flex;
align-items:center;
justify-content:center;
width:66px;
height:66px;
margin:0 auto 20px;
background:#0066ff;
border-radius:50%;
color:#fff;
font-size:24px;
font-weight:900;
}

.process-card h3{
font-size:22px;
font-weight:900;
color:#082b63;
margin-bottom:15px;
}

.process-card p{
font-size:15px;
color:#607085;
}
/*==========================
FAQ
==========================*/

.faq{
background:#f7faff;
}

.faq-list{
max-width:900px;
margin:0 auto;
}

.faq-list details{
background:#fff;
border-radius:22px;
padding:24px 30px;
margin-bottom:18px;
box-shadow:0 12px 35px rgba(0,40,100,.06);
transition:.3s;
}

.faq-list details:hover{
transform:translateY(-4px);
}

.faq-list summary{
list-style:none;
cursor:pointer;
font-size:17px;
font-weight:700;
color:#082b63;
}

.faq-list summary::-webkit-details-marker{
display:none;
}

.faq-list p{
margin-top:20px;
padding-top:20px;
border-top:1px solid #e8eef5;
font-size:15px;
color:#39475a;
line-height:1.9;
}

/*==========================
Contact
==========================*/

.contact{
background:linear-gradient(135deg,#082b63,#0066ff);
color:#fff;
}

.contact-box{
display:grid;
grid-template-columns:1fr 320px 280px;
gap:45px;
align-items:center;
}

.contact-content .section-en{
color:#9ec9ff;
}

.contact-content h2{
font-size:42px;
font-weight:900;
line-height:1.4;
margin-bottom:25px;
}

.contact-content p{
font-size:16px;
line-height:1.9;
color:#e5efff;
margin-bottom:25px;
}

.contact-content ul li{
padding:8px 0;
font-weight:700;
}

.contact-buttons{
display:flex;
flex-direction:column;
gap:18px;
}

.contact-button{
display:flex;
align-items:center;
justify-content:center;
height:62px;
background:#fff;
color:#082b63;
border-radius:50px;
font-weight:700;
box-shadow:0 12px 35px rgba(0,0,0,.15);
}

.contact-button:hover{
transform:translateY(-4px);
background:#edf5ff;
}

.contact-image{
display:flex;
justify-content:center;
align-items:center;
}

.contact-image img{
width:240px;
max-width:100%;
object-fit:contain;
filter:drop-shadow(0 18px 35px rgba(0,0,0,.25));
}

/*==========================
Footer
==========================*/

footer{
background:#051326;
color:#fff;
padding:50px 0;
}

.footer-inner{
text-align:center;
}

.footer-inner h2{
font-size:30px;
font-weight:900;
margin-bottom:12px;
}

.footer-inner p{
font-size:15px;
color:#c7d5eb;
}

.copyright{
margin-top:18px;
font-size:13px;
color:#8fa3c3;
}
/*==========================
Tablet
==========================*/

@media (max-width:1024px){

section{
padding:90px 0;
}

.hero{
padding-top:140px;
}

.hero-inner{
grid-template-columns:1fr;
gap:45px;
}

.hero-left{
text-align:center;
}

.hero-description{
margin:0 auto;
}

.hero-buttons{
justify-content:center;
flex-wrap:wrap;
}

.hero-right{
max-width:700px;
margin:0 auto;
}

.strength-grid{
grid-template-columns:1fr;
}

.service-grid{
grid-template-columns:1fr;
}

.achievement-grid{
grid-template-columns:1fr;
}

.process-grid{
grid-template-columns:repeat(2,1fr);
}

.contact-box{
grid-template-columns:1fr;
text-align:center;
}

.contact-buttons{
max-width:420px;
margin:0 auto;
}

.contact-image{
margin-top:15px;
}

.contact-image img{
width:220px;
}

}

/*==========================
Mobile
==========================*/

@media (max-width:768px){

header{
height:70px;
}

.header-inner{
height:70px;
width:94%;
}

.logo{
font-size:22px;
}

nav{
display:none;
}

section{
padding:70px 0;
}

.container{
width:94%;
}

.hero{
padding-top:110px;
}

.hero h1{
font-size:34px;
}

.hero-description{
font-size:15px;
}

.hero-buttons{
flex-direction:column;
}

.btn-primary,
.btn-secondary{
width:100%;
}

.hero-card{
padding:24px;
}

.hero-card h3{
font-size:20px;
}

.hero-card p{
font-size:14px;
}

.section-title{
margin-bottom:45px;
}

.section-title h2{
font-size:30px;
}

.section-title p{
font-size:15px;
}

.strength-card,
.service-card,
.achievement-card{
padding:32px 24px;
}

.process-grid{
grid-template-columns:1fr;
}

.process-card{
padding:30px 22px;
}

.link-card{
padding:30px 20px;
}

.link-card a{
display:flex;
width:100%;
margin:12px 0;
}

.faq-list details{
padding:18px 20px;
}

.faq-list summary{
font-size:15px;
}

.contact-content h2{
font-size:30px;
}

.contact-content p{
font-size:15px;
}

.contact-button{
height:58px;
font-size:14px;
}

.contact-image img{
width:180px;
}

.footer-inner h2{
font-size:24px;
}

.footer-inner p{
font-size:14px;
}

}