/* ==========================================================================
   CaRiMed motion & gradient layer (v1.2)
   Gradient titles, gradient + shimmer buttons, animated gradient-border cards,
   icon tiles, scroll reveal and the home hero slider.
   All motion is switched off for visitors who prefer reduced motion.
   ========================================================================== */

:root {
  --cm-grad-orange: linear-gradient(110deg,#ff8466 0%,#f95b3d 45%,#f04e30 72%,#e0472b 100%);
  --cm-grad-orange-soft: linear-gradient(135deg,#fff6f1 0%,#ffeee6 100%);
  --cm-grad-title: linear-gradient(95deg,#1a2048 0%,#3a4890 45%,#f95b3d 78%,#ff7a5c 100%);
  --cm-grad-title-light: linear-gradient(95deg,#ffffff 0%,#ffe3d8 45%,#ffab80 75%,#ff8a5c 100%);
  --cm-glow-orange: 0 18px 40px -14px rgba(249,91,61,.45);
}

@property --cm-a { syntax:'<angle>'; inherits:false; initial-value:0deg; }
@keyframes cmSpin { to { --cm-a:360deg; } }
@keyframes cmShine { 0% { transform:translateX(-120%) skewX(-20deg); } 55%,100% { transform:translateX(320%) skewX(-20deg); } }
@keyframes cmTitleFlow { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }
@keyframes cmFloat { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-14px) rotate(8deg); } }
@keyframes cmPulse { 0% { box-shadow:0 0 0 0 rgba(249,91,61,.45); } 70% { box-shadow:0 0 0 14px rgba(249,91,61,0); } 100% { box-shadow:0 0 0 0 rgba(249,91,61,0); } }
@keyframes cmPulseBlue { 0% { box-shadow:0 0 0 0 rgba(70,84,163,.45); } 70% { box-shadow:0 0 0 16px rgba(70,84,163,0); } 100% { box-shadow:0 0 0 0 rgba(70,84,163,0); } }
@keyframes cmSlideUp { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
@keyframes cmProgress { from { transform:scaleX(0); } to { transform:scaleX(1); } }

/* Subtle dot-grid page background */
body.carimed { background-color:var(--slate-25); background-image:radial-gradient(rgba(70,84,163,.11) 1px, transparent 1.3px); background-size:22px 22px; }

/* ---------------------------------------------------------------- Gradient titles */
.elementor-widget.cm-title:not(.cm-no-gradient) .elementor-heading-title,
.elementor-widget.cm-hero-title:not(.cm-no-gradient) .elementor-heading-title {
  background-image:var(--cm-grad-title); background-size:220% 100%; background-position:0% 50%;
  -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
  animation:cmTitleFlow 9s ease-in-out infinite;
}
.elementor-widget.cm-title--light:not(.cm-no-gradient) .elementor-heading-title,
.elementor-widget.cm-hero-title:not(.cm-no-gradient) .elementor-heading-title { background-image:var(--cm-grad-title-light); }
.elementor-widget.cm-hero-title .elementor-heading-title { padding-bottom:.06em; }

/* Eyebrow with gradient dash */
.elementor-widget.cm-eyebrow .elementor-heading-title { display:inline-flex; align-items:center; gap:10px; }
.elementor-widget.cm-eyebrow .elementor-heading-title::before { content:""; width:26px; height:3px; border-radius:3px; background:var(--cm-grad-orange); flex-shrink:0; }

/* ---------------------------------------------------------------- Buttons */
.elementor-widget.cm-btn .elementor-button { border-radius:var(--radius-pill); position:relative; overflow:hidden; isolation:isolate; transition:transform .25s var(--ease-out), box-shadow .25s ease, background-position .6s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
.elementor-widget.cm-btn .elementor-button .elementor-button-content-wrapper { position:relative; z-index:1; }
.elementor-widget.cm-btn--primary .elementor-button {
  background-color:#f95b3d; background-image:var(--cm-grad-orange); background-size:200% 100%; background-position:0% 50%;
  box-shadow:0 10px 24px -10px rgba(249,91,61,.75), inset 0 1px 0 rgba(255,255,255,.25);
}
.elementor-widget.cm-btn--primary .elementor-button::before,
.elementor-widget.cm-btn--white .elementor-button::before,
.elementor-widget.cm-btn--dark .elementor-button::before {
  content:""; position:absolute; top:0; bottom:0; left:0; width:40%; z-index:0; pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.45) 50%,rgba(255,255,255,0) 100%);
  animation:cmShine 3.8s ease-in-out infinite;
}
.elementor-widget.cm-btn--white .elementor-button::before { background:linear-gradient(90deg,rgba(249,91,61,0) 0%,rgba(249,91,61,.18) 50%,rgba(249,91,61,0) 100%); }
.elementor-widget.cm-btn--primary .elementor-button:hover { background-position:100% 50%; transform:translateY(-2px); box-shadow:0 16px 32px -10px rgba(249,91,61,.8), inset 0 1px 0 rgba(255,255,255,.25); }
.elementor-widget.cm-btn--white .elementor-button:hover,
.elementor-widget.cm-btn--dark .elementor-button:hover,
.elementor-widget.cm-btn--outline .elementor-button:hover { transform:translateY(-2px); }
.elementor-widget.cm-btn--dark .elementor-button { background-image:linear-gradient(110deg,#252e61,#1a2048); }
.elementor-widget.cm-btn--outline .elementor-button { -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }

body.carimed .cm-header__cta, .cm-form .wpcf7-submit, .cm-nl .wpcf7-submit {
  border-radius:var(--radius-pill); background-color:#f95b3d; background-image:var(--cm-grad-orange); background-size:200% 100%; background-position:0% 50%;
  box-shadow:0 10px 22px -10px rgba(249,91,61,.8); transition:transform .25s var(--ease-out), box-shadow .25s ease, background-position .6s ease;
}
body.carimed .cm-header__cta:hover, .cm-form .wpcf7-submit:hover, .cm-nl .wpcf7-submit:hover,
.cm-form .wpcf7-submit:focus, .cm-nl .wpcf7-submit:focus { background-color:#d8432a; background-position:100% 50%; transform:translateY(-1px); box-shadow:0 14px 28px -10px rgba(249,91,61,.85); }
body.carimed .cm-header__cta { position:relative; overflow:hidden; }
body.carimed .cm-header__cta::before { content:""; position:absolute; top:0; bottom:0; left:0; width:40%; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4),rgba(255,255,255,0)); animation:cmShine 4.5s ease-in-out infinite; }

/* ---------------------------------------------------------------- Animated gradient-border boxes */
.elementor-widget.cm-why, .e-con.cm-spec, .elementor-widget.cm-stat, .e-con.cm-tl-body, .e-con.cm-checklist-card,
.e-con.cm-form-card, .e-con.cm-prose-wrap, .elementor-widget.cm-chip .elementor-icon-box-wrapper {
  border:2px solid transparent !important;
  background:
    linear-gradient(135deg,#ffffff 0%,#ffffff 55%,#fff5ef 100%) padding-box,
    conic-gradient(from var(--cm-a), rgba(249,91,61,0) 0deg, rgba(249,91,61,0) 190deg, #ffb4a2 250deg, #ff7a5c 300deg, #f95b3d 335deg, rgba(249,91,61,0) 360deg) border-box,
    linear-gradient(var(--border-subtle),var(--border-subtle)) border-box;
  animation:cmSpin 6s linear infinite;
  box-shadow:0 1px 3px rgba(37,46,97,.06), 0 10px 30px -18px rgba(249,91,61,.35);
}
.e-con.cm-spec:nth-child(2n), .elementor-widget.cm-why:nth-child(2n), .elementor-widget.cm-stat:nth-child(2n) { animation-delay:-2s; }
.e-con.cm-spec:nth-child(3n), .elementor-widget.cm-why:nth-child(3n), .elementor-widget.cm-stat:nth-child(3n) { animation-delay:-4s; }
.elementor-widget.cm-stat { border-top-width:2px !important; }
.elementor-widget.cm-chip .elementor-icon-box-wrapper { animation-duration:8s; }

.elementor-widget.cm-why:hover, .e-con.cm-spec:hover, .elementor-widget.cm-stat:hover, .e-con.cm-tl-body:hover {
  transform:translateY(-5px); box-shadow:var(--cm-glow-orange); animation-duration:2.5s;
}
.elementor-widget.cm-why, .elementor-widget.cm-stat, .e-con.cm-tl-body { transition:transform .35s var(--ease-out), box-shadow .35s ease; }

/* Dark cards (testimonials) */
.elementor-widget.cm-quote {
  border:1.5px solid transparent !important;
  background:
    linear-gradient(160deg,#262d5c 0%,#1f2552 100%) padding-box,
    conic-gradient(from var(--cm-a), rgba(249,91,61,0) 0deg, rgba(249,91,61,0) 220deg, #ffab80 280deg, #f95b3d 330deg, rgba(249,91,61,0) 360deg) border-box,
    linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.12)) border-box;
  animation:cmSpin 7s linear infinite; transition:transform .35s var(--ease-out), box-shadow .35s ease;
}
.elementor-widget.cm-quote:nth-child(2) { animation-delay:-2.3s; } .elementor-widget.cm-quote:nth-child(3) { animation-delay:-4.6s; }
.elementor-widget.cm-quote:hover { transform:translateY(-5px); box-shadow:0 22px 44px -18px rgba(249,91,61,.5); }

/* FAQ active item */
.elementor-widget.cm-faq .elementor-accordion-item { position:relative; }
.elementor-widget.cm-faq .elementor-accordion-item::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--cm-grad-orange); transform:scaleY(0); transform-origin:top; transition:transform .35s var(--ease-out); }
.elementor-widget.cm-faq .elementor-accordion-item:has(.elementor-active)::before { transform:scaleY(1); }

/* Gradient feature cards */
.e-con.cm-partner--coral { background-image:linear-gradient(135deg,#ff8466 0%,#f95b3d 55%,#e0482c 100%); }
.e-con.cm-partner--navy { background-image:radial-gradient(ellipse at 100% 0%,rgba(249,91,61,.35) 0%,rgba(47,58,120,0) 55%),linear-gradient(140deg,#2f3a78 0%,#1a2048 100%); }
.e-con.cm-partner { transition:transform .35s var(--ease-out), box-shadow .35s ease; }
.e-con.cm-partner:hover { transform:translateY(-5px); box-shadow:0 26px 50px -22px rgba(26,32,72,.55); }
.e-con.cm-cta-band { background-image:radial-gradient(ellipse at 100% 0%,rgba(249,91,61,.4) 0%,rgba(47,58,120,0) 55%),linear-gradient(130deg,#2f3a78 0%,#1a2048 100%); }
.cm-newsletter { background-image:radial-gradient(ellipse at 100% 0%,rgba(249,91,61,.35) 0%,rgba(47,58,120,0) 55%),linear-gradient(130deg,#2f3a78 0%,#252e61 100%); }

/* ---------------------------------------------------------------- Icon tiles */
.elementor-widget.cm-why .elementor-icon {
  width:52px; height:52px; border-radius:14px; background:var(--cm-grad-orange-soft); color:var(--red-500);
  box-shadow:inset 0 0 0 1px rgba(249,91,61,.15); transition:transform .4s var(--ease-out), background .3s ease, color .3s ease;
}
.elementor-widget.cm-why:hover .elementor-icon { background:var(--cm-grad-orange); color:#fff; transform:rotate(-6deg) scale(1.08); animation:cmPulse 1.4s ease-out 1; }
.elementor-widget.cm-gov .elementor-icon { background:linear-gradient(140deg,#5a68b8 0%,#3a4890 60%,#252e61 100%); animation:cmPulseBlue 3s ease-out infinite; transition:transform .4s var(--ease-out), background .3s ease; }
.elementor-widget.cm-gov:nth-child(2) .elementor-icon { animation-delay:.75s; } .elementor-widget.cm-gov:nth-child(3) .elementor-icon { animation-delay:1.5s; } .elementor-widget.cm-gov:nth-child(4) .elementor-icon { animation-delay:2.25s; }
.elementor-widget.cm-gov:hover .elementor-icon { background:var(--cm-grad-orange); transform:translateY(-4px) scale(1.06); }
.elementor-widget.cm-step-num .elementor-heading-title, .elementor-widget.cm-tl-num .elementor-heading-title { background:linear-gradient(140deg,#5a68b8 0%,#3a4890 55%,#252e61 100%); transition:transform .4s var(--ease-out), background .3s ease; }
.e-con.cm-step:hover .elementor-widget.cm-step-num .elementor-heading-title, .e-con.cm-tl-item:hover .elementor-widget.cm-tl-num .elementor-heading-title { background:var(--cm-grad-orange); transform:scale(1.08); animation:cmPulse 1.4s ease-out 1; }
.elementor-widget.cm-impact .elementor-icon-box-icon { width:44px; height:44px; border-radius:12px; background:var(--cm-grad-orange-soft); display:inline-flex; align-items:center; justify-content:center; margin-top:0; transition:background .3s ease, color .3s ease; }
.elementor-widget.cm-impact:hover .elementor-icon-box-icon { background:var(--cm-grad-orange); }
.elementor-widget.cm-impact:hover .elementor-icon { color:#fff; }
.e-con.cm-spec .elementor-widget.cm-spec-img { position:relative; }
.e-con.cm-spec .elementor-widget.cm-spec-img::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(26,32,72,0) 50%,rgba(26,32,72,.35) 100%); pointer-events:none; }

/* Media frames */
.elementor-widget.cm-media img { transition:transform .6s var(--ease-out), box-shadow .4s ease; }
.elementor-widget.cm-media:hover img { transform:scale(1.015); box-shadow:0 30px 60px -24px rgba(26,32,72,.45); }

/* ---------------------------------------------------------------- Scroll reveal */
html.cm-anim .cm-reveal { opacity:0; transform:translateY(28px); }
html.cm-anim .cm-reveal--left { transform:translateX(-36px); }
html.cm-anim .cm-reveal--right { transform:translateX(36px); }
html.cm-anim .cm-reveal--zoom { transform:scale(.94); }
html.cm-anim .cm-reveal.is-in { opacity:1; transform:none; transition:opacity .8s var(--ease-out) var(--cm-delay,0s), transform .8s var(--ease-out) var(--cm-delay,0s); }

/* ---------------------------------------------------------------- Home hero slider
   All slides share one grid cell, so the hero is always as tall as the tallest
   slide (never clipped or overlapping the header/controls on short screens). */
.e-con.cm-hero-slider { height:auto; min-height:0; padding:0 !important; }
.e-con.cm-hero-slider::after { display:none; }
.e-con.cm-hero-slider > .e-con-inner { display:grid !important; grid-template-columns:minmax(0,1fr); grid-template-areas:"slide"; position:static; max-width:none; width:100%; padding:0; }
.e-con.cm-slide {
  grid-area:slide; position:relative !important; isolation:isolate; overflow:hidden;
  min-height:clamp(620px,90vh,800px);
  padding:calc(var(--cm-header-h) + 56px) max(40px, calc((100% - 1160px) / 2)) 150px !important;
  justify-content:center !important;
  opacity:0; visibility:hidden; transition:opacity .9s ease, visibility 0s linear .9s; z-index:0;
}
.e-con.cm-slide::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(180deg,rgba(26,32,72,.85) 0%,rgba(26,32,72,0) 240px),
    linear-gradient(90deg,#1a2048 0%,#1a2048 38%,rgba(26,32,72,.72) 50%,rgba(26,32,72,.2) 70%,rgba(26,32,72,.05) 85%); }
.e-con.cm-slide .cm-hero-content { position:relative; z-index:2; animation:none; }
.e-con.cm-slide.is-active, .e-con.cm-hero-slider:not(.is-ready) .e-con.cm-slide:first-child { opacity:1; visibility:visible; transition:opacity .9s ease; z-index:1; }
.e-con.cm-slide .elementor-widget.cm-hero-img img { transform:scale(1.12); transition:transform 7.5s cubic-bezier(.2,.6,.3,1); }
.e-con.cm-slide.is-active .elementor-widget.cm-hero-img img, .e-con.cm-hero-slider:not(.is-ready) .e-con.cm-slide:first-child .elementor-widget.cm-hero-img img { transform:scale(1); }
.e-con.cm-slide.is-active .cm-hero-content > * { animation:cmSlideUp .9s var(--ease-out) both; }
.e-con.cm-slide.is-active .cm-hero-content > *:nth-child(2) { animation-delay:.12s; }
.e-con.cm-slide.is-active .cm-hero-content > *:nth-child(3) { animation-delay:.24s; }
.e-con.cm-slide.is-active .cm-hero-content > *:nth-child(4) { animation-delay:.36s; }
.e-con.cm-slide .elementor-widget.cm-hero-title .elementor-heading-title { font-size:clamp(30px,4.2vw,52px); font-weight:800; line-height:1.1; letter-spacing:-.015em; margin:0 0 20px; }
.e-con.cm-slide .elementor-widget.cm-badge .elementor-heading-title { margin-bottom:22px; }
.e-con.cm-slide .elementor-widget.cm-hero-text p { margin-bottom:34px; }

.cm-slider-ui { position:absolute; z-index:5; left:max(40px, calc((100% - 1160px) / 2)); right:max(40px, calc((100% - 1160px) / 2)); bottom:36px; display:flex; align-items:center; gap:18px; }
.cm-slider-btn { width:46px; height:46px; padding:0; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); color:#fff; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); transition:background .25s ease, transform .25s ease, border-color .25s ease; }
.cm-slider-btn:hover, .cm-slider-btn:focus-visible { background:var(--cm-grad-orange); border-color:transparent; color:#fff; transform:scale(1.06); }
.cm-slider-btn svg { width:20px; height:20px; }
.cm-slider-dots { display:flex; gap:8px; }
.cm-slider-dot { width:10px; height:10px; padding:0; border:0; border-radius:999px; background:rgba(255,255,255,.4); cursor:pointer; transition:width .35s var(--ease-out), background .3s ease; }
.cm-slider-dot:hover, .cm-slider-dot:focus { background:rgba(255,255,255,.75); }
.cm-slider-dot[aria-current="true"] { width:34px; background:var(--cm-grad-orange); }
.cm-slider-progress { flex:1; max-width:220px; height:2px; background:rgba(255,255,255,.2); border-radius:2px; overflow:hidden; }
.cm-slider-progress span { display:block; height:100%; background:var(--cm-grad-orange); transform-origin:left; transform:scaleX(0); }
.cm-slider-progress span.is-running { animation:cmProgress var(--cm-slide-ms,6500ms) linear forwards; }
.e-con.cm-hero-slider:hover .cm-slider-progress span, .e-con.cm-hero-slider:focus-within .cm-slider-progress span { animation-play-state:paused; }

/* Floating medical "+" decor */
.cm-plus { position:absolute; z-index:3; pointer-events:none; width:var(--s,18px); height:var(--s,18px); opacity:.55; animation:cmFloat var(--d,7s) ease-in-out infinite; animation-delay:var(--dl,0s); }
.cm-plus::before, .cm-plus::after { content:""; position:absolute; background:var(--c,#ff8a5c); border-radius:2px; }
.cm-plus::before { left:40%; width:20%; top:0; height:100%; }
.cm-plus::after { top:40%; height:20%; left:0; width:100%; }

@media (max-width:1023px) {
  .e-con.cm-slide::after { background:linear-gradient(180deg,rgba(26,32,72,.75) 0%,rgba(26,32,72,.78) 40%,rgba(26,32,72,.95) 100%); }
}
@media (max-width:767px) {
  .e-con.cm-slide { min-height:600px; padding:calc(var(--cm-header-h) + 36px) 20px 110px !important; }
  .cm-slider-ui { left:20px; right:20px; bottom:26px; gap:12px; }
  .cm-slider-progress { display:none; }
  .cm-plus { display:none; }
}

/* Elementor editor: show all slides stacked so each can be edited */
body.elementor-editor-active .e-con.cm-hero-slider > .e-con-inner { display:flex !important; flex-direction:column; }
body.elementor-editor-active .e-con.cm-slide { position:relative !important; opacity:1; visibility:visible; min-height:600px; }
body.elementor-editor-active .e-con.cm-slide .elementor-widget.cm-hero-img img { transform:none; }
body.elementor-editor-active .elementor-widget.cm-title .elementor-heading-title { animation:none; }

/* ---------------------------------------------------------------- Reduced motion */
@media (prefers-reduced-motion:reduce) {
  .elementor-widget.cm-why, .e-con.cm-spec, .elementor-widget.cm-stat, .e-con.cm-tl-body, .e-con.cm-checklist-card, .e-con.cm-form-card,
  .e-con.cm-prose-wrap, .elementor-widget.cm-chip .elementor-icon-box-wrapper, .elementor-widget.cm-quote,
  .elementor-widget.cm-gov .elementor-icon, .elementor-widget.cm-title .elementor-heading-title, .elementor-widget.cm-hero-title .elementor-heading-title,
  .cm-plus, .elementor-widget.cm-btn .elementor-button::before, body.carimed .cm-header__cta::before { animation:none !important; }
  html.cm-anim .cm-reveal { opacity:1; transform:none; }
  .e-con.cm-slide .elementor-widget.cm-hero-img img { transform:none; transition:none; }
}

/* ---------------------------------------------------------------- Highlight card (reference "Check Your Dental Score" style) */
.e-con.cm-highlight {
  width:100%; max-width:760px; border-radius:24px; position:relative;
  border:2.5px solid transparent;
  background:
    linear-gradient(90deg,#fff0ec 0%,#fff5f2 55%,#fffaf8 100%) padding-box,
    conic-gradient(from var(--cm-a), rgba(249,91,61,0) 0deg, rgba(249,91,61,0) 150deg, #ffb4a2 210deg, #f95b3d 260deg, #e0472b 300deg, rgba(249,91,61,0) 345deg) border-box,
    linear-gradient(#ffffff,#ffffff) border-box;
  box-shadow:0 0 0 1px rgba(249,91,61,.06), 0 18px 50px -18px rgba(249,91,61,.45), 0 0 60px -20px rgba(249,91,61,.35);
  animation:cmSpin 4.5s linear infinite;
  transition:transform .35s var(--ease-out), box-shadow .35s ease;
}
.e-con.cm-highlight:hover { transform:translateY(-4px); box-shadow:0 0 0 1px rgba(249,91,61,.1), 0 26px 60px -20px rgba(249,91,61,.55), 0 0 80px -18px rgba(249,91,61,.45); animation-duration:2.2s; }
.elementor-widget.cm-hl-icon { flex:0 0 auto; }
.elementor-widget.cm-hl-icon .elementor-icon-wrapper { line-height:0; }
.elementor-widget.cm-hl-icon .elementor-icon { color:#f95b3d !important; width:54px; height:54px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center; font-size:26px; color:#f95b3d; background:linear-gradient(135deg,#ffe4dd,#ffd2c6); box-shadow:inset 0 0 0 1px rgba(249,91,61,.18); animation:cmPulseOrange 2.8s ease-out infinite; }
.elementor-widget.cm-hl-icon .elementor-icon svg.cm-ico { width:26px; height:26px; }
.e-con.cm-hl-copy { flex:1 1 auto; min-width:0; }
.elementor-widget.cm-hl-title .elementor-heading-title { margin:0 0 4px; font-family:var(--font-sans); font-size:19px; font-weight:800; line-height:1.3; color:var(--slate-900); }
.elementor-widget.cm-hl-text { font-size:15px; line-height:1.5; color:var(--slate-700); }
.elementor-widget.cm-hl-text p { margin:0; }
.elementor-widget.cm-hl-btn { flex:0 0 auto; }
.elementor-widget.cm-hl-btn .elementor-button { height:54px; padding:0 30px; font-size:16px; font-weight:800; }
@keyframes cmPulseOrange { 0% { box-shadow:inset 0 0 0 1px rgba(249,91,61,.18), 0 0 0 0 rgba(249,91,61,.4); } 70% { box-shadow:inset 0 0 0 1px rgba(249,91,61,.18), 0 0 0 12px rgba(249,91,61,0); } 100% { box-shadow:inset 0 0 0 1px rgba(249,91,61,.18), 0 0 0 0 rgba(249,91,61,0); } }
@media (max-width:767px) { .elementor-widget.cm-hl-btn, .elementor-widget.cm-hl-btn .elementor-button { width:100%; box-sizing:border-box; } }
@media (prefers-reduced-motion:reduce) { .e-con.cm-highlight, .elementor-widget.cm-hl-icon .elementor-icon { animation:none !important; } }
@media (max-width:767px) {
  .e-con.cm-highlight { flex-direction:column !important; align-items:flex-start !important; gap:16px !important; }
  .e-con.cm-highlight > .e-con.cm-hl-copy { width:100%; }
}

/* ---------------------------------------------------------------- v1.4 image framing (focal points per photo) */
/* Hero slides: wide banner photos fill the right 65%, subject kept in view */
.e-con.cm-slide .elementor-widget.cm-hero-img { width:65% !important; }
.e-con.cm-slide::after { background:
  linear-gradient(180deg,rgba(26,32,72,.8) 0%,rgba(26,32,72,0) 220px),
  linear-gradient(90deg,#1a2048 0%,#1a2048 36%,rgba(26,32,72,.85) 42%,rgba(26,32,72,.35) 52%,rgba(26,32,72,0) 64%); }
.elementor-widget.cm-img-hero img   { object-position:100% 30% !important; }  /* doctor + patient */
.elementor-widget.cm-img-slide2 img { object-position:45% 40% !important; }   /* specialty panels */
.elementor-widget.cm-img-slide3 img { object-position:68% 30% !important; }   /* clinical team */
@media (max-width:1023px) {
  .e-con.cm-slide .elementor-widget.cm-hero-img { width:100% !important; }
  .e-con.cm-slide::after { background:linear-gradient(180deg,rgba(26,32,72,.7) 0%,rgba(26,32,72,.72) 45%,rgba(26,32,72,.95) 100%); }
}

/* Section photos */
.elementor-widget.cm-img-about img  { object-position:62% 35%; }
.elementor-widget.cm-img-impact img { object-position:62% 40%; }
.elementor-widget.cm-spec-img .elementor-widget-container,
.elementor-widget.cm-spec-img img { height:220px; }
.elementor-widget.cm-img-urology img      { object-position:35% 30%; }
.elementor-widget.cm-img-gynaecology img  { object-position:28% 25%; }
.elementor-widget.cm-img-vascular img     { object-position:40% 55%; }
.elementor-widget.cm-img-orthopaedics img { object-position:62% 22%; }
/* Inner page banners using the same photos */
.e-con.cm-banner .elementor-widget.cm-img-hero img { object-position:100% 30%; }
.e-con.cm-banner .elementor-widget.cm-img-join img { object-position:100% 40%; }
.e-con.cm-banner .elementor-widget.cm-img-orthopaedics img { object-position:62% 20%; }
/* Join CTA background: stethoscope on the right */
.e-con.cm-join { background-position:right center !important; }
@media (max-width:1023px) {
  .elementor-widget.cm-img-hero img   { object-position:62% 25% !important; }
  .elementor-widget.cm-img-slide2 img { object-position:30% 35% !important; }
  .elementor-widget.cm-img-slide3 img { object-position:50% 25% !important; }
}

/* ==========================================================================
   v1.5 Calls to action: form popups, floating buttons, Coming Soon page
   ========================================================================== */

/* ---------------------------------------------------------------- Form popups */
html.cm-modal-open, html.cm-modal-open body { overflow:hidden; }
.cm-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; }
.cm-modal[hidden] { display:none; }
.cm-modal__backdrop { position:absolute; inset:0; background:rgba(16,20,48,.72); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); opacity:0; transition:opacity .25s ease; }
.cm-modal__panel {
  position:relative; width:100%; max-width:640px; max-height:calc(100vh - 40px); overflow-y:auto; overscroll-behavior:contain;
  background:#fff; border-radius:24px; padding:40px 40px 28px; box-shadow:0 40px 80px -24px rgba(16,20,48,.55);
  opacity:0; transform:translateY(18px) scale(.97); transition:opacity .28s ease, transform .35s var(--ease-out);
}
.cm-modal__panel::before { content:""; position:absolute; left:0; right:0; top:0; height:5px; background:var(--cm-grad-orange); border-radius:24px 24px 0 0; }
.cm-modal.is-open .cm-modal__backdrop { opacity:1; }
.cm-modal.is-open .cm-modal__panel { opacity:1; transform:none; }
.cm-modal__close { position:absolute; top:16px; right:16px; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:var(--slate-100); color:var(--slate-800); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s ease, transform .25s ease; }
.cm-modal__close:hover, .cm-modal__close:focus-visible { background:var(--red-50); color:var(--red-600); transform:rotate(90deg); }
.cm-modal__head { margin-bottom:24px; padding-right:40px; }
.cm-modal__eyebrow { display:inline-flex; align-items:center; gap:10px; margin:0 0 10px; font-size:13px; font-weight:600; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--red-600); }
.cm-modal__eyebrow::before { content:""; width:26px; height:3px; border-radius:3px; background:var(--cm-grad-orange); }
body.carimed .cm-modal__title { margin:0 0 8px; font-family:var(--font-sans); font-size:clamp(22px,2.6vw,28px); font-weight:800; line-height:1.2;
  background-image:var(--cm-grad-title); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.cm-modal__text { margin:0; font-size:15px; line-height:1.6; color:var(--text-muted); }
.cm-modal__alt { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:24px; padding-top:20px; border-top:1px solid var(--border-subtle); font-size:14px; color:var(--text-muted); }
.cm-quick { display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 14px; border-radius:var(--radius-pill); border:1px solid var(--border-subtle); background:var(--slate-25); font-size:14px; font-weight:600; transition:background .2s ease, border-color .2s ease, color .2s ease; }
body.carimed a.cm-quick { color:var(--slate-800); }
.cm-quick svg { width:16px; height:16px; flex-shrink:0; }
body.carimed a.cm-quick--call:hover { background:var(--red-50); border-color:rgba(249,91,61,.4); color:var(--red-600); }
body.carimed a.cm-quick--whatsapp { color:#128c4a; }
body.carimed a.cm-quick--whatsapp:hover { background:#e9f9ef; border-color:#25d366; color:#0f7a40; }
body.carimed a.cm-quick--email:hover { background:var(--navy-50); border-color:var(--navy-200); color:var(--navy-800); }
@media (max-width:600px) {
  .cm-modal { padding:0; align-items:flex-end; }
  .cm-modal__panel { max-height:92vh; border-radius:22px 22px 0 0; padding:32px 20px 24px; transform:translateY(40px); }
  .cm-modal__panel::before { border-radius:22px 22px 0 0; }
}

/* ---------------------------------------------------------------- Floating WhatsApp / Call */
.cm-fab { position:fixed; right:22px; bottom:22px; z-index:900; display:flex; flex-direction:column; gap:12px; }
.cm-fab__btn { position:relative; width:56px; height:56px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 12px 26px -8px rgba(16,20,48,.45); transition:transform .25s var(--ease-out), box-shadow .25s ease; }
body.carimed a.cm-fab__btn, body.carimed a.cm-fab__btn:hover { color:#fff; }
.cm-fab__btn svg { width:26px; height:26px; }
.cm-fab__btn--wa { background:#25d366; animation:cmFabPulse 2.6s ease-out infinite; }
.cm-fab__btn--call { background:var(--cm-grad-orange); }
.cm-fab__btn--call svg { width:22px; height:22px; }
.cm-fab__btn:hover, .cm-fab__btn:focus-visible { transform:translateY(-3px) scale(1.05); box-shadow:0 18px 34px -10px rgba(16,20,48,.55); }
.cm-fab__tip { position:absolute; right:calc(100% + 12px); top:50%; transform:translate(6px,-50%); white-space:nowrap; padding:7px 12px; border-radius:10px; background:var(--navy-950); color:#fff; font-size:13px; font-weight:600; opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; }
.cm-fab__btn:hover .cm-fab__tip, .cm-fab__btn:focus-visible .cm-fab__tip { opacity:1; transform:translate(0,-50%); }
@keyframes cmFabPulse { 0% { box-shadow:0 12px 26px -8px rgba(16,20,48,.45), 0 0 0 0 rgba(37,211,102,.55); } 70% { box-shadow:0 12px 26px -8px rgba(16,20,48,.45), 0 0 0 16px rgba(37,211,102,0); } 100% { box-shadow:0 12px 26px -8px rgba(16,20,48,.45), 0 0 0 0 rgba(37,211,102,0); } }
@media (max-width:767px) { .cm-fab { right:14px; bottom:14px; gap:10px; } .cm-fab__btn { width:50px; height:50px; } .cm-fab__tip { display:none; } }

/* ---------------------------------------------------------------- Coming Soon page */
.cm-cs__hero {
  position:relative; overflow:hidden; isolation:isolate;
  min-height:max(640px, 100vh);
  display:flex; align-items:center;
  padding:calc(var(--cm-header-h) + 64px) 0 96px;
  background-color:var(--navy-950);
  background-image:
    radial-gradient(ellipse 60% 55% at 85% 10%, rgba(249,91,61,.28) 0%, rgba(26,32,72,0) 70%),
    radial-gradient(ellipse 55% 60% at 5% 100%, rgba(70,84,163,.55) 0%, rgba(26,32,72,0) 70%),
    radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.3px);
  background-size:auto, auto, 24px 24px;
}
.cm-cs__inner { position:relative; z-index:2; width:100%; text-align:center; display:flex; flex-direction:column; align-items:center; }
.cm-cs__badge { display:inline-flex; align-items:center; gap:10px; margin:0 0 26px; padding:7px 16px; border-radius:var(--radius-pill); background:rgba(249,91,61,.14); border:1px solid rgba(249,91,61,.5); color:#ffc4b6; font-size:12.5px; font-weight:600; letter-spacing:var(--tracking-caps); text-transform:uppercase; }
.cm-cs__pulse { width:8px; height:8px; border-radius:50%; background:var(--red-500); animation:cmPulse 1.8s ease-out infinite; }
body.carimed .cm-cs__title {
  max-width:860px; margin:0 0 20px; font-family:var(--font-sans); font-weight:800; font-size:clamp(32px,5.4vw,60px); line-height:1.08; letter-spacing:-.015em; padding-bottom:.06em;
  background-image:var(--cm-grad-title-light); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
  animation:cmTitleFlow 9s ease-in-out infinite, cmSlideUp .8s var(--ease-out) both;
}
.cm-cs__lead { max-width:640px; margin:0 0 44px; font-size:clamp(16px,1.9vw,18px); line-height:1.65; color:rgba(255,255,255,.82); animation:cmSlideUp .8s var(--ease-out) .1s both; }
.cm-cs__cards { width:100%; max-width:880px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin-bottom:40px; }
.cm-cs-card {
  display:flex; flex-direction:column; align-items:center; gap:6px; padding:28px 20px 24px; border-radius:20px; text-align:center;
  border:1.5px solid transparent;
  background:
    linear-gradient(160deg,#2b336a 0%,#222a5a 100%) padding-box,
    conic-gradient(from var(--cm-a), rgba(249,91,61,0) 0deg, rgba(249,91,61,0) 220deg, #ffb4a2 280deg, #f95b3d 330deg, rgba(249,91,61,0) 360deg) border-box,
    linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)) border-box;
  animation:cmSpin 7s linear infinite, cmSlideUp .8s var(--ease-out) both;
  transition:transform .3s var(--ease-out), box-shadow .3s ease;
}
.cm-cs-card:nth-child(1) { animation-delay:0s, .18s; } .cm-cs-card:nth-child(2) { animation-delay:-2.3s, .28s; } .cm-cs-card:nth-child(3) { animation-delay:-4.6s, .38s; }
.cm-cs-card:hover, .cm-cs-card:focus-visible { transform:translateY(-5px); box-shadow:0 24px 46px -20px rgba(249,91,61,.55); }
.cm-cs-card__icon { width:56px; height:56px; margin-bottom:10px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center; background:var(--cm-grad-orange); color:#fff; box-shadow:0 12px 24px -10px rgba(249,91,61,.8); transition:transform .35s var(--ease-out); }
.cm-cs-card--whatsapp .cm-cs-card__icon { background:#25d366; box-shadow:0 12px 24px -10px rgba(37,211,102,.75); }
.cm-cs-card--email .cm-cs-card__icon { background:linear-gradient(140deg,#5a68b8 0%,#3a4890 60%,#252e61 100%); box-shadow:0 12px 24px -10px rgba(70,84,163,.8); }
.cm-cs-card:hover .cm-cs-card__icon { transform:rotate(-6deg) scale(1.08); }
.cm-cs-card__icon svg { width:24px; height:24px; }
.cm-cs-card__label { font-size:12.5px; font-weight:600; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:rgba(255,255,255,.65); }
.cm-cs-card__value { font-size:17px; font-weight:700; color:#fff; word-break:break-word; }
.cm-cs__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:36px; animation:cmSlideUp .8s var(--ease-out) .45s both; }
.cm-cs-btn { position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; height:52px; padding:0 30px; border-radius:var(--radius-pill); font-size:15px; font-weight:700; white-space:nowrap; transition:transform .25s var(--ease-out), box-shadow .25s ease, background-position .6s ease, background-color .2s ease, border-color .2s ease; }
body.carimed a.cm-cs-btn, body.carimed a.cm-cs-btn:hover { color:#fff; }
.cm-cs-btn--primary { background-color:#f95b3d; background-image:var(--cm-grad-orange); background-size:200% 100%; box-shadow:0 12px 26px -10px rgba(249,91,61,.8); }
.cm-cs-btn--primary::before { content:""; position:absolute; top:0; bottom:0; left:0; width:40%; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.42),rgba(255,255,255,0)); animation:cmShine 3.8s ease-in-out infinite; }
.cm-cs-btn--primary:hover { background-position:100% 50%; transform:translateY(-2px); }
.cm-cs-btn--ghost { border:1.5px solid rgba(255,255,255,.6); background:rgba(255,255,255,.04); }
.cm-cs-btn--ghost:hover { border-color:#fff; background:rgba(255,255,255,.12); transform:translateY(-2px); }
.cm-cs__note { margin:0; font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; color:rgba(255,255,255,.5); }
@media (max-width:767px) {
  .cm-cs__hero { min-height:0; padding:calc(var(--cm-header-h) + 40px) 0 72px; }
  .cm-cs__cards { gap:12px; }
  .cm-cs-card { flex-direction:row; text-align:left; padding:16px 18px; gap:14px; }
  .cm-cs-card__icon { width:46px; height:46px; margin:0; flex-shrink:0; }
  .cm-cs-card__label { display:block; }
  .cm-cs-card { display:grid; grid-template-columns:46px 1fr; grid-template-rows:auto auto; column-gap:14px; row-gap:2px; align-items:center; }
  .cm-cs-card__icon { grid-row:1 / 3; }
  .cm-cs-card__value { font-size:15.5px; }
  .cm-cs-btn { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
  .cm-fab__btn--wa, .cm-cs-card, .cm-cs__title, .cm-cs__pulse, .cm-cs-btn--primary::before { animation:none !important; }
  .cm-modal__panel, .cm-modal__backdrop { transition:none; }
}

.cm-modal, .cm-modal *, .cm-modal *::before, .cm-modal *::after,
.cm-cs, .cm-cs *, .cm-cs *::before, .cm-cs *::after, .cm-fab, .cm-fab * { box-sizing:border-box; }
.cm-modal__alt { padding-right:0; }
@media (max-width:767px) { .cm-cs__hero { padding-bottom:132px; } .cm-cs__inner { padding-left:20px; padding-right:20px; } }
@media (max-width:767px) { .cm-coming-soon-page .cm-fab { display:none; } }
/* Coming Soon: NHS Workforce Alliance badge */
.cm-cs__trust { display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border-radius:16px; background:#fff; box-shadow:0 14px 30px -14px rgba(0,0,0,.5); animation:cmSlideUp .8s var(--ease-out) .55s both; }
.cm-cs__trust img { display:block; height:64px; width:auto; }
@media (max-width:767px) { .cm-cs__trust img { height:54px; } }

/* ==========================================================================
   v1.6 client corrections
   ========================================================================== */

/* Rounded logo (header + footer), matching the rounded buttons */
.cm-logo img { border-radius:10px; }
.cm-footer__logo { border-radius:8px; }

/* Text-link buttons ("More about CaRiMed →", "Explore … →"): no clipped descenders */
.elementor-widget.cm-btn--link .elementor-button { overflow:visible; line-height:1.5; padding:2px 0 4px; }
.elementor-widget.cm-btn--link .elementor-button::before { display:none; }

/* Floating "+" decoration removed */
.cm-plus { display:none !important; }



/* Stats with word suffixes (">1.5 million", "4 weeks"): keep them inside the box */
.elementor-widget.cm-stat--word .elementor-counter-number-wrapper { flex-wrap:wrap; align-items:baseline; }
.elementor-widget.cm-stat--word .elementor-counter-number-suffix { font-size:.52em; font-weight:700; letter-spacing:0; margin-left:6px; }
.elementor-widget.cm-stat .elementor-counter-number-prefix { flex-grow:0; }

/* ==========================================================================
   v1.7 Specialties: 12 boxes, "View all" toggle, popup
   ========================================================================== */
.cm-specs-section:not(.is-expanded) .e-con.cm-spec--more { display:none !important; }
.cm-specs-section.is-expanded .e-con.cm-spec--more { animation:cmSlideUp .55s var(--ease-out) both; }
.cm-specs-section.is-expanded .e-con.cm-spec--more:nth-child(4n+2) { animation-delay:.06s; }
.cm-specs-section.is-expanded .e-con.cm-spec--more:nth-child(4n+3) { animation-delay:.12s; }
.cm-specs-section.is-expanded .e-con.cm-spec--more:nth-child(4n) { animation-delay:.18s; }
body.elementor-editor-active .cm-specs-section .e-con.cm-spec--more { display:flex !important; }

/* Icon header for specialties without a photo (same height as the photos) */
.e-con.cm-spec-icohead {
  height:220px; position:relative; overflow:hidden;
  background:radial-gradient(ellipse at 85% 0%, rgba(249,91,61,.45) 0%, rgba(47,58,120,0) 60%), linear-gradient(140deg,#3a4890 0%,#2f3a78 45%,#1a2048 100%);
}
.e-con.cm-spec-icohead::after { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.09) 1px, transparent 1.3px); background-size:18px 18px; pointer-events:none; }
.elementor-widget.cm-spec-icon { position:relative; z-index:1; }
.elementor-widget.cm-spec-icon .elementor-icon { width:88px; height:88px; border-radius:24px; display:inline-flex; align-items:center; justify-content:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:#fff; transition:transform .4s var(--ease-out), background .3s ease; }
.elementor-widget.cm-spec-icon .elementor-icon svg { width:40px; height:40px; }
.e-con.cm-spec:hover .elementor-widget.cm-spec-icon .elementor-icon { transform:scale(1.08) rotate(-4deg); background:var(--cm-grad-orange); border-color:transparent; }

/* Hidden detail text (shown in the popup) */
.elementor-widget.cm-spec-detail { display:none; }
body.elementor-editor-active .elementor-widget.cm-spec-detail { display:block; margin:0 0 14px; padding:10px 12px; border:1px dashed var(--slate-300); border-radius:8px; font-size:13px; }
body.elementor-editor-active .elementor-widget.cm-spec-detail::before { content:"Popup description (hidden on the website)"; display:block; margin-bottom:6px; font-size:11px; font-weight:700; text-transform:uppercase; color:var(--red-600); }

/* "View all 12 specialties" button */
.elementor-widget.cm-btn--toggle .elementor-button {
  height:52px; padding:0 30px; background:#fff; color:var(--navy-800); border:1.5px solid var(--navy-200); font-weight:700;
  box-shadow:var(--shadow-sm);
}
.elementor-widget.cm-btn--toggle .elementor-button:hover { background:var(--navy-800); color:#fff; border-color:var(--navy-800); transform:translateY(-2px); }
.elementor-widget.cm-btn--toggle .elementor-button::after {
  content:""; width:14px; height:14px; margin-left:10px; background:currentColor; transition:transform .3s ease;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.cm-specs-section.is-expanded .elementor-widget.cm-btn--toggle .elementor-button::after { transform:rotate(180deg); }

/* "Don't see your specialty?" note */
.elementor-widget.cm-spec-note { max-width:760px; margin:28px auto 0; padding:18px 24px; border-radius:16px; background:#fff; border:1px solid var(--border-subtle); box-shadow:var(--shadow-sm); text-align:center; font-size:15px; line-height:1.65; color:var(--text-body); }
.elementor-widget.cm-spec-note p { margin:0; }
.elementor-widget.cm-spec-note strong { color:var(--slate-900); }
body.carimed .elementor-widget.cm-spec-note a { color:var(--red-600); font-weight:600; text-decoration:underline; text-underline-offset:3px; }

/* Specialty popup */
.cm-modal--spec .cm-modal__panel { padding-top:0; overflow-x:hidden; }
.cm-spec-modal__media { margin:0 -40px 24px; height:220px; overflow:hidden; background:var(--navy-950); }
.cm-spec-modal__media img { width:100%; height:100%; object-fit:cover; display:block; }
.cm-spec-modal__media.is-icon { display:flex; align-items:center; justify-content:center; color:#fff;
  background:radial-gradient(ellipse at 85% 0%, rgba(249,91,61,.45) 0%, rgba(47,58,120,0) 60%), linear-gradient(140deg,#3a4890 0%,#2f3a78 45%,#1a2048 100%); }
.cm-spec-modal__media.is-icon svg { width:64px; height:64px; }
.cm-modal--spec .cm-modal__head { margin-bottom:14px; }
.cm-spec-modal__body { font-size:15.5px; line-height:1.7; color:var(--text-body); }
.cm-spec-modal__body p { margin:0 0 14px; }
.cm-spec-modal__body strong { color:var(--slate-900); }
.cm-spec-modal__body ul { list-style:none; margin:0 0 6px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; }
.cm-spec-modal__body li { position:relative; padding-left:22px; font-size:14.5px; color:var(--slate-800); }
.cm-spec-modal__body li::before { content:""; position:absolute; left:0; top:.45em; width:10px; height:10px; border-radius:50%; background:var(--cm-grad-orange); }
.cm-spec-modal__actions { margin-top:22px; }
.cm-modal--spec .cm-modal__close { z-index:2; background:rgba(255,255,255,.9); }
@media (max-width:600px) {
  .cm-spec-modal__media { margin:0 -20px 20px; height:180px; }
  .cm-spec-modal__body ul { grid-template-columns:1fr; }
  .cm-spec-modal__actions .cm-cs-btn { width:100%; }
}
/* Long "Explore …" labels wrap instead of overflowing the box */
.elementor-widget.cm-btn--link .elementor-button { white-space:normal; text-align:left; display:inline-block; }
.elementor-widget.cm-btn--link .elementor-button .elementor-button-content-wrapper { display:inline; }
.elementor-widget.cm-btn--link .elementor-button::after { display:inline-block; vertical-align:-2px; margin-left:6px; }

/* v1.7.1: "Explore …" links on one line */
.cm-specs-section .elementor-widget.cm-btn--link .elementor-button { white-space:nowrap; font-size:14px; }

/* v1.7.1: compact specialty popup, no image, no scrolling */
.cm-spec-modal__media { display:none !important; }
.cm-modal--spec .cm-modal__panel { max-width:680px; padding:34px 36px 24px; overflow:visible; max-height:none; }
.cm-modal--spec .cm-modal__head { margin-bottom:10px; padding-right:44px; }
.cm-modal--spec .cm-modal__eyebrow { margin-bottom:6px; }
body.carimed .cm-modal--spec .cm-modal__title { font-size:clamp(22px,2.4vw,26px); margin:0; }
.cm-modal--spec .cm-spec-modal__body { font-size:15px; line-height:1.6; }
.cm-modal--spec .cm-spec-modal__body p { margin:0 0 10px; }
.cm-modal--spec .cm-spec-modal__body ul { gap:6px 18px; margin-bottom:0; }
.cm-modal--spec .cm-spec-modal__body li { font-size:14px; line-height:1.45; }
.cm-modal--spec .cm-spec-modal__actions { margin-top:18px; }
.cm-modal--spec .cm-spec-modal__actions .cm-cs-btn { height:46px; padding:0 24px; font-size:14.5px; }
.cm-modal--spec .cm-modal__alt { margin-top:18px; padding-top:16px; }
.cm-modal--spec .cm-modal__close { background:var(--slate-100); top:14px; right:14px; }
@media (max-width:600px) {
  .cm-modal--spec .cm-modal__panel { padding:26px 20px 20px; max-height:92vh; overflow-y:auto; }
}

/* v1.7.1: photos for the 8 additional specialty boxes */
.elementor-widget.cm-img-cardiology img       { object-position:50% 40%; }
.elementor-widget.cm-img-dermatology img      { object-position:55% 45%; }
.elementor-widget.cm-img-diagnostics img      { object-position:55% 35%; }
.elementor-widget.cm-img-ent img              { object-position:45% 30%; }
.elementor-widget.cm-img-gastroenterology img { object-position:50% 40%; }
.elementor-widget.cm-img-generalsurgery img   { object-position:50% 40%; }
.elementor-widget.cm-img-ophthalmology img    { object-position:50% 40%; }
.elementor-widget.cm-img-painmanagement img   { object-position:35% 35%; }

/* v1.7.1: all header menu items white (hover light blue) */
body.carimed .cm-nav .cm-menu > li > a { color:#fff; }
body.carimed .cm-nav .cm-menu > li > a:hover, body.carimed .cm-nav .cm-menu > li > a:focus-visible { color:var(--blue-300); }
