/* ==========================================================================
   ILM Day Nurseries — Early Years page (/early-years/)
   Scoped to body.ilm-early-years and loaded only on that page.
   Depends on the tokens and atoms in ilm-ui.css (loaded first).
   ========================================================================== */

/* ------------------------------------------------------ 01 full-width shell */
/* JupiterX caps the page body at 1100px inside a 1140px Bootstrap row. The
   Elementor sections stretch themselves relative to that cap, so the bands
   ended 160px short on the right and every section sat left of centre. */
body.ilm-early-years .jupiterx-content,
body.ilm-early-years .jupiterx-primary,
body.ilm-early-years .jupiterx-post,
body.ilm-early-years .jupiterx-post-body,
body.ilm-early-years .jupiterx-post-content {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

body.ilm-early-years .jupiterx-main-content > .container,
body.ilm-early-years .jupiterx-main-content > .container > .row,
body.ilm-early-years .jupiterx-main .jupiterx-primary.col-lg-12 {
  max-width: none;
  width: 100%;
  margin: 0;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.ilm-early-years .jupiterx-post-content > .elementor { width: 100%; }

/* ------------------------------------------------------------ 02 hero band */
body.ilm-early-years .elementor-top-section.elementor-element-485c0eb {
  background:
    radial-gradient(120% 150% at 84% -20%, rgba(46, 133, 174, .55) 0%, rgba(46, 133, 174, 0) 58%),
    linear-gradient(158deg, #0c4160 0%, #0a3a57 52%, #082b41 100%) !important;
  padding: clamp(38px, 4.4vw, 62px) 0 clamp(46px, 5.4vw, 78px) !important;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* Soft dot field, faded out towards the edges */
body.ilm-early-years .elementor-element-485c0eb::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .16) 1.15px, transparent 1.3px);
  background-size: 24px 24px;
  -webkit-mask-image: radial-gradient(64% 118% at 50% 6%, #000 12%, transparent 76%);
  mask-image: radial-gradient(64% 118% at 50% 6%, #000 12%, transparent 76%);
  opacity: .55;
  pointer-events: none;
  z-index: 0;
}

body.ilm-early-years .elementor-element-485c0eb > .elementor-container {
  position: relative;
  z-index: 1;
  max-width: 800px !important;
  padding: 0 24px;
  flex-direction: column;
  align-items: center;
}

body.ilm-early-years .elementor-element-485c0eb .elementor-column { width: 100% !important; }

body.ilm-early-years .elementor-element-94101b4 > .elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 !important;
}

body.ilm-early-years .elementor-element-485c0eb .elementor-widget-container { text-align: center; }

.ilm-ey-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 16px;
  padding: 6px 15px 6px 12px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  color: #dcecf7;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
  backdrop-filter: blur(4px);
}

.ilm-ey-hero__eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ilm-sun);
  box-shadow: 0 0 0 3px rgba(242, 181, 68, .22);
}

body.ilm-early-years .elementor-element-485c0eb .elementor-heading-title {
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(2.3rem, 1.45rem + 2.7vw, 3.5rem) !important;
  font-weight: 700;
  letter-spacing: -.028em;
  line-height: 1.05;
  text-align: center;
}

.ilm-ey-hero__lede {
  max-width: 56ch;
  margin: 18px auto 0;
  color: #cfe2ee !important;
  font-size: clamp(1.02rem, .97rem + .28vw, 1.16rem);
  line-height: 1.68;
  text-wrap: pretty;
}

.ilm-ey-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}

/* On the dark hero a navy button disappears, so the primary action flips to
   a solid white pill and the phone action becomes the outline. */
body.ilm-early-years .ilm-ey-hero__actions .ilm-btn--primary {
  --btn-bg: #fff;
  --btn-fg: var(--ilm-navy);
  --btn-bd: #fff;
  color: var(--ilm-navy) !important;
  box-shadow: 0 14px 28px -16px rgba(0, 0, 0, .8);
}

body.ilm-early-years .ilm-ey-hero__actions .ilm-btn--primary:hover {
  --btn-bg: var(--ilm-sky);
  --btn-bd: var(--ilm-sky);
  color: var(--ilm-navy-deep) !important;
}

.ilm-btn--outline {
  --btn-bg: rgba(255, 255, 255, .12);
  --btn-fg: #fff;
  --btn-bd: rgba(255, 255, 255, .55);
  box-shadow: none;
  backdrop-filter: blur(4px);
}

.ilm-btn--outline:hover {
  --btn-bg: rgba(255, 255, 255, .16);
  --btn-bd: rgba(255, 255, 255, .72);
  box-shadow: 0 12px 24px -14px rgba(0, 0, 0, .7);
}

.ilm-ey-hero__trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 28px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
  color: #b7d2e3;
  font-size: .9rem;
  font-weight: 500;
}

.ilm-ey-hero__trust li { display: inline-flex; align-items: center; gap: 7px; }
.ilm-ey-hero__trust svg { width: 16px; height: 16px; flex: none; color: #8fd3b0; }

/* --------------------------------------------------------- 03 section rhythm */
/* One vertical scale for the whole page. Every band takes --ey-y top and
   bottom; the two halves of the intro/approach pair take --ey-y2 so they read
   as one block. Before this the page ran 84/30, 30/84, 76/34, 0/76, 64/64 and
   68/68 — six different gaps, and the white cards butted straight against the
   navy band above them. */
body.ilm-early-years {
  --ey-y: clamp(56px, 6vw, 88px);
  --ey-y2: clamp(28px, 3vw, 44px);
}

body.ilm-early-years .elementor-top-section { position: relative; }

body.ilm-early-years .elementor-top-section.elementor-element-7015c43 {
  padding: var(--ey-y) 0 var(--ey-y2) !important;
}

body.ilm-early-years .elementor-top-section.elementor-element-4880f0a {
  padding: var(--ey-y2) 0 var(--ey-y) !important;
}

body.ilm-early-years .elementor-top-section.elementor-element-a496515 {
  padding: var(--ey-y) 0 clamp(44px, 5vw, 72px) !important;
}

body.ilm-early-years .elementor-top-section.elementor-element-f598038 {
  padding: clamp(40px, 4.4vw, 64px) 0 var(--ey-y) !important;
}

body.ilm-early-years .elementor-top-section.elementor-element-7f059f1 {
  padding: var(--ey-y) 0 !important;
}

body.ilm-early-years .elementor-top-section.elementor-element-81763c7 {
  margin-top: 0 !important;
  padding: var(--ey-y) 0 !important;
}

/* One content edge. The template padded these columns by 15, 30 and 32px, so
   body copy started at x=135, 150 and 152 while the intro blocks started at
   120 — three different left edges down one page. The cards keep their own
   inner padding; only the column wrappers are zeroed. Below 1248px the
   container is narrower than 1200 and that padding is the only page gutter, so
   the reset only applies where the container is centred with room to spare. */
@media (min-width: 1248px) {
  body.ilm-early-years .elementor-element-a496515 > .elementor-container > .elementor-column > .elementor-widget-wrap,
  body.ilm-early-years .elementor-element-7f059f1 > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding: 0 !important;
  }

  /* The global "form inside a navy band gets a white card" rule also matches
     this section's full-width column, because the form is a descendant of it.
     That put a 1200px white card inside the navy band, and then the form's own
     white card inside that — a card on a card, with the band reduced to a
     120px border. Here the band is the surface and only the form column is a
     card. */
  body.ilm-early-years .elementor-element-81763c7 > .elementor-container > .elementor-column.elementor-element-a5ad185 > .elementor-widget-wrap {
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
}

/* ------------------------------------------------ 04 intro / approach blocks */
body.ilm-early-years .elementor-element-7015c43 > .elementor-container,
body.ilm-early-years .elementor-element-4880f0a > .elementor-container {
  max-width: var(--ilm-container);
  gap: clamp(28px, 4vw, 68px);
  align-items: center;
}

body.ilm-early-years .elementor-element-7015c43 .elementor-column,
body.ilm-early-years .elementor-element-4880f0a .elementor-column {
  width: 50% !important;
}

body.ilm-early-years .elementor-element-7015c43 .elementor-column > .elementor-widget-wrap,
body.ilm-early-years .elementor-element-4880f0a .elementor-column > .elementor-widget-wrap {
  padding: 0 !important;
}

body.ilm-early-years .elementor-element-6ab6708 .elementor-heading-title,
body.ilm-early-years .elementor-element-c92b7c4 .elementor-heading-title {
  margin: 0 0 16px !important;
  font-size: var(--ilm-fs-h2) !important;
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -.022em;
  color: var(--ilm-ink);
  max-width: 20em;
}

body.ilm-early-years .elementor-element-922dd28 .elementor-widget-container,
body.ilm-early-years .elementor-element-6adc37b .elementor-widget-container {
  max-width: 48ch;
}

body.ilm-early-years .elementor-element-922dd28 p,
body.ilm-early-years .elementor-element-6adc37b p {
  margin: 0 0 1.05em;
  color: var(--ilm-body);
  font-size: 1.0313rem;
  line-height: 1.72;
  text-wrap: pretty;
}

body.ilm-early-years .elementor-element-922dd28 p:last-child,
body.ilm-early-years .elementor-element-6adc37b p:last-child { margin-bottom: 0; }

body.ilm-early-years .elementor-element-922dd28 strong,
body.ilm-early-years .elementor-element-6adc37b strong {
  color: var(--ilm-ink);
  font-weight: 600;
}

/* Checklist in the "approach" block */
body.ilm-early-years .elementor-element-6adc37b ul {
  margin: 18px 0 22px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 11px;
}

body.ilm-early-years .elementor-element-6adc37b li {
  position: relative;
  padding-left: 32px;
  color: var(--ilm-ink);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
}

body.ilm-early-years .elementor-element-6adc37b li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .1em;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: #e2f1ea url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c7a5b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
}

/* Illustrations: a soft glow behind the artwork keeps it from floating.
   Elementor 3.3x renders the image widget without a .elementor-widget-container,
   so the glow hangs off the widget element itself. */
body.ilm-early-years .elementor-element-495dac0,
body.ilm-early-years .elementor-element-0971ba3 {
  position: relative;
}

body.ilm-early-years .elementor-element-495dac0::before,
body.ilm-early-years .elementor-element-0971ba3::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(88%, 420px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle at 50% 44%, #e8f2fb 0%, #f2f8fd 54%, #fff 76%);
  z-index: 0;
}

body.ilm-early-years .elementor-element-495dac0 img,
body.ilm-early-years .elementor-element-0971ba3 img {
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: 460px;
  height: auto !important;
  display: block;
}

/* Push each illustration to its outer grid edge: right in the first block,
   left in the mirrored one. */
body.ilm-early-years .elementor-element-495dac0 img { margin: 0 0 0 auto; }
body.ilm-early-years .elementor-element-0971ba3 img { margin: 0 auto 0 0; }

/* ------------------------------------------------------------- 05 buttons */
body.ilm-early-years .elementor-widget-button .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 14px 26px !important;
  border: 0;
  border-radius: 999px !important;
  background: var(--ilm-navy);
  color: #fff !important;
  font-family: var(--ilm-font);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none !important;
  box-shadow: 0 10px 22px -13px rgba(8, 43, 65, .8);
  transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.ilm-early-years .elementor-widget-button .elementor-button-text { order: 1; }

body.ilm-early-years .elementor-widget-button .elementor-button::after {
  content: "\2192";
  order: 2;
  font-size: 1.05em;
  line-height: 1;
  transition: transform .18s ease;
}

body.ilm-early-years .elementor-widget-button .elementor-button:hover {
  background: var(--ilm-navy-deep);
  transform: translateY(-1px);
  box-shadow: 0 16px 26px -14px rgba(8, 43, 65, .8);
}

body.ilm-early-years .elementor-widget-button .elementor-button:hover::after { transform: translateX(3px); }
body.ilm-early-years .elementor-widget-button .elementor-button:active { transform: translateY(0); }

body.ilm-early-years .elementor-element-2620f17 { margin-top: 26px; }

/* -------------------------------------------------------- 06 EYFS framework */
body.ilm-early-years .elementor-element-a496515 {
  background:
    radial-gradient(90% 140% at 12% -30%, rgba(46, 133, 174, .45) 0%, rgba(46, 133, 174, 0) 62%),
    linear-gradient(158deg, #0c4160 0%, #0a3a57 60%, #0a3a57 100%) !important;
}

body.ilm-early-years .elementor-element-a496515 > .elementor-container,
body.ilm-early-years .elementor-element-7f059f1 > .elementor-container,
body.ilm-early-years .elementor-element-81763c7 > .elementor-container {
  max-width: var(--ilm-container);
}

body.ilm-early-years .elementor-element-239b514 .elementor-heading-title {
  margin: 0 0 14px !important;
  color: #fff !important;
  font-size: var(--ilm-fs-h2) !important;
  line-height: 1.15;
  letter-spacing: -.022em;
  text-align: center;
}

body.ilm-early-years .elementor-element-f167ad9 .elementor-widget-container {
  max-width: 66ch;
  margin: 0 auto;
  text-align: center;
}

body.ilm-early-years .elementor-element-f167ad9 p {
  margin: 0;
  color: #c9dfec !important;
  font-size: 1.0313rem;
  line-height: 1.7;
  text-wrap: pretty;
}

body.ilm-early-years .elementor-element-f167ad9 strong { color: #fff; font-weight: 600; }

/* ------------------------------------------------ 07 prime / specific areas */
body.ilm-early-years .elementor-element-f598038 {
  background: var(--ilm-sky-soft) !important;
}

body.ilm-early-years .elementor-element-f598038 > .elementor-container {
  gap: clamp(18px, 2.4vw, 30px);
  align-items: stretch;
}

body.ilm-early-years .elementor-element-f598038 > .elementor-container > .elementor-column {
  width: calc(50% - 15px) !important;
}

body.ilm-early-years .elementor-element-f598038 > .elementor-container > .elementor-column > .elementor-widget-wrap {
  height: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--ilm-line);
  border-radius: var(--ilm-radius-lg);
  padding: clamp(22px, 2.4vw, 34px);
  box-shadow: var(--ilm-shadow-sm);
}

/* Header row of each card: icon chip + title */
body.ilm-early-years .elementor-element-3e42865 .elementor-icon-list-items,
body.ilm-early-years .elementor-element-6c47eb6 .elementor-icon-list-items { margin: 0; }

body.ilm-early-years .elementor-element-3e42865 .elementor-icon-list-item,
body.ilm-early-years .elementor-element-6c47eb6 .elementor-icon-list-item {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  padding: 0;
}

body.ilm-early-years .elementor-element-3e42865 .elementor-icon-list-icon,
body.ilm-early-years .elementor-element-6c47eb6 .elementor-icon-list-icon {
  flex: none;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--ilm-sky);
  color: var(--ilm-navy);
}

body.ilm-early-years .elementor-element-3e42865 .elementor-icon-list-icon svg,
body.ilm-early-years .elementor-element-6c47eb6 .elementor-icon-list-icon svg {
  width: 24px;
  height: 24px;
}

/* Solid Elementor icons inherit the chip colour; our own line icons keep their stroke. */
body.ilm-early-years .elementor-element-3e42865 .elementor-icon-list-icon svg:not(.ilm-ey-icon),
body.ilm-early-years .elementor-element-6c47eb6 .elementor-icon-list-icon svg:not(.ilm-ey-icon) { fill: currentColor; }

body.ilm-early-years .ilm-ey-icon { fill: none !important; stroke: currentColor; }

body.ilm-early-years .elementor-element-3e42865 .elementor-icon-list-text,
body.ilm-early-years .elementor-element-6c47eb6 .elementor-icon-list-text {
  padding: 0;
  color: var(--ilm-ink);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -.015em;
  line-height: 1.25;
}

/* Area list */
body.ilm-early-years .elementor-element-3ecbf04 p,
body.ilm-early-years .elementor-element-5bfc9f6 p {
  margin: 0 0 .9em;
  color: var(--ilm-body);
  font-size: .9844rem;
  line-height: 1.66;
  text-wrap: pretty;
}

body.ilm-early-years .elementor-element-3ecbf04 p:last-child,
body.ilm-early-years .elementor-element-5bfc9f6 p:last-child { margin-bottom: 0; }

body.ilm-early-years .elementor-element-3ecbf04 > .elementor-widget-container > p:first-child,
body.ilm-early-years .elementor-element-5bfc9f6 > .elementor-widget-container > p:first-child {
  margin-bottom: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--ilm-line);
  color: #4a6272;
}

.ilm-ey-area__title {
  margin: 24px 0 5px;
  padding: 0;
  color: var(--ilm-navy);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -.005em;
  line-height: 1.4;
}

.ilm-ey-area__title:first-of-type { margin-top: 0; }

/* Seven areas over two cards is 3 + 4, so the shorter card used to end 157px
   above the taller one and left a white hole under it. Each area is now its own
   block (wrapped in ilm_ui_early_years_widget) and the two lists fill the card
   height with equal rows, so both cards finish on the same baseline. */
@media (min-width: 1025px) {
  body.ilm-early-years .elementor-element-f598038 > .elementor-container > .elementor-column > .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
  }

  body.ilm-early-years .elementor-element-3ecbf04,
  body.ilm-early-years .elementor-element-5bfc9f6 {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
  }

  body.ilm-early-years .elementor-element-3ecbf04 > p:first-child,
  body.ilm-early-years .elementor-element-5bfc9f6 > p:first-child { flex: none; }

  body.ilm-early-years .ilm-ey-area {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  body.ilm-early-years .ilm-ey-area + .ilm-ey-area {
    border-top: 1px solid var(--ilm-line);
    padding-top: 16px;
  }
}

/* ------------------------------------------------------------ 08 locations */
body.ilm-early-years .elementor-element-35944cc { max-width: 260px; margin: 0 auto 4px; }

body.ilm-early-years .elementor-element-35944cc img {
  width: 100% !important;
  height: auto !important;
  display: block;
  margin: 0 auto;
}

body.ilm-early-years .elementor-element-1704074 .elementor-heading-title {
  margin: 0 0 12px !important;
  font-size: var(--ilm-fs-h2) !important;
  line-height: 1.15;
  letter-spacing: -.022em;
  text-align: center;
  color: var(--ilm-ink);
}

body.ilm-early-years .elementor-element-20bc39b .elementor-widget-container {
  max-width: 60ch;
  margin: 0 auto;
  text-align: center;
}

body.ilm-early-years .elementor-element-20bc39b p {
  margin: 0 0 1em;
  color: var(--ilm-body);
  font-size: 1.0313rem;
  line-height: 1.7;
}

body.ilm-early-years .elementor-element-20bc39b p:last-child {
  margin: 0;
  color: var(--ilm-muted);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.ilm-early-years .elementor-element-78df0fc > .elementor-container {
  max-width: var(--ilm-container);
  gap: 18px;
  margin-top: 12px;
  align-items: stretch;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-inner-column {
  width: calc(25% - 13.5px) !important;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-inner-column > .elementor-widget-wrap {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  padding: 20px 20px 18px;
  background: #fff;
  border: 1px solid #d7e4ef;
  border-radius: var(--ilm-radius);
  box-shadow: var(--ilm-shadow-xs);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-inner-column > .elementor-widget-wrap:hover {
  transform: translateY(-3px);
  border-color: #cfe0ec;
  box-shadow: var(--ilm-shadow-md);
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-items,
body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item { margin: 0; }

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item { padding: 0 0 9px; }
body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:last-child { padding-bottom: 0; }

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item a {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 32px;
  padding: 2px 0;
  text-decoration: none;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-icon {
  flex: none;
  width: 18px;
  min-width: 18px;
  color: var(--ilm-navy);
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-icon svg { width: 15px; height: 15px; fill: currentColor; }

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:first-child .elementor-icon-list-text {
  color: var(--ilm-ink);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.012em;
}

/* The pin gets a tinted chip so the row of cards carries some weight on the
   page instead of reading as four lines of small text. */
body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:first-child .elementor-icon-list-icon {
  width: 34px;
  min-width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--ilm-sky);
  margin-right: 2px;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:first-child .elementor-icon-list-icon svg {
  width: 15px;
  height: 15px;
}

/* Reserve the same slot for the phone row, so the numbers line up with the
   nursery names instead of sitting 16px to their left. */
body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:last-child .elementor-icon-list-icon {
  width: 34px;
  min-width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--ilm-sky-soft);
  color: var(--ilm-navy);
  margin-right: 2px;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:last-child .elementor-icon-list-icon svg {
  width: 13px;
  height: 13px;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:first-child a { align-items: center; }

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:last-child .elementor-icon-list-text {
  color: var(--ilm-navy);
  font-size: .9375rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
}

body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:last-child a:hover .elementor-icon-list-text { text-decoration: underline; }

/* --------------------------------------------------------------- 09 contact */
body.ilm-early-years .elementor-element-81763c7 {
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(46, 133, 174, .4) 0%, rgba(46, 133, 174, 0) 55%),
    linear-gradient(160deg, #0c4160 0%, #0a3a57 55%, #082b41 100%) !important;
}

body.ilm-early-years .elementor-element-596d138 > .elementor-container {
  gap: clamp(28px, 3.4vw, 56px);
  align-items: center;
  max-width: var(--ilm-container);
}

/* The template stacks the heading, the lede and a two-column row, so the copy
   sits above an almost empty left half while the form runs the full height.
   Hoisting the columns into one grid puts heading + lede + contact rows in the
   left column and the form beside them, which is what the section reads as. */
@media (min-width: 861px) {
  body.ilm-early-years .elementor-element-a5ad185 > .elementor-widget-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
    grid-template-rows: auto auto auto;
    column-gap: clamp(32px, 3.6vw, 56px);
    align-items: start;
  }

  body.ilm-early-years .elementor-element-51de639 { grid-column: 1; grid-row: 1; }
  body.ilm-early-years .elementor-element-e219506 { grid-column: 1; grid-row: 2; }

  body.ilm-early-years .elementor-element-596d138,
  body.ilm-early-years .elementor-element-596d138 > .elementor-container { display: contents; }

  body.ilm-early-years .elementor-element-3883679 {
    grid-column: 1;
    grid-row: 3;
    width: auto !important;
    max-width: none !important;
  }

  body.ilm-early-years .elementor-element-0420da3 {
    grid-column: 2;
    grid-row: 1 / span 3;
    width: auto !important;
    max-width: none !important;
  }

  body.ilm-early-years .elementor-element-3883679 > .elementor-widget-wrap { padding: 0 !important; }
  body.ilm-early-years .elementor-element-0420da3 { align-self: center; }
}

body.ilm-early-years .elementor-element-3883679 > .elementor-widget-wrap { padding: 0 !important; }

body.ilm-early-years .elementor-element-51de639 .elementor-heading-title {
  margin: 0 0 14px !important;
  color: #fff !important;
  font-size: var(--ilm-fs-h2) !important;
  line-height: 1.15;
  letter-spacing: -.022em;
  text-align: left;
}

body.ilm-early-years .elementor-element-e219506 .elementor-widget-container { max-width: 46ch; }

body.ilm-early-years .elementor-element-e219506 p {
  margin: 0;
  color: #c9dfec !important;
  font-size: 1.0313rem;
  line-height: 1.7;
  text-align: left;
  text-wrap: pretty;
}

/* Contact rows */
body.ilm-early-years .elementor-element-5b592f0,
body.ilm-early-years .elementor-element-a8c0c51,
body.ilm-early-years .elementor-element-4bf33bf {
  margin-top: 18px;
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-icon {
  flex: none;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .14);
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-icon svg,
body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-icon i {
  width: 18px;
  height: 18px;
  margin: 0 !important;
  color: #cfe2ee !important;
  fill: #cfe2ee !important;
  font-size: 18px;
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-content { min-width: 0; }

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-title {
  margin: 0 0 2px !important;
  color: #9fc0d3 !important;
  font-family: var(--ilm-font);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-title a { color: inherit !important; }

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-description {
  margin: 0;
  color: #fff !important;
  font-size: 1.0313rem;
  font-weight: 500;
  line-height: 1.5;
  word-break: break-word;
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-description a {
  color: #fff !important;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, .45);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: text-decoration-color .16s ease;
}

body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-description a:hover {
  text-decoration-color: #fff;
}

/* Form card */
body.ilm-early-years .elementor-element-0420da3 > .elementor-widget-wrap {
  box-sizing: border-box;
  padding: clamp(20px, 2.2vw, 30px) !important;
  background: #fff;
  border-radius: var(--ilm-radius-lg);
  box-shadow: 0 30px 60px -32px rgba(0, 0, 0, .6);
}

body.ilm-early-years .elementor-form .elementor-field-group { position: relative; }

body.ilm-early-years .elementor-form .ilm-field__label {
  margin: 0;
  line-height: 1.2;
}

body.ilm-early-years .elementor-form .elementor-field-textual,
body.ilm-early-years .elementor-form textarea {
  background: #fbfdff;
  border-color: #dbe6ee;
}

/* The promoted label sits 9px inside the field and never floats, so the value
   has to start below it. At 14px of top padding a typed name landed on top of
   the label by 11px; 26px clears it and leaves a 56px field. */
body.ilm-early-years .elementor-field-group.ilm-field .elementor-field-textual:not(textarea) {
  padding-top: 26px;
  padding-bottom: 8px;
}

body.ilm-early-years .elementor-form .elementor-button {
  min-height: 54px;
  border-radius: 12px !important;
  background: var(--ilm-navy);
  color: #fff !important;
  font-size: 1rem;
  font-weight: 600;
  box-shadow: 0 12px 24px -14px rgba(8, 43, 65, .8);
}

body.ilm-early-years .elementor-form .elementor-button:hover { background: var(--ilm-navy-deep); }
body.ilm-early-years .elementor-form .elementor-button::after { content: none !important; }

/* Keeps the global #5c7382 (5:1 on white); the page used to override it with
   #6c8494, which measured 3.9:1 at 13px. */
body.ilm-early-years .ilm-form-note { margin-top: 10px; }

/* Required-field legend, injected in front of the field grid */
body.ilm-early-years .ilm-ey-form__req {
  order: 0;
  flex: 0 0 100%;
  margin: 0 0 4px;
  color: #5c7382;
  font-size: .8125rem;
  line-height: 1.4;
  text-align: left;
}

body.ilm-early-years .ilm-ey-form__req span { color: #c0452f; font-weight: 600; }

/* Phone links in the utility bar are 18px tall by default — too small to tap */
body.ilm-early-years .ilm-topbar__tel {
  min-height: 40px;
  padding: 0 2px;
}

/* ---------------------------------------------------------------- 10 footer */
body.ilm-early-years .elementor-element-2202e22 .elementor-icon-list-item a { align-items: flex-start; }

@media (max-width: 767px) {
  body.ilm-early-years .elementor-element-2202e22 .elementor-icon-list-item a { min-height: 34px; padding: 5px 0; }
}
body.ilm-early-years .elementor-element-2202e22 .elementor-icon-list-icon { margin-top: 2px; }

body.ilm-early-years .elementor-element-2202e22 .elementor-widget-text-editor p { max-width: 30ch; }

/* Elementor sets text-transform on this heading, which title-cases the
   sentence for no reason. */
body.ilm-early-years .elementor-element-71351bd .elementor-heading-title { text-transform: none !important; }

body.ilm-early-years .elementor-element-38e2df7 .elementor-widget-text-editor p,
body.ilm-early-years .elementor-element-38e2df7 .elementor-widget-text-editor strong { color: #bdd5e4; }

body.ilm-early-years .elementor-element-38e2df7 .elementor-widget-text-editor a { color: #dbeaf4; }

body.ilm-early-years .elementor-top-section.elementor-element-38e2df7 { padding: 20px 0 24px; }

/* The legal row sits on the very last pixel of the page otherwise */
body.ilm-early-years .ilm-legal { margin-bottom: 2px; }

/* The sticky call bar is fixed over the footer: reserve room for it */
@media (max-width: 767px) {
  body.ilm-early-years.ilm-mobile-bar-on .jupiterx-footer { padding-bottom: 76px; }
  body.ilm-early-years .elementor-element-38e2df7 { padding-bottom: 22px !important; }
}

/* ------------------------------------------------------------ 11 responsive */
@media (max-width: 1024px) {
  body.ilm-early-years .elementor-element-f598038 > .elementor-container > .elementor-column {
    width: 100% !important;
  }

  /* Elementor adds a 20px gutter to the inner section's container below
     1025px, on top of the band's own padding, so the form card and the contact
     rows sat 20px right of the heading they belong to. */
  body.ilm-early-years .elementor-element-596d138 > .elementor-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ilm-early-years .elementor-element-78df0fc .elementor-inner-column {
    width: calc(50% - 9px) !important;
  }

  body.ilm-early-years .elementor-element-596d138 > .elementor-container { gap: 30px; }

  body.ilm-early-years .elementor-element-3883679 > .elementor-widget-wrap { padding: 0 0 8px !important; }
}

@media (max-width: 860px) {
  body.ilm-early-years .elementor-element-7015c43 > .elementor-container,
  body.ilm-early-years .elementor-element-4880f0a > .elementor-container {
    gap: 34px;
    flex-direction: column;
  }

  body.ilm-early-years .elementor-element-7015c43 .elementor-column,
  body.ilm-early-years .elementor-element-4880f0a .elementor-column {
    width: 100% !important;
  }

  /* Copy first, artwork second, whichever order the template uses */
  body.ilm-early-years .elementor-element-7015c43 .elementor-column:has(.elementor-widget-image) { order: 2; }
  body.ilm-early-years .elementor-element-7015c43 .elementor-column:has(.elementor-widget-heading) { order: 1; }
  body.ilm-early-years .elementor-element-4880f0a .elementor-column:has(.elementor-widget-image) { order: 2; }
  body.ilm-early-years .elementor-element-4880f0a .elementor-column:has(.elementor-widget-heading) { order: 1; }

  body.ilm-early-years .elementor-element-495dac0 img,
  body.ilm-early-years .elementor-element-0971ba3 img { max-width: 380px; }

  body.ilm-early-years .elementor-element-922dd28 .elementor-widget-container,
  body.ilm-early-years .elementor-element-6adc37b .elementor-widget-container { max-width: none; }

  body.ilm-early-years .elementor-element-51de639 .elementor-heading-title,
  body.ilm-early-years .elementor-element-e219506 p { text-align: left; }

  body.ilm-early-years .elementor-element-e219506 .elementor-widget-container { margin: 0; }

  /* Elementor stacks the icon above a centred label on phones; keep the row
     layout from desktop so the three contact lines stay one readable column. */
  body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-wrapper {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
  }

  body.ilm-early-years .elementor-element-81763c7 .elementor-icon-box-content { text-align: left; }
}

@media (max-width: 767px) {
  body.ilm-early-years .elementor-element-485c0eb { padding: 34px 0 46px !important; }

  /* Below 768px the Elementor container already carries a 20px gutter, so the
     template's 15px and 30px column paddings are a second, uneven inset: the
     location cards sat at 35px while the area cards sat at 20px. */
  body.ilm-early-years .elementor-element-7f059f1 > .elementor-container > .elementor-column > .elementor-widget-wrap,
  body.ilm-early-years .elementor-element-a496515 > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ilm-early-years .elementor-element-485c0eb .elementor-heading-title { font-size: 2.15rem !important; }

  .ilm-ey-hero__eyebrow { font-size: .7375rem; letter-spacing: .09em; padding: 6px 12px 6px 10px; }

  .ilm-ey-hero__lede { font-size: 1rem; margin-top: 14px; }

  .ilm-ey-hero__actions { flex-direction: column; align-items: stretch; margin-top: 24px; gap: 10px; }

  .ilm-ey-hero__actions .ilm-btn { width: 100%; }

  .ilm-ey-hero__trust { gap: 6px 16px; font-size: .8438rem; margin-top: 22px; }

  body.ilm-early-years .elementor-element-78df0fc > .elementor-container { padding: 0 !important; }
  body.ilm-early-years .elementor-element-78df0fc .elementor-inner-column { width: 100% !important; }

  body.ilm-early-years .elementor-element-78df0fc .elementor-inner-column > .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    padding: 16px 18px;
  }

  body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item { padding: 0; }

  body.ilm-early-years .elementor-element-78df0fc .elementor-widget-icon-list { margin: 0; }

  /* Both rows keep the same text edge on a phone: card-wide, name above the
     number, icon in the same 34px slot. */
  body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item a {
    justify-content: flex-start;
    width: 100%;
  }

  body.ilm-early-years .elementor-element-78df0fc .elementor-icon-list-item:last-child a { min-height: 28px; }

  body.ilm-early-years .elementor-element-f598038 > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding: 22px 20px;
  }

  body.ilm-early-years .elementor-element-35944cc { max-width: 200px; }

  body.ilm-early-years .elementor-element-596d138 > .elementor-container { gap: 26px; }

  body.ilm-early-years .elementor-element-0420da3 > .elementor-widget-wrap { padding: 18px !important; }
}

/* ------------------------------------------------------------- 12 animation */
@media (prefers-reduced-motion: no-preference) {
  /* Hero content settles in on first paint */
  body.ilm-early-years .elementor-element-94101b4 .ilm-ey-hero__eyebrow { animation: ilm-ey-rise .5s .05s cubic-bezier(.2, .7, .3, 1) both; }
  body.ilm-early-years .elementor-element-94101b4 .elementor-heading-title { animation: ilm-ey-rise .6s .13s cubic-bezier(.2, .7, .3, 1) both; }
  body.ilm-early-years .elementor-element-94101b4 .ilm-ey-hero__lede { animation: ilm-ey-rise .6s .22s cubic-bezier(.2, .7, .3, 1) both; }
  body.ilm-early-years .elementor-element-94101b4 .ilm-ey-hero__actions { animation: ilm-ey-rise .6s .3s cubic-bezier(.2, .7, .3, 1) both; }
  body.ilm-early-years .elementor-element-94101b4 .ilm-ey-hero__trust { animation: ilm-ey-rise .6s .38s cubic-bezier(.2, .7, .3, 1) both; }

  /* Cards and artwork fade up as they enter the viewport. The animation only
     runs once JS has confirmed the element is on screen, so a missed observer
     callback leaves the content visible rather than blank. */
  body.ilm-early-years .ilm-ey-in.is-visible {
    animation: ilm-ey-fadeup .6s cubic-bezier(.2, .7, .3, 1) both;
    animation-delay: var(--ilm-ey-delay, 0ms);
  }
}

@keyframes ilm-ey-rise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

@keyframes ilm-ey-fadeup {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}

/* Diagnostic helper used by the QA pass; harmless in production */
body.ilm-early-years .elementor-element-485c0eb,
body.ilm-early-years .elementor-element-f598038,
body.ilm-early-years .elementor-element-7f059f1 { scroll-margin-top: 90px; }
