/* このサイトは「ちゃんとした会社だけど、話しかけやすい」を意識して作っています。 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

:root{--navy:#15324a;--blue:#287da5;--mint:#e8f5f4;--cream:#faf9f5;--text:#25323b;--muted:#68757d;--line:#dfe7ea;--white:#fff;--shadow:0 14px 35px rgba(21,50,74,.10);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--text);background:var(--cream);font-family:"Noto Sans JP","Zen Kaku Gothic New",sans-serif;line-height:1.85}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.container{width:min(1120px,92%);margin:auto}
.header{position:sticky;top:0;z-index:20;background:rgba(250,249,245,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(223,231,234,.8)}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.logo{font-weight:800;font-size:1.2rem;letter-spacing:.04em;color:var(--navy)}
.logo span{display:block;font-size:.68rem;font-weight:500;color:var(--muted);letter-spacing:.16em}
.navlinks{display:flex;gap:22px;align-items:center;font-size:.9rem;font-weight:600}
.navlinks a:hover{color:var(--blue)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:700;border:1px solid transparent;transition:.2s}
.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{transform:translateY(-2px);background:#0f273a}
.btn-light{background:#fff;border-color:var(--line)}.btn-light:hover{border-color:var(--blue)}
.menu{display:none;border:0;background:none;font-size:1.7rem;color:var(--navy)}
.hero{padding:74px 0 60px}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:58px;align-items:center}
.kicker{color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:.18em;margin-bottom:13px}
h1,h2,h3{font-weight:800;line-height:1.35;color:var(--navy);margin-top:0}
h1{font-size:clamp(2.25rem,5vw,4.25rem);letter-spacing:-.03em;margin-bottom:22px}
h2{font-size:clamp(1.7rem,3vw,2.5rem);margin-bottom:16px}h3{font-size:1.15rem;margin-bottom:8px}
.lead{font-size:1.06rem;color:var(--muted);max-width:620px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero-image{position:relative}.hero-image img{width:100%;height:570px;object-fit:cover;border-radius:30px;box-shadow:var(--shadow)}
.badge{position:absolute;left:-18px;bottom:28px;background:#fff;padding:17px 20px;border-radius:15px;box-shadow:var(--shadow);font-size:.88rem}.badge strong{display:block;color:var(--navy);font-size:1.05rem}
.section{padding:86px 0}.section.alt{background:#fff}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}.section-head p{max-width:560px;color:var(--muted);margin:0}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 5px 18px rgba(21,50,74,.04)}
.icon{width:46px;height:46px;border-radius:14px;background:var(--mint);display:grid;place-items:center;color:var(--blue);font-size:1.35rem;margin-bottom:17px}
.card p{color:var(--muted);font-size:.93rem;margin-bottom:0}
.photo-card{overflow:hidden;padding:0}.photo-card img{height:240px;width:100%;object-fit:cover}.photo-card .content{padding:22px 24px}
.price{font-size:1.55rem;color:var(--navy);font-weight:800}.price small{font-size:.75rem;color:var(--muted);font-weight:500}
.notice{padding:18px 20px;background:var(--mint);border-radius:14px;color:#365760;font-size:.9rem}
.page-hero{padding:68px 0 42px;background:linear-gradient(135deg,#eef7f6,#faf9f5)}
.breadcrumb{font-size:.78rem;color:var(--muted);margin-bottom:18px}.page-hero h1{font-size:clamp(2rem,4vw,3.2rem);margin-bottom:10px}.page-hero p{color:var(--muted);max-width:720px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.stat{background:#fff;border:1px solid var(--line);padding:22px;border-radius:16px}.stat strong{font-size:1.7rem;color:var(--navy);display:block}
.steps{counter-reset:step}.step{position:relative;padding-left:68px}.step:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:12px}.faq summary{cursor:pointer;font-weight:700;color:var(--navy)}.faq p{color:var(--muted);margin:12px 0 0}
.form{display:grid;gap:15px}.form label{font-weight:700;font-size:.9rem}.form input,.form select,.form textarea{width:100%;padding:14px 15px;border:1px solid #ccd9de;border-radius:10px;background:#fff;font:inherit}.form textarea{min-height:145px;resize:vertical}
.contact-box{background:var(--navy);color:#fff;border-radius:25px;padding:36px}.contact-box h2,.contact-box h3{color:#fff}.contact-box p{color:#d9e5eb}
.footer{background:#102b3f;color:#d9e5eb;padding:52px 0 25px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}.footer h3{color:#fff;font-size:1rem}.footer a{display:block;margin:7px 0;color:#d9e5eb;font-size:.9rem}.copy{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:20px;font-size:.8rem;color:#9db0bb}
.mobile-cta{display:none}
@media(max-width:820px){.navlinks{display:none;position:absolute;left:4%;right:4%;top:70px;background:#fff;padding:18px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.navlinks.open{display:flex}.menu{display:block}.nav .btn{display:none}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr;gap:32px}.hero-image img{height:390px}.badge{left:12px}.grid-3,.grid-2,.stats,.footer-grid{grid-template-columns:1fr}.section{padding:62px 0}.section-head{display:block}.section-head p{margin-top:10px}.mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;padding:10px;border-top:1px solid var(--line);gap:8px}.mobile-cta .btn{flex:1}body{padding-bottom:68px}}
