/* Euphoria site plugin 2.2 — generic components.
   Colors and fonts come from Elementor > Site Settings: Global Colors (primary, secondary, text, accent and the
   optional custom colors ehsbg, ehssurf, ehsline, ehsmuted, ehsdark) and Global Fonts (primary = headings,
   text = body). Fallbacks are neutral; nothing here is brand-specific. */
body{
--ehs-ink:var(--e-global-color-text,#1f1f24);
--ehs-head:var(--e-global-color-primary,#1f1f24);
--ehs-brand:var(--e-global-color-secondary,#5b5b66);
--ehs-accent:var(--e-global-color-accent,#2b59c3);
--ehs-bg:var(--e-global-color-ehsbg,#fff);
--ehs-surf:var(--e-global-color-ehssurf,#f5f5f7);
--ehs-line:var(--e-global-color-ehsline,#dedee3);
--ehs-muted:var(--e-global-color-ehsmuted,#5e5e68);
--ehs-dark:var(--e-global-color-ehsdark,#1f1f24);
--ehs-font-head:var(--e-global-typography-primary-font-family,Georgia),Georgia,"Times New Roman",serif;
--ehs-font:var(--e-global-typography-text-font-family,system-ui),system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
--ehs-radius:2px;--ehs-radius-lg:2px;
--ehs-shadow:0 1px 2px rgb(0 0 0/.04),0 12px 32px -18px rgb(0 0 0/.22);
--ehs-shadow-lift:0 2px 6px rgb(0 0 0/.05),0 24px 48px -22px rgb(0 0 0/.28);
--ehs-t:200ms;--ehs-ease:cubic-bezier(.2,.7,.2,1);
}
.ehs-site{overflow-x:clip}
/* Skip link, focus and screen-reader text */
body a.ehs-skip{position:absolute;left:12px;top:-60px;z-index:100000;padding:12px 18px;border-radius:10px;background:var(--ehs-head);color:#fff;font:600 15px/1.2 var(--ehs-font);text-decoration:none;transition:top var(--ehs-t)}
.ehs-skip:focus{top:12px}
#main-content:focus{outline:none}
.ehs-site :focus-visible{outline:2px solid var(--ehs-accent);outline-offset:3px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ehs-placeholder{padding:14px 16px;border:1px dashed var(--ehs-line);border-radius:10px;color:var(--ehs-muted);font:14px/1.4 var(--ehs-font);background:var(--ehs-surf)}

/* Sticky header: add the class ehs-sticky to the header template's outer container. */
.ehs-site-header:has(.ehs-sticky){position:sticky;top:0;z-index:60}
.admin-bar .ehs-site-header:has(.ehs-sticky){top:32px}
@media (max-width:782px){.admin-bar .ehs-site-header:has(.ehs-sticky){top:0}}
.ehs-sticky{transition:box-shadow var(--ehs-t) var(--ehs-ease),background-color var(--ehs-t)}
.ehs-site-header.is-scrolled .ehs-sticky{box-shadow:0 8px 24px -16px rgb(0 0 0/.28)}
:where(html){scroll-padding-top:96px}


/* Buttons inside kit components: Site Settings > Buttons styles every <button> (.elementor-kit-N button), so component
   buttons reset those styles with body + element + class specificity and then set their own. */
body :is(.ehs-menu,.ehs-menu__drawer,.ehs-slider__controls,.ehs-posts__chips) button{min-height:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:none;text-decoration:none;line-height:inherit}
body :is(.ehs-menu,.ehs-menu__drawer,.ehs-slider__controls,.ehs-posts__chips) button:is(:hover,:focus){background:none;color:inherit}
/* ---------------- Menu Navigation ---------------- */
.ehs-menu{--ehs-menu-ink:var(--ehs-head);--ehs-menu-hover:var(--ehs-accent);display:flex;align-items:center;justify-content:flex-end;font-family:var(--ehs-font)}
.ehs-menu__desktop{display:flex;align-items:center;gap:clamp(16px,2vw,28px)}
.ehs-menu__bar{display:flex;align-items:center;column-gap:clamp(14px,1.8vw,30px);margin:0;padding:0;list-style:none}
.ehs-menu__bar>li{position:relative;margin:0}
body .ehs-menu .ehs-menu__top{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;color:var(--ehs-menu-ink);font:inherit;font-size:15px;font-weight:500;letter-spacing:.01em;text-decoration:none;cursor:pointer;position:relative}
body .ehs-menu .ehs-menu__top::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--ehs-t) var(--ehs-ease)}
body .ehs-menu .ehs-menu__top:hover,body .ehs-menu .ehs-menu__top[aria-current],body .ehs-menu .ehs-menu__top.is-current,body .ehs-menu .ehs-menu__toggle[aria-expanded=true]{color:var(--ehs-menu-hover)}
body .ehs-menu .ehs-menu__top:hover::after,body .ehs-menu .ehs-menu__top[aria-current]::after,body .ehs-menu .ehs-menu__top.is-current::after{transform:scaleX(1)}
.ehs-menu__top .ehs-chevron{width:14px;height:14px;transition:transform var(--ehs-t) var(--ehs-ease)}
.ehs-menu__toggle[aria-expanded=true] .ehs-chevron{transform:rotate(180deg)}
.ehs-menu__panel{position:absolute;top:calc(100% + 6px);left:-18px;z-index:70;min-width:260px;padding:10px;border:1px solid var(--ehs-line);border-radius:var(--ehs-radius);background:var(--ehs-bg);box-shadow:var(--ehs-shadow-lift);animation:ehs-pop .18s var(--ehs-ease)}
.ehs-menu__list{margin:0;padding:0;list-style:none}
body a.ehs-menu__link{display:block;padding:9px 12px;border-radius:10px;color:var(--ehs-ink);font-size:15px;line-height:1.35;text-decoration:none}
body a.ehs-menu__link:hover,body a.ehs-menu__link[aria-current]{background:var(--ehs-surf);color:var(--ehs-accent)}
/* Mega panel: full width under the header (top set by components.js). */
.ehs-menu__panel--mega{position:fixed;left:0;right:0;top:var(--ehs-panel-top,80px);min-width:0;max-height:calc(100dvh - var(--ehs-panel-top,80px));overflow:auto;padding:0;border:0;border-top:1px solid var(--ehs-line);border-radius:0;box-shadow:0 30px 60px -30px rgb(0 0 0/.3)}
.ehs-menu__mega{display:grid;grid-template-columns:1fr minmax(0,300px);gap:clamp(24px,3vw,48px);max-width:1240px;margin:0 auto;padding:clamp(24px,3vw,40px) clamp(20px,4vw,40px) 18px}
.ehs-menu__mega:not(:has(.ehs-menu__feature)){grid-template-columns:1fr}
.ehs-menu__columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:28px clamp(20px,2.5vw,36px)}
.ehs-menu__col ul{margin:0;padding:0;list-style:none}
.ehs-menu__col-title{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--ehs-line);font:600 12px/1.3 var(--ehs-font);letter-spacing:.14em;text-transform:uppercase;color:var(--ehs-brand)}
.ehs-menu__col-title svg{width:22px;height:22px;flex:none;fill:currentColor}
body .ehs-menu__col-title :is(a,span){color:inherit;text-decoration:none}
body .ehs-menu__col a.ehs-menu__link{padding:7px 0;border-radius:0;font-size:15.5px;color:var(--ehs-head)}
body .ehs-menu__col a.ehs-menu__link:hover,body .ehs-menu__col a.ehs-menu__link[aria-current]{background:none;color:var(--ehs-accent)}
.ehs-menu__desc{display:block;margin:-4px 0 6px;color:var(--ehs-muted);font-size:13px;line-height:1.4}
.ehs-menu__feature{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:var(--ehs-radius-lg);background:var(--ehs-surf)}
.ehs-menu__feature-img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:120px 120px var(--ehs-radius) var(--ehs-radius)}
.ehs-menu__feature-title{margin:4px 0 0;font:500 21px/1.2 var(--ehs-font-head);color:var(--ehs-head)}
.ehs-menu__feature-text{margin:0;color:var(--ehs-muted);font-size:14.5px;line-height:1.55}
body a.ehs-menu__feature-link,body a.ehs-menu__all{display:inline-flex;align-items:center;gap:8px;color:var(--ehs-accent);font-weight:600;font-size:15px;text-decoration:none}
body a.ehs-menu__feature-link:hover,body a.ehs-menu__all:hover{text-decoration:underline;text-underline-offset:4px}
.ehs-arrow{width:16px;height:16px;flex:none;transition:transform var(--ehs-t) var(--ehs-ease)}
a:hover>.ehs-arrow{transform:translateX(3px)}
.ehs-menu__panel-foot{display:flex;flex-wrap:wrap;gap:24px;max-width:1240px;margin:0 auto;padding:14px clamp(20px,4vw,40px) 22px;border-top:1px solid var(--ehs-line)}
.ehs-menu__cta{white-space:nowrap}
/* Menu button and drawer */
body .ehs-menu button.ehs-menu__open{display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--ehs-line);border-radius:2px;background:var(--ehs-bg);color:var(--ehs-head);font:600 14px/1 var(--ehs-font);cursor:pointer}
.ehs-menu__open svg{width:22px;height:22px}
.ehs-menu__drawer{position:fixed;inset:0 0 0 auto;width:min(420px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:var(--ehs-bg);color:var(--ehs-ink);overflow:auto;overscroll-behavior:contain}
.ehs-menu__drawer[open]{display:flex;flex-direction:column;animation:ehs-drawer .26s var(--ehs-ease)}
.ehs-menu__drawer::backdrop{background:rgb(20 12 16/.45)}
.ehs-menu__drawer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--ehs-line)}
.ehs-menu__drawer-title{margin:0;font:500 19px/1.2 var(--ehs-font-head);color:var(--ehs-head)}
body .ehs-menu__drawer button.ehs-menu__close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:2px;background:var(--ehs-surf);color:var(--ehs-head);cursor:pointer}
.ehs-menu__close svg{width:22px;height:22px}
.ehs-menu__mobile,.ehs-menu__m-sub,.ehs-menu__m-leaf{margin:0;padding:0;list-style:none}
.ehs-menu__mobile{padding:8px 18px;flex:1}
.ehs-menu__mobile>li{border-bottom:1px solid var(--ehs-line)}
body .ehs-menu__drawer .ehs-menu__m-link{display:flex;align-items:center;justify-content:space-between;min-height:54px;color:var(--ehs-head);font:500 20px/1.2 var(--ehs-font-head);text-decoration:none;cursor:pointer;list-style:none}
.ehs-menu__m-link::-webkit-details-marker,.ehs-menu__m-sublink::-webkit-details-marker{display:none}
body .ehs-menu__drawer .ehs-menu__m-link[aria-current]{color:var(--ehs-accent)}
details[open]>.ehs-menu__m-link .ehs-chevron,details[open]>.ehs-menu__m-sublink .ehs-chevron{transform:rotate(180deg)}
.ehs-menu__mobile .ehs-chevron{width:18px;height:18px;flex:none;transition:transform var(--ehs-t)}
.ehs-menu__m-sub{padding:0 0 12px}
body .ehs-menu__drawer .ehs-menu__m-sublink{display:flex;align-items:center;gap:10px;min-height:46px;color:var(--ehs-ink);font:600 15px/1.3 var(--ehs-font);text-decoration:none;cursor:pointer;list-style:none}
.ehs-menu__m-sublink>span{flex:1}
.ehs-menu__m-sublink svg:not(.ehs-chevron){width:20px;height:20px;fill:var(--ehs-brand)}
body .ehs-menu__drawer .ehs-menu__m-strong{color:var(--ehs-accent)}
.ehs-menu__m-leaf{padding:0 0 10px 30px}
body .ehs-menu__drawer a.ehs-menu__m-leaflink{display:block;padding:9px 0;color:var(--ehs-ink);font-size:15.5px;text-decoration:none}
body .ehs-menu__drawer a.ehs-menu__m-leaflink[aria-current]{color:var(--ehs-accent);font-weight:600}
.ehs-menu__drawer-foot{display:grid;gap:12px;padding:16px 18px 24px;border-top:1px solid var(--ehs-line);background:var(--ehs-surf)}
.ehs-menu__cta--drawer{justify-content:center;text-align:center;width:100%}
body a.ehs-menu__phone{color:var(--ehs-head);font-weight:600;text-align:center;text-decoration:none}
@media (max-width:1024px){.ehs-menu--bp-1025 .ehs-menu__desktop{display:none}}
@media (min-width:1025px){body .ehs-menu--bp-1025 button.ehs-menu__open{display:none}}
@media (max-width:1199px){.ehs-menu--bp-1200 .ehs-menu__desktop{display:none}}
@media (min-width:1200px){body .ehs-menu--bp-1200 button.ehs-menu__open{display:none}}
@media (max-width:767px){.ehs-menu--bp-768 .ehs-menu__desktop{display:none}}
@media (min-width:768px){body .ehs-menu--bp-768 button.ehs-menu__open{display:none}}
@media (max-width:420px){.ehs-menu__open-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@keyframes ehs-pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes ehs-drawer{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}

/* ---------------- Post Collection ---------------- */
.ehs-posts{--ehs-cols:3;--ehs-gap:clamp(18px,2.2vw,28px);--ehs-card-bg:var(--ehs-bg);font-family:var(--ehs-font)}
.ehs-posts__tools{display:grid;gap:16px;margin-bottom:clamp(20px,2.5vw,32px)}
.ehs-posts__search{display:grid;gap:6px;max-width:420px}
.ehs-posts__search label{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ehs-brand)}
body .ehs-posts__search input{width:100%;min-height:48px;padding:10px 16px;border:1px solid color-mix(in srgb,var(--ehs-muted) 72%,#fff);border-radius:2px;background:var(--ehs-bg);color:var(--ehs-ink);font:inherit;font-size:16px}
.ehs-posts__search input:focus{border-color:var(--ehs-accent)}
.ehs-posts__chips{display:flex;flex-wrap:wrap;gap:8px}
body .ehs-posts__chips button.ehs-chip{min-height:42px;padding:8px 16px;border:1px solid var(--ehs-line);border-radius:2px;background:var(--ehs-bg);color:var(--ehs-head);font:500 14.5px/1.2 var(--ehs-font);cursor:pointer;transition:background-color var(--ehs-t),color var(--ehs-t),border-color var(--ehs-t)}
body .ehs-posts__chips button.ehs-chip:hover{border-color:var(--ehs-head)}
body .ehs-posts__chips button.ehs-chip[aria-pressed=true]{background:var(--ehs-head);border-color:var(--ehs-head);color:#fff}
.ehs-posts__status{margin:0;color:var(--ehs-muted);font-size:14px}
.ehs-posts__grid{display:grid;grid-template-columns:repeat(var(--ehs-cols),minmax(0,1fr));gap:var(--ehs-gap);margin:0;padding:0;list-style:none}
.ehs-posts__item{display:flex;min-width:0;margin:0}
.ehs-posts__item[hidden]{display:none}
.ehs-card{position:relative;display:flex;flex-direction:column;width:100%;overflow:hidden;border:1px solid var(--ehs-line);border-radius:var(--ehs-radius-lg);background:var(--ehs-card-bg);transition:box-shadow var(--ehs-t) var(--ehs-ease),transform var(--ehs-t) var(--ehs-ease),border-color var(--ehs-t)}
.ehs-card:hover,.ehs-card:focus-within{box-shadow:var(--ehs-shadow-lift);border-color:transparent}
.ehs-card__media{aspect-ratio:4/3;overflow:hidden;background:var(--ehs-surf)}
.ehs-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ehs-ease)}
.ehs-card:hover .ehs-card__media img{transform:scale(1.04)}
.ehs-card__body{display:flex;flex-direction:column;flex:1;gap:10px;padding:clamp(18px,2vw,24px)}
.ehs-card__label{margin:0;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ehs-brand)}
body :is(h2,h3,h4,p).ehs-card__title{margin:0;font-family:var(--ehs-font-head);font-size:clamp(20px,1.6vw,23px);font-weight:500;line-height:1.2;color:var(--ehs-head)}
body a.ehs-card__link{color:inherit;text-decoration:none}
.ehs-card__link::after{content:"";position:absolute;inset:0;z-index:1}
.ehs-card__link:focus-visible{outline:none}
.ehs-card:has(.ehs-card__link:focus-visible){outline:2px solid var(--ehs-accent);outline-offset:3px}
.ehs-card__excerpt{margin:0;color:var(--ehs-muted);font-size:15px;line-height:1.6}
.ehs-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--ehs-line)}
.ehs-card__field{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--ehs-head);font-size:14px;font-weight:600}
.ehs-card__field svg{width:17px;height:17px;fill:var(--ehs-brand)}
.ehs-card__field-label{color:var(--ehs-muted);font-weight:500}
.ehs-card__more{display:inline-flex;align-items:center;gap:6px;margin-inline-start:auto;color:var(--ehs-accent);font-size:14.5px;font-weight:600}
.ehs-card:hover .ehs-card__more .ehs-arrow{transform:translateX(3px)}
.ehs-posts__empty{margin:24px 0 0;padding:24px;border:1px dashed var(--ehs-line);border-radius:var(--ehs-radius);color:var(--ehs-muted);text-align:center}
@media (max-width:1024px){.ehs-posts{--ehs-cols:2}}
@media (max-width:767px){.ehs-posts{--ehs-cols:1}}
/* Carousel: one row that scrolls and snaps; about 3.15 / 2.15 / 1.15 cards per view so the next card peeks in. */
.ehs-posts--carousel .ehs-posts__grid{display:flex;grid-template-columns:none}
.ehs-posts--carousel .ehs-posts__item{flex:0 0 calc((100% - var(--ehs-gap) * 2) / 3.15)}
@media (max-width:1024px){.ehs-posts--carousel .ehs-posts__item{flex-basis:calc((100% - var(--ehs-gap)) / 2.15)}}
@media (max-width:767px){.ehs-posts--carousel .ehs-posts__item{flex-basis:84%}}

/* ---------------- Slider engine (Post Collection carousel and the ehs-slider utility class) ---------------- */
.ehs-slider__track,.ehs-slider__track{display:flex;gap:var(--ehs-gap,24px);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ehs-slider__track::-webkit-scrollbar,.ehs-slider__track::-webkit-scrollbar{display:none}
.ehs-slider__track>*,.ehs-slider__track>*{scroll-snap-align:start}
.ehs-slider__controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:20px}
body .ehs-slider__controls button.ehs-slider__btn{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--ehs-line);border-radius:2px;background:var(--ehs-bg);color:var(--ehs-head);cursor:pointer;transition:background-color var(--ehs-t),color var(--ehs-t),border-color var(--ehs-t)}
body .ehs-slider__controls button.ehs-slider__btn:hover{background:var(--ehs-head);border-color:var(--ehs-head);color:#fff}
body .ehs-slider__controls button.ehs-slider__btn:disabled{opacity:.4;cursor:default;background:var(--ehs-bg);color:var(--ehs-head)}
.ehs-slider__btn svg{width:22px;height:22px}
.ehs-slider__status{min-width:56px;margin:0;color:var(--ehs-muted);font:500 14px/1 var(--ehs-font);text-align:center;font-variant-numeric:tabular-nums}
.ehs-slider__dots{display:flex;gap:8px;margin-inline-end:auto}
body .ehs-slider__controls button.ehs-slider__dot{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.ehs-slider__dot::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--ehs-line);transition:background-color var(--ehs-t),transform var(--ehs-t)}
.ehs-slider__dot[aria-current=true]::before{background:var(--ehs-accent);transform:scale(1.3)}
/* ehs-slider: put it on a container (Advanced > CSS Classes); each direct child container is one slide.
   ehs-slider--cards shows several slides per view; ehs-slider--overlay floats the controls over the slides' bottom edge.
   The container (or its boxed inner) is the scroll track; the script adds the controls right after the container. */
.e-con.ehs-slider{--ehs-per:1;--ehs-gap:24px}
.e-con.ehs-slider:not(.ehs-slider--cards){--ehs-gap:0px}
.ehs-slider__track{--flex-direction:row;flex-direction:row!important;flex-wrap:nowrap!important;gap:var(--ehs-gap)!important}
.ehs-slider__track:focus-visible{outline-offset:-3px}
.ehs-slider .ehs-slider__track>.e-con,.ehs-slider.ehs-slider__track>.e-con{flex:0 0 calc((100% - var(--ehs-gap) * (var(--ehs-per) - 1)) / var(--ehs-per))!important;max-width:none;min-width:0}
.e-con.ehs-slider--cards{--ehs-per:3.15}
@media (max-width:1024px){.e-con.ehs-slider--cards{--ehs-per:2.15}}
@media (max-width:767px){.e-con.ehs-slider--cards{--ehs-per:1.15}}
/* Before the script runs (not in the editor): one-per-view sliders show only their first slide, card sliders one row. */
body:not(.elementor-editor-active) .e-con.ehs-slider:not(.is-ready):not(.ehs-slider--cards)>.e-con:nth-child(n+2),
body:not(.elementor-editor-active) .e-con.ehs-slider:not(.is-ready):not(.ehs-slider--cards)>.e-con-inner>.e-con:nth-child(n+2){display:none}
body:not(.elementor-editor-active) .e-con.ehs-slider--cards:not(.is-ready),body:not(.elementor-editor-active) .e-con.ehs-slider--cards:not(.is-ready)>.e-con-inner{--flex-direction:row;flex-direction:row;flex-wrap:nowrap;overflow:hidden}
body:not(.elementor-editor-active) .e-con.ehs-slider--cards:not(.is-ready) .e-con{flex:0 0 calc((100% - var(--ehs-gap) * (var(--ehs-per) - 1)) / var(--ehs-per))}
.ehs-slider__controls{width:100%}
.ehs-slider__controls--overlay{position:relative;z-index:3;display:flex;justify-content:flex-end;width:auto;max-width:1240px;margin:-72px auto 0;padding:0 clamp(16px,4vw,48px) 20px;pointer-events:none}
.ehs-slider__controls--overlay>*{pointer-events:auto}
.ehs-slider__controls--overlay{gap:10px}
.ehs-slider__controls--overlay .ehs-slider__dots,.ehs-slider__controls--overlay .ehs-slider__btn,.ehs-slider__controls--overlay .ehs-slider__status{background:rgb(255 255 255/.94)}
.ehs-slider__controls--overlay .ehs-slider__dots{padding:0 6px;border-radius:2px;box-shadow:var(--ehs-shadow)}
.ehs-slider__controls--overlay .ehs-slider__status{padding:12px 10px;border-radius:2px;box-shadow:var(--ehs-shadow)}
@media (prefers-reduced-motion:reduce){.ehs-slider__track,.ehs-slider__track{scroll-behavior:auto}}

/* ---------------- Post Field ---------------- */
.ehs-field{display:flex;align-items:flex-start;gap:14px;font-family:var(--ehs-font)}
.ehs-field__icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:2px;background:var(--ehs-surf);color:var(--ehs-brand)}
.ehs-field__icon svg{width:20px;height:20px;fill:currentColor}
.ehs-field__text{min-width:0}
body :is(h2,h3,h4,p).ehs-field__label{margin:0 0 4px;font-family:var(--ehs-font);font-size:12.5px;font-weight:600;letter-spacing:.14em;line-height:1.3;text-transform:uppercase;color:var(--ehs-brand)}
.ehs-field__value{margin:0;color:var(--ehs-head);font-size:17px;line-height:1.6}
.ehs-field__value p{margin:0 0 .8em}
.ehs-field__value p:last-child{margin:0}
.ehs-field-layout-inline .ehs-field__text{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}

/* ---------------- Inquiry Form ---------------- */
.ehs-form{display:grid;gap:18px;font-family:var(--ehs-font);color:var(--ehs-ink);scroll-margin-top:110px}
.ehs-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.ehs-form__field{display:grid;gap:6px;min-width:0}
.ehs-form__field--message,.ehs-form__field--choice{grid-column:1/-1}
@media (max-width:600px){.ehs-form__grid{grid-template-columns:1fr}}
body .ehs-form label{font-size:14px;font-weight:600;color:var(--ehs-head)}
body .ehs-form :is(input[type=text],input[type=email],input[type=tel],select,textarea){width:100%;min-height:50px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--ehs-muted) 72%,#fff);border-radius:12px;background:var(--ehs-bg);color:var(--ehs-ink);font:inherit;font-size:16px;line-height:1.4;transition:border-color var(--ehs-t),box-shadow var(--ehs-t)}
body .ehs-form textarea{min-height:130px;resize:vertical}
body .ehs-form :is(input,select,textarea):focus{border-color:var(--ehs-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ehs-accent) 18%,transparent);outline:none}
body .ehs-form [aria-invalid=true]{border-color:#b3261e}
.ehs-form__error{margin:0;color:#b3261e;font-size:14px;font-weight:500}
.ehs-form__agree{display:grid;gap:12px;margin:0;padding:0;border:0}
.ehs-form__check{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start}
.ehs-form__check input{width:24px;height:24px;margin:1px 0 0;accent-color:var(--ehs-accent)}
body .ehs-form .ehs-form__check label{font-weight:400;font-size:14.5px;line-height:1.55;color:var(--ehs-ink)}
.ehs-form__check a,.ehs-form__note a{color:var(--ehs-accent);text-decoration:underline;text-underline-offset:3px}
.ehs-form__note{margin:0;color:var(--ehs-muted);font-size:13.5px;line-height:1.55}
.ehs-form__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ehs-form__status{padding:14px 16px;border-radius:12px;background:var(--ehs-surf);color:var(--ehs-head);font-weight:500}
.ehs-form__status.is-error{background:#fdecea;color:#8c1d18}
.ehs-form__status.is-success{background:#e8f3ec;color:#1d5a34}
.ehs-form__submit{justify-self:start;min-height:52px;cursor:pointer}
.ehs-form__submit[aria-busy=true]{opacity:.7;cursor:progress}
@media (max-width:600px){.ehs-form__submit{justify-self:stretch;justify-content:center}}

/* ---------------- Utility classes (Advanced > CSS Classes) ---------------- */
/* ehs-arch: arched top corners for an Image widget or a container with a background image. */
.ehs-arch img,.e-con.ehs-arch{border-radius:2px!important;overflow:hidden}
.ehs-arch img{display:block;width:100%;object-fit:cover}
/* ehs-lift: a card container that rises gently on hover or keyboard focus. */
.e-con.ehs-lift{transition:transform var(--ehs-t) var(--ehs-ease),box-shadow var(--ehs-t) var(--ehs-ease)}
.e-con.ehs-lift:hover,.e-con.ehs-lift:focus-within{transform:translateY(-3px);box-shadow:var(--ehs-shadow-lift)}
/* ehs-cover-img: an Image widget that fills its container (keep the container's min-height or aspect-ratio). */
.ehs-cover-img,.ehs-cover-img img{width:100%;height:100%}
.ehs-cover-img img{object-fit:cover}
/* ehs-ratio-*: reserve an Image widget's shape before it loads (no layout shift). */
.ehs-ratio-43 img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}
.ehs-ratio-45 img{aspect-ratio:4/5;object-fit:cover;width:100%;height:auto}
.ehs-ratio-169 img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}
.ehs-ratio-11 img{aspect-ratio:1/1;object-fit:cover;width:100%;height:auto}
/* ehs-measure: keep text widgets to a readable line length. */
.ehs-measure{max-width:62ch}
@media (prefers-reduced-motion:reduce){
.ehs-menu__panel,.ehs-menu__drawer[open]{animation:none}
.ehs-card,.ehs-card__media img,.e-con.ehs-lift,.ehs-arrow{transition:none}
.ehs-card:hover .ehs-card__media img,.e-con.ehs-lift:hover{transform:none}
}
/* ehs-icon-stroke: keeps stroke-drawn SVG icons (Icon, Icon Box, Icon List, Post Field) unfilled; Elementor fills SVG icons by default. */
.ehs-icon-stroke svg,.ehs-icon-stroke svg *{fill:none!important;stroke:currentColor}
/* ehs-arch-frame: a hairline arch drawn behind an arched image (put ehs-arch on the Image widget inside). */
.e-con.ehs-arch-frame{position:relative;isolation:isolate}
.e-con.ehs-arch-frame::before{content:"";position:absolute;z-index:-1;inset:-14px 18px 18px -14px;border:1px solid var(--e-global-color-secondary,currentColor);border-radius:2px;opacity:.45;pointer-events:none}
@media (max-width:767px){.e-con.ehs-arch-frame::before{inset:-10px 12px 12px -10px}}
/* ehs-sticky-col: a column that stays in view while the next column scrolls (desktop only). */
@media (min-width:1025px){.e-con.ehs-sticky-col{position:sticky;top:120px;align-self:flex-start}}
/* Accent words: <em> inside a Heading widget renders in italic, in the secondary global color. */
.elementor-heading-title em{font-style:italic;color:var(--e-global-color-secondary,inherit)}
/* ehs-on-dark: on a dark section, accent words keep the heading's own light color. */
.ehs-on-dark .elementor-heading-title em{color:inherit}

/* Balanced line breaks for headings (no single orphan words). */
.elementor-heading-title{text-wrap:balance}

/* Breadcrumbs (Rank Math markup or the kit's own trail) */
.ehs-breadcrumbs{font:500 14px/1.5 var(--ehs-font);color:var(--ehs-muted)}
.ehs-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.ehs-breadcrumbs li+li::before{content:"/";margin-inline-end:6px;color:var(--ehs-line)}
.ehs-breadcrumbs p{margin:0}
body .ehs-breadcrumbs a{color:var(--ehs-muted);text-decoration:none}
body .ehs-breadcrumbs a:hover{color:var(--ehs-accent);text-decoration:underline;text-underline-offset:3px}
.ehs-breadcrumbs [aria-current]{color:var(--ehs-head)}

/* Long-form text from the WordPress editor (Post Content widget), for example legal pages. */
.ehs-prose{max-width:76ch;color:var(--ehs-ink);font-family:var(--ehs-font);font-size:17px;line-height:1.75}
.ehs-prose>*:first-child{margin-top:0}
.ehs-prose :is(h2,h3,h4){font-family:var(--ehs-font-head);font-weight:500;color:var(--ehs-head);line-height:1.2;margin:2em 0 .6em}
.ehs-prose h2{font-size:clamp(24px,2.4vw,30px)}
.ehs-prose h3{font-size:clamp(19px,1.8vw,22px)}
.ehs-prose p{margin:0 0 1em}
.ehs-prose :is(ul,ol){margin:0 0 1.2em;padding-inline-start:1.3em}
.ehs-prose li{margin:.3em 0}
body .ehs-prose a{color:var(--ehs-accent);text-decoration:underline;text-underline-offset:3px}
.ehs-prose table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:15px}
.ehs-prose :is(th,td){padding:10px 12px;border:1px solid var(--ehs-line);text-align:start;vertical-align:top}
.ehs-prose hr{border:0;border-top:1px solid var(--ehs-line);margin:2em 0}
/* Tap targets of at least 24px for links in Icon List widgets and breadcrumbs (add ehs-tap to a widget). */
.ehs-breadcrumbs a,.ehs-breadcrumbs [aria-current]{display:inline-flex;align-items:center;min-height:24px}
.ehs-tap :is(a,.elementor-icon-list-text){display:inline-flex;align-items:center;min-height:24px}

/* ---------------- Motion (2.3.0): Site Settings > Euphoria > Styles. Classes are added by components.js only
   when the switch is on and the visitor does not prefer reduced motion; content stays visible without the script. */
:root{--ehs-out:cubic-bezier(.16,1,.3,1);--ehs-draw-ease:cubic-bezier(.65,0,.35,1)}
/* Entrance: elements below the first screen fade and rise once; images open from a soft mask. */
.ehs-reveal{opacity:0;transform:translate3d(0,32px,0)}
.ehs-reveal.is-in{opacity:1;transform:none;transition:opacity .8s var(--ehs-out) var(--ehs-delay,0ms),transform 1s var(--ehs-out) var(--ehs-delay,0ms)}
.ehs-reveal.ehs-reveal--img{opacity:1;transform:none}
.ehs-reveal--img img{opacity:0;clip-path:inset(12% 9% 12% 9%);transform:scale(1.12)}
.ehs-reveal--img.is-in img{opacity:1;clip-path:inset(0 0 0 0);transform:none;transition:opacity .6s var(--ehs-out) var(--ehs-delay,0ms),clip-path 1.1s var(--ehs-out) var(--ehs-delay,0ms),transform 1.4s var(--ehs-out) var(--ehs-delay,0ms)}
/* Line icons draw themselves: once when revealed, and again on hover or keyboard focus of their card, link or box. */
@keyframes ehs-draw{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
svg.ehs-draw :is(path,circle,line,polyline,polygon,rect,ellipse):nth-child(2){--ehs-sd:.1s}
svg.ehs-draw :is(path,circle,line,polyline,polygon,rect,ellipse):nth-child(3){--ehs-sd:.2s}
svg.ehs-draw :is(path,circle,line,polyline,polygon,rect,ellipse):nth-child(n+4){--ehs-sd:.3s}
svg.ehs-draw.is-drawing :is(path,circle,line,polyline,polygon,rect,ellipse){animation:ehs-draw 1.4s var(--ehs-draw-ease) calc(var(--ehs-delay,0ms) + .25s + var(--ehs-sd,0s)) both}
.ehs-fx-hover .ehs-draw-host:is(:hover,:focus-visible,:focus-within) svg.ehs-draw :is(path,circle,line,polyline,polygon,rect,ellipse){animation:ehs-draw 1s var(--ehs-draw-ease) var(--ehs-sd,0s) both}
/* Icon boxes: the icon rises a little while it redraws. */
.ehs-fx-hover .elementor-widget-icon-box .elementor-icon{transition:transform .35s var(--ehs-out),background-color .35s,color .35s}
.ehs-fx-hover .elementor-widget-icon-box.ehs-draw-host:is(:hover,:focus-within) .elementor-icon{transform:translateY(-3px)}
/* Images in cards, linked images and card-slider slides zoom gently (the frame keeps the image's rounded corners). */
.ehs-zoom{overflow:hidden;isolation:isolate}
.ehs-zoom img{transition:transform .9s var(--ehs-out)}
.ehs-zoom-host:is(:hover,:focus-within) .ehs-zoom img{transform:scale(1.06)}
@media (prefers-reduced-motion:no-preference){
.ehs-fx-hover .elementor-button:not([class*=elementor-animation-]){transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:.3s;transition-timing-function:var(--ehs-out)}
.ehs-fx-hover .elementor-button:not([class*=elementor-animation-]):is(:hover,:focus-visible){transform:translateY(-2px)}
.ehs-fx-hover .elementor-button .elementor-button-icon{transition:transform .3s var(--ehs-out)}
.ehs-fx-hover .elementor-button:is(:hover,:focus-visible) .elementor-button-icon{transform:translateX(3px)}
[dir=rtl] .ehs-fx-hover .elementor-button:is(:hover,:focus-visible) .elementor-button-icon,.ehs-fx-hover:is([dir=rtl],.rtl) .elementor-button:is(:hover,:focus-visible) .elementor-button-icon{transform:translateX(-3px)}
}
@media print{.ehs-reveal,.ehs-reveal--img img{opacity:1!important;transform:none!important;clip-path:none!important}}
