/*
 * Sehat Online — Style Isolation / Typography Contract
 *
 * The plugin owns its typography, spacing and component behavior so a theme
 * cannot accidentally change the Sehat Online UI.  Visual tokens mirror the
 * current Sehat design language: Inter body text + Big Shoulders headings,
 * navy/teal accents, generous spacing and strong headings.
 */
:root{
  --sehat-font-body:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --sehat-font-heading:"Big Shoulders Display","Big Shoulders",Inter,system-ui,sans-serif;
  --sehat-line-body:1.5;
  --sehat-line-heading:1.12;
  --sehat-letter-normal:normal;
  --sehat-text:#183654;
  --sehat-muted:#687d92;
  --sehat-navy:#083c7d;
  --sehat-blue:#0b5aaa;
  --sehat-teal:#008f83;
  --sehat-border:#dfe8ef;
  --sehat-bg:#f7fafc;
}

/* Public/plugin roots: protect against theme typography resets. */
.sehat-directory-v2,
.sehat-booking-v2,
.sehat-patient-portal,
.sehat-patient-login-wrap,
.sehat-login-box,
.sehat-doctor-dashboard,
.sehat-profile-hero,
.sehat-profile-grid,
.sehat-doctor-card-grid,
.sehat-portal-app,
.sehat-doctor-portal-clean,
.sehat-admin-wrap{
  font-family:var(--sehat-font-body)!important;
  font-stretch:normal!important;
  letter-spacing:var(--sehat-letter-normal)!important;
  word-spacing:normal!important;
  text-transform:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.sehat-directory-v2 *,
.sehat-booking-v2 *,
.sehat-patient-portal *,
.sehat-patient-login-wrap *,
.sehat-login-box *,
.sehat-doctor-dashboard *,
.sehat-profile-hero *,
.sehat-profile-grid *,
.sehat-doctor-card-grid *,
.sehat-portal-app *,
.sehat-doctor-portal-clean *,
.sehat-admin-wrap *{
  font-stretch:normal!important;
}

/* Headings are always block-level and use the Sehat heading system. */
.sehat-directory-v2 h1,
.sehat-directory-v2 h2,
.sehat-directory-v2 h3,
.sehat-directory-v2 h4,
.sehat-directory-v2 h5,
.sehat-directory-v2 h6,
.sehat-booking-v2 h1,
.sehat-booking-v2 h2,
.sehat-booking-v2 h3,
.sehat-booking-v2 h4,
.sehat-booking-v2 h5,
.sehat-booking-v2 h6,
.sehat-patient-portal h1,
.sehat-patient-portal h2,
.sehat-patient-portal h3,
.sehat-patient-portal h4,
.sehat-doctor-dashboard h1,
.sehat-doctor-dashboard h2,
.sehat-doctor-dashboard h3,
.sehat-doctor-dashboard h4,
.sehat-profile-hero h1,
.sehat-profile-hero h2,
.sehat-profile-grid h1,
.sehat-profile-grid h2,
.sehat-profile-grid h3,
.sehat-profile-grid h4,
.sehat-portal-app h1,
.sehat-portal-app h2,
.sehat-portal-app h3,
.sehat-portal-app h4,
.sehat-admin-wrap h1,
.sehat-admin-wrap h2,
.sehat-admin-wrap h3,
.sehat-admin-wrap h4,
.sehat-admin-wrap h5,
.sehat-admin-wrap h6{
  font-family:var(--sehat-font-heading)!important;
  font-stretch:normal!important;
  letter-spacing:var(--sehat-letter-normal)!important;
  word-spacing:normal!important;
  text-transform:none;
  display:block;
  white-space:normal!important;
  overflow-wrap:normal;
  word-break:normal;
}

/* The small labels intentionally keep their existing uppercase treatment. */
.sehat-directory-v2 .sehat-eyebrow,
.sehat-booking-v2 .sehat-eyebrow,
.sehat-portal-app .sehat-eyebrow,
.sehat-admin-wrap .sehat-eyebrow,
.sehat-section-heading>span{
  font-family:var(--sehat-font-body)!important;
  font-size:11px!important;
  line-height:1.3!important;
  letter-spacing:.10em!important;
  font-weight:800!important;
  white-space:normal!important;
}

/* Restore predictable body copy metrics. */
.sehat-directory-v2 p,
.sehat-booking-v2 p,
.sehat-patient-portal p,
.sehat-doctor-dashboard p,
.sehat-profile-grid p,
.sehat-portal-app p,
.sehat-admin-wrap p,
.sehat-portal-app label,
.sehat-admin-wrap label,
.sehat-portal-app td,
.sehat-portal-app th,
.sehat-admin-wrap td,
.sehat-admin-wrap th,
.sehat-portal-app input,
.sehat-portal-app select,
.sehat-portal-app textarea,
.sehat-portal-app button,
.sehat-admin-wrap input,
.sehat-admin-wrap select,
.sehat-admin-wrap textarea,
.sehat-admin-wrap button{
  font-family:var(--sehat-font-body)!important;
  font-stretch:normal!important;
  letter-spacing:var(--sehat-letter-normal)!important;
  word-spacing:normal!important;
  line-height:var(--sehat-line-body)!important;
}

/* Prevent theme rules such as h1 {display:inline} or global transform/spacing
 * from collapsing labels, tabs and stepper text. */
.sehat-directory-v2 h1,.sehat-directory-v2 h2,.sehat-directory-v2 h3,
.sehat-booking-v2 h1,.sehat-booking-v2 h2,.sehat-booking-v2 h3,
.sehat-portal-app h1,.sehat-portal-app h2,.sehat-portal-app h3,
.sehat-admin-wrap h1,.sehat-admin-wrap h2,.sehat-admin-wrap h3{
  line-height:var(--sehat-line-heading)!important;
  font-weight:800!important;
  margin-top:0;
}

.sehat-directory-v2 a,
.sehat-booking-v2 a,
.sehat-patient-portal a,
.sehat-portal-app a,
.sehat-admin-wrap a{
  letter-spacing:normal!important;
  word-spacing:normal!important;
  text-transform:none;
}

.sehat-directory-v2 button,
.sehat-booking-v2 button,
.sehat-portal-app button,
.sehat-admin-wrap button,
.sehat-directory-v2 input,
.sehat-directory-v2 select,
.sehat-directory-v2 textarea,
.sehat-booking-v2 input,
.sehat-booking-v2 select,
.sehat-booking-v2 textarea,
.sehat-portal-app input,
.sehat-portal-app select,
.sehat-portal-app textarea,
.sehat-admin-wrap input,
.sehat-admin-wrap select,
.sehat-admin-wrap textarea{
  font-family:var(--sehat-font-body)!important;
  font-stretch:normal!important;
  letter-spacing:normal!important;
  word-spacing:normal!important;
  box-sizing:border-box;
}

/* Keep navigation/stepper labels on one predictable line when there is room,
 * but allow wrapping rather than overlap on narrow screens. */
.sehat-booking-tabs button strong,
.sehat-booking-tabs button small,
.sehat-step b,
.sehat-step span,
.sehat-settings-tabs a,
.sehat-module-tabs a,
.sehat-hr-tabs a{
  font-family:var(--sehat-font-body)!important;
  letter-spacing:normal!important;
  line-height:1.35!important;
  white-space:normal!important;
  word-break:normal!important;
}

.sehat-booking-tabs button strong,
.sehat-step b{font-weight:800!important;}

/* Portal shell: theme typography must never alter its navigation, header or
 * dashboard content metrics. */
.sehat-portal-app{font-size:14px!important;line-height:var(--sehat-line-body)!important;}
.sehat-portal-app .sehat-portal-header h1{font-size:28px!important;line-height:1.12!important;margin:3px 0 0!important;}
.sehat-portal-app .sehat-portal-content h1{line-height:1.12!important;}
.sehat-portal-app .sehat-portal-content h2{line-height:1.18!important;}
.sehat-portal-app .sehat-portal-content h3{line-height:1.22!important;}
.sehat-portal-app .sehat-portal-sidebar nav a{line-height:1.4!important;}

/* Admin dashboard welcome area shown inside the staff portal. */
.sehat-admin-dashboard h2,
.sehat-admin-dashboard h3,
.sehat-admin-dashboard strong,
.sehat-admin-dashboard span,
.sehat-admin-dashboard p{
  letter-spacing:normal!important;
  word-spacing:normal!important;
}
.sehat-admin-dashboard h2{line-height:1.12!important;}
.sehat-admin-dashboard p{line-height:1.5!important;}


/* Direct booking and doctor-profile roots are standalone public components.
 * They must be isolated from theme typography as well. */
.sehat-direct-booking,
.sehat-doctor-profile-v3{
  font-family:var(--sehat-font-body)!important;
  font-size:14px!important;
  line-height:var(--sehat-line-body)!important;
  font-weight:400!important;
  font-style:normal!important;
  font-stretch:normal!important;
  letter-spacing:normal!important;
  word-spacing:normal!important;
  text-transform:none!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.sehat-direct-booking *,
.sehat-doctor-profile-v3 *{
  font-family:var(--sehat-font-body)!important;
  font-stretch:normal!important;
  letter-spacing:normal!important;
  word-spacing:normal!important;
  text-transform:none!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}

/* Re-establish the plugin's intended heading hierarchy after the theme reset. */
.sehat-direct-booking h1,
.sehat-direct-booking h2,
.sehat-direct-booking h3,
.sehat-direct-booking h4,
.sehat-direct-booking h5,
.sehat-direct-booking h6,
.sehat-doctor-profile-v3 h1,
.sehat-doctor-profile-v3 h2,
.sehat-doctor-profile-v3 h3,
.sehat-doctor-profile-v3 h4,
.sehat-doctor-profile-v3 h5,
.sehat-doctor-profile-v3 h6{
  font-family:var(--sehat-font-heading)!important;
  font-stretch:normal!important;
  font-style:normal!important;
  letter-spacing:normal!important;
  word-spacing:normal!important;
  text-transform:none!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  font-weight:800!important;
}

.sehat-direct-booking h2{font-size:36px!important;line-height:1.12!important;}
.sehat-direct-booking h3{font-size:25px!important;line-height:1.18!important;}
.sehat-direct-booking h4{font-size:18px!important;line-height:1.25!important;}
.sehat-direct-booking p,
.sehat-direct-booking small,
.sehat-direct-booking label,
.sehat-direct-booking strong,
.sehat-direct-booking span,
.sehat-direct-booking button,
.sehat-direct-booking input,
.sehat-direct-booking select,
.sehat-direct-booking textarea,
.sehat-doctor-profile-v3 p,
.sehat-doctor-profile-v3 small,
.sehat-doctor-profile-v3 label,
.sehat-doctor-profile-v3 strong,
.sehat-doctor-profile-v3 span,
.sehat-doctor-profile-v3 button,
.sehat-doctor-profile-v3 input,
.sehat-doctor-profile-v3 select,
.sehat-doctor-profile-v3 textarea{
  font-size:inherit;
  line-height:inherit;
}

/* Keep compact UI labels compact without inheriting theme heading styles. */
.sehat-direct-booking .sehat-eyebrow,
.sehat-direct-booking .sehat-direct-step>span,
.sehat-direct-booking .sehat-direct-brand-copy span,
.sehat-direct-booking .sehat-calendar-week span,
.sehat-direct-booking .sehat-direct-progress span,
.sehat-direct-booking .sehat-direct-doctor-facts span,
.sehat-direct-booking .sehat-direct-rating span{
  font-family:var(--sehat-font-body)!important;
  font-size:11px!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:normal!important;
  white-space:normal!important;
}

/* Theme builders sometimes apply negative margins/letter spacing to generic
 * spans and labels. Restore predictable spacing for booking text blocks. */
.sehat-direct-booking p,
.sehat-direct-booking .sehat-direct-helper,
.sehat-direct-booking .sehat-direct-head p,
.sehat-direct-booking .sehat-calendar-title small{
  margin-top:0;
  letter-spacing:normal!important;
  word-spacing:normal!important;
}

@media(max-width:600px){
  .sehat-direct-booking h2{font-size:29px!important;}
  .sehat-direct-booking h3{font-size:22px!important;}
}

/* Responsive: don't let theme typography force horizontal overflow. */
@media(max-width:900px){
  .sehat-directory-v2 h2{font-size:32px!important;}
  .sehat-booking-v2 h2{font-size:32px!important;}
}
@media(max-width:600px){
  .sehat-directory-v2 h2{font-size:28px!important;}
  .sehat-booking-v2 h2{font-size:28px!important;}
  .sehat-portal-app .sehat-portal-header h1{font-size:24px!important;}
}

/* v5.2.3 — native Sehat Online coupon UI */
.sehat-direct-booking .sehat-coupon-box{margin:22px 0 8px;padding:18px;border:1px solid #dce7ea;border-radius:14px;background:#f7fbfb;}
.sehat-direct-booking .sehat-coupon-head{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;}
.sehat-direct-booking .sehat-coupon-head strong{font-size:15px!important;color:#10275f!important;}
.sehat-direct-booking .sehat-coupon-head small{font-size:12px!important;color:#64748b!important;}
.sehat-direct-booking .sehat-coupon-row{display:flex;gap:10px;align-items:stretch;}
.sehat-direct-booking .sehat-coupon-row input{flex:1;min-width:0;height:46px!important;margin:0!important;}
.sehat-direct-booking .sehat-coupon-apply{min-width:96px;border:0!important;border-radius:10px!important;background:#0b8a7e!important;color:#fff!important;font-weight:800!important;padding:0 18px!important;cursor:pointer;}
.sehat-direct-booking .sehat-coupon-apply:disabled{opacity:.65;cursor:wait;}
.sehat-direct-booking .sehat-coupon-message{min-height:18px;margin-top:9px;font-size:12px!important;line-height:1.45!important;color:#64748b!important;}
.sehat-direct-booking .sehat-coupon-message.success{color:#087f79!important;}
.sehat-direct-booking .sehat-coupon-message.error{color:#b42318!important;}
.sehat-direct-booking .side-discount-row{display:flex;justify-content:space-between;gap:12px;padding-top:8px;margin-top:8px;border-top:1px dashed #dce7ea;}
.sehat-direct-booking .side-discount-row strong{color:#087f79!important;}
.sehat-direct-booking .sehat-final-service{display:grid!important;grid-template-columns:1fr auto;gap:9px 16px!important;}
.sehat-direct-booking .sehat-final-service>strong,.sehat-direct-booking .sehat-final-service>span{margin:0!important;}
.sehat-direct-booking .sehat-final-service .sehat-final-amount{grid-column:1/-1;margin-top:5px!important;padding-top:13px;border-top:1px solid #dce7ea;font-size:20px!important;color:#087f79!important;}
.sehat-direct-booking .sehat-coupon-applied-label{color:#087f79!important;}
.sehat-direct-booking .sehat-coupon-applied-value{color:#087f79!important;font-weight:800!important;}
@media(max-width:680px){.sehat-direct-booking .sehat-coupon-row{flex-direction:column}.sehat-direct-booking .sehat-coupon-apply{min-height:46px}.sehat-direct-booking .sehat-final-service{grid-template-columns:1fr}.sehat-direct-booking .sehat-final-service .sehat-final-amount{grid-column:1;}}
