@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=Shippori+Mincho:wght@500;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ============================================================
   FujiSSL Storefront — Apply Flow Redesign
   Scope: pages rendered by modules `apply` and `apply2`
   Activated by body class `app-redesign`
   ============================================================ */

body.app-redesign {
  --ink: #0a1628;
  --ink-2: #1a2332;
  --paper: #faf8f3;
  --paper-2: #f1ede4;
  --paper-3: #e8e2d4;
  --red: #c8102e;
  --red-dark: #9a0c24;
  --line: #d8d2c4;
  --line-soft: #ebe6da;
  --muted: #6b7280;
  --green: #2d6a4f;

  font-family: 'Zen Kaku Gothic New', sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.7;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}

body.app-redesign a { color: inherit; text-decoration: none; }
body.app-redesign .mono { font-family: 'JetBrains Mono', monospace; }
body.app-redesign .serif { font-family: 'Shippori Mincho', serif; }

/* ---------- Header ---------- */
.app-redesign header.app {
  background: var(--paper);
  border-bottom: 1px solid var(--line-soft);
  padding: 20px 0;
}
.app-redesign header.app .inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.app-redesign .logo {
  display: flex; align-items: center; gap: 14px;
  font-weight: 900; font-size: 18px; letter-spacing: -0.01em;
  color: var(--ink); text-decoration: none;
}
.app-redesign .logo-mark {
  width: 38px; height: 38px;
  background: url(/images/logo.svg) center / contain no-repeat;
  flex-shrink: 0;
}
.app-redesign .logo-text { display: inline-block; }
.app-redesign .logo small {
  display: block; font-size: 9px; font-weight: 500;
  color: var(--muted); letter-spacing: 0.18em; margin-top: 2px;
}
.app-redesign .logo-name {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--muted);
  border-left: 1px solid var(--line);
  padding-left: 16px; margin-left: 10px; letter-spacing: 0.08em;
}
.app-redesign .head-nav { display: flex; gap: 24px; font-size: 13px; align-items: center; }
.app-redesign .head-nav a { color: var(--muted); }
.app-redesign .head-nav a:hover { color: var(--ink); }
.app-redesign .secure-tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--green); letter-spacing: 0.06em;
}
.app-redesign .secure-tag::before { content: "🔒"; font-size: 11px; }

/* ---------- Stepper (replaces .breadcrumb.flat) ---------- */
.app-redesign .stepper {
  background: var(--paper-2);
  border-bottom: 1px solid var(--line-soft);
  padding: 32px 0 36px;
}
.app-redesign .stepper .inner {
  max-width: 1280px; margin: 0 auto; padding: 0 32px;
}
.app-redesign .stepper-meta {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 22px;
}
.app-redesign .stepper-title {
  font-family: 'Shippori Mincho', serif;
  font-size: 22px; font-weight: 700;
}
.app-redesign .stepper-progress {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; color: var(--muted); letter-spacing: 0.08em;
}
.app-redesign .stepper-progress strong { color: var(--ink); font-size: 16px; }
.app-redesign .steps {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px;
}
.app-redesign .step {
  position: relative;
  display: flex; flex-direction: column; gap: 8px;
  padding-top: 14px; border-top: 2px solid var(--line);
  transition: all 0.2s ease;
}
.app-redesign .step .num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; color: #b4ad9d; letter-spacing: 0.08em;
}
.app-redesign .step .label {
  font-size: 12px; font-weight: 500; line-height: 1.4;
  color: var(--muted);
}

/* Completed */
.app-redesign .step.done            { border-top-color: var(--ink); }
.app-redesign .step.done .num,
.app-redesign .step.done .label     { color: var(--ink); }
.app-redesign .step.done .num::before {
  content: "✓ "; color: var(--ink); margin-right: 2px;
}

/* Active — "you are here" marker on the rule */
.app-redesign .step.active          { border-top-color: var(--red); }
.app-redesign .step.active::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 0;
  width: 12px; height: 12px;
  background: var(--red);
  border-radius: 50%;
  box-shadow: 0 0 0 4px var(--paper-2), 0 4px 10px rgba(200, 16, 46, 0.35);
}
.app-redesign .step.active .num     { color: var(--red); font-weight: 700; font-size: 11px; }
.app-redesign .step.active .label   { color: var(--ink); font-weight: 800; }

/* Reset old Bootstrap breadcrumb appearance inside redesign */
.app-redesign .breadcrumb.flat { all: unset; }

/* ---------- Main content ---------- */
.app-redesign main {
  flex: 1; padding: 64px 0 80px;
  background: var(--paper); position: relative;
}
.app-redesign main::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size: 56px 56px;
  opacity: 0.35;
  mask-image: radial-gradient(ellipse at top, #000 0%, transparent 60%);
  -webkit-mask-image: radial-gradient(ellipse at top, #000 0%, transparent 60%);
  pointer-events: none;
}
.app-redesign main .inner {
  max-width: 760px; margin: 0 auto; padding: 0 28px; position: relative;
}

.app-redesign .eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--red); margin-bottom: 20px;
  font-family: 'JetBrains Mono', monospace;
}
.app-redesign .eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--red); }

.app-redesign h1.page-title {
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700; line-height: 1.3; margin: 0 0 16px;
}
.app-redesign .lead {
  font-size: 15px; color: var(--ink-2);
  line-height: 1.85; margin-bottom: 48px; max-width: 640px;
}

/* ---------- Document blocks ---------- */
.app-redesign .doc-block { margin-bottom: 56px; }
.app-redesign .doc-head {
  display: flex; justify-content: space-between; align-items: end;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 16px; margin-bottom: 24px;
}
.app-redesign .doc-head h2 {
  font-family: 'Shippori Mincho', serif;
  font-size: 20px; font-weight: 700; margin: 0;
}
.app-redesign .doc-head .doc-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--muted); letter-spacing: 0.08em;
}
.app-redesign .doc-list {
  list-style: none; padding: 0; margin: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 4px; overflow: hidden;
}
.app-redesign .doc-list li {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 16px; align-items: center;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line-soft);
  transition: background 0.18s ease;
  font-size: 14px;
}
.app-redesign .doc-list li:last-child { border-bottom: none; }
.app-redesign .doc-list li:hover { background: var(--paper-2); }
.app-redesign .doc-list .doc-icon {
  width: 32px; height: 40px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 2px; position: relative;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; color: var(--red); font-weight: 700;
  display: flex; align-items: end; justify-content: center;
  padding-bottom: 5px;
}
.app-redesign .doc-list .doc-icon::before {
  content: "";
  position: absolute; top: 0; right: 0;
  border-top: 8px solid var(--paper);
  border-left: 8px solid var(--line);
}
.app-redesign .doc-list .doc-icon.rule {
  background: var(--paper); color: var(--ink); border-color: var(--ink);
}
.app-redesign .doc-list .doc-name {
  font-weight: 500; line-height: 1.5;
}
.app-redesign .doc-list .doc-name small {
  display: block; font-size: 11px; color: var(--muted);
  margin-top: 2px; font-family: 'JetBrains Mono', monospace;
}
.app-redesign .doc-list .doc-link {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--ink);
  border: 1px solid var(--line);
  padding: 6px 12px;
  transition: all 0.18s ease;
  letter-spacing: 0.04em;
  background: transparent;
  display: inline-block;
}
.app-redesign .doc-list .doc-link:hover {
  background: var(--ink); color: var(--paper); border-color: var(--ink);
  text-decoration: none;
}

/* ---------- Payment card ---------- */
.app-redesign .payment-card {
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 24px 28px;
  margin-bottom: 32px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px; align-items: center;
}
.app-redesign .payment-icon {
  width: 56px; height: 56px;
  background: var(--ink); color: var(--paper);
  border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  font-family: 'JetBrains Mono', monospace; font-size: 16px;
}
.app-redesign .payment-info { font-size: 13px; color: var(--ink-2); line-height: 1.7; }
.app-redesign .payment-info > strong {
  display: block; font-family: 'Shippori Mincho', serif;
  font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 4px;
}
.app-redesign .card-brands {
  display: flex; gap: 8px; align-items: center;
  margin-top: 10px; flex-wrap: wrap;
}
.app-redesign .brand {
  height: 22px; padding: 0 10px;
  background: var(--paper);
  border: 1px solid var(--line); border-radius: 2px;
  display: inline-flex; align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 700; letter-spacing: 0.04em;
}
.app-redesign .brand.visa   { color: #1a1f71; }
.app-redesign .brand.mc     { color: #eb001b; }
.app-redesign .brand.amex   { color: #006fcf; }
.app-redesign .brand.jcb    { color: #0a3a82; }
.app-redesign .brand.diners { color: #004a97; }
.app-redesign .payment-alt {
  margin-top: 12px; font-size: 12px; color: var(--muted);
}
.app-redesign .payment-alt a {
  color: var(--red);
  border-bottom: 1px solid var(--red);
  padding-bottom: 1px;
}

/* ---------- Privacy details ---------- */
.app-redesign details.privacy {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 4px;
  margin-bottom: 40px;
}
.app-redesign details.privacy summary {
  padding: 18px 22px; cursor: pointer;
  font-weight: 700; font-size: 14px;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.app-redesign details.privacy summary::-webkit-details-marker { display: none; }
.app-redesign details.privacy summary::after {
  content: "＋";
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px; color: var(--red);
  transition: transform 0.2s ease;
}
.app-redesign details.privacy[open] summary::after { content: "−"; }
.app-redesign details.privacy summary span.tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; color: var(--muted);
  border: 1px solid var(--line);
  padding: 3px 8px; margin-left: auto;
  letter-spacing: 0.06em;
}
.app-redesign details.privacy .priv-body {
  padding: 18px 22px 22px;
  font-size: 13px; color: var(--ink-2);
  line-height: 1.85;
  border-top: 1px dashed var(--line);
}
.app-redesign details.privacy .priv-body pre {
  font-family: inherit;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
  background: transparent;
  border: none;
  padding: 0;
  color: inherit;
}

/* ---------- Consent box (dark) ---------- */
.app-redesign .consent {
  background: var(--ink); color: var(--paper);
  padding: 36px; border-radius: 4px;
  margin-bottom: 32px;
  position: relative; overflow: hidden;
}
.app-redesign .consent::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}
.app-redesign .consent .label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: rgba(255,255,255,0.55);
  letter-spacing: 0.12em;
  margin-bottom: 16px;
  position: relative;
}
.app-redesign .consent label.check-row {
  display: flex; align-items: flex-start; gap: 14px;
  cursor: pointer; position: relative;
  user-select: none; margin: 0;
}
.app-redesign .consent label.check-row input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 22px; height: 22px;
  border: 1.5px solid rgba(255,255,255,0.4);
  border-radius: 3px;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  margin: 3px 0 0;
  position: relative;
  transition: all 0.18s ease;
}
.app-redesign .consent label.check-row input[type="checkbox"]:hover {
  border-color: rgba(255,255,255,0.7);
}
.app-redesign .consent label.check-row input[type="checkbox"]:checked {
  background: var(--red);
  border-color: var(--red);
}
.app-redesign .consent label.check-row input[type="checkbox"]:checked::after {
  content: "✓";
  position: absolute; inset: 0;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700;
}
.app-redesign .consent label.check-row .text {
  font-size: 14px; line-height: 1.7; font-weight: 500;
}
.app-redesign .consent label.check-row .text em {
  font-style: normal; color: #ff8a9a; font-weight: 700;
}
.app-redesign .consent .form-error {
  color: #ff8a9a; font-size: 12px; margin-top: 12px;
  font-family: 'JetBrains Mono', monospace;
  position: relative;
}

/* ---------- Action bar ---------- */
.app-redesign .actions {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 32px 0;
  border-top: 1px solid var(--line);
}
.app-redesign .btn-redesign {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px; font-size: 14px; font-weight: 700;
  border-radius: 2px; transition: all 0.18s ease;
  border: 1px solid transparent;
  cursor: pointer; white-space: nowrap;
  font-family: inherit;
  text-decoration: none;
  line-height: 1;
}
.app-redesign .btn-back {
  color: var(--muted); border: none; padding: 14px 0;
  background: transparent;
}
.app-redesign .btn-back:hover { color: var(--ink); }
.app-redesign .btn-back::before { content: "←"; margin-right: 6px; }
.app-redesign .btn-next {
  background: var(--red); color: #fff;
  padding: 16px 36px; font-size: 14px;
  border: none;
}
.app-redesign .btn-next:hover { background: var(--red-dark); }
.app-redesign .btn-next::after {
  content: "→"; transition: transform 0.2s ease;
}
.app-redesign .btn-next:hover::after { transform: translateX(4px); }
.app-redesign .btn-next:disabled {
  background: var(--line); color: var(--muted); cursor: not-allowed;
}
.app-redesign .btn-next:disabled::after { display: none; }

/* ---------- Footer (light editorial, full-bleed, multi-column) ---------- */
.app-redesign footer.app {
  background: var(--paper);
  padding: 64px 0 28px;
  margin-top: 96px;
  border: none;
  position: relative;
}
/* 上端：細い墨色罫線 + 左端 160px だけ朱色アクセント（ヘッダーと同じリズム） */
.app-redesign footer.app::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: var(--ink);
}
.app-redesign footer.app::after {
  content: "";
  position: absolute;
  top: -1px; left: 0;
  width: 160px; height: 3px;
  background: var(--red);
}
.app-redesign footer.app .inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: minmax(280px, 1.5fr) 2fr;
  grid-template-areas:
    "brand nav"
    "bottom bottom";
  gap: 56px 80px;
}

/* Brand block (left) */
.app-redesign .foot-brand {
  grid-area: brand;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.app-redesign .foot-mark {
  display: block;
  width: 44px; height: 44px;
  background: url(/images/logo.svg) center / contain no-repeat;
  flex-shrink: 0;
}
.app-redesign .foot-text { padding-top: 2px; }
.app-redesign .foot-name {
  font-family: 'Shippori Mincho', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
}
.app-redesign .foot-name .mono {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 0.1em;
  margin-left: 6px;
  font-weight: 500;
}
.app-redesign .foot-sub {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.7;
  letter-spacing: 0.02em;
}

/* Link columns (right) */
.app-redesign .foot-nav {
  grid-area: nav;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  justify-self: end;
  min-width: 360px;
}
.app-redesign .foot-col { display: flex; flex-direction: column; gap: 12px; }
.app-redesign .foot-col-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: var(--red);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 4px;
}
.app-redesign .foot-col a {
  font-size: 13px;
  color: var(--ink);
  position: relative;
  width: fit-content;
  padding-bottom: 1px;
  transition: color 0.18s ease;
}
.app-redesign .foot-col a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.2s ease;
}
.app-redesign .foot-col a:hover { color: var(--red); }
.app-redesign .foot-col a:hover::after { transform: scaleX(1); }

/* Bottom strip (copyright + region) */
.app-redesign .foot-bottom {
  grid-area: bottom;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 28px;
  border-top: 1px solid var(--line-soft);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 0.06em;
}
.app-redesign .foot-region {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.app-redesign .foot-region::before {
  content: "";
  width: 6px; height: 6px;
  background: var(--green);
  border-radius: 50%;
}

/* ---------- Bootstrap overrides on redesigned pages ----------
   重要: req2〜req6 のテンプレは body 直下に <div class="row"> がいきなり
   置かれていて Bootstrap .container で包まれていない。そのため row が
   ビューポート幅まで広がり、パネル仕切り線が画面端まで突き抜ける。
   → body 直下の .row だけを 1100px に制約する。
   ネストされた row（パネル内のラベル/入力/ヘルプ3カラム）は触らない。
*/
body.app-redesign > .row {
  max-width: 1280px;
  margin: 56px auto;
  padding: 0 32px;
  box-sizing: border-box;
}
body.app-redesign > .row > .col-sm-12 {
  padding-left: 0;
  padding-right: 0;
}

/* 念のため .container を使うステップがあった場合のフォールバック */
.app-redesign .container,
.app-redesign .container-fluid {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 28px;
  box-sizing: border-box;
}

/* ----- Page title (was hidden — now the entry point of each step) ----- */
.app-redesign .page-header,
.app-redesign .page-header-title {
  display: block;
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(26px, 2.4vw, 34px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink);
  margin: 16px 0 72px;        /* タイトルとサブセクションの間に十分な間 */
  padding: 0;
  border: none;
  position: relative;
}
.app-redesign .page-header-title::before {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  background: var(--red);
  margin-bottom: 22px;
}

/* General breathing room: anything sitting right under a horizontal divider
   (hr, or element with border-bottom above it) needs top padding so text
   doesn't crowd the line. */
.app-redesign hr + *,
.app-redesign [class*="border-bottom"] + *,
.app-redesign .panel-body > .row + .row {
  margin-top: 32px;
}
.app-redesign .panel-body {
  padding-top: 36px !important;
}
.app-redesign .panel-body > *:first-child {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* ----- Panels: editorial divider stack instead of fluffy cream boxes -----
   隣接パネルが1本のラインで繋がるよう、bottom 罫線だけ持たせる。
   全体が一つの「シート」として読める。
   ※ Step 2 (panel-title 無し) のパネルだけこれを使う。Step 4/5 (panel-title あり) は
     後段の `.panel:has(.panel-title)` ルールでカード型に上書きされる。
*/
.app-redesign .panel:not(:has(.panel-title)) {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}
.app-redesign .panel:not(:has(.panel-title)):first-of-type { border-top: 1px solid var(--line); }
.app-redesign .panel:not(:has(.panel-title)) + .panel:not(:has(.panel-title)),
.app-redesign .help-block + .panel:not(:has(.panel-title)),
.app-redesign .help-block,
.app-redesign .area-coupon-property,
.app-redesign .area-master_id,
.app-redesign .area-product_id,
.app-redesign .area-transfer { margin: 0; }
.app-redesign .panel:not(:has(.panel-title)) > .panel-body { padding: 28px 4px; }
.app-redesign .panel:not(:has(.panel-title)) > .panel-body.pt-5 { padding-top: 28px; }

/* ====================================================================
   Step 4 / 5 card-style panels (any .panel containing a .panel-title)
   ==================================================================== */
.app-redesign .panel:has(.panel-title) {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  margin: 0 0 32px !important;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(10, 22, 40, 0.04);
}

/* Major input panels (担当者情報 etc.) — sit directly inside <form>.
   Give them BIG vertical separation from each other. */
.app-redesign form > .panel:has(.panel-title) {
  margin: 64px 0 0 !important;
}
.app-redesign form > .panel:has(.panel-title) + .help-block + .panel:has(.panel-title),
.app-redesign form > .panel:has(.panel-title) ~ .panel:has(.panel-title) {
  margin-top: 80px !important;
}

/* Panel heading bar */
.app-redesign .panel:has(.panel-title) > .panel-heading {
  background: var(--paper-2) !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 18px 24px !important;
  position: relative;
}

/* Panel title h3 */
.app-redesign .panel-title {
  font-family: 'Shippori Mincho', serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  margin: 0 !important;
  padding: 0 0 0 14px !important;
  border: none !important;
  border-left: 3px solid var(--red) !important;
  line-height: 1.5 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px;
}
.app-redesign .panel-title .pull-right,
.app-redesign .panel-title .pull.pull-right {
  float: none !important;
  order: 99;
  margin-left: auto;
  display: inline-flex !important;
  gap: 8px;
  align-items: center;
}

/* Panel body for these cards */
.app-redesign .panel:has(.panel-title) > .panel-body {
  padding: 32px !important;
  background: #fff !important;
}

/* ----- Top-row summary cards (お申し込み情報 / 証明書情報 in .col-md-5/.col-md-7) ----- */
.app-redesign .row > .col-md-5 > .panel:has(.panel-title),
.app-redesign .row > .col-md-7 > .panel:has(.panel-title) {
  margin: 0 !important;
  height: 100%;
}
.app-redesign .row > .col-md-5 > .panel:has(.panel-title) > .panel-heading,
.app-redesign .row > .col-md-7 > .panel:has(.panel-title) > .panel-heading {
  padding: 14px 22px !important;
}
.app-redesign .row > .col-md-5 .panel-title,
.app-redesign .row > .col-md-7 .panel-title {
  font-size: 15px !important;
  padding-left: 12px !important;
  border-left-width: 2px !important;
}
.app-redesign .row > .col-md-5 > .panel:has(.panel-title) > .panel-body,
.app-redesign .row > .col-md-7 > .panel:has(.panel-title) > .panel-body {
  padding: 4px 22px 16px !important;
}

/* Tables inside summary cards */
.app-redesign .panel:has(.panel-title) .table {
  margin: 0;
  background: transparent;
}
.app-redesign .panel:has(.panel-title) .table th,
.app-redesign .panel:has(.panel-title) .table td {
  border: none;
  border-bottom: 1px solid var(--line-soft);
  padding: 12px 8px;
  font-size: 13px;
  vertical-align: middle;
  background: transparent;
}
.app-redesign .panel:has(.panel-title) .table tr:last-child th,
.app-redesign .panel:has(.panel-title) .table tr:last-child td {
  border-bottom: none;
}
.app-redesign .panel:has(.panel-title) .table th {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  width: 35%;
}

/* Section title (h4) — serif. Counter previously added "01/02..." prefixes,
   but it bled into Step 5 (showing "01" next to 決済金額). Counter removed;
   if static numbering is needed on Step 2, do it in the template. */
.app-redesign .panel-body h4 {
  font-family: 'Shippori Mincho', serif;
  font-size: 19px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
  padding: 0;
  line-height: 1.35;
  position: relative;
}

/* Radios: surrender to OS-default rendering.
   accent-color is widely supported in modern browsers and just recolors the
   native control to red without changing its appearance. Stops the back-and-forth
   with appearance:none quirks. */
.app-redesign input[type="radio"],
.app-redesign input[type="checkbox"] {
  accent-color: var(--red);
  width: 16px;
  height: 16px;
  margin: 0 8px 0 0;
  vertical-align: -3px;
  cursor: pointer;
}

/* event-btn labels feel tappable */
.app-redesign label.event-btn {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  padding: 6px 0;
  margin: 0;
  font-weight: 400;
  line-height: 1.6;
  font-size: 14px;
}

/* request_type buttons (新規/更新/乗換) — refined segmented control */
.app-redesign .btn.event-btn {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 2px;
  color: var(--ink);
  padding: 12px 24px;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 14px;
  text-shadow: none;
  box-shadow: none;
  transition: all 0.18s ease;
  position: relative;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.app-redesign .btn.event-btn:hover,
.app-redesign .btn.event-btn:focus {
  border-color: var(--ink);
  background: #fff;
  color: var(--ink);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(10, 22, 40, 0.06);
}
.app-redesign .btn.event-btn.active {
  border-color: var(--red);
  background: #fff;
  color: var(--red);
  box-shadow: inset 0 0 0 1px var(--red);
  transform: none;
}
.app-redesign .btn.event-btn.active::before {
  content: "✓";
  font-size: 12px;
  font-weight: 900;
}
.app-redesign .btn.event-btn .hide { display: none; }
.app-redesign .panel-body small a {
  color: var(--muted);
  border-bottom: 1px dotted var(--line);
  padding-bottom: 1px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.02em;
}
.app-redesign .panel-body small a:hover {
  color: var(--red);
  border-bottom-color: var(--red);
}
.app-redesign .panel-body .col-sm-3 > p,
.app-redesign .panel-body .col-sm-4 > p,
.app-redesign .panel-body .col-md-3 > p,
.app-redesign .panel-body .col-md-4 > p,
.app-redesign .panel-body .col-sm-3 p,
.app-redesign .panel-body .col-sm-4 p,
.app-redesign .panel-body .col-md-3 p,
.app-redesign .panel-body .col-md-4 p,
.app-redesign .panel-body .col-sm-3 > div:not(.input-group):not(.form-group),
.app-redesign .panel-body .col-sm-4 > div:not(.input-group):not(.form-group),
.app-redesign .panel-body .col-md-3 > div:not(.input-group):not(.form-group),
.app-redesign .panel-body .col-md-4 > div:not(.input-group):not(.form-group),
.app-redesign .panel-body .col-sm-3 span:not(.label):not(.label-danger):not(.input-group-addon),
.app-redesign .panel-body .col-sm-4 span:not(.label):not(.label-danger):not(.input-group-addon),
.app-redesign .panel-body .col-md-3 span:not(.label):not(.label-danger):not(.input-group-addon),
.app-redesign .panel-body .col-md-4 span:not(.label):not(.label-danger):not(.input-group-addon) {
  font-size: 12px !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
  margin: 0 0 4px;
}

/* 必須 badge は absolute に白・赤地・10px モノスペースを保つ */
.app-redesign .label-danger,
.app-redesign .label.label-danger,
.app-redesign .panel-body .col-sm-3 .label-danger,
.app-redesign .panel-body .col-sm-4 .label-danger,
.app-redesign .panel-body .col-md-3 .label-danger,
.app-redesign .panel-body .col-md-4 .label-danger,
.app-redesign span.label.label-danger {
  background: var(--red) !important;
  color: #fff !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 3px 8px !important;
  border-radius: 2px !important;
  line-height: 1.4 !important;
  display: inline-block !important;
  vertical-align: middle !important;
}
.app-redesign .panel-body .text-danger {
  color: var(--red);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-style: normal;
  letter-spacing: 0.02em;
}
.app-redesign .panel-body em { font-style: normal; color: var(--red); font-weight: 700; }
.app-redesign .panel-body .table {
  background: transparent;
  border: none;
  margin: 0;
}
.app-redesign .panel-body .table th,
.app-redesign .panel-body .table td {
  border-color: var(--line-soft);
  padding: 12px 8px;
  background: transparent;
}
.app-redesign .panel-body .table th {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
/* ---------- Tech-company style form inputs (Stripe/Linear/Vercel inspired) ---------- */
.app-redesign input[type="text"],
.app-redesign input[type="email"],
.app-redesign input[type="tel"],
.app-redesign input[type="password"],
.app-redesign input[type="number"],
.app-redesign select,
.app-redesign .form-control {
  background: #fff !important;
  border: 1px solid #e5e0d2 !important;
  border-radius: 6px !important;
  padding: 11px 14px !important;
  font-size: 14px !important;
  color: var(--ink) !important;
  line-height: 1.4 !important;
  box-shadow: 0 1px 2px rgba(10, 22, 40, 0.04) !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease !important;
  font-feature-settings: "palt";
  outline: none !important;
}
.app-redesign input[type="text"]:hover,
.app-redesign input[type="email"]:hover,
.app-redesign input[type="tel"]:hover,
.app-redesign input[type="password"]:hover,
.app-redesign input[type="number"]:hover,
.app-redesign select:hover,
.app-redesign .form-control:hover {
  border-color: #c4bda8 !important;
  background: #fff !important;
}
.app-redesign input[type="text"]:focus,
.app-redesign input[type="email"]:focus,
.app-redesign input[type="tel"]:focus,
.app-redesign input[type="password"]:focus,
.app-redesign input[type="number"]:focus,
.app-redesign select:focus,
.app-redesign textarea:focus,
.app-redesign .form-control:focus {
  border-color: var(--red) !important;
  box-shadow:
    0 0 0 4px rgba(200, 16, 46, 0.10),
    0 1px 2px rgba(10, 22, 40, 0.06) !important;
  background: #fff !important;
  outline: none !important;
}
.app-redesign input[type="text"]::placeholder,
.app-redesign input[type="email"]::placeholder,
.app-redesign input[type="tel"]::placeholder,
.app-redesign textarea::placeholder,
.app-redesign .form-control::placeholder {
  color: #c4bda8;
  font-weight: 400;
}
.app-redesign textarea.form-control {
  font-family: 'JetBrains Mono', 'ＭＳ ゴシック', monospace !important;
  font-size: 12px !important;
  line-height: 1.65;
  padding: 16px 18px !important;
  background: #fff !important;
  resize: vertical !important;
  border-radius: 6px !important;
}
.app-redesign .input-group-addon {
  background: var(--paper-2);
  border: 1px solid #e5e0d2;
  border-radius: 6px;
  color: var(--muted);
  font-family: 'JetBrains Mono', monospace;
}
.app-redesign .coupon-column {
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
}
.app-redesign .label-danger {
  background: var(--red);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.04em;
}
.app-redesign .btn-primary {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.app-redesign .btn-primary:hover,
.app-redesign .btn-primary:focus,
.app-redesign .btn-primary:active,
.app-redesign .btn-primary:active:focus {
  background: var(--red-dark);
  border-color: var(--red-dark);
  color: #fff;
  outline: none;
}
.app-redesign .btn-default {
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--ink);
}
.app-redesign .btn-default:hover,
.app-redesign .btn-default:focus {
  background: var(--paper-2);
  border-color: var(--ink);
  color: var(--ink);
}
.app-redesign .text-center {
  padding: 48px 0 16px;
  border-top: none;
  margin-top: 0;
  display: flex;
  flex-direction: row;            /* DOM 順序非依存にするため row + order を使う */
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
.app-redesign .text-center .btn-default,
.app-redesign .text-center a.btn-default {
  order: 1;
}
.app-redesign .text-center .btn-primary,
.app-redesign .text-center .btn-success,
.app-redesign .text-center input[type="submit"] {
  order: 2;
  margin-left: auto;          /* 主要アクションを右端に飛ばす */
}
.app-redesign .text-center .btn-lg {
  font-size: 14px;
  padding: 14px 32px;
  border-radius: 2px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.app-redesign .text-center .btn-primary {
  padding: 16px 40px;
  font-size: 15px;
  background: var(--red);
  border: none;
  color: #fff;
  box-shadow: 0 2px 8px rgba(200, 16, 46, 0.25);
  transition: all 0.18s ease;
}
.app-redesign .text-center .btn-primary:hover {
  background: var(--red-dark);
  box-shadow: 0 4px 14px rgba(200, 16, 46, 0.35);
  transform: translateY(-1px);
}
.app-redesign .text-center .btn-default,
.app-redesign .text-center a.btn-default {
  background: #fff !important;
  border: 1.5px solid var(--line) !important;
  color: var(--ink) !important;
  padding: 14px 36px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: all 0.18s ease !important;
  letter-spacing: 0.02em;
}
.app-redesign .text-center .btn-default:hover,
.app-redesign .text-center a.btn-default:hover {
  border-color: var(--ink) !important;
  background: var(--paper-2) !important;
  color: var(--ink) !important;
}
.app-redesign .text-center .btn-default::before,
.app-redesign .text-center a.btn-default::before {
  content: "← ";
}
.app-redesign hr { border-color: var(--line-soft); }

/* ---------- Small text / annotations (※英語表記 / 証明書送付先 etc.) ---------- */
.app-redesign small,
.app-redesign p small,
.app-redesign label small,
.app-redesign .panel-body small,
.app-redesign .panel-body label small,
.app-redesign .panel-body p small,
.app-redesign .panel-body .col-md-4 small,
.app-redesign .panel-body .col-sm-4 small,
.app-redesign .text-info,
.app-redesign small.text-info,
.app-redesign p .text-info,
.app-redesign p small.text-info {
  font-size: 11px !important;
  color: var(--muted) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.6 !important;
  display: inline-block;
}
/* .text-info を Bootstrap の青リンクっぽい色から外して、本文ミュート色に統一 */
.app-redesign .text-info,
.app-redesign small.text-info {
  color: var(--muted) !important;
}

/* ---------- Step 4 / 5 sub-section headers (お申し込み情報, 申請組織担当者情報 etc.) ---------- */
.app-redesign .panel-body h3,
.app-redesign h3.section-title,
.app-redesign .form-section-title,
.app-redesign .panel-body > .row > .col-sm-12 > h4,
.app-redesign form > h4,
.app-redesign form > h3 {
  font-family: 'Shippori Mincho', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin: 48px 0 20px;     /* タイトル/前セクションから48px離す */
  padding: 0 0 12px;
  border-bottom: 1px solid var(--line);
  position: relative;
  line-height: 1.4;
}
/* 1個目のサブセクションには余計な top margin を付けない */
.app-redesign .panel-body > h3:first-child,
.app-redesign .panel-body > .row:first-child h3,
.app-redesign form > h3:first-of-type,
.app-redesign form > h4:first-of-type {
  margin-top: 0;
}
.app-redesign .panel-body h3::before,
.app-redesign h3.section-title::before,
.app-redesign .form-section-title::before {
  content: "";
  display: inline-block;
  width: 4px; height: 14px;
  background: var(--red);
  margin-right: 10px;
  vertical-align: -2px;
}

/* ---------- Status notices (反映されます / 反映されません) ---------- */
.app-redesign .text-warning,
.app-redesign [style*="color:orange"],
.app-redesign [style*="color: orange"] {
  color: #b8860b !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.app-redesign .text-success {
  color: var(--green) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* ---------- Help buttons (yellow Bootstrap btn-warning) ---------- */
.app-redesign .btn-warning,
.app-redesign .btn.btn-warning {
  background: transparent !important;
  border: 1px solid var(--red) !important;
  color: var(--red) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  padding: 4px 10px !important;
  border-radius: 2px !important;
  text-shadow: none !important;
  box-shadow: none !important;
  line-height: 1.4;
}
.app-redesign .btn-warning:hover {
  background: var(--red) !important;
  color: #fff !important;
}

/* ---------- 必須 (required) badge — consistent treatment ---------- */
.app-redesign .label-danger,
.app-redesign .label.label-danger {
  background: var(--red) !important;
  color: #fff !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  padding: 3px 8px !important;
  border-radius: 2px !important;
  vertical-align: 2px;
  display: inline-block;
  line-height: 1.4;
}

/* ---------- Step 5 confirmation tables (definition lists & data rows) ---------- */
.app-redesign .panel-body .row > .col-sm-6,
.app-redesign .panel-body .row > .col-sm-4,
.app-redesign .panel-body .row > .col-sm-8 {
  font-size: 13px;
  line-height: 1.7;
}
.app-redesign .panel-body table.table-bordered,
.app-redesign .panel-body .table-bordered {
  border: 1px solid var(--line);
  background: #fff;
}
.app-redesign .panel-body .table-bordered th,
.app-redesign .panel-body .table-bordered td {
  border-color: var(--line-soft);
  padding: 14px 18px;
  vertical-align: middle;
  font-size: 13px;
}
.app-redesign .panel-body .table-bordered th {
  background: var(--paper-2);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* ---------- Inputs in narrow layouts (postal code, etc.) - sizes only, styling is unified above ---------- */

/* ---------- Credit card iframe / inline field on step 5 ---------- */
.app-redesign .credit-card,
.app-redesign [id*="card"],
.app-redesign .area-credit-card iframe {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 4px;
}

/* ---------- Submit button on step 5 (上記の内容で注文を確定する) ---------- */
.app-redesign .btn-success,
.app-redesign input[type="submit"].btn-success {
  background: var(--red) !important;
  border: none !important;
  color: #fff !important;
  font-weight: 700 !important;
  padding: 18px 48px !important;
  font-size: 15px !important;
  letter-spacing: 0.04em;
  border-radius: 2px !important;
  box-shadow: 0 2px 10px rgba(200, 16, 46, 0.3) !important;
  text-shadow: none !important;
}
.app-redesign .btn-success:hover {
  background: var(--red-dark) !important;
  box-shadow: 0 4px 16px rgba(200, 16, 46, 0.4) !important;
  transform: translateY(-1px);
}

/* ====================================================================
   Step 3 — 認証方式を選択 etc. spacing fixes
   ==================================================================== */
.app-redesign .panel-body h5,
.app-redesign .panel-body .text-info,
.app-redesign .panel-body .section-label,
.app-redesign .panel-body > .row > .col-sm-12 > h5 {
  font-family: 'Shippori Mincho', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 28px;
  padding: 48px 0 16px;     /* 上の罫線から大きく離す（28→48px） */
  border-bottom: 1px solid var(--line);
  line-height: 1.5;
}

/* 必須バッジが見出し直後に置かれる場合の整列 */
.app-redesign h4 + .label-danger,
.app-redesign h5 + .label-danger,
.app-redesign h3 + .label-danger {
  margin-left: 8px;
  vertical-align: middle;
}
.app-redesign .label-danger + h4,
.app-redesign .label-danger + h5 {
  display: inline-block;
  margin-left: 8px;
}

/* ====================================================================
   Step 4 — 申請情報入力: ラベル折り返し防止 + 入力欄スペース
   ==================================================================== */

/* ラベル列は和文ラベルが折り返さない最低幅を確保 */
.app-redesign .panel-body .col-sm-3,
.app-redesign .panel-body .col-md-3 {
  min-width: 160px;
}

/* ラベル内テキスト（申請企業・団体名 等）を折り返さない */
.app-redesign .panel-body .col-sm-3 > label,
.app-redesign .panel-body .col-md-3 > label,
.app-redesign form label.control-label,
.app-redesign form .col-sm-3 > strong,
.app-redesign form .col-md-3 > strong,
.app-redesign form .form-group > label {
  white-space: nowrap;
  display: inline-block;
}

/* 郵便番号など短い input がインライン横並びを維持 */
.app-redesign input[type="text"][style*="width:"],
.app-redesign input[type="text"][style*="width "],
.app-redesign .form-control[style*="width:"] {
  display: inline-block !important;
  vertical-align: middle !important;
  margin-right: 4px;
}

/* 郵便番号フィールド: 改行絶対しない
   実HTMLは <input style="float:left"><div style="float:left">－</div><input>
   1個目だけ float してる構造なので親を flex にしてフロートを全部殺す */
.app-redesign .form-group:has(input[id*="postcode"]),
.app-redesign .form-group:has(input[id*="zip"]),
.app-redesign .form-group:has(input[name*="postcode"]),
.app-redesign .form-group:has(input[name*="zipcode"]) {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;
}
.app-redesign input[id*="postcode"],
.app-redesign input[name*="postcode"],
.app-redesign input[id*="zip"],
.app-redesign input[name*="zip"] {
  float: none !important;
  display: inline-block !important;
  width: 88px !important;
  flex: 0 0 88px !important;
  padding: 11px 8px !important;
  text-align: center !important;
  font-family: 'JetBrains Mono', monospace !important;
  margin: 0 !important;
  vertical-align: middle !important;
}
.app-redesign .form-group-addon,
.app-redesign .form-group:has(input[id*="postcode"]) .form-group-addon {
  float: none !important;
  display: inline-flex !important;
  align-items: center;
  flex: 0 0 auto !important;
  font-family: 'JetBrains Mono', monospace;
  color: var(--muted);
  padding: 0 2px;
  margin: 0 !important;
}
/* 郵便番号セルが col-md-2 だと狭すぎるので auto に */
.app-redesign .panel-body .row > .col-md-2:has(input[id*="postcode"]) {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 220px;
}

/* 行間にゆとり: row 同士・form-group 同士 */
.app-redesign .panel-body .row + .row,
.app-redesign .form-group + .form-group,
.app-redesign .panel-body > .row + .row {
  margin-top: 20px;
}

/* 縦に積まれた input 群（住所3行など）の間隔 */
.app-redesign .panel-body input[type="text"] + input[type="text"],
.app-redesign .panel-body input + br + input,
.app-redesign form .col-sm-6 > input + input,
.app-redesign form .col-md-6 > input + input {
  margin-top: 10px;
}

/* 「申請組織・担当者情報よりコピー」みたいなインライン操作ボタン */
.app-redesign .btn-info,
.app-redesign .btn.btn-info {
  background: transparent !important;
  border: 1px solid var(--ink) !important;
  color: var(--ink) !important;
  font-size: 11px !important;
  font-weight: 700;
  padding: 4px 12px !important;
  border-radius: 2px !important;
  letter-spacing: 0.02em;
  box-shadow: none !important;
  text-shadow: none !important;
}
.app-redesign .btn-info:hover {
  background: var(--ink) !important;
  color: #fff !important;
}

/* ====================================================================
   Step 5 — 確認・お支払い: 決済金額の大型表示 + カードロゴ整理
   ==================================================================== */

/* 決済金額の数値を大きく明朝で */
.app-redesign .panel-body strong:has(+ small),
.app-redesign .price-display,
.app-redesign .panel-body > .row strong {
  font-family: 'Shippori Mincho', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.01em;
}

/* 「税込み」みたいな small は控えめに */
.app-redesign .panel-body small.tax-note,
.app-redesign .panel-body strong + small {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 0.06em;
  margin-left: 8px;
  font-weight: 500;
}

/* カードロゴ列 — 白だと浮くのでクリームの箱で受ける */
.app-redesign .card-logos,
.app-redesign .panel-body img[src*="card"] {
  background: var(--paper);
}
.app-redesign .panel-body .col-sm-6 > img,
.app-redesign .panel-body .col-md-6 > img,
.app-redesign .panel-body .row > div > img[src*="brand"],
.app-redesign .panel-body .row > div > img[src*="card"] {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 3px;
  padding: 4px 6px;
  margin: 0 4px 4px 0;
  height: 24px;
  vertical-align: middle;
}

/* カード入力エリア全体に「決済セクション」感を */
.app-redesign .panel-body .row:has(input[name*="card"]),
.app-redesign .area-credit-card,
.app-redesign .payment-section {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 24px;
  margin: 16px 0;
}

/* カード番号インラインフォーム（card-number / mm/yy / cvc が横並び） */
.app-redesign input[name*="card_number"],
.app-redesign input[name*="cardNumber"],
.app-redesign .credit-card-input {
  padding: 12px 16px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 14px !important;
  letter-spacing: 0.04em;
}

/* 書類送付先入力欄を入力フィールドらしく */
.app-redesign input[name*="address"],
.app-redesign input[name*="invoice"],
.app-redesign input[name*="receipt"] {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  padding: 10px 14px !important;
  width: 100%;
  max-width: 400px;
}
.app-redesign .form-control:focus {
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.12);
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .app-redesign footer.app .inner {
    grid-template-columns: 1fr;
    grid-template-areas: "brand" "nav" "bottom";
    gap: 40px;
  }
  .app-redesign .foot-nav { justify-self: start; min-width: 0; width: 100%; }
}

@media (max-width: 720px) {
  .app-redesign header.app .inner,
  .app-redesign .stepper .inner,
  body.app-redesign > .row,
  .app-redesign footer.app .inner { padding-left: 20px; padding-right: 20px; }
  .app-redesign .stepper-meta { flex-direction: column; gap: 8px; align-items: flex-start; }
  .app-redesign .steps { grid-template-columns: repeat(3, 1fr); gap: 8px 4px; }
  .app-redesign .doc-list li { grid-template-columns: 32px 1fr; gap: 12px; padding: 14px 16px; }
  .app-redesign .doc-list .doc-link { grid-column: 2 / 3; justify-self: start; margin-top: 8px; }
  .app-redesign .payment-card { grid-template-columns: 1fr; }
  .app-redesign .actions { flex-direction: column-reverse; align-items: stretch; }
  .app-redesign .actions .btn-redesign { justify-content: center; }
  .app-redesign .head-nav { display: none; }
  .app-redesign .consent { padding: 24px; }
  .app-redesign .foot-nav { grid-template-columns: 1fr 1fr; gap: 24px; }
  .app-redesign .foot-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}
