/* ==========================================================================
   GETSMARTREHAB Elementor Widgets — shared stylesheet
   All selectors are prefixed with .gsr- so this can't collide with theme
   or other plugin styles. Custom properties are also prefixed.
   ========================================================================== */

:root {
  --gsr-bone: #F4F0E7;
  --gsr-bone-dim: #ECE6D8;
  --gsr-paper: #FBF9F4;
  --gsr-ink: #1C231F;
  --gsr-ink-soft: #4A544C;
  --gsr-line: rgba(28, 35, 31, 0.12);

  --gsr-teal: #14453F;
  --gsr-teal-deep: #0E332E;
  --gsr-teal-tint: #DEE8E3;

  --gsr-blue: #3B6FA0;
  --gsr-red: #A9503A;
  --gsr-yellow: #C88C34;
  --gsr-green: #4C7A5A;

  --gsr-radius-sm: 6px;
  --gsr-radius-md: 14px;
  --gsr-radius-lg: 28px;

  --gsr-font-display: 'Fraunces', Georgia, serif;
  --gsr-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gsr-font-mono: 'IBM Plex Mono', ui-monospace, monospace;
}

.gsr-root { font-family: var(--gsr-font-body); color: var(--gsr-ink); }
.gsr-root img { max-width: 100%; display: block; }
.gsr-root p { margin: 0 0 1em; color: var(--gsr-ink-soft); }
.gsr-root h1, .gsr-root h2, .gsr-root h3, .gsr-root h4 {
  font-family: var(--gsr-font-display);
  font-weight: 500;
  line-height: 1.1;
  margin: 0 0 0.4em;
  letter-spacing: -0.01em;
  color: var(--gsr-ink);
}
.gsr-container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }

.gsr-eyebrow {
  font-family: var(--gsr-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gsr-teal);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

/* SMART brand mark */
.gsr-mark { display: inline-flex; gap: 3px; flex-shrink: 0; }
.gsr-mark span {
  width: 15px; height: 15px; border-radius: 3px;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--gsr-font-mono); font-size: 9px; font-weight: 700; color: var(--gsr-paper);
}
.gsr-mark.gsr-mark-lg span { width: 26px; height: 26px; font-size: 14px; border-radius: 5px; }

.gsr-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--gsr-font-body); font-weight: 600; font-size: 0.92rem;
  padding: 12px 22px; border-radius: 999px; text-decoration: none;
  border: 1px solid transparent; cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease, border-color .15s ease;
  white-space: nowrap;
}
.gsr-btn:hover { transform: translateY(-1px); }
.gsr-btn-primary { background: var(--gsr-teal); color: var(--gsr-paper) !important; }
.gsr-btn-primary:hover { background: var(--gsr-teal-deep); }
.gsr-btn-ghost { background: transparent; color: var(--gsr-ink) !important; border-color: var(--gsr-line); }
.gsr-btn-ghost:hover { border-color: var(--gsr-teal); color: var(--gsr-teal) !important; }

/* ---- Hero ---- */
.gsr-hero {
  padding: clamp(40px, 8vw, 90px) 20px;
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(30px, 5vw, 70px); align-items: center;
}
@media (max-width: 900px) { .gsr-hero { grid-template-columns: 1fr; } .gsr-hero .gsr-hero-media { order: -1; } }
.gsr-hero h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); }
.gsr-hero h1 em { font-style: italic; color: var(--gsr-teal); }
.gsr-hero-sub { font-size: 1.08rem; max-width: 46ch; margin-bottom: 1.6em; }
.gsr-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 28px; }
.gsr-hero-keywords { display: flex; flex-wrap: wrap; gap: 8px; }
.gsr-kw { font-family: var(--gsr-font-mono); font-size: 0.72rem; color: var(--gsr-ink-soft); border: 1px solid var(--gsr-line); padding: 5px 10px; border-radius: 999px; }

.gsr-hero-media { position: relative; border-radius: var(--gsr-radius-lg); overflow: hidden; aspect-ratio: 4/5; background: var(--gsr-teal); }
.gsr-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: var(--gsr-duo-filter, grayscale(1) contrast(1.05) brightness(1.02)); mix-blend-mode: luminosity; }
.gsr-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(155deg, var(--gsr-duo-1, rgba(20,69,63,0.72)), var(--gsr-duo-2, rgba(200,140,52,0.35))); mix-blend-mode: multiply; opacity: var(--gsr-duo-opacity, 1); }
.gsr-hero-media .gsr-tag { position: absolute; left: 20px; bottom: 20px; z-index: 2; color: var(--gsr-paper); font-family: var(--gsr-font-mono); font-size: 0.74rem; background: rgba(20,69,63,0.55); padding: 8px 12px; border-radius: 999px; backdrop-filter: blur(4px); }

.gsr-duotone { position: relative; overflow: hidden; background: var(--gsr-teal); border-radius: var(--gsr-radius-md); }
.gsr-duotone img { width: 100%; height: 100%; object-fit: cover; filter: var(--gsr-duo-filter, grayscale(1) contrast(1.08) brightness(1.03)); mix-blend-mode: luminosity; display: block; }
.gsr-duotone::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, var(--gsr-duo-1, rgba(20,69,63,0.68)), var(--gsr-duo-2, rgba(200,140,52,0.30))); mix-blend-mode: multiply; opacity: var(--gsr-duo-opacity, 1); }
.gsr-duotone.gsr-warm { --gsr-duo-1: rgba(169,80,58,0.55); --gsr-duo-2: rgba(200,140,52,0.32); }

/* ---- Sections ---- */
.gsr-section { padding: clamp(56px, 8vw, 110px) 0; }
.gsr-section-head { max-width: 640px; margin-bottom: 44px; }
.gsr-section-head.gsr-center { margin-left: auto; margin-right: auto; text-align: center; }
.gsr-section-alt { background: var(--gsr-paper); }
.gsr-section-teal { background: var(--gsr-teal); }
.gsr-section-teal .gsr-eyebrow { color: #BFE0D6; }
.gsr-section-teal h2, .gsr-section-teal h3 { color: var(--gsr-paper); }
.gsr-section-teal p { color: rgba(251, 249, 244, 0.82); }

/* ---- Product gallery ---- */
.gsr-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.gsr-gallery .gsr-duotone { aspect-ratio: 4/5; }
.gsr-gallery figcaption { font-family: var(--gsr-font-mono); font-size: 0.72rem; color: var(--gsr-ink-soft); margin-top: 8px; }
.gsr-gallery figure { margin: 0; }
@media (max-width: 760px) { .gsr-gallery { grid-template-columns: 1fr 1fr; } }

/* ---- Science / texture board ---- */
.gsr-science-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
@media (max-width: 900px) { .gsr-science-grid { grid-template-columns: 1fr; gap: 36px; } }
.gsr-stat-row { display: flex; gap: 30px; margin-top: 28px; flex-wrap: wrap; }
.gsr-stat b { display: block; font-family: var(--gsr-font-display); font-size: 2rem; color: var(--gsr-teal); line-height: 1; }
.gsr-stat span { font-size: 0.82rem; color: var(--gsr-ink-soft); }

.gsr-texture-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; background: var(--gsr-ink); border-radius: var(--gsr-radius-md); overflow: hidden; aspect-ratio: 1/1; padding: 3px; }
.gsr-swatch { position: relative; background: var(--gsr-bone-dim); overflow: hidden; }
.gsr-swatch::before { content: ""; position: absolute; inset: 0; opacity: 0.85; }
.gsr-swatch .gsr-swatch-label { position: absolute; left: 8px; bottom: 8px; font-family: var(--gsr-font-mono); font-size: 0.6rem; color: var(--gsr-ink-soft); opacity: 0; transform: translateY(4px); transition: opacity .2s ease, transform .2s ease; }
.gsr-swatch:hover .gsr-swatch-label { opacity: 1; transform: translateY(0); }
.gsr-swatch:hover::before { opacity: 1; }
.gsr-swatch:hover { background: var(--gsr-bone); }

.gsr-sw-dots::before { background-image: radial-gradient(var(--gsr-teal) 1.6px, transparent 1.6px); background-size: 12px 12px; }
.gsr-sw-lines::before { background-image: repeating-linear-gradient(45deg, var(--gsr-teal) 0 2px, transparent 2px 10px); }
.gsr-sw-grid::before { background-image: repeating-linear-gradient(0deg, var(--gsr-teal) 0 1.5px, transparent 1.5px 11px), repeating-linear-gradient(90deg, var(--gsr-teal) 0 1.5px, transparent 1.5px 11px); }
.gsr-sw-waves::before { background-image: repeating-radial-gradient(circle at 20% 30%, transparent 0 6px, var(--gsr-teal) 7px 8px); }
.gsr-sw-hex::before { background-image: radial-gradient(circle at 50% 50%, var(--gsr-teal) 2px, transparent 2px); background-size: 14px 14px; background-position: 0 0, 7px 7px; }
.gsr-sw-weave::before { background-image: repeating-linear-gradient(90deg, var(--gsr-teal) 0 3px, transparent 3px 9px), repeating-linear-gradient(0deg, transparent 0 3px, var(--gsr-teal) 3px 4px, transparent 4px 9px); }
.gsr-sw-ridge::before { background-image: repeating-linear-gradient(90deg, var(--gsr-teal) 0 2px, transparent 2px 7px); }
.gsr-sw-brick::before { background-image: linear-gradient(var(--gsr-teal) 1px, transparent 1px), repeating-linear-gradient(90deg, var(--gsr-teal) 0 1px, transparent 1px 16px); background-size: 100% 10px, 32px 10px; }
.gsr-sw-cross::before { background-image: repeating-linear-gradient(45deg, var(--gsr-teal) 0 1.4px, transparent 1.4px 9px), repeating-linear-gradient(-45deg, var(--gsr-teal) 0 1.4px, transparent 1.4px 9px); }

/* ---- Benefits ---- */
.gsr-benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--gsr-line); border: 1px solid var(--gsr-line); border-radius: var(--gsr-radius-md); overflow: hidden; }
@media (max-width: 760px) { .gsr-benefit-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .gsr-benefit-grid { grid-template-columns: 1fr; } }
.gsr-benefit { background: var(--gsr-paper); padding: 30px 26px; }
.gsr-benefit .gsr-chip { width: 34px; height: 34px; border-radius: 9px; margin-bottom: 16px; }
.gsr-benefit h3 { font-size: 1.06rem; margin-bottom: 8px; }
.gsr-benefit p { font-size: 0.92rem; margin: 0; }

/* ---- Founder ---- */
.gsr-founder { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 52px; align-items: center; }
@media (max-width: 860px) { .gsr-founder { grid-template-columns: 1fr; gap: 30px; } }
.gsr-founder-media { aspect-ratio: 1/1; max-width: 340px; }
.gsr-founder-cred { display: flex; gap: 10px; align-items: baseline; font-family: var(--gsr-font-mono); font-size: 0.76rem; color: var(--gsr-teal); margin-top: 20px; flex-wrap: wrap; }
.gsr-founder-cred span:not(:last-child)::after { content: "·"; margin-left: 10px; color: var(--gsr-line); }
.gsr-root blockquote { font-family: var(--gsr-font-display); font-style: italic; font-size: 1.3rem; color: var(--gsr-ink); border-left: 2px solid var(--gsr-teal); padding-left: 22px; margin: 24px 0 0; max-width: 48ch; }

/* ---- Waitlist ---- */
.gsr-waitlist-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
@media (max-width: 860px) { .gsr-waitlist-wrap { grid-template-columns: 1fr; gap: 34px; } }
.gsr-form-card { background: var(--gsr-paper); border-radius: var(--gsr-radius-lg); padding: clamp(24px, 4vw, 40px); color: var(--gsr-ink); }
.gsr-field { margin-bottom: 18px; }
.gsr-field label { display: block; font-size: 0.82rem; font-weight: 600; margin-bottom: 7px; color: var(--gsr-ink); }
.gsr-field input, .gsr-field select { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--gsr-line); background: var(--gsr-bone); font-family: var(--gsr-font-body); font-size: 0.95rem; color: var(--gsr-ink); }
.gsr-field input:focus, .gsr-field select:focus { border-color: var(--gsr-teal); outline: none; }
.gsr-form-note { font-size: 0.78rem; color: var(--gsr-ink-soft); margin-top: 14px; }
.gsr-form-msg { display: none; border-radius: 10px; padding: 14px 16px; font-size: 0.88rem; margin-top: 14px; }
.gsr-form-msg.gsr-show { display: block; }
.gsr-form-msg.gsr-success { background: var(--gsr-teal-tint); color: var(--gsr-teal-deep); }
.gsr-form-msg.gsr-error { background: #F6DDD6; color: #7A2F1D; }
.gsr-feedback-box { border: 1px dashed rgba(251,249,244,0.4); border-radius: var(--gsr-radius-lg); padding: clamp(24px, 4vw, 36px); }
.gsr-feedback-box .gsr-btn-primary { background: var(--gsr-paper); color: var(--gsr-teal) !important; }

/* ---- Footer ---- */
.gsr-footer { background: var(--gsr-teal-deep); color: rgba(251,249,244,0.72); padding: 48px 0 28px; }
.gsr-footer h1, .gsr-footer h2, .gsr-footer h3, .gsr-footer p { color: rgba(251,249,244,0.72); }
.gsr-footer-top { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 24px; padding-bottom: 30px; border-bottom: 1px solid rgba(251,249,244,0.14); margin-bottom: 22px; }
.gsr-footer-brand { color: var(--gsr-paper); }
.gsr-footer-links { display: flex; gap: 26px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; font-size: 0.86rem; }
.gsr-footer-links a { text-decoration: none; color: rgba(251,249,244,0.72); }
.gsr-footer-links a:hover { color: var(--gsr-paper); }
.gsr-footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; font-size: 0.78rem; }
.gsr-social-link { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(251,249,244,0.24); text-decoration: none; color: var(--gsr-paper); }
.gsr-social-link:hover { background: rgba(251,249,244,0.1); }
