.elementor-kit-21833{--e-global-color-primary:#E00647;--e-global-color-secondary:#401C2A;--e-global-color-text:#5E4A4F;--e-global-color-accent:#C10638;--e-global-color-a360394:#EEE9ED;--e-global-color-31b4c61:#121212;--e-global-color-c6e3b8a:#2B2B2B;--e-global-color-992b2ad:#E3E3E3;--e-global-color-119f819:#272C4C;--e-global-color-550580e:#FFFFFF;--e-global-color-20cb1c0:#4C24CB;--e-global-color-75bc4a0:#342562;--e-global-color-cd5c2ae4:#E00647;--e-global-color-e5563208:#C10638;--e-global-color-25100081:#9D072F;--e-global-color-a79436ca:#F23668;--e-global-color-28c5ca59:#FABDCD;--e-global-color-23127617:#FCE5EC;--e-global-color-194f37b4:#401C2A;--e-global-color-df30e3c2:#321520;--e-global-color-e88b5241:#250E16;--e-global-color-3a791247:#FCF3F6;--e-global-color-9fcb4a08:#FEFAFB;--e-global-color-b9490474:#271117;--e-global-color-e2979c9f:#2C161C;--e-global-color-05a89bbc:#5E4A4F;--e-global-color-d35f147c:#82686F;--e-global-color-54b26b6f:#EFE1E5;--e-global-color-ea69f923:#F5EAED;--e-global-color-de19021d:#FFFDFE;--e-global-color-dcd742af:#C97A0B;--e-global-color-6e0eeaa8:#F5A31B;--e-global-color-318a2c38:#147A45;--e-global-color-b574ceea:#FFFCFD;--e-global-color-7d8d27df:#FFEBF0;--e-global-color-77c67bbe:#FAF5F6;--e-global-color-7b175ba4:#D1C2C6;--e-global-color-02647bd9:#FF6B93;--e-global-color-1e8e03bf:#FFF7F9;--e-global-color-e9a99a38:#F30A4F;--e-global-color-2e56976f:#F86A8E;--e-global-typography-primary-font-family:"Bricolage Grotesque";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Bricolage Grotesque";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Hanken Grotesk";--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Hanken Grotesk";--e-global-typography-accent-font-weight:600;--e-global-typography-89e29563-font-family:"Bricolage Grotesque";--e-global-typography-89e29563-font-size:70.4px;--e-global-typography-89e29563-font-weight:800;--e-global-typography-89e29563-line-height:1.06em;--e-global-typography-89e29563-letter-spacing:-0.034em;--e-global-typography-4073f8b8-font-family:"Bricolage Grotesque";--e-global-typography-4073f8b8-font-size:50px;--e-global-typography-4073f8b8-font-weight:800;--e-global-typography-4073f8b8-line-height:1.12em;--e-global-typography-4073f8b8-letter-spacing:-0.03em;--e-global-typography-b7535f22-font-family:"Bricolage Grotesque";--e-global-typography-b7535f22-font-size:21.6px;--e-global-typography-b7535f22-font-weight:700;--e-global-typography-b7535f22-line-height:1.32em;--e-global-typography-b7535f22-letter-spacing:-0.018em;--e-global-typography-d3a34b17-font-family:"Hanken Grotesk";--e-global-typography-d3a34b17-font-size:16px;--e-global-typography-d3a34b17-font-weight:400;--e-global-typography-d3a34b17-line-height:1.5em;--e-global-typography-0cab729f-font-family:"Hanken Grotesk";--e-global-typography-0cab729f-font-size:13px;--e-global-typography-0cab729f-font-weight:600;--e-global-typography-0cab729f-text-transform:uppercase;--e-global-typography-0cab729f-line-height:1.35em;--e-global-typography-0cab729f-letter-spacing:0.09em;color:var( --e-global-color-text );}.elementor-kit-21833 e-page-transition{background-color:#FFBC7D;}.elementor-kit-21833 a{color:var( --e-global-color-primary );}.elementor-kit-21833 h1{color:var( --e-global-color-31b4c61 );}.elementor-kit-21833 h2{color:var( --e-global-color-31b4c61 );}.elementor-kit-21833 h3{color:var( --e-global-color-31b4c61 );}.elementor-kit-21833 h4{color:var( --e-global-color-secondary );}.elementor-kit-21833 h5{color:var( --e-global-color-secondary );}.elementor-kit-21833 h6{color:var( --e-global-color-secondary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-21833{--e-global-typography-89e29563-font-size:63px;--e-global-typography-4073f8b8-font-size:42px;--e-global-typography-b7535f22-font-size:21px;--e-global-typography-d3a34b17-font-size:16px;--e-global-typography-0cab729f-font-size:13px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-21833{--e-global-typography-89e29563-font-size:42px;--e-global-typography-4073f8b8-font-size:30px;--e-global-typography-b7535f22-font-size:18px;--e-global-typography-d3a34b17-font-size:16px;--e-global-typography-0cab729f-font-size:13px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ENTRANCE MOTION — the house curve for Elementor's Entrance Animation.
   Moved here 2026-09-05 from the child theme stylesheet, which Tusher's
   2026-08-25 rule forbids. This is Elementor Pro Site Settings CSS, not theme CSS.
   WHY IT IS NOT A NATIVE CONTROL: Elementor's Entrance Animation control chooses
   a NAME from a fixed list. It has no control for travel distance, easing curve or
   duration in ms, and its own fadeInUp travels 100% of the element's own height —
   a 500px fall on a tall card, which reads as dropping. These rules cap it at 34px.
   NATIVE-EXEMPT: animation-name, animation-duration, animation-timing-function,
   animation-fill-mode, animation, transform, opacity — no Elementor control exists
   for an entrance animation's distance, curve or millisecond duration.
   animation-fill-mode:both is load-bearing: without it an element with a delay sits
   fully visible during the wait and then blinks out before rising. */
@keyframes wpb-rise{ from{ opacity:0; transform:translate3d(0,34px,0); }
                       to{ opacity:1; transform:none; } }
@keyframes wpb-appear{ from{ opacity:0; } to{ opacity:1; } }
html .elementor-element.animated{ animation-duration:620ms;
  animation-timing-function:cubic-bezier(.16,.84,.44,1); animation-fill-mode:both; }
html .elementor-element.animated.fadeInUp{ animation-name:wpb-rise; }
html .elementor-element.animated.fadeIn{ animation-name:wpb-appear; }
@media (prefers-reduced-motion: reduce){
  html .elementor-element.animated{ animation:none !important; opacity:1 !important; transform:none !important; } }

/* HERO WALL DRIFT - travel and speed matched to the approved prototype index.html.
   The old wpb-wall-drift (child theme, 420px) moved at ~8px/s; the prototype runs
   34.6-50.7px/s. Travel raised to 1600px so the ping-pong turn is rare instead of
   every 8 seconds. A NEW NAME is used so nothing depends on the theme copy.
   NATIVE-EXEMPT: transform - Elementor has no control for a looping keyframe
   animation. Motion Effects only reacts to scroll position, it cannot loop. */
@keyframes wpb-wall-drift2{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(0,-1600px,0); } }

/* WPB-MIG-VARS 2026-09-13 — design variables the new header, footer and pages reference inside their element Custom CSS.
   On dev they came from the child theme stylesheet (forbidden on live by the 2026-08-25 rule), so they live here instead.
   NATIVE-EXEMPT: custom properties — Elementor has no control that defines a CSS variable; its Global Colors print
   --e-global-color-* names, and the copied element CSS names --n-*. Variables alone change nothing on older pages. */
:root{--n-brand:#E00647;--n-brand-600:#C10638;--n-brand-700:#9D072F;--n-brand-400:#F23668;--n-brand-200:#FABDCD;--n-brand-100:#FCE5EC;--n-deep:#401C2A;--n-deep-900:#250E16;--n-deep-800:#321520;--n-rose:#FCF3F6;--n-rose-2:#FEFAFB;--n-ink:#271117;--n-heading:#2C161C;--n-text:#5E4A4F;--n-muted:#82686F;--n-line:#EFE1E5;--n-line-2:#F5EAED;--n-card:#FFFDFE;--n-accent:#C97A0B;--n-accent-fill:#F5A31B;--n-green:#147A45;--n-on-brand:#FFFCFD;--n-on-brand-2:#FFEBF0;--n-on-ink:#FAF5F6;--n-on-ink-2:#D1C2C6;--n-r-xs:8px;--n-r-s:12px;--n-r:16px;--n-r-l:20px;--n-r-xl:28px;--n-r-pill:999px;--n-sh-xs:0 2px 10px hsl(336 46% 20% / .05);--n-sh-sm:0 6px 22px hsl(336 46% 20% / .06);--n-sh:0 16px 52px hsl(336 46% 20% / .09);--n-sh-lg:0 34px 96px hsl(336 46% 20% / .14);--n-display:'Bricolage Grotesque','Hanken Grotesk',system-ui,sans-serif;--n-body:'Hanken Grotesk',system-ui,sans-serif;--n-mono:'Hanken Grotesk',system-ui,sans-serif;--n-dur-fast:150ms;--n-dur-base:240ms;--n-dur-slow:520ms;--n-t:.24s cubic-bezier(.2,0,0,1);--n-ease-standard:cubic-bezier(.2,0,0,1);--n-ease-entrance:cubic-bezier(.05,.7,.1,1)}/* End custom CSS */