:root {
  --ink: #0a0d10;
  --ink-soft: #151a1f;
  --graphite: #22282e;
  --steel: #77808a;
  --mist: #dce1e4;
  --snow: #f5f6f4;
  --paper: #eceeeb;
  --white: #ffffff;
  --swiss-red: #d8071d;
  --swiss-red-deep: #a80517;
  --ice: #b8d5df;
  --gold: #bfa46b;
  --line-dark: rgba(255,255,255,.13);
  --line-light: rgba(10,13,16,.12);
  --shadow-xl: 0 40px 120px rgba(0,0,0,.28);
  --shadow-lg: 0 24px 70px rgba(10,13,16,.16);
  --shadow-md: 0 16px 44px rgba(10,13,16,.12);
  --radius-xxl: 42px;
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --header-h: 84px;
  --container: min(1240px, calc(100vw - 48px));
  --ease-lux: cubic-bezier(.2,.75,.25,1);
  --ease-snap: cubic-bezier(.16,1,.3,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--snow);
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.is-loading, body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--swiss-red); color: #fff; }

.container { width: var(--container); margin-inline: auto; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.skip-link { position: fixed; top: 12px; left: 12px; transform: translateY(-140%); background: #fff; padding: 12px 18px; border-radius: 999px; z-index: 9999; transition: transform .25s; }
.skip-link:focus { transform: translateY(0); }
.todo { display:inline-flex; align-items:center; gap:7px; padding:4px 10px; border-radius:999px; background:rgba(216,7,29,.1); color:var(--swiss-red-deep); font-weight:800; letter-spacing:.03em; font-size:.78rem; }
.todo::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--swiss-red); box-shadow:0 0 0 5px rgba(216,7,29,.1); }

/* PRELOADER + PAGE MOTION */
.preloader {
  position: fixed; inset: 0; z-index: 10000;
  display: grid; place-items: center;
  color: #fff; background: #080a0d;
  transition: opacity .8s var(--ease-lux), visibility .8s;
}
.preloader.is-hidden { opacity: 0; visibility: hidden; }
.preloader__core { display:grid; justify-items:center; gap:22px; }
.preloader__mark {
  width: 112px; aspect-ratio: 1; object-fit: contain;
  padding: 14px; border-radius: 28px;
  background: linear-gradient(145deg,#ffffff,#ece9e1);
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 24px 70px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.85);
  filter: none;
  animation: markFloat 2.2s ease-in-out infinite;
}
.preloader__name { font-size:.84rem; letter-spacing:.42em; text-transform:uppercase; font-weight:800; }
.preloader__track { width:240px; height:1px; background:rgba(255,255,255,.18); overflow:hidden; }
.preloader__track span { display:block; width:42%; height:100%; background:var(--swiss-red); animation: preloadTrack 1.4s var(--ease-lux) infinite; }
.page-transition { position:fixed; inset:0; background:var(--swiss-red); z-index:9998; transform:translateY(100%); pointer-events:none; }
.page-transition.is-entering { animation:pageEnter .85s var(--ease-snap) both; }

.scroll-progress { position:fixed; top:0; left:0; width:0; height:3px; z-index:1001; background:linear-gradient(90deg,var(--swiss-red),#ff6a76); box-shadow:0 0 20px rgba(216,7,29,.7); }

.cursor-dot, .cursor-ring { position:fixed; pointer-events:none; z-index:9997; border-radius:50%; transform:translate(-50%,-50%); opacity:0; transition:opacity .25s; }
.cursor-dot { width:5px; height:5px; background:var(--swiss-red); }
.cursor-ring { width:34px; height:34px; border:1px solid rgba(255,255,255,.75); mix-blend-mode:difference; transition:width .25s,height .25s,opacity .25s,border-color .25s; }
body.has-cursor .cursor-dot, body.has-cursor .cursor-ring { opacity:1; }
body.cursor-active .cursor-ring { width:58px; height:58px; border-color:var(--swiss-red); }

/* HEADER */
.site-header {
  position:fixed; inset:0 0 auto; z-index:1000;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .45s, border-color .45s, transform .45s var(--ease-lux), box-shadow .45s;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled {
  background:rgba(247,248,246,.86);
  border-color:rgba(10,13,16,.08);
  box-shadow:0 12px 40px rgba(0,0,0,.08);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
}
.site-header.is-hidden { transform:translateY(-110%); }
.header__inner { width:var(--container); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:14px; min-width:215px; }
.brand__plate {
  width:50px; height:50px; display:grid; place-items:center;
  border-radius:15px; background:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.65);
  box-shadow:0 10px 28px rgba(0,0,0,.13); overflow:hidden;
}
.brand__plate img { width:41px; height:41px; object-fit:contain; }
.brand__text { color:#fff; transition:color .4s; line-height:1.05; }
.brand__name { display:block; font-weight:850; text-transform:uppercase; letter-spacing:.2em; font-size:.86rem; }
.brand__tag { display:block; margin-top:5px; color:rgba(255,255,255,.68); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; transition:color .4s; }
.site-header.is-scrolled .brand__text { color:var(--ink); }
.site-header.is-scrolled .brand__tag { color:var(--steel); }
.nav { display:flex; align-items:center; gap:24px; color:#fff; }
.nav a { position:relative; padding:10px 0; font-size:.84rem; font-weight:700; letter-spacing:.04em; }
.nav a::after { content:""; position:absolute; left:0; right:100%; bottom:3px; height:1px; background:var(--swiss-red); transition:right .35s var(--ease-lux); }
.nav a:hover::after, .nav a[aria-current="page"]::after { right:0; }
.site-header.is-scrolled .nav { color:var(--ink); }
.header__actions { display:flex; align-items:center; gap:12px; }
.header__cta { display:inline-flex; align-items:center; gap:10px; padding:12px 17px; border-radius:999px; background:#fff; color:var(--ink); font-size:.82rem; font-weight:800; box-shadow:0 10px 32px rgba(0,0,0,.13); transition:transform .3s, background .3s, color .3s; }
.header__cta:hover { transform:translateY(-2px); background:var(--swiss-red); color:#fff; }
.site-header.is-scrolled .header__cta { background:var(--ink); color:#fff; }
.menu-button { display:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.25); border-radius:15px; background:rgba(255,255,255,.08); position:relative; cursor:pointer; }
.menu-button span { position:absolute; width:20px; height:1.5px; background:#fff; left:12px; transition:transform .35s, top .35s, background .35s; }
.menu-button span:first-child { top:17px; }
.menu-button span:last-child { top:27px; }
.site-header.is-scrolled .menu-button { border-color:rgba(10,13,16,.12); background:#fff; }
.site-header.is-scrolled .menu-button span { background:var(--ink); }
.menu-open .menu-button span:first-child { top:22px; transform:rotate(45deg); }
.menu-open .menu-button span:last-child { top:22px; transform:rotate(-45deg); }
.mobile-menu {
  position:fixed; inset:0; z-index:990; background:#090c0f; color:#fff;
  display:grid; grid-template-columns:1fr .7fr; padding:calc(var(--header-h) + 70px) max(6vw,30px) 50px;
  opacity:0; visibility:hidden; transform:translateY(-2%); transition:opacity .45s,visibility .45s,transform .45s var(--ease-lux);
}
.menu-open .mobile-menu { opacity:1; visibility:visible; transform:none; }
.mobile-menu__links { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.mobile-menu__links a { font-family:"Cormorant Garamond",serif; font-size:clamp(2.4rem,6vw,5rem); line-height:.95; color:rgba(255,255,255,.52); transition:color .25s, transform .25s; }
.mobile-menu__links a:hover { color:#fff; transform:translateX(12px); }
.mobile-menu__aside { align-self:end; border-left:1px solid rgba(255,255,255,.12); padding-left:32px; color:rgba(255,255,255,.68); }
.mobile-menu__aside strong { display:block; color:#fff; margin-bottom:10px; }

/* GLOBAL TYPOGRAPHY + BUTTONS */
.eyebrow { display:inline-flex; align-items:center; gap:11px; margin:0 0 18px; font-size:.72rem; font-weight:850; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow::before { content:""; width:34px; height:1px; background:currentColor; opacity:.65; }
.display { font-family:"Cormorant Garamond",serif; font-weight:500; letter-spacing:-.045em; }
.section-title { margin:0; font-family:"Cormorant Garamond",serif; font-size:clamp(3rem,6vw,6.5rem); line-height:.88; letter-spacing:-.05em; font-weight:500; }
.section-copy { max-width:680px; font-size:1rem; line-height:1.85; color:#5b636a; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:52px; padding:0 22px; border-radius:999px; border:1px solid transparent; font-size:.82rem; letter-spacing:.04em; font-weight:850; cursor:pointer; position:relative; overflow:hidden; isolation:isolate; transition:transform .3s var(--ease-lux),box-shadow .3s,background .3s,color .3s,border-color .3s; }
.button::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--swiss-red); transform:translateY(102%); transition:transform .38s var(--ease-lux); }
.button:hover::before { transform:none; }
.button:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(0,0,0,.18); }
.button--light { background:#fff; color:var(--ink); }
.button--light:hover { color:#fff; }
.button--dark { background:var(--ink); color:#fff; }
.button--dark:hover { color:#fff; }
.button--outline { border-color:rgba(255,255,255,.4); color:#fff; background:rgba(255,255,255,.06); backdrop-filter:blur(10px); }
.button--outline-dark { border-color:rgba(10,13,16,.18); color:var(--ink); background:transparent; }
.button__icon { font-size:1.1rem; transition:transform .3s; }
.button:hover .button__icon { transform:translate(3px,-3px); }

/* HERO */
.hero { position:relative; min-height:100svh; color:#fff; background:#07090c; overflow:hidden; display:flex; align-items:flex-end; }
.hero__media { position:absolute; inset:0; overflow:hidden; }
.hero__picture, .hero__picture img { width:100%; height:100%; }
.hero__picture img { object-fit:cover; object-position:center 45%; transform:scale(1.06); will-change:transform; }
.hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,7,9,.88) 0%,rgba(5,7,9,.56) 42%,rgba(5,7,9,.18) 72%,rgba(5,7,9,.35) 100%), linear-gradient(180deg,rgba(5,7,9,.2) 0%,rgba(5,7,9,.16) 50%,rgba(5,7,9,.86) 100%); }
.hero__aurora { position:absolute; inset:-20%; background:radial-gradient(circle at 68% 30%,rgba(169,209,220,.27),transparent 26%),radial-gradient(circle at 35% 45%,rgba(216,7,29,.14),transparent 22%); mix-blend-mode:screen; animation:aurora 12s ease-in-out infinite alternate; }
#topography { position:absolute; inset:0; width:100%; height:100%; opacity:.65; mix-blend-mode:screen; pointer-events:none; }
.hero__grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:88px 88px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 82%); opacity:.45; }
.hero__content { position:relative; z-index:4; width:var(--container); margin:0 auto; padding:calc(var(--header-h) + 76px) 0 58px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.55fr); gap:70px; align-items:end; }
.hero__headline { margin:0; font-family:"Cormorant Garamond",serif; font-weight:500; font-size:clamp(4rem,8vw,8.7rem); line-height:.78; letter-spacing:-.065em; max-width:930px; }
.hero__headline span { display:block; overflow:hidden; }
.hero__headline em { color:#fff; font-style:normal; position:relative; }
.hero__headline em::after { content:""; position:absolute; left:-2%; right:-3%; bottom:10%; height:.09em; background:var(--swiss-red); transform:scaleX(0); transform-origin:left; animation:headlineLine 1.2s .9s var(--ease-snap) forwards; z-index:-1; }
.hero__lead { max-width:660px; margin:30px 0 0; color:rgba(255,255,255,.76); font-size:1.04rem; line-height:1.8; }
.hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:31px; }
.hero__panel { justify-self:end; width:min(100%,390px); padding:24px; border:1px solid rgba(255,255,255,.18); background:rgba(9,12,15,.38); border-radius:28px; backdrop-filter:blur(22px) saturate(130%); box-shadow:0 30px 80px rgba(0,0,0,.28); }
.hero__panel-top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.13); }
.hero__panel-label { font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.56); }
.hero__clock { font-variant-numeric:tabular-nums; font-size:1.25rem; font-weight:800; }
.hero__panel-main { padding:22px 0 7px; }
.hero__panel-main strong { display:block; font-family:"Cormorant Garamond",serif; font-size:2rem; font-weight:500; line-height:1; }
.hero__panel-main p { color:rgba(255,255,255,.62); line-height:1.7; font-size:.9rem; }
.hero__steps { display:grid; gap:10px; margin-top:18px; }
.hero__step { display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:12px; padding:11px 12px; border-radius:14px; background:rgba(255,255,255,.06); }
.hero__step i { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.1); font-style:normal; font-size:.72rem; }
.hero__step span { font-size:.82rem; }
.hero__step b { color:rgba(255,255,255,.48); font-size:.72rem; }
.hero__footer { grid-column:1/-1; display:flex; align-items:flex-end; justify-content:space-between; gap:22px; margin-top:54px; }
.hero__facts { display:flex; gap:34px; flex-wrap:wrap; }
.hero__fact strong { display:block; font-size:1.03rem; }
.hero__fact span { display:block; margin-top:4px; color:rgba(255,255,255,.5); font-size:.74rem; }
.hero__scroll { display:flex; align-items:center; gap:12px; color:rgba(255,255,255,.55); font-size:.72rem; letter-spacing:.17em; text-transform:uppercase; }
.hero__scroll::after { content:""; width:56px; height:1px; background:rgba(255,255,255,.45); animation:scrollLine 1.8s ease-in-out infinite; transform-origin:left; }

/* TICKER */
.kinetic-strip { background:var(--swiss-red); color:#fff; overflow:hidden; border-block:1px solid rgba(255,255,255,.12); }
.kinetic-strip__track { width:max-content; display:flex; align-items:center; animation:ticker 34s linear infinite; }
.kinetic-strip__item { display:flex; align-items:center; gap:22px; padding:17px 30px; white-space:nowrap; font-size:.72rem; font-weight:850; letter-spacing:.18em; text-transform:uppercase; }
.kinetic-strip__item i { width:6px; height:6px; background:#fff; border-radius:50%; }

/* MANIFESTO */
.manifesto { background:var(--snow); padding:130px 0 120px; }
.manifesto__grid { display:grid; grid-template-columns:180px 1fr; gap:70px; }
.manifesto__index { padding-top:14px; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:#6d747a; }
.manifesto__index strong { display:block; font-family:"Cormorant Garamond",serif; color:var(--swiss-red); font-size:3rem; font-weight:500; letter-spacing:0; margin-bottom:8px; }
.manifesto__quote { margin:0; font-family:"Cormorant Garamond",serif; font-size:clamp(3.1rem,6vw,7rem); line-height:.92; font-weight:500; letter-spacing:-.05em; }
.manifesto__quote em { color:var(--swiss-red); font-style:italic; }
.manifesto__body { display:grid; grid-template-columns:1fr 1fr; gap:45px; margin-top:55px; color:#5d656b; line-height:1.9; }

/* PRECISION CORE */
.precision-core { position:relative; background:#090c0f; color:#fff; padding:130px 0; overflow:hidden; }
.precision-core::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 50%,rgba(184,213,223,.14),transparent 34%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:auto,74px 74px,74px 74px; }
.precision-core__layout { position:relative; display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:70px; }
.precision-core__copy p { color:rgba(255,255,255,.64); line-height:1.85; }
.precision-dial { position:relative; width:min(650px,90vw); aspect-ratio:1; justify-self:end; perspective:1200px; }
.precision-dial__stage { position:absolute; inset:8%; border-radius:50%; transform-style:preserve-3d; transition:transform .2s ease-out; }
.precision-dial__ring { position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; inset:0; }
.precision-dial__ring:nth-child(2) { inset:9%; border-style:dashed; animation:spin 26s linear infinite reverse; }
.precision-dial__ring:nth-child(3) { inset:19%; border-color:rgba(216,7,29,.42); animation:spin 18s linear infinite; }
.precision-dial__ring:nth-child(4) { inset:31%; border-color:rgba(255,255,255,.25); }
.precision-dial__ticks { position:absolute; inset:0; animation:spin 80s linear infinite; }
.precision-dial__tick { position:absolute; left:50%; top:50%; width:1px; height:10px; background:rgba(255,255,255,.28); transform-origin:50% 0; }
.precision-dial__center { position:absolute; inset:36%; border-radius:50%; display:grid; place-items:center; background:rgba(247,244,237,.96); border:1px solid rgba(255,255,255,.35); box-shadow:inset 0 0 44px rgba(255,255,255,.35),0 0 80px rgba(184,213,223,.13); backdrop-filter:blur(14px); }
.precision-dial__center img { width:54%; }
.precision-dial__node { position:absolute; width:124px; min-height:68px; display:grid; place-items:center; text-align:center; padding:10px; border-radius:17px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); backdrop-filter:blur(15px); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.precision-dial__node--a { left:0; top:24%; }
.precision-dial__node--b { right:-2%; top:46%; }
.precision-dial__node--c { left:23%; bottom:0; }
.precision-dial__beam { position:absolute; left:50%; top:50%; width:35%; height:1px; background:linear-gradient(90deg,var(--swiss-red),transparent); transform-origin:left; animation:radar 7s linear infinite; box-shadow:0 0 18px rgba(216,7,29,.8); }

/* SCROLL STORY */
.journey { background:var(--paper); }
.journey__layout { display:grid; grid-template-columns:1.05fr .95fr; min-height:440vh; }
.journey__visual { position:sticky; top:0; height:100vh; overflow:hidden; background:#0a0d10; color:#fff; }
.journey__images { position:absolute; inset:0; }
.journey__image { position:absolute; inset:0; opacity:0; transform:scale(1.08); transition:opacity .8s var(--ease-lux),transform 1.4s var(--ease-lux); }
.journey__image.is-active { opacity:1; transform:scale(1); }
.journey__image img { width:100%; height:100%; object-fit:cover; }
.journey__image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,6,8,.15),rgba(4,6,8,.78)),linear-gradient(90deg,rgba(4,6,8,.55),transparent 60%); }
.journey__hud { position:absolute; inset:auto 55px 54px; z-index:3; }
.journey__hud small { display:block; color:rgba(255,255,255,.52); letter-spacing:.2em; text-transform:uppercase; }
.journey__hud strong { display:block; margin-top:12px; font-family:"Cormorant Garamond",serif; font-size:clamp(3rem,6vw,6rem); font-weight:500; line-height:.9; }
.journey__hud p { max-width:620px; color:rgba(255,255,255,.72); line-height:1.75; }
.journey__steps { padding:16vh 8vw 18vh; display:flex; flex-direction:column; justify-content:space-around; gap:32vh; }
.journey-card { max-width:620px; padding:34px; border-radius:30px; background:rgba(255,255,255,.76); border:1px solid rgba(10,13,16,.09); box-shadow:var(--shadow-lg); backdrop-filter:blur(20px); opacity:.48; transform:translateY(30px); transition:opacity .55s,transform .55s,background .55s; }
.journey-card.is-active { opacity:1; transform:none; background:#fff; }
.journey-card__num { color:var(--swiss-red); font-family:"Cormorant Garamond",serif; font-size:3.4rem; }
.journey-card h3 { margin:8px 0 14px; font-size:1.45rem; }
.journey-card p { margin:0; color:#656c72; line-height:1.8; }
.journey-card ul { margin:18px 0 0; padding-left:18px; color:#656c72; line-height:1.8; }

/* THIRD PILLAR INTERACTIVE */
.pillar-lab { padding:140px 0; background:var(--snow); }
.pillar-lab__head { display:grid; grid-template-columns:1fr .7fr; gap:60px; align-items:end; }
.pillar-switch { display:flex; gap:8px; justify-self:end; padding:6px; border-radius:999px; background:#e4e6e4; }
.pillar-switch button { border:0; background:transparent; padding:12px 18px; border-radius:999px; font-weight:850; cursor:pointer; color:#6f767c; transition:.3s; }
.pillar-switch button.is-active { background:var(--ink); color:#fff; box-shadow:0 10px 24px rgba(0,0,0,.16); }
.pillar-lab__grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:28px; margin-top:60px; }
.pillar-visual { min-height:650px; border-radius:38px; position:relative; overflow:hidden; background:#0a0d10; color:#fff; box-shadow:var(--shadow-xl); }
.pillar-visual__bg { position:absolute; inset:0; background:radial-gradient(circle at 55% 40%,rgba(184,213,223,.18),transparent 32%),linear-gradient(135deg,#11161b,#060809); }
.pillar-visual__orbit { position:absolute; inset:15%; border:1px solid rgba(255,255,255,.14); border-radius:50%; animation:spin 35s linear infinite; }
.pillar-visual__orbit::before,.pillar-visual__orbit::after { content:""; position:absolute; border:1px dashed rgba(255,255,255,.12); border-radius:50%; }
.pillar-visual__orbit::before { inset:13%; }
.pillar-visual__orbit::after { inset:29%; border-color:rgba(216,7,29,.35); }
.pillar-visual__number { position:absolute; inset:0; display:grid; place-items:center; font-family:"Cormorant Garamond",serif; font-size:clamp(15rem,30vw,27rem); color:rgba(255,255,255,.06); line-height:1; }
.pillar-visual__content { position:absolute; inset:auto 38px 38px; z-index:2; }
.pillar-visual__content strong { display:block; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.pillar-visual__content h3 { margin:12px 0 10px; font-family:"Cormorant Garamond",serif; font-size:3rem; font-weight:500; }
.pillar-visual__content p { color:rgba(255,255,255,.68); line-height:1.75; }
.pillar-details { border-radius:38px; background:#fff; border:1px solid var(--line-light); padding:42px; box-shadow:var(--shadow-lg); }
.pillar-details__panel { display:none; }
.pillar-details__panel.is-active { display:block; animation:panelIn .55s var(--ease-lux); }
.pillar-details h3 { margin:0 0 16px; font-family:"Cormorant Garamond",serif; font-size:3.2rem; font-weight:500; }
.pillar-details p { color:#60686f; line-height:1.85; }
.detail-list { display:grid; gap:12px; margin:28px 0; }
.detail-item { display:grid; grid-template-columns:28px 1fr; gap:13px; padding:15px 0; border-bottom:1px solid var(--line-light); }
.detail-item i { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:rgba(216,7,29,.09); color:var(--swiss-red); font-style:normal; font-weight:900; }
.detail-item strong { display:block; font-size:.9rem; }
.detail-item span { display:block; margin-top:4px; color:#747b80; font-size:.86rem; line-height:1.6; }
.source-note { margin-top:24px; padding:16px 18px; border-left:3px solid var(--swiss-red); background:#f4f4f2; color:#60676d; font-size:.82rem; line-height:1.65; }

/* SERVICES */
.services { padding:130px 0; background:#0a0d10; color:#fff; overflow:hidden; }
.services__intro { display:grid; grid-template-columns:1fr .8fr; gap:60px; align-items:end; }
.services__intro p { color:rgba(255,255,255,.62); line-height:1.85; }
.services__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:60px; }
.service-card { min-height:340px; position:relative; padding:32px; border-radius:30px; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05); transition:transform .45s var(--ease-lux),background .45s,border-color .45s; }
.service-card:hover { transform:translateY(-8px); background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.22); }
.service-card__index { color:var(--swiss-red); font-size:.72rem; font-weight:850; letter-spacing:.2em; }
.service-card h3 { margin:70px 0 12px; font-family:"Cormorant Garamond",serif; font-size:3rem; font-weight:500; }
.service-card p { max-width:520px; color:rgba(255,255,255,.61); line-height:1.8; }
.service-card__glyph { position:absolute; right:24px; top:24px; width:90px; height:90px; border-radius:50%; border:1px solid rgba(255,255,255,.13); display:grid; place-items:center; font-family:"Cormorant Garamond",serif; font-size:2.3rem; color:rgba(255,255,255,.4); }
.service-card__line { position:absolute; left:32px; right:32px; bottom:26px; height:1px; background:linear-gradient(90deg,var(--swiss-red),rgba(255,255,255,.12)); transform-origin:left; transform:scaleX(.18); transition:transform .55s var(--ease-lux); }
.service-card:hover .service-card__line { transform:scaleX(1); }

/* DATA / HIGH-TECH PANEL */
.advisory-system { padding:130px 0; background:var(--paper); }
.advisory-system__grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:54px; align-items:center; }
.advisory-system__copy p { color:#646b70; line-height:1.85; }
.system-window { border-radius:34px; overflow:hidden; background:#0b0e12; color:#fff; box-shadow:var(--shadow-xl); border:1px solid rgba(255,255,255,.08); transform-style:preserve-3d; }
.system-window__bar { height:58px; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:0 20px; border-bottom:1px solid rgba(255,255,255,.1); background:#11161b; }
.system-window__dots { display:flex; gap:7px; }
.system-window__dots span { width:8px; height:8px; border-radius:50%; background:#555d65; }
.system-window__dots span:first-child { background:var(--swiss-red); }
.system-window__title { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.48); }
.system-window__body { display:grid; grid-template-columns:180px 1fr; min-height:520px; }
.system-nav { padding:20px 12px; border-right:1px solid rgba(255,255,255,.08); }
.system-nav__item { padding:12px 13px; border-radius:12px; color:rgba(255,255,255,.48); font-size:.78rem; }
.system-nav__item.is-active { background:rgba(216,7,29,.15); color:#fff; }
.system-content { padding:26px; }
.system-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.system-kpi { padding:16px; border-radius:16px; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.08); }
.system-kpi strong { display:block; font-size:1.8rem; font-variant-numeric:tabular-nums; }
.system-kpi span { color:rgba(255,255,255,.45); font-size:.72rem; }
.lead-card { margin-top:18px; padding:20px; border-radius:19px; background:#12171c; border:1px solid rgba(255,255,255,.09); }
.lead-card__head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.lead-card__identity strong { display:block; }
.lead-card__identity span { color:rgba(255,255,255,.4); font-size:.72rem; }
.status-pill { padding:7px 10px; border-radius:999px; background:rgba(216,7,29,.15); color:#ff7b88; font-size:.68rem; font-weight:850; }
.lead-card__fields { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:18px; }
.lead-field { padding:12px; border-radius:13px; background:rgba(255,255,255,.045); }
.lead-field span { display:block; color:rgba(255,255,255,.42); font-size:.68rem; }
.lead-field strong { display:block; margin-top:5px; font-size:.82rem; }
.pipeline { display:flex; gap:6px; margin-top:18px; }
.pipeline span { flex:1; height:5px; border-radius:999px; background:rgba(255,255,255,.09); }
.pipeline span.is-active { background:var(--swiss-red); box-shadow:0 0 18px rgba(216,7,29,.6); }

/* SOURCES + TRUST */
.sources-preview { padding:120px 0; background:var(--snow); }
.sources-preview__grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; }
.source-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
.source-card { padding:24px; border-radius:24px; background:#fff; border:1px solid var(--line-light); transition:transform .35s,box-shadow .35s; }
.source-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); }
.source-card small { color:var(--swiss-red); font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.source-card h3 { margin:12px 0 10px; }
.source-card p { color:#6b7277; line-height:1.7; font-size:.88rem; }
.source-card span { display:inline-flex; margin-top:15px; font-size:.78rem; font-weight:850; }

/* CTA */
.final-cta { position:relative; min-height:85vh; display:grid; place-items:center; color:#fff; overflow:hidden; background:#080a0c; }
.final-cta__media { position:absolute; inset:0; }
.final-cta__media img { width:100%; height:100%; object-fit:cover; opacity:.58; transform:scale(1.04); }
.final-cta__media::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 40%,rgba(0,0,0,.08),rgba(0,0,0,.82) 75%),linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.62)); }
.final-cta__inner { position:relative; z-index:2; text-align:center; width:min(960px,calc(100% - 36px)); }
.final-cta__inner h2 { margin:0; font-family:"Cormorant Garamond",serif; font-size:clamp(4rem,9vw,9rem); line-height:.78; letter-spacing:-.055em; font-weight:500; }
.final-cta__inner p { max-width:650px; margin:28px auto; color:rgba(255,255,255,.7); line-height:1.8; }
.final-cta__ring { position:absolute; width:min(720px,75vw); aspect-ratio:1; border:1px solid rgba(255,255,255,.13); border-radius:50%; animation:spin 70s linear infinite; }
.final-cta__ring::before,.final-cta__ring::after { content:""; position:absolute; border-radius:50%; border:1px dashed rgba(255,255,255,.11); }
.final-cta__ring::before { inset:11%; }
.final-cta__ring::after { inset:28%; border-color:rgba(216,7,29,.36); animation:spin 18s linear infinite reverse; }

/* FOOTER */
.site-footer { background:#07090c; color:#fff; padding:75px 0 26px; }
.footer__top { display:grid; grid-template-columns:1.15fr .62fr .62fr .78fr; gap:38px; padding-bottom:65px; }
.footer__brand { max-width:380px; }
.footer__logo-wrap { width:210px; padding:14px 16px; background:rgba(255,255,255,.94); border-radius:20px; }
.footer__brand p { color:rgba(255,255,255,.54); line-height:1.8; }
.footer__column h3 { margin:0 0 18px; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.footer__column a,.footer__column span { display:block; margin:10px 0; color:rgba(255,255,255,.78); font-size:.87rem; }
.footer__bottom { display:flex; justify-content:space-between; gap:20px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.42); font-size:.72rem; }
.footer__official-contact { display:flex; flex-wrap:wrap; gap:8px 18px; }
.footer__official-contact a { color:rgba(255,255,255,.78); }
.footer__official-contact a:hover { color:#fff; }
.footer__socials { display:flex; gap:14px; }

/* INNER PAGES */
.page-hero { position:relative; min-height:72vh; color:#fff; display:flex; align-items:flex-end; overflow:hidden; background:#080a0d; }
.page-hero__media { position:absolute; inset:0; }
.page-hero__media img { width:100%; height:100%; object-fit:cover; opacity:.7; }
.page-hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,8,10,.88),rgba(6,8,10,.28)),linear-gradient(180deg,rgba(6,8,10,.12),rgba(6,8,10,.78)); }
.page-hero__content { position:relative; z-index:2; width:var(--container); margin:auto; padding:calc(var(--header-h) + 90px) 0 70px; }
.page-hero h1 { margin:0; max-width:1000px; font-family:"Cormorant Garamond",serif; font-size:clamp(4rem,8vw,8rem); line-height:.8; letter-spacing:-.055em; font-weight:500; }
.page-hero p { max-width:720px; color:rgba(255,255,255,.72); line-height:1.85; }
.page-section { padding:110px 0; background:var(--snow); }
.page-section--dark { background:#090c0f; color:#fff; }
.content-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:70px; }
.content-nav { position:sticky; top:120px; align-self:start; padding:24px; border-radius:24px; background:#fff; border:1px solid var(--line-light); }
.content-nav a { display:block; padding:10px 0; color:#6c7378; font-size:.82rem; border-bottom:1px solid var(--line-light); }
.content-nav a:last-child { border-bottom:0; }
.prose { max-width:840px; }
.prose h2 { margin:0 0 20px; font-family:"Cormorant Garamond",serif; font-size:clamp(2.5rem,5vw,5rem); line-height:.92; font-weight:500; }
.prose h3 { margin:44px 0 14px; font-size:1.2rem; }
.prose p,.prose li { color:#60676d; line-height:1.9; }
.page-section--dark .prose p,.page-section--dark .prose li { color:rgba(255,255,255,.65); }
.prose ul { padding-left:20px; }
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; margin-top:36px; }
.info-card { padding:26px; border-radius:24px; background:#fff; border:1px solid var(--line-light); box-shadow:var(--shadow-md); }
.info-card h3 { margin:18px 0 10px; }
.info-card p { color:#666d72; line-height:1.75; font-size:.9rem; }
.info-card__icon { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:var(--ink); color:#fff; }
.legal-table { width:100%; border-collapse:collapse; margin-top:30px; border-radius:22px; overflow:hidden; background:#fff; }
.legal-table th,.legal-table td { padding:18px 20px; text-align:left; border-bottom:1px solid var(--line-light); vertical-align:top; }
.legal-table th { width:35%; color:#4f565c; }
.legal-table td { color:#687076; }
.official-link { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:21px 0; border-bottom:1px solid var(--line-light); }
.official-link strong { display:block; }
.official-link span { display:block; margin-top:4px; color:#737b80; font-size:.85rem; }
.official-link b { color:var(--swiss-red); }

/* FAQ */
.faq-list { display:grid; gap:12px; }
.faq-item { background:#fff; border:1px solid var(--line-light); border-radius:20px; overflow:hidden; }
.faq-item summary { list-style:none; cursor:pointer; padding:21px 24px; font-weight:800; position:relative; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; position:absolute; right:22px; top:50%; transform:translateY(-50%); color:var(--swiss-red); font-size:1.4rem; }
.faq-item[open] summary::after { content:"–"; }
.faq-item__answer { padding:0 24px 22px; color:#646b71; line-height:1.82; }

/* CONTACT FORMS */
.form-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:28px; }
.contact-card { padding:32px; border-radius:28px; background:#0a0d10; color:#fff; }
.contact-card h2 { margin:0 0 16px; font-family:"Cormorant Garamond",serif; font-size:3rem; font-weight:500; }
.contact-card p { color:rgba(255,255,255,.62); line-height:1.8; }
.contact-list { margin-top:28px; }
.contact-list div { padding:16px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.contact-list span { display:block; color:rgba(255,255,255,.42); font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; }
.contact-list strong { display:block; margin-top:5px; }
.form-card { padding:34px; border-radius:28px; background:#fff; border:1px solid var(--line-light); box-shadow:var(--shadow-lg); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:block; }
.field--full { grid-column:1/-1; }
.field label,.field > span { display:block; margin-bottom:8px; font-size:.78rem; font-weight:850; letter-spacing:.04em; }
.input,.select,.textarea { width:100%; border:1px solid rgba(10,13,16,.14); border-radius:15px; background:#f7f8f6; padding:14px 15px; color:var(--ink); transition:border-color .25s,box-shadow .25s,background .25s; }
.input:focus,.select:focus,.textarea:focus { outline:none; border-color:var(--swiss-red); box-shadow:0 0 0 4px rgba(216,7,29,.08); background:#fff; }
.textarea { min-height:130px; resize:vertical; }
.consent { display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; margin:20px 0; color:#646b70; font-size:.8rem; line-height:1.6; }
.form-status { min-height:22px; margin:12px 0; font-size:.82rem; }
.form-status.is-error { color:var(--swiss-red-deep); }
.form-status.is-success { color:#08785e; }

/* BILAN */
.bilan-body { background:#080a0d; color:#fff; min-height:100vh; }
.bilan-shell { min-height:100svh; display:grid; grid-template-columns:.95fr 1.05fr; }
.bilan-visual { position:relative; min-height:100svh; overflow:hidden; }
.bilan-visual__image { position:absolute; inset:0; }
.bilan-visual__image img { width:100%; height:100%; object-fit:cover; }
.bilan-visual__image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,6,8,.12),rgba(4,6,8,.74)),linear-gradient(90deg,rgba(4,6,8,.28),rgba(4,6,8,.08)); }
.bilan-visual__canvas { position:absolute; inset:0; width:100%; height:100%; }
.bilan-visual__brand { position:absolute; top:30px; left:34px; width:190px; padding:12px 15px; border-radius:18px; background:rgba(255,255,255,.94); z-index:2; }
.bilan-visual__content { position:absolute; left:42px; right:42px; bottom:44px; z-index:2; }
.bilan-visual__content small { letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.bilan-visual__content h1 { margin:12px 0; font-family:"Cormorant Garamond",serif; font-size:clamp(3.5rem,6vw,6.5rem); font-weight:500; line-height:.82; letter-spacing:-.05em; }
.bilan-visual__content p { max-width:590px; color:rgba(255,255,255,.68); line-height:1.75; }
.bilan-panel { min-height:100svh; background:#f4f5f2; color:var(--ink); display:flex; flex-direction:column; }
.bilan-panel__top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:28px 34px; border-bottom:1px solid var(--line-light); }
.bilan-back { font-size:.78rem; font-weight:800; color:#626a70; }
.bilan-step-label { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#72797e; }
.bilan-progress { height:3px; background:#dde0dc; }
.bilan-progress span { display:block; height:100%; width:20%; background:var(--swiss-red); transition:width .55s var(--ease-lux); box-shadow:0 0 16px rgba(216,7,29,.45); }
.bilan-panel__body { flex:1; display:grid; place-items:center; padding:45px 34px 55px; }
.bilan-form { width:min(720px,100%); }
.bilan-step { display:none; }
.bilan-step.is-active { display:block; animation:stepIn .55s var(--ease-snap); }
.bilan-step__index { display:inline-flex; margin-bottom:18px; color:var(--swiss-red); font-weight:850; font-size:.72rem; letter-spacing:.17em; text-transform:uppercase; }
.bilan-step h2 { margin:0; font-family:"Cormorant Garamond",serif; font-size:clamp(2.8rem,5vw,5rem); line-height:.9; font-weight:500; letter-spacing:-.045em; }
.bilan-step > p { color:#666e73; line-height:1.8; }
.choice-grid { display:grid; gap:12px; margin-top:27px; }
.choice { width:100%; display:grid; grid-template-columns:48px 1fr 24px; align-items:center; gap:14px; padding:17px; border:1px solid rgba(10,13,16,.12); border-radius:18px; background:#fff; text-align:left; cursor:pointer; transition:transform .3s,border-color .3s,box-shadow .3s; }
.choice:hover { transform:translateY(-3px); border-color:rgba(216,7,29,.38); box-shadow:0 16px 34px rgba(10,13,16,.09); }
.choice__icon { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; background:#eff0ed; color:var(--swiss-red); font-weight:900; }
.choice strong { display:block; }
.choice small { display:block; margin-top:4px; color:#747b80; line-height:1.5; }
.choice__arrow { color:#9ca1a4; }
.outcome-card { margin-top:25px; padding:24px; border-radius:22px; background:#fff; border:1px solid var(--line-light); box-shadow:var(--shadow-md); }
.outcome-card__tag { color:var(--swiss-red); font-size:.7rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.outcome-card h3 { margin:10px 0; font-size:1.3rem; }
.outcome-card p { color:#666d72; line-height:1.75; }
.optional-panel { margin-top:18px; border:1px solid var(--line-light); border-radius:18px; background:#fff; }
.optional-panel summary { padding:16px 18px; cursor:pointer; font-weight:800; }
.optional-panel__body { padding:0 18px 18px; }
.bilan-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.bilan-success { text-align:center; }
.success-mark { width:78px; height:78px; display:grid; place-items:center; border-radius:50%; background:rgba(9,144,103,.1); color:#08785e; margin:0 auto 24px; font-size:2rem; }
.lead-summary { margin:24px 0; text-align:left; padding:20px; border-radius:18px; background:#fff; border:1px solid var(--line-light); }
.lead-summary div { display:flex; justify-content:space-between; gap:18px; padding:8px 0; border-bottom:1px solid var(--line-light); font-size:.84rem; }
.lead-summary div:last-child { border-bottom:0; }

/* REVEALS */
.reveal { opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease-snap),transform .8s var(--ease-snap); }
.reveal[data-reveal="left"] { transform:translateX(-42px); }
.reveal[data-reveal="right"] { transform:translateX(42px); }
.reveal.is-visible { opacity:1; transform:none; }
[data-tilt] { transform-style:preserve-3d; will-change:transform; }

/* ANIMATIONS */
@keyframes markFloat { 50% { transform:translateY(-8px); } }
@keyframes preloadTrack { 0%{transform:translateX(-120%)} 100%{transform:translateX(340%)} }
@keyframes pageEnter { 0%{transform:translateY(100%)} 50%{transform:translateY(0)} 100%{transform:translateY(-100%)} }
@keyframes aurora { to{transform:translate3d(4%,-3%,0) scale(1.08)} }
@keyframes headlineLine { to{transform:scaleX(1)} }
@keyframes scrollLine { 0%,100%{transform:scaleX(.25);opacity:.4} 50%{transform:scaleX(1);opacity:1} }
@keyframes ticker { to{transform:translateX(-50%)} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes radar { to{transform:rotate(360deg)} }
@keyframes panelIn { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
@keyframes stepIn { from{opacity:0;transform:translateY(20px) scale(.985)} to{opacity:1;transform:none} }

/* RESPONSIVE */
@media (max-width: 1120px) {
  :root { --container:min(100% - 36px,1120px); }
  .nav { display:none; }
  .menu-button { display:block; }
  .hero__content { grid-template-columns:1fr; }
  .hero__panel { justify-self:start; width:min(500px,100%); }
  .precision-core__layout,.pillar-lab__grid,.advisory-system__grid,.sources-preview__grid,.content-grid,.form-layout { grid-template-columns:1fr; }
  .precision-dial { justify-self:center; margin-top:30px; }
  .pillar-lab__head,.services__intro { grid-template-columns:1fr; }
  .pillar-switch { justify-self:start; }
  .content-nav { position:relative; top:auto; }
}
@media (max-width: 880px) {
  :root { --header-h:74px; --container:calc(100% - 28px); }
  .brand__tag { display:none; }
  .brand { min-width:auto; }
  .header__cta { display:none; }
  .mobile-menu { grid-template-columns:1fr; }
  .mobile-menu__aside { display:none; }
  .hero__content { padding-top:calc(var(--header-h) + 64px); }
  .hero__headline { font-size:clamp(3.7rem,13vw,6rem); }
  .hero__footer { flex-direction:column; align-items:flex-start; }
  .manifesto__grid,.manifesto__body { grid-template-columns:1fr; }
  .manifesto__grid { gap:26px; }
  .journey__layout { display:block; min-height:auto; }
  .journey__visual { position:relative; height:75vh; }
  .journey__steps { padding:55px 14px 95px; gap:18px; }
  .journey-card { opacity:1; transform:none; max-width:none; }
  .services__grid,.source-cards,.info-grid { grid-template-columns:1fr; }
  .system-window__body { grid-template-columns:1fr; }
  .system-nav { display:none; }
  .footer__top { grid-template-columns:1fr 1fr; }
  .bilan-shell { grid-template-columns:1fr; }
  .bilan-visual { min-height:48vh; }
  .bilan-panel { min-height:auto; }
  .bilan-visual__content { left:24px; right:24px; bottom:24px; }
}
@media (max-width: 620px) {
  .brand__plate { width:46px; height:46px; }
  .brand__plate img { width:38px; height:38px; }
  .brand__name { font-size:.76rem; letter-spacing:.14em; }
  .hero__content { padding-bottom:38px; }
  .hero__headline { font-size:clamp(3.25rem,16vw,4.8rem); }
  .hero__lead { font-size:.94rem; }
  .hero__panel { padding:18px; }
  .hero__facts { gap:18px; }
  .section-title { font-size:clamp(2.9rem,14vw,4.6rem); }
  .manifesto,.precision-core,.pillar-lab,.services,.advisory-system,.sources-preview,.page-section { padding-block:86px; }
  .precision-dial__node { width:92px; font-size:.58rem; }
  .pillar-visual { min-height:480px; }
  .pillar-details,.service-card,.system-content,.form-card,.contact-card { padding:24px; }
  .services__grid { grid-template-columns:1fr; }
  .service-card { min-height:300px; }
  .service-card h3 { margin-top:58px; font-size:2.5rem; }
  .system-kpis { grid-template-columns:1fr; }
  .lead-card__fields { grid-template-columns:1fr; }
  .footer__top { grid-template-columns:1fr; }
  .footer__bottom { flex-direction:column; }
  .page-hero { min-height:65vh; }
  .page-hero h1 { font-size:clamp(3.3rem,15vw,5.4rem); }
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table th,.legal-table td { display:block; width:100%; }
  .legal-table th { padding-bottom:5px; border-bottom:0; }
  .legal-table td { padding-top:5px; }
  .form-grid { grid-template-columns:1fr; }
  .field--full { grid-column:auto; }
  .bilan-panel__top { padding:20px; }
  .bilan-panel__body { padding:34px 20px 48px; }
  .bilan-visual__brand { width:150px; left:20px; top:20px; }
  .choice { grid-template-columns:42px 1fr 16px; padding:14px; }
  .cursor-dot,.cursor-ring { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .cursor-dot,.cursor-ring,#topography,.bilan-visual__canvas { display:none!important; }
}

/* ============================================================
   V2 — LISIBILITÉ, CENTRAGE ET OPTIMISATION MOBILE
   ============================================================ */

/* Corrige l'héritage blanc des titres dans les cartes blanches placées sur une section sombre. */
.page-section--dark .info-card,
.page-section--dark .info-card h3,
.page-section--dark .info-card strong { color: var(--ink); }
.page-section--dark .info-card p { color: #5f676d; }

.advisor-questions { overflow:hidden; }
.advisor-questions > .container { text-align:center; }
.advisor-questions .section-title {
  max-width:1120px;
  margin-inline:auto;
  text-wrap:balance;
}
.advisor-questions .info-grid {
  width:min(1180px,100%);
  margin:42px auto 0;
  text-align:left;
}
.advisor-questions .info-card {
  min-height:265px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.advisor-questions .info-card__icon { margin-bottom:auto; }

/* Le panneau du bilan reste parfaitement centré, même sur les écrans très larges. */
.bilan-panel__body {
  align-items:center;
  justify-items:center;
}
.bilan-form { margin-inline:auto; }
.bilan-step { width:100%; }
.bilan-step h2 { color:var(--ink); text-wrap:balance; }
.bilan-step > p { max-width:650px; }
.choice, .outcome-card, .optional-panel, .lead-summary { color:var(--ink); }

/* Indicateur privé et lien call center. */
.private-environment {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(216,7,29,.10);
  color:var(--swiss-red-deep);
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.private-environment::before {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--swiss-red);
  box-shadow:0 0 0 5px rgba(216,7,29,.10);
}

/* Rend le contenu sous le pli moins coûteux à calculer sur mobile. */
.manifesto,
.precision-core,
.pillar-lab,
.services,
.advisory-system,
.sources-preview,
.page-section,
.site-footer {
  content-visibility:auto;
  contain-intrinsic-size:900px;
}

@media (max-width: 880px), (pointer: coarse) {
  html { scroll-behavior:auto; }
  body { overscroll-behavior-y:none; }
  .preloader { transition-duration:.25s; }
  .preloader__track span { animation-duration:.8s; }
  .page-transition,
  .cursor-dot,
  .cursor-ring,
  #topography,
  .bilan-visual__canvas,
  .hero__aurora { display:none!important; }
  [data-tilt], [data-magnetic] { transform:none!important; }
  .reveal,
  .reveal[data-reveal="left"],
  .reveal[data-reveal="right"] {
    opacity:1;
    transform:none;
    transition:none;
  }
  .hero { min-height:auto; }
  .hero__media { position:absolute; }
  .hero__picture img {
    transform:none!important;
    object-position:56% center;
    filter:saturate(.92) contrast(1.02);
  }
  .hero__content {
    min-height:100svh;
    padding-top:calc(var(--header-h) + 54px);
    padding-bottom:34px;
  }
  .hero__copy { max-width:100%; }
  .hero__headline { line-height:.88; letter-spacing:-.052em; }
  .hero__panel { width:100%; backdrop-filter:blur(12px); }
  .hero__facts { grid-template-columns:1fr; }
  .precision-dial__stage { transform:none!important; }
  .journey__visual { height:62svh; min-height:430px; }
  .journey__image img { transform:none!important; }
  .journey-card { min-height:auto; }
  .advisor-questions { padding-top:90px; padding-bottom:90px; }
  .advisor-questions .section-title { font-size:clamp(3.2rem,12vw,5rem); line-height:.92; }
  .advisor-questions .info-grid { margin-top:28px; }
  .advisor-questions .info-card { min-height:230px; }
  .bilan-shell { display:block; }
  .bilan-visual { min-height:42svh; max-height:520px; }
  .bilan-visual__image img { object-position:52% center; }
  .bilan-panel__body { min-height:58svh; padding-top:32px; }
  .bilan-form { width:100%; }
  .bilan-step h2 { font-size:clamp(2.7rem,12vw,4.35rem); }
  .choice { min-height:78px; touch-action:manipulation; }
  .button, .choice, .menu-button, summary { -webkit-tap-highlight-color:transparent; }
}

@media (max-width: 620px) {
  :root { --container:calc(100% - 24px); }
  .site-header { height:68px; }
  .header__inner { gap:12px; }
  .brand__plate { width:42px; height:42px; border-radius:13px; }
  .brand__plate img { width:35px; height:35px; }
  .brand__name { font-size:.7rem; letter-spacing:.12em; }
  .menu-button { width:42px; height:42px; border-radius:13px; }
  .mobile-menu { padding:calc(var(--header-h) + 34px) 18px 28px; }
  .mobile-menu__links a { font-size:clamp(2.25rem,12vw,3.4rem); line-height:.96; }
  .hero__headline { font-size:clamp(3.25rem,15.4vw,4.6rem); }
  .hero__lead { line-height:1.7; }
  .hero__actions { display:grid; grid-template-columns:1fr; }
  .hero__actions .button { width:100%; }
  .hero__panel { margin-top:8px; }
  .kinetic-strip { display:none; }
  .manifesto__quote { font-size:clamp(2.7rem,12vw,4.25rem); }
  .section-title { line-height:.91; }
  .page-hero { min-height:58svh; }
  .page-hero__content { padding-top:calc(var(--header-h) + 62px); padding-bottom:44px; }
  .page-hero h1 { font-size:clamp(3.25rem,14vw,4.75rem); line-height:.88; }
  .page-section { padding:74px 0; }
  .content-grid { gap:28px; }
  .info-card { min-height:0; }
  .bilan-visual { min-height:34svh; }
  .bilan-visual__content h1 { font-size:clamp(3rem,14vw,4.5rem); }
  .bilan-visual__content p { display:none; }
  .bilan-panel__top { position:sticky; top:0; z-index:3; background:rgba(244,245,242,.92); backdrop-filter:blur(14px); }
  .bilan-panel__body { padding:28px 16px 42px; }
  .choice { grid-template-columns:40px 1fr 14px; gap:11px; padding:13px; border-radius:16px; }
  .choice__icon { width:40px; height:40px; border-radius:12px; }
  .choice small { font-size:.75rem; }
  .bilan-actions { display:grid; grid-template-columns:1fr; }
  .bilan-actions .button { width:100%; }
}


/* ============================================================
   V3.1 — CONTRASTE, CENTRAGE ET PAGE À PROPOS
   ============================================================ */
.advisor-questions {
  position:relative; display:flex; align-items:center; min-height:78svh; overflow:hidden;
  isolation:isolate; background:#090c0f!important; color:#fff;
}
.advisor-questions::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(circle at 16% 18%,rgba(216,7,29,.18),transparent 32%),radial-gradient(circle at 84% 78%,rgba(184,213,223,.12),transparent 34%),linear-gradient(135deg,#080a0d 0%,#11171c 54%,#080a0d 100%);
}
.advisor-questions__inner { display:grid; justify-items:center; width:var(--container); margin-inline:auto; text-align:center; }
.advisor-questions__eyebrow { color:rgba(255,255,255,.76)!important; }
.advisor-questions__title {
  max-width:1040px!important; margin:0 auto!important; color:#fff!important;
  font-size:clamp(3.5rem,7.4vw,7.6rem)!important; line-height:.84!important;
  letter-spacing:-.055em; text-align:center; text-wrap:balance;
}
.advisor-questions__grid { width:min(1180px,100%)!important; margin:48px auto 0!important; align-items:stretch; text-align:left!important; }
.advisor-questions .info-card { min-height:280px; color:var(--ink)!important; background:#fff!important; border-color:rgba(10,13,16,.1)!important; box-shadow:0 26px 65px rgba(0,0,0,.22); }
.advisor-questions .info-card h3,.advisor-questions .info-card strong { color:var(--ink)!important; }
.advisor-questions .info-card p { color:#5b646b!important; }

.solutions-closing { background:var(--snow)!important; color:var(--ink)!important; }
.solutions-closing__inner { margin-inline:auto; color:var(--ink)!important; }
.solutions-closing__inner .eyebrow { color:var(--swiss-red-deep)!important; }
.solutions-closing__inner p { color:#626a70!important; }
.solutions-closing__title { margin:0; color:var(--ink)!important; font-family:"Cormorant Garamond",serif; font-size:clamp(3.5rem,8vw,7rem); line-height:.82; letter-spacing:-.05em; font-weight:500; text-wrap:balance; }

.about-page { background:linear-gradient(180deg,#f5f6f4,#eceeeb); }
.about-prose>section { scroll-margin-top:120px; }
.about-block { margin-top:94px; }
.about-prose h3 { margin:0 0 18px; font-family:"Cormorant Garamond",serif; font-size:clamp(2.5rem,4.5vw,4.8rem); line-height:.92; font-weight:500; letter-spacing:-.04em; }
.about-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:28px; }
.about-card { min-height:250px; padding:26px; border-radius:26px; background:#fff; border:1px solid var(--line-light); box-shadow:var(--shadow-md); }
.about-card>span { color:var(--swiss-red); font-size:.7rem; font-weight:850; letter-spacing:.16em; }
.about-card h4 { margin:58px 0 10px; font-size:1.25rem; }
.about-card p { margin:0; color:#626a70; line-height:1.75; }
.about-principles { display:grid; gap:12px; margin-top:28px; }
.about-principles>div { display:grid; grid-template-columns:150px 1fr; gap:22px; padding:20px 0; border-top:1px solid var(--line-light); }
.about-principles strong { color:var(--ink); }
.about-principles span { color:#626a70; line-height:1.7; }
.identity-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:28px; }
.identity-panel>div { min-height:175px; padding:24px; border-radius:24px; background:#0a0d10; color:#fff; }
.identity-panel span { display:block; color:rgba(255,255,255,.45); font-size:.7rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.identity-panel strong { display:block; margin-top:26px; font-size:1.1rem; }
.identity-panel small { display:block; margin-top:7px; color:rgba(255,255,255,.57); line-height:1.55; }
.about-legal-link { margin-top:22px!important; padding:18px 20px; border-radius:18px; background:rgba(216,7,29,.06); border:1px solid rgba(216,7,29,.12); }
.about-legal-link a { color:var(--swiss-red-deep); font-weight:800; }

@media (max-width:880px) {
  .advisor-questions { min-height:auto; padding-block:92px; }
  .advisor-questions__title { font-size:clamp(3.15rem,12vw,5rem)!important; line-height:.9!important; }
  .advisor-questions__grid { margin-top:30px!important; }
  .advisor-questions .info-card { min-height:220px; }
  .about-cards,.identity-panel { grid-template-columns:1fr; }
  .about-principles>div { grid-template-columns:1fr; gap:8px; }
}
@media (max-width:620px) {
  .advisor-questions { padding-block:76px; }
  .advisor-questions__title { font-size:clamp(2.9rem,13.5vw,4.35rem)!important; }
  .advisor-questions .info-card { min-height:0; padding:22px; }
  .solutions-closing__title { font-size:clamp(3rem,13vw,4.6rem); line-height:.88; }
  .about-block { margin-top:70px; }
  .about-card { min-height:220px; }
}


/* ============================================================
   V4 — REVENU ANNUEL INTERACTIF
   ============================================================ */
.income-field { margin-top:4px; }
.income-slider { --income-progress:0%; position:relative; overflow:hidden; padding:24px 24px 20px; border-radius:24px; color:#f7f4ec; background:radial-gradient(circle at 78% 12%,rgba(219,7,29,.18),transparent 34%),linear-gradient(145deg,#090d17 0%,#10182a 58%,#080b12 100%); border:1px solid rgba(255,255,255,.10); box-shadow:0 24px 55px rgba(8,10,16,.22),inset 0 1px 0 rgba(255,255,255,.06); }
.income-slider::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(120deg,transparent 15%,rgba(255,255,255,.035) 48%,transparent 72%); transform:translateX(-55%); animation:incomeSheen 7s ease-in-out infinite; }
.income-slider__top { position:relative; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.income-slider__top small { display:block; color:#e9c66c; font-size:.67rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; margin-bottom:7px; }
.income-slider__top strong { display:block; font-family:"Cormorant Garamond",serif; font-size:clamp(2.1rem,5vw,3.55rem); font-weight:500; line-height:.9; color:#fff; letter-spacing:-.035em; }
.income-slider__top > span { max-width:260px; color:rgba(255,255,255,.68); font-size:.82rem; line-height:1.55; text-align:right; }
.income-slider__range { position:relative; z-index:1; width:100%; height:30px; margin:0; appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer; touch-action:pan-y; }
.income-slider__range::-webkit-slider-runnable-track { height:7px; border-radius:999px; background:linear-gradient(90deg,#d8071d 0 var(--income-progress),#f0d58c var(--income-progress) 100%); box-shadow:inset 0 1px 2px rgba(0,0,0,.28); }
.income-slider__range::-moz-range-track { height:7px; border-radius:999px; background:linear-gradient(90deg,#d8071d 0 var(--income-progress),#f0d58c var(--income-progress) 100%); box-shadow:inset 0 1px 2px rgba(0,0,0,.28); }
.income-slider__range::-webkit-slider-thumb { width:30px; height:30px; margin-top:-11.5px; border:1px solid rgba(255,255,255,.88); border-radius:50%; appearance:none; -webkit-appearance:none; background:linear-gradient(145deg,#fff5d1,#efc55f 60%,#bb8218); box-shadow:0 0 0 7px rgba(238,198,97,.13),0 8px 24px rgba(238,198,97,.42); transition:transform .18s ease,box-shadow .18s ease; }
.income-slider__range::-moz-range-thumb { width:30px; height:30px; border:1px solid rgba(255,255,255,.88); border-radius:50%; background:linear-gradient(145deg,#fff5d1,#efc55f 60%,#bb8218); box-shadow:0 0 0 7px rgba(238,198,97,.13),0 8px 24px rgba(238,198,97,.42); }
.income-slider__range:focus-visible { outline:none; }
.income-slider__range:focus-visible::-webkit-slider-thumb,.income-slider__range:hover::-webkit-slider-thumb { transform:scale(1.08); box-shadow:0 0 0 9px rgba(238,198,97,.16),0 10px 28px rgba(238,198,97,.5); }
.income-slider__bounds { position:relative; z-index:1; display:flex; justify-content:space-between; margin-top:2px; color:rgba(255,255,255,.55); font-size:.72rem; }
.income-slider__clear { position:relative; z-index:1; display:inline-flex; margin-top:17px; padding:0; border:0; border-bottom:1px solid rgba(255,255,255,.28); color:rgba(255,255,255,.72); background:transparent; font-size:.72rem; cursor:pointer; }
.income-slider__clear:hover { color:#fff; border-color:#fff; }
@keyframes incomeSheen { 0%,72%,100%{transform:translateX(-70%)} 86%{transform:translateX(80%)} }
@media (max-width:620px) { .income-slider { padding:20px 17px 17px; border-radius:20px; } .income-slider__top { display:block; margin-bottom:18px; } .income-slider__top > span { margin-top:10px; max-width:none; text-align:left; } .income-slider__top strong { font-size:clamp(2rem,11vw,3rem); } .income-slider__range { height:38px; } .income-slider__range::-webkit-slider-thumb { width:34px; height:34px; margin-top:-13.5px; } .income-slider__range::-moz-range-thumb { width:34px; height:34px; } }
@media (prefers-reduced-motion:reduce) { .income-slider::before { animation:none; display:none; } }
