:root{
  --eo-gold:#F7B718; --eo-goldm:#E4B84A; --eo-goldp:#F8ECA8;
  --eo-accent:#C9252C; --eo-burg:#C9252C; --eo-claret:#C9252C;
  --eo-ink:#394240; --eo-ease:cubic-bezier(.22,1,.36,1);
}

/* Entrance reveals -------------------------------------------------------
   Applied by script only, so a browser with JS off sees the finished page. */
html.eo-motion .eo-rise{
  opacity:0;
  transform:translate3d(0,26px,0);
  transition:opacity .78s var(--eo-ease), transform .78s var(--eo-ease);
  transition-delay:var(--eo-d,0ms);
  will-change:opacity, transform;
}
html.eo-motion .eo-rise.eo-in{ opacity:1; transform:none; }

/* Images arrive with a slow settle and a wipe from the leading edge. */
html.eo-motion .eo-wipe{
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.05s var(--eo-ease);
  transition-delay:var(--eo-d,0ms);
}
html.eo-motion .eo-wipe.eo-in{ clip-path:inset(0 0 0 0); }
html.eo-motion .eo-wipe img{
  transform:scale(1.06);
  transition:transform 1.5s var(--eo-ease);
  transition-delay:var(--eo-d,0ms);
}
html.eo-motion .eo-wipe.eo-in img{ transform:none; }

/* A gold rule draws itself under every section heading. The pseudo-element is
   inside the heading's own box, so nothing below it moves. */
html.eo-motion .eo-rule{ position:relative; }
html.eo-motion .eo-rule::after{
  content:"";
  position:absolute; left:0; bottom:-14px;
  width:64px; height:2px;
  transform:scaleX(0); transform-origin:left center;
  background:linear-gradient(90deg,var(--eo-gold),var(--eo-goldm) 60%,rgba(228,184,74,0));
  transition:transform .9s var(--eo-ease) .18s;
}
html.eo-motion .eo-rule.eo-in::after{ transform:scaleX(1); }
html.eo-motion .eo-rule.eo-rule--mid::after{ left:50%; margin-left:-32px; transform-origin:center; }

/* Hover ------------------------------------------------------------------ */
.eo-lift{
  transition:transform .45s var(--eo-ease), box-shadow .45s var(--eo-ease);
}
.eo-lift:hover{ transform:translate3d(0,-3px,0); }

/* A single pass of light across a button, once, on hover. */
.eo-sheen{ position:relative; overflow:hidden; isolation:isolate; }
.eo-sheen::after{
  content:"";
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(105deg,rgba(255,252,246,0) 35%,rgba(248,236,168,.42) 50%,rgba(255,252,246,0) 65%);
  transform:translate3d(-120%,0,0);
  transition:transform .85s var(--eo-ease);
}
.eo-sheen:hover::after{ transform:translate3d(120%,0,0); }

/* Content links draw an underline rather than switching one on. */
.eo-underline{
  background-image:linear-gradient(var(--eo-goldm),var(--eo-goldm));
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0% 1px;
  transition:background-size .45s var(--eo-ease);
  text-decoration:none;
}
.eo-underline:hover{ background-size:100% 1px; }

/* Header ----------------------------------------------------------------- */
.eo-head-shrink{
  transition:box-shadow .5s var(--eo-ease), background-color .5s var(--eo-ease);
}
html.eo-scrolled .eo-head-shrink{
  box-shadow:0 10px 34px rgba(57,66,64,.16);
  /* no backdrop-filter: it would turn the header into the containing block for the
     fixed-position language dock on phones, pinning it over the logo. */
}

/* Scroll indicator ------------------------------------------------------- */
.eo-progress{
  position:fixed; inset:0 auto auto 0;
  height:2px; width:100%;
  transform:scaleX(0); transform-origin:left center;
  background:linear-gradient(90deg,var(--eo-claret),var(--eo-gold) 55%,var(--eo-goldp));
  z-index:99999; pointer-events:none;
}

/* Return to top ---------------------------------------------------------- */
.eo-top{
  /* Sits to the LEFT of the chat bubble (58px at right:24px / bottom:24px) so the two never overlap. */
  position:fixed; right:96px; bottom:30px; z-index:9998;
  width:46px; height:46px; display:grid; place-items:center;
  border:1px solid rgba(231,201,120,.8); border-radius:999px;
  background:radial-gradient(120% 120% at 30% 20%,#D63640 0%,#C9252C 45%,#BA0015 100%); color:#F2D48A;
  box-shadow:0 10px 26px -10px rgba(201,37,44,.6), inset 0 1px 0 rgba(255,255,255,.18);
  cursor:pointer; opacity:0; transform:translate3d(0,12px,0); pointer-events:none;
  transition:opacity .45s var(--eo-ease), transform .45s var(--eo-ease), box-shadow .45s var(--eo-ease);
}
.eo-top::before{
  content:""; position:absolute; inset:-5px; border-radius:inherit;
  border:1px solid rgba(231,201,120,.35); opacity:0; transform:scale(.9);
  transition:opacity .45s var(--eo-ease), transform .6s var(--eo-ease);
}
.eo-top:hover{ transform:translate3d(0,-3px,0); box-shadow:0 16px 30px -12px rgba(201,37,44,.7), inset 0 1px 0 rgba(255,255,255,.18); }
.eo-top:hover::before{ opacity:1; transform:scale(1); }
.eo-top svg{ transition:transform .35s var(--eo-ease); }
.eo-top:hover svg{ transform:translateY(-2px); }
.eo-top svg{ width:17px; height:17px; }
html.eo-scrolled-far .eo-top{ opacity:1; transform:none; pointer-events:auto; }

.eo-top:focus-visible{ outline:2px solid var(--eo-gold); outline-offset:3px; }

/* Parallax --------------------------------------------------------------- */
html.eo-motion .eo-parallax{ will-change:transform; }

/* Reduced motion --------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html.eo-motion .eo-rise,
  html.eo-motion .eo-wipe,
  html.eo-motion .eo-wipe img,
  html.eo-motion .eo-rule::after{
    opacity:1 !important;
    transform:none !important;
    clip-path:none !important;
    transition:none !important;
  }
  html.eo-motion .eo-rule::after{ transform:scaleX(1) !important; }
  .eo-lift, .eo-sheen::after, .eo-underline, .eo-top, .eo-progress{ transition:none !important; }
  .eo-progress{ display:none; }
}

/* Mobile ----------------------------------------------------------------- */
@media (max-width:900px){
  html.eo-motion .eo-rise{ transform:translate3d(0,18px,0); }
  html.eo-motion .eo-rule::after{ bottom:-10px; width:52px; }
  .eo-top{ right:84px; bottom:26px; width:42px; height:42px; }
  /* Parallax on a phone competes with the scroll gesture, so it is switched off. */
  html.eo-motion .eo-parallax{ transform:none !important; }
}

/* Global finish ---------------------------------------------------------- */
html{ scroll-behavior:smooth; }
::selection{ background:#F2D48A; color:#C9252C; }
html.eo-motion .eo-wipe{ overflow:hidden; }
html.eo-motion .eo-wipe.eo-in:hover img{ transform:scale(1.03); }
html.eo-motion .eo-wipe.eo-in img{ transition:transform 1.1s var(--eo-ease); }
.elementor-button:focus-visible, a:focus-visible, button:focus-visible{ outline:2px solid #F7B718; outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* Button pairs ---------------------------------------------------------
   Two or more buttons side by side always match: equal height on desktop,
   and on phones they stack full-width so neither one wraps onto two lines.
   Widgets hidden at a breakpoint (elementor-hidden-*) are left alone. */
.eo-pair{ align-items:stretch !important; column-gap:16px; row-gap:12px; }
.eo-pair > .elementor-widget-button{ align-self:stretch !important; height:auto; }
.eo-pair > .elementor-widget-button > .elementor-widget-container{ display:flex; width:100%; height:100%; }
.eo-pair > .elementor-widget-button .elementor-button-wrapper{ display:flex; width:100%; }
.eo-pair > .elementor-widget-button .elementor-button{ display:inline-flex; align-items:center; justify-content:center; text-align:center; min-height:100%; width:100%; }
@media (min-width:1025px){ .eo-pair > .elementor-widget-button:not(.elementor-hidden-desktop){ display:flex; } }
@media (min-width:768px) and (max-width:1024px){ .eo-pair > .elementor-widget-button:not(.elementor-hidden-tablet){ display:flex; } }
@media (max-width:767px){
  .eo-pair{ flex-direction:column; align-items:stretch; grid-template-columns:minmax(0,1fr) !important; grid-auto-flow:row !important; justify-items:stretch; }
  .eo-pair > .elementor-widget-button:not(.elementor-hidden-mobile){ display:flex; width:100% !important; max-width:100% !important; }
  .eo-pair > .elementor-widget-button .elementor-button{ min-height:56px; padding-top:14px; padding-bottom:14px; }
}
