/* ==========================================================================
   Base layout system. Containers are core/group (or core/cover) blocks carrying
   the e-con class; their sizing/spacing comes from CSS custom properties set per
   element in elements.css (ported from the original Elementor build).
   ========================================================================== */
/* --- Reset carried over from the previous theme (Hello Elementor) ---------------- */
:root :where(h1,h2,h3,h4,h5,h6){color:inherit;font-family:inherit;margin-block-end:1rem;margin-block-start:.5rem}
:root :where(p){margin-block-end:.9rem;margin-block-start:0}
:root :where(p.bss-line){margin:0}
a{background-color:transparent;text-decoration:none}
b,strong{font-weight:bolder}
img{border-style:none;height:auto;max-width:100%}
label{display:inline-block;line-height:1;vertical-align:middle}
ul,ol{margin-block:0}
*,:after,:before{box-sizing:border-box}
body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Every element starts with a clean flex context (these custom properties must not inherit from the parent container). */
:where(.e-con,.e-heading,.e-text,.e-image,.e-icon,.e-iconlist,.e-form,.e-nav,.e-logo,.e-loop,.e-reviews,.wp-block-buttons,.bss-timeline){--flex-direction:initial;--flex-wrap:initial;--justify-content:initial;--align-items:initial;--align-content:initial;--gap:initial;--flex-basis:initial;--flex-grow:initial;--flex-shrink:initial;--order:initial;--align-self:initial;align-self:var(--align-self);flex-basis:var(--flex-basis);flex-grow:var(--flex-grow);flex-shrink:var(--flex-shrink);order:var(--order)}
:where(.e-con){--border-radius:0;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;--border-style:initial;--border-color:initial;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--content-width:min(100%,var(--container-max-width,1140px));--width:100%;--min-height:initial;--height:auto;--text-align:initial;--margin-top:0px;--margin-right:0px;--margin-bottom:0px;--margin-left:0px;--padding-top:var(--container-default-padding-top,10px);--padding-right:var(--container-default-padding-right,10px);--padding-bottom:var(--container-default-padding-bottom,10px);--padding-left:var(--container-default-padding-left,10px);--position:relative;--z-index:revert;--overflow:visible;--gap:var(--widgets-spacing,20px);--row-gap:var(--widgets-spacing-row,20px);--column-gap:var(--widgets-spacing-column,20px);--overlay-mix-blend-mode:initial;--overlay-opacity:1;--overlay-transition:0.3s;--e-con-grid-template-columns:repeat(3,1fr);--e-con-grid-template-rows:repeat(2,1fr);border-radius:var(--border-radius);height:var(--height);min-height:var(--min-height);min-width:0;overflow:var(--overflow);position:var(--position);width:var(--width);z-index:var(--z-index);--flex-wrap-mobile:wrap}
:where(.e-con:where(:not(.e-div-block-base))){transition:background var(--background-transition,.3s),border var(--border-transition,.3s),box-shadow var(--border-transition,.3s),transform var(--e-con-transform-transition-duration,.4s)}
:where(.e-con){--margin-block-start:var(--margin-top);--margin-block-end:var(--margin-bottom);--margin-inline-start:var(--margin-left);--margin-inline-end:var(--margin-right);--padding-inline-start:var(--padding-left);--padding-inline-end:var(--padding-right);--padding-block-start:var(--padding-top);--padding-block-end:var(--padding-bottom);--border-block-start-width:var(--border-top-width);--border-block-end-width:var(--border-bottom-width);--border-inline-start-width:var(--border-left-width);--border-inline-end-width:var(--border-right-width)}
:where(body.rtl .e-con){--padding-inline-start:var(--padding-right);--padding-inline-end:var(--padding-left);--margin-inline-start:var(--margin-right);--margin-inline-end:var(--margin-left);--border-inline-start-width:var(--border-right-width);--border-inline-end-width:var(--border-left-width)}
:where(.e-con){margin-block-end:var(--margin-block-end);margin-block-start:var(--margin-block-start);margin-inline-end:var(--margin-inline-end);margin-inline-start:var(--margin-inline-start);padding-inline-end:var(--padding-inline-end);padding-inline-start:var(--padding-inline-start)}
:where(.e-con.e-flex){--flex-direction:column;--flex-basis:auto;--flex-grow:0;--flex-shrink:1;flex:var(--flex-grow) var(--flex-shrink) var(--flex-basis)}
:where(.e-con-full),:where(.e-con>.e-con-inner){padding-block-end:var(--padding-block-end);padding-block-start:var(--padding-block-start);text-align:var(--text-align)}
:where(.e-con-full.e-flex),:where(.e-con.e-flex>.e-con-inner){flex-direction:var(--flex-direction)}
:where(.e-con),:where(.e-con>.e-con-inner){display:var(--display)}
:where(.e-con.e-grid){--grid-justify-content:start;--grid-align-content:start;--grid-auto-flow:row}
:where(.e-con.e-grid),:where(.e-con.e-grid>.e-con-inner){align-content:var(--grid-align-content);align-items:var(--align-items);grid-auto-flow:var(--grid-auto-flow);grid-template-columns:var(--e-con-grid-template-columns);grid-template-rows:var(--e-con-grid-template-rows);justify-content:var(--grid-justify-content);justify-items:var(--justify-items)}
:where(.e-con-boxed.e-flex){align-content:normal;align-items:normal;flex-direction:column;flex-wrap:nowrap;justify-content:normal}
:where(.e-con-boxed.e-grid){grid-template-columns:1fr;grid-template-rows:1fr;justify-items:legacy}
:where(.e-con-boxed){gap:initial;text-align:initial}
:where(.e-con.e-flex>.e-con-inner){align-content:var(--align-content);align-items:var(--align-items);align-self:auto;flex-basis:auto;flex-grow:1;flex-shrink:1;flex-wrap:var(--flex-wrap);justify-content:var(--justify-content)}
:where(.e-con.e-grid>.e-con-inner){align-items:var(--align-items);justify-items:var(--justify-items)}
:where(.e-con>.e-con-inner){gap:var(--row-gap) var(--column-gap);height:100%;margin:0 auto;max-width:var(--content-width);padding-inline-end:0;padding-inline-start:0;width:100%}
:where(.e-con:before),:where(.e-con>.elementor-background-slideshow:before),:where(.e-con>.elementor-motion-effects-container>.elementor-motion-effects-layer:before),:where(:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before){border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);content:var(--background-overlay);display:block;height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));mix-blend-mode:var(--overlay-mix-blend-mode);opacity:var(--overlay-opacity);position:absolute;top:calc(0px - var(--border-top-width));transition:var(--overlay-transition,.3s);width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}
:where(.e-con:before){transition:background var(--overlay-transition,.3s),border-radius var(--border-transition,.3s),opacity var(--overlay-transition,.3s)}
:where(.e-con>.elementor-background-slideshow),:where(:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container){border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));top:calc(0px - var(--border-top-width));width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}
@media (max-width:767px){:where(:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container.elementor-hidden-mobile){display:none}
}
:where(:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before){z-index:1}
:where(:is(.e-con,.e-con>.e-con-inner)>.elementor-background-slideshow:before){z-index:2}
@media (max-width:767px){:where(.e-con.e-flex){--width:100%;--flex-wrap:var(--flex-wrap-mobile)}
:where(.e-con.e-flex .elementor-widget-archive-posts){width:100%}
}
:where(.e-con.e-transform){transform:perspective(var(--e-con-transform-perspective,0)) rotate(var(--e-con-transform-rotateZ,0)) rotateX(var(--e-con-transform-rotateX,0)) rotateY(var(--e-con-transform-rotateY,0)) translate(var(--e-con-transform-translate,0)) translateX(var(--e-con-transform-translateX,0)) translateY(var(--e-con-transform-translateY,0)) scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1)))) scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1)))) skewX(var(--e-con-transform-skewX,0)) skewY(var(--e-con-transform-skewY,0));transform-origin:var(--e-con-transform-origin-y) var(--e-con-transform-origin-x)}


:where(.wp-block-post-content,.site-header,.site-footer,.site-main,.wp-block-template-part)>:where(.e-con){--margin-left:auto;--margin-right:auto;max-width:min(100%,var(--width))}

:where(.e-con.e-con-full){align-content:var(--align-content);align-items:var(--align-items);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);gap:var(--row-gap) var(--column-gap);justify-content:var(--justify-content)}
/* --- Gutenberg wrappers acting as containers --------------------------------- */
.e-con.wp-block-group,.e-con.wp-block-cover{box-sizing:border-box;max-width:none}
.e-con>.e-con-inner.wp-block-group,.e-con>.e-con-inner{box-sizing:border-box}
.e-con.is-layout-flow>*,.e-con.is-layout-constrained>*{margin-block-start:0;margin-block-end:0}
/* Cover blocks: the inner container takes the place of .e-con / .e-con-inner */
.e-con.wp-block-cover{display:flex;align-items:var(--align-items,center);padding:0;padding-block-start:var(--padding-block-start);padding-block-end:var(--padding-block-end);padding-inline-start:var(--padding-inline-start);padding-inline-end:var(--padding-inline-end);min-height:var(--min-height,0)}
.e-con.wp-block-cover>.wp-block-cover__inner-container{width:100%;max-width:100%;display:var(--display);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);align-items:var(--align-items);justify-content:var(--justify-content);gap:var(--row-gap) var(--column-gap);color:inherit}

.e-con.wp-block-cover>.wp-block-cover__background{z-index:0}
.e-con.wp-block-cover>.wp-block-cover__image-background,.e-con.wp-block-cover>.wp-block-cover__video-background{z-index:0}
.e-con.wp-block-cover>.wp-block-cover__inner-container{position:static}
.e-cover>.wp-block-cover__inner-container>:not(.bss-yt-bg){position:relative;z-index:1}

/* --- Widget level ------------------------------------------------------------ */
.e-heading,.e-text,.e-image,.e-icon,.e-iconlist,.e-form,.e-nav,.e-logo,.e-loop,.e-reviews{box-sizing:border-box;min-width:0}
.wp-block-heading.e-heading,.wp-block-group.e-text{margin-block:0}
.e-heading{margin:0;padding:0}
.e-text ul,.e-text ol{margin-top:0}
.e-image{margin:0}
.e-image img,.e-icon img{height:auto;max-width:100%;vertical-align:middle;display:inline-block}
.wp-block-image.e-image,.wp-block-image.e-icon{margin-left:0;margin-right:0}

/* widgets: width/flex come from the per-element rules (width:var(--container-widget-width, X%)) */
/* (spacing between widgets comes from the container's gap, as in the original) */
:where(.e-con)>:where(.e-heading,.e-text,.e-image,.e-icon,.e-iconlist,.wp-block-buttons,.e-form,.e-nav,.e-logo,.e-loop,.e-reviews,.bss-timeline),:where(.e-con-inner)>:where(.e-heading,.e-text,.e-image,.e-icon,.e-iconlist,.wp-block-buttons,.e-form,.e-nav,.e-logo,.e-loop,.e-reviews,.bss-timeline){max-width:100%}

/* buttons (block wrapper + text-align, like the original widget) */
.wp-block-buttons[class*="e-"]{display:block;margin:0;text-align:left}
.wp-block-buttons .wp-block-button{display:inline-block;margin:0}
.wp-block-buttons .wp-block-button__link{display:inline-block;text-align:center;text-decoration:none;box-sizing:border-box;transition:all .3s;word-break:normal}
.e-align-left{text-align:left!important}.e-align-center{text-align:center!important}.e-align-right{text-align:right!important}
.e-align-justify .wp-block-button{display:block}
.e-align-justify .wp-block-button__link{display:block;width:100%}
@media(max-width:1024px){.e-align-tablet-left{text-align:left!important}.e-align-tablet-center{text-align:center!important}.e-align-tablet-right{text-align:right!important}.e-align-tablet-justify .wp-block-button{display:block}.e-align-tablet-justify .wp-block-button__link{display:block;width:100%}}
@media(max-width:767px){.e-align-mobile-left{text-align:left!important}.e-align-mobile-center{text-align:center!important}.e-align-mobile-right{text-align:right!important}.e-align-mobile-justify .wp-block-button{display:block}.e-align-mobile-justify .wp-block-button__link{display:block;width:100%}}

/* icon lists */
ul.e-iconlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
ul.e-iconlist>li{display:flex;align-items:center;margin:0;padding:0}
ul.e-iconlist>li::before{font-size:22px;content:"";flex:0 0 auto;display:inline-block;width:var(--e-icon-list-icon-size,1em);height:var(--e-icon-list-icon-size,1em);margin-inline-end:var(--bss-icon-gap,5px);background-repeat:no-repeat;background-position:center;background-size:contain}
ul.e-iconlist a{color:inherit;text-decoration:none}

/* responsive visibility (matches the original breakpoints) */
@media(min-width:1025px){.e-hide-desktop{display:none!important}}
@media(min-width:768px) and (max-width:1024px){.e-hide-tablet{display:none!important}}
@media(max-width:767px){.e-hide-mobile{display:none!important}}

/* timeline (How it works) */
.bss-timeline{position:relative;display:flex;flex-direction:column}
.bss-timeline__item{display:flex;gap:20px;position:relative}
.bss-timeline__point{margin:0;flex:0 0 auto}
.bss-timeline__title{margin:0}
.bss-timeline__card p{margin:0}

/* details (accordion) */
.wp-block-details summary{cursor:pointer}
ul.e-iconlist.e-inline{flex-direction:row;flex-wrap:wrap}
.e-con.wp-block-cover::before{display:none}
/* margins must beat core layout resets (:where(.is-layout-flow) > *) */
.e-con.e-con{margin-block-start:var(--margin-block-start);margin-block-end:var(--margin-block-end);margin-inline-start:var(--margin-inline-start);margin-inline-end:var(--margin-inline-end)}
/* YouTube background (see assets/js/theme.js) */
.bss-yt-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;container-type:size}
.bss-yt-bg iframe{position:absolute;top:50%;left:50%;width:max(100cqw,177.78cqh);height:max(100cqh,56.25cqw);transform:translate(-50%,-50%);border:0}
.wp-block-cover__inner-container>.wp-block-html:first-child:has(.bss-yt-bg){position:absolute;inset:0}
/* boxed containers: the inner wrapper must fill the outer's min-height (percentage heights don't resolve here) */
.e-con.e-boxed>.e-con-inner{min-height:var(--min-height)}

/* gallery (grid; columns/gap are set per gallery) */
.wp-block-gallery.has-nested-images.e-gallery{display:grid}
.wp-block-gallery.has-nested-images.e-gallery>.wp-block-image{width:auto!important;margin:0!important;flex:none}
.wp-block-gallery.e-gallery .wp-block-image img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}

/* boxed covers: padding-block, flex settings and max-width belong to the inner wrapper (as in the original), not the cover */
.e-con.wp-block-cover.e-boxed{padding-block:0}
.e-con.wp-block-cover.e-boxed>.wp-block-cover__inner-container{display:flex;align-self:stretch;width:100%;max-width:none;padding:0}
.e-con.wp-block-cover.e-boxed>.wp-block-cover__inner-container>.e-con-inner{display:var(--display);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);align-items:var(--align-items);align-content:var(--align-content);justify-content:var(--justify-content);gap:var(--row-gap) var(--column-gap);flex:1 1 auto;width:100%;max-width:var(--content-width);margin:0 auto;box-sizing:border-box;padding-block:var(--padding-block-start) var(--padding-block-end);min-height:var(--min-height)}

/* background overlay layer (per-section image/colour set via ::before in elements.css) */
.e-con:not(.wp-block-cover)::before{content:var(--background-overlay);display:block;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--border-radius);opacity:var(--overlay-opacity,1);pointer-events:none;z-index:0}
.e-con:not(.wp-block-cover)>*{position:relative;z-index:1}
.e-con:not(.wp-block-cover)>.e-con-inner,.e-con:not(.wp-block-cover)>.e-con{position:relative}

/* banner/footer titles that used to be headings and are now paragraphs keep the heading line-height */
:where(p.e-heading){line-height:1.2}
