@font-face { font-family: "Chakra Petch"; src: url("../fonts/chakra-petch-regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Chakra Petch"; src: url("../fonts/chakra-petch-semibold.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Chakra Petch"; src: url("../fonts/chakra-petch-bold.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }

:root {
  --lf-bd-ink: #0b0e14;
  --lf-bd-surface: #131722;
  --lf-bd-paper: #f7f7f8;
  --lf-bd-white: #f5f7fb;
  --lf-bd-muted: #aeb9ca;
  --lf-bd-cyan: #00e5ff;
  --lf-bd-magenta: #ff3af2;
  --lf-color-background: var(--lf-bd-ink);
  --lf-color-surface: var(--lf-bd-surface);
  --lf-color-surface-raised: #191e29;
  --lf-color-text: var(--lf-bd-white);
  --lf-color-muted: var(--lf-bd-muted);
  --lf-color-accent: var(--lf-bd-cyan);
  --lf-color-accent-hover: #70f2ff;
  --lf-color-on-accent: #071014;
  --lf-color-border: #303746;
  --lf-color-focus: var(--lf-bd-cyan);
  --lf-font-body: "Chakra Petch", ui-sans-serif, system-ui, sans-serif;
  --lf-font-display: "Chakra Petch", ui-sans-serif, system-ui, sans-serif;
  --lf-radius-md: .35rem;
  --lf-radius-pill: .3rem;
  --lf-shadow-sm: 0 1rem 2.5rem rgb(0 0 0 / 30%);
  --lf-shadow-button: 0 0 1.5rem rgb(0 229 255 / 20%);
}

html { scroll-behavior: smooth; scroll-padding-top: 8rem; }
body { overflow-x: clip; background: var(--lf-bd-ink); color: var(--lf-bd-white); }
:is(h1,h2,h3,h4,.lf-c-button) { text-transform: uppercase; letter-spacing: .055em; }

.lf-c-header { border-bottom-color: rgb(11 14 20 / 12%); background: rgb(247 247 248 / 82%); color: var(--lf-bd-ink); backdrop-filter: blur(12px) saturate(1.08); }
.lf-c-header.is-scrolled { background: rgb(247 247 248 / 94%); }
.lf-c-header__inner { min-height: 7rem; transition: min-height 240ms ease; }
.lf-c-header.is-scrolled .lf-c-header__inner { min-height: 5rem; }
.lf-c-header .lf-c-branding { width: clamp(17rem,28vw,25rem); max-width: none; color: var(--lf-bd-ink); }
.lf-bd-brand { display: grid; width: 100%; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: clamp(1rem,3vw,3rem); }
.lf-bd-logo { width: clamp(13rem,20vw,18rem); height: auto; max-height: 5.75rem; }
.lf-bd-panel-icon { width: auto; height: 4.1rem; opacity: .2; transition: height 240ms ease, opacity 180ms ease; }
.lf-c-header.is-scrolled .lf-bd-logo { width: clamp(10rem,16vw,14rem); max-height: 3.75rem; }
.lf-c-header.is-scrolled .lf-bd-panel-icon { height: 3rem; opacity: .38; }
.lf-c-navigation__list a { color: var(--lf-bd-ink); font-weight: 700; text-transform: uppercase; letter-spacing: .045em; }
.lf-c-navigation__list a:hover { color: #008da0; }
.lf-c-nav-toggle { border-color: rgb(11 14 20 / 18%); background: rgb(255 255 255 / 55%); }
.lf-c-button { border: 1px solid var(--lf-color-accent); border-radius: var(--lf-button-radius); background: var(--lf-color-accent); color: var(--lf-color-on-accent); font-weight: var(--lf-button-font-weight); text-transform: var(--lf-button-text-transform); box-shadow: var(--lf-shadow-button); }
.lf-c-button:hover,.lf-c-button:focus-visible { border-color: var(--lf-bd-magenta); background: var(--lf-bd-ink); color: var(--lf-bd-cyan); box-shadow: 0 0 1.8rem rgb(255 58 242 / 22%); }
.lf-c-button.is-secondary { border-color: var(--lf-button-secondary-border); background: var(--lf-button-secondary-background); color: var(--lf-button-secondary-text); }
.lf-c-button.is-secondary:hover,.lf-c-button.is-secondary:focus-visible { border-color: var(--lf-bd-magenta); background: var(--lf-bd-magenta); color: var(--lf-bd-ink); }
.lf-c-hero.is-contrast .lf-c-button.is-secondary,.lf-c-cta.is-contrast .lf-c-button.is-secondary { border-color: var(--lf-bd-cyan); background: transparent; color: var(--lf-bd-cyan); }
.lf-c-hero.is-contrast .lf-c-button.is-secondary:hover,.lf-c-hero.is-contrast .lf-c-button.is-secondary:focus-visible,.lf-c-cta.is-contrast .lf-c-button.is-secondary:hover,.lf-c-cta.is-contrast .lf-c-button.is-secondary:focus-visible { border-color: var(--lf-bd-magenta); background: var(--lf-bd-magenta); color: var(--lf-bd-ink); }
.lf-c-header__cta { border-color: var(--lf-bd-ink); background: transparent; color: var(--lf-bd-ink); box-shadow: none; }
.lf-c-header__cta:hover,.lf-c-header__cta:focus-visible { border-color: var(--lf-bd-ink); background: var(--lf-bd-ink); color: var(--lf-bd-cyan); }

.lf-c-main > section { position: relative; overflow: clip; }
.lf-c-main > section:nth-of-type(even) { background: #0e121a; }
.lf-c-kicker,.lf-c-feature-card__badge { color: var(--lf-bd-cyan); }
.lf-c-hero.is-contrast { min-height: min(74vh,48rem); background: radial-gradient(circle at 82% 20%,rgb(0 229 255 / 15%),transparent 25%),linear-gradient(120deg,#080a0f,#111725 62%,#090b10); color: var(--lf-bd-white); }
.lf-c-hero.is-contrast::after { content: ""; position: absolute; right: -5rem; bottom: -9rem; width: min(42vw,32rem); aspect-ratio: 3 / 4; border: 1px solid rgb(0 229 255 / 24%); background: repeating-linear-gradient(90deg,transparent 0 31%,rgb(0 229 255 / 12%) 31% 32%,transparent 32% 65%,rgb(0 229 255 / 12%) 65% 66%),repeating-linear-gradient(0deg,transparent 0 31%,rgb(0 229 255 / 12%) 31% 32%,transparent 32% 65%,rgb(0 229 255 / 12%) 65% 66%); transform: rotate(9deg); }
.lf-c-hero.is-contrast .lf-c-hero__title { max-width: 14ch; color: var(--lf-bd-white); text-shadow: .08em .08em 0 rgb(255 58 242 / 18%); }
.lf-c-hero.is-contrast :is(.lf-c-hero__text,.lf-c-kicker) { color: var(--lf-bd-muted); }

.lf-bd-slider { width: 100%; max-width: 100vw; overflow: clip; background: var(--lf-bd-ink); }
.lf-bd-slider .lf-slider-container { width: 100%; max-width: none; height: min(76vh,50rem); min-height: 34rem; margin: 0; border-radius: 0; }
.lf-bd-slider :is(.glide,.glide__track,.glide__slides,.glide__slide,.case-card) { height: 100%; }
.lf-bd-slider .case-card { min-height: 34rem; border-radius: 0 !important; }
.lf-bd-slider .case-card .case-content { border: 1px solid rgb(0 229 255 / 38%); border-radius: .35rem !important; background: rgb(8 12 17 / 82%); color: var(--lf-bd-white); backdrop-filter: blur(8px); }
.lf-bd-slider .case-card .case-content :is(h2,h3) { color: var(--lf-bd-white); }
.lf-bd-slider .glide__arrow { border-color: rgb(0 229 255 / 45%); background: rgb(11 14 20 / 75%); color: var(--lf-bd-cyan); }
.lf-bd-slider .glide__bullet { background: rgb(245 247 251 / 45%); }
.lf-bd-slider .glide__bullet--active { background: var(--lf-bd-cyan); }
.lf-bd-slider .slide-hero { position: relative; display: flex; height: 100%; min-height: 34rem; align-items: center; overflow: hidden; border-radius: 0 !important; background: radial-gradient(circle at 82% 22%,rgb(0 229 255 / 18%),transparent 28%),linear-gradient(120deg,#080a0f,#111725 62%,#090b10); color: var(--lf-bd-white); }
.lf-bd-slider .slide-hero::after { content: ""; position: absolute; right: 5%; width: min(30vw,23rem); aspect-ratio: 3 / 4; border: 1px solid rgb(0 229 255 / 24%); background: repeating-linear-gradient(90deg,transparent 0 31%,rgb(0 229 255 / 12%) 31% 32%,transparent 32% 65%,rgb(0 229 255 / 12%) 65% 66%),repeating-linear-gradient(0deg,transparent 0 31%,rgb(0 229 255 / 12%) 31% 32%,transparent 32% 65%,rgb(0 229 255 / 12%) 65% 66%); transform: rotate(7deg); }
.lf-bd-slider .slide-hero__content { position: relative; z-index: 2; width: min(100% - 4rem,74rem); margin-inline: auto; }
.lf-bd-slider .slide-hero .kicker { margin: 0 0 .75rem; color: var(--lf-bd-cyan); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lf-bd-slider .slide-hero__title { max-width: 13ch; margin: 0; color: var(--lf-bd-white); font-size: clamp(2.5rem,5.8vw,5rem); line-height: .98; text-shadow: .08em .08em 0 rgb(255 58 242 / 22%); }
.lf-bd-slider .slide-hero__text { max-width: 40rem; margin: 1.25rem 0 0; color: var(--lf-bd-muted); font-size: clamp(1rem,1.6vw,1.2rem); }
.lf-bd-slider .slide-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.lf-bd-slider .slide-hero__actions :is(.btn-primary,.btn-ghost) { display: inline-flex; padding: .8rem 1rem; border: 1px solid var(--lf-bd-cyan); border-radius: .3rem; color: var(--lf-bd-cyan); font-weight: 700; text-decoration: none; text-transform: uppercase; }
.lf-bd-slider .slide-hero__actions .btn-primary { background: var(--lf-bd-cyan); color: var(--lf-bd-ink); }
.lf-bd-slider .slide-hero__actions :is(.btn-primary,.btn-ghost):hover { border-color: var(--lf-bd-magenta); background: var(--lf-bd-magenta); color: var(--lf-bd-ink); }
.lf-bd-slide { position: relative; display: grid; grid-template-columns: minmax(20rem,.72fr) minmax(0,1.28fr); height: 100%; min-height: 34rem; overflow: hidden; background: #080a0f; color: var(--lf-bd-white); }
.lf-bd-slide__visual { grid-column: 2; display: grid; min-width: 0; min-height: 0; padding: clamp(1.5rem,3vw,3rem); place-items: center; background: radial-gradient(circle at 50% 45%,rgb(0 229 255 / 8%),transparent 55%),#0b0e14; }
.lf-bd-slide__visual img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; object-position: center; filter: drop-shadow(0 1.25rem 2.5rem rgb(0 0 0 / 35%)); }
.lf-bd-slide__content { z-index: 2; grid-column: 1; grid-row: 1; align-self: center; width: min(34rem,100%); padding: clamp(2rem,5vw,5rem) clamp(2rem,4vw,4.5rem); }
.lf-bd-slide__kicker { margin: 0 0 .75rem; color: var(--lf-bd-cyan); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lf-bd-slide__content h2 { margin: 0; color: var(--lf-bd-white); font-size: clamp(2.4rem,5.8vw,5rem); line-height: .98; text-shadow: .08em .08em 0 rgb(255 58 242 / 22%); }
.lf-bd-slide__content > p:not(.lf-bd-slide__kicker) { max-width: 36rem; margin: 1.25rem 0 1.5rem; color: var(--lf-bd-muted); font-size: clamp(1rem,1.6vw,1.2rem); }

.lf-c-case-grid,.lf-c-process,.lf-c-contact { background: var(--lf-bd-ink); color: var(--lf-bd-white); }
.lf-c-case-grid :is(h2,h3),.lf-c-process :is(h2,h3),.lf-c-contact :is(h2,h3) { color: var(--lf-bd-white); }
.lf-c-case-grid__text,.lf-c-process__text,.lf-c-contact__text { color: var(--lf-bd-muted); }
.lf-c-case-card { border-color: var(--lf-card-border); border-radius: var(--lf-card-radius); background: var(--lf-card-surface); box-shadow: var(--lf-card-shadow); }
.lf-c-case-card:hover { border-color: var(--lf-bd-cyan); box-shadow: 0 1rem 3rem rgb(0 0 0 / 42%),0 0 2rem rgb(0 229 255 / 12%); }
.lf-c-case-card__image { background: var(--lf-bd-paper); }

/* Complete archive: masonry rhythm and original artwork proportions. */
.post-type-archive-lf_case .lf-c-case-grid__items { display: block; column-count: 4; column-gap: clamp(1rem,2vw,1.5rem); }
.post-type-archive-lf_case .lf-c-case-card { display: inline-block; width: 100%; margin: 0 0 clamp(1rem,2vw,1.5rem); break-inside: avoid; overflow: hidden; }
.post-type-archive-lf_case .lf-c-case-card__media { aspect-ratio: auto; border-radius: 0; background: var(--lf-bd-paper); }
.post-type-archive-lf_case .lf-c-case-card__image { width: 100%; height: auto; object-fit: contain; }

.lf-c-feature-grid.is-contrast,.lf-c-cta.is-contrast { background: linear-gradient(135deg,#090b10,#151a25); color: var(--lf-bd-white); }
.lf-c-feature-grid.is-contrast :is(h2,h3),.lf-c-cta.is-contrast :is(h2,h3) { color: var(--lf-bd-white); }
.lf-c-feature-grid.is-contrast :is(.lf-c-kicker,.lf-c-feature-grid__text,.lf-c-feature-card__text),.lf-c-cta.is-contrast :is(.lf-c-kicker,.lf-c-cta__text) { color: var(--lf-bd-muted); }
.lf-c-feature-grid.is-contrast .lf-c-feature-card { border-color: rgb(0 229 255 / 18%); border-radius: .35rem; background: rgb(255 255 255 / 3%); }
.lf-c-process__number { border: 1px solid var(--lf-bd-cyan); border-radius: .25rem; background: transparent; color: var(--lf-bd-cyan); }

.lf-c-contact.is-subtle { background: linear-gradient(180deg,#111722,#090b10); }
.lf-c-contact__form,.lf-c-contact__aside { border-color: var(--lf-card-border); border-radius: var(--lf-card-radius); background: var(--lf-card-surface); color: var(--lf-bd-white); }
.lf-c-contact__details a { color: var(--lf-bd-cyan); }
.lf-c-contact :is(input,select,textarea) { border-color: var(--lf-form-border) !important; border-radius: var(--lf-form-radius) !important; background: var(--lf-form-surface) !important; color: var(--lf-color-text) !important; }
.lf-c-contact :is(button[type="submit"],input[type="submit"],.ff-btn-submit) { border: 1px solid var(--lf-color-accent) !important; border-radius: var(--lf-button-radius) !important; background: var(--lf-color-accent) !important; color: var(--lf-color-on-accent) !important; font-family: var(--lf-font-display); font-weight: var(--lf-button-font-weight); text-transform: var(--lf-button-text-transform); letter-spacing: .05em; }
.lf-c-contact :is(button[type="submit"],input[type="submit"],.ff-btn-submit):hover,.lf-c-contact :is(button[type="submit"],input[type="submit"],.ff-btn-submit):focus-visible { border-color: var(--lf-bd-magenta) !important; background: var(--lf-bd-ink) !important; color: var(--lf-bd-cyan) !important; }

.lf-c-footer { border-top-color: rgb(0 229 255 / 24%); background: #07090d; color: var(--lf-bd-muted); }
.lf-c-footer .lf-bd-brand { grid-template-columns: 1fr; }
.lf-c-footer .lf-bd-logo { width: min(17rem,100%); filter: invert(1); }
.lf-c-footer .lf-bd-panel-icon { display: none; }
.lf-c-footer__brand p,.lf-c-footer__legal { color: var(--lf-bd-muted); }
.lf-c-footer a,.lf-c-footer__menu a { color: var(--lf-bd-cyan); }
.lf-c-footer a:hover,.lf-c-footer a:focus-visible { color: var(--lf-bd-white); }
.lf-c-footer__menu { display: grid; gap: .45rem; }
.lf-c-footer__phone { border-color: var(--lf-bd-cyan); color: var(--lf-bd-cyan); }
.lf-c-footer__phone:hover { background: var(--lf-bd-cyan); color: var(--lf-bd-ink); }
.lf-c-footer__phone-icon,.lf-c-footer__social-icon { background: currentColor; color: var(--lf-bd-cyan); }
.lf-c-footer__socials a { border-color: rgb(0 229 255 / 36%); background: #11151d; color: var(--lf-bd-cyan); }
.lf-c-footer__socials a:hover { border-color: var(--lf-bd-magenta); color: var(--lf-bd-white); }
.lf-c-footer__legal { border-top-color: rgb(0 229 255 / 18%); }
.lf-bd-pinup-gateway a { display: flex; align-items: center; gap: .75rem; width: fit-content; padding: .65rem .8rem; border: 1px solid rgb(255 58 242 / 38%); border-radius: .3rem; background: rgb(255 58 242 / 5%); color: var(--lf-bd-muted); text-decoration: none; }
.lf-bd-pinup-gateway a:hover,.lf-bd-pinup-gateway a:focus-visible { border-color: var(--lf-bd-magenta); background: rgb(255 58 242 / 12%); color: var(--lf-bd-white); }
.lf-bd-pinup-gateway__age { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid var(--lf-bd-magenta); border-radius: 50%; color: var(--lf-bd-magenta); font-size: .72rem; font-weight: 700; }
.lf-bd-pinup-gateway strong,.lf-bd-pinup-gateway small { display: block; }
.lf-bd-pinup-gateway strong { color: var(--lf-bd-cyan); font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; }
.lf-bd-pinup-gateway small { margin-top: .1rem; color: inherit; font-size: .7rem; }

@media (max-width: 64rem) {
  .lf-c-header .lf-c-branding { width: clamp(14rem,34vw,20rem); }
  .lf-bd-panel-icon { height: 3.25rem; }
  .post-type-archive-lf_case .lf-c-case-grid__items { column-count: 3; }
}
@media (max-width: 48rem) {
  html { scroll-padding-top: 6rem; }
  .lf-c-header__inner { min-height: 5.75rem; }
  .lf-c-header .lf-c-branding { width: min(68vw,18rem); }
  .lf-bd-logo { width: min(48vw,13rem); }
  .lf-bd-panel-icon { height: 2.8rem; }
  .lf-c-navigation { background: rgb(247 247 248 / 96%); color: var(--lf-bd-ink); }
  .lf-c-hero.is-contrast::after { right: -9rem; opacity: .55; }
  .lf-bd-slider .lf-slider-container { height: auto; min-height: 46rem; }
  .lf-bd-slide { grid-template-columns: 1fr; grid-template-rows: minmax(22rem,58vh) auto; min-height: 46rem; }
  .lf-bd-slide__visual { grid-column: 1; grid-row: 1; padding: 1.25rem; }
  .lf-bd-slide__content { grid-column: 1; grid-row: 2; width: 100%; padding: 1.5rem 1.25rem 4rem; }
  .lf-bd-slide__content h2 { font-size: clamp(2rem,11vw,3.5rem); }
  .post-type-archive-lf_case .lf-c-case-grid__items { column-count: 2; }
}

@media (max-width: 34rem) {
  .post-type-archive-lf_case .lf-c-case-grid__items { column-count: 1; }
}
