
    :root {
      --navy: #08245f;
      --blue: #0d5bd7;
      --purple: #713bd1;
      --ink: #17233d;
      --muted: #647089;
      --line: #dce5f4;
    }

    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      color: var(--ink);
      background: #f6f8fc;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    }

    .contact-hero {
      position: relative;
      overflow: hidden;
      padding: 26px 0 94px;
      color: #fff;
      background:
        radial-gradient(circle at 85% 12%, rgba(70, 205, 255, .32), transparent 22rem),
        radial-gradient(circle at 12% 88%, rgba(151, 92, 255, .25), transparent 25rem),
        linear-gradient(135deg, #05183e 0%, #0b45ad 58%, #6b32c9 100%);
    }

    .contact-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      opacity: .22;
      background-image:
        linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
      background-size: 44px 44px;
      mask-image: linear-gradient(to bottom, rgba(0,0,0,.75), transparent);
    }

    .contact-hero .container { position: relative; z-index: 1; }

    .top-nav {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 72px;
    }

    .brand {
      color: #fff;
      font-size: 1.35rem;
      font-weight: 800;
      letter-spacing: -.02em;
    }

    .brand:hover { color: #fff; text-decoration: none; }

    .top-link {
      padding: .55rem 1rem;
      border: 1px solid rgba(255,255,255,.48);
      border-radius: .55rem;
      color: #fff;
      font-weight: 700;
    }

    .top-link:hover { color: var(--navy); background: #fff; text-decoration: none; }

    .hero-kicker {
      display: inline-block;
      padding: .45rem .9rem;
      border: 1px solid rgba(255,255,255,.35);
      border-radius: 999px;
      background: rgba(255,255,255,.10);
      font-size: .85rem;
      font-weight: 700;
      letter-spacing: .08em;
    }

    .contact-hero h1 {
      margin: 1.15rem 0 0;
      font-size: clamp(2.45rem, 6vw, 4.75rem);
      font-weight: 800;
      line-height: 1.5;
      letter-spacing: -.04em;
      text-shadow: 0 12px 34px rgba(0,0,0,.22);
    }

    .contact-hero h1 span { color: #82ddff; }

    .hero-lead {
      max-width: 720px;
      margin: 1.35rem 0 0;
      color: rgba(255,255,255,.9);
      font-size: 1.12rem;
      line-height: 1.9;
    }

    .form-section { padding: 0 0 80px; }

    .form-card {
      position: relative;
      z-index: 2;
      max-width: 780px;
      margin: -52px auto 0;
      padding: 2.5rem;
      border: 1px solid rgba(220, 229, 244, .8);
      border-radius: 1.2rem;
      background: #fff;
      box-shadow: 0 20px 55px rgba(25, 51, 94, .14);
    }

    .form-heading { margin-bottom: 2rem; }

    .form-heading h2 {
      margin-bottom: .65rem;
      color: var(--navy);
      font-size: 1.8rem;
      font-weight: 800;
    }

    .form-heading p { margin: 0; color: var(--muted); line-height: 1.8; }
    .form-group { margin-bottom: 1.45rem; }
    label { font-weight: 700; }

    .required-label {
      display: inline-block;
      margin-left: .4rem;
      padding: .12rem .42rem;
      border-radius: .25rem;
      background: #e52948;
      color: #fff;
      font-size: .72rem;
      vertical-align: .12rem;
    }

    .form-control {
      height: auto;
      padding: .85rem 1rem;
      border-color: var(--line);
      border-radius: .6rem;
      color: var(--ink);
      font-size: 1rem;
    }

    textarea.form-control { min-height: 190px; resize: vertical; }

    .form-control:focus {
      border-color: var(--blue);
      box-shadow: 0 0 0 .2rem rgba(13, 91, 215, .13);
    }

    .privacy-note { color: var(--muted); font-size: .88rem; }

    .btn-submit {
      margin-top: .5rem;
      padding: .9rem 1.5rem;
      border: 0;
      border-radius: .65rem;
      background: linear-gradient(90deg, #0d5bd7, #713bd1);
      color: #fff;
      font-weight: 800;
      box-shadow: 0 12px 28px rgba(53, 70, 190, .25);
    }

    .btn-submit:hover, .btn-submit:focus { color: #fff; transform: translateY(-1px); }
    .btn-submit:disabled { opacity: .7; transform: none; }
    .form-scroll-anchor { scroll-margin-top: 1.5rem; }

    .success-message { padding: 1.5rem 0; text-align: center; }

    .success-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 64px;
      height: 64px;
      margin: 0 auto 1.25rem;
      border-radius: 50%;
      background: #e7f7ed;
      color: #14823c;
      font-size: 2rem;
      font-weight: 800;
    }

    .success-message h2 { color: var(--navy); font-size: 1.8rem; font-weight: 800; }
    .success-message > p { margin: 1rem 0 1.5rem; color: var(--muted); line-height: 1.8; }

    .submitted-detail {
      padding: 1.25rem;
      border-radius: .75rem;
      background: #f6f8fc;
      color: var(--muted);
      line-height: 1.8;
    }

    .submitted-message { white-space: pre-wrap; overflow-wrap: anywhere; }

    .contact-note {
      max-width: 780px;
      margin: 3rem auto 0;
      padding: 1.5rem;
      border-left: 5px solid var(--blue);
      border-radius: .75rem;
      background: #fff;
      box-shadow: 0 10px 26px rgba(25, 51, 94, .08);
    }

    .contact-note h2 { color: var(--navy); font-size: 1.15rem; font-weight: 800; }
    .contact-note p { margin: 0; color: var(--muted); line-height: 1.8; }

    .footer {
      padding: 1.35rem 0;
      background: #06173d;
      color: rgba(255,255,255,.76);
      font-size: .92rem;
    }

    @media (max-width: 767.98px) {
      .contact-hero { padding-bottom: 76px; }
      .top-nav { margin-bottom: 48px; }
      .form-card { margin-top: -38px; padding: 1.5rem; }
    }
  

    :root {
      --navy: #08245f;
      --blue: #0d5bd7;
      --cyan: #28b8ff;
      --purple: #713bd1;
      --ink: #17233d;
      --muted: #647089;
      --line: #dce5f4;
    }

    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      color: var(--ink);
      background: #f6f8fc;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    }

    .download-hero {
      position: relative;
      overflow: hidden;
      padding: 26px 0 94px;
      color: #fff;
      background:
        radial-gradient(circle at 85% 12%, rgba(70, 205, 255, .32), transparent 22rem),
        radial-gradient(circle at 12% 88%, rgba(151, 92, 255, .25), transparent 25rem),
        linear-gradient(135deg, #05183e 0%, #0b45ad 58%, #6b32c9 100%);
    }

    .download-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      opacity: .22;
      background-image:
        linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
      background-size: 44px 44px;
      mask-image: linear-gradient(to bottom, rgba(0,0,0,.75), transparent);
    }

    .download-hero .container { position: relative; z-index: 1; }

    .top-nav {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 72px;
    }

    .brand {
      color: #fff;
      font-size: 1.35rem;
      font-weight: 800;
      letter-spacing: -.02em;
    }

    .brand:hover { color: #fff; text-decoration: none; }

    .top-link {
      padding: .55rem 1rem;
      border: 1px solid rgba(255,255,255,.48);
      border-radius: .55rem;
      color: #fff;
      font-weight: 700;
    }

    .top-link:hover { color: var(--navy); background: #fff; text-decoration: none; }

    .hero-kicker {
      display: inline-block;
      padding: .45rem .9rem;
      border: 1px solid rgba(255,255,255,.35);
      border-radius: 999px;
      background: rgba(255,255,255,.10);
      font-size: .85rem;
      font-weight: 700;
      letter-spacing: .08em;
    }

    .download-hero h1 {
      margin: 1.15rem 0 0;
      font-size: clamp(2.45rem, 6vw, 4.75rem);
      font-weight: 800;
      line-height: 1.5;
      letter-spacing: -.04em;
      text-shadow: 0 12px 34px rgba(0,0,0,.22);
    }

    .download-hero h1 span { color: #82ddff; }

    .hero-lead {
      max-width: 720px;
      margin: 1.35rem 0 0;
      color: rgba(255,255,255,.9);
      font-size: 1.12rem;
      line-height: 1.9;
    }

    .form-section { padding: 0 0 80px; }

    .form-card {
      position: relative;
      z-index: 2;
      max-width: 780px;
      margin: -52px auto 0;
      padding: 2.5rem;
      border: 1px solid rgba(220, 229, 244, .8);
      border-radius: 1.2rem;
      background: #fff;
      box-shadow: 0 20px 55px rgba(25, 51, 94, .14);
    }

    .form-heading { margin-bottom: 2rem; }

    .form-heading h2 {
      margin-bottom: .65rem;
      color: var(--navy);
      font-size: 1.8rem;
      font-weight: 800;
    }

    .form-heading p { margin: 0; color: var(--muted); line-height: 1.8; }

    .form-group { margin-bottom: 1.45rem; }

    label { font-weight: 700; }

    .required-label {
      display: inline-block;
      margin-left: .4rem;
      padding: .12rem .42rem;
      border-radius: .25rem;
      background: #e52948;
      color: #fff;
      font-size: .72rem;
      vertical-align: .12rem;
    }

    .form-control {
      height: auto;
      padding: .85rem 1rem;
      border-color: var(--line);
      border-radius: .6rem;
      color: var(--ink);
      font-size: 1rem;
    }

    .form-control:focus {
      border-color: var(--blue);
      box-shadow: 0 0 0 .2rem rgba(13, 91, 215, .13);
    }

    .form-control.is-invalid {
      border-color: #c91f3d;
      background-image: none;
    }

    .form-control.is-invalid:focus {
      border-color: #c91f3d;
      box-shadow: 0 0 0 .2rem rgba(201, 31, 61, .12);
    }

    .field-error {
      margin-top: .45rem;
      color: #b71934;
      font-size: .88rem;
      font-weight: 700;
      line-height: 1.55;
    }

    .privacy-note { color: var(--muted); font-size: .88rem; }

    .agreement-section {
      margin: 2rem 0;
      padding: 1.4rem;
      border: 1px solid var(--line);
      border-radius: .85rem;
      background: #f8faff;
    }

    .agreement-section h3 {
      margin-bottom: 1rem;
      color: var(--navy);
      font-size: 1.15rem;
      font-weight: 800;
    }

    .requirement-list {
      margin-bottom: 1.15rem;
      padding-left: 1.4rem;
      color: var(--ink);
      line-height: 1.85;
    }

    .requirement-note {
      margin: -.25rem 0 1rem;
      color: var(--muted);
      font-size: .72rem;
      line-height: 1.65;
    }

    .agreement-check {
      padding-top: .15rem;
      padding-bottom: .15rem;
    }

    .agreement-check .custom-control-label {
      color: var(--ink);
      line-height: 1.6;
      cursor: pointer;
    }

    .license-heading-row {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 1rem;
    }

    .license-heading-row a { font-size: .88rem; white-space: nowrap; }

    .license-frame {
      display: block;
      width: 100%;
      height: 360px;
      margin-bottom: 1rem;
      border: 1px solid #cbd8ec;
      border-radius: .55rem;
      background: #fff;
    }

    .btn-submit {
      margin-top: .5rem;
      padding: .9rem 1.5rem;
      border: 0;
      border-radius: .65rem;
      background: linear-gradient(90deg, #0d5bd7, #713bd1);
      color: #fff;
      font-weight: 800;
      box-shadow: 0 12px 28px rgba(53, 70, 190, .25);
    }

    .btn-submit:hover, .btn-submit:focus { color: #fff; transform: translateY(-1px); }
    .btn-submit:disabled { opacity: .7; transform: none; }

    .form-scroll-anchor { scroll-margin-top: 1.5rem; }

    .success-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 64px;
      height: 64px;
      margin: 0 auto 1.25rem;
      border-radius: 50%;
      background: #e7f7ed;
      color: #14823c;
      font-size: 2rem;
      font-weight: 800;
    }

    .download-dialog-backdrop {
      position: fixed;
      z-index: 1050;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1.25rem;
      background: rgba(3, 16, 48, .72);
      overflow-y: auto;
    }

    .download-dialog {
      width: 100%;
      max-width: 620px;
      padding: 2.25rem;
      border-radius: 1rem;
      background: #fff;
      box-shadow: 0 28px 70px rgba(0, 0, 0, .32);
      text-align: center;
    }

    .download-dialog h2 {
      color: var(--navy);
      font-size: 1.8rem;
      font-weight: 800;
    }

    .download-dialog > p {
      margin: 1rem 0 1.5rem;
      color: var(--muted);
      line-height: 1.8;
    }

    .download-dialog-links {
      display: grid;
      gap: .9rem;
      margin-bottom: 1.5rem;
      text-align: left;
    }

    .download-dialog-link {
      display: block;
      padding: 1rem 1.1rem;
      border: 1px solid var(--line);
      border-radius: .7rem;
      background: #f8faff;
      overflow-wrap: anywhere;
    }

    .download-dialog-link:hover {
      border-color: var(--blue);
      background: #f0f5ff;
      text-decoration: none;
    }

    .download-dialog-link strong {
      display: block;
      margin-bottom: .25rem;
      color: var(--navy);
      font-size: 1.05rem;
    }

    .download-dialog-link span {
      color: var(--muted);
      font-size: .82rem;
    }

    .steps { max-width: 780px; margin: 3.2rem auto 0; }
    .steps h2 { color: var(--navy); font-size: 1.55rem; font-weight: 800; text-align: center; }

    .step-card {
      height: 100%;
      padding: 1.25rem;
      border-radius: .85rem;
      background: #fff;
      box-shadow: 0 10px 26px rgba(25, 51, 94, .08);
    }

    .step-number {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 34px;
      height: 34px;
      margin-bottom: .75rem;
      border-radius: 50%;
      background: #e9f1ff;
      color: var(--blue);
      font-weight: 800;
    }

    .step-card h3 { font-size: 1rem; font-weight: 800; }
    .step-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.7; }

    .footer {
      padding: 1.35rem 0;
      background: #06173d;
      color: rgba(255,255,255,.76);
      font-size: .92rem;
    }

    @media (max-width: 767.98px) {
      .download-hero { padding-bottom: 76px; }
      .top-nav { margin-bottom: 48px; }
      .form-card { margin-top: -38px; padding: 1.5rem; }
      .step-card { margin-bottom: 1rem; }
      .agreement-section { padding: 1.1rem; }
      .license-heading-row { display: block; }
      .license-heading-row a { display: inline-block; margin-bottom: .8rem; }
      .download-dialog { padding: 1.5rem; }
    }
  
body.w11-forms{background:#f6f7f8;color:#263843}.w11-forms .contact-hero,.w11-forms .download-hero{background:#0b2235;padding-top:55px}.w11-forms .contact-hero::before,.w11-forms .download-hero::before{display:none}.w11-forms .hero-kicker{border:0;background:none;padding:0;color:#c6b896;letter-spacing:.16em}.w11-forms .form-card{border-radius:2px;box-shadow:0 8px 35px #1024320a}.w11-forms .btn-primary{background:#153c54;border-color:#153c54}.w11-forms .w11-brand:hover{color:#fff;text-decoration:none}.w11-forms .w11-header a:hover{color:#fff}.w11-forms .w11-header{position:relative}.w11-forms .contact-hero h1,.w11-forms .download-hero h1{font-weight:500}.w11-forms .w11-footer a{color:inherit}.w11-forms .w11-footer p{margin:0}.w11-forms{--navy:#153447;--blue:#28546d;--ink:#263843;--muted:#596d79;--line:#dce3e7}.w11-forms .btn-submit{background:#153c54;border-radius:2px;box-shadow:none}.w11-forms .btn-submit:hover,.w11-forms .btn-submit:focus{background:#0b2235}.w11-forms .contact-hero h1 span,.w11-forms .download-hero h1 span{color:#e2e7e7}.w11-forms .agreement-section,.w11-forms .step-card{border-radius:2px}.w11-forms .form-control{border-radius:2px}
