:root {
  --ink:#0d1f3a;
  --ink-soft:#30405b;
  --muted:#69748a;
  --line:rgba(13,31,58,.12);
  --line-strong:rgba(13,31,58,.2);
  --paper:#fbfaf6;
  --paper-2:#f6f1e7;
  --white:#ffffff;
  --blue:#0f3b73;
  --blue-2:#0b2b55;
  --gold:#d8ad27;
  --gold-soft:#f7e8ab;
  --green:#1e7a36;
  --rose:#e85073;
  --shadow:0 24px 80px rgba(21,34,55,.11);
  --shadow-soft:0 14px 42px rgba(21,34,55,.08);
  --radius-xl:36px;
  --radius-lg:26px;
  --radius-md:18px;
  --container:min(1180px, calc(100vw - 64px));
  --header-h:82px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --role-accent:#2e72d2;
}
html[data-role="owner"] { --role-accent:#d1a018; }

* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button, input, select { font:inherit; }
button { color:inherit; }
:focus-visible { outline:3px solid rgba(216,173,39,.75); outline-offset:4px; }

.skip-link {
  position:fixed; z-index:1000; left:16px; top:12px;
  transform:translateY(-160%); background:var(--ink); color:#fff;
  padding:12px 16px; border-radius:999px; transition:transform .2s ease;
}
.skip-link:focus { transform:translateY(0); }
.container { width:var(--container); margin-inline:auto; }
.page-progress { position:fixed; inset:0 0 auto; height:3px; z-index:999; pointer-events:none; }
.page-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--blue),var(--gold)); transform:scaleX(0); transform-origin:left; }

.site-header {
  position:fixed; z-index:100; inset:0 0 auto;
  padding-top:env(safe-area-inset-top);
  transition:background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}
.site-header.is-scrolled {
  background:rgba(251,250,246,.86);
  backdrop-filter:blur(18px) saturate(1.2);
  box-shadow:0 1px 0 rgba(13,31,58,.08);
}
.header-inner {
  min-height:var(--header-h); display:grid; align-items:center;
  grid-template-columns:auto minmax(260px,1fr) auto auto; gap:24px;
}
.brand { display:inline-flex; align-items:center; gap:12px; font-weight:780; letter-spacing:-.02em; }
.brand img { width:54px; height:54px; object-fit:contain; }
.brand span { font-size:1.34rem; line-height:1; }
.desktop-nav { display:flex; justify-content:center; gap:26px; font-size:.86rem; font-weight:650; color:var(--ink-soft); }
.desktop-nav a { position:relative; padding:12px 0; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:5px; height:2px; background:var(--gold); transition:right .3s var(--ease); }
.desktop-nav a:hover::after { right:0; }
.header-role-switch {
  display:flex; padding:4px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.72);
}
.header-role-switch button, .mobile-role-bar button {
  border:0; background:transparent; border-radius:999px; padding:9px 13px; cursor:pointer; font-size:.76rem; font-weight:750; transition:.32s var(--ease);
}
.header-role-switch button[aria-pressed="true"], .mobile-role-bar button[aria-pressed="true"] { color:#fff; background:var(--ink); box-shadow:0 8px 18px rgba(13,31,58,.16); }
.header-actions { display:flex; align-items:center; gap:10px; }
.button {
  min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:9px;
  border:1px solid transparent; border-radius:999px; padding:0 20px; font-weight:740; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s ease, background .25s ease, color .25s ease;
}
.button:hover { transform:translateY(-2px); }
.button-primary { color:#fff; background:var(--ink); box-shadow:0 12px 28px rgba(13,31,58,.16); }
.button-primary:hover { box-shadow:0 18px 34px rgba(13,31,58,.22); }
.button-secondary { border-color:var(--line-strong); background:#fff; }
.button-quiet { padding-inline:4px; color:var(--ink-soft); min-height:42px; }
.button.large { min-height:58px; padding-inline:28px; }
.language-select { position:relative; }
.language-trigger {
  min-height:44px; display:flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px;
  background:rgba(255,255,255,.76); padding:0 12px; cursor:pointer; font-weight:760; font-size:.78rem;
}
.language-trigger img { width:20px; height:14px; object-fit:cover; }
.language-trigger svg { width:14px; }
.language-menu {
  position:absolute; right:0; top:calc(100% + 10px); width:210px; padding:8px;
  border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.96); box-shadow:var(--shadow-soft); backdrop-filter:blur(18px);
}
.language-menu button { width:100%; display:flex; align-items:center; gap:12px; min-height:44px; border:0; border-radius:13px; background:transparent; padding:0 12px; cursor:pointer; text-align:left; }
.language-menu button:hover, .language-menu button[aria-selected="true"] { background:var(--paper-2); }
.language-menu img { width:22px; height:15px; object-fit:cover; }
.menu-button { display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:#fff; cursor:pointer; }
.menu-button span { display:block; width:17px; height:2px; background:var(--ink); margin:4px auto; transition:.25s ease; }
.menu-button[aria-expanded="true"] span:first-child { transform:translateY(3px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:last-child { transform:translateY(-3px) rotate(-45deg); }
.mobile-menu { position:fixed; z-index:99; inset:calc(var(--header-h) + env(safe-area-inset-top)) 0 0; background:rgba(251,250,246,.97); backdrop-filter:blur(20px); }
.mobile-menu-inner { padding-top:32px; }
.mobile-menu nav { display:grid; gap:4px; margin-bottom:24px; }
.mobile-menu nav a { padding:18px 6px; border-bottom:1px solid var(--line); font-size:1.5rem; font-weight:680; }
.mobile-role-bar { display:none; }

main { overflow:visible; }
.hero {
  min-height:100svh; padding:calc(var(--header-h) + 82px) 0 88px; position:relative;
  display:grid; align-items:center; isolation:isolate;
  background:
    radial-gradient(circle at 80% 18%, rgba(216,173,39,.16), transparent 24rem),
    radial-gradient(circle at 14% 72%, rgba(15,59,115,.07), transparent 30rem),
    var(--paper);
}
.hero::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:linear-gradient(90deg,transparent,var(--line-strong),transparent); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr); gap:clamp(56px,7vw,110px); align-items:center; }
.eyebrow { margin:0 0 18px; color:var(--blue); font-size:.7rem; font-weight:850; text-transform:uppercase; letter-spacing:.18em; }
.hero h1 { max-width:770px; margin:0; font-size:clamp(3.7rem,6.8vw,7.25rem); line-height:.91; letter-spacing:-.07em; font-weight:590; }
.role-message { margin-top:28px; max-width:680px; }
.role-message h2 { margin:0 0 10px; font-size:clamp(1.5rem,2.4vw,2.35rem); letter-spacing:-.04em; line-height:1.08; }
.role-message p { margin:0; color:var(--muted); line-height:1.7; font-size:1.02rem; }
.hero-role-selector { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:30px; max-width:710px; }
.hero-role-selector button {
  min-height:72px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; padding:0 20px;
  border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.68); cursor:pointer; text-align:left;
  transition:border-color .3s ease, transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.hero-role-selector button:hover { transform:translateY(-3px); box-shadow:var(--shadow-soft); }
.hero-role-selector button[aria-pressed="true"] { border-color:var(--role-accent); background:#fff; box-shadow:0 16px 42px color-mix(in srgb, var(--role-accent) 17%, transparent); }
.hero-role-selector span { color:var(--gold); font-size:.68rem; font-weight:900; }
.hero-role-selector strong { font-size:.95rem; }
.hero-role-selector i { font-style:normal; font-size:1.2rem; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:26px; }
.human-note { display:flex; gap:10px; align-items:center; margin:20px 0 0; color:var(--muted); font-size:.82rem; }
.human-note > span:first-child { width:22px; height:22px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--green); font-weight:900; }
.hero-visual { position:relative; min-height:680px; display:grid; place-items:center; }
.hero-visual-glow { position:absolute; inset:18% 10%; border-radius:50%; background:radial-gradient(circle,rgba(216,173,39,.22),transparent 68%); filter:blur(22px); }
.hero-role-image { position:absolute; width:min(100%,620px); max-height:680px; object-fit:contain; opacity:0; transform:translateY(24px) scale(.97); transition:opacity .55s ease, transform .65s var(--ease); filter:drop-shadow(0 30px 48px rgba(28,36,50,.14)); }
.hero-role-image.is-active { opacity:1; transform:none; }
.hero-chip { position:absolute; z-index:2; padding:12px 16px; border:1px solid rgba(255,255,255,.85); border-radius:999px; background:rgba(255,255,255,.78); box-shadow:var(--shadow-soft); backdrop-filter:blur(14px); font-size:.76rem; font-weight:760; }
.chip-one { left:1%; top:30%; }
.chip-two { right:2%; bottom:22%; }
.hero-orb { position:absolute; width:300px; height:300px; border-radius:50%; filter:blur(60px); opacity:.24; pointer-events:none; }
.hero-orb-a { right:-130px; top:10%; background:var(--gold); }
.hero-orb-b { left:-180px; bottom:6%; background:#9fc0e2; }

.section-stack { position:relative; padding:130px 0; background:var(--paper); border-radius:42px 42px 0 0; }
.section-stack + .section-stack { margin-top:-28px; }
.section-heading { max-width:860px; margin-bottom:72px; }
.section-heading.centered { margin-inline:auto; text-align:center; }
.section-heading h2, .role-heading h2, .certification h2, .app-copy h2, .qr-copy h2, .inventory-copy h2, .final-cta h2 {
  margin:0; font-size:clamp(3rem,5.4vw,6.4rem); line-height:.94; letter-spacing:-.065em; font-weight:580;
}
.section-heading > p:last-child, .role-heading > p:last-child { max-width:760px; color:var(--muted); font-size:1.05rem; line-height:1.75; }

.idea { background:#f7f3eb; }
.before-after { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.before-after article { min-height:270px; padding:34px; border-top:1px solid var(--line-strong); }
.before-after article.with-bailtrust { background:var(--ink); color:#fff; border-radius:var(--radius-lg); border:0; box-shadow:var(--shadow); }
.before-after-label { display:inline-block; margin-bottom:44px; color:var(--gold); font-size:.68rem; font-weight:850; text-transform:uppercase; letter-spacing:.16em; }
.before-after h3 { max-width:520px; margin:0 0 12px; font-size:clamp(1.65rem,2.6vw,2.8rem); letter-spacing:-.045em; line-height:1.08; }
.before-after p { margin:0; color:var(--muted); line-height:1.7; }
.with-bailtrust p { color:rgba(255,255,255,.68); }
.trust-flow { position:relative; margin-top:74px; padding:40px 0 10px; }
.trust-flow ol { list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin:0; padding:0; position:relative; z-index:2; }
.trust-flow li { min-height:120px; display:flex; flex-direction:column; justify-content:space-between; padding:18px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.72); }
.trust-flow li span { color:var(--gold); font-size:.66rem; font-weight:900; }
.trust-flow li b { font-size:.9rem; line-height:1.3; }
.flow-line { position:absolute; left:6%; right:6%; top:25px; height:2px; background:rgba(13,31,58,.13); overflow:visible; }
.flow-line > span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--blue),var(--gold)); transition:width 1.5s var(--ease); }
.trust-flow.is-visible .flow-line > span { width:100%; }
.transfer-card { position:absolute; left:0; top:50%; width:32px; height:32px; display:grid; place-items:center; border-radius:10px; color:#fff; background:var(--green); font-style:normal; transform:translate(-50%,-50%); box-shadow:0 8px 20px rgba(30,122,54,.22); }
.trust-flow.is-visible .transfer-card { animation:transferAlong 4.2s ease-in-out .2s infinite alternate; }
@keyframes transferAlong {
  from { left:0; transform:translate(-50%,-50%) rotate(-8deg); }
  to { left:100%; transform:translate(-50%,-50%) rotate(8deg); }
}

.role-experience { background:#fff; }
.role-heading { max-width:930px; margin-bottom:72px; }
.journey-layout { display:grid; grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr); gap:clamp(60px,8vw,130px); align-items:start; }
.journey-visual {
  position:sticky;
  top:calc(var(--header-h) + 16px);
  height:clamp(430px, calc(100svh - var(--header-h) - 32px), 690px);
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  align-content:stretch;
}
.journey-progress { height:3px; background:var(--line); border-radius:99px; overflow:hidden; margin-bottom:20px; }
.journey-progress span { display:block; width:25%; height:100%; background:linear-gradient(90deg,var(--blue),var(--gold)); transition:width .5s var(--ease); }
.journey-image-stage { position:relative; height:auto; min-height:0; display:grid; place-items:center; overflow:hidden; border-radius:30px; background:linear-gradient(145deg,#fff,#f4efe6); }
.journey-image { position:absolute; width:100%; height:100%; object-fit:contain; padding:18px; opacity:0; transform:translateY(20px) scale(.985); transition:opacity .45s ease, transform .55s var(--ease); }
.journey-image.is-active { opacity:1; transform:none; }
.journey-caption { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:18px; }
.journey-caption span { color:var(--gold); font-size:.68rem; font-weight:900; }
.journey-caption strong { font-size:.95rem; text-align:right; }
.journey-phases { display:grid; }
.journey-phase { min-height:74vh; display:flex; flex-direction:column; justify-content:center; padding:70px 0; border-top:1px solid var(--line); opacity:.36; transition:opacity .35s ease; }
.journey-phase:last-child { border-bottom:1px solid var(--line); }
.journey-phase.is-active { opacity:1; }
.phase-index { color:var(--gold); font-size:.66rem; font-weight:900; letter-spacing:.15em; }
.journey-phase h3 { max-width:650px; margin:18px 0 14px; font-size:clamp(2.15rem,3.6vw,4.4rem); line-height:.98; letter-spacing:-.06em; }
.journey-phase > p { max-width:620px; margin:0 0 28px; color:var(--muted); line-height:1.7; }
.phase-steps { list-style:none; display:grid; gap:10px; margin:0; padding:0; }
.phase-steps li { display:grid; grid-template-columns:42px 1fr; gap:14px; align-items:start; padding:14px 0; border-top:1px solid var(--line); }
.phase-steps span { color:var(--role-accent); font-size:.7rem; font-weight:900; }
.phase-steps b { font-size:.95rem; line-height:1.45; }

.certification { background:#0c1d35; color:#fff; padding-bottom:110px; }
.certification-grid { display:grid; grid-template-columns:minmax(420px,.95fr) minmax(0,1.05fr); gap:clamp(70px,8vw,130px); align-items:center; }
.certificate-stage { position:relative; min-height:820px; display:grid; place-items:center; }
.certificate-pages { position:relative; width:min(100%,620px); height:740px; cursor:zoom-in; }
.cert-page { position:absolute; object-fit:contain; filter:drop-shadow(0 28px 42px rgba(0,0,0,.28)); transition:transform .9s var(--ease); }
.cert-page-back { width:86%; right:-1%; bottom:8%; transform:translate(3%,1%) rotate(3deg); }
.cert-page-front { width:82%; left:1%; top:3%; transform:translate(-1%,1%) rotate(-2deg); }
.certificate-stage.is-visible .cert-page-back { transform:translate(8%,3%) rotate(4.2deg); }
.certificate-stage.is-visible .cert-page-front { transform:translate(-5%,-1%) rotate(-2.8deg); }
.certificate-zoom { position:absolute; left:50%; bottom:6%; transform:translateX(-50%); min-height:46px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.08); color:#fff; padding:0 18px; cursor:pointer; }
.certification-copy .eyebrow { color:var(--gold); }
.certification-copy h2 { color:#fff; }
.certification-copy > p { color:rgba(255,255,255,.68); line-height:1.75; }
.cert-steps { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 26px; margin:36px 0 0; padding:0; }
.cert-steps li { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:15px 0; border-top:1px solid rgba(255,255,255,.12); }
.cert-steps span { color:var(--gold); font-size:.66rem; font-weight:900; }
.cert-steps p { margin:0; color:rgba(255,255,255,.82); font-size:.9rem; line-height:1.5; }
.cert-transfer { margin-top:90px; display:grid; grid-template-columns:repeat(9,auto); align-items:center; justify-content:center; gap:16px; }
.cert-transfer > div { min-width:150px; min-height:86px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; padding:14px; border:1px solid rgba(255,255,255,.15); border-radius:18px; background:rgba(255,255,255,.05); text-align:center; }
.cert-transfer > i { color:var(--gold); font-style:normal; }
.cert-transfer small { color:var(--gold); }
.cert-node { box-shadow:0 0 0 1px rgba(216,173,39,.25), 0 18px 40px rgba(216,173,39,.13); }

.benefits { background:#fff; }
.benefit-split { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.benefit-panel { min-height:520px; padding:42px; border-top:1px solid var(--line-strong); transition:opacity .35s ease, background .35s ease, transform .35s var(--ease); }
.benefit-panel[data-role-panel="owner"] { background:#f7f2e8; border-radius:var(--radius-lg); border:0; }
html[data-role="tenant"] .owner-panel, html[data-role="owner"] .tenant-panel { opacity:.58; }
html[data-role="tenant"] .tenant-panel, html[data-role="owner"] .owner-panel { opacity:1; transform:translateY(-8px); }
.benefit-panel > span { color:var(--gold); font-size:.68rem; font-weight:900; }
.benefit-panel h3 { max-width:520px; margin:110px 0 28px; font-size:clamp(2.5rem,4vw,4.7rem); line-height:.98; letter-spacing:-.06em; }
.benefit-panel ul { list-style:none; margin:0; padding:0; }
.benefit-panel li { padding:14px 0; border-top:1px solid var(--line); color:var(--ink-soft); }

.app-section { background:#f7f3eb; }
.app-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); gap:clamp(60px,8vw,120px); align-items:center; }
.app-copy h2 { max-width:780px; }
.app-copy > p { max-width:680px; color:var(--muted); line-height:1.75; }
.feature-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:30px 0 20px; }
.feature-tabs button { min-height:42px; border:1px solid var(--line); border-radius:999px; background:#fff; padding:0 16px; cursor:pointer; font-weight:720; }
.feature-tabs button[aria-selected="true"] { color:#fff; background:var(--ink); }
.feature-description { min-height:95px; }
.feature-description h3 { margin:0 0 8px; font-size:1.5rem; letter-spacing:-.035em; }
.feature-description p { margin:0; color:var(--muted); line-height:1.6; }
.feature-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.feature-list span { padding:8px 11px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.6); font-size:.72rem; color:var(--ink-soft); }
.phone-demo { position:relative; min-height:760px; display:grid; place-items:center; }
.phone-shell { position:relative; z-index:2; width:min(390px,86%); aspect-ratio:9/19.5; border:12px solid #08121f; border-radius:54px; background:#08121f; box-shadow:0 44px 80px rgba(13,31,58,.22); overflow:hidden; }
.phone-speaker { position:absolute; z-index:4; top:8px; left:50%; width:34%; height:27px; transform:translateX(-50%); border-radius:999px; background:#02070c; }
.phone-screen-stack { position:absolute; inset:0; background:#fff; }
.phone-screen { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top; opacity:0; transition:opacity .45s ease, transform .55s var(--ease); transform:scale(1.015); }
.phone-screen.is-active { opacity:1; transform:scale(1); }
.phone-orbit { position:absolute; border:1px solid rgba(216,173,39,.28); border-radius:50%; }
.orbit-one { width:560px; height:560px; }
.orbit-two { width:690px; height:690px; }
.phone-orbit::after { content:""; position:absolute; width:12px; height:12px; border-radius:50%; background:var(--gold); box-shadow:0 0 18px rgba(216,173,39,.48); top:12%; left:12%; }

.qr-section { background:#fff; }
.qr-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(55px,7vw,100px); align-items:center; }
.qr-copy p { max-width:630px; color:var(--muted); line-height:1.75; }
.qr-sequence { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:28px 0 16px; }
.qr-sequence span { padding:10px 12px; border:1px solid var(--line); border-radius:999px; font-size:.74rem; font-weight:720; }
.qr-sequence i { color:var(--gold); font-style:normal; }
.demo-note { font-size:.78rem; }
.qr-visual { position:relative; overflow:hidden; border-radius:30px; background:#f7f2e8; }
.qr-visual img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.scan-line { position:absolute; left:64%; right:8%; height:3px; top:28%; border-radius:99px; background:linear-gradient(90deg,transparent,var(--gold),transparent); box-shadow:0 0 18px rgba(216,173,39,.8); animation:scan 3.2s ease-in-out infinite; }
@keyframes scan { 0%,100% { top:29%; opacity:.65; } 50% { top:65%; opacity:1; } }

.inventory-section { background:#f7f3eb; }
.inventory-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(60px,8vw,120px); align-items:center; }
.inventory-window { border:1px solid var(--line); border-radius:30px; background:#fff; box-shadow:var(--shadow); overflow:hidden; }
.inventory-toolbar { min-height:56px; display:flex; align-items:center; gap:7px; padding:0 18px; border-bottom:1px solid var(--line); }
.inventory-toolbar > span { width:8px; height:8px; border-radius:50%; background:#d6dde5; }
.inventory-toolbar > span:first-child { background:var(--gold); }
.inventory-toolbar b { margin-left:8px; font-size:.82rem; }
.inventory-tabs { display:flex; gap:8px; padding:18px; overflow:auto; }
.inventory-tabs button { min-height:38px; border:1px solid var(--line); border-radius:999px; background:#fff; padding:0 14px; }
.inventory-tabs button.is-active { color:#fff; background:var(--ink); }
.room-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 18px 18px; }
.room-grid article { position:relative; min-height:128px; padding:20px; border:1px solid var(--line); border-radius:20px; background:#fbfaf6; }
.room-grid strong, .room-grid small { display:block; }
.room-grid small { margin-top:10px; color:var(--muted); }
.room-grid i { position:absolute; right:16px; top:16px; width:28px; height:28px; display:grid; place-items:center; border-radius:10px; color:#fff; background:var(--green); font-style:normal; }
.signature-strip { display:flex; align-items:center; justify-content:space-between; margin:0 18px 18px; padding:18px; border-radius:18px; background:var(--blue); color:#fff; }
.signature-strip b { width:30px; height:30px; display:grid; place-items:center; border-radius:10px; color:var(--ink); background:var(--gold); }
.inventory-copy > p { color:var(--muted); line-height:1.75; }
.clean-list { list-style:none; margin:28px 0 0; padding:0; }
.clean-list li { padding:13px 0; border-top:1px solid var(--line); }
.clean-list li::before { content:"✓"; display:inline-grid; place-items:center; width:22px; height:22px; margin-right:10px; border-radius:50%; color:#fff; background:var(--green); font-size:.7rem; }

.security-section { background:#fff; }
.security-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0 34px; }
.security-grid article { min-height:230px; padding:28px 0; border-top:1px solid var(--line); }
.security-grid span { color:var(--gold); font-size:.66rem; font-weight:900; }
.security-grid h3 { margin:58px 0 10px; font-size:1.35rem; letter-spacing:-.035em; }
.security-grid p { margin:0; color:var(--muted); line-height:1.65; }

.pricing-section { background:#f7f3eb; }
.pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pricing-card { min-height:510px; display:flex; flex-direction:column; padding:34px; border:1px solid var(--line); border-radius:28px; background:rgba(255,255,255,.72); }
.pricing-card.featured { color:#fff; background:var(--ink); border-color:transparent; box-shadow:var(--shadow); }
.pricing-card > span { color:var(--gold); font-size:.66rem; font-weight:900; }
.price-role { margin:70px 0 10px; color:var(--muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.14em; font-weight:820; }
.featured .price-role, .featured > p:not(.price) { color:rgba(255,255,255,.62); }
.pricing-card h3 { margin:0; font-size:1.7rem; letter-spacing:-.04em; }
.price { margin:24px 0 12px; font-size:clamp(2.2rem,3.5vw,4rem); letter-spacing:-.06em; font-weight:650; }
.price small { display:block; margin-top:4px; font-size:.78rem; letter-spacing:0; font-weight:600; }
.price-soon { font-size:clamp(1.4rem,2vw,2.3rem); line-height:1.1; }
.pricing-card > p:not(.price):not(.price-role) { color:var(--muted); line-height:1.65; }
.pricing-card .button { margin-top:auto; }

.final-cta { background:var(--ink); color:#fff; padding-bottom:120px; }
.final-cta-inner { text-align:center; }
.final-cta .eyebrow { color:var(--gold); }
.final-cta h2 { color:#fff; }
.final-role-actions { display:grid; grid-template-columns:1fr 1fr; max-width:900px; margin:46px auto 28px; gap:12px; }
.role-cta { min-height:84px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:15px; border:1px solid rgba(255,255,255,.15); border-radius:22px; background:rgba(255,255,255,.05); color:#fff; padding:0 22px; cursor:pointer; text-align:left; }
.role-cta[aria-pressed="true"] { border-color:var(--gold); background:rgba(216,173,39,.12); }
.role-cta span { color:var(--gold); font-size:.68rem; font-weight:900; }
.role-cta i { font-style:normal; }

.site-footer { padding:76px 0 28px; background:#071323; color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.35fr repeat(3,1fr); gap:50px; }
.footer-brand { color:#fff; }
.footer-grid > div:first-child p { max-width:320px; color:rgba(255,255,255,.55); line-height:1.6; }
.footer-grid h3 { margin:0 0 18px; color:var(--gold); font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; }
.footer-grid > div:not(:first-child) { display:flex; flex-direction:column; gap:10px; }
.footer-grid a { color:rgba(255,255,255,.7); font-size:.86rem; }
.footer-grid a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; padding-top:36px; margin-top:48px; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.45); font-size:.76rem; }

.certificate-modal { width:min(1100px,94vw); max-height:92vh; border:0; border-radius:24px; padding:0; color:var(--ink); background:#f4f0e7; box-shadow:0 45px 100px rgba(0,0,0,.35); }
.certificate-modal::backdrop { background:rgba(3,10,20,.75); backdrop-filter:blur(8px); }
.certificate-modal-bar { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; padding:16px 20px; background:rgba(244,240,231,.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.certificate-modal-bar h2 { margin:0; font-size:1rem; }
.certificate-modal-bar button { width:42px; height:42px; border:0; border-radius:50%; background:#fff; font-size:1.5rem; cursor:pointer; }
.certificate-modal-pages { display:grid; gap:24px; padding:24px; }
.certificate-modal-pages img { width:100%; height:auto; object-fit:contain; background:#fff; }
.noscript { position:fixed; z-index:1000; inset:auto 16px 16px; padding:15px; border-radius:14px; background:#fff3cd; color:#4f3d00; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .8s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }
html.is-switching .hero-copy, html.is-switching .role-heading, html.is-switching .journey-layout { opacity:.55; transform:translateY(4px); transition:.18s ease; }

@media (max-width:1120px) {
  :root { --container:min(100% - 40px, 1080px); }
  .header-inner { grid-template-columns:auto 1fr auto; }
  .desktop-nav { display:none; }
  .header-role-switch { justify-self:center; }
  .hero-grid { grid-template-columns:1fr .85fr; gap:44px; }
  .hero h1 { font-size:clamp(3.4rem,7vw,5.8rem); }
  .hero-visual { min-height:560px; }
  .hero-role-image { max-height:560px; }
  .journey-layout { grid-template-columns:minmax(330px,.8fr) 1.2fr; gap:54px; }
  .certification-grid { grid-template-columns:.9fr 1.1fr; gap:56px; }
  .certificate-stage { min-height:700px; }
  .certificate-pages { height:650px; }
  .cert-transfer { gap:10px; }
  .cert-transfer > div { min-width:120px; }
  .app-grid { grid-template-columns:1fr .85fr; gap:50px; }
  .phone-demo { min-height:650px; }
  .phone-shell { width:min(340px,88%); }
}

@media (max-width:860px) {
  :root { --container:min(100% - 32px, 760px); --header-h:70px; }
  .header-inner { grid-template-columns:auto 1fr auto; gap:12px; }
  .brand img { width:46px; height:46px; }
  .brand span { font-size:1.12rem; }
  .header-role-switch, .header-cta { display:none; }
  .header-actions { justify-self:end; }
  .menu-button { display:block; }
  .language-trigger { min-height:42px; padding-inline:9px; }
  .language-trigger span { display:none; }
  .mobile-role-bar {
    position:fixed; z-index:95; left:50%; top:calc(var(--header-h) + env(safe-area-inset-top) + 8px); transform:translateX(-50%);
    display:flex; width:min(330px,calc(100vw - 32px)); padding:4px; border:1px solid var(--line); border-radius:999px;
    background:rgba(255,255,255,.9); box-shadow:var(--shadow-soft); backdrop-filter:blur(16px);
  }
  .mobile-role-bar button { flex:1; min-height:38px; }
  .hero { padding-top:calc(var(--header-h) + 110px); min-height:auto; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-copy { max-width:720px; }
  .hero h1 { font-size:clamp(3.25rem,11vw,5.6rem); }
  .hero-visual { min-height:600px; margin-top:16px; }
  .hero-role-image { max-height:600px; }
  .chip-one { left:2%; top:24%; }
  .chip-two { right:2%; bottom:16%; }
  .section-stack { padding:100px 0; border-radius:30px 30px 0 0; }
  .section-heading h2, .role-heading h2, .certification h2, .app-copy h2, .qr-copy h2, .inventory-copy h2, .final-cta h2 { font-size:clamp(2.8rem,8.8vw,5rem); }
  .before-after { grid-template-columns:1fr; }
  .trust-flow ol { grid-template-columns:1fr; gap:10px; padding-left:34px; }
  .trust-flow li { min-height:82px; }
  .flow-line { left:15px; right:auto; top:48px; bottom:32px; width:2px; height:auto; }
  .flow-line > span { width:100%; height:0; transition:height 1.4s var(--ease); }
  .trust-flow.is-visible .flow-line > span { width:100%; height:100%; }
  .transfer-card { top:0; left:50%; }
  .trust-flow.is-visible .transfer-card { animation:transferDown 4.2s ease-in-out .2s infinite alternate; }
  @keyframes transferDown {
    from { top:0; transform:translate(-50%,-50%) rotate(-8deg); }
    to { top:100%; transform:translate(-50%,-50%) rotate(8deg); }
  }
  .journey-layout { display:block; }
  .journey-visual { position:relative; top:auto; min-height:0; margin-bottom:40px; }
  .journey-image-stage { height:min(620px,120vw); }
  .journey-phases { gap:18px; }
  .journey-phase { min-height:0; opacity:1; padding:28px 0 40px; }
  .journey-phase h3 { font-size:clamp(2.2rem,8.8vw,3.8rem); }
  .certification-grid { grid-template-columns:1fr; }
  .certificate-stage { min-height:720px; order:2; }
  .certification-copy { order:1; }
  .cert-transfer { grid-template-columns:1fr; max-width:440px; }
  .cert-transfer > i { transform:none; }
  .cert-transfer > div { width:100%; }
  .benefit-split { grid-template-columns:1fr; }
  .benefit-panel { min-height:420px; }
  .benefit-panel h3 { margin-top:70px; }
  .app-grid, .qr-grid, .inventory-grid { grid-template-columns:1fr; }
  .phone-demo { min-height:690px; }
  .qr-copy { max-width:720px; }
  .qr-visual { order:2; }
  .inventory-interface { order:2; }
  .security-grid { grid-template-columns:1fr 1fr; }
  .pricing-grid { grid-template-columns:1fr; }
  .pricing-card { min-height:440px; }
  .final-role-actions { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1.3fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column:2 / -1; }
}

@media (max-width:560px) {
  :root { --container:calc(100% - 28px); }
  .header-inner { min-height:var(--header-h); }
  .language-menu { position:fixed; left:14px; right:14px; top:calc(var(--header-h) + env(safe-area-inset-top) + 8px); width:auto; }
  .hero { padding-bottom:70px; }
  .hero h1 { font-size:clamp(3rem,14.5vw,4.6rem); line-height:.94; }
  .role-message h2 { font-size:1.5rem; }
  .hero-role-selector { grid-template-columns:1fr; }
  .hero-role-selector button { min-height:66px; }
  .hero-actions { align-items:stretch; flex-direction:column; }
  .hero-actions .button { width:100%; }
  .hero-visual { min-height:480px; }
  .hero-role-image { max-height:480px; width:100%; }
  .hero-chip { font-size:.68rem; padding:9px 12px; }
  .chip-one { top:18%; }
  .chip-two { bottom:12%; }
  .section-stack { padding:78px 0; margin-top:-12px; border-radius:24px 24px 0 0; }
  .section-heading { margin-bottom:48px; }
  .section-heading h2, .role-heading h2, .certification h2, .app-copy h2, .qr-copy h2, .inventory-copy h2, .final-cta h2 { font-size:clamp(2.45rem,12vw,3.65rem); line-height:.98; }
  .before-after article { padding:26px 20px; min-height:230px; }
  .journey-image-stage { height:min(500px,132vw); border-radius:22px; }
  .journey-image { padding:10px; }
  .phase-steps li { grid-template-columns:34px 1fr; }
  .certificate-stage { min-height:590px; }
  .certificate-pages { width:100%; height:550px; }
  .cert-page-front { width:86%; }
  .cert-page-back { width:90%; }
  .cert-steps { grid-template-columns:1fr; }
  .benefit-panel { padding:28px 20px; min-height:390px; }
  .benefit-panel h3 { font-size:2.45rem; margin-top:60px; }
  .phone-demo { min-height:610px; }
  .phone-shell { width:min(320px,84vw); border-width:9px; border-radius:44px; }
  .phone-speaker { height:21px; top:6px; }
  .orbit-one { width:430px; height:430px; }
  .orbit-two { width:520px; height:520px; }
  .qr-visual { border-radius:22px; }
  .scan-line { left:58%; right:4%; }
  .room-grid { grid-template-columns:1fr; }
  .security-grid { grid-template-columns:1fr; }
  .security-grid article { min-height:180px; }
  .security-grid h3 { margin-top:34px; }
  .pricing-card { padding:28px 22px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:34px 26px; }
  .footer-grid > div:first-child { grid-column:1/-1; }
  .footer-grid > div:last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .certificate-modal-pages { padding:12px; }
}

@media (max-width:360px) {
  :root { --container:calc(100% - 22px); }
  .brand span { display:none; }
  .mobile-role-bar { width:calc(100vw - 22px); }
  .hero h1 { font-size:2.75rem; }
  .hero-visual { min-height:430px; }
  .journey-image-stage { height:450px; }
  .certificate-stage { min-height:530px; }
  .certificate-pages { height:500px; }
  .phone-shell { width:280px; }
  .footer-grid { grid-template-columns:1fr; }
}

@media (min-width:1600px) {
  :root { --container:min(1380px,calc(100vw - 120px)); }
  .hero-grid { grid-template-columns:1fr 1fr; }
  .journey-image-stage { height:660px; }
  .phone-demo { min-height:820px; }
  .phone-shell { width:420px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
  .cert-page-back { transform:translate(3%,1%) rotate(3deg) !important; }
  .cert-page-front { transform:translate(-1%,1%) rotate(-2deg) !important; }
}

/* Critical hero content is visible immediately for LCP and no-JS resilience. */
.hero .reveal { opacity:1; transform:none; }

/* ==================================================================
   V8.3 — CORRECTIONS MOBILE CIBLEES
   1. Le visuel du parcours reste visible en format compact et change
      avec l'etape active pendant que le texte continue de defiler.
   2. Le certificat est centre et contenu dans sa propre zone, sans
      recouvrir le texte ni laisser une grande zone bleue vide.
   3. Le menu mobile devient totalement opaque, meme apres scroll.
   Ces regles ne s'appliquent qu'aux ecrans mobiles/tablettes.
   ================================================================== */

@media (max-width:860px) {
  /* Menu mobile opaque et isole du contenu de la page. */
  .mobile-menu {
    position:fixed;
    z-index:99;
    inset:calc(var(--header-h) + env(safe-area-inset-top)) 0 0;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:var(--paper);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    box-shadow:inset 0 1px 0 var(--line);
  }
  .mobile-menu-inner {
    min-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top));
    padding-top:32px;
    padding-bottom:max(36px, env(safe-area-inset-bottom));
    background:var(--paper);
  }
  body.menu-open .site-header,
  body.menu-open .site-header.is-scrolled {
    background:var(--paper);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    box-shadow:0 1px 0 var(--line);
  }
  body.menu-open .mobile-role-bar {
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }

  /* Parcours mobile : aperçu compact sticky + texte lisible dessous. */
  .role-experience .journey-layout {
    display:block;
    position:relative;
  }
  .role-experience .journey-visual {
    position:sticky;
    top:calc(var(--header-h) + env(safe-area-inset-top) + 62px);
    z-index:24;
    height:auto;
    min-height:0;
    margin:0 0 22px;
    padding:10px 0 12px;
    background:rgba(255,255,255,.98);
    box-shadow:0 16px 32px rgba(13,31,58,.08);
  }
  .role-experience .journey-progress {
    margin-bottom:10px;
  }
  .role-experience .journey-image-stage {
    height:clamp(220px,32svh,300px);
    min-height:220px;
    border-radius:20px;
  }
  .role-experience .journey-image {
    padding:8px;
  }
  .role-experience .journey-caption {
    margin-top:10px;
    padding-inline:4px;
  }
  .role-experience .journey-caption strong {
    max-width:72%;
    font-size:.9rem;
  }
  .role-experience .journey-phases {
    position:relative;
    z-index:1;
    gap:0;
  }
  .role-experience .journey-phase {
    min-height:62svh;
    padding:42px 0 72px;
    opacity:.36;
    scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top) + 390px);
  }
  .role-experience .journey-phase.is-active {
    opacity:1;
  }

  /* Certification mobile : ordre stable, pages centrees, aucune fuite. */
  .certification {
    overflow:hidden;
  }
  .certification-grid {
    display:flex;
    flex-direction:column;
    gap:36px;
  }
  .certification-copy {
    order:1;
    position:relative;
    z-index:2;
  }
  .certificate-stage {
    order:2;
    position:relative;
    z-index:1;
    width:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:18px;
    padding:12px 0 8px;
    overflow:hidden;
  }
  .certificate-pages {
    position:relative;
    width:min(100%,420px);
    height:clamp(390px,112vw,470px);
    margin:0 auto;
    flex:0 0 auto;
  }
  .cert-page {
    max-height:100%;
  }
  .cert-page-front {
    width:78%;
    left:3%;
    top:2%;
    transform:translate(0,0) rotate(-1.4deg);
  }
  .cert-page-back {
    width:82%;
    right:1%;
    bottom:3%;
    transform:translate(0,0) rotate(2deg);
  }
  .certificate-stage.is-visible .cert-page-front {
    transform:translate(-1.5%,-.5%) rotate(-1.8deg);
  }
  .certificate-stage.is-visible .cert-page-back {
    transform:translate(1.5%,.5%) rotate(2.4deg);
  }
  .certificate-zoom {
    position:static;
    left:auto;
    bottom:auto;
    transform:none;
    margin:0 auto;
  }
  .cert-transfer {
    margin-top:48px;
  }
}

@media (max-width:560px) {
  .role-experience .journey-visual {
    top:calc(var(--header-h) + env(safe-area-inset-top) + 60px);
    margin-bottom:18px;
  }
  .role-experience .journey-image-stage {
    height:clamp(210px,30svh,260px);
    min-height:210px;
  }
  .role-experience .journey-phase {
    min-height:58svh;
    padding:36px 0 64px;
    scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top) + 340px);
  }
  .certificate-stage {
    padding-top:6px;
  }
  .certificate-pages {
    width:min(100%,380px);
    height:clamp(380px,116vw,450px);
  }
  .cert-transfer {
    margin-top:38px;
  }
}

@media (max-width:360px) {
  .role-experience .journey-image-stage {
    height:210px;
  }
  .role-experience .journey-phase {
    min-height:56svh;
  }
  .certificate-pages {
    height:390px;
  }
}
