:root {
  --rg-ink: #0a1b45;
  --rg-ink2: #263861;
  --rg-muted: #75829d;
  --rg-brand: #1b46e7;
  --rg-brand2: #345fff;
  --rg-brand-dark: #101b75;
  --rg-line: #e2e8f6;
  --rg-bg: #f6f8ff;
  --rg-paper: #fff;
  --rg-mint: #e8f8f1;
  --rg-cyan: #e3f7ff;
  --rg-lav: #eeedff;
  --rg-cream: #fff7df;
  --rg-danger: #c53f52;
  --rg-success: #17825d;
  --rg-shadow: 0 18px 52px rgba(23, 57, 151, 0.12);
  --rg-shadow-sm: 0 8px 28px rgba(23, 57, 151, 0.09);
  --rg-radius-xl: 32px;
  --rg-radius-lg: 24px;
  --rg-radius: 18px;
  --rg-safe: env(safe-area-inset-bottom, 0px);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body.rg-app-body {
  margin: 0;
  background: var(--rg-bg);
  color: var(--rg-ink);
  font-family: Vazirmatn, Tahoma, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.rg-app-body.admin-bar .rg-header {
  top: 32px;
}
button,
input,
textarea,
select {
  font: inherit;
}
button {
  cursor: pointer;
}
.hidden {
  display: none !important;
}
.rg-honeypot {
  position: absolute !important;
  left: -9999px !important;
}
.rg-icon {
  width: 24px;
  height: 24px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rg-app {
  min-height: 100vh;
  padding-bottom: 0;
}
.rg-container {
  width: min(1180px, calc(100% - 36px));
  margin-inline: auto;
}
.rg-page {
  display: none;
  min-height: calc(100vh - 82px);
  animation: rgPage 0.22s ease both;
}
.rg-page.active {
  display: block;
}
@keyframes rgPage {
  from {
    opacity: 0.35;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* Header */
.rg-header {
  position: sticky;
  top: 0;
  z-index: 80;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(222, 230, 248, 0.92);
}
.rg-header-inner {
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.rg-brand {
  border: 0;
  background: none;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--rg-ink);
  text-align: right;
  padding: 0;
}
.rg-brand img {
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 17px;
  box-shadow: 0 8px 24px rgba(20, 54, 196, 0.2);
}
.rg-brand span {
  display: grid;
  gap: 3px;
}
.rg-brand strong {
  font-size: 21px;
}
.rg-brand small {
  font-size: 12px;
  color: var(--rg-muted);
}
.rg-desktop-nav {
  display: flex;
  align-items: center;
  gap: 6px;
}
.rg-desktop-nav button {
  border: 0;
  background: none;
  color: var(--rg-ink2);
  padding: 12px 14px;
  border-radius: 13px;
  font-weight: 700;
}
.rg-desktop-nav button:hover {
  background: #f0f4ff;
  color: var(--rg-brand);
}
.rg-icon-button {
  width: 50px;
  height: 50px;
  border: 1px solid var(--rg-line);
  border-radius: 16px;
  background: #fff;
  color: var(--rg-ink);
  display: grid;
  place-items: center;
  transition: 0.18s;
}
.rg-icon-button:hover {
  color: var(--rg-brand);
  border-color: #cdd8fb;
  box-shadow: var(--rg-shadow-sm);
}
.rg-menu-button {
  display: none;
}
.rg-support-button {
  order: -1;
}
/* Buttons */
.rg-btn {
  min-height: 52px;
  border-radius: 17px;
  border: 1px solid transparent;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: 850;
  text-decoration: none;
  transition:
    transform 0.15s,
    box-shadow 0.15s,
    opacity 0.15s;
}
.rg-btn:hover {
  transform: translateY(-1px);
}
.rg-btn:disabled {
  opacity: 0.48;
  cursor: not-allowed;
  transform: none;
}
.rg-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--rg-brand), var(--rg-brand2));
  box-shadow: 0 12px 30px rgba(30, 72, 234, 0.22);
}
.rg-btn-secondary {
  color: var(--rg-ink);
  background: #fff;
  border-color: var(--rg-line);
}
.rg-btn-danger {
  color: #fff;
  background: var(--rg-danger);
}
.rg-btn-lg {
  min-height: 60px;
  border-radius: 20px;
  padding-inline: 28px;
  font-size: 16px;
}
.rg-btn-block {
  width: 100%;
}
.rg-text-button {
  border: 0;
  background: none;
  color: var(--rg-brand);
  font-weight: 850;
  padding: 10px;
}
.rg-kicker {
  color: var(--rg-brand);
  font-size: 13px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.rg-kicker:before {
  content: "";
  width: 28px;
  height: 3px;
  border-radius: 9px;
  background: linear-gradient(90deg, var(--rg-brand), #58c7ff);
}
/* Hero */
.rg-hero {
  position: relative;
  overflow: hidden;
  padding: 74px 0 48px;
  background:
    radial-gradient(
      circle at 18% 18%,
      rgba(89, 119, 255, 0.15),
      transparent 30%
    ),
    radial-gradient(
      circle at 85% 74%,
      rgba(75, 209, 255, 0.13),
      transparent 28%
    ),
    linear-gradient(180deg, #fbfcff, #f2f5ff);
}
.rg-hero:after {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  border: 80px solid rgba(38, 77, 230, 0.035);
  border-radius: 50%;
  left: -220px;
  bottom: -260px;
  pointer-events: none;
}
.rg-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(380px, 0.94fr);
  align-items: center;
  gap: 58px;
}
.rg-hero-copy {
  min-width: 0;
}
.rg-eyebrow {
  color: var(--rg-brand);
  font-size: 14px;
  font-weight: 900;
  margin-bottom: 18px;
}
.rg-hero h1 {
  font-size: clamp(44px, 5vw, 68px);
  line-height: 1.35;
  letter-spacing: -2px;
  margin: 0 0 22px;
  max-width: 720px;
}
.rg-hero p {
  font-size: 17px;
  line-height: 2.05;
  color: var(--rg-muted);
  max-width: 680px;
  margin: 0;
}
.rg-hero-actions {
  display: flex;
  gap: 12px;
  margin-top: 30px;
}
.rg-trust-list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  color: var(--rg-ink2);
  font-size: 13px;
  margin-top: 25px;
}
.rg-trust-list span:before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--rg-mint);
  color: var(--rg-success);
  font-weight: 900;
  margin-left: 7px;
}
.rg-featured {
  position: relative;
  background: #fff;
  padding: 14px;
  border-radius: 34px;
  box-shadow: var(--rg-shadow);
  max-width: 500px;
  margin-inline: auto;
}
.rg-featured-image {
  height: 430px;
  border-radius: 26px;
  overflow: hidden;
  background: #eef2ff;
}
.rg-featured-image picture,
.rg-featured-image img {
  width: 100%;
  height: 100%;
  display: block;
}
.rg-featured-image img {
  object-fit: cover;
}
.rg-featured-overlay {
  position: absolute;
  inset: auto 28px 30px 28px;
  background: linear-gradient(180deg, transparent, rgba(4, 16, 55, 0.9));
  border-radius: 0 0 22px 22px;
  color: #fff;
  padding: 80px 22px 22px;
}
.rg-featured-overlay h2 {
  margin: 0 0 5px;
  font-size: 24px;
}
.rg-featured-overlay p {
  margin: 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
}
.rg-featured-tags {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.rg-featured-tags span {
  background: rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 11px;
}
.rg-featured-badge {
  position: absolute;
  top: 36px;
  right: -22px;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 18px;
  padding: 13px 15px;
  box-shadow: var(--rg-shadow-sm);
  display: grid;
  gap: 3px;
}
.rg-featured-badge small {
  color: var(--rg-muted);
  font-size: 11px;
}
.rg-featured-badge b {
  color: var(--rg-brand);
  font-size: 14px;
}
/* Sections */
.rg-section {
  padding: 78px 0;
}
.rg-section-tint {
  background: #f1f5ff;
}
.rg-section-heading {
  max-width: 720px;
  margin-bottom: 28px;
}
.rg-section-heading-inline {
  max-width: none;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}
.rg-section-heading h2 {
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.4;
  letter-spacing: -1px;
  margin: 11px 0 9px;
}
.rg-section-heading p {
  margin: 0;
  color: var(--rg-muted);
  line-height: 1.9;
}
.rg-quick-card {
  position: relative;
  margin-top: 34px;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 30px;
  padding: 26px;
  box-shadow: var(--rg-shadow-sm);
}
.rg-quick-card .rg-section-heading {
  margin: 0 0 18px;
}
.rg-quick-card h2 {
  font-size: 26px;
  margin: 7px 0;
}
.rg-quick-slots {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.rg-slot-card {
  border: 1px solid var(--rg-line);
  background: #fbfcff;
  border-radius: 20px;
  padding: 18px;
  text-align: right;
  display: grid;
  gap: 6px;
  color: var(--rg-ink);
  transition: 0.18s;
}
.rg-slot-card:hover {
  border-color: #bfcdfb;
  box-shadow: var(--rg-shadow-sm);
  transform: translateY(-2px);
}
.rg-slot-card b {
  font-size: 18px;
  color: var(--rg-brand);
}
.rg-slot-card span {
  font-weight: 800;
}
.rg-slot-card small {
  color: var(--rg-muted);
}
.rg-skeleton {
  background: linear-gradient(90deg, #eef2fb, #f7f9ff, #eef2fb);
  background-size: 200% 100%;
  animation: rgShimmer 1.3s infinite;
}
.rg-skeleton-card {
  height: 112px;
  border-radius: 20px;
}
@keyframes rgShimmer {
  to {
    background-position: -200% 0;
  }
}
.rg-empty-quick {
  grid-column: 1/-1;
  text-align: center;
  border: 1px dashed #cfd8ee;
  border-radius: 20px;
  padding: 26px;
  color: var(--rg-muted);
}
.rg-specialty-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
}
.rg-specialty-card {
  border: 1px solid var(--rg-line);
  border-radius: 24px;
  background: #fff;
  padding: 24px;
  min-height: 188px;
  text-align: right;
  position: relative;
  overflow: hidden;
  color: var(--rg-ink);
}
.rg-specialty-card:after {
  content: "";
  position: absolute;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  left: -38px;
  bottom: -40px;
  background: var(--card-accent, var(--rg-lav));
}
.rg-specialty-card:hover {
  box-shadow: var(--rg-shadow-sm);
  border-color: #ced9f9;
}
.rg-specialty-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: var(--card-accent, var(--rg-lav));
  display: grid;
  place-items: center;
  color: var(--rg-brand);
  margin-bottom: 22px;
}
.rg-specialty-card h3 {
  margin: 0 0 10px;
  font-size: 18px;
}
.rg-specialty-card p {
  margin: 0;
  color: var(--rg-muted);
  line-height: 1.8;
  font-size: 13px;
}
.rg-specialty-card span {
  position: absolute;
  right: 24px;
  bottom: 21px;
  color: var(--rg-brand);
  font-weight: 900;
  font-size: 13px;
}
.rg-therapist-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.rg-therapist-card {
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(31, 62, 145, 0.06);
  transition: 0.18s;
}
.rg-therapist-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--rg-shadow);
}
.rg-therapist-photo {
  height: 280px;
  background: #eef2ff;
  overflow: hidden;
  position: relative;
}
.rg-therapist-photo picture,
.rg-therapist-photo img {
  width: 100%;
  height: 100%;
  display: block;
}
.rg-therapist-photo img {
  object-fit: cover;
}
.rg-therapist-rating {
  position: absolute;
  left: 14px;
  top: 14px;
  background: rgba(255, 255, 255, 0.93);
  border-radius: 13px;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 900;
  color: #b47a00;
}
.rg-therapist-content {
  padding: 21px;
}
.rg-therapist-content h3 {
  margin: 0 0 5px;
  font-size: 21px;
}
.rg-therapist-role {
  color: var(--rg-muted);
  font-size: 13px;
}
.rg-chip-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 15px 0;
}
.rg-chip {
  font-size: 11px;
  padding: 7px 9px;
  border-radius: 999px;
  background: #f1f4ff;
  color: var(--rg-brand);
  font-weight: 800;
}
.rg-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--rg-line);
  padding-top: 15px;
  margin-top: 15px;
  color: var(--rg-ink2);
  font-size: 12px;
}
.rg-card-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 16px;
}
.rg-card-actions .rg-btn {
  min-height: 45px;
  border-radius: 14px;
  font-size: 13px;
  padding: 0 12px;
}
.rg-guidance {
  background: linear-gradient(135deg, #111c75, #1c47e8);
  color: #fff;
  border-radius: 34px;
  padding: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  box-shadow: var(--rg-shadow);
}
.rg-guidance h2 {
  font-size: 34px;
  margin: 10px 0;
}
.rg-guidance p {
  max-width: 650px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.75);
}
.rg-guidance .rg-kicker {
  color: #8fdfff;
}
.rg-guidance-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.rg-guidance .rg-btn-secondary {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.24);
}
/* Sub pages */
.rg-subhero {
  padding: 64px 0 48px;
  background: linear-gradient(180deg, #f9fbff, #eef3ff);
  text-align: center;
}
.rg-subhero h1 {
  font-size: clamp(34px, 5vw, 55px);
  margin: 12px 0;
}
.rg-subhero p {
  color: var(--rg-muted);
  line-height: 1.9;
  margin: 0;
}
.rg-list-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 26px;
  padding-block: 42px 80px;
}
.rg-filter-panel {
  position: sticky;
  top: 106px;
  align-self: start;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 24px;
  padding: 20px;
  display: grid;
  gap: 16px;
}
.rg-filter-panel label,
.rg-sheet form label,
.rg-lookup-card label {
  display: grid;
  gap: 8px;
  color: var(--rg-ink2);
  font-weight: 800;
  font-size: 13px;
}
.rg-filter-panel input,
.rg-filter-panel select,
.rg-sheet input,
.rg-sheet textarea,
.rg-sheet select,
.rg-lookup-card input,
.rg-booking-card input,
.rg-booking-card textarea,
.rg-booking-card select {
  width: 100%;
  border: 1px solid var(--rg-line);
  background: #fbfcff;
  border-radius: 15px;
  padding: 13px 14px;
  color: var(--rg-ink);
  outline: none;
}
.rg-filter-panel input:focus,
.rg-filter-panel select:focus,
.rg-sheet input:focus,
.rg-sheet textarea:focus,
.rg-lookup-card input:focus,
.rg-booking-card input:focus,
.rg-booking-card textarea:focus,
.rg-booking-card select:focus {
  border-color: #9eb0f5;
  box-shadow: 0 0 0 3px rgba(45, 86, 240, 0.08);
}
.rg-results-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}
.rg-results-head h2 {
  margin: 0;
}
.rg-results-head span {
  color: var(--rg-muted);
}
.rg-empty {
  background: #fff;
  border: 1px dashed #cdd6eb;
  border-radius: 24px;
  padding: 44px;
  text-align: center;
}
.rg-empty h3 {
  margin-top: 0;
}
/* Profile */
.rg-profile {
  padding-block: 42px 110px;
}
.rg-profile-hero {
  display: grid;
  grid-template-columns: minmax(360px, 0.86fr) minmax(0, 1.14fr);
  gap: 30px;
  align-items: start;
}
.rg-profile-media {
  position: sticky;
  top: 105px;
}
.rg-profile-photo {
  height: 540px;
  background: #eef2ff;
  border-radius: 32px;
  overflow: hidden;
  box-shadow: var(--rg-shadow);
}
.rg-profile-photo picture,
.rg-profile-photo img {
  width: 100%;
  height: 100%;
  display: block;
}
.rg-profile-photo img {
  object-fit: cover;
}
.rg-profile-main {
  display: grid;
  gap: 18px;
}
.rg-profile-card {
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 28px;
  padding: 28px;
}
.rg-profile-title h1 {
  font-size: 42px;
  margin: 0 0 8px;
}
.rg-profile-title p {
  color: var(--rg-muted);
  margin: 0;
}
.rg-profile-top {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
}
.rg-profile-score {
  text-align: center;
  background: var(--rg-cream);
  border-radius: 18px;
  padding: 13px 16px;
  min-width: 95px;
}
.rg-profile-score b {
  display: block;
  font-size: 21px;
  color: #ad7600;
}
.rg-profile-score small {
  color: var(--rg-muted);
}
.rg-profile-actions {
  display: flex;
  gap: 10px;
  margin-top: 22px;
}
.rg-profile-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 22px;
}
.rg-fact {
  border: 1px solid var(--rg-line);
  background: #fbfcff;
  border-radius: 16px;
  padding: 15px;
  text-align: center;
}
.rg-fact b {
  display: block;
  margin-bottom: 4px;
}
.rg-fact small {
  color: var(--rg-muted);
}
.rg-profile-card h2 {
  margin: 0 0 16px;
  font-size: 25px;
}
.rg-profile-card p {
  line-height: 2;
  color: var(--rg-ink2);
}
.rg-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rg-tag-list span {
  padding: 9px 12px;
  border-radius: 999px;
  background: #f0f3ff;
  color: var(--rg-brand);
  font-size: 12px;
  font-weight: 850;
}
.rg-profile-book {
  background: linear-gradient(145deg, #f5f7ff, #fff);
}
.rg-next-slot {
  border: 1px solid #cbd6fa;
  background: #fff;
  border-radius: 19px;
  padding: 17px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.rg-next-slot b {
  color: var(--rg-brand);
}
.rg-package-mini {
  display: grid;
  gap: 9px;
  margin-top: 14px;
}
.rg-package-mini div {
  display: flex;
  justify-content: space-between;
  padding: 13px 15px;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 14px;
}
.rg-reviews {
  display: grid;
  gap: 10px;
}
.rg-review {
  border: 1px solid var(--rg-line);
  border-radius: 18px;
  padding: 17px;
  background: #fbfcff;
}
.rg-review-header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.rg-stars {
  color: #f0a800;
  letter-spacing: 2px;
}
.rg-review p {
  margin-bottom: 0;
}
.rg-mobile-bookbar {
  display: none;
}
/* Booking */
.rg-booking-shell {
  padding: 40px 0 100px;
}
.rg-booking-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 26px;
}
.rg-booking-head h1 {
  font-size: 42px;
  margin: 0 0 5px;
}
.rg-booking-head p {
  margin: 0;
  color: var(--rg-muted);
}
.rg-stepper {
  max-width: 680px;
  margin: 0 auto 28px;
  display: flex;
  align-items: start;
  direction: rtl;
}
.rg-stepper span {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #e6ebfb;
  color: #8490aa;
  font-size: 18px;
  font-weight: 900;
  position: relative;
  flex: 0 0 auto;
}
.rg-stepper span.active,
.rg-stepper span.done {
  background: var(--rg-brand);
  color: #fff;
}
.rg-stepper span small {
  position: absolute;
  top: 58px;
  color: var(--rg-muted);
  font-size: 10px;
  white-space: nowrap;
}
.rg-stepper span.active small {
  color: var(--rg-brand);
}
.rg-stepper i {
  height: 4px;
  background: #dfe5f6;
  flex: 1;
  margin-top: 24px;
}
.rg-stepper i.done {
  background: var(--rg-brand);
}
.rg-booking-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 22px;
  margin-top: 58px;
  align-items: start;
}
.rg-booking-card,
.rg-book-summary {
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 30px;
  box-shadow: var(--rg-shadow-sm);
}
.rg-booking-card {
  padding: 30px;
  min-width: 0;
}
.rg-book-summary {
  position: sticky;
  top: 105px;
  padding: 22px;
}
.rg-book-step {
  display: none;
}
.rg-book-step.active {
  display: block;
  animation: rgPage 0.2s ease;
}
.rg-card-heading h2 {
  font-size: 28px;
  margin: 0 0 8px;
}
.rg-card-heading p {
  color: var(--rg-muted);
  margin: 0 0 24px;
  line-height: 1.8;
}
.rg-package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.rg-package-option {
  position: relative;
  border: 1px solid var(--rg-line);
  border-radius: 21px;
  padding: 20px;
  background: #fbfcff;
  min-height: 190px;
  cursor: pointer;
  transition: 0.18s;
}
.rg-package-option.selected {
  border: 2px solid var(--rg-brand);
  background: #f1f4ff;
  box-shadow: 0 10px 28px rgba(29, 67, 223, 0.11);
}
.rg-package-option h3 {
  margin: 0 0 14px;
  font-size: 20px;
}
.rg-package-option .rg-price {
  color: var(--rg-brand);
  font-weight: 900;
  font-size: 19px;
}
.rg-package-option small {
  display: block;
  color: var(--rg-muted);
  line-height: 1.7;
  margin-top: 8px;
}
.rg-package-option .rg-saving {
  display: inline-block;
  margin-top: 12px;
  background: var(--rg-mint);
  color: var(--rg-success);
  padding: 6px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
}
.rg-radio {
  position: absolute;
  left: 17px;
  top: 17px;
  width: 20px;
  height: 20px;
  border: 2px solid #c8d0e2;
  border-radius: 50%;
}
.selected .rg-radio {
  border-color: var(--rg-brand);
  box-shadow: inset 0 0 0 5px var(--rg-brand);
}
.rg-package-strategy {
  margin-top: 20px;
  border-top: 1px solid var(--rg-line);
  padding-top: 20px;
}
.rg-package-strategy h3 {
  font-size: 17px;
}
.rg-choice {
  display: flex;
  gap: 12px;
  border: 1px solid var(--rg-line);
  padding: 15px;
  border-radius: 16px;
  margin-top: 9px;
  cursor: pointer;
}
.rg-choice.selected {
  border-color: #b8c7fa;
  background: #f7f9ff;
}
.rg-choice input {
  width: auto;
  margin-top: 4px;
}
.rg-choice span {
  display: grid;
  gap: 4px;
}
.rg-choice small {
  color: var(--rg-muted);
}
.rg-book-actions {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 28px;
}
.rg-date-strip {
  display: flex;
  gap: 10px;
  overflow: auto;
  padding: 3px 1px 12px;
  scrollbar-width: thin;
}
.rg-date-card {
  min-width: 118px;
  border: 1px solid var(--rg-line);
  background: #fff;
  border-radius: 18px;
  padding: 15px 12px;
  text-align: center;
  color: var(--rg-ink);
}
.rg-date-card b {
  font-size: 24px;
  display: block;
  margin: 5px 0;
}
.rg-date-card small {
  color: var(--rg-muted);
}
.rg-date-card.selected {
  background: var(--rg-brand);
  border-color: var(--rg-brand);
  color: #fff;
}
.rg-date-card.selected small {
  color: rgba(255, 255, 255, 0.75);
}
.rg-time-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 16px;
}
.rg-time {
  border: 1px solid var(--rg-line);
  background: #fff;
  border-radius: 16px;
  min-height: 58px;
  color: var(--rg-ink2);
  font-weight: 850;
}
.rg-time.selected {
  border-color: var(--rg-brand);
  background: #eef2ff;
  color: var(--rg-brand);
}
.rg-time:disabled {
  background: #f1f3f7;
  color: #a4adbd;
  text-decoration: line-through;
}
.rg-selected-sessions {
  margin-top: 18px;
  border: 1px solid var(--rg-line);
  border-radius: 18px;
  padding: 16px;
}
.rg-selected-sessions > div:first-child {
  display: flex;
  justify-content: space-between;
}
.rg-selected-chip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 13px;
  background: #f2f5ff;
}
.rg-selected-chip button {
  border: 0;
  background: none;
  color: var(--rg-danger);
}
.rg-method-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.rg-method {
  border: 1px solid var(--rg-line);
  border-radius: 20px;
  padding: 20px;
  display: flex;
  gap: 14px;
  align-items: center;
  cursor: pointer;
}
.rg-method.selected {
  border: 2px solid var(--rg-brand);
  background: #f2f5ff;
}
.rg-method-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: #eef2ff;
  display: grid;
  place-items: center;
  color: var(--rg-brand);
}
.rg-method span {
  display: grid;
  gap: 4px;
}
.rg-method small {
  color: var(--rg-muted);
}
.rg-hold-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  background: var(--rg-cream);
  border: 1px solid #f0df9c;
  border-radius: 18px;
  padding: 16px;
  margin-bottom: 17px;
}
.rg-hold-box div {
  display: grid;
  gap: 4px;
}
.rg-hold-box small {
  color: #7f7044;
}
.rg-hold-box strong {
  font-size: 23px;
  color: #9b6d00;
  direction: ltr;
}
.rg-payment-box {
  margin-bottom: 18px;
}
.rg-manual-payment {
  border: 1px solid var(--rg-line);
  border-radius: 20px;
  padding: 18px;
  background: #f8faff;
}
.rg-payment-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: start;
}
.rg-payment-head h3 {
  margin: 0 0 5px;
}
.rg-payment-head p {
  margin: 0;
  color: var(--rg-muted);
  font-size: 12px;
}
.rg-copy-actions {
  display: flex;
  gap: 6px;
}
.rg-copy-actions button {
  border: 0;
  background: #e9efff;
  color: var(--rg-brand);
  border-radius: 11px;
  padding: 8px 10px;
  font-weight: 850;
  font-size: 11px;
}
.rg-payment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 15px;
}
.rg-payment-item {
  border: 1px solid var(--rg-line);
  border-radius: 14px;
  padding: 13px;
  background: #fff;
}
.rg-payment-item small {
  display: block;
  color: var(--rg-muted);
  margin-bottom: 6px;
}
.rg-payment-item b {
  font-size: 15px;
  word-break: break-word;
}
.rg-gateway-note {
  border: 1px dashed #bfcaf0;
  background: #f7f9ff;
  border-radius: 18px;
  padding: 18px;
  color: var(--rg-muted);
}
.rg-form-grid-front {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}
.rg-form-grid-front label {
  display: grid;
  gap: 8px;
  font-weight: 850;
  font-size: 13px;
}
.rg-field-full {
  grid-column: 1/-1;
}
.rg-upload {
  border: 1px dashed #bac6e5;
  border-radius: 18px;
  padding: 16px;
  background: #fbfcff;
}
.rg-upload input {
  border: 0;
  padding: 8px 0;
  background: transparent;
}
.rg-upload small {
  color: var(--rg-muted);
}
.rg-check {
  display: flex !important;
  align-items: flex-start;
  grid-template-columns: auto 1fr !important;
  gap: 10px !important;
  font-weight: 500 !important;
  color: var(--rg-ink2);
}
.rg-check input {
  width: 20px !important;
  height: 20px;
  margin-top: 2px;
}
.rg-form-error {
  background: #fff0f2;
  border: 1px solid #f2c2c9;
  color: var(--rg-danger);
  border-radius: 14px;
  padding: 13px;
  margin-top: 14px;
}
.rg-summary-head {
  display: flex;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--rg-line);
  padding-bottom: 17px;
}
.rg-summary-head img {
  width: 54px;
  height: 54px;
  border-radius: 15px;
  object-fit: cover;
}
.rg-summary-head span {
  display: grid;
  gap: 3px;
}
.rg-summary-head small {
  color: var(--rg-muted);
}
.rg-summary-list {
  display: grid;
  gap: 0;
  margin-top: 10px;
}
.rg-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 13px 0;
  border-bottom: 1px solid var(--rg-line);
  font-size: 13px;
}
.rg-summary-row span {
  color: var(--rg-muted);
}
.rg-summary-row b {
  text-align: left;
}
.rg-policy {
  margin-top: 14px;
  background: var(--rg-cream);
  border-radius: 14px;
  padding: 13px;
  color: #766638;
  font-size: 11px;
  line-height: 1.8;
}
.rg-confirmation {
  padding: 72px 0 120px;
  max-width: 760px;
}
.rg-confirm-card {
  text-align: center;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 32px;
  padding: 46px;
  box-shadow: var(--rg-shadow);
}
.rg-confirm-icon {
  width: 86px;
  height: 86px;
  border-radius: 50%;
  background: var(--rg-mint);
  color: var(--rg-success);
  display: grid;
  place-items: center;
  margin: 0 auto 18px;
}
.rg-confirm-card h1 {
  font-size: 36px;
}
.rg-confirm-code {
  background: #f1f4ff;
  border-radius: 16px;
  padding: 15px;
  margin: 22px auto;
  max-width: 360px;
}
.rg-confirm-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 25px;
}
/* Account */
.rg-account-layout {
  padding: 42px 0 100px;
  max-width: 920px;
}
.rg-lookup-card {
  max-width: 500px;
  margin: auto;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 28px;
  padding: 28px;
  box-shadow: var(--rg-shadow-sm);
}
.rg-lookup-card h2 {
  margin-top: 0;
}
.rg-lookup-card p {
  color: var(--rg-muted);
}
.rg-lookup-card form {
  display: grid;
  gap: 15px;
}
.rg-account-dashboard {
  display: grid;
  gap: 20px;
}
.rg-dashboard-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rg-credit-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.rg-credit-card {
  border-radius: 24px;
  padding: 22px;
  background: linear-gradient(145deg, #111d78, #2451ee);
  color: #fff;
}
.rg-credit-card small {
  color: rgba(255, 255, 255, 0.7);
}
.rg-credit-card b {
  display: block;
  font-size: 27px;
  margin: 9px 0;
}
.rg-session-list {
  display: grid;
  gap: 12px;
}
.rg-session-card {
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 22px;
  padding: 20px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 15px;
}
.rg-session-main {
  display: grid;
  gap: 8px;
}
.rg-session-main h3 {
  margin: 0;
}
.rg-session-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--rg-muted);
  font-size: 12px;
}
.rg-status {
  display: inline-block;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 900;
  background: #eef2ff;
  color: var(--rg-brand);
  width: max-content;
}
.rg-status-confirmed,
.rg-status-completed {
  background: var(--rg-mint);
  color: var(--rg-success);
}
.rg-status-cancelled,
.rg-status-rejected {
  background: #fff0f2;
  color: var(--rg-danger);
}
.rg-session-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.rg-session-actions .rg-btn {
  min-height: 39px;
  border-radius: 12px;
  font-size: 11px;
  padding: 0 12px;
}
.rg-account-cards {
  padding: 42px 0 100px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.rg-account-card {
  border: 1px solid var(--rg-line);
  background: #fff;
  border-radius: 24px;
  padding: 23px;
  color: var(--rg-ink);
  display: flex;
  gap: 16px;
  align-items: center;
  text-align: right;
  text-decoration: none;
}
.rg-account-card > .rg-icon {
  width: 38px;
  height: 38px;
  color: var(--rg-brand);
}
.rg-account-card span {
  display: grid;
  gap: 5px;
}
.rg-account-card small {
  color: var(--rg-muted);
}
/* Mobile nav and sheets */
.rg-bottom-nav {
  display: none;
}
.rg-support-fab {
  position: fixed;
  z-index: 75;
  left: 22px;
  bottom: 24px;
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 19px;
  background: linear-gradient(145deg, #08a8e5, #22bce9);
  color: #fff;
  box-shadow: 0 14px 30px rgba(0, 165, 220, 0.3);
  display: grid;
  place-items: center;
}
.rg-mobile-cta {
  display: none;
}
.rg-overlay {
  position: fixed;
  inset: 0;
  background: rgba(6, 15, 42, 0.42);
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  transition: 0.2s;
}
.rg-overlay.open {
  opacity: 1;
  visibility: visible;
}
.rg-drawer,
.rg-sheet {
  position: fixed;
  z-index: 100;
  background: #fff;
  transition: 0.24s;
  box-shadow: var(--rg-shadow);
}
.rg-drawer {
  top: 0;
  right: 0;
  width: min(340px, 88vw);
  height: 100%;
  transform: translateX(105%);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow:hidden;
}
.rg-drawer.open {
  transform: none;
}
.rg-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.rg-drawer-scroll{display:grid;align-content:start;gap:8px;min-height:0;flex:1 1 auto;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.rg-drawer-scroll > button {
  border: 0;
  background: #f7f9ff;
  border-radius: 15px;
  padding: 15px;
  text-align: right;
  color: var(--rg-ink);
  font-weight: 850;
  flex:none;
}
.rg-sheet {
  left: 50%;
  bottom: 0;
  width: min(580px, 100%);
  border-radius: 28px 28px 0 0;
  padding: 12px 24px calc(24px + var(--rg-safe));
  transform: translate(-50%, 110%);
  max-height: 88vh;
  overflow: auto;
}
.rg-sheet.open {
  transform: translate(-50%, 0);
}
.rg-sheet-handle {
  width: 52px;
  height: 5px;
  background: #dce3f0;
  border-radius: 99px;
  margin: 0 auto 16px;
}
.rg-sheet-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}
.rg-sheet-head h2 {
  margin: 0 0 5px;
}
.rg-sheet-head p {
  margin: 0;
  color: var(--rg-muted);
  line-height: 1.7;
}
.rg-sheet form {
  display: grid;
  gap: 14px;
  margin-top: 20px;
}
.rg-support-links {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}
.rg-support-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: var(--rg-ink);
  border: 1px solid var(--rg-line);
  border-radius: 17px;
  padding: 15px;
}
.rg-support-link span {
  display: grid;
  gap: 3px;
}
.rg-support-link small {
  color: var(--rg-muted);
}
.rg-toast {
  position: fixed;
  z-index: 150;
  left: 50%;
  bottom: 25px;
  transform: translate(-50%, 30px);
  opacity: 0;
  background: #07163d;
  color: #fff;
  border-radius: 14px;
  padding: 12px 18px;
  box-shadow: var(--rg-shadow);
  transition: 0.2s;
  max-width: min(90vw, 460px);
  text-align: center;
}
.rg-toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}
/* Responsive */
@media (max-width: 1000px) {
  .rg-desktop-nav {
    display: none;
  }
  .rg-menu-button {
    display: grid;
  }
  .rg-support-button {
    display: none;
  }
  .rg-hero-grid {
    grid-template-columns: 1fr 420px;
    gap: 30px;
  }
  .rg-hero h1 {
    font-size: 48px;
  }
  .rg-therapist-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .rg-profile-hero {
    grid-template-columns: 360px 1fr;
  }
  .rg-profile-facts {
    grid-template-columns: repeat(2, 1fr);
  }
  .rg-booking-layout {
    grid-template-columns: 1fr;
  }
  .rg-book-summary {
    position: static;
    order: -1;
  }
  .rg-package-grid {
    grid-template-columns: 1fr 1fr;
  }
  .rg-package-option:first-child {
    grid-column: 1/-1;
  }
  .rg-account-cards {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 760px) {
  body.rg-app-body.admin-bar .rg-header {
    top: 46px;
  }
  .rg-app {
    padding-bottom: calc(76px + var(--rg-safe));
  }
  .rg-container {
    width: min(100% - 32px, 680px);
  }
  .rg-header-inner {
    height: 82px;
    gap: 10px;
  }
  .rg-brand {
    margin-inline: auto;
  }
  .rg-brand img {
    width: 52px;
    height: 52px;
  }
  .rg-brand strong {
    font-size: 22px;
  }
  .rg-brand small {
    font-size: 12px;
  }
  .rg-menu-button,
  .rg-support-button {
    display: grid;
  }
  .rg-support-button {
    order: initial;
  }
  .rg-icon-button {
    width: 50px;
    height: 50px;
    border-radius: 17px;
  }
  .rg-hero {
    padding: 42px 0 24px;
  }
  .rg-hero-grid {
    display: flex;
    flex-direction: column;
    gap: 30px;
  }
  .rg-hero-copy {
    width: 100%;
    text-align: center;
    padding-inline: 0;
  }
  .rg-eyebrow {
    font-size: 13px;
  }
  .rg-hero h1 {
    font-size: clamp(34px, 9.2vw, 46px);
    line-height: 1.48;
    letter-spacing: -1.2px;
    margin-inline: auto;
    max-width: 640px;
    overflow-wrap: anywhere;
  }
  .rg-hero p {
    font-size: 15px;
    line-height: 2;
    margin-inline: auto;
  }
  .rg-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 24px;
  }
  .rg-btn-lg {
    min-height: 60px;
    border-radius: 20px;
    font-size: 16px;
    width: 100%;
  }
  .rg-trust-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    text-align: right;
    gap: 10px 12px;
    margin-top: 22px;
  }
  .rg-trust-list span:last-child {
    grid-column: 1/-1;
    justify-self: center;
  }
  .rg-featured-wrap {
    width: 100%;
  }
  .rg-featured {
    max-width: 520px;
  }
  .rg-featured-image {
    height: min(110vw, 510px);
  }
  .rg-featured-badge {
    right: 10px;
    top: 20px;
  }
  .rg-featured-overlay {
    inset: auto 14px 14px;
  }
  .rg-quick-card {
    width: calc(100% - 24px);
    margin-top: 18px;
    padding: 20px;
    border-radius: 26px;
  }
  .rg-section-heading-inline {
    display: block;
  }
  .rg-section-heading-inline .rg-text-button {
    margin-top: 8px;
  }
  .rg-quick-card .rg-section-heading h2 {
    font-size: 24px;
  }
  .rg-quick-slots {
    display: flex;
    overflow: auto;
    gap: 10px;
    padding-bottom: 8px;
    scroll-snap-type: x mandatory;
  }
  .rg-slot-card {
    min-width: 210px;
    scroll-snap-align: start;
  }
  .rg-section {
    padding: 55px 0;
  }
  .rg-section-heading h2 {
    font-size: 32px;
  }
  .rg-specialty-grid {
    grid-template-columns: 1fr 1fr;
    gap: 11px;
  }
  .rg-specialty-card {
    min-height: 180px;
    padding: 20px;
  }
  .rg-therapist-grid {
    grid-template-columns: 1fr;
  }
  .rg-therapist-photo {
    height: min(95vw, 450px);
  }
  .rg-guidance {
    padding: 28px 22px;
    display: grid;
    border-radius: 26px;
    text-align: center;
  }
  .rg-guidance h2 {
    font-size: 28px;
  }
  .rg-guidance-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .rg-subhero {
    padding: 42px 0 34px;
  }
  .rg-subhero h1 {
    font-size: 34px;
  }
  .rg-list-layout {
    display: block;
    padding-top: 24px;
  }
  .rg-filter-panel {
    position: static;
    margin-bottom: 20px;
    grid-template-columns: 1fr 1fr;
  }
  .rg-filter-panel label:first-child,
  .rg-filter-panel .rg-btn {
    grid-column: 1/-1;
  }
  .rg-profile {
    padding-top: 22px;
  }
  .rg-profile-hero {
    display: block;
  }
  .rg-profile-media {
    position: static;
  }
  .rg-profile-photo {
    height: min(125vw, 620px);
    border-radius: 26px;
  }
  .rg-profile-main {
    margin-top: 16px;
  }
  .rg-profile-card {
    padding: 22px;
    border-radius: 24px;
  }
  .rg-profile-title h1 {
    font-size: 34px;
  }
  .rg-profile-top {
    display: block;
  }
  .rg-profile-score {
    margin-top: 15px;
    width: max-content;
  }
  .rg-profile-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .rg-profile-facts {
    grid-template-columns: 1fr 1fr;
  }
  .rg-mobile-bookbar {
    display: block;
    position: sticky;
    bottom: calc(70px + var(--rg-safe));
    z-index: 50;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(16px);
    padding: 10px 0;
    border-top: 1px solid var(--rg-line);
  }
  .rg-booking-shell {
    padding-top: 22px;
  }
  .rg-booking-head h1 {
    font-size: 30px;
  }
  .rg-booking-head p {
    font-size: 13px;
  }
  .rg-stepper {
    padding: 0 10px;
    margin-bottom: 23px;
  }
  .rg-stepper span {
    width: 43px;
    height: 43px;
    font-size: 15px;
  }
  .rg-stepper i {
    margin-top: 20px;
  }
  .rg-stepper span small {
    top: 49px;
  }
  .rg-booking-layout {
    margin-top: 50px;
  }
  .rg-booking-card {
    padding: 20px;
    border-radius: 25px;
  }
  .rg-book-summary {
    padding: 18px;
    border-radius: 23px;
  }
  .rg-card-heading h2 {
    font-size: 25px;
  }
  .rg-package-grid {
    grid-template-columns: 1fr;
  }
  .rg-package-option:first-child {
    grid-column: auto;
  }
  .rg-package-option {
    min-height: auto;
  }
  .rg-time-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .rg-method-grid {
    grid-template-columns: 1fr;
  }
  .rg-payment-head {
    display: block;
  }
  .rg-copy-actions {
    margin-top: 12px;
  }
  .rg-payment-grid {
    grid-template-columns: 1fr;
  }
  .rg-form-grid-front {
    grid-template-columns: 1fr;
  }
  .rg-book-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .rg-book-actions .rg-btn {
    min-width: 0;
    padding-inline: 12px;
  }
  .rg-confirm-card {
    padding: 30px 20px;
  }
  .rg-confirm-card h1 {
    font-size: 30px;
  }
  .rg-confirm-actions {
    display: grid;
  }
  .rg-credit-list {
    grid-template-columns: 1fr;
  }
  .rg-session-card {
    grid-template-columns: 1fr;
  }
  .rg-session-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .rg-account-cards {
    grid-template-columns: 1fr;
  }
  .rg-bottom-nav {
    position: fixed;
    z-index: 70;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(70px + var(--rg-safe));
    padding-bottom: var(--rg-safe);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(17px);
    border-top: 1px solid var(--rg-line);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
  }
  .rg-bottom-nav button {
    border: 0;
    background: none;
    color: #46536d;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 4px;
    font-size: 11px;
    padding: 5px;
  }
  .rg-bottom-nav button.active {
    color: var(--rg-brand);
    font-weight: 900;
  }
  .rg-bottom-nav .rg-icon {
    width: 26px;
    height: 26px;
  }
  .rg-support-fab {
    width: 54px;
    height: 54px;
    left: 16px;
    bottom: calc(84px + var(--rg-safe));
  }
  .rg-mobile-cta {
    position: fixed;
    z-index: 69;
    bottom: calc(80px + var(--rg-safe));
    right: 16px;
    left: 80px;
    height: 56px;
    border: 0;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--rg-brand), var(--rg-brand2));
    color: #fff;
    font-weight: 900;
    box-shadow: 0 13px 30px rgba(30, 70, 230, 0.25);
  }
  .rg-mobile-cta:not(.hidden) {
    display: block;
  }
  .rg-toast {
    bottom: calc(85px + var(--rg-safe));
  }
}
@media (max-width: 420px) {
  .rg-container {
    width: calc(100% - 24px);
  }
  .rg-header-inner {
    width: calc(100% - 22px);
  }
  .rg-brand {
    gap: 8px;
  }
  .rg-brand img {
    width: 49px;
    height: 49px;
  }
  .rg-brand strong {
    font-size: 20px;
  }
  .rg-brand small {
    font-size: 10.5px;
  }
  .rg-icon-button {
    width: 46px;
    height: 46px;
  }
  .rg-hero h1 {
    font-size: clamp(32px, 9.4vw, 40px);
    line-height: 1.5;
  }
  .rg-hero p {
    font-size: 14px;
  }
  .rg-trust-list {
    font-size: 11.5px;
  }
  .rg-specialty-grid {
    grid-template-columns: 1fr;
  }
  .rg-specialty-card {
    min-height: 160px;
  }
  .rg-filter-panel {
    grid-template-columns: 1fr;
  }
  .rg-profile-facts {
    grid-template-columns: 1fr 1fr;
  }
  .rg-date-card {
    min-width: 105px;
  }
  .rg-time-grid {
    grid-template-columns: 1fr 1fr;
  }
  .rg-booking-card {
    padding: 17px;
  }
  .rg-book-actions {
    gap: 8px;
  }
  .rg-book-actions .rg-btn {
    font-size: 13px;
  }
  .rg-stepper span {
    width: 38px;
    height: 38px;
  }
  .rg-stepper i {
    margin-top: 18px;
  }
  .rg-stepper span small {
    font-size: 9px;
    top: 44px;
  }
}
@media (max-width: 782px) {
  body.rg-app-body.admin-bar {
    padding-top: 0;
  }
  body.rg-app-body.admin-bar #wpadminbar {
    position: fixed;
  }
}
.rg-dynamic-picture img {
  object-position: var(--rg-dx, 50%) var(--rg-dy, 40%) !important;
  transform: scale(var(--rg-dz, 1));
  transform-origin: center;
  transition: transform 0.2s;
}
@media (max-width: 760px) {
  .rg-dynamic-picture img {
    object-position: var(--rg-mx, 50%) var(--rg-my, 38%) !important;
    transform: scale(var(--rg-mz, 1));
  }
}

/* =========================================================
   Ravangram 9 — standalone, conflict-proof presentation layer
   ========================================================= */
html, body.rg-app-body {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip !important;
  background: #f6f8ff !important;
}
body.rg-app-body {
  direction: rtl;
  color: var(--rg-ink) !important;
  font-family: Vazirmatn, IRANSansX, "Segoe UI", Tahoma, Arial, sans-serif !important;
}
.rg-app,
.rg-app * {
  box-sizing: border-box;
}
.rg-app {
  width: 100%;
  min-width: 0;
  max-width: 100vw;
  overflow-x: clip;
  isolation: isolate;
  background: var(--rg-bg);
}
.rg-app button,
.rg-app input,
.rg-app select,
.rg-app textarea {
  font-family: inherit !important;
}
.rg-app button {
  -webkit-appearance: none;
  appearance: none;
}
.rg-header {
  background: rgba(255,255,255,.96) !important;
  border-color: var(--rg-line) !important;
}
.rg-brand {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  min-width: 0;
}
.rg-brand img {
  flex: 0 0 auto;
  background: #102bc3;
}
.rg-icon-button {
  background: #fff !important;
  border: 1px solid var(--rg-line) !important;
  color: var(--rg-ink) !important;
  box-shadow: none !important;
}
.rg-btn-primary {
  color: #fff !important;
  background: linear-gradient(135deg, var(--rg-brand), var(--rg-brand2)) !important;
  border-color: transparent !important;
}
.rg-btn-secondary {
  color: var(--rg-ink) !important;
  background: #fff !important;
  border-color: var(--rg-line) !important;
}
.rg-text-button {
  background: transparent !important;
  color: var(--rg-brand) !important;
}
.rg-hero-grid > *,
.rg-booking-layout > *,
.rg-profile-hero > *,
.rg-list-layout > * {
  min-width: 0;
}
.rg-hero-copy {
  padding-inline: 2px;
}
.rg-hero h1 {
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}
.rg-hero p {
  text-wrap: pretty;
}
.rg-featured-image,
.rg-profile-photo,
.rg-therapist-photo {
  background: #edf2ff;
}
.rg-featured-image picture,
.rg-featured-image img,
.rg-profile-photo picture,
.rg-profile-photo img,
.rg-therapist-photo picture,
.rg-therapist-photo img {
  max-width: none;
}
.rg-featured-overlay {
  pointer-events: none;
}
.rg-section-heading h2,
.rg-card-heading h2,
.rg-booking-head h1,
.rg-profile-title h1 {
  text-wrap: balance;
}
.rg-quick-card,
.rg-booking-card,
.rg-book-summary,
.rg-profile-card,
.rg-specialty-card,
.rg-therapist-card {
  overflow: hidden;
}
.rg-book-summary {
  order: initial;
}
.rg-package-option,
.rg-method,
.rg-date-card,
.rg-time,
.rg-slot-card {
  color: var(--rg-ink) !important;
}
.rg-package-option:disabled,
.rg-time:disabled,
.rg-btn:disabled {
  opacity: .48 !important;
}
.rg-runtime-error {
  position: fixed;
  z-index: 9999;
  top: 14px;
  left: 14px;
  right: 14px;
  max-width: 720px;
  margin: auto;
  padding: 14px 18px;
  border-radius: 15px;
  color: #7f1d1d;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  box-shadow: var(--rg-shadow-sm);
  text-align: center;
  font-weight: 800;
}

@media (min-width: 761px) {
  .rg-featured-image { height: 440px; }
  .rg-profile-photo { height: 610px; }
  .rg-book-summary { order: initial !important; }
}

@media (max-width: 1000px) {
  .rg-book-summary {
    order: initial !important;
    position: static !important;
  }
}

@media (max-width: 760px) {
  html, body.rg-app-body { overflow-x: hidden !important; }
  .rg-app { padding-bottom: calc(78px + var(--rg-safe)); }
  .rg-container { width: calc(100% - 28px); max-width: 680px; }
  .rg-header-inner {
    width: calc(100% - 24px);
    height: 76px;
    gap: 8px;
  }
  .rg-brand { margin-inline: auto; gap: 8px; justify-content: center; }
  .rg-brand img { width: 48px; height: 48px; border-radius: 15px; }
  .rg-brand strong { font-size: 20px; line-height: 1.2; }
  .rg-brand small { font-size: 10px; line-height: 1.5; white-space: nowrap; }
  .rg-icon-button { width: 48px; height: 48px; border-radius: 16px; padding: 0 !important; }
  .rg-hero { padding: 34px 0 20px; }
  .rg-hero-grid { gap: 24px; }
  .rg-hero-copy { padding-inline: 4px; }
  .rg-eyebrow { margin-bottom: 14px; font-size: 13px; }
  .rg-hero h1 {
    font-size: clamp(31px, 8.8vw, 40px);
    line-height: 1.48;
    letter-spacing: -.8px;
    max-width: 620px;
    margin: 0 auto 18px;
    padding-inline: 2px;
  }
  .rg-hero p {
    max-width: 600px;
    font-size: 14.5px;
    line-height: 2;
  }
  .rg-hero-actions { gap: 11px; margin-top: 22px; }
  .rg-btn-lg { min-height: 58px; border-radius: 19px; font-size: 15.5px; }
  .rg-trust-list { margin-top: 18px; gap: 8px 10px; }
  .rg-featured { width: 100%; padding: 10px; border-radius: 28px; }
  .rg-featured-image { height: min(112vw, 520px); border-radius: 22px; }
  .rg-featured-overlay { inset: auto 10px 10px; padding: 72px 18px 18px; border-radius: 0 0 20px 20px; }
  .rg-featured-overlay h2 { font-size: 22px; }
  .rg-featured-badge { right: 14px; top: 18px; max-width: calc(100% - 28px); }
  .rg-quick-card { width: calc(100% - 24px); padding: 19px; margin-top: 16px; border-radius: 25px; }
  .rg-quick-card .rg-section-heading h2 { font-size: 23px; line-height: 1.55; }
  .rg-quick-card .rg-section-heading p { font-size: 13px; }
  .rg-quick-slots { margin-inline: -3px; padding-inline: 3px; }
  .rg-slot-card { min-width: min(74vw, 230px); padding: 16px; border-radius: 18px; }
  .rg-section { padding: 48px 0; }
  .rg-section-heading { margin-bottom: 22px; }
  .rg-section-heading h2 { font-size: 29px; line-height: 1.5; }
  .rg-section-heading p { font-size: 14px; line-height: 1.9; }
  .rg-specialty-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .rg-specialty-card { min-height: 168px; padding: 17px; border-radius: 22px; }
  .rg-specialty-card h3 { font-size: 16px; line-height: 1.6; }
  .rg-specialty-card p { font-size: 12px; }
  .rg-therapist-photo { height: min(105vw, 480px); }
  .rg-guidance { padding: 26px 20px; }
  .rg-subhero h1 { font-size: 31px; }
  .rg-profile-photo { height: min(126vw, 610px); }
  .rg-profile-card { padding: 20px; }
  .rg-profile-title h1 { font-size: 31px; }
  .rg-profile-main { margin-top: 14px; }
  .rg-mobile-bookbar { bottom: calc(70px + var(--rg-safe)); }
  .rg-booking-shell { padding: 24px 0 110px; }
  .rg-booking-head { gap: 12px; align-items: flex-start; margin-bottom: 22px; }
  .rg-booking-head .rg-icon-button { flex: 0 0 48px; }
  .rg-booking-head h1 { font-size: 30px; line-height: 1.45; }
  .rg-booking-head p { font-size: 13px; line-height: 1.8; }
  .rg-stepper { width: 100%; max-width: 560px; margin-bottom: 26px; padding-inline: 4px; }
  .rg-stepper span { width: 42px; height: 42px; }
  .rg-stepper span small { top: 47px; }
  .rg-stepper i { margin-top: 19px; }
  .rg-booking-layout { display: flex; flex-direction: column; gap: 16px; margin-top: 48px; }
  .rg-booking-card { order: 1; width: 100%; padding: 19px; border-radius: 24px; }
  .rg-book-summary { order: 2 !important; width: 100%; padding: 18px; border-radius: 23px; }
  .rg-card-heading h2 { font-size: 24px; line-height: 1.55; }
  .rg-card-heading p { font-size: 13.5px; }
  .rg-package-grid { gap: 10px; }
  .rg-package-option { padding: 18px; border-radius: 19px; }
  .rg-date-strip { padding-bottom: 8px; }
  .rg-date-card { min-width: 102px; }
  .rg-time-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
  .rg-time { min-width: 0; padding-inline: 4px; }
  .rg-book-actions { gap: 9px; margin-top: 24px; }
  .rg-book-actions .rg-btn { min-height: 56px; border-radius: 18px; }
  .rg-payment-box, .rg-hold-box { border-radius: 20px; }
  .rg-support-fab { width: 50px; height: 50px; left: 14px; bottom: calc(84px + var(--rg-safe)); }
  .rg-bottom-nav { height: calc(72px + var(--rg-safe)); }
  .rg-bottom-nav button { font-size: 11px; }
  .rg-bottom-nav .rg-icon { width: 25px; height: 25px; }
  .rg-main { min-width: 0; }
}

@media (max-width: 420px) {
  .rg-container { width: calc(100% - 22px); }
  .rg-header-inner { width: calc(100% - 18px); }
  .rg-brand span { gap: 1px; }
  .rg-brand strong { font-size: 18px; }
  .rg-brand small { display: none; }
  .rg-brand img { width: 46px; height: 46px; }
  .rg-icon-button { width: 45px; height: 45px; }
  .rg-hero h1 { font-size: clamp(29px, 9vw, 36px); }
  .rg-hero p { font-size: 13.5px; }
  .rg-trust-list { grid-template-columns: 1fr; text-align: right; }
  .rg-trust-list span:last-child { grid-column: auto; justify-self: auto; }
  .rg-specialty-grid { grid-template-columns: 1fr; }
  .rg-specialty-card { min-height: 150px; }
  .rg-time-grid { grid-template-columns: 1fr 1fr; }
  .rg-booking-card { padding: 16px; }
  .rg-book-actions .rg-btn { font-size: 12.5px; padding-inline: 8px; }
}

/* =========================================================
   Ravangram 9 — visual polish, typography and trust pages
   ========================================================= */
:root {
  --rg-ink: #081a43;
  --rg-ink2: #31446f;
  --rg-muted: #667691;
  --rg-brand: #2453ee;
  --rg-brand2: #4975ff;
  --rg-brand-soft: #eaf0ff;
  --rg-line: #dfe7f6;
  --rg-bg: #f6f8fd;
  --rg-shadow: 0 22px 70px rgba(22, 55, 146, 0.12);
  --rg-shadow-sm: 0 10px 34px rgba(22, 55, 146, 0.09);
}
body.rg-app-body {
  font-family: Vazirmatn, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, Arial, sans-serif !important;
  font-size: 16px;
  line-height: 1.85;
  text-rendering: optimizeLegibility;
}
.rg-app h1,.rg-app h2,.rg-app h3,.rg-app h4,.rg-app b,.rg-app strong {
  letter-spacing: -.025em;
}
.rg-header-inner { height: 86px; }
.rg-header { box-shadow: 0 1px 0 rgba(26,54,120,.04); }
.rg-desktop-nav button { font-size: 14px; }
.rg-brand strong { font-weight: 900; }
.rg-brand small { font-weight: 500; }
.rg-hero {
  position: relative;
  overflow: hidden;
  padding: 72px 0 54px;
  background:
    radial-gradient(circle at 12% 15%, rgba(73,117,255,.12), transparent 30%),
    radial-gradient(circle at 90% 5%, rgba(58,198,216,.12), transparent 32%),
    linear-gradient(180deg,#fbfcff 0%,#f6f8fd 100%);
}
.rg-hero:before,.rg-hero:after {
  content:"";
  position:absolute;
  border-radius:50%;
  filter: blur(2px);
  pointer-events:none;
}
.rg-hero:before { width:310px;height:310px;right:-170px;bottom:-180px;background:rgba(36,83,238,.07); }
.rg-hero:after { width:210px;height:210px;left:-120px;top:50px;background:rgba(54,211,153,.08); }
.rg-hero-copy { position:relative;z-index:1; }
.rg-hero h1 {
  font-weight: 900;
  font-size: clamp(43px,5vw,68px);
  line-height: 1.35;
  max-width: 720px;
  margin-bottom: 22px;
}
.rg-hero p { font-size:17px;line-height:2;max-width:680px;color:var(--rg-ink2); }
.rg-eyebrow { font-weight:850;background:#edf2ff;color:var(--rg-brand);border:1px solid #dbe5ff;padding:8px 13px;border-radius:999px;width:max-content; }
.rg-hero-actions .rg-btn { min-width:190px; }
.rg-trust-list span { font-weight:650; }
.rg-featured { box-shadow:0 30px 80px rgba(24,52,133,.17);border:1px solid rgba(255,255,255,.9); }
.rg-featured-overlay { backdrop-filter: blur(2px); }
.rg-quick-card { transform:translateY(-12px);box-shadow:var(--rg-shadow); }
.rg-section { padding:76px 0; }
.rg-section-heading { max-width:760px; }
.rg-section-heading h2 { font-weight:900;font-size:clamp(30px,3vw,45px);line-height:1.45; }
.rg-section-heading p { font-size:16px;color:var(--rg-muted); }
.rg-kicker { letter-spacing:0;font-weight:900; }
.rg-specialty-card,.rg-therapist-card,.rg-profile-card,.rg-booking-card,.rg-book-summary,.rg-content-card,.rg-contact-card {
  border-color:rgba(217,226,245,.95);
}
.rg-specialty-card { transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.rg-specialty-card:hover { transform:translateY(-4px);box-shadow:var(--rg-shadow-sm);border-color:#cad7f9; }
.rg-therapist-card { box-shadow:0 14px 44px rgba(22,55,146,.075); }
.rg-therapist-card:hover { box-shadow:0 24px 60px rgba(22,55,146,.13);transform:translateY(-3px); }
.rg-btn { font-weight:800;letter-spacing:-.01em; }
.rg-btn-primary { box-shadow:0 13px 33px rgba(36,83,238,.25)!important; }
.rg-text-link,.rg-inline-link {
  border:0;background:transparent;color:var(--rg-brand);font:inherit;font-weight:800;padding:0;text-decoration:none;cursor:pointer;
}
.rg-text-link:hover,.rg-inline-link:hover { text-decoration:underline; }
.rg-about-preview { overflow:hidden; }
.rg-about-grid { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:64px;align-items:center; }
.rg-about-copy h2 { font-size:clamp(32px,4vw,50px);line-height:1.45;margin:12px 0 18px;font-weight:900; }
.rg-about-copy p { color:var(--rg-ink2);font-size:17px;line-height:2.1;max-width:680px; }
.rg-about-visual { display:grid;place-items:center;min-height:390px;position:relative; }
.rg-about-orbit { width:330px;height:330px;border-radius:50%;background:linear-gradient(145deg,#fff,#edf2ff);border:1px solid #dce6fa;box-shadow:var(--rg-shadow);display:grid;place-items:center;position:relative; }
.rg-about-orbit:before,.rg-about-orbit:after { content:"";position:absolute;border-radius:50%;border:1px dashed #bccbf5;inset:35px; }
.rg-about-orbit:after { inset:75px;border-style:solid;border-color:#d9e3ff; }
.rg-about-orbit strong { z-index:2;font-size:30px;color:var(--rg-brand);font-weight:900; }
.rg-about-orbit span { position:absolute;z-index:3;background:#fff;border:1px solid var(--rg-line);box-shadow:var(--rg-shadow-sm);padding:10px 14px;border-radius:999px;font-size:13px;font-weight:800; }
.rg-about-orbit span:nth-child(1){top:18px;right:40px}.rg-about-orbit span:nth-child(2){bottom:58px;right:-18px}.rg-about-orbit span:nth-child(3){bottom:32px;left:4px}
.rg-process-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.rg-process-grid article { background:#fff;border:1px solid var(--rg-line);border-radius:25px;padding:28px;position:relative;box-shadow:0 8px 30px rgba(24,55,141,.055); }
.rg-process-grid article>span { width:46px;height:46px;border-radius:15px;background:var(--rg-brand-soft);color:var(--rg-brand);display:grid;place-items:center;font-weight:900;font-size:18px;margin-bottom:22px; }
.rg-process-grid h3 { font-size:21px;margin:0 0 10px;font-weight:900; }
.rg-process-grid p { margin:0;color:var(--rg-muted);line-height:1.95; }
.rg-trust-panel { background:linear-gradient(135deg,#0d235a,#163a92);color:#fff;border-radius:34px;padding:48px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center;box-shadow:0 30px 80px rgba(10,29,78,.22); }
.rg-trust-panel .rg-kicker { color:#b9c9ff; }
.rg-trust-panel h2 { font-size:clamp(30px,3.5vw,46px);line-height:1.5;margin:10px 0; }
.rg-trust-panel>div>p { color:#dbe5ff;line-height:2; }
.rg-trust-cards { display:grid;gap:12px; }
.rg-trust-cards article { display:grid;grid-template-columns:46px 1fr;column-gap:14px;align-items:center;padding:17px 18px;border-radius:20px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13); }
.rg-trust-cards .rg-icon { grid-row:1/3;width:28px;height:28px;color:#8dd9ff;margin:auto; }
.rg-trust-cards b { font-size:16px; }.rg-trust-cards small { color:#dce6ff;line-height:1.7; }
.rg-faq-section { background:linear-gradient(180deg,#f9fbff,#f2f6ff); }
.rg-faq-list { max-width:900px;margin-inline:auto;display:grid;gap:12px; }
.rg-faq-list details { background:#fff;border:1px solid var(--rg-line);border-radius:20px;padding:0 22px;box-shadow:0 7px 26px rgba(24,55,141,.05); }
.rg-faq-list summary { list-style:none;cursor:pointer;padding:20px 0;font-weight:850;font-size:17px;position:relative;padding-left:34px; }
.rg-faq-list summary::-webkit-details-marker { display:none; }
.rg-faq-list summary:after { content:"+";position:absolute;left:2px;top:17px;width:28px;height:28px;display:grid;place-items:center;border-radius:10px;background:var(--rg-brand-soft);color:var(--rg-brand);font-size:20px; }
.rg-faq-list details[open] summary:after { content:"−"; }
.rg-faq-list p { color:var(--rg-muted);margin:-4px 0 20px;line-height:2; }
.rg-support-hours { display:block;color:var(--rg-muted);margin-top:8px;font-weight:600; }
.rg-privacy-note { display:flex;align-items:flex-start;gap:10px;padding:13px 14px;background:#f4f7ff;border:1px solid #dfe7fa;border-radius:15px;color:var(--rg-muted);font-size:13px;line-height:1.8; }
.rg-privacy-note .rg-icon { flex:0 0 21px;color:var(--rg-brand);margin-top:2px; }
.rg-meeting-link { display:inline-flex;margin-top:12px;color:#fff;background:var(--rg-brand);border-radius:13px;padding:10px 14px;text-decoration:none;font-weight:800; }
.rg-content-hero { padding:78px 0 64px;background:radial-gradient(circle at 10% 20%,rgba(73,117,255,.12),transparent 30%),linear-gradient(180deg,#fbfcff,#f3f7ff);border-bottom:1px solid var(--rg-line); }
.rg-content-hero h1 { font-size:clamp(38px,5vw,62px);line-height:1.4;margin:12px 0 16px;font-weight:900;max-width:880px; }
.rg-content-hero p { max-width:760px;color:var(--rg-ink2);font-size:17px;line-height:2; }
.rg-content-layout { max-width:940px;padding-block:54px 88px; }
.rg-content-card { background:#fff;border:1px solid var(--rg-line);border-radius:30px;padding:42px;box-shadow:var(--rg-shadow-sm);font-size:16px;line-height:2.15;color:var(--rg-ink2); }
.rg-content-card h2 { color:var(--rg-ink);font-size:25px;margin:32px 0 10px;font-weight:900; }.rg-content-card h2:first-child{margin-top:0}
.rg-content-card ul { padding-right:22px; }.rg-content-card li { margin:8px 0; }
.rg-value-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:30px; }
.rg-value-grid div { border:1px solid var(--rg-line);background:#f8faff;border-radius:20px;padding:20px;display:grid;gap:8px; }.rg-value-grid b{color:var(--rg-brand);font-size:18px}.rg-value-grid span{font-size:14px;line-height:1.9}
.rg-alert { padding:16px 18px;border-radius:17px;margin-top:28px; }.rg-alert-soft{background:#fff5e8;border:1px solid #f7dfb9;color:#79531a}
.rg-contact-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-block:54px 90px; }
.rg-contact-card { min-height:210px;background:#fff;border:1px solid var(--rg-line);border-radius:26px;padding:28px;box-shadow:var(--rg-shadow-sm);display:flex;flex-direction:column;align-items:flex-start;gap:12px; }
.rg-contact-card b { font-size:21px;font-weight:900; }.rg-contact-card a{color:var(--rg-brand);font-size:17px;font-weight:800;text-decoration:none}.rg-contact-card small{color:var(--rg-muted);margin-top:auto}
.rg-footer { background:#07183e;color:#fff;padding:58px 0 calc(24px + var(--rg-safe)); }
.rg-footer-grid { display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:38px; }
.rg-footer .rg-brand { color:#fff;justify-content:flex-start; }.rg-footer .rg-brand small{color:#b9c7e7}.rg-footer .rg-brand img{box-shadow:none}
.rg-footer-brand p { color:#b9c7e7;max-width:350px;line-height:2;margin-top:18px; }
.rg-footer h3 { margin:4px 0 16px;font-size:16px;color:#fff; }.rg-footer button{display:block;border:0;background:transparent;color:#c9d4ee;padding:5px 0;font:inherit;cursor:pointer;text-align:right}.rg-footer button:hover{color:#fff}
.rg-footer p { color:#c9d4ee;margin:5px 0; }.rg-footer .rg-text-link{color:#95b3ff}
.rg-footer-bottom { border-top:1px solid rgba(255,255,255,.12);margin-top:42px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;color:#91a3c9;font-size:12px; }
.rg-meet-form { display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:5px;min-width:270px; }.rg-meet-form input{min-width:0;width:100%}

@media (max-width: 1000px) {
  .rg-about-grid,.rg-trust-panel { grid-template-columns:1fr; }
  .rg-about-visual { min-height:330px; }
  .rg-footer-grid { grid-template-columns:1.4fr 1fr 1fr; }.rg-footer-grid>div:last-child{grid-column:1/-1}
}
@media (max-width: 760px) {
  body.rg-app-body { font-size:15px; }
  .rg-header-inner { height:74px; }
  .rg-hero { padding:34px 0 26px; }
  .rg-hero h1 { font-size:clamp(30px,9vw,39px);line-height:1.5;margin-bottom:16px; }
  .rg-hero p { font-size:14px;line-height:2; }
  .rg-eyebrow { font-size:12px;padding:7px 11px; }
  .rg-hero-actions .rg-btn { width:100%;min-width:0; }
  .rg-section { padding:50px 0; }
  .rg-section-heading h2,.rg-about-copy h2 { font-size:28px;line-height:1.55; }
  .rg-about-grid { gap:28px; }.rg-about-copy p{font-size:14px}.rg-about-visual{min-height:280px}.rg-about-orbit{width:255px;height:255px}.rg-about-orbit span{font-size:11px;padding:8px 10px}.rg-about-orbit strong{font-size:24px}.rg-about-orbit span:nth-child(2){right:-8px}
  .rg-process-grid { grid-template-columns:1fr;gap:10px; }.rg-process-grid article{padding:22px;border-radius:21px}.rg-process-grid article>span{margin-bottom:14px}
  .rg-trust-panel { padding:25px 20px;border-radius:26px;gap:22px; }.rg-trust-panel h2{font-size:28px}.rg-trust-cards article{padding:14px}
  .rg-faq-list details { border-radius:17px;padding:0 16px; }.rg-faq-list summary{font-size:15px;padding:17px 0 17px 32px}.rg-faq-list summary:after{top:14px}
  .rg-content-hero { padding:46px 0 38px; }.rg-content-hero h1{font-size:32px;line-height:1.5}.rg-content-hero p{font-size:14px}.rg-content-layout{padding-block:28px 70px}.rg-content-card{padding:22px 18px;border-radius:23px;font-size:14px;line-height:2}.rg-content-card h2{font-size:21px}.rg-value-grid{grid-template-columns:1fr}
  .rg-contact-grid { grid-template-columns:1fr;padding-block:28px 70px;gap:11px; }.rg-contact-card{min-height:160px;padding:22px;border-radius:22px}
  .rg-footer { padding-top:42px;padding-bottom:calc(90px + var(--rg-safe)); }.rg-footer-grid{grid-template-columns:1fr 1fr;gap:28px 18px}.rg-footer-brand{grid-column:1/-1}.rg-footer-grid>div:last-child{grid-column:auto}.rg-footer-bottom{flex-direction:column;line-height:1.8}
}
@media (max-width:420px) {
  .rg-about-orbit { width:230px;height:230px; }.rg-about-orbit span:nth-child(1){right:18px}.rg-about-orbit span:nth-child(3){left:-3px}
  .rg-footer-grid { grid-template-columns:1fr; }.rg-footer-grid>div:last-child{grid-column:auto}
}

/* Secure account access */
.rg-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border:1px solid var(--rg-border);background:#f4f7ff;border-radius:16px;margin:0 0 22px}.rg-auth-tabs button{border:0;background:transparent;border-radius:12px;padding:12px 10px;color:var(--rg-muted);font:inherit;font-weight:700;cursor:pointer}.rg-auth-tabs button.active{background:#fff;color:var(--rg-primary);box-shadow:0 7px 20px rgba(29,78,216,.1)}.rg-auth-pane form+form{margin-top:14px}.rg-form-note{margin-top:14px;padding:12px 14px;border-radius:13px;background:#edfdf5;color:#166534;font-size:14px;font-weight:600;line-height:1.8}.rg-auth-pane .rg-text-button{margin-top:8px;text-align:center}

/* =========================================================
   Ravangram 10 — secure client portal and session management
   ========================================================= */
.rg-portal-subhero {
  background:
    radial-gradient(circle at 86% 20%, rgba(52, 95, 255, 0.12), transparent 29%),
    linear-gradient(180deg, #f8faff 0%, #f3f6ff 100%);
}
.rg-portal-layout {
  width: min(1240px, calc(100% - 36px));
  max-width: 1240px;
}
.rg-auth-brand {
  display: flex;
  align-items: center;
  gap: 13px;
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--rg-line);
}
.rg-auth-brand img {
  width: 52px;
  height: 52px;
  border-radius: 17px;
  box-shadow: 0 9px 25px rgba(27, 70, 231, 0.18);
}
.rg-auth-brand > div {
  display: grid;
  gap: 4px;
}
.rg-auth-brand b { font-size: 17px; }
.rg-auth-brand small { color: var(--rg-muted); line-height: 1.75; }
.rg-auth-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  background: #f2f5fc;
  padding: 5px;
  border-radius: 15px;
  margin-bottom: 22px;
}
.rg-auth-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--rg-muted);
  font-size: 12px;
  font-weight: 800;
  padding: 7px 8px;
}
.rg-auth-tabs button.active {
  background: #fff;
  color: var(--rg-brand);
  box-shadow: 0 5px 16px rgba(20, 55, 145, 0.09);
}
.rg-auth-pane h2 { margin: 0 0 7px; font-size: 24px; }
.rg-auth-pane > p { margin: 0 0 20px; font-size: 13px; line-height: 1.9; }
.rg-auth-fallback {
  border-top: 1px solid var(--rg-line);
  padding-top: 17px;
  margin-top: 18px;
}
.rg-auth-fallback summary {
  color: var(--rg-brand);
  font-weight: 800;
  font-size: 12px;
  cursor: pointer;
  margin-bottom: 15px;
}
.rg-remember { margin: 0; }
.rg-security-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border-radius: 15px;
  background: #f5f8ff;
  color: #63718e;
  padding: 13px 14px;
  margin-top: 20px;
  font-size: 11px;
  line-height: 1.8;
}
.rg-security-note .rg-icon { flex: 0 0 20px; width: 20px; height: 20px; color: var(--rg-brand); }
.rg-profile-setup-inline {
  margin: 15px auto;
  max-width: 490px;
  border-radius: 14px;
  background: var(--rg-cream);
  color: #745d22;
  padding: 11px 14px;
  font-size: 12px;
  font-weight: 750;
}
.rg-portal-head {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-radius: 28px;
  padding: 23px 26px;
  color: #fff;
  background:
    radial-gradient(circle at 15% 0, rgba(255,255,255,.18), transparent 35%),
    linear-gradient(125deg, #111d78, #1e4bed 67%, #557bff);
  box-shadow: 0 20px 50px rgba(27, 70, 231, .18);
}
.rg-portal-head:after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  left: -56px;
  bottom: -130px;
}
.rg-portal-user,
.rg-portal-head-actions {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 13px;
}
.rg-avatar {
  width: 58px;
  height: 58px;
  border-radius: 19px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.24);
  font-size: 24px;
  font-weight: 900;
}
.rg-portal-user h2 { margin: 0; color: #fff; font-size: 22px; }
.rg-portal-user p { margin: 4px 0 0; color: rgba(255,255,255,.72); font-size: 12px; }
.rg-portal-head .rg-icon-button,
.rg-portal-head .rg-text-button { color: #fff; }
.rg-notice-button { position: relative; }
.rg-badge {
  position: absolute;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #ff4968;
  color: #fff;
  font-size: 9px;
  font-weight: 900;
  top: -5px;
  left: -5px;
  box-shadow: 0 3px 10px rgba(197,63,82,.28);
}
.rg-profile-setup {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #f0dc9d;
  background: linear-gradient(110deg, #fff9e8, #fff4cc);
  color: #715713;
  border-radius: 20px;
  padding: 18px 20px;
}
.rg-profile-setup b { display: block; margin-bottom: 4px; }
.rg-profile-setup p { margin: 0; color: #8e742f; font-size: 12px; }
.rg-portal-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 19px;
  padding: 6px;
  box-shadow: var(--rg-shadow-sm);
}
.rg-portal-tabs::-webkit-scrollbar { display: none; }
.rg-portal-tabs button {
  min-width: max-content;
  min-height: 45px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #67738c;
  font-size: 12px;
  font-weight: 850;
  padding: 0 18px;
}
.rg-portal-tabs button.active {
  color: #fff;
  background: linear-gradient(135deg, var(--rg-brand), var(--rg-brand2));
  box-shadow: 0 8px 20px rgba(27,70,231,.18);
}
.rg-portal-panel { display: none; }
.rg-portal-panel.active { display: block; animation: rgPage .22s ease both; }
.rg-portal-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 13px;
}
.rg-portal-stats article {
  min-height: 128px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 13px;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 22px;
  padding: 19px;
  box-shadow: 0 8px 28px rgba(23,57,151,.055);
}
.rg-stat-icon {
  grid-row: 1 / 3;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  color: var(--rg-brand);
  background: #eef2ff;
}
.rg-stat-icon .rg-icon { width: 22px; height: 22px; }
.rg-portal-stats b { align-self: end; font-size: 27px; }
.rg-portal-stats small { align-self: start; color: var(--rg-muted); }
.rg-portal-grid {
  display: grid;
  grid-template-columns: 1.45fr .9fr;
  gap: 16px;
  margin-top: 16px;
}
.rg-portal-card {
  background: #fff;
  border: 1px solid var(--rg-line);
  border-radius: 25px;
  padding: 23px;
  box-shadow: 0 10px 34px rgba(23,57,151,.055);
}
.rg-portal-card > h2 { margin: 7px 0 10px; }
.rg-panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 17px;
}
.rg-panel-title h3 { margin: 4px 0 0; font-size: 19px; }
.rg-dashboard-head { gap: 20px; margin-bottom: 17px; }
.rg-dashboard-head h2 { margin: 4px 0 0; }
.rg-segmented {
  display: flex;
  padding: 4px;
  background: #eef2fa;
  border-radius: 13px;
}
.rg-segmented button {
  min-height: 36px;
  min-width: 70px;
  border: 0;
  background: transparent;
  color: var(--rg-muted);
  border-radius: 10px;
  font-size: 11px;
  font-weight: 800;
}
.rg-segmented button.active { background: #fff; color: var(--rg-brand); box-shadow: 0 4px 12px rgba(20,55,145,.08); }
.rg-credit-list { grid-template-columns: 1fr; }
.rg-credit-grid { grid-template-columns: repeat(3, 1fr); }
.rg-credit-card {
  color: var(--rg-ink);
  background: #fff;
  border: 1px solid var(--rg-line);
  box-shadow: none;
  display: grid;
  gap: 14px;
}
.rg-credit-card.is-active {
  background:
    radial-gradient(circle at 10% 0, rgba(255,255,255,.15), transparent 35%),
    linear-gradient(145deg, #111d78, #2451ee);
  color: #fff;
  border-color: transparent;
}
.rg-credit-card.is-inactive { opacity: .72; }
.rg-credit-top { display: flex; align-items: center; gap: 12px; }
.rg-credit-top > div { display: grid; gap: 3px; }
.rg-credit-icon {
  width: 43px;
  height: 43px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(27,70,231,.09);
  color: var(--rg-brand);
}
.rg-credit-card.is-active .rg-credit-icon { background: rgba(255,255,255,.14); color: #fff; }
.rg-credit-icon .rg-icon { width: 21px; height: 21px; }
.rg-credit-card b { font-size: 20px; margin: 0; }
.rg-credit-card small,
.rg-credit-card.is-active small { color: inherit; opacity: .7; }
.rg-credit-progress { height: 7px; border-radius: 99px; background: rgba(27,70,231,.09); overflow: hidden; }
.rg-credit-card.is-active .rg-credit-progress { background: rgba(255,255,255,.14); }
.rg-credit-progress span { display: block; height: 100%; border-radius: inherit; background: var(--rg-brand); }
.rg-credit-card.is-active .rg-credit-progress span { background: #fff; }
.rg-credit-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; opacity: .78; }
.rg-credit-state { font-size: 11px; font-weight: 800; }
.rg-credit-card.is-active .rg-btn-secondary { background: #fff; border-color: #fff; color: var(--rg-brand-dark); }
.rg-session-list { gap: 15px; }
.rg-session-card {
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 16px;
  padding: 21px;
  border-radius: 24px;
  box-shadow: 0 9px 30px rgba(23,57,151,.045);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.rg-session-card:hover { transform: translateY(-2px); box-shadow: var(--rg-shadow-sm); border-color: #cfdaef; }
.rg-session-card.is-compact {
  padding: 0;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  grid-template-columns: 54px minmax(0, 1fr);
}
.rg-session-card.is-compact:hover { transform: none; box-shadow: none; }
.rg-session-photo {
  width: 62px;
  height: 62px;
  border-radius: 19px;
  overflow: hidden;
  background: #edf1fb;
  display: grid;
  place-items: center;
  color: var(--rg-brand);
  font-size: 22px;
  font-weight: 900;
}
.rg-session-card.is-compact .rg-session-photo { width: 54px; height: 54px; border-radius: 16px; }
.rg-session-photo img { width: 100%; height: 100%; object-fit: cover; }
.rg-session-main { gap: 13px; min-width: 0; }
.rg-session-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.rg-session-title-row > div:first-child { display: grid; gap: 5px; min-width: 0; }
.rg-session-title-row h3 { font-size: 19px; }
.rg-session-title-row > div:first-child > small { color: var(--rg-muted); }
.rg-code-copy {
  max-width: 210px;
  border: 1px solid var(--rg-line);
  background: #f8faff;
  color: var(--rg-ink);
  border-radius: 13px;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 9px;
  text-align: right;
}
.rg-code-copy small { color: var(--rg-muted); font-size: 9px; }
.rg-code-copy b { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; direction: ltr; }
.rg-code-copy .rg-icon { grid-row: 1 / 3; grid-column: 2; align-self: center; width: 17px; height: 17px; color: var(--rg-brand); }
.rg-session-meta { gap: 8px 14px; }
.rg-session-meta span { display: inline-flex; align-items: center; gap: 5px; }
.rg-session-meta .rg-icon { width: 16px; height: 16px; }
.rg-deadline-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.rg-deadline {
  min-height: 68px;
  border: 1px solid #dce5fa;
  background: #f6f8ff;
  border-radius: 15px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.rg-deadline > span { display: grid; gap: 3px; }
.rg-deadline small { color: var(--rg-muted); font-size: 9px; }
.rg-deadline b { color: var(--rg-brand); font-size: 14px; font-variant-numeric: tabular-nums; direction: ltr; text-align: right; }
.rg-deadline-date { max-width: 115px; text-align: left; line-height: 1.55; }
.rg-deadline.is-warning { background: #fff9e8; border-color: #f0dc9d; }
.rg-deadline.is-warning b { color: #9b6900; }
.rg-deadline.is-critical { background: #fff0f2; border-color: #f2c4cb; animation: rgTimerPulse 1.8s ease infinite; }
.rg-deadline.is-critical b { color: var(--rg-danger); }
.rg-deadline.is-expired { background: #f5f6f9; border-color: #e4e7ee; opacity: .72; animation: none; }
.rg-deadline.is-expired b { color: #747d8d; direction: rtl; }
@keyframes rgTimerPulse { 50% { box-shadow: 0 0 0 5px rgba(197,63,82,.06); } }
.rg-session-actions {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 3px;
}
.rg-session-actions .rg-btn { min-height: 41px; }
.rg-session-actions .rg-text-button { font-size: 11px; padding: 8px; }
.rg-btn-danger-soft { color: var(--rg-danger); border-color: #f0cbd1; background: #fff7f8; }
.rg-btn-disabled { opacity: .58; cursor: not-allowed; }
.rg-refund-note { border-radius: 12px; padding: 9px 12px; background: var(--rg-mint); color: var(--rg-success); font-size: 11px; }
.rg-status-pending_review,
.rg-status-needs_receipt,
.rg-status-pending_payment { background: #fff4d6; color: #896100; }
.rg-status-new { background: #eaf0ff; color: var(--rg-brand); }
.rg-status-in_progress { background: #fff4d6; color: #896100; }
.rg-status-answered { background: var(--rg-mint); color: var(--rg-success); }
.rg-status-closed { background: #eef0f4; color: #687184; }
.rg-notification-list,
.rg-ticket-list { display: grid; gap: 10px; }
.rg-notification {
  width: 100%;
  border: 1px solid var(--rg-line);
  background: #fff;
  color: var(--rg-ink);
  border-radius: 18px;
  padding: 16px;
  display: grid;
  grid-template-columns: 9px 1fr;
  gap: 12px;
  text-align: right;
}
.rg-notification.is-unread { background: #f7f9ff; border-color: #ced9f7; }
.rg-notification-dot { width: 8px; height: 8px; border-radius: 50%; background: #c7cede; margin-top: 7px; }
.rg-notification.is-unread .rg-notification-dot { background: var(--rg-brand); box-shadow: 0 0 0 5px rgba(27,70,231,.08); }
.rg-notification b { display: block; margin-bottom: 5px; }
.rg-notification p { margin: 0 0 7px; color: var(--rg-ink2); line-height: 1.9; font-size: 12px; }
.rg-notification small { color: var(--rg-muted); }
.rg-support-portal-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 18px; align-items: start; }
.rg-support-portal-grid form,
.rg-profile-grid form { display: grid; gap: 14px; }
.rg-ticket { border: 1px solid var(--rg-line); border-radius: 18px; background: #fff; overflow: hidden; }
.rg-ticket-summary {
  width: 100%;
  border: 0;
  background: #fff;
  color: var(--rg-ink);
  min-height: 76px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  text-align: right;
}
.rg-ticket-summary > span:first-child { display: grid; gap: 5px; }
.rg-ticket-summary small { color: var(--rg-muted); }
.rg-ticket-thread { border-top: 1px solid var(--rg-line); padding: 16px; background: #f8faff; display: grid; gap: 10px; }
.rg-ticket-message { max-width: 84%; border-radius: 15px; padding: 11px 13px; background: #fff; border: 1px solid var(--rg-line); }
.rg-ticket-message.is-admin { margin-left: auto; background: #eaf0ff; border-color: #d1dcfa; }
.rg-ticket-message.is-client { margin-right: auto; }
.rg-ticket-message b { font-size: 11px; }
.rg-ticket-message p { margin: 5px 0; white-space: pre-wrap; line-height: 1.9; font-size: 12px; }
.rg-ticket-message small { color: var(--rg-muted); }
.rg-ticket-reply { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 5px; }
.rg-ticket-reply textarea { min-height: 65px; }
.rg-ticket-closed { color: var(--rg-muted); font-size: 11px; padding: 10px; }
.rg-profile-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.rg-profile-grid .rg-portal-card { min-width: 0; }

@media (max-width: 980px) {
  .rg-portal-stats { grid-template-columns: repeat(2, 1fr); }
  .rg-portal-grid,
  .rg-support-portal-grid { grid-template-columns: 1fr; }
  .rg-credit-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .rg-portal-layout { width: min(100% - 24px, 1240px); padding-top: 24px; }
  .rg-lookup-card { padding: 20px 17px; border-radius: 23px; }
  .rg-auth-tabs { grid-template-columns: 1fr; }
  .rg-auth-tabs button { min-height: 38px; }
  .rg-portal-head { padding: 18px; border-radius: 23px; align-items: flex-start; }
  .rg-avatar { width: 48px; height: 48px; border-radius: 16px; }
  .rg-portal-user h2 { font-size: 17px; }
  .rg-portal-user p { font-size: 10px; }
  .rg-portal-head-actions { gap: 5px; }
  .rg-profile-setup { align-items: stretch; flex-direction: column; }
  .rg-portal-tabs { position: sticky; top: 72px; z-index: 20; margin-inline: -1px; }
  .rg-portal-tabs button { min-height: 41px; padding: 0 14px; }
  .rg-portal-stats { grid-template-columns: repeat(2, 1fr); gap: 9px; }
  .rg-portal-stats article { min-height: 104px; padding: 13px; column-gap: 9px; }
  .rg-stat-icon { width: 38px; height: 38px; border-radius: 13px; }
  .rg-portal-stats b { font-size: 22px; }
  .rg-portal-stats small { font-size: 9px; }
  .rg-portal-card { padding: 18px 15px; border-radius: 21px; }
  .rg-dashboard-head { display: grid; gap: 12px; }
  .rg-segmented { width: 100%; }
  .rg-segmented button { flex: 1; }
  .rg-credit-grid,
  .rg-profile-grid { grid-template-columns: 1fr; }
  .rg-session-card,
  .rg-session-card.is-compact { grid-template-columns: 46px minmax(0, 1fr); gap: 11px; padding: 15px 13px; }
  .rg-session-card.is-compact { padding-inline: 0; }
  .rg-session-photo,
  .rg-session-card.is-compact .rg-session-photo { width: 46px; height: 46px; border-radius: 14px; }
  .rg-session-title-row { display: grid; }
  .rg-code-copy { max-width: 100%; width: 100%; }
  .rg-session-meta { display: grid; gap: 7px; }
  .rg-deadline-grid { grid-template-columns: 1fr; }
  .rg-deadline { min-height: 62px; }
  .rg-session-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rg-session-actions .rg-btn,
  .rg-session-actions .rg-text-button { width: 100%; min-width: 0; text-align: center; justify-content: center; }
  .rg-ticket-reply { grid-template-columns: 1fr; }
  .rg-ticket-message { max-width: 94%; }
  .rg-credit-meta { display: grid; }
}
@media (max-width: 420px) {
  .rg-portal-stats { grid-template-columns: 1fr 1fr; }
  .rg-session-actions { grid-template-columns: 1fr; }
  .rg-confirm-actions { gap: 8px; }
}
.rg-name-verified { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.rg-name-verified h1,
.rg-name-verified h3 { margin: 0; }
.rg-verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 25px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eaf0ff;
  color: var(--rg-brand);
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}
.rg-verified .rg-icon { width: 14px; height: 14px; }

/* =========================================================
   Ravangram 11 — unified responsive and interaction layer
   ========================================================= */
.rg-featured-wrap{min-width:0;position:relative}
.rg-featured{position:relative;overflow:hidden;min-height:620px;border-radius:34px;background:#0e234d;box-shadow:0 24px 70px rgba(17,45,113,.18);isolation:isolate}
.rg-featured-image,.rg-featured-image picture,.rg-featured-image img{position:absolute;inset:0;width:100%;height:100%}
.rg-featured-image img{object-fit:cover}
.rg-featured:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(180deg,transparent,rgba(5,18,48,.94));z-index:1;pointer-events:none}
.rg-featured-overlay{position:absolute;z-index:2;inset:auto 34px 48px;display:grid;gap:13px;color:#fff}
.rg-featured-overlay h2{font-size:34px;color:#fff}
.rg-featured-overlay p{margin:0;color:rgba(255,255,255,.78)}
.rg-featured-tags{display:flex;gap:7px;flex-wrap:wrap}
.rg-featured-tags span{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border-radius:999px;padding:7px 12px;font-size:11px}
.rg-featured-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.rg-featured-badge{position:absolute;z-index:3;top:24px;right:24px;max-width:245px;display:grid;gap:5px;padding:16px 18px;border-radius:20px;background:rgba(255,255,255,.94);box-shadow:0 10px 30px rgba(10,30,80,.12)}
.rg-featured-badge small{color:var(--rg-muted)}
.rg-featured-badge b{color:var(--rg-brand);font-size:14px}
.rg-featured-nav{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(8,23,56,.45);color:#fff;font-size:30px;display:grid;place-items:center;backdrop-filter:blur(8px)}
.rg-featured-prev{right:16px}.rg-featured-next{left:16px}
.rg-featured-dots{position:absolute;z-index:4;bottom:18px;left:50%;transform:translateX(-50%);display:flex;direction:ltr;gap:7px}
.rg-featured-dots button{width:8px;height:8px;padding:0;border:0;border-radius:99px;background:rgba(255,255,255,.45);transition:.2s ease}
.rg-featured-dots button.active{width:27px;background:#fff}
.rg-featured .rg-verified{background:rgba(255,255,255,.9);color:var(--rg-brand)}

.rg-education-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rg-education-card{min-height:150px;border:1px solid var(--rg-line);border-radius:24px;background:#fff;padding:22px;display:flex;gap:16px;align-items:flex-start;box-shadow:0 12px 34px rgba(22,52,125,.05)}
.rg-education-card h3{margin:0 0 8px;font-size:17px}.rg-education-card p{margin:0;color:var(--rg-muted);line-height:1.9}
.rg-education-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:15px;background:#edf3ff;color:var(--rg-brand);font-size:22px;flex:0 0 auto}

.rg-date-navigation{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:12px;margin:0 0 18px}
.rg-date-navigation>span{text-align:center;font-weight:800;color:var(--rg-ink2);background:#f6f8fd;border:1px solid var(--rg-line);padding:12px;border-radius:15px}
.rg-date-navigation button:disabled{opacity:.42;cursor:not-allowed}
.rg-date-strip{scroll-snap-type:x mandatory;scrollbar-width:thin}
.rg-date-card{scroll-snap-align:center}
.rg-hold-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.rg-hold-actions strong{direction:ltr;font-variant-numeric:tabular-nums;font-size:22px}
.rg-guardian-fields{border:1px solid #cfe0ff;border-radius:18px;background:#f6f9ff;padding:15px}
.rg-guardian-fields>p{margin:10px 0 0;color:var(--rg-ink2);font-size:11px;line-height:1.9}

.rg-portal-head{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:100%;min-width:0}
.rg-portal-head:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;left:-100px;top:-180px;border:1px solid rgba(255,255,255,.16);pointer-events:none}
.rg-portal-user,.rg-portal-user>div:last-child{min-width:0}
.rg-portal-user h2,.rg-portal-user p{overflow-wrap:anywhere}
.rg-portal-head-actions{position:relative;z-index:2;display:flex;align-items:center;gap:10px;flex:0 0 auto}
.rg-portal-head-actions #logoutLookup{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:10px 15px;white-space:nowrap}
.rg-notice-button{background:#fff!important;color:var(--rg-brand)!important;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.rg-portal-tabs{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
.rg-portal-tabs::-webkit-scrollbar{display:none}
.rg-portal-tabs button{white-space:nowrap;flex:0 0 auto}
.rg-profile-completion{border:1px solid #d5e0f7;border-radius:24px;background:linear-gradient(135deg,#f7faff,#edf4ff);padding:22px;margin-bottom:18px;display:grid;gap:15px}
.rg-profile-completion h2{margin:4px 0 6px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.rg-profile-completion h2 b{color:var(--rg-brand);font-size:18px}
.rg-profile-completion p{margin:0;color:var(--rg-muted)}
.rg-profile-progress{height:10px;border-radius:99px;background:#e1e7f2;overflow:hidden;direction:ltr}
.rg-profile-progress span{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#265df2,#42a6ee);transition:width .5s ease}
.rg-profile-grid form label,.rg-support-portal-grid form label{display:grid;gap:8px;min-width:0;font-weight:700;color:var(--rg-ink2)}
.rg-profile-grid form input,.rg-profile-grid form select,.rg-profile-grid form textarea,.rg-support-portal-grid form input,.rg-support-portal-grid form select,.rg-support-portal-grid form textarea{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.rg-support-portal-grid{max-width:100%;overflow:hidden}
.rg-support-portal-grid>*{min-width:0}
.rg-support-portal-grid .rg-portal-card{overflow:hidden}
.rg-support-portal-grid textarea{min-height:145px;resize:vertical}
.rg-segmented{overflow-x:auto;max-width:100%;scrollbar-width:none}
.rg-segmented::-webkit-scrollbar{display:none}
.rg-segmented button{white-space:nowrap;flex:0 0 auto}

.rg-receipt-modal{position:fixed;inset:0;z-index:10040;background:rgba(6,14,35,.72);display:none;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(7px)}
.rg-receipt-modal.open{display:flex}
.rg-receipt-dialog{width:min(900px,100%);max-height:min(820px,90vh);border-radius:25px;background:#fff;overflow:hidden;box-shadow:0 28px 90px rgba(0,0,0,.28);display:grid;grid-template-rows:auto minmax(0,1fr)}
.rg-receipt-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 20px;border-bottom:1px solid var(--rg-line)}
.rg-receipt-head h2{margin:0;font-size:19px}
.rg-receipt-content{min-height:300px;overflow:auto;padding:18px;display:grid;place-items:center;background:#f4f6fa}
.rg-receipt-content img{max-width:100%;max-height:75vh;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.12)}
.rg-receipt-content iframe{width:100%;height:72vh;border:0;border-radius:12px;background:#fff}
.rg-smart-support{position:fixed;z-index:10010;left:24px;bottom:95px;width:min(390px,calc(100% - 32px));border:1px solid #cadeff;background:#fff;border-radius:22px;padding:15px;box-shadow:0 18px 55px rgba(17,48,120,.18);display:none;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px}
.rg-smart-support.show{display:grid;animation:rgSupportIn .25s ease}
.rg-smart-support>div{display:grid;gap:3px;min-width:0}.rg-smart-support small{color:var(--rg-muted)}
.rg-smart-support button{border:0;border-radius:12px;padding:9px 11px;font-weight:800;white-space:nowrap}
.rg-smart-support [data-smart-support-open]{background:var(--rg-brand);color:#fff}
.rg-smart-support [data-smart-support-close]{background:#eef2f8;color:var(--rg-ink2)}
@keyframes rgSupportIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.rg-support-fab.hidden{display:none!important}

.rg-filter-panel input,.rg-filter-panel select{width:100%}
.rg-results-head{position:sticky;top:85px;z-index:8;background:rgba(246,248,255,.9);backdrop-filter:blur(12px);padding:10px 0}
.rg-therapist-card{overflow:hidden}
.rg-therapist-rating{direction:rtl}
.rg-profile-main{min-width:0}
.rg-profile-card{overflow:hidden}
.rg-profile-card p,.rg-profile-card li{overflow-wrap:anywhere}

@media(max-width:980px){
  .rg-featured{min-height:540px}
  .rg-education-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rg-profile-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .rg-featured{min-height:520px;border-radius:28px}
  .rg-featured-overlay{inset:auto 22px 42px}.rg-featured-overlay h2{font-size:27px}
  .rg-featured-badge{top:15px;right:15px;max-width:225px;padding:13px 15px}
  .rg-featured-nav{width:37px;height:37px;font-size:25px}.rg-featured-prev{right:8px}.rg-featured-next{left:8px}
  .rg-featured-actions .rg-btn{flex:1;min-width:125px}
  .rg-education-grid{grid-template-columns:1fr}.rg-education-card{min-height:auto}
  .rg-date-navigation{grid-template-columns:1fr 1fr}.rg-date-navigation>span{grid-column:1/-1;grid-row:1}.rg-date-navigation button{grid-row:2;width:100%}
  .rg-portal-head{align-items:flex-start;padding:18px 15px}
  .rg-portal-user{align-items:flex-start}.rg-portal-head-actions{align-self:flex-start}
  .rg-portal-head-actions #logoutLookup{padding:8px 10px;font-size:10px}
  .rg-portal-tabs{top:68px}
  .rg-support-portal-grid form,.rg-profile-grid form{gap:16px}
  .rg-smart-support{left:16px;bottom:94px;grid-template-columns:1fr 1fr}.rg-smart-support>div{grid-column:1/-1}.rg-smart-support button{width:100%}
  .rg-receipt-modal{padding:10px}.rg-receipt-dialog{max-height:92vh;border-radius:20px}.rg-receipt-content{padding:10px}.rg-receipt-content iframe{height:78vh}
  .rg-results-head{top:68px}
}
@media(max-width:430px){
  .rg-featured{min-height:500px}.rg-featured-tags span:nth-child(n+3){display:none}
  .rg-featured-badge{max-width:210px}.rg-featured-actions{display:grid;grid-template-columns:1fr 1fr}
  .rg-portal-head{display:grid;grid-template-columns:minmax(0,1fr) auto}.rg-portal-user{min-width:0}.rg-portal-head-actions{gap:6px}
  .rg-notice-button{width:42px;height:42px}.rg-profile-completion h2{display:grid}
}

/* Ravangram 11 therapist profile and search cards */
.rg-therapist-rating{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rg-therapist-rating small{font-size:9px;color:inherit;opacity:.82}.rg-rating-value{font-weight:900}
.rg-nearest-mini{border:1px solid #dce5f7;background:#f7f9ff;border-radius:14px;padding:10px 12px;display:grid;gap:3px}.rg-nearest-mini small{color:var(--rg-muted);font-size:9px}.rg-nearest-mini b{font-size:12px;color:var(--rg-brand)}
.rg-profile-media{position:relative}.rg-profile-share{position:absolute;top:16px;left:16px;z-index:4;width:44px;height:44px;border:1px solid rgba(255,255,255,.55);border-radius:15px;background:rgba(255,255,255,.9);color:var(--rg-brand);display:grid;place-items:center;box-shadow:0 8px 24px rgba(20,45,100,.12)}
.rg-intro-video{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:30px;background:#0b1833}
.rg-video-link{position:relative;display:block;overflow:hidden;border-radius:30px;min-height:560px;background:#0b1833;color:#fff}.rg-video-link picture,.rg-video-link img{width:100%;height:100%;position:absolute;inset:0}.rg-video-link img{object-fit:cover}.rg-video-link:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(4,15,37,.9))}.rg-video-link>b{position:absolute;z-index:3;right:24px;bottom:26px;font-size:18px}.rg-video-play{position:absolute;z-index:3;left:50%;top:42%;transform:translate(-50%,-50%);width:82px;height:82px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--rg-brand);display:grid;place-items:center;font-size:30px;padding-left:4px;box-shadow:0 15px 40px rgba(0,0,0,.2)}
.rg-profile-score{display:grid;gap:4px;text-align:left}.rg-profile-score>b{font-size:17px;color:var(--rg-ink)}.rg-profile-score small{color:var(--rg-muted);font-size:10px}.rg-profile-score .rg-stars{color:#f3ad24;letter-spacing:1px}
.rg-profile-packages{display:grid;gap:12px;margin-top:16px}.rg-profile-package{border:1px solid var(--rg-line);border-radius:19px;padding:15px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:15px;align-items:center}.rg-profile-package h3{margin:0 0 5px;font-size:16px}.rg-profile-package small{color:var(--rg-muted)}.rg-package-price{display:grid;gap:3px;text-align:left}.rg-package-price>b{color:var(--rg-brand)}.rg-package-price>span{display:inline-flex;background:var(--rg-mint);color:var(--rg-success);border-radius:999px;padding:4px 8px;font-size:9px;font-weight:800}
.rg-approach-block{border-top:1px solid var(--rg-line);padding-top:18px;margin-top:20px}.rg-approach-block h3{font-size:15px;margin:0 0 12px}
.rg-review-header>div{display:grid;gap:3px}.rg-review-header small{color:var(--rg-muted)}
.rg-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rg-policy-grid>div{border:1px solid #dce5f7;background:#f7f9ff;border-radius:16px;padding:14px;display:grid;gap:5px}.rg-policy-grid b{font-size:18px;color:var(--rg-brand)}.rg-policy-grid small{color:var(--rg-muted)}.rg-policy-card>p{margin:15px 0 0;color:var(--rg-muted);font-size:11px;line-height:1.9}
@media(max-width:760px){.rg-intro-video{aspect-ratio:1/1.18;border-radius:24px}.rg-video-link{min-height:440px;border-radius:24px}.rg-profile-package{grid-template-columns:1fr}.rg-package-price{text-align:right}.rg-profile-package .rg-btn{width:100%}.rg-policy-grid{grid-template-columns:1fr}.rg-profile-score{text-align:right}.rg-profile-top{display:grid;gap:15px}}
.rg-confirm-summary{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.rg-confirm-summary>div{border:1px solid var(--rg-line);background:#f8faff;border-radius:15px;padding:12px;display:grid;gap:5px;text-align:right}.rg-confirm-summary span{color:var(--rg-muted);font-size:10px}.rg-confirm-summary b{font-size:13px;line-height:1.8}.rg-confirm-code{width:100%;max-width:none}.rg-confirm-code .rg-btn{margin-top:8px}
@media(max-width:620px){.rg-confirm-summary{grid-template-columns:1fr}}

/* =========================================================
   Ravangram 11.1 — calm modern UI, editable content and safe documents
   ========================================================= */
.rg-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer}
.rg-featured{min-height:600px;background:#12264d}
.rg-featured-image{overflow:hidden;background:#e9eef8}
.rg-featured-image .rg-dynamic-picture{display:block;position:absolute;inset:0;overflow:hidden}
.rg-featured-image .rg-dynamic-picture img{display:block;width:100%;height:100%;object-fit:cover;filter:none!important;backdrop-filter:none!important;will-change:transform}
.rg-featured:after{inset:52% 0 0;background:linear-gradient(180deg,rgba(5,18,48,0),rgba(5,18,48,.72) 42%,rgba(5,18,48,.96));}
.rg-featured-overlay{inset:auto 30px 38px;max-width:calc(100% - 60px);padding:0;background:transparent!important;backdrop-filter:none!important}
.rg-featured-overlay .rg-name-verified{align-items:center;flex-wrap:wrap}
.rg-featured-overlay .rg-btn{min-height:46px}
.rg-featured .rg-verified{font-size:11px;padding:6px 10px;border-radius:999px;box-shadow:none}

.rg-education-card{padding:0;overflow:hidden;min-height:100%;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.rg-education-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(22,52,125,.1);border-color:#cbd9f3}
.rg-education-open{appearance:none;border:0;background:transparent;width:100%;height:100%;padding:0;text-align:right;color:inherit;font:inherit;display:grid;grid-template-rows:150px 1fr;cursor:pointer}
.rg-education-media{display:grid;place-items:center;background:linear-gradient(145deg,#edf3ff,#f8fbff);overflow:hidden}
.rg-education-media img{display:block;width:100%;height:100%;object-fit:cover}
.rg-education-media .rg-education-icon{width:58px;height:58px;border-radius:19px}
.rg-education-copy{display:grid;align-content:start;gap:8px;padding:18px 20px 20px;min-width:0}
.rg-education-copy small{color:var(--rg-muted);font-size:11px}
.rg-education-copy h3{font-size:17px;line-height:1.75;margin:0}
.rg-education-copy p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.rg-education-copy b{color:var(--rg-brand);font-size:12px;margin-top:4px}

.rg-faq-list .rg-faq-answer{color:var(--rg-muted);padding:0 0 20px;line-height:2}
.rg-faq-list .rg-faq-answer p{margin:0;color:inherit}
.rg-faq-list details{transition:border-color .2s ease,box-shadow .2s ease}
.rg-faq-list details[open]{border-color:#c9d8f4;box-shadow:0 14px 38px rgba(24,55,141,.08)}

.rg-article-page,.rg-reservation-page{padding-top:34px;padding-bottom:80px;max-width:980px}
.rg-back-link{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--rg-brand);font-weight:850;padding:10px 0;margin-bottom:14px;cursor:pointer}
.rg-back-link .rg-icon{width:19px;height:19px}
.rg-article-shell{background:#fff;border:1px solid var(--rg-line);border-radius:30px;overflow:hidden;box-shadow:0 22px 65px rgba(24,55,141,.08)}
.rg-article-cover,.rg-article-video video{display:block;width:100%;max-height:520px;object-fit:cover;background:#111d37}
.rg-article-video{background:#111d37}
.rg-article-header{padding:34px 44px 20px}
.rg-article-header h1{font-size:clamp(27px,4vw,42px);line-height:1.55;margin:8px 0 12px}
.rg-article-header>p{color:var(--rg-muted);font-size:16px;line-height:2}
.rg-article-meta{display:flex;gap:9px 20px;flex-wrap:wrap;color:var(--rg-muted);font-size:12px}
.rg-article-content{padding:10px 44px 46px;color:var(--rg-ink2);font-size:16px;line-height:2.25}
.rg-article-content h2,.rg-article-content h3{color:var(--rg-ink);line-height:1.7;margin-top:1.8em}
.rg-article-content img{max-width:100%;height:auto;border-radius:18px}
.rg-article-content a{color:var(--rg-brand)}

.rg-date-field{display:grid;gap:8px}
.rg-date-trigger{width:100%;min-height:52px;border:1px solid #d7e1f2;border-radius:16px;background:#fff;padding:0 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--rg-muted);font:inherit;text-align:right;cursor:pointer;transition:.2s ease}
.rg-date-trigger:hover,.rg-date-trigger:focus-visible{border-color:#8eacf0;box-shadow:0 0 0 4px rgba(42,93,238,.09);outline:0}
.rg-date-trigger.has-value{color:var(--rg-ink);font-weight:750}
.rg-date-trigger .rg-icon{width:21px;height:21px;color:var(--rg-brand)}
.rg-date-picker{position:fixed;inset:0;z-index:10100;display:none;align-items:flex-end;justify-content:center}
.rg-date-picker.open{display:flex}
.rg-date-picker-backdrop{position:absolute;inset:0;background:rgba(6,14,35,.62);backdrop-filter:blur(5px)}
.rg-date-picker-dialog{position:relative;z-index:1;width:min(600px,100%);background:#fff;border-radius:30px 30px 0 0;padding:24px max(20px,env(safe-area-inset-left)) calc(24px + env(safe-area-inset-bottom));box-shadow:0 -24px 80px rgba(4,15,45,.24)}
.rg-date-picker-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.rg-date-picker-head h2{margin:4px 0 0;font-size:22px}
.rg-date-picker-columns{display:grid;grid-template-columns:1.15fr 1fr .8fr;gap:12px}
.rg-date-picker-columns label{display:grid;gap:7px;color:var(--rg-muted);font-size:12px;font-weight:750}
.rg-date-picker-columns select{width:100%;height:58px;border:1px solid #d7e1f2;border-radius:16px;background:#f9fbff;padding:0 12px;font:inherit;font-size:15px;color:var(--rg-ink);text-align:center}
.rg-date-picker-preview{margin:15px 0;background:#eef4ff;border:1px solid #d9e5fb;border-radius:16px;padding:13px;text-align:center;color:var(--rg-brand);font-weight:850}
.rg-date-picker-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}

.rg-profile-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:20px;align-items:start}
.rg-profile-card-modern{background:#fff;border:1px solid var(--rg-line);border-radius:28px;padding:25px;box-shadow:0 14px 42px rgba(24,55,141,.06);min-width:0}
.rg-profile-card-modern>header{display:flex;gap:14px;align-items:flex-start;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #edf1f7}
.rg-profile-card-modern>header h2{margin:3px 0 5px;font-size:22px}
.rg-profile-card-modern>header p{margin:0;color:var(--rg-muted);line-height:1.8}
.rg-profile-card-icon{width:50px;height:50px;border-radius:17px;background:#edf3ff;color:var(--rg-brand);display:grid;place-items:center;flex:0 0 auto}
.rg-profile-card-icon .rg-icon{width:24px;height:24px}
.rg-modern-form{display:grid;gap:18px}
.rg-modern-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rg-modern-field{display:grid;gap:8px;min-width:0;color:var(--rg-ink2);font-weight:750}
.rg-modern-field>span{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rg-modern-field em{font-style:normal;color:#265df2;background:#eef4ff;border-radius:999px;padding:3px 7px;font-size:9px}
.rg-modern-field small,.rg-choice-field small,.rg-guardian-details small{font-weight:500;color:var(--rg-muted)}
.rg-modern-field input,.rg-modern-field select{width:100%;min-width:0;height:52px;border:1px solid #d7e1f2;border-radius:16px;background:#fff;padding:0 15px;font:inherit;color:var(--rg-ink);box-sizing:border-box;transition:.2s ease}
.rg-modern-field input:focus,.rg-modern-field select:focus{outline:0;border-color:#8eacf0;box-shadow:0 0 0 4px rgba(42,93,238,.09)}
.rg-modern-field input:disabled{background:#f2f5fa;color:#7d889a}
.rg-choice-field{border:0;padding:0;margin:0;display:grid;gap:10px}
.rg-choice-field legend{font-weight:800;color:var(--rg-ink2);margin-bottom:8px}
.rg-choice-pills{display:flex;flex-wrap:wrap;gap:8px}
.rg-choice-pills label{cursor:pointer}
.rg-choice-pills input{position:absolute;opacity:0;pointer-events:none}
.rg-choice-pills span{display:block;border:1px solid #d8e1f1;background:#f9fbff;border-radius:999px;padding:9px 14px;color:var(--rg-muted);font-size:12px;font-weight:750;transition:.2s ease}
.rg-choice-pills input:checked+span{border-color:#779cf2;background:#eaf1ff;color:var(--rg-brand);box-shadow:0 0 0 3px rgba(42,93,238,.07)}
.rg-guardian-details{border:1px solid #dce6f7;border-radius:18px;background:#f9fbff;padding:0 16px}
.rg-guardian-details summary{cursor:pointer;padding:15px 0;font-weight:850;list-style:none;display:flex;justify-content:space-between;gap:10px}
.rg-guardian-details summary::-webkit-details-marker{display:none}
.rg-guardian-details .rg-modern-grid{padding:2px 0 17px}
.rg-sticky-form-action{display:flex;justify-content:flex-end;padding-top:4px}
.rg-sticky-form-action .rg-btn{min-width:180px}
.rg-form-inline-error{border:1px solid #f2b8bd;background:#fff3f4;color:#a52b36;border-radius:14px;padding:12px 14px;line-height:1.8}
.rg-security-card{position:sticky;top:110px}
.rg-security-card .rg-security-note{margin-top:16px}

.rg-reservation-document{background:#fff;border:1px solid #dce5f4;border-radius:28px;padding:32px;box-shadow:0 20px 60px rgba(24,55,141,.08)}
.rg-reservation-document>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:20px;border-bottom:1px solid #e8edf5}
.rg-reservation-brand{display:flex;align-items:center;gap:12px}.rg-reservation-brand img{width:50px;height:50px;object-fit:contain;border-radius:15px}.rg-reservation-brand span{display:grid;gap:3px}.rg-reservation-brand b{font-size:18px}.rg-reservation-brand small{color:var(--rg-muted)}
.rg-reservation-title{padding:26px 0 14px}.rg-reservation-title h1{font-size:28px;margin:6px 0 8px}.rg-reservation-title p{margin:0;color:var(--rg-muted)}
.rg-reservation-rows{display:grid;border:1px solid #e2e8f2;border-radius:20px;overflow:hidden}
.rg-reservation-row{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.3fr);gap:18px;padding:14px 17px;border-bottom:1px solid #edf1f6;align-items:center}.rg-reservation-row:last-child{border-bottom:0}.rg-reservation-row span{color:var(--rg-muted)}.rg-reservation-row b{text-align:left;overflow-wrap:anywhere}
.rg-reservation-note{display:flex;align-items:center;gap:10px;margin:18px 0;padding:13px 15px;border-radius:16px;background:#f0f6ff;color:var(--rg-ink2)}.rg-reservation-note .rg-icon{color:var(--rg-brand);flex:0 0 auto}
.rg-reservation-document>footer{display:flex;justify-content:space-between;gap:12px;color:var(--rg-muted);font-size:11px;padding-top:8px}.rg-reservation-document>footer b{direction:ltr;color:var(--rg-brand)}
.rg-reservation-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.rg-reservation-actions .rg-icon{width:19px;height:19px}

@media(max-width:900px){
  .rg-profile-layout{grid-template-columns:1fr}.rg-security-card{position:static}
}
@media(max-width:760px){
  .rg-featured{min-height:520px}.rg-featured:after{inset:45% 0 0}.rg-featured-overlay{inset:auto 18px 40px;max-width:calc(100% - 36px)}
  .rg-article-page,.rg-reservation-page{padding-top:18px;padding-bottom:95px}
  .rg-article-shell{border-radius:23px}.rg-article-header{padding:24px 20px 12px}.rg-article-content{padding:6px 20px 30px;font-size:15px}.rg-article-header h1{font-size:27px}
  .rg-profile-card-modern{padding:18px 15px;border-radius:22px}.rg-profile-card-modern>header h2{font-size:19px}.rg-modern-grid{grid-template-columns:1fr}
  .rg-sticky-form-action{position:sticky;bottom:calc(77px + env(safe-area-inset-bottom));z-index:9;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 24%);padding-top:24px}.rg-sticky-form-action .rg-btn{width:100%}
  .rg-date-picker-columns{gap:8px}.rg-date-picker-columns select{height:55px;padding:0 6px;font-size:13px}
  .rg-reservation-document{padding:20px 15px;border-radius:22px}.rg-reservation-document>header{align-items:flex-start}.rg-reservation-title h1{font-size:22px}.rg-reservation-row{grid-template-columns:1fr;gap:5px}.rg-reservation-row b{text-align:right}.rg-reservation-actions{display:grid;grid-template-columns:1fr}.rg-reservation-actions .rg-btn{width:100%}
}
@media print{
  body.rg-app-body{background:#fff!important}
  .rg-header,.rg-footer,.rg-bottom-nav,.rg-support-fab,.rg-smart-support,.rg-no-print,.rg-toast{display:none!important}
  .rg-main,.rg-page.active,.rg-reservation-page{display:block!important;padding:0!important;margin:0!important;max-width:none!important}
  .rg-page:not([data-page="reservation"]){display:none!important}
  .rg-reservation-document{box-shadow:none;border:0;border-radius:0;padding:0;max-width:100%}
  .rg-reservation-row{break-inside:avoid}
  @page{size:A4;margin:14mm}
}

/* v11.1 secure receipt viewer */
.rg-receipt-pdf{display:block;width:min(900px,88vw);height:min(72vh,760px);border:0;border-radius:16px;background:#f5f7fb}
.rg-receipt-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding-top:14px}
.rg-receipt-content>img{display:block;max-width:min(900px,88vw);max-height:68vh;object-fit:contain;margin:auto;border-radius:16px;background:#f5f7fb}
@media(max-width:760px){.rg-receipt-pdf{width:100%;height:62vh}.rg-receipt-content>img{max-width:100%}.rg-receipt-actions{display:grid;grid-template-columns:1fr}.rg-receipt-actions .rg-btn{width:100%}}

/* =========================================================
   Ravangram 11.2 — full UI element audit and interaction layer
   ========================================================= */
.rg-app .rg-icon{
  display:block;
  width:24px;
  height:24px;
  min-width:0;
  max-width:100%;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.rg-app button,.rg-app a,.rg-app input,.rg-app select,.rg-app textarea{ -webkit-tap-highlight-color:transparent; }
.rg-app button,.rg-app a[role="button"],.rg-app .rg-btn{ touch-action:manipulation; }
.rg-app :focus-visible{ outline:3px solid rgba(42,93,238,.25); outline-offset:3px; }
.rg-app img{ max-width:100%; }
.rg-app h1,.rg-app h2,.rg-app h3,.rg-app p,.rg-app b,.rg-app span,.rg-app small{ overflow-wrap:anywhere; }
.rg-btn-on-dark{
  color:#10204a!important;
  background:rgba(255,255,255,.96)!important;
  border-color:rgba(255,255,255,.78)!important;
  box-shadow:0 12px 30px rgba(3,15,44,.2)!important;
}
.rg-btn-on-dark:hover{ background:#fff!important; }
.rg-btn[aria-busy="true"]{ cursor:progress; }

/* Reliable featured-card interaction */
.rg-featured{ isolation:isolate; }
.rg-featured-image{ z-index:0; pointer-events:none; }
.rg-featured:after{ pointer-events:none!important; }
.rg-featured-overlay{ pointer-events:none; }
.rg-featured-overlay>*{ pointer-events:auto; }
.rg-featured-actions{ position:relative;z-index:8; }
.rg-featured-actions .rg-btn{ position:relative;z-index:9;cursor:pointer; }
.rg-featured .rg-name-verified{ gap:10px; }
.rg-featured .rg-verified{ flex:0 0 auto; }
.rg-featured .rg-verified .rg-icon{ width:16px;height:16px; }
.rg-verified{
  min-height:30px;
  padding:5px 10px;
  gap:6px;
  font-size:10px;
  line-height:1;
}
.rg-verified .rg-icon{ width:16px;height:16px;flex:0 0 auto; }
.rg-verified>span{ white-space:nowrap; }
.rg-card-actions button{ border-style:solid; }

/* Profile flow: media and identity must never overlap */
.rg-profile-hero{ position:relative; }
.rg-profile-media{ min-width:0; }
.rg-profile-photo,.rg-intro-video,.rg-video-link{ width:100%; }
.rg-profile-main{ position:relative;z-index:2;min-width:0;margin:0; }
.rg-profile-intro{ position:relative;z-index:3; }
.rg-profile-identity{ min-width:0; }
.rg-profile-identity .rg-name-verified{ align-items:flex-start; }
.rg-profile-identity p{ display:block;clear:both;margin-top:9px!important; }
.rg-profile-score{ min-width:128px;align-self:start; }
.rg-profile-score .rg-stars{ white-space:nowrap; }
.rg-profile-share{ pointer-events:auto; }

/* Waitlist is visible, contextual and editable */
.rg-waitlist-inline{
  margin-top:22px;
  border:1px solid #cedbf6;
  border-radius:22px;
  background:linear-gradient(135deg,#f7faff,#edf4ff);
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.rg-waitlist-inline>div{ display:grid;gap:4px;min-width:0; }
.rg-waitlist-inline b{ font-size:16px; }
.rg-waitlist-inline small{ color:var(--rg-muted);line-height:1.8; }
.rg-booking-waitlist{
  margin:14px 0 2px;
  border:1px dashed #cbd8f0;
  border-radius:16px;
  padding:10px 13px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--rg-muted);
  background:#fafcff;
  font-size:12px;
}
.rg-waitlist-therapist{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid #d7e2f6;
  border-radius:18px;
  padding:11px 13px;
  background:#f7faff;
}
.rg-waitlist-therapist>span{ width:54px;height:54px;border-radius:15px;overflow:hidden;flex:0 0 auto;background:#eaf0fb; }
.rg-waitlist-therapist picture,.rg-waitlist-therapist img{ width:100%;height:100%;display:block;object-fit:cover; }
.rg-waitlist-therapist>div{ display:grid;gap:2px;min-width:0; }
.rg-waitlist-therapist small,.rg-waitlist-therapist em{ color:var(--rg-muted);font-style:normal;font-size:10px; }
.rg-waitlist-therapist b{ font-size:14px; }
#waitlistSheet form{ padding-bottom:max(12px,env(safe-area-inset-bottom)); }

/* Upload and submit feedback */
.rg-submit-feedback{
  border:1px solid #cbdaf7;
  background:#f2f6ff;
  color:#284575;
  border-radius:16px;
  padding:12px 14px;
  margin-top:15px;
  display:flex;
  align-items:center;
  gap:10px;
  line-height:1.8;
  font-size:12px;
}
.rg-submit-feedback.hidden{ display:none!important; }
.rg-spinner{
  width:20px;height:20px;border-radius:50%;
  border:3px solid rgba(42,93,238,.18);
  border-top-color:var(--rg-brand);
  animation:rgSpin .8s linear infinite;
  flex:0 0 auto;
}
@keyframes rgSpin{ to{ transform:rotate(360deg); } }
#submitBooking:disabled{ opacity:.72; }
.rg-upload input[type="file"]{ cursor:pointer; }

/* Modern support center */
.rg-support-intro{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  border:1px solid #cedcf7;
  border-radius:24px;
  padding:18px 20px;
  margin-bottom:18px;
  background:linear-gradient(135deg,#f5f9ff,#edf4ff);
}
.rg-support-intro-icon{
  width:52px;height:52px;border-radius:17px;display:grid;place-items:center;
  color:var(--rg-brand);background:#fff;border:1px solid #dbe5f8;
  box-shadow:0 8px 22px rgba(25,61,145,.08);
}
.rg-support-intro-icon .rg-icon{ width:25px;height:25px; }
.rg-support-intro h2{ margin:3px 0 5px;font-size:21px; }
.rg-support-intro p{ margin:0;color:var(--rg-muted);line-height:1.8; }
.rg-support-intro>small{ color:var(--rg-brand);background:#fff;border:1px solid #dbe5f8;border-radius:999px;padding:8px 11px;white-space:nowrap; }
.rg-support-form-card{ padding:0!important;overflow:hidden; }
.rg-support-form-card>header{
  display:flex;align-items:center;gap:12px;padding:20px 21px 15px;border-bottom:1px solid #edf1f7;
}
.rg-support-form-card>header h2{ margin:3px 0 0;font-size:20px; }
.rg-step-badge{ width:36px;height:36px;border-radius:13px;display:grid;place-items:center;background:#eaf1ff;color:var(--rg-brand);font-weight:900;flex:0 0 auto; }
.rg-support-form-card form{ padding:20px 21px 22px; }
.rg-support-form-card textarea,.rg-ticket-reply textarea{ width:100%;border:1px solid #d7e1f2;border-radius:16px;background:#fff;padding:13px 15px;font:inherit;color:var(--rg-ink);resize:vertical; }
.rg-support-form-card textarea:focus,.rg-ticket-reply textarea:focus{ outline:0;border-color:#8eacf0;box-shadow:0 0 0 4px rgba(42,93,238,.09); }
.rg-support-submit-note{ border-radius:14px;background:#f4f7fc;color:var(--rg-muted);padding:10px 12px;font-size:10px;line-height:1.8; }
.rg-support-history{ min-width:0; }
.rg-support-history .rg-dashboard-head{ margin:2px 0 12px;align-items:end; }
.rg-support-history .rg-dashboard-head h2{ margin:3px 0 0; }
.rg-support-status-help{ color:var(--rg-muted);font-size:9px; }
.rg-ticket{ box-shadow:0 8px 25px rgba(24,55,141,.04); }
.rg-ticket-summary{ cursor:pointer;transition:.18s ease; }
.rg-ticket-summary:hover{ background:#f8faff; }
.rg-ticket-summary:after{ content:"⌄";color:var(--rg-brand);font-size:20px;flex:0 0 auto; }
.rg-ticket-summary>span:last-of-type{ margin-right:auto; }
.rg-ticket-thread{ overflow:hidden; }

/* Confirmation icon and spacing */
.rg-confirm-card{ overflow:hidden; }
.rg-confirm-icon{
  width:78px;height:78px;
  border:1px solid #c9eadf;
  background:linear-gradient(145deg,#edfaf5,#dff5ec);
  box-shadow:0 12px 34px rgba(23,130,93,.12);
}
.rg-confirm-icon .rg-icon{ width:36px;height:36px;stroke-width:2.3; }
.rg-confirm-card>h1{ margin:12px 0 8px;line-height:1.35; }

/* Account forms and all controls share the same system */
.rg-portal-card input,.rg-portal-card select,.rg-portal-card textarea,
.rg-sheet .rg-modern-field input,.rg-sheet .rg-modern-field select,.rg-sheet .rg-modern-field textarea{
  width:100%;min-width:0;max-width:100%;
  border:1px solid #d7e1f2;border-radius:16px;background:#fff;
  padding:0 15px;font:inherit;color:var(--rg-ink);box-sizing:border-box;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.rg-portal-card input,.rg-portal-card select,.rg-sheet .rg-modern-field input,.rg-sheet .rg-modern-field select{ min-height:52px; }
.rg-portal-card textarea,.rg-sheet .rg-modern-field textarea{ padding-top:13px;padding-bottom:13px;line-height:1.8; }
.rg-portal-card input:focus,.rg-portal-card select:focus,.rg-portal-card textarea:focus,
.rg-sheet .rg-modern-field input:focus,.rg-sheet .rg-modern-field select:focus,.rg-sheet .rg-modern-field textarea:focus{
  outline:0;border-color:#8eacf0;box-shadow:0 0 0 4px rgba(42,93,238,.09);background:#fff;
}
.rg-portal-card select,.rg-sheet select{ cursor:pointer; }

/* Responsive guardrails */
.rg-therapist-card,.rg-profile-card,.rg-portal-card,.rg-session-card,.rg-confirm-card,.rg-reservation-document{ contain:layout paint; }
.rg-card-actions,.rg-session-actions,.rg-confirm-actions,.rg-reservation-actions{ min-width:0; }
.rg-bottom-nav{ z-index:9990; }
.rg-support-fab{ z-index:9980; }
.rg-app:has(input:focus) .rg-support-fab,.rg-app:has(textarea:focus) .rg-support-fab,.rg-app:has(select:focus) .rg-support-fab{ opacity:0;pointer-events:none; }

@media(max-width:900px){
  .rg-support-portal-grid{ grid-template-columns:1fr!important; }
  .rg-support-history{ margin-top:4px; }
}
@media(max-width:760px){
  .rg-featured{ min-height:min(132vw,610px); }
  .rg-featured-overlay{ inset:auto 16px 32px;max-width:calc(100% - 32px);gap:10px; }
  .rg-featured-overlay h2{ font-size:clamp(25px,8vw,34px);line-height:1.25; }
  .rg-featured-overlay p{ font-size:14px; }
  .rg-featured-actions{ display:grid;grid-template-columns:1fr 1fr;width:100%; }
  .rg-featured-actions .rg-btn{ width:100%;min-width:0;padding-inline:9px;font-size:13px; }
  .rg-featured-badge{ max-width:calc(100% - 32px); }
  .rg-profile{ padding-top:18px; }
  .rg-profile-hero{ display:block; }
  .rg-profile-media{ position:relative;top:auto; }
  .rg-profile-photo{ height:min(118vw,540px);border-radius:25px; }
  .rg-profile-main{ margin-top:20px!important;gap:14px; }
  .rg-profile-intro{ margin-top:0; }
  .rg-profile-top{ display:grid;grid-template-columns:1fr;gap:14px; }
  .rg-profile-score{ min-width:0;width:100%;text-align:right; }
  .rg-profile-identity p{ margin-top:8px!important; }
  .rg-waitlist-inline{ align-items:stretch;flex-direction:column;padding:16px; }
  .rg-waitlist-inline .rg-btn{ width:100%; }
  .rg-booking-waitlist{ align-items:flex-start;justify-content:space-between;text-align:right; }
  .rg-support-intro{ grid-template-columns:auto minmax(0,1fr);padding:15px; }
  .rg-support-intro>small{ grid-column:1/-1;width:max-content; }
  .rg-support-form-card>header,.rg-support-form-card form{ padding-inline:16px; }
  .rg-support-status-help{ display:none; }
  .rg-ticket-summary{ display:grid;grid-template-columns:minmax(0,1fr) auto; }
  .rg-ticket-summary:after{ display:none; }
  .rg-confirm-card{ padding:30px 18px; }
  .rg-confirm-icon{ width:68px;height:68px; }
  .rg-confirm-card>h1{ font-size:28px; }
}
@media(max-width:390px){
  .rg-featured-actions{ grid-template-columns:1fr; }
  .rg-featured{ min-height:650px; }
  .rg-featured-tags{ display:none; }
  .rg-booking-waitlist{ display:grid;gap:2px; }
}

/* Print exactly one reservation document; never print open sheets or review forms */
@media print{
  html,body{ width:100%!important;min-height:auto!important;overflow:visible!important;background:#fff!important; }
  body.rg-printing-reservation .rg-app>*:not(.rg-main){ display:none!important; }
  body.rg-printing-reservation .rg-main>*:not([data-page="reservation"]){ display:none!important; }
  body.rg-printing-reservation [data-page="reservation"]{ display:block!important; }
  .rg-overlay,.rg-drawer,.rg-sheet,.rg-date-picker,.rg-receipt-modal,.rg-smart-support,.rg-mobile-cta,.rg-runtime-error{ display:none!important; }
  .rg-reservation-document{ break-inside:avoid; }
  .rg-reservation-document *{ visibility:visible!important; }
}

@media(prefers-reduced-motion:reduce){
  .rg-app *,.rg-app *:before,.rg-app *:after{ scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important; }
}

/* Ravangram 11.2 — full UI audit and component stabilization */

/* Ravangram 11.3 — specialties, lazy video, secure sessions and natural deadlines */
.rg-specialty-card{position:relative;isolation:isolate;overflow:hidden;min-height:154px;text-align:right}
.rg-specialty-card.has-image{min-height:190px;color:#fff;border-color:transparent;background:#17336f}
.rg-specialty-card.has-image:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,25,62,.06),rgba(9,25,62,.82));z-index:-1}
.rg-specialty-card.has-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.rg-specialty-card.has-image small,.rg-specialty-card.has-image p{color:rgba(255,255,255,.82)}
.rg-specialty-card .rg-specialty-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#edf3ff;color:var(--rg-brand);box-shadow:0 8px 20px rgba(31,68,161,.08)}
.rg-specialty-card.has-image .rg-specialty-icon{background:rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(9px)}
.rg-specialty-card .rg-specialty-icon .rg-icon{width:24px;height:24px}
.rg-specialty-card .rg-specialty-count{display:inline-flex;align-items:center;margin-top:auto;font-size:11px;font-weight:750}

.rg-video-link.rg-lazy-video{appearance:none;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;text-align:inherit}
.rg-video-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:22px;opacity:0;visibility:hidden;transition:.2s ease}
.rg-video-modal.open{opacity:1;visibility:visible}
.rg-video-backdrop{position:absolute;inset:0;background:rgba(8,19,47,.72);backdrop-filter:blur(8px)}
.rg-video-dialog{position:relative;width:min(940px,100%);max-height:calc(100vh - 44px);overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.4);border-radius:26px;box-shadow:0 28px 90px rgba(5,17,49,.34)}
.rg-video-modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 19px;border-bottom:1px solid #e9eef7}
.rg-video-modal-head h2{margin:3px 0 0;font-size:20px}
.rg-video-frame{aspect-ratio:16/9;background:#071126;display:grid;place-items:center;overflow:hidden;border-radius:0 0 26px 26px}
.rg-video-frame iframe,.rg-video-frame video{width:100%;height:100%;border:0;display:block;object-fit:contain}

.rg-next-action{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:17px;border:1px solid #d5e2ff;border-radius:22px;background:linear-gradient(135deg,#f5f8ff,#eaf1ff);box-shadow:0 12px 35px rgba(34,76,177,.08)}
.rg-next-action h3{margin:4px 0 5px;font-size:20px}.rg-next-action p{margin:0;color:var(--rg-muted);line-height:1.8}

.rg-cancel-summary{display:grid;gap:12px;margin-bottom:16px}
.rg-cancel-session{display:grid;gap:4px;padding:15px 16px;border:1px solid #dce5f4;border-radius:17px;background:#f8faff}
.rg-cancel-session b{font-size:17px}.rg-cancel-session span{font-weight:750}.rg-cancel-session small{color:var(--rg-muted)}
.rg-cancel-effects{padding:15px 16px;border:1px solid #f1d9dd;border-radius:17px;background:#fff8f9}
.rg-cancel-effects p{margin:0 0 8px}.rg-cancel-effects ul{margin:0;padding-right:19px;color:#56617a;line-height:2}
.rg-cancel-confirm{padding:12px 13px;border-radius:15px;background:#fff8f9;border:1px solid #f1d9dd}

.rg-session-meta>span{align-items:center}.rg-session-meta .rg-icon{width:20px;height:20px;flex:0 0 20px}
.rg-session-meta>span:last-child .rg-icon{stroke-width:1.9}
.rg-deadline-date{font-variant-numeric:tabular-nums}

@media(max-width:760px){
  .rg-next-action{align-items:stretch;flex-direction:column}.rg-next-action .rg-btn{width:100%}
  .rg-video-modal{padding:10px}.rg-video-dialog{border-radius:20px}.rg-video-frame{border-radius:0 0 20px 20px}
  .rg-specialty-card{min-height:140px}.rg-specialty-card.has-image{min-height:174px}
}


/* Ravangram 11.3.1 — booking continuity, Persian validation and UI polish */
body.rg-sheet-open{overflow:hidden;overscroll-behavior:none}

/* Wait-list sheet: fixed header and internal content scroll, without the heavy side rail */
#waitlistSheet{
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  overflow:hidden;
  max-height:min(88vh,780px);
  padding-inline:0;
  padding-bottom:0;
  scrollbar-width:none;
}
#waitlistSheet::-webkit-scrollbar{display:none}
#waitlistSheet>.rg-sheet-handle{margin-bottom:12px}
#waitlistSheet>.rg-sheet-head{padding:0 24px 15px;border-bottom:1px solid #edf1f7}
#waitlistSheet form{margin:0;padding:18px 24px max(24px,env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;min-height:0;scrollbar-width:none}
#waitlistSheet form::-webkit-scrollbar{display:none;width:0;height:0}

/* Natural RTL deadline cards */
.rg-deadline{display:grid;grid-template-columns:1fr;align-content:start;gap:7px;min-height:112px;padding:13px 14px;text-align:right;direction:rtl}
.rg-deadline-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rg-deadline-head>small{font-size:11px;font-weight:800;color:var(--rg-ink2)}
.rg-deadline-state{font-size:9px;font-weight:850;color:var(--rg-brand);background:#eaf1ff;border-radius:999px;padding:4px 8px;white-space:nowrap}
.rg-deadline>b{display:block;direction:rtl!important;unicode-bidi:plaintext;text-align:right!important;font-size:15px;line-height:1.65;font-variant-numeric:normal}
.rg-deadline-date{display:block;max-width:none!important;text-align:right!important;direction:rtl;unicode-bidi:plaintext;line-height:1.7;font-size:10px!important}
.rg-deadline.is-expired .rg-deadline-state{color:#747d8d;background:#e8ebf0}
.rg-deadline.is-warning .rg-deadline-state{color:#8a5f00;background:#fff0bf}
.rg-deadline.is-critical .rg-deadline-state{color:#a52b36;background:#ffe0e4}

/* Booking policy modal keeps step four alive */
.rg-policy-modal{position:fixed;inset:0;z-index:10120;display:none;align-items:center;justify-content:center;padding:22px}
.rg-policy-modal.open{display:flex}
.rg-policy-backdrop{position:absolute;inset:0;background:rgba(5,15,43,.68);backdrop-filter:blur(7px)}
.rg-policy-dialog{position:relative;z-index:1;width:min(760px,100%);max-height:min(86vh,860px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;border:1px solid rgba(255,255,255,.55);border-radius:28px;overflow:hidden;box-shadow:0 30px 100px rgba(3,14,45,.34)}
.rg-policy-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:21px 23px 17px;border-bottom:1px solid #edf1f7;background:linear-gradient(135deg,#f7faff,#eef4ff)}
.rg-policy-dialog>header h2{margin:4px 0 0;font-size:23px}
.rg-policy-content{overflow:auto;overscroll-behavior:contain;padding:23px;line-height:2;color:var(--rg-ink2);scrollbar-width:thin;scrollbar-color:#c4d2ee transparent}
.rg-policy-content h3{margin:22px 0 6px;color:var(--rg-ink);font-size:17px}
.rg-policy-content p{margin:0 0 13px}.rg-policy-content ul{margin:0;padding-right:22px}
.rg-policy-dialog>footer{padding:15px 23px max(18px,env(safe-area-inset-bottom));border-top:1px solid #edf1f7;background:#fff;display:flex;justify-content:flex-end}

/* Unified custom tooltip */
.rg-verified{appearance:none;border:1px solid #cbdafa;background:rgba(255,255,255,.9);font:inherit;cursor:help}
.rg-tooltip-layer{position:fixed;z-index:10200;opacity:0;visibility:hidden;transform:translateY(5px);transition:.16s ease;background:#10234d;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:10px 12px;font-size:11px;font-weight:650;line-height:1.9;text-align:right;direction:rtl;box-shadow:0 14px 40px rgba(2,12,38,.25);pointer-events:none}
.rg-tooltip-layer.show{opacity:1;visibility:visible;transform:none}
.rg-tooltip-layer:after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#10234d;transform:translateX(-50%) rotate(45deg);border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.rg-tooltip-layer.is-below:after{top:-6px;bottom:auto;border:0;border-left:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.12)}

/* Fully Persian receipt uploader */
.rg-upload{display:grid;gap:9px;min-width:0}
.rg-upload-title{font-weight:800;color:var(--rg-ink2)}
.rg-upload-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.rg-upload-control{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;border:1px dashed #b9caeb;border-radius:19px;background:linear-gradient(135deg,#f9fbff,#f1f6ff);padding:14px 15px;cursor:pointer;transition:.18s ease;font-weight:inherit!important}
.rg-upload-control:hover,.rg-upload-control:focus-within{border-color:#6f95ef;background:#eef4ff;box-shadow:0 0 0 4px rgba(42,93,238,.07)}
.rg-upload-icon{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;background:#fff;color:var(--rg-brand);box-shadow:0 7px 20px rgba(24,55,141,.08)}
.rg-upload-icon .rg-icon{width:22px;height:22px}
.rg-upload-copy{display:grid;gap:3px;min-width:0}.rg-upload-copy b{font-size:13px}.rg-upload-copy small{color:var(--rg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rg-upload-button{background:var(--rg-brand);color:#fff;border-radius:12px;padding:9px 12px;font-size:11px;font-weight:850;white-space:nowrap}
.rg-upload-help{color:var(--rg-muted);line-height:1.7}
.rg-upload-preview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;border:1px solid #d5e1f7;border-radius:16px;background:#fff;padding:11px 12px}
.rg-upload-preview>span:nth-child(2){display:grid;gap:2px;min-width:0}.rg-upload-preview b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rg-upload-preview small{color:var(--rg-muted)}
.rg-upload-file-icon{width:42px;height:42px;border-radius:13px;background:#edf3ff;color:var(--rg-brand);display:grid;place-items:center;font-weight:900}.rg-upload-file-icon .rg-icon{width:21px;height:21px}

/* Persian inline form validation */
.rg-field-error{display:block;color:#ad2f3b;font-size:10px;font-weight:700;line-height:1.75;margin-top:1px}
.rg-field-error.hidden{display:none!important}
.rg-field-wrap.has-error input,.rg-field-wrap.has-error select,.rg-check-with-error.has-error,.rg-upload.has-error .rg-upload-control{border-color:#df8d96!important;background:#fff6f7!important;box-shadow:0 0 0 4px rgba(197,63,82,.07)!important}
.rg-check-with-error{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start}.rg-check-with-error>.rg-field-error{grid-column:1/-1}

@media(max-width:760px){
  #waitlistSheet{max-height:92vh;border-radius:24px 24px 0 0}
  #waitlistSheet>.rg-sheet-head{padding-inline:17px}
  #waitlistSheet form{padding-inline:17px}
  .rg-policy-modal{padding:0;align-items:flex-end}
  .rg-policy-dialog{width:100%;max-height:92vh;border-radius:26px 26px 0 0}
  .rg-policy-dialog>header,.rg-policy-content,.rg-policy-dialog>footer{padding-inline:18px}
  .rg-policy-dialog>footer .rg-btn{width:100%}
  .rg-upload-control{grid-template-columns:auto minmax(0,1fr)}
  .rg-upload-button{grid-column:1/-1;text-align:center}
  .rg-upload-preview{grid-template-columns:auto minmax(0,1fr)}
  .rg-upload-preview .rg-text-button{grid-column:1/-1;justify-self:start}
  .rg-deadline-grid{grid-template-columns:1fr}
  .rg-deadline{min-height:0}
}

/* Ravangram — specialty routing, mobile-safe sheets, Persian validation and contrast audit */

/* Independent specialty page and stable specialty-card rhythm */
.rg-section-footer{display:flex;justify-content:center;margin-top:22px}
.rg-specialties-page{padding:36px 0 110px}
.rg-specialty-page-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.rg-specialty-card{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto minmax(58px,1fr) auto;
  align-items:start;
  column-gap:15px;
  row-gap:12px;
  min-height:184px!important;
  padding:20px!important;
}
.rg-specialty-card:after{z-index:-1;pointer-events:none}
.rg-specialty-card>.rg-specialty-icon{
  position:static!important;
  grid-column:1;
  grid-row:1;
  margin:0!important;
  align-self:start;
}
.rg-specialty-card>.rg-specialty-copy{
  position:static!important;
  grid-column:2;
  grid-row:1/3;
  display:grid;
  align-content:start;
  gap:7px;
  min-width:0;
  color:inherit;
}
.rg-specialty-card>.rg-specialty-copy h3{margin:0!important;line-height:1.55;overflow-wrap:anywhere}
.rg-specialty-card>.rg-specialty-copy p{margin:0!important;line-height:1.9;overflow-wrap:anywhere}
.rg-specialty-card>.rg-specialty-count{
  position:static!important;
  grid-column:1/-1;
  grid-row:3;
  display:inline-flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  margin:0!important;
  align-self:end;
  color:var(--rg-brand);
}
.rg-specialty-card>.rg-specialty-count .rg-icon{width:16px;height:16px}
.rg-specialty-card.has-image>.rg-specialty-count{color:#fff}
.rg-specialty-card.has-image>.rg-specialty-copy p{color:rgba(255,255,255,.84)!important}
.rg-specialty-card:focus{outline:none}
.rg-specialty-card:focus-visible{box-shadow:0 0 0 4px rgba(42,93,238,.16),var(--rg-shadow-sm);border-color:#7398ed}

/* Headings with optional contextual help */
.rg-heading-with-help{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0}
.rg-heading-with-help h2,.rg-heading-with-help h3{margin-block:0}
.rg-help-button{
  width:30px;height:30px;min-width:30px;padding:0;border:1px solid #cbd9f5;border-radius:10px;
  background:#f3f7ff;color:var(--rg-brand);display:grid;place-items:center;font:800 14px/1 Vazirmatn,Tahoma,sans-serif;
  cursor:help;box-shadow:0 5px 14px rgba(34,76,177,.06)
}
.rg-help-button-small{width:26px;height:26px;min-width:26px;border-radius:9px;font-size:12px}
.rg-help-button:hover{background:#eaf1ff;border-color:#8faced}
.rg-help-button:focus{outline:none}
.rg-help-button:focus-visible{box-shadow:0 0 0 4px rgba(42,93,238,.14)}

/* Radio controls: one clear circle, no rectangular browser focus artifact */
.rg-choice{position:relative;align-items:flex-start}
.rg-choice input[type="radio"]{
  -webkit-appearance:none!important;appearance:none!important;
  flex:0 0 22px;width:22px!important;height:22px!important;min-width:22px;
  margin:3px 0 0!important;padding:0!important;border:2px solid #aeb9ce!important;border-radius:50%!important;
  background:#fff!important;box-shadow:none!important;outline:none!important;cursor:pointer;
}
.rg-choice input[type="radio"]:checked{
  border-color:var(--rg-brand)!important;
  background:radial-gradient(circle at center,var(--rg-brand) 0 5px,#fff 6px)!important;
}
.rg-choice input[type="radio"]:focus{outline:none!important;box-shadow:none!important}
.rg-choice input[type="radio"]:focus-visible{box-shadow:0 0 0 4px rgba(42,93,238,.14)!important}
.rg-choice.selected{border:1.5px solid #86a6ef;background:#f4f7ff;box-shadow:0 8px 24px rgba(42,93,238,.06)}
.rg-choice:has(input:focus-visible){border-color:#7398ed}

/* Selected dates must remain readable on the blue card */
.rg-date-strip .rg-date-card.selected{
  background:linear-gradient(145deg,#194cdb,#0879ef)!important;
  border-color:#1f5ee8!important;
  box-shadow:0 12px 26px rgba(24,85,221,.22);
}
.rg-date-strip .rg-date-card.selected b,
.rg-date-strip .rg-date-card.selected small{color:#fff!important;opacity:1!important;text-shadow:0 1px 2px rgba(0,0,0,.12)}
.rg-date-strip .rg-date-card.selected b{font-weight:900}

/* Method cards: no lingering raw focus outline */
.rg-method{outline:none;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.rg-method:focus{outline:none}
.rg-method:focus-visible{box-shadow:0 0 0 4px rgba(42,93,238,.13)}
.rg-method.selected{border:1.5px solid var(--rg-brand);background:#f2f6ff;box-shadow:0 9px 24px rgba(42,93,238,.08)}

/* Logout stays secondary but readable */
.rg-portal-head-actions #logoutLookup{
  color:#fff!important;background:rgba(255,255,255,.20)!important;border-color:rgba(255,255,255,.58)!important;
  font-weight:850;text-shadow:0 1px 2px rgba(0,0,0,.14)
}
.rg-portal-head-actions #logoutLookup:hover{background:rgba(255,255,255,.30)!important;border-color:#fff!important}
.rg-portal-head-actions #logoutLookup:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(255,255,255,.24)}

/* All custom validation is Persian and inline */
.rg-inline-validation{display:none;color:#aa2f3b;font-size:11px;font-weight:750;line-height:1.8;margin-top:2px}
.rg-inline-validation.show{display:block}
.rg-modern-field.has-error input,.rg-modern-field.has-error textarea,.rg-modern-field.has-error select,
label.has-error>input,label.has-error>textarea,label.has-error>select,.rg-check.has-error{
  border-color:#dc8792!important;background:#fff7f8!important;box-shadow:0 0 0 4px rgba(197,63,82,.07)!important
}

/* Wait-list sheet: scrollable content + always-visible safe footer */
#waitlistSheet{
  height:min(88dvh,800px);max-height:min(88dvh,800px);
  grid-template-rows:auto auto minmax(0,1fr)!important;
  padding:10px 0 0!important;overflow:hidden!important;
}
#waitlistSheet form{
  display:grid!important;grid-template-rows:minmax(0,1fr) auto;gap:0!important;
  margin:0!important;padding:0!important;overflow:hidden!important;min-height:0
}
#waitlistSheet .rg-sheet-form-scroll{
  min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  padding:18px 24px 22px;display:grid;gap:14px;scrollbar-width:thin;scrollbar-color:#c9d5ec transparent
}
#waitlistSheet .rg-sheet-form-scroll::-webkit-scrollbar{width:5px}
#waitlistSheet .rg-sheet-form-scroll::-webkit-scrollbar-thumb{background:#c9d5ec;border-radius:99px}
#waitlistSheet .rg-sheet-footer{
  position:relative;z-index:2;padding:13px 24px max(18px,env(safe-area-inset-bottom));
  border-top:1px solid #e8edf6;background:rgba(255,255,255,.98);box-shadow:0 -10px 28px rgba(17,39,91,.06)
}
body.rg-sheet-open .rg-bottom-nav,
body.rg-sheet-open .rg-support-fab,
body.rg-sheet-open .rg-mobile-cta{visibility:hidden!important;pointer-events:none!important;transform:translateY(120%)!important}

/* Receipt help uses the real configured size */
.rg-upload-title.rg-heading-with-help{justify-content:flex-start}
.rg-upload-help{font-weight:650;color:#52617c}

/* Contextual help becomes a compact bottom card on touch screens */
@media (hover:none),(max-width:760px){
  .rg-tooltip-layer.is-help{
    position:fixed!important;left:16px!important;right:16px!important;top:auto!important;
    bottom:calc(18px + env(safe-area-inset-bottom))!important;max-width:none!important;width:auto!important;
    border-radius:18px;padding:14px 16px;font-size:12px;line-height:2;box-shadow:0 20px 70px rgba(2,12,38,.30)
  }
  .rg-tooltip-layer.is-help:after{display:none}
}

@media(max-width:760px){
  .rg-specialty-page-grid{grid-template-columns:1fr}
  .rg-specialties-page{padding:24px 16px 105px}
  .rg-specialty-card{min-height:154px!important;padding:17px!important;grid-template-columns:46px minmax(0,1fr);column-gap:12px}
  .rg-specialty-card>.rg-specialty-icon{width:46px;height:46px}
  #waitlistSheet{height:calc(100dvh - 8px);max-height:calc(100dvh - 8px);border-radius:26px 26px 0 0}
  #waitlistSheet>.rg-sheet-head{padding:0 17px 14px!important}
  #waitlistSheet .rg-sheet-form-scroll{padding:17px 17px 22px}
  #waitlistSheet .rg-sheet-footer{padding:12px 17px max(18px,env(safe-area-inset-bottom))}
}

/* Ravangram 11.3.3 — unified selects, sheets, icon alignment and role entry points */
.rg-smart-select{position:relative;display:block;min-width:0}
.rg-smart-select-native{
  position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;
  clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;
  opacity:0!important;pointer-events:none!important;margin:0!important;padding:0!important;border:0!important
}
.rg-smart-select-trigger{
  width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 15px;border:1px solid #d6dfef;border-radius:17px;background:#fff;color:var(--rg-text);
  font:750 14px/1.7 Vazirmatn,Tahoma,sans-serif;text-align:right;cursor:pointer;
  box-shadow:0 5px 16px rgba(23,50,104,.035);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.rg-smart-select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rg-smart-select-trigger .rg-icon{width:18px;height:18px;flex:0 0 18px;transition:transform .18s ease}
.rg-smart-select.open .rg-smart-select-trigger{border-color:#6f98f2;box-shadow:0 0 0 4px rgba(42,93,238,.10);background:#fbfdff}
.rg-smart-select.open .rg-smart-select-trigger .rg-icon{transform:rotate(180deg)}
.rg-smart-select.is-disabled{opacity:.58}.rg-smart-select.is-disabled .rg-smart-select-trigger{cursor:not-allowed;background:#f4f6fa}
.rg-smart-select-panel{
  position:fixed;z-index:10050;display:none;max-height:min(360px,70vh);overflow:hidden;
  border:1px solid #dce5f4;border-radius:18px;background:rgba(255,255,255,.985);
  box-shadow:0 22px 60px rgba(18,38,84,.18);backdrop-filter:blur(14px)
}
.rg-smart-select.open .rg-smart-select-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.rg-smart-select-mobile-head{display:none}
.rg-smart-select-search{display:flex;align-items:center;gap:8px;padding:10px;border-bottom:1px solid #edf1f7}
.rg-smart-select-search.hidden{display:none!important}
.rg-smart-select-search .rg-icon{width:18px;height:18px;color:#70809d;flex:0 0 18px}
.rg-smart-select-search input{
  min-height:40px!important;width:100%;border:0!important;border-radius:12px!important;background:#f6f8fc!important;
  box-shadow:none!important;padding:8px 10px!important;font:650 13px/1.7 Vazirmatn,Tahoma,sans-serif!important
}
.rg-smart-select-options{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:7px;scrollbar-width:thin;scrollbar-color:#c7d4ec transparent}
.rg-smart-select-options::-webkit-scrollbar{width:5px}.rg-smart-select-options::-webkit-scrollbar-thumb{background:#c7d4ec;border-radius:99px}
.rg-smart-select-options button{
  width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  border:0;border-radius:12px;background:transparent;color:#243657;padding:9px 11px;text-align:right;
  font:700 13px/1.75 Vazirmatn,Tahoma,sans-serif;cursor:pointer;transition:background .15s ease,color .15s ease
}
.rg-smart-select-options button:hover,.rg-smart-select-options button:focus-visible{outline:none;background:#f0f5ff;color:#174dc9}
.rg-smart-select-options button[aria-selected="true"]{background:#eaf2ff;color:#174dc9;font-weight:850}
.rg-smart-select-options button:disabled{opacity:.45;cursor:not-allowed}
.rg-smart-select-check{width:18px;height:18px;flex:0 0 18px}
.rg-smart-select-empty{padding:16px;text-align:center;color:#73819d;font-size:12px}.rg-smart-select-empty.hidden{display:none!important}
.has-error>.rg-smart-select .rg-smart-select-trigger,.rg-modern-field.has-error .rg-smart-select-trigger{border-color:#dc8792!important;background:#fff7f8!important;box-shadow:0 0 0 4px rgba(197,63,82,.07)!important}
body.rg-select-open{overflow:hidden}

/* Every public sheet uses the same clean internal scrolling model. */
.rg-sheet{overflow:hidden!important;max-height:min(88dvh,820px);display:flex!important;flex-direction:column}
.rg-sheet>.rg-sheet-handle,.rg-sheet>.rg-sheet-head{flex:0 0 auto}
.rg-sheet>.rg-support-links,.rg-sheet>.rg-cancel-summary,.rg-sheet>form,.rg-sheet>.rg-sheet-scroll{min-height:0}
#supportSheet>.rg-support-links{overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(20px,env(safe-area-inset-bottom))}
#cancelSheet>.rg-cancel-summary{flex:0 0 auto}
#cancelSheet>form,#reviewSheet>form{
  min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(22px,env(safe-area-inset-bottom));
  scrollbar-width:none
}
#cancelSheet>form::-webkit-scrollbar,#reviewSheet>form::-webkit-scrollbar,#supportSheet>.rg-support-links::-webkit-scrollbar{width:0;height:0}
.rg-sheet,.rg-policy-dialog,.rg-date-picker-dialog,.rg-receipt-dialog,.rg-video-dialog{scrollbar-width:none}
.rg-sheet::-webkit-scrollbar,.rg-policy-dialog::-webkit-scrollbar,.rg-date-picker-dialog::-webkit-scrollbar,.rg-receipt-dialog::-webkit-scrollbar,.rg-video-dialog::-webkit-scrollbar{width:0;height:0}

/* Session metadata icons have fixed geometry and cannot be clipped. */
.rg-session-meta>span{display:flex;align-items:center;gap:8px;min-width:0}
.rg-session-meta .rg-icon,.rg-method-icon .rg-icon{overflow:visible;flex:0 0 auto}
.rg-session-meta .rg-icon{width:21px;height:21px}
.rg-method-icon{display:grid;place-items:center;overflow:visible}
.rg-method-icon .rg-icon{width:34px;height:34px}

/* Staff entry point in the public account screen. */
.rg-staff-account-card{border-color:#b9ccf4!important;background:linear-gradient(145deg,#f7faff,#edf4ff)!important}
.rg-staff-account-card .rg-icon{color:var(--rg-brand)}

@media(max-width:760px){
  .rg-smart-select-panel{
    left:0!important;right:0!important;top:auto!important;bottom:0!important;width:100%!important;max-height:min(82dvh,680px);
    border-radius:26px 26px 0 0;border-bottom:0;padding-bottom:max(10px,env(safe-area-inset-bottom));
    box-shadow:0 -20px 70px rgba(13,31,72,.24)
  }
  .rg-smart-select-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid #edf1f7}
  .rg-smart-select-mobile-head strong{font-size:16px;color:#14264d}
  .rg-smart-select-mobile-head button{width:38px;height:38px;border:1px solid #dbe4f3;border-radius:12px;background:#fff;color:#243657;display:grid;place-items:center}
  .rg-smart-select-mobile-head .rg-icon{width:20px;height:20px}
  .rg-smart-select-search{padding:12px 16px}
  .rg-smart-select-options{padding:8px 12px 14px}
  .rg-smart-select-options button{min-height:50px;border-radius:14px;font-size:14px;padding-inline:14px}
  body.rg-select-open:before{content:"";position:fixed;inset:0;z-index:10040;background:rgba(10,22,50,.38);backdrop-filter:blur(2px)}
  .rg-sheet{max-height:calc(100dvh - 8px)}
}

/* Ravangram 11.4 RC1 — integrity, credit ledger and safer account interactions */
.rg-smart-select-panel.is-visible{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto;
}
.rg-smart-select-panel:not(.is-visible){display:none!important}
body.rg-select-open{overflow:auto}

/* Dropdowns are portalled to body; keep their geometry independent from transformed cards/sheets. */
.rg-smart-select-panel{
  contain:layout paint;
  transform:translateZ(0);
  margin:0!important;
}
.rg-smart-select-panel.open-above{transform-origin:bottom center}
.rg-smart-select-panel:not(.open-above){transform-origin:top center}

/* FAQ/accordion: title and affordance always occupy predictable columns. */
.rg-faq-list details{overflow:hidden}
.rg-faq-list summary{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:center;
  gap:14px;
  padding:18px 0!important;
  padding-left:0!important;
  min-height:64px;
  color:var(--rg-text)!important;
  background:transparent!important;
  opacity:1!important;
}
.rg-faq-list summary::after{
  position:static!important;
  grid-column:2;
  grid-row:1;
  width:32px!important;
  height:32px!important;
  border-radius:11px!important;
  font-size:20px!important;
  line-height:1!important;
  align-self:center;
}
.rg-faq-list summary>*{grid-column:1;min-width:0}
.rg-faq-list .rg-faq-answer{padding:0 0 20px!important;color:var(--rg-muted)!important;opacity:1!important}
.rg-faq-list details[open] .rg-faq-answer{animation:rgAccordionIn .18s ease both}
@keyframes rgAccordionIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Nearest time is now an action below the identity area, never a badge over the face. */
.rg-featured-next-slot{
  width:min(100%,430px);
  border:1px solid rgba(255,255,255,.28);
  border-radius:17px;
  background:rgba(255,255,255,.13);
  color:#fff;
  padding:11px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:right;
  backdrop-filter:blur(10px);
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.rg-featured-next-slot:hover,.rg-featured-next-slot:focus-visible{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.48);outline:none;transform:translateY(-1px)}
.rg-featured-next-slot span{display:grid;gap:2px;min-width:0}
.rg-featured-next-slot small{color:rgba(255,255,255,.72);font-size:10px}
.rg-featured-next-slot b{color:#fff;font-size:13px;white-space:normal}
.rg-featured-next-slot em{font-style:normal;font-size:11px;font-weight:850;white-space:nowrap;background:#fff;color:var(--rg-brand-dark);border-radius:999px;padding:7px 10px}
.rg-featured-badge{display:none!important}
.rg-nearest-mini.is-action{width:100%;border:1px solid #ccdafa;cursor:pointer;text-align:right;display:flex;align-items:center;justify-content:space-between;gap:10px;color:inherit}
.rg-nearest-mini.is-action:hover,.rg-nearest-mini.is-action:focus-visible{outline:none;background:#edf4ff;border-color:#92b1f5}
.rg-nearest-mini>span{display:grid;gap:3px;min-width:0}
.rg-nearest-mini em{font-style:normal;color:var(--rg-brand);font-size:10px;font-weight:850;white-space:nowrap}

/* Pending package purchases remain visible before credit activation. */
.rg-pending-package{border-color:#ead8a2;background:linear-gradient(145deg,#fffdf7,#fff8e6)}
.rg-pending-package.is-attention{border-color:#efc5ca;background:linear-gradient(145deg,#fffafa,#fff0f2)}
.rg-pending-package-state{display:grid;gap:6px;padding:11px 12px;border-radius:14px;background:rgba(255,255,255,.68)}
.rg-pending-package-state>span{font-size:12px;font-weight:900;color:#725815}
.rg-pending-package.is-attention .rg-pending-package-state>span{color:#a33849}
.rg-pending-package-state small{line-height:1.9;color:var(--rg-muted)}

/* Notification severity is visible but calm. */
.rg-notification.is-important{border-inline-start:4px solid #e5ad25}
.rg-notification.is-urgent{border-inline-start:4px solid #d34b5d;background:#fff8f9}
.rg-notification.is-urgent .rg-notification-dot{background:#d34b5d}

/* Cancellation and other destructive sheets keep the decision buttons visible. */
#cancelSheet>.rg-sheet-head{flex:0 0 auto}
#cancelSheet .rg-cancel-form{display:flex!important;flex:1 1 auto;min-height:0;padding:0!important;overflow:hidden!important}
#cancelSheet .rg-cancel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 24px 22px;scrollbar-width:thin;scrollbar-color:#c9d5ec transparent}
#cancelSheet .rg-cancel-scroll::-webkit-scrollbar{width:5px}
#cancelSheet .rg-cancel-scroll::-webkit-scrollbar-thumb{background:#c9d5ec;border-radius:99px}
.rg-sheet-action-footer{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:13px 24px max(18px,env(safe-area-inset-bottom));
  border-top:1px solid #e9eef7;
  background:rgba(255,255,255,.97);
  box-shadow:0 -12px 30px rgba(24,50,105,.07);
  position:relative;
  z-index:3;
}
.rg-sheet-action-footer .rg-btn{width:100%;margin:0!important}

@media(max-width:760px){
  body.rg-select-open{overflow:hidden}
  .rg-smart-select-panel.is-visible{display:grid!important}
  .rg-featured-next-slot{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto}
  #cancelSheet .rg-cancel-scroll{padding:0 17px 20px}
  .rg-sheet-action-footer{padding:12px 17px max(18px,env(safe-area-inset-bottom));grid-template-columns:1fr}
  .rg-sheet-action-footer .rg-btn-danger{order:1}
  .rg-sheet-action-footer .rg-btn-secondary{order:2}
}


/* Ravangram 11.4 RC1 — credit ledger */
.rg-credit-history{margin-top:12px;border:1px solid var(--rg-border,#e5e7eb);border-radius:14px;background:rgba(255,255,255,.72);overflow:hidden}
.rg-credit-history summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px}
.rg-credit-history summary::-webkit-details-marker{display:none}
.rg-credit-history summary::after{content:"+";font-size:1.15rem;line-height:1;transition:transform .2s ease}
.rg-credit-history[open] summary::after{transform:rotate(45deg)}
.rg-credit-history>div{border-top:1px solid var(--rg-border,#e5e7eb);padding:4px 14px 10px;max-height:260px;overflow:auto;overscroll-behavior:contain}
.rg-credit-history p{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:0;padding:10px 0;border-bottom:1px dashed var(--rg-border,#e5e7eb)}
.rg-credit-history p:last-child{border-bottom:0}
.rg-credit-history span{font-weight:650}
.rg-credit-history small{display:block;text-align:left;line-height:1.7;color:var(--rg-muted,#667085)}
@media(max-width:640px){.rg-credit-history p{display:block}.rg-credit-history small{text-align:right;margin-top:3px}}


/* Ravangram 11.4 RC1.2 — precision UX and management improvements */
/* Cancellation sheet: vertical structure, scrollable body and fixed safe footer. */
#cancelSheet{width:min(620px,100%);padding-inline:0!important;padding-bottom:0!important;max-height:min(88dvh,820px)}
#cancelSheet>.rg-sheet-handle{margin-bottom:12px}
#cancelSheet>.rg-sheet-head{padding:0 24px 16px;border-bottom:1px solid #edf1f7}
#cancelSheet .rg-cancel-form{flex-direction:column!important;gap:0!important;margin:0!important;width:100%;min-width:0}
#cancelSheet .rg-cancel-scroll{display:grid;align-content:start;gap:14px;width:100%;min-width:0;padding-top:18px}
#cancelSheet .rg-cancel-summary{display:grid;gap:12px;min-width:0}
#cancelSheet .rg-cancel-session,#cancelSheet .rg-cancel-effects{min-width:0;overflow-wrap:anywhere}
#cancelSheet .rg-cancel-effects strong{display:inline;color:#8d2535}
#cancelSheet .rg-cancel-effects li{margin-bottom:4px}
#cancelSheet .rg-modern-field textarea{width:100%;min-height:92px;resize:vertical}
#cancelSheet .rg-cancel-confirm{margin:0}
#cancelSheet .rg-sheet-action-footer{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#cancelSheet .rg-sheet-action-footer .rg-btn{min-height:50px;height:auto;padding:12px 15px;line-height:1.75;white-space:normal}

/* Account refresh is visible but does not blank or jump the page. */
#accountDashboard{position:relative}
#accountDashboard.is-refreshing:after{content:"در حال دریافت آخرین اطلاعات…";position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:10300;transform:translateX(-50%);background:#10234d;color:#fff;border-radius:999px;padding:10px 16px;font-size:11px;font-weight:800;box-shadow:0 14px 38px rgba(4,17,49,.22);white-space:nowrap;pointer-events:none}

/* Credit ledger: high contrast, readable hierarchy and explicit before/after values. */
.rg-credit-history{border-color:#b8c9ee;background:#f8fbff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.75)}
.rg-credit-history summary{padding:13px 15px;color:#102653;background:#eef4ff}
.rg-credit-history summary>span{font-weight:900;color:#102653}
.rg-credit-history summary>small{font-size:10px;color:#526687;font-weight:700;margin-inline-start:auto}
.rg-credit-history summary::after{color:#285ce8}
.rg-credit-history>div{padding:10px;max-height:360px;background:#fff}
.rg-credit-history-item{display:grid;gap:11px;margin:0 0 9px;padding:13px;border:1px solid #dbe5f6;border-radius:14px;background:#fff;color:#13264b}
.rg-credit-history-item:last-child{margin-bottom:0}
.rg-credit-history-item header{display:flex;align-items:flex-start;gap:10px}
.rg-credit-change{width:36px;height:36px;flex:0 0 36px;border-radius:12px;display:grid;place-items:center;background:#edf3ff;color:#2459df;font-weight:950;direction:ltr}
.rg-credit-history-item.is-plus .rg-credit-change{background:#e9f8f0;color:#147747}
.rg-credit-history-item.is-minus .rg-credit-change{background:#fff1f2;color:#b52d42}
.rg-credit-history-item header>div{display:grid;gap:3px;min-width:0}
.rg-credit-history-item header b{font-size:13px;line-height:1.8;color:#12264d}
.rg-credit-history-item header small{font-size:10px;line-height:1.8;color:#5e6e8a}
.rg-credit-history-item dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.rg-credit-history-item dl>div{display:grid;gap:2px;padding:8px 9px;border-radius:11px;background:#f6f8fc;min-width:0}
.rg-credit-history-item dt{font-size:9px;color:#71809a;font-weight:700}
.rg-credit-history-item dd{margin:0;font-size:11px;font-weight:850;color:#172b54;line-height:1.75;overflow-wrap:anywhere}
.rg-credit-meta{line-height:1.9}
.rg-credit-meta span:last-child{direction:rtl;unicode-bidi:plaintext;text-align:left}

/* Portalled selects must never alter document geometry on desktop. */
@media(min-width:761px){
  body.rg-select-open{overflow:visible!important;padding-right:0!important}
  .rg-smart-select-panel.is-visible{position:fixed!important}
}
@media(max-width:760px){
  #cancelSheet{max-height:calc(100dvh - 8px);border-radius:26px 26px 0 0}
  #cancelSheet>.rg-sheet-head{padding:0 17px 14px}
  #cancelSheet .rg-cancel-scroll{padding:16px 17px 20px}
  #cancelSheet .rg-sheet-action-footer{grid-template-columns:1fr;padding:11px 17px calc(max(18px,env(safe-area-inset-bottom)) + 2px)}
  #cancelSheet .rg-sheet-action-footer .rg-btn{min-height:48px}
  #accountDashboard.is-refreshing:after{max-width:calc(100vw - 32px);font-size:10px}
  .rg-credit-history-item dl{grid-template-columns:1fr}
  .rg-credit-history summary{align-items:center;flex-wrap:wrap}
  .rg-credit-history summary>small{width:100%;margin:0}
  .rg-credit-meta span:last-child{text-align:right}
}

/* =========================================================
   Ravangram 11.4 RC1.2 — therapist choice, mobile filters,
   calmer scrollbars and clearer secondary actions
   ========================================================= */
.rg-therapist-placeholder{
  width:100%;height:100%;min-height:120px;display:grid;place-content:center;justify-items:center;gap:8px;
  background:linear-gradient(145deg,#eef3ff,#dce8ff);color:#2458d7;text-align:center;overflow:hidden
}
.rg-therapist-placeholder b{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 12px 30px rgba(30,72,170,.13);font-size:30px;font-weight:900}
.rg-therapist-placeholder small{font-size:11px;color:#61749a;font-weight:700}
.rg-featured-image .rg-therapist-placeholder{position:absolute;inset:0;min-height:100%;background:linear-gradient(145deg,#dfe9ff,#edf4ff)}
.rg-featured-image .rg-therapist-placeholder b{width:112px;height:112px;font-size:42px}

.rg-booking-choice-sheet{width:min(620px,calc(100% - 24px))}
.rg-booking-choice-body{padding:4px 24px max(24px,env(safe-area-inset-bottom));display:grid;gap:12px;overflow-y:auto;min-height:0}
.rg-booking-choice-card{width:100%;border:1px solid #dce5f5;background:#fff;border-radius:20px;padding:17px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;text-align:right;color:var(--rg-ink);cursor:pointer;transition:.18s ease}
.rg-booking-choice-card:hover,.rg-booking-choice-card:focus-visible{outline:0;border-color:#7ba0f5;box-shadow:0 12px 35px rgba(35,80,185,.12);transform:translateY(-1px)}
.rg-booking-choice-card.is-primary{background:linear-gradient(135deg,#f5f8ff,#eaf1ff);border-color:#b9ccf8}
.rg-booking-choice-card>span:nth-child(2){display:grid;gap:5px;min-width:0}
.rg-booking-choice-card b{font-size:15px;line-height:1.7}
.rg-booking-choice-card small{font-size:12px;line-height:1.8;color:var(--rg-muted)}
.rg-booking-choice-icon{width:48px;height:48px;border-radius:15px;background:#edf3ff;color:var(--rg-brand);display:grid;place-items:center}
.rg-booking-choice-icon .rg-icon{width:25px;height:25px}
.rg-booking-choice-arrow{width:20px;height:20px;color:#7890b9}

.rg-date-strip-shell{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:center;min-width:0}
.rg-date-scroll{width:40px;height:40px;border:1px solid #dce5f3;border-radius:13px;background:#fff;color:#34598e;display:grid;place-items:center;cursor:pointer}
.rg-date-scroll:hover,.rg-date-scroll:focus-visible{outline:0;border-color:#7da2f1;background:#f4f7ff}
.rg-date-scroll .rg-icon{width:18px;height:18px}
.rg-date-strip{scrollbar-width:thin!important;scrollbar-color:#c7d3e7 transparent!important;overscroll-behavior-inline:contain}
.rg-date-strip::-webkit-scrollbar{height:5px!important}
.rg-date-strip::-webkit-scrollbar-track{background:transparent!important}
.rg-date-strip::-webkit-scrollbar-thumb{background:#c7d3e7!important;border-radius:99px!important}
.rg-date-strip:hover::-webkit-scrollbar-thumb{background:#9eb0ce!important}

.rg-calendar-actions{position:relative;display:inline-block;min-width:145px}
.rg-calendar-actions>summary{list-style:none;cursor:pointer;min-height:39px;display:flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid #dbe4f2;border-radius:12px;color:#2453bc;background:#fff;font-size:11px;font-weight:800}
.rg-calendar-actions>summary::-webkit-details-marker{display:none}
.rg-calendar-actions[open]>summary{border-color:#85a7ed;background:#f3f7ff}
.rg-calendar-actions>div{position:absolute;z-index:40;bottom:calc(100% + 7px);right:0;min-width:190px;padding:7px;border:1px solid #dce5f3;border-radius:14px;background:#fff;box-shadow:0 16px 42px rgba(16,45,105,.16);display:grid;gap:4px}
.rg-calendar-actions>div .rg-text-button{width:100%;justify-content:flex-start;text-align:right;padding:10px 12px;border-radius:9px}
.rg-calendar-actions>div .rg-text-button:hover{background:#f1f5ff}

.rg-guidance .rg-support-hours{color:#dce9ff!important;font-size:12px;font-weight:800;line-height:1.9;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 11px;width:max-content;max-width:100%}

.rg-waitlist-any{display:grid!important;place-items:center;background:#edf3ff!important;color:#2457d7}
.rg-waitlist-any .rg-icon{width:29px;height:29px}
.rg-field-hint{display:block;margin-top:5px;color:#72819e;font-size:11px;line-height:1.8}
#waitlistTherapistSummary{min-height:78px}

/* Keep every part of a mobile select in its own row. The search field can no
   longer sit underneath the scrolling options. */
@media(max-width:760px){
  .rg-smart-select-panel.is-visible{
    position:fixed!important;z-index:10050!important;inset:auto 0 0 0!important;width:100%!important;
    max-width:none!important;max-height:min(84dvh,760px)!important;margin:0!important;border-radius:24px 24px 0 0!important;
    overflow:hidden!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;
    padding:0 0 env(safe-area-inset-bottom)!important;box-shadow:0 -24px 70px rgba(9,25,62,.30)!important
  }
  .rg-smart-select-mobile-head{grid-row:1;position:relative;z-index:3;background:#fff}
  .rg-smart-select-search{grid-row:2;position:relative;z-index:3;background:#fff;border-bottom:1px solid #e8eef8!important}
  .rg-smart-select-options{grid-row:3;min-height:120px!important;overflow-y:auto!important;background:#fff;padding-bottom:18px!important}
  .rg-smart-select-empty{grid-row:4;background:#fff}
  .rg-smart-select-search input{font-size:16px!important;min-height:46px!important;background:#f7f9fd!important}
  .rg-date-strip-shell{grid-template-columns:minmax(0,1fr)}
  .rg-date-scroll{display:none}
  .rg-date-strip{scrollbar-width:none!important;padding-bottom:7px!important}
  .rg-date-strip::-webkit-scrollbar{display:none!important}
  .rg-calendar-actions{width:100%}
  .rg-calendar-actions>summary{width:100%}
  .rg-calendar-actions>div{position:static;margin-top:6px;box-shadow:none;min-width:0}
  .rg-booking-choice-sheet{width:calc(100% - 8px);max-height:calc(100dvh - 8px)!important}
  .rg-booking-choice-body{padding:4px 17px max(18px,env(safe-area-inset-bottom))}
  .rg-booking-choice-card{grid-template-columns:auto minmax(0,1fr);padding:15px}
  .rg-booking-choice-arrow{display:none}
}

/* RC1.2 — booking therapist identity and explicit change action */
.rg-summary-avatar{display:grid;place-items:center;width:54px;height:54px;flex:0 0 54px;border-radius:15px;background:linear-gradient(145deg,#e5edff,#f3f7ff);color:#174dcc;font-size:20px;font-weight:900;border:1px solid #d7e2f8}
.rg-summary-head .rg-change-therapist{margin-inline-start:auto;white-space:nowrap}
@media(max-width:680px){.rg-summary-head{flex-wrap:wrap}.rg-summary-head .rg-change-therapist{width:100%;margin:8px 0 0;justify-content:center}}


/* =========================================================
   Ravangram 11.4 RC1.4 — system-wide interaction consistency
   ========================================================= */
.rg-featured-nav{width:44px;height:44px;font-size:0;transition:transform .18s ease,background .18s ease,border-color .18s ease;box-shadow:0 10px 28px rgba(0,0,0,.18)}
.rg-featured-nav .rg-icon{width:22px;height:22px}
.rg-featured-nav:hover,.rg-featured-nav:focus-visible{outline:0;background:rgba(25,81,220,.86);border-color:#fff;transform:translateY(-50%) scale(1.06)}
.rg-featured-prev{right:18px}.rg-featured-next{left:18px}
.rg-featured-overlay{padding-inline:38px}

.rg-date-strip-shell{position:relative;grid-template-columns:46px minmax(0,1fr) 46px;gap:12px}
.rg-date-scroll{width:44px;height:44px;border-radius:50%;box-shadow:0 8px 22px rgba(31,65,130,.08);transition:.16s ease}
.rg-date-scroll:hover,.rg-date-scroll:focus-visible{transform:translateY(-1px);box-shadow:0 12px 26px rgba(31,65,130,.14)}
.rg-date-card{position:relative;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;outline:0}
.rg-date-card:hover{transform:translateY(-3px);border-color:#82a5ef;background:#f6f9ff;box-shadow:0 12px 28px rgba(29,75,175,.11)}
.rg-date-card:focus-visible{border-color:#2b64e8;box-shadow:0 0 0 4px rgba(42,93,238,.15),0 12px 28px rgba(29,75,175,.10)}
.rg-date-card.is-today:not(.selected){border-color:#75a2f4;background:#f4f8ff}
.rg-date-card.is-today em{position:absolute;top:7px;left:8px;border-radius:999px;padding:2px 6px;background:#e5efff;color:#2056c7;font-style:normal;font-size:8px;font-weight:900}
.rg-date-card.selected{transform:translateY(-3px)}
.rg-date-card.selected em{background:rgba(255,255,255,.20);color:#fff}
.rg-date-card:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.4);transform:none;box-shadow:none}

.rg-package-option{display:grid;align-content:start;gap:9px;text-align:right;min-width:0}
.rg-package-option h3{margin:0;font-size:18px;line-height:1.65;overflow-wrap:anywhere}
.rg-package-option .rg-package-session-count{display:inline-flex;width:max-content;max-width:100%;border-radius:999px;padding:5px 9px;background:#edf3ff;color:#2456cb;font-size:10px;font-weight:900}
.rg-package-option .rg-package-per-session{margin:0;color:#566987;font-weight:750}
.rg-package-option p{margin:0;color:var(--rg-muted);font-size:11px;line-height:1.8}
.rg-package-option.selected .rg-package-session-count{background:rgba(42,93,238,.12)}

.rg-calendar-actions>div{transform-origin:bottom right;animation:rgPopoverIn .14s ease both}
@keyframes rgPopoverIn{from{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:none}}
.rg-calendar-actions>summary:focus-visible{outline:0;box-shadow:0 0 0 4px rgba(42,93,238,.13)}

@media(max-width:760px){
  .rg-featured-overlay{padding-inline:25px}
  .rg-featured-nav{width:36px;height:36px}.rg-featured-nav .rg-icon{width:18px;height:18px}.rg-featured-prev{right:7px}.rg-featured-next{left:7px}
  .rg-date-strip-shell{grid-template-columns:minmax(0,1fr)}
  .rg-date-card:hover{transform:none}
}


/* ================================================================
   Ravangram 11.4 RC1.4 — mobile operations, receipts and UI polish
   ================================================================ */
.rg-smart-select.is-single .rg-smart-select-trigger{cursor:default!important;background:#f6f9ff!important;border-color:#dce6f7!important;box-shadow:none!important;color:#17315f!important}
.rg-smart-select.is-single .rg-smart-select-trigger .rg-smart-select-lock{color:#245ddd;transform:none!important}
.rg-payment-method-field>span{display:block;margin-bottom:8px;font-weight:800;color:#14264d}
.rg-session-card{scroll-margin-top:112px}
/* RC1.6.1.3 — calm, product-grade destination emphasis. */
.rg-session-card.rg-session-target{
  position:relative;
  isolation:isolate;
  animation:rgSessionTargetSoft 2.95s cubic-bezier(.22,.61,.36,1) both
}
.rg-session-card.rg-session-target::after{
  content:attr(data-target-label);
  position:absolute;
  top:14px;
  left:14px;
  z-index:8;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:#2458c8;
  box-shadow:0 8px 24px rgba(28,73,173,.12);
  font-size:9px;
  font-weight:900;
  line-height:1.4;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transform:translateY(-5px) scale(.97);
  animation:rgSessionTargetBadge 2.95s cubic-bezier(.22,.61,.36,1) both
}
@keyframes rgSessionTargetSoft{
  0%,100%{background-color:#fff;box-shadow:0 9px 30px rgba(23,57,151,.045);transform:none}
  14%,70%{background-color:#f8fbff;box-shadow:0 18px 46px rgba(25,70,169,.14);transform:translateY(-1px)}
}
@keyframes rgSessionTargetBadge{
  0%,100%{opacity:0;transform:translateY(-5px) scale(.97)}
  13%,72%{opacity:1;transform:none}
}
#cancelSheet .rg-sheet-action-footer{position:relative;z-index:20;pointer-events:auto;background:#fff}
#cancelSheet .rg-sheet-action-footer .rg-btn{position:relative;z-index:2;pointer-events:auto;touch-action:manipulation;min-height:56px}
#cancelSheet .rg-cancel-confirm{position:relative;z-index:1}
.rg-cancel-error{padding:11px 13px;border:1px solid #e7a3ad;border-radius:14px;background:#fff3f5;color:#992e40;font-size:12px;font-weight:750;line-height:1.8}
.rg-cancel-error.hidden{display:none!important}
#cancelForm[aria-busy="true"] .rg-cancel-scroll{opacity:.78;pointer-events:none}
.rg-date-strip{padding-block:8px 12px!important;scroll-padding-inline:10px;overflow-y:visible!important}
.rg-date-card{border:2px solid #dce5f4!important;background:#fff;overflow:visible!important;isolation:isolate}
.rg-date-card:hover{border-color:#6f98ef!important}
.rg-date-card:focus-visible{border-color:#245ddd!important;box-shadow:0 0 0 4px rgba(36,93,221,.16),0 12px 28px rgba(29,75,175,.10)!important}
.rg-date-card.is-today:not(.selected){border-color:#4d81eb!important;background:#f3f7ff!important}
.rg-date-card.selected{border-color:#1656df!important;background:linear-gradient(145deg,#1550d0,#176cf1)!important;box-shadow:0 12px 28px rgba(25,82,214,.26)!important}
.rg-date-card.selected::after{content:"انتخاب‌شده";position:absolute;inset:auto 10px 7px 10px;color:rgba(255,255,255,.84);font-size:8px;font-weight:850;text-align:center}
.rg-date-card.selected small:last-of-type{margin-bottom:12px}
.rg-name-verified{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start!important;gap:8px 10px!important;width:100%;min-width:0}
.rg-name-verified h1,.rg-name-verified h2,.rg-name-verified h3{min-width:0;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45;overflow-wrap:anywhere}
.rg-name-verified .rg-verified{grid-column:2;grid-row:1;align-self:start;white-space:nowrap;flex:0 0 auto}
.rg-therapist-content{display:flex;flex-direction:column;min-height:365px}
.rg-therapist-content .rg-card-actions{margin-top:auto}
.rg-featured-overlay .rg-name-verified{padding-inline:2px}
.rg-session-title-row>div:first-child{min-width:0}
.rg-session-title-row h3{overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.5}
#rgReservationPrintFrame{display:block!important}
@media(max-width:760px){.rg-smart-select-panel.is-visible{height:auto!important;max-height:min(72dvh,520px)!important;min-height:0!important;border-radius:26px 26px 0 0!important}.rg-smart-select-options{min-height:0!important;max-height:calc(72dvh - 76px)!important}.rg-smart-select.is-single .rg-smart-select-trigger{min-height:54px!important}#cancelSheet .rg-sheet-action-footer{padding-bottom:max(18px,env(safe-area-inset-bottom))!important}.rg-date-strip{padding-inline:8px!important}.rg-date-card.selected::after{font-size:7px}.rg-name-verified{grid-template-columns:minmax(0,1fr) auto!important}.rg-name-verified .rg-verified{font-size:10px;padding:5px 7px}.rg-therapist-content{min-height:0}}

/* =========================================================
   Ravangram 11.4 RC1.5 — OTP, reliable touch targets and UX
   ========================================================= */

/* Every action tile is one reliable hit target. Descendants cannot steal the
   pointer; intentionally interactive nested controls opt back in below. */
.rg-booking-choice-card > *,
.rg-account-card > * { pointer-events:none; }
.rg-booking-choice-card,
.rg-account-card { touch-action:manipulation; -webkit-tap-highlight-color:rgba(35,94,232,.12); }
.rg-booking-choice-card:active,
.rg-account-card:active { transform:scale(.992); }
.rg-account-card a,.rg-account-card button,
.rg-booking-choice-card a,.rg-booking-choice-card button { pointer-events:auto; }

/* OTP after reservation and account login */
.rg-booking-otp{margin:22px 0 6px;padding:18px;border:1px solid #bfd1f8;border-radius:20px;background:linear-gradient(145deg,#f8fbff,#eef4ff);display:grid;gap:14px;text-align:right}
.rg-booking-otp-head{display:flex;align-items:flex-start;gap:12px}.rg-booking-otp-head>div{min-width:0}.rg-booking-otp-head h3{margin:0 0 5px;font-size:18px;color:var(--rg-ink)}.rg-booking-otp-head p{margin:0!important;font-size:13px;line-height:1.9;color:var(--rg-muted)}
.rg-booking-otp-icon{flex:0 0 44px;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff;color:var(--rg-brand);box-shadow:0 8px 22px rgba(36,83,185,.1)}.rg-booking-otp-icon .rg-icon{width:24px;height:24px}
.rg-booking-otp form{display:grid;gap:10px}.rg-booking-otp label{display:grid;gap:7px;font-weight:800}.rg-booking-otp input{direction:ltr;text-align:center;font-size:21px;letter-spacing:.28em;font-variant-numeric:tabular-nums}
.rg-booking-otp-status,.rg-booking-otp-error,.rg-auth-lock,.rg-otp-timing{padding:10px 12px;border-radius:12px;font-size:12px;line-height:1.8;text-align:center}
.rg-booking-otp-status,.rg-otp-timing{background:#fff;color:#405575;border:1px solid #dbe5f7}.rg-booking-otp-error,.rg-auth-lock,.rg-otp-timing.is-expired{background:#fff4f5;color:#9d2d40;border:1px solid #efc8cf}
.rg-booking-otp form.is-waiting input,.rg-booking-otp form.is-waiting button[type=submit]{opacity:.58}
.rg-auth-lock{margin-bottom:8px;font-weight:750}.rg-otp-timing{margin:0 0 2px}

/* Custom FAQ accordion: no native details anchor/focus jump. */
.rg-faq-item{overflow:hidden;background:#fff;border:1px solid var(--rg-line);border-radius:20px;box-shadow:0 7px 26px rgba(24,55,141,.05);transition:border-color .2s ease,box-shadow .2s ease}
.rg-faq-item.is-open{border-color:#c9d8f4;box-shadow:0 14px 38px rgba(24,55,141,.08)}
.rg-faq-question{width:100%;border:0;background:transparent;color:var(--rg-ink);padding:20px 22px;display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:12px;text-align:right;font:inherit;font-weight:850;font-size:17px;cursor:pointer;touch-action:manipulation}
.rg-faq-question span{min-width:0;pointer-events:none}.rg-faq-question i{width:28px;height:28px;border-radius:10px;background:var(--rg-brand-soft);position:relative;pointer-events:none}.rg-faq-question i::before,.rg-faq-question i::after{content:"";position:absolute;inset:50% auto auto 50%;width:11px;height:2px;border-radius:2px;background:var(--rg-brand);transform:translate(-50%,-50%)}.rg-faq-question i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .18s ease}.rg-faq-item.is-open .rg-faq-question i::after{transform:translate(-50%,-50%) rotate(0)}
.rg-faq-question:focus-visible{outline:3px solid rgba(46,103,236,.22);outline-offset:-3px}.rg-faq-item .rg-faq-answer{padding:0 22px 20px!important;color:var(--rg-muted)!important;line-height:2}.rg-faq-item .rg-faq-answer[hidden]{display:none!important}.rg-faq-item.is-open .rg-faq-answer{animation:rgAccordionIn .18s ease both}

/* Independent credit cards: opening one event never stretches its neighbours. */
.rg-credit-grid{align-items:start!important}.rg-credit-grid>*{align-self:start;min-height:0}.rg-credit-card{height:auto!important}

/* Featured therapist carousel — swipe vertically remains page scroll, horizontal
   movement changes the slide. Stable layers prevent badge/nav collisions. */
#featuredTherapist,.rg-featured{touch-action:pan-y;overscroll-behavior-x:contain}.rg-featured{isolation:isolate}.rg-featured-image{z-index:0}.rg-featured-overlay{z-index:2}.rg-featured-nav{z-index:4}.rg-featured .rg-name-verified{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;max-width:calc(100% - 84px)}.rg-featured .rg-name-verified h2{min-width:0;margin:0;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rg-featured .rg-verified{position:static!important;flex:none;white-space:nowrap}
.rg-featured.is-changing .rg-featured-image,.rg-featured.is-changing .rg-featured-overlay{animation:rgFeaturedFade .28s ease both}@keyframes rgFeaturedFade{from{opacity:.45;transform:translateX(8px)}to{opacity:1;transform:none}}

/* Therapist list cards keep identity, badge and actions in stable rows. */
.rg-therapist-card{display:flex;flex-direction:column;height:100%;min-width:0}.rg-therapist-content{display:flex!important;flex-direction:column;flex:1;min-height:0}.rg-therapist-card .rg-name-verified{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-height:58px}.rg-therapist-card .rg-name-verified h3{min-width:0;margin:0;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.rg-therapist-card .rg-verified{position:static!important;white-space:nowrap;align-self:start}.rg-therapist-card .rg-card-actions{margin-top:auto;display:grid!important;grid-template-columns:1fr 1fr;gap:9px}.rg-therapist-card .rg-card-actions .rg-btn{min-width:0;padding-inline:10px;white-space:normal;line-height:1.55}
.rg-session-highlight{animation:rgSessionHighlight 3.6s ease both}@keyframes rgSessionHighlight{0%,100%{box-shadow:inherit}15%,75%{box-shadow:0 0 0 4px rgba(37,98,235,.2),0 18px 48px rgba(23,61,160,.16)}}

@media(max-width:700px){
  .rg-booking-choice-card,.rg-account-card{min-height:118px}
  .rg-booking-choice-card b,.rg-account-card b{font-size:16px;line-height:1.8}
  .rg-booking-otp{padding:15px;border-radius:17px}.rg-booking-otp-head h3{font-size:16px}.rg-booking-otp input{font-size:20px}
  .rg-faq-question{padding:17px 16px;font-size:15px;grid-template-columns:minmax(0,1fr) 28px}.rg-faq-item .rg-faq-answer{padding:0 16px 17px!important}
  .rg-featured .rg-name-verified{max-width:100%;grid-template-columns:minmax(0,1fr);gap:7px}.rg-featured .rg-verified{justify-self:start}.rg-featured-nav{top:35%!important}
  .rg-therapist-card .rg-name-verified{min-height:72px}.rg-therapist-card .rg-card-actions{grid-template-columns:1fr 1fr}
}

/* RC1.5.1 — authenticated booking identity, OTP polish and account consistency */
.rg-booking-account-summary{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:13px 15px;border:1px solid #cbd9f5;border-radius:16px;background:linear-gradient(135deg,#f7faff,#edf3ff);color:#172b54;min-width:0}
.rg-booking-account-summary.hidden{display:none!important}
.rg-booking-account-icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:#fff;color:var(--rg-brand);box-shadow:0 7px 20px rgba(29,72,176,.09)}
.rg-booking-account-icon .rg-icon{width:22px;height:22px}
.rg-booking-account-summary>div{display:grid;gap:2px;min-width:0;flex:1}
.rg-booking-account-summary small{font-size:10px;color:#667795;font-weight:750}
.rg-booking-account-summary b{font-size:14px;line-height:1.8;color:#102550;overflow-wrap:anywhere}
.rg-booking-account-summary span{font-size:11px;color:#526481;direction:rtl;unicode-bidi:plaintext;overflow-wrap:anywhere}
.rg-booking-account-summary .rg-text-button{flex:0 0 auto;white-space:nowrap}
.rg-identity-hidden{display:none!important}

.rg-booking-otp{max-width:620px;margin-inline:auto;padding:22px;border-color:#b8cafa;border-radius:24px;box-shadow:0 18px 48px rgba(34,76,165,.10)}
.rg-booking-otp-head{align-items:center;gap:14px}
.rg-booking-otp-head .rg-kicker{display:block;margin-bottom:2px;color:#536b98;font-size:9px;letter-spacing:.02em}
.rg-booking-otp-icon{width:48px;height:48px;flex-basis:48px;border-radius:16px}
.rg-booking-otp form{gap:12px}
.rg-otp-code-field>span{font-size:12px;color:#243c69}
.rg-otp-code-field input{width:100%;min-height:62px;border:1.5px solid #b9caec;border-radius:16px;background-color:#fff;background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(16.666% - 1px),#e5ebf7 calc(16.666% - 1px),#e5ebf7 16.666%);font-size:26px;font-weight:900;letter-spacing:.55em;padding-inline:calc(.55em + 8px);text-indent:.55em;caret-color:var(--rg-brand);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.rg-otp-code-field input:focus{border-color:var(--rg-brand);box-shadow:0 0 0 4px rgba(42,93,238,.12)}
.rg-booking-otp-actions{display:grid;grid-template-columns:1.35fr 1fr;gap:10px}
.rg-booking-otp-actions .rg-btn{min-width:0}

.rg-credit-card{position:relative}
.rg-credit-expiry-badge{align-self:flex-start;display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;background:#fff4d8;color:#7d5710;border:1px solid #efd18b;font-size:9px;font-weight:900;line-height:1.6}
.rg-credit-card.is-active .rg-credit-expiry-badge{background:rgba(255,255,255,.92);color:#67480e;border-color:rgba(255,255,255,.92)}
.rg-credit-history>div{scrollbar-width:thin;scrollbar-color:#b9c9e7 transparent}
.rg-credit-history>div::-webkit-scrollbar{width:6px;height:6px}
.rg-credit-history>div::-webkit-scrollbar-track{background:transparent}
.rg-credit-history>div::-webkit-scrollbar-thumb{background:#b9c9e7;border-radius:999px;border:1px solid transparent;background-clip:padding-box}

.rg-notification.tone-info{background:#f4f8ff;border-color:#cedcf5}
.rg-notification.tone-success{background:#f2fbf6;border-color:#c5e7d2}
.rg-notification.tone-warning{background:#fffaf0;border-color:#ecd9a7}
.rg-notification.tone-danger{background:#fff5f6;border-color:#ecc8cf}
.rg-notification.tone-neutral{background:#f7f8fa;border-color:#dde1e8}
.rg-notification.tone-success .rg-notification-dot{background:#26905b}
.rg-notification.tone-warning .rg-notification-dot{background:#c58a16}
.rg-notification.tone-danger .rg-notification-dot{background:#c64859}
.rg-notification.tone-info .rg-notification-dot{background:#386cdf}
.rg-notification.is-unread{box-shadow:inset -3px 0 0 currentColor}

/* Keep the featured verification badge out of the name/navigation flow. */
.rg-featured{position:relative}
.rg-featured .rg-name-verified{display:block!important;max-width:calc(100% - 70px)}
.rg-featured .rg-verified{position:absolute!important;top:18px;left:18px;z-index:5;background:rgba(255,255,255,.94);color:#1948bd;border-color:rgba(255,255,255,.95);box-shadow:0 8px 24px rgba(9,28,73,.14)}
.rg-method-icon .rg-icon{width:27px!important;height:27px!important}
.rg-method-icon{width:48px;height:48px}

.rg-summary-head{align-items:flex-start;gap:12px}
.rg-summary-head span{min-width:0;flex:1}
.rg-summary-head b,.rg-summary-head small{overflow-wrap:anywhere}

@media(max-width:680px){
  .rg-booking-account-summary{align-items:flex-start;padding:12px;flex-wrap:wrap}
  .rg-booking-account-summary .rg-text-button{width:100%;justify-content:center;margin-top:2px}
  .rg-booking-otp{padding:16px;border-radius:19px}
  .rg-booking-otp-head{align-items:flex-start}
  .rg-otp-code-field input{min-height:58px;font-size:23px;letter-spacing:.42em;text-indent:.42em;padding-inline:calc(.42em + 7px)}
  .rg-booking-otp-actions{grid-template-columns:1fr}
  .rg-featured .rg-verified{top:13px;left:13px;font-size:9px;padding:5px 8px}
  .rg-featured .rg-name-verified{max-width:100%}
  .rg-method-icon .rg-icon{width:24px!important;height:24px!important}
  .rg-method-icon{width:44px;height:44px}
}

/* RC1.5.1 — stable overview metrics with long Persian labels */
.rg-portal-stats article{min-width:0;overflow:hidden}
.rg-portal-stats small{max-width:100%;line-height:1.65;overflow-wrap:anywhere;text-wrap:balance}
.rg-portal-stats b{font-variant-numeric:tabular-nums}
.rg-session-method-note{margin-top:10px;padding:9px 11px;border-radius:12px;font-size:10px;font-weight:750;line-height:1.8}
.rg-session-method-note.is-phone{background:#f2f7ff;border:1px solid #d3e0f7;color:#365172}
.rg-session-method-note.is-video{background:#fff9ed;border:1px solid #ead9ae;color:#6f561c}

/* ================================================================
   Ravangram 11.4 RC1.5.2 — authenticated booking and visual stability
   ================================================================ */
.rg-ltr-number{display:inline-block;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Consistent dashboard metric cards. */
.rg-portal-stats .rg-portal-stat{
  min-width:0;min-height:122px;margin:0;border:1px solid var(--rg-line);border-radius:22px;padding:18px;
  background:#fff;color:var(--rg-ink);box-shadow:0 8px 28px rgba(23,57,151,.055);
  display:flex;align-items:center;gap:14px;text-align:right;font:inherit;position:relative;overflow:hidden
}
.rg-portal-stats button.rg-portal-stat{cursor:pointer;appearance:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.rg-portal-stats button.rg-portal-stat:hover{transform:translateY(-2px);border-color:#a9c0f2;box-shadow:0 14px 34px rgba(23,57,151,.10)}
.rg-portal-stats button.rg-portal-stat:focus-visible{outline:3px solid rgba(42,93,238,.2);outline-offset:2px}
.rg-portal-stat .rg-stat-icon{grid-row:auto;flex:0 0 46px}
.rg-stat-copy{display:grid;gap:4px;min-width:0;flex:1}
.rg-portal-stat .rg-stat-copy b{font-size:27px;line-height:1.15;align-self:auto}
.rg-portal-stat .rg-stat-copy small{font-size:11px;line-height:1.7;align-self:auto;color:var(--rg-muted);overflow-wrap:anywhere}
.rg-portal-stat .rg-stat-chevron{width:18px;height:18px;flex:0 0 18px;color:#7a8dab;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rg-portal-stat.has-unread{border-color:#c4d5fa;background:linear-gradient(145deg,#fff,#f5f8ff)}
.rg-portal-stat.has-unread .rg-stat-icon{background:#e7efff}
.rg-portal-stat.is-empty .rg-stat-icon{color:#6f819f;background:#f1f4f9}

/* Stable therapist cards: variable identity content never collides with the footer. */
.rg-therapist-grid{align-items:stretch;margin-bottom:28px}
.rg-therapist-card{height:auto!important;min-height:0;display:grid!important;grid-template-rows:280px minmax(0,1fr);contain:layout style!important}
.rg-therapist-content{display:flex!important;flex-direction:column!important;min-height:390px!important;height:auto!important;padding:21px!important;overflow:visible!important}
.rg-therapist-identity{display:grid;align-content:start;gap:0;min-width:0}
.rg-therapist-identity .rg-chip-row{min-height:42px;align-content:flex-start}
.rg-therapist-bottom{margin-top:auto;display:grid;gap:12px;min-width:0;padding-top:4px}
.rg-therapist-bottom .rg-card-meta{margin-top:0}
.rg-therapist-bottom .rg-nearest-mini{margin:0;min-height:62px}
.rg-therapist-bottom .rg-card-actions{margin-top:0!important;position:static!important;align-self:auto!important}
.rg-waitlist-inline{position:relative;z-index:1;clear:both;margin-top:30px!important}

/* One accessible OTP input, rendered as six stable visual cells. */
.rg-otp-code-field{display:grid!important;gap:10px!important;min-width:0}
.rg-otp-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#20375f}
.rg-otp-label-row b{font-size:12px}
.rg-otp-label-row small{font-size:10px;color:#7787a2;font-weight:700}
.rg-otp-input-shell{position:relative;display:block;width:100%;min-height:68px;border:1.5px solid #b9caec;border-radius:18px;background:#fff;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.rg-otp-input-shell.is-focused{border-color:var(--rg-brand);box-shadow:0 0 0 4px rgba(42,93,238,.12),0 12px 30px rgba(32,76,175,.08)}
.rg-otp-input-shell.is-complete{border-color:#6f9af0}
.rg-otp-input-shell>input[data-rg-otp-input]{position:absolute!important;inset:0!important;z-index:3!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:inherit!important;background:transparent!important;color:transparent!important;caret-color:transparent!important;opacity:.02!important;box-shadow:none!important;direction:ltr!important;text-align:left!important;letter-spacing:0!important;font-size:16px!important;-webkit-text-fill-color:transparent!important}
.rg-otp-input-shell>input[data-rg-otp-input]:focus{outline:0!important;box-shadow:none!important}
.rg-otp-digits{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));direction:ltr;pointer-events:none;padding:8px;gap:7px}
.rg-otp-digit{display:grid;place-items:center;min-width:0;border:1px solid #dbe4f3;border-radius:12px;background:#f8faff;color:#102856;font-size:24px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1;transition:border-color .14s ease,background .14s ease,transform .14s ease,box-shadow .14s ease}
.rg-otp-digit.is-filled{background:#fff;border-color:#aac0ef;box-shadow:0 4px 12px rgba(32,75,170,.07)}
.rg-otp-digit.is-current{border-color:var(--rg-brand);box-shadow:0 0 0 2px rgba(42,93,238,.12);transform:translateY(-1px)}
.rg-otp-assist{display:block;text-align:center;color:#687b9a;font-size:10px;line-height:1.8;font-weight:650}
.rg-auth-otp-form{display:grid;gap:12px}
.rg-auth-otp-form .rg-otp-input-shell{min-height:64px}
.rg-form-note .rg-ltr-number{font-weight:900;color:#185c3b}

@media(max-width:760px){
  .rg-portal-stats .rg-portal-stat{min-height:112px;padding:14px;gap:10px;border-radius:20px}
  .rg-portal-stat .rg-stat-icon{width:40px;height:40px;flex-basis:40px;border-radius:13px}
  .rg-portal-stat .rg-stat-copy b{font-size:23px}
  .rg-portal-stat .rg-stat-copy small{font-size:9.5px}
  .rg-therapist-card{grid-template-rows:230px minmax(0,1fr)}
  .rg-therapist-content{min-height:360px!important;padding:17px!important}
  .rg-therapist-identity .rg-chip-row{min-height:38px}
  .rg-otp-input-shell{min-height:64px;border-radius:17px}
  .rg-otp-digits{padding:7px;gap:5px}
  .rg-otp-digit{font-size:21px;border-radius:11px}
  .rg-booking-otp-actions{grid-template-columns:1fr!important}
}
@media(max-width:380px){
  .rg-portal-stats .rg-portal-stat{padding:12px 10px;gap:8px}
  .rg-portal-stat .rg-stat-icon{width:36px;height:36px;flex-basis:36px}
  .rg-otp-digits{gap:4px;padding:6px}
  .rg-otp-digit{font-size:19px;border-radius:10px}
}


/* ================================================================
   Ravangram 11.4 RC1.5.4 — canonical next session, reliable actions,
   detached credit history and mobile OTP completion
   ================================================================ */
html{
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:#aebed9 transparent;
}
html::-webkit-scrollbar{width:7px;height:7px}
html::-webkit-scrollbar-track{background:transparent}
html::-webkit-scrollbar-thumb{background:#aebed9;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
html::-webkit-scrollbar-thumb:hover{background:#8fa4c7;background-clip:padding-box}
.rg-sheet-scroll,.rg-credit-history-sheet-body,.rg-notification-list,.rg-session-list{
  scrollbar-width:thin;
  scrollbar-color:#bdcbe2 transparent;
  overscroll-behavior:contain;
}
.rg-sheet-scroll::-webkit-scrollbar,.rg-credit-history-sheet-body::-webkit-scrollbar,.rg-notification-list::-webkit-scrollbar,.rg-session-list::-webkit-scrollbar{width:5px;height:5px}
.rg-sheet-scroll::-webkit-scrollbar-track,.rg-credit-history-sheet-body::-webkit-scrollbar-track,.rg-notification-list::-webkit-scrollbar-track,.rg-session-list::-webkit-scrollbar-track{background:transparent}
.rg-sheet-scroll::-webkit-scrollbar-thumb,.rg-credit-history-sheet-body::-webkit-scrollbar-thumb,.rg-notification-list::-webkit-scrollbar-thumb,.rg-session-list::-webkit-scrollbar-thumb{background:#bdcbe2;border-radius:999px}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* A choice card is one atomic target on touch devices. */
.rg-booking-choice-card{position:relative;z-index:1;isolation:isolate;min-height:126px;touch-action:manipulation!important;user-select:none;-webkit-user-select:none}
.rg-booking-choice-card *{pointer-events:none!important}
.rg-booking-choice-card:active{border-color:#6f96ee!important;background:#edf3ff!important;box-shadow:0 4px 14px rgba(35,80,185,.12)!important;transform:scale(.992)!important}

/* Stable, fully visible bell and a larger mark-all hit target. */
.rg-portal-stat .rg-stat-icon .rg-icon{overflow:visible;stroke-linecap:round;stroke-linejoin:round}
.rg-mark-all-button{min-height:46px;min-width:174px;padding:10px 14px!important;border:1px solid #d4e0f4!important;border-radius:14px!important;background:#fff!important;display:inline-flex!important;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:rgba(35,94,232,.12)}
.rg-mark-all-button:focus-visible{outline:3px solid rgba(42,93,238,.18);outline-offset:2px}
.rg-mark-all-button[disabled]{opacity:.65;cursor:wait}

/* Read notices become visually neutral; unread notices retain semantic tone. */
.rg-notification{grid-template-columns:auto minmax(0,1fr) auto!important;align-items:start!important;min-height:112px;touch-action:manipulation;-webkit-tap-highlight-color:rgba(35,94,232,.10)}
.rg-notification>span:nth-child(2){min-width:0}
.rg-notification.is-read{background:#f8f9fb!important;border-color:#e1e6ee!important;box-shadow:none!important;color:#44516a}
.rg-notification.is-read .rg-notification-dot{background:#bcc6d5!important}
.rg-notification.is-read b{color:#34425d}
.rg-notification.is-read p,.rg-notification.is-read small{color:#78859a}
.rg-notification-arrow{width:18px;height:18px;margin-top:3px;color:#7f90ad;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.rg-notification:active{transform:scale(.995)}

/* Credit history is detached from the grid so opening it never stretches a row. */
.rg-credit-history-trigger{width:100%;min-height:58px;margin-top:12px;padding:11px 13px;border:1px solid #c5d4ee;border-radius:14px;background:#f4f8ff;color:#17366e;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;text-align:right;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(35,94,232,.10)}
.rg-credit-history-trigger span{font-size:12px;font-weight:900}
.rg-credit-history-trigger small{font-size:9px;color:#687b9a;font-weight:700;white-space:nowrap}
.rg-credit-history-trigger .rg-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rg-credit-history-trigger:hover,.rg-credit-history-trigger:focus-visible{outline:0;border-color:#7fa2ee;background:#edf3ff;box-shadow:0 8px 22px rgba(31,70,159,.08)}
.rg-credit-history-trigger:active{transform:scale(.993)}
.rg-credit-history-sheet{width:min(760px,calc(100% - 20px));padding-inline:0!important;max-height:min(88dvh,820px)!important}
.rg-credit-history-sheet>.rg-sheet-head{padding:0 24px 16px;border-bottom:1px solid #e8edf5}
.rg-credit-history-sheet-body{min-height:0;overflow:auto;padding:16px 24px max(24px,env(safe-area-inset-bottom));display:grid;gap:10px;background:#f7f9fd;outline:none}
.rg-credit-history-sheet-body .rg-credit-history-item{margin:0}

/* Browser autofill may update the real input without firing a normal input event. */
@keyframes rgOtpAutofill{from{opacity:.019}to{opacity:.02}}
input[data-rg-otp-input]:-webkit-autofill{animation-name:rgOtpAutofill;animation-duration:.01s;animation-iteration-count:1}
.rg-otp-paste-button{border-color:#c8d7ef!important;background:#f7faff!important;color:#2352ba!important}
.rg-otp-paste-button:active{background:#eaf1ff!important}

@media(max-width:760px){
  html::-webkit-scrollbar{width:4px;height:4px}
  .rg-booking-choice-card{min-height:132px;padding:17px!important}
  .rg-mark-all-button{width:100%;min-width:0;margin-top:7px}
  [data-portal-panel="notifications"] .rg-dashboard-head{align-items:stretch!important}
  .rg-credit-history-sheet{width:calc(100% - 8px);max-height:calc(100dvh - 8px)!important}
  .rg-credit-history-sheet>.rg-sheet-head{padding-inline:17px}
  .rg-credit-history-sheet-body{padding:14px 17px max(20px,env(safe-area-inset-bottom))}
  .rg-credit-history-trigger{grid-template-columns:minmax(0,1fr) auto;min-height:62px}
  .rg-credit-history-trigger small{grid-column:1;grid-row:2;white-space:normal}
  .rg-credit-history-trigger .rg-icon{grid-column:2;grid-row:1 / span 2}
}


/* ================================================================
   Ravangram 11.4 RC1.5.4 — native touch, reliable WebOTP/Clipboard,
   and momentum-safe credit history scrolling
   ================================================================ */
body.rg-sheet-open{
  overflow:hidden!important;
  touch-action:auto!important;
  overscroll-behavior:none;
}
.rg-booking-choice-card{
  cursor:pointer;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:rgba(35,94,232,.14);
}
.rg-booking-choice-card[disabled],.rg-booking-choice-card[aria-disabled="true"]{pointer-events:none;opacity:.65}
.rg-booking-choice-card:focus-visible{outline:3px solid rgba(42,93,238,.22);outline-offset:3px}

.rg-credit-history-sheet{
  overflow:hidden!important;
  touch-action:pan-y!important;
  overscroll-behavior:none;
  contain:layout paint;
}
.rg-credit-history-sheet-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  touch-action:pan-y!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
  overflow-anchor:none;
}
.rg-credit-history-sheet>.rg-sheet-head,.rg-credit-history-sheet>.rg-sheet-handle{touch-action:manipulation}

.rg-otp-inline-feedback{
  display:block;
  margin:0;
  padding:10px 12px;
  border:1px solid #d8e3f5;
  border-radius:13px;
  background:#f7faff;
  color:#405372;
  font-size:10px;
  font-weight:700;
  line-height:1.9;
  text-align:right;
}
.rg-otp-inline-feedback[hidden]{display:none!important}
.rg-otp-inline-feedback.is-progress{background:#f4f7ff;border-color:#cad8f3;color:#31538f}
.rg-otp-inline-feedback.is-success{background:#ecfaf3;border-color:#bce9d1;color:#17643d}
.rg-otp-inline-feedback.is-notice{background:#fff9ea;border-color:#efdda8;color:#70561a}
.rg-otp-inline-feedback.is-error{background:#fff2f3;border-color:#f1c6cb;color:#8b2633}
.rg-otp-paste-button[disabled]{cursor:wait;opacity:.7}


/* ================================================================
   Ravangram 11.4 RC1.5.5 — native OTP input and hard modal scroll lock
   ================================================================ */
html.rg-modal-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
  scrollbar-gutter:stable;
}
body.rg-sheet-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.rg-overlay,.rg-video-backdrop,.rg-policy-backdrop,.rg-date-picker-backdrop,.rg-receipt-modal{
  touch-action:none!important;
  overscroll-behavior:none!important;
}
.rg-sheet,.rg-drawer,.rg-policy-dialog,.rg-date-picker-dialog,.rg-receipt-dialog,.rg-video-dialog{
  overscroll-behavior:none!important;
}
.rg-sheet-scroll,.rg-credit-history-sheet-body,#supportSheet>.rg-support-links,
#waitlistSheet .rg-sheet-form-scroll,.rg-cancel-scroll,.rg-policy-content,.rg-receipt-content{
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  touch-action:pan-y pinch-zoom!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:auto!important;
}
.rg-credit-history-sheet{
  touch-action:auto!important;
  contain:layout paint;
}
.rg-credit-history-sheet>.rg-sheet-head,.rg-credit-history-sheet>.rg-sheet-handle{
  flex:0 0 auto;
  touch-action:none!important;
}
.rg-credit-history-sheet-body{
  flex:1 1 auto!important;
  height:auto!important;
  max-height:none!important;
}
.rg-otp-code-field{display:grid!important;gap:10px!important;min-width:0}
.rg-otp-native-input,
.rg-otp-code-field>input[data-rg-otp-input]{
  position:relative!important;
  inset:auto!important;
  z-index:auto!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:66px!important;
  margin:0!important;
  padding:13px 18px!important;
  border:1.5px solid #b8c9eb!important;
  border-radius:18px!important;
  background:#fff!important;
  color:#102856!important;
  opacity:1!important;
  caret-color:var(--rg-brand)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important;
  direction:ltr!important;
  text-align:center!important;
  letter-spacing:.42em!important;
  text-indent:.42em!important;
  font-size:27px!important;
  line-height:1!important;
  font-weight:900!important;
  font-variant-numeric:tabular-nums!important;
  -webkit-text-fill-color:#102856!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease!important;
}
.rg-otp-native-input::placeholder,
.rg-otp-code-field>input[data-rg-otp-input]::placeholder{
  color:#c2cce0!important;
  opacity:1;
  letter-spacing:.12em!important;
  text-indent:.12em!important;
  font-size:19px!important;
}
.rg-otp-native-input:focus,
.rg-otp-code-field>input[data-rg-otp-input]:focus{
  outline:0!important;
  border-color:var(--rg-brand)!important;
  box-shadow:0 0 0 4px rgba(42,93,238,.12),0 12px 30px rgba(32,76,175,.08)!important;
}
.rg-otp-native-input.is-complete,
.rg-otp-code-field>input[data-rg-otp-input].is-complete{
  border-color:#6b96ee!important;
  background:#fbfdff!important;
}
.rg-otp-input-shell,.rg-otp-digits,.rg-otp-digit,.rg-otp-paste-button{display:none!important}
.rg-booking-otp-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
@media(max-width:760px){
  .rg-otp-native-input,.rg-otp-code-field>input[data-rg-otp-input]{min-height:62px!important;font-size:24px!important;letter-spacing:.34em!important;text-indent:.34em!important;padding-inline:12px!important}
  .rg-booking-otp-actions{grid-template-columns:1fr!important}
}

/* ================================================================
   Ravangram 11.4 RC1.5.6 — stable unified OTP and overlay containment
   ================================================================ */
.rg-unified-otp-mount:empty{display:none!important}
.rg-unified-otp{margin-top:18px}
.rg-auth-otp-form .rg-unified-otp{margin-top:0}
.rg-confirm-pending{min-height:170px;display:grid;place-content:center;text-align:center;gap:12px}
.rg-confirm-pending .rg-loading{justify-content:center}
.rg-unified-otp form{display:grid;gap:12px}
.rg-unified-otp [data-rg-otp-status]{margin-bottom:10px}
.rg-unified-otp .rg-otp-native-input{-webkit-text-security:none!important}
.rg-unified-otp .rg-btn[disabled]{cursor:not-allowed;opacity:.58}
.rg-sheet-scroll,.rg-credit-history-sheet-body,#supportSheet>.rg-support-links,
#waitlistSheet .rg-sheet-form-scroll,.rg-cancel-scroll,.rg-policy-content,.rg-receipt-content,
.rg-sheet [data-rg-scroll-container],.rg-drawer [data-rg-scroll-container],
.rg-policy-dialog [data-rg-scroll-container],.rg-date-picker-dialog [data-rg-scroll-container],
.rg-receipt-dialog [data-rg-scroll-container],.rg-video-dialog [data-rg-scroll-container]{
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  touch-action:pan-y pinch-zoom!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:auto!important;
}
.rg-sheet.open,.rg-drawer.open,.rg-policy-dialog,.rg-date-picker-dialog,.rg-receipt-dialog,.rg-video-dialog{
  isolation:isolate;
}
@media(max-width:640px){
  .rg-unified-otp{margin-top:12px}
  .rg-unified-otp .rg-booking-otp-head{align-items:flex-start}
}

/* Ravangram 11.4 RC1.5.7 — verified review session context */
.rg-review-identity {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.rg-review-byline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  line-height: 1.55;
}
.rg-review-byline b {
  color: var(--rg-ink);
}
.rg-review-byline span {
  color: var(--rg-muted);
  font-weight: 700;
}
.rg-review-byline strong {
  color: var(--rg-primary);
  font-size: .92rem;
  font-weight: 800;
}
.rg-review-identity small {
  color: var(--rg-muted);
  font-size: .82rem;
}
@media (max-width: 520px) {
  .rg-review-header {
    align-items: flex-start;
    gap: 10px;
  }
  .rg-review-header > .rg-stars {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}


/* RC1.6.1.2 client dashboard */
.rg-client-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.rg-client-highlight{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:108px;padding:16px;border:1px solid #dfe6f4;border-radius:18px;background:#fff;text-align:right;color:#26375d;cursor:pointer}.rg-client-highlight span{display:flex;align-items:center;justify-content:space-between;gap:8px}.rg-client-highlight small{color:#67738c}.rg-client-highlight b{font-size:22px;color:#173a7e}.rg-client-highlight p{grid-column:1/-1;margin:0;color:#65728c;line-height:1.8}.rg-client-highlight.tone-warning{background:#fffaf0;border-color:#efd5a5}.rg-client-highlight.tone-info{background:#f5f8ff;border-color:#cedbf6}.rg-client-highlight.tone-ok{background:#f5fcf8;border-color:#cce7d7}.rg-booking-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:16px;padding-top:14px;border-top:1px dashed #dce4f2}.rg-booking-timeline span{position:relative;display:grid;justify-items:center;gap:7px;text-align:center;color:#8893a8}.rg-booking-timeline span:before{content:"";position:absolute;top:6px;right:-50%;width:100%;height:2px;background:#e2e7f0}.rg-booking-timeline span:first-child:before{display:none}.rg-booking-timeline i{position:relative;z-index:1;width:13px;height:13px;border-radius:50%;background:#dce2ec;box-shadow:0 0 0 4px #fff}.rg-booking-timeline .is-done i{background:#35a269}.rg-booking-timeline .is-current i{background:#3d6fd8}.rg-booking-timeline .is-danger i{background:#c74252}.rg-booking-timeline .is-done:before,.rg-booking-timeline .is-current:before{background:#82b6e9}.rg-booking-timeline small{font-size:11px;line-height:1.5}@media(max-width:720px){.rg-client-highlights{grid-template-columns:1fr}.rg-client-highlight{min-height:92px}.rg-booking-timeline{overflow-x:auto;grid-template-columns:repeat(5,minmax(92px,1fr));padding-bottom:8px;scrollbar-width:thin}}

/* ================================================================
   Ravangram 11.4 RC1.6.1.2 — mobile dashboard width containment
   Fixes the RC1.6.1 overview regression at the source. This block does
   not rely on hiding an intentionally over-wide timeline.
   ================================================================ */
[data-portal-panel="overview"],
[data-portal-panel="overview"] .rg-next-action,
[data-portal-panel="overview"] .rg-portal-stats,
[data-portal-panel="overview"] .rg-portal-grid,
[data-portal-panel="overview"] .rg-portal-card,
[data-portal-panel="overview"] .rg-panel-title,
[data-portal-panel="overview"] #nextSessionCard,
[data-portal-panel="overview"] .rg-session-card,
[data-portal-panel="overview"] .rg-session-main,
[data-portal-panel="overview"] .rg-client-highlights,
[data-portal-panel="overview"] .rg-client-highlight,
[data-portal-panel="overview"] .rg-credit-list,
[data-portal-panel="overview"] .rg-credit-card {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
[data-portal-panel="overview"] {
  width: 100%;
}
[data-portal-panel="overview"] .rg-portal-grid {
  grid-template-columns: minmax(0, 1.45fr) minmax(0, .9fr);
  width: 100%;
}
[data-portal-panel="overview"] .rg-portal-grid > *,
[data-portal-panel="overview"] .rg-portal-stats > *,
[data-portal-panel="overview"] .rg-client-highlights > *,
[data-portal-panel="overview"] .rg-credit-list > * {
  min-width: 0;
  max-width: 100%;
}
[data-portal-panel="overview"] .rg-next-action > div,
[data-portal-panel="overview"] .rg-panel-title > div,
[data-portal-panel="overview"] .rg-stat-copy,
[data-portal-panel="overview"] .rg-credit-top > div,
[data-portal-panel="overview"] .rg-session-title-row > div {
  min-width: 0;
}
[data-portal-panel="overview"] .rg-next-action h3,
[data-portal-panel="overview"] .rg-next-action p,
[data-portal-panel="overview"] .rg-panel-title h3,
[data-portal-panel="overview"] .rg-credit-card b,
[data-portal-panel="overview"] .rg-credit-card small,
[data-portal-panel="overview"] .rg-credit-meta span,
[data-portal-panel="overview"] .rg-session-main h3,
[data-portal-panel="overview"] .rg-session-main small {
  max-width: 100%;
  overflow-wrap: anywhere;
}
[data-portal-panel="overview"] .rg-portal-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
}
[data-portal-panel="overview"] .rg-portal-stats .rg-portal-stat {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
[data-portal-panel="overview"] .rg-client-highlight {
  position: relative;
  grid-template-columns: minmax(0, 1fr) auto;
  overflow: hidden;
}
[data-portal-panel="overview"] .rg-client-highlight > span,
[data-portal-panel="overview"] .rg-client-highlight > p {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
[data-portal-panel="overview"] .rg-credit-top {
  min-width: 0;
}
[data-portal-panel="overview"] .rg-credit-meta {
  min-width: 0;
  max-width: 100%;
}

/* The five stages always share the card's real width. */
[data-portal-panel="overview"] .rg-booking-timeline {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: visible;
}
[data-portal-panel="overview"] .rg-booking-timeline > span {
  min-width: 0;
  max-width: 100%;
}
[data-portal-panel="overview"] .rg-booking-timeline small {
  display: block;
  width: 100%;
  max-width: 100%;
  padding-inline: 2px;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: none;
}

@media (max-width: 980px) {
  [data-portal-panel="overview"] .rg-portal-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  [data-portal-panel="overview"] .rg-portal-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  [data-portal-panel="overview"] .rg-next-action {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }
  [data-portal-panel="overview"] .rg-next-action .rg-btn {
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }
  [data-portal-panel="overview"] .rg-panel-title {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  [data-portal-panel="overview"] .rg-panel-title .rg-text-button {
    max-width: 100%;
    white-space: normal;
  }
  [data-portal-panel="overview"] .rg-client-highlights {
    grid-template-columns: minmax(0, 1fr);
  }
  [data-portal-panel="overview"] .rg-booking-timeline {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    overflow: visible;
    padding-bottom: 0;
    scrollbar-width: auto;
  }
  [data-portal-panel="overview"] .rg-booking-timeline small {
    font-size: clamp(8px, 2.45vw, 10px);
    line-height: 1.45;
  }
  [data-portal-panel="overview"] .rg-credit-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
  }
  [data-portal-panel="overview"] .rg-credit-card .rg-btn {
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }
}

@media (max-width: 360px) {
  [data-portal-panel="overview"] .rg-portal-card {
    padding-inline: 13px;
  }
  [data-portal-panel="overview"] .rg-portal-stats .rg-portal-stat {
    padding: 11px 9px;
    gap: 7px;
  }
  [data-portal-panel="overview"] .rg-portal-stat .rg-stat-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }
  [data-portal-panel="overview"] .rg-portal-stat .rg-stat-copy b {
    font-size: 21px;
  }
  [data-portal-panel="overview"] .rg-portal-stat .rg-stat-copy small {
    font-size: 9px;
  }
  [data-portal-panel="overview"] .rg-booking-timeline {
    margin-inline: 0;
  }
  [data-portal-panel="overview"] .rg-booking-timeline small {
    font-size: 8px;
    padding-inline: 1px;
  }
}

/* The dashboard shell itself must use a zero-minimum grid track. Without
   this, the horizontally scrollable tab row contributes its max-content
   width to the only implicit grid column and makes every overview card
   render on an over-wide canvas in RTL. */
.rg-account-dashboard {
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.rg-account-dashboard > *,
.rg-portal-tabs,
.rg-portal-panel {
  min-width: 0;
  max-width: 100%;
}
.rg-portal-tabs,
.rg-portal-panel.active {
  width: 100%;
}

/* RC1.6.1.3 — precise deep-link focus with polished visual emphasis. */
.rg-session-action-target{
  scroll-margin-block:132px 150px;
  transform-origin:center;
  animation:rgSessionActionEmphasis 2.35s ease both
}
@keyframes rgSessionActionEmphasis{
  0%,100%{filter:none;transform:none}
  17%,68%{filter:brightness(1.035) saturate(1.08);transform:translateY(-1px) scale(1.006)}
}
@media (prefers-reduced-motion:reduce){
  .rg-session-card.rg-session-target{
    animation:none!important;
    background:#f8fbff;
    box-shadow:0 16px 40px rgba(25,70,169,.13)
  }
  .rg-session-card.rg-session-target::after{
    animation:none!important;
    opacity:1;
    transform:none
  }
  .rg-session-action-target{
    animation:none!important;
    filter:brightness(1.025) saturate(1.05)
  }
}


/* RC1.6.1.4.1 — explicit but calm confirmation after notification deep links. */
.rg-destination-confirmation{
  position:fixed;
  top:calc(env(safe-area-inset-top,0px) + 18px);
  left:50%;
  z-index:2147482000;
  display:inline-flex;
  align-items:center;
  gap:9px;
  max-width:min(440px,calc(100vw - 32px));
  min-height:44px;
  padding:10px 16px;
  border:1px solid rgba(105,139,216,.30);
  border-radius:999px;
  background:rgba(255,255,255,.97);
  color:#173a7e;
  box-shadow:0 16px 48px rgba(20,55,138,.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  font-size:12px;
  font-weight:850;
  line-height:1.7;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,-10px) scale(.98);
  transition:opacity .22s ease,transform .28s cubic-bezier(.22,.61,.36,1)
}
.rg-destination-confirmation .rg-icon{width:18px;height:18px;flex:0 0 auto;color:#2f68df;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.rg-destination-confirmation.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}
@media(max-width:720px){.rg-destination-confirmation{top:calc(env(safe-area-inset-top,0px) + 12px);max-width:calc(100vw - 24px);font-size:11px;padding:9px 13px}}
@media(prefers-reduced-motion:reduce){.rg-destination-confirmation{transition:none!important}.rg-destination-confirmation.is-visible{transform:translate(-50%,0)}}

/* RC1.6.1.4.1.1 — immediate notification transition and explicit auth recovery. */
.rg-destination-confirmation .rg-destination-spinner{
  display:none;
  width:17px;
  height:17px;
  flex:0 0 auto;
  border:2px solid rgba(47,104,223,.22);
  border-top-color:#2f68df;
  border-radius:50%;
  animation:rgDestinationSpin .72s linear infinite
}
.rg-destination-confirmation.is-loading .rg-destination-spinner{display:block}
.rg-destination-confirmation.is-loading>.rg-icon{display:none}
@keyframes rgDestinationSpin{to{transform:rotate(360deg)}}

.rg-auth-recovery{
  position:fixed;
  inset:0;
  z-index:2147482500;
  display:grid;
  place-items:center;
  padding:calc(env(safe-area-inset-top,0px) + 20px) 18px calc(env(safe-area-inset-bottom,0px) + 20px);
  visibility:hidden;
  opacity:0;
  transition:opacity .2s ease,visibility .2s ease
}
.rg-auth-recovery.is-open{visibility:visible;opacity:1}
.rg-auth-recovery-backdrop{
  position:absolute;
  inset:0;
  background:rgba(8,19,48,.46);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px)
}
.rg-auth-recovery-card{
  position:relative;
  width:min(460px,100%);
  max-height:min(680px,calc(100dvh - 40px));
  overflow:auto;
  overscroll-behavior:contain;
  padding:26px;
  border:1px solid rgba(168,187,229,.58);
  border-radius:28px;
  background:#fff;
  color:#102451;
  box-shadow:0 30px 90px rgba(7,27,79,.28);
  transform:translateY(12px) scale(.985);
  transition:transform .26s cubic-bezier(.22,.61,.36,1)
}
.rg-auth-recovery.is-open .rg-auth-recovery-card{transform:none}
.rg-auth-recovery-icon{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin-bottom:16px;
  border-radius:18px;
  background:linear-gradient(145deg,#eef4ff,#f8fbff);
  color:#2f68df;
  box-shadow:inset 0 0 0 1px rgba(80,122,218,.12)
}
.rg-auth-recovery-icon .rg-icon{width:27px;height:27px}
.rg-auth-recovery-card h2{margin:5px 0 9px;font-size:22px;line-height:1.55;color:#102451}
.rg-auth-recovery-card p{margin:0;color:#65728f;font-size:13px;font-weight:650;line-height:2}
.rg-auth-recovery-actions{display:grid;gap:10px;margin-top:22px}
.rg-auth-recovery-actions .rg-btn{min-height:52px}
.rg-auth-recovery-later{
  min-height:40px;
  border:0;
  background:transparent;
  color:#68738d;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer
}
.rg-auth-recovery-notice{
  display:none;
  align-items:flex-start;
  gap:10px;
  margin:0 0 18px;
  padding:13px 15px;
  border:1px solid #cbdafb;
  border-radius:16px;
  background:#f5f8ff;
  color:#244d9f;
  font-size:12px;
  font-weight:800;
  line-height:1.9
}
.rg-auth-recovery-notice.is-visible{display:flex}
.rg-auth-recovery-notice .rg-icon{width:19px;height:19px;flex:0 0 auto;margin-top:2px;color:#2f68df}
@media(max-width:560px){
  .rg-auth-recovery{align-items:end;padding-inline:10px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 10px)}
  .rg-auth-recovery-card{padding:23px 19px 18px;border-radius:25px}
  .rg-auth-recovery-card h2{font-size:19px}
}
@media(prefers-reduced-motion:reduce){
  .rg-destination-confirmation .rg-destination-spinner{animation-duration:1.4s}
  .rg-auth-recovery,.rg-auth-recovery-card{transition:none!important}
}

/* =========================================================
   RC1.6.1.5 — Auth-first account experience
   ========================================================= */
.rg-guest .rg-private-nav { display: none !important; }
.rg-guest .rg-member-only { display: none !important; }
.rg-authenticated .rg-auth-first-shell { display: none; }
.rg-header-account {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  max-width: 190px;
  padding: 0 14px;
  border: 1px solid #dce5f7;
  border-radius: 15px;
  background: #fff;
  color: var(--rg-ink);
  font: inherit;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(30,67,160,.07);
}
.rg-header-account:hover { border-color: #b9c9f7; color: var(--rg-brand); transform: translateY(-1px); }
.rg-header-account .rg-icon { width: 21px; height: 21px; flex: 0 0 auto; }
.rg-auth-first-shell {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 510px);
  gap: 34px;
  align-items: center;
  padding: 34px 0 64px;
  min-height: calc(100vh - 88px);
}
.rg-auth-intro {
  min-width: 0;
  padding: 38px;
  border: 1px solid #dfe7f7;
  border-radius: 30px;
  background:
    radial-gradient(circle at 10% 15%, rgba(55,105,255,.14), transparent 35%),
    linear-gradient(145deg,#f8faff,#eef3ff);
  box-shadow: 0 20px 60px rgba(22,55,146,.09);
}
.rg-auth-intro h1 { margin: 10px 0 14px; font-size: clamp(34px,4vw,54px); line-height: 1.35; }
.rg-auth-intro > p { margin: 0 0 22px; color: var(--rg-ink2); line-height: 2; }
.rg-auth-intro ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.rg-auth-intro li { position: relative; padding-right: 27px; color: var(--rg-ink2); font-weight: 650; }
.rg-auth-intro li::before { content: "✓"; position: absolute; right: 0; top: 0; color: #16a36b; font-weight: 900; }
.rg-auth-trust { display: flex; gap: 10px; align-items: flex-start; margin-top: 26px; padding-top: 20px; border-top: 1px solid #d9e3f7; color: var(--rg-muted); font-size: 13px; }
.rg-auth-trust .rg-icon { width: 22px; height: 22px; color: var(--rg-brand); flex: 0 0 auto; }
.rg-auth-first-shell .rg-lookup-card {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 27px;
  border-radius: 28px;
  box-shadow: 0 25px 75px rgba(22,55,146,.14);
}
.rg-auth-first-shell .rg-auth-tabs { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; margin-bottom: 20px; }
.rg-auth-first-shell .rg-auth-tabs button { min-width: 0; padding: 11px 5px; font-size: 12px; }
.rg-auth-inline-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; margin-top: 11px; }
.rg-auth-inline-links .rg-text-button { width: auto; margin: 0; }
.rg-auth-back { border: 0; background: transparent; color: var(--rg-brand); font: inherit; font-weight: 750; cursor: pointer; padding: 0 0 12px; }
.rg-auth-two { display: grid; grid-template-columns: .6fr 1.4fr; gap: 10px; }
.rg-auth-pane input[dir="ltr"], .rg-auth-pane select[name="timezone"] { text-align: left; direction: ltr; }
.rg-auth-rules { margin: 14px 0 4px; align-items: flex-start; }
.rg-auth-rules .rg-inline-link { padding: 0; vertical-align: baseline; }
.rg-email-status {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid #dfe7f6;
  border-radius: 15px;
  background: #f8faff;
  color: var(--rg-muted);
  font-size: 13px;
}
.rg-email-status b { color: var(--rg-ink); overflow-wrap: anywhere; }
.rg-email-status.is-verified { background: #effcf6; border-color: #bfead5; }
.rg-email-status.is-verified b { color: #147a50; }
.rg-email-status.is-pending { background: #fff9eb; border-color: #f1d99f; }
.rg-auth-token-mode #accountAuthTabs { display: none; }
.rg-auth-token-mode .rg-auth-brand small { display: none; }

@media (max-width: 1000px) {
  .rg-header-account { display: none; }
  .rg-auth-first-shell { grid-template-columns: 1fr; max-width: 680px; margin-inline: auto; min-height: 0; padding-top: 24px; }
  .rg-auth-intro { order: 2; padding: 28px; }
  .rg-auth-first-shell .rg-lookup-card { order: 1; }
}
@media (max-width: 760px) {
  .rg-auth-first-shell { width: 100%; padding: 16px 0 34px; gap: 16px; }
  .rg-auth-first-shell .rg-lookup-card { padding: 20px 17px; border-radius: 23px; }
  .rg-auth-first-shell .rg-auth-tabs { grid-template-columns: 1fr 1fr; }
  .rg-auth-first-shell .rg-auth-tabs button { min-height: 42px; font-size: 12px; }
  .rg-auth-intro { padding: 22px; border-radius: 23px; }
  .rg-auth-intro h1 { font-size: 29px; }
  .rg-auth-intro > p { font-size: 14px; }
  .rg-auth-two { grid-template-columns: 1fr; }
  .rg-email-status { grid-template-columns: 1fr; align-items: start; }
  .rg-bottom-nav { grid-template-columns: repeat(var(--rg-bottom-items,4),minmax(0,1fr)); }
  body.rg-guest .rg-bottom-nav { --rg-bottom-items: 3; }
}
@media (max-width: 380px) {
  .rg-auth-first-shell .rg-auth-tabs button { font-size: 11px; padding-inline: 3px; }
  .rg-auth-brand b { font-size: 15px; }
}
.rg-session-meta .rg-local-session-time {
  flex-basis: 100%;
  margin-top: 3px;
  padding: 9px 11px;
  border-radius: 12px;
  background: #f2f6ff;
  color: #3157b7;
  font-weight: 700;
}
