/* ═══════════════════════════════════════════════════════════
   내 자금으로 보는 전북 분양아파트 — 우측 위젯 + 결과 모달

   모든 선택자가 .tcfund- 로 시작한다. tc-geo-blog 의 .hc-promo-widget 을
   재사용하지 않는 이유는, 그 클래스가 768px 이하에서 화면 하단 고정바로
   바뀌기 때문이다. 이 도구는 입력칸이 두 개라 하단바에 들어가지 않는다.
   ═══════════════════════════════════════════════════════════ */

.tcfund-aside {
  --tcf-ink: #141C26;
  --tcf-ink-2: #414C5A;
  --tcf-ink-3: #6E7885;
  --tcf-line: #E4E7EB;
  --tcf-line-soft: #EFF1F3;
  --tcf-bg-soft: #F7F6F4;
  --tcf-navy: #1B2A3C;
  --tcf-accent: #E0601F;
  --tcf-accent-soft: #FCEFE7;
  --tcf-accent-deep: #C24F14;
  --tcf-warn: #C0392B;
}

/* ── 우측 컬럼 배치 ──
   tc-geo-blog 의 기본값은 220px / 760px / 240px 3열이다. 240px 에서는
   제목 "내 자금으로 분양 가능한 아파트 보기" 가 한 줄에 들어가려면 12px 까지
   줄여야 해서 설명글과 크기가 같아진다. 우측 열을 300px 로 넓히고,
   본문 760px 를 그대로 지키려고 전체 max-width 를 1392px 로 올린다.

     220 + 760 + 300 + (32 x 2 gap) + (24 x 2 padding) = 1392

   1392px 아래로 내려가면 본문이 minmax(0,760px) 로 알아서 줄어든다.
   1024px 이하는 tc-geo-blog 가 1열로 접으므로 이 블록이 적용되지 않는다. */
@media (min-width: 1025px) {
  .tcgeo-root .hc-single-layout {
    grid-template-columns: 220px minmax(0, 760px) 300px;
    gap: 32px;
    max-width: 1392px;
  }
}

.tcgeo-root .hc-single-layout > .tcfund-aside {
  grid-column: 3;
  position: sticky;
  top: 80px;
  align-self: start;
  width: 300px;
  min-width: 0;
  box-sizing: border-box;
}

.tcfund-aside *,
.tcfund-aside *::before,
.tcfund-aside *::after { box-sizing: border-box; }

/* ── 위젯 본체 ── */
.tcfund-widget {
  background: #fff;
  border: 1px solid var(--tcf-line);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(20, 28, 38, .05), 0 8px 22px rgba(20, 28, 38, .06);
  padding: 18px 16px 16px;
  color: var(--tcf-ink);
  line-height: 1.6;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 머리(라벨 + 제목)와 꼬리(안내)는 가운데, 입력 영역은 왼쪽 정렬이다.
   입력 라벨까지 가운데로 두면 어느 칸에 딸린 라벨인지 눈으로 따라가기 어렵다. */
.tcfund-eyebrow {
  margin: 0 0 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--tcf-accent);
  text-align: center;
}

.tcfund-widget .tcfund-title {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.4;
  color: var(--tcf-ink);
  padding: 0;
  border: 0;
  text-align: center;
}

.tcfund-fld { margin: 0 0 14px; }

.tcfund-fld > label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--tcf-ink-2);
  margin: 0 0 4px;
}

.tcfund-help {
  margin: 0 0 7px;
  font-size: 11.5px;
  color: var(--tcf-ink-3);
  line-height: 1.55;
}

.tcfund-fld input {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  font-size: 16px; /* 16px 미만이면 iOS 사파리가 포커스 시 화면을 확대한다 */
  font-family: inherit;
  text-align: right;
  border: 1px solid var(--tcf-line);
  border-radius: 8px;
  background: #fff;
  color: var(--tcf-ink);
}

/* placeholder 가 입력값처럼 보이면 사용자가 이미 값이 들어갔다고 오해한다.
   충분히 연하게 두고, 예시라는 것을 글자로도 밝힌다. */
.tcfund-fld input::placeholder {
  color: #B8BEC6;
  opacity: 1; /* 파이어폭스는 기본 opacity 가 1 이 아니다 */
}

.tcfund-fld input:focus {
  outline: none;
  border-color: var(--tcf-accent);
  box-shadow: 0 0 0 3px rgba(224, 96, 31, .13);
}

.tcfund-fld input.is-bad { border-color: var(--tcf-warn); }

.tcfund-echo {
  margin: 5px 0 0;
  min-height: 18px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--tcf-accent-deep);
  text-align: right;
}

.tcfund-err {
  margin: 5px 0 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--tcf-warn);
}

.tcfund-aside [hidden] { display: none !important; }

.tcfund-go {
  display: block;
  width: 100%;
  min-height: 48px;
  margin: 4px 0 0;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: var(--tcf-accent);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  cursor: pointer;
}

.tcfund-go:hover { background: var(--tcf-accent-deep); }

.tcfund-widget .tcfund-fine {
  margin: 10px 0 0;
  font-size: 11.5px;
  color: var(--tcf-ink-3);
  line-height: 1.55;
  text-align: center;
}

/* ═══════════════════════════════════════════════
   하단 스티키 버튼 (1024px 이하 전용)

   1024px 이하에서는 tc-geo-blog 레이아웃이 1열로 접히면서 우측 위젯이
   본문 맨 아래로 내려간다. 실측해 보니 글에 따라 페이지의 86~95% 지점이라
   화면을 8번에서 23번 넘겨야 닿는다. 모바일에서는 사실상 안 보이는 자리다.
   그래서 버튼 하나만 화면 하단에 고정하고, 입력은 모달 안에서 받는다.
   ═══════════════════════════════════════════════ */

.tcfund-sticky {
  --tcf-accent: #E0601F;
  --tcf-accent-deep: #C24F14;

  display: none; /* 기본은 숨김. 아래 미디어쿼리에서만 켠다 */
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99998; /* tc-geo-blog 하단 CTA(999) 위, 모달(100000) 아래 */
  /* 아래 여백 18px 은 사이트 전화 플로팅 버튼(.jb-fab)의 bottom 과 같은 값이다.
     버튼 높이도 그 아이콘과 같은 56px 로 맞춰 두 개의 아래끝과 중심이 일치한다.
     숫자를 고치려면 .jb-fab 과 함께 봐야 한다. */
  padding: 10px 12px 18px;
  padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-top: 1px solid #E4E7EB;
  box-sizing: border-box;
}

.tcfund-sticky[hidden] { display: none !important; }

.tcfund-sticky-btn {
  display: block;
  width: 100%;
  min-height: 56px; /* .jb-fab 아이콘과 같은 높이 */
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: var(--tcf-accent);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.02em;
  cursor: pointer;
}

.tcfund-sticky-btn:hover { background: var(--tcf-accent-deep); }

@media (max-width: 1024px) {
  .tcfund-sticky { display: block; }

  /* 스티키 바에 본문 끝이 가리지 않게 자리를 비운다 */
  .tcgeo-root .hc-single-layout { padding-bottom: 96px; }
}

/* 모달이 열려 있는 동안에는 스티키를 숨긴다. 모바일에서 모달이 전체화면이라
   바가 그 위로 비치면 닫기 버튼과 헷갈린다. */
body.tcfund-lock .tcfund-sticky { display: none; }

/* 사이트의 전화 플로팅 버튼(.jb-fab)은 z-index 가 2147483000 이라
   무엇을 올려도 그 위로 뜬다. 모달이 열린 동안에는 잠시 숨긴다.
   모달 안에 전화 버튼이 따로 있어 전화 연결 수단이 사라지지 않는다. */
body.tcfund-lock .jb-fab { display: none !important; }

/* 스티키 바는 전폭이라 플로팅 버튼과 자리가 겹친다. 버튼이 있을 때만
   오른쪽을 비운다. 클래스는 자바스크립트가 붙인다.
   84 = 플로팅 버튼 right 16 + 폭 56 + 사이 간격 12 */
.tcfund-sticky.has-fab { padding-right: 84px; }

/* 플로팅 버튼은 bottom:18px 고정이라 홈 인디케이터 영역을 고려하지 않는다.
   스티키가 있는 화면에서는 같은 만큼 올려 줘야 둘의 높이가 계속 맞는다. */
body.tcfund-has-sticky .jb-fab {
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
}

/* ═══════════════════════════════════════════════
   모달
   ═══════════════════════════════════════════════ */

.tcfund-modal {
  --tcf-ink: #141C26;
  --tcf-ink-2: #414C5A;
  --tcf-ink-3: #6E7885;
  --tcf-line: #E4E7EB;
  --tcf-line-soft: #EFF1F3;
  --tcf-bg-soft: #F7F6F4;
  --tcf-navy: #1B2A3C;
  --tcf-accent: #E0601F;
  --tcf-accent-soft: #FCEFE7;
  --tcf-accent-deep: #C24F14;

  position: fixed;
  inset: 0;
  z-index: 100000; /* tc-geo-blog 의 모바일 하단 CTA 가 999 라 그 위로 올린다 */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}

.tcfund-modal[hidden] { display: none !important; }

.tcfund-modal *,
.tcfund-modal *::before,
.tcfund-modal *::after { box-sizing: border-box; }

.tcfund-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13, 22, 32, .58);
}

.tcfund-dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 720px;
  max-height: 100%;
  background: var(--tcf-bg-soft);
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(13, 22, 32, .35);
  overflow: hidden;
  color: var(--tcf-ink);
  line-height: 1.7;
  letter-spacing: -.01em;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.tcfund-dialog:focus { outline: none; }

.tcfund-dialog-head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: #fff;
  border-bottom: 1px solid var(--tcf-line);
}

.tcfund-modal .tcfund-dialog-head h2 {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.4;
  color: var(--tcf-ink);
}

.tcfund-close {
  flex: none;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--tcf-line);
  border-radius: 100px;
  background: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--tcf-ink-2);
  cursor: pointer;
}

.tcfund-close:hover { border-color: var(--tcf-ink); color: var(--tcf-ink); }

.tcfund-dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 20px 18px 24px;
  font-size: 15px;
}

/* 배경 스크롤 잠금 */
body.tcfund-lock {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

.tcfund-modal [hidden] { display: none !important; }

/* ── 모달 안 입력 단계 ──
   위젯의 입력 규칙(.tcfund-fld 등)을 그대로 쓰되, 240~300px 폭에 맞춰 둔
   글자 크기만 읽기 좋게 키운다. */
.tcfund-step-input { max-width: 440px; margin: 0 auto; }

.tcfund-modal .tcfund-step-input .tcfund-fld { margin: 0 0 18px; }
.tcfund-modal .tcfund-step-input .tcfund-fld > label { font-size: 15px; margin: 0 0 5px; }
.tcfund-modal .tcfund-step-input .tcfund-help { font-size: 13px; margin: 0 0 9px; }
.tcfund-modal .tcfund-step-input .tcfund-fld input { min-height: 54px; font-size: 18px; }
.tcfund-modal .tcfund-step-input .tcfund-echo { font-size: 14px; min-height: 21px; }
.tcfund-modal .tcfund-step-input .tcfund-err { font-size: 13px; }
.tcfund-modal .tcfund-step-input .tcfund-go { min-height: 56px; font-size: 16px; margin-top: 6px; }

.tcfund-modal .tcfund-step-input .tcfund-fine {
  margin: 12px 0 0;
  font-size: 12.5px;
  text-align: center;
}

/* 결과 맨 아래 버튼 두 개 (입력으로 돌아가기 / 닫기) */
.tcfund-endbtns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 10px;
  margin: 10px 0 0;
}

.tcfund-back {
  min-height: 44px;
  padding: 10px 14px;
  background: none;
  border: 0;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--tcf-ink-3);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tcfund-back:hover { color: var(--tcf-ink); }

/* ── 결과 머리 ── */
.tcfund-rhead {
  background: var(--tcf-navy);
  color: #fff;
  border-radius: 10px;
  padding: 18px 18px;
  margin: 0 0 18px;
}

.tcfund-rk { margin: 0 0 5px; font-size: 12.5px; font-weight: 700; color: rgba(255, 255, 255, .7); }
.tcfund-rv { margin: 0 0 9px; font-size: 24px; font-weight: 700; letter-spacing: -.025em; }
.tcfund-rhead p:last-child { margin: 0; font-size: 14px; color: rgba(255, 255, 255, .82); line-height: 1.7; }
.tcfund-rhead b { color: #fff; }

/* ── 지역 필터 ── */
.tcfund-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; }

.tcfund-filters button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--tcf-line);
  border-radius: 100px;
  background: #fff;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tcf-ink-2);
  cursor: pointer;
}

.tcfund-filters button[aria-pressed="true"] {
  background: var(--tcf-navy);
  border-color: var(--tcf-navy);
  color: #fff;
}

/* ── 그룹 ── */
.tcfund-grp { margin: 0 0 22px; }

.tcfund-modal .tcfund-grp > h3,
.tcfund-modal .tcfund-tbl > h3 {
  margin: 0 0 4px;
  padding: 0;
  border: 0;
  font-size: 14.5px;
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--tcf-ink);
}

.tcfund-gsub { margin: 0 0 12px; font-size: 13px; color: var(--tcf-ink-3); line-height: 1.6; }

/* ── 단지 카드 ── */
.tcfund-pc {
  border: 1px solid var(--tcf-line);
  border-radius: 10px;
  background: #fff;
  padding: 18px 18px 16px;
  margin: 0 0 10px;
}

.tcfund-pc:last-child { margin: 0; }
.tcfund-pc.is-short { background: var(--tcf-bg-soft); }

.tcfund-pc-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 4px;
}

.tcfund-modal .tcfund-pc-top h4 {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.35;
  color: var(--tcf-ink);
}

.tcfund-rg {
  flex: none;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--tcf-ink-3);
  border: 1px solid var(--tcf-line);
  border-radius: 100px;
  padding: 3px 9px;
  background: #fff;
}

.tcfund-meta { margin: 0 0 14px; font-size: 13px; color: var(--tcf-ink-3); }

.tcfund-pc dl {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 14px;
  margin: 0 0 14px;
  font-size: 14px;
}

.tcfund-pc dt { color: var(--tcf-ink-2); }
.tcfund-pc dd { margin: 0; font-weight: 700; text-align: right; white-space: nowrap; }

.tcfund-sub {
  display: block;
  font-weight: 400;
  font-size: 11.5px;
  color: var(--tcf-ink-3);
}

.tcfund-keys {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin: 0 0 14px;
}

.tcfund-key { border-radius: 8px; padding: 13px 13px; }
.tcfund-key-navy { background: var(--tcf-navy); color: #fff; }
.tcfund-key-acc { background: var(--tcf-accent-soft); border: 1px solid var(--tcf-accent); }

.tcfund-kk { margin: 0 0 4px; font-size: 11.5px; font-weight: 700; line-height: 1.4; }
.tcfund-key-navy .tcfund-kk { color: rgba(255, 255, 255, .72); }
.tcfund-key-acc .tcfund-kk { color: var(--tcf-accent-deep); }

.tcfund-kv { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; }
.tcfund-key-acc .tcfund-kv { color: var(--tcf-accent-deep); }

.tcfund-note { margin: 0 0 14px; font-size: 12.5px; color: var(--tcf-ink-3); line-height: 1.65; }

.tcfund-acts { display: flex; flex-direction: column; gap: 8px; }
.tcfund-vf { margin: 12px 0 0; font-size: 11.5px; color: var(--tcf-ink-3); line-height: 1.6; }

/* ── 버튼 ── */
.tcfund-modal .tcfund-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  line-height: 1.35;
}

.tcfund-modal .tcfund-btn-accent { background: var(--tcf-accent); color: #fff; }
.tcfund-modal .tcfund-btn-accent:hover { background: var(--tcf-accent-deep); color: #fff; }
.tcfund-modal .tcfund-btn-line { background: #fff; color: var(--tcf-ink); border-color: var(--tcf-line); }
.tcfund-modal .tcfund-btn-line:hover { border-color: var(--tcf-ink); color: var(--tcf-ink); }

/* ── 비교표 ── */
.tcfund-tbl { margin: 0 0 22px; }

.tcfund-tblbox {
  border: 1px solid var(--tcf-line);
  border-radius: 10px;
  background: #fff;
  overflow-x: auto;
}

.tcfund-modal .tcfund-tblbox table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  min-width: 500px;
  margin: 0;
}

.tcfund-modal .tcfund-tblbox thead th {
  background: var(--tcf-bg-soft);
  text-align: right;
  padding: 10px 13px;
  font-size: 11.5px;
  color: var(--tcf-ink-3);
  font-weight: 700;
  border-bottom: 1px solid var(--tcf-line);
  white-space: nowrap;
}

.tcfund-modal .tcfund-tblbox thead th:first-child { text-align: left; }

.tcfund-modal .tcfund-tblbox tbody td {
  padding: 12px 13px;
  text-align: right;
  border-bottom: 1px solid var(--tcf-line-soft);
  white-space: nowrap;
  font-weight: 700;
}

.tcfund-modal .tcfund-tblbox tbody td:first-child {
  text-align: left;
  font-weight: 400;
  white-space: normal;
}

.tcfund-modal .tcfund-tblbox tbody tr:last-child td { border-bottom: 0; }

/* ── 안내 문단 ── */
.tcfund-read {
  margin: 0 0 18px;
  padding: 15px 16px;
  background: #fff;
  border: 1px solid var(--tcf-line);
  border-left: 3px solid var(--tcf-accent);
  border-radius: 8px;
  font-size: 14px;
  color: var(--tcf-ink-2);
  line-height: 1.7;
}

.tcfund-read b { color: var(--tcf-ink); }

.tcfund-ctahead { margin: 22px 0 12px; text-align: center; }

.tcfund-modal .tcfund-ctahead h3 {
  margin: 0 0 7px;
  padding: 0;
  border: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.45;
  color: var(--tcf-ink);
}

.tcfund-ctahead p { margin: 0; font-size: 13.5px; color: var(--tcf-ink-3); line-height: 1.7; }

.tcfund-cta { display: flex; flex-direction: column; gap: 9px; margin: 0 0 16px; }

.tcfund-modal .tcfund-fine {
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--tcf-ink-3);
  line-height: 1.7;
}

.tcfund-modal .tcfund-fine:last-child { margin: 0; }

/* ═══════════════════════════════════════════════
   반응형
   ═══════════════════════════════════════════════ */

/* 520px 이상에서만 버튼을 가로로 눕힌다. 그 아래에서는 글자가 줄바꿈된다. */
@media (min-width: 520px) {
  .tcfund-cta { flex-direction: row; }
  .tcfund-cta .tcfund-btn { flex: 1; }
  .tcfund-acts { flex-direction: row; }
  .tcfund-acts .tcfund-btn { flex: 1; }
}

/* 1024px 이하에서 tc-geo-blog 레이아웃이 1열로 접힌다.
   위젯도 본문 아래 전폭 카드로 내린다. sticky 를 풀지 않으면 자리가 어긋난다. */
@media (max-width: 1024px) {
  .tcgeo-root .hc-single-layout > .tcfund-aside {
    grid-column: auto;
    position: static;
    width: 100%;
    max-width: 760px;
    margin: 28px auto 0;
  }

  .tcfund-widget { padding: 20px 18px 18px; }
  .tcfund-widget .tcfund-title { font-size: 18px; }
  .tcfund-fld > label { font-size: 13.5px; }
  .tcfund-help { font-size: 12.5px; }
  .tcfund-go { min-height: 52px; font-size: 15px; }
}

/* 768px 이하 — 모달을 전체 화면으로 */
@media (max-width: 768px) {
  .tcfund-modal { padding: 0; }

  .tcfund-dialog {
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 0;
  }

  .tcfund-dialog-head { padding: 13px 15px; }
  .tcfund-modal .tcfund-dialog-head h2 { font-size: 15.5px; }
  .tcfund-dialog-body { padding: 16px 15px 28px; }

  .tcfund-rv { font-size: 21px; }
  .tcfund-modal .tcfund-pc-top h4 { font-size: 16px; }
  .tcfund-pc { padding: 16px 15px 15px; }
}

/* 420px 이하 — 강조 카드 두 장을 세로로 */
@media (max-width: 420px) {
  .tcfund-keys { grid-template-columns: 1fr; }
  .tcfund-pc dl { font-size: 13.5px; gap: 8px 10px; }
  .tcfund-pc dd { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .tcfund-aside *, .tcfund-modal * { transition: none !important; }
}

/* 키보드 포커스 */
.tcfund-aside :focus-visible,
.tcfund-modal :focus-visible {
  outline: 3px solid var(--tcf-accent);
  outline-offset: 2px;
  border-radius: 3px;
}
