/* The Elementor ancestor keeps shared layouts above generated Atomic class defaults. */
/* Informational Elementor pages share the section system's navy, lime and system font. */
.elementor .cxs-content-page {
  --cxs-page-ink: #0a2540;
  --cxs-page-navy: #123a5e;
  --cxs-page-lime: #a3e635;
  --cxs-page-green: #4d7c0f;
  --cxs-page-muted: #5b6b7f;
  --cxs-page-soft: #f1f5f9;
  --cxs-page-line: #e4eaf1;
  color: var(--cxs-page-ink);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.7;
}
.elementor .cxs-content-page *, .elementor .cxs-content-page *::before, .elementor .cxs-content-page *::after { box-sizing: border-box; }
.elementor .cxs-content-page :where(.e-con, .elementor-widget, .elementor-widget-container) { min-width: 0; }
.elementor .cxs-content-page :where(h2, h3, h4, p, figure, ul, ol) { margin: 0; }
.elementor .cxs-content-page .cxs-editorial-section { width: 100%; padding-block: clamp(52px, 5vw, 72px); background: #fff; }
.elementor .cxs-content-page .cxs-editorial-section.is-soft { background: var(--cxs-page-soft); }
.elementor .cxs-content-page .cxs-editorial-inner { width: 100%; max-width: 1220px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 40px); }
.elementor .cxs-content-page .cxs-editorial-copy,
.cxs-section--form .cxs-editorial-copy { max-width: 72ch; color: var(--cxs-page-muted, #5b6b7f); font-size: 16px; line-height: 1.7; }
.elementor .cxs-content-page .cxs-editorial-copy :where(p, ul, ol) { margin-block: 0 1.25em; }
.elementor .cxs-content-page .cxs-editorial-copy :where(ul, ol) { padding-inline-start: 1.35em; }
.elementor .cxs-content-page .cxs-editorial-copy li { margin-block: .35em; }
.elementor .cxs-content-page .cxs-editorial-section .elementor-widget-text-editor.cxs-editorial-copy { max-width: 72ch; }
.elementor .cxs-content-page .cxs-editorial-copy a { color: var(--cxs-page-navy); text-decoration: underline; text-underline-offset: 3px; }
.elementor .cxs-content-page .cxs-editorial-copy a:hover { color: var(--cxs-page-ink); text-decoration-thickness: 2px; }
.elementor .cxs-content-page .cxs-editorial-copy a:focus-visible { outline: 3px solid var(--cxs-page-lime); outline-offset: 3px; border-radius: 3px; }
.elementor .cxs-content-page .cxs-editorial-section :is(h2, h3, .elementor-heading-title) { color: var(--cxs-page-ink); font-family: inherit; font-weight: 700; line-height: 1.12; letter-spacing: -.025em; text-wrap: balance; }
.elementor .cxs-content-page .cxs-editorial-section h2 { font-size: clamp(30px, 3.4vw, 42px); }
.elementor .cxs-content-page .cxs-editorial-section h3 { font-size: clamp(20px, 2vw, 24px); }
.elementor .cxs-content-page .cxs-editorial-grid,
.elementor .cxs-content-page .cxs-form-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 72px); align-items: center; }
.elementor .cxs-content-page .cxs-form-layout { align-items: start; }
.elementor .cxs-content-page .cxs-editorial-grid > *,
.elementor .cxs-content-page .cxs-form-layout > * { min-width: 0; }
.elementor .cxs-content-page .cxs-editorial-media { width: 100%; margin: 0; border-radius: 20px; overflow: hidden; background: var(--cxs-page-soft); }
.elementor .cxs-content-page .cxs-editorial-media :where(img, video) { display: block; width: 100%; height: auto; }
.elementor .cxs-content-page .cxs-video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); }
.elementor .cxs-content-page .cxs-page-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); }
.elementor .cxs-content-page .cxs-video-grid > *,
.elementor .cxs-content-page .cxs-page-gallery > * { min-width: 0; }
.elementor .cxs-content-page .cxs-page-gallery img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.elementor .cxs-content-page .cxs-faq-section { background: var(--cxs-page-soft); }

/* The homepage hero remains untouched; these rules apply only to its content_page layout. */
/* 2026-09-28 shared standard: banner height, H1 and supporting text (page-scoped blocks below still win). */
.cxs-section .cxs-page-hero .hero-banner { min-height: clamp(360px, 44vh, 470px); }
.cxs-section .cxs-page-hero { --cxs-hero-x: 50%; --cxs-hero-y: 20%; }
.cxs-section .cxs-page-hero--left { --cxs-hero-x: 25%; }
.cxs-section .cxs-page-hero--right { --cxs-hero-x: 75%; }
.cxs-section .cxs-page-hero--vertical-top { --cxs-hero-y: 0%; }
.cxs-section .cxs-page-hero--vertical-center { --cxs-hero-y: 50%; }
.cxs-section .cxs-page-hero--vertical-lower { --cxs-hero-y: 75%; }
.cxs-section .cxs-page-hero .hero-img { object-position: var(--cxs-hero-x) var(--cxs-hero-y); }
.cxs-section .cxs-page-hero .hero-overlay { background: linear-gradient(90deg, rgba(8,30,52,.94) 0%, rgba(8,30,52,.79) 30%, rgba(8,30,52,.37) 66%, rgba(8,30,52,.08) 100%); }
.cxs-section .cxs-page-hero--overlay-light .hero-overlay { background: linear-gradient(90deg, rgba(8,30,52,.84) 0%, rgba(8,30,52,.6) 30%, rgba(8,30,52,.2) 66%, transparent 100%); }
.cxs-section .cxs-page-hero--overlay-strong .hero-overlay { background: linear-gradient(90deg, rgba(8,30,52,.98) 0%, rgba(8,30,52,.9) 30%, rgba(8,30,52,.56) 66%, rgba(8,30,52,.18) 100%); }
.cxs-section .cxs-page-hero .hero-inner.wrap { padding-block: 48px; }
.cxs-section .cxs-page-hero .cxs-section-heading { max-width: 800px; font-size: clamp(30px, 4vw, 48px); font-weight: 800; line-height: 1.06; letter-spacing: -.025em; }
.cxs-section .cxs-page-hero .hero-description { max-width: 760px; margin-top: 20px; color: #e1ecf5; font-size: clamp(16px, 1.4vw, 18px); font-weight: 400; line-height: 1.6; }
.cxs-section .cxs-page-hero .hero-description :where(p, a, span) { color: inherit; }

.cxs-section--form { background: #fff; }
.cxs-section .cxs-page-form { padding: clamp(48px, 5vw, 64px) clamp(20px, 4vw, 40px); background: #fff; }
.cxs-section .cxs-page-form .cxs-editorial-inner { width: 100%; max-width: 1220px; margin-inline: auto; }
.cxs-section .cxs-page-form__intro { margin-bottom: 24px; }
.cxs-section .cxs-page-form .cxs-section-heading { margin-block: 10px; color: var(--navy); font-size: clamp(26px, 3vw, 34px); }
.cxs-section .cxs-page-form__editor-notice { padding: 18px; border: 1px dashed var(--line-2); border-radius: 12px; color: var(--muted); }
.cxs-section .cxs-page-form .cxs-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.cxs-section .cxs-page-form .cxs-form-field { min-width: 0; }
.cxs-section .cxs-page-form .cxs-form-field.is-wide { grid-column: 1 / -1; }
.cxs-section .cxs-page-form :where(label, legend) { display: block; margin-bottom: 6px; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.4; }
/* CF7 "label<br>[field]" markup: same 10px label-to-field gap as the Contact Us page. */
.cxs-section .cxs-page-form label > .wpcf7-form-control-wrap { display: block; margin-top: 10px; }
.cxs-section .cxs-page-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.cxs-section .cxs-page-form .cxs-form-help { display: block; margin-top: 6px; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.cxs-section .cxs-page-form :where(input:not([type=radio]):not([type=checkbox]):not([type=submit]), select, textarea) { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid var(--line-2); border-radius: 10px; background: #fff; color: var(--ink); font: inherit; font-weight: 400; font-size: 16px; line-height: 1.4; }
.cxs-section .cxs-page-form textarea { min-height: 120px; resize: vertical; }
.cxs-section .cxs-page-form textarea[rows="2"]:is([name*="best-time" i], [name*="best_time" i], [name*="besttime" i], [aria-label*="best time" i]) { min-height: 80px; }
.cxs-section .cxs-page-form input[type=file] { min-height: 48px; padding: 8px; font-size: 16px; }
.cxs-section .cxs-page-form input[type=file]::file-selector-button { min-height: 44px; margin-inline-end: 10px; padding: 8px 13px; border: 0; border-radius: 8px; background: var(--navy); color: #fff; font: 600 14px/1.3 system-ui, sans-serif; cursor: pointer; transition: background-color .16s ease; }
.cxs-section .cxs-page-form input[type=file]::file-selector-button:hover { background: var(--ink); }
.cxs-section .cxs-page-form :where(input[type=radio], input[type=checkbox]) { width: 18px; height: 18px; margin: 0; accent-color: var(--navy); vertical-align: middle; }
.cxs-section .cxs-page-form .wpcf7-list-item { margin: 0 20px 8px 0; }
.cxs-section .cxs-page-form .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; font-weight: 500; cursor: pointer; }
.cxs-section .cxs-page-form .wpcf7-list-item:has(input[type=radio]) label { min-width: 112px; padding: 9px 14px; border: 1px solid var(--line-2); border-radius: 999px; background: #fff; transition: border-color .16s ease, background-color .16s ease, color .16s ease; }
.cxs-section .cxs-page-form .wpcf7-list-item:has(input[type=radio]) label:has(input:checked) { border-color: var(--navy); background: #eff8db; color: var(--ink); }
.cxs-section .cxs-page-form .wpcf7-list-item:has(input[type=radio]) label:focus-within { outline: 2px solid var(--lime); outline-offset: 2px; box-shadow: none; }
.cxs-section .cxs-page-form .cxs-form-consent { font-size: .9375rem; line-height: 1.55; }
.cxs-section .cxs-page-form .cxs-form-consent a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.cxs-section .cxs-page-form .cxs-form-actions { margin-top: 22px; }
.cxs-section .cxs-page-form :where(input[type=submit], button[type=submit]) { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 28px; border: 0; border-radius: 100px; background: var(--lime); color: var(--ink); font: inherit; font-weight: 700; cursor: pointer; }
.cxs-section .cxs-page-form :where(input[type=submit], button[type=submit]):hover { background: #b8ed63; }
.cxs-section .cxs-page-form :where(input, select, textarea, button):disabled { border-color: var(--line); background-color: #f1f5f9; color: var(--muted); cursor: not-allowed; opacity: .72; }
.cxs-section .cxs-page-form :where(input[type=submit], button[type=submit]):disabled { background: #e4eaf1; }
.cxs-section .cxs-page-form :where(input:not([type=radio]):not([type=checkbox]):not([type=submit]), select, textarea):not(:disabled):hover { border-color: var(--navy-line); }
.cxs-section .cxs-page-form :where(input, textarea)::placeholder { color: #5b6b7f; opacity: 1; }
/* Override Hello's transition:all so the focus ring never starts at currentColor. */
.cxs-section .cxs-page-form :is(input, select, textarea, button) { outline: 2px solid rgba(163,230,53,0); outline-offset: 2px; box-shadow: none; transition: border-color .16s ease, outline-color .16s ease, background-color .16s ease; }
.cxs-section .cxs-page-form :is(input, select, textarea, button):focus { box-shadow: none; }
.cxs-section .cxs-page-form :is(input:not([type=radio]):not([type=checkbox]):not([type=submit]), select, textarea):focus { border-color: var(--navy); outline-color: var(--lime); }
.cxs-section .cxs-page-form :is(input, select, textarea, button):focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; box-shadow: none; }
.cxs-section .cxs-page-form .wpcf7-not-valid { border-color: #b42318 !important; }
.cxs-section .cxs-page-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; color: #b42318; font-size: .875rem; }
.cxs-section .cxs-page-form .wpcf7-response-output { display: flex; align-items: flex-start; gap: 12px; margin: 20px 0 0; padding: 16px 18px; border: 1px solid var(--line-2); border-radius: 12px; background: #f5f8fb; color: var(--ink); font-size: 15px; line-height: 1.55; }
.cxs-section .cxs-page-form form:is(.init, .resetting, .submitting) .wpcf7-response-output { display: none; }
.cxs-section .cxs-page-form .wpcf7-response-output::before { content: ""; display: block; flex: 0 0 21px; width: 21px; height: 21px; margin-top: 1px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.5 2.5L16 9'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.5 2.5L16 9'/%3E%3C/svg%3E") center / contain no-repeat; }
.cxs-section .cxs-page-form form.invalid .wpcf7-response-output,
.cxs-section .cxs-page-form form.unaccepted .wpcf7-response-output,
.cxs-section .cxs-page-form form.payment-required .wpcf7-response-output { border-color: #f4d89b; background: #fffbeb; color: #92400e; }
.cxs-section .cxs-page-form form.invalid .wpcf7-response-output::before,
.cxs-section .cxs-page-form form.unaccepted .wpcf7-response-output::before,
.cxs-section .cxs-page-form form.payment-required .wpcf7-response-output::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 2.9 17a2 2 0 0 0 1.7 3h14.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z'/%3E%3Cpath d='M12 9v4m0 4h.01'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 2.9 17a2 2 0 0 0 1.7 3h14.8a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z'/%3E%3Cpath d='M12 9v4m0 4h.01'/%3E%3C/svg%3E"); }
.cxs-section .cxs-page-form :is(form.failed, form.aborted, form.spam) .wpcf7-response-output { border-color: #b42318; background: #fff5f3; color: #b42318; }
.cxs-section .cxs-page-form :is(form.failed, form.aborted, form.spam) .wpcf7-response-output::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m9 9 6 6m0-6-6 6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m9 9 6 6m0-6-6 6'/%3E%3C/svg%3E"); }
.cxs-section .cxs-page-form form.sent .wpcf7-response-output { border-color: #3f7d22; background: #f3fae9; color: #3f7d22; }
.cxs-section .cxs-page-form .wpcf7-spinner { margin-inline: 10px; vertical-align: middle; }
/* Opt-in card presentation (form widget "Presentation"): the Contact Us panel, reusable anywhere the form sits beside content. */
.cxs-section .cxs-page-form--card { padding: 32px; border: 1px solid var(--line-2, #d3deea); border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(10,37,64,.07); }
.cxs-section .cxs-page-form--card .cxs-page-form__intro { margin-bottom: 20px; }
.cxs-section .cxs-page-form--card .cxs-section-heading { margin-block: 0 8px; }
/* Every page form centres its submit, never narrower than the Contact Us button (254px) unless its column is, and full
   width on phones (600px, below). The row is the button's direct parent: CF7's autop <p>, or the field div when autop is off. The spinner
   leaves the flow so the button stays truly centred; it shows at the row's right edge while submitting. */
.cxs-section .cxs-page-form :is(p, div):has(> .wpcf7-submit) { position: relative; display: flex; align-items: center; justify-content: center; }
.cxs-section .cxs-page-form input[type=submit] { display: inline-flex; width: fit-content; min-width: min(254px, 100%); max-width: 100%; }
.cxs-section .cxs-page-form :is(p, div):has(> .wpcf7-submit) > .wpcf7-spinner { position: absolute; top: 50%; right: 0; margin: 0; transform: translateY(-50%); }

/* Contact combines human routes with a focused form surface. */
.elementor .cxs-content-page :is(.cxs-contact-layout, .cxs-form-layout) { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 4vw, 56px); align-items: start; }
.elementor .cxs-content-page :is(.cxs-contact-layout, .cxs-form-layout) > * { min-width: 0; }
.elementor .cxs-content-page .cxs-contact-details { display: flex; flex-direction: column; gap: 26px; }
.elementor .cxs-content-page .cxs-contact-methods { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px; border: 1px solid var(--cxs-page-line); border-radius: 18px; background: #fff; }
.elementor .cxs-content-page .cxs-contact-methods > * { min-width: 0; }
.elementor .cxs-content-page .cxs-contact-methods :is(h3, .elementor-heading-title) { color: var(--cxs-page-ink); font-size: 20px; }
.elementor .cxs-content-page .cxs-contact-methods a { color: var(--cxs-page-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.elementor .cxs-content-page .cxs-contact-methods a:hover { color: var(--cxs-page-ink); text-decoration-thickness: 2px; }
.elementor .cxs-content-page :is(.cxs-contact-layout, .cxs-form-layout) .cxs-page-form { padding: 32px; border: 1px solid var(--cxs-page-line); border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(10,37,64,.07); }
.elementor .cxs-content-page :is(.cxs-contact-layout, .cxs-form-layout) .cxs-page-form .cxs-editorial-inner { width: 100%; max-width: none; padding: 0; }
.elementor .cxs-content-page .cxs-contact-layout .cxs-section--form { background: transparent; }

/* Resource, action and principle cards follow the established benefits rows. */
.elementor .cxs-content-page :is(.cxs-info-grid, .cxs-action-grid, .cxs-principles) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.elementor .cxs-content-page :is(.cxs-info-grid, .cxs-action-grid, .cxs-principles) > * { min-width: 0; }
.cxs-contact-page .cxs-info-grid { align-items: start; }
.elementor .cxs-content-page :is(.cxs-info-card, .cxs-action-card, .cxs-principles > *) { min-width: 0; padding: 26px 28px; border: 1px solid var(--cxs-page-line); border-radius: 20px; background: #fff; box-shadow: 0 3px 9px rgba(10,37,64,.05); }
.elementor .cxs-content-page :is(.cxs-info-card, .cxs-action-card) { display: flex; flex-direction: column; gap: 12px; }
.elementor .cxs-content-page :is(.cxs-info-card, .cxs-action-card, .cxs-principles) :is(h3, .elementor-heading-title) { margin: 0; color: var(--cxs-page-ink); font-size: 21px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
.elementor .cxs-content-page :is(.cxs-info-card, .cxs-action-card, .cxs-principles) :is(p, .elementor-widget-text-editor) { color: var(--cxs-page-muted); font-size: 15px; line-height: 1.6; }
.elementor .cxs-content-page .cxs-action-card :is(a.elementor-button, .elementor-button-link, a.cxs-page-button) { margin-top: auto; }
.elementor .cxs-content-page .cxs-principles svg { display: block; width: 26px; height: 26px; margin-bottom: 14px; color: var(--cxs-page-green); }

/* FAQ wayfinding keeps long question lists from becoming a wall of copy. */
.elementor .cxs-content-page .cxs-faq-layout { display: grid; grid-template-columns: minmax(0, .32fr) minmax(0, .68fr); gap: clamp(32px, 5vw, 60px); align-items: start; }
.elementor .cxs-content-page .cxs-faq-layout > * { min-width: 0; }
.elementor .cxs-content-page .cxs-faq-sidebar { width: 100%; max-width: none; min-width: 0; }
.elementor .cxs-content-page .cxs-topic-nav { display: flex; flex-direction: column; gap: 5px; padding: 12px; border: 1px solid var(--cxs-page-line); border-radius: 18px; background: #fff; }
.elementor .cxs-content-page .cxs-topic-nav a { display: block; padding: 11px 14px; border-radius: 10px; color: var(--cxs-page-navy); font-size: 15px; font-weight: 650; line-height: 1.35; text-decoration: none; transition: background .2s ease, color .2s ease; }
.elementor .cxs-content-page .cxs-topic-nav a:hover, .elementor .cxs-content-page .cxs-topic-nav a:focus-visible { background: #eff8db; color: var(--cxs-page-ink); }
.elementor .cxs-content-page .cxs-faq-groups { display: flex; flex-direction: column; gap: 48px; }
.elementor .cxs-content-page .cxs-faq-group { min-width: 0; scroll-margin-top: 116px; }
.elementor .cxs-content-page .cxs-faq-group :is(h2, .elementor-heading-title) { margin-bottom: 18px; color: var(--cxs-page-navy); font-size: clamp(26px, 3vw, 32px); }

/* Video, story and mission layouts. */
.elementor .cxs-content-page .cxs-video-card { min-width: 0; overflow: hidden; border: 1px solid var(--cxs-page-line); border-radius: 20px; background: #fff; box-shadow: 0 5px 16px rgba(10,37,64,.06); }
.elementor .cxs-content-page .cxs-video-card :is(.elementor-widget-video, .elementor-wrapper, iframe, video) { display: block; width: 100%; aspect-ratio: 16 / 9; }
.elementor .cxs-content-page .cxs-video-card :is(iframe, video) { height: 100%; object-fit: cover; }
.elementor .cxs-content-page .cxs-video-card :is(h3, .elementor-heading-title) { padding: 20px 24px 22px; color: var(--cxs-page-ink); font-size: 20px; font-weight: 700; }
.elementor .cxs-content-page .cxs-video-card > .elementor-widget-video { margin-bottom: 0; }
.elementor .cxs-content-page .cxs-benefits-panels { align-items: start; }
.elementor .cxs-content-page .cxs-story-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(30px, 5vw, 70px); align-items: center; }
.elementor .cxs-content-page .cxs-story-grid > * { min-width: 0; }
.elementor .cxs-content-page .cxs-story-photo { overflow: hidden; border-radius: 24px; }
.elementor .cxs-content-page .cxs-story-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.elementor .cxs-content-page .cxs-story-photo figcaption { padding: 10px 2px; color: var(--cxs-page-muted); font-size: 13px; line-height: 1.5; }
.elementor .cxs-content-page .cxs-story-image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 24px; }
.elementor .cxs-content-page .cxs-story-image :is(figcaption, .wp-caption-text) { margin-top: 10px; color: var(--cxs-page-muted); font-size: 14px; line-height: 1.5; }
.elementor .cxs-content-page .cxs-values-panel { padding: 28px; border: 1px solid var(--cxs-page-line); border-radius: 20px; background: #fff; }
.elementor .cxs-content-page .cxs-values-image { width: min(100%, 360px); max-width: 360px; margin-inline: auto; background: transparent; }
.elementor .cxs-content-page .cxs-values-image img { width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; }
.elementor .cxs-content-page :is(.cxs-mission-grid, .cxs-contest-intro) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); align-items: center; }
.elementor .cxs-content-page :is(.cxs-mission-grid, .cxs-contest-intro) > * { min-width: 0; }
.elementor .cxs-content-page .cxs-dark-panel { padding: clamp(28px, 4vw, 40px); border-radius: 24px; background: var(--cxs-page-navy); color: #fff; }
.elementor .cxs-content-page .cxs-dark-panel :is(h2, h3, h4, .elementor-heading-title) { color: #fff; }
.elementor .cxs-content-page .cxs-dark-panel :is(p, .elementor-widget-text-editor) { color: #dce9f3; }
.elementor .cxs-content-page .cxs-dark-panel a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* Native Elementor carousel and legal terms. */
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel { width: 100%; min-width: 0; }
.elementor .cxs-content-page .cxs-contest-feature img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel :is(.swiper-slide img, .swiper-slide-image) { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-image-carousel-wrapper { position: relative; padding-bottom: 64px; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button { display: flex; align-items: center; justify-content: center; top: auto; bottom: 6px; left: auto; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--cxs-page-navy); color: #fff; box-shadow: none; transform: none; transition: background-color .16s ease, color .16s ease; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button-prev { right: 58px; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button-next { right: 6px; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button :is(svg, i) { width: 18px; height: 18px; font-size: 18px; fill: currentColor; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button:not(.swiper-button-disabled):hover { background: var(--cxs-page-lime); color: var(--cxs-page-ink); }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button.swiper-button-disabled { opacity: 1; background: var(--cxs-page-line); color: var(--cxs-page-muted); cursor: default; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button.swiper-button-lock { display: none; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button:focus-visible { outline: 3px solid var(--cxs-page-lime); outline-offset: 2px; box-shadow: none; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .swiper-pagination { inset: auto auto 6px 0; width: calc(100% - 120px); height: 44px; display: flex; flex-wrap: wrap; align-items: center; align-content: center; gap: 8px; text-align: left; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .swiper-pagination-bullet { margin: 0; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .swiper-pagination-bullet { background: var(--cxs-page-navy); opacity: .45; }
.elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .swiper-pagination-bullet-active { background: var(--cxs-page-lime); opacity: 1; }
.elementor .cxs-content-page .cxs-legal-layout { display: grid; grid-template-columns: minmax(0, .3fr) minmax(0, .7fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.elementor .cxs-content-page .cxs-legal-layout > * { min-width: 0; }
.elementor .cxs-content-page .cxs-legal-layout .cxs-editorial-copy { max-width: none; font-size: 14.5px; line-height: 1.65; }

/* Buttons in native content use the same navy pill as shared section widgets. */
.elementor .cxs-content-page :is(a.cxs-page-button, .cxs-page-button .elementor-button, .cxs-action-card a.elementor-button, .cxs-action-card .elementor-button-link) { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; width: fit-content; max-width: 100%; padding: 11px 22px; border: 1px solid transparent; border-radius: 100px; background: var(--cxs-page-navy); color: #fff; font-size: 15px; font-weight: 700; line-height: 1.35; text-align: center; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.elementor .cxs-content-page :is(a.cxs-page-button, .cxs-page-button .elementor-button, .cxs-action-card a.elementor-button, .cxs-action-card .elementor-button-link):hover { background: var(--cxs-page-ink); color: #fff; transform: translateY(-2px); }
.elementor .cxs-content-page .cxs-dark-panel .cxs-page-button.is-light .elementor-button { background: var(--cxs-page-lime); color: var(--cxs-page-ink); text-decoration: none; }
.elementor .cxs-content-page .cxs-dark-panel .cxs-page-button.is-light .elementor-button:hover { background: #b8ed63; color: var(--cxs-page-ink); }

.cxs-photo-page .cxs-section--form { background: var(--cxs-page-soft, #f1f5f9); }
.cxs-photo-page .cxs-section .cxs-page-form { padding-block: 64px; background: var(--cxs-page-soft, #f1f5f9); }
.cxs-photo-page .cxs-page-form .cxs-editorial-inner { max-width: 960px; padding: clamp(24px, 4vw, 40px); border: 1px solid #e4eaf1; border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(10,37,64,.07); }
.cxs-photo-page .cxs-page-form .cxs-photo-uploads .cxs-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 18px; }
.cxs-photo-page .cxs-page-form input[type=file] { min-height: 102px; padding: 14px; border: 1px dashed #b6c8d7; border-radius: 12px; background: #f5f8fb; font-size: 16px; color: #5b6b7f; cursor: pointer; }
.cxs-photo-page .cxs-page-form input[type=file]::file-selector-button { display: block; min-height: 44px; margin: 0 0 12px; padding: 9px 14px; border: 0; border-radius: 8px; background: #123a5e; color: #fff; font: 600 14px/1.4 system-ui, sans-serif; cursor: pointer; }
.cxs-photo-page .cxs-page-form input[type=file]::file-selector-button:hover { background: #0a2540; }
.cxs-photo-page .cxs-page-form .cxs-media-consent { margin-top: 8px; padding: 22px; border: 1px solid #e4eaf1; border-radius: 16px; background: #f5f8fb; }
.cxs-photo-page .cxs-page-form .cxs-media-consent legend { padding-inline: 6px; margin-left: -6px; }
.cxs-photo-page .cxs-page-form .cxs-form-consent { font-size: 14px; line-height: 1.65; color: #5b6b7f; }
.cxs-photo-page .cxs-page-form .cxs-media-consent .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.cxs-photo-page .cxs-page-form .cxs-media-consent .wpcf7-list-item { margin: 0; }
.cxs-photo-page .cxs-page-form .cxs-media-consent label { min-width: 110px; min-height: 48px; padding: 10px 16px; border: 1px solid #d3deea; border-radius: 10px; background: #fff; }
.cxs-photo-page .cxs-page-form .cxs-media-consent label:has(input:checked) { border-color: #123a5e; background: #eff8db; }
.cxs-photo-page .cxs-page-form .cxs-media-consent label:focus-within { outline: 2px solid #a3e635; outline-offset: 2px; box-shadow: none; }

@media (prefers-reduced-motion: reduce) {
  .cxs-section .cxs-page-form :is(input, select, textarea, button),
  .elementor .cxs-content-page .cxs-content-carousel.elementor-widget.elementor-widget-image-carousel .elementor-swiper-button { transition: none; }
}

@media (max-width: 900px) {
  .elementor .cxs-content-page :is(.cxs-contact-layout, .cxs-form-layout, .cxs-faq-layout, .cxs-story-grid, .cxs-legal-layout) { grid-template-columns: 1fr; gap: 32px; }
  .elementor .cxs-content-page :is(.cxs-info-grid, .cxs-action-grid, .cxs-principles) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .cxs-content-page .cxs-topic-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .cxs-content-page .cxs-story-photo img { aspect-ratio: 3 / 2; }
  .elementor .cxs-content-page .cxs-story-image img { aspect-ratio: 3 / 2; }
}

@media (max-width: 767px) {
  .cxs-photo-page .cxs-page-form .cxs-photo-uploads .cxs-form-grid { grid-template-columns: 1fr; }
  .cxs-photo-page .cxs-page-form .cxs-media-consent { padding: 18px; }
  .elementor .cxs-content-page .cxs-editorial-grid,
  .elementor .cxs-content-page .cxs-mission-grid,
  .elementor .cxs-content-page .cxs-contest-intro,
  .elementor .cxs-content-page .cxs-form-layout,
  .elementor .cxs-content-page .cxs-video-grid,
  .elementor .cxs-content-page .cxs-page-gallery { grid-template-columns: 1fr; }
  /* 2026-10-05 shared phone hero standard, for every image-hero page outside the job center and the blog (the
     homepage's search-overlap hero is .hero:not(.cxs-page-hero) in sections.css and stays its own variant). A compact
     photo banner like the homepage's: 240px minimum, auto height so longer copy or enlarged text grows it (never
     clipped, never shrunk), text pinned 28px from the top rather than centred, 20px sides. The photo covers the banner;
     --cxs-hero-mx/-my come from the widget's "Phone focal point" fields and fall back to the desktop focal point. The
     overlay keeps its full-width bottom-up gradient so the text stays readable over any photo. */
  .cxs-section .cxs-page-hero .hero-banner { display: flex; align-items: flex-start; min-height: 240px; overflow: hidden; }
  .cxs-section .cxs-page-hero .hero-img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: var(--cxs-hero-mx, var(--cxs-hero-x)) var(--cxs-hero-my, var(--cxs-hero-y)); }
  .cxs-section .cxs-page-hero .hero-overlay { display: block; background: linear-gradient(90deg, rgba(8,30,52,.9) 0%, rgba(8,30,52,.7) 45%, rgba(8,30,52,.45) 100%), linear-gradient(0deg, rgba(8,30,52,.78), transparent 55%); }
  .cxs-section .cxs-page-hero .hero-inner.wrap { width: 100%; max-width: none; padding: 28px 20px; background: transparent; }
  /* Block-level so it starts exactly at the 28px inset instead of riding an inline line box. */
  .cxs-section .cxs-page-hero .eyebrow { display: flex; width: fit-content; max-width: 100%; font-size: 12px; line-height: 1.25; }
  /* 12px below the eyebrow, none when the hero has no eyebrow. */
  .cxs-section .cxs-page-hero .cxs-section-heading { margin-top: 0; max-width: none; font-size: 30px; font-weight: 800; line-height: 1.1; }
  .cxs-section .cxs-page-hero .eyebrow + .cxs-section-heading { margin-top: 12px; }
  .cxs-section .cxs-page-hero .hero-description { margin-top: 14px; max-width: none; font-size: 16px; font-weight: 400; line-height: 1.6; }
  .cxs-section .cxs-page-hero .hero-description > :first-child { margin-top: 0; }
  .cxs-section .cxs-page-hero .hero-description > :last-child { margin-bottom: 0; }
  .cxs-section .cxs-page-form .cxs-form-grid { grid-template-columns: 1fr; }
  .cxs-section .cxs-page-form .cxs-form-field.is-wide { grid-column: auto; }
  .cxs-section .cxs-page-form--card { padding: 24px 20px; border-radius: 18px; }
}
/* Turnstile's box is a fixed 300px. Below 390px a page-form card leaves its field less than that (308px at 390,
   238px at 320), so the widget is scaled to stay inside the card; zoom, unlike transform, also shrinks the space it
   takes. */
@media (max-width: 389px) {
  .cxs-section .cxs-page-form .cxs-form-turnstile .cf-turnstile { zoom: .9; }
}
@media (max-width: 359px) {
  .cxs-section .cxs-page-form .cxs-form-turnstile .cf-turnstile { zoom: .78; }
}
@media (max-width: 600px) {
  .cxs-section .cxs-page-form input[type=submit] { width: 100%; }
  .elementor .cxs-content-page .cxs-editorial-section { padding-block: 48px; }
  .elementor .cxs-content-page :is(.cxs-info-grid, .cxs-action-grid, .cxs-principles, .cxs-page-gallery, .cxs-topic-nav) { grid-template-columns: 1fr; }
  .elementor .cxs-content-page :is(.cxs-info-card, .cxs-action-card, .cxs-principles > *) { padding: 22px; }
  .elementor .cxs-content-page :is(.cxs-contact-layout, .cxs-form-layout) .cxs-page-form { padding: 24px 20px; }
  .elementor .cxs-content-page .cxs-dark-panel { padding: 28px 22px; }
  .cxs-photo-page .cxs-page-form .cxs-editorial-inner { padding: 24px 20px; }
}
/* 2026-10-05 shared phone hero standard, continued: 28px in total from the banner's bottom edge to the first
   content, whatever section follows. The element after the hero widget gets the 28px (or, when the hero sits alone in a
   wrapper, the element after that wrapper); (0,6,0)+ so it replaces the section's own top padding, page-scoped ones
   included, instead of stacking on it. When that section opens with an atomic layout wrapper carrying its own top
   padding (Facilities, Video Gallery, Community Efforts: 10-28px), the wrapper's top padding goes so the two never add
   up. Bottom padding is untouched. */
@media (max-width: 767px) {
  .elementor .elementor-element.elementor-widget-cxs-section-hero:has(.cxs-section .hero.cxs-page-hero) + .elementor-element,
  .elementor .elementor-element:has(> .elementor-widget-cxs-section-hero:only-child .cxs-page-hero, > .e-con-inner > .elementor-widget-cxs-section-hero:only-child .cxs-page-hero) + .elementor-element { margin-top: 0; padding-top: 28px; }
  .elementor .elementor-element.elementor-widget-cxs-section-hero:has(.cxs-section .hero.cxs-page-hero) + .elementor-element > :is(.e-flexbox-base, .e-grid-base, .e-div-block-base):first-child,
  .elementor .elementor-element:has(> .elementor-widget-cxs-section-hero:only-child .cxs-page-hero, > .e-con-inner > .elementor-widget-cxs-section-hero:only-child .cxs-page-hero) + .elementor-element > :is(.e-flexbox-base, .e-grid-base, .e-div-block-base):first-child { margin-top: 0; padding-top: 0; }
}
/* Workbook main-site pages: native content, images, and reusable sections. */
.elementor .cxs-main-build .cxs-build-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; }
.elementor .cxs-main-build .cxs-build-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor .cxs-main-build .cxs-build-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.elementor .cxs-main-build .cxs-build-column { min-width: 0; }
.elementor .cxs-main-build .cxs-build-title { padding-block: clamp(48px, 7vw, 88px) 24px; }
/* Title sections often end flush with the H1 (no bottom padding), and its tight line-height lets descenders (g, y, p)
   hang a few pixels below the box. The next section is a positioned white container painted later, so it covered them;
   lifting the title one layer keeps the glyphs whole without changing any spacing. */
.elementor .cxs-main-build .cxs-build-title { z-index: 1; }
/* 2026-09-28 shared standard for pages without an image hero. (0,5,1) so weight/line-height beat the
   .cxs-editorial-section :is(...) heading rule; .cxs-build-simple-title keeps its smaller 42px style. */
.elementor .cxs-content-page.cxs-main-build .cxs-build-title:not(.cxs-build-simple-title) h1 { max-width: 800px; margin-block: 0; color: #0a2540; font-size: clamp(30px, 4vw, 48px); font-weight: 800; line-height: 1.06; letter-spacing: -.025em; }
.elementor .cxs-main-build .cxs-editorial-copy { width: 100%; overflow-wrap: anywhere; }
.elementor .cxs-main-build .cxs-editorial-copy :is(p, ul, ol):last-child { margin-bottom: 0; }
.elementor .cxs-main-build .cxs-build-image img { display: block; max-width: 100%; height: auto; margin-inline: auto; border-radius: 12px; }
.elementor .cxs-main-build .cxs-build-grid .cxs-build-image img { max-height: 460px; object-fit: contain; }
.elementor .cxs-build-anders-team .cxs-build-grid .cxs-build-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.elementor .cxs-main-build blockquote { margin: 0; padding: 0; border: 0; font-size: 18px; line-height: 1.65; color: #123a5e; }
.elementor .cxs-main-build .cxs-build-podcast { padding-block: 24px; border-bottom: 1px solid #e4eaf1; }
.elementor .cxs-main-build .cxs-build-podcast .cxs-build-image img { max-width: 340px; }
.elementor .cxs-main-build audio { display: block; width: 100%; max-width: 680px; }
.elementor .cxs-main-build .cxs-build-embed { position: relative; width: 100%; aspect-ratio: 16 / 9; }
.elementor .cxs-main-build .cxs-build-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.elementor .cxs-main-build .cxs-editorial-copy table { display: block; max-width: 100%; overflow-x: auto; }
.elementor .cxs-main-build [id] { scroll-margin-top: 110px; }
.elementor .cxs-main-build .cxs-build-simple-title { padding-block: clamp(24px, 3vw, 40px) 0; }
.elementor .cxs-main-build .cxs-build-simple-title h1 { max-width: 36ch; font-size: clamp(32px, 3vw, 42px); letter-spacing: -.025em; }
.elementor .cxs-main-build .cxs-build-simple-title + .cxs-editorial-section { padding-top: clamp(16px, 2vw, 28px); }
@media (max-width: 1024px) {
  .elementor .cxs-main-build :is(.cxs-build-grid-3, .cxs-build-grid-4) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .elementor .cxs-main-build .cxs-build-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* The pay summary's optional second column was removed with the extra CTA. */
.elementor .cxs-benefits-page .cxs-source-single-column {
  grid-template-columns: minmax(0, 1fr) !important;
}
.elementor .cxs-main-build .cxs-build-scholarship-cta { background-color: var(--cxs-page-ink); background-blend-mode: multiply; }
.elementor .cxs-main-build .cxs-build-scholarship-cta .cxs-editorial-copy { color: #fff; }
.elementor .cxs-build-thank-you-information .cxs-build-simple-title { padding-bottom: 24px; }

/* Corrected referral page: source layout, using native Elementor content. */
.elementor .cxs-content-page.cxs-referral-corrected {
  padding: 0;
  gap: 0;
  background: #fff;
}
/* Desktop referral hero; phones (<=767px) use the shared phone hero standard, with the photo's phone focal point set on
   the widget (66% 35%, formerly a page rule here). */
@media (min-width: 768px) {
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-section .cxs-page-hero .hero-banner {
    min-height: clamp(360px, 44vh, 470px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--cxs-page-ink);
  }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-section .cxs-page-hero .hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: 50% 35%;
  }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-section .cxs-page-hero .hero-inner.wrap {
    width: 100%;
    max-width: 1196px;
    margin-inline: auto;
    padding: 22px clamp(20px, 4vw, 40px) 88px;
    background: transparent;
  }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-section .cxs-page-hero .cxs-section-heading {
    max-width: 20ch;
    margin: 18px 0 0;
    color: #fff;
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -.02em;
    text-wrap: balance;
  }
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-section .cxs-page-hero .hero-overlay {
  display: block;
  background: linear-gradient(90deg, rgba(8,30,52,.88), rgba(8,30,52,.62) 39%, rgba(8,30,52,.22) 70%, rgba(8,30,52,.08));
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-body {
  width: 100%;
  max-width: 1196px;
  margin-inline: auto;
  padding: clamp(40px, 5vw, 64px) clamp(20px, 4vw, 40px);
  gap: 0;
  background: #fff;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-form-column {
  width: 100%;
  max-width: 700px;
  min-width: 0;
  margin-inline: auto;
  padding: 0;
  gap: 0;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-form-host { padding: 0; }
/* Formstack builds the form after its own XHRs, so reserve its rendered height
   (889px desktop, 897px at 390-412px) or "Steps to earn" jumps ~900px down when
   it arrives (CLS 0.10 desktop / 0.26 mobile). */
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-form-host { min-height: 900px; }
/* Formstack's Select2 v3 choice expects its 12px vertical padding outside the
   19px text line. Keep border-box/width intact while restoring that height. */
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-form-host .select2-choice {
  height: auto;
  min-height: 45px;
}
/* Formstack writes document coordinates into a popup inside an Elementor widget.
   The referral-only bridge supplies the widget's negative document origin. */
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-form-host #dvFastForms #select2-drop {
  translate: var(--cxs-referral-drop-x, 0px) var(--cxs-referral-drop-y, 0px);
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-intro {
  padding-inline: 6px;
  margin-bottom: 26px;
  color: var(--cxs-page-navy);
  font-size: 19px;
  line-height: 1.55;
  text-wrap: pretty;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-intro p {
  margin: 0;
  color: inherit;
  font: inherit;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-related {
  width: 100%;
  margin-top: 40px;
  padding: 36px 0 0;
  gap: 0;
  border-top: 1px solid #d3deea;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps { padding: 0; gap: 0; }
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps .elementor-heading-title {
  margin: 0 0 24px;
  color: var(--cxs-page-ink);
  font-size: clamp(28px, 3vw, 34px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps-list ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: referral-step;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps-list li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-width: 0;
  margin: 0;
  color: var(--cxs-page-muted);
  font-size: 15px;
  line-height: 1.7;
  counter-increment: referral-step;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps-list li::before {
  content: counter(referral-step);
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #eaf3dc;
  color: var(--cxs-page-navy);
  font-size: 15px;
  font-weight: 750;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps-note {
  margin-top: 24px;
  color: var(--cxs-page-navy);
  font-size: 15px;
  font-weight: 600;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps-note p { margin: 0; color: inherit; font: inherit; }
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin-top: 32px;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--cxs-page-line);
  border-radius: 20px;
  background: var(--cxs-page-soft);
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel {
  min-width: 0;
  padding: 28px 30px;
  gap: 0;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel + .cxs-referral-support-panel {
  border-left: 1px solid #d3deea;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel .elementor-heading-title {
  margin: 0 0 18px;
  color: var(--cxs-page-ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel ul {
  margin: 0;
  padding-left: 20px;
  color: var(--cxs-page-muted);
  font-size: 15px;
  line-height: 1.65;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel li {
  margin: 0 0 10px;
  padding-left: 3px;
}
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel li:last-child { margin-bottom: 0; }
.elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel li::marker { color: var(--cxs-page-green); }

@media (max-width: 900px) {
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-steps-list ol { grid-template-columns: 1fr; gap: 18px; }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel { padding: 25px 24px; }
}
@media (max-width: 700px) {
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support { grid-template-columns: 1fr; }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel + .cxs-referral-support-panel { border-left: 0; border-top: 1px solid #d3deea; }
}
@media (max-width: 600px) {
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-intro { font-size: 17px; }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-related { margin-top: 30px; padding-top: 28px; }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel { padding: 24px 20px; }
  .elementor .cxs-content-page.cxs-referral-corrected .cxs-referral-support-panel .elementor-heading-title { font-size: 22px; }
}
