/* ============================================================
   FOMENKO DESIGN SYSTEM v3 — total redesign
   Navy/Blue · Manrope + Inter · section rhythm · soft depth
   ============================================================ */

:root {
    --fm-navy: #0b1228;
    --fm-navy-2: #131c45;
    --fm-blue: #2e3f9e;
    --fm-accent: #1f6fe5;
    --fm-accent-2: #5b93f2;
    --fm-bg-soft: #f4f7fc;
    --fm-text: #1a2233;
    --fm-muted: #5d677e;
    --fm-line: #e4eaf5;
    --fm-radius: 24px;
    --fm-radius-sm: 16px;
    --fm-shadow: 0 18px 60px rgba(11, 18, 40, .14);
    --fm-shadow-sm: 0 4px 22px rgba(11, 18, 40, .07);
    --fm-glow: 0 8px 30px rgba(31, 111, 229, .35);
    --fm-ease: cubic-bezier(.16, 1, .3, 1);
}

/* ================= BASE ================= */

body {
    font-family: 'Inter', sans-serif !important;
    color: var(--fm-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5 {
    font-family: 'Manrope', sans-serif !important;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.12;
    color: var(--fm-navy);
}

.entry-content h1 { font-size: clamp(2.4rem, 5vw, 3.9rem); }
.entry-content h2 { font-size: clamp(1.9rem, 3.2vw, 2.7rem); margin-bottom: .5em; }
.entry-content h3 { font-size: 1.25rem; font-weight: 700; }
.entry-content p, .entry-content li {
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--fm-muted);
}
.entry-content p strong { color: var(--fm-text); }

a { transition: color .25s; }

::selection { background: var(--fm-accent); color: #fff; }

/* ================= SECTION SYSTEM ================= */

.fm-sec {
    padding: clamp(4rem, 7.5vw, 6.5rem) clamp(1.25rem, 4vw, 2rem) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.fm-sec--soft { background: var(--fm-bg-soft) !important; }

/* inner container: one 1200px column, children left-aligned */
.fm-sec > .wp-block-group__inner-container {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
}
.fm-sec > .wp-block-group__inner-container > * {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: none !important;
}
.fm-page-hero > .wp-block-group__inner-container > p:not(.fm-eyebrow) { max-width: 46em !important; }
.fm-hero .fm-hero-sub { max-width: 34em !important; }
.fm-sec--tight { padding-top: clamp(2.5rem, 4vw, 4rem) !important; padding-bottom: clamp(2.5rem, 4vw, 4rem) !important; }

.fm-sec--dark, .fm-hero {
    background-color: var(--fm-navy) !important;
    background-image:
        radial-gradient(1100px 540px at 88% -15%, rgba(91, 147, 242, .26), transparent 62%),
        radial-gradient(750px 480px at -10% 118%, rgba(46, 63, 158, .45), transparent 62%) !important;
    position: relative;
    overflow: hidden;
}
.fm-sec--dark::after, .fm-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px);
    background-size: 28px 28px;
    -webkit-mask-image: linear-gradient(115deg, transparent 38%, rgba(0, 0, 0, .95));
    mask-image: linear-gradient(115deg, transparent 38%, rgba(0, 0, 0, .95));
    pointer-events: none;
}
.fm-sec--dark > *, .fm-hero > * { position: relative; z-index: 1; }

.fm-sec--dark h1, .fm-sec--dark h2, .fm-sec--dark h3,
.fm-hero h1, .fm-hero h2 { color: #ffffff; }
.fm-sec--dark p, .fm-hero p:not(.fm-hero-badge):not(.fm-eyebrow) { color: #b9c4e8; }
.fm-sec--dark li, .fm-hero li { color: #b9c4e8; }

/* eyebrow */
.fm-eyebrow {
    display: inline-flex !important;
    align-items: center;
    gap: .6em;
    font-family: 'Manrope', sans-serif;
    font-size: .8rem !important;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--fm-accent) !important;
    margin-bottom: .9em !important;
}
.fm-eyebrow::before {
    content: "";
    width: 2.2em;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--fm-blue), var(--fm-accent-2));
}
.fm-sec--dark .fm-eyebrow, .fm-hero .fm-eyebrow { color: var(--fm-accent-2) !important; }
/* the eyebrow line break is mobile-only */
.fm-eyebrow .fm-ebr { display: none; }

/* section head spacing */
.fm-sec .fm-head { max-width: 720px; margin-bottom: clamp(1.8rem, 3vw, 3rem); }

/* ================= HEADER ================= */

#masthead, #masthead .site-header-row-container-inner {
    background: rgba(11, 18, 40, .96) !important;
}
#masthead {
    border-bottom: 1px solid rgba(255, 255, 255, .07);
}
/* Kadence sticky row: keep navy instead of default white */
#masthead .kadence-sticky-header.item-is-fixed,
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start),
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner {
    background: rgba(11, 18, 40, .94) !important;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    box-shadow: 0 10px 40px rgba(5, 9, 24, .45);
}
#masthead .site-header-row-container-inner > .site-container {
    padding-top: .8rem;
    padding-bottom: .8rem;
}
#masthead .site-branding { padding: .35rem 0; }

#masthead .primary-menu-container > ul { gap: .35rem; }
#masthead .primary-menu-container > ul > li > a {
    font-family: 'Manrope', sans-serif;
    font-weight: 600;
    font-size: .95rem;
    color: #d7def5;
    padding: .55rem .8rem !important;
    border-radius: 10px;
    transition: color .22s, background .22s;
}
#masthead .primary-menu-container > ul > li > a:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .07);
}
#masthead .primary-menu-container > ul > li.current-menu-item > a,
#masthead .primary-menu-container > ul > li.current-menu-ancestor > a {
    color: #ffffff;
    background: rgba(91, 147, 242, .16);
}

/* menu CTA pill */
#masthead .primary-menu-container > ul > li.fm-menu-cta > a {
    background: linear-gradient(120deg, var(--fm-blue), var(--fm-accent)) !important;
    color: #ffffff !important;
    border-radius: 999px !important;
    padding: .6rem 1.4rem !important;
    box-shadow: var(--fm-glow);
    margin: 0 .35rem;
    display: inline-flex;
    justify-content: center;
    transition: transform .25s var(--fm-ease), box-shadow .25s !important;
}
#masthead .primary-menu-container > ul > li.fm-menu-cta > a:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(31, 111, 229, .5);
    background: linear-gradient(120deg, #3449ad, #2f7bf0) !important;
}

/* dropdowns */
#masthead .primary-menu-container ul ul {
    background: #10183a;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(5, 9, 24, .55);
    padding: .4rem;
}
#masthead .primary-menu-container ul ul li a {
    color: #d7def5 !important;
    border-radius: 9px;
    font-size: .92rem;
    padding: .6rem .9rem !important;
    transition: background .2s, color .2s;
}
#masthead .primary-menu-container ul ul li a:hover {
    background: rgba(91, 147, 242, .15);
    color: #fff !important;
}

/* language switcher */
#masthead li.menu-item-has-children > a .lang-flag,
#masthead .lang-item img {
    vertical-align: -2px;
    border-radius: 4px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .25);
    width: 21px;
    height: auto;
}
#masthead .lang-item > a {
    display: inline-flex !important;
    align-items: center;
    gap: .55rem;
    font-size: .9rem;
}
/* current language as bordered pill — always one line */
#masthead .pll-parent-menu-item > a {
    display: inline-flex !important;
    align-items: center;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    padding: .5rem 1rem !important;
    background: rgba(255, 255, 255, .04);
}
#masthead .pll-parent-menu-item > a:hover {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .3);
}
#masthead .pll-parent-menu-item .nav-drop-title-wrap {
    display: inline-flex !important;
    align-items: center;
    gap: .5rem;
    white-space: nowrap;
}
#masthead .pll-parent-menu-item img { margin: 0 !important; flex: 0 0 auto; }
/* dropdown language items: flag + name nicely spaced */
#masthead .primary-menu-container ul ul .lang-item a {
    display: flex !important;
    align-items: center;
    gap: .6rem;
    min-width: 150px;
}
#masthead .primary-menu-container ul ul .lang-item.current-lang a {
    background: rgba(91, 147, 242, .18);
    color: #fff !important;
}

/* mobile toggle */
#masthead .menu-toggle-open { color: #fff; }
#mobile-drawer .drawer-inner { background: var(--fm-navy); }
#mobile-drawer .drawer-inner a { color: #d7def5; font-family: 'Manrope', sans-serif; font-weight: 600; }
#mobile-drawer .drawer-inner a:hover { color: #fff; }
/* language item lives next to the hamburger instead of inside the drawer */
#mobile-drawer .pll-parent-menu-item,
#mobile-drawer .lang-item { display: none !important; }

/* mobile flag dropdown (rendered by [fomenko_langs]) */
.fm-langdrop { position: relative; margin-right: .5rem; }
.fm-langdrop summary {
    list-style: none;
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .7rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .04);
    cursor: pointer;
}
.fm-langdrop summary::-webkit-details-marker { display: none; }
.fm-langdrop[open] summary { background: rgba(255, 255, 255, .12); }
.fm-langdrop-caret { color: #d7def5; font-size: .65rem; }
.fm-langdrop .fm-langbar {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    display: flex;
    flex-direction: column;
    gap: .25rem;
    list-style: none;
    margin: 0;
    padding: .5rem;
    background: #10183a;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 14px;
    box-shadow: 0 24px 60px rgba(5, 9, 24, .55);
    z-index: 1200;
}
.fm-langbar li { margin: 0; display: flex; }
.fm-langbar a { display: flex; padding: .4rem .55rem; border-radius: 8px; opacity: .7; transition: opacity .25s, background .25s; }
.fm-langbar a:hover { opacity: 1; background: rgba(91, 147, 242, .15); }
.fm-langbar .current-lang a { opacity: 1; background: rgba(91, 147, 242, .2); }
.fm-langbar img, .fm-langdrop summary img { width: 22px; height: auto; border-radius: 4px; display: block; }

/* ================= BUTTONS ================= */

.wp-block-button__link {
    font-family: 'Manrope', sans-serif !important;
    font-weight: 700 !important;
    font-size: .98rem !important;
    border-radius: 999px !important;
    padding: .9em 1.9em !important;
    line-height: 1.2 !important;
    transition: transform .25s var(--fm-ease), box-shadow .25s var(--fm-ease), background .25s !important;
    will-change: transform;
}
.wp-block-button__link:hover { transform: translateY(-3px); }
.wp-block-button__link:active { transform: translateY(-1px); }

.fm-btn-primary .wp-block-button__link {
    background: linear-gradient(120deg, var(--fm-blue), var(--fm-accent)) !important;
    color: #fff !important;
    box-shadow: var(--fm-glow);
}
.fm-btn-primary .wp-block-button__link:hover { box-shadow: 0 14px 40px rgba(31, 111, 229, .5); }

.fm-btn-ghost .wp-block-button__link {
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, .22) !important;
    box-shadow: none;
    display: inline-flex;
    align-items: center;
    gap: .55em;
}
.fm-btn-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .15) !important; }
/* crisp vector phone icon (replaces the emoji) */
.fm-btn-ghost .wp-block-button__link::before {
    content: "";
    width: 1.05em;
    height: 1.05em;
    flex: 0 0 auto;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.fm-btn-light .wp-block-button__link {
    background: #ffffff !important;
    color: var(--fm-blue) !important;
    box-shadow: 0 8px 26px rgba(5, 9, 24, .25);
}

.fm-btn-wa .wp-block-button__link {
    background: #1fb355 !important;
    color: #fff !important;
    box-shadow: 0 8px 26px rgba(31, 179, 85, .35);
}
.fm-btn-wa .wp-block-button__link:hover { background: #25c25f !important; }

/* ================= HERO ================= */

.fm-hero { padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 4vw, 2rem) !important; }

.fm-hero h1 { margin-bottom: .3em; line-height: 1.06; }

/* centered cover hero */
.fm-hero--center { text-align: center; }
.fm-hero--center .fm-eyebrow { margin-bottom: 0 !important; }
.fm-hero--center h1 { margin-top: .5rem !important; }
.fm-hero--center .wp-block-cover__inner-container {
    max-width: 900px;
    margin-inline: auto;
    position: relative;
    z-index: 2;
}
.fm-hero--center .fm-eyebrow::after {
    content: "";
    width: 2.2em;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--fm-accent-2), var(--fm-blue));
}
.fm-hero--center .fm-hero-sub {
    max-width: 38em !important;
    margin-inline: auto !important;
}
.fm-hero--center .wp-block-buttons { justify-content: center; }
.fm-hero--center .fm-trust { justify-content: center; }
.fm-hero--center .wp-block-cover__image-background { object-position: center 35%; }
.fm-hero h1 em {
    font-style: normal;
    background: linear-gradient(100deg, var(--fm-accent-2), #8db4f7);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.fm-hero-sub { font-size: clamp(1.05rem, 1.6vw, 1.22rem) !important; max-width: 34em; }

.fm-hero-media { position: relative; }
.fm-hero-media::before {
    content: "";
    position: absolute;
    inset: -8% -6% 18% 30%;
    background: radial-gradient(closest-side, rgba(31, 111, 229, .4), transparent 72%);
    filter: blur(8px);
    z-index: 0;
}
.fm-hero-media .wp-block-image { position: relative; z-index: 1; margin: 0; }
.fm-hero-media img {
    border-radius: var(--fm-radius);
    box-shadow: 0 30px 80px rgba(3, 7, 20, .55);
    border: 1px solid rgba(255, 255, 255, .12);
}

.fm-hero-badge {
    position: absolute;
    z-index: 2;
    left: -14px;
    bottom: 30px;
    background: rgba(255, 255, 255, .96);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: var(--fm-navy) !important;
    border-radius: var(--fm-radius-sm);
    box-shadow: var(--fm-shadow);
    padding: .9rem 1.2rem !important;
    font-size: .92rem !important;
    line-height: 1.4 !important;
    max-width: 250px;
    animation: fm-float 7s ease-in-out infinite alternate;
}
.fm-hero-badge strong {
    color: var(--fm-accent) !important;
    font-family: 'Manrope', sans-serif;
    font-size: 1rem;
}
@keyframes fm-float {
    from { transform: translateY(0); }
    to   { transform: translateY(-14px); }
}

.fm-trust {
    list-style: none !important;
    padding: 1.1rem 0 0 0 !important;
    margin: 0 !important;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1.7rem;
}
.fm-trust li {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .92rem !important;
    color: #c4cfee !important;
    margin: 0 !important;
}
.fm-trust li::before {
    content: "✓";
    flex: 0 0 auto;
    width: 1.3rem;
    height: 1.3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(91, 147, 242, .22);
    color: #9dbdf8;
    font-size: .72rem;
    font-weight: 800;
}

/* compact page hero (subpages) */
.fm-page-hero { padding: clamp(3rem, 5.5vw, 4.5rem) clamp(1.25rem, 4vw, 2rem) !important; }
.fm-hero--left { text-align: left; }
.fm-hero--left .wp-block-cover__inner-container {
    max-width: 1200px;
    margin-inline: auto;
    position: relative;
    z-index: 2;
}
.fm-hero--left .wp-block-cover__inner-container > p:not(.fm-eyebrow) { max-width: 46em; }
.fm-page-hero h1 { font-size: clamp(2.1rem, 4vw, 3.1rem); margin-bottom: .3em; }
.fm-page-hero p { max-width: 46em; }

/* ================= CARD GRIDS ================= */

.fm-grid { gap: 1.4rem !important; }
.fm-grid > .wp-block-column {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid var(--fm-line);
    border-radius: var(--fm-radius) !important;
    box-shadow: var(--fm-shadow-sm);
    overflow: hidden;
    transition: transform .35s var(--fm-ease), box-shadow .35s var(--fm-ease), border-color .35s;
    padding: 0 !important;
}
.fm-grid > .wp-block-column:hover {
    transform: translateY(-8px);
    box-shadow: var(--fm-shadow);
    border-color: #cdd9f0;
}
.fm-grid > .wp-block-column > .wp-block-image {
    margin: 0 !important;
    order: -1;
}
.fm-grid > .wp-block-column > .wp-block-image a {
    display: block;
    width: 100%;
}
.fm-grid > .wp-block-column > .wp-block-image img {
    width: 100% !important;
    height: 215px !important;
    max-width: none !important;
    object-fit: cover;
    display: block;
    border-radius: 0 !important;
    transition: transform .6s var(--fm-ease);
}
.fm-grid > .wp-block-column:hover > .wp-block-image img { transform: scale(1.06); }
.fm-grid > .wp-block-column > h3 {
    padding: 1.25rem 1.4rem 0;
    margin: 0 0 .4rem !important;
    font-size: 1.18rem;
}
.fm-grid > .wp-block-column > h3 a { color: var(--fm-navy); text-decoration: none; }
.fm-grid > .wp-block-column > h3 a:hover { color: var(--fm-accent); }
.fm-grid > .wp-block-column > p {
    padding: 0 1.4rem;
    margin-bottom: 1.3rem !important;
    font-size: .96rem !important;
    flex-grow: 1;
}
.fm-grid > .wp-block-column > p:last-child { padding-bottom: 1.4rem; }
.fm-grid .fm-card-link {
    display: inline-block;
    margin-top: .8rem;
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    font-size: .92rem;
    color: var(--fm-accent);
    text-decoration: none;
    white-space: nowrap;
}
.fm-grid .fm-card-link::after {
    content: "→";
    display: inline-block;
    margin-left: .35em;
    transition: transform .3s var(--fm-ease);
}
.fm-grid > .wp-block-column:hover .fm-card-link::after { transform: translateX(5px); }

/* plain feature cards (no image): steps, values, contact */
.fm-grid--pad > .wp-block-column { padding: 1.9rem 1.7rem !important; }

/* steps numbers */
.fm-step-num {
    font-family: 'Manrope', sans-serif;
    font-size: 3rem !important;
    font-weight: 800;
    line-height: 1 !important;
    background: linear-gradient(135deg, var(--fm-blue), var(--fm-accent-2));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    margin: 0 0 .55rem !important;
}
.fm-grid--pad h3 { padding: 0 !important; }
.fm-grid--pad p { padding: 0 !important; }

/* checklist (subpage includes) */
.fm-checklist {
    list-style: none !important;
    padding: 0 !important;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem 1.6rem;
}
.fm-checklist li {
    display: block;
    position: relative;
    margin: 0 !important;
    background: #fff;
    border: 1px solid var(--fm-line);
    border-radius: var(--fm-radius-sm);
    padding: .95rem 1.1rem .95rem 3rem;
    font-size: .98rem !important;
    box-shadow: var(--fm-shadow-sm);
}
.fm-checklist li::before {
    content: "✓";
    position: absolute;
    left: .95rem;
    top: 1rem;
    width: 1.45rem;
    height: 1.45rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--fm-blue), var(--fm-accent));
    color: #fff;
    font-size: .75rem;
    font-weight: 800;
}

/* ================= STATS ================= */

.fm-stats .wp-block-columns {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
.fm-stats .wp-block-column {
    text-align: center;
    padding: 1rem .5rem;
    position: relative;
}
.fm-stats .wp-block-column:not(:first-child)::before {
    content: "";
    position: absolute;
    left: -0.5rem;
    top: 20%;
    height: 60%;
    width: 1px;
    background: rgba(255, 255, 255, .12);
}
.fm-count {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(2.4rem, 4.4vw, 3.6rem);
    font-weight: 800;
    color: #ffffff;
    display: block;
    line-height: 1.05;
}
.fm-count .fm-suffix { color: var(--fm-accent-2); }
.fm-stat-label {
    color: #97a4d2 !important;
    font-size: .92rem !important;
    display: block;
    margin-top: .45rem;
}

/* ================= INFO BOX ================= */

.fm-note {
    background: linear-gradient(120deg, #e9f0fd, #f2f7ff) !important;
    border: 1px solid #d4e2f8 !important;
    border-left: 4px solid var(--fm-accent) !important;
    border-radius: var(--fm-radius-sm) !important;
    padding: 1.6rem 1.8rem !important;
    box-shadow: var(--fm-shadow-sm);
}
.fm-note h3 { margin-top: 0 !important; }
.fm-note p { margin-bottom: 0 !important; }

/* ================= FAQ ================= */

.entry-content details {
    background: #ffffff;
    border: 1px solid var(--fm-line);
    border-radius: var(--fm-radius-sm);
    padding: 1.2rem 1.5rem;
    margin-bottom: .8rem;
    transition: border-color .3s, box-shadow .3s;
}
.entry-content details:hover { border-color: #bcd0f2; box-shadow: var(--fm-shadow-sm); }
.entry-content details[open] {
    border-color: var(--fm-accent);
    box-shadow: var(--fm-shadow-sm);
}
.entry-content summary {
    cursor: pointer;
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--fm-navy);
    list-style: none;
    position: relative;
    padding-right: 2.4rem;
    outline: none;
}
.entry-content summary::-webkit-details-marker { display: none; }
.entry-content summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1.7rem;
    height: 1.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--fm-bg-soft);
    color: var(--fm-accent);
    font-size: 1.05rem;
    font-weight: 600;
    transition: transform .35s var(--fm-ease), background .3s, color .3s;
}
.entry-content details[open] summary::after {
    content: "−";
    background: var(--fm-accent);
    color: #fff;
}
.entry-content details > p { margin: .9rem 0 0 !important; }
.entry-content summary:focus-visible {
    outline: 2px solid var(--fm-accent);
    outline-offset: 4px;
    border-radius: 6px;
}

/* ================= GALLERY (equal grid) ================= */

.entry-content .wp-block-gallery {
    display: grid !important;
    gap: 1rem !important;
    grid-template-columns: repeat(3, 1fr);
}
.entry-content .wp-block-gallery.columns-4 { grid-template-columns: repeat(4, 1fr); }
.entry-content .wp-block-gallery.columns-2 { grid-template-columns: repeat(2, 1fr); }
.wp-block-gallery .wp-block-image {
    width: 100% !important;
    margin: 0 !important;
    border-radius: var(--fm-radius-sm);
    overflow: hidden;
    box-shadow: var(--fm-shadow-sm);
}
.wp-block-gallery .wp-block-image a { display: block; width: 100%; height: 100%; }
.wp-block-gallery .wp-block-image img {
    width: 100% !important;
    height: 230px !important;
    object-fit: cover;
    display: block;
    border-radius: var(--fm-radius-sm) !important;
    transition: transform .55s var(--fm-ease), filter .55s;
}
.entry-content .wp-block-gallery.columns-4 .wp-block-image img { height: 200px !important; }
.wp-block-gallery .wp-block-image:hover img {
    transform: scale(1.06);
    filter: brightness(1.06);
}
@media (max-width: 781px) {
    .entry-content .wp-block-gallery,
    .entry-content .wp-block-gallery.columns-4 { grid-template-columns: repeat(2, 1fr); }
    .wp-block-gallery .wp-block-image img,
    .entry-content .wp-block-gallery.columns-4 .wp-block-image img { height: 150px !important; }
}

/* ================= MEDIA / PHOTO CARDS ================= */

.fm-photo { position: relative; }
.fm-photo .wp-block-image { margin: 0; }
.fm-photo img {
    border-radius: var(--fm-radius);
    box-shadow: var(--fm-shadow);
}

/* profile graphic + flyer + footer elephant */
.fm-profile-img img { border-radius: var(--fm-radius); box-shadow: var(--fm-shadow); }
.fm-flyer img { border-radius: var(--fm-radius-sm); box-shadow: var(--fm-shadow); }
#colophon .fm-elefant-head { color:#fff; font-size:.85rem !important; text-transform:uppercase; letter-spacing:.14em; margin-bottom:1.1rem; }
#colophon .fm-elefant { margin: 0; background:#fff; border-radius: var(--fm-radius-sm); overflow:hidden; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
#colophon .fm-elefant img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: contain;
    background: #fff;
    transition: transform .3s var(--fm-ease);
}
#colophon .fm-elefant a:hover img { transform: scale(1.04); }
/* match the Google Maps card height so footer cards align */
#colophon .site-middle-footer-wrap iframe { height: 220px !important; }
@media (max-width: 781px) {
    #colophon .fm-elefant img { height: 180px; }
    #colophon .site-middle-footer-wrap iframe { height: 180px !important; }
}

/* ================= FORMINATOR ================= */

.forminator-custom-form .forminator-label {
    font-family: 'Manrope', sans-serif !important;
    font-weight: 700 !important;
    color: var(--fm-navy) !important;
}
.forminator-custom-form .forminator-input,
.forminator-custom-form .forminator-textarea,
.forminator-custom-form .forminator-select--container .forminator-select2 {
    border-radius: 12px !important;
    border-color: #d5dfef !important;
    transition: border-color .25s, box-shadow .25s !important;
}
.forminator-custom-form .forminator-input:focus,
.forminator-custom-form .forminator-textarea:focus {
    border-color: var(--fm-accent) !important;
    box-shadow: 0 0 0 4px rgba(31, 111, 229, .14) !important;
}
.forminator-custom-form .forminator-button-submit {
    border-radius: 999px !important;
    background: linear-gradient(120deg, var(--fm-blue), var(--fm-accent)) !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 700 !important;
    padding: .95em 2.2em !important;
    box-shadow: var(--fm-glow);
    transition: transform .25s var(--fm-ease), box-shadow .25s !important;
}
.forminator-custom-form .forminator-button-submit:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 40px rgba(31, 111, 229, .5);
}
.forminator-custom-form .forminator-file-upload > button {
    border-radius: 999px !important;
}

/* ================= FOOTER ================= */

#colophon .site-middle-footer-wrap,
#colophon .site-bottom-footer-wrap {
    background:
        radial-gradient(900px 420px at 92% -10%, rgba(46, 63, 158, .4), transparent 58%),
        #070d22;
    color: #aeb9de;
}
#colophon .site-middle-footer-wrap {
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, var(--fm-blue), var(--fm-accent), transparent) 1;
    padding-top: 3.2rem;
    padding-bottom: 2.6rem;
}
#colophon h3 {
    color: #ffffff;
    font-size: .85rem !important;
    text-transform: uppercase;
    letter-spacing: .14em;
    margin-bottom: 1.1rem;
}
#colophon p, #colophon li { font-size: .94rem; line-height: 1.7; }
#colophon a { color: #aeb9de; text-decoration: none; }
#colophon a:hover { color: #ffffff; }
#colophon .fm-footer-list { list-style: none; padding-left: 0; margin: 0; }
#colophon .fm-footer-list li { margin-bottom: .55em; }
#colophon .fm-footer-list a { transition: padding .25s var(--fm-ease), color .25s; }
#colophon .fm-footer-list a:hover { padding-left: .45em; }
#colophon .fm-insta-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px; height: 42px;
    margin-top: .7em;
    border-radius: 12px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .1);
    color: #c4cfee;
    transition: transform .25s var(--fm-ease), background .25s, color .25s;
}
#colophon .fm-insta-link:hover { color: #fff; background: rgba(91, 147, 242, .25); transform: translateY(-3px); }
#colophon iframe { border-radius: var(--fm-radius-sm); box-shadow: 0 10px 30px rgba(0, 0, 0, .35); display: block; }
#colophon .site-bottom-footer-wrap {
    border-top: 1px solid rgba(255, 255, 255, .08);
    font-size: .85rem;
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
}

/* ================= FLOATING BUTTONS ================= */

.fomenko-float {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.fomenko-float__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(5, 9, 24, .4);
    transition: transform .25s var(--fm-ease), box-shadow .25s;
    position: relative;
}
.fomenko-float__btn:hover { transform: scale(1.1); }
.fomenko-float__btn--ig { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.fomenko-float__btn--wa { background: #1fb355; }
.fomenko-float__btn--wa::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(31, 179, 85, .4);
    animation: fm-pulse 2.8s ease-out infinite;
    z-index: -1;
}
.fomenko-float__btn--call { background: linear-gradient(135deg, var(--fm-blue), var(--fm-accent)); }
@keyframes fm-pulse {
    0%   { transform: scale(1); opacity: .7; }
    70%  { transform: scale(1.6); opacity: 0; }
    100% { transform: scale(1.6); opacity: 0; }
}

/* ================= REVEAL ================= */

.fm-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .75s var(--fm-ease), transform .75s var(--fm-ease);
    will-change: opacity, transform;
}
.fm-reveal.fm-in { opacity: 1; transform: none; }

/* ================= REDUCED MOTION ================= */

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .fm-reveal { opacity: 1; transform: none; }
}

/* ================= RESPONSIVE ================= */

@media (max-width: 1024px) {
    .fm-checklist { grid-template-columns: 1fr; }
}

@media (max-width: 781px) {
    .fm-hero-badge { left: 10px; bottom: 12px; max-width: 210px; padding: .7rem .9rem !important; }
    .fm-hero-media::before { display: none; }

    /* hero: lighter, vertical overlay so the photo stays visible */
    .fm-hero--center .wp-block-cover__background {
        background: linear-gradient(180deg, rgba(11, 18, 40, .9) 0%, rgba(11, 18, 40, .68) 55%, rgba(19, 28, 69, .58) 100%) !important;
    }

    /* hero eyebrow: no dashes, exactly two lines (br controls the break) */
    .fm-hero--center .fm-eyebrow {
        display: inline-block !important;
        font-size: .72rem !important;
        letter-spacing: .12em;
        line-height: 1.7;
        max-width: none;
        white-space: nowrap;
    }
    .fm-hero--center .fm-eyebrow .fm-ebr { display: inline; }
    .fm-hero--center .fm-eyebrow::before,
    .fm-hero--center .fm-eyebrow::after { display: none; }

    /* hero buttons: primary on its own line, phone + WhatsApp side by side */
    .fm-hero--center .wp-block-buttons { gap: .6rem !important; }
    .fm-hero--center .wp-block-button .wp-block-button__link {
        padding: .8em 1.25em !important;
        font-size: .92rem !important;
    }
    .fm-hero--center .wp-block-button.fm-btn-primary {
        flex-basis: 100%;
        display: flex;
        justify-content: center;
    }

    /* card grids become swipeable carousels */
    .entry-content .fm-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        gap: .9rem !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        margin-inline: -1.1rem !important;
        padding: .25rem 1.1rem .9rem !important;
    }
    .entry-content .fm-grid::-webkit-scrollbar { display: none; }
    .entry-content .fm-grid > .wp-block-column {
        flex: 0 0 80% !important;
        max-width: 320px;
        scroll-snap-align: center;
        margin: 0 !important;
    }
    .fm-grid > .wp-block-column > .wp-block-image img { height: 175px !important; }

    .fm-stats .wp-block-columns { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1rem; }
    .fm-stats .wp-block-column:nth-child(3)::before { display: none; }
    .fomenko-float { right: 12px; bottom: 12px; }
    .fomenko-float__btn { width: 48px; height: 48px; }
    .entry-content h1 { font-size: clamp(2rem, 8vw, 2.6rem); }
    .fm-sec { padding-left: 1.1rem !important; padding-right: 1.1rem !important; }
}
