@charset "UTF-8";

:root {
  --ink: #0b0b0d;
  --ink-2: #17181b;
  --paper: #f3f0e9;
  --paper-2: #ebe7de;
  --white: #fff;
  --red: #e01b36;
  --acid: #e01b36;
  --muted: #6e6d69;
  --line: rgba(11, 11, 13, 0.16);
  --line-dark: rgba(255, 255, 255, 0.18);
  --max: 1480px;
  --text: 1160px;
  --pad: clamp(18px, 3vw, 48px);
  --section: clamp(74px, 8.5vw, 138px);
  --radius: 18px;
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --shadow: 0 30px 90px rgba(0, 0, 0, 0.14);
}

* {
  box-sizing: border-box;
}
/* <picture> wrappers (AVIF/WebP) must not affect layout: the <img> behaves as a direct child */
picture {
  display: contents;
}
html {
  scroll-behavior: smooth;
  background: var(--paper);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Helvetica Neue", Arial, "Liberation Sans", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  overflow-x: clip;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
button,
input,
textarea,
select {
  font: inherit;
}
button {
  color: inherit;
}
main {
  display: block;
  overflow-x: clip;
  overflow-y: visible;
}
::selection {
  background: var(--acid);
  color: #111;
}
:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
[hidden] {
  display: none !important;
}

.skip-link {
  position: fixed;
  left: 12px;
  top: -80px;
  z-index: 9999;
  background: #fff;
  color: #111;
  padding: 10px 14px;
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.skip-link:focus {
  top: 12px;
}
.container {
  width: min(var(--max), calc(100% - (var(--pad) * 2)));
  margin-inline: auto;
}
.narrow {
  max-width: 980px !important;
}
.center {
  text-align: center;
}
.cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.note {
  font-size: 13px;
  color: var(--muted);
}
.eyebrow,
.kicker,
.section-index {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  line-height: 1.25;
}
.lead {
  font-size: clamp(18px, 1.45vw, 18px);
  line-height: 1.5;
  color: var(--muted);
  max-width: 760px;
}
.text-link,
.text-arrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
}

/* Header */
.x-header {
  position: fixed;
  z-index: 700;
  top: 0;
  left: 0;
  right: 0;
  height: 78px;
  padding: 14px var(--pad);
  display: grid;
  grid-template-columns: auto 230px 115px;
  align-items: center;
  gap: 24px;
  color: #fff;
  transition: transform 0.32s var(--ease);
}
.x-header.hidden {
  transform: translateY(-110%);
}
.x-logo {
  display: flex;
  align-items: center;
  width: 166px;
  view-transition-name: r4y-logo;
}
.x-logo img {
  width: 100%;
  height: auto;
}
.x-header-proof {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 10px;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.16em;
  font-weight: 700;
  white-space: nowrap;
}
.x-header-proof i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--acid);
  box-shadow: 0 0 0 5px rgba(215, 255, 67, 0.12);
}
.x-quote-link,
.x-menu-btn {
  height: 44px;
  border: 1px solid currentColor;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000000b0;
}
.x-quote-link {
  padding: 0 16px 0 20px;
  gap: 22px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.x-quote-link b {
  font-size: 15px;
}
.x-menu-btn {
  min-width: 80px;
  padding: 0 17px;
  gap: 7px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.11em;
}
.x-menu-btn i {
  display: none;
}


img.mix-blend {
  mix-blend-mode: darken;
  margin-left: auto;
  margin-right: auto;
}

/* fullscreen navigation */
.x-menu {
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  border: 0;
  padding: clamp(22px, 3vw, 46px);
  margin: 0;
  background: #090a0b;
  color: #fff;
  overflow: auto;
}
.x-menu::backdrop {
  background: #000;
}
.x-menu[open] {
  animation: menuIn 0.46s var(--ease);
}
@keyframes menuIn {
  from {
    clip-path: circle(0 at calc(100% - 55px) 42px);
  }
  to {
    clip-path: circle(150% at calc(100% - 55px) 42px);
  }
}
.menu-noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
      circle at 82% 16%,
      rgba(224, 27, 54, 0.2),
      transparent 29%
    ),
    linear-gradient(120deg, transparent 50%, rgba(255, 255, 255, 0.035));
}
.menu-top {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line-dark);
  padding-bottom: 16px;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.menu-close {
  background: none;
  border: 0;
  color: #fff;
  cursor: pointer;
  padding: 8px 0;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.12em;
}
.menu-primary {
  position: relative;
  z-index: 2;
  padding: 3.4vh 0 3vh;
}
.menu-primary a {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  padding: 3px 0;
  overflow: hidden;
}
.menu-primary em {
  font-size: 12px;
  font-style: normal;
  opacity: 0.5;
}
.menu-primary span {
  font-size: clamp(38px, 5.5vw, 60px);
  line-height: 1.02;
  letter-spacing: -0.055em;
  text-transform: uppercase;
  transition: transform 0.3s var(--ease), color 0.3s var(--ease);
}
.menu-primary a:hover span {
  transform: translateX(1.2vw);
  color: var(--acid);
}
.menu-grid {
  position: relative;
  z-index: 2;
  border-top: 1px solid var(--line-dark);
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr 1fr;
  gap: 34px;
  padding-top: 22px;
}
.menu-grid > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.menu-grid p {
  margin: 0 0 9px;
  opacity: 0.45;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.15em;
}
.menu-grid a,
.menu-grid span {
  font-size: 12px;
  line-height: 1.45;
}
.proof-numbers img.mix-blend {
  max-width: 90%;
}
/* buttons */
.btn,
.pill {
  min-height: 54px;
  border-radius: 999px;
  border: 1px solid var(--ink);
  padding: 0 21px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  background: var(--ink);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  transition: background 0.22s, color 0.22s, border-color 0.22s, transform 0.22s;
}
.btn:hover,
.pill:hover {
  background: var(--red);
  border-color: var(--red);
}
.btn-light,
.pill-light {
  background: #fff;
  color: #111;
  border-color: #fff;
}
.btn-ghost-light {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.55);
}
.btn-lg {
  min-height: 62px;
  padding-inline: 27px;
}
.chip {
  border: 1px solid #111;
  background: transparent;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
}
.chip-solid {
  background: #111;
  color: #fff;
}
a.wiecej,
p.wiecej {
  font-size: 12px;
  text-transform: uppercase;
  border-top: 1px solid #ccc;
  padding-top: 8px;
  margin-top: 13px;
  display: block;
}
/* Home hero — one signature idea: light switches on */
.hero-x {
  position: relative;
  height: 100svh;
  min-height: 650px;
  background: #050607;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #111;
  overflow: hidden;
}
.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  filter: brightness(0.42) saturate(0.8);
  animation: heroPowerOn 1.4s 0.1s cubic-bezier(0.25, 0.6, 0.3, 1) both;
}
.hero-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.82) 0%,
      rgba(0, 0, 0, 0.56) 38%,
      rgba(0, 0, 0, 0.12) 72%
    ),
    linear-gradient(
      0deg,
      rgba(0, 0, 0, 0.82) 0%,
      rgba(0, 0, 0, 0.18) 46%,
      rgba(0, 0, 0, 0.32) 100%
    );
}
.hero-power {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 70% 46%,
    rgba(255, 245, 195, 0.25),
    transparent 28%
  );
  mix-blend-mode: screen;
  opacity: 0;
  animation: heroGlow 1.6s 0.1s ease-out both;
  pointer-events: none;
}
/* Hero entrance: one smooth fade up from dark (no flicker) */
@keyframes heroPowerOn {
  from {
    filter: brightness(0.17) saturate(0.55);
  }
  to {
    filter: brightness(0.68) saturate(0.94);
  }
}
@keyframes heroGlow {
  from {
    opacity: 0;
  }
  to {
    opacity: 0.24;
  }
}
.hero-copy-x {
  position: absolute;
  z-index: 3;
  left: var(--pad);
  bottom: clamp(118px, 15vh, 170px);
  width: min(760px, 62vw);
}
.hero-kicker {
  display: flex;
  gap: 24px;
  margin: 0 0 18px;
  font-size: 12px;
}
.hero-kicker b {
  color: var(--acid);
}
.hero-title {
  font-size: clamp(48px, 6vw, 84px);
  line-height: 0.91;
  letter-spacing: -0.062em;
  margin: 0;
  text-transform: uppercase;
  font-weight: 700;
  text-wrap: balance;
}
.hero-title .line {
  display: block;
}
.hero-title .line-accent {
  font-weight: 400;
  font-style: italic;
  color: #fff;
  margin-left: 0;
}
.hero-sub {
  width: min(620px, 92%);
  margin: 24px 0 0;
  font-size: clamp(16px, 1.18vw, 16px);
  line-height: 1.52;
  color: rgba(255, 255, 255, 0.76);
}
.hero-sub strong {
  color: #fff;
}
.hero-actions-x,
.hero-actions {
  margin-top: 28px;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.hero-cta {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.hero-cta:hover {
  background: #fff;
  border-color: #fff;
  color: #111;
}
.hero-x .text-arrow {
  color: #fff;
}
.hero-proof {
  position: absolute;
  z-index: 4;
  right: var(--pad);
  bottom: 24px;
  display: flex;
  gap: 28px;
  background: rgba(9, 10, 11, 0.42);
  padding: 16px 20px 20px;
}
.hero-proof div {
  border-left: 1px solid rgba(255, 255, 255, 0.34);
  padding-left: 12px;
}
.hero-proof b {
  font-size: 18px;
  display: block;
}
.hero-proof span {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.72;
  max-width: 160px;
}
.scroll-cue {
  position: absolute;
  z-index: 4;
  left: var(--pad);
  bottom: 27px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: 0.11em;
}
.scroll-cue i {
  width: 54px;
  height: 1px;
  background: rgba(255, 255, 255, 0.5);
  position: relative;
  overflow: hidden;
}
.scroll-cue i:after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: translateX(-100%);
  animation: cue 2.4s infinite;
}
@keyframes cue {
  to {
    transform: translateX(100%);
  }
}

/* Home hero slider — wipe-reveal backgrounds, masked line reveal, timed tabs */
.hero-slider {
  --hero-duration: 7s;
  --hero-wipe: cubic-bezier(0.77, 0, 0.18, 1);
}
.hero-slides {
  position: absolute;
  inset: 0;
  filter: brightness(0.68) saturate(0.94);
  animation: heroPowerOn 1.4s 0.1s cubic-bezier(0.25, 0.6, 0.3, 1) both;
}
.hero-slide-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  clip-path: inset(0 0 0 100%);
}
.hero-slider[data-dir="-1"] .hero-slide-bg {
  clip-path: inset(0 100% 0 0);
}
.hero-slide-bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  translate: 14% 0;
  scale: 1.16;
}
.hero-slider[data-dir="-1"] .hero-slide-bg img {
  translate: -14% 0;
}
.hero-slider .hero-slide-bg.is-active {
  z-index: 2;
  clip-path: inset(0 0 0 0);
  transition: clip-path 1.3s var(--hero-wipe);
}
.hero-slider .hero-slide-bg.is-active img {
  translate: 0 0;
  scale: 1.02;
  transition: translate 1.3s var(--hero-wipe), scale 9s cubic-bezier(0.2, 0.6, 0.3, 1);
}
.hero-slider .hero-slide-bg.is-leaving {
  z-index: 1;
  clip-path: inset(0 0 0 0);
}
.hero-slider .hero-slide-bg.is-leaving img {
  translate: 0 0;
  scale: 1.02;
}

/* copy: all slides share one cell, bottom-aligned so longer titles grow upward */
.hero-slider .hero-copy-x {
  display: grid;
  width: min(700px, 60vw);
}
.hero-slide {
  grid-area: 1 / 1;
  align-self: end;
  visibility: hidden;
  pointer-events: none;
}
.hero-slide.is-active,
.hero-slide.is-leaving {
  visibility: visible;
}
.hero-slide.is-active {
  z-index: 2;
  pointer-events: auto;
}
.hero-slider .hero-title {
  font-size: clamp(44px, 5.4vw, 66px);
}
.hero-slider .hero-title .line {
  overflow: hidden;
  padding: 0.1em 0 0.06em;
  margin: -0.1em 0 -0.06em;
}
.hero-slider .hero-title .line > span {
  display: block;
  translate: 0 112%;
}
.hero-slider .hero-title .line-accent {
  color: var(--red);
}
.hero-slide .hero-kicker,
.hero-slide .hero-sub,
.hero-slide .hero-actions-x {
  opacity: 0;
  translate: 0 22px;
}
/* enter */
.hero-slide.is-active .line > span {
  translate: 0 0;
  transition: translate 1s var(--ease) 0.42s;
}
.hero-slide.is-active .line + .line > span {
  transition-delay: 0.54s;
}
.hero-slide.is-active .hero-kicker,
.hero-slide.is-active .hero-sub,
.hero-slide.is-active .hero-actions-x {
  opacity: 1;
  translate: 0 0;
  transition: opacity 0.8s var(--ease) 0.3s, translate 0.8s var(--ease) 0.3s;
}
.hero-slide.is-active .hero-sub {
  transition-delay: 0.72s;
}
.hero-slide.is-active .hero-actions-x {
  transition-delay: 0.84s;
}
/* exit */
.hero-slide.is-leaving .line > span {
  translate: 0 -112%;
  transition: translate 0.55s cubic-bezier(0.6, 0, 0.9, 0.4);
}
.hero-slide.is-leaving .hero-kicker,
.hero-slide.is-leaving .hero-sub,
.hero-slide.is-leaving .hero-actions-x {
  opacity: 0;
  translate: 0 -14px;
  transition: opacity 0.4s ease, translate 0.4s ease;
}
/* first paint: the opening slide animates in without waiting for JS */
.hero-slide.is-first .line > span {
  animation: heroLineIn 1.1s var(--ease) 0.9s both;
}
.hero-slide.is-first .line + .line > span {
  animation-delay: 1.02s;
}
.hero-slide.is-first .hero-kicker,
.hero-slide.is-first .hero-sub,
.hero-slide.is-first .hero-actions-x {
  animation: heroFadeIn 0.9s var(--ease) 0.8s both;
}
.hero-slide.is-first .hero-sub {
  animation-delay: 1.2s;
}
.hero-slide.is-first .hero-actions-x {
  animation-delay: 1.32s;
}
@keyframes heroLineIn {
  from {
    translate: 0 112%;
  }
  to {
    translate: 0 0;
  }
}
@keyframes heroFadeIn {
  from {
    opacity: 0;
    translate: 0 22px;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}

/* navigation: numbered tabs with autoplay progress + arrows */
.hero-nav {
  position: absolute;
  z-index: 4;
  right: var(--pad);
  bottom: clamp(108px, 14vh, 150px);
  width: 250px;
  display: grid;
  gap: 22px;
  padding: 16px 20px 20px;
  background: rgba(9, 10, 11, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  backdrop-filter: blur(14px) saturate(1.2);
  animation: heroFadeIn 0.9s var(--ease) 1.5s both;
}
.hero-tabs {
  display: grid;
  gap: 4px;
}
.hero-tab {
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: baseline;
  gap: 0 8px;
  padding: 10px 0;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.5);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: color 0.3s ease;
}
.hero-tab:hover,
.hero-tab:focus-visible,
.hero-tab.is-active {
  color: #fff;
}
.hero-tab:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
.hero-tab em {
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.hero-tab span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.hero-tab i {
  grid-column: 1 / -1;
  position: relative;
  height: 2px;
  margin-top: 10px;
  background: rgba(255, 255, 255, 0.18);
  overflow: hidden;
}
.hero-tab i:after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--red);
  transform-origin: left;
  transform: scaleX(0);
}
.hero-tab.is-active i:after {
  animation: heroProgress var(--hero-duration) linear forwards;
}
.hero-slider.is-paused .hero-tab.is-active i:after {
  animation-play-state: paused;
}
.hero-slider.is-static .hero-tab.is-active i:after {
  animation: none;
  transform: none;
}
@keyframes heroProgress {
  to {
    transform: scaleX(1);
  }
}
.hero-arrows {
  display: flex;
  gap: 10px;
}
.hero-arrow {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease, scale 0.3s var(--ease);
}
.hero-arrow:hover,
.hero-arrow:focus-visible {
  background: var(--red);
  border-color: var(--red);
  scale: 1.06;
  outline: none;
}

@media (max-width: 1100px) {
  .hero-nav {
    width: 190px;
  }
  .hero-slider .hero-copy-x {
    width: min(760px, 62vw);
  }
}
@media (max-width: 820px) {
  .hero-slider .hero-copy-x {
    width: auto;
  }
  .hero-slider .hero-title {
    font-size: clamp(38px, 9.6vw, 62px);
  }
  .hero-nav {
    top: 96px;
    left: 20px;
    right: 20px;
    width: auto;
    translate: none;
    padding: 0;
    background: none;
    border: 0;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .hero-tabs {
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
  }
  .hero-tab {
    padding: 6px 0;
  }
  .hero-tab span,
  .hero-arrows {
    display: none;
  }
  .hero-tab i {
    margin-top: 6px;
  }
  .hero-slide-bg img {
    object-position: 58% center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slides,
  .hero-nav,
  .hero-slide.is-first .line > span,
  .hero-slide.is-first .hero-kicker,
  .hero-slide.is-first .hero-sub,
  .hero-slide.is-first .hero-actions-x {
    animation: none;
  }
  .hero-slide-bg img,
  .hero-slider .hero-slide-bg.is-active img {
    translate: none;
    scale: none;
  }
}

/* Home sections */
.section-x {
  padding: var(--section) var(--pad);
  max-width: var(--max);
  margin-inline: auto;
}
.manifesto-x {
  position: relative;
  padding-top: clamp(100px, 12vw, 175px);
  padding-bottom: clamp(90px, 10vw, 150px);
}
.manifesto-x .section-index {
  position: absolute;
  top: 70px;
  left: var(--pad);
}
.manifesto-copy {
  font-size: clamp(28px, 3.3vw, 50px);
  line-height: 1.06;
  letter-spacing: -0.048em;
  max-width: 1220px;
  margin: 0;
}
.manifesto-copy strong {
  font-weight: 700;
}
.manifesto-meta {
  margin-top: 48px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.section-head-x {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 42px;
  margin-bottom: 58px;
}
.section-head-x h2 {
  font-size: clamp(36px, 4.25vw, 64px);
  line-height: 0.88;
  letter-spacing: -0.065em;
  margin: 12px 0 0;
  text-transform: uppercase;
}
.section-head-x h2 i {
  font-weight: 450;
}
.section-head-x > p {
  /* width: 320px; */
  font-size: 14px;
  margin: 0 0 4px;
  color: var(--muted);
}
.services-stage {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(30px, 5vw, 82px);
  align-items: start;
}
.service-preview {
  position: sticky;
  top: 105px;
  height: min(70vh, 680px);
  min-height: 480px;
  overflow: hidden;
  background: #d9d5cc;
  transform-style: preserve-3d;
}
.service-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.18s, transform 0.6s var(--ease);
}
.service-preview.changing img {
  opacity: 0.25;
  transform: scale(1.02);
}
.preview-code {
  position: absolute;
  left: 16px;
  bottom: 14px;
  background: rgba(10, 10, 10, 0.85);
  color: #fff;
  padding: 9px 12px;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.service-list a {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) minmax(160px, 0.55fr) 25px;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
  transition: padding 0.25s var(--ease), background 0.25s;
}
.service-list a:hover {
  padding-left: 10px;
  padding-right: 8px;
}
.service-list em {
  font-size: 12px;
  font-style: normal;
  color: var(--muted);
}
.service-list strong {
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -0.035em;
}
.service-list span {
  font-size: 13px;
  color: var(--muted);
}
.service-list b {
  font-size: 17px;
}
.lab-x {
  display: grid;
  grid-template-columns: 0.58fr 1.42fr;
  gap: clamp(50px, 7vw, 110px);
  max-width: none;
  background: #090a0b;
  color: #fff;
  padding-left: var(--pad);
  padding-right: var(--pad);
}
.lab-sticky {
  position: sticky;
  top: 105px;
  align-self: start;
  max-width: 520px;
}
.lab-sticky h2 {
  font-size: clamp(36px, 4.25vw, 64px);
  line-height: 0.9;
  letter-spacing: -0.06em;
  text-transform: uppercase;
  margin: 13px 0 25px;
}
.lab-sticky h2 i {
  font-weight: 420;
  color: var(--acid);
}
.lab-sticky p {
  color: rgba(255, 255, 255, 0.62);
  max-width: 460px;
}
.lab-sticky .pill {
  margin-top: 22px;
}
.lab-stack {
  display: grid;
  gap: 70px;
  grid-template-columns: 1fr 1fr;
}
.lab-card {
  min-height: 560px;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  padding-top: 17px;
  transform-style: preserve-3d;
}
.lab-card > span {
  font-size: 12px;
  letter-spacing: 0.14em;
  opacity: 0.5;
}
.lab-card figure {
  margin: 17px 0 22px;
  height: 380px;
  overflow: hidden;
  background: #222;
}
.lab-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lab-card > div {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 28px;
}
.lab-card h3 {
  margin: 0;
  font-size: clamp(30px, 3.5vw, 52px);
  letter-spacing: -0.05em;
}
.lab-card p {
  margin: 4px 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14px;
}
.lab-card b {
  justify-self: end;
  align-self: end;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--acid);
}
.work-grid {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: clamp(20px, 3vw, 42px);
  align-items: start;
}
.work-card {
  display: block;
}
.work-card figure {
  margin: 0;
  overflow: hidden;
  background: #ddd;
  position: relative;
}
.work-card figure:after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(0, 0, 0, 0.06);
  pointer-events: none;
}
.work-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}
.work-card:hover img {
  transform: scale(1.025);
}
.work-card h3 {
  font-size: clamp(22px, 2.4vw, 34px);
  letter-spacing: -0.04em;
  margin: 13px 0 2px;
}
.work-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.work-a figure {
  height: 680px;
}
.work-b figure,
.work-c figure,
.work-d figure {
  height: 360px;
}
.work-c,
.work-d {
  margin-top: 52px;
}
.proof-x {
  background: var(--paper-2);
  max-width: none;
}
.proof-marquee {
  overflow: hidden;
  border-block: 1px solid var(--line);
  padding: 16px 0;
  margin-bottom: 70px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.proof-grid-x {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(40px, 6vw, 95px);
  max-width: var(--max);
  margin-inline: auto;
}
.proof-quote blockquote {
  font-size: clamp(28px, 3.5vw, 52px);
  line-height: 1.08;
  letter-spacing: -0.045em;
  margin: 0;
}
.proof-quote p {
  color: var(--muted);
  max-width: 500px;
}
.proof-numbers {
  border-top: 1px solid var(--ink);
}
.proof-numbers > div {
  display: grid;
  grid-template-columns: 0.55fr 1.85fr;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  padding: 23px 0;
}
.proof-numbers strong {
  font-size: clamp(28px, 3.4vw, 46px);
  letter-spacing: -0.05em;
}
.proof-numbers span {
  font-size: 12px;
  color: var(--muted);
  align-self: center;
}
.process-x {
  padding-top: 0;
}
.process-track {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
}
.process-track article {
  min-height: 270px;
  border-right: 1px solid var(--line);
  padding: 22px 24px 25px 0;
}
.process-track article + article {
  padding-left: 24px;
}
.process-track article:last-child {
  border-right: 0;
}
.process-track span {
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--muted);
}
.process-track h3 {
  font-size: 24px;
  margin: 78px 0 8px;
}
.process-track p {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}

/* generic inner page hero */
.page-hero,
.case-hero {
  padding: clamp(128px, 13vw, 190px) var(--pad) clamp(62px, 7vw, 108px);
  background: var(--paper);
  min-height: 540px;
  display: flex;
  align-items: flex-end;
}
.page-hero.compact {
  min-height: 430px;
  padding-bottom: 70px;
}
.dark-section {
  background: #090a0b;
  color: #fff;
}
.dark-section .lead {
  color: rgba(255, 255, 255, 0.62);
}
.page-hero .container,
.case-hero .container {
  width: min(var(--max), 100%);
  margin: 0 auto;
}
.page-hero-grid {
  display: grid;
  grid-template-columns: 1.03fr 0.97fr;
  gap: clamp(42px, 6vw, 96px);
  align-items: end;
  width: 100%;
}
.page-hero h1,
.case-hero h1 {
  font-size: clamp(40px, 4.8vw, 66px);
  line-height: 0.94;
  letter-spacing: -0.062em;
  margin: 10px 0 18px;
  max-width: 1050px;
}
.page-hero h1 span,
.case-hero h1 span {
  font-weight: 430;
  color: var(--red);
}
.page-hero-media {
  height: min(58vh, 620px);
  min-height: 410px;
  overflow: hidden;
  background: #222;
}
.page-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page-hero .hero-actions,
.case-hero .hero-actions {
  margin-top: 26px;
}

/* generic sections */
.section {
  padding: var(--section) var(--pad);
}
.section > .container {
  width: min(var(--max), 100%);
}
.section-soft {
  background: var(--paper-2);
}
.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 48px;
}
.section-head h2,
.section h2 {
  font-size: clamp(32px, 3.6vw, 40px);
  line-height: 0.98;
  letter-spacing: -0.052em;
  margin: 7px 0 20px;
}
.section-head p {
  max-width: 480px;
  margin: 0;
  color: var(--muted);
}
.prose-grid {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: clamp(38px, 7vw, 110px);
  align-items: start;
}
.prose {
  max-width: 600px;
}
.prose p {
  font-size: 17px;
  color: #313237;
  margin-top: 0;
}
.prose p + p {
  margin-top: 18px;
}
.prose h2,
.prose h3 {
  margin-top: 0;
}
.split-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(38px, 6vw, 92px);
  align-items: center;
}
.feature-media {
  min-height: 560px;
  overflow: hidden;
  background: #d8d3c8;
}
.feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.feature-copy h2 {
  margin-top: 0;
}
.feature-copy p {
  color: var(--muted);
}
.tick-list,
.check-grid {
  display: grid;
  gap: 0;
  margin: 28px 0;
}
.tick-list.two-col,
.check-grid {
  grid-template-columns: 1fr 1fr;
  column-gap: 32px;
}
.tick-list span,
.check-grid span,
.check {
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
  font-size: 13px;
}
.tick-list span:before,
.check-grid span:before,
.check:before {
  content: "↗";
  margin-right: 9px;
  color: var(--red);
  font-weight: 700;
}

/* cards and grids */
.service-grid,
.cards-3,
.cards-4,
.product-grid,
.machine-grid,
.package-grid,
.combo-grid {
  display: grid;
  gap: 18px;
}
.service-grid,
.cards-3,
.product-grid,
.machine-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.cards-4,
.package-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.combo-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.service-card,
.info-card,
.product-card,
.machine,
.package-grid > article,
.combo-grid > article {
  background: #fff;
  overflow: hidden;
  min-width: 0;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.service-card:hover,
.product-card:hover,
.machine:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.08);
}
.service-img,
.product-card figure,
.machine figure {
  height: 280px;
  margin: 0;
  overflow: hidden;
  background: #ddd;
}
.service-img img,
.product-card figure img,
.machine figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease);
}
.service-card:hover img,
.product-card:hover img,
.machine:hover img {
  transform: scale(1.03);
}
.service-body,
.product-card > div,
.machine > div,
.info-card,
.package-grid > article,
.combo-grid > article {
  padding: 21px;
}
.service-body h3,
.product-card h3,
.machine h3,
.info-card h3,
.package-grid h3,
.combo-grid h3 {
  font-size: 23px;
  line-height: 1.05;
  letter-spacing: -0.035em;
  margin: 3px 0 10px;
}
.service-body p,
.product-card p,
.machine p,
.info-card p,
.package-grid p,
.combo-grid p {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}
.product-card .text-link {
  margin-top: 18px;
}
.numbers {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
}
.numbers > div {
  padding: 25px 20px 25px 0;
  border-right: 1px solid var(--line);
}
.numbers > div + div {
  padding-left: 20px;
}
.numbers > div:last-child {
  border-right: 0;
}
.numbers strong {
  display: block;
  font-size: clamp(32px, 4vw, 58px);
  letter-spacing: -0.055em;
}
.numbers span {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}

/* steps */
.steps-line {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--ink);
}
.steps-line article {
  min-height: 190px;
  border-right: 1px solid var(--line);
  padding: 20px 18px 20px 0;
}
.steps-line article + article {
  padding-left: 18px;
}
.steps-line article:last-child {
  border-right: 0;
}
.steps-line span {
  font-size: 12px;
  color: var(--muted);
  letter-spacing: 0.12em;
}
.steps-line h3 {
  font-size: 19px;
  line-height: 1.15;
  margin: 52px 0 0;
}
.process-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}
.process-grid article {
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  padding: 22px 20px 36px 0;
}
.process-grid h3 {
  font-size: 24px;
}
.process-grid p {
  color: rgba(255, 255, 255, 0.62);
}

/* gallery */
.gallery-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.85fr;
  gap: 16px;
}
.gallery-item {
  margin: 0;
  overflow: hidden;
  min-height: 330px;
  background: #ddd;
}
.gallery-item:first-child {
  grid-row: span 2;
  min-height: 690px;
}
.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}
.gallery-item:hover img {
  transform: scale(1.025);
}
/* lightbox trigger on gallery tiles */
.gallery-item.lb-trigger {
  position: relative;
  cursor: zoom-in;
}
.gallery-item.lb-trigger:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(9, 10, 11, 0.55), rgba(9, 10, 11, 0) 55%);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
}
.gallery-item.lb-trigger:after {
  content: "⤢";
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 18px;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--red);
  color: #fff;
  font-size: 20px;
  opacity: 0;
  scale: 0.6;
  transition: opacity 0.35s var(--ease), scale 0.45s var(--ease);
}
.gallery-item.lb-trigger:hover:before,
.gallery-item.lb-trigger:focus-visible:before {
  opacity: 1;
}
.gallery-item.lb-trigger:hover:after,
.gallery-item.lb-trigger:focus-visible:after {
  opacity: 1;
  scale: 1;
}
.gallery-item.lb-trigger:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}

/* lightbox */
.lb {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(6, 7, 8, 0.94);
  color: #fff;
  overflow: hidden;
}
.lb[open] {
  display: grid;
  grid-template-rows: auto 1fr auto;
}
.lb::backdrop {
  background: transparent;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.lb-top {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 18px var(--pad);
}
.lb-count {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.5);
}
.lb-count b {
  font-size: 22px;
  letter-spacing: -0.02em;
  color: #fff;
}
.lb-caption {
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lb-close,
.lb-nav {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease, scale 0.3s var(--ease);
}
.lb-close {
  font-size: 28px;
}
.lb-close:hover,
.lb-nav:hover,
.lb-close:focus-visible,
.lb-nav:focus-visible {
  background: var(--red);
  border-color: var(--red);
  scale: 1.06;
  outline: none;
}
.lb-stage {
  position: relative;
  min-height: 0;
  display: grid;
  place-items: center;
  padding: 0 clamp(16px, 7vw, 110px);
  overflow: hidden;
}
.lb-img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 40px 120px rgba(0, 0, 0, 0.6);
  cursor: zoom-in;
  transition: scale 0.45s var(--ease);
  user-select: none;
  -webkit-user-drag: none;
}
.lb-img.is-zoomed {
  scale: 2.2;
  cursor: zoom-out;
}
.lb-nav {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  z-index: 2;
}
.lb-prev {
  left: var(--pad);
}
.lb-next {
  right: var(--pad);
}
.lb-thumbs {
  display: flex;
  gap: 8px;
  padding: 16px var(--pad) 20px;
  overflow-x: auto;
  justify-content: safe center;
  scrollbar-width: none;
}
.lb-thumbs::-webkit-scrollbar {
  display: none;
}
.lb-thumbs button {
  flex: 0 0 auto;
  width: 76px;
  height: 54px;
  padding: 0;
  border: 0;
  background: #222;
  opacity: 0.4;
  cursor: pointer;
  outline: 2px solid transparent;
  outline-offset: 2px;
  transition: opacity 0.3s ease, outline-color 0.3s ease;
}
.lb-thumbs button:hover {
  opacity: 0.8;
}
.lb-thumbs button.is-active {
  opacity: 1;
  outline-color: var(--red);
}
.lb-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lb.is-single .lb-nav,
.lb.is-single .lb-thumbs {
  display: none;
}
@media (max-width: 820px) {
  .lb-top {
    gap: 14px;
    padding: 12px 16px;
  }
  .lb-caption {
    visibility: hidden;
  }
  .lb-close,
  .lb-nav {
    width: 44px;
    height: 44px;
    font-size: 17px;
  }
  .lb-stage {
    padding: 0 8px;
  }
  .lb-prev {
    left: 10px;
  }
  .lb-next {
    right: 10px;
  }
  .lb-nav {
    background: rgba(9, 10, 11, 0.5);
  }
  .lb-thumbs button {
    width: 58px;
    height: 42px;
  }
}

/* case galleries: dense 3-col mosaic, tiles sized by photo orientation */
.gallery-grid.gallery-grid--case {
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: clamp(220px, 21vw, 320px);
  grid-auto-flow: dense;
}
.gallery-grid--case .gallery-item,
.gallery-grid--case .gallery-item:first-child {
  min-height: 0;
  grid-row: auto;
}
.gallery-grid--case .gallery-item:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.gallery-grid--case .gallery-item.is-tall {
  grid-row: span 2;
}
.gallery-grid--case .gallery-item.is-wide {
  grid-column: span 2;
}
@media (max-width: 820px) {
  .gallery-grid.gallery-grid--case {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 42vw;
  }
}
@media (max-width: 560px) {
  .gallery-grid.gallery-grid--case {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }
  .gallery-grid--case .gallery-item,
  .gallery-grid--case .gallery-item:first-child,
  .gallery-grid--case .gallery-item.is-tall,
  .gallery-grid--case .gallery-item.is-wide {
    grid-column: auto;
    grid-row: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .gallery-grid--case .gallery-item.is-tall {
    aspect-ratio: 3 / 4;
  }
}
.gallery-vehicles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.gallery-vehicles figure {
  margin: 0;
  min-height: 380px;
  overflow: hidden;
  background: #ddd;
}
.gallery-vehicles img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.case-image {
  margin: 0;
  overflow: hidden;
  background: #ddd;
  min-height: 560px;
}
.case-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* FAQ */
.faq-section {
  border-top: 1px solid var(--line);
}
.faq {
  border-top: 1px solid var(--ink);
  padding: 20px 0;
}
.faq:last-child {
  border-bottom: 1px solid var(--ink);
}
.faq summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-size: 18px;
  font-weight: 700;
  list-style: none;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary span {
  transition: transform 0.2s;
}
.faq p {
  max-width: 760px;
  color: var(--muted);
  font-size: 14px;
}
.faq[open] summary span {
  transform: rotate(45deg);
}

/* mini CTA */
.mini-cta {
  padding: clamp(28px, 4vw, 58px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 36px;
}
.mini-cta h2 {
  margin: 0;
  max-width: 700px;
}
.mini-cta p {
  color: var(--muted);
  max-width: 580px;
}

/* Portfolio */
.portfolio-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--ink);
}
.portfolio-row {
  display: grid;
  grid-template-columns: minmax(260px, 0.78fr) 1.22fr;
  gap: clamp(24px, 5vw, 75px);
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  position: relative;
  isolation: isolate;
}
.portfolio-row > div:first-child {
  height: 340px;
  overflow: hidden;
  background: #ddd;
}
.portfolio-row img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease), filter 0.4s;
}
.portfolio-row:hover img {
  transform: scale(1.035);
  filter: saturate(1.08);
}
.portfolio-row span {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.portfolio-row h2 {
  font-size: clamp(34px, 4.5vw, 66px);
  margin: 6px 0 30px;
  letter-spacing: -0.055em;
}
.portfolio-row b {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.portfolio-bento {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 16px;
}
.portfolio-card {
  position: relative;
  min-height: 390px;
  overflow: hidden;
  background: #222;
}
.portfolio-card.large {
  grid-row: span 2;
  min-height: 790px;
}
.portfolio-card.wide {
  grid-column: 1/3;
}
.portfolio-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}
.portfolio-card:hover img {
  transform: scale(1.025);
}
.portfolio-card:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 52%, rgba(0, 0, 0, 0.82));
}
.portfolio-card > div {
  position: absolute;
  z-index: 2;
  left: 22px;
  right: 22px;
  bottom: 22px;
  color: #fff;
}
.portfolio-card h3 {
  font-size: 30px;
  margin: 4px 0;
}
.portfolio-card p {
  font-size: 12px;
  opacity: 0.75;
  margin: 0;
}
.portfolio-toolbar {
  position: sticky;
  top: 78px;
  z-index: 40;
  background: rgba(243, 240, 233, 0.93);
  backdrop-filter: blur(12px);
  border-block: 1px solid var(--line);
}
.portfolio-toolbar .container {
  display: flex;
  gap: 8px;
  overflow: auto;
  padding-block: 12px;
  scrollbar-width: none;
}
.portfolio-toolbar .container::-webkit-scrollbar {
  display: none;
}
.portfolio-filter {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  background: transparent;
  border-radius: 999px;
  padding: 9px 13px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
}
.portfolio-filter.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.project-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 18px;
}
.project-tile {
  grid-column: span 6;
  display: block;
}
.project-tile:nth-child(3n + 1) {
  grid-column: span 7;
}
.project-tile:nth-child(3n + 2) {
  grid-column: span 5;
}
.project-tile figure {
  margin: 0;
  height: 430px;
  overflow: hidden;
  background: #ddd;
  position: relative;
}
.project-tile:nth-child(3n + 1) figure {
  height: 570px;
}
.project-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}
.project-tile:hover img {
  transform: scale(1.028);
}
.project-tile .meta {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 0 30px;
  border-bottom: 1px solid var(--line);
}
.project-tile h2 {
  font-size: clamp(24px, 2.5vw, 36px);
  margin: 0;
}
.project-tile p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.project-tile .arrow {
  font-size: 20px;
}
.project-tile[hidden] {
  display: none;
}

/* Case studies */
.case-hero {
  min-height: 500px;
}
.case-hero .container {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 70px;
  align-items: end;
}
.case-hero .eyebrow {
  color: rgba(255, 255, 255, 0.6);
}
.case-hero p {
  max-width: 640px;
  color: rgba(255, 255, 255, 0.65);
}
.case-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  margin-top: 30px;
}
.case-facts div {
  padding: 16px 16px 0 0;
}
.case-facts div + div {
  padding-left: 16px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}
.case-facts strong {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.case-facts span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.58);
}

/* Full-bleed cover hero (case-hero--cover / page-hero--cover) */
.case-hero.case-hero--cover,
.page-hero.page-hero--cover {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: min(100svh, 980px);
  padding-bottom: clamp(70px, 8vw, 120px);
}
.case-hero--cover .container,
.page-hero--cover .container {
  display: block;
}
/* container stays unpositioned so the photo layer anchors to the section */
.case-hero--cover .case-hero-copy,
.page-hero--cover .page-hero-grid > :first-child {
  position: relative;
  z-index: 3;
  max-width: 820px;
}
.case-hero--cover h1,
.page-hero--cover h1 {
  font-size: clamp(48px, 7.4vw, 78px);
  text-shadow: 0 10px 50px rgba(0, 0, 0, 0.35);
}
.case-hero--cover p,
.page-hero--cover p,
.page-hero--cover .lead {
  color: rgba(255, 255, 255, 0.78);
}
.case-hero--cover .eyebrow,
.page-hero--cover .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.82);
}
.case-hero--cover .eyebrow:before,
.page-hero--cover .eyebrow:before {
  content: "";
  width: 34px;
  height: 2px;
  background: var(--red);
}
.case-hero--cover .case-facts {
  max-width: 760px;
  padding: 0 22px 18px;
  background: rgba(9, 10, 11, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-top: 2px solid var(--red);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  backdrop-filter: blur(14px) saturate(1.2);
}
.case-hero--cover .case-facts span {
  color: rgba(255, 255, 255, 0.72);
}
/* default dark button disappears on the photo — make the primary CTA red */
.page-hero--cover .btn:not(.btn-ghost-light):not(.btn-light) {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.page-hero--cover .btn:not(.btn-ghost-light):not(.btn-light):hover {
  background: #fff;
  border-color: #fff;
  color: var(--ink);
}
.page-hero--cover .btn-ghost-light {
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.06);
}
/* the hero runs its own entrance, so neutralise the generic scroll reveal */
.page-hero--cover .reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

/* photo layer: settle-in zoom (scale/filter) + scroll parallax (translate) */
.case-hero--cover .case-image,
.page-hero--cover .page-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  height: auto;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #090a0b;
}
.case-hero--cover .case-image img,
.page-hero--cover .page-hero-media img {
  position: absolute;
  inset: -8% 0;
  width: 100%;
  height: 116%;
  object-fit: cover;
  object-position: center 40%;
  animation: coverIn 2.4s var(--ease) both;
}
@supports (animation-timeline: view()) {
  .case-hero--cover .case-image img,
  .page-hero--cover .page-hero-media img {
    animation: coverIn 2.4s var(--ease) both, coverParallax linear both;
    animation-timeline: auto, view();
    animation-range: normal, exit;
  }
}
/* legibility gradients + vignette + film grain */
.case-hero--cover:before,
.case-hero--cover:after,
.page-hero--cover:before,
.page-hero--cover:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.case-hero--cover:before,
.page-hero--cover:before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(9, 10, 11, 0.94) 0%, rgba(9, 10, 11, 0.84) 36%, rgba(9, 10, 11, 0.45) 62%, rgba(9, 10, 11, 0.1) 100%),
    linear-gradient(0deg, #090a0b 0%, rgba(9, 10, 11, 0.55) 26%, rgba(9, 10, 11, 0) 55%),
    linear-gradient(180deg, rgba(9, 10, 11, 0.6) 0%, rgba(9, 10, 11, 0) 22%),
    radial-gradient(120% 90% at 70% 40%, transparent 50%, rgba(0, 0, 0, 0.55) 100%);
}
.case-hero--cover:after,
.page-hero--cover:after {
  z-index: 2;
  opacity: 0.09;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* staggered copy entrance */
.case-hero--cover .case-hero-copy > *,
.page-hero--cover .page-hero-grid > :first-child > * {
  animation: coverCopyIn 1s var(--ease) both;
}
.case-hero--cover .case-hero-copy > :nth-child(1),
.page-hero--cover .page-hero-grid > :first-child > :nth-child(1) { animation-delay: 0.35s; }
.case-hero--cover .case-hero-copy > :nth-child(2),
.page-hero--cover .page-hero-grid > :first-child > :nth-child(2) { animation-delay: 0.45s; }
.case-hero--cover .case-hero-copy > :nth-child(3),
.page-hero--cover .page-hero-grid > :first-child > :nth-child(3) { animation-delay: 0.55s; }
.case-hero--cover .case-hero-copy > :nth-child(4),
.page-hero--cover .page-hero-grid > :first-child > :nth-child(4) { animation-delay: 0.7s; }
.case-hero--cover .case-hero-copy > :nth-child(5),
.page-hero--cover .page-hero-grid > :first-child > :nth-child(5) { animation-delay: 0.85s; }

/* scroll cue */
.hero-scroll-cue {
  position: absolute;
  right: var(--pad);
  bottom: clamp(70px, 8vw, 120px);
  z-index: 3;
  writing-mode: vertical-rl;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  gap: 14px;
  animation: coverCopyIn 1s 1.1s var(--ease) both;
}
.hero-scroll-cue:after {
  content: "";
  width: 1px;
  height: 64px;
  background: linear-gradient(180deg, var(--red) 0 40%, rgba(255, 255, 255, 0.25) 40%);
  background-size: 100% 200%;
  animation: coverScrollLine 2.2s ease-in-out infinite;
}

@keyframes coverIn {
  from {
    scale: 1.14;
    filter: brightness(0.35) blur(6px);
  }
  to {
    scale: 1;
    filter: none;
  }
}
@keyframes coverParallax {
  to {
    translate: 0 12%;
  }
}
@keyframes coverCopyIn {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes coverScrollLine {
  from { background-position: 0 100%; }
  to { background-position: 0 -100%; }
}

@media (max-width: 820px) {
  .case-hero.case-hero--cover,
  .page-hero.page-hero--cover {
    min-height: 92svh;
    padding-bottom: 56px;
  }
  .case-hero--cover:before,
  .page-hero--cover:before {
    background:
      linear-gradient(0deg, #090a0b 0%, rgba(9, 10, 11, 0.82) 45%, rgba(9, 10, 11, 0.25) 75%, rgba(9, 10, 11, 0.55) 100%);
  }
  .case-hero--cover .case-image img,
  .page-hero--cover .page-hero-media img {
    object-position: 65% center;
  }
  .case-hero--cover .case-facts {
    padding: 0 16px 14px;
  }
  .hero-scroll-cue {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .case-hero--cover .case-image img,
  .page-hero--cover .page-hero-media img,
  .case-hero--cover .case-hero-copy > *,
  .page-hero--cover .page-hero-grid > :first-child > *,
  .hero-scroll-cue,
  .hero-scroll-cue:after {
    animation: none;
  }
}

/* contact */
.contact-grid {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(45px, 7vw, 100px);
  align-items: start;
}
.contact-info h2 {
  margin-top: 0;
}
.contact-cards {
  display: grid;
  gap: 0;
  margin-top: 28px;
  border-top: 1px solid var(--ink);
}
.contact-cards a,
.contact-cards div {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.contact-cards span:first-child {
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--muted);
}
.quote-form {
  background: #fff;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--line);
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.field.full {
  grid-column: 1/3;
}
.field label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 700;
}
.field input,
.field textarea,
.field select {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #aaa;
  padding: 12px 0;
  outline: none;
  border-radius: 0;
}
.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--red);
}
.field [aria-invalid="true"] {
  border-color: var(--red);
}
.form-note {
  font-size: 12px;
  color: var(--muted);
  margin: 16px 0 0;
}
.honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.map-section {
  min-height: 460px;
  background: #d8d4cb;
  position: relative;
}
.map-section iframe {
  width: 100%;
  height: 460px;
  border: 0;
  display: block;
}

/* Local SEO pages */
.local-hero {
  position: relative;
  overflow: hidden;
}
.local-hero:before {
  content: "";
  position: absolute;
  inset: auto -12vw -32vw auto;
  width: 62vw;
  height: 62vw;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 50%;
}
.local-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 20px;
}
.local-meta span {
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  padding: 8px 10px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.local-services {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--ink);
}
.local-services a {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.local-services a:nth-child(odd) {
  padding-right: 28px;
}
.local-services a:nth-child(even) {
  padding-left: 28px;
  border-left: 1px solid var(--line);
}
.local-services small {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  font-weight: 700;
}
.local-proof {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 70px;
  align-items: start;
}
.local-proof aside {
  position: sticky;
  top: 110px;
}
.local-proof aside h2 {
  margin-top: 0;
}
.local-proof article {
  padding: 28px 0;
  border-top: 1px solid var(--line);
}
.local-proof article:first-child {
  border-top: 1px solid var(--ink);
}
.local-proof h3 {
  font-size: 26px;
  margin: 0 0 8px;
}
.local-proof p {
  color: var(--muted);
  font-size: 14px;
  margin: 0;
}
.area-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.area-card {
  border: 1px solid var(--line);
  background: #fff;
  padding: 22px;
  min-height: 180px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.area-card strong {
  font-size: 25px;
  letter-spacing: -0.035em;
}
.area-card span {
  font-size: 12px;
  color: var(--muted);
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-bottom: 20px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: rgba(255, 255, 255, 0.58);
}
.breadcrumbs a {
  color: #fff;
}
.breadcrumbs i {
  font-style: normal;
  opacity: 0.45;
}

/* footer */
.x-footer {
  position: relative;
  background: #090a0b;
  color: #fff;
  padding: clamp(90px, 10vw, 150px) var(--pad) 24px;
  overflow: hidden;
}
.footer-orbit {
  position: absolute;
  right: -3vw;
  top: -7vw;
  width: 40vw;
  height: 40vw;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 50%;
  display: grid;
  place-items: center;
}
.footer-orbit:before,
.footer-orbit:after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 50%;
  inset: 13%;
  transform: rotate(45deg);
}
.footer-orbit:after {
  inset: 27%;
  transform: rotate(-25deg);
}
.footer-orbit span {
  font-size: 10vw;
  font-weight: 700;
  letter-spacing: -0.08em;
  color: rgba(255, 255, 255, 0.03);
  opacity: 0.1;
}
.footer-main {
  position: relative;
  z-index: 2;
  max-width: var(--max);
  margin: auto;
}
.footer-main h2 {
  font-size: clamp(42px, 5.5vw, 65px);
  line-height: 0.86;
  letter-spacing: -0.065em;
  text-transform: uppercase;
  margin: 20px 0 48px;
}
.footer-main h2 i {
  font-weight: 420;
  color: var(--acid);
}
.giant-link {
  display: inline-flex;
  align-items: center;
  gap: 48px;
  border-bottom: 2px solid #fff;
  padding-bottom: 7px;
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: 600;
}
.footer-meta {
  position: relative;
  z-index: 2;
  max-width: var(--max);
  margin: 95px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  display: grid;
  grid-template-columns: 1.25fr repeat(4, 1fr);
  gap: 30px;
}
.footer-meta > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  font-size: 12px;
}
.footer-meta img {
  width: 200px;
}
.footer-meta p {
  margin: 0 0 7px;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.13em;
}
.footer-meta > div:first-child p {
  text-transform: none;
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.5;
  margin-top: 10px;
}
.footer-bottom {
  max-width: var(--max);
  margin: 52px auto 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* reveal */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.68s var(--ease), transform 0.68s var(--ease);
}
.reveal.visible {
  opacity: 1;
  transform: none;
}
@supports (animation-timeline: view()) {
  .split-reveal,
  .section-head-x h2,
  .lab-card,
  .work-card {
    animation: rise linear both;
    animation-timeline: view();
    animation-range: entry 8% cover 30%;
  }
  @keyframes rise {
    from {
      opacity: 0.2;
      transform: translateY(45px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* view transitions */
@view-transition {
  navigation: auto;
}
::view-transition-old(root) {
  animation: 0.28s cubic-bezier(0.65, 0, 0.35, 1) both vtOut;
}
::view-transition-new(root) {
  animation: 0.46s cubic-bezier(0.22, 1, 0.36, 1) both vtIn;
}
@keyframes vtOut {
  to {
    opacity: 0.3;
    transform: scale(0.99);
  }
}
@keyframes vtIn {
  from {
    opacity: 0;
    clip-path: inset(0 0 100% 0);
  }
  to {
    opacity: 1;
    clip-path: inset(0);
  }
}

/* responsive */

@media (max-width: 1100px) {
  .x-header {
    grid-template-columns: 150px 1fr auto;
    height: 72px;
  }
  .x-header-proof,
  .x-quote-link {
    display: none;
  }
  .x-logo {
    width: 145px;
  }
  .hero-copy-x {
    width: min(700px, 64vw);
  }
  .hero-proof {
    gap: 16px;
  }
  .menu-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .menu-grid > div:first-child {
    grid-column: span 1;
  }
  .service-list a {
    grid-template-columns: 36px 1fr 24px;
  }
  .service-list span {
    display: none;
  }
  .lab-x {
    grid-template-columns: 1fr;
  }
  .lab-sticky {
    position: relative;
    top: auto;
    max-width: 760px;
  }
  .lab-stack {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }
  .lab-card {
    min-height: auto;
  }
  .lab-card figure {
    height: 320px;
  }
  .service-grid,
  .cards-3,
  .product-grid,
  .machine-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .cards-4,
  .package-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .footer-meta {
    grid-template-columns: 1.2fr 1fr 1fr;
  }
  .footer-meta > div:nth-child(4),
  .footer-meta > div:nth-child(5) {
    margin-top: 10px;
  }
  .area-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 820px) {
  :root {
    --section: 76px;
  }
  .hero-x {
    min-height: 670px;
  }
  .hero-copy-x {
    left: 20px;
    right: 20px;
    bottom: 18vh;
    width: auto;
  }
  .hero-title {
    font-size: clamp(50px, 11.8vw, 80px);
  }
  .hero-title .line-accent {
    margin-left: 2vw;
  }
  .hero-sub {
    width: min(520px, 84%);
    font-size: 15px;
  }
  .hero-proof {
    right: 20px;
    left: 20px;
    justify-content: flex-end;
  }
  .scroll-cue {
    display: none;
  }
  .section-x {
    padding-left: 20px;
    padding-right: 20px;
  }
  .manifesto-x .section-index {
    left: 20px;
  }
  .manifesto-copy {
    font-size: clamp(30px, 7vw, 48px);
  }
  .section-head-x {
    align-items: flex-start;
    flex-direction: column;
    margin-bottom: 42px;
  }
  .section-head-x > p {
    width: auto;
  }
  .section-head-x h2 {
    font-size: clamp(36px, 8.5vw, 58px);
  }
  .services-stage {
    grid-template-columns: 1fr;
  }
  .service-preview {
    position: relative;
    top: auto;
    height: 50vh;
    min-height: 390px;
  }
  .lab-stack {
    grid-template-columns: 1fr;
  }
  .lab-card figure {
    height: 380px;
  }
  .work-grid {
    grid-template-columns: 1fr 1fr;
  }
  .work-a figure,
  .work-b figure,
  .work-c figure,
  .work-d figure {
    height: 46vh;
  }
  .work-c,
  .work-d {
    margin-top: 0;
  }
  .proof-grid-x {
    grid-template-columns: 1fr;
  }
  .process-track {
    grid-template-columns: 1fr 1fr;
  }
  .page-hero-grid,
  .case-hero .container,
  .prose-grid,
  .split-feature,
  .contact-grid,
  .local-proof {
    grid-template-columns: 1fr;
  }
  .page-hero-media {
    height: 46vh;
  }
  .case-hero {
    min-height: auto;
  }
  .case-hero .container {
    gap: 30px;
  }
  .steps-line {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-item:first-child {
    min-height: 580px;
  }
  .portfolio-row {
    grid-template-columns: 0.9fr 1.1fr;
  }
  .portfolio-row > div:first-child {
    height: 280px;
  }
  .project-grid {
    grid-template-columns: 1fr 1fr;
  }
  .project-tile,
  .project-tile:nth-child(3n + 1),
  .project-tile:nth-child(3n + 2) {
    grid-column: auto;
  }
  .project-tile figure,
  .project-tile:nth-child(3n + 1) figure {
    height: 380px;
  }
  .numbers {
    grid-template-columns: 1fr 1fr;
  }
  .numbers > div:nth-child(2) {
    border-right: 0;
  }
  .numbers > div:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }
  .local-proof aside {
    position: relative;
    top: auto;
  }
  .local-services {
    grid-template-columns: 1fr;
  }
  .local-services a:nth-child(odd),
  .local-services a:nth-child(even) {
    padding: 18px 0;
    border-left: 0;
  }
  .area-grid {
    grid-template-columns: 1fr 1fr;
  }
  .menu-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-meta {
    grid-template-columns: 1fr 1fr;
  }
  .footer-meta > div:first-child {
    grid-column: 1/3;
  }
}

@media (max-width: 560px) {
  body {
    font-size: 15px;
  }
  .x-header {
    padding: 12px 16px;
  }
  .x-menu {
    padding: 18px;
  }
  .x-logo {
    width: 132px;
  }
  .x-menu-btn {
    min-width: 72px;
    height: 42px;
  }
  .menu-primary a {
    grid-template-columns: 30px 1fr;
  }
  .menu-primary span {
    font-size: 10.5vw;
  }
  .menu-grid {
    grid-template-columns: 1fr;
  }
  .menu-grid > div:first-child {
    grid-column: auto;
  }
  .hero-x {
    height: 100svh;
    min-height: 640px;
  }
  .hero-copy-x {
    bottom: 24vh;
  }
  .hero-kicker {
    justify-content: space-between;
  }
  .hero-title {
    font-size: 11.7vw;
    line-height: 0.9;
  }
  .hero-sub {
    margin-top: 18px;
    width: 100%;
    font-size: 14px;
  }
  .hero-actions-x {
    margin-top: 19px;
    gap: 15px;
  }
  .btn,
  .pill {
    min-height: 50px;
    padding-inline: 17px;
    gap: 18px;
  }
  .hero-proof {
    bottom: 16px;
    justify-content: space-between;
  }
  .hero-proof div {
    padding-left: 7px;
  }
  .hero-proof b {
    font-size: 15px;
  }
  .hero-proof span {
    font-size: 12px;
  }
  .hero-proof div:nth-child(3) {
    display: none;
  }
  .section-x,
  .section {
    padding-left: 16px;
    padding-right: 16px;
  }
  .manifesto-x .section-index {
    left: 16px;
    top: 54px;
  }
  .manifesto-copy {
    font-size: 8.5vw;
  }
  .manifesto-meta {
    flex-direction: column;
    gap: 8px;
  }
  .section-head-x h2,
  .lab-sticky h2 {
    font-size: 10.2vw;
  }
  .service-preview {
    height: 42vh;
    min-height: 320px;
  }
  .service-list a {
    grid-template-columns: 28px 1fr 20px;
    padding: 18px 0;
  }
  .service-list strong {
    font-size: 7vw;
  }
  .lab-card {
    padding-top: 13px;
  }
  .lab-card figure {
    height: 300px;
  }
  .lab-card > div {
    grid-template-columns: 1fr;
  }
  .lab-card b {
    justify-self: start;
    margin-top: 10px;
  }
  .work-grid {
    grid-template-columns: 1fr;
  }
  .work-card figure,
  .work-a figure,
  .work-b figure,
  .work-c figure,
  .work-d figure {
    height: 56vh;
    max-height: 520px;
  }
  .proof-numbers > div {
    grid-template-columns: 0.7fr 1fr;
  }
  .process-track {
    grid-template-columns: 1fr;
  }
  .process-track article {
    min-height: 190px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding-left: 0 !important;
  }
  .process-track h3 {
    margin-top: 44px;
  }
  .page-hero,
  .case-hero {
    padding: 118px 16px 52px;
    min-height: auto;
  }
  .page-hero.compact {
    padding-bottom: 50px;
  }
  .page-hero h1,
  .case-hero h1 {
    font-size: 10.4vw;
    line-height: 1;
  }
  .page-hero-media {
    height: 42vh;
    min-height: 310px;
  }
  .section h2,
  .section-head h2 {
    font-size: 9.2vw;
  }
  .section-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .lead {
    font-size: 17px;
  }
  .tick-list.two-col,
  .check-grid {
    grid-template-columns: 1fr;
  }
  .steps-line {
    grid-template-columns: 1fr;
  }
  .steps-line article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding-left: 0 !important;
    min-height: 140px;
  }
  .steps-line h3 {
    margin-top: 28px;
  }
  .service-grid,
  .cards-3,
  .cards-4,
  .product-grid,
  .machine-grid,
  .package-grid,
  .combo-grid {
    grid-template-columns: 1fr;
  }
  .service-img,
  .product-card figure,
  .machine figure {
    height: 240px;
  }
  .numbers {
    grid-template-columns: 1fr 1fr;
  }
  .numbers strong {
    font-size: 34px;
  }
  .gallery-grid {
    grid-template-columns: 1fr;
  }
  .gallery-item,
  .gallery-item:first-child {
    min-height: 52vh;
  }
  .gallery-vehicles {
    grid-template-columns: 1fr;
  }
  .gallery-vehicles figure {
    min-height: 50vh;
  }
  .case-image {
    min-height: 48vh;
  }
  .portfolio-row {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .portfolio-row > div:first-child {
    height: 48vh;
    min-height: 320px;
  }
  .portfolio-row h2 {
    font-size: 10vw;
    margin-bottom: 18px;
  }
  .portfolio-bento {
    grid-template-columns: 1fr;
  }
  .portfolio-card.large {
    min-height: 560px;
  }
  .portfolio-card.wide {
    grid-column: auto;
  }
  .project-grid {
    grid-template-columns: 1fr;
  }
  .project-tile figure,
  .project-tile:nth-child(3n + 1) figure {
    height: 58vh;
    max-height: 520px;
  }
  .project-tile .meta {
    padding-bottom: 20px;
  }
  .case-facts {
    grid-template-columns: 1fr;
  }
  .case-facts div + div {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding-left: 0;
    padding-top: 12px;
    margin-top: 12px;
  }
  .form-grid,
  .form-row {
    grid-template-columns: 1fr;
  }
  .field.full {
    grid-column: auto;
  }
  .quote-form {
    padding: 20px;
  }
  .mini-cta {
    align-items: flex-start;
    flex-direction: column;
  }
  .local-services a {
    font-size: 18px;
  }
  .area-grid {
    grid-template-columns: 1fr;
  }
  .local-proof {
    gap: 30px;
  }
  .x-footer {
    padding-left: 16px;
    padding-right: 16px;
  }
  .footer-main h2 {
    font-size: 10.8vw;
  }
  .footer-meta {
    grid-template-columns: 1fr 1fr;
    gap: 26px 14px;
  }
  .footer-meta > div:first-child {
    grid-column: 1/3;
  }
  .footer-bottom {
    flex-direction: column;
  }
  .cookie {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .hero-power {
    display: none;
  }
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
img.img-fallback {
  background: linear-gradient(135deg, #d9d5cc, #c8c1b6);
  min-height: 180px;
  color: transparent;
}
/* Form normalization — contact.html uses wrapping labels rather than .field wrappers. */
.quote-form > label:not(.check),
.form-row > label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.quote-form > label:not(.check) {
  margin-top: 18px;
}
.quote-form label input,
.quote-form label textarea,
.quote-form label select {
  width: 100%;
  background: #c5c5c529;
  border: 0;
  border-bottom: 1px solid #aaa;
  border-radius: 0;
  padding: 15px 20px;
  outline: none;
  text-transform: none;
  letter-spacing: normal;
  color: var(--ink);
}
.quote-form label textarea {
  resize: vertical;
  min-height: 135px;
}
.quote-form label input:focus,
.quote-form label textarea:focus,
.quote-form label select:focus {
  border-color: var(--red);
}
.quote-form label [aria-invalid="true"] {
  border-color: var(--red);
}
.quote-form .check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 0;
  padding: 18px 0 16px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
  text-transform: none;
  letter-spacing: 0;
}
.quote-form .check:before {
  content: none;
}
.quote-form .check input {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin: 2px 0 0;
  padding: 0;
  border: 1px solid #777;
}
.quote-form .check a {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.quote-form > button {
  margin-top: 4px;
}

/* Local editorial depth */
.local-intel-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: clamp(42px, 7vw, 105px);
  align-items: start;
}
.local-intel-grid h2 {
  margin: 0;
  max-width: 720px;
}
.local-intel-list {
  list-style: none;
  padding: 0;
  margin: 34px 0 0;
  border-top: 1px solid var(--ink);
}
.local-intel-list li {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.local-intel-copy {
  max-width: 720px;
}
.local-intel-copy p {
  font-size: 15px;
  line-height: 1.75;
  color: #4b4a47;
  margin: 0 0 20px;
}
.source-link {
  display: inline-flex;
  margin-top: 8px;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.client-proof-strip {
  padding: 26px var(--pad);
  border-block: 1px solid var(--line);
  background: #fff;
}
.client-proof-strip .container {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 28px;
  align-items: center;
}
.client-proof-strip p {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin: 0;
}
.client-proof-names {
  display: flex;
  gap: 28px;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
}
.client-proof-names span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media (max-width: 820px) {
  .local-intel-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .client-proof-strip .container {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .client-proof-names {
    overflow: auto;
    scrollbar-width: none;
  }
  .client-proof-names::-webkit-scrollbar {
    display: none;
  }
}
@media (max-width: 560px) {
  .local-intel-copy p {
    font-size: 14px;
  }
  .client-proof-strip {
    padding-inline: 16px;
  }
  .client-proof-names {
    gap: 20px;
  }
  .client-proof-names span {
    font-size: 12px;
  }
}

/* V5 editorial refinements */
.process-track {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 14px;
  border-top: 0 !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 2px 0 12px;
  scrollbar-width: none;
}
.process-track::-webkit-scrollbar {
  display: none;
}
.process-track article {
  flex: 1 0 260px;
  min-height: 260px !important;
  border: 1px solid var(--line) !important;
  padding: 24px !important;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}
.process-track article + article {
  padding-left: 24px !important;
}
.process-track h3 {
  margin-top: auto !important;
  font-size: 23px !important;
}
.process-track p {
  font-size: 14px !important;
  max-width: 270px;
}

.local-ribbon {
  border-block: 1px solid var(--line);
  background: #fff;
  padding: 24px var(--pad);
}
.local-ribbon-inner {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) 1.2fr;
  gap: 40px;
  align-items: center;
}
.local-ribbon-inner > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.local-ribbon strong {
  font-size: 18px;
  letter-spacing: -0.02em;
}
.local-ribbon nav {
  display: flex;
  justify-content: flex-end;
  gap: 18px 26px;
  flex-wrap: wrap;
}
.local-ribbon nav a {
  font-size: 12px;
  font-weight: 700;
  border-bottom: 1px solid transparent;
  padding-bottom: 3px;
}
.local-ribbon nav a:hover {
  border-color: currentColor;
}

/* Portfolio — editorial, image-first */
.portfolio-hero {
  padding: clamp(150px, 15vw, 210px) var(--pad) clamp(82px, 9vw, 130px);
}
.portfolio-hero .container {
  width: min(var(--max), 100%);
}
.portfolio-hero h1 {
  font-size: clamp(48px, 6.4vw, 88px);
  line-height: 0.92;
  letter-spacing: -0.064em;
  margin: 13px 0 24px;
  text-transform: uppercase;
  max-width: 1150px;
}
.portfolio-hero h1 span {
  font-weight: 450;
  color: var(--acid);
}
.portfolio-intro {
  padding: 70px var(--pad) 54px;
}
.portfolio-intro .container {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 60px;
  align-items: end;
}
.portfolio-intro h2 {
  font-size: clamp(34px, 4vw, 58px);
  line-height: 0.96;
  letter-spacing: -0.05em;
  margin: 10px 0 0;
}
.portfolio-intro p {
  max-width: 520px;
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 16px;
}
.portfolio-wall {
  padding: 0 var(--pad) var(--section);
}
.portfolio-wall > .container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(18px, 2.3vw, 34px);
}
.portfolio-piece {
  grid-column: span 6;
  display: block;
  min-width: 0;
}
.portfolio-piece--wide {
  grid-column: span 8;
}
.portfolio-piece--tall {
  grid-column: span 4;
}
.portfolio-piece figure {
  margin: 0;
  background: #d7d2c8;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.portfolio-piece--wide figure {
  aspect-ratio: 16/10;
}
.portfolio-piece--tall figure {
  aspect-ratio: 3/4;
}
.portfolio-piece img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.75s var(--ease), filter 0.4s;
}
.portfolio-piece:hover img {
  transform: scale(1.025);
  filter: saturate(1.06);
}
.portfolio-piece-meta {
  display: grid;
  grid-template-columns: 38px 1fr 28px;
  gap: 12px;
  align-items: start;
  padding: 14px 0 40px;
  border-bottom: 1px solid var(--line);
}
.portfolio-piece-meta > span {
  font-size: 12px;
  color: var(--muted);
  padding-top: 5px;
}
.portfolio-piece-meta h2 {
  font-size: clamp(24px, 2.1vw, 34px);
  line-height: 1;
  margin: 0 0 6px;
  letter-spacing: -0.04em;
}
.portfolio-piece-meta p {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.045em;
}
.portfolio-piece-meta b {
  font-size: 19px;
  text-align: right;
}

/* Local directory */
.area-directory {
  padding: 72px var(--pad) var(--section);
}
.area-directory > .container {
  width: min(var(--max), 100%);
}
.area-group {
  display: grid;
  grid-template-columns: 0.58fr 1.42fr;
  gap: 50px;
  border-top: 1px solid var(--ink);
  padding: 28px 0 56px;
}
.area-group-title h2 {
  font-size: clamp(28px, 3.2vw, 46px);
  line-height: 1;
  margin: 9px 0 0;
  letter-spacing: -0.04em;
}
.area-list {
  border-top: 1px solid var(--line);
}
.area-list a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.area-list strong {
  font-size: 20px;
}
.area-list span {
  font-size: 12px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.area-list a:hover strong {
  transform: translateX(6px);
}
.area-list strong {
  transition: transform 0.22s var(--ease);
}

.service-areas {
  padding: 22px var(--pad);
  border-top: 1px solid var(--line);
  background: #fff;
}
.service-areas .container {
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: center;
  gap: 28px;
}
.service-areas nav {
  display: flex;
  gap: 18px 24px;
  flex-wrap: wrap;
}
.service-areas nav a {
  font-size: 12px;
  font-weight: 700;
  border-bottom: 1px solid transparent;
}
.service-areas nav a:hover {
  border-color: currentColor;
}

/* Typography/accessibility floor */
.eyebrow,
.kicker,
.section-index,
.menu-top,
.menu-grid p,
.menu-primary em,
.x-header-proof,
.preview-code,
.service-list em,
.lab-card > span,
.lab-card b,
.process-track span,
.source-link,
.client-proof-strip p {
  font-size: 12px !important;
}
.hero-proof span {
  font-size: 12px !important;
}
.note {
  font-size: 13px;
}
.btn,
.pill,
.x-quote-link,
.x-menu-btn {
  font-size: 12px;
}

@media (max-width: 980px) {
  .hero-copy-x {
    width: min(680px, 78vw);
  }
  .hero-proof {
    gap: 18px;
  }
  .portfolio-wall > .container {
    gap: 24px;
  }
  .portfolio-piece,
  .portfolio-piece--wide,
  .portfolio-piece--tall {
    grid-column: span 6;
  }
  .portfolio-piece--tall figure {
    aspect-ratio: 4/3;
  }
  .area-group {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .service-areas .container {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
@media (max-width: 820px) {
  .hero-x {
    min-height: 680px;
  }
  .hero-video {
    object-position: 58% center;
    animation-duration: 1.35s;
  }
  .hero-copy-x {
    left: 20px;
    right: 20px;
    bottom: 155px;
    width: auto;
  }
  .hero-title {
    font-size: clamp(44px, 10.6vw, 66px);
    line-height: 0.92;
  }
  .hero-sub {
    width: min(560px, 100%);
    font-size: 16px;
  }
  .hero-proof {
    left: 20px;
    right: 20px;
    bottom: 24px;
    justify-content: flex-start;
  }
  .hero-proof div:nth-child(3) {
    display: none;
  }
  .scroll-cue {
    display: none;
  }
  .local-ribbon-inner {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .local-ribbon nav {
    justify-content: flex-start;
  }
  .portfolio-intro .container {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .portfolio-piece,
  .portfolio-piece--wide,
  .portfolio-piece--tall {
    grid-column: span 12;
  }
  .portfolio-piece figure,
  .portfolio-piece--wide figure,
  .portfolio-piece--tall figure {
    aspect-ratio: 16/11;
  }
  .area-directory {
    padding-inline: 20px;
  }
}
@media (max-width: 560px) {
  .hero-x {
    min-height: 640px;
  }
  .hero-copy-x {
    left: 16px;
    right: 16px;
    bottom: 148px;
  }
  .hero-title {
    font-size: clamp(42px, 12.4vw, 58px);
  }
  .hero-kicker {
    justify-content: flex-start;
    gap: 14px;
  }
  .hero-sub {
    font-size: 15px;
    margin-top: 18px;
  }
  .hero-actions-x {
    gap: 14px;
  }
  .hero-proof {
    left: 16px;
    right: 16px;
    bottom: 18px;
    gap: 14px;
  }
  .hero-proof b {
    font-size: 16px;
  }
  .hero-proof span {
    font-size: 12px !important;
  }
  .portfolio-hero {
    padding: 132px 16px 70px;
  }
  .portfolio-hero h1 {
    font-size: 11vw;
  }
  .portfolio-intro,
  .portfolio-wall {
    padding-left: 16px;
    padding-right: 16px;
  }
  .portfolio-piece-meta {
    padding-bottom: 30px;
  }
  .portfolio-piece-meta p {
    font-size: 12px;
  }
  .local-ribbon {
    padding: 20px 16px;
  }
  .area-directory {
    padding: 56px 16px 78px;
  }
  .area-list a {
    grid-template-columns: 1fr;
  }
  .area-list span {
    font-size: 12px;
  }
  .service-areas {
    padding: 20px 16px;
  }
  .service-areas nav {
    gap: 12px 18px;
  }
}

/* Social Media & Ads — dedicated service page */
.social-hero .page-hero-media { background: #0b0b0d; }
.social-hero .page-hero-media img { object-fit: cover; }
.social-platforms {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 26px;
}
.social-platforms span {
  display: inline-flex;
  align-items: center;
  min-height: 35px;
  padding: 7px 13px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  font-size: 11px;
  line-height: 1;
  font-weight: 750;
  letter-spacing: .075em;
  text-transform: uppercase;
  color: rgba(255,255,255,.84);
}
.social-platforms span:before {
  content: "";
  width: 6px;
  height: 6px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 4px rgba(227,19,32,.16);
}
.social-value-grid,
.social-channel-grid,
.social-package-grid,
.social-measure-grid {
  display: grid;
  gap: 18px;
}
.social-value-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.social-channel-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.social-package-grid { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; }
.social-measure-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.social-card,
.social-channel,
.social-package,
.social-measure {
  position: relative;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  padding: clamp(22px,2.4vw,34px);
  overflow: hidden;
}
.social-card:before,
.social-package:before {
  content: attr(data-index);
  display: block;
  margin-bottom: 42px;
  color: var(--red);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .12em;
}
.social-card h3,
.social-channel h3,
.social-package h3,
.social-measure h3 {
  margin: 0 0 12px;
  font-size: clamp(20px,2vw,27px);
  line-height: 1.04;
  letter-spacing: -.04em;
}
.social-card p,
.social-channel p,
.social-package p,
.social-measure p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.social-card ul,
.social-package ul {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  border-top: 1px solid var(--line);
}
.social-card li,
.social-package li {
  position: relative;
  padding: 11px 0 11px 21px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  color: #303137;
}
.social-card li:before,
.social-package li:before {
  content: "↗";
  position: absolute;
  left: 0;
  color: var(--red);
  font-weight: 500;
}
.social-channel {
  min-height: 265px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.social-channel > span {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  min-height: 31px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #111216;
  color: #fff;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.social-channel h3 { margin-top: auto; padding-top: 52px; }
.social-package { display: flex; flex-direction: column; min-height: 100%; }
.social-package.is-featured {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
  transform: translateY(-12px);
}
.social-package.is-featured:after {
  content: "Najczęściej wybierany";
  position: absolute;
  top: 28px;
  right: 24px;
  color: #fff;
  background: var(--red);
  padding: 7px 10px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.social-package.is-featured p,
.social-package.is-featured li { color: rgba(255,255,255,.7); }
.social-package.is-featured ul,
.social-package.is-featured li { border-color: rgba(255,255,255,.18); }
.social-package .social-package-tag {
  display: block;
  margin-bottom: 9px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--red);
}
.social-package .btn { margin-top: auto; align-self: flex-start; }
.social-package ul { margin-bottom: 28px; }
.social-package.is-featured .btn { background: var(--red); color: #fff; }
.social-measure {
  min-height: 210px;
  border-top: 3px solid var(--ink);
}
.social-measure strong {
  display: block;
  margin-bottom: 42px;
  color: var(--red);
  font-size: clamp(29px,3.2vw,48px);
  letter-spacing: -.06em;
}
.social-dark-band {
  background: #0b0b0d;
  color: #fff;
}
.social-dark-band .eyebrow,
.social-dark-band .section-head p { color: rgba(255,255,255,.58); }
.social-dark-band .section-head h2 { color: #fff; }
.social-funnel {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  border-top: 1px solid rgba(255,255,255,.26);
}
.social-funnel article {
  min-height: 260px;
  padding: 25px 24px 30px 0;
  border-right: 1px solid rgba(255,255,255,.16);
}
.social-funnel article + article { padding-left: 24px; }
.social-funnel article:last-child { border-right: 0; }
.social-funnel span {
  display: block;
  margin-bottom: 78px;
  color: #ff4753;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .11em;
}
.social-funnel h3 { margin: 0 0 10px; font-size: 22px; }
.social-funnel p { margin: 0; color: rgba(255,255,255,.62); font-size: 13px; }
.social-note {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(36px,7vw,110px);
  align-items: start;
  border-top: 1px solid var(--ink);
  padding-top: 34px;
}
.social-note h2 { margin-top: 0; }
.social-note-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 34px; }
.social-note-grid article { border-top: 1px solid var(--line); padding-top: 16px; }
.social-note-grid strong { display: block; margin-bottom: 7px; font-size: 14px; }
.social-note-grid p { margin: 0; color: var(--muted); font-size: 13px; }
.social-card-visual {
  color: #fff;
  padding: 0;
  min-height: 100%;
}
.social-card-visual img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; display: block; }

@media (max-width: 1050px) {
  .social-value-grid,
  .social-package-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .social-channel-grid,
  .social-measure-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .social-package.is-featured { transform: none; }
  .social-funnel { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .social-funnel article:nth-child(2) { border-right: 0; }
}
@media (max-width: 700px) {
  .social-value-grid,
  .social-channel-grid,
  .social-package-grid,
  .social-measure-grid,
  .social-note,
  .social-note-grid,
  .social-funnel { grid-template-columns: 1fr; }
  .social-package.is-featured:after { position: static; display: inline-block; align-self: flex-start; margin: -18px 0 22px; }
  .social-funnel article,
  .social-funnel article + article { min-height: auto; padding: 22px 0 28px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
  .social-funnel span { margin-bottom: 34px; }
  .social-channel { min-height: 220px; }
}

/* Featured Social Media card on the general offer page */
.service-card-social {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  background: #111216;
  color: #fff;
}
.service-card-social .service-img { height: 350px; background: #111216; }
.service-card-social .service-body { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(26px,4vw,52px); }
.service-card-social .service-body h2 { color: #fff; font-size: clamp(30px,3.4vw,50px); margin: 8px 0 14px; letter-spacing: -.05em; }
.service-card-social .service-body p { color: rgba(255,255,255,.68); max-width: 460px; }
.service-card-social .service-body .wiecej { margin-top: 28px; color: #fff; }
@media (max-width: 760px) {
  .service-card-social { grid-template-columns: 1fr; }
  .service-card-social .service-img { height: 260px; }
}

/* Strony internetowe — dedicated service page */
.web-hero .page-hero-grid { align-items: center; }

.web-hero.page-hero--cover .web-hero-media { inset:0 0 0 48%; min-height:100%; height:auto; }
@media (max-width:900px) {
  .web-hero.page-hero--cover .web-hero-media { inset:0; opacity:.48; }
  .web-hero .web-browser { margin-left:32%; width:72%; }
}
@media (max-width:760px) {
  .web-hero .web-browser { margin-left:28%; width:88%; opacity:.72; }
}
.web-badges { display:flex; flex-wrap:wrap; gap:9px; margin-top:26px; }
.web-badges span { display:inline-flex; align-items:center; min-height:35px; padding:7px 13px; border:1px solid rgba(255,255,255,.3); border-radius:999px; color:rgba(255,255,255,.84); font-size:10px; font-weight:500; letter-spacing:.075em; text-transform:uppercase; }
.web-badges span:before { content:""; width:6px; height:6px; margin-right:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 4px rgba(227,19,32,.16); }
.web-hero-media { position:relative; min-height:600px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:radial-gradient(circle at 20% 15%,rgba(227,19,32,.22),transparent 32%),linear-gradient(145deg,#15161a,#090a0c 70%); padding:clamp(24px,4vw,58px); }
.web-hero-media:before { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:36px 36px; mask-image:linear-gradient(to bottom,black,transparent 90%); }
.web-browser { position:relative; z-index:2; width:min(100%,610px); border:1px solid rgba(255,255,255,.22); background:#f6f4ef; box-shadow:0 40px 100px rgba(0,0,0,.42); transform:rotate(-1.5deg); }
.web-browser-bar { height:42px; display:flex; align-items:center; gap:7px; padding:0 14px; background:#e8e6e1; border-bottom:1px solid #d0cec8; }
.web-browser-bar i { width:8px; height:8px; border-radius:50%; background:#b8b5af; }
.web-browser-bar i:first-child { background:var(--red); }
.web-browser-bar span { margin-left:auto; margin-right:auto; padding:5px 25px; background:#fff; border-radius:999px; color:#777; font-size:9px; font-weight:700; line-height:1.2; letter-spacing:.06em; }
.web-browser-body { color:#111216; padding:22px; }
.web-preview-nav { display:flex; justify-content:space-between; align-items:center; padding-bottom:20px; border-bottom:1px solid #d8d6d0; font-size:9px; }
.web-preview-nav b { font-size:15px; letter-spacing:-.05em; }
.web-preview-nav span { color:#6c6c6c; }
.web-preview-hero { padding:46px 0 40px; max-width:82%; }
.web-preview-hero small { display:block; margin-bottom:13px; color:var(--red); font-size:8px; font-weight:600; letter-spacing:.12em; }
.web-preview-hero strong { display:block; max-width:420px; font-size:clamp(31px,4.1vw,58px); line-height:.9; letter-spacing:-.075em; }
.web-preview-hero p { max-width:360px; color:#686868; font-size:11px; line-height:1.5; margin:16px 0 20px; }
.web-preview-hero em { display:inline-flex; padding:10px 13px; background:#111216; color:#fff; font-size:9px; font-style:normal; font-weight:500; text-transform:uppercase; letter-spacing:.06em; }
.web-preview-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#d8d6d0; border:1px solid #d8d6d0; }
.web-preview-metrics div { background:#fff; padding:13px 10px; }
.web-preview-metrics span { display:block; color:var(--red); font-size:7px; font-weight:900; letter-spacing:.1em; }
.web-preview-metrics b { display:block; margin-top:5px; font-size:9px; }
.web-floating-card { position:absolute; z-index:3; min-width:155px; padding:15px 17px; background:#fff; color:#111216; border:1px solid rgba(0,0,0,.09); box-shadow:0 18px 50px rgba(0,0,0,.26); }
.web-floating-card span { color:var(--red); font-size:8px; font-weight:900; }
.web-floating-card b,.web-floating-card small { display:block; }
.web-floating-card b { margin-top:18px; font-size:12px; }
.web-floating-card small { margin-top:3px; color:#777; font-size:8px; }
.web-floating-card-a { left:5%; bottom:11%; transform:rotate(2deg); }
.web-floating-card-b { right:4%; top:13%; transform:rotate(3deg); }
.web-type-grid,.web-value-grid,.web-package-grid,.web-growth-grid { display:grid; gap:18px; }
.web-type-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.web-value-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.web-package-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.web-growth-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.web-type-card,.web-value-card,.web-package,.web-growth-card { position:relative; min-width:0; background:#fff; border:1px solid var(--line); padding:clamp(22px,2.4vw,34px); overflow:hidden; }
.web-type-card:before,.web-package:before { content:attr(data-index); display:block; margin-bottom:36px; color:var(--red); font-size:10px; font-weight:600; letter-spacing:.12em; }
.web-type-tag,.web-package-tag { display:block; margin-bottom:8px; color:var(--red); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.web-type-card h3,.web-value-card h3,.web-package h3,.web-growth-card h3 { margin:0 0 12px; font-size:clamp(20px,2vw,27px); line-height:1.04; letter-spacing:-.04em; }
.web-type-card p,.web-value-card p,.web-package p,.web-growth-card p { margin:0; color:var(--muted); font-size:13px; }
.web-type-card ul,.web-package ul { list-style:none; padding:0; margin:23px 0 0; border-top:1px solid var(--line); }
.web-type-card li,.web-package li { position:relative; padding:10px 0 10px 19px; border-bottom:1px solid var(--line); font-size:12px; color:#303137; }
.web-type-card li:before,.web-package li:before { content:"↗"; position:absolute; left:0; color:var(--red); font-weight:500; }
.web-value-card { min-height:250px; padding-top:28px; }
.web-value-card > span { display:block; margin-bottom:64px; color:var(--red); font-size:11px; font-weight:900; letter-spacing:.1em; }
.web-value-card:nth-child(2),.web-value-card:nth-child(5) { background:#111216; border-color:#111216; color:#fff; }
.web-value-card:nth-child(2) p,.web-value-card:nth-child(5) p { color:rgba(255,255,255,.64); }
.web-dark-band { background:#0b0b0d; color:#fff; }
.web-dark-band .eyebrow,.web-dark-band .section-head p { color:rgba(255,255,255,.58); }
.web-dark-band .section-head h2 { color:#fff; }
.web-quality-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.25); }
.web-quality-grid article { min-height:280px; padding:25px 24px 30px 0; border-right:1px solid rgba(255,255,255,.15); }
.web-quality-grid article + article { padding-left:24px; }
.web-quality-grid article:last-child { border-right:0; }
.web-quality-grid span { display:block; margin-bottom:85px; color:#ff4753; font-size:10px; font-weight:600; letter-spacing:.11em; }
.web-quality-grid h3 { margin:0 0 10px; font-size:22px; }
.web-quality-grid p { margin:0; color:rgba(255,255,255,.62); font-size:13px; }
.web-process { border-top:1px solid var(--ink); }
.web-process article { display:grid; grid-template-columns:90px .9fr 1.3fr; gap:20px; align-items:start; padding:25px 0; border-bottom:1px solid var(--line); }
.web-process article > span { color:var(--red); font-size:12px; font-weight:900; letter-spacing:.1em; }
.web-process h3 { margin:0; font-size:clamp(20px,2vw,30px); letter-spacing:-.04em; }
.web-process p { margin:0; color:var(--muted); max-width:650px; font-size:13px; }
.web-process article > div { display:contents; }
.web-package { display:flex; flex-direction:column; min-height:100%; }
.web-package .btn { margin-top:auto; align-self:flex-start; }
.web-package ul { margin-bottom:28px; }
.web-package.is-featured { background:var(--ink); border-color:var(--ink); color:#fff; transform:translateY(-12px); }
.web-package.is-featured:after { content:"Najczęściej wybierany"; position:absolute; top:27px; right:23px; background:var(--red); color:#fff; padding:7px 10px; font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.web-package.is-featured p,.web-package.is-featured li { color:rgba(255,255,255,.7); }
.web-package.is-featured ul,.web-package.is-featured li { border-color:rgba(255,255,255,.17); }
.web-package.is-featured .btn { background:var(--red); color:#fff; }
.web-handover { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(38px,7vw,110px); align-items:start; border-top:1px solid var(--ink); padding-top:36px; }
.web-handover h2 { margin-top:0; }
.web-handover > div:first-child > p:last-child { color:var(--muted); max-width:480px; }
.web-handover-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 34px; }
.web-handover-grid article { padding-top:16px; border-top:1px solid var(--line); }
.web-handover-grid strong { display:block; margin-bottom:7px; font-size:14px; }
.web-handover-grid p { margin:0; color:var(--muted); font-size:13px; }
.web-growth-card { min-height:280px; display:flex; flex-direction:column; color:inherit; text-decoration:none; transition:transform .25s ease,background .25s ease,color .25s ease; }
.web-growth-card > span { display:block; margin-bottom:64px; color:var(--red); font-size:11px; font-weight:900; }
.web-growth-card b { margin-top:auto; padding-top:30px; color:var(--red); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
a.web-growth-card:hover { transform:translateY(-4px); background:#111216; color:#fff; }
a.web-growth-card:hover p { color:rgba(255,255,255,.65); }

@media (max-width:1100px) {
  .web-type-grid,.web-growth-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .web-value-grid,.web-package-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .web-package.is-featured { transform:none; }
  .web-quality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .web-quality-grid article:nth-child(2) { border-right:0; }
  .web-hero-media { min-height:520px; }
}
@media (max-width:760px) {
  .web-type-grid,.web-value-grid,.web-package-grid,.web-growth-grid,.web-quality-grid,.web-handover,.web-handover-grid { grid-template-columns:1fr; }
  .web-hero-media { min-height:480px; padding:26px 18px; }
  .web-browser { transform:none; width:100%; }
  .web-floating-card { display:none; }
  .web-preview-hero { max-width:100%; padding:38px 0 34px; }
  .web-preview-hero strong { font-size:42px; }
  .web-preview-metrics { grid-template-columns:1fr; }
  .web-quality-grid article,.web-quality-grid article + article { min-height:auto; padding:22px 0 28px; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .web-quality-grid span { margin-bottom:34px; }
  .web-process article { grid-template-columns:54px 1fr; gap:12px; }
  .web-process article > div { display:block; }
  .web-process h3 { margin-bottom:8px; }
  .web-package.is-featured:after { position:static; display:inline-block; align-self:flex-start; margin:-18px 0 22px; }
}

/* Last regular card fills the row before the featured Social Media card */
@media (min-width: 561px) {
  .service-card-wide {
    grid-column: span 2;
  }
}

/* Website types: odd last card spans the full row in the 2-column tablet layout */
@media (max-width:1100px) and (min-width:761px) {
  .web-type-grid > .web-type-card:last-child:nth-child(odd) { grid-column:1 / -1; }
}

/* Website portfolio on strony-internetowe.html */
.web-portfolio { position:relative; overflow:hidden; }
.web-portfolio:before { content:""; position:absolute; top:-18%; right:-12%; width:min(760px,70vw); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(224,27,54,.2),transparent 62%); pointer-events:none; }
.web-portfolio .container { position:relative; }
.web-portfolio .section-head > p { max-width:430px; }
.wp-feature .wp-shot.gallery-item { margin:0; }
.wp-card .wp-shot.gallery-item { margin:0 0 22px; }
.wp-card .wp-shot.gallery-item,
.wp-feature .wp-shot.gallery-item { grid-row:auto; min-height:0; aspect-ratio:1966 / 1154; border-radius:14px; background:#f1f1f4; }
.wp-shot.gallery-item img { object-fit:cover; transition:transform 1s var(--ease); }
.wp-shot.gallery-item:hover img,
.wp-shot.gallery-item:focus-visible img { transform:scale(1.04); }
.wp-shot.gallery-item.lb-trigger:before { background:linear-gradient(0deg,rgba(9,10,11,.32),rgba(9,10,11,0) 45%); }
.wp-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; margin:0 0 10px; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.wp-meta b { color:var(--red); }
.wp-meta span { color:rgba(255,255,255,.62); }
.wp-meta em { margin-left:auto; color:rgba(255,255,255,.4); font-style:normal; font-weight:500; letter-spacing:.04em; text-transform:none; }
.web-portfolio h3 { margin:0 0 10px; color:#fff; font-size:clamp(22px,2.1vw,30px); line-height:1.02; letter-spacing:-.045em; }
.web-portfolio h3 + p { margin:0; color:rgba(255,255,255,.62); font-size:14px; line-height:1.55; }
.wp-feature { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(0,1fr); align-items:center; gap:clamp(24px,3.6vw,64px); padding:clamp(14px,1.4vw,20px); border:1px solid rgba(255,255,255,.12); border-radius:22px; background:linear-gradient(140deg,rgba(255,255,255,.06),rgba(255,255,255,.015)); }
.wp-feature-body { padding:clamp(4px,1vw,14px) clamp(8px,1.6vw,26px) clamp(4px,1vw,14px) 0; }
.wp-feature-body h3 { font-size:clamp(32px,3.6vw,54px); margin-bottom:16px; }
.wp-tags { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0 0; padding:0; list-style:none; }
.wp-tags li { padding:7px 12px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:rgba(255,255,255,.78); font-size:10px; font-weight:500; letter-spacing:.07em; text-transform:uppercase; }
.wp-feature-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-top:34px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); }
.wp-domain { color:rgba(255,255,255,.45); font-size:12px; }
.wp-link { display:inline-flex; align-items:center; gap:8px; color:#fff; font-size:13px; font-weight:600; text-decoration:none; }
.wp-link b { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--red); transition:transform .4s var(--ease); }
.wp-link:hover b,.wp-link:focus-visible b { transform:rotate(45deg); }
.wp-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(40px,4.4vw,72px) clamp(18px,2.4vw,40px); margin-top:clamp(40px,4.4vw,72px); }
.wp-card { min-width:0; }
.wp-card:nth-child(even) { margin-top:clamp(0px,4vw,64px); }
.wp-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; margin-top:clamp(70px,8vw,128px); padding-top:30px; border-top:1px solid rgba(255,255,255,.18); }
.wp-cta p { margin:0; color:rgba(255,255,255,.62); font-size:clamp(24px,2.6vw,38px); letter-spacing:-.045em; line-height:1.05; }
.wp-cta strong { color:#fff; font-weight:inherit; }
.wp-cta > div { display:flex; flex-wrap:wrap; gap:10px; }
@media (max-width:1100px) {
  .wp-feature { grid-template-columns:1fr; }
  .wp-feature-body { padding:4px 8px 10px; }
}
@media (max-width:760px) {
  .wp-grid { grid-template-columns:1fr; }
  .wp-card:nth-child(even) { margin-top:0; }
  .wp-meta em { margin-left:0; flex-basis:100%; }
}
.wp-card-link { margin-top:18px; }

/* Links inside FAQ answers */
.faq p a { text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:3px; text-decoration-thickness:1px; transition:color .2s ease; }
.faq p a:hover, .faq p a:focus-visible { color:var(--red); }

/* Local pages: selected projects (bento grid, swipe carousel on mobile) */
.lr-section { position:relative; overflow:hidden; }
.lr-section:before { content:""; position:absolute; left:-14%; bottom:-30%; width:min(720px,70vw); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(224,27,54,.18),transparent 62%); pointer-events:none; }
.lr-section .container { position:relative; }
.lr-section .section-head > p { max-width:440px; }
.lr-all { display:inline-block; margin-top:14px; color:#fff; font-weight:600; border-bottom:1px solid var(--red); padding-bottom:2px; }
.lr-all:hover,.lr-all:focus-visible { color:#ff4753; }
.lr-grid { display:grid; grid-template-columns:1.45fr 1fr 1fr; grid-template-rows:repeat(2,minmax(0,1fr)); gap:clamp(10px,1.2vw,16px); height:clamp(520px,50vw,720px); }
.lr-card { position:relative; display:block; min-width:0; overflow:hidden; border-radius:16px; background:#17181b; color:#fff; isolation:isolate; }
.lr-card:first-child { grid-row:span 2; }
.lr-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease), filter .6s var(--ease); }
.lr-card:after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(6,7,8,.86) 0%,rgba(6,7,8,.25) 42%,rgba(6,7,8,0) 65%); transition:opacity .5s var(--ease); }
.lr-card:hover img,.lr-card:focus-visible img { transform:scale(1.06); }
.lr-card:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.lr-num { position:absolute; top:16px; left:18px; z-index:2; padding:6px 10px; border-radius:999px; background:rgba(9,10,11,.45); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); font-size:10px; font-weight:600; letter-spacing:.12em; }
.lr-cap { position:absolute; left:clamp(16px,1.6vw,24px); right:clamp(16px,1.6vw,24px); bottom:clamp(16px,1.6vw,22px); z-index:2; display:flex; align-items:flex-end; justify-content:space-between; gap:14px; }
.lr-cap strong { display:block; font-size:clamp(18px,1.6vw,24px); line-height:1.05; letter-spacing:-.035em; }
.lr-card:first-child .lr-cap strong { font-size:clamp(26px,2.6vw,40px); }
.lr-cap small { display:block; margin-top:7px; color:rgba(255,255,255,.7); font-size:10px; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.lr-cap b { flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--red); font-size:16px; transform:translateY(6px) scale(.85); opacity:.9; transition:transform .45s var(--ease), opacity .45s var(--ease); }
.lr-card:hover .lr-cap b,.lr-card:focus-visible .lr-cap b { transform:rotate(45deg); opacity:1; }
@media (max-width:1100px) {
  .lr-grid { grid-template-columns:1.2fr 1fr; grid-template-rows:none; grid-auto-rows:clamp(200px,28vw,280px); height:auto; }
  .lr-card:first-child { grid-row:span 2; }
}
@media (max-width:760px) {
  .lr-grid { display:flex; gap:12px; height:auto; margin:0 calc(var(--pad) * -1); padding:0 var(--pad) 6px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:0 var(--pad); scrollbar-width:none; }
  .lr-grid::-webkit-scrollbar { display:none; }
  .lr-card,.lr-card:first-child { flex:0 0 80%; aspect-ratio:4 / 5; scroll-snap-align:start; }
  .lr-card:first-child .lr-cap strong { font-size:24px; }
}
@media (prefers-reduced-motion:reduce) {
  .lr-card img,.lr-cap b { transition:none; }
}

/* Cookie consent banner (assets/js/consent.js) */
.cc { position:fixed; left:clamp(12px,2vw,24px); bottom:clamp(12px,2vw,24px); z-index:9999; width:min(520px,calc(100% - 24px)); color:#fff; opacity:0; transform:translateY(16px); transition:opacity .35s var(--ease), transform .35s var(--ease); }
.cc.is-open { opacity:1; transform:none; }
.cc-inner { padding:clamp(20px,2.2vw,28px); border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(17,18,22,.97); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 30px 80px rgba(0,0,0,.45); }
.cc-title { margin:0 0 8px; font-size:18px; font-weight:700; letter-spacing:-.02em; }
.cc-title:before { content:""; display:inline-block; width:8px; height:8px; margin-right:10px; border-radius:50%; background:var(--red); box-shadow:0 0 0 4px rgba(224,27,54,.2); vertical-align:middle; }
.cc-desc { margin:0; color:rgba(255,255,255,.7); font-size:13px; line-height:1.55; }
.cc-desc a { color:#fff; text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:3px; }
.cc-prefs { display:grid; gap:8px; margin-top:16px; }
.cc-prefs[hidden] { display:none; }
.cc-opt { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border:1px solid rgba(255,255,255,.12); border-radius:12px; cursor:pointer; }
.cc-opt input { flex:none; width:18px; height:18px; margin:2px 0 0; accent-color:var(--red); cursor:pointer; }
.cc-opt input:disabled { cursor:not-allowed; opacity:.6; }
.cc-opt b { display:block; font-size:13px; }
.cc-opt small { display:block; margin-top:2px; color:rgba(255,255,255,.58); font-size:12px; line-height:1.4; }
.cc-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.cc-btn { flex:1 1 auto; min-height:44px; padding:10px 16px; border-radius:999px; font:inherit; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:background .2s ease, color .2s ease, border-color .2s ease; }
.cc-btn--solid { border:1px solid #fff; background:#fff; color:#111216; }
.cc-btn--solid:hover { background:var(--red); border-color:var(--red); color:#fff; }
.cc-btn--ghost { border:1px solid rgba(255,255,255,.35); background:transparent; color:#fff; }
.cc-btn--ghost:hover { border-color:#fff; }
.cc-btn:focus-visible,.cc-opt input:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.footer-cookie-link { padding:0; border:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.footer-cookie-link:hover { color:#fff; }
@media (prefers-reduced-motion:reduce) { .cc { transition:none; } }

/* Privacy policy document */
.policy { font-size:16px; }
.policy p, .policy li { font-size:16px; line-height:1.7; color:#313237; }
.policy h2 { margin:clamp(44px,5vw,64px) 0 16px; padding-top:22px; border-top:1px solid var(--line); font-size:clamp(22px,2.2vw,28px); line-height:1.15; letter-spacing:-.03em; scroll-margin-top:110px; }
.policy ol, .policy ul { margin:0 0 18px; padding-left:22px; }
.policy li { margin:0 0 10px; padding-left:4px; }
.policy li::marker { color:var(--red); font-weight:700; }
.policy li ul { margin:10px 0 0; }
.policy a { color:inherit; text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:3px; }
.policy a:hover { color:var(--red); }
.policy code { padding:1px 6px; border-radius:6px; background:var(--paper-2); font-size:.9em; }
.policy-meta { display:inline-block; margin:0 0 28px !important; padding:8px 14px; border-radius:999px; background:var(--paper-2); font-size:13px !important; color:var(--muted) !important; }
.policy-toc { margin:0 0 12px; padding:22px 26px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.policy-toc > p { margin:0 0 10px !important; font-size:11px !important; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted) !important; }
.policy-toc ol { margin:0; columns:2; column-gap:32px; }
.policy-toc li { margin:0 0 6px; font-size:14px; break-inside:avoid; }
.policy-toc a { text-decoration:none; }
.policy-btn { color:inherit; text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:3px; font-weight:600; }
@media (max-width:760px) { .policy-toc ol { columns:1; } }
