/* =========================
   Base
========================= */
body { font-family: "Noto Sans JP", sans-serif; color:#222; background:#f8f8f8; margin:0; padding:0; }

/* =========================
   Section_001
========================= */
#section_001 { position:relative; }
.hero-desktop { display:none; position:relative; margin-top:84px; padding-top:48px; }
@media (min-width:1024px){ .hero-desktop { display:block; } }
.bg-grid { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:64px; position:relative; z-index:0; }
.bg-img { width:100%; height:auto; display:block; }
.hero-abs { position:absolute; inset-inline:0; top:50%; transform:translateY(-50%); width:100%; }
.container { width:100%; margin:0 auto; }
@media (min-width:1280px){ .container { max-width:66.6667%; } }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.hero-left { display:flex; flex-direction:column; gap:64px; }
.headline { font-weight:700; line-height:150%; margin:0; }
@media (min-width:1024px){ .headline { font-size:40px; } }
@media (min-width:1280px){ .headline { font-size:48px; } }
@media (min-width:1536px){ .headline { font-size:56px; } }
.cta { display:flex; align-items:center; justify-content:space-between; gap:24px; background:#000; color:#fff; border:1px solid #fff; border-radius:999px; max-width:400px; text-decoration:none; line-height:1; }
@media (min-width:1024px){ .cta { padding:16px 24px; } }
@media (min-width:1280px){ .cta { padding:20px 24px; } }
@media (min-width:1536px){ .cta { padding:24px 24px; } }
.cta-spacer { width:1px; height:1px; }
.cta-text { font-weight:700; line-height:1; color:#fff; }
@media (min-width:1024px){ .cta-text { font-size:16px; } }
@media (min-width:1280px){ .cta-text { font-size:18px; } }
@media (min-width:1536px){ .cta-text { font-size:20px; } }
.cta-icon { width:24px; height:24px; display:block; }
.hero-mobile { display:block; margin-top:64px; }
@media (min-width:1024px){ .hero-mobile { display:none; } }
.mobile-pad { padding:96px 24px; }
.stack { display:flex; flex-direction:column; gap:32px; }
.headline-m { text-align:center; font-weight:700; line-height:150%; margin:0; font-size:24px; }
@media (min-width:540px){ .headline-m { font-size:32px; } }
@media (min-width:820px){ .headline-m { font-size:48px; } }
.cta-m { width:100%; padding:16px; margin:0 auto; }
@media (min-width:540px){ .cta-m { padding:20px; } }
@media (min-width:820px){ .cta-m { padding:24px; } }
.cta-text-m { font-size:16px; }
@media (min-width:540px){ .cta-text-m { font-size:20px; } }
@media (min-width:820px){ .cta-text-m { font-size:24px; } }

/* =========================
   Section_002
========================= */
#section_002 { background:#F8F8F8; }
.partners-desktop { background:#fff; display:none; padding:96px 0; border-top-left-radius:96px; }
@media (min-width:1200px){ .partners-desktop { border-top-left-radius:112px; } }
@media (min-width:1536px){ .partners-desktop { border-top-left-radius:128px; } }
@media (min-width:1024px){ .partners-desktop { display:block; } }
.partners-desktop .stack { display:flex; flex-direction:column; gap:48px; }
.partners-desktop .row { display:flex; justify-content:center; gap:64px; }
@media (min-width:1200px){ .partners-desktop .row { gap:80px; } }
@media (min-width:1536px){ .partners-desktop .row { gap:96px; } }
.partners-desktop .logo { height:48px; width:auto; display:block; }
@media (min-width:1200px){ .partners-desktop .logo { height:56px; } }
@media (min-width:1536px){ .partners-desktop .logo { height:64px; } }
.partners-mobile { background:#fff; display:block; padding:96px 32px; border-top-left-radius:48px; }
@media (min-width:540px){ .partners-mobile { border-top-left-radius:64px; } }
@media (min-width:820px){ .partners-mobile { border-top-left-radius:80px; } }
@media (min-width:1024px){ .partners-mobile { display:none; } }
.partners-mobile .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media (min-width:540px){ .partners-mobile .grid { grid-template-columns:repeat(4,1fr); gap:40px; } }
@media (min-width:820px){ .partners-mobile .grid { gap:48px; } }
.partners-mobile .grid img { width:100%; height:auto; display:block; }

/* =========================
   Section_003
========================= */
#section_003 .s3-wrap { background:#222; padding:128px 24px; border-top-right-radius:48px; }
@media (min-width:540px){ #section_003 .s3-wrap { border-top-right-radius:64px; } }
@media (min-width:820px){ #section_003 .s3-wrap { border-top-right-radius:80px; } }
@media (min-width:1024px){ #section_003 .s3-wrap { border-top-right-radius:96px; } }
@media (min-width:1200px){ #section_003 .s3-wrap { border-top-right-radius:112px; } }
@media (min-width:1536px){ #section_003 .s3-wrap { border-top-right-radius:128px; } }
#section_003 .s3-container { width:100%; margin:0 auto; }
@media (min-width:1200px){ #section_003 .s3-container { max-width:66.6667%; } }
#section_003 .s3-stack { display:flex; flex-direction:column; gap:64px; }
#section_003 .s3-ttl { margin:0; color:#fff; font-weight:600; font-size:24px; text-align:center; }
@media (min-width:1200px){ #section_003 .s3-ttl { font-size:32px; } }
#section_003 .s3-grid { display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }
@media (min-width:820px){ #section_003 .s3-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1200px){ #section_003 .s3-grid { grid-template-columns:repeat(4,1fr); } }
#section_003 .card-wrap { position:relative; border-radius:4px; }
#section_003 .card-shadow { position:absolute; inset:0; transform:translate(8px,8px); border:2px solid #666; border-radius:4px; z-index:0; }
#section_003 .card { position:relative; display:flex; align-items:center; justify-content:center; background:#fff; border-radius:4px; padding:32px; z-index:1; text-align:center; }
#section_003 .card-sm { height:148px; }
#section_003 .card-lg { height:256px; flex-direction:column; gap:24px; }
#section_003 .card-icon { height:72px; width:auto; display:block; margin:0 auto; }
#section_003 .card-txt-md { margin:0; font-size:15px; line-height:1.7; color:#000; }
#section_003 .card-txt-sm { margin:0; font-size:14px; line-height:1.8; color:#000; }
#section_003 .fw700 { font-weight:700; }
#section_003 .s3-center { display:flex; justify-content:center; }
#section_003 .s3-arrow { height:24px; width:auto; display:block; }
#section_003 .s3-inline { display:flex; justify-content:center; align-items:center; gap:12px; }
#section_003 .s3-logo { height:60px; width:auto; display:block; }
#section_003 .s3-ttl-sub { color:#fff; font-weight:600; font-size:24px; text-align:center; }
@media (min-width:1200px){ #section_003 .s3-ttl-sub { font-size:32px; } }
#section_003 .s3-lead { margin:0; color:#fff; font-size:20px; text-align:center; }
#section_003 .s3-cta { max-width:400px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#222222; border:2px solid #fff; border-radius:999px; padding:24px; text-decoration:none; }
#section_003 .s3-cta-text { color:#fff; font-weight:700; font-size:20px; line-height:1; }
#section_003 .s3-cta-icon { width:24px; height:24px; display:block; }
#section_003 .s3-ghost { width:1px; height:1px; }
#section_003 .fade-up { opacity:0; transform:translateY(12px); }
#section_003 .fade-up.visible { animation:fadeup .5s ease forwards; }
@keyframes fadeup { 0% { opacity:0; transform:translateY(12px); } 100% { opacity:1; transform:translateY(0); } }

/* =========================
   Section_004
========================= */
#section_004{background:#222;}
#section_004 .s4-box{background:#fff;padding:96px 24px;border-top-left-radius:48px;}
@media (min-width:540px){#section_004 .s4-box{border-top-left-radius:64px;}}
@media (min-width:820px){#section_004 .s4-box{border-top-left-radius:80px;}}
@media (min-width:1024px){#section_004 .s4-box{border-top-left-radius:96px;}}
@media (min-width:1200px){#section_004 .s4-box{border-top-left-radius:112px;}}
@media (min-width:1536px){#section_004 .s4-box{border-top-left-radius:128px;}}
#section_004 .s4-container{width:100%;margin:0 auto;}
@media (min-width:1200px){#section_004 .s4-container{max-width:66.6667%;}}
#section_004 .s4-stack{display:flex;flex-direction:column;gap:128px;}
#section_004 .s4-head{display:flex;justify-content:center;align-items:center;gap:12px;}
#section_004 .s4-head-logo{height:60px;width:auto;display:block;}
#section_004 .s4-head-ttl{margin:0;font-weight:600;font-size:24px;text-align:center;}
@media (min-width:1200px){#section_004 .s4-head-ttl{font-size:32px;}}
#section_004 .s4-item{position:relative;}
#section_004 .s4-inner{position:relative;z-index:10;display:grid;grid-template-columns:1fr;align-items:center;gap:48px;}
@media (min-width:540px){#section_004 .s4-inner{gap:64px;}}
@media (min-width:820px){#section_004 .s4-inner{gap:80px;}}
@media (min-width:1024px){#section_004 .s4-inner{grid-template-columns:1fr 1fr;gap:96px;}}
@media (min-width:1200px){#section_004 .s4-inner{gap:128px;}}
#section_004 .s4-inner.rev>.s4-img{order:2;}
#section_004 .s4-inner.rev>.s4-text{order:1;}
@media (max-width:1023.98px){#section_004 .s4-inner.rev>.s4-img,#section_004 .s4-inner.rev>.s4-text{order:initial;}}
#section_004 .s4-img img{width:100%;height:auto;display:block;}
#section_004 .s4-text{position:relative;display:flex;flex-direction:column;gap:32px;}
#section_004 .s4-num{position:absolute;top:-25px;font-size:96px;line-height:1;font-weight:700;color:#f5f5f5;z-index:-10;pointer-events:none;user-select:none;}
#section_004 .s4-num.left{left:0;}
#section_004 .s4-num.right{right:0;}
#section_004 .s4-ttl{margin:0;font-weight:700;font-size:24px;}
@media (min-width:540px){#section_004 .s4-ttl{font-size:26px;}}
@media (min-width:820px){#section_004 .s4-ttl{font-size:28px;}}
@media (min-width:1024px){#section_004 .s4-ttl{font-size:30px;}}
@media (min-width:1200px){#section_004 .s4-ttl{font-size:32px;}}
#section_004 .fade-up{opacity:0;transform:translateY(12px);}
#section_004 .fade-up.visible{animation:fadeup .5s ease forwards;}
@keyframes fadeup{0%{opacity:0;transform:translateY(12px);}100%{opacity:1;transform:translateY(0);}}

/* =========================
   Section_005
========================= */
#section_005{background:#fff;}
#section_005 .s5-box{background:#222;padding:96px 24px;border-top-right-radius:48px;}
@media (min-width:540px){#section_005 .s5-box{border-top-right-radius:64px;}}
@media (min-width:820px){#section_005 .s5-box{border-top-right-radius:80px;}}
@media (min-width:1024px){#section_005 .s5-box{border-top-right-radius:96px;}}
@media (min-width:1200px){#section_005 .s5-box{border-top-right-radius:112px;}}
@media (min-width:1536px){#section_005 .s5-box{border-top-right-radius:128px;}}
#section_005 .s5-container{width:100%;margin:0 auto;}
@media (min-width:1200px){#section_005 .s5-container{max-width:66.6667%;}}
#section_005 .s5-stack{display:flex;flex-direction:column;gap:64px;}
#section_005 .s5-head{display:flex;justify-content:center;align-items:center;gap:12px;}
#section_005 .s5-head-logo{height:60px;width:auto;display:block;}
#section_005 .s5-head-ttl{margin:0;font-weight:600;font-size:24px;color:#fff;text-align:center;}
@media (min-width:1200px){#section_005 .s5-head-ttl{font-size:32px;}}
#section_005 .s5-grid{display:grid;grid-template-columns:1fr;align-items:center;gap:24px;}
@media (min-width:1024px){#section_005 .s5-grid{grid-template-columns:repeat(3,1fr);}}
#section_005 .s5-cta{display:flex;align-items:center;justify-content:center;gap:16px;border-radius:999px;border:2px solid #fff;padding:24px;text-decoration:none;line-height:1;font-weight:600;font-size:20px;transition:opacity .2s;}
#section_005 .s5-cta--light{background:#fff;border-color:#000;color:#222;}
#section_005 .s5-cta--dark{background:transparent;border-color:#fff;color:#fff;}
#section_005 .s5-cta:hover{opacity:.85;}

/* =========================
   Footer
========================= */
.footer{padding:48px 0;background:transparent;}
.footer-text{text-align:center;line-height:1;color:#000;font-size:16px;}