*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --red:#EA2F23;--sky:#59BEF0;--green:#205E49;
  --cta:#EA2F23;--cta-hover:#C1121F;
  --grad:linear-gradient(135deg,#205E49,#4AA3CC);
  --grad-vivid:linear-gradient(135deg,#1a5240,#3590c4);
  --txt:#1A2332;--txt2:#5A6B7D;--bg:#fff;--surface:#EFF4F9;--border:#DCE4ED;
  --line:#06C755;
  --dark:#0B1A2E;
}
body{font-family:'Noto Sans JP',sans-serif;color:var(--txt);background:var(--bg);line-height:1.8;font-size:16px;}
img{max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
html{scroll-behavior:smooth;}

/* HEADER */
.header{position:sticky;top:0;z-index:1000;background:var(--grad);height:auto;display:flex;align-items:center;justify-content:space-between;padding:8px 20px;box-shadow:0 2px 16px rgba(11,26,46,.15);}
.header-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;}
.header-logo img{height:35px;}
.header-logo-text{display:flex;flex-direction:column;}
.header-logo-main{font-size:1.4rem;font-weight:900;line-height:1.2;}
.header-logo-sub{font-size:.6rem;font-weight:700;opacity:.9;}
.header-nav{display:flex;align-items:center;gap:24px;}
.header-nav a{text-decoration:none;color:#fff;font-size:.85rem;font-weight:700;transition:color .2s;}
.header-nav a:hover{color:#ccc;}
.btn-cta-header{background:#fff;color:var(--red)!important;border-radius:8px;padding:10px 20px;font-size:13px;font-weight:700;transition:background .3s,transform .2s;white-space:nowrap;}
.btn-cta-header:hover{background:#f0f0f0;transform:translateY(-1px);}
.hamburger{display:none;font-size:24px;cursor:pointer;background:none;border:none;color:#fff;}

/* PAGE HERO */
.page-hero{background:var(--grad-vivid);padding:80px 20px 48px;text-align:center;color:#fff;position:relative;overflow:hidden;}
.page-hero .breadcrumb a{color:#fff;text-decoration:underline;opacity:.8;}

/* SECTION */
.section{padding:64px 20px;}
.container{max-width:1100px;margin:0 auto;}
.grad-line{width:50px;height:3px;margin:0 auto 16px;background:var(--grad);border-radius:2px;}





/* FOOTER (compact) */
.footer{background:var(--dark);color:#fff;padding:20px 40px 40px;}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid #334155;}
.footer-inner a{color:#94A3B8;text-decoration:none;font-size:12px;transition:color .2s;}
.footer-inner a:hover{color:#fff;}
.footer-brand{font-size:12px;color:#94A3B8;font-weight:700;}
.footer-sep{color:#334155;font-size:10px;user-select:none;}
.footer-bottom{padding-top:14px;text-align:center;font-size:11px;color:#64748B;}

/* FOOTER (full - 3 column) */
.footer--full .footer-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;align-items:start;justify-content:start;border-bottom:1px solid #334155;padding-bottom:32px;}
.footer--full .footer-inner a{display:block;padding:3px 0;}
.footer--full .footer-inner h4{color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;margin-bottom:10px;text-transform:uppercase;}
.footer-logo{margin-bottom:16px;}
.footer-logo img{height:33px;}
.footer-desc{font-size:12px;color:#94A3B8;line-height:1.8;}


/* MOBILE MENU */
.mobile-menu{position:fixed;inset:0;z-index:9998;background:var(--dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;opacity:0;pointer-events:none;transition:opacity .3s ease;}
.mobile-menu.open{opacity:1;pointer-events:auto;}
.mobile-menu a{color:#fff;font-size:18px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;transition:background .2s;}
.mobile-menu a:hover{background:rgba(255,255,255,.1);}
.mobile-menu .mm-cta{background:var(--cta);border-radius:8px;padding:14px 36px;font-size:16px;margin-top:12px;}
.mobile-menu .mm-line{background:var(--line);border-radius:8px;padding:12px 28px;font-size:14px;}
.mobile-menu .mm-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#fff;font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;transition:background .2s;}
.mobile-menu .mm-close:hover{background:rgba(255,255,255,.1);}
.hamburger.is-open{font-size:28px;}

/* FADE IN */
.fade-in-section{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease-out,transform 0.6s ease-out;will-change:opacity,transform;}
.fade-in-section.is-visible{opacity:1;transform:none;}

/* DROPDOWN */
.nav-dropdown{position:relative;display:flex;align-items:center;}
.nav-dropdown-trigger{display:flex;align-items:center;gap:4px;cursor:pointer;}
.nav-arrow{font-size:10px;transition:transform .2s;}
.nav-dropdown-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);min-width:180px;background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:8px 0;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100;}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.nav-dropdown:hover .nav-arrow{transform:rotate(180deg);}
.nav-dropdown-menu a{display:block;padding:10px 20px;font-size:13px;color:var(--txt)!important;font-weight:500;white-space:nowrap;transition:background .2s;}
.nav-dropdown-menu a:hover{background:var(--surface);color:var(--green)!important;}

@media(max-width:768px){
  .header{padding:0 16px;}
  .header-nav{display:none;}
  .hamburger{display:block;}

  .page-hero{padding:56px 16px 32px;}

  .section{padding:40px 16px;}





  .footer{padding:16px 16px 80px;}
  .footer-inner{gap:12px;padding-bottom:10px;}
  .footer-brand{font-size:11px;}
  .footer-sep{display:none;}
  .footer--full .footer-inner{grid-template-columns:1fr;gap:24px;padding-bottom:20px;}
  .footer-desc{font-size:11px;}

}
