:root {
  --navy: #15316d;
  --navy-deep: #102962;
  --ink: #132d65;
  --accent: #0de0e4;
  --soft: #f3f5f7;
  --muted: #646a73;
  --line: #e2e5e9;
  --edge: clamp(1.25rem, 4.4vw, 4rem);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; overflow-x: clip; }
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
body.lightbox-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
figure, h1, h2, h3, p { margin: 0; }
::selection { color: var(--navy); background: var(--accent); }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.75rem 1rem;
  color: #fff;
  background: var(--navy);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.section-grid {
  padding-right: var(--edge);
  padding-left: var(--edge);
}
.kicker {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 0.55rem;
  color: inherit;
  font-size: 0.92rem;
  letter-spacing: -0.015em;
}
.kicker::after {
  width: clamp(2.5rem, 5vw, 5.5rem);
  height: 2px;
  content: "";
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 900ms 180ms var(--ease);
}
.is-section-visible .kicker::after { transform: scaleX(1); }
.overline {
  margin-bottom: 1.15rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.swap {
  display: inline-block;
  height: 1.25em;
  overflow: hidden;
  line-height: 1.25;
  vertical-align: middle;
}
.swap > span {
  display: block;
  transition: transform 420ms var(--ease);
}
.swap:hover > span,
:where(a, button):hover > .swap > span,
:where(a, button):focus-visible > .swap > span { transform: translateY(-100%); }

.button {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 2.8rem;
  border-radius: 0.25rem;
  font-size: 0.96rem;
  line-height: 1;
}
.button--accent { color: #072856; background: var(--accent); }
.button > .swap { padding: 0 1.2rem; }
.button > i {
  display: grid;
  align-self: stretch;
  place-items: center;
  width: 2.8rem;
  border-left: 1px solid rgba(4, 39, 81, 0.16);
  font-style: normal;
  transition: transform 300ms var(--ease), background-color 300ms ease;
}
.button:hover > i { background: rgba(255, 255, 255, 0.22); transform: translate(0.08rem, -0.08rem); }

.site-header {
  position: fixed;
  z-index: 100;
  top: 1.55rem;
  right: var(--edge);
  left: var(--edge);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  pointer-events: none;
  transition: color 350ms ease;
}
.site-header > * { pointer-events: auto; }
.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  width: max-content;
  color: #fff;
}
.site-header > .brand {
  transform: scale(2.35);
  transform-origin: left top;
  transition: color 350ms ease, transform 700ms var(--ease);
}
.brand img {
  width: 3.65rem;
  height: 3.65rem;
  object-fit: cover;
  object-position: 50% 10%;
}
.site-header .brand img {
  filter: drop-shadow(0 0 2px rgba(255,255,255,.98)) drop-shadow(0 0 9px rgba(255,255,255,.78));
  animation: logo-glow 3.8s ease-in-out infinite;
}
.brand > span { display: grid; line-height: 0.92; }
.brand b { font-size: 1rem; letter-spacing: 0.045em; }
.brand small { margin-top: 0.38rem; color: var(--accent); font-size: 0.49rem; font-weight: 700; letter-spacing: 0.2em; }
.desktop-nav {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 0.8rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 0.35rem;
  color: #fff;
  background: rgba(10, 20, 33, 0.42);
  box-shadow: 0 0.75rem 2.2rem rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(14px);
  font-size: 0.95rem;
}
.header-cta {
  justify-self: end;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border-radius: 0.35rem;
  color: var(--navy);
  background: #fff;
  font-size: 0.95rem;
}
.header-cta > .swap { margin: 0.8rem 1rem; }
.header-cta > i {
  display: grid;
  place-items: center;
  width: 2.65rem;
  border-left: 1px solid #e5e7ea;
  font-style: normal;
}
.site-header.is-scrolled .brand { color: var(--navy); }
.site-header.is-scrolled > .brand { transform: scale(1.5); }
.site-header.is-scrolled .desktop-nav {
  color: var(--navy);
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(20, 49, 109, 0.08);
}
.site-header.is-scrolled .header-cta { color: #fff; background: var(--navy); }
.site-header.is-scrolled .header-cta > i { border-left-color: rgba(255,255,255,.16); }
.site-header.is-on-dark .brand { color: #fff; }
.site-header.is-on-dark .desktop-nav {
  color: #fff;
  border-color: rgba(255,255,255,.13);
  background: rgba(10,20,33,.42);
}
.site-header.is-on-dark .header-cta { color: var(--navy); background: #fff; }
.site-header.is-on-dark .header-cta > i { border-left-color: #e5e7ea; }
.menu-toggle, .mobile-menu { display: none; }

.hero {
  position: relative;
  min-height: clamp(44rem, 80svh, 58rem);
  overflow: hidden;
  color: #fff;
  background: #15202a;
}
.hero__media, .hero__shade { position: absolute; inset: 0; }
.hero__media { isolation: isolate; z-index: 0; }
.hero__media img,
.hero__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.035);
  will-change: transform;
}
.hero__media img {
  animation: hero-image 1.4s var(--ease) both;
  transition: opacity 600ms ease;
}
.hero__media video {
  opacity: 0;
  transition: opacity 600ms ease;
}
.hero.is-video-ready .hero__media video { opacity: 1; }
.hero.is-video-ready .hero__media img { opacity: 0; }
.hero__shade {
  background:
    linear-gradient(90deg, rgba(4, 15, 24, 0.34), transparent 62%),
    linear-gradient(0deg, rgba(4, 15, 24, 0.25), rgba(4, 15, 24, 0.42));
}
.hero__panel {
  position: absolute;
  top: clamp(11rem, 22%, 13rem);
  left: var(--edge);
  width: min(41rem, 54vw);
  padding: clamp(1.5rem, 3vw, 3rem);
  background: rgba(6, 17, 25, 0.72);
  backdrop-filter: blur(6px);
  clip-path: polygon(0 0, calc(100% - 3.75rem) 0, 100% 3.75rem, 100% 100%, 0 100%);
  animation: hero-copy 1.05s 120ms var(--ease) both;
}
.hero h1 {
  max-width: 17ch;
  font-size: clamp(2.2rem, 3.35vw, 3.5rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.98;
  color: #fff;
  background: linear-gradient(105deg, #fff 20%, #fff 38%, var(--accent) 48%, #8af8fa 53%, #fff 63%, #fff 100%);
  background-size: 280% 100%;
  background-position: 100% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: hero-title-wave 5.5s linear infinite;
}
.hero__panel-row {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-top: 2.3rem;
}
.hero__panel-row p { max-width: 15rem; color: rgba(255,255,255,.82); font-size: 0.9rem; line-height: 1.25; }
.hero__intro {
  position: absolute;
  z-index: 3;
  top: min(70svh, calc(100% - 10.5rem));
  bottom: auto;
  left: var(--edge);
  max-width: 25rem;
  padding: .8rem 1rem .85rem 1.1rem;
  border-left: .2rem solid var(--accent);
  background: rgba(4, 18, 40, .68);
  box-shadow: 0 1rem 2.6rem rgba(0,0,0,.18);
  backdrop-filter: blur(12px);
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  font-weight: 600;
  line-height: 1.25;
  opacity: 1;
  visibility: visible;
}
.hero__location {
  position: absolute;
  z-index: 3;
  top: min(69svh, calc(100% - 10.5rem));
  right: var(--edge);
  bottom: auto;
  display: grid;
  padding: 1.1rem 1.25rem;
  border: 2px solid rgba(255,255,255,.82);
  background: rgba(4, 18, 40, .56);
  box-shadow: 0 1rem 2.6rem rgba(0,0,0,.18);
  backdrop-filter: blur(10px);
  font-size: 1rem;
  line-height: 1;
  text-transform: uppercase;
  isolation: isolate;
  overflow: hidden;
  outline: none;
  cursor: default;
  transition: color 400ms var(--ease), border-color 400ms ease, box-shadow 400ms ease, transform 400ms var(--ease);
}
.hero__location::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background: var(--accent);
  transform: translateY(102%);
  transition: transform 450ms var(--ease);
}
.hero__location b { margin-top: 0.3rem; font-size: 1.55rem; }
.hero__location i { position: absolute; top: .5rem; right: .55rem; opacity: 0; font-size: .9rem; font-style: normal; transform: translate(-.5rem,.5rem); transition: opacity 350ms ease, transform 350ms var(--ease); }
.hero__location:hover,
.hero__location:focus-visible { color: var(--navy); border-color: var(--accent); box-shadow: 0 0 0 .35rem rgba(13,224,228,.18), 0 1rem 2rem rgba(0,0,0,.22); transform: translateY(-.45rem) rotate(-1deg); }
.hero__location:hover::before,
.hero__location:focus-visible::before { transform: translateY(0); }
.hero__location:hover i,
.hero__location:focus-visible i { opacity: 1; transform: translate(0,0); }

.notice {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  min-height: 7.5rem;
  padding: 1.5rem var(--edge);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(110deg, var(--navy-deep), var(--navy), #0c82b8, var(--accent), var(--navy), var(--navy-deep));
  background-size: 320% 320%;
  animation: notice-flow 11s ease-in-out infinite;
}
.notice::before {
  position: absolute;
  z-index: -1;
  top: -9rem;
  left: -8rem;
  width: 24rem;
  height: 24rem;
  border-radius: 50%;
  content: "";
  background: radial-gradient(circle, rgba(255,255,255,.24), transparent 63%);
  filter: blur(1.2rem);
  animation: notice-orb 10s ease-in-out infinite alternate;
}
.notice p { max-width: 42rem; font-size: clamp(1.25rem, 2.1vw, 2rem); letter-spacing: -0.04em; line-height: 1.16; }
.notice a { display: flex; align-items: center; gap: 0.65rem; padding: 0.65rem 1rem; border-radius: 999px; color: var(--navy); background: #fff; font-size: 0.8rem; font-weight: 700; }

.brand-strip { overflow: hidden; height: 6.5rem; border-bottom: 1px solid var(--line); background: #fff; }
.brand-track { display: flex; width: max-content; animation: marquee 25s linear infinite; }
.brand-set { display: flex; align-items: center; justify-content: space-around; gap: clamp(4rem, 8vw, 9rem); width: 100vw; min-width: 62rem; height: 6.5rem; padding: 0 var(--edge); }
.brand-set img { width: auto; max-width: 8.5rem; height: 2.1rem; object-fit: contain; filter: saturate(.95); }
.brand-set img:last-child { max-width: 10rem; height: 2.65rem; }

.about {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding-top: clamp(7rem, 11vw, 11rem);
  padding-bottom: clamp(7rem, 11vw, 11rem);
  background-image: linear-gradient(90deg, transparent calc(33.333% - .5px), rgba(20,49,109,.08) 33.333%, transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(20,49,109,.08) 66.666%, transparent calc(66.666% + .5px));
}
.about__image {
  width: calc(100% - 2.2rem);
  aspect-ratio: 1 / .84;
  align-self: end;
  overflow: hidden;
  clip-path: polygon(0 0, 86% 0, 100% 14%, 100% 100%, 0 100%);
}
.about__image img { object-position: center 37%; }
.about__title { padding: 1.25rem 2rem 2rem; }
.about__title h2 { max-width: 12ch; font-size: clamp(2.3rem, 4.2vw, 4.7rem); font-weight: 400; letter-spacing: -0.065em; line-height: 0.98; }
.about__copy { align-self: center; padding: 2rem 0 2rem 2.2rem; }
.about__copy > p:not(.overline) { max-width: 31rem; color: #3e4d68; font-size: clamp(1.05rem, 1.45vw, 1.3rem); line-height: 1.45; }
.about__copy .button { margin-top: 2rem; }

.facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.fact { position: relative; display: flex; align-items: center; gap: 2rem; min-height: 12rem; padding: 2rem; overflow: hidden; border-right: 1px solid var(--line); outline: none; isolation: isolate; transition: color 450ms var(--ease), transform 450ms var(--ease); }
.fact::before { position: absolute; z-index: -1; inset: 0; content: ""; background: var(--navy); transform: translateY(101%); transition: transform 500ms var(--ease); }
.fact:first-child { padding-left: 0; }
.fact:last-child { border-right: 0; }
.fact strong { font-size: clamp(3.5rem, 6vw, 6.5rem); font-weight: 400; letter-spacing: -0.075em; transition: color 450ms ease, transform 500ms var(--ease); }
.fact p { max-width: 9rem; color: var(--muted); font-size: 1.05rem; transition: color 350ms ease, transform 500ms var(--ease); }
.fact:hover,
.fact:focus-visible { color: #fff; transform: translateY(-.4rem); }
.fact:hover::before,
.fact:focus-visible::before { transform: translateY(0); }
.fact:hover strong,
.fact:focus-visible strong { color: var(--accent); transform: translateX(.6rem) rotate(-4deg); }
.fact:hover p,
.fact:focus-visible p { color: rgba(255,255,255,.78); transform: translateX(.35rem); }

.services {
  padding-top: clamp(6rem, 9vw, 9rem);
  background-color: var(--soft);
  background-image: linear-gradient(90deg, transparent calc(33.333% - .5px), rgba(20,49,109,.07) 33.333%, transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(20,49,109,.07) 66.666%, transparent calc(66.666% + .5px));
}
.services__heading {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 3rem;
  padding-bottom: clamp(5rem, 8vw, 8rem);
}
.services__heading h2, .action-section__heading h2, .work__heading h2, .support__heading h2, .process h2, .faq h2 {
  max-width: 15ch;
  font-size: clamp(2.5rem, 4.8vw, 5.2rem);
  font-weight: 400;
  letter-spacing: -0.065em;
  line-height: 0.98;
}
.services__heading > p { align-self: center; max-width: 25rem; color: var(--muted); font-size: 1.08rem; }
.service-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-bottom: clamp(6rem, 9vw, 9rem); }
.service-card {
  display: grid;
  grid-template-rows: auto auto auto;
  align-content: start;
  min-width: 0;
  padding: 1.5rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  outline: none;
  transition: color 450ms var(--ease), background-color 450ms var(--ease), transform 450ms var(--ease);
}
.service-card + .service-card { border-left: 1px solid var(--line); }
.service-card.is-active { color: #fff; background: var(--navy); transform: translateY(-1.4rem); }
.service-card__copy { min-height: 10.5rem; }
.service-card h3 { margin-bottom: 0.65rem; font-size: clamp(1.55rem, 2.3vw, 2.3rem); font-weight: 400; letter-spacing: -0.045em; }
.service-card p { max-width: 23rem; color: var(--muted); font-size: 1rem; }
.service-card.is-active p { color: rgba(255,255,255,.72); }
.service-card figure { overflow: hidden; aspect-ratio: 1.5 / 1; margin-bottom: 1.7rem; }
.service-card figure img { transition: transform 850ms var(--ease); }
.service-card:hover figure img { transform: scale(1.045); }
.text-button { display: inline-flex; align-items: center; width: max-content; padding: 0.62rem 1rem; border: 1px solid currentColor; border-radius: 0.2rem; font-size: 0.9rem; }
.text-button > .swap { margin: 0; }
.text-button > .swap > span { margin: 0; }
.text-button__arrow { display: inline-block; margin-left: .7rem; transition: transform 850ms var(--ease); }
.text-button:hover .text-button__arrow,
.text-button:focus-visible .text-button__arrow { transform: translate(.15rem,-.15rem); }

.action-section { padding-top: clamp(6rem, 9vw, 9rem); color: #fff; background: var(--navy); overflow: hidden; }
.action-section__heading { padding-bottom: 4rem; }
.action-section__heading h2 { max-width: 16ch; }
.action-section__media {
  position: relative;
  width: calc(100% - var(--edge) * 2);
  height: min(54vw, 42rem);
  min-height: 28rem;
  margin: 0 var(--edge);
  overflow: hidden;
  clip-path: polygon(0 0, 88% 0, 100% 18%, 100% 100%, 11% 100%, 0 82%);
}
.action-section__media img { transform: scale(1.11); will-change: transform; }
.action-section__media figcaption { position: absolute; z-index: 4; bottom: 1.5rem; left: 1.5rem; padding: .55rem .8rem; color: #fff; background: rgba(4,18,40,.64); font-size: .78rem; }
.action-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); padding-top: 5rem; padding-bottom: 6rem; }
.action-features article { position: relative; min-height: 16rem; padding: 2rem; overflow: hidden; border: 1px solid rgba(255,255,255,.14); outline: none; isolation: isolate; transition: color 450ms ease, border-color 450ms ease, box-shadow 450ms ease, transform 500ms var(--ease); }
.action-features article::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(135deg, var(--accent), #fff); transform: translateY(103%); transition: transform 520ms var(--ease); }
.action-features article::after { position: absolute; top: 1.2rem; right: 1.35rem; content: "↗"; opacity: 0; color: var(--navy); font-size: 1.2rem; transform: translate(-.5rem,.5rem); transition: opacity 350ms ease, transform 400ms var(--ease); }
.feature-icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1.65rem; background: rgba(255,255,255,.1); font-size: 1.45rem; transition: color 450ms ease, background 450ms ease, transform 520ms var(--ease); }
.action-features h3 { margin-bottom: .45rem; font-size: 1.35rem; font-weight: 400; letter-spacing: -.035em; }
.action-features p { max-width: 24rem; color: rgba(255,255,255,.68); transition: color 400ms ease; }
.action-features article:hover,
.action-features article:focus-visible { color: var(--navy); border-color: var(--accent); box-shadow: 0 1.4rem 3rem rgba(0,0,0,.2); transform: translateY(-.75rem); }
.action-features article:hover::before,
.action-features article:focus-visible::before { transform: translateY(0); }
.action-features article:hover::after,
.action-features article:focus-visible::after { opacity: 1; transform: translate(0,0); }
.action-features article:hover .feature-icon,
.action-features article:focus-visible .feature-icon { color: #fff; background: var(--navy); transform: rotate(-8deg) scale(1.08); }
.action-features article:hover p,
.action-features article:focus-visible p { color: rgba(16,41,98,.75); }

.work {
  padding-top: clamp(7rem, 10vw, 10rem);
  padding-bottom: clamp(7rem, 10vw, 10rem);
  background-image: linear-gradient(90deg, transparent calc(25% - .5px), rgba(20,49,109,.07) 25%, transparent calc(25% + .5px), transparent calc(50% - .5px), rgba(20,49,109,.07) 50%, transparent calc(50% + .5px), transparent calc(75% - .5px), rgba(20,49,109,.07) 75%, transparent calc(75% + .5px));
}
.work__heading { display: grid; grid-template-columns: 1fr 1.15fr .85fr; gap: 2rem; align-items: end; margin-bottom: 5rem; }
.work__heading > div p { max-width: 30rem; margin-top: 1rem; color: var(--muted); font-size: 1.05rem; }
.work__heading .button { justify-self: end; }
.work__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6rem clamp(2rem,8vw,8rem); }
.work-card figure { height: clamp(24rem, 43vw, 43rem); overflow: hidden; clip-path: polygon(0 0, 86% 0, 100% 13%, 100% 100%, 0 100%); }
.work-card:nth-child(even) figure { height: clamp(20rem, 35vw, 35rem); }
.work-card:nth-child(3) { margin-top: -2rem; }
.work-card figure img { transition: transform 900ms var(--ease), filter 500ms ease; }
.work-card:hover figure img { transform: scale(1.045); filter: saturate(1.08); }
.work-card > div { position: relative; padding-top: 1rem; padding-right: 3rem; }
.work-card h3 { font-size: clamp(1.5rem, 2.25vw, 2.25rem); font-weight: 400; letter-spacing: -.045em; }
.work-card p { margin-top: .25rem; color: var(--muted); }
.work-card > div > span { position: absolute; top: 1.3rem; right: 0; font-size: 1.35rem; transition: transform 300ms var(--ease); }
.work-card:hover > div > span { transform: translate(.25rem,-.25rem); }

.support { padding: clamp(6rem, 9vw, 9rem) 0; color: #fff; background: var(--navy); overflow: hidden; }
.support__heading { display: grid; grid-template-columns: .75fr 2.25fr; gap: 2rem; align-items: end; margin-bottom: 4rem; }
.support__heading > div > p { margin-top: 1rem; color: rgba(255,255,255,.7); }
.support__viewport { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 0 var(--edge); }
.support__viewport article { position: relative; min-height: 21rem; padding: 2rem; overflow: hidden; color: var(--navy); background: #fff; outline: none; isolation: isolate; transition: color 450ms ease, box-shadow 500ms ease, transform 500ms var(--ease); }
.support__viewport article::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(135deg, var(--accent), #9ffbfc); transform: scaleX(.018); transform-origin: left; transition: transform 540ms var(--ease); }
.support__viewport article::after { position: absolute; top: 0; right: 0; width: 3.4rem; height: 3.4rem; content: ""; background: var(--navy); clip-path: polygon(100% 0, 0 0, 100% 100%); transition: transform 500ms var(--ease); }
.support__viewport article > span { display: inline-grid; place-items: center; width: 2.3rem; height: 2.3rem; margin-bottom: 2.4rem; border-radius: 50%; color: #fff; background: var(--navy); font-size: .75rem; transition: background 400ms ease, transform 500ms var(--ease); }
.support__viewport h3 { max-width: 13ch; font-size: clamp(1.65rem,2.4vw,2.5rem); font-weight: 400; letter-spacing: -.05em; line-height: 1.04; }
.support__viewport p { max-width: 23rem; margin-top: 1.2rem; color: #596071; transition: color 350ms ease; }
.support__viewport small { display: block; margin-top: 3rem; color: #6a7180; }
.support__viewport article:hover,
.support__viewport article:focus-visible { box-shadow: 0 1.6rem 3.8rem rgba(0,0,0,.24); transform: translateY(-.6rem); }
.support__viewport article:hover::before,
.support__viewport article:focus-visible::before { transform: scaleX(1); }
.support__viewport article:hover::after,
.support__viewport article:focus-visible::after { transform: scale(1.25); }
.support__viewport article:hover > span,
.support__viewport article:focus-visible > span { background: var(--navy-deep); transform: rotate(12deg) scale(1.1); }
.support__viewport article:hover p,
.support__viewport article:focus-visible p { color: rgba(16,41,98,.78); }

.process {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(3rem,8vw,8rem);
  padding-top: clamp(7rem,10vw,10rem);
  padding-bottom: clamp(3.5rem,5vw,5rem);
  background-image: linear-gradient(90deg, transparent calc(50% - .5px), rgba(20,49,109,.08) 50%, transparent calc(50% + .5px));
}
.process h2 { max-width: 12ch; margin-bottom: 3.5rem; }
.process ol { margin: 0; padding: 0; list-style: none; }
.process li { position: relative; display: grid; grid-template-columns: 3.3rem 1fr; gap: 1.4rem; margin-left: -1rem; padding: 1rem 1rem 2.4rem; overflow: hidden; outline: none; isolation: isolate; transition: color 400ms ease, box-shadow 450ms ease, transform 500ms var(--ease); }
.process li::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(13,224,228,.2), rgba(13,224,228,0)); transform: scaleX(0); transform-origin: left; transition: transform 500ms var(--ease); }
.process li:not(:last-child)::after { position: absolute; top: 3.8rem; bottom: .25rem; left: 2.35rem; width: 1px; content: ""; background: #9aa4b8; }
.process li > span { display: grid; place-items: center; align-self: start; width: 2.75rem; height: 2.75rem; border-radius: 50%; color: #fff; background: var(--navy); transition: color 350ms ease, background 350ms ease, box-shadow 400ms ease, transform 450ms var(--ease); }
.process h3 { font-size: clamp(1.5rem,2.6vw,2.6rem); font-weight: 400; letter-spacing: -.05em; }
.process li p { max-width: 31rem; margin-top: .5rem; color: var(--muted); }
.process li:hover,
.process li:focus-visible { box-shadow: inset .2rem 0 0 var(--accent); transform: translateX(.7rem); }
.process li:hover::before,
.process li:focus-visible::before { transform: scaleX(1); }
.process li:hover > span,
.process li:focus-visible > span { color: var(--navy); background: var(--accent); box-shadow: 0 0 0 .45rem rgba(13,224,228,.16); transform: rotate(-8deg) scale(1.08); }
.process__image { align-self: center; height: min(52rem, 64vw); overflow: hidden; clip-path: polygon(0 0, 83% 0, 100% 14%, 100% 100%, 0 100%); }

.why { padding-top: clamp(3.5rem,5vw,5rem); padding-bottom: clamp(7rem,10vw,10rem); }
.why__heading { padding: 0 var(--edge) 5rem; text-align: center; }
.why__heading h2 { margin: 0 auto; font-size: clamp(2.8rem,5.6vw,6.2rem); font-weight: 400; letter-spacing: -.07em; line-height: .95; }
.why__mosaic { display: grid; grid-template-columns: 1.25fr 1fr 1fr; grid-template-rows: repeat(2,minmax(18rem,1fr)); }
.why__mosaic figure { grid-row: 1 / 3; overflow: hidden; clip-path: polygon(0 0, 80% 0, 100% 12%, 100% 100%, 0 100%); }
.why__mosaic article { position: relative; z-index: 0; display: flex; justify-content: flex-end; flex-direction: column; padding: 2rem; overflow: hidden; border-top: 1px solid var(--line); border-right: 1px solid var(--line); outline: none; isolation: isolate; transition: color 400ms ease, box-shadow 450ms ease, transform 500ms var(--ease); }
.why__mosaic article::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(145deg, var(--navy), #17458f); transform: translateY(102%); transition: transform 520ms var(--ease); }
.why__mosaic article:nth-of-type(n+3) { border-bottom: 1px solid var(--line); }
.why__mosaic article h3 { font-size: 1.25rem; font-weight: 400; }
.why__mosaic article p { max-width: 19rem; max-height: 0; margin-top: 0; overflow: hidden; opacity: 0; color: var(--muted); transition: max-height 450ms var(--ease), opacity 350ms ease, margin 350ms ease; }
.why__mosaic article:hover p, .why__mosaic article:focus p, .why__mosaic article:focus-within p, .why__mosaic .is-featured p { max-height: 8rem; margin-top: .55rem; opacity: 1; }
.why__mosaic article:hover,
.why__mosaic article:focus { z-index: 2; color: #fff; box-shadow: 0 1.5rem 3.5rem rgba(16,41,98,.24); transform: translateY(-.5rem) scale(1.015); }
.why__mosaic article:hover::before,
.why__mosaic article:focus::before { transform: translateY(0); }
.why__mosaic article:hover p,
.why__mosaic article:focus p { color: rgba(255,255,255,.72); }
.why__mosaic .is-featured { color: #fff; background: var(--navy); }
.why__mosaic .is-featured::before { background: linear-gradient(145deg, #0d356f, #087ea0); }
.why__mosaic .is-featured p { color: rgba(255,255,255,.72); }
.why__mosaic article > span { position: absolute; right: 2rem; bottom: 2rem; font-size: 1.4rem; transition: color 350ms ease, transform 400ms var(--ease); }
.why__mosaic article:hover > span,
.why__mosaic article:focus > span { color: var(--accent); transform: translate(.35rem,-.35rem) rotate(8deg); }

.faq {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(3rem,8vw,8rem);
  padding-top: clamp(7rem,10vw,10rem);
  padding-bottom: clamp(7rem,10vw,10rem);
  background-image: linear-gradient(90deg, transparent calc(33.333% - .5px), rgba(20,49,109,.08) 33.333%, transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(20,49,109,.08) 66.666%, transparent calc(66.666% + .5px));
}
.faq__intro > p:not(.kicker) { max-width: 23rem; margin-top: 1rem; color: var(--muted); font-size: 1.06rem; }
.faq__intro .button { margin-top: 2rem; }
.accordion { display: grid; gap: .55rem; }
.accordion__item { position: relative; padding: 0 1.5rem; overflow: hidden; color: #111b2a; background: var(--soft); border-left: .22rem solid transparent; transition: color 420ms ease, background 420ms ease, border-color 350ms ease, box-shadow 450ms ease, transform 450ms var(--ease); }
.accordion__item:hover { border-color: var(--accent); background: #e8fafd; transform: translateX(.45rem); }
.accordion__item.is-open { color: #fff; background: linear-gradient(120deg, var(--navy-deep), var(--navy), #126e94); border-color: var(--accent); box-shadow: 0 1.2rem 2.8rem rgba(16,41,98,.2); transform: translateX(-.6rem); }
.accordion__item button { display: grid; grid-template-columns: 2.2rem 1fr 1.4rem; align-items: center; gap: 1rem; width: 100%; padding: 1.55rem 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.accordion__item button em { color: var(--navy); font-size: .72rem; font-style: normal; font-weight: 700; letter-spacing: .08em; transition: color 350ms ease, transform 400ms var(--ease); }
.accordion__item.is-open button em { color: var(--accent); transform: rotate(-7deg) scale(1.08); }
.accordion__item button > span { font-size: clamp(1rem,1.45vw,1.25rem); }
.accordion__item i { position: relative; width: 1.25rem; height: 1.25rem; }
.accordion__item i::before, .accordion__item i::after { position: absolute; top: 50%; left: 0; width: 100%; height: 1px; content: ""; background: currentColor; transition: transform 350ms var(--ease); }
.accordion__item i::after { transform: rotate(90deg); }
.accordion__item.is-open i::after { transform: rotate(0); }
.accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 450ms var(--ease); }
.accordion__panel p { min-height: 0; overflow: hidden; color: var(--muted); }
.accordion__item.is-open .accordion__panel { grid-template-rows: 1fr; }
.accordion__item.is-open .accordion__panel p { padding: 0 3rem 1.5rem 3.2rem; color: rgba(255,255,255,.74); }

.footer { position: relative; overflow: hidden; color: #fff; background: linear-gradient(135deg, var(--navy-deep), var(--navy)); isolation: isolate; }
.footer::before,
.footer::after { position: absolute; z-index: -1; width: 34rem; height: 34rem; border-radius: 50%; content: ""; filter: blur(3rem); opacity: .33; pointer-events: none; }
.footer::before { top: -18rem; left: -10rem; background: radial-gradient(circle, var(--accent), transparent 65%); animation: footer-orb-a 12s ease-in-out infinite alternate; }
.footer::after { right: -14rem; bottom: -21rem; background: radial-gradient(circle, #1e87e8, transparent 65%); animation: footer-orb-b 15s ease-in-out infinite alternate; }
.footer__top { display: flex; align-items: end; justify-content: space-between; gap: 3rem; padding-top: 5rem; padding-bottom: 4rem; border-bottom: 1px solid rgba(255,255,255,.16); }
.footer__top p { margin-bottom: .6rem; color: rgba(255,255,255,.65); }
.footer__top h2 { font-size: clamp(2.3rem,4.8vw,5rem); font-weight: 400; letter-spacing: -.065em; line-height: .98; }
.footer__call { display: inline-flex; align-items: center; flex: 0 0 auto; padding: .8rem 1rem; color: var(--navy); background: var(--accent); }
.footer__call > .swap { margin: 0; }
.footer__call > .swap > span { margin: 0; }
.footer__call > i { margin-left: .7rem; font-style: normal; transition: transform 850ms var(--ease); }
.footer__call:hover > i,
.footer__call:focus-visible > i { transform: translate(.15rem,-.15rem); }
.footer__grid { display: grid; grid-template-columns: 1.3fr 1fr .7fr 1fr; gap: 3rem; padding-top: 3.5rem; padding-bottom: 4.5rem; }
.brand--footer { color: #fff; }
.footer__brand > p { margin-top: 1.2rem; color: rgba(255,255,255,.68); }
.footer__grid nav { display: flex; align-items: flex-start; flex-direction: column; gap: .65rem; }
.footer__grid nav > span { margin-bottom: .5rem; color: rgba(255,255,255,.55); }
.footer__grid nav a { position: relative; }
.footer__grid nav a::after { position: absolute; right: 0; bottom: -.15rem; left: 0; height: 1px; content: ""; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 350ms var(--ease); }
.footer__grid nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.footer__bottom { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 2rem; padding-top: 1.3rem; padding-bottom: 1.3rem; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.58); font-size: .78rem; }
.footer__credit a { position: relative; color: rgba(255,255,255,.9); }
.footer__credit a::after { position: absolute; right: 0; bottom: -.2rem; left: 0; height: 1px; content: ""; background: var(--accent); transform: scaleX(.25); transform-origin: left; transition: transform 400ms var(--ease); }
.footer__credit a:hover::after,
.footer__credit a:focus-visible::after { transform: scaleX(1); }

[data-lightbox-item] { position: relative; cursor: zoom-in; }
[data-lightbox-item]::before { position: absolute; z-index: 2; inset: 0; content: ""; background: linear-gradient(180deg, transparent 54%, rgba(4,18,40,.52)); opacity: 0; pointer-events: none; transition: opacity 400ms ease; }
[data-lightbox-item]::after { position: absolute; z-index: 3; right: 1rem; bottom: 1rem; padding: .58rem .75rem; content: "↗  Powiększ"; color: #fff; background: rgba(7,29,56,.72); border: 1px solid rgba(255,255,255,.25); opacity: 0; pointer-events: none; font-size: .72rem; font-weight: 700; letter-spacing: .035em; backdrop-filter: blur(10px); transform: translateY(.6rem); transition: opacity 350ms ease, transform 400ms var(--ease); }
[data-lightbox-item]:hover::before,
[data-lightbox-item]:focus-visible::before,
[data-lightbox-item]:hover::after,
[data-lightbox-item]:focus-visible::after { opacity: 1; transform: translateY(0); }
[data-lightbox-item]:focus-visible { outline: .2rem solid var(--accent); outline-offset: .2rem; }

.lightbox {
  width: min(92vw, 92rem);
  max-width: none;
  height: min(90vh, 58rem);
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: #fff;
  background: rgba(4,15,28,.96);
  box-shadow: 0 2.5rem 7rem rgba(0,0,0,.55);
}
.lightbox[open] { animation: lightbox-in 430ms var(--ease) both; }
.lightbox::backdrop { background: rgba(2,8,16,.82); backdrop-filter: blur(9px); }
.lightbox__stage { position: relative; display: grid; place-items: center; width: 100%; height: 100%; padding: 3.5rem 5rem 4rem; }
.lightbox figure { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; overflow: hidden; }
.lightbox figure img { flex: 1 1 0; width: 100%; height: 0; min-height: 0; object-fit: contain; }
.lightbox figcaption { flex: 0 0 auto; min-height: 2.4rem; padding-top: .9rem; color: rgba(255,255,255,.76); font-size: .92rem; text-align: center; }
.lightbox button { display: grid; position: absolute; z-index: 2; place-items: center; border: 1px solid rgba(255,255,255,.25); color: #fff; background: rgba(255,255,255,.08); cursor: pointer; backdrop-filter: blur(12px); transition: color 250ms ease, background 250ms ease, border-color 250ms ease, transform 300ms var(--ease); }
.lightbox button:hover,
.lightbox button:focus-visible { color: var(--navy); background: var(--accent); border-color: var(--accent); outline: none; transform: scale(1.07); }
.lightbox__close { top: 1rem; right: 1rem; width: 3rem; height: 3rem; font-size: 1.7rem; }
.lightbox__nav { top: 50%; width: 3.4rem; height: 4.5rem; font-size: 1.35rem; transform: translateY(-50%); }
.lightbox__nav:hover,
.lightbox__nav:focus-visible { transform: translateY(-50%) scale(1.07); }
.lightbox__nav--prev { left: 1rem; }
.lightbox__nav--next { right: 1rem; }
.lightbox__count { position: absolute; right: 1.2rem; bottom: 1rem; color: rgba(255,255,255,.55); font-size: .75rem; letter-spacing: .08em; }

.js .reveal {
  opacity: 0;
  filter: blur(4px);
  transform: translateY(4.2rem) scale(.985);
  transition: opacity 900ms var(--ease), filter 1000ms var(--ease), transform 1100ms var(--ease);
  transition-delay: var(--enter-delay, 0ms);
}
.js .reveal.is-visible { opacity: 1; filter: blur(0); transform: translateY(0) scale(1); }
.js .reveal-media {
  overflow: hidden;
  opacity: .35;
  clip-path: inset(0 0 92% 0);
  transition: opacity 700ms var(--ease), clip-path 1250ms var(--ease);
  transition-delay: var(--enter-delay, 0ms);
}
.js .reveal-media.is-visible { opacity: 1; clip-path: inset(0 0 0 0); }
.js .about__image.reveal-media.is-visible, .js .process__image.reveal-media.is-visible, .js .why__mosaic figure.reveal-media.is-visible { clip-path: polygon(0 0, 86% 0, 100% 14%, 100% 100%, 0 100%); }
.js .action-section__media.reveal-media.is-visible { clip-path: polygon(0 0, 88% 0, 100% 18%, 100% 100%, 11% 100%, 0 82%); }

.js .scroll-enter {
  --enter-x: 0;
  --enter-y: 4.5rem;
  --enter-scale: .94;
  --enter-rotate: 0deg;
  opacity: 0;
  filter: blur(7px);
  translate: var(--enter-x) var(--enter-y);
  scale: var(--enter-scale);
  rotate: var(--enter-rotate);
  transition:
    opacity 800ms var(--ease),
    filter 950ms var(--ease),
    translate 1100ms var(--ease),
    scale 1100ms var(--ease),
    rotate 1100ms var(--ease);
  transition-delay: var(--enter-delay, 0ms);
  will-change: opacity, filter, translate, scale;
}
.js .scroll-enter.enter-left { --enter-x: -5.5rem; --enter-y: 1.5rem; --enter-rotate: -1.2deg; }
.js .scroll-enter.enter-right { --enter-x: 5.5rem; --enter-y: 1.5rem; --enter-rotate: 1.2deg; }
.js .scroll-enter.enter-scale { --enter-y: 2rem; --enter-scale: .86; }
.js .scroll-enter.enter-fade { --enter-y: 0; --enter-scale: .9; }
.js .scroll-enter.is-visible {
  opacity: 1;
  filter: blur(0);
  translate: 0 0;
  scale: 1;
  rotate: 0deg;
}

@keyframes hero-copy { from { opacity: 0; transform: translateY(2rem); } }
@keyframes hero-image { from { opacity: 0; transform: scale(1.12); } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes hero-title-wave { to { background-position: -180% 50%; } }
@keyframes logo-glow { 0%, 100% { filter: drop-shadow(0 0 2px rgba(255,255,255,.96)) drop-shadow(0 0 8px rgba(255,255,255,.7)); } 50% { filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 15px rgba(255,255,255,.95)); } }
@keyframes notice-flow { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes notice-orb { to { transform: translateX(75vw) translateY(3rem) scale(1.25); } }
@keyframes footer-orb-a { to { transform: translate(42vw, 7rem) scale(1.18); } }
@keyframes footer-orb-b { to { transform: translate(-35vw, -5rem) scale(.88); } }
@keyframes lightbox-in { from { opacity: 0; transform: scale(.94) translateY(1rem); } }

@media (min-width: 981px) and (max-width: 1180px) {
  .site-header > .brand { transform: scale(1.95); }
  .site-header.is-scrolled > .brand { transform: scale(1.4); }
}

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; top: 1rem; }
  .site-header > .brand { transform: scale(1.65); }
  .site-header.is-scrolled > .brand { transform: scale(1.35); }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle {
    display: grid;
    place-content: center;
    gap: .4rem;
    width: 3.1rem;
    height: 3.1rem;
    border: 0;
    color: #fff;
    background: rgba(255,255,255,.92);
    cursor: pointer;
  }
  .menu-toggle span { width: 1.45rem; height: 2px; background: var(--navy); transition: transform 350ms var(--ease); }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(.26rem) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-.26rem) rotate(-45deg); }
  .mobile-menu {
    position: fixed;
    z-index: 90;
    inset: 0;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    color: var(--navy);
    background: #fff;
    transition: opacity 420ms var(--ease), visibility 420ms;
  }
  .mobile-menu.is-open { visibility: visible; opacity: 1; }
  .mobile-menu nav { display: flex; align-items: center; flex-direction: column; gap: .25rem; }
  .mobile-menu nav a { height: 1.18em; font-size: clamp(2.3rem,8vw,4rem); font-weight: 400; letter-spacing: -.055em; line-height: 1.18; }
  .site-header:has(.menu-toggle[aria-expanded="true"]) .brand { color: var(--navy); transform: scale(1.35); }

  .hero__panel { width: min(42rem, 74vw); }
  .hero__panel-row { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .about { grid-template-columns: 1fr 1fr; }
  .about__image { grid-row: 1 / 3; }
  .about__title, .about__copy { padding-right: 0; }
  .facts { grid-template-columns: 1fr; }
  .fact { min-height: 8rem; padding-left: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .fact:last-child { border-bottom: 0; }
  .service-cards { overflow-x: auto; grid-template-columns: repeat(3,minmax(19rem,75vw)); padding-bottom: 6rem; scroll-snap-type: x mandatory; }
  .service-card { scroll-snap-align: start; }
  .action-section__media { min-height: 25rem; }
  .work__heading { grid-template-columns: 1fr 1fr; }
  .work__heading .button { grid-column: 2; justify-self: start; }
  .support__heading { grid-template-columns: 1fr 2fr; }
  .process { grid-template-columns: 1fr; }
  .process__image { height: 38rem; }
  .why__mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 35rem repeat(2,minmax(15rem,auto)); }
  .why__mosaic figure { grid-column: 1 / 3; grid-row: 1; }
  .faq { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer__grid nav:last-child { grid-column: 2; }
}

@media (max-width: 640px) {
  :root { --edge: 1.15rem; }
  .site-header { right: 1.15rem; left: 1.15rem; }
  .brand { gap: .35rem; }
  .brand img { width: 3rem; height: 3rem; }
  .brand b { font-size: .83rem; }
  .brand small { font-size: .41rem; }
  .hero { min-height: 100svh; }
  .hero__media img,
  .hero__media video { object-position: 59% center; }
  .hero__shade { background: linear-gradient(0deg,rgba(4,15,24,.65),rgba(4,15,24,.17)), linear-gradient(90deg,rgba(4,15,24,.35),transparent); }
  .hero__panel { top: 8rem; width: calc(100% - var(--edge) * 2); padding: 1.35rem; }
  .hero h1 { max-width: 13ch; font-size: clamp(2.45rem,12vw,3.6rem); }
  .hero__panel-row { margin-top: 1.55rem; }
  .hero__panel-row p { font-size: .8rem; }
  .hero__intro { top: auto; bottom: 10rem; max-width: 18rem; font-size: .96rem; }
  .hero__location { top: auto; right: var(--edge); bottom: 14rem; padding: .7rem .8rem; font-size: .7rem; }
  .hero__location b { font-size: 1rem; }
  .notice { align-items: flex-start; flex-direction: column; min-height: 0; padding-top: 1.7rem; padding-bottom: 1.7rem; }
  .notice p { font-size: 1.35rem; }
  .brand-strip, .brand-set { height: 5rem; }
  .brand-set { min-width: 46rem; gap: 3rem; }
  .brand-set img { max-width: 6.5rem; height: 1.5rem; }
  .about { grid-template-columns: 1fr; gap: 2.2rem; padding-top: 5.5rem; padding-bottom: 5.5rem; background-image: none; }
  .about__image { grid-row: auto; width: 100%; aspect-ratio: 1 / .9; }
  .about__title, .about__copy { padding: 0; }
  .about__title h2 { font-size: 3rem; }
  .facts { padding-right: 0; padding-left: 0; }
  .fact { padding-right: var(--edge); padding-left: var(--edge); }
  .fact:first-child { padding-left: var(--edge); }
  .fact strong { font-size: 3.8rem; }
  .services { padding-top: 5.5rem; background-image: none; }
  .services__heading { grid-template-columns: 1fr; gap: 1.5rem; padding-bottom: 3.5rem; }
  .services__heading h2, .action-section__heading h2, .work__heading h2, .support__heading h2, .process h2, .faq h2 { font-size: 3rem; }
  .service-cards { grid-template-columns: repeat(3,minmax(19rem,86vw)); padding-right: 0; gap: .6rem; }
  .service-card { padding: 1.15rem; }
  .service-card.is-active { transform: none; }
  .action-section { padding-top: 5.5rem; }
  .action-section__heading { padding-bottom: 2.5rem; }
  .action-section__media { width: calc(100% - var(--edge) * 2); min-height: 28rem; }
  .action-section__media img { object-position: 61% center; }
  .action-features { grid-template-columns: 1fr; gap: 1rem; padding-top: 3.5rem; }
  .work { padding-top: 5.5rem; padding-bottom: 5.5rem; background-image: none; }
  .work__heading { grid-template-columns: 1fr; gap: 1.2rem; margin-bottom: 3.5rem; }
  .work__heading .button { grid-column: auto; justify-self: start; }
  .work__grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .work-card:nth-child(3) { margin-top: 0; }
  .work-card figure, .work-card:nth-child(even) figure { height: 31rem; }
  .support { padding: 5.5rem 0; }
  .support__heading { grid-template-columns: 1fr; }
  .support__viewport { grid-template-columns: 1fr; }
  .support__viewport article { min-height: 20rem; }
  .process { gap: 3rem; padding-top: 5.5rem; padding-bottom: 5.5rem; background-image: none; }
  .process__image { height: 28rem; }
  .why { padding-top: 5.5rem; padding-bottom: 5.5rem; }
  .why__heading { padding-bottom: 3.5rem; text-align: left; }
  .why__heading h2 { font-size: 3.25rem; }
  .why__mosaic { grid-template-columns: 1fr; grid-template-rows: 30rem repeat(4,auto); padding-right: 0; padding-left: 0; }
  .why__mosaic figure { grid-column: 1; grid-row: 1; }
  .why__mosaic article { min-height: 10rem; padding: 1.5rem var(--edge); border-right: 0; }
  .why__mosaic article p { max-height: 8rem; margin-top: .55rem; opacity: 1; }
  .faq { gap: 3rem; padding-top: 5.5rem; padding-bottom: 5.5rem; background-image: none; }
  .accordion__item { padding: 0 1rem; }
  .accordion__item.is-open { transform: translateX(-.2rem); }
  .accordion__item button { grid-template-columns: 1.8rem 1fr 1.2rem; gap: .7rem; }
  .accordion__item.is-open .accordion__panel p { padding-right: 0; padding-left: 2.5rem; }
  .lightbox { width: 100vw; height: 100dvh; }
  .lightbox__stage { padding: 4.2rem .7rem 4.5rem; }
  .lightbox__nav { top: auto; bottom: .75rem; width: 3.2rem; height: 3.2rem; transform: none; }
  .lightbox__nav:hover,
  .lightbox__nav:focus-visible { transform: scale(1.07); }
  .lightbox__nav--prev { left: calc(50% - 3.6rem); }
  .lightbox__nav--next { right: calc(50% - 3.6rem); }
  .lightbox__count { right: .9rem; bottom: 1.7rem; }
  .footer__top { align-items: flex-start; flex-direction: column; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 3rem 1.5rem; }
  .footer__brand { grid-column: 1 / 3; }
  .footer__grid nav:last-child { grid-column: auto; }
  .footer__bottom { grid-template-columns: 1fr; align-items: flex-start; gap: .85rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
