.flc-page {
  --flc-ink: #18201f;
  --flc-petrol: #0d5761;
  --flc-petrol-dark: #083e46;
  --flc-mustard: #d29a32;
  --flc-paper: #f3f2ec;
  --flc-white: #fff;
  --flc-line: rgba(24,32,31,.18);
  margin: 0;
  background: var(--flc-paper);
  color: var(--flc-ink);
}

.flc-page * { box-sizing: border-box; }
.flc-page img { display: block; max-width: 100%; }
.flc-page a { color: inherit; }
.flc-shell { width: min(1480px, calc(100vw - 64px)); margin-inline: auto; }
.flc-eyebrow {
  margin: 0 0 1.2rem;
  color: var(--flc-petrol);
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.4;
  text-transform: uppercase;
}

.flc-header {
  position: fixed;
  z-index: 1000;
  top: 0;
  width: 100%;
  background: rgba(24,32,31,.9);
  color: var(--flc-white);
  backdrop-filter: blur(14px);
}
.admin-bar .flc-header { top: 32px; }
.flc-header__inner {
  min-height: 82px;
  display: grid;
  grid-template-columns: minmax(260px,1fr) auto;
  gap: 2rem;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.flc-brand { display: flex; gap: .85rem; align-items: center; min-width: 0; }
.flc-brand img { width: 54px; height: 54px; object-fit: contain; flex: 0 0 auto; }
.flc-brand div { display: grid; gap: .16rem; }
.flc-brand strong { font-size: .9rem; font-weight: 720; letter-spacing: .08em; line-height: 1.15; text-transform: uppercase; }
.flc-brand span { color: rgba(255,255,255,.65); font-size: .72rem; line-height: 1.25; }
.flc-header__actions { display: flex; gap: clamp(1.5rem,2.6vw,3rem); justify-self: end; align-items: center; }
.flc-nav { display: flex; gap: clamp(1.3rem,2.5vw,2.8rem); align-items: center; }
.flc-nav a, .flc-header__cta {
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-decoration: none;
  text-transform: uppercase;
}
.flc-nav a { color: rgba(255,255,255,.78); }
.flc-nav a:hover { color: var(--flc-mustard); }
.flc-header__cta {
  justify-self: end;
  padding: .75rem .9rem;
  border: 1px solid rgba(255,255,255,.42);
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.flc-header__cta:hover { border-color: var(--flc-mustard); background: var(--flc-mustard); color: var(--flc-ink); }

.flc-hero {
  min-height: 100svh;
  padding: 9.5rem 0 0;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 12.5% 100%,
    var(--flc-ink);
  color: var(--flc-white);
}
.flc-hero__grid {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(420px,.95fr);
  gap: clamp(3rem,6vw,7.5rem);
  align-items: center;
  min-height: calc(100svh - 15rem);
  padding-bottom: clamp(3rem,6vw,5.5rem);
}
.flc-hero .flc-eyebrow { color: var(--flc-mustard); }
.flc-hero h1 {
  max-width: 920px;
  margin: 0;
  font-size: clamp(3.4rem,6vw,6.5rem);
  font-weight: 470;
  letter-spacing: -.065em;
  line-height: .92;
  text-wrap: balance;
}
.flc-lead { max-width: 760px; margin: 2rem 0 0; color: rgba(255,255,255,.74); font-size: clamp(1.05rem,1.45vw,1.35rem); line-height: 1.55; }
.flc-actions { display: flex; flex-wrap: wrap; gap: 1.1rem 2rem; align-items: center; margin-top: 2.6rem; }
.flc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: .85rem 1.15rem;
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .075em;
  text-decoration: none;
  text-transform: uppercase;
}
.flc-button--mustard { background: var(--flc-mustard); color: var(--flc-ink); }
.flc-button--mustard:hover { background: var(--flc-white); }
.flc-text-link { display: inline-flex; gap: .8rem; padding: 0 0 .4rem; border-bottom: 1px solid currentColor; font-family: var(--wp--preset--font-family--mono, monospace); font-size: .76rem; font-weight: 700; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.flc-text-link:hover { color: var(--flc-mustard); }
.flc-hero__visual { position: relative; margin: 0; }
.flc-hero__visual::before { content: ""; position: absolute; z-index: 1; inset: -16px 16px 16px -16px; border: 1px solid rgba(210,154,50,.5); pointer-events: none; }
.flc-hero__visual img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(.82) contrast(1.03); }
.flc-hero__visual figcaption { position: absolute; z-index: 2; right: 0; bottom: 0; display: flex; gap: .8rem; padding: .9rem 1rem; background: var(--flc-mustard); color: var(--flc-ink); font-family: var(--wp--preset--font-family--mono, monospace); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.flc-hero__visual figcaption span { padding-right: .8rem; border-right: 1px solid rgba(24,32,31,.35); }
.flc-work, .flc-faq { padding: clamp(5.5rem,9vw,9rem) 0; }
.flc-work { background: var(--flc-paper); }
.flc-section-heading { margin-bottom: clamp(3rem,5vw,5rem); }
.flc-section-heading > div { width: 100%; }
.flc-section-heading h2, .flc-direct h2, .flc-faq h2, .flc-contact h2 { max-width: 900px; margin: 0; font-size: clamp(2.8rem,5vw,5.4rem); font-weight: 480; letter-spacing: -.06em; line-height: .95; text-wrap: balance; }
.flc-work .flc-section-heading h2 { max-width: none; text-wrap: wrap; }
.flc-section-heading__intro { max-width: none; margin: 1.4rem 0 0; color: rgba(24,32,31,.68); font-size: 1.05rem; line-height: 1.6; }
.flc-work__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(2rem,4vw,4.5rem) 1.2rem; }
.flc-work__more-wrap { display: flex; justify-content: center; margin-top: 3rem; }
.flc-work__more { display: inline-flex; gap: .75rem; align-items: center; padding: .9rem 1.25rem; border: 0; background: var(--flc-petrol); color: #fff; font-family: var(--wp--preset--font-family--mono, monospace); font-size: .7rem; font-weight: 700; letter-spacing: .08em; cursor: pointer; text-transform: uppercase; }
.flc-work__more:hover, .flc-work__more:focus-visible { background: var(--flc-mustard); color: var(--flc-ink); }
.flc-work__more[hidden] { display: none; }
.flc-project { display: block; text-decoration: none; }
.flc-project__media { position: relative; overflow: hidden; aspect-ratio: 2.1 / 1; background: #c9cbc6; }
.flc-project__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1), filter .3s ease; }
.flc-project__arrow { position: absolute; right: 0; bottom: 0; display: grid; width: 48px; height: 48px; place-items: center; background: var(--flc-mustard); font-size: 1.15rem; transform: translateY(100%); transition: transform .25s ease; }
.flc-project:hover .flc-project__media img { transform: scale(1.025); filter: saturate(1.08); }
.flc-project:hover .flc-project__arrow { transform: translateY(0); }
.flc-project__copy { display: flex; gap: 1rem; justify-content: space-between; align-items: start; padding: 1rem 0 0; border-top: 1px solid var(--flc-line); }
.flc-project__copy h3 { max-width: 65%; margin: 0; font-size: clamp(1.2rem,1.8vw,1.65rem); font-weight: 600; line-height: 1.2; }
.flc-project__copy p { margin: .2rem 0 0; color: rgba(24,32,31,.58); font-family: var(--wp--preset--font-family--mono, monospace); font-size: .66rem; line-height: 1.5; text-align: right; text-transform: uppercase; }

.flc-case { padding: clamp(5rem,8vw,8rem) 0; background: var(--flc-mustard); }
.flc-case__grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(420px,.9fr); gap: clamp(3rem,6vw,7rem); align-items: center; }
.flc-case__media img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center; }
.flc-case__media a { display: flex; justify-content: space-between; padding: 1rem 0; border-bottom: 1px solid rgba(24,32,31,.5); font-family: var(--wp--preset--font-family--mono, monospace); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.flc-case .flc-eyebrow { color: var(--flc-ink); }
.flc-case h2 { margin: 0; font-size: clamp(2.8rem,4.5vw,5rem); font-weight: 480; letter-spacing: -.06em; line-height: .95; }
.flc-case__intro { margin: 1.8rem 0 2.5rem; font-size: clamp(1.08rem,1.5vw,1.3rem); line-height: 1.55; }
.flc-case dl { margin: 0; }
.flc-case dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 1.2rem; padding: 1.15rem 0; border-top: 1px solid rgba(24,32,31,.35); }
.flc-case dt { font-family: var(--wp--preset--font-family--mono, monospace); font-size: .7rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.flc-case dd { margin: 0; line-height: 1.55; }

.flc-services { background: var(--flc-white); }
.flc-services__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--flc-line); border-left: 1px solid var(--flc-line); }
.flc-services article { min-height: 250px; padding: clamp(1.6rem,3vw,2.7rem); border-right: 1px solid var(--flc-line); border-bottom: 1px solid var(--flc-line); }
.flc-services article > span { color: var(--flc-petrol); font-family: var(--wp--preset--font-family--mono, monospace); font-size: .7rem; font-weight: 750; }
.flc-services h3 { margin: 4.5rem 0 .8rem; font-size: clamp(1.35rem,2vw,1.8rem); font-weight: 610; }
.flc-services article p { max-width: 360px; margin: 0; color: rgba(24,32,31,.65); line-height: 1.55; }

.flc-method { padding: clamp(6rem,10vw,10rem) 0; background: var(--flc-petrol); color: var(--flc-white); }
.flc-method .flc-eyebrow { color: var(--flc-mustard); }
.flc-method__heading { display: grid; grid-template-columns: .55fr 1.45fr; gap: 3rem; }
.flc-method__heading h2 { max-width: 1120px; margin: 0; font-size: clamp(3rem,5.7vw,6.3rem); font-weight: 460; letter-spacing: -.065em; line-height: .92; }
.flc-method__intro { display: grid; grid-template-columns: .55fr 1.45fr; gap: 3rem; margin: 3rem 0 5rem; }
.flc-method__intro p { grid-column: 2; max-width: 800px; margin: 0; color: rgba(255,255,255,.76); font-size: clamp(1.08rem,1.55vw,1.35rem); line-height: 1.6; }
.flc-method__steps { display: grid; grid-template-columns: repeat(var(--flc-step-cols,5),minmax(0,1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.3); list-style: none; }
.flc-method__steps li { min-height: 240px; padding: 1.5rem 1.2rem; border-right: 1px solid rgba(255,255,255,.25); }
.flc-method__steps li:first-child { border-left: 1px solid rgba(255,255,255,.25); }
.flc-method__steps span { display: block; margin-bottom: 4.5rem; color: var(--flc-mustard); font-family: var(--wp--preset--font-family--mono, monospace); font-size: .7rem; }
.flc-method__steps strong { display: block; font-size: 1.05rem; }
.flc-method__steps p { margin: .7rem 0 0; color: rgba(255,255,255,.65); font-size: .88rem; line-height: 1.5; }

.flc-direct { background: var(--flc-white); }
.flc-direct__grid { display: grid; grid-template-columns: .55fr 1.45fr; gap: 3rem; }
.flc-direct h2 { max-width: 1080px; }
.flc-direct__grid > div > p { max-width: 760px; margin: 2rem 0 0; color: rgba(24,32,31,.68); font-size: clamp(1.05rem,1.5vw,1.3rem); line-height: 1.65; }

.flc-overview { padding: clamp(4.5rem,7vw,7rem) 0; background: var(--flc-white); }
.flc-overview__heading { display: grid; grid-template-columns: minmax(180px,.45fr) minmax(0,1.55fr); gap: clamp(2rem,5vw,6rem); align-items: start; margin-bottom: clamp(2.8rem,5vw,4.5rem); }
.flc-overview__heading h2 { max-width: 1040px; margin: 0; font-size: clamp(2.7rem,4.6vw,5rem); font-weight: 480; letter-spacing: -.06em; line-height: .96; text-wrap: balance; }
.flc-overview__heading > div > p { max-width: 900px; margin: 1.6rem 0 0; color: rgba(24,32,31,.68); font-size: clamp(1.02rem,1.35vw,1.2rem); line-height: 1.62; }
.flc-overview__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--flc-line); border-left: 1px solid var(--flc-line); }
.flc-overview article { min-height: 220px; padding: clamp(1.5rem,2.6vw,2.4rem); border-right: 1px solid var(--flc-line); border-bottom: 1px solid var(--flc-line); }
.flc-overview article > span { color: var(--flc-petrol); font-family: var(--wp--preset--font-family--mono, monospace); font-size: .7rem; font-weight: 750; }
.flc-overview h3 { margin: 3.6rem 0 .75rem; font-size: clamp(1.3rem,1.8vw,1.7rem); font-weight: 610; line-height: 1.15; }
.flc-overview article p { max-width: 390px; margin: 0; color: rgba(24,32,31,.65); line-height: 1.55; }

.flc-faq { background: var(--flc-paper); }
.flc-faq__grid { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr); gap: clamp(3rem,7vw,8rem); }
.flc-faq h2 { font-size: clamp(2.6rem,4.2vw,4.6rem); }
.flc-faq__items { border-top: 1px solid var(--flc-line); }
.flc-faq details { border-bottom: 1px solid var(--flc-line); }
.flc-faq summary { position: relative; padding: 1.4rem 3rem 1.4rem 0; cursor: pointer; font-size: clamp(1rem,1.25vw,1.2rem); font-weight: 650; list-style: none; }
.flc-faq summary::-webkit-details-marker { display: none; }
.flc-faq summary::after { content: "+"; position: absolute; right: .4rem; top: 50%; color: var(--flc-petrol); font-family: var(--wp--preset--font-family--mono, monospace); font-size: 1.4rem; transform: translateY(-50%); }
.flc-faq details[open] summary::after { content: "−"; }
.flc-faq details p { max-width: 720px; margin: 0; padding: 0 3rem 1.5rem 0; color: rgba(24,32,31,.67); line-height: 1.6; }

.flc-contact { padding: clamp(6rem,10vw,10rem) 0; background: var(--flc-ink); color: var(--flc-white); }
.flc-contact .flc-eyebrow { color: var(--flc-mustard); }
.flc-contact__grid { display: grid; grid-template-columns: minmax(320px,.8fr) minmax(0,1.2fr); gap: clamp(3rem,8vw,9rem); align-items: start; }
.flc-contact h2 { max-width: 700px; }
.flc-contact__copy > p:not(.flc-eyebrow) { max-width: 600px; margin: 2rem 0; color: rgba(255,255,255,.7); font-size: 1.08rem; line-height: 1.65; }
.flc-contact__copy > a { font-family: var(--wp--preset--font-family--mono, monospace); font-size: .85rem; }
.flc-contact__form { padding: clamp(1.5rem,3vw,2.6rem); border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.035); }
.flc-contact__form .ff-el-group { margin-bottom: 1rem; }
.flc-contact__form .ff-el-input--label label, .flc-contact__form label { color: rgba(255,255,255,.82) !important; font-size: .8rem; }
.flc-contact__form input:not([type="checkbox"]):not([type="radio"]),
.flc-contact__form select,
.flc-contact__form textarea {
  width: 100%;
  min-height: 48px;
  padding: .75rem .85rem;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.06) !important;
  color: var(--flc-white) !important;
  box-shadow: none !important;
}
.flc-contact__form select option { color: var(--flc-ink); }
.flc-contact__form textarea { min-height: 130px; }
.flc-contact__form input::placeholder, .flc-contact__form textarea::placeholder { color: rgba(255,255,255,.45); }
.flc-contact__form .ff-btn-submit { min-height: 50px; padding: .8rem 1.2rem !important; border: 0 !important; border-radius: 0 !important; background: var(--flc-mustard) !important; color: var(--flc-ink) !important; font-family: var(--wp--preset--font-family--mono, monospace); font-size: .74rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

.flc-footer { padding: 3.5rem 0 1.5rem; background: var(--flc-petrol-dark); color: var(--flc-white); }
.flc-footer__top { display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding-bottom: 3rem; }
.flc-footer__socials { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.flc-footer__socials a, .flc-footer__bottom { font-family: var(--wp--preset--font-family--mono, monospace); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.flc-footer__bottom { display: flex; justify-content: space-between; gap: 1rem 2rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.62); }
.flc-footer__bottom p { margin: 0; }
.flc-footer__bottom p:last-child { display: flex; gap: 1.2rem; }

.flc-page a:focus-visible, .flc-page button:focus-visible, .flc-page summary:focus-visible, .flc-page input:focus-visible, .flc-page select:focus-visible, .flc-page textarea:focus-visible { outline: 2px solid var(--flc-mustard); outline-offset: 3px; }

@media (max-width: 1050px) {
  .flc-header__inner { grid-template-columns: 1fr auto; }
  .flc-nav { display: none; }
  .flc-header__actions { gap: 0; }
  .flc-hero__grid, .flc-case__grid { grid-template-columns: 1fr 420px; gap: 3rem; }
  .flc-method__steps { grid-template-columns: repeat(3,1fr); }
  .flc-method__steps li { border-bottom: 1px solid rgba(255,255,255,.25); }
  .flc-services__grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 780px) {
  .flc-shell { width: calc(100vw - 32px); }
  .admin-bar .flc-header { top: 46px; }
  .flc-header__inner { min-height: 72px; }
  .flc-brand img { width: 44px; height: 44px; }
  .flc-brand strong { font-size: .75rem; }
  .flc-brand span { display: none; }
  .flc-header__cta { padding: .65rem .7rem; font-size: .62rem; }
  .flc-hero { min-height: auto; padding-top: 8.2rem; }
  .flc-hero__grid { display: flex; flex-direction: column; align-items: stretch; min-height: auto; gap: 3.2rem; }
  .flc-hero h1 { font-size: clamp(3rem,14vw,4.8rem); }
  .flc-hero__visual::before { inset: -9px 9px 9px -9px; }
  .flc-section-heading, .flc-case__grid, .flc-method__heading, .flc-method__intro, .flc-direct__grid, .flc-overview__heading, .flc-faq__grid, .flc-contact__grid { grid-template-columns: 1fr; gap: 2rem; }
  .flc-method__intro p { grid-column: auto; }
  .flc-work__grid { grid-template-columns: 1fr; }
  .flc-project__media { aspect-ratio: 16 / 9; }
  .flc-project__arrow { transform: none; }
  .flc-project__copy { display: block; }
  .flc-project__copy h3 { max-width: none; }
  .flc-project__copy p { text-align: left; }
  .flc-services__grid { grid-template-columns: 1fr; }
  .flc-services article { min-height: 215px; }
  .flc-method__steps { grid-template-columns: 1fr; }
  .flc-method__steps li { min-height: auto; }
  .flc-method__steps span { margin-bottom: 2rem; }
  .flc-overview__grid { grid-template-columns: 1fr; }
  .flc-overview article { min-height: auto; }
  .flc-overview h3 { margin-top: 2rem; }
  .flc-case dl > div { grid-template-columns: 1fr; gap: .5rem; }
  .flc-footer__top, .flc-footer__bottom { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .flc-page *, .flc-page *::before, .flc-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
