/* Progress Stepper — theme and motion controls. No external dependencies. */
.progress-stepper {
  --ps-stage: #fbf9f1;
  --ps-text: #25483d;
  --ps-muted: #586d61;
  --ps-accent: #4b7d67;
  --ps-on-accent: #fffdf7;
  --ps-track: #d6dfcc;
  --ps-border: #d8e1d6;
  --ps-circle-bg: #f0f5e9;
  --ps-circle: 62px;
  --ps-track-size: 3px;
  --ps-current-scale: 1.08;
  --ps-track-duration: 600ms;
  --ps-state-duration: 360ms;
  --ps-check-duration: 420ms;
  --ps-copy-duration: 380ms;
  --ps-ease: cubic-bezier(.16,1,.3,1);
  --ps-progress: 0;
  --ps-glow-x: 0px;
  color: var(--ps-text);
  background: var(--ps-stage);
  border: 1px solid var(--ps-border);
  border-radius: 26px;
  padding: 34px 42px 30px;
  margin-top: 46px;
  overflow: hidden;
  isolation: isolate;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
.progress-stepper * { box-sizing: border-box; }
.ps-topline { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:38px; }
.ps-eyebrow { color:var(--ps-muted); font:700 11px/1.5 Arial,sans-serif; letter-spacing:.16em; margin:0; }
.ps-counter { font:500 14px/1 Arial,sans-serif; font-variant-numeric:tabular-nums; color:var(--ps-muted); }
.ps-counter b { color:var(--ps-text); font-size:23px; margin-right:5px; }
.ps-rail { position:relative; }
/* The track is laid out once. Only scaleX changes during progress. */
.ps-track { position:absolute; left:12.5%; right:12.5%; top:calc(var(--ps-circle) / 2 - var(--ps-track-size) / 2); height:var(--ps-track-size); background:var(--ps-track); }
.ps-track-fill { display:block; height:100%; background:var(--ps-accent); transform:scaleX(var(--ps-progress)); transform-origin:left center; transition:transform var(--ps-track-duration) var(--ps-ease); }
.ps-light { position:absolute; width:140px; height:140px; left:calc(12.5% - 70px); top:calc(var(--ps-circle) / 2 - 70px); border-radius:50%; background:radial-gradient(circle, color-mix(in srgb,var(--ps-accent) 18%,transparent),transparent 68%); pointer-events:none; transform:translate3d(var(--ps-glow-x),0,0); }
.ps-steps { position:relative; list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin:0; gap:0; }
.ps-step { min-width:0; text-align:center; }
.ps-select { appearance:none; border:0; background:none; color:inherit; width:100%; padding:0 6px 10px; display:flex; flex-direction:column; align-items:center; gap:22px; cursor:pointer; font:inherit; border-radius:12px; min-height:104px; }
.ps-disc { position:relative; display:grid; place-items:center; flex-shrink:0; width:var(--ps-circle); height:var(--ps-circle); border-radius:50%; background:var(--ps-circle-bg); border:1px solid var(--ps-track); transform:scale(1); transition:transform var(--ps-state-duration) var(--ps-ease); }
/* Static painted layers fade in; border width / shadow size never animate. */
.ps-disc::before { content:""; position:absolute; inset:-1px; border-radius:inherit; background:var(--ps-accent); opacity:0; transition:opacity var(--ps-state-duration) var(--ps-ease); }
.ps-disc::after { content:""; position:absolute; inset:-1px; border:2px solid var(--ps-accent); box-shadow:0 0 0 7px color-mix(in srgb,var(--ps-accent) 12%,transparent),0 0 24px color-mix(in srgb,var(--ps-accent) 20%,transparent); border-radius:inherit; opacity:0; transition:opacity var(--ps-state-duration) var(--ps-ease); }
.ps-number { position:relative; color:var(--ps-text); opacity:1; font:500 21px/1 Arial,sans-serif; transform:scale(1); transition:opacity var(--ps-state-duration) var(--ps-ease),transform var(--ps-state-duration) var(--ps-ease); }
.ps-check { position:absolute; width:28px; height:28px; fill:none; stroke:var(--ps-on-accent); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; opacity:0; transition:opacity var(--ps-state-duration) var(--ps-ease); }
.ps-check path { stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset var(--ps-check-duration) var(--ps-ease); }
.ps-label { color:var(--ps-muted); font-size:15px; line-height:1.7; font-weight:700; transition:color var(--ps-state-duration) var(--ps-ease); }
.ps-label span { display:block; }
.ps-step.is-current .ps-disc { transform:scale(var(--ps-current-scale)); }
.ps-step.is-current .ps-disc::after, .ps-step.is-current .ps-number { opacity:1; }
.ps-step.is-complete .ps-disc::before, .ps-step.is-complete .ps-check { opacity:1; }
.ps-step.is-complete .ps-number { opacity:0; transform:scale(.75); }
.ps-step.is-complete .ps-check path { stroke-dashoffset:0; }
.ps-step.is-current .ps-label, .ps-step.is-complete .ps-label { color:var(--ps-text); }
.ps-select:hover .ps-label { color:var(--ps-text); }
.ps-select:focus-visible, .ps-control:focus-visible, .ps-panel a:focus-visible { outline:2px solid var(--ps-accent); outline-offset:6px; }
.ps-panel { margin-top:28px; padding:28px 0; border-top:1px solid var(--ps-track); border-bottom:1px solid var(--ps-track); min-height:236px; }
.ps-panel[hidden] { display:none; }
.ps-panel.ps-enter { animation:ps-copy-in var(--ps-copy-duration) var(--ps-ease) both; }
.ps-panel h3 { font-size:24px; font-weight:700; line-height:1.6; letter-spacing:-.02em; margin:0 0 13px; }
.ps-panel p { font-size:16px; line-height:1.95; color:var(--ps-muted); margin:0; max-width:740px; }
.ps-panel a { display:inline-block; color:var(--ps-text); text-decoration:underline; text-underline-offset:5px; padding:8px 0; font-size:14px; }
.ps-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:23px; }
.ps-control { appearance:none; border:1px solid var(--ps-border); border-radius:30px; padding:11px 20px; min-height:44px; background:transparent; color:var(--ps-text); font-size:13px; font-weight:700; line-height:1.5; font-family:inherit; cursor:pointer; transition:transform 240ms var(--ps-ease),opacity 240ms var(--ps-ease); }
.ps-control:hover { transform:translateY(-2px); }
.ps-control:active { transform:scale(.97); transition-duration:100ms; }
.ps-control[aria-disabled="true"] { opacity:.4; cursor:default; transform:none; }
.ps-next { background:var(--ps-accent); border-color:var(--ps-accent); color:var(--ps-on-accent); }

.ps-help { margin:22px 0 0; color:var(--ps-muted); font-size:12px; line-height:1.9; }
.ps-live { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@keyframes ps-copy-in { from { opacity:.4; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media(max-width:600px) {
  .progress-stepper { --ps-circle:46px; padding:25px 16px 23px; border-radius:19px; margin-top:32px; }
  .ps-topline { margin-bottom:32px; }
  .ps-select { padding-inline:1px; gap:16px; min-height:99px; }
  .ps-number { font-size:17px; }
  .ps-label { font-size:11px; }
  .ps-check { width:24px; height:24px; }
  .ps-panel { min-height:235px; margin-top:19px; padding:24px 0; }
  .ps-panel h3 { font-size:21px; }
  .ps-panel p { font-size:15px; }
  .ps-controls { gap:8px; }
  .ps-control { padding:10px 14px; font-size:12px; }

}
@media(max-width:350px) { .progress-stepper { padding-inline:12px; --ps-circle:42px; } .ps-label { font-size:10px; } .ps-control { padding-inline:11px; } .ps-panel { min-height:280px; } }
/* Device preference automatically uses the same readable static state. */
@media(prefers-reduced-motion:reduce) {
  .progress-stepper *, .progress-stepper *::before, .progress-stepper *::after { animation:none!important; transition:none!important; }
  .progress-stepper .ps-disc, .progress-stepper .ps-control { transform:none!important; }
  .ps-light { display:none; }
}
.progress-stepper.ps-reduced *, .progress-stepper.ps-reduced *::before, .progress-stepper.ps-reduced *::after { animation:none!important; transition:none!important; }
.progress-stepper.ps-reduced .ps-disc, .progress-stepper.ps-reduced .ps-control { transform:none!important; }
.progress-stepper.ps-reduced .ps-light { display:none; }

/* Keep Japanese phrases intact on narrow LP screens. */
.steps-heading .marker{display:inline-block}
