/* ==========================================================================
   Foyer — styles for standard Elementor sections
   --------------------------------------------------------------------------
   Pages are built from Elementor's own Containers, Headings, Text Editors,
   Buttons, Image Carousels, Galleries, Accordions and (Pro) Nav Menu / Form.
   The design comes from CSS classes set in each element's
   Advanced → CSS Classes field. Anything you set in Elementor's Style tab
   overrides these, so you can always fine-tune a single element.

   CLASS CHEAT SHEET
   Containers (outer, "Boxed"):  fe-sec  (+ fe-sec--hero / fe-sec--band / fe-sec--compact / fe-dark)
   Containers (inner, "Full width"):
     fe-row        heading on the left, link/intro on the right
     fe-split      narrow left column, wide right column
     fe-cols       ruled columns  — children: fe-col
     fe-stats      big numbers    — children: fe-stat
     fe-steps      numbered rows  — children: fe-step
     fe-compare    two lists      — children: fe-compare-col (+ fe-compare-col--ours)
     fe-feature    photo + quote  — children: fe-feature-body ; fe-minis (children: fe-mini)
     fe-avail      availability   — children: fe-avail-row
     fe-btns       buttons side by side
   Headings:  fe-eyebrow, fe-h1, fe-h1-page, fe-h2 (+ fe-h2--lg / fe-h2--wide / fe-h2--narrow),
              fe-statement, fe-h3, fe-h3-lg, fe-num, fe-stat-value, fe-mini-value, fe-quote, fe-label
   Text Editor: fe-lead, fe-body, fe-text, fe-intro, fe-stat-text, fe-mini-text, fe-attrib, fe-note,
                fe-list (+ fe-list--muted / fe-list--marked)
   Buttons:   fe-btn (dark), fe-btn--ghost, fe-btn--accent, fe-link (underlined text link)
   Others:    fe-carousel (Image Carousel), fe-logos (Basic Gallery), fe-faq (Accordion),
              fe-form (Pro Form), fe-menu (Pro Nav Menu), fe-footer-links (Icon List)
   In heading text: <em>word</em> = italic accent, <span class="fy-accent">%</span> = terracotta.
   ========================================================================== */

/* ---------- Containers ---------- */
.e-con.fe-sec{--padding-top:var(--fy-pad);--padding-bottom:var(--fy-pad);--padding-left:var(--fy-gutter);--padding-right:var(--fy-gutter);--content-width:var(--fy-max);--gap:0px;--row-gap:0px;--column-gap:0px;--flex-direction:column;color:var(--fy-ink)}
.e-con.fe-sec--hero{--padding-top:clamp(56px,7vw,110px);--padding-bottom:clamp(48px,6vw,84px)}
.e-con.fe-sec--page{--padding-top:clamp(56px,7vw,110px);--padding-bottom:clamp(40px,5vw,72px)}
.e-con.fe-sec--band{--padding-top:0px;--padding-bottom:clamp(48px,6vw,84px)}
.e-con.fe-sec--compact{--padding-top:clamp(48px,6vw,90px);--padding-bottom:clamp(48px,6vw,90px)}
.e-con.fe-sec--flush-top{--padding-top:0px}
.e-con.fe-dark{color:var(--fy-on-dark)}
.e-con.fe-sec .elementor-widget:not(:last-child),.e-con.fe-header .elementor-widget:not(:last-child),.e-con.fe-footer .elementor-widget:not(:last-child){margin-block-end:0}
.e-con[class*=" fe-"] a,.elementor-widget[class*=" fe-"] a{text-decoration:none}
.e-con.fe-sec .e-con{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px}

/* Header row: heading left, link/intro right */
.e-con.fe-row{--flex-direction:row;--flex-wrap:wrap;--justify-content:space-between;--align-items:flex-end;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px!important;margin-bottom:clamp(40px,5vw,72px)}
.e-con.fe-row > .e-con{width:auto;--width:auto;flex:0 1 auto}
.e-con.fe-row > .elementor-widget{width:auto;flex:0 1 auto}
.e-con.fe-head{margin-bottom:clamp(40px,5vw,64px)}

/* Split */
.e-con.fe-split{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(32px,6vw,110px)!important;align-items:start}
.e-con.fe-split > *{width:auto;--width:auto;min-width:0}
@media (max-width:760px){.e-con.fe-split{grid-template-columns:1fr}}

/* Ruled columns */
.e-con.fe-cols{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));border-top:1px solid var(--fy-line)}
.e-con.fe-cols > .e-con.fe-col{width:auto;--width:auto;padding:44px clamp(24px,3vw,44px)!important;border-right:1px solid var(--fy-line);display:block}
.e-con.fe-cols > .e-con.fe-col:first-child{padding-left:0!important}
.e-con.fe-cols > .e-con.fe-col:last-child{padding-right:0!important;border-right:0}
@media (max-width:820px){
  .e-con.fe-cols{grid-template-columns:1fr}
  .e-con.fe-cols > .e-con.fe-col,.e-con.fe-cols > .e-con.fe-col:first-child,.e-con.fe-cols > .e-con.fe-col:last-child{padding:36px 0!important;border-right:0;border-bottom:1px solid var(--fy-line)}
}

/* Big numbers */
.e-con.fe-stats{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:clamp(40px,5vw,72px);gap:40px 0!important}
.e-con.fe-stats > .e-con.fe-stat{width:auto;--width:auto;display:block;padding:0 clamp(24px,4vw,56px)!important;border-left:1px solid var(--fy-line)}
.e-con.fe-dark .e-con.fe-stats > .e-con.fe-stat{border-left-color:rgba(245,246,248,.16)}
.e-con.fe-stats > .e-con.fe-stat:first-child{padding-left:0!important;border-left:0}
.e-con.fe-stats > .e-con.fe-stat:last-child{padding-right:0!important}
@media (max-width:820px){
  .e-con.fe-stats{grid-template-columns:1fr}
  .e-con.fe-stats > .e-con.fe-stat{padding:0!important;border-left:0}
}

/* Steps */
.e-con.fe-steps{border-top:1px solid var(--fy-line);display:block}
.e-con.fe-steps > .e-con.fe-step{display:grid!important;grid-template-columns:100px minmax(0,1fr) minmax(0,1.1fr);gap:clamp(16px,4vw,80px)!important;padding:clamp(28px,4vw,52px) 0!important;border-bottom:1px solid var(--fy-line);align-items:baseline}
.e-con.fe-step > *{width:auto;--width:auto;min-width:0}
@media (max-width:760px){
  .e-con.fe-steps > .e-con.fe-step{grid-template-columns:44px minmax(0,1fr);row-gap:14px!important}
  .e-con.fe-step > :nth-child(3){grid-column:2}
}

/* Comparison */
.e-con.fe-compare{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:clamp(36px,4vw,60px);gap:40px 0!important}
.e-con.fe-compare > .e-con.fe-compare-col{width:auto;--width:auto;display:block;padding:8px clamp(24px,4vw,72px) 8px 0!important}
.e-con.fe-compare > .e-con.fe-compare-col + .e-con.fe-compare-col{padding:8px 0 8px clamp(24px,4vw,72px)!important;border-left:1px solid var(--fy-line)}
@media (max-width:640px){.e-con.fe-compare > .e-con.fe-compare-col + .e-con.fe-compare-col{padding:32px 0 8px!important;border-left:0;border-top:1px solid var(--fy-line)}}

/* Featured story */
.e-con.fe-feature{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(28px,4vw,72px)!important;align-items:stretch}
.e-con.fe-feature > *{width:auto;--width:auto;min-width:0}
.e-con.fe-feature > .elementor-widget{align-self:start}
.e-con.fe-feature-body{display:flex!important;flex-direction:column;justify-content:space-between;gap:40px!important;padding:8px 0!important}
.e-con.fe-minis{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px!important;margin-top:32px;padding-top:32px!important;border-top:1px solid var(--fy-line)}
.e-con.fe-minis > .e-con{width:auto;--width:auto;display:block}

/* Buttons row */
.e-con.fe-btns{--flex-direction:row;flex-direction:row;flex-wrap:wrap;gap:16px!important;width:auto;--width:auto}
.e-con.fe-btns > .elementor-widget{width:auto}
.e-con.fe-hero-row{--flex-direction:row;flex-direction:row;flex-wrap:wrap;gap:40px 64px!important;align-items:flex-end;margin-top:52px}
.e-con.fe-hero-row > .elementor-widget{width:auto;flex:0 1 auto}

/* Availability */
.e-con.fe-avail{border-top:1px solid var(--fy-line);display:block}
.e-con.fe-avail > .e-con.fe-avail-row{display:grid!important;grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) minmax(0,1.4fr) auto;gap:20px!important;align-items:center;padding:26px 0!important;border-bottom:1px solid var(--fy-line);color:var(--fy-ink);transition:background .2s;text-decoration:none}
.e-con.fe-avail > .e-con.fe-avail-row:hover{background:var(--fy-sand)}
.e-con.fe-avail-row > *{width:auto;--width:auto;min-width:0}
@media (max-width:760px){
  .e-con.fe-avail > .e-con.fe-avail-row{grid-template-columns:minmax(0,1fr) auto;row-gap:6px!important}
  .e-con.fe-avail-row > :nth-child(4){grid-column:2;grid-row:1}
  .e-con.fe-avail-row > :nth-child(2),.e-con.fe-avail-row > :nth-child(3){grid-column:1 / -1}
}

/* ---------- Headings ---------- */
.elementor-widget[class*=" fe-"] .elementor-heading-title,.elementor-widget[class^="fe-"] .elementor-heading-title{font-family:var(--fy-serif);font-weight:400;color:inherit;line-height:1.1;text-transform:none;letter-spacing:normal}
.elementor-widget.fe-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:14px;font-family:var(--fy-mono);font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.22em;line-height:1.5;color:var(--fy-accent)}
.elementor-widget.fe-eyebrow .elementor-heading-title::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6;flex:none}
.fy-tone-sand .elementor-widget.fe-eyebrow .elementor-heading-title,.e-con.fe-sand .elementor-widget.fe-eyebrow .elementor-heading-title{color:var(--fy-accent-deep)}
.e-con.fe-dark .elementor-widget.fe-eyebrow .elementor-heading-title{color:var(--fy-accent-light)}
.elementor-widget.fe-h1 .elementor-heading-title{font-size:clamp(52px,10vw,164px);line-height:1;letter-spacing:-.035em;text-wrap:balance}
.elementor-widget.fe-h1,.elementor-widget.fe-h1-page{margin-top:34px}
.elementor-widget.fe-h1-page .elementor-heading-title{font-size:clamp(44px,7vw,112px);line-height:1;letter-spacing:-.035em;text-wrap:balance;max-width:18ch}
.elementor-widget.fe-h1-landing{margin-top:32px}
.elementor-widget.fe-h1-landing .elementor-heading-title{font-size:clamp(44px,8vw,120px);line-height:1;letter-spacing:-.035em;max-width:16ch;text-wrap:balance}
.elementor-widget.fe-h2{margin-top:24px}
.elementor-widget.fe-h2 .elementor-heading-title{font-size:clamp(30px,4.2vw,58px);line-height:1.06;letter-spacing:-.02em;max-width:20ch}
.elementor-widget.fe-h2--wide .elementor-heading-title{max-width:22ch}
.elementor-widget.fe-h2--narrow .elementor-heading-title{max-width:14ch}
.elementor-widget.fe-h2--lg{margin-top:28px}
.elementor-widget.fe-h2--lg .elementor-heading-title{font-size:clamp(34px,5vw,68px);line-height:1.05;letter-spacing:-.03em}
.elementor-widget.fe-statement .elementor-heading-title{font-size:clamp(30px,4.4vw,64px);line-height:1.08;letter-spacing:-.02em}
.e-con.fe-sec .elementor-widget.fe-h3{margin:20px 0 16px}
.elementor-widget.fe-h3 .elementor-heading-title{font-size:34px;line-height:1.1}
.elementor-widget.fe-h3-lg .elementor-heading-title{font-size:clamp(28px,3.6vw,52px);line-height:1.05;letter-spacing:-.02em}
.elementor-widget.fe-num .elementor-heading-title{font-family:var(--fy-mono);font-size:14px;letter-spacing:.1em;color:var(--fy-accent);line-height:1.5}
.elementor-widget.fe-stat-value .elementor-heading-title{font-size:clamp(64px,9vw,136px);line-height:.9;letter-spacing:-.03em}
.elementor-widget.fe-stat-value .fy-accent{font-size:.5em}
.elementor-widget.fe-mini-value .elementor-heading-title{font-size:clamp(34px,4vw,52px);line-height:1;letter-spacing:-.02em}
.elementor-widget.fe-mini-value .fy-accent{font-size:.55em}
.elementor-widget.fe-quote .elementor-heading-title{font-size:clamp(26px,3vw,42px);line-height:1.2;letter-spacing:-.01em}
.elementor-widget.fe-quote .elementor-heading-title::before,.fy .fy-quote-xl .fy-qmark{color:var(--fy-accent)}
.elementor-widget.fe-quote .elementor-heading-title::before{content:"“"}
.elementor-widget.fe-label .elementor-heading-title{font-family:var(--fy-mono);font-size:13px;text-transform:uppercase;letter-spacing:.2em;color:var(--fy-faint);line-height:1.5}
.elementor-widget.fe-label--accent .elementor-heading-title{color:var(--fy-accent-deep)}
.elementor-widget.fe-logo .elementor-heading-title{font-family:var(--fy-serif);font-weight:500;font-size:27px;letter-spacing:-.01em;line-height:1.5;white-space:nowrap;color:inherit}
.elementor-widget.fe-logo .elementor-heading-title a{color:inherit}
.elementor-widget.fe-logo .fy-logo__dot{color:var(--fy-accent)}
.e-con.fe-dark .elementor-widget.fe-logo .fy-logo__dot{color:var(--fy-accent-light)}
.elementor-widget.fe-avail-name .elementor-heading-title{font-size:clamp(20px,1.8vw,26px);letter-spacing:-.01em;line-height:1.3}
.elementor-widget.fe-avail-place .elementor-heading-title{font-family:var(--fy-mono);font-size:13.5px;letter-spacing:.04em;color:var(--fy-muted);line-height:1.5}
.elementor-widget.fe-avail-cta .elementor-heading-title{font-family:var(--fy-mono);font-size:13.5px;letter-spacing:.04em;color:var(--fy-accent-deep);white-space:nowrap;line-height:1.5}
.elementor-widget-heading .elementor-heading-title a{color:inherit}
.elementor-widget[class*=" fe-"] .fy-accent{color:var(--fy-accent-deep)}
.e-con.fe-dark .elementor-widget .fy-accent{color:var(--fy-accent-light)}

/* ---------- Text ---------- */
.elementor-widget.elementor-widget-text-editor[class*=" fe-"]{font-family:var(--fy-sans);color:var(--fy-muted)}
.elementor-widget[class*=" fe-"] p{margin:0}
.elementor-widget[class*=" fe-"] p + p{margin-top:1em}
.elementor-widget.fe-lead{font-size:clamp(20px,2.1vw,27px);line-height:1.5;max-width:44ch}
.elementor-widget.fe-text{font-size:20px;line-height:1.65;max-width:60ch;margin-top:40px}
.elementor-widget.fe-body{font-size:18px;line-height:1.65}
.elementor-widget.fe-body--sm{font-size:17px}
.elementor-widget.fe-intro{font-size:18px;line-height:1.65;max-width:34ch}
.elementor-widget.fe-stat-text{font-size:18px;line-height:1.65;max-width:20ch;margin-top:24px}
.e-con.fe-dark .elementor-widget.fe-stat-text,.e-con.fe-dark .elementor-widget.fe-body{color:var(--fy-on-dark-muted)}
.elementor-widget.fe-mini-text{font-size:14px;line-height:1.5;margin-top:8px}
.elementor-widget.fe-attrib{font-family:var(--fy-mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--fy-muted)}
.elementor-widget.fe-note{font-family:var(--fy-mono);font-size:12px;letter-spacing:.06em;color:var(--fy-faint);margin-top:18px}
.elementor-widget.fe-prompt{font-family:var(--fy-mono);font-size:13px;text-transform:uppercase;letter-spacing:.2em;color:var(--fy-faint);margin-top:clamp(48px,6vw,80px)}
.elementor-widget.fe-list ul{list-style:none;padding:0;margin:36px 0 0;display:flex;flex-direction:column;gap:26px}
.elementor-widget.fe-list li{font-family:var(--fy-serif);font-size:clamp(22px,2.6vw,34px);line-height:1.15;color:var(--fy-ink);margin:0}
.elementor-widget.fe-list--muted li{color:var(--fy-faint)}
.elementor-widget.fe-list--marked li{display:flex;gap:18px}
.elementor-widget.fe-list--marked li::before{content:"◆";color:var(--fy-accent);font-size:.5em;transform:translateY(.5em);flex:none}
.elementor-widget.fe-avail-note{font-size:16px;color:var(--fy-muted)}
.elementor-widget-text-editor[class*=" fe-"] a{color:var(--fy-accent-deep)}

/* ---------- Buttons ---------- */
.elementor-widget.fe-btn .elementor-button,.elementor-widget.fe-btn--ghost .elementor-button,.elementor-widget.fe-btn--accent .elementor-button{display:inline-flex;align-items:center;gap:12px;font-family:var(--fy-mono);font-size:14px;font-weight:500;letter-spacing:.04em;line-height:1.5;padding:16px 26px;border-radius:2px;border:1px solid var(--fy-ink);background:var(--fy-ink);color:var(--fy-bg);fill:var(--fy-bg);text-transform:none;transition:background .2s,color .2s,border-color .2s}
.elementor-widget.fe-btn .elementor-button:hover{background:transparent;color:var(--fy-ink)}
.elementor-widget.fe-btn--ghost .elementor-button{background:transparent;color:var(--fy-ink);border-color:var(--fy-line)}
.elementor-widget.fe-btn--ghost .elementor-button:hover{background:var(--fy-ink);border-color:var(--fy-ink);color:var(--fy-bg)}
.elementor-widget.fe-btn--accent .elementor-button{background:var(--fy-accent);border-color:var(--fy-accent);color:#fff}
.elementor-widget.fe-btn--accent .elementor-button:hover{background:var(--fy-accent-deep);border-color:var(--fy-accent-deep);color:#fff}
.elementor-widget.fe-btn--sm .elementor-button{padding:14px 22px;gap:10px;white-space:nowrap}
.elementor-widget.fe-link .elementor-button{display:inline-flex;align-items:center;gap:10px;background:transparent;border:0;border-bottom:1px solid var(--fy-line);border-radius:0;padding:0 0 4px;font-family:var(--fy-mono);font-size:14px;font-weight:400;letter-spacing:.04em;line-height:1.5;color:var(--fy-ink);transition:gap .2s,border-color .2s,color .2s}
.elementor-widget.fe-link .elementor-button:hover{gap:16px;border-color:var(--fy-accent);color:var(--fy-accent-deep)}

/* ---------- Image carousel (Elementor "Image Carousel") ---------- */
.elementor-widget.fe-carousel{border-radius:3px;border:1px solid var(--fy-line);overflow:hidden;background:#ECEEF1}
.elementor-widget.fe-carousel .swiper-slide,.elementor-widget.fe-carousel .swiper-slide-inner{aspect-ratio:16/9;height:auto}
.elementor-widget.fe-carousel img.swiper-slide-image,.elementor-widget.fe-image img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;max-width:none;display:block}
.elementor-widget.fe-image{border-radius:3px;border:1px solid var(--fy-line);overflow:hidden}
.elementor-widget.fe-carousel .elementor-swiper-button{width:34px;height:34px;top:auto!important;bottom:12px;transform:none;display:flex;align-items:center;justify-content:center;background:rgba(21,24,29,.62);border-radius:2px;color:var(--fy-bg);font-size:14px}
.elementor-widget.fe-carousel .elementor-swiper-button svg{fill:var(--fy-bg);width:12px;height:12px}
.elementor-widget.fe-carousel .elementor-swiper-button-prev{left:auto!important;right:54px!important}
.elementor-widget.fe-carousel .elementor-swiper-button-next{right:12px!important}
.elementor-widget.fe-carousel .swiper-pagination{display:none}

/* ---------- Logo wall (Elementor "Basic Gallery") ---------- */
.elementor-widget.fe-logos{margin-top:clamp(40px,5vw,72px)}
.elementor-widget.fe-logos .gallery{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(max(180px,calc((100% - 4px) / 5)),1fr));gap:1px;background:rgba(21,24,29,.10);border:1px solid rgba(21,24,29,.10);margin:0!important}
.elementor-widget.fe-logos--wide .gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.elementor-widget.fe-logos .gallery-item{width:auto!important;max-width:none!important;margin:0!important;padding:22px 26px!important;aspect-ratio:auto;background:var(--fy-bg);border:1px solid rgba(21,24,29,.10);box-sizing:content-box;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,background-color .35s;position:relative}
.elementor-widget.fe-logos .gallery-item:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(21,24,29,.12);background:#fff;z-index:2}
.elementor-widget.fe-logos .gallery-icon{aspect-ratio:5/2;display:block}
.elementor-widget.fe-logos .gallery-item img{width:100%!important;height:100%!important;object-fit:contain;border:0!important;max-width:none}
.elementor-widget.fe-logos .gallery-caption,.elementor-widget.fe-logos br{display:none}
@media (max-width:600px){.elementor-widget.fe-logos .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.elementor-widget.fe-logos .gallery-item{padding:14px 16px!important}}

/* ---------- FAQ (Elementor "Accordion") ---------- */
.elementor-widget.fe-faq .elementor-accordion{border-top:1px solid var(--fy-line)}
.elementor-widget.fe-faq .elementor-accordion-item{border:0!important;border-bottom:1px solid var(--fy-line)!important}
.elementor-widget.fe-faq .elementor-tab-title{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:baseline;gap:24px;padding:28px 0!important;border:0!important;cursor:pointer;font-family:var(--fy-serif);font-weight:400;font-size:clamp(22px,2vw,28px);line-height:1.2;letter-spacing:-.01em;color:var(--fy-ink);transition:color .2s}
.elementor-widget.fe-faq .elementor-tab-title a{color:inherit}
.elementor-widget.fe-faq .elementor-tab-title:hover,.elementor-widget.fe-faq .elementor-tab-title.elementor-active{color:var(--fy-accent)}
.elementor-widget.fe-faq .elementor-accordion-icon{color:var(--fy-accent);font-family:var(--fy-mono);font-size:20px;width:auto!important;float:none!important}
.elementor-widget.fe-faq .elementor-accordion-icon svg{fill:var(--fy-accent);width:16px;height:16px}
.elementor-widget.fe-faq .elementor-tab-content{border:0!important;padding:0 0 32px!important;font-family:var(--fy-sans);font-size:18px;line-height:1.65;color:var(--fy-muted);max-width:62ch}
.e-con.fe-faq-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:clamp(32px,6vw,110px)!important;align-items:start}
.e-con.fe-faq-grid > *{width:auto;--width:auto;min-width:0}

/* ---------- Header (Theme Builder) ---------- */
.elementor-location-header{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:100}
.e-con.fe-header{height:var(--fy-nav-h);--flex-direction:row;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:24px!important;--padding-top:0px;--padding-bottom:0px;--padding-left:clamp(18px,6vw,132px);--padding-right:clamp(18px,6vw,132px);padding:0 clamp(18px,6vw,132px)!important;background:rgba(245,246,248,.82);background:color-mix(in srgb,var(--fy-bg) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--fy-line-soft)}
.e-con.fe-header > .elementor-widget{width:auto}
.e-con.fe-header-right{--flex-direction:row;flex-direction:row;align-items:center;justify-content:flex-end;gap:clamp(10px,1.3vw,28px)!important;flex:1 1 auto;width:auto;--width:auto;min-width:0;padding:0!important}
.e-con.fe-header-right > .elementor-widget{width:auto}
.elementor-widget.fe-menu .elementor-nav-menu--main .elementor-item{font-family:var(--fy-mono);font-size:clamp(11.5px,1.05vw,13.5px);font-weight:400;letter-spacing:.02em;white-space:nowrap;color:var(--fy-muted);padding:0 clamp(5px,.65vw,14px)}
.elementor-widget.fe-menu .elementor-nav-menu--main .elementor-item:hover,.elementor-widget.fe-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,.elementor-widget.fe-menu .elementor-nav-menu--main .fy-highlight > .elementor-item{color:var(--fy-accent-deep)}
.elementor-widget.fe-menu .elementor-menu-toggle{font-family:var(--fy-mono);background:transparent;border:1px solid var(--fy-line);border-radius:2px;padding:12px 14px;color:var(--fy-ink)}
.elementor-widget.fe-menu .elementor-menu-toggle:hover{border-color:var(--fy-ink)}
.elementor-widget.fe-menu .elementor-nav-menu--dropdown{background:var(--fy-bg);box-shadow:0 18px 40px rgba(21,24,29,.10);border-bottom:1px solid var(--fy-line-soft)}
.elementor-widget.fe-menu .elementor-nav-menu--dropdown .elementor-item{font-family:var(--fy-mono);font-size:15px;letter-spacing:.02em;color:var(--fy-ink);padding:16px clamp(18px,6vw,132px);border-bottom:1px solid var(--fy-line-soft);background:transparent}
.elementor-widget.fe-menu .elementor-nav-menu--dropdown .fy-highlight > .elementor-item,.elementor-widget.fe-menu .elementor-nav-menu--dropdown .elementor-item:hover{color:var(--fy-accent-deep);background:transparent}
@media (max-width:420px){.e-con.fe-header .elementor-widget.fe-btn--accent .elementor-button{padding:14px}}

/* ---------- Footer (Theme Builder) ---------- */
.e-con.fe-footer{--padding-top:clamp(64px,8vw,110px);--padding-bottom:40px;--padding-left:var(--fy-gutter);--padding-right:var(--fy-gutter);--content-width:var(--fy-max);color:var(--fy-on-dark)}
.e-con.fe-footer-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:48px!important;padding-bottom:64px!important;border-bottom:1px solid rgba(245,246,248,.14)}
.e-con.fe-footer-grid > *{width:auto;--width:auto;min-width:0;display:block}
.e-con.fe-footer-grid > .e-con.fe-footer-main{grid-column:1 / -1}
.elementor-widget.fe-footer-title .elementor-heading-title{font-size:clamp(34px,4.5vw,60px);line-height:1.02;letter-spacing:-.02em;color:var(--fy-on-dark)}
.e-con.fe-footer .elementor-widget.fe-footer-title{margin-bottom:30px}
.elementor-widget.fe-footer-h .elementor-heading-title{font-family:var(--fy-mono);font-size:12.5px;text-transform:uppercase;letter-spacing:.18em;color:var(--fy-faint);font-weight:500;line-height:1.5}
.e-con.fe-footer .elementor-widget.fe-footer-h{margin-bottom:22px}
.elementor-widget.fe-footer-links .elementor-icon-list-items{display:flex;flex-direction:column;gap:12px}
.elementor-widget.fe-footer-links .elementor-icon-list-item{padding:0!important;margin:0!important}
.elementor-widget.fe-footer-links .elementor-icon-list-text,.elementor-widget.fe-footer-links a{font-family:var(--fy-sans);font-size:16px;color:var(--fy-on-dark-link);padding:0!important}
.elementor-widget.fe-footer-links a:hover .elementor-icon-list-text{color:var(--fy-on-dark)}
.elementor-widget.fe-footer-links .elementor-icon-list-icon{display:none}
.e-con.fe-footer-bar{--flex-direction:row;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px!important;padding-top:32px!important}
.e-con.fe-footer-bar > .elementor-widget{width:auto}
.elementor-widget.fe-footer-copy .elementor-heading-title,.elementor-widget.fe-footer-copy{font-family:var(--fy-mono);font-size:12.5px;letter-spacing:.06em;color:var(--fy-faint);line-height:1.5}

/* Pro Form */
.elementor-widget.fe-form{max-width:640px}
.elementor-widget.fe-form .elementor-form-fields-wrapper{margin:0 -12px!important;row-gap:18px}
.elementor-widget.fe-form .elementor-field-group{padding:0 12px!important;margin-bottom:0!important}
.elementor-widget.fe-form .elementor-field-textual,.elementor-widget.fe-form .elementor-field{font-family:var(--fy-sans);font-size:17px!important;line-height:1.5;color:var(--fy-on-dark)!important;background:transparent!important;border:0!important;border-bottom:1px solid rgba(245,246,248,.28)!important;border-radius:0!important;padding:12px 0!important;min-height:0;box-shadow:none!important}
.elementor-widget.fe-form .elementor-field::placeholder{color:rgba(245,246,248,.5);opacity:1}
.elementor-widget.fe-form .elementor-field:focus{border-bottom-color:var(--fy-accent-light)!important}
.elementor-widget.fe-form .elementor-field-type-submit{margin-top:26px!important}
.elementor-widget.fe-form .e-form__buttons{justify-content:flex-start!important}
.elementor-widget.fe-form .elementor-button{display:inline-flex;align-items:center;gap:12px;font-family:var(--fy-mono);font-size:14px;font-weight:500;letter-spacing:.04em;line-height:1.5;padding:16px 26px;border-radius:2px;border:1px solid var(--fy-accent);background:var(--fy-accent)!important;color:#fff;width:auto;flex-grow:0}
.elementor-widget.fe-form .elementor-button:hover{background:var(--fy-accent-deep)!important;border-color:var(--fy-accent-deep)}
.elementor-widget.fe-form .elementor-message{color:var(--fy-accent-light);font-size:15px}

/* ---------- Landing (welcome page) ---------- */
.e-con.fe-landing{min-height:100vh;--padding-top:clamp(32px,5vw,64px);--padding-bottom:clamp(32px,4vw,56px);--padding-left:var(--fy-gutter);--padding-right:var(--fy-gutter);justify-content:space-between;gap:64px!important;--gap:64px}
.e-con.fe-landing > .e-con-inner{justify-content:space-between;gap:64px}
.e-con.fe-paths{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));margin-top:28px;border-top:1px solid var(--fy-line)}
.e-con.fe-paths > .e-con.fe-path{width:auto;--width:auto;display:flex;flex-direction:column;gap:20px!important;padding:clamp(32px,4vw,56px) clamp(24px,3vw,56px)!important;border-bottom:1px solid var(--fy-line);border-right:1px solid var(--fy-line);transition:background .25s,padding-left .25s;color:var(--fy-ink);text-decoration:none}
.e-con.fe-paths > .e-con.fe-path:first-child{padding-left:0!important}
.e-con.fe-paths > .e-con.fe-path:last-child{padding-right:0!important;border-right:0}
.e-con.fe-paths > .e-con.fe-path:hover{background:var(--fy-sand);padding-left:clamp(16px,2vw,28px)!important}
.e-con.fe-paths > .e-con.fe-path + .e-con.fe-path:hover{padding-left:clamp(32px,4vw,72px)!important}
.elementor-widget.fe-path-title .elementor-heading-title{font-size:clamp(30px,3.6vw,50px);line-height:1.06;letter-spacing:-.02em}
.elementor-widget.fe-path-text{font-size:18px;line-height:1.65;max-width:36ch}
.elementor-widget.fe-path-cta .elementor-heading-title{font-family:var(--fy-mono);font-size:14px;letter-spacing:.04em;line-height:1.5;margin-top:8px}
.e-con.fe-landing-foot{--flex-direction:row;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px!important}
.e-con.fe-landing-foot > .elementor-widget{width:auto}
.elementor-widget.fe-mono-sm .elementor-heading-title{font-family:var(--fy-mono);font-size:12.5px;letter-spacing:.06em;color:var(--fy-faint);line-height:1.5}
.elementor-widget.fe-mono-sm a{color:var(--fy-muted)}
@media (max-width:700px){
  .e-con.fe-paths > .e-con.fe-path,.e-con.fe-paths > .e-con.fe-path:first-child,.e-con.fe-paths > .e-con.fe-path:last-child{padding:32px 0!important;border-right:0}
  .e-con.fe-paths > .e-con.fe-path:hover,.e-con.fe-paths > .e-con.fe-path + .e-con.fe-path:hover{padding-left:16px!important}
}

/* ---------- Shortcode listings inside Elementor ---------- */
.elementor-widget-shortcode .fy-cases,.elementor-widget-shortcode .fy-quotes{width:100%}
.e-con.fe-more{margin-top:clamp(32px,4vw,56px);align-items:flex-start}

/* ---------- Loop Items (Elementor Pro Loop Builder) ---------- */
.e-loop-item{height:100%}
.e-con.fe-loop-case,.e-con.fe-loop-quote{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;background:transparent;color:var(--fy-ink);height:100%}
.e-con.fe-loop-case .elementor-widget:not(:last-child),.e-con.fe-loop-quote .elementor-widget:not(:last-child){margin-block-end:0}
.e-con.fe-loop-case .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px}
/* case study card */
.e-con.fe-loop-case{display:flex;flex-direction:column;gap:24px!important}
.e-con.fe-loop-case > .elementor-widget-shortcode{margin-top:auto}
.e-con.fe-loop-case > .elementor-widget-button{align-self:flex-start;width:auto}
.elementor-widget.fe-case-place .elementor-heading-title{font-family:var(--fy-mono);font-size:12.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--fy-faint);line-height:1.5}
.e-con .elementor-widget.fe-case-title{margin:14px 0}
.elementor-widget.fe-case-title .elementor-heading-title{font-size:clamp(26px,2.6vw,36px);line-height:1.1;letter-spacing:-.02em}
.elementor-widget.fe-case-title .elementor-heading-title a:hover{color:var(--fy-accent-deep)}
.elementor-widget.fe-case-text{font-size:17px;line-height:1.65}
.e-con.fe-loop-case .fy-case__stats{padding-top:8px}
/* testimonial card */
.e-con.fe-loop-quote{display:flex;flex-direction:column;justify-content:space-between;gap:32px!important;padding:44px 0!important;border-top:1px solid var(--fy-line)}
.elementor-widget.fe-loop-quote-text .elementor-heading-title{font-size:clamp(20px,1.8vw,26px);line-height:1.3;letter-spacing:-.01em;text-wrap:pretty}
.elementor-widget.fe-loop-quote-text .elementor-heading-title::before{content:"“";color:var(--fy-accent)}
.e-con.fe-loop-by-row{flex-direction:row;flex-wrap:wrap;gap:0!important;align-items:baseline}
.e-con.fe-loop-by-row > .elementor-widget{width:auto}
.elementor-widget.fe-loop-by .elementor-heading-title{font-family:var(--fy-mono);font-size:12.5px;line-height:1.6;letter-spacing:.16em;text-transform:uppercase;color:var(--fy-muted);white-space:pre-wrap}
/* Loop Grid widget */
.elementor-widget.fe-loop-grid{width:100%}
.elementor-widget.fe-loop-grid--quotes .elementor-loop-container{row-gap:0!important}
