.modal-trigger { cursor: pointer; position: relative; outline: none; user-select: none; }

.modal-trigger::after { content: attr(data-more-label); position: absolute; right: 22px; bottom: 16px; font-size: 12px; font-weight: 800; letter-spacing: .02em; color: rgba(24,91,157,.70); opacity: 0; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease, color .18s ease; }

.modal-trigger:hover::after,
.modal-trigger:focus-visible::after { opacity: 1; transform: translateY(0); color: var(--blue); }
.info-card.modal-trigger,
.step-card.modal-trigger,
.price-card.modal-trigger { padding-bottom: 52px; }
.fact-item.modal-trigger { padding-bottom: 30px; }

.fact-item.modal-trigger::after { right: 14px; bottom: 8px; font-size: 11px; }

.modal-trigger:focus-visible { box-shadow: 0 0 0 4px rgba(246,179,33,.28), 0 18px 40px rgba(31,52,83,.12); border-color: rgba(246,179,33,.62); }
.details-modal[hidden] { display: none; }

.details-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 28px; }

.details-modal-backdrop { position: absolute; inset: 0; background: rgba(13, 37, 61, .50); backdrop-filter: blur(6px); }

.details-modal-card { position: relative;
  z-index: 1;
  width: min(720px, calc(100vw - 40px));
  max-height: min(78vh, 760px);
  overflow: auto;
  border-radius: 28px;
  padding: 34px 38px 32px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,248,252,.98));
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 34px 90px rgba(10,31,54,.30), inset 0 1px 0 rgba(255,255,255,.90); }

.details-modal-close { position: absolute; top: 18px; right: 18px; width: 38px; height: 38px; border: 0; border-radius: 14px; background: rgba(13,59,102,.08); color: var(--ink); font-size: 26px; line-height: 1; cursor: pointer; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }

.details-modal-close:hover,
.details-modal-close:focus-visible { transform: translateY(-1px); background: rgba(246,179,33,.22); box-shadow: 0 10px 22px rgba(31,52,83,.13); outline: none; }

.details-modal-card h2 { margin: 0 46px 14px 0; font-size: clamp(26px, 3vw, 38px); line-height: 1.08; letter-spacing: -.035em; color: var(--ink); }

.details-modal-body { color: var(--muted); font-size: 16px; line-height: 1.72; }
.details-modal-body p { margin: 0 0 16px; }

.details-modal-body ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }

.details-modal-body li { position: relative; padding-left: 25px; }

.details-modal-body li::before { content: ""; position: absolute; left: 0; top: .72em; width: 8px; height: 8px; border-radius: 99px; background: var(--gold); box-shadow: 0 0 0 5px rgba(246,179,33,.16); }
body.modal-open { overflow: visible; }

@media (max-width: 820px) {
  .details-modal { padding: 16px; }

  .details-modal-card { width: min(100%, 680px);
    max-height: 82vh;
    padding: 28px 22px 24px;
    border-radius: 24px; }

  .details-modal-card h2 { margin-right: 42px; }

  .modal-trigger::after { opacity: 1; transform: none; }
}

.details-modal-card { width: min(920px, calc(100vw - 44px)); max-height: min(84vh, 820px); padding: 42px 48px 40px; }

.details-modal-card h2 { margin: 0 54px 20px 0; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.06; }

.details-modal-body { font-size: 17px; line-height: 1.76; }
.details-modal-body p { margin-bottom: 20px; }
.details-modal-body ul { gap: 12px; }

.details-pricing-note { margin-top: 26px; padding: 20px 22px; border-radius: 20px; background: linear-gradient(135deg, rgba(255,250,240,.96), rgba(255,244,217,.78)); border: 1px solid rgba(246,179,33,.36); box-shadow: inset 0 1px 0 rgba(255,255,255,.82); }

.details-pricing-note h3 { margin: 0 0 9px; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; color: var(--ink); }

.details-pricing-note p { margin: 0; color: var(--muted); }

@media (max-width: 820px) {
  .details-modal-card { width: min(100%, 720px); max-height: 84vh; padding: 30px 24px 26px; }

  .details-modal-card h2 { margin-right: 42px; font-size: clamp(26px, 7vw, 34px); }

  .details-modal-body { font-size: 16px; line-height: 1.68; }
}

.price-addons-card .modal-trigger::after,
.price-factor-chip::after { content: none !important; }

@media (max-width: 820px) {
  .price-factor-chip { white-space: normal; }
}

.modal-trigger::after,
.modal-trigger:hover::after,
.modal-trigger:focus-visible::after,
.price-addons-card::after,
.info-card.modal-trigger::after,
.step-card.modal-trigger::after,
.price-card.modal-trigger::after,
.fact-item.modal-trigger::after { content: none !important; display: none !important; opacity: 0 !important; }
.info-card.modal-trigger,
.step-card.modal-trigger,
.price-card.modal-trigger { padding-bottom: var(--card-padding-bottom, 32px); }
.fact-item.modal-trigger { padding-bottom: 18px; }

.credential-item.modal-trigger,
.credential-item.credential-link { cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }

.credential-item.modal-trigger:hover,
.credential-item.credential-link:hover,
.credential-item.modal-trigger:focus-visible,
.credential-item.credential-link:focus-visible { transform: translateY(-2px); border-color: rgba(246,179,33,.45); box-shadow: 0 16px 34px rgba(31,52,83,.09); outline: none; }

.legal-inline-modal[hidden] { display: none !important; }
.legal-inline-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 28px; overscroll-behavior: contain; }
.legal-inline-modal-backdrop { position: absolute; inset: 0; background: rgba(13, 37, 61, .50); backdrop-filter: blur(6px); cursor: pointer; }
.legal-inline-modal-card { position: relative; z-index: 1; width: min(920px, calc(100vw - 44px)); max-height: min(84vh, 820px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(13, 59, 102, .28) rgba(13, 59, 102, .06); border-radius: 28px; padding: 34px 42px 32px; background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,248,252,.98)); border: 1px solid rgba(255,255,255,.82); box-shadow: 0 34px 90px rgba(10,31,54,.30), inset 0 1px 0 rgba(255,255,255,.90); }
.legal-inline-modal-card::-webkit-scrollbar { width: 10px; }
.legal-inline-modal-card::-webkit-scrollbar-track { background: rgba(13, 59, 102, .06); border-radius: 999px; }
.legal-inline-modal-card::-webkit-scrollbar-thumb { background: rgba(13, 59, 102, .26); border: 2px solid rgba(244,248,252,.98); border-radius: 999px; }
.legal-inline-modal-card::-webkit-scrollbar-thumb:hover { background: rgba(13, 59, 102, .36); }
html.legal-inline-modal-active,
html.legal-inline-modal-active body { overscroll-behavior: none; }
.legal-inline-modal-close { position: absolute; top: 16px; right: 18px; width: 38px; height: 38px; border: 0; border-radius: 14px; background: rgba(13,59,102,.08); color: var(--ink); font-size: 26px; line-height: 1; cursor: pointer; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.legal-inline-modal-close:hover,
.legal-inline-modal-close:focus-visible { transform: translateY(-1px); background: rgba(246,179,33,.22); box-shadow: 0 10px 22px rgba(31,52,83,.13); outline: none; }
.legal-inline-kicker { margin: 0 52px 7px 0; color: var(--blue); font-weight: 800; font-size: 13px; line-height: 1.25; letter-spacing: .12em; text-transform: uppercase; }
.legal-inline-modal-card h2 { margin: 0 52px 12px 0; color: var(--ink); font-size: clamp(34px, 3.4vw, 46px); line-height: 1.06; letter-spacing: -.04em; }
.legal-inline-modal-content { color: var(--muted); }
.legal-inline-updated { margin: -3px 0 12px !important; color: rgba(83, 103, 125, .78); font-size: 15px !important; line-height: 1.42 !important; }
.legal-inline-lead { margin: 0 0 15px !important; color: var(--muted); font-size: 17px !important; line-height: 1.6 !important; }
.legal-inline-section { padding-top: 12px; margin-top: 12px; border-top: 1px solid rgba(13, 59, 102, .10); }
.legal-inline-section h3 { margin: 0 0 7px; color: var(--ink); font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }
.legal-inline-section p { margin: 0 0 10px; color: var(--muted); font-size: 17px; line-height: 1.6; }
.legal-inline-section p:last-child { margin-bottom: 0 !important; }
@media (max-width: 820px) {
  .legal-inline-modal { padding: 16px; }
  .legal-inline-modal-card { width: min(100%, 680px);
    max-height: 82vh;
    padding: 28px 22px 26px;
    border-radius: 24px; }
  .legal-inline-modal-close { top: 14px; right: 14px; }
  .legal-inline-modal-card h2 { margin-right: 42px; font-size: clamp(32px, 8.5vw, 42px); }
  .legal-inline-kicker { margin-right: 42px; margin-bottom: 6px; }
  .legal-inline-lead,
.legal-inline-section p { font-size: 16px !important; line-height: 1.58 !important; }
  .legal-inline-section { padding-top: 11px; margin-top: 11px; }
  .legal-inline-section h3 { font-size: 21px; margin-bottom: 6px; }
}
.resource-inline-modal[hidden] { display: none !important; }
.resource-inline-modal { position: fixed; inset: 0; z-index: 1190; display: grid; place-items: center; padding: 28px; overscroll-behavior: contain; }
.resource-inline-modal-backdrop { position: absolute; inset: 0; background: rgba(13, 37, 61, .50); backdrop-filter: blur(6px); cursor: pointer; }
.resource-inline-modal-card { position: relative; z-index: 1; width: min(920px, calc(100vw - 44px)); max-height: min(84vh, 820px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(13, 59, 102, .28) rgba(13, 59, 102, .06); border-radius: 28px; padding: 34px 42px 32px; background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,248,252,.98)); border: 1px solid rgba(255,255,255,.82); box-shadow: 0 34px 90px rgba(10,31,54,.30), inset 0 1px 0 rgba(255,255,255,.90); }
.resource-inline-modal-card::-webkit-scrollbar { width: 10px; }
.resource-inline-modal-card::-webkit-scrollbar-track { background: rgba(13, 59, 102, .06); border-radius: 999px; }
.resource-inline-modal-card::-webkit-scrollbar-thumb { background: rgba(13, 59, 102, .26); border: 2px solid rgba(244,248,252,.98); border-radius: 999px; }
.resource-inline-modal-card::-webkit-scrollbar-thumb:hover { background: rgba(13, 59, 102, .36); }
html.resource-inline-modal-active,
html.resource-inline-modal-active body { overscroll-behavior: none; }
.resource-inline-modal-close { position: absolute; top: 16px; right: 18px; width: 38px; height: 38px; border: 0; border-radius: 14px; background: rgba(13,59,102,.08); color: var(--ink); font-size: 26px; line-height: 1; cursor: pointer; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.resource-inline-modal-close:hover,
.resource-inline-modal-close:focus-visible { transform: translateY(-1px); background: rgba(246,179,33,.22); box-shadow: 0 10px 22px rgba(31,52,83,.13); outline: none; }
.resource-inline-modal-card h2 { margin: 0 52px 12px 0; color: var(--ink); font-size: clamp(34px, 3.4vw, 46px); line-height: 1.06; letter-spacing: -.04em; }
.resource-inline-modal-content { color: var(--muted); }
.resource-inline-updated { margin: -3px 0 12px !important; color: rgba(83, 103, 125, .78); font-size: 15px !important; line-height: 1.42 !important; }
.resource-inline-lead { margin: 0 0 15px !important; color: var(--muted); font-size: 17px !important; line-height: 1.6 !important; }
.resource-inline-section { padding-top: 12px; margin-top: 12px; border-top: 1px solid rgba(13, 59, 102, .10); }
.resource-inline-section h3 { margin: 0 0 7px; color: var(--ink); font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }
.resource-inline-section p { margin: 0 0 10px; color: var(--muted); font-size: 17px; line-height: 1.6; }
.resource-inline-section p:last-child { margin-bottom: 0 !important; }
.resource-inline-note { margin-top: 14px; padding: 13px 15px; border-radius: 18px; color: var(--muted); background: rgba(24,91,157,.06); border: 1px solid rgba(24,91,157,.12); font-size: 15px; line-height: 1.48; }
@media (max-width: 820px) {
  .resource-inline-modal { padding: 16px; }
  .resource-inline-modal-card { width: min(100%, 680px);
    max-height: 82vh;
    padding: 28px 22px 26px;
    border-radius: 24px; }
  .resource-inline-modal-close { top: 14px; right: 14px; }
  .resource-inline-modal-card h2 { margin-right: 42px; font-size: clamp(32px, 8.5vw, 42px); }
  .resource-inline-lead,
.resource-inline-section p { font-size: 16px !important; line-height: 1.58 !important; }
  .resource-inline-section { padding-top: 11px; margin-top: 11px; }
  .resource-inline-section h3 { font-size: 21px; margin-bottom: 6px; }
  .resource-inline-note { font-size: 14.5px; line-height: 1.46; }
}

.us-service-map { width: 100%; max-width: 760px; margin: 18px 0 14px; padding: 14px; border-radius: 22px; background: linear-gradient(180deg, rgba(247,251,255,.96), rgba(238,246,255,.86)); border: 1px solid rgba(24,91,157,.13); 
}

.us-map-row { display: grid; grid-template-columns: repeat(10, minmax(34px, 1fr)); gap: 6px; margin-bottom: 6px; 
}

.us-state-tile { min-height: 34px; display: grid; place-items: center; position: relative; border-radius: 10px; background: rgba(255,255,255,.94); border: 1px solid rgba(24,91,157,.15); color: var(--navy); font-size: 12px; font-weight: 800; overflow: visible; 
}

.us-state-code { display: inline-block; line-height: 1; }


.us-state-tile.empty { visibility: hidden; 
}

.us-state-tile.restricted { background: rgba(220, 67, 67, .12); border-color: rgba(220, 67, 67, .38); color: #9d1f1f; 
}

.us-map-legend { display: grid; gap: 8px; max-width: 760px; margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.45; 
}

.us-map-legend span { display: flex; align-items: center; gap: 8px; 
}

.us-map-legend i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; flex: 0 0 auto; 
}

.legend-restricted { background: rgba(220, 67, 67, .12); border: 1px solid rgba(220, 67, 67, .38); 
}

.legend-base { background: linear-gradient(180deg, rgba(247, 233, 196, .92), rgba(250, 240, 213, .76)) !important; border: 1px solid rgba(177, 124, 36, .46) !important; box-shadow: inset 0 0 0 1px rgba(13, 37, 61, .10); }

.legend-base-entry { align-items: center; }


.us-state-tile.base { background: linear-gradient(180deg, rgba(247, 233, 196, .92), rgba(250, 240, 213, .76)) !important; border-color: rgba(177, 124, 36, .52) !important; color: #0d253d !important; box-shadow: inset 0 0 0 1px rgba(13, 37, 61, .10), 0 2px 8px rgba(177, 124, 36, .10) !important; }

.details-modal-body .us-service-map + .us-map-legend { margin-bottom: 16px; 
}

@media (max-width: 820px) {.us-map-row { grid-template-columns: repeat(5, minmax(34px, 1fr)); 
}
}

.details-modal.map-modal-open .details-modal-card { width: min(980px, calc(100vw - 44px)) !important; max-height: min(92vh, 900px) !important; padding: 28px 34px 28px !important; overflow: auto; 
}

.details-modal.map-modal-open .details-modal-card h2 { white-space: nowrap; font-size: clamp(25px, 2.25vw, 34px) !important; line-height: 1.05 !important; margin: 0 54px 12px 0 !important; 
}

.details-modal.map-modal-open .details-modal-body { font-size: 15px !important; line-height: 1.52 !important; 
}

.details-modal.map-modal-open .details-modal-body p { margin-bottom: 10px !important; 
}

.details-modal.map-modal-open .details-modal-body ul { gap: 6px !important; 
}

.details-modal.map-modal-open .details-modal-body li { padding-left: 20px; font-size: 13px; line-height: 1.42; 
}

.details-modal.map-modal-open .details-modal-body li::before { top: .55em; width: 6px; height: 6px; box-shadow: 0 0 0 4px rgba(246,179,33,.13); 
}

.details-modal.map-modal-open .us-service-map { max-width: 820px; margin: 10px 0 8px; padding: 10px; border-radius: 18px; 
}

.us-state-tile { background: rgba(44, 148, 88, .14) !important; border-color: rgba(44, 148, 88, .35) !important; color: #14532d !important; 
}

.us-state-tile.restricted { background: rgba(220, 67, 67, .16) !important; border-color: rgba(220, 67, 67, .48) !important; color: #9d1f1f !important; 
}

.us-map-legend { margin: 0 0 8px !important; gap: 5px !important; font-size: 11px !important; line-height: 1.35 !important; 
}

.legend-restricted { background: rgba(220, 67, 67, .16) !important; border: 1px solid rgba(220, 67, 67, .48) !important; 
}

.us-map-legend::before { content: ""; width: 14px; height: 14px; border-radius: 4px; display: none; 
}

.us-map-legend span:first-child::before { content: ""; width: 14px; height: 14px; border-radius: 4px; display: inline-block; margin-right: 8px; background: rgba(44, 148, 88, .14); border: 1px solid rgba(44, 148, 88, .35); 
}

.details-modal.map-modal-open .details-modal-card { width: min(1020px, calc(100vw - 44px)) !important; max-height: min(94vh, 900px) !important; padding: 24px 32px 24px !important; overflow: auto; 
}

.details-modal.map-modal-open .details-modal-card h2 { white-space: nowrap; font-size: clamp(24px, 2vw, 32px) !important; line-height: 1.04 !important; margin: 0 54px 10px 0 !important; 
}

.details-modal.map-modal-open .details-modal-body { font-size: 14px !important; line-height: 1.45 !important; 
}

.details-modal.map-modal-open .details-modal-body > p { margin-bottom: 8px !important; 
}

.details-modal.map-modal-open .details-modal-body ul { display: none !important; 
}

.details-modal.map-modal-open .us-service-map { max-width: 820px; margin: 8px 0 8px; padding: 10px; border-radius: 18px; 
}

.details-modal.map-modal-open .us-map-row { gap: 4px; margin-bottom: 4px; 
}

.details-modal.map-modal-open .us-state-tile { min-height: 28px; border-radius: 8px; font-size: 11px; 
}



.us-state-tile { background: rgba(44,148,88,.14) !important; border-color: rgba(44,148,88,.36) !important; color: #14532d !important; 
}

.us-state-tile.restricted { background: rgba(220,67,67,.16) !important; border-color: rgba(220,67,67,.50) !important; color: #9d1f1f !important; 
}

.us-map-legend { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; max-width: 820px !important; margin: 8px 0 2px !important; color: var(--muted); font-size: 12px !important; line-height: 1.32 !important; 
}

.us-map-legend span { display: flex !important; align-items: center !important; gap: 8px !important; 
}

.us-map-legend span::before { display: none !important; content: none !important; 
}

.us-map-legend i { width: 15px !important; height: 15px !important; border-radius: 4px !important; display: inline-block !important; flex: 0 0 auto !important; 
}

.legend-available { background: rgba(44,148,88,.14) !important; border: 1px solid rgba(44,148,88,.36) !important; 
}

.legend-restricted { background: rgba(220,67,67,.16) !important; border: 1px solid rgba(220,67,67,.50) !important; 
}

.state-availability-footnote { margin: 0 0 10px !important; color: var(--muted); font-size: 12px !important; line-height: 1.45 !important; 
}

@media (max-width: 820px) {.details-modal.map-modal-open .details-modal-card h2 { white-space: normal; 
}
}

/* Keep modal proportions aligned with the large-desktop layer. */
@media (min-width: 2200px) and (max-width: 3199px) {
  .details-modal,
  .legal-inline-modal,
  .resource-inline-modal {
    padding: 42px !important;
  }

  .details-modal-card {
    width: min(1120px, calc(100vw - 84px)) !important;
    max-height: min(84vh, 980px) !important;
    padding: 50px 58px 48px !important;
    border-radius: 34px !important;
  }

  .details-modal-close,
  .legal-inline-modal-close,
  .resource-inline-modal-close {
    top: 22px !important;
    right: 24px !important;
    width: 46px !important;
    height: 46px !important;
    border-radius: 16px !important;
    font-size: 31px !important;
  }

  .details-modal-card h2 {
    margin: 0 66px 24px 0 !important;
    font-size: clamp(50px, 2.08vw, 56px) !important;
    line-height: 1.06 !important;
  }

  .details-modal-body {
    font-size: 19.5px !important;
    line-height: 1.72 !important;
  }

  .details-modal-body p {
    margin-bottom: 23px !important;
  }

  .details-modal-body ul {
    gap: 14px !important;
  }

  .details-modal-body li {
    padding-left: 29px !important;
  }

  .details-modal-body li::before {
    top: .7em !important;
    width: 9px !important;
    height: 9px !important;
    box-shadow: 0 0 0 6px rgba(246,179,33,.16) !important;
  }

  .details-pricing-note {
    margin-top: 30px !important;
    padding: 24px 26px !important;
    border-radius: 22px !important;
  }

  .details-pricing-note h3 {
    font-size: 19.5px !important;
  }

  .legal-inline-modal-card,
  .resource-inline-modal-card {
    width: min(1120px, calc(100vw - 84px)) !important;
    max-height: min(84vh, 980px) !important;
    padding: 42px 52px 40px !important;
    border-radius: 34px !important;
  }

  .legal-inline-kicker {
    margin: 0 66px 9px 0 !important;
    font-size: 15px !important;
  }

  .legal-inline-modal-card h2,
  .resource-inline-modal-card h2 {
    margin: 0 66px 15px 0 !important;
    font-size: clamp(50px, 2.15vw, 56px) !important;
    line-height: 1.06 !important;
  }

  .legal-inline-updated,
  .resource-inline-updated {
    font-size: 17px !important;
    line-height: 1.42 !important;
  }

  .legal-inline-lead,
  .resource-inline-lead {
    font-size: 19.5px !important;
    line-height: 1.58 !important;
    margin-bottom: 18px !important;
  }

  .legal-inline-section,
  .resource-inline-section {
    padding-top: 15px !important;
    margin-top: 15px !important;
  }

  .legal-inline-section h3,
  .resource-inline-section h3 {
    font-size: 25px !important;
    line-height: 1.18 !important;
    margin-bottom: 9px !important;
  }

  .legal-inline-section p,
  .resource-inline-section p {
    font-size: 19px !important;
    line-height: 1.58 !important;
    margin-bottom: 12px !important;
  }

  .resource-inline-note {
    margin-top: 17px !important;
    padding: 16px 18px !important;
    border-radius: 20px !important;
    font-size: 17px !important;
    line-height: 1.48 !important;
  }

  .details-modal.map-modal-open .details-modal-card {
    width: min(1220px, calc(100vw - 84px)) !important;
    max-height: min(94vh, 1080px) !important;
    padding: 34px 42px 34px !important;
    border-radius: 32px !important;
  }

  .details-modal.map-modal-open .details-modal-card h2 {
    font-size: clamp(38px, 1.62vw, 43px) !important;
    margin: 0 66px 14px 0 !important;
  }

  .details-modal.map-modal-open .details-modal-body {
    font-size: 16.8px !important;
    line-height: 1.48 !important;
  }

  .details-modal.map-modal-open .details-modal-body > p {
    margin-bottom: 10px !important;
  }

  .details-modal.map-modal-open .us-service-map {
    max-width: 980px !important;
    margin: 10px 0 10px !important;
    padding: 12px !important;
    border-radius: 20px !important;
  }

  .details-modal.map-modal-open .us-map-row {
    gap: 5px !important;
    margin-bottom: 5px !important;
  }

  .details-modal.map-modal-open .us-state-tile {
    min-height: 34px !important;
    border-radius: 9px !important;
    font-size: 13px !important;
  }

  .details-modal.map-modal-open .us-map-legend {
    max-width: 980px !important;
    font-size: 13.5px !important;
    line-height: 1.36 !important;
  }

  .details-modal.map-modal-open .state-availability-footnote {
    font-size: 13.5px !important;
    line-height: 1.45 !important;
  }
}


/* Centralized content-aware modal sizing model.
   Modals keep their existing widths, grow with content, and only scroll internally
   after the safe viewport height is reached. */
.details-modal,
.legal-inline-modal,
.resource-inline-modal {
  --dst-modal-safe-top: 28px;
  --dst-modal-safe-right: 28px;
  --dst-modal-safe-bottom: 28px;
  --dst-modal-safe-left: 28px;
  --dst-modal-viewport-block: 100vh;
  --dst-modal-available-block: calc(var(--dst-modal-viewport-block) - var(--dst-modal-safe-top) - var(--dst-modal-safe-bottom));
  padding: var(--dst-modal-safe-top) var(--dst-modal-safe-right) var(--dst-modal-safe-bottom) var(--dst-modal-safe-left) !important;
  align-items: center;
  justify-items: center;
  overflow: visible;
  overscroll-behavior: contain;
}

@supports (height: 100dvh) {
  .details-modal,
  .legal-inline-modal,
  .resource-inline-modal {
    --dst-modal-viewport-block: 100dvh;
  }
}

.details-modal-card,
.legal-inline-modal-card,
.resource-inline-modal-card {
  --dst-modal-card-block-cap: 1040px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: auto !important;
  max-height: min(var(--dst-modal-available-block), var(--dst-modal-card-block-cap)) !important;
  overflow: hidden !important;
  overscroll-behavior: contain;
}

.details-modal-card h2 {
  flex: 0 0 auto;
}

.details-modal-body,
.legal-inline-modal-content,
.resource-inline-modal-content {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(13, 59, 102, .28) rgba(13, 59, 102, .06);
}

.details-modal-body::-webkit-scrollbar,
.legal-inline-modal-content::-webkit-scrollbar,
.resource-inline-modal-content::-webkit-scrollbar { width: 10px; }

.details-modal-body::-webkit-scrollbar-track,
.legal-inline-modal-content::-webkit-scrollbar-track,
.resource-inline-modal-content::-webkit-scrollbar-track { background: rgba(13, 59, 102, .06); border-radius: 999px; }

.details-modal-body::-webkit-scrollbar-thumb,
.legal-inline-modal-content::-webkit-scrollbar-thumb,
.resource-inline-modal-content::-webkit-scrollbar-thumb { background: rgba(13, 59, 102, .26); border: 2px solid rgba(244,248,252,.98); border-radius: 999px; }

.details-modal-body::-webkit-scrollbar-thumb:hover,
.legal-inline-modal-content::-webkit-scrollbar-thumb:hover,
.resource-inline-modal-content::-webkit-scrollbar-thumb:hover { background: rgba(13, 59, 102, .36); }

.details-modal.map-modal-open .details-modal-card {
  --dst-modal-card-block-cap: 1120px;
}

/* Roomy desktop modal height. When a modal has minor internal overflow but the
   viewport still has safe vertical room, JS raises only the max-height cap. Do
   not force a fixed card height here: a fixed height can create visible empty
   space after the last paragraph when the content is shorter than the target. */
.details-modal.modal-roomy-height .details-modal-card,
.legal-inline-modal.modal-roomy-height .legal-inline-modal-card,
.resource-inline-modal.modal-roomy-height .resource-inline-modal-card {
  height: auto !important;
  max-height: min(var(--dst-modal-target-block), var(--dst-modal-available-block)) !important;
}

.details-modal-body > :last-child,
.legal-inline-content-block > :last-child,
.resource-inline-content-block > :last-child,
.legal-inline-section:last-child,
.resource-inline-section:last-child,
.resource-inline-note:last-child {
  margin-bottom: 0 !important;
}

body.modal-open,
html.legal-inline-modal-active,
html.legal-inline-modal-active body,
html.resource-inline-modal-active,
html.resource-inline-modal-active body {
  overflow: visible;
  overscroll-behavior: none;
}

@media (max-width: 820px) {
  .details-modal,
  .legal-inline-modal,
  .resource-inline-modal {
    --dst-modal-safe-top: max(12px, env(safe-area-inset-top));
    --dst-modal-safe-right: 12px;
    --dst-modal-safe-bottom: max(12px, env(safe-area-inset-bottom));
    --dst-modal-safe-left: 12px;
  }

  .details-modal-card,
  .legal-inline-modal-card,
  .resource-inline-modal-card,
  .details-modal.map-modal-open .details-modal-card {
    --dst-modal-card-block-cap: 9999px;
  }
}

@media (max-height: 620px) {
  .details-modal,
  .legal-inline-modal,
  .resource-inline-modal {
    --dst-modal-safe-top: max(10px, env(safe-area-inset-top));
    --dst-modal-safe-bottom: max(10px, env(safe-area-inset-bottom));
  }
}

@media (min-width: 2200px) and (max-width: 3199px) {
  .details-modal,
  .legal-inline-modal,
  .resource-inline-modal {
    --dst-modal-safe-top: 42px;
    --dst-modal-safe-right: 42px;
    --dst-modal-safe-bottom: 42px;
    --dst-modal-safe-left: 42px;
  }

  .details-modal-card,
  .legal-inline-modal-card,
  .resource-inline-modal-card,
  .details-modal.map-modal-open .details-modal-card {
    /* On 2560x1440 there is enough vertical room to avoid avoidable internal scroll.
       Use the safe viewport height itself as the cap; smaller large-desktop heights
       remain protected by --dst-modal-available-block. */
    --dst-modal-card-block-cap: var(--dst-modal-available-block);
  }
}

/* Keep the content-aware model, but move inner modal scrollbars
   toward the card edge and keep the close control above the scroll gutter. */
.details-modal-card,
.legal-inline-modal-card,
.resource-inline-modal-card {
  --dst-modal-scrollbar-edge-offset: 30px;
}

.details-modal-body,
.legal-inline-modal-content,
.resource-inline-modal-content {
  flex: 1 1 auto;
  margin-right: calc(-1 * var(--dst-modal-scrollbar-edge-offset));
  padding-right: var(--dst-modal-scrollbar-edge-offset);
}

.details-modal-close,
.legal-inline-modal-close,
.resource-inline-modal-close {
  z-index: 3;
}

@media (max-width: 820px) {
  .details-modal-card,
  .legal-inline-modal-card,
  .resource-inline-modal-card {
    --dst-modal-scrollbar-edge-offset: 12px;
  }
}

@media (min-width: 2200px) and (max-width: 3199px) {
  .details-modal-card,
  .legal-inline-modal-card,
  .resource-inline-modal-card {
    --dst-modal-scrollbar-edge-offset: 42px;
  }
}

/* Consistent physical background blur for all modal families,
   decoupled from modal scroll-lock classes. The modal card itself now opens
   and closes without motion effects; page blur state changes are immediate. */
html.modal-page-blur-active body > .site-header,
html.modal-page-blur-active body > main,
html.modal-page-blur-active body > .site-footer,
html.modal-page-blur-active body > .ai-widget {
  filter: blur(6px) saturate(.88) brightness(.92);
  transform: translateZ(0);
  transition: none !important;
  pointer-events: none;
}

html.modal-page-blur-releasing body > .site-header,
html.modal-page-blur-releasing body > main,
html.modal-page-blur-releasing body > .site-footer,
html.modal-page-blur-releasing body > .ai-widget {
  transition: none !important;
}

.details-modal-backdrop,
.legal-inline-modal-backdrop,
.resource-inline-modal-backdrop {
  background: rgba(13, 37, 61, .46) !important;
  -webkit-backdrop-filter: blur(8px) saturate(.88) !important;
  backdrop-filter: blur(8px) saturate(.88) !important;
}


@media (prefers-reduced-motion: reduce) {
  html.modal-page-blur-active body > .site-header,
  html.modal-page-blur-active body > main,
  html.modal-page-blur-active body > .site-footer,
  html.modal-page-blur-active body > .ai-widget,
  html.modal-page-blur-releasing body > .site-header,
  html.modal-page-blur-releasing body > main,
  html.modal-page-blur-releasing body > .site-footer,
  html.modal-page-blur-releasing body > .ai-widget {
    transition: none !important;
  }
}

/* Final state availability base override: TX is a practice base marker, not a service limitation. */
.us-state-tile.base {
  background: linear-gradient(180deg, rgba(247, 233, 196, .92), rgba(250, 240, 213, .76)) !important;
  border-color: rgba(177, 124, 36, .52) !important;
  color: #0d253d !important;
  box-shadow: inset 0 0 0 1px rgba(13, 37, 61, .10), 0 2px 8px rgba(177, 124, 36, .10) !important;
}
