.elementor-kit-5{--e-global-color-primary:#00989B;--e-global-color-secondary:#C7451F;--e-global-color-text:#0B2A2C;--e-global-color-accent:#F5A623;--e-global-color-aa_teal_deep:#007E81;--e-global-color-aa_teal_ink:#04494B;--e-global-color-aa_teal_wash:#DCF0EF;--e-global-color-aa_navy:#0C2726;--e-global-color-aa_cream:#FBF6EF;--e-global-color-aa_muted:#547170;--e-global-color-aa_hair:#DCE7E6;--e-global-color-aa_coral:#F0674A;--e-global-color-aa_coral_deep:#D9532F;--e-global-color-aa_coral_wash:#FDE3DC;--e-global-color-aa_amber_wash:#FDF0D7;--e-global-color-aa_amber_icon:#B37310;--e-global-color-aa_cta_coral:#C7451F;--e-global-color-aa_cta_coral_hover:#B33D1A;--e-global-color-aa_cta_coral_shadow:#7C2C12;--e-global-color-aa_dark_on_teal:#06302F;--e-global-color-aa_proof_text:#EAF6F5;--e-global-color-aa_proof_eyebrow:#7FE3E4;--e-global-color-aa_proof_muted:#9CC7C6;--e-global-typography-primary-font-family:"Poppins";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:600;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1180px;}.e-con{--container-max-width:1180px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===== Pass 14 global custom CSS (Elementor Kit) =====
   Everything here is a rule with no exact native Elementor control equivalent.
   All colors/shadows/typography live on the widgets themselves via native controls. */

/* Continuous float animation keyframes for hero/final-CTA mascot + trail images.
   NOTE: the actual "animation: aa-floaty ..." rule that USES this keyframe lives on
   each image widget's own scoped Custom CSS (via the ".elementor-kit-5" macro) - Elementor's
   generic "CSS Classes" advanced control only exists on container/section/column
   elements, NOT on plain widgets (image/button/etc), so a shared class name here
   would silently never attach. Confirmed by reading container.php/column.php/section.php
   control registration - css_classes is absent from widget-base.php entirely. */
@keyframes aa-floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Card hover lift (router grid, cards ARE containers so css_classes DOES apply here):
   translate is not a plain Elementor control on containers without the fragile
   Transform-popover mechanism; box-shadow itself IS native (see the container's own
   Box Shadow / Box Shadow Hover tabs). */
.aa-card:hover { transform: translate(-2px,-2px); }

/* Footer link hover color (plain <a> tags hand-written into HTML widgets carry their
   own literal class="aa-footer-link", not Elementor's css_classes control, so this one
   does work as a shared class). */
.aa-footer-link:hover { color: #7FE3E4; }

/* Focus-visible outline, matches mockup exactly */
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 3px solid #06302F;
  outline-offset: 2px;
}

/* Respect reduced-motion: disable animation/transition but never leave content hidden
   (guards against Elementor's own .elementor-invisible entrance-animation class) */
@media (prefers-reduced-motion: reduce) {
  *, .aa-card { animation: none !important; transition: none !important; }
  .elementor-invisible { visibility: visible !important; opacity: 1 !important; }
}

/* aa-overflow-guard (2026-07-29): belt-and-braces only, added AFTER the real
   header mobile-nav/width fix confirmed zero overflow via a live 375-1280px
   viewport sweep. html/body scrollbar-gutter stays default (not `overflow-x` on
   <html>, which would break the sticky header per a known Elementor gotcha --
   scoped to body only, and only the x-axis so vertical scroll/sticky is untouched). */
body { overflow-x: clip; }/* End custom CSS */