/* Native Elementor adapters. Defaults deliberately have low specificity so
 * Elementor's per-element controls and responsive settings remain authoritative. */
body.fylvo-site {
  --fd-blue: var(--e-global-color-primary, #174ff1);
  --fd-ink: var(--e-global-color-secondary, #13223b);
  --fd-muted: var(--e-global-color-text, #596475);
  --fd-paper: var(--e-global-color-fdpaper, #f6f5f1);
  --fd-white: var(--e-global-color-fdwhite, #fff);
  --fd-tint: var(--e-global-color-fdtint, #eaf0ff);
  --fd-studio-navy: var(--e-global-color-fdnavy, #0d2249);
  --fd-studio-soft: var(--e-global-color-fdsoft, #bacaff);
}
.elementor { --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px; }
.elementor .elementor-widget { min-width: 0; }
.elementor :where(.elementor p:last-child) { margin-bottom: 0; }
.elementor .elementor-heading-title { line-height: 1.13; font-weight: 500; overflow-wrap: anywhere; }
.elementor .elementor-widget-text-editor { overflow-wrap: anywhere; }
.elementor .elementor-widget-text-editor p { color: inherit; font-size: inherit; line-height: inherit; font-family: inherit; }
.elementor div.e-con:where(.fd-container, .fd-studio-shell) { --width: min(calc(100% - var(--fd-gutter) * 2), var(--fd-width)); width: var(--width); margin-inline: auto; }
.elementor :where(.elementor .e-con.fd-studio-shell > .e-con, .elementor .fd-grid > .e-con) { min-width: 0; }

/* Published language-specific header and footer templates. */
.fd-elementor-header { position: relative; z-index: 100; padding: 20px 24px; }
.fd-elementor-header-inner { width: min(100%, var(--fd-width)); margin-inline: auto; min-height: 80px; padding: 0 26px; border: 1px solid var(--fd-line); border-radius: 100px; background: var(--fd-white); box-shadow: 0 4px 20px rgb(19 34 59 / 3%); }
.elementor div.e-con:where(.fd-elementor-header-inner) { --width: min(100%, var(--fd-width)); --flex-wrap: nowrap; --flex-wrap-mobile: nowrap; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 26px; --padding-right: 26px; }
.elementor :where(.fd-elementor-logo) { width: 188px; flex: 0 0 auto; }
.elementor .elementor-element:where(.fd-elementor-logo) a { display: block; width: 100%; }
.elementor .elementor-element:where(.fd-elementor-logo) img { display: block; width: 100%; height: auto; }
.elementor .elementor-element:where(.fd-elementor-header-inner .fd-elementor-logo) { width: 188px; }
.elementor .elementor-element:where(.fd-elementor-nav-widget) { width: auto; align-self: stretch; margin-inline-start: auto; }
.elementor :where(.fd-elementor-nav-widget > .elementor-widget-container, .fd-elementor-navigation) { height: 100%; }
.elementor :where(.fd-elementor-menu.fd-nav) { min-height: 80px; height: 100%; }
.elementor div.e-con:where(.fd-elementor-header-tools) { --width: auto; width: var(--width); flex-shrink: 0; }
.elementor .elementor-widget:where(.fd-elementor-header-tools > .elementor-widget) { width: auto; }
.elementor :where(.fd-elementor-header-cta .elementor-button) { min-height: 46px; padding: 14px 18px; font-size: .8rem; white-space: nowrap; }
.elementor :where(.fd-elementor-portal-link .fd-login-link) { border: 0; margin: 0; padding: 0; font-size: .78rem; }
.elementor :where(.fd-elementor-portal-link:empty, .fd-elementor-portal-link:has(> .elementor-widget-container:empty)) { display: none; }
.fd-elementor-navigation .fd-mobile-portal-link { display: none; }
.fd-elementor-footer { padding: var(--fd-space) var(--fd-gutter) 0; }
.elementor .e-con:where(.fd-elementor-footer-inner) { --width: min(100%, var(--fd-width)); width: var(--width); margin-inline: auto; }
.elementor :where(.fd-elementor-footer .fd-footer-top) { display: flex; flex-direction: column; align-items: flex-start; margin: 0; }
.elementor :where(.fd-elementor-footer .fd-footer-grid) { width: 100%; margin: 0; padding: 0; }
.elementor :where(.fd-elementor-footer .fd-footer-brand) { grid-column: auto; }
.elementor :where(.fd-elementor-footer .fd-footer-heading .elementor-heading-title) { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem; }
.elementor :where(.fd-elementor-footer .fd-footer-contact p) { margin: 0; font-size: .9rem; }
.elementor :where(.fd-elementor-footer .fd-footer-contact .fd-studio-text-link-widget) { margin-bottom: 1rem; }
.elementor :where(.fd-elementor-social-links .elementor-icon-list-items) { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.elementor :where(.fd-elementor-footer-nav .fd-footer-menu) { display: grid; gap: .6rem; }
.elementor :where(.fd-elementor-legal-nav-widget .fd-footer-menu) { display: flex; flex-wrap: wrap; gap: .6rem 1.3rem; }

/* Typography follows the editable native heading rather than styling its wrapper. */
.elementor .elementor-element:where(.fd-studio-title) { max-width: none; }
.elementor section.e-con:where(.fd-studio-hero, .fd-studio-cta, .fd-elementor-page-hero) { max-width: calc(100% - var(--margin-left, 0px) - var(--margin-right, 0px)); }
.elementor :where(.fd-studio-title) h1.elementor-heading-title { font-size: clamp(3.3rem, 5.6vw, 6rem); line-height: 1.035; max-width: 13ch; }
.elementor :where(.fd-studio-title .elementor-heading-title > span, .fd-studio-title .elementor-heading-title > em) { display: block; }
.elementor :where(.fd-studio-title .elementor-heading-title > em) { color: var(--fd-studio-soft); font-family: var(--fd-serif); font-weight: 400; letter-spacing: -.035em; }
.elementor .elementor-widget:where(.fd-studio-eyebrow, .fd-eyebrow) { display: block; }
.elementor .elementor-widget:where(.fd-studio-eyebrow, .fd-eyebrow)::before { display: none; }
.elementor .elementor-heading-title:where(.fd-studio-eyebrow *, .fd-eyebrow *) { font-family: var(--fd-mono); font-size: .7rem; line-height: 1.5; letter-spacing: .095em; text-transform: uppercase; }
.elementor :where(.fd-studio-eyebrow .elementor-heading-title)::before { content: ""; display: inline-block; width: 8px; height: 6px; margin-inline-end: 10px; vertical-align: 2px; background: currentColor; clip-path: polygon(34% 0,100% 0,64% 100%,0 100%); }
.elementor :where(.elementor .fd-studio-section-head > .elementor-widget-text-editor) { flex: 0 1 32%; max-width: 31rem; }
.elementor :where(.elementor .fd-studio-section-head > .e-con) { width: auto; flex: 1; }
.elementor :where(.fd-studio-section-head) .elementor-heading-title:is(h2) { font-size: clamp(2.3rem, 4.3vw, 4.3rem); }
.elementor :where(.elementor .fd-studio-lead) { font-size: clamp(1.05rem, 1.35vw, 1.22rem); }
.elementor :where(.fd-studio-button-widget) a.elementor-button { display: inline-flex; align-items: center; min-height: 58px; border: 1px solid transparent; border-radius: 100px; padding: 19px 25px; font-size: .9rem; font-weight: 600; line-height: 1.3; text-decoration: none; }
.elementor :where(.fd-studio-button-widget.is-ghost .elementor-button) { border-color: #8799b5; }
.elementor :where(.fd-studio-button-widget .elementor-button:hover) { filter: brightness(.93); }
.elementor :where(.fd-studio-text-link-widget) a.elementor-button { padding: 0; min-height: 44px; display: inline-flex; align-items: center; border-radius: 0; font-size: .88rem; font-weight: 600; line-height: 1.5; text-decoration: underline; text-underline-offset: .3em; }
.elementor :where(.fd-elementor-footer-cta) a.elementor-button { padding: 0; background: transparent; color: var(--fd-white); font-size: clamp(2rem, 4.2vw, 4rem); font-weight: 500; text-align: left; letter-spacing: -.04em; }
.elementor :where(.elementor .fd-studio-actions > .elementor-widget) { width: auto; }
.elementor .e-con:where(.fd-studio-hero-visual) { display: block; }
.elementor .e-con:where(.fd-studio-preview) { padding: var(--padding-top, 0) var(--padding-right, 0) var(--padding-bottom, 0) var(--padding-left, 0); }
.elementor figure.e-con:where(.fd-studio-preview.is-main) { --width: 95%; width: var(--width); }
.elementor figure.e-con:where(.fd-studio-preview.is-secondary) { --width: 66%; width: var(--width); }
.elementor :where(.fd-studio-preview-caption) p.elementor-heading-title { font-size: .74rem; line-height: 1.4; margin: 13px 7px 6px; }
.elementor :where(.fd-studio-preview.is-secondary .fd-studio-preview-caption .elementor-heading-title) { font-size: .67rem; margin-block: 10px 3px; }
.elementor :where(.fd-studio-preview-caption a) { color: inherit; text-decoration: none; }
.elementor :where(.elementor .fd-studio-partner-label .elementor-heading-title) { font-size: 1.07rem; font-weight: 600; margin-bottom: .4rem; }
.elementor :where(.elementor .fd-elementor-partner-disclosure) { font-size: .76rem; line-height: 1.7; }
.elementor :where(.elementor .fd-studio-capability .fd-studio-capability-num .elementor-heading-title) { font-family: var(--fd-mono); font-size: .7rem; }
.elementor :where(.elementor .fd-studio-capability .fd-studio-arrow .elementor-heading-title) { font-size: 1.2rem; }
.elementor :where(.elementor .fd-studio-step .fd-studio-step-num .elementor-heading-title) { font-family: var(--fd-serif); font-size: 2.4rem; line-height: 1; }
.elementor .e-con:where(.fd-studio-step) { --padding-top: 32px; --padding-right: 32px; --padding-bottom: 32px; --padding-left: 32px; }
.elementor .e-con:where(.fd-studio-quote) { --width: min(100%, 950px); width: var(--width); }
.elementor :where(.elementor .fd-studio-quote .elementor-widget-text-editor p) { font-size: inherit; color: inherit; }
.elementor :where(.elementor .fd-elementor-review-name .elementor-heading-title) { font-size: .9rem; font-weight: 600; margin: 2rem 0 .35rem; }
.elementor :where(.elementor .fd-elementor-review-company) { font-size: .85rem; }
.elementor :where(.elementor .fd-elementor-review-note) { font-size: .72rem; margin-top: .4rem; }
.elementor :where(.elementor .fd-studio-proof .fd-studio-text-link-widget) { margin-top: 1.5rem; }
.elementor :where(.fd-elementor-faq) div.elementor-accordion-item { margin-bottom: .7rem; border: 1px solid var(--fd-line); border-radius: 18px; overflow: hidden; background: var(--fd-white); }
.elementor :where(.fd-elementor-faq) div.elementor-tab-title { padding: 24px; font-size: 1rem; font-weight: 500; line-height: 1.5; }
.elementor :where(.fd-elementor-faq) div.elementor-tab-content { padding: 0 24px 24px; border-top: 0; font-size: .96rem; line-height: 1.65; }
.elementor :where(.fd-elementor-faq) a.elementor-accordion-title { font-size: inherit; font-weight: inherit; line-height: inherit; }
.elementor :where(.fd-elementor-faq) span.elementor-accordion-icon { color: var(--fd-blue); }
.elementor :where(.fd-elementor-page-hero) .elementor-heading-title:is(h1) { font-size: clamp(3rem, 5.8vw, 5.9rem); max-width: 19ch; line-height: 1.07; }
.elementor :where(.fd-elementor-page-hero .fd-hero-grid) { display: block; }
.elementor div.e-con:where(.fd-elementor-page-hero .fd-container) { --width: 100%; width: var(--width); }
.elementor :where(.fd-elementor-page-hero .fd-hero-copy) { width: 100%; }
.elementor :where(.fd-elementor-page-hero .fd-lead) { max-width: 47rem; }
.elementor :where(.fd-elementor-copy-section .elementor-heading-title:is(h2)) { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.elementor :where(.elementor .fd-case-website-frame img) { width: 100%; height: auto; aspect-ratio: 1.65; object-fit: cover; object-position: top; border-radius: 16px; }
.elementor :where(.fd-elementor-case-caption) { font-size: .85rem; padding: 1.1rem; }
.elementor :where(.fd-elementor-case-caption .elementor-heading-title) { font-size: .85rem; }
.elementor :where(.elementor .fd-contextual-index) { width: min(calc(100% - var(--fd-gutter) * 2), var(--fd-width)); margin-inline: auto; }
.elementor :where(.elementor .fd-elementor-document) { max-width: 850px; margin-inline: auto; }
.elementor :where(.elementor .fd-studio-hero, .elementor .is-dark, .elementor .fd-elementor-page-hero, .fd-elementor-footer .fd-footer-top) :focus-visible { outline-color: #c7d5ff; }

@media (max-width: 1199px) {
  .elementor :where(.fd-elementor-header-cta) { display: none; }
  .elementor .elementor-element:where(.fd-elementor-header-inner .fd-elementor-logo) { width: 166px; }
}
@media (max-width: 1040px) {
  .elementor .e-con:where(.fd-elementor-header-inner) { --padding-left: 20px; --padding-right: 20px; }
  .elementor .elementor-element:where(.fd-elementor-nav-widget) { position: static; align-self: center; order: 3; margin-inline-start: 0; }
  .elementor .e-con:where(.fd-elementor-header-tools) { margin-inline-start: auto; }
  .elementor :where(.fd-elementor-header-tools .fd-elementor-portal-link) { display: none; }
  .fd-elementor-navigation .fd-mobile-portal-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 10px; padding: 12px 0; border-top: 1px solid var(--fd-line); color: var(--fd-blue); font-weight: 600; text-decoration: none; }
  .fd-elementor-navigation > .fd-nav { position: absolute; top: 100%; inset-inline: 0; width: 100%; height: auto; min-height: 0; margin: 0; padding: 12px 24px 24px; background: var(--fd-white); border: 1px solid var(--fd-line); border-radius: 0 0 24px 24px; box-shadow: 0 20px 36px rgb(19 34 59 / 12%); }
  .fd-js .fd-elementor-navigation .fd-menu-toggle { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding: 8px 0; background: transparent; border: 0; color: var(--fd-ink); font-size: .8rem; }
  html:not(.fd-js) .fd-elementor-header-inner { flex-wrap: wrap; }
  html:not(.fd-js) .fd-elementor-nav-widget { width: 100%; }
  html:not(.fd-js) .fd-elementor-navigation > .fd-nav { position: static; box-shadow: none; border: 0; padding: 12px 0; }
}
@media (max-width: 767px) {
  .elementor :where(.fd-elementor-faq) div.elementor-tab-title { padding: 20px; }
  .elementor :where(.fd-elementor-faq) div.elementor-tab-content { padding: 0 20px 20px; }
  .fd-elementor-header { padding: 12px; }
  .fd-elementor-navigation .fd-menu-toggle { min-width: 44px; justify-content: center; }
  .fd-elementor-navigation [data-menu-label] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .elementor .e-con:where(.fd-elementor-header-inner) { --min-height: 72px; --padding-left: 14px; --padding-right: 14px; --gap: 10px; }
  .elementor .elementor-element:where(.fd-elementor-header-inner .fd-elementor-logo) { width: 142px; }
  .elementor :where(.fd-studio-title) h1.elementor-heading-title { font-size: clamp(2.8rem, 10.8vw, 4.4rem); }
  .elementor :where(.elementor .fd-studio-hero, .elementor .fd-studio-capabilities, .elementor .fd-studio-process, .elementor .fd-studio-cta, .elementor .fd-elementor-page-hero) { margin-inline: 12px; border-radius: 24px; }
  .elementor :where(.elementor .fd-studio-section-head > .elementor-widget-text-editor) { flex-basis: auto; }
  .elementor :where(.elementor .fd-studio-section-head > .e-con) { width: 100%; }
  .elementor :where(.fd-studio-hero-visual) { margin-top: 1rem; }
  .elementor figure.e-con:where(.fd-studio-preview.is-main) { --width: 93%; }
  .elementor figure.e-con:where(.fd-studio-preview.is-secondary) { --width: 68%; margin-top: -35px; }
  .elementor :where(.elementor .fd-studio-partner-badge) { width: 145px; }
  .elementor :where(.fd-elementor-footer .fd-footer-brand) { grid-column: auto; }
  .elementor :where(.fd-elementor-footer .fd-footer-social, .fd-elementor-footer .fd-footer-bottom) { align-items: flex-start; }
  .elementor :where(.fd-elementor-page-hero) .elementor-heading-title:is(h1) { font-size: clamp(2rem, 9.2vw, 4rem); hyphens: auto; }
}
@media (max-width: 360px) {
  .elementor .elementor-element:where(.fd-elementor-header-inner .fd-elementor-logo) { width: 124px; }
  .elementor .e-con:where(.fd-elementor-header-inner) { --padding-left: 10px; --padding-right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor :where(.elementor .fd-studio-project-image img, .elementor .fd-studio-button-widget .elementor-button) { transition: none; }
}
@media print {
  .fd-elementor-header, .fd-elementor-footer { display: none; }
}
