/*
 * Rehabs.Today sitewide compatibility layer.
 * Restores component rules that previously lived in Hello Elementor/custom page CSS.
 */

html { scroll-behavior: smooth; }
body.rt-directory-site {
  margin: 0;
  color: var(--rt-text);
  background: var(--rt-surface);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.rt-directory-site img { max-width: 100%; }
body.rt-directory-site main { display: block; width: 100%; }
body.rt-directory-site .rt-front-main,
body.rt-directory-site .rt-page-main { overflow: hidden; }

/* Base wrappers used by existing treatment and directory pages. */
.rt-home-full,
.rt-res-page,
.rt-dd-page,
.rt-ar-page,
.rt-or-page {
  --rt-green:#2e8b57;
  --rt-green-soft:#f0f7f4;
  --rt-purple:#7051a3;
  --rt-purple-soft:#f3eef9;
  margin: 0;
  color: var(--rt-text);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.65;
  overflow: hidden;
}
.rt-home-full *, .rt-res-page *, .rt-dd-page *, .rt-ar-page *, .rt-or-page * { box-sizing: border-box; }

/* Generic page components used by several pre-theme pages. */
.rt-mini-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:16px 16px 18px; }
.rt-mini-stat { padding:14px; border-radius:16px; background:rgba(13,43,85,.06); color:var(--rt-text); }
.rt-hero .rt-mini-stat { background:rgba(255,255,255,.13); }
.rt-mini-stat strong { display:block; color:var(--rt-navy); font-size:22px; line-height:1.05; margin-bottom:5px; }
.rt-hero .rt-mini-stat strong { color:#fff; }
.rt-mini-stat span, .rt-mini-stat { font-size:13px; font-weight:700; line-height:1.35; }
.rt-hero .rt-mini-stat span, .rt-hero .rt-mini-stat { color:rgba(255,255,255,.78); }
.rt-stat-num { color:var(--rt-orange); font-size:clamp(22px,2.8vw,30px); font-weight:900; line-height:1; }
.rt-stat-label { margin-top:6px; color:rgba(255,255,255,.74); font-size:13px; font-weight:750; line-height:1.35; }

.rt-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.rt-grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.rt-step { padding:28px; border:1px solid var(--rt-border); border-radius:18px; background:#fff; box-shadow:var(--rt-shadow); }
.rt-step-num { width:38px; height:38px; display:grid; place-items:center; margin-bottom:14px; border-radius:50%; background:var(--rt-orange); color:#fff; font-weight:900; }
.rt-icon { width:44px; height:44px; display:grid; place-items:center; margin-bottom:16px; border-radius:14px; background:var(--rt-navy); color:#fff; font-size:20px; font-weight:900; }
.rt-icon-blue { background:#1a4a8a; }
.rt-icon-green { background:var(--rt-green); }
.rt-icon-orange { background:var(--rt-orange); }
.rt-icon-purple { background:var(--rt-purple); }
.rt-icon-blue-soft { background:#e8f4fd; color:#1a4a8a; }
.rt-icon-green-soft { background:#dff3e7; color:#226f49; }
.rt-icon-orange-soft { background:#fff1df; color:#a7510d; }
.rt-icon-purple-soft { background:var(--rt-purple-soft); color:var(--rt-purple); }
.rt-icon-teal-soft { background:#e0f4f4; color:#1a6e6a; }

.rt-blue { background:var(--rt-blue-soft); }
.rt-green, .rt-green-bg { background:var(--rt-green-soft); }
.rt-purple-bg { background:var(--rt-purple-soft); }
.rt-dark-card { background:rgba(255,255,255,.08)!important; border-color:rgba(255,255,255,.17)!important; box-shadow:none!important; }
.rt-dark-card h3, .rt-dark-card p { color:#fff; }

.rt-kicker-green { color:#226f49; }
.rt-kicker-teal { color:#1a6e6a; }
.rt-kicker-red { color:#991b1b; }
.rt-kicker-purple { color:var(--rt-purple); }
.rt-border-purple { border-top:5px solid var(--rt-purple); }
.rt-btn-purple { color:#fff!important; background:var(--rt-purple); }
.rt-btn-ghost { color:var(--rt-navy)!important; border:2px solid var(--rt-border); background:#fff; }
.rt-btn-outline-dark { color:var(--rt-navy)!important; border:2px solid var(--rt-border); background:#fff; }

.rt-warning { display:flex; gap:14px; align-items:flex-start; padding:20px 22px; border:1px solid #f4c7c7; border-radius:16px; background:#fff5f5; }
.rt-warning-icon { flex:0 0 auto; font-size:22px; line-height:1; }
.rt-warning p { color:#7f1d1d; }
.rt-note-heading { margin:0 0 8px; color:var(--rt-navy); font-weight:900; }
.rt-tag-cloud { display:flex; flex-wrap:wrap; gap:10px; }
.rt-tag { display:inline-flex; padding:8px 12px; border:1px solid var(--rt-border); border-radius:999px; background:#fff; color:var(--rt-navy); font-size:13px; font-weight:800; }

.rt-timeline { position:relative; display:grid; gap:0; margin-top:28px; }
.rt-tl-item { position:relative; display:grid; grid-template-columns:26px minmax(0,1fr); gap:16px; padding-bottom:24px; }
.rt-tl-item::before { content:""; position:absolute; left:8px; top:18px; bottom:-3px; width:2px; background:var(--rt-border); }
.rt-tl-item:last-child::before { display:none; }
.rt-tl-dot { position:relative; z-index:1; width:18px; height:18px; margin-top:4px; border:4px solid #fff; border-radius:50%; background:var(--rt-teal); box-shadow:0 0 0 2px var(--rt-border); }
.rt-tl-body, .rt-tl-content { min-width:0; }
.rt-tl-body h3, .rt-tl-content h3 { margin-bottom:7px; }
.rt-tl-body p, .rt-tl-content p { color:var(--rt-muted); }

.rt-center { text-align:center; }
.rt-full { width:100%; }
.rt-gap-14 { gap:14px!important; }
.rt-mb-16 { margin-bottom:16px!important; }
.rt-mt-12 { margin-top:12px!important; }
.rt-mt-16 { margin-top:16px!important; }
.rt-mt-18 { margin-top:18px!important; }
.rt-mt-20 { margin-top:20px!important; }
.rt-mt-32 { margin-top:32px!important; }

/* Existing Boca/city-page component gaps. */
.sn-bg-hero { background:linear-gradient(135deg,var(--rt-navy),var(--rt-navy-2)); }
.sn-bg-light { background:var(--rt-surface-soft); }
.sn-badge-blue { color:#1a4a8a; background:#e8f4fd; }
.sn-btn-xl { padding:17px 30px; font-size:18px; }
.sn-stat-item { min-width:0; }
.sn-flex-row { display:flex; align-items:center; gap:32px; }
.sn-flex-col { display:flex; flex-direction:column; }
.sn-col-img, .sn-col-text { flex:1 1 0; min-width:0; }
.sn-grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.sn-faq-item { padding:20px 22px; border:1px solid var(--rt-border); border-radius:14px; background:#fff; }
.sn-faq-q { margin:0 0 8px; color:var(--rt-navy); font-family:Georgia,"Times New Roman",serif; font-size:18px; font-weight:800; line-height:1.3; }
.sn-faq-a { margin:0; color:var(--rt-muted); line-height:1.7; }
.sn-city-meta { color:var(--rt-muted); font-size:14px; line-height:1.5; }
.sn-mobile-reverse { align-items:flex-start; }

/* Dual-diagnosis utility components. */
.rt-dd-page .rt-card { height:100%; }
.rt-dd-page .rt-purple-bg { background:var(--rt-purple-soft); }

@media (max-width:1040px) {
  .rt-grid-4, .sn-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .rt-grid-2 { grid-template-columns:1fr; }
  .sn-flex-row { flex-direction:column; align-items:stretch; }
  .sn-mobile-reverse { flex-direction:column-reverse!important; }
  .sn-col-img, .sn-col-text { width:100%; }
}
@media (max-width:560px) {
  .rt-grid-4, .sn-grid-4, .rt-mini-stats { grid-template-columns:1fr; }
}

/* ============================================================
   v1.0.2 — Related resource cards
   Uses a normal card container with an internal CTA link.
   This is deliberately resilient to WordPress block/editor parsing.
============================================================ */
.rt-related-grid {
  align-items: stretch;
}

.rt-related-grid > .rt-related-card,
.rt-related-grid > .rt-card.rt-related-card {
  display: flex !important;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  padding: 28px;
  border: 1px solid var(--rt-border);
  border-radius: var(--rt-radius);
  background: var(--rt-surface, #fff);
  box-shadow: var(--rt-shadow);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.rt-related-grid > .rt-related-card:hover,
.rt-related-grid > .rt-card.rt-related-card:hover {
  transform: translateY(-3px);
  border-color: rgba(42, 167, 161, .35);
}

.rt-related-card h3 {
  margin: 0 0 14px;
  color: var(--rt-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px !important;
  line-height: 1.25;
}

.rt-related-card p {
  margin: 0;
  color: var(--rt-muted);
  font-size: 14px !important;
  line-height: 1.65;
}

.rt-related-card .rt-ar-link,
.rt-related-card .rt-related-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  gap: 6px;
  margin-top: auto !important;
  padding-top: 22px;
  color: var(--rt-teal) !important;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none !important;
}

.rt-related-card .rt-ar-link:hover,
.rt-related-card .rt-related-link:hover {
  color: var(--rt-navy) !important;
}

/* Retain support for legacy whole-card anchors when they survive the editor intact. */
.rt-related-grid > a.rt-card {
  display: flex !important;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}

.rt-related-grid > a.rt-card .rt-ar-link {
  margin-top: auto !important;
  padding-top: 22px;
}

@media (max-width: 820px) {
  .rt-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 560px) {
  .rt-related-grid { grid-template-columns: 1fr !important; }
}
