/* Archivo (variable: width 62–125, weight 400–700), self-hosted so no visitor data goes to Google. SIL Open Font License. */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url(../fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url(../fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* 43N — site styles (v2). One file, no framework. */
:root {
  --bg: #ffffff;
  --surface: #f2f4f1;
  --ink: #0f1a14;
  --ink-2: #3c4a42;
  --line: rgba(15, 26, 20, 0.14);
  --accent: #c81e64;          /* magenta from the BGD canopies; white text on it 5.4:1 */
  --accent-ink: #ffffff;
  --dark: #0f1a14;
  --dark-ink: #f2f4f1;
  --dark-ink-2: #b7c2bb;
  --max: 1280px;
  --gut: clamp(16px, 5vw, 80px);
  --radius: 6px;
  --ease: cubic-bezier(0.23, 1, 0.32, 1);
  --font: "Archivo", "Helvetica Neue", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 80px; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font: 400 1.0625rem/1.6 var(--font);
  font-stretch: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; -webkit-tap-highlight-color: transparent; }
::selection { background: var(--accent); color: var(--accent-ink); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

.wrap { width: min(100% - 2 * var(--gut), var(--max)); margin-inline: auto; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 50; background: var(--ink); color: var(--bg); padding: 10px 16px; border-radius: var(--radius); }
.skip:focus { left: 16px; }

/* Type */
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -0.02em; text-wrap: balance; }
.display { font-size: clamp(40px, 5.4vw, 80px); line-height: 0.98; font-stretch: 118%; letter-spacing: -0.035em; }
h2 { font-size: clamp(32px, 4vw, 56px); line-height: 1.04; font-stretch: 112%; letter-spacing: -0.03em; }
h3 { font-size: 22px; line-height: 1.3; font-stretch: 105%; }
p { margin: 0; }
.lead { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; max-width: 46ch; }
.muted { color: var(--ink-2); }
.label { font-size: 14px; font-weight: 500; color: var(--ink-2); letter-spacing: 0.01em; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 0 22px; border-radius: var(--radius);
  font: 500 1rem/1 var(--font); text-decoration: none; white-space: nowrap; border: 0; cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease, transform 100ms var(--ease);
}
.btn:active { transform: scale(0.97); }
.btn--primary { background: var(--accent); color: var(--accent-ink); }
.btn--ghost { box-shadow: inset 0 0 0 1px currentColor; }
.btn svg { width: 14px; height: 14px; flex: none; }
@media (hover: hover) and (pointer: fine) {
  .btn--primary:hover { background: #a8164f; }
  .btn--ghost:hover { background: rgba(255, 255, 255, 0.12); }
  .link:hover { text-decoration-color: currentColor; }
}
.link { text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); text-underline-offset: 4px; transition: text-decoration-color 150ms ease, color 150ms ease; }

/* Header */
.nav {
  position: sticky; top: 0; z-index: 20;
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  box-shadow: 0 1px 0 transparent; transition: box-shadow 200ms ease, background-color 200ms ease;
}
.nav[data-scrolled] { box-shadow: 0 1px 0 var(--line); }
.nav:has(.nav__sheet[data-open]) { background: #fff; }
@media (prefers-reduced-transparency: reduce) { .nav { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; } }
@media (prefers-contrast: more) { .nav { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: 0 1px 0 var(--ink); } }
.nav__bar { display: flex; align-items: center; gap: 32px; height: 72px; }
.logo { display: inline-flex; align-items: baseline; gap: 2px; font-weight: 700; font-size: 24px; font-stretch: 125%; letter-spacing: -0.02em; text-decoration: none; }
.logo { display: inline-flex; align-items: center; }
.logo img { display: block; height: 60px; width: auto; }
.footer .logo img { height: 56px; }
.nav__bar > nav { margin: 0 auto 0 16px; }
.nav__links { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; }
.nav__links a { font-size: 15px; font-weight: 500; text-decoration: none; padding: 8px 0; transition: color 150ms ease; }
.nav__end { display: flex; align-items: center; gap: 20px; }
.nav__lang { font-size: 15px; font-weight: 500; text-decoration: none; transition: color 150ms ease; }
.nav__toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--radius); background: none; color: var(--ink); cursor: pointer; }
.nav__toggle svg { width: 18px; height: 18px; }
.nav__toggle { transition: transform 100ms var(--ease); }
.nav__toggle:active { transform: scale(0.97); }
.nav__sheet { display: none; }
@media (hover: hover) and (pointer: fine) { .nav__links a:hover, .nav__lang:hover { color: var(--accent); } }

@media (max-width: 1023px) {
  .nav__links, .nav__end .nav__lang { display: none; }
  .nav__end { margin-left: auto; }
  .nav__toggle { display: inline-grid; place-items: center; }
  .nav__sheet[data-open] { display: block; border-top: 1px solid var(--line); padding: 8px 0 24px; animation: sheet-in 200ms var(--ease); transform-origin: top right; }
  .nav__sheet[data-closing] { animation: sheet-out 150ms var(--ease) forwards; }
  .nav__sheet ul { list-style: none; margin: 0; padding: 0; }
  .nav__sheet a { display: block; padding: 14px 0; font-size: 20px; font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--line); }
}
@media (max-width: 479px) { .nav__end .btn { display: none; } }

/* Hero */
.hero { position: relative; background: var(--bg); }
/* The video is a wide banner (2.2:1, like the source crop), never taller than the screen minus the header */
.hero__media { position: relative; aspect-ratio: 2 / 1; max-height: calc(100svh - 72px - 64px); min-height: 440px; width: 100%; overflow: hidden; background: #1f2d1a; color: #fff; display: grid; align-items: end; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
/* the footage is cropped from the left of the drone frame so the wing flies to the right of the headline */
/* a light shade at the bottom edge only, so the headline reads and the footage stays bright */
.hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 18, 10, 0.55) 0%, rgba(10, 18, 10, 0.2) 35%, rgba(10, 18, 10, 0) 60%), linear-gradient(90deg, rgba(10, 18, 10, 0.35) 0%, rgba(10, 18, 10, 0) 45%); pointer-events: none; }
.hero__body { position: relative; z-index: 1; padding: 0 0 clamp(32px, 4vw, 56px); }
.hero__body .display { max-width: 12ch; font-size: clamp(36px, 3.9vw, 60px); text-shadow: 0 1px 24px rgba(10, 18, 10, 0.25); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero__intro { display: grid; grid-template-columns: 7fr 5fr; gap: 32px clamp(32px, 5vw, 80px); align-items: end; padding: clamp(40px, 5vw, 64px) 0; border-bottom: 1px solid var(--line); }
.hero__lead { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; max-width: 48ch; color: var(--ink-2); }
.hero__meta { display: flex; justify-content: flex-end; gap: 40px; margin: 0; padding: 0; list-style: none; font-size: 15px; color: var(--ink-2); }
.hero__meta strong { display: block; color: var(--ink); font-size: 18px; font-weight: 600; font-stretch: 110%; }
@media (max-width: 1023px) { .hero__intro { grid-template-columns: 1fr; } .hero__meta { justify-content: flex-start; } }
@media (max-width: 767px) {
  /* phones: the video on its own, the headline and buttons under it on ink */
  .hero__media { display: block; aspect-ratio: auto; min-height: 0; max-height: none; background: var(--dark); }
  .hero__media::after { display: none; }
  .hero__img { position: relative; aspect-ratio: 16 / 10; height: auto; object-position: 60% 45%; }
  .hero__body { padding: 24px 0 32px; }
  .hero__body .display { font-size: clamp(30px, 8.6vw, 40px); text-shadow: none; }
  .hero__actions { margin-top: 20px; }
  .hero__meta { flex-wrap: wrap; gap: 16px 28px; }
}

/* Hero video */
.hero__pause {
  position: absolute; right: max(16px, calc((100% - var(--max)) / 2)); bottom: clamp(32px, 4vw, 56px); z-index: 2;
  width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.55); background: rgba(10, 18, 10, 0.35); color: #fff; cursor: pointer;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: background-color 150ms ease, transform 100ms var(--ease);
}
.hero__pause svg { width: 16px; height: 16px; }
.hero__pause .i-play, .hero__pause[aria-pressed="true"] .i-pause { display: none; }
.hero__pause[aria-pressed="true"] .i-play { display: block; }
.hero__pause:active { transform: scale(0.95); }
@media (hover: hover) and (pointer: fine) { .hero__pause:hover { background: rgba(10, 18, 10, 0.6); } }
@media (max-width: 767px) { .hero__pause { top: 12px; bottom: auto; right: 12px; } }

/* Sections */
.section { padding: clamp(80px, 10vw, 144px) 0; }
.section--tight { padding-block: clamp(64px, 8vw, 112px); }
.section__head { display: grid; grid-template-columns: 1fr; gap: 20px; margin-bottom: clamp(40px, 5vw, 64px); max-width: 760px; }

/* Founder */
.founder { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.founder__photo { border-radius: var(--radius); overflow: hidden; aspect-ratio: 2 / 1; background: var(--surface); }
.founder__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.founder__text { display: grid; gap: 24px; }
.founder__text .big { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.3; font-weight: 500; letter-spacing: -0.015em; max-width: 30ch; }
.founder__text .big em { font-style: normal; color: var(--accent); }
.facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 12px 48px; margin: 8px 0 0; }
.facts div { display: grid; gap: 2px; }
.facts dt { font-size: 14px; color: var(--ink-2); letter-spacing: 0.01em; }
.facts dd { margin: 0; font-size: 20px; font-weight: 600; font-stretch: 110%; }
@media (max-width: 767px) {
  .founder { grid-template-columns: 1fr; }
  .facts { grid-template-columns: repeat(2, auto); }
}

/* Products */
.products { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.product { grid-column: span 4; display: grid; gap: 16px; align-content: start; }
.product--wide { grid-column: 1 / -1; grid-template-columns: 8fr 4fr; gap: 32px; align-items: end; }
.product__media { border-radius: var(--radius); overflow: hidden; background: var(--surface); aspect-ratio: 4 / 3; }
.product--wide .product__media { aspect-ratio: 16 / 7.4; }
.product__media img { width: 100%; height: 100%; object-fit: cover; }
.product__media--white { background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.product__media--white img { object-fit: contain; padding: 6%; }
.product__text { display: grid; gap: 8px; }
.product__text p { color: var(--ink-2); max-width: 40ch; }
.products__also { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--ink-2); }
.products__also strong { color: var(--ink); font-weight: 600; }
@media (max-width: 1023px) {
  .products { gap: 20px; }
  .product--wide { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 639px) {
  .products { grid-template-columns: 1fr; gap: 40px; }
  .product, .product:last-child { grid-column: 1 / -1; }
  .product--wide .product__media { aspect-ratio: 4 / 3; }
}

/* Method */
.method { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); }
.method__photo { border-radius: var(--radius); overflow: hidden; margin-top: 40px; aspect-ratio: 4 / 3; }
.method__photo img { width: 100%; height: 100%; object-fit: cover; }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.steps li { counter-increment: step; display: grid; grid-template-columns: 72px 1fr; gap: 8px 24px; padding: 28px 0; border-top: 1px solid var(--line); }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li::before { content: counter(step, decimal-leading-zero); grid-row: span 2; font-size: 32px; font-weight: 600; font-stretch: 120%; color: var(--accent); line-height: 1; }
.steps p { color: var(--ink-2); max-width: 52ch; }
.steps .quote { grid-column: 2; font-size: 15px; font-weight: 500; color: var(--ink); }
.method__more { margin-top: 28px; color: var(--ink-2); max-width: 56ch; }
.method__more strong { color: var(--ink); font-weight: 600; }
@media (max-width: 1023px) { .method { grid-template-columns: 1fr; } .method__photo { aspect-ratio: 16 / 9; } }
@media (max-width: 479px) { .steps li { grid-template-columns: 52px 1fr; } .steps li::before { font-size: 26px; } }

/* BGD band */
.band { background: var(--dark); color: var(--dark-ink); }
.band__photo { width: 100%; aspect-ratio: 2000 / 771; object-fit: cover; max-height: 640px; }
.band__body { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(32px, 5vw, 80px); padding: clamp(56px, 7vw, 96px) 0 clamp(72px, 9vw, 128px); }
.band__body p { color: var(--dark-ink-2); }
.band__body .stack { display: grid; gap: 18px; align-content: start; }
.band a { color: var(--dark-ink); }
@media (max-width: 767px) { .band__photo { aspect-ratio: 4 / 3; } .band__body { grid-template-columns: 1fr; } }

/* FAQ */
.faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; margin: 0; }
.faq div { padding: 24px 0; border-top: 1px solid var(--line); display: grid; gap: 8px; }
.faq dt { font-size: 19px; font-weight: 600; }
.faq dd { margin: 0; color: var(--ink-2); max-width: 52ch; }
@media (max-width: 767px) { .faq { grid-template-columns: 1fr; } }

/* Contact + footer */
.contact { background: var(--accent); color: var(--accent-ink); }
.contact__inner { display: grid; grid-template-columns: 8fr 4fr; gap: 32px; align-items: end; padding: clamp(72px, 9vw, 128px) 0; }
.contact h2 { font-size: clamp(36px, 5vw, 72px); max-width: 16ch; }
.contact p { margin-top: 20px; max-width: 48ch; color: rgba(255, 255, 255, 0.92); }
.contact__end { display: grid; gap: 14px; justify-items: end; }
.contact .btn { background: #fff; color: var(--accent); }
.contact__email { color: #fff; font-size: 18px; font-weight: 500; text-underline-offset: 4px; }
@media (hover: hover) and (pointer: fine) { .contact .btn:hover { background: var(--dark); color: #fff; } }
@media (max-width: 767px) { .contact__inner { grid-template-columns: 1fr; } .contact__end { justify-items: start; } }
.footer { background: var(--dark); color: var(--dark-ink-2); font-size: 15px; }
.footer__grid { display: grid; grid-template-columns: 4fr 2fr 2fr 3fr; gap: 32px; padding: 64px 0 40px; }
.footer h3 { color: var(--dark-ink); font-size: 15px; font-weight: 600; margin-bottom: 12px; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.footer a { color: var(--dark-ink-2); text-decoration: none; transition: color 150ms ease; }
.footer address { font-style: normal; }
.footer .logo { color: var(--dark-ink); margin-bottom: 12px; }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 20px 0 32px; border-top: 1px solid rgba(242, 244, 241, 0.14); font-size: 14px; letter-spacing: 0.01em; }
@media (hover: hover) and (pointer: fine) { .footer a:hover { color: var(--dark-ink); } }
@media (max-width: 767px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__grid > :first-child { grid-column: 1 / -1; } }

/* Entrance: the hero copy rises once on load; content is visible without script. */
@keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.js .hero__body > * { animation: rise 700ms var(--ease) both; }
.js .hero__body > :nth-child(2) { animation-delay: 70ms; }
.js .hero__body > :nth-child(3) { animation-delay: 140ms; }
.js .hero__body > :nth-child(4) { animation-delay: 210ms; }
@keyframes sheet-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes sheet-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(-8px); } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .js .hero__body > * { animation: fade 200ms ease both; animation-delay: 0ms !important; }
  .nav__sheet[data-open] { animation: fade 150ms ease; }
  .nav__sheet[data-closing] { animation: fade 120ms ease reverse forwards; }
  .btn, .nav__toggle, .domains__clients a { transition: background-color 150ms ease, color 150ms ease; }
  .btn:active, .nav__toggle:active, .domains__clients a:active { transform: none; }
}

/* Legal page */
.legal { padding: 64px 0 96px; }
.legal h1 { font-size: clamp(36px, 5vw, 56px); font-stretch: 112%; margin: 24px 0 40px; }
.legal dl { display: grid; gap: 24px; max-width: 64ch; margin: 0; }
.legal dt { font-weight: 600; }
.legal dd { margin: 4px 0 0; color: var(--ink-2); }
.legal__logo { display: block; height: 56px; width: auto; margin-bottom: 24px; }
.legal__intro { max-width: 64ch; color: var(--ink-2); margin: -16px 0 32px; }
.legal dd .link, .legal__intro .link { color: var(--ink); }
.legal__foot { margin-top: 56px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-2); max-width: 64ch; }
.legal__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.btn--line { color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
@media (hover: hover) and (pointer: fine) { .btn--line:hover { background: var(--surface); } }

/* Application areas */
.domains { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.domains li { display: grid; grid-template-rows: auto 1fr auto; gap: 10px; padding: 28px; background: var(--bg); border-radius: var(--radius); box-shadow: inset 0 0 0 1px var(--line); }
.domains li p { color: var(--ink-2); }
.domains__clients { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px !important; padding-top: 16px; border-top: 1px solid var(--line); }
.domains__clients span { font-size: 14px; color: var(--ink-2); margin-right: 4px; }
.domains__clients a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; background: var(--surface); color: var(--ink); font-size: 15px; font-weight: 500; text-decoration: none; transition: background-color 150ms ease, color 150ms ease, transform 160ms var(--ease); }
.domains__clients a:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) { .domains__clients a:hover { background: var(--accent); color: var(--accent-ink); } }
@media (max-width: 1023px) { .domains { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .domains { grid-template-columns: 1fr; } }

/* Quote form (in the magenta contact band) */
.contact__inner { grid-template-columns: 5fr 7fr; align-items: start; }
.contact__or { font-size: 16px; }
.contact__email { color: #fff; font-weight: 600; text-underline-offset: 4px; }
.quote { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: clamp(24px, 3vw, 40px); background: var(--bg); color: var(--ink); border-radius: var(--radius); }
.quote__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.field { display: grid; gap: 6px; align-content: start; }
.field--wide, .quote__end { grid-column: 1 / -1; }
.field label { font-size: 14px; font-weight: 600; }
.field__opt { font-weight: 400; color: var(--ink-2); }
.field input, .field textarea {
  width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid rgba(15, 26, 20, 0.28); border-radius: var(--radius);
  background: #fff; color: var(--ink); font: 400 16px/1.5 var(--font); transition: border-color 150ms ease, box-shadow 150ms ease;
}
.field textarea { resize: vertical; min-height: 132px; }
.field input:focus-visible, .field textarea:focus-visible { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.field [aria-invalid="true"] { border-color: #b3261e; }
.field__hint { font-size: 14px; color: var(--ink-2); letter-spacing: 0.01em; }
.field__error { font-size: 14px; color: #b3261e; font-weight: 500; }
.quote__end { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.quote button[disabled] { opacity: 0.7; cursor: progress; }
.quote__status { font-size: 15px; font-weight: 500; }
.quote__status[data-kind="ok"] { color: #1d6b3a; }
.quote__status[data-kind="error"] { color: #b3261e; }
@media (max-width: 1023px) { .contact__inner { grid-template-columns: 1fr; } }
@media (max-width: 639px) { .quote { grid-template-columns: 1fr; } .quote .btn { width: 100%; justify-content: center; } }
/* the white form card inside the magenta band keeps the page's own colours */
.contact .quote p { margin-top: 0; max-width: none; color: var(--ink-2); }
.contact .quote .field__error, .contact .quote .quote__status[data-kind="error"] { color: #b3261e; }
.contact .quote .quote__status[data-kind="ok"] { color: #1d6b3a; }
.contact .quote .btn--primary { background: var(--accent); color: var(--accent-ink); }
@media (hover: hover) and (pointer: fine) { .contact .quote .btn--primary:hover { background: #a8164f; color: var(--accent-ink); } }

/* Team — Crocoblock-style: a centred heading per team, rows of square head-and-shoulders portraits
   (each photo is cropped so the face is the same size and the eyes sit on the same line) */
.section__head--center { margin-inline: auto; text-align: center; justify-items: center; }
.team-group + .team-group { margin-top: clamp(56px, 6vw, 88px); }
.team-group__title { text-align: center; font-size: clamp(26px, 2.6vw, 36px); font-stretch: 108%; letter-spacing: -0.02em; margin-bottom: 40px; }
.team { list-style: none; margin: 0 auto; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 40px; max-width: 1040px; }
.member { width: 220px; }
.team__photo { aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--line); margin-bottom: 16px; }
.team__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.member h4 { margin: 0; font-size: 20px; font-weight: 400; font-stretch: 100%; letter-spacing: 0; line-height: 1.4; color: var(--ink); }
.team__role { font-size: 14px; line-height: 1.45; color: var(--ink-2); margin-top: 4px; }
@media (hover: hover) and (pointer: fine) { .member:hover .team__photo img { transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .team__photo img { transition: none; } .member:hover .team__photo img { transform: none; } }
@media (max-width: 639px) { .team { gap: 28px 16px; } .member { width: calc(50% - 8px); } .member h4 { font-size: 17px; } .team__role { font-size: 13px; } .team-group__title { margin-bottom: 28px; } }

/* Privacy notice: a small toast, bottom right, that leaves on its own (no consent needed: no cookies are set) */
.notice {
  position: fixed; right: 16px; bottom: 16px; z-index: 30; max-width: min(360px, calc(100vw - 32px));
  display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 14px;
  background: var(--dark); color: var(--dark-ink); border-radius: var(--radius);
  font-size: 13px; line-height: 1.4; letter-spacing: 0.01em;
  animation: notice-in 240ms var(--ease) both;
}
.notice p { margin: 0; }
.notice .link { color: var(--dark-ink); white-space: nowrap; }
.notice__ok { flex: none; min-width: 44px; min-height: 36px; padding: 0 10px; border: 1px solid rgba(242, 244, 241, 0.4); border-radius: var(--radius); background: none; color: var(--dark-ink); font: 600 13px/1 var(--font); cursor: pointer; transition: background-color 150ms ease; }
@media (hover: hover) and (pointer: fine) { .notice__ok:hover { background: rgba(242, 244, 241, 0.14); } }
.notice[data-closing] { animation: notice-out 160ms var(--ease) forwards; }
@keyframes notice-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes notice-out { to { opacity: 0; transform: translateY(8px); } }
@media (max-width: 479px) { .notice { right: 8px; left: 8px; bottom: 8px; max-width: none; } }
@media (prefers-reduced-motion: reduce) { .notice, .notice[data-closing] { animation-name: fade; animation-duration: 150ms; } .notice[data-closing] { animation-direction: reverse; } }

/* Method: where each step happens */
.steps li::before { grid-column: 1; grid-row: 1 / span 3; }
.steps li > * { grid-column: 2; }
.steps .steps__tag { justify-self: start; padding: 3px 10px; border-radius: 999px; background: var(--surface); color: var(--ink); font-size: 13px; font-weight: 600; letter-spacing: 0.01em; max-width: none; }
.steps .steps__flight .steps__tag { background: var(--accent); color: var(--accent-ink); }

/* Clients strip in the dark band: text wordmarks */
.band__clients { padding-bottom: clamp(56px, 7vw, 96px); margin-top: calc(-1 * clamp(24px, 4vw, 56px)); }
.band__clients h3 { font-size: 14px; font-weight: 500; font-stretch: 100%; letter-spacing: 0.01em; color: var(--dark-ink-2); padding-top: 28px; border-top: 1px solid rgba(242, 244, 241, 0.16); }
.band__clients ul { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px clamp(24px, 4vw, 56px); }
.band__clients a { display: inline-flex; align-items: center; gap: 10px; min-height: 56px; font-size: clamp(19px, 1.8vw, 24px); font-weight: 600; font-stretch: 112%; letter-spacing: -0.02em; text-decoration: none; color: var(--dark-ink); transition: color 150ms ease; }
@media (hover: hover) and (pointer: fine) { .band__clients a:hover { color: #ff7fb5; } }

/* Contact: facts beside the form */
.contact .contact__trust { list-style: none; margin: 28px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(255, 255, 255, 0.35); display: grid; gap: 10px; font-size: 15px; max-width: 44ch; }
.contact__trust li { position: relative; padding-left: 26px; color: #fff; }
.contact__trust li::before { content: ""; position: absolute; left: 2px; top: 0.42em; width: 12px; height: 6px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.contact__trust a { color: #fff; text-underline-offset: 3px; }

/* Selects and placeholders in the quote form */
.field select {
  width: 100%; min-height: 48px; padding: 12px 40px 12px 14px; border: 1px solid rgba(15, 26, 20, 0.28); border-radius: var(--radius);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230f1a14' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center / 12px 8px;
  color: var(--ink); font: 400 16px/1.5 var(--font); -webkit-appearance: none; appearance: none; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease;
}
.field select:focus-visible { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.field ::placeholder { color: #66716a; opacity: 1; }

/* Phone call-to-action bar */
.cta-bar { display: none; }
@media (max-width: 767px) {
  .cta-bar:not([hidden]) {
    position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 25; display: flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 52px; border-radius: var(--radius); background: var(--accent); color: var(--accent-ink); font: 600 1rem/1 var(--font); text-decoration: none;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5); animation: notice-in 200ms var(--ease) both;
  }
  .cta-bar svg { width: 14px; height: 14px; }
  .cta-bar:active { transform: scale(0.98); }
}
@media (prefers-reduced-motion: reduce) { .cta-bar:not([hidden]) { animation: none; } }

/* client logos: official files, all shown in white on the dark band so they read as one row */
.band__clients ul { align-items: center; }
.band__clients img { display: block; height: 34px; width: auto; filter: brightness(0) invert(1); opacity: 0.92; transition: opacity 150ms ease; }
.band__clients img[src$="vittorazi.svg"] { height: 38px; }
.band__clients img[src$="bgd.svg"] { height: 44px; opacity: 1; }
.band__clients img[src$="kitepower.png"] { height: 28px; }
@media (hover: hover) and (pointer: fine) { .band__clients a:hover img { opacity: 1; } }
@media (max-width: 639px) { .band__clients img { height: 28px; } .band__clients img[src$="kitepower.png"] { height: 23px; } .band__clients img[src$="vittorazi.svg"] { height: 32px; } .band__clients img[src$="bgd.svg"] { height: 36px; } }

/* Internship programme: one quiet card at the end of the team section */
.intern { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; max-width: 1040px; margin: clamp(56px, 6vw, 88px) auto 0; padding: clamp(24px, 3vw, 36px); background: var(--bg); border-radius: var(--radius); box-shadow: inset 0 0 0 1px var(--line); }
.intern h3 { font-size: 22px; }
.intern p { margin-top: 8px; color: var(--ink-2); max-width: 56ch; }
.intern .btn { flex: none; }
@media (max-width: 767px) { .intern { flex-direction: column; align-items: flex-start; } }
