/* =========================================================================
   Al Duffa — Program Finder bar + Programs Explorer + Quick Links
   -------------------------------------------------------------------------
   Measurements match the Manus design (alduffa-permanent-site: .finder-bar,
   .programs, .tabs, .filters, .choose/.cat, .prog). Colours come from the
   theme's alduffa-tokens.css; the few neutral tints the theme doesn't have
   are defined once below. Width/side padding use the shared --wrap-max /
   --wrap-pad column so both widgets line up with the header logo.
========================================================================= */

.ald-finder,
.ald-programs,
.ald-quick,
.ald-numbers,
.ald-need {
  --ald-navy:      var(--c-ink, #092434);
  --ald-navy-soft: var(--c-ink-soft, #1D597C);
  --ald-gold:      var(--c-teal, #D4A73A);
  --ald-gold-deep: var(--c-teal-dark, #9C7A1E);
  --ald-teal:      var(--c-accent-2, #1F8A8A);
  --ald-teal-soft: #e1efec;
  --ald-bg:        var(--c-surface, #F7F4EE);
  --ald-bg-3:      #edf3f4;
  --ald-ink:       var(--c-ink, #092434);
  --ald-muted:     var(--c-body, #5C6B80);
  --ald-line:      #dce5e5;
  --ald-shadow:    0 20px 55px rgba(9, 36, 52, .10);
  font-family: var(--f-body, "DM Sans", sans-serif);
}

.ald-finder__wrap,
.ald-programs__wrap,
.ald-quick__wrap,
.ald-numbers__wrap,
.ald-need__wrap {
  width: 100%;
  max-width: var(--wrap-max, 1280px);
  margin-inline: auto;
  padding-inline: var(--wrap-pad, 20px);
}

/* ---------------------------------------------------------------- Finder */
.ald-finder {
  position: relative;
  z-index: 5;
  margin-top: -35px;           /* Elementor "Overlap" control overrides */
}
.ald-finder__title {
  margin: 0 0 20px;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.2vw, 2.6rem);
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--ald-navy, #0b2a3d);
}
.ald-finder__form {
  display: grid;
  grid-template-columns: 2fr 1.2fr 1.2fr auto;
  gap: 0;
  overflow: hidden;
  margin: 0;
  background: #fff;
  border: 1px solid #dce6e6;
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(9, 36, 52, .15);
}
.ald-finder__field {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 17px 20px;
  border-inline-end: 1px solid var(--ald-line);
  font-size: .66rem;
  line-height: 1.55;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ald-muted);
  cursor: text;
}
.ald-finder__field > span { display: block; }
/* Reset whatever the theme gives inputs/selects globally (heights, borders,
   backgrounds) so these read as plain text inside the bar, as designed. */
.ald-finder .ald-finder__field input,
.ald-finder .ald-finder__field select {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 4px 0 0;
  padding: 4px 0 0;
  border: 0;
  border-radius: 0;
  outline: none;
  box-shadow: none;
  background: transparent;
  color: var(--ald-ink);
  font: inherit;
  font-size: .94rem;
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.55;
  cursor: pointer;
}
.ald-finder .ald-finder__field input { cursor: text; }
.ald-finder .ald-finder__field input::placeholder { color: var(--ald-muted); opacity: .85; font-weight: 500; }
.ald-finder .ald-finder__field input::-webkit-search-decoration { -webkit-appearance: none; }
.ald-finder__field:focus-within { background: #fbfcfc; }
.ald-finder .ald-finder__submit {
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0 32px;
  background: var(--ald-navy);
  color: #fff;
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .18s ease;
}
.ald-finder .ald-finder__submit:hover { background: var(--ald-navy-soft); }
.ald-finder__submit:focus-visible,
.ald-finder__field:focus-within { outline: 3px solid var(--ald-gold); outline-offset: -3px; }

/* The bar overlaps the bottom of the Al Duffa hero. In the design the
   hero keeps empty space under its caption bar for this; our hero's
   caption/dots bar sits at the very bottom, so when a finder bar is on the
   page give that bar extra bottom padding equal to the overlap — the
   caption and dots stay visible above the finder. */
body:has(.ald-finder) .aidh-hero--corporate .aidh-hero__footbar { padding-bottom: calc(40px + 35px); }
@media (max-width: 1024px) {
  body:has(.ald-finder) .aidh-hero--corporate .aidh-hero__footbar { padding-bottom: calc(40px + 25px); }
}

@media (max-width: 820px) {
  .ald-finder__form { grid-template-columns: 1fr 1fr; }
  .ald-finder__field--keyword { grid-column: 1 / -1; }
  .ald-finder .ald-finder__submit { grid-column: 1 / -1; padding: 14px; }
}
@media (max-width: 600px) {
  .ald-finder__form { border-radius: 12px; }
  .ald-finder__field { padding: 14px; }
}

/* ------------------------------------------------------------- Programs */
.ald-programs {
  padding-block: 96px;
  background: var(--ald-bg);
  color: var(--ald-ink);
  font-size: 16px;
  line-height: 1.55;
}
.ald-programs *,
.ald-finder * { box-sizing: border-box; }

.ald-programs__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 42px;
}
.ald-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: .7rem;
  line-height: 1.55;
  letter-spacing: .15em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ald-gold-deep);
}
.ald-eyebrow::before {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ald-gold);
  box-shadow: 12px 0 0 -2px var(--ald-teal);
  margin-inline-end: 10px;
}
.ald-programs .ald-programs__title {
  max-width: 18ch;
  margin: 12px 0 0;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 3.35rem);
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--ald-ink);
  text-wrap: balance;
}
.ald-programs__lead {
  max-width: 56ch;
  margin: 0;
  line-height: 1.75;
  color: var(--ald-muted);
}

/* Tabs (also used for "Clear selection") */
.ald-programs__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 26px;
}
.ald-programs .ald-tab {
  margin: 0;
  padding: 10px 17px;
  border: 1px solid #d9e3e3;
  border-radius: 999px;
  background: #fff;
  color: var(--ald-ink);
  font: inherit;
  font-size: .83rem;
  font-weight: 600;
  line-height: 1.55;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.ald-programs .ald-tab:hover { border-color: var(--ald-navy); }
.ald-programs .ald-tab[aria-selected="true"] {
  background: var(--ald-navy);
  border-color: var(--ald-navy);
  color: #fff;
}
.ald-programs .ald-tab:focus-visible,
.ald-cat:focus-visible,
.ald-btn:focus-visible { outline: 3px solid var(--ald-gold); outline-offset: 2px; }

.ald-programs__filters-title {
  margin: 0 0 20px;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ald-navy);
}

/* Filters row */
.ald-programs__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 14px 0 20px;
  border-bottom: 1px solid var(--ald-line);
  font-size: .92rem;
  color: var(--ald-muted);
}
.ald-programs .ald-programs__search {
  width: auto;
  height: auto;
  min-width: 220px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--ald-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ald-ink);
  font: inherit;
  font-size: 1rem;
  box-shadow: none;
}
.ald-programs .ald-programs__mode {
  width: auto;
  height: auto;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid var(--ald-line);
  border-radius: 4px;
  background: var(--ald-bg);
  color: var(--ald-ink);
  font: inherit;
  font-size: 1rem;
  box-shadow: none;
}
.ald-programs .ald-programs__search:focus,
.ald-programs .ald-programs__mode:focus { outline: 3px solid var(--ald-gold); outline-offset: 2px; }
.ald-programs .ald-programs__clear { margin-inline-start: auto; }
.ald-programs__clear[hidden] { display: none !important; }

/* Grid */
.ald-programs__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

/* "Explore more" link under a capped 4-card teaser */
.ald-explore-more {
  grid-column: 1 / -1;
  justify-self: center;
  margin-top: 8px;
  font-weight: 600;
  color: var(--ald-navy);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .15s ease;
}
.ald-explore-more:hover,
.ald-explore-more:focus-visible { border-color: currentColor; }

/* Category cards (nothing selected yet) */
.ald-choose {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.ald-programs .ald-cat {
  position: relative;
  overflow: hidden;
  display: block;
  width: 100%;
  margin: 0;
  padding: 26px 22px;
  border: 1px solid var(--ald-line);
  border-radius: 14px;
  background: #fff;
  color: var(--ald-ink);
  font: inherit;
  text-align: start;
  cursor: pointer;
  transition: transform .15s, border-color .15s, box-shadow .15s;
}
.ald-programs .ald-cat:hover {
  transform: translateY(-3px);
  border-color: var(--ald-gold);
  box-shadow: var(--ald-shadow);
}
.ald-cat__ring {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 16px;
  border-radius: 50%;
  background: var(--ald-navy);
  color: #fff;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-size: 1rem;
  line-height: 1;
}
.ald-cat:nth-child(4n+2) .ald-cat__ring { background: var(--ald-navy-soft); }
.ald-cat:nth-child(4n+3) .ald-cat__ring { background: var(--ald-gold); color: #18252b; border-radius: 12px; }
.ald-cat:nth-child(4n+4) .ald-cat__ring { background: var(--ald-teal); border-radius: 12px; }
.ald-cat b {
  display: block;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: 1.32rem;
  line-height: 1.15;
  color: var(--ald-navy);
}
.ald-cat > span:not(.ald-cat__ring) {
  display: block;
  margin-top: 6px;
  font-size: .85rem;
  line-height: 1.5;
  color: var(--ald-muted);
}
.ald-cat small {
  display: block;
  margin-top: 14px;
  font-size: .83rem;
  font-weight: 600;
  color: var(--ald-navy-soft);
}

/* Program cards */
.ald-prog {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--ald-line);
  border-radius: 14px;
  background: #fff;
  transition: box-shadow .2s, transform .2s;
}
.ald-prog:hover { box-shadow: var(--ald-shadow); transform: translateY(-3px); }
.ald-prog::after {
  content: "";
  position: absolute;
  top: -30px;
  inset-inline-end: -30px;
  z-index: 0;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: var(--ald-bg-3);
}
.ald-prog > * { position: relative; z-index: 1; }
.ald-prog__media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ald-bg-3);
}
.ald-prog__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.ald-prog:hover .ald-prog__media img { transform: scale(1.06); }
.ald-prog__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 18px 20px 0;
}
.ald-pill {
  padding: 4px 9px;
  border-radius: 999px;
  font-size: .64rem;
  line-height: 1.55;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  background: var(--ald-bg-3);
  color: var(--ald-navy-soft);
}
.ald-pill--2 { background: var(--ald-navy); color: #fff; }
.ald-pill--3 { background: var(--ald-gold); color: #18252b; }
.ald-pill--4 { background: var(--ald-teal-soft); color: var(--ald-teal); }
.ald-mode {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  color: var(--ald-muted);
  white-space: nowrap;
}
.ald-mode::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ald-teal);
}
.ald-programs .ald-prog h3 {
  margin: 0;
  padding: 12px 20px 0;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: 1.45rem;
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--ald-navy);
  text-wrap: balance;
}
.ald-programs .ald-prog p {
  flex: 1;
  margin: 0;
  padding: 8px 20px 0;
  font-size: .88rem;
  line-height: 1.62;
  color: var(--ald-muted);
}
.ald-prog__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 18px;
  padding: 16px 20px;
  border-top: 1px solid #e4ebeb;
  background: #fafcfc;
  font-size: .78rem;
  color: var(--ald-muted);
}
.ald-prog__meta b { color: var(--ald-ink); font-weight: 600; }
.ald-prog__actions {
  display: flex;
  gap: 10px;
  padding: 0 20px 20px;
}
.ald-programs .ald-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border: 1.5px solid transparent;
  border-radius: 999px;
  font-size: .93rem;
  font-weight: 600;
  line-height: 1.55;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ald-programs .ald-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(9, 36, 52, .14); }
.ald-programs .ald-btn--outline { background: transparent; border-color: rgba(255, 255, 255, .6); color: var(--ald-ink); }
.ald-programs .ald-btn--navy { background: var(--ald-navy); color: #fff; }
.ald-programs .ald-btn--navy:hover { color: #fff; }

.ald-programs__note {
  margin: 28px 0 0;
  font-size: .9rem;
  color: var(--ald-muted);
}

/* Results pagination */
.ald-programs__pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 28px;
}
.ald-programs__pager:empty { margin-top: 0; }
.ald-programs .ald-page {
  min-width: 38px;
  height: 38px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid var(--ald-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ald-ink);
  font: inherit;
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.ald-programs .ald-page:hover:not(:disabled) { border-color: var(--ald-navy); }
.ald-programs .ald-page.is-active {
  background: var(--ald-navy);
  border-color: var(--ald-navy);
  color: #fff;
}
.ald-programs .ald-page:disabled { opacity: .35; cursor: default; }
.ald-programs .ald-page:focus-visible { outline: 3px solid var(--ald-gold); outline-offset: 2px; }

.ald-empty {
  grid-column: 1 / -1;
  padding: 40px;
  text-align: center;
  color: var(--ald-muted);
}

@media (max-width: 900px) {
  .ald-programs__grid { grid-template-columns: 1fr 1fr; }
  .ald-choose { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
  .ald-programs { padding-block: 72px; }
}
@media (max-width: 600px) {
  .ald-programs__head { margin-bottom: 30px; }
  .ald-programs .ald-programs__title { font-size: 2.2rem; }
}
@media (max-width: 560px) {
  .ald-programs__grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .ald-choose { grid-template-columns: 1fr; }
  .ald-programs .ald-programs__search { min-width: 0; flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ald-prog, .ald-programs .ald-cat, .ald-programs .ald-btn { transition: none; }
  .ald-prog:hover, .ald-programs .ald-cat:hover, .ald-programs .ald-btn:hover { transform: none; }
}

/* ---------------------------------------------------------- Quick links */
/* Design: .quick / .quick-grid / .quick a (managed-release values). */
.ald-quick {
  padding-block: 76px 0;       /* Elementor "Space above/below" override */
  line-height: 1.55;
}
.ald-quick *,
.ald-quick *::before { box-sizing: border-box; }
.ald-quick__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.ald-quick a.ald-quick__card {
  display: block;
  padding: 25px 22px 22px;
  border: 1px solid #e0e8e7;
  border-top: 3px solid var(--ald-navy);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(9, 36, 52, .02);
  color: var(--ald-ink);
  text-decoration: none;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.ald-quick a.ald-quick__card:hover {
  border-color: var(--ald-gold);
  box-shadow: var(--ald-shadow);
  transform: translateY(-2px);
}
.ald-quick a.ald-quick__card:focus-visible { outline: 3px solid var(--ald-gold); outline-offset: 2px; }
.ald-quick__ic {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #e7f0ef;
  color: var(--ald-teal);
}
.ald-quick__ic svg { width: 26px; height: 26px; }
.ald-quick__ic i { font-size: 22px; line-height: 1; }
.ald-quick .ald-quick__title {
  display: block;
  margin: 14px 0 6px;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: 1.38rem;
  line-height: 1.55;
  letter-spacing: -.02em;
  color: var(--ald-navy);
}
.ald-quick .ald-quick__text {
  display: block;
  font-size: .87rem;
  line-height: 1.55rem;        /* the design's span is inline in a 16px/1.55 line box */
  color: var(--ald-muted);
}
@media (max-width: 900px) {
  .ald-quick__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .ald-quick__grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------- Numbers */
/* Design: .numbers / .num-grid / .num (managed-release values). */
.ald-numbers {
  margin-top: 76px;            /* Elementor "Gap above the band" override */
  padding-block: 76px;
  background: var(--ald-bg-3);
  color: var(--ald-ink);
  font-size: 16px;
  line-height: 1.55;
}
.ald-numbers *,
.ald-numbers *::before { box-sizing: border-box; }
.ald-numbers__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 18px;
  border-block: 1px solid #ccdada;
}
.ald-num {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
  padding: 30px 20px;
  border-inline-end: 1px solid #ccdada;
}
.ald-num:last-child { border-inline-end: 0; }
/* Mark: the design's gold ring / teal rounded square, now holding an icon
   in the same colour as its outline. */
.ald-num__mark {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  height: 48px;
  border: 2px solid var(--ald-gold);
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--c-teal-light, #F5E9C6), transparent 70%);
  color: var(--ald-gold-deep);
}
.ald-num:nth-child(even) .ald-num__mark {
  border-color: var(--ald-teal);
  border-radius: 12px;
  background: radial-gradient(circle at 30% 30%, var(--ald-teal-soft), transparent 70%);
  color: var(--ald-teal);
}
.ald-num__mark svg { width: 22px; height: 22px; }
.ald-num__mark i { font-size: 19px; line-height: 1; }
.ald-numbers .ald-num b {
  display: block;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: 2.45rem;
  line-height: 1;
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums;
  color: var(--ald-navy);
  white-space: nowrap;
}
.ald-num > span:not(.ald-num__mark) {
  display: block;
  min-width: 0;
  margin-top: 8px;
  font-size: .84rem;
  line-height: 1.35;
  color: var(--ald-muted);
}
.ald-numbers .ald-numbers__note {
  margin: 12px 0 0;
  font-size: .75rem;
  line-height: 1.55;
  color: var(--ald-muted);
}
@media (max-width: 820px) {
  .ald-numbers { padding-block: 72px; }
  .ald-numbers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ald-num:nth-child(2n) { border-inline-end: 0; }
  .ald-num:not(:nth-last-child(-n+2)) { border-bottom: 1px solid #ccdada; }
}
@media (max-width: 600px) {
  .ald-num { padding: 20px 12px; gap: 10px; }
  .ald-num__mark { display: none; }
  /* DM Serif Display is wider than the design's fallback serif: a slightly
     smaller figure keeps number + label side by side in two columns
     without breaking words. */
  .ald-numbers .ald-num b { font-size: 2rem; }
}

/* ------------------------------------------------------- Find your need */
/* Design: .need / .need-box / .steps / .choices / .choice / .result. */
.ald-need {
  position: relative;
  overflow: hidden;
  padding-block: 96px;
  color: #fff;
  font-size: 16px;
  line-height: 1.55;
  background:
    linear-gradient(100deg, rgba(9, 36, 52, .98) 0%, rgba(9, 36, 52, .95) 50%, rgba(9, 36, 52, .80) 100%),
    var(--ald-need-photo, none) center / cover,
    var(--ald-navy);
}
.ald-need *,
.ald-need *::before,
.ald-need *::after { box-sizing: border-box; }
/* Decorative gold ring (bottom-left) and glow (top-right). */
.ald-need::before {
  content: "";
  position: absolute;
  inset-inline-start: -80px;
  bottom: -80px;
  width: 260px;
  height: 260px;
  border: 2px solid rgba(205, 171, 101, .42);
  border-radius: 50%;
  transform: rotate(12deg);
  pointer-events: none;
}
.ald-need::after {
  content: "";
  position: absolute;
  inset-inline-end: -120px;
  top: -120px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(208, 174, 105, .30), transparent 67%);
  pointer-events: none;
}
.ald-need__wrap {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
  gap: 68px;
  align-items: center;
}
.ald-need .ald-eyebrow { color: var(--ald-gold); }
.ald-need .ald-need__title {
  width: auto;
  margin: 0;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  line-height: 1.15;
  letter-spacing: -.025em;
  color: #fff;
  text-wrap: balance;
}
.ald-need__lead {
  max-width: 44ch;
  margin: 14px 0 0;
  line-height: 1.75;
  color: #C5CFDF;
}
.ald-need__checks {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
  font-size: .95rem;
  color: #C5CFDF;
}
.ald-need__checks li { margin: 0; padding: 0; }
.ald-need__checks li::before { content: "\2713\00a0"; }

/* Wizard card */
.ald-need__box {
  padding: 30px;
  border-radius: 18px;
  background: #fff;
  color: #1B2735;
  box-shadow: 0 32px 68px rgba(0, 0, 0, .25);
}
.ald-need__steps {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 20px;
}
.ald-need__steps span {
  position: relative;
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: #E6E1D4;
  transition: background .25s ease;
}
.ald-need__steps span.is-on { background: var(--ald-gold); }
.ald-need__steps span.is-on::after {
  content: "";
  position: absolute;
  inset-inline-end: -2px;
  top: -5px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--ald-gold);
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px var(--ald-gold);
}
.ald-need .ald-need__body h3 {
  margin: 0 0 14px;
  font-family: var(--f-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: 1.7rem;
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--ald-navy);
}
/* The heading receives focus after each step (for screen readers); it
   isn't interactive, so no focus ring. */
.ald-need .ald-need__body h3:focus { outline: none; }
.ald-need__choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.ald-need .ald-choice {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 16px 14px 16px 40px;
  border: 1.5px solid #DCE2EA;
  border-radius: 10px;
  background: #F7F9FC;
  color: #1B2735;
  font: inherit;
  text-align: start;
  line-height: 1.55;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
html[dir="rtl"] .ald-need .ald-choice { padding: 16px 40px 16px 14px; }
.ald-need .ald-choice::before {
  content: "";
  position: absolute;
  inset-inline-start: 14px;
  top: 18px;
  width: 14px;
  height: 14px;
  border: 2px solid #9FB0C8;
  border-radius: 50%;
  box-sizing: content-box;
}
.ald-need .ald-choice:hover,
.ald-need .ald-choice.is-selected { border-color: var(--ald-navy); background: #EEF3FA; }
.ald-need .ald-choice.is-selected::before {
  border-color: var(--ald-navy);
  background: var(--ald-navy);
  box-shadow: inset 0 0 0 3px #fff;
}
.ald-need .ald-choice:focus-visible { outline: 3px solid var(--ald-gold); outline-offset: 2px; }
.ald-choice b { display: block; font-size: .92rem; font-weight: 600; }
.ald-choice small { display: block; font-size: .77rem; line-height: 1.35; color: #5D6B7E; }
.ald-need__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 18px;
  font-size: .88rem;
  color: #5D6B7E;
}
.ald-need .ald-need__back {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ald-navy-soft);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

/* Result */
.ald-need__result {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #E6E1D4;
}
.ald-need__rec {
  margin-bottom: 10px;
  padding: 14px 16px;
  border-inline-start: 4px solid var(--ald-gold);
  border-radius: 4px;
  background: #F6F3EC;
}
.ald-need__rec b { display: block; color: var(--ald-navy); font-weight: 600; }
.ald-need__rec small { display: block; color: #5D6B7E; font-size: .83rem; }
.ald-need__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.ald-need .ald-need__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border: 1.5px solid transparent;
  border-radius: 999px;
  font: inherit;
  font-size: .93rem;
  font-weight: 600;
  line-height: 1.55;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ald-need .ald-need__btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(9, 36, 52, .14); }
.ald-need .ald-need__btn--gold { background: var(--ald-gold); color: #18252b; }
.ald-need .ald-need__btn--plain { background: transparent; color: var(--ald-navy); }
.ald-need .ald-need__btn:disabled { opacity: .6; cursor: default; transform: none; box-shadow: none; }

/* Inline "Talk to an advisor" mini-form */
.ald-need__advisor-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
.ald-need__advisor-form input {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid #D9DEE7;
  border-radius: 8px;
  background: #fff;
  color: var(--ald-navy);
  font: inherit;
  font-size: .93rem;
}
.ald-need__advisor-form input::placeholder { color: #8B96A6; }
.ald-need__advisor-form input:focus {
  outline: none;
  border-color: var(--ald-navy);
  box-shadow: 0 0 0 3px rgba(9, 36, 52, .08);
}
.ald-need__advisor-form input:disabled { background: #F3F4F6; color: #8B96A6; }
.ald-need__advisor-status {
  margin: 4px 0 0;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: .88rem;
  line-height: 1.5;
}
.ald-need__advisor-status.is-success { background: #EAF6EE; color: #1E6B3C; }
.ald-need__advisor-status.is-error { background: #FBEAEA; color: #A23131; }

@media (max-width: 860px) {
  .ald-need__wrap { grid-template-columns: minmax(0, 1fr); }
  .ald-need__choices { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .ald-need { padding-block: 72px; }
}
@media (max-width: 600px) {
  .ald-need__wrap { gap: 34px; }
  .ald-need__box { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ald-need .ald-need__btn, .ald-need__steps span { transition: none; }
  .ald-need .ald-need__btn:hover { transform: none; }
}

/* ------------------------------------------------ Scroll reveal (shared) */
/* Hidden only once the script has marked the page ready, so content never
   stays invisible if JavaScript fails. */
.ald-js [data-ald-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .65s ease, transform .65s ease;
}
.ald-js [data-ald-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .ald-js [data-ald-reveal] { opacity: 1; transform: none; transition: none; }
  .ald-quick a.ald-quick__card, .ald-quick a.ald-quick__card:hover { transition: none; transform: none; }
}
body.elementor-editor-active [data-ald-reveal] { opacity: 1 !important; transform: none !important; }
