/* ============================
   online consult - title
============================ */
.apply-status-section {
  margin: 40px 0;
  border: 0 solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
  padding: 10px 10px 20px;
}
.apply-status-section-notice { position: relative; border: 0 solid #e5e7eb; border-radius: 12px; background:#fff; padding:0; overflow:hidden; }
.apply-status-title { display:inline-block; font-size:20px; font-weight:600; color:#111; padding-left:10px; border-left:3px solid #2563eb; margin:10px 0 20px; }
.apply-status-subtitle { font-size:14px; color:#6b7280; margin-bottom:24px; }
.apply-status-grid-2x { display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:24px !important; margin-top:24px; }
.apply-box { border:1px solid #e5e7eb; border-radius:16px; padding:20px; background:#fff; }
.apply-box-header { font-size:18px; font-weight:700; margin-bottom:14px; }
.apply-box-list div { padding:8px 0; border-bottom:1px solid #f3f4f6; font-size:16px; line-height:1.5; }
.apply-box-list div:last-child { border-bottom:none; }
.loading-spinner { width:28px; height:28px; border:3px solid #e5e7eb; border-top-color:#4f46e5; border-radius:50%; animation:spin .8s linear infinite; margin:12px auto; }
@keyframes spin { to { transform:rotate(360deg); } }

.calc-consult-section { margin:32px 0; padding:0; }
.calc-card-scroll { display:flex; gap:16px; overflow-x:auto; padding:10px 0 20px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.calc-card-scroll::-webkit-scrollbar { display:none; }
.calc-card { flex:0 0 calc(33.333% - 16px); background:#fff; border-radius:16px; padding:16px 12px; min-width:200px; border:2px solid #e5e7eb; transition:border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.calc-total-strong { font-weight:800; color:#059669; font-size:18px; }
.calc-pay-box-monthly { background:#fff4f4; border:2px solid #e53935; border-radius:10px; padding:12px; }
.calc-pay-box-monthly .calc-value { font-weight:900; color:#b71c1c; font-size:18px; }

.doc-consult-section { margin:60px 0; padding:0 20px; }
.doc-card-scroll { display:flex; gap:16px; overflow-x:auto; padding:10px 10px 20px; white-space:nowrap; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.doc-card-scroll::-webkit-scrollbar { display:none; }
.doc-card { position:relative; flex:0 0 calc(33.33% - 16px); background:#fff; border-radius:16px; padding:24px; border:2px solid #e5e7eb; box-shadow:0 2px 4px rgba(0,0,0,.05); transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease; }
.doc-card.highlight { border-color:#8b5cf6; border-width:4px; box-shadow:0 0 14px rgba(139,92,246,.7); transform:scale(1.05); }
.calc-title { display:flex; align-items:center; gap:6px; font-size:17px; font-weight:700; margin-bottom:8px; }
.calc-icon-img { width:18px; height:18px; opacity:.85; }
.apply-status-grid-5x { display:grid; grid-template-columns:repeat(5,1fr); gap:24px; margin-top:24px; }
.calc-pay-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:10px 0; }
.calc-pay-box { background:#f9fafb; padding:10px 12px; border-radius:8px; text-align:center; }
.calc-label { display:block; font-size:13px; color:#6b7280; margin-bottom:4px; }
.calc-value { font-size:17px; font-weight:700; color:#111827; }
.video-consult-title { display:inline-flex; align-items:center; gap:9px; margin:0; }
.realtime-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 7px; border:1px solid #fecaca; border-radius:999px; background:#fff1f2; color:#ef4444; font-size:11px; font-weight:700; line-height:1; white-space:nowrap; }
.realtime-icon,.calc-live-realtime-icon { display:block; overflow:visible; }
.realtime-circle,.calc-live-realtime-circle { fill:red; }
.realtime-ping { fill:none; stroke:red; stroke-width:2; animation:realtime-ping 1.2s infinite; }

.calc-live-banner { width:100%; max-width:100%; margin:18px 0 26px; overflow:hidden; box-sizing:border-box; }
.calc-live-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 16px; border-bottom:1px solid #fee2e2; background:#fef2f2; }
.calc-live-count { padding:12px 16px; border-bottom:1px solid #f3f4f6; font-weight:700; color:#dc2626; }
.calc-live-title { color:#b91c1c; font-size:15px; font-weight:700; }
.calc-live-title strong { color:#dc2626; font-size:17px; font-weight:900; }
.calc-live-realtime { display:inline-flex; align-items:center; gap:4px; flex-shrink:0; color:red; font-size:11px; font-weight:700; white-space:nowrap; }
.calc-live-realtime-ping { fill:none; stroke:red; stroke-width:2; transform-origin:center; animation:calc-live-ping 1.4s ease-out infinite; }
.calc-live-marquee { position:relative; width:100%; max-width:100%; overflow:hidden; white-space:nowrap; box-sizing:border-box; }
.calc-live-track { display:inline-flex; align-items:center; padding:12px 0; white-space:nowrap; will-change:transform; }
.calc-live-track.is-running { animation:calc-live-scroll 12s linear infinite; }
.calc-live-track:hover { animation-play-state:paused; }
.calc-live-group { display:inline-flex; align-items:center; flex-shrink:0; }
.calc-live-item { display:inline-flex; align-items:center; flex-shrink:0; gap:3px; margin:0 8px; white-space:nowrap; }
.calc-live-name { color:#374151; font-weight:700; }
.calc-live-payment,.calc-live-item strong { color:#2563eb; font-weight:800; }
.calc-live-dot { margin:0 1px; color:#9ca3af; }
.calc-live-time { margin:0; color:#6b7280; font-size:12px; font-weight:500; white-space:nowrap; }
.calc-live-divider { flex-shrink:0; margin:0 2px; color:#d1d5db; }
.calc-live-loading,.calc-live-empty { display:inline-block; padding:0 16px; color:#6b7280; font-weight:500; }

.case-guide-section { margin:30px 0; }
.case-guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.case-guide-box { background:#fff; border:1px solid #e5e7eb; border-radius:10px; overflow:hidden; }
.case-guide-title { padding:14px 16px; background:#f8fafc; border-bottom:1px solid #e5e7eb; font-size:16px; font-weight:700; }
.case-guide-list { display:flex; flex-direction:column; }
.case-guide-item { display:grid; grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) auto; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid #f1f5f9; font-size:14px; }
.case-guide-item:last-child { border-bottom:none; }
.case-name { font-weight:600; }
.case-court { color:#6b7280; }
.case-number { text-align:right; color:#64748b; font-weight:600; }
.case-guide-loading { display:block; width:100%; box-sizing:border-box; padding:20px 16px; text-align:center; white-space:nowrap; }
.case-person { display:flex; align-items:center; gap:4px; white-space:nowrap; }
.case-progress-type { display:inline-flex; align-items:center; justify-content:center; justify-self:end; min-width:58px; min-height:23px; padding:3px 7px; border:1px solid transparent; border-radius:6px; font-size:11px; font-weight:700; line-height:1; white-space:nowrap; box-sizing:border-box; color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.case-progress-type.is-empty { min-width:auto; padding:0; background:transparent; border:0; color:#94a3b8; font-weight:500; }
.case-progress-blue { color:#2563eb; background:#eff6ff; border-color:#bfdbfe; }
.case-progress-teal { color:#0891b2; background:#ecfeff; border-color:#a5f3fc; }
.case-progress-purple { color:#7c3aed; background:#f5f3ff; border-color:#ddd6fe; }
.case-progress-green { color:#059669; background:#ecfdf5; border-color:#a7f3d0; }
.case-progress-red { color:#dc2626; background:#fef2f2; border-color:#fecaca; }
.case-progress-gray { color:#64748b; background:#f8fafc; border-color:#e2e8f0; }
.calc-status-value { display:inline-flex; align-items:center; justify-content:center; color:#2684ff; font-size:12px; font-weight:700; line-height:1.35; word-break:keep-all; }
.calc-pay-box-monthly .calc-status-value { color:#2684ff; }

@keyframes calc-live-scroll { from { transform:translateX(100%); } to { transform:translateX(-100%); } }
@keyframes calc-live-ping { 0% { opacity:.8; transform:scale(.65); } 70%,100% { opacity:0; transform:scale(1.25); } }
@keyframes liveScroll { from { transform:translateX(100%); } to { transform:translateX(-100%); } }
@keyframes calcLiveMove { from { transform:translateY(-50%) translateX(0); } to { transform:translateY(-50%) translateX(-50%); } }
@keyframes realtime-ping { 0% { opacity:.75; transform:scale(.65); } 70%,100% { opacity:0; transform:scale(1.25); } }

/* ========================================
   Main repayment calculator banner - portal style
======================================== */
.main-top-banner.two-col-banner {
  display:flex; align-items:center; gap:24px; width:100%; padding:26px 28px;
  box-sizing:border-box; background:#fff; border:1px solid #e5e7eb; border-radius:14px;
}
.main-top-banner .banner-left { flex:0 0 110px; display:flex; align-items:center; justify-content:center; }
.main-top-banner .banner-character { display:block; width:90px; max-width:100%; height:auto; }
.main-top-banner .banner-right { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center; }
.banner-title-row { position:relative; display:block; width:100%; padding-right:0; box-sizing:border-box; text-align:center; }
.banner-title-row .banner-title { margin:0; width:100%; color:#1f2937; font-size:25px; font-weight:800; line-height:1.3; letter-spacing:-.04em; word-break:keep-all; overflow-wrap:normal; }
.main-top-banner .banner-desc { margin:5px 0 0; color:#4b5563; font-size:15px; line-height:1.55; text-align:center; word-break:keep-all; }
.main-top-banner .banner-consult-guide { display:flex; align-items:center; justify-content:center; gap:5px; margin:9px 0 14px; color:#52647a; font-size:13px; font-weight:500; line-height:1.5; text-align:center; word-break:keep-all; }
.main-top-banner .banner-consult-guide .check { flex:0 0 auto; color:#2684ff; font-size:15px; font-weight:800; }
.main-top-banner .banner-btn { display:inline-flex; align-items:center; justify-content:center; width:auto; min-width:360px; max-width:420px; min-height:48px; margin:0 auto; padding:0 36px; box-sizing:border-box; background:#2684ff; color:#fff; border-radius:9px; font-size:16px; font-weight:700; text-align:center; text-decoration:none; transition:background-color .2s ease,transform .15s ease; }
.main-top-banner .banner-btn:hover { background:#1d4ed8; }
.main-top-banner .banner-btn:active { transform:translateY(1px); }

.banner-guide-badge { position:absolute; top:50%; right:0; transform:translateY(-50%); display:inline-flex; align-items:center; justify-content:center; width:21px; height:21px; border:1px solid #2684ff; border-radius:50%; background:#fff; color:#2684ff; font-size:13px; font-weight:700; line-height:1; text-decoration:none; cursor:pointer; z-index:20; transition:color .2s ease,background-color .2s ease,border-color .2s ease; }
.banner-guide-badge:hover,.banner-guide-badge:focus-visible { color:#fff; background:#1d4ed8; border-color:#1d4ed8; }
.banner-guide-tooltip { position:absolute; right:-4px; bottom:calc(100% + 9px); width:max-content; max-width:220px; padding:7px 10px; border-radius:6px; background:#1f2937; color:#fff; font-size:12px; font-weight:500; line-height:1.4; white-space:nowrap; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(4px); transition:opacity .18s ease,visibility .18s ease,transform .18s ease; z-index:50; }
.banner-guide-tooltip::after { content:""; position:absolute; top:100%; right:9px; border:5px solid transparent; border-top-color:#1f2937; }
.banner-guide-badge:hover .banner-guide-tooltip,.banner-guide-badge:focus-visible .banner-guide-tooltip { opacity:1; visibility:visible; transform:translateY(0); }
.banner-guide-badge:focus-visible { outline:2px solid #2684ff; outline-offset:3px; }

@media (max-width:768px) {
  .main-top-banner.two-col-banner { display:grid; grid-template-columns:70px minmax(0,1fr); align-items:center; column-gap:10px; width:100%; padding:18px 12px; box-sizing:border-box; overflow:hidden; border-radius:0; }
  .main-top-banner .banner-left { width:70px; min-width:0; }
  .main-top-banner .banner-character { width:62px; max-width:100%; }
  .main-top-banner .banner-right { width:100%; min-width:0; display:flex; flex-direction:column; align-items:stretch; text-align:left; }
  .main-top-banner .banner-title-row { width:100%; padding-right:0; box-sizing:border-box; text-align:left; }
  .main-top-banner .banner-title-row .banner-title { display:block; width:100%; margin:0; white-space:nowrap !important; overflow:visible !important; text-overflow:clip !important; max-width:none !important; -webkit-line-clamp:unset !important; -webkit-box-orient:initial !important; font-size:clamp(12px,3.55vw,17px); font-weight:800; line-height:1.3; letter-spacing:-.045em; word-break:keep-all; overflow-wrap:normal; }
  .main-top-banner .banner-desc { margin-top:5px; font-size:14px; line-height:1.5; text-align:left; word-break:keep-all; }
  .main-top-banner .banner-consult-guide { justify-content:flex-start; margin:8px 0 12px; font-size:12px; line-height:1.45; text-align:left; }
  .main-top-banner .banner-consult-guide .check { font-size:14px; }
  .main-top-banner .banner-btn { width:100%; min-width:0; max-width:none; min-height:46px; margin:0; padding:0 12px; border-radius:9px; font-size:16px; font-weight:700; }
  .banner-guide-badge { width:20px; height:20px; flex:0 0 20px; font-size:12px; }
  .banner-guide-tooltip { max-width:190px; padding:6px 9px; font-size:11px; }
}

@media (max-width:480px) {
  .banner-guide-badge { top:3px; right:0; transform:none; width:19px; height:19px; font-size:11px; }
  .banner-guide-tooltip { position:fixed; top:auto; right:12px; bottom:12px; left:12px; width:auto; max-width:none; padding:10px 12px; text-align:center; white-space:normal; transform:translateY(6px); }
  .banner-guide-tooltip::after { display:none; }
}

@media (max-width:360px) {
  .main-top-banner.two-col-banner { grid-template-columns:58px minmax(0,1fr); gap:8px; padding-left:10px; padding-right:10px; }
  .main-top-banner .banner-left { width:58px; }
  .main-top-banner .banner-character { width:52px; }
  .main-top-banner .banner-title-row .banner-title { font-size:12px; letter-spacing:-.055em; }
  .main-top-banner .banner-desc { font-size:13px; }
  .main-top-banner .banner-consult-guide { font-size:11px; }
  .main-top-banner .banner-btn { font-size:15px; }
  .banner-guide-badge { width:18px; height:18px; font-size:10px; }
}

/* ==================================================
   FINAL PC OVERRIDE - image/content spacing
================================================== */
@media (min-width: 769px) {
  .main-top-banner.two-col-banner {
    justify-content: center;
    gap: 28px;
  }

  .main-top-banner .banner-left {
    flex: 0 0 76px;
    width: 76px;
  }

  .main-top-banner .banner-character {
    width: 68px;
    max-width: 68px;
    height: auto;
  }

  .main-top-banner .banner-right {
    flex: 0 1 620px;
    width: 620px;
    max-width: calc(100% - 104px);
    min-width: 0;
  }

  .main-top-banner .banner-btn {
    width: 360px;
    min-width: 0;
    max-width: 100%;
    margin: 0 auto;
  }
}

/* ==================================================
   FINAL PC-TABLET OVERRIDE - larger image, closer to content
================================================== */
@media (min-width: 769px) {
  .main-top-banner.two-col-banner {
    justify-content: center;
    gap: 14px;
  }

  .main-top-banner .banner-left {
    flex: 0 0 110px;
    width: 110px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .main-top-banner .banner-character {
    width: 98px;
    max-width: 98px;
    height: auto;
  }

  .main-top-banner .banner-right {
    flex: 0 1 620px;
    width: 620px;
    max-width: calc(100% - 124px);
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .main-top-banner .banner-btn {
    width: 360px;
    min-width: 0;
    max-width: 100%;
    margin: 0 auto;
  }
}

/* ==================================================
   FINAL VISUAL OVERRIDE - larger calculator image, tighter gap, no border
================================================== */
.main-top-banner.two-col-banner {
  border: 0;
}

@media (min-width: 769px) {
  .main-top-banner.two-col-banner {
    justify-content: center;
    gap: 4px;
  }

  .main-top-banner .banner-left {
    flex: 0 0 126px;
    width: 126px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .main-top-banner .banner-character {
    width: 120px;
    max-width: 120px;
    height: auto;
  }

  .main-top-banner .banner-right {
    flex: 0 1 620px;
    width: 620px;
    max-width: calc(100% - 130px);
    min-width: 0;
  }
}

/* ==================================================
   FINAL TYPOGRAPHY OVERRIDE - hierarchy and compact CTA
================================================== */
.main-top-banner .banner-desc {
  font-size: 13px;
  line-height: 1.5;
}

.main-top-banner .banner-consult-guide {
  font-size: 12px;
  line-height: 1.45;
}

.main-top-banner .banner-btn {
  min-height: 42px;
  padding: 0 24px;
  font-size: 14px;
  font-weight: 700;
}

@media (max-width: 768px) {
  .main-top-banner .banner-desc {
    font-size: 12px;
    line-height: 1.45;
  }

  .main-top-banner .banner-consult-guide {
    font-size: 11px;
    line-height: 1.4;
  }

  .main-top-banner .banner-btn {
    min-height: 40px;
    padding: 0 10px;
    font-size: 14px;
  }
}


/* ==================================================
   FINAL CALCULATOR LIVE COUNTER - portal style
================================================== */
#calcLiveTitle {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:100%;
  min-width:0;
  padding:14px 16px;
  box-sizing:border-box;
  color:#111827;
  background:#fff;
  border-bottom:0px;
  font-size:14px;
  line-height:1;
  white-space:nowrap;
}
#calcLiveTitle .calc-live-heading,
#calcLiveTitle .calc-live-stats,
#calcLiveTitle .calc-live-stat,
#calcLiveTitle .calc-live-total {
  display:inline-flex;
  align-items:center;
}
#calcLiveTitle .calc-live-heading { gap:7px; }
#calcLiveTitle .calc-realtime-badge {
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 7px;
  border:1px solid #fecaca;
  border-radius:999px;
  background:#fff7f7;
  color:#ef4444;
  font-size:11px;
  font-weight:700;
}
#calcLiveTitle .calc-realtime-circle { fill:#ef4444; }
#calcLiveTitle .calc-live-title-text { font-weight:800; color:#111827; }
#calcLiveTitle .calc-live-stats { gap:12px; }
#calcLiveTitle .calc-live-stat { gap:5px; }
#calcLiveTitle .calc-live-stat-label { color:#4b5563; font-weight:600; }
#calcLiveTitle .calc-live-stat-value { color:#2684ff; font-size:15px; font-weight:900; }
#calcLiveTitle .calc-live-stat-divider {
  display:block;
  width:1px;
  height:14px;
  background:#e5e7eb;
}
#calcLiveTitle .calc-live-total {
  gap:5px;
  padding-left:18px;
  border-left:1px solid #dbe2ea;
}
#calcLiveTitle .calc-live-total-label { color:#374151; font-weight:700; }
#calcLiveTitle .calc-live-total strong { color:#dc2626; font-size:16px; font-weight:900; }

@media (max-width:768px) {
  #calcLiveTitle {
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px 8px;
    padding:12px 10px;
    white-space:normal;
  }
  #calcLiveTitle .calc-live-heading { justify-self:start; }
  #calcLiveTitle .calc-live-total { justify-self:end; padding-left:10px; }
  #calcLiveTitle .calc-live-stats {
    grid-column:1 / -1;
    width:100%;
    justify-content:center;
    gap:9px;
    padding-top:2px;
  }
  #calcLiveTitle .calc-live-stat { gap:4px; }
  #calcLiveTitle .calc-live-stat-label { font-size:12px; }
  #calcLiveTitle .calc-live-stat-value { font-size:13px; }
}
@media (max-width:360px) {
  #calcLiveTitle { padding-left:6px; padding-right:6px; }
  #calcLiveTitle .calc-live-stats { gap:6px; }
  #calcLiveTitle .calc-live-stat-label { font-size:11px; }
  #calcLiveTitle .calc-live-stat-value { font-size:12px; }
}


/* FINAL MOBILE LIVE COUNTER - compact portal layout */
@media (max-width:768px) {
  #calcLiveTitle {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    column-gap:14px;
    row-gap:10px;
    padding:12px 10px;
    white-space:normal;
  }
  #calcLiveTitle .calc-live-heading {
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    gap:7px;
  }
  #calcLiveTitle .calc-live-total {
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    gap:5px;
    justify-self:auto;
    margin:0;
    padding-left:14px;
    border-left:1px solid #dbe2ea;
  }
  #calcLiveTitle .calc-live-stats {
    order:3;
    flex:0 0 100%;
    width:100%;
    justify-content:center;
    gap:9px;
    padding-top:2px;
  }
  #calcLiveTitle .calc-live-stat { gap:4px; }
  #calcLiveTitle .calc-live-stat-label { font-size:12px; }
  #calcLiveTitle .calc-live-stat-value { font-size:13px; }
}

@media (max-width:360px) {
  #calcLiveTitle {
    column-gap:10px;
    padding-left:6px;
    padding-right:6px;
  }
  #calcLiveTitle .calc-live-total { padding-left:10px; }
  #calcLiveTitle .calc-live-stats { gap:6px; }
  #calcLiveTitle .calc-live-stat-label { font-size:11px; }
  #calcLiveTitle .calc-live-stat-value { font-size:12px; }
}


/* REPRESENTATIVE PORTAL CARD RESTORE - FINAL */
.portal-repay-banner {
  width:100%;
  margin:18px 0 14px;
  padding:0;
  overflow:hidden;
  border:1px solid #d9dee7 !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 5px 18px rgba(15,23,42,.07) !important;
  box-sizing:border-box;
}
.portal-repay-link {
  display:grid !important;
  grid-template-columns:270px minmax(0,1fr) 160px !important;
  align-items:stretch !important;
  width:100% !important;
  height:160px !important;
  min-height:160px !important;
  overflow:hidden;
  background:#fff !important;
  color:inherit;
  text-decoration:none !important;
}
.portal-repay-image-wrap {
  display:block !important;
  width:270px !important;
  height:160px !important;
  min-width:0;
  overflow:hidden;
  background:#eaf5ff;
}
.portal-repay-image {
  display:block !important;
  width:100% !important;
  height:160px !important;
  min-height:160px !important;
  object-fit:cover !important;
  object-position:center !important;
}
.portal-repay-content {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  min-width:0;
  height:160px !important;
  padding:18px 26px !important;
  background:#fff !important;
  box-sizing:border-box;
}
.portal-repay-title {
  display:block;
  margin:0;
  color:#111827 !important;
  font-size:20px !important;
  font-weight:800 !important;
  line-height:1.35 !important;
  letter-spacing:-.04em;
  word-break:keep-all;
}
.portal-repay-cta {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px;
  width:160px !important;
  height:160px !important;
  padding:0 12px !important;
  background:#3f4856 !important;
  color:#fff !important;
  text-align:center;
  box-sizing:border-box;
  transition:background-color .2s ease;
}
.portal-repay-cta-text {
  display:inline !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.35;
  word-break:keep-all;
}
.portal-repay-arrow {
  flex:0 0 auto;
  color:#fff !important;
  font-size:32px !important;
  font-weight:300;
  line-height:1;
}
.portal-repay-link:hover .portal-repay-cta,
.portal-repay-link:focus-visible .portal-repay-cta {
  background:#2684ff !important;
}
.portal-repay-link:focus-visible {
  outline:3px solid rgba(38,132,255,.30);
  outline-offset:-3px;
}

@media (max-width:768px) {
  .portal-repay-banner {
    margin:12px 0 10px;
    border-radius:10px !important;
  }
  .portal-repay-link {
    grid-template-columns:104px minmax(0,1fr) 52px !important;
    height:104px !important;
    min-height:104px !important;
  }
  .portal-repay-image-wrap {
    width:104px !important;
    height:104px !important;
  }
  .portal-repay-image {
    height:104px !important;
    min-height:104px !important;
  }
  .portal-repay-content {
    height:104px !important;
    padding:10px 12px !important;
  }
  .portal-repay-title {
    font-size:14px !important;
    line-height:1.38 !important;
  }
  .portal-repay-cta {
    width:52px !important;
    height:104px !important;
    padding:0 !important;
  }
  .portal-repay-cta-text { display:none !important; }
  .portal-repay-arrow { font-size:31px !important; }
}

@media (max-width:380px) {
  .portal-repay-link {
    grid-template-columns:88px minmax(0,1fr) 44px !important;
    height:92px !important;
    min-height:92px !important;
  }
  .portal-repay-image-wrap { width:88px !important; height:92px !important; }
  .portal-repay-image { height:92px !important; min-height:92px !important; }
  .portal-repay-content { height:92px !important; padding:8px 9px !important; }
  .portal-repay-title { font-size:12px !important; }
  .portal-repay-cta { width:44px !important; height:92px !important; }
  .portal-repay-arrow { font-size:27px !important; }
}

.main-service-tabs .top-tabs {
  padding-bottom: 24px !important;
}

@media (max-width: 768px) {
  .main-service-tabs .top-tabs {
    padding-bottom: 16px !important;
  }
}
/* ==================================================
   FINAL MAIN SECTION SPACING - unified
================================================== */
:root {
  --main-section-gap: 24px;
  --main-section-gap-mobile: 16px;
}

/* 대표 변제금 배너 -> 계산 현황 */
.portal-repay-banner {
  margin: 18px 0 var(--main-section-gap) !important;
}

/* 계산 현황 -> 다음 메인 콘텐츠 */
.calc-live-banner {
  margin: 0 0 var(--main-section-gap) !important;
}

/* 서비스 카드 내부에서 과도한 하단 여백을 만들지 않음 */
.main-service-tabs {
  margin: 0 !important;
  padding: 0 !important;
}

.main-service-tabs .top-tabs {
  margin: 0 !important;
  padding: 0 !important;
}

/* 서비스 탭 -> 개인회생 체크리스트 이미지 */
.main-rehab-checklist {
  width: 100%;
  margin: var(--main-section-gap) 0 var(--main-section-gap) !important;
}

@media (max-width: 768px) {
  .portal-repay-banner {
    margin: 12px 0 var(--main-section-gap-mobile) !important;
  }

  .calc-live-banner {
    margin: 0 0 var(--main-section-gap-mobile) !important;
  }

  .main-rehab-checklist {
    margin: var(--main-section-gap-mobile) 0 20px !important;
  }
}


/* ==================================================
   EXPECTED REPAYMENT PORTAL CARDS - SECTION SCOPED
   Only #repayEstimatePortalSection is affected.
================================================== */
#repayEstimatePortalSection {
  margin:24px 0 !important;
  padding:16px 18px 18px;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #e2e8f0;
  border-top:4px solid #2684ff;
  border-radius:14px;
  box-shadow:0 3px 12px rgba(15,23,42,.06);
}
#repayEstimatePortalSection .repay-estimate-portal-header {
  margin:0 0 12px;
  padding:0 0 12px;
  border-bottom:1px solid #e5e7eb;
}
#repayEstimatePortalSection .repay-estimate-portal-cards {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  width:100%;
  margin:0;
  padding:0;
  overflow:visible;
}
#repayEstimatePortalSection .calc-card {
  position:relative;
  min-width:0;
  width:auto;
  flex:none;
  margin:0;
  padding:14px 12px 12px;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #dbe2ea;
  border-radius:12px;
  box-shadow:none;
  overflow:hidden;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
#repayEstimatePortalSection .calc-card::before {
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:#2684ff;
}
#repayEstimatePortalSection .calc-card:hover {
  border-color:#bfdbfe;
  box-shadow:0 6px 16px rgba(38,132,255,.10);
  transform:translateY(-1px);
}
#repayEstimatePortalSection .calc-title {
  margin:0 0 10px;
  font-size:13px;
  font-weight:800;
  color:#334155;
}
#repayEstimatePortalSection .calc-pay-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:0 0 10px;
}
#repayEstimatePortalSection .calc-pay-box {
  min-width:0;
  padding:10px 8px;
  background:#f8fafc;
  border:1px solid transparent;
  border-radius:8px;
  text-align:center;
}
#repayEstimatePortalSection .calc-pay-box-monthly {
  padding:9px 8px;
  background:#f8fbff;
  border:1px solid #2684ff;
  border-radius:8px;
}
#repayEstimatePortalSection .calc-label {
  margin-bottom:4px;
  color:#64748b;
  font-size:11px;
  font-weight:500;
}
#repayEstimatePortalSection .calc-value,
#repayEstimatePortalSection .calc-pay-box-monthly .calc-value {
  color:#0f172a;
  font-size:15px;
  font-weight:800;
}
#repayEstimatePortalSection .calc-pay-box-monthly .calc-value { color:#2684ff; }
#repayEstimatePortalSection .calc-total-strong {
  color:#0f172a;
  font-size:15px;
  font-weight:800;
}
#repayEstimatePortalSection .calc-status-value {
  color:#2684ff;
  font-size:11px;
  font-weight:700;
}
#repayEstimatePortalSection .calc-card-scroll::-webkit-scrollbar { display:none; }

@media (max-width:768px) {
  #repayEstimatePortalSection {
    margin:16px 0 !important;
    padding:13px 12px 14px;
    border-radius:12px;
  }
  #repayEstimatePortalSection .repay-estimate-portal-header {
    margin-bottom:10px;
    padding-bottom:10px;
  }
  #repayEstimatePortalSection .repay-estimate-portal-cards {
    display:flex;
    gap:10px;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  #repayEstimatePortalSection .calc-card {
    flex:0 0 82%;
    scroll-snap-align:start;
    padding:13px 11px 11px;
  }
  #repayEstimatePortalSection .calc-pay-grid { gap:7px; }
  #repayEstimatePortalSection .calc-value,
  #repayEstimatePortalSection .calc-pay-box-monthly .calc-value,
  #repayEstimatePortalSection .calc-total-strong { font-size:14px; }
}

/* ==================================================
   REPAY ESTIMATE SECTION - REMOVE INNER PADDING ONLY
   Scoped only to #repayEstimatePortalSection
================================================== */
#repayEstimatePortalSection {
  padding: 0 !important;
}

@media (max-width: 768px) {
  #repayEstimatePortalSection {
    padding: 0 !important;
  }
}

/* ==================================================
   REPAY ESTIMATE TITLE AREA - REMOVE OUTER/BOTTOM LINES
   Scoped only to #repayEstimatePortalSection
================================================== */
#repayEstimatePortalSection {
  border: 0 !important;
  border-top: 0 !important;
  box-shadow: none !important;
}

#repayEstimatePortalSection .repay-estimate-portal-header,
#repayEstimatePortalSection .related-header {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* ==================================================
   REPAY SUMMARY CARD - RESTORE INTERNAL LINES/ALIGNMENT
   Scoped only to #repayEstimatePortalSection
================================================== */
#repayEstimatePortalSection .repay-summary-card {
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #dbe2ea !important;
  border-top: 3px solid #2684ff !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 5px 16px rgba(15, 23, 42, .10) !important;
}

#repayEstimatePortalSection .repay-summary-lines {
  display: block !important;
  padding: 10px 12px !important;
  margin: 0 !important;
}

#repayEstimatePortalSection .repay-summary-row {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 10px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 0 2px !important;
  border-bottom: 1px solid #eef2f7 !important;
  background: transparent !important;
}

#repayEstimatePortalSection .repay-summary-label {
  display: block !important;
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

#repayEstimatePortalSection .repay-summary-value {
  display: block !important;
  color: #0f172a !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

#repayEstimatePortalSection .repay-summary-monthly .repay-summary-value,
#repayEstimatePortalSection .repay-summary-monthly .calc-status-value {
  color: #2684ff !important;
}

#repayEstimatePortalSection .repay-summary-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 7px 2px 0 !important;
  border: 0 !important;
  color: #64748b !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
}

#repayEstimatePortalSection .repay-summary-meta .apply-writer {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  min-width: 0 !important;
}

#repayEstimatePortalSection .repay-summary-receipt {
  display: block !important;
  margin-left: auto !important;
  color: #475467 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

#repayEstimatePortalSection .repay-summary-card:hover {
  border-color: #bfdbfe !important;
  border-top-color: #2684ff !important;
  box-shadow: 0 8px 22px rgba(38, 132, 255, .14) !important;
  transform: translateY(-1px);
}

@media (max-width: 768px) {
  #repayEstimatePortalSection .repay-summary-lines {
    padding: 8px 10px !important;
  }

  #repayEstimatePortalSection .repay-summary-row {
    grid-template-columns: 62px minmax(0, 1fr) !important;
    column-gap: 8px !important;
    min-height: 31px !important;
  }

  #repayEstimatePortalSection .repay-summary-label {
    font-size: 10px !important;
  }

  #repayEstimatePortalSection .repay-summary-value {
    font-size: 14px !important;
  }

  #repayEstimatePortalSection .repay-summary-meta {
    min-height: 31px !important;
    font-size: 10px !important;
  }

  #repayEstimatePortalSection .repay-summary-receipt {
    font-size: 9px !important;
  }
}
.portal-repay-content {
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
}

.portal-repay-subtitle {
  display: block;
  margin-top: 7px;
  color: #64748b;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

/* 모바일 */
@media (max-width: 768px) {
  .portal-repay-subtitle {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.35;
  }
}

@media (max-width: 380px) {
  .portal-repay-subtitle {
    font-size: 10px;
  }
}