/*
Theme Name: LifeSpring Fertility & Specialist Hospital
Theme URI: https://example.com/
Author: LifeSpring Digital Team
Author URI: https://example.com/
Description: A modern, accessible and performance-focused WordPress theme for LifeSpring Fertility & Specialist Hospital.
Version: 1.6.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: lifespring
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/*
Brand palette: deep hospital navy paired with a teal and sky-blue
duo and a warm coral highlight, in the spirit of a trusted
specialist-hospital brand.
  Navy       #0b2c56 / dark #071a38 – header, headings, primary actions
  Teal       #12958c                – section eyebrows, secondary icons
  Sky blue   #1e9fe0                – interactive accent, links
  Coral      #e8604f                – warm highlight accent
  Purple     #7b4fa0                – supporting accent
All pairings below meet WCAG AA (4.5:1) for text use on white.
*/
:root {
  --ls-primary: #0b2c56;
  --ls-primary-dark: #071a38;
  --ls-primary-soft: #e9f2fa;
  --ls-secondary: #12958c;
  --ls-secondary-soft: #e2f4f2;
  --ls-accent: #1e9fe0;
  --ls-accent-soft: #e6f4fc;
  --ls-coral: #e8604f;
  --ls-coral-soft: #fce9e6;
  --ls-purple: #7b4fa0;
  --ls-purple-soft: #efe6f5;
  --ls-ink: #0a1930;
  --ls-muted: #5c6b7a;
  --ls-bg: #fbfaf7;
  --ls-surface: #ffffff;
  --ls-border: #dde6f0;
  --ls-success: #12958c;
  --ls-danger: #a73b3b;
  --ls-radius: 18px;
  --ls-shadow: 0 14px 40px rgba(10, 25, 48, .1);
  --ls-container: 1180px;
  --ls-gap: clamp(1.25rem, 2vw, 2rem);
  --ls-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ls-display: "Lora", Georgia, "Times New Roman", serif;
  --ls-title-font: "Poppins", "DM Sans", Inter, ui-sans-serif, system-ui, sans-serif;
  --ls-brand-gradient: linear-gradient(90deg, var(--ls-primary) 0%, var(--ls-secondary) 55%, var(--ls-accent) 100%);
  --ls-icon-cycle: var(--ls-primary), var(--ls-secondary), var(--ls-accent), var(--ls-coral);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--ls-bg);
  color: var(--ls-ink);
  font-family: var(--ls-font);
  font-size: 16px;
  line-height: 1.7;
}

img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; }
a { color: var(--ls-primary-dark); text-underline-offset: 3px; }
a:hover { color: var(--ls-primary); }
:focus-visible { outline: 3px solid var(--ls-accent); outline-offset: 3px; }

.container { width: min(calc(100% - 2rem), var(--ls-container)); margin-inline: auto; }
.narrow { width: min(100%, 780px); }
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 9999; transform: translateY(-150%);
  background: var(--ls-ink); color: #fff; padding: .7rem 1rem; border-radius: 8px;
}
.skip-link:focus { transform: none; color: #fff; }

.site-header { background: var(--ls-primary); border-bottom: 0; position: sticky; top: 0; z-index: 1000; }
.topbar { background: var(--ls-ink); color: #fff; font-size: .85rem; }
.topbar .container { display:flex; justify-content:space-between; gap:1rem; align-items:center; min-height:36px; }
.topbar a { color:#fff; }
.topbar__links { display:flex; gap:1.2rem; flex-wrap:wrap; }

.header-main { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.site-branding { display:flex; align-items:center; gap:.9rem; min-width:0; background:#fff; border-radius:14px; padding:.5rem 1rem; }
.custom-logo, .custom-logo-link img { max-height:52px; width:auto; }
.site-title {
  font-family: var(--ls-title-font); font-weight:900; font-size:1.85rem; line-height:1; letter-spacing:-.015em; text-decoration:none;
  color: var(--ls-primary); /* fallback for browsers without background-clip: text */
  background: var(--ls-brand-gradient);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.site-description { display:block; color:var(--ls-muted); font-size:.7rem; font-weight:700; letter-spacing:.03em; margin-top:.3rem; max-width:260px; line-height:1.25; }

.primary-nav { display:flex; align-items:center; gap:1.2rem; }
.primary-nav ul { list-style:none; margin:0; padding:0; display:flex; gap:1.25rem; align-items:center; }
.primary-nav a { text-decoration:none; color:#fff; font-weight:600; font-size:.94rem; }
.primary-nav a:hover { color:var(--ls-accent-soft); }
.menu-toggle { display:none; background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:10px; padding:.6rem; }

.button {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:46px; padding:.72rem 1.15rem; border-radius:10px; border:1px solid transparent;
  text-decoration:none; font-weight:800; cursor:pointer; transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.button:hover { transform:translateY(-1px); text-decoration:none; }
.button--primary { background:var(--ls-primary); color:#fff; }
.button--primary:hover { background:var(--ls-primary-dark); color:#fff; }
.button--secondary { background:#fff; color:var(--ls-primary-dark); border-color:var(--ls-border); }
.button--light { background:#fff; color:var(--ls-primary-dark); }
.button--ghost { background:transparent; color:var(--ls-primary-dark); border-color:var(--ls-primary); }
.button--ghost-light { background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.button--ghost-light:hover { background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }

.hero { padding: clamp(3rem, 7vw, 6.5rem) 0; overflow:hidden; }
.hero--split { background:linear-gradient(135deg, var(--ls-primary-soft), #fff 62%); }
.hero__grid { display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.eyebrow { display:inline-flex; gap:.5rem; align-items:center; color:var(--ls-secondary); font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.09em; margin-bottom:1rem; }
.eyebrow::before { content:""; width:28px; height:2px; background:var(--ls-secondary); }
.hero h1, .page-hero h1 { font-family:var(--ls-display); font-size:clamp(2.3rem, 5vw, 4.6rem); line-height:1.03; letter-spacing:-.04em; margin:.2rem 0 1.25rem; max-width:780px; }
.hero p.lead { color:var(--ls-muted); font-size:clamp(1.05rem, 2vw, 1.22rem); max-width:670px; }
.hero__actions { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.6rem; }
.hero__media { min-height:420px; border-radius:28px; overflow:hidden; background:#d9ebe7; box-shadow:var(--ls-shadow); position:relative; }
.hero__media img { width:100%; height:100%; min-height:420px; object-fit:cover; }
.hero__media--placeholder { display:grid; place-items:center; padding:2rem; color:var(--ls-primary-dark); text-align:center; }

.quick-actions { margin-top:-2rem; position:relative; z-index:2; }
.quick-actions__grid { display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border:1px solid var(--ls-border); border-radius:18px; box-shadow:var(--ls-shadow); overflow:hidden; }
.quick-action { position:relative; padding:1.25rem 1.25rem 1.25rem 4.4rem; text-decoration:none; color:var(--ls-ink); border-right:1px solid var(--ls-border); }
.quick-action:last-child { border-right:0; }
.quick-action::before { content:"›"; position:absolute; left:1.25rem; top:1.25rem; width:42px; height:42px; border-radius:50%; background:var(--ls-primary-soft); color:var(--ls-primary); font-weight:900; font-size:1.15rem; display:grid; place-items:center; }
.quick-action:nth-child(4n+2)::before { background:var(--ls-secondary-soft); color:var(--ls-secondary); }
.quick-action:nth-child(4n+3)::before { background:var(--ls-accent-soft); color:var(--ls-accent); }
.quick-action:nth-child(4n+4)::before { background:var(--ls-coral-soft); color:var(--ls-coral); }
.quick-action strong { display:block; margin-bottom:.2rem; }
.quick-action span { color:var(--ls-muted); font-size:.9rem; }

.section { padding:clamp(3.5rem,7vw,6rem) 0; }
.section--soft { background:var(--ls-primary-soft); }
.section__head { display:flex; justify-content:space-between; gap:2rem; align-items:end; margin-bottom:2rem; }
.section__head h2 { margin:0; font-family:var(--ls-display); font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.1; letter-spacing:-.025em; }
.section__head p { margin:.5rem 0 0; color:var(--ls-muted); max-width:650px; }
.text-link { font-weight:800; white-space:nowrap; }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--ls-gap); }
.card { background:var(--ls-surface); border:1px solid var(--ls-border); border-radius:var(--ls-radius); overflow:hidden; }
.card__body { padding:1.35rem; }
.card h3 { margin:.1rem 0 .5rem; font-family:var(--ls-display); line-height:1.2; }
.card p { color:var(--ls-muted); margin:.4rem 0; }
.card__image { aspect-ratio:16/10; background:var(--ls-primary-soft); overflow:hidden; }
.card__image img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.card:hover .card__image img { transform:scale(1.025); }
.card__meta { font-size:.82rem; color:var(--ls-primary-dark); font-weight:800; }

.icon-card { padding:1.5rem; }
.icon-card__icon { width:46px; height:46px; border-radius:50%; background:var(--ls-primary); display:grid; place-items:center; color:#fff; font-weight:900; margin-bottom:1rem; }
.icon-card:nth-of-type(4n+2) .icon-card__icon { background:var(--ls-secondary); }
.icon-card:nth-of-type(4n+3) .icon-card__icon { background:var(--ls-accent); }
.icon-card:nth-of-type(4n+4) .icon-card__icon { background:var(--ls-coral); }
.icon-card a { text-decoration:none; }

.split-feature { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; }

.founder-grid { display:grid; grid-template-columns:280px 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.founder-portrait { position:relative; width:240px; max-width:100%; margin:0 auto; }
.founder-portrait__ring { position:absolute; inset:-26px; border-radius:50%; border:2px dashed var(--ls-secondary); opacity:.55; animation: founder-ring-spin 50s linear infinite; }
.founder-portrait__glow { position:absolute; inset:-10px; border-radius:50%; background:var(--ls-brand-gradient); opacity:.9; filter:blur(1px); }
.founder-portrait__frame { position:relative; z-index:1; aspect-ratio:1/1; border-radius:50%; overflow:hidden; border:6px solid #fff; box-shadow:0 20px 45px rgba(16,27,51,.18); }
.founder-portrait__frame img { width:100%; height:100%; object-fit:cover; display:block; }
.founder-portrait__badge { position:absolute; z-index:2; bottom:2%; right:2%; width:48px; height:48px; border-radius:50%; background:#fff; border:3px solid var(--ls-primary-soft); color:var(--ls-primary); font-weight:900; display:grid; place-items:center; box-shadow:var(--ls-shadow); }
.founder-content__role { color:var(--ls-primary-dark); font-weight:800; margin-top:-.5rem; }
@keyframes founder-ring-spin { to { transform:rotate(360deg); } }
@media (max-width:780px) {
  .founder-grid { grid-template-columns:1fr; text-align:center; }
  .founder-portrait { margin-bottom:.5rem; }
}
.feature-list { list-style:none; padding:0; margin:1.5rem 0; display:grid; gap:.9rem; }
.feature-list li { display:flex; gap:.7rem; align-items:flex-start; }
.feature-list li::before { content:"✓"; flex:0 0 25px; height:25px; border-radius:50%; display:grid; place-items:center; background:var(--ls-primary-soft); color:var(--ls-primary); font-weight:900; }
.media-frame { border-radius:24px; overflow:hidden; background:var(--ls-primary-soft); box-shadow:var(--ls-shadow); }
.media-frame img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.media-frame.contact-map { aspect-ratio:4/3; }
.media-frame.contact-map iframe { display:block; height:100%; }

.contact-details { list-style:none; margin:1.5rem 0 0; padding:0; display:grid; gap:1.1rem; }
.contact-details li { display:flex; flex-direction:column; gap:.2rem; padding-bottom:1.1rem; border-bottom:1px solid var(--ls-border); }
.contact-details li:last-child { border-bottom:0; padding-bottom:0; }
.contact-details strong { font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ls-muted); }
.contact-details a, .contact-details span { font-size:1.05rem; font-weight:700; color:var(--ls-primary-dark); }
.contact-details a { text-decoration:none; }
.contact-details a:hover { text-decoration:underline; }

.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; counter-reset:step; }
.step { position:relative; padding:1.4rem; background:#fff; border:1px solid var(--ls-border); border-radius:16px; }
.step__number { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--ls-primary); color:#fff; font-weight:900; margin-bottom:1rem; }
.step h3 { font-size:1.05rem; margin:.2rem 0; }
.step p { color:var(--ls-muted); font-size:.92rem; }

.cta { padding:clamp(2rem,5vw,4rem); border-radius:26px; background:var(--ls-ink); color:#fff; }
.cta h2 { font-family:var(--ls-display); margin:0 0 .5rem; font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.1; }
.cta p { color:#d8e4e4; max-width:650px; }
.cta__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.2rem; }
.cta .button--light { background:var(--ls-accent); color:#fff; }
.cta .button--light:hover { background:#1683ba; color:#fff; }

.page-hero { padding:clamp(2.5rem,5vw,4.5rem) 0; background:var(--ls-primary-soft); }
.page-hero p { color:var(--ls-muted); max-width:720px; font-size:1.08rem; }

.content { padding:clamp(2.5rem,5vw,5rem) 0; }
.entry-content { max-width:800px; }
.entry-content h2, .entry-content h3 { font-family:var(--ls-display); line-height:1.2; margin-top:2rem; }
.entry-content img { border-radius:14px; }
.entry-content blockquote { border-left:4px solid var(--ls-accent); margin:2rem 0; padding:.5rem 1.25rem; background:#fff; }
.entry-title { font-family:var(--ls-display); font-size:clamp(2rem,4vw,3.5rem); line-height:1.08; letter-spacing:-.03em; }

.specialist-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--ls-gap); }
.specialist-card { background:#fff; border:1px solid var(--ls-border); border-radius:18px; overflow:hidden; }
.specialist-card__photo { aspect-ratio:1/1; background:var(--ls-primary-soft); }
.specialist-card__photo img { width:100%; height:100%; object-fit:cover; }
.specialist-card__body { padding:1.25rem; }
.specialist-card__body h3 { margin:0; font-family:var(--ls-display); }
.specialist-card__specialty { color:var(--ls-primary); font-weight:800; font-size:.9rem; }
.specialist-card__body p { color:var(--ls-muted); }

.consultation-box { max-width:920px; margin-inline:auto; background:#fff; border:1px solid var(--ls-border); border-radius:22px; box-shadow:var(--ls-shadow); padding:clamp(1.25rem,4vw,2.5rem); }
.consultation-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; margin-bottom:2rem; }
.consultation-step { padding:.8rem; text-align:center; font-size:.82rem; color:var(--ls-muted); border-bottom:3px solid var(--ls-border); }
.consultation-step.is-active { color:var(--ls-primary-dark); border-bottom-color:var(--ls-primary); font-weight:900; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.form-field { display:grid; gap:.4rem; }
.form-field--full { grid-column:1/-1; }
.form-field label { font-weight:800; font-size:.9rem; }
.form-field input, .form-field select, .form-field textarea {
  width:100%; border:1px solid #cbd9d6; border-radius:10px; padding:.78rem .9rem; background:#fff; color:var(--ls-ink);
}
.form-field textarea { min-height:130px; resize:vertical; }
.form-help { color:var(--ls-muted); font-size:.82rem; }
.form-actions { display:flex; justify-content:space-between; gap:1rem; margin-top:1.25rem; flex-wrap:wrap; }
.notice { padding:1rem 1.1rem; border-radius:12px; background:var(--ls-primary-soft); border:1px solid #cfe4df; }
.notice--warning { background:#fff8ed; border-color:#eed8b5; }
.notice--error { background:#fff1f1; border-color:#e8c0c0; color:var(--ls-danger); }

.faq-list { display:grid; gap:.75rem; }
.faq-list details { background:#fff; border:1px solid var(--ls-border); border-radius:14px; padding:1rem 1.2rem; }
.faq-list summary { cursor:pointer; font-weight:800; }
.faq-list p { color:var(--ls-muted); margin-bottom:.2rem; }

.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--ls-gap); }
.post-card { background:#fff; border:1px solid var(--ls-border); border-radius:18px; overflow:hidden; }
.post-card__body { padding:1.25rem; }
.post-card h2 { font-family:var(--ls-display); font-size:1.25rem; line-height:1.25; margin:.25rem 0 .6rem; }
.post-card h2 a { color:var(--ls-ink); text-decoration:none; }
.post-card p { color:var(--ls-muted); }
.post-meta { color:var(--ls-muted); font-size:.8rem; }

.pagination { margin-top:2rem; }
.pagination .nav-links { display:flex; gap:.4rem; flex-wrap:wrap; }
.pagination a, .pagination span { display:inline-flex; padding:.55rem .8rem; border:1px solid var(--ls-border); border-radius:8px; text-decoration:none; background:#fff; }
.pagination .current { background:var(--ls-primary); color:#fff; border-color:var(--ls-primary); }

.site-footer { margin-top:3rem; background:linear-gradient(160deg, var(--ls-ink), var(--ls-primary) 130%); color:#c7d3e0; }
.site-footer a { color:#fff; }
.site-footer a:hover { color:var(--ls-accent-soft); }
.footer-main { padding:4rem 0 2.5rem; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.5rem; }
.footer-brand .site-title { display:block; font-size:1.4rem; background:none; -webkit-text-fill-color:#fff; color:#fff; }
.footer-brand p { max-width:360px; color:#b8c9ca; }
.footer-col h2 { font-size:.9rem; text-transform:uppercase; letter-spacing:.08em; margin-top:0; color:#fff; }
.footer-col ul { list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.footer-col li { font-size:.92rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.14); padding:1rem 0; font-size:.82rem; }
.footer-bottom .container { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.footer-bottom__nav { display:flex; gap:1.25rem; flex-wrap:wrap; }
.footer-bottom a { color:#dfeae7; text-decoration:none; }
.footer-bottom a:hover { color:#fff; text-decoration:underline; }

.mobile-actions { display:none; }

@media (max-width: 980px) {
  .primary-nav { display:none; }
  .menu-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .header-main { position:relative; }
  .primary-nav.is-open { display:block; position:absolute; left:0; right:0; top:78px; background:linear-gradient(160deg, var(--ls-primary), var(--ls-primary-dark)); border-top:1px solid rgba(255,255,255,.15); box-shadow:var(--ls-shadow); padding:1rem; }
  .primary-nav.is-open ul { display:grid; gap:.2rem; }
  .primary-nav.is-open a { display:block; padding:.7rem; color:#fff; border-bottom:1px solid rgba(255,255,255,.1); }
  .hero__grid, .split-feature { grid-template-columns:1fr; }
  .hero__media { min-height:330px; }
  .hero__media img { min-height:330px; }
  .cards, .specialist-grid, .blog-grid { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:repeat(2,1fr); }
  .footer-main { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 640px) {
  body { padding-bottom:70px; }
  .container { width:min(calc(100% - 1.25rem), var(--ls-container)); }
  .topbar { display:none; }
  .header-main { min-height:70px; }
  .header-main > .button { padding:.6rem .8rem; font-size:.82rem; min-height:38px; }
  .site-branding { padding:.35rem .7rem; border-radius:11px; }
  .site-title { font-size:1.4rem; }
  .site-description { display:none; }
  .custom-logo, .custom-logo-link img { max-height:38px; }
  .quick-actions { margin-top:1rem; }
  .quick-actions__grid { grid-template-columns:repeat(2,1fr); }
  .quick-action { border-right:1px solid var(--ls-border); border-bottom:1px solid var(--ls-border); }
  .quick-action:nth-child(2n) { border-right:0; }
  .quick-action:nth-last-child(-n+2) { border-bottom:0; }
  .section__head { display:block; }
  .section__head .text-link { display:inline-block; margin-top:.8rem; }
  .cards, .specialist-grid, .blog-grid, .steps, .form-grid { grid-template-columns:1fr; }
  .form-field--full { grid-column:auto; }
  .consultation-steps { grid-template-columns:repeat(2,1fr); }
  .footer-main { grid-template-columns:1fr; }
  .footer-bottom .container { display:block; }
  .mobile-actions {
    position:fixed; left:0; right:0; bottom:0; z-index:2000; display:grid; grid-template-columns:repeat(3,1fr);
    background:#fff; border-top:1px solid var(--ls-border); box-shadow:0 -8px 24px rgba(23,51,58,.1);
  }
  .mobile-actions a { text-align:center; padding:.55rem .25rem; font-size:.72rem; font-weight:900; text-decoration:none; color:var(--ls-ink); }
  .mobile-actions a:last-child { background:var(--ls-primary); color:#fff; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}

/* Consultation and patient portal UI */
.app-kicker { color:var(--ls-primary); font-size:.75rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.consultation-app { background:#fff; border:1px solid var(--ls-border); border-radius:26px; box-shadow:var(--ls-shadow); overflow:hidden; }
.consultation-app__top { padding:2rem clamp(1.25rem,4vw,2.5rem); display:flex; justify-content:space-between; align-items:flex-start; gap:1.5rem; background:linear-gradient(135deg,#fff,var(--ls-primary-soft)); }
.consultation-app__top h2 { margin:.35rem 0 .3rem; font-family:var(--ls-display); font-size:clamp(1.7rem,3vw,2.35rem); line-height:1.1; }
.consultation-app__top p { color:var(--ls-muted); margin:0; }
.secure-pill { background:#fff; border:1px solid var(--ls-border); border-radius:999px; padding:.5rem .8rem; font-size:.78rem; font-weight:800; white-space:nowrap; }
.secure-pill span,.status-dot { color:var(--ls-success); }
.consultation-tabs { display:flex; border-bottom:1px solid var(--ls-border); padding:0 clamp(1.25rem,4vw,2.5rem); gap:1.5rem; }
.consultation-tab { border:0; border-bottom:3px solid transparent; background:transparent; padding:1rem .1rem .85rem; font-weight:900; color:var(--ls-muted); cursor:pointer; }
.consultation-tab.is-active { color:var(--ls-primary-dark); border-bottom-color:var(--ls-primary); }
.consultation-panel { padding:clamp(1.25rem,4vw,2.5rem); }
.consultation-progress { display:grid; grid-template-columns:repeat(5,1fr); gap:.5rem; margin-bottom:2rem; }
.consultation-progress__item { display:flex; align-items:center; gap:.5rem; color:#8a989b; font-size:.78rem; font-weight:800; }
.consultation-progress__item span { width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--ls-border);background:#fff; }
.consultation-progress__item.is-active { color:var(--ls-primary-dark); }
.consultation-progress__item.is-active span,.consultation-progress__item.is-complete span { background:var(--ls-primary); color:#fff; border-color:var(--ls-primary); }
.app-section-heading { margin-bottom:1.5rem; }
.app-section-heading > span { color:var(--ls-primary); font-size:.75rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.app-section-heading h3 { font-family:var(--ls-display); font-size:1.75rem; margin:.25rem 0 .35rem; }
.app-section-heading p { color:var(--ls-muted); margin:0; }
.choice-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem; }
.choice-card { position:relative; display:block; border:1px solid var(--ls-border); border-radius:16px; padding:1.1rem; cursor:pointer; transition:.15s ease; }
.choice-card:hover { border-color:#b5cbc7; transform:translateY(-1px); }
.choice-card:has(input:checked) { border:2px solid var(--ls-primary); padding:calc(1.1rem - 1px); background:var(--ls-primary-soft); }
.choice-card input,.specialist-choice input { position:absolute;opacity:0;pointer-events:none; }
.choice-card__icon { width:38px;height:38px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--ls-primary);font-weight:900;margin-bottom:.8rem; }
.choice-card strong,.choice-card small { display:block; }
.choice-card small { color:var(--ls-muted);font-size:.84rem;margin-top:.25rem; }
.mode-picker { margin-top:1.4rem; }
.field-label { display:block;font-weight:800;font-size:.9rem;margin-bottom:.6rem; }
.mode-options { display:flex;gap:.7rem;flex-wrap:wrap; }
.mode-options label { cursor:pointer; }
.mode-options input { position:absolute;opacity:0; }
.mode-options span { display:block;padding:.7rem 1rem;border:1px solid var(--ls-border);border-radius:10px;font-weight:700; }
.mode-options input:checked + span { border-color:var(--ls-primary);background:var(--ls-primary-soft);color:var(--ls-primary-dark); }
.specialist-select-grid { display:grid;gap:.75rem; }
.specialist-choice { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;border:1px solid var(--ls-border);border-radius:14px;padding:.9rem 1rem;cursor:pointer; }
.specialist-choice.is-selected { border-color:var(--ls-primary);background:var(--ls-primary-soft); }
.specialist-choice strong,.specialist-choice small { display:block; }
.specialist-choice small { color:var(--ls-muted);font-size:.82rem; }
.specialist-choice i { color:var(--ls-primary);font-style:normal;opacity:0; }
.specialist-choice.is-selected i { opacity:1; }
.specialist-avatar,.chat-avatar,.profile-avatar { width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--ls-primary-soft);color:var(--ls-primary-dark);font-size:.78rem;font-weight:900; }
.schedule-note { margin-top:1rem;padding:1rem;background:var(--ls-primary-soft);border-radius:12px;color:var(--ls-muted); }
.schedule-note strong { color:var(--ls-ink); }
.optional { font-weight:500;color:var(--ls-muted); }
.consent-check { display:flex;gap:.7rem;margin-top:1.2rem;font-size:.85rem;color:var(--ls-muted); }
.consent-check input { margin-top:.3rem;accent-color:var(--ls-primary); }
.form-error { margin-top:1rem;padding:.8rem 1rem;border-radius:10px;background:#fff1f1;border:1px solid #e8c0c0;color:var(--ls-danger);font-weight:700; }
.booking-actions { align-items:center; }
.booking-step-counter { color:var(--ls-muted);font-size:.82rem;font-weight:800;margin-left:auto;margin-right:auto; }
.booking-summary { border:1px solid var(--ls-border);border-radius:14px;overflow:hidden;margin-bottom:1.25rem; }
.summary-row { display:flex;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--ls-border); }
.summary-row:last-child { border-bottom:0; }
.summary-row span { color:var(--ls-muted); }
.summary-row strong { text-align:right; }
.booking-success { text-align:center;padding:2rem 1rem;max-width:620px;margin:auto; }
.success-icon { width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 1rem;background:var(--ls-primary-soft);color:var(--ls-primary);font-size:1.7rem;font-weight:900; }
.booking-success h3 { font-family:var(--ls-display);font-size:1.8rem;line-height:1.2; }
.booking-success p { color:var(--ls-muted); }

.chat-shell { display:grid;grid-template-columns:280px 1fr;min-height:600px;border:1px solid var(--ls-border);border-radius:18px;overflow:hidden;background:#fff; }
.chat-sidebar { border-right:1px solid var(--ls-border);background:#fbfdfc; }
.chat-sidebar__head { padding:1rem;border-bottom:1px solid var(--ls-border);display:flex;justify-content:space-between;align-items:center; }
.chat-sidebar__head strong,.chat-sidebar__head small { display:block; }
.chat-sidebar__head small { color:var(--ls-muted);font-size:.75rem; }
.icon-button,.chat-header__more { border:0;background:transparent;cursor:pointer;font-weight:900;color:var(--ls-primary);font-size:1.2rem; }
.chat-thread { width:100%;border:0;border-bottom:1px solid var(--ls-border);background:transparent;display:grid;grid-template-columns:auto 1fr auto;text-align:left;align-items:center;gap:.7rem;padding:.9rem 1rem;cursor:pointer; }
.chat-thread.is-active { background:var(--ls-primary-soft); }
.chat-thread strong,.chat-thread small { display:block; }
.chat-thread small { color:var(--ls-muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.chat-thread b { width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--ls-primary);color:#fff;font-size:.68rem; }
.chat-avatar--muted { background:#e9eeee;color:#748285; }
.chat-sidebar__note { margin:1rem;padding:1rem;background:#fff8ed;border:1px solid #eed8b5;border-radius:12px;font-size:.76rem; }
.chat-sidebar__note p { color:var(--ls-muted);margin:.3rem 0 0; }
.chat-window { display:grid;grid-template-rows:auto 1fr auto auto;min-width:0; }
.chat-header { display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;border-bottom:1px solid var(--ls-border); }
.chat-header > div { flex:1; }
.chat-header strong,.chat-header span { display:block; }
.chat-header span { color:var(--ls-muted);font-size:.75rem; }
.chat-header__more { color:var(--ls-muted); }
.chat-messages { padding:1.2rem;overflow:auto;max-height:440px;background:#fcfdfd; }
.chat-day { text-align:center;color:#8b9799;font-size:.72rem;font-weight:800;margin-bottom:1rem; }
.message { max-width:75%;margin-bottom:.7rem; }
.message p { margin:0;padding:.75rem .9rem;border-radius:14px; }
.message time { display:block;font-size:.68rem;color:#899598;margin-top:.2rem; }
.message--staff p { background:#eef5f3;border-top-left-radius:4px; }
.message--patient { margin-left:auto;text-align:right; }
.message--patient p { background:var(--ls-primary);color:#fff;border-top-right-radius:4px; }
.message--patient time { color:#7e8c8f; }
.message__label { display:block;font-size:.72rem;font-weight:900;color:var(--ls-primary-dark);margin:0 0 .25rem .2rem; }
.typing-indicator { color:var(--ls-muted);font-size:.75rem;display:flex;align-items:center;gap:3px; }
.typing-indicator span { width:5px;height:5px;border-radius:50%;background:#9aa8aa;display:inline-block; }
.chat-composer { display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:.5rem;border-top:1px solid var(--ls-border);padding:.75rem; }
.chat-composer textarea { width:100%;border:1px solid var(--ls-border);border-radius:12px;padding:.7rem .8rem;resize:none;max-height:110px; }
.attachment-button,.send-button { width:42px;height:42px;border-radius:10px;border:1px solid var(--ls-border);background:#fff;cursor:pointer;display:grid;place-items:center; }
.send-button { background:var(--ls-primary);color:#fff;border-color:var(--ls-primary); }
.chat-disclaimer { padding:.45rem .8rem;text-align:center;color:#899598;font-size:.68rem;background:#fbfcfc; }

.dashboard-layout { display:grid;grid-template-columns:240px 1fr;gap:1.5rem;align-items:start; }
.dashboard-nav { background:#fff;border:1px solid var(--ls-border);border-radius:18px;padding:.75rem; }
.portal-profile { padding:1rem .75rem 1.2rem;border-bottom:1px solid var(--ls-border);margin-bottom:.5rem;display:grid;grid-template-columns:auto 1fr;column-gap:.7rem;align-items:center; }
.portal-profile .profile-avatar { grid-row:span 2; }
.portal-profile strong,.portal-profile small { display:block; }
.portal-profile small { color:var(--ls-muted);font-size:.72rem; }
.dashboard-nav__item { width:100%;text-align:left;border:0;background:transparent;padding:.7rem .75rem;border-radius:9px;color:var(--ls-ink);font-weight:700;cursor:pointer;display:flex;justify-content:space-between; }
.dashboard-nav__item.is-active { background:var(--ls-primary-soft);color:var(--ls-primary-dark); }
.dashboard-nav__item b { width:20px;height:20px;display:grid;place-items:center;background:var(--ls-primary);color:#fff;border-radius:50%;font-size:.65rem; }
.dashboard-welcome { display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem; }
.dashboard-welcome h2 { margin:.2rem 0 0;font-family:var(--ls-display);font-size:2rem; }
.dashboard-stat-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem; }
.dashboard-stat,.dashboard-card { background:#fff;border:1px solid var(--ls-border);border-radius:16px;padding:1.2rem; }
.dashboard-stat span { display:block;color:var(--ls-muted);font-size:.78rem;font-weight:800; }
.dashboard-stat strong { display:block;font-family:var(--ls-display);font-size:1.55rem;margin:.3rem 0; }
.dashboard-stat small { color:var(--ls-muted);font-size:.75rem; }
.dashboard-card { margin-bottom:1rem; }
.dashboard-card__head { display:flex;justify-content:space-between;gap:1rem;align-items:start;padding-bottom:1rem;border-bottom:1px solid var(--ls-border); }
.dashboard-card__head h3 { margin:0;font-family:var(--ls-display); }
.dashboard-card__head p { margin:.2rem 0 0;color:var(--ls-muted);font-size:.82rem; }
.status-badge { padding:.35rem .6rem;border-radius:999px;font-size:.7rem;font-weight:900; }
.status-badge--pending { background:#fff4df;color:#9b681e; }
.request-meta { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem 0; }
.request-meta span { color:var(--ls-muted);font-size:.75rem; }
.request-meta strong { display:block;color:var(--ls-ink);margin-top:.2rem; }
.dashboard-card__actions { display:flex;gap:.7rem;flex-wrap:wrap; }
.text-link { border:0;background:transparent;color:var(--ls-primary-dark);font-weight:900;cursor:pointer; }
.mini-message { display:flex;align-items:center;gap:.7rem;padding:.9rem 0;border-bottom:1px solid var(--ls-border); }
.mini-message:last-child { border-bottom:0; }
.mini-message > div { flex:1; }
.mini-message p { margin:.15rem 0 0;color:var(--ls-muted);font-size:.78rem; }
.mini-message time,.request-time { color:var(--ls-muted);font-size:.7rem;white-space:nowrap; }
.request-row { display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--ls-border); }
.request-row:last-child { border-bottom:0; }
.profile-avatar--small { width:38px;height:38px; }
.request-row p { margin:.15rem 0 0;color:var(--ls-muted);font-size:.78rem; }
.unread-dot { width:8px;height:8px;background:var(--ls-primary);border-radius:50%; }

@media(max-width:980px){.choice-grid{grid-template-columns:repeat(2,1fr)}.chat-shell{grid-template-columns:220px 1fr}.dashboard-layout{grid-template-columns:1fr}.dashboard-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem}.portal-profile{grid-column:1/-1}.request-row{grid-template-columns:auto 1fr auto}.request-row .button{grid-column:2/-1;justify-self:start}.request-time{display:none}}
@media(max-width:640px){.consultation-app__top{display:block}.secure-pill{display:inline-block;margin-top:1rem}.consultation-tabs{gap:1rem}.consultation-progress{grid-template-columns:repeat(5,1fr)}.consultation-progress__item{display:block;text-align:center;font-size:.65rem}.consultation-progress__item span{margin:0 auto .25rem}.consultation-progress__item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.choice-grid{grid-template-columns:1fr}.booking-step-counter{order:-1;width:100%;text-align:center}.booking-actions{justify-content:stretch}.booking-actions .button{flex:1}.chat-shell{grid-template-columns:1fr;min-height:0}.chat-sidebar{display:none}.chat-messages{max-height:390px}.message{max-width:88%}.dashboard-nav{grid-template-columns:repeat(2,1fr)}.dashboard-stat-grid{grid-template-columns:1fr}.dashboard-welcome{display:block}.dashboard-welcome .button{margin-top:1rem}.request-meta{grid-template-columns:1fr}.summary-row{display:block}.summary-row strong{display:block;text-align:left;margin-top:.2rem}}
.ls-chat-launcher { position:fixed;right:22px;bottom:22px;z-index:1900;border:0;border-radius:999px;background:var(--ls-primary);color:#fff;box-shadow:0 12px 30px rgba(14,78,73,.28);padding:.75rem .9rem .75rem .75rem;display:flex;align-items:center;gap:.55rem;font-weight:900;cursor:pointer; }
.ls-chat-launcher__icon { width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ls-primary); }
.ls-chat-launcher b { width:20px;height:20px;border-radius:50%;background:var(--ls-accent);display:grid;place-items:center;font-size:.65rem; }
@media(max-width:640px){.ls-chat-launcher{right:12px;bottom:82px}.ls-chat-launcher span:nth-child(2){font-size:.78rem}}
