*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --primary:#0693e3;--primary-dark:#0574b8;--primary-light:#e8f4fd;
  --accent:#dd3737;
  --dark:#32373c;--dark-hover:#23272b;
  --green:#06C755;--green-dark:#05a847;
  --bg-white:#ffffff;--bg-light:#f7f9fc;--bg-blue:#eaf4fb;
  --text:#333333;--text-sub:#666666;--text-light:#999999;
  --border:#e5e5e5;
  --radius-pill:9999px;--radius-lg:20px;--radius-md:12px;
  --shadow-sm:0 2px 8px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.1);
  --max-w:1100px;--header-h:72px;
}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans',sans-serif;color:var(--text);line-height:1.8;background:var(--bg-white);-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none;transition:opacity .2s}
a:hover{opacity:.8}
img{max-width:100%;height:auto;vertical-align:middle}

/* Header */
.header{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:1000;height:var(--header-h)}
.header-inner{max-width:var(--max-w);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:100%}
.logo{display:flex;align-items:center;gap:10px;font-size:1.35rem;font-weight:800;color:var(--primary);letter-spacing:-.02em}
.logo svg{width:36px;height:36px}
.nav{display:flex;align-items:center;gap:4px;list-style:none}
.nav a{display:block;padding:8px 14px;color:var(--text);font-size:.85rem;font-weight:500;border-radius:var(--radius-pill);transition:background .2s,color .2s}
.nav a:hover{background:var(--bg-light);color:var(--primary);opacity:1}
.nav a.active{color:var(--primary);background:var(--primary-light)}
.nav-cta{margin-left:8px}
.nav-cta a{background:var(--primary)!important;color:#fff!important;padding:10px 24px!important;font-weight:600!important}
.nav-cta a:hover{background:var(--primary-dark)!important;opacity:1!important}
.hamburger{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;border-radius:8px}
.hamburger span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px;position:relative;transition:background .3s}
.hamburger span::before,.hamburger span::after{content:'';position:absolute;width:20px;height:2px;background:var(--text);border-radius:2px;left:0;transition:transform .3s}
.hamburger span::before{top:-6px}
.hamburger span::after{top:6px}
.hamburger.active span{background:transparent}
.hamburger.active span::before{transform:translateY(6px) rotate(45deg)}
.hamburger.active span::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:var(--header-h);left:0;right:0;bottom:0;background:var(--bg-white);z-index:999;padding:24px;overflow-y:auto}
.mobile-menu.active{display:block}
.mobile-menu a{display:block;padding:16px 0;color:var(--text);font-size:1rem;font-weight:500;border-bottom:1px solid var(--border)}
.mobile-menu .mobile-cta{margin-top:24px}
.mobile-menu .mobile-cta a{border-bottom:none;text-align:center;border-radius:var(--radius-pill);padding:14px;font-weight:600;background:var(--green);color:#fff}

/* Footer */
.footer{background:var(--dark);color:rgba(255,255,255,.7);padding:56px 24px 32px}
.footer-inner{max-width:var(--max-w);margin:0 auto}
.footer-top{display:flex;justify-content:space-between;gap:40px;margin-bottom:40px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand{flex:0 0 280px}
.footer-brand .logo{color:#fff;font-size:1.2rem;margin-bottom:12px}
.footer-brand p{font-size:.8rem;line-height:1.8}
.footer-nav{display:flex;gap:48px;flex:1}
.footer-nav-col h4{color:#fff;font-size:.85rem;font-weight:600;margin-bottom:12px}
.footer-nav-col a{display:block;color:rgba(255,255,255,.6);font-size:.8rem;padding:4px 0;transition:color .2s}
.footer-nav-col a:hover{color:#fff;opacity:1}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.footer-links{display:flex;gap:20px;flex-wrap:wrap}
.footer-links a{color:rgba(255,255,255,.5);font-size:.75rem}
.footer-links a:hover{color:#fff;opacity:1}
.copyright{font-size:.75rem;color:rgba(255,255,255,.4)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 36px;border-radius:var(--radius-pill);font-size:1rem;font-weight:600;border:none;cursor:pointer;transition:all .2s;text-align:center;line-height:1.4}
.btn:hover{opacity:1;transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-primary{background:var(--dark);color:#fff}
.btn-primary:hover{background:var(--dark-hover)}
.btn-blue{background:var(--primary);color:#fff}
.btn-blue:hover{background:var(--primary-dark)}
.btn-line{background:var(--green);color:#fff}
.btn-line:hover{background:var(--green-dark)}
.btn-outline{background:var(--bg-white);color:var(--dark);border:2px solid var(--border)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-white{background:#fff;color:var(--primary);font-weight:700}
.btn-white:hover{background:#f0f7fd}
.btn-sm{padding:12px 28px;font-size:.9rem}
.btn-lg{padding:18px 42px;font-size:1.05rem}
.btn-icon svg{width:20px;height:20px;flex-shrink:0}

/* Section common */
.section{padding:80px 24px}
.section-inner{max-width:var(--max-w);margin:0 auto}
.section-label{display:inline-block;font-size:.8rem;font-weight:700;color:var(--primary);letter-spacing:.08em;margin-bottom:12px}
.section-title{font-size:1.85rem;font-weight:800;line-height:1.4;margin-bottom:16px;letter-spacing:-.02em}
.section-title span{color:var(--primary)}
.section-sub{color:var(--text-sub);font-size:1rem;margin-bottom:48px;line-height:1.9}
.section-center{text-align:center}
.bg-light{background:var(--bg-light)}
.bg-blue{background:var(--bg-blue)}

/* Page Hero (subpage) */
.page-hero{background:linear-gradient(180deg,#e3f0fb 0%,#f0f7fd 100%);padding:48px 24px;text-align:center}
.page-hero h1{font-size:2rem;font-weight:800;margin-bottom:8px}
.page-hero p{color:var(--text-sub);font-size:.95rem}
.breadcrumb{max-width:var(--max-w);margin:0 auto;padding:16px 24px;font-size:.8rem;color:var(--text-light)}
.breadcrumb a{color:var(--text-light)}
.breadcrumb a:hover{color:var(--primary)}

/* CTA Banner */
.cta-banner{background:linear-gradient(135deg,#0693e3 0%,#0574b8 100%);padding:64px 24px;text-align:center;color:#fff}
.cta-banner h2{font-size:1.75rem;font-weight:800;margin-bottom:12px}
.cta-banner p{font-size:.95rem;opacity:.9;margin-bottom:32px}
.cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* Cards */
.card{background:var(--bg-white);border-radius:var(--radius-lg);padding:36px 28px;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}

/* Note box */
.note-box{background:var(--bg-light);border-radius:var(--radius-md);padding:20px 24px;margin-top:24px}
.note-box p{font-size:.8rem;color:var(--text-light);line-height:1.8;margin:0}

/* LINE icon SVG path */
.line-svg-path{d:path("M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.627-.63h2.386c.349 0 .63.285.63.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.627-.63.349 0 .631.285.631.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314")}

/* Responsive */
@media(max-width:900px){
  .footer-top{flex-direction:column}
  .footer-brand{flex:none}
  .footer-nav{flex-wrap:wrap;gap:32px 24px}
}
@media(max-width:768px){
  :root{--header-h:60px}
  .nav{display:none}
  .hamburger{display:flex}
  .section{padding:56px 20px}
  .section-title{font-size:1.4rem}
  .page-hero{padding:36px 20px}
  .page-hero h1{font-size:1.5rem}
  .cta-banner{padding:48px 20px}
  .cta-banner h2{font-size:1.35rem}
}
@media(max-width:480px){
  .btn{width:100%}
  .cta-buttons{flex-direction:column;align-items:center}
  .cta-buttons .btn{max-width:300px}
  .footer-nav{flex-direction:column;gap:24px}
}
