/* Directory-only layout. Semantic tokens follow the theme palette.
   Important declarations override legacy provider mobile rules in the core CSS. */
#main-content.providerDirectory { --provider-line: var(--themeBd-color); }
#main-content.providerDirectory .blogT { margin-bottom: 20px !important; }
#main-content.providerDirectory .provider-notice-wrapper { margin: 0 0 20px; }
#main-content.providerDirectory .provider-note-clamp { margin: 0; border-radius: var(--contentBd-radius); font-size: .875rem !important; line-height: 1.7 !important; }
#main-content.providerDirectory .provider-controls { gap: 12px !important; margin-bottom: 20px !important; }
#main-content.providerDirectory .provider-search-box { flex: 1 1 100%; max-width: 100%; }
#main-content.providerDirectory .provider-search-box input { height: 44px !important; border-radius: var(--contentBd-radius); border-color: var(--provider-line); background: var(--contentBg); font: .875rem var(--fontBody-alt); }
#main-content.providerDirectory .provider-filter-bar { gap: 8px !important; }
#main-content.providerDirectory .provider-filter-bar .button { height: 40px !important; padding: 0 12px !important; border-radius: var(--buttonBd-radius) !important; font-size: .8125rem !important; font-weight: 400; background: var(--buttonBg); color: var(--buttonC); border: var(--buttonBd-line) solid var(--buttonBd-color); box-shadow: none; }
#main-content.providerDirectory .provider-filter-bar .button.ln { color: var(--themeC-alt) !important; background: var(--contentBg); border-color: var(--provider-line); }
#main-content.providerDirectory #providerGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px !important; }
#main-content.providerDirectory #providerGrid.is-list { grid-template-columns: minmax(0,1fr); }
#main-content.providerDirectory #providerGrid > .provider-card { display: flex !important; flex-direction: column !important; width: 100% !important; min-width: 0 !important; padding: 18px !important; gap: 0 !important; border: var(--contentBd-line) solid var(--provider-line); border-radius: var(--contentBd-radius) !important; background: var(--contentBg); color: var(--contentC); box-shadow: none !important; transform: none; transition: border-color var(--tDuration); }
#main-content.providerDirectory #providerGrid > .provider-card[hidden] { display: none !important; }
#main-content.providerDirectory #providerGrid .pH-brand { flex-wrap: wrap; gap: 10px; margin-bottom: 12px !important; }
#main-content.providerDirectory #providerGrid .brand-info { flex: 1 1 180px; width: auto; gap: 10px !important; overflow: visible; }
#main-content.providerDirectory #providerGrid .brand-avatar { width: 36px !important; height: 36px !important; border: 0; border-radius: var(--contentBd-radius) !important; font-size: 1rem !important; background: var(--contentBg-alt); color: var(--themeC); }
#main-content.providerDirectory #providerGrid .brand-avatar img { width: 26px !important; height: 26px !important; }
#main-content.providerDirectory #providerGrid .brand-meta { min-width: 0; }
#main-content.providerDirectory #providerGrid .brand-meta .name { margin: 0 !important; font-family: var(--fontBody-alt); font-size: 1rem !important; font-weight: 500 !important; line-height: 1.5 !important; }
#main-content.providerDirectory #providerGrid .brand-meta .name a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; white-space: normal; color: inherit !important; text-decoration: none; }
#main-content.providerDirectory #providerGrid .sub-info { display: none; }
#main-content.providerDirectory #providerGrid .brand-badges { gap: 8px !important; margin: 0; max-width: 100%; }
#main-content.providerDirectory #providerGrid .provider-tag-pill { padding: 0 !important; border: 0; border-radius: 0 !important; background: transparent; font-size: .75rem !important; font-weight: 400; color: var(--themeC-alt); }
#main-content.providerDirectory #providerGrid .provider-score { padding: 0 !important; border: 0; border-radius: 0 !important; background: transparent; color: var(--themeC-alt); font-size: .75rem !important; font-weight: 400; }
#main-content.providerDirectory #providerGrid .provider-score svg { color: var(--themeC-alt) !important; width: 12px !important; height: 12px !important; }
#main-content.providerDirectory #providerGrid .pC { padding: 0; gap: 0; }
#main-content.providerDirectory #providerGrid .brand-desc { display: none !important; }
#main-content.providerDirectory #providerGrid.is-list .brand-desc { display: -webkit-box !important; -webkit-line-clamp: 1; -webkit-box-orient: vertical; font-size: .8125rem; font-weight: 400; line-height: 1.6; margin: 0 0 12px; color: var(--themeC-alt); }
#main-content.providerDirectory #providerGrid .provider-specs-grid { display: grid !important; grid-template-columns: minmax(0,1fr); gap: 6px !important; padding: 0 !important; margin: 0 0 14px !important; border: 0; background: transparent; }
#main-content.providerDirectory #providerGrid.is-list .provider-specs-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px !important; }
#main-content.providerDirectory #providerGrid .spec-cell { display: flex !important; flex-direction: row !important; align-items: baseline !important; gap: 8px !important; padding: 0 !important; border: 0; min-width: 0; }
#main-content.providerDirectory #providerGrid .spec-cell.spec-payment,
#main-content.providerDirectory #providerGrid .spec-cell.spec-refund { display: none !important; }
#main-content.providerDirectory #providerGrid .spec-lbl { flex-shrink: 0; padding: 0 !important; border: 0; background: transparent; border-radius: 0; font-size: .75rem !important; line-height: 1.6 !important; font-weight: 400; color: var(--themeC-alt); }
#main-content.providerDirectory #providerGrid .spec-val { font-size: .8125rem !important; line-height: 1.6 !important; font-weight: 400; color: var(--themeC); min-width: 0; }
#main-content.providerDirectory #providerGrid .pF { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid var(--provider-line); margin-top: auto; }
#main-content.providerDirectory #providerGrid .price-wrap { flex-wrap: wrap; min-width: 0; gap: 4px !important; }
#main-content.providerDirectory #providerGrid .price-val { font-size: 1rem !important; font-weight: 500 !important; color: var(--themeLink); }
#main-content.providerDirectory #providerGrid .price-lbl,
#main-content.providerDirectory #providerGrid .price-unit { font-size: .75rem; }
#main-content.providerDirectory #providerGrid .provider-copy-btn { display: none; }
#main-content.providerDirectory #providerGrid.is-list .provider-copy-btn { display: inline-flex; min-height: 36px; align-items: center; padding: 0 8px; border: 1px dashed var(--provider-line); background: transparent; color: var(--themeC-alt); border-radius: var(--buttonBd-radius); font-size: .75rem; }
#main-content.providerDirectory #providerGrid .btnF { display: flex; gap: 8px !important; margin: 0 !important; }
#main-content.providerDirectory #providerGrid .btnF .button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; height: auto !important; padding: 0 12px !important; border-radius: var(--buttonBd-radius); font-size: .8125rem !important; font-weight: 400; color: var(--buttonC); background: var(--buttonBg); border: var(--buttonBd-line) solid var(--buttonBd-color); box-shadow: none; }
#main-content.providerDirectory #providerGrid .btnF .button.ln { color: var(--themeC); background: transparent; border-color: var(--provider-line); }
#main-content.providerDirectory #providerGrid:not(.is-list) .btn-official { display: none; }
#main-content.providerDirectory #providerGrid .txt-short { display: none; }
#main-content.providerDirectory #providerGrid .txt-full { display: inline; }
#main-content.providerDirectory #providerGrid > .provider-card:hover { transform: none; box-shadow: none !important; border-color: var(--provider-line); }
#main-content.providerDirectory #providerGrid .provider-card:hover .brand-avatar { border-color: transparent; background: var(--contentBg-alt); }
#main-content.providerDirectory :is(a,button,input):focus-visible { outline: 2px solid var(--themeLink); outline-offset: 3px; }
#main-content.providerDirectory #providerGrid .name a:active { color: var(--themeLink) !important; }
@media (hover:hover) and (pointer:fine) {
  #main-content.providerDirectory #providerGrid > .provider-card:hover { border-color: var(--themeLink); }
  #main-content.providerDirectory #providerGrid .name a:hover { color: var(--themeLink) !important; text-decoration: underline; }
}
@media (max-width:1100px) and (min-width:641px) {
  #main-content.providerDirectory #providerGrid:not(.is-list) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
/* Remove legacy badge decorations and responsive button overrides. */
#main-content.providerDirectory #providerGrid .spec-lbl { border: 0 !important; background: transparent !important; border-radius: 0 !important; font-weight: 400 !important; }
#main-content.providerDirectory #providerGrid .spec-val { font-weight: 400 !important; }
#main-content.providerDirectory #providerGrid:not(.is-list) .btn-official { display: none !important; }
#main-content.providerDirectory #providerGrid.is-list .btn-official { display: inline-flex !important; }
#main-content.providerDirectory #providerGrid .txt-short { display: none !important; }
#main-content.providerDirectory #providerGrid .txt-full { display: inline !important; }
#main-content.providerDirectory .providerEmpty { padding: 28px 0; text-align: center; color: var(--themeC-alt); font-size: .875rem; }
/* Keep one footer system in both layouts; clear the older desktop side rail. */
#main-content.providerDirectory #providerGrid .pC { display: flex; flex-direction: column; width: 100%; }
#main-content.providerDirectory #providerGrid .pF { width: 100%; flex-direction: row; align-items: center; grid-area: auto; }
#main-content.providerDirectory #providerGrid .brand-desc,
#main-content.providerDirectory #providerGrid .provider-specs-grid { grid-area: auto; }
#main-content.providerDirectory #providerGrid .pF { justify-content: space-between; }
#main-content.providerDirectory #providerGrid .price-wrap { justify-content: flex-start; width: auto; align-self: auto; }
#main-content.providerDirectory .provider-note-clamp { background: color-mix(in srgb,var(--themeLink) 6%,var(--contentBg)); color: var(--themeC-alt); }
#main-content.providerDirectory .provider-note-clamp b { color: var(--themeC); }
#main-content.providerDirectory .provider-note-clamp::before { color: var(--themeLink); }

/* Compact mobile cards: keep the merchant facts and actions in three bands. */
@media (max-width:640px) {
  #main-content.providerDirectory .provider-controls { gap: 10px !important; }
  #main-content.providerDirectory .provider-filter-bar { padding: 0 0 6px !important; }
  #main-content.providerDirectory .provider-filter-bar .button { min-height: 44px; }
  #main-content.providerDirectory #providerGrid { grid-template-columns: minmax(0,1fr); gap: 10px !important; }
  #main-content.providerDirectory #providerGrid > .provider-card { padding: 12px !important; }
  #main-content.providerDirectory #providerGrid .pH-brand { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; column-gap: 8px; row-gap: 0; margin-bottom: 6px !important; align-items: center; }
  #main-content.providerDirectory #providerGrid .brand-info,
  #main-content.providerDirectory #providerGrid .brand-badges { display: contents; }
  #main-content.providerDirectory #providerGrid .brand-avatar { grid-column: 1; grid-row: 1 / 3; width: 30px !important; height: 30px !important; }
  #main-content.providerDirectory #providerGrid .brand-avatar img { width: 22px !important; height: 22px !important; }
  #main-content.providerDirectory #providerGrid .brand-meta { grid-column: 2; grid-row: 1; }
  #main-content.providerDirectory #providerGrid .brand-meta .name { font-size: .9375rem !important; line-height: 1.4 !important; }
  #main-content.providerDirectory #providerGrid .provider-tag-pill { grid-column: 2 / 4; grid-row: 2; font-size: .6875rem !important; line-height: 1.4; }
  #main-content.providerDirectory #providerGrid .provider-score { grid-column: 3; grid-row: 1; font-size: .6875rem !important; }
  #main-content.providerDirectory #providerGrid.is-list .brand-desc { display: none !important; }
  #main-content.providerDirectory #providerGrid .provider-specs-grid,
  #main-content.providerDirectory #providerGrid.is-list .provider-specs-grid { grid-template-columns: minmax(0,1fr); gap: 2px !important; margin-bottom: 6px !important; }
  #main-content.providerDirectory #providerGrid .pF { flex-wrap: nowrap; gap: 8px; padding-top: 6px; }
  #main-content.providerDirectory #providerGrid .price-wrap { flex: 1 1 auto; display: grid; grid-template-columns: max-content max-content; gap: 0 3px !important; }
  #main-content.providerDirectory #providerGrid .price-lbl { display: none; }
  #main-content.providerDirectory #providerGrid .price-val { font-size: .9375rem !important; }
  #main-content.providerDirectory #providerGrid .price-unit { font-size: .6875rem; }
  #main-content.providerDirectory #providerGrid.is-list .provider-copy-btn { display: inline-flex !important; grid-column: 1 / -1; justify-self: start; max-width: 100%; min-height: 24px; padding: 0 4px; font-size: .625rem; line-height: 1.3; }
  #main-content.providerDirectory #providerGrid .btnF { flex: 0 0 auto; width: auto; gap: 6px !important; }
  #main-content.providerDirectory #providerGrid .btnF .button { min-height: 44px; padding: 0 8px !important; font-size: .75rem !important; }
  #main-content.providerDirectory #providerGrid .txt-full { display: none !important; }
  #main-content.providerDirectory #providerGrid .txt-short { display: inline !important; }
}

/* Share the theme's semantic colors in both palettes and interactive states. */
#main-content.providerDirectory .provider-search-box input { color: var(--inputC); caret-color: var(--themeLink); }
#main-content.providerDirectory .provider-search-box input::placeholder { color: var(--placeHolder); opacity: 1; }
#main-content.providerDirectory .provider-search-box input:focus { border-color: var(--themeLink); box-shadow: 0 0 0 2px color-mix(in srgb,var(--themeLink) 20%,transparent); }
#main-content.providerDirectory #providerGrid .price-lbl,
#main-content.providerDirectory #providerGrid .price-unit { color: var(--themeC-alt); opacity: 1; }
#main-content.providerDirectory #providerGrid .provider-copy-btn:hover { background: var(--contentBg-alt); border-color: var(--themeLink); color: var(--themeC); }
#nB .providerDirectoryToast { position: fixed; bottom: 75px; left: 50%; transform: translateX(-50%); max-width: calc(100% - 40px); padding: 12px 18px; border-radius: var(--contentBd-radius); font: .8125rem/1.5 var(--fontBody-alt); color: var(--toastC); background: var(--toastBg); box-shadow: 5px 10px 20px var(--shadow-sm); z-index: var(--z-toast); transition: opacity var(--tDuration); opacity: 0; pointer-events: none; }

@media (max-width:640px) {
  #main-content.providerDirectory #providerGrid .price-wrap { grid-template-columns: minmax(0,1fr) auto; }
  #main-content.providerDirectory #providerGrid .price-val,
  #main-content.providerDirectory #providerGrid .provider-copy-btn { min-width: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #main-content.providerDirectory #providerGrid .btnF .button { flex: 0 0 66px; width: 66px; min-width: 66px; }
  #main-content.providerDirectory #providerGrid .btnF .button::before { content: none; }
}
