/*
Theme Name:   Kivicare Child
Theme URI:    https://priscillaspecialist.com
Author:       Priscilla Specialist / Consult for Africa
Author URI:   https://consultforafrica.com
Template:     kivicare
Description:  Priscilla Specialist Hospital. Child of KiviCare — inherits appointment booking, EHR, patient portal, telemedicine. This child adds Priscilla brand, marketing pages, and membership system.
Version:      1.0.0
License:      GNU General Public License v3 or later
License URI:  http://www.gnu.org/licenses/gpl-3.0.html
Text Domain:  kivicare-child
Tags: healthcare, hospital, medical, elementor, clinic-management
*/

/* ============================================================
   PRISCILLA SPECIALIST — KIVICARE CHILD THEME
   Sections:
     1.  Design tokens       9.  Ticker
     2.  Google Fonts       10.  Why section
     3.  KiviCare overrides 11.  Services grid
     4.  Typography         12.  Homecare cards
     5.  Layout             13.  Membership
     6.  Header/Nav         14.  Register form
     7.  Buttons            15.  Corporate
     8.  Hero               16.  Wellness
                            17.  Partners / Contact
                            18.  Footer
                            19.  KiviCare frontend re-skin
                            20.  Utilities
                            21.  Elementor overrides
                            22.  Responsive
   ============================================================ */

/* 1. DESIGN TOKENS */
:root {
  --ps-emerald:       #0a6e4e;
  --ps-emerald-light: #0d8f65;
  --ps-emerald-pale:  #e8f5f0;
  --ps-emerald-dark:  #085040;
  --ps-gold:          #c8974a;
  --ps-gold-light:    #f0c070;
  --ps-cream:         #faf8f4;
  --ps-ink:           #111c18;
  --ps-ink-soft:      #3a4a42;
  --ps-slate:         #6b7a72;
  --ps-border:        #d4e0da;
  --ps-rose:          #c84a4a;
  --ps-white:         #ffffff;
  --font-display:     'Playfair Display', Georgia, serif;
  --font-body:        'DM Sans', -apple-system, sans-serif;
  --font-mono:        'DM Mono', 'Courier New', monospace;
  --space-sm: 16px; --space-md: 24px; --space-lg: 40px;
  --space-xl: 60px; --space-2xl: 100px;
  --radius-sm: 10px; --radius-md: 16px; --radius-full: 9999px;
  --shadow-sm:  0 2px 8px rgba(10,110,78,0.08);
  --shadow-md:  0 8px 32px rgba(10,110,78,0.12);
  --shadow-lg:  0 20px 60px rgba(10,110,78,0.15);
  --shadow-btn: 0 6px 20px rgba(10,110,78,0.28);
  --container: 1200px;
  --section-py: 100px;
}

/* 2. GOOGLE FONTS */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;900&family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap');

/* 3. KIVICARE PARENT OVERRIDES */
html { scroll-behavior: smooth; }
a { color: var(--ps-emerald); }
a:hover { color: var(--ps-emerald-light); }

.iq-btn-primary, .kc-btn-primary, .kivicare-btn {
  background: var(--ps-emerald) !important;
  border-color: var(--ps-emerald) !important;
  font-family: var(--font-body) !important;
}
.iq-btn-primary:hover, .kc-btn-primary:hover {
  background: var(--ps-emerald-light) !important;
}
.kivicare-appointment-wrap, .kc-appointment-form {
  font-family: var(--font-body) !important;
  border-radius: var(--radius-md) !important;
}
.kc-appointment-form .form-control:focus,
.kc-appointment-form input:focus {
  border-color: var(--ps-emerald) !important;
  box-shadow: 0 0 0 3px rgba(10,110,78,0.12) !important;
}
.iq-sidebar-logo a, .kc-sidebar .nav-item.active > a {
  color: var(--ps-emerald) !important;
}
.kc-patient-header, .iq-top-navbar { background: var(--ps-ink) !important; }
.kc-table thead th, .iq-card-header {
  background: var(--ps-emerald-pale) !important;
  color: var(--ps-emerald-dark) !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
}
.kc-doctor-card {
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--ps-border) !important;
  transition: transform 0.3s, box-shadow 0.3s !important;
}
.kc-doctor-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--shadow-md) !important;
}
.ps-marketing-page .site-content,
.ps-marketing-page #content { padding-top: 0 !important; margin-top: 0 !important; }

/* 4. TYPOGRAPHY */
body {
  font-family: var(--font-body); font-size: 16px;
  line-height: 1.7; color: var(--ps-ink);
  background-color: var(--ps-cream);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3 { font-family: var(--font-display); line-height: 1.1; letter-spacing: -0.02em; color: var(--ps-ink); }
h4,h5,h6 { font-family: var(--font-body); font-weight: 600; color: var(--ps-ink); }
h1 { font-size: clamp(42px,6vw,72px); font-weight: 900; }
h2 { font-size: clamp(30px,4vw,52px); font-weight: 700; }
h3 { font-size: clamp(20px,2.5vw,28px); font-weight: 700; }
h4 { font-size: 18px; } h5 { font-size: 15px; }
p { margin-bottom: 1em; } p:last-child { margin-bottom: 0; }
.ps-section-tag {
  display: inline-block; font-size: 12px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ps-emerald); margin-bottom: 14px;
}
.ps-accent { color: var(--ps-emerald); }
.ps-gold-text { color: var(--ps-gold-light); }

/* 5. LAYOUT */
.ps-container { max-width: var(--container); margin: 0 auto; padding: 0 5%; }
.ps-section { padding: var(--section-py) 0; }
.ps-section--cream { background-color: var(--ps-cream); }
.ps-section--white { background-color: var(--ps-white); }
.ps-section--dark  { background-color: var(--ps-ink); }
.ps-section--pale  { background-color: var(--ps-emerald-pale); }
.ps-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-xl); align-items:center; }
.ps-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-md); }
.ps-grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-md); }
.ps-grid-auto { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:var(--space-md); }
.ps-divider { border:none; border-top:1px solid var(--ps-border); margin:var(--space-xl) 0; }

/* 6. HEADER & NAV */
#masthead, .site-header, .iq-top-navbar.fixed-header {
  background: transparent !important;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.ps-scrolled #masthead,
.ps-scrolled .site-header,
.ps-scrolled .iq-top-navbar {
  background: rgba(250,248,244,0.93) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  box-shadow: 0 2px 20px rgba(10,110,78,0.1) !important;
}
.ps-portal-page #masthead,
.kc-dashboard #masthead { background: var(--ps-ink) !important; }
.ps-logo-mark {
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; background:var(--ps-emerald);
  border-radius:9px; color:white; font-family:var(--font-display);
  font-weight:700; font-size:17px; margin-right:8px; flex-shrink:0;
}
.main-header-menu .menu-item > a,
.iq-top-navbar .navbar-nav .nav-item > a {
  font-family: var(--font-body) !important; font-size: 14px !important;
  font-weight: 500 !important; color: var(--ps-ink-soft) !important;
  padding: 7px 14px !important; border-radius: 8px;
  transition: background 0.2s, color 0.2s !important;
}
.main-header-menu .menu-item > a:hover,
.main-header-menu .current-menu-item > a {
  background: var(--ps-emerald-pale) !important; color: var(--ps-emerald) !important;
}
.main-header-menu .sub-menu, .iq-top-navbar .dropdown-menu {
  border: 1px solid var(--ps-border) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: var(--shadow-lg) !important;
  padding: 8px !important; background: white !important;
}

/* 7. BUTTONS */
.ps-btn, .ps-btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px; background:var(--ps-emerald); color:white !important;
  font-family:var(--font-body); font-size:15px; font-weight:600;
  border-radius:var(--radius-sm); border:none; cursor:pointer;
  text-decoration:none; transition:background 0.2s,transform 0.2s,box-shadow 0.2s;
  box-shadow:var(--shadow-btn); line-height:1;
}
.ps-btn:hover, .ps-btn-primary:hover {
  background:var(--ps-emerald-light); transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(10,110,78,0.35); color:white !important; text-decoration:none;
}
.ps-btn-outline {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; background:transparent; color:var(--ps-ink-soft) !important;
  font-size:15px; font-weight:600; border-radius:var(--radius-sm);
  border:2px solid var(--ps-border); cursor:pointer; text-decoration:none; transition:all 0.2s;
}
.ps-btn-outline:hover { border-color:var(--ps-emerald); color:var(--ps-emerald) !important; background:var(--ps-emerald-pale); text-decoration:none; }
.ps-btn-ghost-dark { border-color:rgba(255,255,255,0.25); color:white !important; }
.ps-btn-ghost-dark:hover { border-color:rgba(255,255,255,0.6); background:rgba(255,255,255,0.1); color:white !important; }
.ps-btn-sm { padding:9px 18px; font-size:13px; }
.ps-btn-lg { padding:16px 34px; font-size:17px; }
.elementor-widget-button .elementor-button.ps-btn { background:var(--ps-emerald); box-shadow:var(--shadow-btn); }
.elementor-widget-button .elementor-button.ps-btn:hover { background:var(--ps-emerald-light); transform:translateY(-2px); }

/* 8. HERO */
.ps-hero {
  min-height:100vh; display:flex; align-items:center;
  position:relative; overflow:hidden; padding:120px 5% 80px;
  background-color:var(--ps-cream);
}
.ps-hero::before {
  content:''; position:absolute; inset:0;
  background-image: linear-gradient(rgba(212,224,218,0.4) 1px,transparent 1px), linear-gradient(90deg,rgba(212,224,218,0.4) 1px,transparent 1px);
  background-size:48px 48px; pointer-events:none; z-index:0;
}
.ps-hero::after {
  content:''; position:absolute; inset:0;
  background: radial-gradient(ellipse at 70% 30%,rgba(10,110,78,0.06) 0%,transparent 60%), radial-gradient(ellipse at 10% 80%,rgba(200,151,74,0.07) 0%,transparent 50%);
  pointer-events:none; z-index:0;
}
.ps-hero__content { position:relative; z-index:1; max-width:660px; }
.ps-hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ps-emerald-pale); border:1px solid rgba(10,110,78,0.2);
  color:var(--ps-emerald); padding:6px 16px; border-radius:var(--radius-full);
  font-size:13px; font-weight:600; margin-bottom:28px;
  animation:ps-fadeUp 0.8s ease both;
}
.ps-hero-badge__dot { width:7px; height:7px; border-radius:50%; background:var(--ps-emerald); animation:ps-pulse 2s infinite; flex-shrink:0; }
@keyframes ps-pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.35)} }
.ps-hero h1 { animation:ps-fadeUp 0.9s 0.1s ease both; }
.ps-hero .ps-hero__sub { animation:ps-fadeUp 1s 0.2s ease both; }
.ps-hero .ps-hero__actions { animation:ps-fadeUp 1s 0.3s ease both; }
@keyframes ps-fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
.ps-hero__sub { font-size:19px; color:var(--ps-ink-soft); line-height:1.65; margin:20px 0 32px; }
.ps-hero__actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ps-location-pill { display:inline-flex; align-items:center; gap:6px; margin-top:28px; font-size:13px; color:var(--ps-slate); }
.ps-stats-bar { display:flex; background:white; border:1px solid var(--ps-border); border-radius:var(--radius-md); overflow:hidden; margin-top:32px; box-shadow:var(--shadow-sm); }
.ps-stat-item { padding:18px 28px; border-right:1px solid var(--ps-border); flex:1; }
.ps-stat-item:last-child { border-right:none; }
.ps-stat-num { font-family:var(--font-display); font-size:30px; font-weight:700; color:var(--ps-emerald); line-height:1; display:block; }
.ps-stat-desc { font-size:12px; color:var(--ps-slate); margin-top:3px; display:block; }

/* 9. TICKER */
.ps-ticker { background:var(--ps-emerald); overflow:hidden; padding:14px 0; white-space:nowrap; }
.ps-ticker__inner { display:inline-flex; animation:ps-ticker 35s linear infinite; }
.ps-ticker__item { font-family:var(--font-body); font-size:13px; font-weight:600; color:white; letter-spacing:.06em; text-transform:uppercase; padding:0 32px; flex-shrink:0; }
.ps-ticker__item::before { content:'✦'; margin-right:32px; opacity:.4; }
@keyframes ps-ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.ps-ticker:hover .ps-ticker__inner { animation-play-state:paused; }

/* 10. WHY SECTION */
.ps-why-stat { background:white; border:1px solid var(--ps-border); border-radius:var(--radius-md); padding:28px; text-align:center; transition:transform 0.3s,box-shadow 0.3s; }
.ps-why-stat:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.ps-why-stat--highlight { background:var(--ps-emerald); border-color:var(--ps-emerald); }
.ps-why-stat--highlight .ps-why-stat__num, .ps-why-stat--highlight .ps-why-stat__desc { color:white; }
.ps-why-stat__num { font-family:var(--font-display); font-size:44px; font-weight:700; color:var(--ps-emerald); line-height:1; display:block; }
.ps-why-stat__desc { font-size:13px; color:var(--ps-slate); margin-top:6px; }
.ps-blockquote { background:var(--ps-emerald-pale); border-left:3px solid var(--ps-emerald); border-radius:0 var(--radius-sm) var(--radius-sm) 0; padding:18px 22px; margin:24px 0; font-size:16px; font-style:italic; color:var(--ps-emerald-dark); font-weight:500; }

/* 11. SERVICES GRID */
.ps-service-card { background:white; border:1px solid var(--ps-border); border-radius:var(--radius-md); padding:28px; position:relative; overflow:hidden; transition:transform 0.3s,box-shadow 0.3s,border-color 0.3s; }
.ps-service-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--ps-emerald); transform:scaleX(0); transform-origin:left; transition:transform 0.3s; }
.ps-service-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:rgba(10,110,78,0.2); }
.ps-service-card:hover::after { transform:scaleX(1); }
.ps-service-card__icon { font-size:30px; margin-bottom:14px; display:block; }
.ps-service-card h3 { font-size:17px; margin-bottom:8px; }
.ps-service-card p { font-size:14px; color:var(--ps-slate); line-height:1.6; margin-bottom:14px; }
.ps-badge { display:inline-block; padding:3px 12px; background:var(--ps-emerald-pale); color:var(--ps-emerald-dark); border-radius:var(--radius-full); font-size:11px; font-weight:600; letter-spacing:.04em; }
.ps-badge--gold { background:rgba(200,151,74,.15); color:#7a5520; }
.ps-badge--live { background:#dcfce7; color:#166534; position:relative; padding-left:18px; }
.ps-badge--live::before { content:''; position:absolute; left:7px; top:50%; transform:translateY(-50%); width:6px; height:6px; border-radius:50%; background:#16a34a; animation:ps-pulse 2s infinite; }

/* 12. HOMECARE CARDS */
.ps-homecare-card { background:white; border:1px solid var(--ps-border); border-radius:var(--radius-md); padding:32px; transition:all 0.3s; }
.ps-homecare-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--ps-emerald); }
.ps-homecare-card__icon { font-size:34px; margin-bottom:18px; display:block; }
.ps-homecare-card h3 { font-size:19px; margin-bottom:8px; }
.ps-homecare-card p { font-size:14px; color:var(--ps-slate); line-height:1.65; margin-bottom:16px; }
.ps-price { font-family:var(--font-mono); font-size:20px; font-weight:500; color:var(--ps-emerald); }
.ps-price small { font-family:var(--font-body); font-size:12px; color:var(--ps-slate); font-weight:400; }

/* 13. MEMBERSHIP PRICING */
.ps-membership-section { background:var(--ps-ink); }
.ps-membership-section h2 { color:white; }
.ps-membership-section .ps-section-tag { color:var(--ps-gold-light); }
.ps-membership-section p { color:rgba(255,255,255,.6); }
.ps-plan-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); padding:36px; position:relative; transition:background 0.3s,transform 0.3s; }
.ps-plan-card:hover { background:rgba(255,255,255,.08); transform:translateY(-4px); }
.ps-plan-card--popular { background:var(--ps-emerald); border-color:var(--ps-emerald); transform:scale(1.03); }
.ps-plan-card--popular:hover { transform:scale(1.03) translateY(-4px); }
.ps-plan-ribbon { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--ps-gold); color:var(--ps-ink); font-size:11px; font-weight:700; padding:4px 18px; border-radius:var(--radius-full); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.ps-plan-card__tier { font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:4px; display:block; }
.ps-plan-card__name { font-family:var(--font-display); font-size:26px; font-weight:700; color:white; margin-bottom:2px; }
.ps-plan-card__for { font-size:13px; color:rgba(255,255,255,.5); margin-bottom:20px; display:block; }
.ps-plan-card__price .amount { font-family:var(--font-display); font-size:42px; font-weight:700; color:white; }
.ps-plan-card__price .suffix { font-size:14px; color:rgba(255,255,255,.5); }
.ps-plan-card__discount { font-size:15px; font-weight:700; color:var(--ps-gold-light); margin:6px 0 24px; display:block; }
.ps-plan-card--popular .ps-plan-card__discount { color:white; }
.ps-plan-features { list-style:none; padding:0; margin:0 0 28px; }
.ps-plan-features li { font-size:14px; color:rgba(255,255,255,.75); padding:8px 0; border-bottom:1px solid rgba(255,255,255,.08); display:flex; align-items:flex-start; gap:10px; }
.ps-plan-features li::before { content:'✓'; color:var(--ps-gold-light); font-weight:700; flex-shrink:0; }
.ps-plan-card--popular .ps-plan-features li { color:rgba(255,255,255,.9); }
.ps-plan-card--popular .ps-plan-features li::before { color:white; }
.ps-plan-btn { width:100%; padding:13px; border-radius:var(--radius-sm); font-size:15px; font-weight:600; cursor:pointer; transition:all 0.2s; border:2px solid rgba(255,255,255,.2); background:transparent; color:white; font-family:var(--font-body); }
.ps-plan-btn:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.4); }
.ps-plan-card--popular .ps-plan-btn { background:white; color:var(--ps-emerald); border-color:white; }
.ps-plan-card--popular .ps-plan-btn:hover { background:var(--ps-cream); }

/* 14. REGISTER FORM */
.ps-form-wrap { background:var(--ps-cream); border:1px solid var(--ps-border); border-radius:var(--radius-md); padding:40px; }
.ps-form-tabs { display:flex; gap:8px; margin-bottom:24px; }
.ps-form-tab { flex:1; padding:10px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; border:1.5px solid var(--ps-border); background:white; color:var(--ps-slate); cursor:pointer; transition:all 0.2s; text-align:center; }
.ps-form-tab.active, .ps-form-tab:hover { background:var(--ps-emerald); border-color:var(--ps-emerald); color:white; }
.wpforms-container .wpforms-field-label { font-family:var(--font-body) !important; font-size:13px !important; font-weight:600 !important; color:var(--ps-ink) !important; margin-bottom:6px !important; }
.wpforms-container .wpforms-field input,
.wpforms-container .wpforms-field select,
.wpforms-container .wpforms-field textarea { font-family:var(--font-body) !important; font-size:15px !important; border:1.5px solid var(--ps-border) !important; border-radius:var(--radius-sm) !important; padding:12px 14px !important; background:white !important; color:var(--ps-ink) !important; box-shadow:none !important; transition:border-color 0.2s !important; }
.wpforms-container .wpforms-field input:focus,
.wpforms-container .wpforms-field select:focus,
.wpforms-container .wpforms-field textarea:focus { border-color:var(--ps-emerald) !important; outline:none !important; }
.wpforms-container .wpforms-submit-container .wpforms-submit { background:var(--ps-emerald) !important; color:white !important; font-family:var(--font-body) !important; font-size:16px !important; font-weight:700 !important; padding:14px 28px !important; border-radius:var(--radius-sm) !important; border:none !important; box-shadow:var(--shadow-btn) !important; width:100% !important; transition:all 0.2s !important; }
.wpforms-container .wpforms-submit-container .wpforms-submit:hover { background:var(--ps-emerald-light) !important; transform:translateY(-1px) !important; }
.ps-mem-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px; }
.ps-mem-option { border:2px solid var(--ps-border); border-radius:var(--radius-sm); padding:14px 10px; text-align:center; cursor:pointer; transition:all 0.2s; }
.ps-mem-option:hover, .ps-mem-option.selected { border-color:var(--ps-emerald); background:var(--ps-emerald-pale); }
.ps-mem-option strong { display:block; font-size:15px; color:var(--ps-emerald); margin-bottom:2px; }
.ps-mem-option span { font-size:11px; color:var(--ps-slate); }
.ps-progress-wrap { margin:20px 0; }
.ps-progress-label { font-size:13px; color:var(--ps-slate); margin-bottom:8px; }
.ps-progress-bar { height:8px; background:var(--ps-border); border-radius:4px; overflow:hidden; }
.ps-progress-fill { height:100%; background:linear-gradient(90deg,var(--ps-emerald),var(--ps-gold)); border-radius:4px; transition:width 1.2s ease; }
.ps-trust-item { display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; }
.ps-trust-icon { width:44px; height:44px; background:var(--ps-emerald-pale); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.ps-trust-item p { font-size:14px; color:var(--ps-ink-soft); line-height:1.55; margin:0; }

/* 15. CORPORATE */
.ps-corp-tier { border:1px solid var(--ps-border); border-radius:var(--radius-sm); padding:22px; display:flex; align-items:center; gap:18px; transition:all 0.3s; cursor:pointer; margin-bottom:14px; }
.ps-corp-tier:hover, .ps-corp-tier.active { border-color:var(--ps-emerald); background:var(--ps-emerald-pale); }
.ps-corp-tier__icon { font-size:26px; flex-shrink:0; }
.ps-corp-tier__info h4 { font-size:16px; margin-bottom:3px; }
.ps-corp-tier__info p { font-size:13px; color:var(--ps-slate); margin:0; }
.ps-corp-tier__price { margin-left:auto; text-align:right; flex-shrink:0; }
.ps-corp-tier__price .amt { font-family:var(--font-mono); font-size:17px; color:var(--ps-emerald); display:block; }
.ps-corp-tier__price small { font-size:11px; color:var(--ps-slate); }
.ps-benefit { display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; }
.ps-benefit__check { width:22px; height:22px; background:var(--ps-emerald); border-radius:50%; display:flex; align-items:center; justify-content:center; color:white; font-size:11px; font-weight:700; flex-shrink:0; margin-top:1px; }
.ps-benefit p { font-size:15px; color:var(--ps-ink-soft); line-height:1.55; margin:0; }

/* 16. WELLNESS */
.ps-wellness-card { background:white; border:1px solid var(--ps-border); border-radius:var(--radius-md); padding:28px; transition:all 0.3s; }
.ps-wellness-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.ps-gender-tag { display:inline-block; font-size:11px; font-weight:600; padding:3px 12px; border-radius:var(--radius-full); margin-bottom:12px; }
.ps-gender-tag--male   { background:#dbeafe; color:#1d4ed8; }
.ps-gender-tag--female { background:#fce7f3; color:#be185d; }
.ps-gender-tag--all    { background:var(--ps-emerald-pale); color:var(--ps-emerald-dark); }
.ps-gender-tag--senior { background:#fef3c7; color:#92400e; }
.ps-gender-tag--child  { background:#ede9fe; color:#5b21b6; }
.ps-gender-tag--corp   { background:#f0fdf4; color:#166534; }

/* 17. PARTNERS & CONTACT */
.ps-partner-card { background:white; border:1px solid var(--ps-border); border-radius:var(--radius-md); padding:32px; transition:all 0.3s; }
.ps-partner-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.ps-partner-tag { display:inline-block; font-size:11px; font-weight:600; padding:3px 12px; border-radius:var(--radius-full); background:var(--ps-emerald-pale); color:var(--ps-emerald-dark); margin-bottom:14px; }
.ps-partner-card a { font-size:14px; font-weight:600; color:var(--ps-emerald); text-decoration:none; }
.ps-partner-card a:hover { text-decoration:underline; }
.ps-contact-method { display:flex; gap:16px; align-items:center; padding:18px; border:1px solid var(--ps-border); border-radius:var(--radius-sm); text-decoration:none; transition:all 0.2s; margin-bottom:12px; color:var(--ps-ink); }
.ps-contact-method:hover { border-color:var(--ps-emerald); background:var(--ps-emerald-pale); color:var(--ps-ink); text-decoration:none; }
.ps-contact-method__icon { width:46px; height:46px; background:var(--ps-emerald-pale); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; transition:background 0.2s; }
.ps-contact-method:hover .ps-contact-method__icon { background:var(--ps-emerald); }
.ps-contact-method strong { display:block; font-size:15px; margin-bottom:2px; }
.ps-contact-method span { font-size:13px; color:var(--ps-slate); }

/* 18. FOOTER */
.ps-footer { background:var(--ps-ink); color:white; padding:60px 5% 28px; }
.ps-footer__grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:28px; }
.ps-footer__brand p { font-size:14px; color:rgba(255,255,255,.5); line-height:1.7; margin:12px 0 20px; }
.ps-footer__logo { display:flex; align-items:center; gap:10px; text-decoration:none; font-family:var(--font-display); font-size:20px; font-weight:700; color:white; }
.ps-footer__col h4 { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:16px; }
.ps-footer__col ul { list-style:none; padding:0; margin:0; }
.ps-footer__col ul li { margin-bottom:9px; }
.ps-footer__col ul li a { font-size:14px; color:rgba(255,255,255,.6); text-decoration:none; transition:color 0.2s; }
.ps-footer__col ul li a:hover { color:white; }
.ps-social-row { display:flex; gap:8px; }
.ps-social-btn { width:34px; height:34px; border:1px solid rgba(255,255,255,.15); border-radius:8px; display:flex; align-items:center; justify-content:center; color:white; font-size:14px; text-decoration:none; transition:all 0.2s; }
.ps-social-btn:hover { background:var(--ps-emerald); border-color:var(--ps-emerald); color:white; }
.ps-footer__bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.ps-footer__bottom p, .ps-footer__bottom a { font-size:13px; color:rgba(255,255,255,.38); }
.ps-footer__bottom a:hover { color:rgba(255,255,255,.7); }
.ps-footer__legal { display:flex; gap:20px; }

/* 19. KIVICARE FRONTEND RE-SKIN */
.kc-booking-form-wrap, [class*="kivicare-book"] { font-family:var(--font-body) !important; border-radius:var(--radius-md) !important; border:1px solid var(--ps-border) !important; padding:36px !important; background:white !important; }
.kc-booking-form-wrap h2, .kc-booking-form-wrap h3 { font-family:var(--font-display) !important; color:var(--ps-ink) !important; }
.kc-step-bar .kc-step.active, .kc-wizard .step.active { background:var(--ps-emerald) !important; border-color:var(--ps-emerald) !important; color:white !important; }
.kc-step-bar .kc-step.completed, .kc-wizard .step.completed { background:var(--ps-emerald-pale) !important; border-color:var(--ps-emerald) !important; color:var(--ps-emerald) !important; }
.kc-select-doctor .kc-doctor-item, .kc-doctor-selection-card { border:2px solid var(--ps-border) !important; border-radius:var(--radius-sm) !important; transition:all 0.2s !important; }
.kc-select-doctor .kc-doctor-item:hover, .kc-select-doctor .kc-doctor-item.selected, .kc-doctor-selection-card.selected { border-color:var(--ps-emerald) !important; background:var(--ps-emerald-pale) !important; }
.kc-time-slot, .kc-slot-item { border:1.5px solid var(--ps-border) !important; border-radius:8px !important; font-family:var(--font-body) !important; font-size:13px !important; transition:all 0.2s !important; }
.kc-time-slot:hover, .kc-time-slot.selected, .kc-slot-item.active { background:var(--ps-emerald) !important; border-color:var(--ps-emerald) !important; color:white !important; }
.kc-patient-dashboard, .iq-card { border-radius:var(--radius-md) !important; border:1px solid var(--ps-border) !important; box-shadow:var(--shadow-sm) !important; font-family:var(--font-body) !important; }
.iq-card .iq-card-header { background:white !important; border-bottom:1px solid var(--ps-border) !important; padding:18px 24px !important; }
.iq-card .iq-card-header h4 { font-family:var(--font-display) !important; color:var(--ps-ink) !important; font-size:18px !important; }
.kc-status-badge.confirmed, .badge-confirmed { background:var(--ps-emerald-pale) !important; color:var(--ps-emerald-dark) !important; }
.kc-status-badge.pending,   .badge-pending   { background:#fef3c7 !important; color:#92400e !important; }
.kc-status-badge.cancelled, .badge-cancelled { background:#fee2e2 !important; color:#991b1b !important; }
.kc-encounter-card, .kc-prescription-card, .kc-invoice-card { border:1px solid var(--ps-border) !important; border-radius:var(--radius-md) !important; padding:24px !important; font-family:var(--font-body) !important; transition:box-shadow 0.2s !important; }
.kc-encounter-card:hover, .kc-invoice-card:hover { box-shadow:var(--shadow-md) !important; }
.kc-print-header { border-bottom:2px solid var(--ps-emerald) !important; padding-bottom:16px !important; margin-bottom:24px !important; }
.iq-sidebar { background:var(--ps-ink) !important; }
.iq-sidebar .iq-sidebar-logo { border-bottom:1px solid rgba(255,255,255,.08) !important; padding:20px !important; }
.iq-sidebar-menu .iq-menu li a { color:rgba(255,255,255,.65) !important; font-family:var(--font-body) !important; font-size:14px !important; border-radius:8px !important; transition:all 0.2s !important; }
.iq-sidebar-menu .iq-menu li a:hover, .iq-sidebar-menu .iq-menu li.active > a { background:rgba(10,110,78,.2) !important; color:white !important; }
.iq-sidebar-menu .iq-menu li.active > a { background:var(--ps-emerald) !important; }
.kc-telemed-join-btn, .kc-video-call-btn { background:var(--ps-emerald) !important; border-color:var(--ps-emerald) !important; font-family:var(--font-body) !important; font-weight:600 !important; border-radius:var(--radius-sm) !important; }
.kc-notification-dot { background:var(--ps-rose) !important; }

/* 20. UTILITIES */
.ps-text-center { text-align:center; }
.ps-text-muted { color:var(--ps-slate); }
.ps-text-white { color:white !important; }
.ps-text-emerald { color:var(--ps-emerald); }
.ps-mt-sm { margin-top:var(--space-sm); } .ps-mt-md { margin-top:var(--space-md); }
.ps-mt-lg { margin-top:var(--space-lg); } .ps-mb-sm { margin-bottom:var(--space-sm); }
.ps-mb-md { margin-bottom:var(--space-md); } .ps-mb-0 { margin-bottom:0 !important; }
.ps-reveal { opacity:0; transform:translateY(22px); transition:opacity .55s ease,transform .55s ease; }
.ps-reveal.ps-revealed { opacity:1; transform:translateY(0); }

/* 21. ELEMENTOR OVERRIDES */
.elementor a { text-decoration:none; }
.elementor-widget-icon-box .elementor-icon-box-wrapper { border-radius:var(--radius-md); padding:28px; background:white; border:1px solid var(--ps-border); border-bottom:3px solid transparent; transition:border-color 0.3s,transform 0.3s,box-shadow 0.3s; }
.elementor-widget-icon-box:hover .elementor-icon-box-wrapper { border-color:rgba(10,110,78,.2); box-shadow:var(--shadow-md); transform:translateY(-4px); }
.elementor-widget-counter .elementor-counter-number-wrapper { font-family:var(--font-display) !important; color:var(--ps-emerald) !important; }
.elementor-widget-progress .elementor-progress-bar { background:linear-gradient(90deg,var(--ps-emerald),var(--ps-gold)) !important; }
.elementor-widget-price-table .elementor-price-table__header { background:var(--ps-emerald) !important; }
.elementor-widget-heading h1, .elementor-widget-heading h2, .elementor-widget-heading h3 { font-family:var(--font-display) !important; }

/* 22. RESPONSIVE */
@media (max-width:1024px) {
  :root { --section-py:70px; }
  .ps-grid-2 { grid-template-columns:1fr; gap:var(--space-lg); }
  .ps-grid-4 { grid-template-columns:1fr 1fr; }
  .ps-hero { padding:100px 5% 60px; }
  .ps-footer__grid { grid-template-columns:1fr 1fr; gap:var(--space-lg); }
  .ps-stats-bar { flex-wrap:wrap; }
  .ps-stat-item { flex:1 1 40%; }
  .ps-plan-card--popular { transform:scale(1); }
  .ps-plan-card--popular:hover { transform:translateY(-4px); }
}

@media (max-width:768px) {
  :root { --section-py:56px; }
  .ps-grid-3, .ps-grid-auto, .ps-grid-4 { grid-template-columns:1fr; }
  .ps-hero { padding:90px 5% 50px; min-height:auto; }
  .ps-hero__sub { font-size:16px; }
  .ps-hero__actions { flex-direction:column; align-items:stretch; }
  .ps-hero__actions .ps-btn, .ps-hero__actions .ps-btn-outline { text-align:center; justify-content:center; }
  .ps-stats-bar { flex-direction:column; }
  .ps-stat-item { border-right:none; border-bottom:1px solid var(--ps-border); }
  .ps-stat-item:last-child { border-bottom:none; }
  .ps-mem-options { grid-template-columns:1fr; }
  .ps-footer__grid { grid-template-columns:1fr; }
  .ps-footer__bottom { flex-direction:column; align-items:flex-start; }
  .ps-footer__legal { flex-wrap:wrap; gap:12px; }
  .ps-form-wrap { padding:24px; }
  h1 { font-size:clamp(34px,8vw,52px); }
  h2 { font-size:clamp(26px,6vw,38px); }
}
