/*
 * Design-system styles for Elementor widgets. Add these CSS classes in
 * Advanced > CSS Classes of any Elementor widget/container:
 *   Buttons:   ym-btn ym-btn-primary | ym-btn ym-btn-consult | ym-btn ym-btn-outline | ym-btn ym-btn-light
 *   Headings:  ym-hero-title | ym-section-title | ym-title-white
 *   Text:      ym-lead | ym-muted | ym-muted-light
 *   Cards:     ym-trust-card (+ ym-tone-warning|primary|success) | ym-step-card | ym-finder-card | ym-side-card
 *   Hero:      hero-home (section) | hero-image-wrapper (container) | ym-float-card (icon box)
 * Values set in Elementor's Style tab always win over these defaults.
 */

/* Typography */
.elementor .ym-hero-title .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1.15; font-weight: 800; color: var(--ym-navy); }
.elementor .ym-hero-title .text-highlight { background: linear-gradient(120deg, var(--ym-primary) 0%, var(--ym-teal-accent) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.elementor .ym-section-title .elementor-heading-title { font-family: var(--font-heading); font-size: calc(1.375rem + 1.5vw); font-weight: 700; color: var(--ym-navy); line-height: 1.2; }
@media (min-width: 1200px) { .elementor .ym-section-title .elementor-heading-title { font-size: 2.5rem; } }
.elementor .ym-title-white .elementor-heading-title { color: #fff; }
.elementor .ym-lead { font-size: 1.2rem; font-weight: 300; color: #6c757d; }
.elementor .ym-muted { color: var(--ym-text-muted); }
.elementor .ym-muted-light { color: rgba(248, 249, 250, .75); }
.elementor .ym-lead p:last-child, .elementor .ym-muted p:last-child, .elementor .ym-muted-light p:last-child { margin-bottom: 0; }
.elementor .ym-lead strong { color: var(--ym-navy); font-weight: 600; }

/* Buttons */
.elementor .ym-btn .elementor-button { font-family: var(--font-body); font-weight: 600; font-size: 1.05rem; border-radius: 10px; padding: 1rem 1.6rem; line-height: 1.2; transition: all .25s ease; border: 1px solid transparent; }
.elementor .ym-btn .elementor-button-content-wrapper { gap: 8px; align-items: center; }
.elementor .ym-btn .elementor-button-icon svg { width: 1em; height: 1em; fill: currentColor; }
.elementor .ym-btn-primary .elementor-button { background: var(--ym-primary); border-color: var(--ym-primary); color: #fff; }
.elementor .ym-btn-primary .elementor-button:hover { background: var(--ym-primary-dark); border-color: var(--ym-primary-dark); color: #fff; box-shadow: var(--ym-shadow-md); transform: translateY(-1px); }
.elementor .ym-btn-consult .elementor-button { background: linear-gradient(135deg, #0a4d4a 0%, #00c49f 100%); color: #fff; border: 0; box-shadow: 0 4px 14px rgba(0, 196, 159, .3); }
.elementor .ym-btn-consult .elementor-button:hover { color: #fff; box-shadow: 0 6px 20px rgba(0, 196, 159, .45); transform: translateY(-2px); }
.elementor .ym-btn-outline .elementor-button { background: #fff; border: 1.5px solid var(--ym-border-color); color: var(--ym-navy); padding: .6rem 1.1rem; font-size: 1rem; }
.elementor .ym-btn-outline .elementor-button:hover { border-color: var(--ym-primary); color: var(--ym-primary); background: var(--ym-primary-subtle); }
.elementor .ym-btn-lg.ym-btn-outline .elementor-button { padding: 1rem 1.6rem; font-size: 1.05rem; }

/* Hero */
.elementor .hero-home { background: linear-gradient(135deg, #f0fdf9 0%, #eef2ff 50%, #ffffff 100%); border-bottom: 1px solid var(--ym-border-color); overflow: hidden; }
.elementor .hero-image-wrapper { position: relative; border-radius: 20px; overflow: hidden; box-shadow: var(--ym-shadow-lg); border: 4px solid #fff; padding: 0 !important; }
.elementor .hero-image-wrapper .elementor-widget-image img { width: 100%; height: auto; display: block; object-fit: cover; transition: transform .6s ease; }
.elementor .hero-image-wrapper:hover .elementor-widget-image img { transform: scale(1.02); }
.elementor .ym-float-card { position: absolute !important; left: 20px; bottom: 20px; width: auto !important; max-width: calc(100% - 40px); background: rgba(255, 255, 255, .95); backdrop-filter: blur(12px); padding: 14px 20px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .8); box-shadow: var(--ym-shadow-md); }
.elementor .ym-float-card .elementor-icon-box-wrapper { align-items: center; gap: 12px; text-align: start; }
.elementor .ym-float-card .elementor-icon { width: 44px; height: 44px; border-radius: 10px; background: var(--ym-primary-subtle); color: var(--ym-primary); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.elementor .ym-float-card .elementor-icon svg { fill: currentColor; width: 1.2rem; height: 1.2rem; }
.elementor .ym-float-card .elementor-icon-box-title { font-family: var(--font-heading); font-size: .95rem; font-weight: 700; color: var(--ym-navy); margin: 0; }
.elementor .ym-float-card .elementor-icon-box-description { font-size: .75rem; color: var(--ym-text-muted); margin: 0; }
.elementor .ym-hero-metrics { border-top: 1px solid rgba(0, 0, 0, .06); padding-top: 1rem; }
.elementor .ym-hero-metrics .elementor-icon-list-item { align-items: center !important; }
.elementor .ym-hero-metrics .elementor-icon-list-icon svg { fill: var(--ym-primary); width: 1.5rem; height: 1.5rem; }
.elementor .ym-hero-metrics .elementor-icon-list-text { font-size: .85rem; font-weight: 700; color: var(--ym-navy); }
.elementor .ym-hero-metrics .elementor-icon-list-text small { display: block; font-weight: 400; font-size: .75rem; color: var(--ym-text-muted); }

/* Trust feature cards (icon box) */
.elementor .ym-trust-card { background: #fff; border: 1px solid var(--ym-border-color); border-radius: 16px; padding: 24px; text-align: center; transition: transform .2s ease, border-color .2s; height: 100%; }
.elementor .ym-trust-card:hover { transform: translateY(-4px); border-color: var(--ym-primary-light); }
.elementor .ym-trust-card .elementor-icon { width: 54px; height: 54px; border-radius: 50%; background: var(--ym-primary-subtle); color: var(--ym-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; }
.elementor .ym-trust-card .elementor-icon svg { fill: currentColor; width: 1.4rem; height: 1.4rem; }
.elementor .ym-trust-card.ym-tone-warning .elementor-icon { background: #fffbeb; color: var(--ym-warning); }
.elementor .ym-trust-card.ym-tone-primary .elementor-icon { background: #eef2ff; color: #0d6efd; }
.elementor .ym-trust-card.ym-tone-success .elementor-icon { background: #ecfdf5; color: var(--ym-success); }
.elementor .ym-trust-card .elementor-icon-box-title { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; color: var(--ym-navy); margin-bottom: .5rem; }
.elementor .ym-trust-card .elementor-icon-box-description { font-size: .875rem; color: var(--ym-text-muted); margin: 0; }

/* "How it works" step cards */
.elementor .ym-step-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: 1rem; padding: 1.5rem !important; text-align: center; }
.elementor .ym-step-num { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: #fff; color: var(--ym-navy); font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; }
.elementor .ym-step-card .elementor-heading-title { color: #fff; font-size: 1.5rem; font-weight: 700; }

/* Medicine-finder teaser */
.elementor .ym-finder-card { background: linear-gradient(135deg, #f0fdf9 0%, #e6f6f4 100%); border: 1.5px solid #a7f3d0; border-radius: 1rem; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .12); }
.elementor .ym-side-card { background: #fff; border: 1px solid var(--ym-border-color); border-radius: 1rem; box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075); padding: 1.5rem !important; }
.elementor .ym-side-card .elementor-icon-box-wrapper { align-items: center; gap: 1rem; text-align: start; }
.elementor .ym-side-card .elementor-icon { width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(135deg, var(--ym-primary) 0%, var(--ym-teal-accent) 100%); color: #fff; display: flex; align-items: center; justify-content: center; }
.elementor .ym-side-card .elementor-icon svg { fill: #fff; width: 1.3rem; height: 1.3rem; }
.elementor .ym-side-card .elementor-icon-box-title { font-family: var(--font-heading); font-size: 1rem; font-weight: 700; color: var(--ym-navy); margin: 0; }
.elementor .ym-side-card .elementor-icon-box-description { font-size: .875rem; color: var(--ym-text-muted); margin: 0; }
.elementor .ym-note { background: var(--ym-bg-body); border-radius: .5rem; padding: 1rem; font-size: .875rem; color: var(--ym-text-muted); }
.elementor .ym-note p { margin: 0; }

/* FAQ (nested accordion) */
.elementor .ym-faq { background: #fff; border: 1px solid var(--ym-border-color); border-radius: 1rem; padding: 1rem; box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075); }
.elementor .ym-faq .e-n-accordion-item { border-bottom: 1px solid var(--ym-border-color); }
.elementor .ym-faq .e-n-accordion-item:last-child { border-bottom: 0; }
.elementor .ym-faq .e-n-accordion-item-title { padding: 1rem 1.25rem; border: 0; background: transparent; }
.elementor .ym-faq .e-n-accordion-item[open] > .e-n-accordion-item-title { background: #e7f1ff; border-radius: .5rem; }
.elementor .ym-faq .e-n-accordion-item-title-text { font-family: var(--font-heading); font-weight: 700; color: var(--ym-navy); font-size: 1rem; }
.elementor .ym-faq .e-n-accordion-item > .e-con { border: 0 !important; padding: .5rem 1.25rem 1.25rem !important; color: #6c757d; }

/* Small pill labels above section titles (HTML widget) */
.elementor .ym-pill-row { line-height: 1; }

/* Shortcode blocks sit edge-to-edge in their Elementor container */
.elementor .elementor-widget-shortcode .row { --bs-gutter-x: 1.5rem; }

/* Hero metric items (icon box, inline) */
.elementor .ym-metric .elementor-icon-box-wrapper { align-items: center; gap: .5rem; text-align: start; }
.elementor .ym-metric .elementor-icon { color: var(--ym-primary); font-size: 1.5rem; display: flex; }
.elementor .ym-metric .elementor-icon svg { fill: var(--ym-primary); width: 1.5rem; height: 1.5rem; }
.elementor .ym-metric .elementor-icon-box-title { font-family: var(--font-body); font-size: .875rem; font-weight: 700; color: var(--ym-navy); margin: 0; }
.elementor .ym-metric .elementor-icon-box-description { font-size: .75rem; color: var(--ym-text-muted); margin: 0; }
.elementor .ym-metrics-row { border-top: 1px solid rgba(0, 0, 0, .07); padding-top: 1rem !important; }

/* FAQ title row: question left, chevron right */
.elementor .ym-faq .e-n-accordion-item-title { justify-content: space-between; }
.elementor .ym-faq .e-n-accordion-item-title-header { flex: 1; text-align: start; }
.elementor .ym-faq .e-n-accordion-item-title-icon svg { fill: var(--ym-navy); width: .9rem; height: .9rem; }
@media (max-width: 767.98px) {
  .elementor .ym-float-card { left: 12px; bottom: 12px; padding: 10px 14px; }
  .elementor .ym-float-card .elementor-icon { width: 36px; height: 36px; }
}
