@layer reset, tokens, layout, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    margin: 0;
    font-family: 'Manrope', sans-serif;
    color: var(--fi-ink);
    background: var(--fi-cream);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
  }
  img { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  button { font-family: inherit; cursor: pointer; }
  h1, h2, h3, h4 { font-family: 'Newsreader', serif; margin: 0 0 0.6em; line-height: 1.15; color: var(--fi-ink); }
  p { margin: 0 0 1em; }
  ul { margin: 0; padding: 0; list-style: none; }
  input, textarea { font-family: inherit; font-size: 1rem; }
}

@layer tokens {
  :root {
    --fi-cream: #F8F1E4;
    --fi-cream-dark: #EFE3CC;
    --fi-mustard: #D9A441;
    --fi-mustard-dark: #B9822A;
    --fi-terracotta: #C1583A;
    --fi-terracotta-dark: #9C4128;
    --fi-olive: #67754A;
    --fi-olive-dark: #4C5837;
    --fi-rose: #C98D82;
    --fi-rose-tint: #EFD9CF;
    --fi-ink: #2E2A24;
    --fi-ink-soft: #5A5044;
    --fi-white: #FFFCF6;

    --fi-radius-sm: 10px;
    --fi-radius-md: 16px;
    --fi-radius-lg: 26px;
    --fi-radius-xl: 34px;

    --fi-shadow-sm: 0 1px 2px rgba(46,42,36,.08), 0 1px 1px rgba(46,42,36,.05);
    --fi-shadow-md: 0 6px 16px -4px rgba(46,42,36,.16), 0 3px 6px -2px rgba(46,42,36,.08);
    --fi-shadow-lg: 0 24px 48px -16px rgba(46,42,36,.28), 0 10px 20px -8px rgba(46,42,36,.16);

    --fi-space-xs: .5rem;
    --fi-space-sm: 1rem;
    --fi-space-md: 1.5rem;
    --fi-space-lg: 2.5rem;
    --fi-space-xl: 4.5rem;
    --fi-space-2xl: 7rem;

    --fi-fs-hero: clamp(2.4rem, 4vw + 1.2rem, 4.4rem);
    --fi-fs-h2: clamp(1.9rem, 2.4vw + 1rem, 2.9rem);
    --fi-fs-h3: clamp(1.2rem, 1vw + .9rem, 1.55rem);
    --fi-fs-lead: clamp(1.05rem, .6vw + .9rem, 1.3rem);
  }
}

@layer layout {
  .fi-container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
  .fi-section { padding: var(--fi-space-2xl) 0; position: relative; }
  main { display: block; overflow-x: hidden; }

  .fi-hero { position: relative; padding: 9rem 0 6rem; background: linear-gradient(160deg, var(--fi-cream) 0%, #F1E2C4 55%, var(--fi-cream-dark) 100%); overflow: hidden; }
  .fi-hero-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; position: relative; z-index: 2; }
  .fi-hero-media { position: relative; }
  .fi-hero-img { width: 100%; border-radius: var(--fi-radius-xl); box-shadow: var(--fi-shadow-lg); aspect-ratio: 4/3.2; object-fit: cover; }

  .fi-intro-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
  .fi-steps-grid { display: grid; grid-template-columns: 1fr; gap: 1.75rem; margin-top: 3rem; }
  .fi-team-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
  .fi-approach-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: start; }
  .fi-approach-list { display: grid; gap: 1.5rem; }
  .fi-credibility-grid, .fi-business-grid, .fi-callhero-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
  .fi-business-grid-reverse { direction: rtl; }
  .fi-business-grid-reverse > * { direction: ltr; }

  @media (min-width: 860px) {
    .fi-hero-grid { grid-template-columns: 1.05fr .95fr; gap: 4rem; }
    .fi-intro-grid { grid-template-columns: 1fr 1fr; gap: 3.5rem; }
    .fi-steps-grid { grid-template-columns: repeat(3, 1fr); }
    .fi-team-grid { grid-template-columns: repeat(3, 1fr); }
    .fi-approach-grid { grid-template-columns: .9fr 1.1fr; gap: 4rem; }
    .fi-credibility-grid, .fi-business-grid, .fi-callhero-grid { grid-template-columns: 1fr 1fr; gap: 4rem; }
  }
}

@layer components {

  
  .fi-header { position: fixed; top: 0; left: 0; right: 0; z-index: 200; background: rgba(248,241,228,.86); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(46,42,36,.06); transition: transform .45s cubic-bezier(.4,0,.2,1), opacity .35s ease; }
  .fi-header.fi-header--hidden { transform: translateY(-130%); opacity: 0; pointer-events: none; }
  .fi-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 1.5rem; }
  .fi-logo { display: flex; align-items: center; gap: .6rem; font-family: 'Newsreader', serif; font-weight: 700; font-size: 1.35rem; color: var(--fi-ink); }
  .fi-logo img { border-radius: 10px; }

  .fi-pill-nav { display: flex; gap: .4rem; background: rgba(255,252,246,.6); padding: .35rem; border-radius: 999px; border: 1px solid rgba(46,42,36,.08); }
  .fi-pill { display: inline-flex; align-items: center; padding: .55rem 1.15rem; border-radius: 999px; font-size: .92rem; font-weight: 600; color: var(--fi-ink-soft); transition: background .3s ease, color .3s ease, box-shadow .3s ease; }
  .fi-pill:hover { background: var(--fi-cream-dark); color: var(--fi-ink); }
  .fi-pill.is-active { background: linear-gradient(135deg, var(--fi-mustard), var(--fi-terracotta)); color: var(--fi-white); box-shadow: var(--fi-shadow-sm); }

  .fi-nav { display: none; }
  .fi-header-cta { display: none; white-space: nowrap; }
  .fi-burger { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(46,42,36,.12); background: var(--fi-white); font-size: 1.1rem; color: var(--fi-ink); box-shadow: var(--fi-shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
  .fi-burger:hover { transform: translateY(-2px); box-shadow: var(--fi-shadow-md); }

  @media (min-width: 900px) {
    .fi-nav { display: block; }
    .fi-header-cta { display: inline-flex; }
    .fi-burger { display: none; }
  }

  .fi-mininav { position: fixed; top: 1.1rem; left: 50%; transform: translate(-50%, -130%); z-index: 210; transition: transform .4s cubic-bezier(.4,0,.2,1); }
  .fi-mininav.fi-mininav--visible { transform: translate(-50%, 0); }
  .fi-mininav button { width: 54px; height: 54px; border-radius: 50%; border: none; background: linear-gradient(135deg, var(--fi-mustard), var(--fi-terracotta)); color: var(--fi-white); font-size: 1.2rem; box-shadow: var(--fi-shadow-lg); transition: transform .3s ease; }
  .fi-mininav button:hover { transform: scale(1.08) rotate(6deg); }

  .fi-mobile-overlay {
    position: fixed; inset: 0; z-index: 300;
    background: linear-gradient(150deg, var(--fi-terracotta) 0%, var(--fi-mustard-dark) 55%, var(--fi-olive-dark) 100%);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: opacity .4s ease, visibility .4s ease;
  }
  .fi-mobile-overlay.is-open { opacity: 1; visibility: visible; }
  .fi-mobile-links { display: flex; flex-direction: column; align-items: center; gap: 1.7rem; }
  .fi-mobile-links a { font-family: 'Newsreader', serif; font-size: clamp(1.8rem, 5vw, 2.8rem); color: var(--fi-white); font-weight: 600; opacity: .92; transition: opacity .25s ease, letter-spacing .25s ease; }
  .fi-mobile-links a:hover { opacity: 1; letter-spacing: .5px; }
  .fi-mobile-close { position: absolute; top: 2rem; right: 2rem; width: 50px; height: 50px; border-radius: 50%; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); color: var(--fi-white); font-size: 1.3rem; transition: background .25s ease, transform .25s ease; }
  .fi-mobile-close:hover { background: rgba(255,255,255,.3); transform: rotate(90deg); }

  
  .fi-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .8rem 1.6rem; border-radius: 999px; font-weight: 600; font-size: .95rem; border: none; transition: transform .28s cubic-bezier(.4,0,.2,1), box-shadow .28s ease, background .28s ease, color .28s ease; min-height: 48px; }
  .fi-btn-primary { background: linear-gradient(135deg, var(--fi-mustard), var(--fi-terracotta)); color: var(--fi-white); box-shadow: var(--fi-shadow-md); }
  .fi-btn-primary:hover { transform: translateY(-3px); box-shadow: var(--fi-shadow-lg); }
  .fi-btn-outline { background: transparent; border: 2px solid var(--fi-ink); color: var(--fi-ink); }
  .fi-btn-outline:hover { background: var(--fi-ink); color: var(--fi-white); transform: translateY(-3px); }
  .fi-btn-outline-light { background: transparent; border: 2px solid var(--fi-cream); color: var(--fi-cream); margin-top: .5rem; }
  .fi-btn-outline-light:hover { background: var(--fi-cream); color: var(--fi-olive-dark); transform: translateY(-3px); }
  .fi-btn-light { background: var(--fi-cream); color: var(--fi-terracotta-dark); box-shadow: var(--fi-shadow-md); }
  .fi-btn-light:hover { transform: translateY(-3px); box-shadow: var(--fi-shadow-lg); }
  .fi-btn-ghost { background: rgba(46,42,36,.06); color: var(--fi-ink); }
  .fi-btn-ghost:hover { background: rgba(46,42,36,.12); }
  .fi-btn-text { background: transparent; color: var(--fi-ink-soft); text-decoration: underline; padding: .8rem .4rem; }
  .fi-btn-text:hover { color: var(--fi-terracotta-dark); }
  .fi-btn-lg { padding: 1rem 2.1rem; font-size: 1.02rem; }

  
  .fi-eyebrow { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 999px; background: rgba(193,88,58,.1); color: var(--fi-terracotta-dark); font-weight: 600; font-size: .85rem; margin-bottom: 1.2rem; }
  .fi-eyebrow-dark { background: rgba(103,117,74,.12); color: var(--fi-olive-dark); }
  .fi-eyebrow-light { background: rgba(255,252,246,.16); color: var(--fi-cream); }
  .fi-hero-title { font-size: var(--fi-fs-hero); font-weight: 700; margin-bottom: 1.3rem; letter-spacing: -0.01em; }
  .fi-hero-lead { font-size: var(--fi-fs-lead); color: var(--fi-ink-soft); max-width: 46ch; margin-bottom: 2rem; }
  .fi-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.2rem; }
  .fi-hero-disclaimer { font-size: .82rem; color: var(--fi-ink-soft); opacity: .8; max-width: 42ch; }
  .fi-hero-grain { position: absolute; inset: 0; opacity: .05; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); pointer-events: none; }
  .fi-hero-card { position: absolute; bottom: -1.4rem; left: -1.2rem; background: var(--fi-white); border-radius: var(--fi-radius-md); padding: 1rem 1.3rem; box-shadow: var(--fi-shadow-lg); display: flex; align-items: center; gap: .8rem; }
  .fi-hero-card i { font-size: 1.5rem; color: var(--fi-terracotta); }
  .fi-hero-card strong { display: block; font-family: 'Newsreader', serif; font-size: 1.1rem; }
  .fi-hero-card span { font-size: .78rem; color: var(--fi-ink-soft); }
  .fi-wave { display: block; width: 100%; height: 60px; position: relative; z-index: 1; }

  
  .fi-section-head { max-width: 720px; margin-bottom: 1rem; }
  .fi-h2 { font-size: var(--fi-fs-h2); font-weight: 600; }
  .fi-h2-light { color: var(--fi-cream); }
  .fi-h3 { font-size: var(--fi-fs-h3); font-weight: 600; }
  .fi-body-lead { font-size: 1.05rem; color: var(--fi-ink-soft); max-width: 60ch; }

  .fi-section-intro { background: var(--fi-cream-dark); }
  .fi-check-list { display: grid; gap: .8rem; margin-top: 1.5rem; }
  .fi-check-list li { display: flex; gap: .7rem; align-items: flex-start; color: var(--fi-ink-soft); }
  .fi-check-list i { color: var(--fi-terracotta); margin-top: .25rem; }

  .fi-section-how { background: var(--fi-mustard); background: linear-gradient(180deg, var(--fi-cream-dark), var(--fi-mustard) 40%, var(--fi-mustard) 100%); color: var(--fi-white); position: relative; }
  .fi-section-how .fi-h2, .fi-section-how .fi-body-lead { color: var(--fi-white); }
  .fi-section-how .fi-eyebrow-dark { background: rgba(255,255,255,.2); color: var(--fi-white); }
  .fi-step-card { background: rgba(255,252,246,.94); color: var(--fi-ink); border-radius: var(--fi-radius-lg); padding: 2.2rem 1.8rem; box-shadow: var(--fi-shadow-md); position: relative; transition: transform .35s ease, box-shadow .35s ease; }
  .fi-step-card:hover { transform: translateY(-8px); box-shadow: var(--fi-shadow-lg); }
  .fi-step-number { position: absolute; top: -14px; left: -14px; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--fi-terracotta), var(--fi-mustard-dark)); color: var(--fi-white); display: flex; align-items: center; justify-content: center; font-family: 'Newsreader', serif; font-weight: 700; box-shadow: var(--fi-shadow-sm); }
  .fi-step-icon { font-size: 1.6rem; color: var(--fi-olive); margin-bottom: .8rem; }

  .fi-section-features { background: var(--fi-rose-tint); }
  .fi-tabs { margin-top: 1rem; }
  .fi-tabs-nav { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2rem; }
  .fi-tab { display: inline-flex; align-items: center; gap: .55rem; padding: .75rem 1.2rem; border-radius: 999px; background: var(--fi-white); color: var(--fi-ink-soft); font-weight: 600; font-size: .9rem; border: 1px solid rgba(46,42,36,.08); transition: background .3s ease, color .3s ease, box-shadow .3s ease, transform .3s ease; }
  .fi-tab i { color: var(--fi-terracotta); }
  .fi-tab:hover { transform: translateY(-2px); box-shadow: var(--fi-shadow-sm); }
  .fi-tab.is-active { background: linear-gradient(135deg, var(--fi-mustard), var(--fi-terracotta)); color: var(--fi-white); box-shadow: var(--fi-shadow-md); }
  .fi-tab.is-active i { color: var(--fi-white); }
  .fi-tabs-panels { position: relative; }
  .fi-tab-panel { display: none; grid-template-columns: 1fr; gap: 2rem; align-items: center; background: var(--fi-white); border-radius: var(--fi-radius-xl); padding: 1.6rem; box-shadow: var(--fi-shadow-md); }
  .fi-tab-panel.is-active { display: grid; animation: fiFadeIn .5s ease; }
  .fi-tab-img { width: 100%; border-radius: var(--fi-radius-lg); object-fit: cover; aspect-ratio: 4/3; }
  .fi-tab-meta { display: inline-flex; align-items: center; gap: .5rem; margin-top: .8rem; font-size: .85rem; color: var(--fi-ink-soft); }
  @media (min-width: 760px) { .fi-tab-panel { grid-template-columns: 1fr 1.1fr; } }
  @keyframes fiFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

  .fi-section-credibility { background: linear-gradient(150deg, var(--fi-olive) 0%, var(--fi-olive-dark) 100%); color: var(--fi-cream); }
  .fi-credibility-img { width: 100%; border-radius: var(--fi-radius-xl); box-shadow: var(--fi-shadow-lg); object-fit: cover; aspect-ratio: 4/3.3; }
  .fi-credibility-copy p { color: rgba(248,241,228,.86); }

  .fi-section-business { background: var(--fi-cream); }
  .fi-business-img { width: 100%; border-radius: var(--fi-radius-xl); box-shadow: var(--fi-shadow-lg); object-fit: cover; aspect-ratio: 4/3; }

  .fi-section-cta { background: linear-gradient(135deg, var(--fi-terracotta), var(--fi-mustard-dark)); color: var(--fi-white); text-align: center; }
  .fi-cta-inner { max-width: 640px; margin: 0 auto; }
  .fi-cta-inner p { color: rgba(255,252,246,.9); margin-bottom: 1.8rem; }

  
  .fi-page-hero { padding: 9.5rem 0 3rem; background: linear-gradient(160deg, var(--fi-cream), var(--fi-cream-dark)); }
  .fi-page-title { font-size: clamp(2.1rem, 3.4vw + 1rem, 3.3rem); font-weight: 700; max-width: 20ch; }
  .fi-page-title-light { color: var(--fi-cream); }
  .fi-page-lead { font-size: var(--fi-fs-lead); color: var(--fi-ink-soft); max-width: 60ch; }
  .fi-page-lead-light { color: rgba(248,241,228,.85); }

  
  .fi-team-card { background: var(--fi-white); border-radius: var(--fi-radius-lg); padding: 1.5rem; box-shadow: var(--fi-shadow-md); transition: transform .3s ease, box-shadow .3s ease; text-align: left; }
  .fi-team-card:hover { transform: translateY(-6px); box-shadow: var(--fi-shadow-lg); }
  .fi-team-img { width: 100%; border-radius: var(--fi-radius-md); aspect-ratio: 1/1.05; object-fit: cover; margin-bottom: 1rem; }
  .fi-team-role { color: var(--fi-terracotta-dark); font-weight: 600; font-size: .88rem; margin-bottom: .6rem; }

  .fi-section-approach { background: linear-gradient(150deg, var(--fi-terracotta-dark), var(--fi-olive-dark)); color: var(--fi-cream); }
  .fi-approach-item { display: flex; gap: 1rem; background: rgba(255,252,246,.08); border: 1px solid rgba(255,252,246,.15); padding: 1.2rem 1.4rem; border-radius: var(--fi-radius-md); transition: background .3s ease, transform .3s ease; }
  .fi-approach-item:hover { background: rgba(255,252,246,.15); transform: translateX(4px); }
  .fi-approach-item i { font-size: 1.4rem; color: var(--fi-mustard); margin-top: .2rem; }
  .fi-approach-item h4 { margin: 0 0 .3rem; font-family: 'Manrope', sans-serif; font-weight: 600; font-size: 1rem; color: var(--fi-cream); }
  .fi-approach-item p { margin: 0; color: rgba(248,241,228,.8); font-size: .92rem; }

  .fi-callhero-img { width: 100%; border-radius: var(--fi-radius-xl); box-shadow: var(--fi-shadow-lg); object-fit: cover; aspect-ratio: 4/3.4; }

  
  .fi-contact-main { padding-top: 6.5rem; }
  .fi-contact-section { padding: 3.5rem 0 5rem; }
  .fi-contact-wrap { display: grid; grid-template-columns: 1fr; gap: 3rem; }
  .fi-contact-intro { grid-column: 1 / -1; max-width: 700px; }
  .fi-form { display: grid; gap: 1.6rem; background: var(--fi-white); padding: 2.4rem; border-radius: var(--fi-radius-xl); box-shadow: var(--fi-shadow-lg); }
  .fi-form-field { display: grid; gap: .5rem; }
  .fi-form-field label { font-weight: 600; font-size: .92rem; }
  .fi-form-field input, .fi-form-field textarea { padding: .85rem 1rem; border-radius: var(--fi-radius-sm); border: 1.5px solid rgba(46,42,36,.15); background: var(--fi-cream); transition: border-color .25s ease, box-shadow .25s ease; }
  .fi-form-field input:focus, .fi-form-field textarea:focus { outline: none; border-color: var(--fi-terracotta); box-shadow: 0 0 0 4px rgba(193,88,58,.15); }
  .fi-form-hint { font-size: .8rem; color: var(--fi-ink-soft); }
  .fi-form-field-checkbox { background: var(--fi-cream-dark); padding: 1rem; border-radius: var(--fi-radius-md); }
  .fi-checkbox-label { display: flex; gap: .7rem; align-items: flex-start; font-size: .88rem; color: var(--fi-ink-soft); cursor: pointer; }
  .fi-checkbox-label input { width: 20px; height: 20px; margin-top: .1rem; accent-color: var(--fi-terracotta); flex-shrink: 0; }
  .fi-checkbox-label a { color: var(--fi-terracotta-dark); text-decoration: underline; }
  .fi-form-submit { justify-self: start; }

  .fi-contact-side { display: grid; gap: 1.5rem; align-content: start; }
  .fi-contact-card { background: var(--fi-cream-dark); border-radius: var(--fi-radius-lg); padding: 1.8rem; box-shadow: var(--fi-shadow-sm); }
  .fi-contact-card p { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; font-size: .95rem; }
  .fi-contact-card i { color: var(--fi-terracotta); width: 18px; }
  .fi-hours-row { display: flex; justify-content: space-between; padding: .4rem 0; border-bottom: 1px dashed rgba(46,42,36,.15); font-size: .92rem; }
  .fi-hours-row:last-of-type { border-bottom: none; }
  .fi-hours-note { margin-top: .8rem; font-size: .82rem; color: var(--fi-ink-soft); }
  .fi-contact-map { border-radius: var(--fi-radius-lg); overflow: hidden; box-shadow: var(--fi-shadow-sm); }
  .fi-contact-map iframe { display: block; }

  @media (min-width: 960px) { .fi-contact-wrap { grid-template-columns: 1.3fr .9fr; } }

  
  .fi-thanks-section { padding: 10rem 0 6rem; }
  .fi-thanks-wrap { max-width: 640px; text-align: left; }
  .fi-timeline-mini { margin-top: 3rem; display: grid; gap: 1.8rem; position: relative; padding-left: 2rem; border-left: 2px solid rgba(46,42,36,.12); }
  .fi-timeline-mini-item { display: flex; gap: 1rem; position: relative; }
  .fi-timeline-mini-dot { position: absolute; left: -2.55rem; width: 34px; height: 34px; border-radius: 50%; background: rgba(46,42,36,.12); color: var(--fi-ink-soft); display: flex; align-items: center; justify-content: center; font-size: .85rem; }
  .fi-timeline-mini-item.is-done .fi-timeline-mini-dot { background: var(--fi-olive); color: var(--fi-white); }
  .fi-timeline-mini-item.is-current .fi-timeline-mini-dot { background: linear-gradient(135deg, var(--fi-mustard), var(--fi-terracotta)); }
  .fi-timeline-mini-item h4 { margin: 0 0 .3rem; font-size: 1.1rem; }
  .fi-timeline-mini-item p { margin: 0; color: var(--fi-ink-soft); font-size: .92rem; }
  .fi-timeline-mini-item:not(.is-done) h4, .fi-timeline-mini-item:not(.is-done) p { color: var(--fi-ink-soft); opacity: .6; }

  
  .fi-legal-hero { padding: 9.5rem 0 3rem; background: linear-gradient(160deg, var(--fi-cream), var(--fi-cream-dark)); }
  .fi-legal-hero-terracotta { background: linear-gradient(150deg, var(--fi-terracotta), var(--fi-mustard-dark)); }
  .fi-legal-hero-olive { background: linear-gradient(150deg, var(--fi-olive), var(--fi-olive-dark)); }
  .fi-legal-section { padding-top: 1rem; }
  .fi-timeline { position: relative; padding-left: 2.2rem; border-left: 3px solid rgba(46,42,36,.12); display: grid; }
  .fi-timeline--long { gap: 2.6rem; }
  .fi-timeline--medium { gap: 2.2rem; }
  .fi-timeline--compact { gap: 1.5rem; border-left-color: rgba(46,42,36,.08); }
  .fi-timeline-item { position: relative; }
  .fi-timeline-marker { position: absolute; left: -2.9rem; top: 0; width: 60px; text-align: right; font-size: .72rem; font-weight: 700; color: var(--fi-terracotta-dark); background: var(--fi-cream); padding: .2rem .3rem; }
  .fi-timeline--compact .fi-timeline-marker { color: var(--fi-olive-dark); }
  .fi-timeline-content h2 { font-size: 1.35rem; margin-bottom: .5rem; }
  .fi-timeline--compact .fi-timeline-content h2 { font-size: 1.15rem; }
  .fi-timeline-content p { color: var(--fi-ink-soft); }

  
  .fi-footer { position: relative; background: linear-gradient(150deg, var(--fi-olive-dark) 0%, var(--fi-terracotta-dark) 60%, var(--fi-mustard-dark) 100%); color: var(--fi-cream); padding-top: var(--fi-space-2xl); overflow: hidden; }
  .fi-footer-grain { position: absolute; inset: 0; opacity: .06; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
  .fi-footer-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; position: relative; z-index: 1; padding-bottom: 3rem; }
  .fi-footer-brand p { color: rgba(248,241,228,.78); max-width: 32ch; margin-top: 1rem; font-size: .92rem; }
  .fi-logo-footer { color: var(--fi-cream); margin-bottom: .5rem; }
  .fi-footer-col h4 { font-family: 'Manrope', sans-serif; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(248,241,228,.6); margin-bottom: 1rem; }
  .fi-footer-col a, .fi-footer-col p { display: block; color: rgba(248,241,228,.88); margin-bottom: .7rem; font-size: .93rem; transition: color .25s ease, transform .25s ease; }
  .fi-footer-col a:hover { color: var(--fi-cream); transform: translateX(3px); }
  .fi-footer-col p { display: flex; align-items: center; gap: .5rem; margin-bottom: .6rem; }
  .fi-footer-bottom { border-top: 1px solid rgba(248,241,228,.15); padding: 1.5rem 0; text-align: center; position: relative; z-index: 1; }
  .fi-footer-bottom p { margin: 0; font-size: .82rem; color: rgba(248,241,228,.7); }

  @media (min-width: 700px) { .fi-footer-grid { grid-template-columns: 1.3fr .8fr .8fr 1fr; } }

  
  .fi-cookie-card { position: fixed; right: 1.3rem; bottom: 1.3rem; width: min(360px, calc(100vw - 2rem)); background: var(--fi-white); border-radius: var(--fi-radius-lg); padding: 1.6rem; box-shadow: var(--fi-shadow-lg); z-index: 400; transform: translateY(140%); opacity: 0; transition: transform .5s cubic-bezier(.4,0,.2,1), opacity .4s ease; }
  .fi-cookie-card.is-visible { transform: translateY(0); opacity: 1; }
  .fi-cookie-icon { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--fi-mustard), var(--fi-terracotta)); color: var(--fi-white); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: .8rem; }
  .fi-cookie-card h3 { font-size: 1.15rem; margin-bottom: .5rem; }
  .fi-cookie-card p { font-size: .87rem; color: var(--fi-ink-soft); margin-bottom: 1rem; }
  .fi-cookie-actions { display: grid; gap: .6rem; }
  .fi-cookie-actions .fi-btn { width: 100%; }
  .fi-cookie-settings { display: grid; gap: .8rem; max-height: 0; overflow: hidden; transition: max-height .4s ease, margin-top .4s ease; margin-top: 0; }
  .fi-cookie-settings:not([hidden]) { max-height: 400px; margin-top: 1rem; }
  .fi-cookie-toggle { display: flex; justify-content: space-between; align-items: center; font-size: .88rem; background: var(--fi-cream); padding: .6rem .9rem; border-radius: var(--fi-radius-sm); }
  .fi-cookie-toggle input { width: 20px; height: 20px; accent-color: var(--fi-terracotta); }
  .fi-cookie-save { margin-top: .3rem; }

  
  .tippy-box[data-theme~='custom'] { background: var(--fi-ink); color: var(--fi-cream); font-size: .82rem; border-radius: var(--fi-radius-sm); padding: .1rem; box-shadow: var(--fi-shadow-md); }
  .tippy-box[data-theme~='custom'][data-placement^='top'] > .tippy-arrow::before { border-top-color: var(--fi-ink); }
  .tippy-box[data-theme~='custom'][data-placement^='bottom'] > .tippy-arrow::before { border-bottom-color: var(--fi-ink); }
}

@layer utilities {
  .fi-text-center { text-align: center; }
  .fi-mt-lg { margin-top: var(--fi-space-lg); }
  .fi-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}