/* ==========================================================
   Recovery Resource Explorer — Consolidated CSS
   Version: v4.5-consolidated-payment-pill-fix

   PURPOSE
   - Single clean stylesheet for the Resource Explorer cards and modal/detail view.
   - Preserves the approved product UI: premium marketplace cards, tighter modal,
     provider/service split, coverage tooltips, description scroll, related resources,
     claim/promote footer CTA, and top/bottom Back to Resources links.
   - Removes the stacked "FINAL / FINAL CLEANUP / MICRO POLISH" override pattern.

   SCOPE
   - Card/results UI: #tbl-calendar-shell, #tbl-calendar-container, .rre-*
   - Modal/detail UI: #rre-single-container, .rrh-single-resource
   - Does not own global glass.css, header/footer, meetings tables, or site-wide theme CSS.
   ========================================================== */

/* ==========================================================
   0) TOKENS
   Central variables only. Future broad design changes start here.
   ========================================================== */

:root{
  /* Link / text tone */
  --rrh-link:11,103,194;
  --rrh-link-opacity:.75;

  /* Modal spacing and shape */
  --rrh-modal-pad:6px;
  --rrh-content-pad:clamp(8px,1.25vw,18px);
  --rrh-shell-pad:clamp(10px,1vw,14px);
  --rrh-content-radius:clamp(22px,3vw,38px);
  --rrh-shell-radius:clamp(20px,2.4vw,28px);
  --rrh-card-radius:clamp(16px,1.8vw,22px);

  /* Shared surfaces */
  --rrh-panel-bg:rgba(255,255,255,.52);
  --rrh-panel-border:rgba(0,0,0,.10);

  /* Typography */
  --rrh-text-size:clamp(14px,1.05vw,17px);
  --rrh-small-size:clamp(13px,.95vw,15px);
  --rrh-title-size:clamp(19px,1.55vw,23px);

  /* Card/product palette */
  --rre-text:var(--rrh-text,#334843);
  --rre-heading:var(--rrh-heading-text,#39554c);
  --rre-muted:var(--rrh-muted,#5f706b);
  --rre-border:rgba(122,106,78,.12);
  --rre-border-strong:rgba(122,106,78,.22);
  --rre-btn:rgba(242,243,237,.92);
  --rre-btn-hover:rgba(255,255,255,.74);
  --rre-green:rgba(232,245,235,.88);
  --rre-blue:rgba(226,238,255,.72);
  --rre-gold:rgba(255,246,220,.96);
  --rre-premium-warm:rgba(191,145,39,.42);
  --rre-premium-cool:rgba(83,131,190,.36);
  --rre-card-radius:clamp(18px,2vw,24px);
  --rre-card-pad:clamp(16px,1.6vw,20px);
  --rre-gap:clamp(10px,1.3vw,16px);
  --rre-icon-size:28px;
  --rre-icon-border:rgba(122,106,78,.18);
  --rre-icon-bg:rgba(255,255,255,.50);
}

#tbl-calendar-shell,
#tbl-calendar-shell *,
#rre-single-container,
#rre-single-container *,
.rrh-single-resource,
.rrh-single-resource *{
  box-sizing:border-box;
}

/* ==========================================================
   1) RESOURCE PAGE / RESULTS BASE
   Owns the premium marketplace card region only.
   ========================================================== */

#tbl-calendar-shell{
  color:var(--rre-text);
}

#tbl-calendar-shell .meetings-resources{
  color:var(--rre-heading) !important;
}

#tbl-calendar-container{
  background:rgba(255,255,255,.54) !important;
  border-radius:clamp(20px,2vw,26px) !important;
}

#tbl-calendar-container .rrh-controls-card{
  padding:clamp(10px,1.3vw,14px) !important;
  border-radius:18px !important;
  border:1px solid var(--rre-border) !important;
  background:rgba(255,255,255,.50) !important;
  box-shadow:0 4px 12px rgba(0,0,0,.04),0 18px 40px rgba(0,0,0,.04) !important;
}

/* Green focus states only. Avoid the old warm/salmon input ring. */
#tbl-calendar-container .rrh-input:focus,
#tbl-calendar-container .rrh-select:focus,
#tbl-calendar-container .tbl-page-select:focus,
#tbl-calendar-container .rrh-input:focus-visible,
#tbl-calendar-container .rrh-select:focus-visible,
#tbl-calendar-container .tbl-page-select:focus-visible{
  outline:none !important;
  border-color:rgba(98,132,105,.38) !important;
  background:rgba(248,250,246,.94) !important;
  box-shadow:0 0 0 3px rgba(98,132,105,.10) !important;
  caret-color:#39554c !important;
}

#tbl-calendar-container input.rrh-input:-webkit-autofill,
#tbl-calendar-container input.rrh-input:-webkit-autofill:hover,
#tbl-calendar-container input.rrh-input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--rre-text) !important;
  box-shadow:0 0 0 1000px rgba(244,250,240,.96) inset,0 0 0 4px rgba(92,132,83,.14) !important;
  border-color:rgba(92,132,83,.55) !important;
}

#tbl-calendar-container .rrh-btn:active{
  transform:translateY(1px);
}

/* ==========================================================
   2) RESULTS TOOLBAR / EMPTY STATES
   Small utility elements above/between card results.
   ========================================================== */

.rre-results-shell{
  width:100%;
  margin-top:clamp(10px,1.4vw,16px);
}

.rre-results-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:0 0 10px;
  padding:8px 10px;
  border-radius:14px;
  border:1px solid var(--rre-border);
  background:rgba(255,255,255,.42);
}

.rre-results-count{
  color:var(--rre-text);
  font-size:clamp(13px,1vw,14px);
  font-weight:800;
}

.rre-results-context{
  color:var(--rre-muted);
  font-size:clamp(11px,.9vw,12px);
  font-weight:700;
}

.rre-empty-card,
.calendar-loading,
.tbl-loading{
  border:1px solid var(--rre-border);
  background:rgba(255,255,255,.55);
  color:var(--rre-muted);
}

.rre-empty-card{
  min-height:120px;
  display:grid;
  place-items:center;
  padding:clamp(18px,2vw,24px);
  border-radius:20px;
  font-size:14px;
  line-height:1.45;
  font-weight:700;
  text-align:center;
}

.calendar-loading,
.tbl-loading{
  padding:14px;
  border-radius:16px;
}

/* ==========================================================
   3) PREMIUM RESOURCE CARDS
   Card hierarchy: category/distance, title/service, badges, description,
   location/action row, subtle promotion entry.
   ========================================================== */

.rre-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));
  gap:var(--rre-gap);
  align-items:stretch;
  width:100%;
}

.rre-resource-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
  height:100%;
  padding:var(--rre-card-pad);
  cursor:pointer;
  border-radius:var(--rre-card-radius);
  border:1px solid var(--rre-border);
  background:rgba(255,255,255,.46);
  box-shadow:0 2px 6px rgba(0,0,0,.055),0 12px 28px rgba(0,0,0,.045);
  overflow:visible;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}

.rre-resource-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,.065),0 22px 48px rgba(0,0,0,.055);
}

.rre-resource-card:focus-visible{
  outline:2px solid rgba(74,112,160,.38);
  outline-offset:3px;
}

.rre-resource-card a,
.rre-resource-card button{
  cursor:pointer;
}

.rre-resource-card--standard{
  background:rgba(255,255,255,.46);
}

.rre-resource-card--sponsored{
  border-color:rgba(191,145,39,.34) !important;
  background:radial-gradient(circle at 20% 0%,rgba(255,246,212,.55),transparent 42%),linear-gradient(180deg,rgba(255,250,231,.88),rgba(255,255,255,.58)) !important;
  box-shadow:0 5px 16px rgba(191,145,39,.11),0 20px 46px rgba(0,0,0,.06) !important;
}

.rre-resource-card--featured{
  border-color:var(--rre-premium-cool) !important;
  background:radial-gradient(circle at 20% 0%,rgba(225,240,255,.62),transparent 42%),linear-gradient(180deg,rgba(242,248,255,.88),rgba(255,255,255,.60)) !important;
  box-shadow:0 5px 16px rgba(83,131,190,.08),0 20px 46px rgba(0,0,0,.055) !important;
}

.rre-card-topline{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center !important;
  gap:10px !important;
  min-width:0;
  margin-bottom:1px;
}

.rre-card-kicker-wrap{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
}

.rre-card-kicker{
  min-width:0;
  color:#6a5d49;
  font-size:11px;
  font-weight:800;
  letter-spacing:.075em;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.rre-category-icon,
.rre-provider-logo{
  flex:0 0 var(--rre-icon-size);
  width:var(--rre-icon-size);
  height:var(--rre-icon-size);
  display:inline-grid;
  place-items:center;
  overflow:hidden;
  border-radius:9px;
  border:1px solid var(--rre-icon-border);
  background:var(--rre-icon-bg);
  color:#6a5d49;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 1px 2px rgba(0,0,0,.035);
}

.rre-provider-logo{
  display:inline-flex;
  background:rgba(255,255,255,.74);
}

.rre-category-icon svg{
  width:16px;
  height:16px;
  stroke:currentColor;
}

.rre-provider-logo-img{
  display:block;
  width:100% !important;
  height:100% !important;
  object-fit:contain;
  object-position:center;
  padding:3px;
}

/* Category icon accents stay muted and category-aware. */
.rre-category-icon--food,
.rre-category-icon--legal{ color:#2d4f75; background:rgba(226,238,255,.58); }
.rre-category-icon--housing,
.rre-category-icon--sober,
.rre-category-icon--community,
.rre-category-icon--meetings{ color:#3f5d45; background:rgba(232,245,235,.58); }
.rre-category-icon--jobs,
.rre-category-icon--health,
.rre-category-icon--treatment{ color:#6b531f; background:rgba(255,246,220,.58); }
.rre-resource-card--sponsored .rre-category-icon{ color:#6b531f; border-color:rgba(191,145,39,.30); background:rgba(255,246,220,.70); }
.rre-resource-card--featured .rre-category-icon{ color:#2d4f75; border-color:rgba(74,112,160,.24); background:rgba(226,238,255,.66); }

.rre-distance-pill{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid rgba(79,140,91,.22);
  background:rgba(232,245,235,.76);
  color:#2f5e3e;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58);
}

.rre-card-title{
  margin:0 0 2px !important;
  color:var(--rre-text);
  font-size:clamp(19px,1.55vw,22px) !important;
  line-height:1.08 !important;
  font-weight:800;
  letter-spacing:-.01em;
  min-height:calc((1.08em * 2) + 18px);
  overflow:hidden !important;
}

.rre-card-title-link,
.rre-card-title-link:visited{
  display:block !important;
  color:var(--rre-text) !important;
  text-decoration:none !important;
}

.rre-card-title-link:hover{
  text-decoration:none !important;
}

.rre-card-provider-name{
  display:-webkit-box !important;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden !important;
}

.rre-card-service-name{
  display:block !important;
  margin-top:3px !important;
  color:rgba(51,72,67,.68) !important;
  font-size:clamp(12.5px,.95vw,14px) !important;
  line-height:1.18 !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.rre-card-description{
  margin:2px 0 0 !important;
  color:var(--rre-muted);
  font-size:clamp(13.5px,1.05vw,14.5px) !important;
  line-height:1.52 !important;
  min-height:calc(1.52em * 4) !important;
  display:-webkit-box !important;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden !important;
}

/* ==========================================================
   4) BADGES / PILLS
   Shared badge language for cards and modal coverage/trust rows.
   ========================================================== */

.rre-badge-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px !important;
  width:100%;
}

.rre-badge-row--trust{
  justify-content:flex-end !important;
  min-height:28px !important;
  margin-top:-2px !important;
  margin-bottom:0 !important;
}

.rre-badge-row--access{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(86px,1fr)) !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  gap:6px !important;
  margin-top:0 !important;
}

.rre-badge-row--access .rrh-badge,
.rre-badge-row--access .rre-badge--free,
.rre-badge-row--access .rre-badge--paid,
.rre-badge-row--access .rre-badge--insurance,
.rre-badge-row--access .rre-badge--telehealth{
  width:100% !important;
  min-width:0 !important;
}

.rre-badge-row .rrh-badge,
.rre-badge-row .rre-badge--free,
.rre-badge-row .rre-badge--paid,
.rre-badge-row .rre-badge--insurance,
.rre-badge-row .rre-badge--telehealth,
.rre-badge-row .rre-badge--claimed,
#rre-single-container .rrh-resource-access .rrh-badge,
.rrh-single-resource .rrh-resource-access .rrh-badge{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:26px !important;
  padding:0 10px !important;
  border-radius:999px !important;
  border:1px solid rgba(122,106,78,.16) !important;
  background:rgba(255,255,255,.62) !important;
  color:var(--rre-text) !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

.rre-badge-row .rrh-badge--standard,
.rre-badge-row .rre-badge--paid{
  display:none !important;
}

.rre-badge-row .rrh-badge--sponsored,
#rre-single-container .rrh-badge--sponsored,
.rrh-single-resource .rrh-badge--sponsored{
  background:var(--rre-gold) !important;
  border-color:rgba(191,145,39,.36) !important;
  color:#6b531f !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 2px 6px rgba(191,145,39,.06);
}

.rre-badge-row .rrh-badge--featured,
#rre-single-container .rrh-badge--featured,
.rrh-single-resource .rrh-badge--featured{
  background:rgba(226,238,255,.88) !important;
  border-color:rgba(74,112,160,.30) !important;
  color:#2d4f75 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.70),0 2px 6px rgba(74,112,160,.05);
}

.rre-badge-row .rrh-badge--verified,
.rre-badge-row .rre-badge--claimed,
.rre-badge-row .rre-badge--free,
#rre-single-container .rrh-badge--verified,
.rrh-single-resource .rrh-badge--verified{
  background:var(--rre-green) !important;
  border-color:rgba(79,140,91,.28) !important;
  color:#2f5e3e !important;
}

.rre-badge-row .rre-badge--verified-date{
  min-width:0 !important;
  padding-inline:10px !important;
  font-size:10.5px !important;
  letter-spacing:0 !important;
}

.rre-badge-row .rre-badge--insurance,
.rre-badge-row .rre-badge--telehealth,
#rre-single-container .rrh-resource-access .rre-badge--insurance,
#rre-single-container .rrh-resource-access .rre-badge--telehealth,
.rrh-single-resource .rrh-resource-access .rre-badge--insurance,
.rrh-single-resource .rrh-resource-access .rre-badge--telehealth{
  background:var(--rre-blue) !important;
  border-color:rgba(74,112,160,.20) !important;
  color:#345878 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72) !important;
}

/* Legal suffixes are visually demoted only; data remains unchanged. */
.rre-legal-suffix,
#rre-single-container .rre-legal-suffix,
.rrh-single-resource .rre-legal-suffix,
.rre-card-title .rre-legal-suffix,
.rre-resource-title .rre-legal-suffix{
  font-size:.62em !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  opacity:.68 !important;
  font-style:normal !important;
  vertical-align:.08em !important;
  white-space:nowrap !important;
}

/* ==========================================================
   5) CARD META / ACTIONS / PROMOTE ENTRY
   Card action buttons are compact utility actions. Full card still opens detail.
   ========================================================== */

.rre-card-meta{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(110px,.55fr);
  gap:8px;
  margin-top:auto !important;
}

.rre-card-meta .rre-meta-item:only-child{
  grid-column:1 / -1;
}

.rre-meta-item{
  min-width:0;
  padding:10px 12px !important;
  border-radius:14px !important;
  border:1px solid rgba(122,106,78,.10);
  background:rgba(255,255,255,.44) !important;
}

.rre-meta-label{
  display:block;
  margin-bottom:3px;
  color:#6a5d49;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.rre-meta-value{
  display:block;
  color:var(--rre-text);
  font-size:12px;
  font-weight:700;
  line-height:1.28;
}

.rre-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px !important;
  align-items:center;
  width:100%;
  margin-top:2px !important;
  padding-top:0 !important;
}

.rre-action-btn,
.rre-action-btn:visited{
  flex:1 1 74px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:66px;
  height:36px !important;
  min-height:36px !important;
  padding:0 8px;
  border-radius:11px !important;
  border:1px solid rgba(122,106,78,.14);
  background:var(--rre-btn);
  color:var(--rre-text) !important;
  text-decoration:none !important;
  font-size:11.25px !important;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 2px rgba(0,0,0,.04);
}

.rre-action-btn:hover{
  background:var(--rre-btn-hover);
  border-color:var(--rre-border-strong);
  transform:translateY(-1px);
  text-decoration:none !important;
}

.rre-action-btn--call,
.rre-action-btn--website{
  background:rgba(223,232,212,.88) !important;
  border-color:rgba(79,140,91,.22) !important;
}

.rre-action-btn--call:hover,
.rre-action-btn--website:hover{
  background:rgba(214,226,199,.94) !important;
}

.rre-card-monetize{
  margin-top:0;
  padding-top:2px;
  text-align:center;
}

.rre-card-monetize a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  color:#5f706b !important;
  font-size:11px;
  font-weight:800;
  text-decoration:none !important;
  opacity:.86;
}

.rre-card-monetize a::before{
  content:"+";
  width:13px;
  height:13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(122,106,78,.18);
  background:rgba(255,255,255,.58);
  font-size:10px;
  line-height:1;
}

.rre-card-monetize a:hover{
  opacity:1;
  color:var(--rre-text) !important;
  text-decoration:none !important;
}

/* ==========================================================
   6) USE MY LOCATION PULSE
   One-time advisory pulse. Not continuous; reduced-motion safe.
   ========================================================== */

#tbl-calendar-container #tbl-calendar-use-location.rre-location-btn{
  border-color:rgba(47,93,80,.16) !important;
  background:rgba(47,93,80,.08) !important;
  color:#2f5d50 !important;
  animation:rreLocationNoticePulseSlow 3.4s ease-out 1 !important;
}

#tbl-calendar-container #tbl-calendar-use-location.rre-location-btn:hover,
#tbl-calendar-container #tbl-calendar-use-location.rre-location-btn:focus-visible{
  background:rgba(47,93,80,.12) !important;
  border-color:rgba(47,93,80,.24) !important;
}

#tbl-calendar-container #tbl-calendar-use-location.rre-location-btn.is-active,
#tbl-calendar-container #tbl-calendar-use-location.rre-location-btn.is-loading{
  animation:none !important;
}

@keyframes rreLocationNoticePulseSlow{
  0%{ transform:scale(1); box-shadow:0 0 0 0 rgba(47,93,80,.12); background:rgba(47,93,80,.08); }
  22%{ transform:scale(1.008); box-shadow:0 0 0 7px rgba(47,93,80,.08); background:rgba(47,93,80,.12); }
  58%{ transform:scale(1.004); box-shadow:0 0 0 14px rgba(47,93,80,0); background:rgba(47,93,80,.10); }
  100%{ transform:scale(1); box-shadow:0 0 0 0 rgba(47,93,80,0); background:rgba(47,93,80,.08); }
}

@media (prefers-reduced-motion:reduce){
  #tbl-calendar-container #tbl-calendar-use-location.rre-location-btn{
    animation:none !important;
  }
}

/* ==========================================================
   7) MODAL OVERLAY / CONTENT SHELL
   Tight app-like viewport gutter. Scroll lives on modal content.
   ========================================================== */

html.rrh-modal-open,
body.rrh-modal-open{
  overflow:hidden;
}

#rre-single-container{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:var(--rrh-modal-pad) !important;
  background:rgba(0,0,0,.42);
  z-index:2147483647;
  isolation:isolate;
}

#rre-single-container.is-open{
  display:flex;
}

#rre-single-content{
  width:calc(100vw - (var(--rrh-modal-pad) * 2)) !important;
  max-width:none !important;
  max-height:calc(100vh - (var(--rrh-modal-pad) * 2)) !important;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:var(--rrh-content-radius);
  background:rgba(255,255,255,.90);
  padding:var(--rrh-content-pad);
  box-shadow:0 18px 50px rgba(0,0,0,.22),0 4px 14px rgba(0,0,0,.10);
}

/* ==========================================================
   8) SINGLE RESOURCE SHELL + GRID
   Claim/promote lives after related resources through the cta grid area.
   ========================================================== */

.rrh-single-resource .rrh-shell,
#rre-single-container .rrh-shell{
  position:relative;
  border-radius:var(--rrh-shell-radius);
  border:1px solid rgba(0,0,0,.20);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  overflow:hidden;
  background:rgba(255,255,255,.55);
}

.rrh-single-resource .rrh-shell::before,
#rre-single-container .rrh-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url('https://recoveryresourceshub.com/wp-content/uploads/2026/02/topography.svg');
  background-repeat:repeat;
  background-position:top left;
  opacity:.04;
  pointer-events:none;
  z-index:0;
}

.rrh-single-resource .rrh-shell a,
#rre-single-container .rrh-shell a{
  color:rgba(var(--rrh-link),var(--rrh-link-opacity));
  text-decoration:none;
  font-weight:800;
}

.rrh-single-resource .rrh-shell a:hover,
#rre-single-container .rrh-shell a:hover{
  color:rgba(var(--rrh-link),1);
  text-decoration:underline;
}

.rrh-single-resource .rrh-layout,
#rre-single-container .rrh-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.98fr) minmax(420px,1.02fr);
  grid-template-rows:auto auto auto auto;
  grid-template-areas:
    "main map"
    "other map"
    "cta map"
    "back map";
  column-gap:12px;
  row-gap:10px;
  padding:var(--rrh-shell-pad);
  align-items:start;
  align-content:start;
}

.rrh-single-resource .rrh-main-panel,
#rre-single-container .rrh-main-panel{ grid-area:main; min-width:0; }

.rrh-single-resource .rrh-other-panel,
#rre-single-container .rrh-other-panel{ grid-area:other; min-width:0; }

.rrh-single-resource .rrh-back-panel,
#rre-single-container .rrh-back-panel{ grid-area:back; margin:0; padding:0 0 0 2px; align-self:start; }

.rrh-single-resource .rrh-provider-cta--footer,
#rre-single-container .rrh-provider-cta--footer{ grid-area:cta; }

.rrh-single-resource .rrh-map-panel,
#rre-single-container .rrh-map-panel{
  grid-area:map;
  min-width:340px;
  height:100%;
  min-height:0;
  align-self:stretch;
  border-radius:clamp(18px,2vw,24px);
  overflow:hidden;
  border:1px solid rgba(0,0,0,.14);
  background:#f2f2f2;
}

.rrh-single-resource .rrh-map-panel iframe#rrh-map,
#rre-single-container .rrh-map-panel iframe#rrh-map{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  border:0;
}

.rrh-single-resource .rrh-map-empty,
#rre-single-container .rrh-map-empty{
  padding:16px;
}

/* ==========================================================
   9) MODAL PANELS / HEADER / IDENTITY
   Provider title gets full width; badges never squeeze the name.
   ========================================================== */

#rre-single-container .rrh-top-box,
#rre-single-container .rrh-list-box,
.rrh-single-resource .rrh-top-box,
.rrh-single-resource .rrh-list-box{
  border-radius:var(--rrh-card-radius);
  border:1px solid var(--rrh-panel-border);
  background:var(--rrh-panel-bg);
  box-shadow:0 2px 6px rgba(0,0,0,.04),0 10px 22px rgba(0,0,0,.04);
}

#rre-single-container .rrh-resource-profile,
.rrh-single-resource .rrh-resource-profile{
  min-height:unset !important;
  height:auto !important;
  padding:clamp(13px,1.35vw,18px) !important;
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  align-self:start !important;
  overflow:visible !important;
}

#rre-single-container .rrh-resource-hero,
.rrh-single-resource .rrh-resource-hero{
  display:block !important;
  padding:0 0 2px !important;
}

#rre-single-container .rrh-resource-toprow,
.rrh-single-resource .rrh-resource-toprow{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:10px !important;
  width:100% !important;
  margin-bottom:7px !important;
}

#rre-single-container .rrh-resource-category,
.rrh-single-resource .rrh-resource-category{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 10px;
  border-radius:999px;
  border:1px solid rgba(122,106,78,.16);
  background:rgba(255,255,255,.62);
  color:#59645f;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1;
}

#rre-single-container .rrh-resource-trust,
.rrh-single-resource .rrh-resource-trust{
  flex:0 0 auto !important;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
  max-width:none !important;
  padding-top:0 !important;
  margin-top:0 !important;
}

#rre-single-container .rrh-resource-identity,
.rrh-single-resource .rrh-resource-identity{
  width:100% !important;
  max-width:none !important;
  min-width:0;
}

#rre-single-container .rrh-resource-title,
.rrh-single-resource .rrh-resource-title{
  width:100% !important;
  max-width:none !important;
  margin:0;
  padding:0;
  color:#334843;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  line-height:1.05;
}

#rre-single-container .rrh-resource-provider,
.rrh-single-resource .rrh-resource-provider{
  display:block;
  max-width:100% !important;
  font-size:clamp(23px,2.18vw,31px) !important;
  line-height:1.04 !important;
  font-weight:900;
  letter-spacing:-.028em !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

#rre-single-container .rrh-resource-service,
.rrh-single-resource .rrh-resource-service{
  display:block;
  margin-top:3px !important;
  font-size:clamp(15px,1.18vw,18px) !important;
  line-height:1.18;
  font-weight:760 !important;
  font-style:normal;
  letter-spacing:-.01em;
  color:rgba(51,72,67,.78) !important;
}

/* ==========================================================
   10) DETAIL CARDS / DESCRIPTION SCROLL
   Description is capped at about 15 lines and scrolls internally.
   ========================================================== */

#rre-single-container .rrh-detail-grid,
.rrh-single-resource .rrh-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

#rre-single-container .rrh-detail-card,
.rrh-single-resource .rrh-detail-card{
  min-width:0;
  padding:11px 13px;
  border-radius:16px;
  border:1px solid rgba(122,106,78,.13);
  background:rgba(255,255,255,.58);
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset;
}

#rre-single-container .rrh-detail-card--wide,
.rrh-single-resource .rrh-detail-card--wide{
  grid-column:1 / -1;
}

#rre-single-container .rrh-detail-label,
.rrh-single-resource .rrh-detail-label{
  display:block;
  margin:0 0 4px;
  color:#756c5c;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
  text-transform:uppercase;
}

#rre-single-container .rrh-detail-value,
.rrh-single-resource .rrh-detail-value{
  display:block;
  color:#2f413c;
  font-size:clamp(13px,.95vw,15px);
  font-weight:800;
  line-height:1.28;
  overflow-wrap:anywhere;
}

/* ==========================================================
   11) MODAL ACTION BUTTONS
   Safe link styling. No all:unset. Buttons stretch evenly and remain clickable.
   ========================================================== */

#rre-single-container .rrh-actions,
.rrh-single-resource .rrh-actions{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr)) !important;
  gap:8px !important;
  width:100% !important;
  align-items:stretch !important;
  margin-top:10px !important;
  padding-top:0 !important;
}

#rre-single-container .rrh-actions a,
.rrh-single-resource .rrh-actions a{
  display:flex !important;
  width:100% !important;
  min-width:0 !important;
  text-decoration:none !important;
  box-sizing:border-box !important;
}

#rre-single-container .rrh-actions .rrh-btn,
#rre-single-container .rrh-actions a.rrh-btn,
#rre-single-container .rrh-actions button.rrh-btn,
.rrh-single-resource .rrh-actions .rrh-btn,
.rrh-single-resource .rrh-actions a.rrh-btn,
.rrh-single-resource .rrh-actions button.rrh-btn{
  appearance:none;
  -webkit-appearance:none;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:36px !important;
  height:36px !important;
  padding:0 8px !important;
  gap:6px !important;
  overflow:hidden !important;
  border-radius:15px !important;
  border:1px solid rgba(122,106,78,.16);
  background:rgba(255,255,255,.72);
  color:#1d2327;
  text-decoration:none !important;
  font-size:clamp(11px,1vw,14px);
  font-weight:700;
  line-height:1;
  white-space:nowrap !important;
  cursor:pointer;
  box-shadow:none;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;
}

#rre-single-container .rrh-actions .rrh-btn:hover,
#rre-single-container .rrh-actions a.rrh-btn:hover,
#rre-single-container .rrh-actions button.rrh-btn:hover,
.rrh-single-resource .rrh-actions .rrh-btn:hover,
.rrh-single-resource .rrh-actions a.rrh-btn:hover,
.rrh-single-resource .rrh-actions button.rrh-btn:hover{
  background:rgba(255,255,255,.86) !important;
  border-color:rgba(122,106,78,.22) !important;
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(0,0,0,.06),0 10px 18px rgba(0,0,0,.04);
  text-decoration:none !important;
}

#rre-single-container .rrh-actions .rrh-btn:focus-visible,
#rre-single-container .rrh-actions a.rrh-btn:focus-visible,
#rre-single-container .rrh-actions button.rrh-btn:focus-visible,
.rrh-single-resource .rrh-actions .rrh-btn:focus-visible,
.rrh-single-resource .rrh-actions a.rrh-btn:focus-visible,
.rrh-single-resource .rrh-actions button.rrh-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(11,103,194,.16);
}

#rre-single-container .rrh-actions .rrh-btn svg,
.rrh-single-resource .rrh-actions .rrh-btn svg{
  width:14px !important;
  height:14px !important;
  flex:0 0 14px !important;
  display:block;
}

#rre-single-container .rrh-actions .btn-text,
.rrh-single-resource .rrh-actions .btn-text{
  display:inline-block !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1;
  white-space:nowrap !important;
}

#rre-single-container .rrh-btn.rrh-phone svg,
.rrh-single-resource .rrh-btn.rrh-phone svg{ stroke:#28a745; }
#rre-single-container .rrh-btn.rrh-website svg,
.rrh-single-resource .rrh-btn.rrh-website svg{ stroke:#0073aa; }
#rre-single-container .rrh-btn.rrh-email svg,
.rrh-single-resource .rrh-btn.rrh-email svg{ stroke:#d14836; }
#rre-single-container .rrh-btn.rrh-directions svg,
.rrh-single-resource .rrh-btn.rrh-directions svg{ stroke:#ff9800; }
#rre-single-container .rrh-btn.rrh-share svg,
.rrh-single-resource .rrh-btn.rrh-share svg{ stroke:#6f42c1; }

/* ==========================================================
   12) ALSO AVAILABLE AT THIS LOCATION
   Scrollable related-list block that stays compact.
   ========================================================== */

#rre-single-container .rrh-list-box,
.rrh-single-resource .rrh-list-box{
  padding:12px 14px 10px;
}

#rre-single-container .rrh-other-title,
.rrh-single-resource .rrh-other-title{
  margin:0 0 9px;
  font-size:var(--rrh-small-size);
  font-weight:900;
  opacity:.9;
}

#rre-single-container .rrh-other-wrap,
.rrh-single-resource .rrh-other-wrap{
  max-height:clamp(145px,18vh,190px);
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:6px;
  scrollbar-width:thin;
}

#rre-single-container .rrh-other-wrap::-webkit-scrollbar,
.rrh-single-resource .rrh-other-wrap::-webkit-scrollbar{ width:6px; }
#rre-single-container .rrh-other-wrap::-webkit-scrollbar-thumb,
.rrh-single-resource .rrh-other-wrap::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.25); border-radius:10px; }
#rre-single-container .rrh-other-wrap::-webkit-scrollbar-track,
.rrh-single-resource .rrh-other-wrap::-webkit-scrollbar-track{ background:transparent; }

#rre-single-container .rrh-other-list,
.rrh-single-resource .rrh-other-list{
  list-style:none;
  margin:0;
  padding:0;
}

#rre-single-container .rrh-other-list li,
.rrh-single-resource .rrh-other-list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:7px 9px;
  border-radius:12px;
  cursor:pointer;
  transition:background-color .18s ease;
}

#rre-single-container .rrh-other-list li:hover,
.rrh-single-resource .rrh-other-list li:hover{ background:rgba(0,0,0,.035); transform:none; }
#rre-single-container .rrh-other-list li.is-active,
.rrh-single-resource .rrh-other-list li.is-active{ background:rgba(0,0,0,.05); }

#rre-single-container .rrh-other-bullet,
.rrh-single-resource .rrh-other-bullet{
  width:4px;
  height:4px;
  flex:0 0 4px;
  border-radius:50%;
  background:rgba(0,0,0,.35);
  margin-top:calc((1.15em - 4px) / 2);
  opacity:.65;
}

#rre-single-container .rrh-other-list li.is-active .rrh-other-bullet,
.rrh-single-resource .rrh-other-list li.is-active .rrh-other-bullet{ opacity:.25; }

#rre-single-container .rrh-other-meta,
.rrh-single-resource .rrh-other-meta{
  display:block;
  margin:0 0 2px;
  line-height:1.2;
  font-weight:700;
  opacity:.72;
  font-size:calc(var(--rrh-small-size) - 1px);
}

#rre-single-container .rrh-other-a,
.rrh-single-resource .rrh-other-a{
  display:block;
  color:rgba(var(--rrh-link),var(--rrh-link-opacity));
  text-decoration:none;
  font-weight:900;
  line-height:1.25;
  font-size:var(--rrh-small-size);
}

#rre-single-container .rrh-other-a:hover,
#rre-single-container .rrh-other-a:focus,
#rre-single-container .rrh-other-list li:hover .rrh-other-a,
.rrh-single-resource .rrh-other-a:hover,
.rrh-single-resource .rrh-other-a:focus,
.rrh-single-resource .rrh-other-list li:hover .rrh-other-a{
  text-decoration:none !important;
}

#rre-single-container .rrh-other-list li.is-active .rrh-other-a,
.rrh-single-resource .rrh-other-list li.is-active .rrh-other-a{ opacity:.9; }

/* ==========================================================
   13) PROVIDER CLAIM / PROMOTE CTA
   Sits after related listings so it does not interrupt the seeker flow.
   ========================================================== */

#rre-single-container .rrh-provider-cta,
.rrh-single-resource .rrh-provider-cta{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:12px !important;
  align-items:center !important;
  margin-top:0 !important;
  padding:12px 13px !important;
  border-radius:18px;
  border:1px solid rgba(47,93,80,.14);
  background:linear-gradient(180deg,rgba(47,93,80,.08),rgba(47,93,80,.045));
}

#rre-single-container .rrh-provider-cta h2,
.rrh-single-resource .rrh-provider-cta h2{
  margin:0 0 3px;
  color:#2f5d50;
  font-size:clamp(15px,1.08vw,18px);
  line-height:1.1;
  font-weight:900;
}

#rre-single-container .rrh-provider-cta p,
.rrh-single-resource .rrh-provider-cta p{
  margin:0;
  color:#526963;
  font-size:clamp(13px,.92vw,15px);
  line-height:1.35;
  font-weight:650;
}

#rre-single-container .rrh-provider-cta-actions,
.rrh-single-resource .rrh-provider-cta-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

#rre-single-container .rrh-provider-cta-btn,
.rrh-single-resource .rrh-provider-cta-btn{
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:128px !important;
  min-height:34px !important;
  padding:0 11px !important;
  border-radius:999px;
  border:1px solid rgba(47,93,80,.18);
  background:rgba(255,255,255,.62);
  color:#2f5d50 !important;
  text-decoration:none !important;
  font-size:13px;
  font-weight:900;
  line-height:1;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}

#rre-single-container .rrh-provider-cta-btn--primary,
.rrh-single-resource .rrh-provider-cta-btn--primary{
  background:#2f5d50;
  border-color:#2f5d50;
  color:#fff !important;
}

#rre-single-container .rrh-provider-cta-btn:hover,
.rrh-single-resource .rrh-provider-cta-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}

/* ==========================================================
   14) BACK LINKS
   Top and bottom back links intentionally match size and weight.
   ========================================================== */

#rre-single-container .rrh-backlink,
#rre-single-container .rrh-link,
.rrh-single-resource .rrh-backlink,
.rrh-single-resource .rrh-link{
  color:rgba(var(--rrh-link),var(--rrh-link-opacity));
  text-decoration:none;
  font-weight:900;
}

#rre-single-container .rrh-backlink,
.rrh-single-resource .rrh-backlink{
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:0 0 0 2px;
  font-size:clamp(13px,.9vw,15px) !important;
  line-height:1.1;
}

#rre-single-container .rrh-backlink--top,
.rrh-single-resource .rrh-backlink--top{
  width:auto !important;
  margin:0 0 8px 2px !important;
  padding:0 !important;
}

#rre-single-container .rrh-backlink:hover,
#rre-single-container .rrh-link:hover,
.rrh-single-resource .rrh-backlink:hover,
.rrh-single-resource .rrh-link:hover{
  text-decoration:underline;
}

/* ==========================================================
   15) COVERAGE TOOLTIPS
   Beige/glass style. Opens downward in modal to avoid clipping.
   Hidden on touch devices to avoid sticky hover traps.
   ========================================================== */

.rre-has-tip{
  position:relative !important;
  cursor:help !important;
}

.rre-has-tip::after,
.rre-has-tip::before{
  position:absolute !important;
  left:50% !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:opacity .14s ease,visibility .14s ease,transform .14s ease !important;
  z-index:2147483647 !important;
}

/* Default tooltip direction: above the pill. */
.rre-has-tip::after{
  content:attr(data-tooltip) !important;
  bottom:calc(100% + 9px) !important;
  transform:translateX(-50%) translateY(3px) !important;
  width:max-content !important;
  max-width:min(260px,72vw) !important;
  padding:9px 11px !important;
  border-radius:12px !important;
  border:1px solid rgba(74,112,160,.20) !important;
  background:rgba(255,255,255,.96) !important;
  color:#334843 !important;
  box-shadow:0 10px 26px rgba(0,0,0,.13) !important;
  font-size:12px !important;
  font-weight:750 !important;
  line-height:1.35 !important;
  white-space:normal !important;
  text-align:left !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.rre-has-tip::before{
  content:"" !important;
  bottom:calc(100% + 3px) !important;
  transform:translateX(-50%) translateY(3px) !important;
  border:6px solid transparent !important;
  border-top-color:rgba(255,255,255,.96) !important;
}

.rre-has-tip:hover::after,
.rre-has-tip:hover::before,
.rre-has-tip:focus-visible::after,
.rre-has-tip:focus-visible::before{
  opacity:1 !important;
  visibility:visible !important;
  transform:translateX(-50%) translateY(0) !important;
}

/* Modal coverage tooltips open downward and use the RRH glass beige style. */
#rre-single-container .rrh-resource-access .rre-has-tip::after,
.rrh-single-resource .rrh-resource-access .rre-has-tip::after{
  top:calc(100% + 10px) !important;
  bottom:auto !important;
  transform:translateX(-50%) translateY(-3px) !important;
  max-width:min(280px,72vw) !important;
  padding:10px 12px !important;
  border-radius:10px !important;
  background:rgb(242,243,237) !important;
  color:#555 !important;
  border:1px solid rgba(0,0,0,.22) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.18) !important;
  font-size:13px !important;
  line-height:1.4 !important;
  font-weight:700 !important;
}

#rre-single-container .rrh-resource-access .rre-has-tip::before,
.rrh-single-resource .rrh-resource-access .rre-has-tip::before{
  top:calc(100% + 4px) !important;
  bottom:auto !important;
  transform:translateX(-50%) translateY(-3px) !important;
  border:7px solid transparent !important;
  border-bottom-color:rgb(242,243,237) !important;
  border-top-color:transparent !important;
}

#rre-single-container .rrh-resource-access .rre-has-tip:hover::after,
#rre-single-container .rrh-resource-access .rre-has-tip:hover::before,
#rre-single-container .rrh-resource-access .rre-has-tip:focus-visible::after,
#rre-single-container .rrh-resource-access .rre-has-tip:focus-visible::before,
.rrh-single-resource .rrh-resource-access .rre-has-tip:hover::after,
.rrh-single-resource .rrh-resource-access .rre-has-tip:hover::before,
.rrh-single-resource .rrh-resource-access .rre-has-tip:focus-visible::after,
.rrh-single-resource .rrh-resource-access .rre-has-tip:focus-visible::before{
  transform:translateX(-50%) translateY(0) !important;
}

/* Edge protection for first modal coverage pill. */
#rre-single-container .rrh-resource-access .rre-has-tip:first-child::after,
#rre-single-container .rrh-resource-access .rre-has-tip:first-child::before,
.rrh-single-resource .rrh-resource-access .rre-has-tip:first-child::after,
.rrh-single-resource .rrh-resource-access .rre-has-tip:first-child::before{
  left:0 !important;
  transform:translateX(0) translateY(-3px) !important;
}

#rre-single-container .rrh-resource-access .rre-has-tip:first-child:hover::after,
#rre-single-container .rrh-resource-access .rre-has-tip:first-child:hover::before,
#rre-single-container .rrh-resource-access .rre-has-tip:first-child:focus-visible::after,
#rre-single-container .rrh-resource-access .rre-has-tip:first-child:focus-visible::before,
.rrh-single-resource .rrh-resource-access .rre-has-tip:first-child:hover::after,
.rrh-single-resource .rrh-resource-access .rre-has-tip:first-child:hover::before,
.rrh-single-resource .rrh-resource-access .rre-has-tip:first-child:focus-visible::after,
.rrh-single-resource .rrh-resource-access .rre-has-tip:first-child:focus-visible::before{
  transform:translateX(0) translateY(0) !important;
}

@media (hover:none){
  .rre-has-tip::after,
  .rre-has-tip::before{
    display:none !important;
  }
}

/* ==========================================================
   16) RESPONSIVE
   Breakpoints grouped at the end so mobile/tablet behavior is predictable.
   ========================================================== */

@media (max-width:960px){
  #rre-single-container .rrh-layout,
  .rrh-single-resource .rrh-layout{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "main"
      "map"
      "other"
      "cta"
      "back" !important;
  }

  #rre-single-container .rrh-map-panel,
  .rrh-single-resource .rrh-map-panel{
    min-width:0 !important;
    min-height:320px !important;
  }
}

@media (max-width:760px){
  #tbl-calendar-container .rre-field--query{ flex-basis:100% !important; max-width:none !important; }
  #tbl-calendar-container .rre-field--coverage{ flex:1 1 150px !important; }

  #rre-single-container .rrh-resource-toprow,
  .rrh-single-resource .rrh-resource-toprow{
    display:block !important;
  }

  #rre-single-container .rrh-resource-trust,
  .rrh-single-resource .rrh-resource-trust{
    justify-content:flex-start;
    max-width:none;
    margin-top:10px !important;
  }

  #rre-single-container .rrh-detail-grid,
  .rrh-single-resource .rrh-detail-grid{
    grid-template-columns:1fr;
  }

  #rre-single-container .rrh-provider-cta,
  .rrh-single-resource .rrh-provider-cta{
    grid-template-columns:1fr !important;
    align-items:flex-start;
  }

  #rre-single-container .rrh-provider-cta-actions,
  .rrh-single-resource .rrh-provider-cta-actions{
    justify-content:flex-start !important;
    width:100%;
  }
}

@media (max-width:700px){
  #tbl-calendar-container .rrh-filters,
  #tbl-calendar-container .tbl-calendar__types,
  #tbl-calendar-container .tbl-calendar__pagination{ gap:7px !important; }
  #tbl-calendar-container #tbl-calendar-zip{ width:125px !important; }
  #tbl-calendar-container #tbl-calendar-radius{ width:72px !important; }
  #tbl-calendar-container #tbl-calendar-type{ width:160px !important; }

  .rre-card-grid{ grid-template-columns:1fr; }
  .rre-card-actions{ display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rre-action-btn{ width:100%; min-width:0; }
}

@media (max-width:640px){
  .rre-card-meta{ grid-template-columns:1fr; }
  .rre-resource-card{ padding:16px !important; }
  .rre-card-title{ font-size:clamp(18px,5.2vw,21px) !important; }
  .rre-badge-row--trust{ justify-content:flex-start !important; }
}

@media (max-width:520px){
  #tbl-calendar-container .rre-field--zip{ flex:1 1 calc(60% - 8px) !important; }
  #tbl-calendar-container .rre-field--radius{ flex:0 0 76px !important; }
  #tbl-calendar-container #tbl-calendar-use-location,
  #tbl-calendar-container .rre-field--query,
  #tbl-calendar-container .rre-field--coverage,
  #tbl-calendar-container .rre-filter-actions{
    flex:1 1 100% !important;
    width:100% !important;
    max-width:none !important;
  }
  #tbl-calendar-container .rre-filter-actions{ display:grid !important; grid-template-columns:1fr 1fr; gap:8px; }
  #tbl-calendar-container #tbl-calendar-search,
  #tbl-calendar-container #tbl-calendar-print{ width:100% !important; }
}


/* ==========================================================
   17) RESOURCE MODAL / PROVIDER PREVIEW CONTRACT
   Final clean contract for the public resource modal and the
   provider preview modal. Keep this section last.

   Goals:
   - Public resources modal keeps its approved look.
   - Provider preview modal uses the same spacing, panels, pills,
     typography, and availability layout.
   - Hours toggle sits flush right.
   - Availability status pills use the taupe Treatment-style pill.
   ========================================================== */

:root{
  --rrh-modal-section-gap:10px;
  --rrh-modal-pill-gap:5px;
  --rrh-modal-inner-gap:10px;
  --rrh-control-pill-bg:rgba(255,255,255,.62);
  --rrh-control-pill-bg-hover:rgba(255,255,255,.74);
  --rrh-control-pill-border:rgba(122,106,78,.16);
  --rrh-control-pill-border-hover:rgba(122,106,78,.22);
  --rrh-control-pill-text:#6a5d49;
  --rrh-control-pill-text-hover:#5d4f3e;
}

/* ------------------------------
   Shared visibility
   ------------------------------ */

#rre-single-container .is-hidden,
.rrh-single-resource .is-hidden,
.rd-provider-preview-modal .is-hidden{
  display:none !important;
}

/* ------------------------------
   Make provider preview inherit the public modal language
   ------------------------------ */

.rd-provider-preview-modal,
.rd-provider-preview-modal *{
  box-sizing:border-box;
}

.rd-provider-preview-modal .rrh-shell{
  position:relative !important;
  border-radius:var(--rrh-shell-radius) !important;
  border:1px solid rgba(0,0,0,.20) !important;
  box-shadow:0 10px 30px rgba(0,0,0,.18) !important;
  overflow:hidden !important;
  background:rgba(255,255,255,.55) !important;
}

.rd-provider-preview-modal .rrh-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url('https://recoveryresourceshub.com/wp-content/uploads/2026/02/topography.svg');
  background-repeat:repeat;
  background-position:top left;
  opacity:.04;
  pointer-events:none;
  z-index:0;
}

.rd-provider-preview-modal .rrh-layout{
  position:relative !important;
  z-index:1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,.98fr) minmax(420px,1.02fr) !important;
  grid-template-rows:auto auto auto auto !important;
  grid-template-areas:
    "main map"
    "other map"
    "cta map"
    "back map" !important;
  column-gap:12px !important;
  row-gap:10px !important;
  padding:var(--rrh-shell-pad) !important;
  align-items:start !important;
  align-content:start !important;
}

.rd-provider-preview-modal .rrh-main-panel{ grid-area:main !important; min-width:0 !important; }
.rd-provider-preview-modal .rrh-other-panel{ grid-area:other !important; min-width:0 !important; }
.rd-provider-preview-modal .rrh-provider-cta--footer{ grid-area:cta !important; }
.rd-provider-preview-modal .rrh-back-panel{ grid-area:back !important; margin:0 !important; padding:0 0 0 2px !important; }
.rd-provider-preview-modal .rrh-map-panel{
  grid-area:map !important;
  min-width:340px !important;
  height:100% !important;
  align-self:stretch !important;
  border-radius:clamp(18px,2vw,24px) !important;
  overflow:hidden !important;
  border:1px solid rgba(0,0,0,.14) !important;
  background:#f2f2f2 !important;
}

.rd-provider-preview-modal .rrh-map-panel iframe{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  border:0 !important;
}

/* ------------------------------
   Shared modal panels / rhythm
   ------------------------------ */

#rre-single-container .rrh-top-box,
#rre-single-container .rrh-list-box,
.rrh-single-resource .rrh-top-box,
.rrh-single-resource .rrh-list-box,
.rd-provider-preview-modal .rrh-top-box,
.rd-provider-preview-modal .rrh-list-box{
  border-radius:var(--rrh-card-radius) !important;
  border:1px solid var(--rrh-panel-border) !important;
  background:var(--rrh-panel-bg) !important;
  box-shadow:0 2px 6px rgba(0,0,0,.04),0 10px 22px rgba(0,0,0,.04) !important;
}

#rre-single-container .rrh-resource-profile,
.rrh-single-resource .rrh-resource-profile,
.rd-provider-preview-modal .rrh-resource-profile{
  min-height:unset !important;
  height:auto !important;
  padding:clamp(13px,1.35vw,18px) !important;
  display:flex !important;
  flex-direction:column !important;
  gap:var(--rrh-modal-section-gap) !important;
  align-self:start !important;
  overflow:visible !important;
}

#rre-single-container .rrh-resource-hero,
.rrh-single-resource .rrh-resource-hero,
.rd-provider-preview-modal .rrh-resource-hero{
  display:block !important;
  padding:0 !important;
  margin:0 !important;
}

#rre-single-container .rrh-resource-toprow,
.rrh-single-resource .rrh-resource-toprow,
.rd-provider-preview-modal .rrh-resource-toprow{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:10px !important;
  width:100% !important;
  margin:0 0 7px !important;
}

#rre-single-container .rrh-resource-trust,
.rrh-single-resource .rrh-resource-trust,
.rd-provider-preview-modal .rrh-resource-trust{
  flex:0 0 auto !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:7px !important;
  max-width:none !important;
  padding:0 !important;
  margin:0 !important;
}

#rre-single-container .rrh-resource-identity,
.rrh-single-resource .rrh-resource-identity,
.rd-provider-preview-modal .rrh-resource-identity{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
}

#rre-single-container .rrh-resource-title,
.rrh-single-resource .rrh-resource-title,
.rd-provider-preview-modal .rrh-resource-title{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  color:#334843 !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-style:italic !important;
  line-height:1.05 !important;
}

#rre-single-container .rrh-resource-provider,
.rrh-single-resource .rrh-resource-provider,
.rd-provider-preview-modal .rrh-resource-provider{
  display:block !important;
  max-width:100% !important;
  font-size:clamp(23px,2.18vw,31px) !important;
  line-height:1.04 !important;
  font-weight:900 !important;
  letter-spacing:-.028em !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

#rre-single-container .rrh-resource-service,
.rrh-single-resource .rrh-resource-service,
.rd-provider-preview-modal .rrh-resource-service{
  display:block !important;
  margin-top:3px !important;
  color:rgba(51,72,67,.78) !important;
  font-size:clamp(15px,1.18vw,18px) !important;
  line-height:1.18 !important;
  font-weight:760 !important;
  font-style:normal !important;
  letter-spacing:-.01em !important;
}

/* ------------------------------
   Coverage & Payment pill rows
   ------------------------------ */

#rre-single-container .rrh-resource-access,
.rrh-single-resource .rrh-resource-access,
.rd-provider-preview-modal .rrh-resource-access{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:start !important;
  column-gap:7px !important;
  row-gap:7px !important;
  width:100% !important;
  min-width:0 !important;
  padding:0 !important;
  margin:0 !important;
  overflow:visible !important;
}

#rre-single-container .rrh-access-pill-lane,
.rrh-single-resource .rrh-access-pill-lane,
.rd-provider-preview-modal .rrh-access-pill-lane{
  grid-column:1 !important;
  grid-row:1 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:7px !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:visible !important;
}

/* Collapsed: only show first-row chosen pills. */
#rre-single-container .rrh-resource-access:not(.is-expanded) .rrh-pill-extra,
.rrh-single-resource .rrh-resource-access:not(.is-expanded) .rrh-pill-extra,
.rd-provider-preview-modal .rrh-resource-access:not(.is-expanded) .rrh-pill-extra,
#rre-single-container .rrh-resource-access .rrh-pill-extra.is-hidden,
.rrh-single-resource .rrh-resource-access .rrh-pill-extra.is-hidden,
.rd-provider-preview-modal .rrh-resource-access .rrh-pill-extra.is-hidden{
  display:none !important;
}

/* Expanded: show extras on natural wrapped rows. */
#rre-single-container .rrh-resource-access.is-expanded .rrh-pill-extra:not(.is-hidden),
.rrh-single-resource .rrh-resource-access.is-expanded .rrh-pill-extra:not(.is-hidden),
.rd-provider-preview-modal .rrh-resource-access.is-expanded .rrh-pill-extra:not(.is-hidden){
  display:inline-flex !important;
}

/* Force all payment pills to auto-size, including long names. */
#rre-single-container .rrh-resource-access .rrh-badge,
.rrh-single-resource .rrh-resource-access .rrh-badge,
.rd-provider-preview-modal .rrh-resource-access .rrh-badge{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  height:26px !important;
  min-height:26px !important;
  padding:0 10px !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}

/* Toggle button always owns the right column and matches pill height. */
#rre-single-container .rrh-resource-access .rrh-pill-more,
.rrh-single-resource .rrh-resource-access .rrh-pill-more,
.rd-provider-preview-modal .rrh-resource-access .rrh-pill-more{
  grid-column:2 !important;
  grid-row:1 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  justify-self:end !important;
  align-self:start !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  height:26px !important;
  min-height:26px !important;
  padding:0 12px !important;
  margin:0 !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
  line-height:1 !important;
    font-size:12px !important;
  font-weight:750 !important;
}

/* Legacy break span should not participate in layout. */
#rre-single-container .rrh-resource-access .rrh-pill-break,
.rrh-single-resource .rrh-resource-access .rrh-pill-break,
.rd-provider-preview-modal .rrh-resource-access .rrh-pill-break{
  display:none !important;
}


/* ------------------------------
   Location / Phone compact layout
   ------------------------------ */

#rre-single-container .rrh-detail-grid,
.rrh-single-resource .rrh-detail-grid,
.rd-provider-preview-modal .rrh-detail-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(150px,.38fr) !important;
  gap:var(--rrh-modal-section-gap) !important;
  align-items:stretch !important;
}

#rre-single-container .rrh-detail-card,
.rrh-single-resource .rrh-detail-card,
.rd-provider-preview-modal .rrh-detail-card{
  min-width:0 !important;
  padding:10px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(122,106,78,.13) !important;
  background:rgba(255,255,255,.58) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset !important;
}

#rre-single-container .rrh-detail-card--wide,
.rrh-single-resource .rrh-detail-card--wide,
.rd-provider-preview-modal .rrh-detail-card--wide{
  grid-column:1 / -1 !important;
}

#rre-single-container .rrh-detail-label,
.rrh-single-resource .rrh-detail-label,
.rd-provider-preview-modal .rrh-detail-label,
#rre-single-container .rrh-resource-extra-card strong,
.rrh-single-resource .rrh-resource-extra-card strong,
.rd-provider-preview-modal .rrh-resource-extra-card strong,
#rre-single-container .rrh-hours-card > strong,
.rrh-single-resource .rrh-hours-card > strong,
.rd-provider-preview-modal .rrh-hours-card > strong{
  display:block !important;
  margin:0 0 4px !important;
  color:#756c5c !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
}

#rre-single-container .rrh-detail-value,
.rrh-single-resource .rrh-detail-value,
.rd-provider-preview-modal .rrh-detail-value{
  display:block !important;
  color:#426056 !important;
  -webkit-text-fill-color:#426056 !important;
  font-size:clamp(13px,.95vw,15px) !important;
  font-weight:700 !important;
  line-height:1.28 !important;
  overflow-wrap:anywhere !important;
}
/* ------------------------------
   Description / About panel
   ------------------------------ */

#rre-single-container .rrh-description-panel,
.rrh-single-resource .rrh-description-panel,
.rd-provider-preview-modal .rrh-description-panel{
  max-height:calc(1.48em * 6 + 44px) !important;
  margin:0 !important;
  padding:12px 13px !important;
  overflow:hidden !important;
  border-radius:17px !important;
  border:1px solid rgba(122,106,78,.10) !important;
  background:rgba(255,255,255,.42) !important;
}

#rre-single-container .rrh-description-panel h2,
.rrh-single-resource .rrh-description-panel h2,
.rd-provider-preview-modal .rrh-description-panel h2{
  margin:0 0 7px !important;
  color:#334843 !important;
  font-size:clamp(15px,1.05vw,17px) !important;
  line-height:1.1 !important;
  font-weight:900 !important;
  letter-spacing:.02em !important;
  text-transform:uppercase !important;
}

#rre-single-container .rrh-description-panel .rrh-notes-scroll,
.rrh-single-resource .rrh-description-panel .rrh-notes-scroll,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes-scroll,
#rre-single-container .rrh-description-panel .rrh-notes,
.rrh-single-resource .rrh-description-panel .rrh-notes,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes{
  max-height:calc(1.48em * 5.5) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
  margin:0 !important;
  scrollbar-width:thin !important;
}

#rre-single-container .rrh-description-panel .rrh-notes,
.rrh-single-resource .rrh-description-panel .rrh-notes,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes{
  color:#435a54 !important;
  font-size:clamp(14px,1vw,16px) !important;
  line-height:1.48 !important;
}

#rre-single-container .rrh-description-panel .rrh-notes p,
.rrh-single-resource .rrh-description-panel .rrh-notes p,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes p{
  margin:0 0 .65em !important;
  padding:0 !important;
}

#rre-single-container .rrh-description-panel .rrh-notes p:last-child,
.rrh-single-resource .rrh-description-panel .rrh-notes p:last-child,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes p:last-child{
  margin-bottom:0 !important;
}

/* ------------------------------
   Provider-submitted extra details
   ------------------------------ */

#rre-single-container .rrh-resource-extra-grid,
.rrh-single-resource .rrh-resource-extra-grid,
.rd-provider-preview-modal .rrh-resource-extra-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:var(--rrh-modal-section-gap) !important;
  margin:0 !important;
}

#rre-single-container .rrh-resource-extra-card,
.rrh-single-resource .rrh-resource-extra-card,
.rd-provider-preview-modal .rrh-resource-extra-card{
  min-width:0 !important;
  padding:10px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(122,106,78,.13) !important;
  background:rgba(255,255,255,.50) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset !important;
}

#rre-single-container .rrh-resource-extra-card--wide,
.rrh-single-resource .rrh-resource-extra-card--wide,
.rd-provider-preview-modal .rrh-resource-extra-card--wide{
  grid-column:1 / -1 !important;
}

#rre-single-container .rrh-resource-extra-card span,
#rre-single-container .rrh-resource-extra-card div,
.rrh-single-resource .rrh-resource-extra-card span,
.rrh-single-resource .rrh-resource-extra-card div,
.rd-provider-preview-modal .rrh-resource-extra-card span,
.rd-provider-preview-modal .rrh-resource-extra-card div{
  color:#2f413c !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.35 !important;
}

#rre-single-container .rrh-resource-extra-card:empty,
.rrh-single-resource .rrh-resource-extra-card:empty,
.rd-provider-preview-modal .rrh-resource-extra-card:empty{
  display:none !important;
}

/* ------------------------------
   Taupe action/status pills
   ------------------------------ */

#rre-single-container .rrh-pill-more,
.rrh-single-resource .rrh-pill-more,
.rd-provider-preview-modal .rrh-pill-more,
#rre-single-container .rrh-hours-toggle,
.rrh-single-resource .rrh-hours-toggle,
.rd-provider-preview-modal .rrh-hours-toggle,
#rre-single-container .rre-badge--availability,
.rrh-single-resource .rre-badge--availability,
.rd-provider-preview-modal .rre-badge--availability,
#rre-single-container .rrh-resource-category,
.rrh-single-resource .rrh-resource-category,
.rd-provider-preview-modal .rrh-resource-category{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:26px !important;
  padding:0 11px !important;
  border-radius:999px !important;
  border:1px solid var(--rrh-control-pill-border) !important;
  background:var(--rrh-control-pill-bg) !important;
  color:var(--rrh-control-pill-text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62),0 2px 7px rgba(122,106,78,.035) !important;
  font-family:inherit !important;
  font-size:11.5px !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1 !important;
  text-decoration:none !important;
  text-transform:none !important;
  white-space:nowrap !important;
}

#rre-single-container .rrh-resource-category,
.rrh-single-resource .rrh-resource-category,
.rd-provider-preview-modal .rrh-resource-category{
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

#rre-single-container .rrh-pill-more,
.rrh-single-resource .rrh-pill-more,
.rd-provider-preview-modal .rrh-pill-more,
#rre-single-container .rrh-hours-toggle,
.rrh-single-resource .rrh-hours-toggle,
.rd-provider-preview-modal .rrh-hours-toggle{
  cursor:pointer !important;
}

#rre-single-container .rrh-pill-more:hover,
.rrh-single-resource .rrh-pill-more:hover,
.rd-provider-preview-modal .rrh-pill-more:hover,
#rre-single-container .rrh-hours-toggle:hover,
.rrh-single-resource .rrh-hours-toggle:hover,
.rd-provider-preview-modal .rrh-hours-toggle:hover,
#rre-single-container .rre-badge--availability:hover,
.rrh-single-resource .rre-badge--availability:hover,
.rd-provider-preview-modal .rre-badge--availability:hover{
  background:var(--rrh-control-pill-bg-hover) !important;
  border-color:var(--rrh-control-pill-border-hover) !important;
  color:var(--rrh-control-pill-text-hover) !important;
}

/* ------------------------------
   Availability row contract
   ------------------------------ */

#rre-single-container .rrh-hours-card,
.rrh-single-resource .rrh-hours-card,
.rd-provider-preview-modal .rrh-hours-card{
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) auto !important;
  align-items:center !important;
  column-gap:var(--rrh-modal-inner-gap) !important;
  row-gap:var(--rrh-modal-inner-gap) !important;
  width:100% !important;
  margin:0 !important;
  padding:10px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(122,106,78,.13) !important;
  background:rgba(255,255,255,.50) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset !important;
}

/* Support both direct children and preview/modal wrappers. */
#rre-single-container .rrh-hours-card > strong,
.rrh-single-resource .rrh-hours-card > strong,
.rd-provider-preview-modal .rrh-hours-card > strong{
  grid-column:1 !important;
  grid-row:1 !important;
  align-self:center !important;
  margin:0 !important;
  white-space:nowrap !important;
}

#rre-single-container .rrh-availability-head,
.rrh-single-resource .rrh-availability-head,
.rd-provider-preview-modal .rrh-availability-head{
  display:contents !important;
}

#rre-single-container .rrh-inline-pill-row,
.rrh-single-resource .rrh-inline-pill-row,
.rd-provider-preview-modal .rrh-inline-pill-row{
  grid-column:2 !important;
  grid-row:1 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:var(--rrh-modal-inner-gap) !important;
  margin:0 !important;
  padding:0 !important;
  min-width:0 !important;
}

#rre-single-container .rrh-resource-extra-card .rrh-inline-pill-row .rrh-badge,
.rrh-single-resource .rrh-resource-extra-card .rrh-inline-pill-row .rrh-badge,
.rd-provider-preview-modal .rrh-resource-extra-card .rrh-inline-pill-row .rrh-badge{
  margin:0 !important;
}

#rre-single-container .rrh-hours-toggle,
.rrh-single-resource .rrh-hours-toggle,
.rd-provider-preview-modal .rrh-hours-toggle{
  grid-column:3 !important;
  grid-row:1 !important;
  justify-self:end !important;
  align-self:center !important;
  margin:0 0 0 auto !important;
}

#rre-single-container .rrh-hours-summary,
.rrh-single-resource .rrh-hours-summary,
.rd-provider-preview-modal .rrh-hours-summary{
  display:none !important;
}

#rre-single-container .rrh-hours-detail,
.rrh-single-resource .rrh-hours-detail,
.rd-provider-preview-modal .rrh-hours-detail{
  grid-column:1 / -1 !important;
  margin:0 !important;
  padding-top:var(--rrh-modal-inner-gap) !important;
  border-top:1px solid rgba(122,106,78,.10) !important;
  color:#2f413c !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.35 !important;
}

#rre-single-container .rrh-hours-detail.is-hidden,
.rrh-single-resource .rrh-hours-detail.is-hidden,
.rd-provider-preview-modal .rrh-hours-detail.is-hidden{
  display:none !important;
}

#rre-single-container .rrh-hours-card:not(:has(.rrh-hours-toggle)),
.rrh-single-resource .rrh-hours-card:not(:has(.rrh-hours-toggle)),
.rd-provider-preview-modal .rrh-hours-card:not(:has(.rrh-hours-toggle)){
  grid-template-columns:auto minmax(0,1fr) !important;
}

/* ------------------------------
   Action buttons / claim CTA spacing
   ------------------------------ */

#rre-single-container .rrh-actions,
.rrh-single-resource .rrh-actions,
.rd-provider-preview-modal .rrh-actions{
  margin-top:var(--rrh-modal-section-gap) !important;
  gap:var(--rrh-modal-section-gap) !important;
}

#rre-single-container .rrh-provider-cta,
.rrh-single-resource .rrh-provider-cta,
.rd-provider-preview-modal .rrh-provider-cta{
  margin-top:0 !important;
}

/* ------------------------------
   Tooltip stacking / clipping protection
   ------------------------------ */

#rre-single-container,
#rre-single-content,
#rre-single-container .rrh-shell,
#rre-single-container .rrh-layout,
#rre-single-container .rrh-main-panel,
#rre-single-container .rrh-resource-profile,
#rre-single-container .rrh-resource-hero,
#rre-single-container .rrh-resource-access,
.rrh-single-resource,
.rrh-single-resource .rrh-shell,
.rrh-single-resource .rrh-layout,
.rrh-single-resource .rrh-main-panel,
.rrh-single-resource .rrh-resource-profile,
.rrh-single-resource .rrh-resource-hero,
.rrh-single-resource .rrh-resource-access,
.rd-provider-preview-modal,
.rd-provider-preview-modal .rrh-shell,
.rd-provider-preview-modal .rrh-layout,
.rd-provider-preview-modal .rrh-main-panel,
.rd-provider-preview-modal .rrh-resource-profile,
.rd-provider-preview-modal .rrh-resource-hero,
.rd-provider-preview-modal .rrh-resource-access{
  overflow:visible !important;
}

#rre-single-container .rre-has-tip,
.rrh-single-resource .rre-has-tip,
.rd-provider-preview-modal .rre-has-tip{
  position:relative !important;
  z-index:20 !important;
}

#rre-single-container .rre-has-tip:hover,
#rre-single-container .rre-has-tip:focus-visible,
.rrh-single-resource .rre-has-tip:hover,
.rrh-single-resource .rre-has-tip:focus-visible,
.rd-provider-preview-modal .rre-has-tip:hover,
.rd-provider-preview-modal .rre-has-tip:focus-visible{
  z-index:2147483647 !important;
}

#rre-single-container .rre-has-tip::before,
#rre-single-container .rre-has-tip::after,
.rrh-single-resource .rre-has-tip::before,
.rrh-single-resource .rre-has-tip::after,
.rd-provider-preview-modal .rre-has-tip::before,
.rd-provider-preview-modal .rre-has-tip::after{
  z-index:2147483647 !important;
}

/* ------------------------------
   Responsive parity
   ------------------------------ */

@media (max-width:960px){
  .rd-provider-preview-modal .rrh-layout{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "main"
      "map"
      "other"
      "cta"
      "back" !important;
  }

  .rd-provider-preview-modal .rrh-map-panel{
    min-width:0 !important;
    min-height:320px !important;
  }
}

@media (max-width:760px){
  #rre-single-container .rrh-detail-grid,
  .rrh-single-resource .rrh-detail-grid,
  .rd-provider-preview-modal .rrh-detail-grid,
  #rre-single-container .rrh-resource-extra-grid,
  .rrh-single-resource .rrh-resource-extra-grid,
  .rd-provider-preview-modal .rrh-resource-extra-grid{
    grid-template-columns:1fr !important;
  }

  #rre-single-container .rrh-resource-toprow,
  .rrh-single-resource .rrh-resource-toprow,
  .rd-provider-preview-modal .rrh-resource-toprow{
    display:block !important;
  }

  #rre-single-container .rrh-resource-trust,
  .rrh-single-resource .rrh-resource-trust,
  .rd-provider-preview-modal .rrh-resource-trust{
    justify-content:flex-start !important;
    margin-top:10px !important;
  }
}

@media (max-width:520px){
  #rre-single-container .rrh-hours-card,
  .rrh-single-resource .rrh-hours-card,
  .rd-provider-preview-modal .rrh-hours-card{
    grid-template-columns:1fr auto !important;
  }

  #rre-single-container .rrh-hours-card > strong,
  .rrh-single-resource .rrh-hours-card > strong,
  .rd-provider-preview-modal .rrh-hours-card > strong{
    grid-column:1 !important;
    grid-row:1 !important;
  }

  #rre-single-container .rrh-inline-pill-row,
  .rrh-single-resource .rrh-inline-pill-row,
  .rd-provider-preview-modal .rrh-inline-pill-row{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
  }

  #rre-single-container .rrh-hours-toggle,
  .rrh-single-resource .rrh-hours-toggle,
  .rd-provider-preview-modal .rrh-hours-toggle{
    grid-column:2 !important;
    grid-row:1 !important;
  }
}


/* ==========================================================
   SHARED PROVIDER EDIT PANELS
   Listing Visibility + Hours / Availability
   sourced from dashboard provider edit UI
   ========================================================== */

.rd-provider-edit-section,
.rd-provider-promo-section,
.rd-provider-hours-section{
  border:1px solid rgba(122,106,78,.12);
  border-radius:24px;
  background:rgba(255,255,255,.42);
  box-shadow:0 2px 6px rgba(0,0,0,.04),0 10px 22px rgba(0,0,0,.04);
  padding:22px;
  margin:0 0 18px;
}

.rd-provider-edit-section h3,
.rd-provider-promo-section h3,
.rd-provider-hours-section h3{
  margin:0 0 8px;
  color:#334843;
  font-size:clamp(18px,1.35vw,24px);
  font-weight:900;
  line-height:1.15;
}

.rd-field-help,
.rd-hours-helper .rd-field-help{
  margin:0 0 14px;
  color:#4f615b;
  font-size:15px;
  line-height:1.45;
}

.rd-provider-listing-type{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:12px 0 14px;
}

.rd-provider-choice{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid rgba(122,106,78,.14);
  border-radius:999px;
  background:rgba(255,255,255,.60);
  font-weight:700;
}

.rd-provider-access-banner,
.rd-provider-free-note{
  padding:14px 16px;
  border-radius:16px;
  background:rgba(232,245,235,.60);
  border:1px solid rgba(79,140,91,.18);
  margin:0 0 16px;
}

.rd-provider-tier-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  margin:14px 0 18px;
}

.rd-provider-tier-card{
  display:block;
  padding:18px;
  border:1px solid rgba(122,106,78,.14);
  border-radius:20px;
  background:rgba(255,255,255,.58);
}

.rd-provider-tier-card.is-selected{
  border-color:rgba(79,140,91,.35);
  background:rgba(232,245,235,.62);
}

.rd-provider-tier-card h4{ margin:0 0 10px; }
.rd-provider-tier-price{
  font-size:28px;
  font-weight:900;
  color:#334843;
}
.rd-provider-tier-meta,
.rd-provider-tier-desc,
.rd-provider-mini,
.rd-provider-promo-note{
  color:#5f706b;
}

.rd-provider-pay-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px;
  border-radius:18px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(122,106,78,.12);
}

.rd-provider-payment-row{
  display:flex;
  align-items:center;
  gap:14px;
}

.rd-provider-pay-total{
  font-size:28px;
  font-weight:900;
  color:#334843;
}

.rd-hours-helper{
  margin-bottom:16px;
}

.rd-hours-copy-btn{
  margin-top:6px;
}

.rd-hours-grid{
  display:grid;
  gap:12px;
}

.rd-hours-row{
  display:grid;
  grid-template-columns:120px 180px 1fr auto 1fr;
  gap:10px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(122,106,78,.12);
  border-radius:18px;
  background:rgba(255,255,255,.48);
}

.rd-hours-day{
  font-weight:800;
  color:#334843;
}

.rd-hours-timegroup{
  display:grid;
  grid-template-columns:repeat(3,minmax(70px,1fr));
  gap:8px;
}

.rd-hours-sep{
  font-weight:900;
  color:#6a5d49;
}

@media (max-width:900px){
  .rd-provider-pay-summary{
    flex-direction:column;
    align-items:flex-start;
  }
  .rd-hours-row{
    grid-template-columns:1fr;
  }
  .rd-hours-timegroup{
    grid-template-columns:repeat(3,1fr);
  }
}

/* Final lock: only availability status pills */
#rre-single-container .rrh-availability-pills .rre-badge--availability,
.rrh-single-resource .rrh-availability-pills .rre-badge--availability,
.rd-provider-preview-modal .rrh-availability-pills .rre-badge--availability{
  font-size:12px !important;
  line-height:1 !important;
  font-weight:700 !important;
  min-height:24px !important;
  height:24px !important;
  padding:0 10px !important;

  background:rgba(245,241,232,.76) !important;
  border-color:rgba(122,106,78,.16) !important;
  color:#66583f !important;
}


/* ==========================================================
   18) FINAL MODAL VISUAL CONTRACT
   Single override layer for typography, About height, details, and hours.
   Keep this section last.
   ========================================================== */

/* Provider title = RRH green */
#rre-single-container .rrh-resource-title,
.rrh-single-resource .rrh-resource-title,
.rd-provider-preview-modal .rrh-resource-title{
  color:#39554c !important;
}

/* Panel titles = warm premium brown */
#rre-single-container .rrh-section-title,
.rrh-single-resource .rrh-section-title,
.rd-provider-preview-modal .rrh-section-title,
#rre-single-container .rrh-description-panel h2,
.rrh-single-resource .rrh-description-panel h2,
.rd-provider-preview-modal .rrh-description-panel h2,
#rre-single-container .rrh-resource-access-title,
.rrh-single-resource .rrh-resource-access-title,
.rd-provider-preview-modal .rrh-resource-access-title,
#rre-single-container .rrh-availability-label,
.rrh-single-resource .rrh-availability-label,
.rd-provider-preview-modal .rrh-availability-label,
#rre-single-container .rrh-detail-label,
.rrh-single-resource .rrh-detail-label,
.rd-provider-preview-modal .rrh-detail-label{
  color:#6a5d49 !important;
  opacity:.95 !important;
}

/* Coverage & Payment heading */
#rre-single-container .rrh-coverage-block .rrh-mini-section-label,
.rrh-single-resource .rrh-coverage-block .rrh-mini-section-label,
.rd-provider-preview-modal .rrh-coverage-block .rrh-mini-section-label{
  color:#426056 !important;
  font-size:clamp(18px,1.35vw,26px) !important;
  font-weight:900 !important;
  line-height:1.08 !important;
  margin:10px 0 8px !important;
  padding:0 !important;
}

/* Address / phone values */
#rre-single-container .rrh-detail-value,
.rrh-single-resource .rrh-detail-value,
.rd-provider-preview-modal .rrh-detail-value{
  color:#426056 !important;
  -webkit-text-fill-color:#426056 !important;
}

/* About panel: reduced height, one source of truth */
#rre-single-container .rrh-description-panel,
.rrh-single-resource .rrh-description-panel,
.rd-provider-preview-modal .rrh-description-panel{
  max-height:calc(1.48em * 5.5 + 42px) !important;
}

#rre-single-container .rrh-description-panel .rrh-notes-scroll,
.rrh-single-resource .rrh-description-panel .rrh-notes-scroll,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes-scroll,
#rre-single-container .rrh-description-panel .rrh-notes,
.rrh-single-resource .rrh-description-panel .rrh-notes,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes{
  max-height:calc(1.48em * 5.5) !important;
}

#rre-single-container .rrh-description-panel .rrh-notes,
.rrh-single-resource .rrh-description-panel .rrh-notes,
.rd-provider-preview-modal .rrh-description-panel .rrh-notes{
  color:#4e5f59 !important;
}

/* Hours grid and colors */
#rre-single-container .rrh-hours-row,
.rrh-single-resource .rrh-hours-row,
.rd-provider-preview-modal .rrh-hours-row{
  display:grid !important;
  grid-template-columns:88px minmax(0,1fr) !important;
  column-gap:10px !important;
  align-items:baseline !important;
  line-height:1.35 !important;
}

#rre-single-container #rrh-top-panel .rrh-hours-card .rrh-hours-detail,
#rre-single-container #rrh-top-panel .rrh-hours-card .rrh-hours-row,
.rrh-single-resource #rrh-top-panel .rrh-hours-card .rrh-hours-detail,
.rrh-single-resource #rrh-top-panel .rrh-hours-card .rrh-hours-row,
.rd-provider-preview-modal .rrh-hours-card .rrh-hours-detail,
.rd-provider-preview-modal .rrh-hours-card .rrh-hours-row{
  color:#707571 !important;
  -webkit-text-fill-color:#707571 !important;
  font-size:14px !important;
  font-weight:450 !important;
}

#rre-single-container .rrh-hours-day,
.rrh-single-resource .rrh-hours-day,
.rd-provider-preview-modal .rrh-hours-day{
  color:#426056 !important;
  -webkit-text-fill-color:#426056 !important;
  font-weight:900 !important;
}

#rre-single-container .rrh-hours-value,
.rrh-single-resource .rrh-hours-value,
.rd-provider-preview-modal .rrh-hours-value{
  color:#707571 !important;
  -webkit-text-fill-color:#707571 !important;
  font-weight:450 !important;
}
