/* Fresh Fades: charcoal, lime, condensed display type */
:root {
  --c-primary: #c6f24e; --c-primary-dark: #a9d42f; --c-on-primary: #121417; --c-accent: #c6f24e;
  --c-ink: #f2f3ee; --c-muted: #a3a8a0; --c-bg: #121417; --c-surface: #1b1e22;
  --c-dark: #0b0c0e; --c-on-dark: #f2f3ee; --c-border: #2c3036;
  --f-head: "Anton", Impact, sans-serif; --f-body: "Space Grotesk", system-ui, sans-serif;
  --fw-head: 400; --radius: 0; --radius-sm: 0;
}
body { background: var(--c-bg); color: var(--c-ink); }
a { color: var(--c-primary); }
h1, h2 { font-family: var(--f-head); font-weight: 400; text-transform: uppercase; letter-spacing: .01em; }
.demo-banner { background: var(--c-primary); color: #121417; text-align: center; font-size: .8rem; padding: 6px 12px; font-weight: 700; }
.site-header { background: rgba(18,20,23,.95); border-bottom: 1px solid var(--c-border); }
.brand { color: var(--c-ink); font-family: var(--f-head); letter-spacing: .06em; }
.brand-mark { color: var(--c-primary); }
.nav-links a { color: var(--c-ink); }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { background: var(--c-ink); }
.mobile-menu { background: var(--c-bg); }
.mobile-menu a:not(.btn) { color: var(--c-ink); }
.btn { border-radius: 0; font-weight: 700; }
.btn--primary, .btn--primary:hover { color: #121417; }
.btn--ghost { color: var(--c-ink); border: 2px solid var(--c-ink); }

.ff-hero { padding-top: 40px; }
.ff-hero__inner { display: grid; gap: 24px; align-items: end; padding-bottom: 28px; }
.ff-hero h1 { margin: 0; font-size: clamp(3.2rem, 13vw, 8.5rem); line-height: .9; }
.ff-hero h1 span { display: block; }
.ff-hl { color: var(--c-primary); }
.ff-hero__side p { font-size: 1.1rem; max-width: 32ch; margin: 0 0 18px; }
.ff-hero__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.ff-hero__img img { width: 100%; height: clamp(240px, 45vw, 520px); object-fit: cover; display: block; filter: grayscale(.35) contrast(1.05); }
@media (min-width: 900px) { .ff-hero__inner { grid-template-columns: 1.4fr 1fr; } }

.ff-door { background: var(--c-primary); color: #121417; padding: 56px 0; }
.ff-door a { color: #121417; font-weight: 700; }
.ff-door__grid { display: grid; gap: 24px; align-items: center; }
.ff-door { padding: 40px 0; }
.ff-badge { margin: 0; display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding: 14px 20px; border: 3px solid #121417; font-weight: 700; justify-self: start; }
.ff-badge strong { font-family: var(--f-head); font-size: 2.6rem; font-weight: 400; line-height: 1; }
.ff-badge span { font-weight: 500; }
.ff-dated { margin: 0; font-size: 1.08rem; max-width: 52ch; }
@media (min-width: 900px) { .ff-door__grid { grid-template-columns: auto 1fr; gap: 40px; } }

.ff-work { padding: 72px 0; }
.ff-work h2 { font-size: clamp(2.2rem, 6vw, 3.4rem); margin: 0 0 20px; }
.ff-mosaic { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ff-mosaic button { padding: 0; border: 0; background: none; cursor: zoom-in; overflow: hidden; }
.ff-mosaic img { width: 100%; height: 100%; min-height: 180px; object-fit: cover; display: block; transition: transform .4s; }
.ff-mosaic button:hover img { transform: scale(1.04); }
.ff-mosaic .ff-tall { grid-column: span 2; }
@media (min-width: 760px) { .ff-mosaic { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 300px; } .ff-mosaic .ff-tall { grid-column: auto; } }

.ff-msg { padding: 64px 0; background: var(--c-surface); }
.ff-msg__box { max-width: 680px; }
.ff-msg h2 { font-size: clamp(2rem, 6vw, 3rem); margin: 0 0 8px; }
.ff-msg a { overflow-wrap: anywhere; }
.field label { color: var(--c-ink); }
.field input, .field textarea { background: #0f1113; color: var(--c-ink); border-color: var(--c-border); }
.form-success { color: var(--c-ink); }

.ff-spot { padding: 72px 0 40px; }
.ff-spot__addr { text-align: center; margin-bottom: 28px; }
.ff-spot h2 { font-size: clamp(2.2rem, 6vw, 3.4rem); margin: 0 0 10px; }
.ff-addr { font-size: clamp(1.3rem, 4vw, 1.8rem); font-weight: 700; margin: 0 0 6px; }
.ff-muted { color: var(--c-muted); margin: 0 0 16px; }
.ff-spot__links { display: flex; justify-content: center; gap: 22px; flex-wrap: wrap; font-weight: 700; }
.ff-map iframe { width: 100%; height: 360px; border: 0; display: block; filter: grayscale(.6) invert(.9) hue-rotate(180deg); }

.ff-footer { border-top: 1px solid var(--c-border); padding: 22px 0 90px; text-align: center; font-size: .8rem; letter-spacing: .12em; color: var(--c-muted); }
.ff-footer p { margin: 0; }
@media (min-width: 960px) { .ff-footer { padding-bottom: 22px; } }
.call-bar { background: var(--c-bg); border-top: 1px solid var(--c-border); }
.call-bar .btn--ghost { color: var(--c-ink); }
