html { scroll-behavior: smooth; }
body.floc-site {
    margin: 0;
    color: var(--floc-black);
    background: var(--floc-cream);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
}
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
.floc-container { width: min(calc(100% - 48px), var(--floc-container)); margin-inline: auto; }
.floc-section { padding: 120px 0; position: relative; overflow: hidden; }
.floc-section--light { background: var(--floc-white); }
.floc-section--cream { background: var(--floc-cream); }
.floc-section--green { background: var(--floc-green-deep); color: #fff; }
.floc-section--dark { background: #111D17; color: #fff; }
.floc-section--questions { background: #073B1D; color: #fff; }
.floc-section--outcomes { background: #EEF6F1; }
.floc-label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 18px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--floc-orange);
}
.floc-label--light { color: var(--floc-green-bright); }
.floc-label--orange { color: var(--floc-orange); }
.floc-section-intro { max-width: 760px; margin-bottom: 58px; }
.floc-section-intro--center { text-align: center; margin-inline: auto; }
.floc-section h2 {
    margin: 0 0 24px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(44px, 6vw, 82px);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.045em;
}
.floc-section h2 em { color: var(--floc-orange); font-style: italic; }
.floc-section--green h2 em,
.floc-section--dark h2 em,
.floc-section--questions h2 em { color: var(--floc-green-bright); }
.floc-copy { max-width: 720px; font-size: 17px; color: #424842; }
.floc-copy p { margin: 0 0 22px; }
.floc-copy .floc-lead,
.floc-lead { font-size: 23px; line-height: 1.45; color: var(--floc-black); }
.floc-copy--light { color: rgba(255,255,255,.82); }
.floc-copy--light .floc-lead { color: #fff; }
.floc-two-col { display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: start; }
.floc-two-col--align { align-items: center; }
.floc-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 54px;
    padding: 0 25px;
    border-radius: 999px;
    background: var(--floc-orange);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .03em;
    transition: transform var(--floc-transition), background var(--floc-transition), color var(--floc-transition);
}
.floc-button:hover { transform: translateY(-3px); background: #b94718; color: #fff; }
.floc-button--ghost { background: transparent; border: 1px solid rgba(255,255,255,.45); }
.floc-button--ghost:hover { background: #fff; color: var(--floc-green-deep); }
.floc-button--dark { background: var(--floc-green-deep); }
.floc-button--outline-light { background: transparent; border: 1px solid rgba(255,255,255,.45); color: #fff; }
.floc-actions { display: flex; flex-wrap: wrap; gap: 12px; }

:root {
    --floc-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
    --floc-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body.floc-site { font-family: var(--floc-sans); }
.floc-section h2, .floc-hero h1, .floc-cta h2, .floc-final-cta h2,
.floc-action-transition h2 { font-family: var(--floc-serif); }
.floc-reveal { opacity: 0; transform: translateY(26px); transition: opacity 800ms cubic-bezier(.22,1,.36,1), transform 800ms cubic-bezier(.22,1,.36,1); }
.floc-reveal.is-visible { opacity: 1; transform: translateY(0); }
.floc-section::selection, .floc-section *::selection { background: var(--floc-green-bright); color: var(--floc-green-deep); }


/* FLOC 2026 — section contrast safeguards */
.floc-section--green a,
.floc-section--dark a,
.floc-section--questions a,
.floc-implementation a,
.floc-final-cta a {
    color: inherit;
}
.floc-section--green a:not(.floc-button),
.floc-section--dark a:not(.floc-button),
.floc-section--questions a:not(.floc-button),
.floc-implementation a:not(.floc-button),
.floc-final-cta a:not(.floc-button) {
    color: #fff !important;
}
.floc-section--green .floc-label,
.floc-section--dark .floc-label,
.floc-section--questions .floc-label,
.floc-implementation .floc-label { color: var(--floc-green-bright); }
.floc-section--green h2,
.floc-section--green h3,
.floc-section--green p,
.floc-section--dark h2,
.floc-section--dark h3,
.floc-section--dark p,
.floc-section--questions h2,
.floc-section--questions h3,
.floc-section--questions p,
.floc-implementation h2,
.floc-implementation h3,
.floc-implementation p { color: inherit; }



/* FLOC 2026 — global rendering safeguards */
html { overflow-x: clip; scroll-padding-top: 96px; }
body.floc-site { overflow-x: clip; }
.floc-main { overflow-x: clip; }
.floc-main [id] { scroll-margin-top: 96px; }
img { max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--floc-green-bright); outline-offset: 3px; }
