/* Presentation only: no payment visibility, flow, product data, or legal copy changes. */
body.renewal-utility {
  --utility-navy: #1b2436;
  --utility-ink: #243247;
  --utility-muted: #58677c;
  --utility-line: #dce2ea;
  --utility-surface: #f4f6f9;
  color: var(--utility-ink);
  background: var(--utility-surface);
  font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.renewal-utility main { min-width: 0; }
body.renewal-utility main [hidden] { display: none !important; }
body.renewal-utility main :is(h1,h2,h3) { text-wrap: balance; }
body.renewal-utility main :is(a,button,input):focus-visible {
  outline: 3px solid #4c78ba;
  outline-offset: 4px;
}
body.renewal-utility main a:not(.button-primary):not(.button-secondary):not(.nf-home) {
  color: #284c7c;
  text-decoration-color: #a8b9cf;
  text-underline-offset: 4px;
}
body.renewal-utility main :is(.button-primary,.nf-home) {
  background: var(--utility-navy);
  color: #fff;
  border: 1px solid var(--utility-navy);
  border-radius: 9px;
  box-shadow: 0 1px 2px #1b243612;
  font-weight: 600;
  letter-spacing: -.025em;
  transition: background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
body.renewal-utility main :is(.button-primary,.nf-home):hover:not(:disabled) {
  background: #2b3b54;
  border-color: #2b3b54;
  box-shadow: 0 3px 10px #1b243614;
}
body.renewal-utility main .button-secondary {
  color: var(--utility-navy);
  background: #fff;
  border: 1px solid #cbd4df;
  border-radius: 9px;
  box-shadow: none;
  font-weight: 600;
}

/* Checkout: compact selection controls and a distinct, calm payment summary. */
body.renewal-checkout .checkout-main {
  width: min(1200px, calc(100% - 64px));
  max-width: 1200px;
  padding: 60px 0 88px;
}
body.renewal-checkout .section-heading.compact {
  display: block;
  margin: 0 0 36px;
  max-width: 820px;
  text-align: left;
}
body.renewal-checkout .section-heading .eyebrow {
  margin: 0 0 14px;
  color: #63758c;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
}
body.renewal-checkout .section-heading h1 {
  margin: 0 0 14px;
  color: var(--utility-navy);
  font-size: clamp(32px, 3.5vw, 44px);
  font-weight: 650;
  letter-spacing: -.055em;
  line-height: 1.2;
}
body.renewal-checkout .section-heading > p:not(.eyebrow) {
  margin: 0;
  color: var(--utility-muted);
  font-size: 16px;
  line-height: 1.7;
  word-break: keep-all;
}
body.renewal-checkout .checkout-grid { gap: 24px; }
body.renewal-checkout .co-card {
  padding: 28px;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 0 0 1px var(--utility-line), 0 4px 16px #1b243605;
  background: #fff;
}
body.renewal-checkout .co-step {
  margin: 0 0 23px;
  color: var(--utility-navy);
  font-size: 19px;
  font-weight: 650;
  letter-spacing: -.035em;
}
body.renewal-checkout .co-num {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  background: #eef2f7;
  color: #455773;
}
body.renewal-checkout .co-products { gap: 12px; }
body.renewal-checkout .co-product {
  display: grid;
  grid-template-columns: 18px 80px minmax(0, 1fr);
  column-gap: 12px;
  row-gap: 10px;
  padding: 18px;
  border: 1px solid #dee4eb;
  border-radius: 10px;
  background: #fff;
  align-items: start;
}
body.renewal-checkout .co-product:hover { border-color: #9aaabd; background: #fafbfc; }
body.renewal-checkout .co-product:has(input:checked) {
  border-color: #425d80;
  background: #f2f5fa;
  box-shadow: 0 0 0 1px #425d80;
}
body.renewal-checkout .co-product input { grid-column: 1; grid-row: 1; accent-color: var(--utility-navy); }
body.renewal-checkout .co-p-thumb {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 80px;
  height: 60px;
  margin: 2px 0 0;
  border-radius: 6px;
  border-color: #dbe2eb;
  order: initial;
}
body.renewal-checkout .co-p-body { grid-column: 3; grid-row: 1; gap: 6px; }
body.renewal-checkout .co-p-name { color: var(--utility-navy); font-size: 16px; font-weight: 650; line-height: 1.45; letter-spacing: -.035em; }
body.renewal-checkout .co-p-desc { color: #56657a; font-size: 13px; line-height: 1.65; }
body.renewal-checkout .co-p-term { color: #465b76; font-size: 12px; font-weight: 550; line-height: 1.55; }
body.renewal-checkout .co-p-price { grid-column: 3; grid-row: 2; color: var(--utility-navy); font-size: 18px; font-weight: 650; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
body.renewal-checkout .co-tag { color: #355170; background: #e5ebf3; font-size: 11px; font-weight: 600; }
body.renewal-checkout .co-fields { gap: 18px; }
body.renewal-checkout .co-field { gap: 8px; }
body.renewal-checkout .co-field span { color: #34455d; font-size: 14px; font-weight: 550; }
body.renewal-checkout .co-field input {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 12px 14px;
  border-radius: 8px;
  border-color: #cbd4df;
  background: #fff;
  color: var(--utility-navy);
  font-size: 16px;
  box-shadow: 0 1px 2px #1b243604 inset;
}
body.renewal-checkout .co-field input::placeholder { color: #7a8799; opacity: 1; }
body.renewal-checkout .co-field input:focus { border-color: #526e93; outline: 3px solid #c7d6eb; outline-offset: 1px; }
body.renewal-checkout :is(.co-hint,.co-terms-line) { color: #5b6b81; font-size: 12px; line-height: 1.7; }
body.renewal-checkout .co-summary { border-top: 4px solid var(--utility-navy); }
body.renewal-checkout .co-summary .co-num { background: var(--utility-navy); color: #fff; }
body.renewal-checkout .co-sum-rows { gap: 14px; margin-bottom: 24px; }
body.renewal-checkout .co-sum-row { gap: 24px; line-height: 1.55; }
body.renewal-checkout .co-sum-row span { color: #617188; font-size: 13px; }
body.renewal-checkout .co-sum-row b { color: #28394f; font-size: 14px; font-weight: 550; }
body.renewal-checkout .co-total { padding: 20px 0; margin-bottom: 24px; border-color: var(--utility-line); }
body.renewal-checkout .co-total > span { color: #42536c; font-size: 14px; }
body.renewal-checkout .co-total strong { color: var(--utility-navy); font-size: 27px; font-weight: 650; letter-spacing: -.04em; }
body.renewal-checkout .co-total strong span { color: inherit; font-size: inherit; font-weight: inherit; font-variant-numeric: tabular-nums; }
body.renewal-checkout .co-method { min-height: 48px; border-color: #d9e0e9; border-radius: 8px; color: #45546b; font-weight: 500; }
body.renewal-checkout .co-method:has(input:checked) { color: var(--utility-navy); border-color: #6e839f; background: #f0f4f9; font-weight: 600; }
body.renewal-checkout .co-method input,
body.renewal-checkout .co-agree input { accent-color: var(--utility-navy); }
body.renewal-checkout .co-agree { color: #45556b; font-size: 13px; line-height: 1.75; margin: 20px 0; }
body.renewal-checkout .co-pay-btn { min-height: 52px; font-size: 16px; font-weight: 600; }
body.renewal-checkout .co-pay-btn:disabled { opacity: 1; color: #68788d; background: #e4e9f0; border-color: #e4e9f0; box-shadow: none; }
body.renewal-checkout .co-refund { margin-top: 26px; padding-top: 22px; border-color: var(--utility-line); }
body.renewal-checkout .co-refund-title { color: #34465f; font-size: 13px; font-weight: 650; }
body.renewal-checkout .co-refund ul { gap: 9px; padding-left: 16px; }
body.renewal-checkout .co-refund li { color: #56667b; font-size: 12px; line-height: 1.75; }
body.renewal-checkout .co-refund li b { font-weight: 600; color: #3b4d65; }
body.renewal-checkout .co-billing-desc { background: #eef3f9; border-color: #d6e1ef; color: #405775; }
body.renewal-checkout .co-err { color: #9a363c; background: #fff3f3; border-color: #efd4d6; line-height: 1.65; }

/* Result pages: one clear state, readable order details and next action. */
body.renewal-result .checkout-main { max-width: 760px; width: calc(100% - 48px); padding: 64px 0 80px; }
body.renewal-result .co-result { max-width: 680px; margin: 0 auto; padding: 48px; border: 0; border-radius: 16px; box-shadow: 0 0 0 1px var(--utility-line), 0 16px 40px #1b243608; }
body.renewal-result .co-result-icon { width: 56px; height: 56px; border-radius: 15px; margin-bottom: 26px; font-size: 26px; font-weight: 500; }
body.renewal-result .co-result--ok .co-result-icon { color: #fff; background: var(--utility-navy); }
body.renewal-result .co-result--fail .co-result-icon { color: #9c4c42; background: #fbefea; box-shadow: 0 0 0 1px #efdad2; }
body.renewal-result .co-result h1 { color: var(--utility-navy); font-size: clamp(26px, 3vw, 34px); font-weight: 650; letter-spacing: -.045em; line-height: 1.3; margin-bottom: 16px; }
body.renewal-result .co-result > p { color: var(--utility-muted); font-size: 15px; line-height: 1.85; }
body.renewal-result .co-result-rows { padding: 20px; margin: 28px 0; border-radius: 9px; background: #f1f4f8; gap: 14px 24px; }
body.renewal-result .co-result-rows:empty { padding: 0; margin: 0; }
body.renewal-result .co-result-rows dt { color: #5e6f85; font-size: 13px; }
body.renewal-result .co-result-rows dd { color: #2e405a; font-size: 14px; font-weight: 550; line-height: 1.6; overflow-wrap: anywhere; }
body.renewal-result .co-result > .co-note { color: #617188; font-size: 13px; }
body.renewal-result .co-result-cta { gap: 12px; margin-top: 30px; }
body.renewal-result .co-result-cta a { min-height: 48px; padding: 12px 24px; font-size: 14px; }

/* Legal documents: a quiet document title rail and a generous reading column. */
body.renewal-legal main { display: grid; grid-template-columns: 244px minmax(0, 1fr); align-items: start; gap: 56px; max-width: 1160px; width: calc(100% - 64px); margin: 0 auto; padding: 64px 0 88px; }
body.renewal-legal .legal-head { position: sticky; top: 116px; padding: 5px 0 0; }
body.renewal-legal .legal-head h1 { margin: 0; color: var(--utility-navy); font-size: 40px; font-weight: 650; line-height: 1.25; letter-spacing: -.055em; word-break: keep-all; }
body.renewal-legal .legal-head p { color: #5b6b81; margin: 22px 0 0; padding-top: 20px; border-top: 1px solid #cdd6e2; font-size: 13px; line-height: 1.6; }
body.renewal-legal article.legal-body { min-width: 0; background: #fff; border: 0; border-radius: 12px; padding: 40px 44px; margin: 0; box-shadow: 0 0 0 1px var(--utility-line), 0 4px 20px #1b243604; }
body.renewal-legal .legal-body h2 { margin: 32px 0 14px; padding-top: 28px; border-top: 1px solid #e7ecf2; color: var(--utility-navy); font-size: 18px; font-weight: 650; letter-spacing: -.03em; line-height: 1.5; }
body.renewal-legal .legal-body h2:first-child { padding-top: 0; border-top: 0; margin-top: 0; }
body.renewal-legal .legal-body :is(p,li) { font-size: 15px; line-height: 1.9; color: #42536a; word-break: keep-all; overflow-wrap: anywhere; }
body.renewal-legal .legal-body :is(p,ul,ol) { margin: 10px 0; }
body.renewal-legal .legal-body :is(ul,ol) { padding-left: 20px; gap: 9px; }
body.renewal-legal .legal-body li::marker { color: #7890af; }
body.renewal-legal .legal-body strong { font-weight: 600; color: #283e5b; }
body.renewal-legal .legal-body ul ul { margin-top: 12px; padding: 14px 18px 14px 32px; background: #f5f7fa; border-radius: 8px; }
body.renewal-legal .legal-body .legal-note { margin: 20px 0; padding: 16px 18px; background: #f1f5f9; border-radius: 8px; color: #526781; font-size: 13px; line-height: 1.8; }
body.renewal-legal .legal-body table.legal-table { table-layout: fixed; border-collapse: separate; border-spacing: 0; width: 100%; margin: 20px 0; border: 1px solid #dce3ec; border-radius: 9px; overflow: hidden; font-size: 14px; line-height: 1.8; }
body.renewal-legal .legal-body table.legal-table :is(th,td) { padding: 16px; border: 0; border-bottom: 1px solid #e2e8f0; color: #40536e; word-break: keep-all; overflow-wrap: anywhere; }
body.renewal-legal .legal-body table.legal-table th { color: #344d6c; background: #edf2f8; font-weight: 600; }
body.renewal-legal .legal-body table.legal-table :is(th,td):first-child { width: 31%; border-right: 1px solid #e2e8f0; }
body.renewal-legal .legal-body table.legal-table tbody tr:last-child td { border-bottom: 0; }
body.renewal-legal .legal-body table.legal-table tbody tr:nth-child(even) { background: #fafbfd; }

body.renewal-notfound main { width: calc(100% - 48px); max-width: 760px; padding: 72px 0 88px; margin: 0 auto; }
body.renewal-notfound .nf-wrap { max-width: 680px; padding: 52px 42px 36px; background: #fff; border-radius: 16px; box-shadow: 0 0 0 1px var(--utility-line), 0 12px 40px #1b243606; }
body.renewal-notfound .nf-icon { color: #526b8f; width: 52px; height: 52px; margin-bottom: 28px; }
body.renewal-notfound .nf-wrap h1 { color: var(--utility-navy); font-size: clamp(28px, 3vw, 36px); font-weight: 650; line-height: 1.3; letter-spacing: -.055em; }
body.renewal-notfound .nf-wrap p { color: var(--utility-muted); font-size: 15px; line-height: 1.8; margin: 20px auto 28px; }
body.renewal-notfound .nf-home { min-height: 48px; padding: 12px 24px; font-size: 14px; }
body.renewal-notfound .nf-links { gap: 24px; padding-top: 20px; margin-top: 28px; border-top: 1px solid #e4e9f0; }

@media (min-width: 1000px) {
  body.renewal-checkout .checkout-grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
  body.renewal-checkout .co-summary { top: 96px; }
}
@media (max-width: 999px) {
  body.renewal-checkout .checkout-grid { grid-template-columns: minmax(0, 1fr); }
  body.renewal-checkout .co-card,
  body.renewal-checkout .co-summary { grid-column: 1; grid-row: auto; position: static; }
  body.renewal-legal main { grid-template-columns: minmax(0, 1fr); max-width: 800px; gap: 32px; padding-top: 48px; }
  body.renewal-legal .legal-head { position: static; }
  body.renewal-legal .legal-head p { margin-top: 14px; padding: 0; border: 0; }
}
@media (max-width: 599px) {
  body.renewal-checkout .checkout-main { width: calc(100% - 32px); padding: 36px 0 56px; }
  body.renewal-checkout .section-heading.compact { margin-bottom: 28px; }
  body.renewal-checkout .section-heading > p:not(.eyebrow) { font-size: 14px; }
  body.renewal-checkout .checkout-grid { gap: 18px; }
  body.renewal-checkout .co-card { padding: 22px 18px; border-radius: 11px; }
  body.renewal-checkout .co-product { grid-template-columns: 18px minmax(0, 1fr) 68px; gap: 9px 10px; padding: 14px 12px; }
  body.renewal-checkout .co-p-body { grid-column: 2 / span 2; grid-row: 2; }
  body.renewal-checkout .co-product input { grid-row: 2; }
  body.renewal-checkout .co-p-thumb { grid-column: 2 / span 2; grid-row: 1; width: 100%; height: 80px; object-fit: cover; object-position: top center; margin: 0 0 4px; }
  body.renewal-checkout .co-p-price { grid-column: 2 / span 2; grid-row: 3; margin-top: 2px; }
  body.renewal-checkout .co-p-name { font-size: 15px; }
  body.renewal-checkout .co-p-desc { font-size: 12px; }
  body.renewal-checkout .co-p-term { font-size: 12px; }
  body.renewal-checkout .co-sum-row { gap: 16px; }
  body.renewal-checkout .co-total strong { font-size: 26px; }
  body.renewal-result .checkout-main,
  body.renewal-notfound main { width: calc(100% - 32px); padding: 36px 0 56px; }
  body.renewal-result .co-result,
  body.renewal-notfound .nf-wrap { padding: 32px 22px; border-radius: 12px; }
  body.renewal-result .co-result-cta { flex-direction: column; }
  body.renewal-result .co-result-cta a { justify-content: center; }
  body.renewal-result .co-result-rows { padding: 16px; gap: 12px 16px; }
  body.renewal-result .co-result-rows dd { font-size: 13px; }
  body.renewal-legal main { width: calc(100% - 32px); padding: 36px 0 56px; gap: 28px; }
  body.renewal-legal .legal-head h1 { font-size: 32px; }
  body.renewal-legal article.legal-body { padding: 26px 20px; border-radius: 10px; }
  body.renewal-legal .legal-body h2 { font-size: 17px; margin-top: 26px; padding-top: 24px; }
  body.renewal-legal .legal-body :is(p,li) { font-size: 14px; line-height: 1.85; }
  body.renewal-legal .legal-body table.legal-table { font-size: 12px; line-height: 1.85; }
  body.renewal-legal .legal-body table.legal-table :is(th,td) { padding: 12px 9px; }
}
@media (prefers-reduced-motion: reduce) {
  body.renewal-utility main :is(a,button,input,label) { transition: none; }
}
@media print {
  body.renewal-legal { background: #fff; }
  body.renewal-legal main { display: block; width: 100%; padding: 0; }
  body.renewal-legal .legal-head { position: static; margin-bottom: 24px; }
  body.renewal-legal article.legal-body { padding: 0; box-shadow: none; }
  body.renewal-legal .legal-body h2 { break-after: avoid; }
  body.renewal-legal .legal-table tr { break-inside: avoid; }
}
