/* FarmicleGrow V2 public shell refinements.
 * Keep this layer scoped to the public V2 shell so legacy pages remain unchanged.
 */

.fg-public-v2-shell {
    --fg-site-header-height: 82px;
    --fg-font-primary: "Segoe UI", Inter, Arial, sans-serif;
    --fg-font-secondary: Manrope, "Segoe UI", Inter, Arial, sans-serif;
}

/* FarmicleGrow public typography: modern sans-serif only. */
.fg-public-v2-shell .fg-v2,
.fg-public-v2-shell .fg-site-header,
.fg-public-v2-shell .fg-site-footer {
    font-family: var(--fg-font-primary);
}

.fg-public-v2-shell .fg-v2 :where(h1,h2,h3,h4,h5,h6),
.fg-public-v2-shell .fg-v2 :where(.fg-heading-xl,.fg-heading-lg,.fg-heading-md),
.fg-public-v2-shell .fg-v2 :where(em,.fg-home-manifesto p,.fg-home-manifesto__mark) {
    font-family: var(--fg-font-secondary) !important;
}

.fg-public-v2-shell .fg-v2 em,
.fg-public-v2-shell .fg-v2 .fg-home-manifesto p {
    font-style: normal !important;
    font-weight: 700;
}

/* Neutralize legacy editorial serif declarations at source-render level. */
.fg-public-v2-shell .fg-home-v2 em,
.fg-public-v2-shell .fg-home-manifesto__mark,
.fg-public-v2-shell .fg-home-manifesto p {
    font-family: var(--fg-font-secondary) !important;
}

/* Branded V2 loader ------------------------------------------------------- */
.fg-brand-loader.loader-wrap {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 44%, rgba(183, 239, 58, .09), transparent 24%),
        linear-gradient(145deg, #fbfcf8 0%, #f5f8f2 58%, #eef5ed 100%);
}

.fg-brand-loader .fg-brand-preloader {
    position: relative;
    display: grid;
    width: min(430px, calc(100vw - 48px));
    place-items: center;
    padding: 28px;
    text-align: center;
}

.fg-brand-loader__mark {
    position: relative;
    width: min(310px, 72vw);
    opacity: 0;
    transform: translateY(12px) scale(.965);
    animation: fgBrandLogoEnter .72s cubic-bezier(.2,.8,.2,1) .05s forwards;
}

.fg-brand-loader__mark::after {
    content: "";
    position: absolute;
    inset: -20% -8%;
    pointer-events: none;
    background: linear-gradient(105deg, transparent 34%, rgba(255,255,255,.92) 49%, transparent 64%);
    transform: translateX(-135%);
    animation: fgBrandLogoSheen 1.1s ease .42s forwards;
    mix-blend-mode: screen;
}

.fg-brand-loader__mark img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 112px;
    object-fit: contain;
}

.fg-brand-loader__caption {
    margin-top: 22px;
    color: #597064;
    font-family: var(--fg-font-primary, "Segoe UI", Arial, sans-serif);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .18em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(7px);
    animation: fgBrandCaptionEnter .45s ease .38s forwards;
}

.fg-brand-loader__progress {
    position: relative;
    width: min(210px, 52vw);
    height: 3px;
    margin-top: 20px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(11, 67, 43, .1);
}

.fg-brand-loader__progress > span {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #0b5d3b, #43a65f 62%, #b7ef3a);
    transform: translateX(-102%);
    animation: fgBrandProgress 1.05s cubic-bezier(.35,.01,.18,1) .12s forwards;
}

.fg-brand-loader__pulse {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 240px;
    height: 240px;
    border: 1px solid rgba(19, 107, 67, .12);
    border-radius: 50%;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.65);
    opacity: 0;
    animation: fgBrandPulse 1.25s ease-out .12s forwards;
}

.fg-brand-loader .preloader-close {
    display: none !important;
}

@keyframes fgBrandLogoEnter {
    0% { opacity: 0; transform: translateY(12px) scale(.965); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes fgBrandLogoSheen {
    0% { transform: translateX(-135%); }
    100% { transform: translateX(135%); }
}

@keyframes fgBrandCaptionEnter {
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fgBrandProgress {
    0% { transform: translateX(-102%); }
    72% { transform: translateX(-16%); }
    100% { transform: translateX(0); }
}

@keyframes fgBrandPulse {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.65); }
    25% { opacity: .8; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.24); }
}

.fg-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 99999;
    padding: 11px 16px;
    border-radius: 9px;
    color: #fff !important;
    background: #0b3b28;
    box-shadow: 0 10px 28px rgba(0,0,0,.2);
    font-family: "Segoe UI", Inter, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transform: translateY(-180%);
    transition: transform .16s ease;
}

.fg-skip-link:focus,
.fg-skip-link:focus-visible {
    outline: 3px solid #b7ef3a;
    outline-offset: 2px;
    transform: translateY(0);
}

#fg-main-content:focus {
    outline: none;
}

.fg-public-v2-shell :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--fg-lime-500) 72%, white);
    outline-offset: 3px;
}

.fg-site-header a,
.fg-site-header button,
.fg-site-footer a,
.fg-site-footer button,
.fg-site-footer input {
    -webkit-tap-highlight-color: transparent;
}

.fg-site-header.is-mobile-menu-open {
    box-shadow: 0 12px 32px rgba(11, 47, 32, .12);
}

.fg-site-nav > ul > li > a[aria-current="page"] {
    color: var(--fg-green-800);
}

.fg-site-nav li > ul a[aria-current="page"],
.fg-site-nav .dropdown-menu a[aria-current="page"] {
    color: var(--fg-green-900);
    background: var(--fg-green-50);
    font-weight: 750;
}

.fg-site-nav__has-menu > a > i {
    font-size: 11px;
    transition: transform var(--fg-transition);
}

.fg-site-nav__has-menu:hover > a > i,
.fg-site-nav__has-menu:focus-within > a > i {
    transform: rotate(180deg);
}

.fg-site-icon-button:focus-visible,
.fg-site-mobile-toggle:focus-visible {
    border-color: var(--fg-green-600);
}

.fg-site-mobile-menu[hidden] {
    display: none !important;
}

.fg-site-mobile-menu {
    max-height: calc(100dvh - var(--fg-site-header-height));
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: 0 18px 34px rgba(11, 47, 32, .08);
}

.fg-site-mobile-menu li.current > a,
.fg-site-mobile-menu a[aria-current="page"] {
    color: var(--fg-green-900);
    background: var(--fg-green-50);
}

.fg-site-mobile-menu li > a {
    margin-inline: -10px;
    padding-inline: 10px;
    border-radius: 8px;
}

.fg-site-mobile-menu__actions .fg-btn {
    width: 100%;
    min-height: 46px;
    justify-content: center;
}

.fg-site-footer__socials a:focus-visible,
.fg-site-footer__column a:focus-visible,
.fg-site-footer__meta a:focus-visible,
.fg-site-footer__logo:focus-visible {
    outline-color: var(--fg-lime-300);
}

.fg-site-footer__form {
    transition: border-color var(--fg-transition), box-shadow var(--fg-transition), background var(--fg-transition);
}

.fg-site-footer__form:focus-within {
    border-color: rgba(183, 239, 58, .82);
    background: rgba(255, 255, 255, .11);
    box-shadow: 0 0 0 3px rgba(183, 239, 58, .12);
}

.fg-site-footer__form input:focus-visible,
.fg-site-footer__form button:focus-visible {
    outline: 0;
}

.fg-site-footer__form button {
    min-width: 42px;
    min-height: 42px;
}

.fg-site-footer__column a,
.fg-site-footer__meta a,
.fg-site-footer__socials a {
    transition: color var(--fg-transition), border-color var(--fg-transition), background var(--fg-transition), transform var(--fg-transition);
}

.fg-site-footer__socials a:hover,
.fg-site-footer__socials a:focus-visible {
    transform: translateY(-2px);
}

@media (max-width: 991.98px) {
    .fg-public-v2-shell {
        --fg-site-header-height: 72px;
    }

    body.fg-site-nav-open {
        overflow: hidden;
    }

    .fg-site-header__inner {
        padding-block: 6px;
    }

    .fg-site-mobile-toggle {
        min-width: 44px;
        min-height: 44px;
    }
}

@media (max-width: 767.98px) {
    .fg-public-v2-shell {
        --fg-site-header-height: 66px;
    }

    .fg-brand-loader .fg-brand-preloader {
        width: min(340px, calc(100vw - 32px));
        padding: 22px;
    }

    .fg-brand-loader__mark {
        width: min(270px, 74vw);
    }

    .fg-site-mobile-menu > .fg-container {
        padding-bottom: max(24px, env(safe-area-inset-bottom));
    }

    .fg-site-footer__top {
        padding-bottom: 42px;
    }
}

@media (max-width: 479.98px) {
    .fg-site-header__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
    }

    .fg-site-header__actions {
        grid-column: 2;
    }

    .fg-site-brand {
        min-width: 0;
    }

    .fg-site-footer__column,
    .fg-site-footer__newsletter {
        min-width: 0;
    }

    .fg-site-footer__meta {
        gap: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fg-brand-loader__mark,
    .fg-brand-loader__mark::after,
    .fg-brand-loader__caption,
    .fg-brand-loader__progress > span,
    .fg-brand-loader__pulse,
    .fg-skip-link,
    .fg-site-header *,
    .fg-site-footer * {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    .fg-brand-loader__mark,
    .fg-brand-loader__caption {
        opacity: 1 !important;
        transform: none !important;
    }

    .fg-brand-loader__progress > span {
        transform: none !important;
    }
}
