/* ==========================================================================
   Abdominis Landing  —  אסיא מדיקל / מרכז הבקע
   Built 1:1 from "אסיא מדיקל.xd"  ·  artboard "Web 1920 – 1"  (1920 × 6074)
   All design values below are the artboard's own numbers.
   ========================================================================== */

.abd {
  /* ---- palette (straight from the XD) ---------------------------------- */
  --abd-sage: #b0c5be;
  --abd-sage-dark: #94aea6;
  --abd-ink: #000;
  --abd-white: #fff;
  --abd-muted: #4a4a4a;
  --abd-placeholder: rgba(105, 105, 105, .13);
  --abd-line: 3px;

  /* ---- horizontal rhythm ---------------------------------------------- */
  /* artboard 1920 with 140 side margins -> 1640 content, 85.4167% */
  --abd-wrap: min(1640px, 85.4167vw);
  --abd-wrap-narrow: min(1517px, 79.01vw);   /* knowledge / faq blocks */
  --abd-kc-gap: clamp(14px, 1.25vw, 24px);

  /* ---- type scale ------------------------------------------------------ */
  /* clamp(floor, designPx / 1920 * 100vw, designPx) — exact at 1920 */
  --abd-fs-hero: clamp(40px, 7.2396vw, 139px);
  --abd-fs-75: clamp(34px, 3.9063vw, 75px);
  --abd-fs-55: clamp(28px, 2.8646vw, 55px);
  --abd-fs-45: clamp(26px, 2.3438vw, 45px);
  --abd-fs-31: clamp(17px, 1.6146vw, 31px);
  --abd-fs-25: clamp(17px, 1.3021vw, 25px);
  --abd-fs-24: clamp(15px, 1.25vw, 24px);
  --abd-fs-22: clamp(16px, 1.1458vw, 22px);
  --abd-fs-20: clamp(15px, 1.0417vw, 20px);
  --abd-fs-18: clamp(14px, .9375vw, 18px);

  direction: rtl;
  font-family: Assistant, "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  font-size: var(--abd-fs-20);
  line-height: 1.2;
  color: var(--abd-ink);
  background: var(--abd-white);
  overflow-x: clip;
}

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

/* Zero-specificity reset (:where) so every component class below can still
   set its own margins — a plain `.abd p` selector would out-specify them. */
:where(.abd) :where(h1, h2, h3, h4, p, ul, ol, li, figure, blockquote, fieldset) {
  margin: 0;
  padding: 0;
  border: 0;
}

:where(.abd) :where(ul, ol) { list-style: none; }

:where(.abd) :where(img, svg) { display: block; max-width: 100%; }

:where(.abd) :where(a) { color: inherit; text-decoration: none; }

:where(.abd) :where(button, input, select, textarea) { font: inherit; color: inherit; }

.abd .abd__wrap {
  width: var(--abd-wrap);
  margin-inline: auto;
}

/* visually hidden but readable by assistive tech */
.abd .abd__sr {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* full-bleed band that ignores the theme's content container */
.abd .abd__band {
  position: relative;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* ---- buttons ------------------------------------------------------------ */
.abd .abd__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--abd-sage);
  color: var(--abd-white);
  font-weight: 700;
  text-align: center;
  border: 0;
  cursor: pointer;
  transition: background-color .22s ease, transform .22s ease;
}

.abd .abd__btn:hover,
.abd .abd__btn:focus-visible {
  background: var(--abd-sage-dark);
  color: var(--abd-white);
  transform: translateY(-1px);
}

.abd :focus-visible {
  outline: 2px solid var(--abd-ink);
  outline-offset: 3px;
}

/* ==========================================================================
   1 · HEADER            artboard Y 0 → 200 · logo 279 × 83
   ========================================================================== */
.abd .abd-header {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(96px, 10.4167vw, 200px);
  background: var(--abd-white);
}

.abd .abd-header__logo { display: block; }

.abd .abd-header__logo img,
.abd .abd-header__logo svg {
  width: clamp(180px, 14.5313vw, 279px);
  height: auto;
}

/* ==========================================================================
   2 · HERO              artboard Y 200 → 988 · bg image 1920 × 788
   content right edge 1747 · H1 140/0.78 · sub 31 ls .3em · lead 24b
   tags 24m (2 × 5, 3px sage separators) · button 193 × 52
   ========================================================================== */
.abd .abd-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(420px, 40.5208vw, 778px);
  overflow: hidden;
  background: #eef2f4;
}

.abd .abd-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.abd .abd-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--abd-hero-pos, center center);
}

/* The artboard uses no scrim — the photo's right side is already bright.
   Kept faint so a darker replacement photo still reads. */
.abd .abd-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(270deg,
              rgba(255, 255, 255, calc(.58 * var(--abd-scrim, .25))) 0%,
              rgba(255, 255, 255, calc(.42 * var(--abd-scrim, .25))) 30%,
              rgba(255, 255, 255, calc(.10 * var(--abd-scrim, .25))) 52%,
              rgba(255, 255, 255, 0) 68%);
}

.abd .abd-hero__inner {
  position: relative;
  z-index: 2;
  width: var(--abd-wrap);
  margin-inline: auto;
  /* 1747 of 1920 -> the copy column is flush with the artboard's right edge */
  padding-inline-end: 0;
}

.abd .abd-hero__copy {
  max-width: min(640px, 44vw);
  margin-inline-start: clamp(0px, 1.7188vw, 33px);
  margin-inline-end: auto;
  text-align: right;
}

.abd .abd-hero__title {
  font-size: var(--abd-fs-hero);
  font-weight: 700;
  line-height: .776;
  letter-spacing: -.005em;
  margin-bottom: clamp(14px, 1.6667vw, 32px);
}

.abd .abd-hero__subtitle {
  font-size: var(--abd-fs-31);
  font-weight: 400;
  line-height: 1.31;
  letter-spacing: .3em;      /* XD letterSpacing 300/1000 em */
  margin-bottom: clamp(12px, 1.6146vw, 31px);
}

.abd .abd-hero__lead {
  font-size: var(--abd-fs-24);
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: clamp(8px, .8333vw, 16px);
}

/* the two rows of hernia names, separated by 3px sage rules */
.abd .abd-hero__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0 clamp(7px, .625vw, 12px);
  font-size: var(--abd-fs-24);
  font-weight: 500;
  line-height: 1.25;
  margin-bottom: clamp(18px, 2.5vw, 48px);
}

.abd .abd-hero__tag {
  display: flex;
  align-items: center;
  gap: 0 clamp(7px, .625vw, 12px);
  white-space: nowrap;
}

.abd .abd-hero__tag::after {
  content: "";
  flex: none;
  width: var(--abd-line);
  height: clamp(13px, 1.0417vw, 20px);
  background: var(--abd-sage);
}

.abd .abd-hero__tag:last-child::after,
.abd .abd-hero__tag--endrow::after { display: none; }

.abd .abd-hero__tag a { color: inherit; }
.abd .abd-hero__tag > a:hover { text-decoration: underline; }

.abd .abd-hero__cta {
  min-width: clamp(140px, 10.0521vw, 193px);
  min-height: clamp(42px, 2.7083vw, 52px);
  padding-inline: clamp(18px, 1.6667vw, 32px);
  font-size: var(--abd-fs-22);
}

/* ==========================================================================
   3 · FEATURES BAND     artboard Y 988 → 1377 (1920 × 399) · sage
   4 columns · icon ≈ 86 tall · title 25b/1.0 · body 25r/1.0 · note 20r
   ========================================================================== */
.abd .abd-features {
  background: var(--abd-sage);
  padding-block: clamp(34px, 4.4271vw, 85px) clamp(42px, 6.4583vw, 124px);
}

.abd .abd-features__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(24px, 2.0833vw, 40px) clamp(18px, 1.6667vw, 32px);
  align-items: start;
}

.abd .abd-feature { text-align: center; }

.abd .abd-feature__icon {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: clamp(52px, 4.4792vw, 86px);
  margin-bottom: clamp(14px, 1.5104vw, 29px);
  color: var(--abd-ink);
}

.abd .abd-feature__icon img,
.abd .abd-feature__icon svg {
  width: auto;
  max-height: 100%;
  object-fit: contain;
}

.abd .abd-feature__title {
  font-size: var(--abd-fs-25);
  font-weight: 700;
  line-height: 1;
}

.abd .abd-feature__text {
  font-size: var(--abd-fs-25);
  font-weight: 400;
  line-height: 1;
}

.abd .abd-feature__text > * + * { margin-top: 0; }
.abd .abd-feature__text strong { font-weight: 700; }
.abd .abd-feature__text p { line-height: 1; }

.abd .abd-feature__note {
  font-size: var(--abd-fs-20);
  font-weight: 400;
  line-height: 1.2;
  margin-top: clamp(4px, .3646vw, 7px);
}

/* ==========================================================================
   4 · DOCTORS           artboard Y 1377 → 2452
   H2 75b/0.867 · sub 20r · 4 × (263 × 283) photo + 48 name bar · gap 14
   grid 1094 wide · CTA 334 × 59
   ========================================================================== */
.abd .abd-doctors { padding-block: clamp(44px, 3.3854vw, 65px) clamp(18px, 1.3542vw, 26px); }

.abd .abd-section__head { text-align: center; }

.abd .abd-section__title {
  font-size: var(--abd-fs-75);
  font-weight: 700;
  line-height: .867;
  text-wrap: balance;
}

.abd .abd-section__title--45 {
  font-size: var(--abd-fs-45);
  line-height: 1.1;
}

.abd .abd-section__title--55 {
  font-size: var(--abd-fs-55);
  line-height: 1;
}

.abd .abd-section__sub {
  font-size: var(--abd-fs-20);
  font-weight: 400;
  line-height: 1.2;
  max-width: 50ch;
  margin-inline: auto;
  margin-top: clamp(12px, 1.0938vw, 21px);
  text-wrap: pretty;
}

.abd .abd-doctors__grid {
  /* 4 × 263 + 3 × 14 = 1094 of the 1640 wrap → 66.71% */
  width: min(1094px, 66.71%);
  margin: clamp(28px, 3.1771vw, 61px) auto 0;
  display: grid;
  grid-template-columns: repeat(var(--abd-doc-cols, 4), 1fr);
  gap: clamp(8px, .7292vw, 14px);
}

.abd .abd-doctor {
  display: flex;
  flex-direction: column;
  background: transparent;
}

.abd .abd-doctor__photo {
  position: relative;
  aspect-ratio: 263 / 283;   /* XD photo box */
  overflow: hidden;
  background: #ece7e1;
}

.abd .abd-doctor__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform .5s ease;
}

.abd .abd-doctor:hover .abd-doctor__photo img { transform: scale(1.035); }

/* the sage name plate, with the 3px white rule on its leading edge */
.abd .abd-doctor__name {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(34px, 2.5vw, 48px);
  padding-inline: clamp(8px, .625vw, 12px);
  background: var(--abd-sage);
  color: var(--abd-ink);
  font-size: var(--abd-fs-25);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.abd .abd-doctor__name::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: var(--abd-line);
  background: var(--abd-white);
}

.abd .abd-doctors__cta-row {
  display: flex;
  justify-content: center;
  margin-top: clamp(24px, 2.6563vw, 51px);
}

.abd .abd-doctors__cta {
  min-width: clamp(220px, 17.3958vw, 334px);
  min-height: clamp(46px, 3.0729vw, 59px);
  padding-inline: clamp(20px, 1.25vw, 24px);
  font-size: var(--abd-fs-25);
}

/* ==========================================================================
   5 · REVIEWS           artboard Y 2505 → 2850 · 2 × (825 × 345)
   ========================================================================== */
.abd .abd-reviews { padding-block: clamp(20px, 1.4063vw, 27px) clamp(28px, 2.9688vw, 57px); }

.abd .abd-reviews__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(14px, 1.0417vw, 20px);
}

.abd .abd-reviews__item {
  display: block;
  aspect-ratio: 825 / 345;
  overflow: hidden;
  background: #f6f6f6;
}

.abd .abd-reviews__item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.abd .abd-reviews__embed { width: 100%; }
.abd .abd-reviews__embed iframe { display: block; width: 100%; border: 0; }

/* ==========================================================================
   6 · HERNIA TYPES      artboard Y 3024 → 3677
   H2 45b · sub 20r/1.2 (2 lines, 502 box)
   5 × (223 × 223) card · icon area 160 · label strip 63 · gap 61/60
   grid 1359 wide
   ========================================================================== */
.abd .abd-types { padding-block: clamp(40px, 4.6875vw, 90px) clamp(64px, 12.1875vw, 234px); }

.abd .abd-types__grid {
  /* 5 × 223 + 4 × 61 = 1359 of the 1640 wrap → 82.87% */
  width: min(1359px, 82.87%);
  margin: clamp(30px, 3.4896vw, 67px) auto 0;
  display: grid;
  grid-template-columns: repeat(var(--abd-type-cols, 5), 1fr);
  gap: clamp(18px, 3.1771vw, 61px) clamp(16px, 3.1771vw, 61px);
}

.abd .abd-type {
  display: flex;
  flex-direction: column;
  aspect-ratio: 1;               /* 223 × 223 */
  border: var(--abd-line) solid var(--abd-sage);
  background: var(--abd-white);
  color: var(--abd-sage);
  transition: background-color .25s ease, color .25s ease;
}

/* `flex: 1 1 0%` rather than `1 1 auto` is what makes this work. With an auto
   basis the icon's height is derived from its content, so it stays indefinite,
   `max-height: 100%` on the icon resolves to nothing, the inline <svg> draws at
   its own width/height attributes, and the card grows past `aspect-ratio: 1` by
   however tall that particular icon happens to be — which is why the cards came
   out at ten different heights. A zero basis makes the height come purely from
   the leftover space, which is definite, so the percentage cap below applies. */
.abd .abd-type__icon {
  flex: 1 1 0%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12%;
  border-bottom: var(--abd-line) solid var(--abd-sage);
  transition: border-color .25s ease;
}

.abd .abd-type__icon img,
.abd .abd-type__icon svg {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.abd .abd-type__label {
  /* label strip is 63 of the 223 card → 28.25% */
  flex: 0 0 28.25%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 6%;
  color: var(--abd-ink);
  font-size: var(--abd-fs-25);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

/* highlighted / current type — sage plate, white label */
.abd .abd-type.is-active,
.abd a.abd-type:hover,
.abd a.abd-type:focus-visible {
  background: var(--abd-white);
}

.abd .abd-type.is-active .abd-type__label,
.abd a.abd-type:hover .abd-type__label,
.abd a.abd-type:focus-visible .abd-type__label {
  background: var(--abd-sage);
  color: var(--abd-white);
}

.abd .abd-type.is-active .abd-type__icon,
.abd a.abd-type:hover .abd-type__icon { border-bottom-color: var(--abd-sage); }

/* ==========================================================================
   7 · WHY US            artboard Y 3914 → 4288 (1920 × 374) · sage
   photo 536 × 507 bleeds above + below the band (Y 3847 → 4354)
   H2 45b · 5 items, check icon + 20m/1.1
   ========================================================================== */
.abd .abd-why {
  position: relative;
  background: var(--abd-sage);
  padding-block: clamp(42px, 3.75vw, 72px) clamp(44px, 3.9063vw, 75px);
}

.abd .abd-why__inner {
  width: var(--abd-wrap);
  margin-inline: auto;
  display: grid;
  /* photo column 536 + 40 gutter, copy column takes the rest */
  grid-template-columns: minmax(0, 1064fr) minmax(0, 536fr);
  gap: clamp(20px, 2.0833vw, 40px);
  align-items: center;
}

/* RTL: column 1 is the right-hand one. Both need an explicit row — the
   figure precedes the body in the DOM, and sparse auto-placement would
   otherwise push the body into a second row. */
.abd .abd-why__body { grid-column: 1; grid-row: 1; }
.abd .abd-why__media { grid-column: 2; grid-row: 1; }

.abd .abd-why__media {
  position: relative;
  align-self: stretch;
}

.abd .abd-why__media-inner {
  /* 536 × 507 — out of flow so the band stays 374 tall and the photo
     bleeds 67 above / 66 below, the way the artboard has it */
  position: absolute;
  top: 50%;
  inset-inline: 0;
  translate: 0 -50%;
  display: block;
  aspect-ratio: 536 / 507;
  overflow: hidden;
  background: #dfe6e3;
}

.abd .abd-why__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.abd .abd-why__body { min-width: 0; }

.abd .abd-why__title {
  font-size: var(--abd-fs-45);
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  margin-bottom: clamp(22px, 2.3438vw, 45px);
  text-wrap: balance;
}

.abd .abd-why__list {
  display: grid;
  grid-template-columns: repeat(var(--abd-why-cols, 5), 1fr);
  gap: clamp(16px, 1.0417vw, 20px);
  align-items: start;
}

.abd .abd-why__item { text-align: center; }

.abd .abd-why__check {
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(26px, 2.2917vw, 44px);
  margin-bottom: clamp(10px, 1.0417vw, 20px);
  color: var(--abd-ink);
}

.abd .abd-why__check img,
.abd .abd-why__check svg {
  width: auto;
  max-height: 100%;
}

.abd .abd-why__text {
  max-width: 80%;               /* artboard boxes are 137-172 in a ~200 column */
  margin-inline: auto;
  font-size: var(--abd-fs-20);
  font-weight: 500;
  line-height: 1.1;
  text-wrap: pretty;
}

/* ==========================================================================
   8 · INSURERS          artboard Y 4288 → 4662 · 5 logos ≈ 60 tall + arrows
   ========================================================================== */
.abd .abd-insurers { padding-block: clamp(46px, 8.151vw, 156px); }

.abd .abd-insurers__viewport {
  position: relative;
  width: min(1400px, 100%);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: clamp(8px, 1.0417vw, 20px);
}

.abd .abd-insurers__track {
  flex: 1 1 auto;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: clamp(16px, 1.8229vw, 35px);
  align-items: center;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.abd .abd-insurers__track::-webkit-scrollbar { display: none; }

.abd .abd-insurers__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  scroll-snap-align: center;
  filter: none;
  transition: opacity .25s ease;
}

.abd .abd-insurers__item img {
  /* A set height, not a max-height: the logos arrive at wildly different
     intrinsic sizes, and only an explicit height makes the row read as one
     deliberate strip. --abd-logo-scale is written per logo by the template so
     square marks and wide wordmarks end up the same optical size. */
  width: auto;
  height: calc(min(var(--abd-logo-h, 78px), 11vw) * var(--abd-logo-scale, 1));
  max-width: 100%;
  object-fit: contain;
}

.abd .abd-insurers__item:hover { opacity: .75; }

.abd .abd-insurers__nav {
  flex: none;
  border-radius: 0;
  width: clamp(28px, 2.0833vw, 40px);
  height: clamp(28px, 2.0833vw, 40px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 0;
  padding: 0;
  color: #6f8b83;
  cursor: pointer;
  transition: color .2s ease;
}

.abd .abd-insurers__nav:hover,
.abd .abd-insurers__nav:focus,
.abd .abd-insurers__nav:focus-visible,
.abd .abd-insurers__nav:active {
  background: none;
  border-radius: 0;
  color: var(--abd-ink);
}
.abd .abd-insurers__nav svg { width: 100%; height: 100%; }
.abd .abd-insurers__nav[hidden] { display: none; }

/* --- running mode ---------------------------------------------------------
   Two identical groups sit side by side and both slide by exactly their own
   width plus one gap, so the second lands where the first began and the loop
   is seamless. `min-width: 100%` keeps the strip full even with few logos.
   The page is RTL, so the travel is positive: the leading group exits right
   and the trailing group takes its place. */
.abd .abd-insurers__viewport--running {
  --abd-marquee-gap: clamp(30px, 3.9063vw, 75px);
  display: block;
  overflow: hidden;
  /* soften both ends so logos enter and leave instead of being clipped */
  -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
}

.abd .abd-insurers__running {
  display: flex;
  gap: var(--abd-marquee-gap);
  /* Must NOT be max-content: the groups below size themselves with
     `min-width: 100%`, and against a max-content parent that resolves
     circularly and blows each group up to the width of the whole strip. */
  width: 100%;
}

.abd .abd-insurers__group {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: var(--abd-marquee-gap);
  min-width: 100%;
  animation: abd-marquee var(--abd-marquee-duration, 34s) linear infinite;
}

/* In the running strip the row has no width budget to respect, so logos are
   sized purely by height. Without this a wide logo hits `max-width: 100%`
   first and lands short — which is why the row looked uneven at 47-78px. */
.abd .abd-insurers__viewport--running .abd-insurers__item { flex: 0 0 auto; }
.abd .abd-insurers__viewport--running .abd-insurers__item img { max-width: none; }

.abd .abd-insurers__viewport--running:hover .abd-insurers__group,
.abd .abd-insurers__viewport--running:focus-within .abd-insurers__group {
  animation-play-state: paused;
}

@keyframes abd-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(100% + var(--abd-marquee-gap))); }
}

/* ==========================================================================
   9 · LEAD FORM         artboard Y 4662 → 4975 (1920 × 313) · sage
   copy block starts at 1059 · inputs 260 × 58.5, 2 × 2, 2px ink border
   H2 55b/1.0 · sub 20m · fields 18r · submit 22b on white
   ========================================================================== */
.abd .abd-lead {
  background: var(--abd-sage);
  padding-block: clamp(32px, 4.1667vw, 80px);
}

.abd .abd-lead__inner {
  width: min(925px, var(--abd-wrap));
  margin-inline: auto;
  display: grid;
  /* RTL: copy 367 on the right, the 536 field block on the left, 22 apart */
  grid-template-columns: minmax(0, 367fr) minmax(0, 536fr);
  gap: clamp(16px, 1.1458vw, 22px);
  align-items: center;
}

.abd .abd-lead__copy { text-align: right; }

.abd .abd-lead__title {
  font-size: var(--abd-fs-55);
  font-weight: 700;
  line-height: 1;
}

.abd .abd-lead__sub {
  font-size: var(--abd-fs-20);
  font-weight: 500;
  line-height: 1.2;
  margin-top: clamp(10px, .8333vw, 16px);
  text-wrap: pretty;
}

.abd .abd-lead__form { min-width: 0; }

/* --- native fallback form (used when no shortcode is supplied) --- */
.abd .abd-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, .7292vw, 14px);
}

.abd .abd-form__field { position: relative; }

.abd .abd-form__input {
  width: 100%;
  min-height: clamp(46px, 3.0469vw, 58.5px);
  padding-inline: clamp(12px, .8333vw, 16px);
  background: transparent;
  border: 2px solid var(--abd-ink);
  border-radius: 0;
  font-family: inherit;
  font-size: var(--abd-fs-18);
  font-weight: 400;
  line-height: 1.2;
  color: var(--abd-ink);
  transition: background-color .2s ease;
}

.abd .abd-form__input::placeholder { color: var(--abd-ink); opacity: 1; }
.abd .abd-form__input:focus { background: rgba(255, 255, 255, .45); outline: none; }
.abd .abd-form__input:focus-visible { outline: 2px solid var(--abd-ink); outline-offset: 2px; }

.abd .abd-form__submit {
  width: 100%;
  min-height: clamp(46px, 3.0469vw, 58.5px);
  background: var(--abd-white);
  color: var(--abd-ink);
  font-size: var(--abd-fs-22);
  font-weight: 700;
  border: 2px solid var(--abd-white);
}

.abd .abd-form__submit:hover,
.abd .abd-form__submit:focus-visible {
  background: var(--abd-ink);
  color: var(--abd-white);
  border-color: var(--abd-ink);
}

.abd .abd-form__msg { margin-top: 10px; font-size: var(--abd-fs-18); font-weight: 700; }
.abd .abd-form__msg:empty { display: none; }

/* Elementor Pro form dropped in via shortcode — bend it to the artboard */
.abd .abd-lead__form .elementor-form .elementor-field-group { margin-bottom: 0; }
.abd .abd-lead__form .elementor-form .elementor-field-textual {
  min-height: clamp(46px, 3.0469vw, 58.5px);
  background: transparent;
  border: 2px solid var(--abd-ink);
  border-radius: 0;
  font-family: inherit;
  font-size: var(--abd-fs-18);
  color: var(--abd-ink);
}
.abd .abd-lead__form .elementor-form .elementor-field-textual::placeholder { color: var(--abd-ink); opacity: 1; }
.abd .abd-lead__form .elementor-form .elementor-button {
  min-height: clamp(46px, 3.0469vw, 58.5px);
  background: var(--abd-white);
  color: var(--abd-ink);
  border-radius: 0;
  font-family: inherit;
  font-size: var(--abd-fs-22);
  font-weight: 700;
}
.abd .abd-lead__form .elementor-form .elementor-button:hover {
  background: var(--abd-ink);
  color: var(--abd-white);
}

/* ==========================================================================
   10 · KNOWLEDGE CENTRE  artboard Y 5079 → 5588 · H2 55b · 1517 wide block
   ========================================================================== */
.abd .abd-knowledge { padding-block: clamp(40px, 5.4688vw, 105px) clamp(30px, 2.7604vw, 53px); }

.abd .abd-knowledge__body {
  width: var(--abd-wrap-narrow);
  margin: clamp(26px, 2.8125vw, 54px) auto 0;
}

.abd .abd-knowledge__grid {
  display: grid;
  grid-template-columns: repeat(var(--abd-kc-cols, 4), minmax(0, 1fr));
  gap: var(--abd-kc-gap);
}

.abd .abd-knowledge__grid--carousel {
  grid-auto-flow: column;
  grid-template-columns: none;
  grid-auto-columns: calc(
      (100% - (var(--abd-kc-cols, 4) - 1) * var(--abd-kc-gap)) / var(--abd-kc-cols, 4));
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-bottom: 4px;
}

.abd .abd-knowledge__grid--carousel::-webkit-scrollbar { display: none; }

.abd .abd-card {
  display: flex;
  flex-direction: column;
  background: var(--abd-white);
  border: 1px solid rgba(0, 0, 0, .08);
  scroll-snap-align: start;
  transition: box-shadow .25s ease, transform .25s ease;
}

.abd a.abd-card:hover,
.abd a.abd-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .1);
}

.abd .abd-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--abd-placeholder);
}

.abd .abd-card__media img { width: 100%; height: 100%; object-fit: cover; }

.abd .abd-card__body { padding: clamp(12px, 1.0417vw, 20px); }

.abd a.abd-card,
.abd a.abd-card:hover { color: inherit; }

.abd .abd-card__title {
  font-size: var(--abd-fs-25);
  font-weight: 700;
  line-height: 1.15;
}

.abd .abd-card__excerpt {
  font-size: var(--abd-fs-18);
  font-weight: 400;
  line-height: 1.35;
  margin-top: 8px;
  color: var(--abd-muted);
}

.abd .abd-knowledge__free { font-size: var(--abd-fs-20); line-height: 1.5; }
.abd .abd-knowledge__free p + p { margin-top: 1em; }

/* the grey plate the XD uses as a stand-in for not-yet-supplied content */
.abd .abd-placeholder {
  width: var(--abd-wrap-narrow);
  margin-inline: auto;
  background: var(--abd-placeholder);
  aspect-ratio: 1517 / var(--abd-ph-h, 456);
}

/* ==========================================================================
   11 · FAQ              artboard Y 5681 → · H2 55b · 1517 wide block
   ========================================================================== */
.abd .abd-faq { padding-block: clamp(30px, 2.7604vw, 53px) clamp(48px, 4.1667vw, 80px); }

.abd .abd-faq__list {
  width: var(--abd-wrap-narrow);
  margin: clamp(26px, 2.8125vw, 54px) auto 0;
  border-top: 1px solid rgba(0, 0, 0, .12);
}

.abd .abd-faq__item { border-bottom: 1px solid rgba(0, 0, 0, .12); }

.abd .abd-faq__q {
  width: 100%;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: clamp(14px, 1.25vw, 24px) 0;
  background: none;
  border: 0;
  font-family: inherit;
  font-size: var(--abd-fs-25);
  font-weight: 700;
  line-height: 1.25;
  color: var(--abd-ink);
  text-align: right;
  cursor: pointer;
}

.abd .abd-faq__q:hover,
.abd .abd-faq__q:focus,
.abd .abd-faq__q:focus-visible,
.abd .abd-faq__q:active {
  background: none;
  border-radius: 0;
  color: #4d6a61;
}

.abd .abd-faq__sign {
  flex: none;
  position: relative;
  width: clamp(18px, 1.25vw, 24px);
  height: clamp(18px, 1.25vw, 24px);
  color: var(--abd-sage);
}

.abd .abd-faq__sign::before,
.abd .abd-faq__sign::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: 50%;
  height: var(--abd-line);
  margin-top: calc(var(--abd-line) / -2);
  background: currentColor;
  transition: transform .28s ease;
}

.abd .abd-faq__sign::after { transform: rotate(90deg); }
.abd .abd-faq__q[aria-expanded="true"] .abd-faq__sign::after { transform: rotate(0deg); }

.abd .abd-faq__a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .32s ease;
}

/* Keyed off the item, not a sibling of the button — the button sits inside an
   <h3> for document outline, so an adjacent-sibling selector would never match. */
.abd .abd-faq__item.is-open .abd-faq__a { grid-template-rows: 1fr; }

.abd .abd-faq__a > div { overflow: hidden; }

.abd .abd-faq__a-inner {
  padding-bottom: clamp(14px, 1.25vw, 24px);
  font-size: var(--abd-fs-20);
  font-weight: 400;
  line-height: 1.55;
}

.abd .abd-faq__a-inner p + p { margin-top: .8em; }
.abd .abd-faq__a-inner ul { list-style: disc; padding-inline-start: 1.4em; }
.abd .abd-faq__a-inner a { text-decoration: underline; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1400px) {
  .abd { --abd-wrap: min(1640px, 90vw); --abd-wrap-narrow: min(1517px, 90vw); }
  .abd .abd-doctors__grid { width: min(1094px, 82%); }
  .abd .abd-types__grid { width: min(1359px, 96%); }
  .abd .abd-hero__copy { max-width: 54vw; }
}

@media (max-width: 1180px) {
  /* Column counts are overridden as `grid-template-columns`, not as the
     custom property: the property arrives inline from the template, and an
     inline declaration would beat anything set here. */
  .abd .abd-types__grid { grid-template-columns: repeat(4, 1fr); }
  .abd .abd-why__list { grid-template-columns: repeat(3, 1fr); }
  .abd .abd-knowledge__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .abd .abd-knowledge__grid--carousel {
    grid-template-columns: none;
    grid-auto-columns: calc((100% - 2 * var(--abd-kc-gap)) / 3);
  }
  .abd .abd-doctors__grid { width: min(1094px, 94%); }
  .abd .abd-types__grid { width: min(1359px, 100%); }
  .abd .abd-why__inner { grid-template-columns: minmax(0, 1064fr) minmax(0, 420fr); }
}

@media (max-width: 1024px) {
  .abd .abd-doctors__grid { grid-template-columns: repeat(3, 1fr); }
  .abd .abd-types__grid { grid-template-columns: repeat(3, 1fr); }
  .abd .abd-knowledge__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .abd .abd-knowledge__grid--carousel {
    grid-template-columns: none;
    grid-auto-columns: calc((100% - var(--abd-kc-gap)) / 2);
  }
  .abd .abd-hero { align-items: flex-end; min-height: 78vw; }
  .abd .abd-hero__copy { max-width: 62vw; }
  .abd .abd-hero__scrim {
    background: linear-gradient(300deg,
                rgba(255, 255, 255, .92) 0%,
                rgba(255, 255, 255, .74) 34%,
                rgba(255, 255, 255, .18) 58%,
                rgba(255, 255, 255, 0) 74%);
  }
  .abd .abd-hero__inner { padding-block: 5vw; }
  .abd .abd-features__grid { grid-template-columns: repeat(2, 1fr); }
  .abd .abd-reviews__grid { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .abd .abd-why__list { grid-template-columns: repeat(2, 1fr); }
  .abd .abd-why__inner { grid-template-columns: 1fr; }
  .abd .abd-why__body, .abd .abd-why__media { grid-column: auto; grid-row: auto; }
  .abd .abd-why__media { order: -1; max-width: 420px; margin-inline: auto; align-self: auto; }
  .abd .abd-why__media-inner { position: static; translate: none; }
  .abd .abd-why__title { margin-top: clamp(20px, 4vw, 34px); }
  .abd .abd-lead__inner { grid-template-columns: 1fr; }
  .abd .abd-lead__copy { text-align: center; }
}

@media (max-width: 720px) {
  .abd .abd-doctors__grid { grid-template-columns: repeat(2, 1fr); }
  .abd .abd-types__grid { grid-template-columns: repeat(2, 1fr); }
  .abd .abd-knowledge__grid { grid-template-columns: minmax(0, 1fr); }
  .abd .abd-hero {
    align-items: stretch;
    min-height: 0;
  }
  .abd .abd-hero__media { position: relative; height: 62vw; }
  .abd .abd-hero__media img { object-position: center 22%; }
  .abd .abd-hero__scrim { display: none; }
  .abd .abd-hero__inner {
    position: absolute;
    inset-block-start: auto;
    inset-block-end: 0;
    inset-inline: 0;
  }
  .abd .abd-hero {
    display: block;
    background: var(--abd-white);
  }
  .abd .abd-hero__inner {
    position: static;
    padding-block: 22px 26px;
  }
  .abd .abd-hero__copy { max-width: none; text-align: right; }
  .abd .abd-hero__title { font-size: clamp(38px, 11.5vw, 62px); line-height: .88; }
  .abd .abd-hero__subtitle { letter-spacing: .18em; }
  .abd .abd-hero__cta { width: 100%; }
  .abd .abd-features__grid { grid-template-columns: 1fr; gap: 26px; }
  .abd .abd-knowledge__grid--carousel {
    grid-template-columns: none;
    grid-auto-columns: 80%;
  }
}

@media (max-width: 480px) {
  .abd .abd-why__list { grid-template-columns: minmax(0, 1fr); }
  .abd .abd-form__grid { grid-template-columns: 1fr; }
  .abd .abd-doctors__grid { gap: 10px; }
  .abd .abd-types__grid { gap: 16px; }
}

/* ---- motion & print ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .abd *,
  .abd *::before,
  .abd *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }

  /* A marquee cannot simply be sped up to nothing — drop the travel and hand
     back a strip the reader scrolls themselves. */
  .abd .abd-insurers__viewport--running { overflow-x: auto; }
  .abd .abd-insurers__running { width: auto; }
  .abd .abd-insurers__group { animation: none; }
  .abd .abd-insurers__group[aria-hidden="true"] { display: none; }
}

@media print {
  .abd .abd-hero__scrim,
  .abd .abd-insurers__nav,
  .abd .abd-insurers__group[aria-hidden="true"] { display: none; }
  .abd .abd-insurers__group { animation: none; }
  .abd .abd-faq__a { grid-template-rows: 1fr !important; }
}
