/* ---------------------------------------------------------------------------
   Polices auto-hébergées — voir assets/fonts/LICENSES.txt
   Google Fonts et Fontshare ne sont plus appelés au runtime.
--------------------------------------------------------------------------- */
@font-face {
  font-family:'Chillax'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/assets/fonts/chillax-400.woff2') format('woff2');
}
@font-face {
  font-family:'Chillax'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/assets/fonts/chillax-500.woff2') format('woff2');
}
@font-face {
  font-family:'Chillax'; font-style:normal; font-weight:600; font-display:swap;
  src:url('/assets/fonts/chillax-600.woff2') format('woff2');
}

@font-face {
  font-family:'MuseoModerno'; font-style:normal; font-weight:600; font-display:swap;
  src:url('/assets/fonts/museomoderno-600-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;
}
@font-face {
  font-family:'MuseoModerno'; font-style:normal; font-weight:600; font-display:swap;
  src:url('/assets/fonts/museomoderno-600-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family:'Libre Franklin'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/assets/fonts/librefranklin-700-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;
}
@font-face {
  font-family:'Libre Franklin'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/assets/fonts/librefranklin-700-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family:'Libre Franklin'; font-style:normal; font-weight:800; font-display:swap;
  src:url('/assets/fonts/librefranklin-800-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;
}
@font-face {
  font-family:'Libre Franklin'; font-style:normal; font-weight:800; font-display:swap;
  src:url('/assets/fonts/librefranklin-800-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family:'Source Sans 3'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/assets/fonts/sourcesans3-400-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;
}
@font-face {
  font-family:'Source Sans 3'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/assets/fonts/sourcesans3-400-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family:'Source Sans 3'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/assets/fonts/sourcesans3-500-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;
}
@font-face {
  font-family:'Source Sans 3'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/assets/fonts/sourcesans3-500-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family:'Source Sans 3'; font-style:normal; font-weight:600; font-display:swap;
  src:url('/assets/fonts/sourcesans3-600-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;
}
@font-face {
  font-family:'Source Sans 3'; font-style:normal; font-weight:600; font-display:swap;
  src:url('/assets/fonts/sourcesans3-600-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* --------------------------------------------------------------------------- */

:root {
  --bg:#FAF9F5; --panel:#FFFFFF; --ink:#14181C; --muted:#4B5563;
  --line:rgba(20,24,28,.12); --line-strong:rgba(20,24,28,.16);
  --faint:rgba(20,24,28,.45); --texture:rgba(20,24,28,.09);
  --accent:#0284C7; --accent-hover:#026A9E;
  --header-bg:rgba(250,249,245,.92);
  --contact-bg:#04324A; --contact-ink:#F3F6F8; --contact-sub:#B8CBD8; --contact-accent:#7DD3FC;
  --logo-filter:none;
  --pad-x:clamp(20px,5vw,64px);
  --serif:'Chillax',sans-serif; --sans:'Source Sans 3',sans-serif; --ui:'Libre Franklin',sans-serif;
}
[data-theme="dark"] {
  --bg:#0B1013; --panel:#121A1F; --ink:#ECEFF1; --muted:#9AA6B2;
  --line:rgba(255,255,255,.14); --line-strong:rgba(255,255,255,.18);
  --faint:rgba(255,255,255,.5); --texture:rgba(255,255,255,.10);
  --accent:#38BDF8; --accent-hover:#7DD3FC;
  --header-bg:rgba(11,16,19,.94);
  --contact-bg:#0369A1; --contact-ink:#F7FCFF; --contact-sub:#DCF1FC; --contact-accent:#E3F5FF;
  --logo-filter:invert(1) brightness(1.6);
}
/* Fallback for when JS is unavailable: with no explicit choice yet, follow the OS.
   Once the inline <head> script runs it always sets [data-theme], disabling this. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --bg:#0B1013; --panel:#121A1F; --ink:#ECEFF1; --muted:#9AA6B2;
    --line:rgba(255,255,255,.14); --line-strong:rgba(255,255,255,.18);
    --faint:rgba(255,255,255,.5); --texture:rgba(255,255,255,.10);
    --accent:#38BDF8; --accent-hover:#7DD3FC;
    --header-bg:rgba(11,16,19,.94);
    --contact-bg:#0369A1; --contact-ink:#F7FCFF; --contact-sub:#DCF1FC; --contact-accent:#E3F5FF;
    --logo-filter:invert(1) brightness(1.6);
  }
}

* { box-sizing:border-box; }
body {
  margin:0; color:var(--ink); font-family:var(--sans); font-size:16px; overflow-x:hidden;
  background-color:var(--bg);
  background-image:radial-gradient(var(--texture) 1.4px, transparent 1.4px);
  background-size:30px 30px;
}
h1,h2,h3 { font-family:var(--serif); font-weight:500; letter-spacing:-.01em; margin:0; text-wrap:pretty; }
h2 { font-size:clamp(28px,4vw,42px); }
p { margin:0; line-height:1.55; color:var(--muted); text-wrap:pretty; }
a { color:var(--accent); text-decoration:none; transition:color .2s; }
a:hover { color:var(--accent-hover); }
button { font:inherit; cursor:pointer; }
::selection { background:var(--accent); color:#fff; }

.wrap { max-width:1440px; margin:0 auto; }
section.wrap { max-width:calc(1440px + 2 * clamp(20px,5vw,64px)); }
.kicker {
  display:inline-flex; align-items:center; gap:10px; margin-bottom:14px;
  font-family:var(--serif); font-size:12.5px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent);
}
.kicker i { display:block; width:10px; height:10px; border-radius:50%; background:var(--accent); }

/* Header */
.header {
  position:fixed; inset:0 0 auto; z-index:30;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:26px var(--pad-x);
  transition:padding .35s, background-color .35s, border-color .35s;
  border-bottom:1px solid transparent;
}
.header.is-scrolled {
  padding-block:14px; background:var(--header-bg);
  backdrop-filter:blur(8px); border-bottom-color:var(--line);
}
.header img { height:44px; display:block; transition:height .35s; filter:var(--logo-filter); }
.header.is-scrolled img { height:26px; }
.header-right { display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.nav { display:flex; align-items:center; gap:clamp(12px,1.6vw,26px);
  font-family:var(--serif); font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.nav a { color:var(--ink); opacity:.62; }
.nav a:hover { opacity:1; color:var(--accent); }
.lang { display:flex; align-items:center; gap:8px; font-family:var(--ui); font-size:13px; font-weight:700; letter-spacing:.06em; }
.lang button { background:none; border:0; padding:0; color:var(--faint); }
.lang button.is-active { color:var(--accent); }
.icon-btn {
  width:38px; height:38px; font-family:var(--ui); font-weight:700; display:flex; align-items:center; justify-content:center;
  font-size:16px; line-height:1; background:none; border:1px solid var(--line);
  color:var(--faint); border-radius:50%; transition:color .2s, border-color .2s;
}
.icon-btn:hover { color:var(--accent); border-color:var(--accent); }
.burger { display:none; width:44px; height:44px; font-size:19px; border-radius:2px; }
.mobile-menu { display:none; }

/* Hero */
.hero {
  position:relative; display:flex; align-items:center; overflow:hidden; background:var(--bg);
  min-height:min(85vh,1000px);
  padding:clamp(130px,16vh,180px) var(--pad-x) clamp(72px,9vh,110px);
}
.hero-dots { position:absolute; inset:0 0 0 auto; width:min(46%,620px); pointer-events:none; }
.hero-dots div { position:absolute; inset:14% 8% 14% 4%; }
.hero-dots span { position:absolute; border-radius:50%; background:var(--accent);
  will-change:transform,opacity; backface-visibility:hidden; }
.hero-text { position:relative; z-index:1; isolation:isolate; width:100%; margin:0; max-width:min(58%,740px); }
.hero h1 { font-size:clamp(38px,5.6vw,74px); line-height:1.04; letter-spacing:-.015em; margin-bottom:32px; }
.hero h1 em { font-style:normal; color:inherit; }
.hero h1 em.emph { color:var(--accent); }
.hero h1 em.emph { font-family:'MuseoModerno',sans-serif; font-weight:600; letter-spacing:-.02em; }
.hero p { font-size:15.5px; line-height:1.45; max-width:58ch; margin-bottom:26px; }
.hero .rule { width:64px; height:1.5px; background:var(--accent); margin-bottom:18px; }
.hero .kicker { margin-bottom:2px; }
.hero p.hero-tags { font-family:var(--ui); font-size:12.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; line-height:1.5; color:var(--muted); margin:-2px 0 24px; max-width:none; }
.hero .more { font-family:var(--ui); font-size:14px; font-weight:700; }

/* Partner marquee */
.clients { border-block:1px solid var(--line); padding:38px 0 42px; overflow:hidden; }
.clients .kicker-wrap { max-width:calc(1440px + 2 * var(--pad-x)); margin:0 auto; padding-inline:var(--pad-x); }
.clients .kicker { margin-bottom:28px; }
.marquee { display:flex; width:max-content; animation:marquee 76s linear infinite; }
.marquee:hover { animation-play-state:paused; }
.marquee-row { display:flex; gap:56px; padding-right:56px; }
.marquee a {
  display:block; height:38px; flex:none; opacity:.85; background-color:var(--faint);
  transition:background-color .25s, opacity .25s;
  -webkit-mask-image:var(--m); -webkit-mask-size:contain; -webkit-mask-repeat:no-repeat; -webkit-mask-position:center;
  mask-image:var(--m); mask-size:contain; mask-repeat:no-repeat; mask-position:center;
}
.marquee a:hover { background-color:var(--accent); opacity:1; }
@keyframes marquee { to { transform:translateX(-50%); } }

/* Services */
.services { padding:clamp(52px,8vw,70px) var(--pad-x) clamp(64px,9vw,100px); }
.services h2 { margin-bottom:30px; }
.grid-12 { display:grid; grid-template-columns:repeat(12,1fr); border-bottom:1px solid var(--line-strong); }
.service {
  box-shadow:0 0 0 .5px var(--line-strong); min-width:0;
  padding:clamp(26px,3.4vw,32px) clamp(22px,3.4vw,30px) clamp(28px,3.4vw,34px);
  display:flex; flex-direction:column; gap:14px;
}
.service header { display:flex; align-items:center; gap:14px; }
.service .dot { border-radius:50%; background:var(--accent); flex:none; }
.service .num { font-family:var(--ui); font-weight:800; font-size:14px; letter-spacing:.1em; color:var(--faint); }
.service h3 { font-size:clamp(21px,1.6vw,24px); font-weight:600; line-height:1.22; max-width:26ch; }
.service p { max-width:60ch; }

/* Full-bleed dotted band */
.band svg { position:absolute; inset:0; width:100%; height:100%; display:block; }
.band-dots { position:absolute; inset:0; }
.band .dot { position:absolute; border-radius:50%; background:var(--accent); transform:translate(-50%,-50%); }
.band .dot.end { left:auto; right:0; transform:translate(0,-50%); }
[data-theme="dark"] .band .dot.glow { box-shadow:0 0 7px var(--accent), 0 0 18px color-mix(in oklab, var(--accent) 55%, transparent); }
.band { position:relative; height:min(28vh,230px); overflow:hidden; background:var(--panel); border-top:1px solid var(--line); }
.band .fill {
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle 3px at 50% 50%, color-mix(in oklab, var(--accent) 55%, transparent) 99%, transparent),
    radial-gradient(circle 8px at 50% 50%, var(--accent) 99%, transparent),
    radial-gradient(circle 5px at 50% 50%, color-mix(in oklab, var(--accent) 80%, transparent) 99%, transparent);
  background-size:48px 48px, 48px 48px, 48px 48px;
  background-position:0 22%, 24px 52%, 0 82%;
  background-repeat:repeat-x, repeat-x, repeat-x;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 26%, #000 74%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 26%, #000 74%, transparent 100%);
}

/* Team */
.team, .quotes { background:var(--panel); border-top:1px solid var(--line); }
.band + .team { border-top:none; }
.team, .process, .quotes { padding:clamp(64px,9vw,100px) var(--pad-x); }
.team h2, .process h2, .quotes h2 { margin-bottom:56px; }
.team-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr)); gap:clamp(40px,6vw,64px); }
.member { display:grid; grid-template-columns:190px 1fr; gap:28px; align-items:center; }
.member:nth-child(2) { grid-template-columns:1fr 190px; }
.member:nth-child(2) .portrait { order:2; }
.portrait {
  width:190px; height:190px; border-radius:50%; flex:none;
  background-repeat:no-repeat; filter:grayscale(1) contrast(1.05);
}
.member h3 { font-size:24px; font-weight:600; margin-bottom:6px; }
.member .role { font-size:14px; font-weight:600; color:var(--accent); margin-bottom:16px; }
.member p { font-size:15.5px; line-height:1.6; }

/* Process */
.timeline { position:relative; }
.timeline::before { content:""; position:absolute; top:15px; left:0; right:0; height:1px; background:var(--line-strong); }
.steps { position:relative; display:flex; flex-wrap:wrap; gap:32px; }
.step { flex:1 1 170px; min-width:170px; }
.step .marker { height:32px; display:flex; align-items:center; margin-bottom:22px; }
.step .marker span { display:block; border-radius:50%; background:var(--accent); transition:box-shadow .5s; }
.step .num { font-family:var(--ui); font-weight:800; font-size:13px; letter-spacing:.12em; color:var(--faint); margin-bottom:10px; }
.step h3 { font-size:20px; font-weight:600; margin-bottom:10px; }
.step p { font-size:15px; max-width:34ch; }
[data-theme="dark"] .step:nth-child(1) .marker span { box-shadow:0 0 12px 2px var(--accent); }
[data-theme="dark"] .step:nth-child(2) .marker span { box-shadow:0 0 20px 3px var(--accent); }
[data-theme="dark"] .step:nth-child(3) .marker span { box-shadow:0 0 30px 4px var(--accent); }
[data-theme="dark"] .step:nth-child(4) .marker span { box-shadow:0 0 40px 6px var(--accent); }

/* Quotes */
.quotes .kicker { margin-bottom:56px; }
.qcar { position:relative; border-top:1px solid var(--line); }
.qcar::before { content:""; position:absolute; top:-16px; left:clamp(18px,3vw,34px); width:32px; height:32px; border-radius:50%; background:var(--accent); z-index:1; }
.qviewport { overflow:hidden; }
.qtrack { display:flex; transition:transform .55s cubic-bezier(.22,.61,.36,1); }
.quote {
  position:relative; margin:0; flex:0 0 100%; min-width:0;
  display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:clamp(28px,5vw,72px);
  padding:clamp(48px,6vw,72px) 0 clamp(40px,4vw,54px);
  align-items:start;
}
.quote blockquote {
  margin:0; font-family:var(--serif); font-weight:500;
  font-size:clamp(20px,2.05vw,29px); line-height:1.34; letter-spacing:-.012em; text-align:justify; hyphens:none;
}

.quote footer { display:flex; flex-direction:column; gap:6px; align-self:end; }
.quote footer::before { content:""; width:46px; height:1px; background:var(--accent); margin-bottom:16px; }
.quote .name { font-family:var(--serif); font-weight:600; font-size:clamp(18px,1.35vw,21px); line-height:1.2; letter-spacing:-.01em; }
.quote .role { font-size:clamp(15px,1.05vw,17px); line-height:1.45; color:var(--muted); }
.quote .org { font-size:clamp(15px,1.05vw,17px); line-height:1.45; color:var(--ink); font-weight:600; }
.qbar { display:flex; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid var(--line); padding:20px 0; }
.qdots { display:flex; gap:10px; }
.qdots button { width:9px; height:9px; padding:0; border:none; border-radius:50%; background:var(--line); transition:background .25s, transform .25s; }
.qdots button[aria-current="true"] { background:var(--accent); transform:scale(1.35); }
.qnav { display:flex; gap:8px; }
.qnav button {
  width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:none;
  color:var(--ink); display:grid; place-items:center; transition:border-color .2s, color .2s;
}
.qnav button:hover { border-color:var(--accent); color:var(--accent); }
.qnav svg { width:15px; height:15px; }
.qcount { font-family:var(--ui); font-size:13px; font-weight:700; letter-spacing:.1em; color:var(--muted); }
.qcount b { color:var(--ink); }

/* Contact */
.contact { background:var(--contact-bg); color:var(--contact-ink); padding:clamp(40px,4.5vw,52px) var(--pad-x) 44px; }
.contact .kicker, .contact .kicker i { color:var(--contact-accent); background-color:var(--contact-accent); }
.contact .kicker { background:none; }
.contact-top { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:48px; }
.contact h2 { font-size:clamp(32px,5.5vw,58px); line-height:1.08; letter-spacing:-.015em; margin-bottom:26px; max-width:820px; }
.contact p { font-size:17px; line-height:1.6; color:var(--contact-sub); max-width:560px; }
.contact-side { display:flex; flex-direction:column; align-items:flex-end; gap:22px; padding-top:6px; }
.contact-side img { height:58px; display:block; filter:invert(1) brightness(2.4); }
.contact-side a {
  font-family:var(--ui); font-size:13px; font-weight:700; letter-spacing:.04em; color:var(--contact-ink);
  border:1px solid rgba(255,255,255,.35); padding:11px 22px; border-radius:2px;
}
.contact-side a:hover { background:rgba(255,255,255,.12); color:var(--contact-ink); }
.contact-mail { margin-top:34px; }
.contact-mail .label { font-family:var(--ui); font-weight:700; font-size:16px; margin-bottom:6px; }
.contact-mail a { color:var(--contact-accent); font-size:18px; }
.site-footer { padding:26px var(--pad-x) 30px; }
.footer {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:13px; color:var(--muted);
}

@media (max-width:860px) {
  .header { padding-block:14px; gap:12px; }
  .header img, .header.is-scrolled img { height:30px; }
  .header .nav { display:none; }
  .header .icon-btn { width:34px; height:34px; font-size:14px; }
  .header .burger { display:flex; }
  .mobile-menu {
    display:none; position:fixed; inset:60px 0 0; z-index:29; overflow-y:auto;
    background:var(--bg); border-top:1px solid var(--line);
    padding:28px 20px 40px; flex-direction:column; gap:4px;
  }
  .mobile-menu.is-open { display:flex; }
  .mobile-menu a {
    display:flex; align-items:center; min-height:52px;
    font-family:var(--serif); font-size:22px; font-weight:500; color:var(--ink);
    border-bottom:1px solid var(--line);
  }
  .hero { min-height:auto; padding:112px 20px 72px; }
  .hero-dots { inset:0; width:100%; opacity:.14; }
  .hero-text { max-width:100%; }
  .service { grid-column:span 12 !important; }
  .quote { grid-template-columns:1fr; gap:26px; }
  .quote footer { align-self:start; }
  .member, .member:nth-child(2) { grid-template-columns:1fr; justify-items:center; text-align:left; }
  .member:nth-child(2) .portrait { order:0; }
  .portrait { width:150px; height:150px; }
  .timeline::before { display:none; }
  .step { flex:1 1 100%; min-width:0; }
  .contact-side { flex-direction:row; align-items:center; flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) {
  .marquee { animation:none; }
  .hero-dots span { transition:none !important; }
}
