/* ===== Reset & Base ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:system-ui,"Hiragino Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;color:#333;line-height:1.8;background:#fff}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
img{max-width:100%;height:auto;display:block}
button{cursor:pointer;border:none;background:none;font:inherit}

/* ===== Colors ===== */
:root{
--navy:#0F318D;
--navy-dark:#0a2366;
--orange:#FF5F27;
--orange-hover:#e04d1a;
--white:#FFFFFF;
--gray-light:#f5f5f5;
--gray:#e0e0e0;
--text:#333333;
--text-light:#666666;
}

/* ===== Utility ===== */
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.section-padding{padding:80px 0}
.text-center{text-align:center}

/* ===== Top Bar (Fixed Buttons) ===== */
.top-bar{
position:fixed;top:0;right:0;z-index:1001;
display:flex;gap:0;
}
.top-bar a{
display:flex;align-items:center;gap:6px;
padding:10px 18px;font-size:13px;font-weight:700;
color:var(--white);text-decoration:none;
transition:opacity .3s;
}
.top-bar a:hover{opacity:.85}
.top-bar .btn-shindan{background:var(--navy);border-radius:0 0 0 8px}
.top-bar .btn-contact{background:var(--orange)}
.top-bar .btn-tel{background:var(--navy-dark);border-radius:0 0 0 8px}
.top-bar svg{width:16px;height:16px;fill:currentColor}

/* ===== Header ===== */
.site-header{
position:fixed;top:0;left:0;width:100%;
background:rgba(255,255,255,.97);
z-index:1000;
box-shadow:0 1px 4px rgba(0,0,0,.08);
transition:box-shadow .3s;
}
.header-inner{
display:flex;align-items:center;justify-content:space-between;
max-width:1200px;margin:0 auto;padding:12px 20px;
}
.site-logo{font-size:14px;color:var(--text-light);letter-spacing:.05em}
.site-logo span{font-size:28px;font-weight:900;color:var(--navy);margin-left:2px;font-family:serif}
.site-logo a{display:flex;align-items:baseline;gap:2px}

/* Desktop Nav */
.main-nav ul{display:flex;gap:32px}
.main-nav a{
font-size:14px;font-weight:600;color:var(--text);
padding:8px 0;position:relative;transition:color .3s;
}
.main-nav a::after{
content:"";position:absolute;bottom:0;left:0;width:0;height:2px;
background:var(--navy);transition:width .3s;
}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.main-nav a:hover,.main-nav a.active{color:var(--navy)}

/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;padding:8px;z-index:1100}
.hamburger span{display:block;width:24px;height:2px;background:var(--navy);transition:all .3s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* Mobile Nav */
.mobile-nav{
display:none;position:fixed;top:0;left:0;width:100%;height:100vh;
background:rgba(255,255,255,.98);z-index:1050;
flex-direction:column;align-items:center;justify-content:center;gap:32px;
}
.mobile-nav.open{display:flex}
.mobile-nav a{font-size:20px;font-weight:700;color:var(--navy)}
.mobile-nav .mobile-tel{font-size:18px;color:var(--orange);margin-top:16px}

/* ===== Hero (Slideshow) ===== */
.hero-slideshow{
position:relative;width:100%;height:70vh;min-height:400px;overflow:hidden;margin-top:60px;
}
.hero-slide{
position:absolute;top:0;left:0;width:100%;height:100%;
opacity:0;transition:opacity 1.2s ease;
}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-overlay{
position:absolute;bottom:0;left:0;width:100%;
padding:40px;
background:linear-gradient(transparent,rgba(15,49,141,.75));
color:var(--white);
}
.hero-overlay .sub{font-size:16px;font-style:italic;letter-spacing:.1em;margin-bottom:8px;opacity:.9}
.hero-overlay .logo-mark{height:50px;margin-bottom:12px}
.hero-overlay h1{font-size:32px;font-weight:900;letter-spacing:.05em}
.hero-nav-btn{
position:absolute;top:50%;transform:translateY(-50%);
width:44px;height:44px;background:rgba(255,255,255,.4);
border-radius:50%;display:flex;align-items:center;justify-content:center;
color:var(--white);font-size:20px;z-index:10;transition:background .3s;
}
.hero-nav-btn:hover{background:rgba(255,255,255,.6)}
.hero-nav-btn.prev{left:16px}
.hero-nav-btn.next{right:16px}

/* ===== Sub-page Hero ===== */
.page-hero{
position:relative;width:100%;height:280px;overflow:hidden;margin-top:60px;
}
.page-hero img{width:100%;height:100%;object-fit:cover}
.page-hero-overlay{
position:absolute;top:0;left:0;width:100%;height:100%;
display:flex;flex-direction:column;align-items:center;justify-content:center;
background:rgba(15,49,141,.45);color:var(--white);
}
.page-hero-overlay .sub{font-size:14px;letter-spacing:.2em;margin-bottom:4px;opacity:.85}
.page-hero-overlay h1{font-size:30px;font-weight:900;letter-spacing:.08em}

/* ===== Section Titles ===== */
.section-title{
text-align:center;margin-bottom:48px;
}
.section-title h2{
font-size:26px;font-weight:900;color:var(--navy);
position:relative;display:inline-block;padding-bottom:12px;
}
.section-title h2::after{
content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
width:60px;height:3px;background:var(--orange);
}
.section-title h3{
font-size:22px;font-weight:900;color:var(--navy);
}

/* ===== Home: Greeting ===== */
.greeting{background:var(--white)}
.greeting-inner{max-width:800px;margin:0 auto;text-align:center}
.greeting h3.greeting-title{
font-size:22px;color:var(--navy);margin-bottom:24px;
position:relative;display:inline-block;padding-bottom:10px;
}
.greeting h3.greeting-title::after{
content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
width:50px;height:2px;background:var(--orange);
}
.greeting p{font-size:15px;line-height:2;color:var(--text);margin-top:16px}

/* ===== Home: Worries ===== */
.worries{background:var(--gray-light)}
.worries-title{text-align:center;font-size:22px;font-weight:900;color:var(--navy);margin-bottom:40px}
.worries-list{display:flex;flex-direction:column;gap:16px;max-width:700px;margin:0 auto}
.worry-item{
display:flex;align-items:flex-start;gap:16px;
background:var(--white);border:1px solid var(--gray);
border-radius:8px;padding:20px 24px;
font-size:15px;line-height:1.7;
}
.worry-item svg{flex-shrink:0;width:24px;height:24px;fill:var(--navy);margin-top:2px}
.worries-answer{
max-width:700px;margin:40px auto 0;
display:flex;gap:24px;align-items:flex-start;
}
.worries-answer-text{flex:1}
.worries-answer-text .highlight{
font-size:18px;font-weight:900;color:var(--orange);margin-bottom:12px;
}
.worries-answer-text p{font-size:14px;line-height:1.9;color:var(--text)}
.worries-answer img{width:180px;flex-shrink:0}

/* ===== Home: Company Info ===== */
.company-info{background:var(--white)}
.company-table{max-width:800px;margin:0 auto}
.company-row{
display:flex;border-bottom:1px solid var(--gray);
}
.company-row:first-child{border-top:1px solid var(--gray)}
.company-label{
width:200px;flex-shrink:0;
background:var(--navy);color:var(--white);
padding:14px 20px;font-size:14px;font-weight:600;
}
.company-value{
flex:1;padding:14px 20px;font-size:14px;
}
.company-value a{color:var(--navy);text-decoration:underline}

/* ===== About Grants: Cards ===== */
.grant-section{padding:60px 0}
.grant-section:nth-child(even){background:var(--gray-light)}
.grant-card{
max-width:900px;margin:0 auto;
}
.grant-icon{
width:70px;height:70px;background:var(--navy);border-radius:50%;
display:flex;align-items:center;justify-content:center;
margin:0 auto 20px;
}
.grant-icon svg{width:32px;height:32px;fill:var(--white)}
.grant-card h2{
font-size:24px;font-weight:900;color:var(--navy);text-align:center;margin-bottom:32px;
}
.grant-content{
display:flex;gap:32px;align-items:center;
}
.grant-content.reverse{flex-direction:row-reverse}
.grant-content img{
width:320px;flex-shrink:0;border-radius:8px;
object-fit:cover;
}
.grant-text h3{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:12px;line-height:1.6}
.grant-text p{font-size:14px;line-height:1.9;color:var(--text)}

/* ===== Diagnosis Banner ===== */
.diagnosis-banner{
background:var(--navy);color:var(--white);
padding:40px 20px;text-align:center;
}
.diagnosis-banner h2{font-size:22px;font-weight:700;margin-bottom:8px}
.diagnosis-banner p{font-size:14px;margin-bottom:20px;opacity:.85}
.diagnosis-banner .btn-diagnosis{
display:inline-block;padding:14px 40px;
background:var(--orange);color:var(--white);
font-size:15px;font-weight:700;border-radius:50px;
transition:background .3s;
}
.diagnosis-banner .btn-diagnosis:hover{background:var(--orange-hover)}

/* ===== FAQ ===== */
.faq{background:var(--gray-light)}
.faq-hero{
display:flex;align-items:center;justify-content:center;gap:24px;
margin-bottom:40px;
}
.faq-hero img{width:120px;border-radius:8px}
.faq-hero-text .sub{font-size:14px;color:var(--orange);font-weight:700;letter-spacing:.15em}
.faq-hero-text h2{font-size:26px;font-weight:900;color:var(--navy)}
.faq-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.faq-item{
background:var(--white);border:1px solid var(--gray);border-radius:8px;overflow:hidden;
}
.faq-question{
padding:18px 24px;font-size:15px;font-weight:700;color:var(--navy);
cursor:pointer;display:flex;align-items:center;justify-content:space-between;
}
.faq-question .toggle{
width:24px;height:24px;border-radius:50%;background:var(--navy);
display:flex;align-items:center;justify-content:center;
color:var(--white);font-size:16px;transition:transform .3s;flex-shrink:0;margin-left:16px;
}
.faq-item.open .faq-question .toggle{transform:rotate(180deg)}
.faq-answer{
max-height:0;overflow:hidden;transition:max-height .4s ease;
}
.faq-answer-inner{padding:0 24px 18px;font-size:14px;line-height:1.9;color:var(--text)}

/* ===== Voice Cards ===== */
.voice-section{background:var(--white)}
.voice-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:40px}
.voice-card{
background:var(--white);border:1px solid var(--gray);border-radius:8px;
padding:40px;display:flex;gap:24px;
box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.voice-avatar{flex-shrink:0;text-align:center}
.voice-avatar img{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:8px}
.voice-avatar .name{font-size:13px;color:var(--text-light)}
.voice-body h2{font-size:17px;font-weight:700;color:var(--orange);margin-bottom:12px;line-height:1.6}
.voice-body p{font-size:14px;line-height:1.9;color:var(--text)}

/* ===== Contact Form ===== */
.contact-section{background:var(--gray-light)}
.contact-inner{max-width:700px;margin:0 auto}
.contact-inner h2{font-size:22px;font-weight:900;color:var(--navy);margin-bottom:20px}
.contact-notes{margin-bottom:32px}
.contact-notes p{font-size:13px;line-height:1.9;color:var(--text)}
.contact-notes a{color:var(--navy);font-weight:600}
.form-group{margin-bottom:20px}
.form-group label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}
.form-group label .required{color:var(--orange);margin-left:4px}
.form-group input,.form-group textarea{
width:100%;padding:12px 14px;border:1px solid var(--gray);
border-radius:4px;font-size:14px;font-family:inherit;
transition:border-color .3s;
}
.form-group input:focus,.form-group textarea:focus{
outline:none;border-color:var(--navy);
}
.form-group textarea{height:140px;resize:vertical}
.form-row{display:flex;gap:16px}
.form-row .form-group{flex:1}
.form-privacy{font-size:12px;color:var(--text-light);margin-bottom:20px}
.form-privacy a{color:var(--navy);text-decoration:underline}
.btn-submit{
display:block;width:100%;max-width:400px;margin:0 auto;
padding:16px;background:var(--navy);color:var(--white);
font-size:15px;font-weight:700;border:none;border-radius:4px;
cursor:pointer;transition:background .3s;
}
.btn-submit:hover{background:var(--navy-dark)}

/* ===== Privacy Policy ===== */
.privacy-section{background:var(--white)}
.privacy-inner{max-width:800px;margin:0 auto}
.privacy-inner h3{font-size:14px;font-weight:700;color:var(--text);margin-bottom:16px}
.privacy-inner .pp-heading{
font-size:15px;font-weight:700;color:var(--navy);margin:32px 0 12px;
}
.privacy-inner .pp-subheading{
font-size:14px;font-weight:700;color:var(--text);margin:24px 0 8px;
}
.privacy-inner p{font-size:14px;line-height:1.9;color:var(--text);margin-bottom:8px}
.privacy-inner ul{margin:8px 0 16px 24px;list-style:disc}
.privacy-inner ul li{font-size:14px;line-height:1.9;color:var(--text);margin-bottom:4px}

/* ===== Footer ===== */
.footer-cta{
position:relative;padding:60px 20px;text-align:center;
background:linear-gradient(rgba(15,49,141,.7),rgba(15,49,141,.7)),url("../images/footer_laptop.jpg") center/cover;
color:var(--white);
}
.footer-cta p{font-size:15px;line-height:1.9;margin-bottom:24px}
.footer-cta-buttons{
display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:40px;
}
.btn-tel-footer{
display:flex;flex-direction:column;align-items:center;
padding:16px 32px;border:2px solid var(--white);border-radius:4px;
color:var(--white);transition:background .3s;
}
.btn-tel-footer:hover{background:rgba(255,255,255,.1)}
.btn-tel-footer .tel-number{font-size:28px;font-weight:900}
.btn-tel-footer .tel-sub{font-size:11px;margin-top:4px}
.btn-mail-footer{
display:flex;align-items:center;gap:8px;
padding:16px 40px;background:var(--orange);color:var(--white);
border-radius:4px;font-size:16px;font-weight:700;
transition:background .3s;
}
.btn-mail-footer:hover{background:var(--orange-hover)}
.btn-mail-footer svg{width:20px;height:20px;fill:currentColor}
.footer-diagnosis{margin-top:20px}
.footer-diagnosis .btn-diagnosis{
display:inline-block;padding:16px 48px;
background:var(--orange);color:var(--white);
font-size:15px;font-weight:700;border-radius:4px;
transition:background .3s;
}
.footer-diagnosis .btn-diagnosis:hover{background:var(--orange-hover)}
.footer-diagnosis h2{font-size:18px;font-weight:700;margin-bottom:8px}
.footer-diagnosis p{font-size:13px;margin-bottom:16px;opacity:.8}

.site-footer{
background:var(--white);padding:40px 20px;
border-top:1px solid var(--gray);
}
.footer-inner{
max-width:1100px;margin:0 auto;
display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:32px;
}
.footer-info h2{font-size:22px;font-weight:900;color:var(--navy);margin-bottom:12px;font-family:serif}
.footer-info p{font-size:13px;color:var(--text-light);line-height:1.7}
.footer-info .copyright{margin-top:16px;font-size:12px;color:#999}
.footer-nav ul{display:flex;flex-direction:column;gap:10px}
.footer-nav a{font-size:14px;color:var(--text);transition:color .3s}
.footer-nav a:hover{color:var(--navy)}

/* ===== TOP Button ===== */
.btn-top{
position:fixed;bottom:24px;right:24px;
width:50px;height:50px;background:var(--orange);
border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;
color:var(--white);font-size:10px;font-weight:700;
box-shadow:0 2px 8px rgba(0,0,0,.2);
opacity:0;pointer-events:none;transition:opacity .3s;z-index:999;
}
.btn-top.visible{opacity:1;pointer-events:auto}
.btn-top svg{width:14px;height:14px;fill:currentColor;margin-bottom:2px}

/* ===== Thank You ===== */
.thankyou{text-align:center;padding:120px 20px 80px}
.thankyou h1{font-size:28px;color:var(--navy);margin-bottom:16px}
.thankyou p{font-size:15px;color:var(--text);margin-bottom:32px}
.thankyou a{
display:inline-block;padding:14px 40px;
background:var(--navy);color:var(--white);
border-radius:4px;font-weight:700;transition:background .3s;
}
.thankyou a:hover{background:var(--navy-dark)}

/* ===== Responsive ===== */
@media(max-width:1199px){
.top-bar{flex-wrap:wrap}
}

@media(max-width:767px){
.main-nav{display:none}
.hamburger{display:flex}
.top-bar{display:none}
.hero-slideshow{height:50vh;min-height:300px}
.hero-overlay{padding:24px}
.hero-overlay h1{font-size:22px}
.hero-overlay .sub{font-size:13px}
.page-hero{height:200px}
.page-hero-overlay h1{font-size:22px}
.section-padding{padding:48px 0}
.greeting h3.greeting-title{font-size:18px}
.worries-title{font-size:18px}
.worries-answer{flex-direction:column;align-items:center;text-align:center}
.worries-answer img{width:140px}
.company-row{flex-direction:column}
.company-label{width:100%}
.grant-content,.grant-content.reverse{flex-direction:column}
.grant-content img{width:100%;max-width:400px;margin:0 auto}
.grant-card h2{font-size:20px}
.faq-hero{flex-direction:column;text-align:center}
.voice-card{flex-direction:column;align-items:center;text-align:center;padding:24px}
.voice-avatar img{width:100px;height:100px}
.form-row{flex-direction:column;gap:0}
.footer-inner{flex-direction:column;align-items:center;text-align:center}
.btn-tel-footer .tel-number{font-size:22px}
.footer-cta-buttons{flex-direction:column;align-items:center}
.header-inner{padding:10px 16px}
.site-logo span{font-size:22px}
}

@media(min-width:768px) and (max-width:1199px){
.grant-content img{width:240px}
.hero-overlay h1{font-size:28px}
}
