
  html { scroll-behavior: smooth; }
  html, body { margin: 0; padding: 0; background: rgb(245,242,238); }
  * { box-sizing: border-box; }
  #go5-strat a { transition: transform .3s cubic-bezier(.2,.75,.3,1), box-shadow .3s ease, color .25s ease, background-position .55s ease, border-color .25s ease, background-color .25s ease, opacity .25s ease; }
  #go5-strat a span { transition: transform .3s cubic-bezier(.2,.75,.3,1); }
  .g5-cta { background-size:180% 100% !important; background-position:0 0; }
  .g5-cta:hover { transform:translateY(-3px); background-position:100% 0; box-shadow:0 14px 30px -8px rgba(231,100,122,.55); }
  .g5-ghost:hover { transform:translateY(-3px); border-color:rgba(255,255,255,.95) !important; background:rgba(255,255,255,.1) !important; }
  .g5-more:hover { color:#2696AF !important; }
  .g5-more:hover span, .g5-more:hover svg { transform:translateX(5px); }
  .g5-anchor:hover { background: rgba(0,0,0,0.04) !important; }
  .g5-svc-mini:hover { transform: translateY(-4px); box-shadow: 0 16px 32px -14px rgba(0,0,0,.22); }
  .g5-faq summary::-webkit-details-marker { display:none; }
  .g5-faq summary { list-style:none; cursor:pointer; }
  .g5-faq[open] .g5-faq-chevron { transform: rotate(45deg); }
  .g5-email:hover { transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(0,0,0,.4); }
  .g5-field input, .g5-field select, .g5-field textarea { font-family: 'Noto Sans JP', sans-serif; font-size: 15px; color: rgb(30,30,30); border: 1px solid rgb(222,219,214); border-radius: 10px; padding: 13px 16px; background: rgb(255,255,255); width: 100%; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
  .g5-field input:focus, .g5-field select:focus, .g5-field textarea:focus { border-color: rgb(100,190,220); box-shadow: 0 0 0 3px rgba(100,190,220,0.18); }
  .g5-submit:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(231,100,122,.5); }
  @keyframes g5Spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
  .g5-ring-dash { animation: g5Spin 60s linear infinite; }
  @media (prefers-reduced-motion: reduce) { .g5-ring-dash { animation: none !important; } }

  /* ---------- content container ---------- */
  #go5-strat { --g5-content: 1500px; --g5-gutter: 48px; }
  @media (min-width: 1025px) {
    #go5-strat header, #go5-strat > main > section, #go5-strat > main > nav.g5-crumb, #go5-strat footer {
      padding-left:  max(var(--g5-gutter), calc((100% - var(--g5-content)) / 2)) !important;
      padding-right: max(var(--g5-gutter), calc((100% - var(--g5-content)) / 2)) !important;
    }
  }

  /* ---------- cycle diagram: desktop pentagon / mobile stack ---------- */
  .g5-cycle-desktop { display: block; }
  .g5-cycle-mobile { display: none; }
  @media (max-width: 1024px) {
    .g5-cycle-desktop { display: none; }
    .g5-cycle-mobile { display: flex; }
  }

  /* ---------- responsive ---------- */
  @media (max-width: 1024px) {
    #go5-strat > main > section, #go5-strat > main > nav.g5-crumb, #go5-strat header, #go5-strat footer { padding-left: 44px !important; padding-right: 44px !important; }
    #go5-strat section[data-screen-label="Hero"] h1 { font-size: 36px !important; }
    #go5-strat .g5-row { flex-direction: column !important; gap: 30px !important; }
    #go5-strat .g5-row > div:first-child { width: auto !important; }
    #go5-strat .g5-phase-block, #go5-strat .g5-phase-block-rev { flex-direction: column !important; }
    #go5-strat .g5-phase-block > div, #go5-strat .g5-phase-block-rev > div { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
    #go5-strat .g5-phase-actions { grid-template-columns: 1fr 1fr !important; }
    #go5-strat .g5-svc-mini-grid { grid-template-columns: repeat(3, 1fr) !important; }
    #go5-strat .g5-usecase-grid { grid-template-columns: repeat(2, 1fr) !important; }
    #go5-strat .g5-checklist-grid { grid-template-columns: repeat(2, 1fr) !important; }
  }
  @media (max-width: 640px) {
    #go5-strat header, #go5-strat > main > section, #go5-strat > main > nav.g5-crumb, #go5-strat footer { padding-left: 22px !important; padding-right: 22px !important; }
    #go5-strat section[data-screen-label="Hero"] { min-height: 380px !important; padding-top: 56px !important; padding-bottom: 56px !important; }
    #go5-strat section[data-screen-label="Hero"] h1 { font-size: clamp(24px, 6.5vw, 34px) !important; word-break: keep-all; overflow-wrap: break-word; }
    #go5-strat section[data-screen-label="Hero"] p { font-size: 15px !important; line-height: 25px !important; }
    #go5-strat section[data-screen-label="Anchor Nav"] { padding: 14px 18px !important; justify-content: center !important; }
    #go5-strat .g5-phase-actions { grid-template-columns: 1fr !important; }
    #go5-strat .g5-phase-card { width: 100% !important; box-sizing: border-box !important; }
    #go5-strat div:has(> .g5-phase-card) { grid-template-columns: 1fr !important; }
    #go5-strat .g5-svc-mini-grid { grid-template-columns: repeat(2, 1fr) !important; }
    #go5-strat .g5-usecase-grid { grid-template-columns: 1fr !important; }
    #go5-strat .g5-checklist-grid { grid-template-columns: 1fr !important; }
    #go5-strat .g5-form-row { grid-template-columns: 1fr !important; }
    #go5-strat section[data-screen-label="Contact"] form { padding: 28px 22px !important; }
    #go5-strat .g5-grow { flex-direction: column !important; align-items: stretch !important; gap: 24px !important; padding: 34px 26px !important; }
    #go5-strat .g5-cta, #go5-strat .g5-ghost { justify-content: center !important; width: 100% !important; box-sizing: border-box !important; }
    #go5-strat section[data-screen-label="Hero"] div[style*="flex-flow: wrap; gap: 16px"] { justify-content: center !important; }
  }
