.elementor-412 .elementor-element.elementor-element-4848bd9{--display:flex;--min-height:966px;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--overlay-opacity:1;}.elementor-412 .elementor-element.elementor-element-4848bd9:not(.elementor-motion-effects-element-type-background), .elementor-412 .elementor-element.elementor-element-4848bd9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-a05b7ea );}.elementor-412 .elementor-element.elementor-element-4848bd9::before, .elementor-412 .elementor-element.elementor-element-4848bd9 > .elementor-background-video-container::before, .elementor-412 .elementor-element.elementor-element-4848bd9 > .e-con-inner > .elementor-background-video-container::before, .elementor-412 .elementor-element.elementor-element-4848bd9 > .elementor-background-slideshow::before, .elementor-412 .elementor-element.elementor-element-4848bd9 > .e-con-inner > .elementor-background-slideshow::before, .elementor-412 .elementor-element.elementor-element-4848bd9 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-412 .elementor-element.elementor-element-7b8690b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:var(--space-5) var(--space-5);--row-gap:var(--space-5);--column-gap:var(--space-5);}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-icon-box .elementor-icon-box-title a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-wrapper{align-items:center;gap:10px;}.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-title{margin-block-end:0px;}.elementor-412 .elementor-element.elementor-element-32192bd.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-412 .elementor-element.elementor-element-32192bd.elementor-view-framed .elementor-icon, .elementor-412 .elementor-element.elementor-element-32192bd.elementor-view-default .elementor-icon{fill:var( --e-global-color-secondary );color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon{font-size:34px;}.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-title, .elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-title a{font-family:"Merriweather", Sans-serif;font-size:1rem;font-weight:700;}.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-description{font-family:var( --e-global-typography-fda16a2-font-family ), Sans-serif;font-size:var( --e-global-typography-fda16a2-font-size );font-weight:var( --e-global-typography-fda16a2-font-weight );color:var( --e-global-color-v4-colour-ca-blue );}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-wrapper{align-items:center;gap:10px;}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-title{margin-block-end:0px;}.elementor-412 .elementor-element.elementor-element-1ec3ba1.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-412 .elementor-element.elementor-element-1ec3ba1.elementor-view-framed .elementor-icon, .elementor-412 .elementor-element.elementor-element-1ec3ba1.elementor-view-default .elementor-icon{fill:var( --e-global-color-secondary );color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon{font-size:34px;}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-title, .elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-title a{font-family:"Merriweather", Sans-serif;font-size:1rem;font-weight:700;}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-description{font-family:var( --e-global-typography-fda16a2-font-family ), Sans-serif;font-size:var( --e-global-typography-fda16a2-font-size );font-weight:var( --e-global-typography-fda16a2-font-weight );color:var( --e-global-color-v4-colour-ca-blue );}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-wrapper{align-items:center;gap:10px;}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-title{margin-block-end:0px;}.elementor-412 .elementor-element.elementor-element-87870ab.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-412 .elementor-element.elementor-element-87870ab.elementor-view-framed .elementor-icon, .elementor-412 .elementor-element.elementor-element-87870ab.elementor-view-default .elementor-icon{fill:var( --e-global-color-secondary );color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon{font-size:34px;}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-title, .elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-title a{font-family:"Merriweather", Sans-serif;font-size:1rem;font-weight:700;}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-description{font-family:var( --e-global-typography-fda16a2-font-family ), Sans-serif;font-size:var( --e-global-typography-fda16a2-font-size );font-weight:var( --e-global-typography-fda16a2-font-weight );color:var( --e-global-color-v4-colour-ca-blue );}@media(max-width:1366px){.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}}@media(max-width:1024px){.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}}@media(max-width:767px){.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}}@media(min-width:2400px){.elementor-412 .elementor-element.elementor-element-32192bd .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-1ec3ba1 .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}.elementor-412 .elementor-element.elementor-element-87870ab .elementor-icon-box-description{font-size:var( --e-global-typography-fda16a2-font-size );}}/* Start custom CSS for container, class: .elementor-element-4848bd9 *//* ============================================================================
   CAULFIELD AQUATICS — Formstack embed override
   ----------------------------------------------------------------------------
   WHAT THIS DOES
   Restyles a Formstack JavaScript/iframe-less embedded form to match the
   Caulfield Aquatics brand (Merriweather + Roboto, navy/gold palette, soft
   radii, navy-tinted shadows, gold focus ring, gold primary CTA with navy text).

   HOW TO USE
   1. Paste this whole file where the form lives:
        • WordPress/Elementor:  Custom Code / HTML snippet in the <head>,
          or Appearance ▸ Customise ▸ Additional CSS, or Elementor ▸
          Site Settings ▸ Custom CSS.
        • Formstack itself:  Form ▸ Settings ▸ Theme ▸ "Custom CSS" box.
   2. Everything is scoped to .fsBody so it won't leak into the rest of the page.
   3. It uses !important on a few rules because Formstack ships heavy inline /
      theme CSS — that's expected, leave them in.

   NOTE: This targets Formstack's standard JS-embed markup (.fsForm, .fsLabel,
   .fsField, .fsSubmitButton …). If you use the older <iframe> embed, CSS
   cannot reach inside it — switch to the JavaScript embed code for this to work.
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700;900&family=Roboto:wght@400;500;700&display=swap');

/* ---- Brand tokens (scoped so they can't collide) ------------------------- */
.fsBody {
  --ca-navy:#043673;  --ca-navy-700:#032a5a;  --ca-navy-900:#021d3f;
  --ca-gold:#DD971A;  --ca-gold-700:#c4830f;  --ca-gold-800:#a66e0c;
  --ca-white:#ffffff;
  --ca-text:#444444;  --ca-text-muted:#5c6670;  --ca-text-subtle:#8a929a;
  --ca-border:#dfe2e4;  --ca-border-strong:#c6cbd0;  --ca-border-subtle:#edeff0;
  --ca-bg:#ffffff;  --ca-bg-subtle:#edeff0;
  --ca-error:#cf3b3b;  --ca-error-bg:#f8dcdc;  --ca-error-text:#8f2020;
  --ca-success:#2f8f6b;  --ca-success-bg:#d6ecdf;  --ca-success-text:#155d42;

  --ca-radius-sm:8px;  --ca-radius-md:12px;  --ca-radius-lg:20px;
  --ca-radius-pill:999px;
  --ca-shadow-md:0 6px 18px rgba(4,54,115,.09);
  --ca-shadow-lg:0 14px 36px rgba(4,54,115,.12);
  --ca-focus-ring:0 0 0 3px rgba(221,151,26,.35);

  --ca-font-heading:'Merriweather', Georgia, 'Times New Roman', serif;
  --ca-font-body:'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ============================================================================
   1. FORM SHELL
   ============================================================================ */
.fsBody {
  background:transparent;
  font-family:var(--ca-font-body);
  color:var(--ca-text);
  -webkit-font-smoothing:antialiased;
}

.fsBody .fsForm {
  max-width:680px;
  margin:0 auto;
  padding:32px 32px 28px;
  background:var(--ca-white);
  border:1px solid var(--ca-border-subtle);
  border-radius:var(--ca-radius-lg);
  box-shadow:var(--ca-shadow-md);
  font-family:var(--ca-font-body);
}

/* Form title + description (top of form) */
.fsBody .fsForm h1,
.fsBody .form-title,
.fsBody .fsSectionHeading {
  font-family:var(--ca-font-heading) !important;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--ca-navy) !important;
  line-height:1.14;
  margin:0 0 8px;
}
.fsBody .fsForm h1 { font-size:1.875rem; font-weight:900; }
.fsBody .fsSectionHeading { font-size:1.25rem; font-weight:700; }

.fsBody .form-description,
.fsBody .fsSectionText,
.fsBody .fsSectionExplanation {
  font-family:var(--ca-font-body) !important;
  font-size:1rem;
  line-height:1.65;
  color:var(--ca-text-muted) !important;
  margin:0 0 20px;
}

/* Section blocks (page/section breaks) */
.fsBody .fsSection {
  border:none;
  margin-top:0;
  padding-top:0;
}

/* Belt-and-braces: strip top/bottom borders from the header/first structures */
.fsBody .fsForm hr,
.fsBody .fsSectionHeader,
.fsBody .fsSectionHeading,
.fsBody .fsSection > .fsSectionHeader,
.fsBody fieldset.fsSection > legend {
  border-top:none !important;
  border-bottom:none !important;
}
.fsBody .fsForm > *:first-child,
.fsBody fieldset.fsSection:first-of-type {
  border-top:none !important;
  margin-top:0 !important;
  padding-top:0 !important;
}

/* ============================================================================
   2. ROWS & SPACING
   ============================================================================ */
.fsBody .fsFieldRow,
.fsBody .fsRow {
  margin-bottom:18px;
}
.fsBody .fsRowBody { padding:0; }

/* ============================================================================
   3. LABELS
   ============================================================================ */
.fsBody .fsLabel,
.fsBody label.fsLabel,
.fsBody .fsSupporting,
.fsBody .fsLabelVertical .fsLabel {
  font-family:var(--ca-font-body) !important;
  font-weight:700;
  font-size:.9375rem;
  color:var(--ca-navy) !important;
  line-height:1.4;
  margin-bottom:7px;
  display:block;
}

/* Required asterisk */
.fsBody .fsRequiredMarker,
.fsBody .fsRequiredLabel {
  color:var(--ca-error) !important;
  font-weight:700;
  margin-left:2px;
}

/* Help / supporting text under a label */
.fsBody .fsSupporting,
.fsBody .fsInstructions {
  font-weight:400 !important;
  font-size:.8125rem;
  color:var(--ca-text-subtle) !important;
  margin-top:4px;
}

/* ============================================================================
   4. INPUTS, SELECTS, TEXTAREAS
   ============================================================================ */
.fsBody input[type="text"],
.fsBody input[type="email"],
.fsBody input[type="tel"],
.fsBody input[type="number"],
.fsBody input[type="url"],
.fsBody input[type="password"],
.fsBody input[type="date"],
.fsBody input[type="time"],
.fsBody input.fsField,
.fsBody select,
.fsBody select.fsField,
.fsBody textarea,
.fsBody textarea.fsField {
  font-family:var(--ca-font-body) !important;
  font-size:15px !important;
  color:var(--ca-text) !important;
  background-color:var(--ca-white) !important;
  border:1.5px solid var(--ca-border-strong) !important;
  border-radius:var(--ca-radius-md) !important;
  padding:11px 14px !important;
  width:100% !important;
  box-shadow:none !important;
  line-height:1.45 !important;
  transition:border-color .15s ease, box-shadow .15s ease;
  box-sizing:border-box;
}

.fsBody textarea,
.fsBody textarea.fsField { min-height:120px; resize:vertical; }

.fsBody input::placeholder,
.fsBody textarea::placeholder { color:var(--ca-text-subtle) !important; opacity:1; }

/* Focus state — gold ring (accessibility-first, matches brand accent) */
.fsBody input:focus,
.fsBody select:focus,
.fsBody textarea:focus,
.fsBody .fsField:focus {
  outline:none !important;
  border-color:var(--ca-gold) !important;
  box-shadow:var(--ca-focus-ring) !important;
}

/* Native select arrow tidy-up */
.fsBody select,
.fsBody select.fsField {
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a929a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px !important;
}

/* ============================================================================
   5. CHECKBOXES & RADIOS
   ============================================================================ */
.fsBody .fsOptionLabel,
.fsBody .fieldset .fsOptionLabel,
.fsBody label.fsOptionLabel {
  font-family:var(--ca-font-body) !important;
  font-weight:400 !important;
  font-size:15px !important;
  color:var(--ca-text) !important;
  line-height:1.5;
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:5px 0;
  cursor:pointer;
}

.fsBody input[type="checkbox"],
.fsBody input[type="radio"] {
  width:18px !important;
  height:18px !important;
  margin:1px 0 0 !important;
  accent-color:var(--ca-navy);
  flex:0 0 auto;
  cursor:pointer;
}

/* ============================================================================
   6. SUBMIT BUTTON  (gold primary, navy text — Caulfield signature CTA)
   ============================================================================ */
.fsBody .fsSubmit { margin-top:24px; text-align:center; }

.fsBody .fsSubmitButton,
.fsBody input[type="submit"],
.fsBody button[type="submit"],
.fsBody .fsSubmitButton.fsFull {
  font-family:var(--ca-font-body) !important;
  font-weight:700 !important;
  font-size:16px !important;
  color:var(--ca-navy) !important;
  background:var(--ca-gold) !important;
  background-color:var(--ca-gold) !important;
  border:none !important;
  border-radius:var(--ca-radius-md) !important;
  padding:14px 28px !important;
  width:auto !important;
  cursor:pointer;
  text-shadow:none !important;
  box-shadow:none !important;
  transition:background-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.fsBody .fsSubmitButton:hover,
.fsBody input[type="submit"]:hover,
.fsBody button[type="submit"]:hover {
  background-color:var(--ca-gold-700) !important;
  box-shadow:var(--ca-shadow-md) !important;
}
.fsBody .fsSubmitButton:active,
.fsBody input[type="submit"]:active {
  background-color:var(--ca-gold-800) !important;
  transform:translateY(1px);
}
.fsBody .fsSubmitButton:focus-visible,
.fsBody input[type="submit"]:focus-visible {
  outline:none !important;
  box-shadow:var(--ca-focus-ring) !important;
}

/* Previous / Next (multi-page) — navy secondary */
.fsBody .fsNextButton,
.fsBody .fsPreviousButton {
  font-family:var(--ca-font-body) !important;
  font-weight:700 !important;
  border-radius:var(--ca-radius-md) !important;
  padding:12px 22px !important;
  border:none !important;
  cursor:pointer;
}
.fsBody .fsNextButton { background-color:var(--ca-navy) !important; color:#fff !important; }
.fsBody .fsNextButton:hover { background-color:var(--ca-navy-700) !important; }
.fsBody .fsPreviousButton {
  background-color:transparent !important;
  color:var(--ca-navy) !important;
  box-shadow:inset 0 0 0 1.5px var(--ca-navy);
}
.fsBody .fsPreviousButton:hover { background-color:#eff4f8 !important; }

/* ============================================================================
   7. VALIDATION / ERROR STATES
   ============================================================================ */
/* Errored field — soft brand-red border + gentle tint ring (not alarm-bell) */
.fsBody .fsValidationError,
.fsBody .fsFieldFocused.fsValidationError {
  border-color:transparent !important;
  border-radius: 12px;
}
.fsBody .fsValidationError input,
.fsBody .fsValidationError select,
.fsBody .fsValidationError textarea,
.fsBody input.fsValidationError,
.fsBody select.fsValidationError,
.fsBody textarea.fsValidationError {
  border-color:var(--ca-error) !important;
  box-shadow:0 0 0 3px rgba(207,59,59,.14) !important;
}

/* Inline "Required field" message — soft tinted pill, no harsh border/box */
.fsBody .fsError,
.fsBody .fsValidationMessage,
.fsBody .fsFieldError,
.fsBody .fform-field-error,
.fsBody [class*="ValidationMessage"],
.fsBody [class*="fieldError"] {
  font-family:var(--ca-font-body) !important;
  font-size:.8125rem !important;
  font-weight:500 !important;
  color:var(--ca-error-text) !important;
  background:var(--ca-error-bg) !important;
  border:none !important;
  border-radius:var(--ca-radius-sm) !important;
  padding:6px 11px !important;
  margin-top:7px !important;
  box-shadow:none !important;
  display:inline-flex !important;
  align-items:center;
  gap:6px;
}
/* Tame Formstack's bright-red circle "!" icon → calm brand red */
.fsBody .fsError svg,
.fsBody .fsValidationMessage svg,
.fsBody .fsFieldError svg,
.fsBody [class*="ValidationMessage"] svg {
  fill:var(--ca-error-text) !important;
  color:var(--ca-error-text) !important;
  opacity:.9;
}
.fsBody .fsError [class*="icon"],
.fsBody .fsValidationMessage [class*="icon"] {
  background-color:var(--ca-error-text) !important;
}

/* Page-level error banner */
.fsBody .fsValidationCount,
.fsBody .fform-error {
  font-family:var(--ca-font-body) !important;
  background:var(--ca-error-bg) !important;
  color:var(--ca-error-text) !important;
  border:none !important;
  border-radius:var(--ca-radius-md) !important;
  padding:12px 16px !important;
}

/* ============================================================================
   8. CONFIRMATION / SUCCESS MESSAGE
   ============================================================================ */
.fsBody .fsConfirmationField,
.fsBody .fsSuccess,
.fsBody #fsSubmissionCephalopod {
  font-family:var(--ca-font-body) !important;
  color:var(--ca-success-text) !important;
  background:var(--ca-success-bg) !important;
  border:none !important;
  border-radius:var(--ca-radius-lg) !important;
  padding:24px 28px !important;
  box-shadow:var(--ca-shadow-md);
}
.fsBody .fsConfirmationField h1,
.fsBody .fsConfirmationField h2 {
  font-family:var(--ca-font-heading) !important;
  color:var(--ca-success-text) !important;
}

/* ============================================================================
   9. PROGRESS BAR (multi-page forms)
   ============================================================================ */
.fsBody .fsProgress,
.fsBody .fsProgressBarContainer {
  background:var(--ca-border-subtle) !important;
  border-radius:var(--ca-radius-pill) !important;
  overflow:hidden;
}
.fsBody .fsProgressBar,
.fsBody .fsProgressBarFill {
  background:var(--ca-gold) !important;
}

/* ============================================================================
   10. MISC TIDY-UP
   ============================================================================ */
/* "powered by" / branding spacing */
.fsBody .fsForm + *,
.fsBody .fsCopyright { font-size:.75rem; color:var(--ca-text-subtle); }

/* Address / name sub-field labels */
.fsBody .fsSubField label,
.fsBody .fsSubFieldLabel {
  font-family:var(--ca-font-body) !important;
  font-weight:400 !important;
  font-size:.8125rem !important;
  color:var(--ca-text-subtle) !important;
}/* End custom CSS */