  :root{
    --navy:#1B3A6B;
    --navy-deep:#12294f;
    --blue:#2563A6;
    --orange:#D97B2A;
    --orange-deep:#bd681f;
    --pale-blue:#E8F1FA;
    --light-grey:#F4F8FC;
    --text:#222222;
    --subtext:#555555;
    --white:#FFFFFF;
    --line:#DCE6F0;
    --green:#2E8B57;
    --green-bg:#EAF6EE;
    --amber-bg:#FBF1E6;
    --grey-bg:#F1F2F4;
    --grey-text:#6B7076;
    --radius:14px;
    --maxw:1200px;
    --header-h:84px;
    --shadow:0 12px 30px -14px rgba(27,58,107,0.28);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *{animation:none !important; transition:none !important;} }
  body{
    margin:0;
    background:var(--white);
    color:var(--text);
    font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
    font-size:18px;
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  .num{font-family:"Inter","Noto Sans JP",sans-serif; font-variant-numeric:tabular-nums;}
  h1,h2,h3{font-family:"Noto Sans JP",sans-serif; font-weight:900; text-wrap:balance; margin:0; color:var(--navy);}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
  section{padding:88px 0;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:18px; font-weight:700; letter-spacing:.06em;
    color:var(--blue); text-transform:uppercase; margin-bottom:14px;
  }
  .eyebrow::before{content:""; width:18px; height:2px; background:var(--orange); display:inline-block; flex:none;}
  .h2{font-size:clamp(26px,3.4vw,36px); line-height:1.4;}
  .lead{color:var(--subtext); font-size:18px; max-width:640px; margin-top:14px;}
  .center{text-align:center; margin-left:auto; margin-right:auto;}

  /* ---- draft banner ---- */
  .draft-banner{
    background:var(--navy-deep); color:#cfe0f5; text-align:center;
    font-size:18px; padding:12px 16px; letter-spacing:.01em; line-height:1.6;
  }
  .draft-banner b{color:#ffd9ad;}

  /* ---- header ---- */
  header{
    position:sticky; top:0; z-index:50;
    height:var(--header-h); background:rgba(255,255,255,0.94); backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  header .wrap{height:var(--header-h); display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .logo{display:flex; align-items:center; flex:none;}
  .logo img{height:48px; width:auto; display:block;}
  nav.primary-nav{display:flex; align-items:center; gap:26px;}
  nav.primary-nav a{font-size:18px; font-weight:500; color:var(--text); white-space:nowrap;}
  nav.primary-nav a:hover{color:var(--blue);}
  .header-cta{display:flex; align-items:center; gap:12px; flex:none;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-weight:700; font-size:18px; border-radius:12px; cursor:pointer;
    border:none; white-space:nowrap; transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn-main{ background:#4CB050; color:#fff; padding:16px 60px; box-shadow:var(--shadow);}
  .btn-main:hover{ background:rgb(20, 133, 67); transform:translateY(-1px);}
  .btn-outline{background:#fff; color:var(--blue); border:1.5px solid var(--blue); padding:14px 30px;}
  .btn-outline:hover{background:var(--blue); color:#fff;}
  .btn-sm{padding:11px 20px; font-size:18px; border-radius:10px;}
  .textlink{font-size:18px; font-weight:700; color:var(--blue); border-bottom:1px solid var(--blue); padding-bottom:2px;}
  .hamburger{display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:8px; background:#fff; align-items:center; justify-content:center; flex:none;}
  .hamburger span{display:block; width:18px; height:2px; background:var(--navy); position:relative;}
  .hamburger span::before,.hamburger span::after{content:""; position:absolute; left:0; width:18px; height:2px; background:var(--navy);}
  .hamburger span::before{top:-6px;} .hamburger span::after{top:6px;}
  .mobile-nav{display:none; position:fixed; top:var(--header-h); left:0; right:0; bottom:0; background:#fff; z-index:49; padding:28px 24px; overflow-y:auto;}
  .mobile-nav.open{display:block;}
  .mobile-nav a{display:block; padding:15px 0; border-bottom:1px solid var(--line); font-weight:700; font-size:18px;}
  .mobile-nav .btn-main{width:100%; margin-top:20px;}

  /* ---- image placeholder ---- */
  .placeholder{
    position:relative;
    border-radius:var(--radius);
    /* border:2px dashed rgba(37,99,166,0.38);
    background:repeating-linear-gradient(135deg, rgba(37,99,166,0.06) 0 14px, rgba(37,99,166,0.02) 14px 28px), var(--pale-blue); */
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:10px; text-align:center; padding:34px 28px 28px; min-height:260px;
    color:var(--blue);
  }
  .placeholder .tag{
    position:absolute; top:12px; left:12px; background:var(--navy); color:#fff;
    font-size:18px; font-weight:700; letter-spacing:.02em; padding:6px 14px; border-radius:100px;
  }
  .placeholder .cap{font-size:18px; font-weight:700; color:var(--blue);}
  .placeholder .sub{font-size:18px; color:#5b7fa8; font-weight:500;}
  .placeholder svg{width:46px; height:46px; opacity:.65;}

  /* ---- FV ---- */
  .sec-fv{
    padding-top:56px; padding-bottom:56px;
    min-height:calc(100vh - var(--header-h));
    display:flex; align-items:center;
    background:linear-gradient(180deg,#fff 0%, var(--pale-blue) 100%);
    position:relative; overflow:hidden;
  }
  .sec-fv::before{
    content:""; position:absolute; top:-160px; right:-160px; width:520px; height:520px;
    border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(37,99,166,0.16), rgba(37,99,166,0) 70%);
  }
  .fv-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; position:relative; z-index:1;}
  .fv-badge{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:100px; padding:9px 18px; font-size:18px; font-weight:700; color:var(--navy); box-shadow:0 6px 16px -10px rgba(27,58,107,.4); margin-bottom:22px;}
  .fv-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--orange); flex:none;}
  .fv h1{font-size:clamp(30px,4.6vw,46px); line-height:1.42; letter-spacing:-0.01em;}
  .fv h1 span{color:var(--orange);}
  .fv .lead{font-size:18px; max-width:560px;}
  .fv-ctas{display:flex; align-items:center; gap:26px; margin-top:34px; flex-wrap:wrap;}
  .fv-points{display:flex; gap:22px; margin-top:40px; flex-wrap:wrap;}
  .fv-point{display:flex; align-items:center; gap:8px; font-size:18px; font-weight:700; color:var(--navy);}
  .fv-point svg{width:20px;height:20px; flex:none;}

  /* ---- trouble ---- */
  .sec-trouble{background:var(--light-grey);}
  .cards-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px;}
  .trouble-card{
    background:#fff; border-radius:var(--radius); padding:32px 26px 30px;
    border:1px solid var(--line); border-top:4px solid #E7A9A9;
  }
  .trouble-card .icon{
    width:48px; height:48px; border-radius:12px; background:#FBEAEA; color:#C25858;
    display:flex; align-items:center; justify-content:center; margin-bottom:18px;
  }
  .trouble-card h3{font-size:20px; color:var(--text); font-weight:700; margin-bottom:10px;}
  .trouble-card p{font-size:18px; color:var(--subtext); margin:0;}

  .flip-arrow{display:flex; align-items:center; justify-content:center; gap:10px; margin-top:40px; color:var(--blue); font-weight:700; font-size:18px; text-align:center;}
  .flip-arrow svg{width:20px;height:20px; flex:none;}

  /* ---- target ---- */
  .target-band{
    display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:34px 0 46px;
  }
  .target-band span{background:var(--pale-blue); color:var(--navy); font-size:18px; font-weight:700; padding:10px 18px; border-radius:100px;}
  .target-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .target-card{border-radius:var(--radius); padding:30px 26px; border:1.5px solid var(--line); position:relative;}
  .target-card .mark{
    width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-weight:900; font-size:20px; margin-bottom:16px; font-family:"Inter",sans-serif;
  }
  .target-card.best{background:var(--green-bg); border-color:#BFE3CC;}
  .target-card.best .mark{background:var(--green); color:#fff;}
  .target-card.ok{background:var(--amber-bg); border-color:#EBD2AE;}
  .target-card.ok .mark{background:var(--orange); color:#fff;}
  .target-card.no{background:var(--grey-bg); border-color:#DDDFE2;}
  .target-card.no .mark{background:var(--grey-text); color:#fff;}
  .target-card .label{font-size:18px; font-weight:700; letter-spacing:.02em; margin-bottom:8px; display:block;}
  .target-card.best .label{color:var(--green);}
  .target-card.ok .label{color:var(--orange-deep);}
  .target-card.no .label{color:var(--grey-text);}
  .target-card p{margin:0; font-size:18px; color:var(--text); line-height:1.75;}
  .target-card .note{font-size:18px; color:var(--subtext); margin-top:8px;}

  /* ---- reason ---- */
  .concept-band{
    background:var(--navy); color:#fff; border-radius:20px; padding:40px 44px;
    text-align:center; font-size:clamp(18px,2vw,21px); font-weight:700; line-height:1.85;
    margin:36px 0 46px;
  }
  .concept-band b{color:#ffcf9e;}
  .reason-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .reason-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:32px 26px; box-shadow:var(--shadow);}
  .reason-card .no{font-size:18px; font-weight:800; color:var(--orange); letter-spacing:.04em; margin-bottom:14px; display:block;}
  .reason-card h3{font-size:20px; color:var(--navy); margin-bottom:10px;}
  .reason-card p{margin:0; font-size:18px; color:var(--subtext);}

  /* ---- flow ---- */
  .sec-flow{background:var(--light-grey);}
  .flow-row{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:44px; align-items:stretch;}
  .flow-step{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 20px; text-align:center; position:relative;}
  .flow-step .step-no{
    width:38px;height:38px;border-radius:50%; background:var(--pale-blue); color:var(--blue);
    display:flex; align-items:center; justify-content:center; font-family:"Inter",sans-serif; font-weight:800; font-size:18px;
    margin:0 auto 14px;
  }
  .flow-step h4{font-size:18px; color:var(--navy); font-weight:700; margin:0; line-height:1.6;}
  .flow-row .arrow{display:none;}
  @media(min-width:769px){
    .flow-row{grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;}
    .flow-row .arrow{display:flex; align-items:center; justify-content:center; color:var(--blue);}
    .flow-row .arrow svg{width:22px;height:22px;}
  }
  .flow-note{
    background:var(--amber-bg); border:1px solid #EBD2AE; border-radius:12px; padding:16px 22px;
    margin-top:28px; text-align:center; font-size:18px; font-weight:700; color:var(--orange-deep);
  }

  /* ---- result ---- */
  .result-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
  .result-points{list-style:none; margin:22px 0 0; padding:0; display:flex; flex-direction:column; gap:14px;}
  .result-points li{display:flex; gap:12px; font-size:18px; align-items:flex-start;}
  .result-points svg{width:20px;height:20px; color:var(--green); flex:none; margin-top:2px;}
  .result-quote{
    margin-top:26px; padding:18px 20px; background:var(--pale-blue); border-radius:12px;
    font-size:18px; color:var(--navy); font-weight:700; line-height:1.8;
  }

  /* ---- schedule ---- */
  .schedule{margin-top:64px; display:flex; flex-direction:column; gap:14px;}
  .sched-row{display:grid; grid-template-columns:110px 1fr; gap:18px; align-items:center; padding-top:44px;}
  .sched-label{font-weight:800; color:var(--navy); font-size:18px;}
  .sched-track{position:relative; background:var(--light-grey); border-radius:100px; height:48px; overflow:visible;}
  .sched-bar{position:absolute; top:0; bottom:0; left:0; right:0; background:linear-gradient(90deg,var(--blue),var(--navy)); border-radius:100px; display:flex; align-items:center; padding-left:18px; color:#fff; font-size:18px; font-weight:700; white-space:nowrap; overflow:hidden;}
  .sched-badge{
    position:absolute; top:-40px; left:16px; z-index:2; background:var(--orange); color:#fff; font-size:18px; font-weight:800;
    padding:6px 14px; border-radius:100px; box-shadow:0 4px 10px -4px rgba(0,0,0,.45); border:2px solid #fff; white-space:nowrap;
  }

  /* ---- mid cta ---- */
  .mid-cta{
    background:linear-gradient(120deg,var(--navy),var(--blue));
    color:#fff; text-align:center; padding:64px 24px; border-radius:0;
  }
  .mid-cta h2{color:#fff; font-size:clamp(22px,3vw,30px);}
  .mid-cta p{color:#dbe8f8; margin-top:10px; font-size:18px;}
  .mid-cta .btn-main{margin-top:26px; background:#4CB050; color:#fff;}
  .mid-cta .btn-main:hover{background:rgb(20, 133, 67);}

  /* ---- support ---- */
  .sec-support{background:var(--light-grey);}
  .support-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:44px;}
  .support-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; display:flex; gap:16px; align-items:flex-start;}
  .support-card .icon{width:44px; height:44px; border-radius:11px; background:var(--pale-blue); color:var(--blue); display:flex; align-items:center; justify-content:center; flex:none;}
  .support-card h4{margin:0 0 4px; font-size:20px; color:var(--navy); font-weight:700;}
  .support-card p{margin:0; font-size:18px; color:var(--subtext);}

  /* ---- faq ---- */
  .faq-list{margin-top:40px; display:flex; flex-direction:column; gap:12px;}
  details.faq-item{border:1px solid var(--line); border-radius:12px; padding:0; background:#fff; overflow:hidden;}
  details.faq-item summary{
    list-style:none; cursor:pointer; padding:20px 24px; display:flex; gap:14px; align-items:flex-start;
    font-weight:700; font-size:19px; color:var(--navy);
  }
  details.faq-item summary::-webkit-details-marker{display:none;}
  details.faq-item summary .q-mark{color:var(--orange); font-family:"Inter",sans-serif; font-weight:800; flex:none;}
  details.faq-item summary .chev{margin-left:auto; flex:none; transition:transform .2s ease; color:var(--blue);}
  details.faq-item[open] summary .chev{transform:rotate(180deg);}
  .faq-a{padding:0 24px 22px 54px; font-size:18px; color:var(--subtext); display:flex; gap:12px;}
  .faq-a .a-mark{color:var(--blue); font-weight:800; font-family:"Inter",sans-serif; flex:none;}

  /* ---- contact ---- */
  .contact-grid{display:grid; grid-template-columns:1.0fr; gap:48px; margin-top:44px; align-items:start;}
  .contact-form{background:#fff; border:1px solid var(--line); border-radius:20px; padding:40px; box-shadow:var(--shadow);}
  .f-group{margin-bottom:22px;}
  .f-group label{display:block; font-size:18px; font-weight:700; color:var(--navy); margin-bottom:8px;}
  .f-group label .req{color:var(--orange); margin-left:6px; font-size:18px;}
  .f-group label .opt{color:var(--grey-text); margin-left:6px; font-size:18px; font-weight:500;}
  .f-group input[type=text],.f-group input[type=email],.f-group input[type=tel],.f-group select,.f-group textarea{
    width:100%; border:1px solid var(--line); border-radius:10px; padding:13px 14px; font-size:18px;
    font-family:inherit; color:var(--text); background:var(--light-grey);
  }
  .f-group input:focus,.f-group select:focus,.f-group textarea:focus{outline:2px solid var(--blue); outline-offset:1px; background:#fff;}
  .f-group textarea{min-height:110px; resize:vertical;}
  .radio-row{display:flex; gap:20px; flex-wrap:wrap;}
  .radio-row label{display:flex; align-items:center; gap:8px; font-weight:500; font-size:18px; color:var(--text);}
  .check-row{display:flex; align-items:flex-start; gap:10px; font-size:18px; color:var(--subtext); margin-bottom:22px;}
  .check-row a{color:var(--blue); text-decoration:underline;}
  .contact-form .btn-main{width:100%;}
  .form-note{font-size:18px; color:var(--grey-text); text-align:center; margin-top:12px;}
  .formrun-embed{min-height:200px; display:flex; align-items:center; justify-content:center;}
  .recap{display:flex; flex-direction:column; gap:18px;}
  .recap-box{background:var(--pale-blue); border-radius:16px; padding:26px;}
  .recap-box h4{margin:0 0 14px; color:var(--navy); font-size:20px;}
  .recap-box ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px;}
  .recap-box li{display:flex; gap:10px; font-size:18px; color:var(--text); align-items:flex-start;}
  .recap-box svg{width:18px;height:18px; color:var(--blue); flex:none; margin-top:2px;}
  #thanks{display:none; background:var(--green-bg); border:1px solid #BFE3CC; color:#276b46; border-radius:12px; padding:18px 20px; font-size:18px; font-weight:700; text-align:center;}

  /* ---- footer ---- */
  footer{background:var(--navy-deep); color:#c7d5e8; padding:54px 0 90px;}
  .foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px;}
  .foot-brand{font-weight:700; color:#fff; font-size:20px;}
  .foot-links{display:flex; gap:26px; flex-wrap:wrap;}
  .foot-links a{font-size:18px; color:#c7d5e8;}
  .foot-links a:hover{color:#fff;}
  .foot-copy{margin-top:34px; font-size:18px; color:#7f93b0;}

  /* ---- mobile sticky cta ---- */
  .sticky-cta{display:none; position:fixed; bottom:0; left:0; right:0; z-index:60; background:#fff; border-top:1px solid var(--line); padding:10px 16px; box-shadow:0 -10px 24px -12px rgba(0,0,0,.15);}
  .sticky-cta .btn-main{width:100%;}

  /* ---------------- Responsive ---------------- */
  @media (max-width:1023px){
    .cards-3, .target-cards, .reason-cards{grid-template-columns:1fr 1fr;}
    .support-grid{grid-template-columns:1fr;}
    .result-grid{grid-template-columns:1fr; gap:34px;}
    .contact-grid{grid-template-columns:1fr; gap:34px;}
  }
  @media (max-width:1280px){
    nav.primary-nav{display:none;}
    .header-cta .btn-outline,
    .header-cta .btn-main{display:none;}
    .hamburger{display:flex;}
  }
  @media (max-width:900px){
    .fv-grid{grid-template-columns:1fr;}
    .fv .placeholder{order:-1;}
  }
  @media (max-width:480px){
    .logo img{height:36px;}
  }
  @media (max-width:767px){
    :root{--header-h:64px;}
    body{font-size:16px;}
    section{padding:60px 0;}
    .cards-3, .target-cards, .reason-cards, .flow-row{grid-template-columns:1fr;}
    body{padding-bottom:74px;}
    .sticky-cta{display:block;}
    .concept-band{padding:28px 22px;}
    .fv-ctas{flex-direction:column; align-items:flex-start; gap:16px;}

    .draft-banner{font-size:14px; padding:10px 14px;}
    .eyebrow{font-size:14px;}
    .lead, .fv .lead{font-size:16px;}
    .placeholder .tag{font-size:14px; padding:5px 12px;}
    .placeholder .cap{font-size:15px;}
    .placeholder .sub{font-size:14px;}
    .fv-badge{font-size:15px; padding:8px 14px;}
    .fv-point{font-size:15px;}
    .trouble-card h3{font-size:18px;}
    .trouble-card p{font-size:16px;}
    .flip-arrow{font-size:15px;}
    .target-band span{font-size:14px; padding:8px 14px;}
    .target-card .mark{font-size:18px; width:40px; height:40px;}
    .target-card .label{font-size:15px;}
    .target-card p{font-size:16px;}
    .target-card .note{font-size:14px;}
    .reason-card .no{font-size:15px;}
    .reason-card h3{font-size:18px;}
    .reason-card p{font-size:16px;}
    .flow-step h4{font-size:16px;}
    .flow-note{font-size:15px;}
    .result-points li{font-size:16px;}
    .result-quote{font-size:16px;}
    .mid-cta p{font-size:15px;}
    .support-card h4{font-size:17px;}
    .support-card p{font-size:15px;}
    details.faq-item summary{font-size:16px;}
    .faq-a{font-size:15px;}
    .f-group label,.f-group label .req,.f-group label .opt{font-size:15px;}
    .f-group input[type=text],.f-group input[type=email],.f-group input[type=tel],.f-group select,.f-group textarea{font-size:16px;}
    .radio-row label{font-size:15px;}
    .check-row{font-size:14px;}
    .form-note{font-size:14px;}
    .recap-box h4{font-size:17px;}
    .recap-box li{font-size:15px;}
    #thanks{font-size:15px;}
    .foot-brand{font-size:17px;}
    .foot-links a{font-size:15px;}
    .foot-copy{font-size:14px;}

    /* schedule: stack badge above a wrapping bar instead of overlaying */
    .schedule{margin-top:40px;}
    .sched-row{grid-template-columns:1fr; gap:8px; padding-top:0;}
    .sched-label{font-size:15px;}
    .sched-track{height:auto; background:none; display:flex; flex-direction:column; align-items:flex-start; gap:8px;}
    .sched-badge{position:static; top:auto; left:auto; font-size:14px; padding:5px 12px;}
    .sched-bar{position:static; width:100%; white-space:normal; padding:12px 16px; font-size:15px; line-height:1.5;}
  }
