.elementor-16 .elementor-element.elementor-element-be6d16c{--e-rating-gap:3px;}.elementor-16 .elementor-element.elementor-element-2f798ee .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-2f798ee .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-16 .elementor-element.elementor-element-2f798ee{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-16 .elementor-element.elementor-element-2f798ee .elementor-icon-list-text{color:var( --e-global-color-primary );transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-ab720c6{width:initial;max-width:initial;background-color:#D9D9D933;padding:10px 17px 10px 17px;border-style:solid;border-width:1px 0px 1px 0px;border-color:#FFFFFF6B;border-radius:100px 100px 100px 100px;}.elementor-16 .elementor-element.elementor-element-ab720c6.elementor-element{--align-self:flex-start;}.elementor-16 .elementor-element.elementor-element-ab720c6 .elementor-heading-title{text-transform:uppercase;color:#FFFFFF;}.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-16 .elementor-element.elementor-element-e6e0ada{--e-icon-list-icon-size:22px;--icon-vertical-offset:0px;}.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-icon{padding-inline-end:0px;}.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-item > a{font-family:"Gordita", Sans-serif;font-size:22px;font-weight:400;}.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-text{color:var( --e-global-color-e55f2d9 );transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-16 .elementor-element.elementor-element-010c7ee{--e-icon-list-icon-size:22px;--icon-vertical-offset:0px;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-icon{padding-inline-end:0px;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > a{font-family:"Gordita", Sans-serif;font-size:20px;font-weight:400;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-text{color:var( --e-global-color-e55f2d9 );transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-16 .elementor-element.elementor-element-8e9e28b{--e-icon-list-icon-size:22px;--icon-vertical-offset:0px;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-icon{padding-inline-end:0px;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > a{font-family:"Gordita", Sans-serif;font-size:22px;font-weight:400;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-text{color:var( --e-global-color-e55f2d9 );transition:color 0.3s;}.elementor-16 .elementor-element.elementor-element-aac8714{--e-rating-gap:3px;}.elementor-16 .elementor-element.elementor-element-abe53d6 .elementor-heading-title{font-family:"Gordita", Sans-serif;font-size:24px;color:#FFFFFF;}.elementor-16 .elementor-element.elementor-element-a76fc35 .elementor-heading-title{font-family:"Gordita", Sans-serif;font-size:16px;color:#FFFFFF;}.elementor-16 .elementor-element.elementor-element-6b089f3 .elementor-heading-title{font-family:"Gordita", Sans-serif;font-size:24px;font-style:italic;line-height:1.2em;color:#FFFFFF;}.elementor-16 .elementor-element.elementor-element-8e73879 .elementor-heading-title{font-family:"Gordita", Sans-serif;font-size:16px;color:#FFFFFF;}.elementor-16 .elementor-element.elementor-element-5b13f8c{text-align:end;}.elementor-16 .elementor-element.elementor-element-5b13f8c .elementor-heading-title{font-family:"Gordita", Sans-serif;font-size:16px;text-decoration:underline;color:#FFFFFF;}@media(max-width:1520px){.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-item > a{font-size:1.5vw;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > a{font-size:1.5vw;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > a{font-size:1.5vw;}.elementor-16 .elementor-element.elementor-element-6b089f3 .elementor-heading-title{font-size:21px;}}@media(max-width:1180px){.elementor-16 .elementor-element.elementor-element-6b089f3 .elementor-heading-title{font-size:16px;line-height:1.3em;}}@media(max-width:1024px){.elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-e6e0ada .elementor-icon-list-item > a{font-size:2vw;}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > a{font-size:2vw;}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > a{font-size:2vw;}}@media(max-width:768px){.elementor-16 .elementor-element.elementor-element-2f798ee .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-2f798ee .elementor-icon-list-item > a{font-size:clamp(13px, 3vw, 16px);}.elementor-16 .elementor-element.elementor-element-ab720c6 .elementor-heading-title{font-size:clamp(13px, 3vw, 16px);}.elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-010c7ee .elementor-icon-list-item > a{font-size:clamp(16px, 4vw, 18px);}.elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > .elementor-icon-list-text, .elementor-16 .elementor-element.elementor-element-8e9e28b .elementor-icon-list-item > a{font-size:clamp(16px, 4vw, 18px);}.elementor-16 .elementor-element.elementor-element-abe53d6 .elementor-heading-title{font-size:16px;}.elementor-16 .elementor-element.elementor-element-a76fc35 .elementor-heading-title{font-size:13px;}}/* Start custom CSS for icon-list, class: .elementor-element-010c7ee */@media screen and (max-width: 768px) {
    .elementor-16 .elementor-element.elementor-element-010c7ee li span {
        color: #ffffff !important;
    }
}/* End custom CSS */
/* Start custom CSS for icon-list, class: .elementor-element-8e9e28b */@media screen and (max-width: 768px) {
    .elementor-16 .elementor-element.elementor-element-8e9e28b li span {
        color: #ffffff !important;
    }
}/* End custom CSS */
/* Start custom CSS *//* ==========================================================================
   GLASS & GROVE — CUSTOM CSS
   --------------------------------------------------------------------------
   1. MAGIC BOX          — mobile equal-height icon boxes
   2. EVENT CARDS        — base layout, gradient, hover zoom, hover link
   3. EVENT CARDS SLIDER — mobile scroll-snap slider + dot/arrow nav
   4. READ MORE / LESS   — mobile paragraph clamp toggle
   ========================================================================== */


/* ==========================================================================
   1. MAGIC BOX — MOBILE EQUAL HEIGHT
   Bottom-aligns icon box content so all boxes in a row match.
   Markup: .box-content-row > .gng-magic-box > .magic-vic
   ========================================================================== */
@media (max-width: 767px) {

  .box-content-row {
    align-items: stretch;
  }

  .gng-magic-box {
    display: flex;
    flex-direction: column;
  }

  .gng-magic-box .magic-vic {
    flex: 1;
    display: flex;
  }

  .magic-vic .elementor-icon-box-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    height: 100%;
  }

  .magic-vic .elementor-icon-box-content {
    margin-top: auto;
  }

  .magic-vic.elementor-widget-icon-box .elementor-icon-box-content {
    flex-grow: 0;
  }
}


/* ==========================================================================
   2. EVENT CARDS
   Markup: .event-cards-box > .event-card > .event-card-content
                                              > .event-card-title
                                              > .event-card-text
                                              > .event-card-link
   Layer order inside the card:
     ::after  (z 0) — background image, scales on hover
     ::before (z 1) — dark gradient overlay
     .event-card-content (z 2) — title, text, link
   ========================================================================== */

/* --- card shell ---------------------------------------------------------- */
.event-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;   /* bottom-anchors the content block */
  overflow: hidden;            /* clips the zooming image to the radius */
  border-radius: 8px;
  isolation: isolate;          /* keeps the pseudo-element stacking local */
}

/* --- background image, zooms on hover ------------------------------------ */
/* `background: inherit` picks up each card's own Elementor-generated image,
   so no per-card URLs are needed here. */
.event-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: inherit;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  transform: scale(1);
  transform-origin: center center;
  transition: transform .6s cubic-bezier(.22, .61, .36, 1);
  will-change: transform;
  pointer-events: none;
}

@media (hover: hover) {
  .event-card:hover::after {
    transform: scale(1.08);
  }
}

/* --- gradient overlay ---------------------------------------------------- */
.event-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(95, 91, 60, 0) 50.1%,
    #5F5B3C 67.47%
  );
  pointer-events: none;
}

/* --- content block ------------------------------------------------------- */
.event-card > .event-card-content {
  position: relative;
  z-index: 2;
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
}

/* paired with the .event-card-text equalizer JS — keeps titles aligned
   across cards with different copy lengths */
.event-card-content .event-card-text {
  flex: 1 1 auto;
}

/* --- link: hidden until hover -------------------------------------------- */
/* max-height (not just opacity) so the collapsed button takes no space */
.event-card-link {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  transform: translateY(6px);
  transition: opacity .35s ease,
              transform .35s ease,
              max-height .35s ease,
              margin-top .35s ease;
}

@media (hover: hover) {
  .event-card:hover .event-card-link,
  .event-card:focus-within .event-card-link {   /* :focus-within = keyboard access */
    opacity: 1;
    max-height: 4em;
    margin-top: 0;
    transform: translateY(0);
  }
}

/* touch devices have no hover — keep the link permanently visible */
@media (hover: none) {
  .event-card-link {
    opacity: 1;
    max-height: 4em;
    margin-top: 16px;
    transform: none;
  }
}


/* ==========================================================================
   3. EVENT CARDS — MOBILE SLIDER
   Converts the Elementor grid into a horizontal scroll-snap slider.
   Nav (.event-cards-nav) is injected by JS — hidden on desktop.
   ========================================================================== */
.event-cards-nav { display: none; }

@media (max-width: 767px) {

  /* --- scroll container -------------------------------------------------- */
  .event-cards-box {
    display: flex !important;
    flex-direction: row !important;
    grid-template-columns: none !important;
    grid-auto-flow: unset !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding-bottom: 8px;
  }

  /* hide scrollbar, all engines */
  .event-cards-box::-webkit-scrollbar { display: none; }
  .event-cards-box {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  /* --- slides ------------------------------------------------------------ */
  /* 78% leaves ~a quarter of the next card peeking */
  .event-cards-box > .event-card {
    flex: 0 0 78% !important;
    width: 78% !important;
    max-width: 78% !important;
    min-width: 0;
    scroll-snap-align: start;
  }

  /* --- nav bar: dots left, arrows right ---------------------------------- */
  .event-cards-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding-block: 0;
    border: 0;
  }

  /* dots */
  .event-cards-nav .ecn-dots {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .event-cards-nav .ecn-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .22);
    cursor: pointer;
    transition: background .25s ease;
  }

  .event-cards-nav .ecn-dot.is-active {
    background: #2f2f2f;
  }

  /* arrows — SVGs are fetched and inlined by JS so currentColor applies */
  .event-cards-nav .ecn-arrows {
    display: flex;
    align-items: center;
    gap: 22px;
  }

  .event-cards-nav .ecn-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: none;
    color: #2f2f2f;
    cursor: pointer;
    transition: opacity .25s ease;
  }

  .event-cards-nav .ecn-arrow svg {
    display: block;
    width: 24px;
    height: 24px;
  }

  .event-cards-nav .ecn-arrow svg path,
  .event-cards-nav .ecn-arrow svg line,
  .event-cards-nav .ecn-arrow svg polyline {
    stroke: currentColor;
  }

  .event-cards-nav .ecn-arrow svg [fill]:not([fill="none"]) {
    fill: currentColor;
  }

  .event-cards-nav .ecn-arrow:disabled {
    opacity: .3;
    cursor: default;
  }
}


/* ==========================================================================
   4. MOBILE READ MORE / LESS
   Target any paragraph with .mob-redmur — the wrapper, fade and button
   are injected by JS. Mobile only.
   ========================================================================== */
.mob-readmore-fade,
.mob-readmore-btn { display: none; }

@media (max-width: 767px) {

  .mob-readmore-wrap {
    position: relative;
  }

  /* --- collapsed state ---------------------------------------------------- */
  /* line-clamp value must stay in sync with LINES in the JS */
  .mob-readmore-wrap.is-collapsed > .mob-redmur {
    display: -webkit-box;
    -webkit-line-clamp: 9;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .mob-readmore-wrap > .mob-redmur {
    margin-bottom: 0;
  }

  /* --- fade over the cut-off ---------------------------------------------- */
  /* white — change all three stops if used on a coloured background */
  .mob-readmore-fade {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5.5em;
    pointer-events: none;
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, .85) 55%,
      #fff 100%
    );
    opacity: 0;
    transition: opacity .25s ease;
  }

  .mob-readmore-wrap.is-collapsed .mob-readmore-fade {
    opacity: 1;
  }

  /* --- toggle button ------------------------------------------------------ */
  /* !important throughout — overrides theme/Elementor button styling */
  .mob-readmore-btn {
    display: inline-block;
    position: relative;
    float: right;
    margin-top: -1.6em;              /* overlaps the last faded line */
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    font-family: Gordita, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 700 !important;
    line-height: normal;
    color: #1a1a1a;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: auto;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    cursor: pointer;
    z-index: 2;
  }

  .mob-readmore-btn:hover,
  .mob-readmore-btn:focus,
  .mob-readmore-btn:active {
    background: none !important;
    background-color: transparent !important;
    color: #1a1a1a;
    text-decoration-line: underline;
  }

  .mob-readmore-wrap:not(.is-collapsed) .mob-readmore-btn {
    margin-top: 8px;
  }

  /* clears the float so the following button doesn't ride up */
  .mob-readmore-wrap::after {
    content: '';
    display: table;
    clear: both;
  }

  /* --- short text: no toggle needed --------------------------------------- */
  .mob-readmore-wrap.rm-off > .mob-redmur {
    display: block;
    -webkit-line-clamp: none;
    overflow: visible;
  }

  .mob-readmore-wrap.rm-off .mob-readmore-fade,
  .mob-readmore-wrap.rm-off .mob-readmore-btn {
    display: none;
  }
}

/* ==========================================================================
   HOME BANNER — GRADIENT OVERLAY
   ========================================================================== */
.hm-banner {
  position: relative;
  isolation: isolate;
}

.hm-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    180deg,
    #211F19 0%,
    rgba(95, 91, 60, 0.00) 30%
  );
  pointer-events: none;
}

/* keep banner content above the overlay */
.hm-banner > * {
  position: relative;
  z-index: 2;
}/* End custom CSS */