/* Loaded after site.css. Maps Elementor widget markup onto the approved design (same values as the HTML site). */

/* ---- base: widgets inherit site typography instead of Elementor's global fonts/colours */
.elementor-widget-heading .elementor-heading-title {
  font: inherit !important; color: inherit !important; letter-spacing: inherit !important;
  text-transform: inherit !important; margin: 0; padding: 0;
}
.elementor-widget-text-editor { font: inherit !important; color: inherit !important; }
.elementor-widget-text-editor p { margin: 0; }
.e-con.head > .e-con, .e-con.head > .elementor-widget { width: auto; max-width: none; flex: 0 1 auto; }

/* ---- shared roles */
.tag p { font: 600 .75rem/1.3 var(--text) !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: inherit !important; }
.display .elementor-heading-title {
  font-family: var(--f-display) !important; font-weight: 400 !important; line-height: .95 !important;
  letter-spacing: -.02em !important; text-transform: uppercase !important;
}

/* ---- hero */
.hero-art { position: absolute !important; inset: 0; pointer-events: none; width: auto; max-width: none; }
.hero-art .elementor-widget-container { position: static; }
.hero .elementor-widget-html:not(.hero-art) { position: static; }
.hero .corner.tag p { color: var(--ink) !important; }
.hero .center { width: 100%; }
.hero h1 img { margin-inline: auto; height: auto; }
.tagline .elementor-heading-title {
  font-family: var(--f-display) !important; font-weight: 400 !important; font-size: clamp(1rem, 2.4vw, 1.9rem) !important;
  line-height: .95 !important; letter-spacing: 0 !important; text-transform: uppercase !important; color: var(--ink) !important;
}
.tagline .hl { background: var(--orange); color: var(--ink); padding: .05em .35em; border-radius: .3em; }
.hero .lede p { font: 500 1.0625rem/1.55 var(--text) !important; color: var(--ink) !important; text-align: center; }

/* ---- section headings */
.head .display .elementor-heading-title { font-size: clamp(1.6rem, 4.2vw, 3.4rem) !important; }
.head-tag p { margin-bottom: 12px; }
.pkgs .head-title { align-items: center; text-align: center; }
.sub { margin-top: 14px; }
.sub p { font: 400 1.0625rem/1.55 var(--text) !important; color: var(--body) !important; }

/* ---- packs */
.pk-1 { --bg: #E6E6E6; --fg: #111111; --ck: #FF4D00; --i: 0; }
.pk-2 { --bg: #FF4D00; --fg: #111111; --ck: #111111; --i: 1; }
.pk-3 { --bg: #111111; --fg: #F2F2F2; --ck: #FF4D00; --i: 2; }
.pk .tag p { color: inherit !important; }
.pk-title .elementor-heading-title { font: 700 1.25rem/1.25 var(--text) !important; text-transform: none !important; letter-spacing: normal !important; }
.pk .desc p { font: 400 .9375rem/1.55 var(--text) !important; opacity: .85; }
.rec p { font: 700 .6875rem/1 var(--text) !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--paper) !important; }
.pk-list .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.pk-list .elementor-icon-list-item { display: flex !important; gap: 12px; align-items: flex-start !important; padding: 11px 0 !important; margin: 0 !important; }
.pk-list .elementor-icon-list-icon {
  flex: none; display: block !important; width: 20px !important; height: 20px; margin-top: 2px; padding: 0 !important;
  background: var(--ck); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22/%3E%3C/svg%3E") center / contain no-repeat;
}
.pk-list .elementor-icon-list-icon > * { display: none !important; }
.pk-list .elementor-icon-list-text { padding: 0 !important; font: inherit !important; color: inherit !important; }
.pk-list :is(.pk-2 li:last-child, .pk-3 li:nth-last-child(-n+2)) { opacity: .7; }
.pk-list :is(.pk-2 li:last-child, .pk-3 li:nth-last-child(-n+2)) .elementor-icon-list-icon {
  background: currentColor; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 7l10 10M17 7L7 17%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 7l10 10M17 7L7 17%22/%3E%3C/svg%3E");
}
.js .pk.in .pk-list :is(.pk-2 li:last-child, .pk-3 li:nth-last-child(-n+2)) { opacity: .7; }

/* ---- pill buttons (Elementor Button widget) */
.e-pill .elementor-button-wrapper { display: block; }
.e-pill .elementor-button {
  display: inline-flex !important; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px;
  padding: 6px 6px 6px 20px !important; border: 0 !important; border-radius: 999px !important; box-shadow: none !important;
  background: var(--ink) !important; color: var(--paper) !important; font: 600 .8125rem var(--text) !important;
  letter-spacing: .08em !important; text-transform: uppercase !important; text-decoration: none; transition: translate .25s var(--e);
}
.e-pill .elementor-button::after {
  content: "↗"; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%;
  background: var(--orange); color: var(--ink); font-size: 1rem; letter-spacing: 0; transition: transform .3s var(--e);
}
.e-pill .elementor-button:hover { translate: 0 -2px; }
.e-pill .elementor-button:hover::after { transform: rotate(45deg); }
.e-pill .elementor-button-content-wrapper { display: block; }
.pk .e-pill { margin-top: auto; }
.pk .e-pill .elementor-button { width: 100%; background: var(--fg) !important; color: var(--bg) !important; }
.e-pill.pill-orange .elementor-button { background: var(--orange) !important; color: var(--ink) !important; }
.e-pill.pill-orange .elementor-button::after { background: var(--ink); color: var(--orange); }

/* ---- services tiles */
.box .elementor-widget, .cta .elementor-widget { position: static; }
.box-title .elementor-heading-title {
  font-family: var(--f-display) !important; font-weight: 400 !important; font-size: clamp(1.2rem, 2vw, 1.6rem) !important;
  line-height: 1.1 !important; text-transform: uppercase !important;
}
.box-title a { color: inherit; text-decoration: none; }
.box-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.box-text p { font: 400 1rem/1.55 var(--text) !important; color: inherit !important; }
.box.big .box-big-title .elementor-heading-title { font-size: clamp(1.8rem, 4.4vw, 3.8rem) !important; color: var(--paper) !important; }
.box.big .box-big-title em { font-style: normal; color: var(--orange); }
.box.big .box-text p { max-width: 34ch; color: #c9c9c9 !important; }
.box.big .e-pill { align-self: flex-start; }
.box:not(.big):hover { translate: 0 -6px; }

/* ---- contact band */
.cta .elementor-widget-text-editor p { max-width: none; margin: 0; }
.cta-h { margin-top: 14px; padding-right: clamp(0px, 18vw, 200px); }
.cta-h .elementor-heading-title { font-size: clamp(1.4rem, 3.4vw, 2.8rem) !important; }
.cta-text { max-width: 46ch; margin-top: 20px; }
.cta-text p { font: 400 1.0625rem/1.55 var(--text) !important; color: #c9c9c9 !important; }
.cta-btn { margin-top: 28px; align-self: flex-start; }
.cta-mail { margin-top: 16px; }
.cta-mail a { text-decoration: underline; color: inherit; }
.cta .cta-big { align-self: stretch; }
@media (max-width: 560px) { .cta-h { padding-right: 0; } .head .display .elementor-heading-title { font-size: clamp(1.25rem, 6.4vw, 1.6rem) !important; } }

/* ---- measured fixes (pixel comparison against the HTML site) */
.hero .lede { max-width: 460px !important; }
.head-arrows { flex: none; }
.arrows button { flex: none; }
.pk-list .elementor-icon-list-item, .pk-list .elementor-icon-list-text { line-height: 1.55 !important; }
.rec p { line-height: normal !important; }
.e-con.cta { width: calc(100% - 2 * var(--gutter)); max-width: none; }
.head-arrows { min-width: max-content; }
.pk-list .elementor-icon-list-item, .pk-list .elementor-icon-list-text { font-size: .9375rem !important; font-weight: 500 !important; }
.cta-text { max-width: 46ch !important; }
.head-arrows { width: 106px !important; min-width: 106px; flex: none !important; }
/* the HTML site renders tags inside boxes at 1rem (".box p" outranks ".tag"): keep it identical */
.box .tag p { font-size: 1rem !important; }
/* the arrow circle must not take part in the box's flex layout (it is absolutely placed in the HTML site) */
.box .go-wrap { position: absolute !important; inset: 0; pointer-events: none; width: auto; max-width: none; }
.box .go-wrap .elementor-widget-container { position: static; }
/* colours that the HTML site inherits from ".cta p" / ".box.big p", and a single opacity on the pack description */
.cta .tag p { color: #c9c9c9 !important; }
.box.big .tag p { color: #c9c9c9 !important; }
.pk .desc { opacity: 1 !important; }
.e-pill .elementor-button::after { letter-spacing: .08em; font-weight: 600; }

/* =====================================================================
   Content pages (services, doctors, contact, news): Elementor widgets styled like the HTML site
   ===================================================================== */
.crumbs-w .elementor-widget-container { padding: 0; }
.e-con.phero, .e-con.sec { max-width: 1240px; margin-inline: auto; width: 100%; }
.phero-h1 .elementor-heading-title {
  font-family: var(--f-display) !important; font-weight: 400 !important; font-size: clamp(1.7rem, 5.4vw, 3.8rem) !important;
  line-height: 1.02 !important; text-transform: uppercase !important; letter-spacing: -.02em !important; overflow-wrap: anywhere;
}
.phero .lead { margin-top: 18px; max-width: 60ch !important; }
.phero .lead p { font: 400 1.125rem/1.55 var(--text) !important; color: var(--body) !important; }
.brief-tag p { color: var(--orange) !important; }
.brief-text { margin-top: 8px; }
.brief-text p { font: 400 1.0625rem/1.55 var(--text) !important; color: #e6e6e6 !important; }
.upd { margin-top: 16px; }
.upd p { font: 400 .8125rem/1.55 var(--text) !important; color: var(--body) !important; }

.sec-title { margin-bottom: 24px; }
.sec-title .elementor-heading-title {
  font-family: var(--f-display) !important; font-weight: 400 !important; font-size: clamp(1.35rem, 3.4vw, 2.4rem) !important;
  line-height: 1.08 !important; text-transform: uppercase !important; letter-spacing: -.02em !important; overflow-wrap: anywhere;
}
.sec-p { max-width: 70ch !important; margin-bottom: 14px; }
.sec-p p { font: 400 1.0625rem/1.55 var(--text) !important; color: var(--body) !important; }
.sec-p a, .faq-acc a, .side-text a { text-decoration: underline; text-underline-offset: 3px; color: var(--ink); }

/* feature cards + steps */
.feat-title { margin-bottom: 8px; }
.feat-title .elementor-heading-title { font: 700 1.0625rem/1.3 var(--text) !important; text-transform: none !important; letter-spacing: normal !important; }
.feat-text p, .step-text p { font: 400 .9375rem/1.55 var(--text) !important; color: var(--body) !important; }
.step-title { margin-bottom: 6px; }
.step-title .elementor-heading-title { font: 700 1.0625rem/1.55 var(--text) !important; text-transform: none !important; letter-spacing: normal !important; }
.e-con.feats, .e-con.steps { flex-direction: row; }

/* FAQ: Elementor accordion styled like the <details> list */
.faq-acc .elementor-toggle { border: 0; }
.faq-acc .elementor-toggle-item { background: #fff; border: 0 !important; border-radius: 20px; margin-bottom: 10px; padding: 0 22px; }
.faq-acc .elementor-tab-title {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 12px 0 !important;
  border: 0 !important; background: none !important; color: var(--ink) !important; cursor: pointer;
}
.faq-acc .elementor-toggle-title { font: 600 1rem/1.55 var(--text) !important; color: var(--ink) !important; text-decoration: none; flex: 1; }
.faq-acc .elementor-toggle-icon { order: 2; width: auto !important; margin: 0 !important; color: var(--ink) !important; font-size: 1rem; }
.faq-acc .elementor-tab-content { border: 0 !important; padding: 0 0 20px !important; color: var(--body) !important; max-width: 70ch; font: 400 1.0625rem/1.55 var(--text); }
.faq-acc .elementor-tab-content p { margin: 0; }

/* contact band at the end of service pages */
.band-text { flex: 1 1 320px; }
.band-title .elementor-heading-title {
  font-family: var(--f-display) !important; font-weight: 400 !important; font-size: clamp(1.3rem, 3vw, 2.2rem) !important;
  line-height: 1.05 !important; text-transform: uppercase !important; letter-spacing: -.02em !important;
}
.band-title { margin-bottom: 8px; }
.band-p p { font: 400 1.0625rem/1.55 var(--text) !important; color: inherit !important; }
.band .e-pill .elementor-button { background: var(--ink) !important; color: #fff !important; }
.e-con.band { width: min(calc(100% - 2 * var(--gutter)), 1240px); max-width: none; }
.e-pill.wa-pill .elementor-button { background: #25D366 !important; color: #0b3d1f !important; padding: 6px 20px !important; justify-content: center; }
.e-pill.wa-pill .elementor-button::after { display: none; }
.e-pill.wa-pill .elementor-button::before {
  content: ""; width: 22px; height: 22px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%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'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* pack cards (mini) */
.mini-1 { --bg: #E6E6E6; --fg: #111; } .mini-2 { --bg: #FF4D00; --fg: #111; } .mini-3 { --bg: #111; --fg: #F2F2F2; }
.e-con.mini { flex-direction: row; }
.mini-card .elementor-widget { position: static; }
.mini-tag p { color: inherit !important; }
.mini-price .elementor-heading-title { font: 400 clamp(1.6rem, 3vw, 2.2rem)/1 var(--f-display) !important; text-transform: none !important; letter-spacing: normal !important; }
.mini-price a { color: inherit; text-decoration: none; }
.mini-price a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.mini-title p { font: 400 1.0625rem/1.55 var(--text) !important; color: inherit !important; }
.mini-card:hover { translate: 0 -6px; }

/* services hub cards */
.sv-1 { --bg: #FF4D00; --fg: #111; } .sv-2 { --bg: #111; --fg: #F2F2F2; } .sv-3 { --bg: #E6E6E6; --fg: #111; } .sv-4 { --bg: #fff; --fg: #111; }
.e-con.cards { flex-direction: row; }
.sv .elementor-widget { position: static; }
.sv-body { display: flex; flex-direction: column; }
.sv-tag p, .sv-more p { color: inherit !important; }
.sv-title { margin: 10px 0; }
.sv-title .elementor-heading-title { font: 400 clamp(1.2rem, 2vw, 1.6rem)/1.1 var(--f-display) !important; text-transform: uppercase !important; letter-spacing: normal !important; }
.sv-title a { color: inherit; text-decoration: none; }
.sv-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.sv-text p { font: 400 1.0625rem/1.55 var(--text) !important; color: inherit !important; }
.sv:hover { translate: 0 -6px; }

/* doctor directory: chips + queries */
.group-title { margin: 28px 0 14px; }
.group-title .elementor-heading-title { font: 700 .8125rem/1.55 var(--text) !important; letter-spacing: .14em !important; text-transform: uppercase !important; }
.chips-list .elementor-icon-list-items, .queries-list .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.chips-list .elementor-icon-list-item, .queries-list .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; width: auto; }
.chips-list .elementor-icon-list-item > a { display: inline-flex !important; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: #fff; border: 1.5px solid var(--ink); transition: background .2s, color .2s; }
.chips-list .elementor-icon-list-item > a:hover { background: var(--ink); color: #fff; }
.chips-list .elementor-icon-list-text { font: 600 .875rem/1.55 var(--text) !important; color: inherit !important; padding: 0 !important; }
.chips-list .elementor-icon-list-icon, .queries-list .elementor-icon-list-icon { display: none !important; }
.queries-list .elementor-icon-list-item { padding: 10px 16px !important; border-radius: 999px; background: #fff; }
.queries-list .elementor-icon-list-text { font: 500 .875rem/1.55 var(--text) !important; color: inherit !important; padding: 0 !important; }

/* specialty page: pages to plan */
.e-con.pagelist { flex-direction: row; }
.pl { padding: 18px 20px; border-radius: 20px; background: #fff; }
.pl-title p { font: 600 .9375rem/1.55 var(--text) !important; }
.pl-sub { margin-top: 4px; }
.pl-sub p { font: 400 .8125rem/1.55 var(--text) !important; color: var(--body) !important; }

/* contact page */
.form-wrap .form label { font: 600 .875rem var(--text); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.e-con.sec.cgrid { flex-direction: row; }
.side-title .elementor-heading-title { font: 400 1.25rem/1.55 var(--f-display) !important; text-transform: uppercase !important; letter-spacing: normal !important; }
.side-title { margin-bottom: 14px; }
.side-text { margin-bottom: 12px; }
.side-text p { font: 400 1.0625rem/1.55 var(--text) !important; color: var(--body) !important; }
.side .e-pill { margin-bottom: 12px; }

/* news page */
.blog-tag { margin-bottom: 16px; }
.blog-h1 .elementor-heading-title { font-size: clamp(2.4rem, 10vw, 8rem) !important; }
.blog-h1 .elementor-heading-title::after { content: ""; display: inline-block; width: .16em; height: .16em; margin-left: .08em; border-radius: 50%; background: var(--orange); }
.blog-hero .lede { margin-top: 20px; max-width: 52ch !important; }
.blog-hero .lede p { font: 400 1.0625rem/1.55 var(--text) !important; color: var(--body) !important; }
.post-1 { --bg: #FF4D00; --fg: #111; } .post-2 { --bg: #111; --fg: #F2F2F2; } .post-3 { --bg: #E6E6E6; --fg: #111; }
.e-con.posts { flex-direction: row; }
.post .elementor-widget { position: static; }
.post-tag p { color: inherit !important; }
.post-title { margin: 14px 0 12px; }
.post-title .elementor-heading-title { font: 700 clamp(1.25rem, 2vw, 1.6rem)/1.2 var(--text) !important; text-transform: none !important; letter-spacing: normal !important; }
.post-title a { color: inherit; text-decoration: none; }
.post-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.post-ex p { font: 400 .9375rem/1.55 var(--text) !important; opacity: .88; color: inherit !important; }
.more p { font: 600 .8125rem/1.55 var(--text) !important; letter-spacing: .1em !important; text-transform: uppercase !important; }
.post:hover { translate: 0 -8px; }
.full-tag p { color: inherit !important; }
.full-title { margin: 14px 0 24px; }
.full-title .elementor-heading-title { font: 400 clamp(1.5rem, 3.6vw, 2.6rem)/1.05 var(--f-display) !important; text-transform: uppercase !important; letter-spacing: normal !important; }
.full-p { margin-bottom: 16px; }
.full-p p { font: 400 1.0625rem/1.55 var(--text) !important; color: var(--body) !important; }
.back-w a { display: inline-block; font: 600 .8125rem var(--text); letter-spacing: .1em; text-transform: uppercase; padding: 12px 0; border-bottom: 1.5px solid var(--orange); color: var(--ink); }

/* widget margins: Elementor's ".elementor-widget:not(:last-child)" would win over plain class rules */
.sec-title { margin-bottom: 24px !important; }
.sec-p { margin-bottom: 14px !important; }
.feat-title { margin-bottom: 8px !important; }
.step-title { margin-bottom: 6px !important; }
.band-title { margin-bottom: 8px !important; }
.group-title { margin: 28px 0 14px !important; }
.sv-title { margin: 10px 0 !important; }
.pl-sub { margin-top: 4px !important; }
.post-title { margin: 14px 0 12px !important; }
.full-title { margin: 14px 0 24px !important; }
.full-p { margin-bottom: 16px !important; }
.side-title { margin-bottom: 14px !important; }
.side-text { margin-bottom: 12px !important; }
.side .e-pill { margin-bottom: 12px !important; }
.blog-tag { margin-bottom: 16px !important; }
.brief-text { margin-top: 8px !important; }
.upd { margin-top: 16px !important; }

/* toggle icon: draw the same + / x as the HTML site instead of the Font Awesome glyphs */
.faq-acc .elementor-toggle-icon > * { display: none !important; }
.faq-acc .elementor-toggle-icon::after { content: "+"; display: block; font: 400 1.5rem/1 var(--text); color: var(--ink); transition: rotate .3s var(--e); }
.faq-acc .elementor-tab-title.elementor-active .elementor-toggle-icon::after { rotate: 45deg; }
.faq-acc .elementor-tab-content p { font: 400 1.0625rem/1.55 var(--text) !important; color: var(--body) !important; }
/* Elementor draws its background overlay with ::before: the step number circle must stay in the flow */
.e-con.step::before { position: static !important; inset: auto !important; width: 40px !important; height: 40px !important; opacity: 1 !important; display: grid !important; margin-bottom: 14px; }
/* band: text on the left, buttons on the right */
.e-con.band > .e-con { width: auto; max-width: none; }
.e-con.btns { flex: 0 1 auto; max-width: 100%; min-width: 0; flex-wrap: wrap; }
/* paragraphs that live inside HTML widgets keep the 70ch measure of the HTML site */
.sec .elementor-widget-html > p { max-width: 70ch; }

/* news: the tag inside a card follows ".post p" of the HTML site (0.9375rem, 88%) */
.post .tag p { font-size: .9375rem !important; opacity: .88; }
.e-con.articles { max-width: calc(70ch + 2 * var(--gutter)); width: 100%; margin-inline: auto; }
.faq-acc .elementor-toggle-icon { padding: 0 !important; }

/* measured fixes, round 2 (content pages) */
.phero .lead { font-size: 1.125rem !important; }
.mini-card { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 24px; border-radius: var(--r); background: var(--bg); color: var(--fg); transition: translate .3s var(--e); }
.group { margin-top: 28px; }
.sec-title + .group { margin-top: 4px; }
.group-title { margin: 0 0 14px !important; }
.group-title .elementor-heading-title { font: 700 .8125rem var(--text) !important; letter-spacing: .14em !important; text-transform: uppercase !important; }
.mini-price .elementor-heading-title { white-space: nowrap; text-wrap: nowrap; }
/* the HTML site styles ".mini a" as the whole card; here the link sits inside the price heading */
.mini .mini-price a { display: inline !important; padding: 0 !important; background: none !important; border-radius: 0 !important; gap: 0 !important; translate: none !important; transition: none; color: inherit !important; }
.chips-list .elementor-icon-list-items, .queries-list .elementor-icon-list-items { margin: 0 !important; width: 100%; }
.faq-acc .elementor-toggle-title { font: 600 1rem var(--text) !important; }

/* measured fixes, round 3 */
.sv-tag p { line-height: 26.35px !important; }
.sec .elementor-widget-html > p { margin-bottom: 14px; }
.step-title .elementor-heading-title { font: 700 1.0625rem var(--text) !important; }
.full-title { margin: 16px 0 24px !important; }
.back-w { margin-top: 8px !important; }
.form .hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; margin: 0; padding: 0; }
.side-title .elementor-heading-title { font: 400 1.25rem var(--f-display) !important; }

.form [hidden] { display: none !important; }

/* measured fixes, round 4 */
.chips-list .elementor-icon-list-text { font: 600 .875rem var(--text) !important; }
.form-wrap .form label.chk { font-weight: 400; font-size: .875rem; color: var(--body); }
.side .e-pill .elementor-button { text-decoration: underline; text-underline-offset: 3px; }
.chips-list .elementor-icon-list-item { display: block !important; }
