/* ═══════════════════════════════════════════════════════════════════
   ST PAUL'S LPS — Brand stylesheet
   Makes Elementor match the static concept exactly.
   Brand palette:
     --forest   #063927   dark green (primary dark)
     --pine     #1e6b50   medium green (CTAs, accents)
     --yellow   #fed000   school yellow (dividers, highlights)
     --surface  #f3f7f5   green-tinted surface
   Font: Poppins (loaded by plugin)
═══════════════════════════════════════════════════════════════════ */

/* ── St Paul's custom button — hover via CSS vars set inline per button ── */
.sp-btn { transition: all 0.2s ease !important; cursor: pointer; }
.sp-btn:hover {
  background: var(--sp-hb) !important;
  color: var(--sp-ht) !important;
  border-color: var(--sp-hbd) !important;
}

/* ── 1. GLOBAL TYPOGRAPHY ─────────────────────────────────────── */
body,
body *,
.elementor-widget *,
.elementor-heading-title,
.elementor-icon-box-title span,
.elementor-icon-box-description,
.elementor-button,
.elementor-text-editor p,
h1, h2, h3, h4, h5, h6, p, li, a, span, button, input, textarea, select {
  font-family: 'Poppins', system-ui, sans-serif !important;
}

html { scroll-behavior: smooth; }

/* ── 2. ELEMENTOR LAYOUT RESETS ───────────────────────────────── */
.elementor-section,
.elementor-container { width: 100% !important; max-width: 100% !important; }

.elementor-section .elementor-container { max-width: 1280px !important; margin: 0 auto !important; }

/* Remove Elementor default section margin */
.elementor-section { margin: 0 !important; }

/* ── 3. HERO SECTION (section #1) ─────────────────────────────── */
/* Background image is set on the SECTION in Elementor (Edit Section →
   Style → Background → Image), so it's editable. CSS only handles layout. */
.elementor-section:nth-of-type(1) {
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  overflow: hidden !important;
}

/* Dark-left → light-right gradient overlay (black) */
.elementor-section:nth-of-type(1)::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,
    rgba(0,0,0,0.82) 0%,
    rgba(0,0,0,0.62) 40%,
    rgba(0,0,0,0.00) 100%);
  z-index: 0;
  pointer-events: none;
}

/* Ensure content sits above overlay */
.elementor-section:nth-of-type(1) .elementor-container,
.elementor-section:nth-of-type(1) .elementor-column,
.elementor-section:nth-of-type(1) .elementor-widget-wrap {
  position: relative;
  z-index: 1;
}

/* ── Hero column: flex wrap so buttons sit side-by-side ── */
.elementor-section:nth-of-type(1) .elementor-column:first-child > .elementor-widget-wrap {
  padding: 160px 60px 120px 60px !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  align-content: flex-start !important;
  gap: 0 !important;
}

/* Heading + text span full width */
.elementor-section:nth-of-type(1) .elementor-widget-heading,
.elementor-section:nth-of-type(1) .elementor-widget-text-editor {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Custom button widgets sit side by side on their own row */
.elementor-section:nth-of-type(1) .elementor-widget-stpaulslps-button {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 14px 0 0 !important;
}
.elementor-section:nth-of-type(1) .elementor-widget-stpaulslps-button .sp-btn-wrap {
  display: flex !important;
}

/* ── Eyebrow ── */
.elementor-section:nth-of-type(1) .elementor-widget-heading:first-child {
  margin-bottom: 8px !important;
}

.elementor-section:nth-of-type(1) .elementor-widget-heading:first-child .elementor-heading-title {
  color: #fed000 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

/* ── H1 ── */
.elementor-section:nth-of-type(1) .elementor-widget-heading:not(:first-child) {
  margin-bottom: 10px !important;
}

.elementor-section:nth-of-type(1) h1.elementor-heading-title {
  color: #ffffff !important;
  font-size: clamp(38px, 4.5vw, 60px) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.025em !important;
  margin: 0 !important;
}

/* Yellow italic "Every child growing." */
.elementor-section:nth-of-type(1) h1.elementor-heading-title em {
  color: #ffe566 !important;
  font-style: italic !important;
  font-weight: 300 !important;
  font-size: inherit !important;
}

/* ── Subtext ── */
.elementor-section:nth-of-type(1) .elementor-widget-text-editor {
  margin-top: 12px !important;
  margin-bottom: 24px !important;
}

.elementor-section:nth-of-type(1) .elementor-widget-text-editor p {
  color: rgba(255,255,255,0.80) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  max-width: 520px;
}

/* ── Shared button base ── */
.elementor-section:nth-of-type(1) .elementor-widget-button .elementor-button {
  border-radius: 12px !important;
  padding: 14px 26px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  white-space: nowrap !important;
}

/* ── Primary (first) button: filled pine ── */
.elementor-section:nth-of-type(1) .elementor-widget-button .elementor-button {
  background-color: #1e6b50 !important;
  color: #ffffff !important;
  border: 2px solid #1e6b50 !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.28) !important;
}

.elementor-section:nth-of-type(1) .elementor-widget-button .elementor-button:hover {
  background-color: #2a8a67 !important;
  border-color: #2a8a67 !important;
}

/* ── Ghost (second) button: white outline — overrides the filled style above ── */
.elementor-section:nth-of-type(1) .elementor-widget-button + .elementor-widget-button .elementor-button {
  background-color: transparent !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(255,255,255,0.55) !important;
  box-shadow: none !important;
  font-weight: 500 !important;
}

.elementor-section:nth-of-type(1) .elementor-widget-button + .elementor-widget-button .elementor-button:hover {
  background-color: rgba(255,255,255,0.12) !important;
  border-color: rgba(255,255,255,0.85) !important;
}

/* ── 4. TRUST STRIP (section #2) ──────────────────────────────── */
.elementor-section:nth-of-type(2) {
  background-color: #063927 !important;
  padding: 18px 80px !important;
}

/* 3 equal columns, vertically centred */
.elementor-section:nth-of-type(2) .elementor-container {
  align-items: center !important;
  justify-content: center !important;
}

.elementor-section:nth-of-type(2) .elementor-column {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 32px !important;
}

/* Thin white separator — right border on first two columns */
.elementor-section:nth-of-type(2) .elementor-column:not(:last-child) {
  border-right: 1px solid rgba(255,255,255,0.18) !important;
}

/* Icon box: horizontal icon-left layout, no card styling */
.elementor-section:nth-of-type(2) .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.elementor-section:nth-of-type(2) .elementor-icon-box-wrapper:hover {
  transform: none !important;
  box-shadow: none !important;
}

/* Icon: small yellow, no background */
.elementor-section:nth-of-type(2) .elementor-icon-box-icon {
  flex-shrink: 0 !important;
  margin: 0 !important;
}

.elementor-section:nth-of-type(2) .elementor-icon-box-icon .elementor-icon {
  background: transparent !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
}

/* Font Awesome <i> rendering */
.elementor-section:nth-of-type(2) .elementor-icon-box-icon .elementor-icon i,
.elementor-section:nth-of-type(2) .elementor-icon-box-icon .elementor-icon i::before {
  color: #fed000 !important;
  font-size: 16px !important;
}

/* Elementor SVG rendering */
.elementor-section:nth-of-type(2) .elementor-icon-box-icon .elementor-icon svg,
.elementor-section:nth-of-type(2) .elementor-icon-box-icon .elementor-icon svg path,
.elementor-section:nth-of-type(2) .elementor-icon-box-icon .elementor-icon svg *  {
  fill: #fed000 !important;
  width: 16px !important;
  height: 16px !important;
}

/* Title and description inline — bold label · regular text */
.elementor-section:nth-of-type(2) .elementor-icon-box-content {
  display: inline !important;
}

/* Title — set to <span> in JSON so no heading tag overrides apply */
.elementor-section:nth-of-type(2) .elementor-icon-box-title,
.elementor-section:nth-of-type(2) .elementor-icon-box-title span,
.elementor-section:nth-of-type(2) .elementor-icon-box-title h2,
.elementor-section:nth-of-type(2) .elementor-icon-box-title h3,
.elementor-section:nth-of-type(2) .elementor-icon-box-title h4 {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Dot separator injected via CSS */
.elementor-section:nth-of-type(2) .elementor-icon-box-title::after {
  content: ' \00B7  ';
  font-weight: 400 !important;
  font-size: 14px !important;
  color: rgba(255,255,255,0.65) !important;
}

/* Description — same font size, regular weight */
.elementor-section:nth-of-type(2) .elementor-icon-box-description,
.elementor-section:nth-of-type(2) .elementor-icon-box-description p {
  display: inline !important;
  color: rgba(255,255,255,0.80) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  padding: 0 !important;
  letter-spacing: normal !important;
}

/* ── 5. PILLARS INTRO (section #3) ────────────────────────────── */
.elementor-section:nth-of-type(3) {
  background-color: #fafafa !important;
  padding: 80px 40px 0 40px !important;
}

/* Eyebrow — minimal gap below */
.elementor-section:nth-of-type(3) .elementor-widget-heading:first-child {
  margin-bottom: 6px !important;
}

.elementor-section:nth-of-type(3) .elementor-widget-heading:first-child .elementor-widget-container {
  margin: 0 !important;
}

/* H2 widget container — kill default margins */
.elementor-section:nth-of-type(3) .elementor-widget-heading:nth-child(2),
.elementor-section:nth-of-type(3) .elementor-widget-heading:nth-child(2) .elementor-widget-container {
  margin-bottom: 0 !important;
}

/* Section H2 — larger to match screenshot */
.elementor-section:nth-of-type(3) h2.elementor-heading-title {
  font-size: clamp(36px, 4.5vw, 56px) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
  color: #063927 !important;
  margin-bottom: 24px !important;
}

/* Italic second line "A community." */
.elementor-section:nth-of-type(3) h2.elementor-heading-title em {
  font-style: italic !important;
  font-weight: 300 !important;
  color: #063927 !important;
}

/* Subtext — tight gap above */
.elementor-section:nth-of-type(3) .elementor-widget-text-editor {
  margin-top: 0 !important;
}

.elementor-section:nth-of-type(3) .elementor-widget-text-editor p {
  font-size: 17px !important;
  font-weight: 300 !important;
  color: #555555 !important;
  line-height: 1.6 !important;
  max-width: 700px;
  margin: 0 auto !important;
}

/* ── 6. PILLARS ROW (section #4) ──────────────────────────────── */
.elementor-section:nth-of-type(4) {
  background-color: #fafafa !important;
  padding: 8px 40px 80px 40px !important;
}

/* Row stretches all columns to equal height */
.elementor-section:nth-of-type(4) > .elementor-container {
  align-items: stretch !important;
}

.elementor-section:nth-of-type(4) .elementor-column {
  padding: 0 !important;
  display: flex !important;
}

.elementor-section:nth-of-type(4) .elementor-column > .elementor-widget-wrap {
  width: 100% !important;
}

/* Custom pillar widget fills the column height */
.elementor-section:nth-of-type(4) .elementor-widget-stpaulslps-pillar,
.elementor-section:nth-of-type(4) .elementor-widget-stpaulslps-pillar .elementor-widget-container {
  width: 100% !important;
  display: flex !important;
}

/* Card hover lift */
.stpaulslps-pillar {
  transition: transform 0.22s ease, box-shadow 0.22s ease !important;
}
.stpaulslps-pillar:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(6,57,39,0.10) !important;
}

/* Icon badge hover — dark green badge, white icon (icon uses currentColor) */
.stpaulslps-pillar:hover .sp-pillar-badge {
  background: #063927 !important;
  color: #ffffff !important;
}

/* ── 7. PATHWAY INTRO (section #5) ────────────────────────────── */
.elementor-section:nth-of-type(5) {
  background-color: #f3f7f5 !important;
  padding: 80px 40px 0 40px !important;
}

/* Eyebrow — minimal gap below */
.elementor-section:nth-of-type(5) .elementor-widget-heading:first-child {
  margin-bottom: 6px !important;
}

/* H2 widget container — kill default margins */
.elementor-section:nth-of-type(5) .elementor-widget-heading:nth-child(2),
.elementor-section:nth-of-type(5) .elementor-widget-heading:nth-child(2) .elementor-widget-container {
  margin-bottom: 0 !important;
}

/* Section H2 — large, tight gap below */
.elementor-section:nth-of-type(5) h2.elementor-heading-title {
  font-size: clamp(36px, 4.5vw, 56px) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
  color: #063927 !important;
  margin-bottom: 24px !important;
}

/* Italic second line "from first day to graduation." — light weight */
.elementor-section:nth-of-type(5) h2.elementor-heading-title em {
  font-style: italic !important;
  font-weight: 300 !important;
  color: #063927 !important;
}

/* Subtext */
.elementor-section:nth-of-type(5) .elementor-widget-text-editor p {
  font-size: 17px !important;
  font-weight: 300 !important;
  color: #555555 !important;
  line-height: 1.6 !important;
  max-width: 700px;
  margin: 0 auto !important;
}

/* Tighten the intro column's bottom padding (reduces gap to the circles) */
.elementor-section:nth-of-type(5) .elementor-column > .elementor-widget-wrap {
  padding-bottom: 28px !important;
}

/* ── 8. PATHWAY STEPS (section #6) ────────────────────────────── */
.elementor-section:nth-of-type(6) {
  background-color: #f3f7f5 !important;
  padding: 28px 40px 40px 40px !important;
}

/* Row is the positioning context for the connecting line */
.elementor-section:nth-of-type(6) > .elementor-container {
  position: relative !important;
  align-items: flex-start !important;
}

/* Yellow connecting line — runs through the circle centres, behind them.
   Circle centre = 36px (half of 72px) from the top of the row content. */
.elementor-section:nth-of-type(6) > .elementor-container::before {
  content: '' !important;
  position: absolute !important;
  top: 36px !important;
  left: 8.33% !important;
  right: 8.33% !important;
  height: 2px !important;
  background: #fed000 !important;
  z-index: 0 !important;
}

/* Each step column sits above the line */
.elementor-section:nth-of-type(6) .elementor-column {
  position: relative !important;
  z-index: 1 !important;
  padding: 0 10px !important;
}

/* Zero the custom pathway-step widget wrapping margins so its circle top
   aligns to the connecting-line position (36px). */
.elementor-section:nth-of-type(6) .elementor-widget-stpaulslps-pathway-step,
.elementor-section:nth-of-type(6) .elementor-widget-stpaulslps-pathway-step .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

/* ── 9. PATHWAY CTA (section #7) ──────────────────────────────── */
.elementor-section:nth-of-type(7) {
  background-color: #f3f7f5 !important;
  padding: 0 40px 64px 40px !important;
}

.elementor-section:nth-of-type(7) .elementor-button {
  background: transparent !important;
  border: 2px solid #1e6b50 !important;
  color: #1e6b50 !important;
  border-radius: 8px !important;
  padding: 10px 24px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: all 0.2s ease !important;
}

.elementor-section:nth-of-type(7) .elementor-button:hover {
  background: #1e6b50 !important;
  color: #ffffff !important;
}

/* ── 10. TESTIMONIALS INTRO (section #8) ─────────────────────── */
.elementor-section:nth-of-type(8) {
  background-color: #063927 !important;
  padding: 80px 40px 0 40px !important;
}

/* Eyebrow "FAMILIES OF ST PAUL'S" — bright yellow, tight gap below */
.elementor-section:nth-of-type(8) .elementor-widget-heading:first-child {
  margin-bottom: 4px !important;
}

.elementor-section:nth-of-type(8) .elementor-widget-heading:first-child .elementor-heading-title {
  color: #fed000 !important;
}

/* Force the eyebrow's decorative line spans to bright yellow (overrides inline) */
.elementor-section:nth-of-type(8) .elementor-widget-heading:first-child .elementor-heading-title span[style*="background"] {
  background: #fed000 !important;
}

/* Headline "What parents say" — white, tight gap above */
.elementor-section:nth-of-type(8) .elementor-widget-heading:nth-child(2),
.elementor-section:nth-of-type(8) .elementor-widget-heading:nth-child(2) .elementor-widget-container {
  margin-top: 0 !important;
}

.elementor-section:nth-of-type(8) h2.elementor-heading-title {
  color: #ffffff !important;
  font-size: clamp(36px, 4.5vw, 56px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  margin-bottom: 0 !important;
}

/* ── 11. TESTIMONIALS ROW (section #9) ───────────────────────── */
.elementor-section:nth-of-type(9) {
  background-color: #063927 !important;
  padding: 0 40px 80px 40px !important;
}

/* Equal-height cards — full flex chain from row to the HTML card */
.elementor-section:nth-of-type(9) > .elementor-container {
  align-items: stretch !important;
}

.elementor-section:nth-of-type(9) .elementor-column {
  display: flex !important;
  padding: 0 10px !important;
}

.elementor-section:nth-of-type(9) .elementor-column > .elementor-widget-wrap {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.elementor-section:nth-of-type(9) .elementor-widget-stpaulslps-testimonial {
  width: 100% !important;
  flex: 1 1 auto !important;
  display: flex !important;
}

.elementor-section:nth-of-type(9) .elementor-widget-stpaulslps-testimonial .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
}

/* The card div itself fills the container height */
.elementor-section:nth-of-type(9) .elementor-widget-stpaulslps-testimonial .elementor-widget-container > div {
  width: 100% !important;
  height: 100% !important;
}

/* ── 12. SCHOOL LIFE INTRO (section #10) ─────────────────────── */
.elementor-section:nth-of-type(10) {
  background-color: #fafafa !important;
  padding: 80px 40px 0 40px !important;
}

/* Eyebrow — minimal gap below */
.elementor-section:nth-of-type(10) .elementor-widget-heading:first-child {
  margin-bottom: 6px !important;
}

/* H2 — large, italic second line light */
.elementor-section:nth-of-type(10) .elementor-widget-heading:nth-child(2),
.elementor-section:nth-of-type(10) .elementor-widget-heading:nth-child(2) .elementor-widget-container {
  margin-bottom: 0 !important;
}

.elementor-section:nth-of-type(10) h2.elementor-heading-title {
  font-size: clamp(36px, 4.5vw, 56px) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.025em !important;
  color: #063927 !important;
  margin-bottom: 0 !important;
}

.elementor-section:nth-of-type(10) h2.elementor-heading-title em {
  font-style: italic !important;
  font-weight: 300 !important;
  color: #063927 !important;
}

/* ── 13. SCHOOL LIFE CARDS (section #11) ─────────────────────── */
.elementor-section:nth-of-type(11) {
  background-color: #fafafa !important;
  padding: 40px 32px 80px 32px !important;
}

/* Equal-height cards — flex chain from row down to the HTML card */
.elementor-section:nth-of-type(11) > .elementor-container {
  align-items: stretch !important;
}

.elementor-section:nth-of-type(11) .elementor-column {
  display: flex !important;
  padding: 0 8px !important;
}

.elementor-section:nth-of-type(11) .elementor-column > .elementor-widget-wrap {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.elementor-section:nth-of-type(11) .elementor-widget-stpaulslps-school-life {
  width: 100% !important;
  flex: 1 1 auto !important;
  display: flex !important;
}

.elementor-section:nth-of-type(11) .elementor-widget-stpaulslps-school-life .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
}

.elementor-section:nth-of-type(11) .elementor-widget-stpaulslps-school-life .elementor-widget-container > div {
  width: 100% !important;
  height: 100% !important;
  transition: transform 0.22s ease, box-shadow 0.22s ease !important;
}

/* Hover lift on the card */
.elementor-section:nth-of-type(11) .elementor-widget-stpaulslps-school-life .elementor-widget-container > div:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 14px 36px rgba(6,57,39,0.13) !important;
}

/* ── 14. ENROL CTA (section #12) ─────────────────────────────── */
.elementor-section:nth-of-type(12) {
  background-color: #f3f7f5 !important;
  padding: 72px 40px !important;
}

.elementor-section:nth-of-type(12) .elementor-widget-heading,
.elementor-section:nth-of-type(12) .elementor-widget-heading .elementor-widget-container {
  margin-bottom: 0 !important;
}

.elementor-section:nth-of-type(12) .elementor-widget-heading .elementor-heading-title {
  color: #063927 !important;
  font-size: clamp(36px, 4.5vw, 56px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.15 !important;
  margin-bottom: 10px !important;
}

.elementor-section:nth-of-type(12) .elementor-widget-text-editor p {
  color: #666666 !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  max-width: 640px;
  margin: 0 auto !important;
}

/* HTML-widget CTA buttons — hover effects on the <a> links */
.elementor-section:nth-of-type(12) .elementor-widget-html a {
  transition: all 0.2s ease !important;
}

/* Filled button hover */
.elementor-section:nth-of-type(12) .elementor-widget-html a[style*="background:#063927"]:hover {
  background: #0a4f37 !important;
  border-color: #0a4f37 !important;
}

/* Outline button hover */
.elementor-section:nth-of-type(12) .elementor-widget-html a[style*="background:transparent"]:hover {
  background: #063927 !important;
  color: #ffffff !important;
}

/* ── 15. NEWS INTRO (section #13) ────────────────────────────── */
.elementor-section:nth-of-type(13) {
  background-color: #fafafa !important;
  padding: 80px 40px 24px 40px !important;
}

/* Heading + "All news" link vertically aligned */
.elementor-section:nth-of-type(13) > .elementor-container {
  align-items: flex-end !important;
}

.elementor-section:nth-of-type(13) h2.elementor-heading-title {
  color: #063927 !important;
  font-size: clamp(32px, 4vw, 46px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  margin-bottom: 0 !important;
}

.elementor-section:nth-of-type(13) .elementor-widget-heading:first-child {
  margin-bottom: 6px !important;
}

/* "All news" link hover */
.elementor-section:nth-of-type(13) .elementor-widget-html a:hover {
  color: #063927 !important;
}

/* ── 16. NEWS ROW (section #14) ──────────────────────────────── */
.elementor-section:nth-of-type(14) {
  background-color: #fafafa !important;
  padding: 0 32px 80px 32px !important;
}

/* Dynamic news grid — full width + hover lift on each card */
.elementor-section:nth-of-type(14) .elementor-widget-stpaulslps-news-grid,
.elementor-section:nth-of-type(14) .elementor-widget-stpaulslps-news-grid .elementor-widget-container {
  width: 100% !important;
}

.stpaulslps-news-grid > div {
  transition: transform 0.22s ease, box-shadow 0.22s ease !important;
}

.stpaulslps-news-grid > div:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 14px 36px rgba(6,57,39,0.13) !important;
}

@media (max-width: 768px) {
  .stpaulslps-news-grid { grid-template-columns: 1fr !important; }
}

/* Equal-height cards — flex chain from row down to the HTML card */
.elementor-section:nth-of-type(14) > .elementor-container {
  align-items: stretch !important;
}

.elementor-section:nth-of-type(14) .elementor-column {
  display: flex !important;
  padding: 0 8px !important;
}

.elementor-section:nth-of-type(14) .elementor-column > .elementor-widget-wrap {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.elementor-section:nth-of-type(14) .elementor-widget-stpaulslps-news-card {
  width: 100% !important;
  flex: 1 1 auto !important;
  display: flex !important;
}

.elementor-section:nth-of-type(14) .elementor-widget-stpaulslps-news-card .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
}

.elementor-section:nth-of-type(14) .elementor-widget-stpaulslps-news-card .elementor-widget-container > div {
  width: 100% !important;
  height: 100% !important;
  transition: transform 0.22s ease, box-shadow 0.22s ease !important;
}

.elementor-section:nth-of-type(14) .elementor-widget-stpaulslps-news-card .elementor-widget-container > div:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 14px 36px rgba(6,57,39,0.13) !important;
}

/* ── 17. FOOTER MAIN (section #15) ───────────────────────────── */
.elementor-section:nth-of-type(15) {
  background-color: #063927 !important;
  padding: 64px 40px !important;
}

.elementor-section:nth-of-type(15) .elementor-heading-title {
  color: #ffffff !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.elementor-section:nth-of-type(15) .elementor-widget-text-editor p {
  color: rgba(255,255,255,0.55) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
}

.elementor-section:nth-of-type(15) .elementor-widget-text-editor a {
  color: rgba(255,255,255,0.55) !important;
  text-decoration: none !important;
  transition: color 0.2s !important;
}

.elementor-section:nth-of-type(15) .elementor-widget-text-editor a:hover {
  color: #ffffff !important;
}

/* ── 18. FOOTER BAR (section #16) ────────────────────────────── */
.elementor-section:nth-of-type(16) {
  background-color: rgba(0,0,0,0.25) !important;
  padding: 16px 40px !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}

/* Must be inside forest so set bg on outer section */
.elementor-section:nth-of-type(16) {
  background-color: #041f16 !important;
}

.elementor-section:nth-of-type(16) .elementor-widget-text-editor p {
  color: rgba(255,255,255,0.35) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  text-align: center !important;
}

.elementor-section:nth-of-type(16) .elementor-widget-text-editor a {
  color: rgba(255,255,255,0.35) !important;
  text-decoration: none !important;
}

.elementor-section:nth-of-type(16) .elementor-widget-text-editor a:hover {
  color: rgba(255,255,255,0.70) !important;
}

/* ── 19. GLOBAL HEADING STYLES ───────────────────────────────── */

/* H2 section headings */
.elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(28px, 4vw, 44px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
}

/* Eyebrow labels (h6) */
.elementor-widget-heading h6.elementor-heading-title {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: #b89500 !important;
  margin-bottom: 8px !important;
}

/* Body text */
.elementor-widget-text-editor p {
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: #555555 !important;
}

/* Dividers with yellow colour */
.elementor-widget-divider .elementor-divider-separator {
  border-color: #fed000 !important;
}

/* ── 20. GLOBAL BUTTON STYLES ────────────────────────────────── */
.elementor-button-wrapper {
  display: inline-block;
}

.elementor-button {
  font-family: 'Poppins', sans-serif !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
  text-decoration: none !important;
}

/* ── 21. RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .elementor-section:nth-of-type(1) .elementor-widget-wrap {
    padding: 120px 20px 80px 20px !important;
  }

  .elementor-section:nth-of-type(1) .elementor-widget-heading:nth-child(2) .elementor-heading-title {
    font-size: 36px !important;
  }

  .elementor-section:nth-of-type(2) .elementor-column:nth-child(2),
  .elementor-section:nth-of-type(2) .elementor-column:nth-child(4) {
    display: none !important;
  }

  .elementor-section:nth-of-type(6) .elementor-column {
    width: 50% !important;
    flex: 0 0 50% !important;
    margin-bottom: 32px !important;
  }

  /* Hide the horizontal connecting line when steps wrap to a grid */
  .elementor-section:nth-of-type(6) > .elementor-container::before {
    display: none !important;
  }
}

/* ── 22. SCROLLBAR (cosmetic) ────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f3f7f5; }
::-webkit-scrollbar-thumb { background: #1e6b50; border-radius: 3px; }
