:root {
  --ink: #071827;
  --ink-soft: #40515e;
  --navy: #071f33;
  --navy-2: #0b2c45;
  --blue: #0d8dcc;
  --cyan: #13b7bf;
  --cyan-soft: #dff8f6;
  --orange: #ff9e45;
  --paper: #f5f7f8;
  --white: #ffffff;
  --line: #dbe4e8;
  --success: #0a8f6a;
  --shadow-sm: 0 10px 32px rgba(5, 28, 43, .08);
  --shadow-lg: 0 28px 80px rgba(5, 28, 43, .16);
  --radius-sm: 12px;
  --radius: 22px;
  --radius-lg: 34px;
  --container: min(1180px, calc(100vw - 40px));
  --font: "Segoe UI Variable", "Segoe UI", Inter, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg, canvas, video { -webkit-user-drag: none; -webkit-touch-callout: none; user-select: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
p { margin: 0 0 1rem; color: var(--ink-soft); }
h1, h2, h3, h4 { margin: 0; line-height: 1.06; letter-spacing: -.035em; }
h1 { font-size: clamp(3.2rem, 7.7vw, 7.2rem); font-weight: 760; }
h2 { font-size: clamp(2.2rem, 4.5vw, 4.4rem); font-weight: 730; }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 700; }

.skip-link { position: fixed; left: 20px; top: -80px; z-index: 300; padding: 12px 18px; background: var(--white); border-radius: 10px; }
.skip-link:focus { top: 20px; }
.container { width: var(--container); margin-inline: auto; }
.section { padding: clamp(76px, 9vw, 132px) 0; }
.section-sm { padding: 64px 0; }
.section-dark { color: var(--white); background: var(--navy); }
.section-tint { background: var(--paper); }
.iperx-engine-section { background: radial-gradient(circle at 87% 22%, rgba(19,183,191,.15), transparent 27%), linear-gradient(180deg, #f5fbfc 0%, #e8f6f8 100%); }
.eyebrow { display: inline-flex; gap: 10px; align-items: center; margin-bottom: 20px; color: var(--cyan); font-size: .78rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { width: 26px; height: 2px; content: ""; background: currentColor; }
.section-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr); gap: 50px; align-items: end; margin-bottom: 52px; }
.section-head p { max-width: 570px; margin: 0; font-size: 1.08rem; }
.section-dark p { color: #bfd0dc; }
.kicker { max-width: 720px; font-size: clamp(1.05rem, 1.7vw, 1.28rem); }
.muted { color: var(--ink-soft); }
.small { font-size: .86rem; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: var(--blue); font-weight: 720; }
.text-link::after { content: "↗"; transition: transform .2s ease; }
.text-link:hover::after { transform: translate(3px, -3px); }

.announcement { position: relative; z-index: 102; padding: 7px 20px; color: #dffbfb; background: #061824; text-align: center; font-size: .79rem; letter-spacing: .02em; }
.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(12, 42, 61, .08); background: rgba(255,255,255,.92); backdrop-filter: blur(18px); }
.nav-shell { width: var(--container); min-height: 78px; margin-inline: auto; display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.brand-logo { width: 44px; height: 44px; object-fit: contain; filter: drop-shadow(0 8px 15px rgba(13,141,204,.2)); }
.brand-logo--full { width: 156px; height: 52px; filter: none; }
.brand-mark { position: relative; width: 40px; height: 40px; display: grid; place-items: center; color: var(--white); background: linear-gradient(145deg, var(--blue), var(--cyan)); border-radius: 13px; box-shadow: 0 8px 24px rgba(13,141,204,.24); }
.brand-mark::before, .brand-mark::after { position: absolute; width: 15px; height: 7px; content: ""; border: 2px solid currentColor; border-radius: 99px; transform: rotate(-34deg); }
.brand-mark::before { translate: -5px 3px; }
.brand-mark::after { translate: 5px -3px; }
.brand-name { font-size: 1.28rem; font-weight: 800; letter-spacing: -.04em; }
.brand-name span { color: var(--cyan); }
.nav-links { display: flex; align-items: center; gap: 5px; }
.nav-link { padding: 9px 11px; border-radius: 10px; color: #284253; font-size: .91rem; font-weight: 650; white-space: nowrap; }
.nav-link:hover, .nav-link.active { color: var(--ink); background: #edf4f6; }
.nav-menu { position: relative; }
.nav-menu > summary { display: inline-flex; gap: 8px; align-items: center; list-style: none; cursor: pointer; }
.nav-menu > summary::-webkit-details-marker { display: none; }
.nav-menu > summary::after { width: 7px; height: 7px; content: ""; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.nav-menu[open] > summary { color: var(--ink); background: #edf4f6; }
.nav-menu[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.nav-dropdown { position: absolute; top: calc(100% + 11px); left: 0; z-index: 130; min-width: 244px; padding: 8px; display: grid; gap: 2px; background: rgba(255,255,255,.98); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 18px 40px rgba(6,32,48,.14); }
.nav-dropdown-link { padding: 10px 12px; color: #284253; border-radius: 10px; font-size: .88rem; font-weight: 650; white-space: nowrap; }
.nav-dropdown-link:hover, .nav-dropdown-link:focus-visible, .nav-dropdown-link.active { color: var(--ink); background: #edf4f6; outline: none; }
.nav-menu > summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; border-radius: 12px; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; width: 22px; height: 2px; margin: 5px auto; content: ""; background: var(--ink); transition: .25s ease; }
.menu-toggle[aria-expanded="true"] span { opacity: 0; }
.menu-toggle[aria-expanded="true"]::before { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform: translateY(-7px) rotate(-45deg); }

.btn { display: inline-flex; min-height: 48px; padding: 0 20px; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 13px; background: var(--blue); color: var(--white); font-weight: 730; box-shadow: 0 10px 24px rgba(13,141,204,.18); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 15px 34px rgba(13,141,204,.25); }
.btn-outline { color: var(--ink); background: transparent; border-color: #b8c7cf; box-shadow: none; }
.btn-outline:hover { background: var(--white); box-shadow: var(--shadow-sm); }
.btn-light { color: var(--navy); background: var(--white); box-shadow: none; }
.btn-ghost { min-height: 42px; padding-inline: 14px; color: var(--ink); background: transparent; border-color: var(--line); box-shadow: none; }
.btn-sm { min-height: 40px; padding: 0 15px; font-size: .88rem; }
.btn-arrow::after { content: "→"; font-size: 1.15em; }
.btn-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }

.hero { position: relative; min-height: calc(100vh - 109px); display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--navy); }
.hero::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(4,19,31,.97) 0%, rgba(4,19,31,.78) 41%, rgba(4,19,31,.08) 78%), linear-gradient(0deg, rgba(4,19,31,.52), transparent 55%); z-index: 1; }
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: center; will-change: scale; animation: pageHeroDrift 18s ease-in-out infinite alternate; }
.hero-content { position: relative; z-index: 2; width: var(--container); margin: 0 auto; padding: clamp(100px, 12vw, 180px) 0 clamp(70px, 9vw, 120px); }
.hero h1 { max-width: 850px; }
.hero h1 .accent { color: #62e0dc; }
.hero-lead { max-width: 680px; margin: 28px 0 0; color: #d3e0e7; font-size: clamp(1.12rem, 1.7vw, 1.34rem); }
.hero .btn-outline { color: var(--white); border-color: rgba(255,255,255,.44); }
.hero .btn-outline:hover { color: var(--ink); }
.hero-proof { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 52px; color: #d8e3e9; font-size: .88rem; }
.proof-item { display: flex; gap: 9px; align-items: center; }
.proof-dot { width: 9px; height: 9px; background: var(--cyan); border-radius: 50%; box-shadow: 0 0 0 5px rgba(19,183,191,.16); }
.hero-data-stream { position: absolute; right: max(32px, calc((100vw - 1180px) / 2)); bottom: clamp(72px, 9vw, 130px); z-index: 3; width: min(31vw, 390px); display: grid; gap: 22px; pointer-events: none; }
.hero-data-card { position: relative; min-height: 88px; padding: 16px 18px 16px 70px; display: grid; align-content: center; overflow: hidden; color: var(--white); background: rgba(7,31,51,.76); border: 1px solid rgba(255,255,255,.2); border-radius: 18px; box-shadow: 0 20px 50px rgba(0,0,0,.22); backdrop-filter: blur(15px); animation: heroCardFloat 5.4s ease-in-out infinite; }
.hero-data-card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(115deg, transparent 15%, rgba(255,255,255,.1) 48%, transparent 72%); transform: translateX(-120%); animation: cardSheen 6.8s ease-in-out infinite; }
.hero-data-card > span { position: absolute; left: 18px; top: 22px; width: 38px; height: 38px; display: grid; place-items: center; color: #071f33; background: #62e0dc; border-radius: 12px; font-size: .72rem; font-weight: 900; }
.hero-data-card strong, .hero-data-card small { position: relative; z-index: 1; display: block; }
.hero-data-card strong { font-size: 1rem; }
.hero-data-card small { margin-top: 3px; color: #bcd0da; font-size: .75rem; }
.hero-data-card--two { margin-left: 52px; animation-delay: -.9s; }
.hero-data-card--two::after { animation-delay: -1.1s; }
.hero-data-card--three { margin-left: 18px; border-color: rgba(98,224,220,.5); animation-delay: -1.8s; }
.hero-data-card--three::after { animation-delay: -2.2s; }

body[data-page="home"] .hero h1 { max-width: 760px; font-size: clamp(2.7rem, 4.8vw, 4.7rem); }
body[data-page="home"] .hero-content { padding-top: clamp(72px,7.5vw,105px); padding-bottom: 55px; }
@media (min-width: 891px) {
  body[data-page="home"] .hero-content { padding-right: min(37vw, 440px); }
}
body[data-page="home"] .hero .btn-row { margin-top: 24px; }
.hero-use-cases { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 42px; }
.hero-use-cases span { padding: 7px 11px; color: #dffafa; background: rgba(255,255,255,.09); border: 1px solid rgba(161,243,239,.25); border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; backdrop-filter: blur(9px); }
.operational-proof .metric strong { font-size: clamp(1.2rem, 2vw, 1.65rem); letter-spacing: -.03em; }
.operational-proof .metric span { line-height: 1.45; }

.home-process { position: relative; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.process-step { position: relative; min-height: 230px; padding: 27px 22px; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 12px 32px rgba(6,32,48,.05); }
.process-step::before { position: absolute; right: -48px; bottom: -55px; width: 125px; height: 125px; content: ""; background: rgba(19,183,191,.07); border-radius: 50%; transition: transform .35s ease; }
.process-step::after { position: absolute; z-index: 2; top: 49px; right: -17px; width: 22px; height: 22px; display: grid; place-items: center; content: "→"; color: #087f92; background: #dff8f6; border: 1px solid #bce9e7; border-radius: 50%; font-size: .72rem; font-weight: 900; }
.process-step:last-child::after { display: none; }
.process-step:hover::before { transform: scale(1.2); }
.process-step > span { width: 44px; height: 44px; display: grid; place-items: center; color: #075c67; background: #dff8f6; border: 1px solid #bdebea; border-radius: 14px; font-size: .72rem; font-weight: 900; letter-spacing: .08em; }
.process-step h3 { position: relative; z-index: 1; margin-top: 28px; font-size: 1.35rem; }
.process-step p { position: relative; z-index: 1; margin-top: 12px; font-size: .9rem; line-height: 1.55; }
.process-example { margin-top: 26px; padding: 22px 26px; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 22px; align-items: center; background: linear-gradient(135deg, #eef9fa, #fff); border: 1px solid #c9e8e9; border-radius: 20px; }
.process-example > span { padding: 7px 10px; color: #075c67; background: #dff8f6; border-radius: 999px; font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.process-example p { margin: 0; }
.process-example strong { color: var(--ink); }

.home-products-section { overflow: hidden; }
.product-showcase-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; align-items: stretch; }
.product-showcase { display: flex; flex-direction: column; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 18px 46px rgba(6,32,48,.07); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.product-showcase:hover { transform: translateY(-7px); border-color: #a8dadd; box-shadow: var(--shadow-lg); }
.product-visual { height: 255px; padding: 22px 0 0 22px; overflow: hidden; background: linear-gradient(145deg, #e8f7f8, #f8fbfc); border-bottom: 1px solid var(--line); }
.product-visual img { width: 112%; height: 100%; object-fit: cover; object-position: top left; border: 1px solid #c7dfe4; border-radius: 14px 0 0 0; box-shadow: 0 16px 38px rgba(5,28,43,.15); }
.product-visual--phone { padding: 20px 0 0; display: grid; place-items: start center; background: radial-gradient(circle at 50% 20%, rgba(98,224,220,.28), transparent 35%), linear-gradient(145deg, #082d45, #0d6175); }
.product-visual--phone img { width: 128px; height: 286px; object-fit: cover; object-position: top; border: 5px solid #061e2f; border-bottom: 0; border-radius: 22px 22px 0 0; box-shadow: 0 20px 44px rgba(0,0,0,.3); }
.product-showcase--crm .product-visual { background: linear-gradient(145deg, #edf8fb, #f8fbfc); }
.product-showcase--core .product-visual { background: linear-gradient(145deg, #eefaf9, #f9fcfc); }
.product-copy { padding: 28px; display: flex; flex: 1; flex-direction: column; }
.product-copy .app-icon { margin-bottom: 18px; }
.product-copy h3 { margin-top: 10px; font-size: clamp(1.65rem,2.4vw,2.2rem); }
.product-copy p { margin-top: 15px; }
.product-copy ul { margin: 6px 0 0; padding: 0; display: grid; gap: 7px; color: var(--ink-soft); list-style: none; font-size: .9rem; }
.product-copy li { position: relative; padding-left: 19px; }
.product-copy li::before { position: absolute; left: 0; top: .62em; width: 7px; height: 7px; content: ""; background: var(--cyan); border-radius: 50%; }
.product-copy .text-link { margin-top: auto; padding-top: 24px; align-self: flex-start; }

.rules-home-section { overflow: hidden; background: radial-gradient(circle at 88% 15%, rgba(19,183,191,.11), transparent 27%), var(--white); }
.rules-home-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(390px,.8fr); gap: clamp(45px,7vw,95px); align-items: center; }
.rules-home-copy h2 { max-width: 720px; }
.rules-home-copy .kicker { margin-top: 24px; }
.rules-home-list { margin-top: 35px; display: grid; gap: 13px; }
.rules-home-list > div { padding: 18px 20px; display: grid; grid-template-columns: minmax(150px,.45fr) minmax(0,1fr); gap: 22px; background: #f7fafb; border: 1px solid var(--line); border-radius: 16px; }
.rules-home-list strong { color: var(--ink); }
.rules-home-list span { color: var(--ink-soft); font-size: .92rem; }
.ai-capability { margin-top: 22px; padding: 20px; display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 16px; align-items: center; background: #071f33; border-radius: 18px; }
.ai-capability img { width: 46px; height: 46px; padding: 9px; background: var(--white); border: 1px solid rgba(98,224,220,.55); border-radius: 13px; box-shadow: 0 8px 20px rgba(0,0,0,.16); }
.ai-capability p { margin: 0; color: #c7dce5; font-size: .9rem; }
.ai-capability strong { color: #62e0dc; }
.rules-home-visual { margin: 0; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: var(--shadow-lg); transform: rotate(1deg); }
.rules-home-visual img { width: 100%; height: 550px; object-fit: cover; object-position: top; }
.rules-home-visual figcaption { padding: 22px 24px; display: grid; gap: 5px; }
.rules-home-visual figcaption strong { color: var(--ink); }
.rules-home-visual figcaption span { color: var(--ink-soft); font-size: .88rem; }

.use-case-card { min-height: 265px; display: flex; flex-direction: column; }
.use-case-card .text-link { margin-top: auto; padding-top: 24px; align-self: flex-start; }
.use-case-card:nth-child(1), .use-case-card:nth-child(4) { background: linear-gradient(145deg, #f1faf9, #fff); }
.benefit-grid { gap: 18px; }
.benefit-card { padding: 28px; background: #f7fafb; border: 1px solid var(--line); border-radius: 22px; }
.benefit-card img { width: 52px; height: 52px; padding: 11px; background: #e3f7f6; border-radius: 15px; }
.benefit-card h3 { margin-top: 22px; }
.benefit-card p { margin-top: 11px; }

.home-trust-section { background: radial-gradient(circle at 82% 18%, rgba(19,183,191,.18), transparent 24%), linear-gradient(145deg, #061a29, #082d45); }
.trust-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.trust-card { min-height: 270px; padding: 27px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 22px; }
.trust-card img { width: 50px; height: 50px; padding: 10px; background: rgba(98,224,220,.12); border: 1px solid rgba(98,224,220,.24); border-radius: 14px; filter: brightness(0) invert(1); }
.trust-card h3 { margin-top: 24px; }
.trust-card p { margin-top: 12px; color: #bdd2dc; font-size: .91rem; }
.trust-links { margin-top: 28px; padding-top: 24px; display: flex; flex-wrap: wrap; gap: 18px 30px; border-top: 1px solid rgba(255,255,255,.12); }
.trust-links .text-link { color: #62e0dc; }

.iperlink-section { position: relative; overflow: hidden; background: radial-gradient(circle at 8% 14%, rgba(19,183,191,.12), transparent 25%), linear-gradient(180deg, #f7fbfc 0%, #eef7f8 100%); }
.iperlink-section::after { position: absolute; right: -170px; bottom: -250px; width: 520px; height: 520px; content: ""; border: 78px solid rgba(13,141,204,.06); border-radius: 50%; pointer-events: none; }
.iperlink-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr); gap: clamp(50px,7vw,90px); align-items: center; }
.iperlink-copy { max-width: 570px; }
.iperlink-badge { width: fit-content; margin: 0 0 24px; padding: 8px 13px; display: block; color: #075c67; background: var(--cyan-soft); border: 1px solid #bdebea; border-radius: 999px; font-size: .76rem; font-weight: 800; letter-spacing: .035em; }
.iperlink-copy h2 { font-size: clamp(2.35rem,4.5vw,4.25rem); }
.iperlink-intro { margin-top: 24px; font-size: 1.08rem; line-height: 1.72; }
.iperlink-path { margin-top: 32px; padding: 15px 18px; display: flex; gap: 11px; align-items: center; justify-content: space-between; color: #38515f; background: rgba(255,255,255,.72); border: 1px solid #cfe2e6; border-radius: 16px; font-size: .82rem; }
.iperlink-path strong { padding: 7px 11px; color: var(--white); background: linear-gradient(135deg, var(--blue), var(--cyan)); border-radius: 999px; white-space: nowrap; }
.iperlink-path i { color: var(--cyan); font-style: normal; font-weight: 900; }
.iperlink-features { display: grid; gap: 18px; }
.iperlink-card { min-height: 210px; padding: 30px; display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 23px; align-items: start; background: rgba(255,255,255,.92); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.iperlink-card:hover { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(5,28,43,.12); }
.iperlink-card img { width: 64px; height: 64px; padding: 14px; background: linear-gradient(145deg, #e1f8f6, #eef9ff); border: 1px solid #c3e8e8; border-radius: 18px; }
.iperlink-number { display: block; margin-bottom: 7px; color: var(--cyan); font-size: .7rem; font-weight: 850; letter-spacing: .16em; }
.iperlink-card h3 { font-size: clamp(1.35rem,2vw,1.75rem); }
.iperlink-card p { margin: 13px 0 0; font-size: .95rem; line-height: 1.65; }
.iperlink-more { margin-top: 24px; }

/* Page IperLink */
.page-hero.iperlink-page-hero { min-height: 710px; display: grid; align-items: center; background: radial-gradient(circle at 82% 28%, rgba(98,224,220,.2), transparent 22%), radial-gradient(circle at 72% 80%, rgba(13,141,204,.18), transparent 30%), linear-gradient(135deg, #061724 0%, #082b43 58%, #0b5873 100%); }
.page-hero.iperlink-page-hero::before { background: repeating-linear-gradient(90deg, transparent 0, transparent 9.8%, rgba(137,231,230,.07) 9.8%, rgba(137,231,230,.07) 10%); opacity: .75; }
.iperlink-hero-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(430px,.9fr); gap: clamp(50px,8vw,110px); align-items: center; }
.page-hero.iperlink-page-hero h1 { max-width: 730px; font-size: clamp(3.25rem,6.4vw,6.1rem); }
.iperlink-hero-visual { position: relative; min-height: 500px; display: grid; place-items: center; isolation: isolate; }
.iperlink-hero-orbit { position: absolute; width: 410px; height: 410px; border: 1px solid rgba(98,224,220,.3); border-radius: 50%; animation: iperlink-orbit-spin 22s linear infinite; }
.iperlink-hero-orbit::before, .iperlink-hero-orbit::after { position: absolute; content: ""; background: #62e0dc; border-radius: 50%; box-shadow: 0 0 0 8px rgba(98,224,220,.1), 0 0 25px rgba(98,224,220,.7); }
.iperlink-hero-orbit::before { top: 31px; left: 55px; width: 10px; height: 10px; }
.iperlink-hero-orbit::after { right: 25px; bottom: 92px; width: 7px; height: 7px; }
.iperlink-hero-hub { position: relative; z-index: 2; width: 190px; height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--white); background: linear-gradient(145deg, rgba(13,141,204,.96), rgba(19,183,191,.96)); border: 1px solid rgba(255,255,255,.32); border-radius: 50%; box-shadow: 0 28px 70px rgba(0,0,0,.3), 0 0 0 20px rgba(98,224,220,.07); animation: iperlink-hub-float 5s ease-in-out infinite; }
.iperlink-hero-hub img { width: 58px; height: 58px; padding: 11px; filter: brightness(0) invert(1); background: rgba(255,255,255,.14); border-radius: 16px; }
.iperlink-hero-hub strong { margin-top: 12px; font-size: 1.2rem; }
.iperlink-hero-hub span { margin-top: 2px; color: #dffafa; font-size: .72rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.iperlink-hero-node { position: absolute; z-index: 3; width: 180px; padding: 18px; display: grid; color: var(--white); background: rgba(7,31,51,.82); border: 1px solid rgba(98,224,220,.3); border-radius: 18px; box-shadow: 0 16px 42px rgba(0,0,0,.22); backdrop-filter: blur(12px); }
.iperlink-hero-node--client { top: 55px; left: 5px; }
.iperlink-hero-node--recipient { right: 0; bottom: 55px; }
.iperlink-hero-node > span { color: #62e0dc; font-size: .68rem; font-weight: 850; letter-spacing: .15em; }
.iperlink-hero-node strong { margin-top: 7px; }
.iperlink-hero-node small { margin-top: 3px; color: #acc6d1; }
.iperlink-purpose-grid { gap: 20px; }
.iperlink-purpose-card { position: relative; min-height: 505px; overflow: hidden; }
.iperlink-purpose-card::after { position: absolute; right: -58px; bottom: -70px; width: 180px; height: 180px; content: ""; background: rgba(19,183,191,.07); border-radius: 50%; }
.iperlink-purpose-card img { width: 62px; height: 62px; padding: 14px; background: var(--cyan-soft); border: 1px solid #bdebea; border-radius: 18px; }
.iperlink-purpose-card .card-number { display: block; margin-top: 32px; }
.iperlink-purpose-card h3 { margin-top: 13px; }
.iperlink-purpose-card p { max-width: 500px; margin-top: 16px; }
.iperlink-purpose-card p strong { color: var(--ink); }
.iperlink-process-tag { width: fit-content; margin-top: 25px; display: block; color: #08727d; font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.iperlink-process-list { position: relative; z-index: 1; margin: 20px 0 0; padding: 0; display: grid; gap: 9px; list-style: none; color: var(--ink-soft); font-size: .92rem; }
.iperlink-process-list li { position: relative; padding-left: 24px; }
.iperlink-process-list li::before { position: absolute; left: 0; top: .18em; color: var(--cyan); content: "✓"; font-weight: 900; }
.iperlink-process-apps { position: relative; z-index: 1; margin-top: 22px; display: flex; flex-wrap: wrap; gap: 8px; }
.iperlink-process-apps span { padding: 7px 10px; color: #075c67; background: var(--cyan-soft); border: 1px solid #bdebea; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.iperlink-login-section { background: radial-gradient(circle at 85% 20%, rgba(19,183,191,.09), transparent 28%), var(--paper); }
.iperlink-login-frame { width: min(100%,580px); justify-self: end; background: #ececec; transform: rotate(1deg); transition: transform .35s ease, box-shadow .35s ease; }
.iperlink-login-frame:hover { transform: rotate(0) translateY(-5px); box-shadow: 0 34px 85px rgba(5,28,43,.2); }
.iperlink-users-section { background: radial-gradient(circle at 14% 20%, rgba(19,183,191,.14), transparent 24%), linear-gradient(145deg, #061724, #082f48); }
.iperlink-access-map { display: grid; grid-template-columns: minmax(260px,.78fr) minmax(110px,.3fr) minmax(310px,.92fr); gap: 24px; align-items: center; }
.iperlink-access-admin { min-height: 330px; padding: clamp(28px,4vw,42px); background: linear-gradient(145deg, rgba(19,183,191,.22), rgba(255,255,255,.06)); border: 1px solid rgba(98,224,220,.3); border-radius: 26px; box-shadow: 0 24px 55px rgba(0,0,0,.2); }
.iperlink-access-admin img { width: 62px; height: 62px; margin: 26px 0; padding: 13px; filter: brightness(0) invert(1); background: rgba(98,224,220,.15); border-radius: 17px; }
.iperlink-access-admin p { margin-top: 15px; }
.iperlink-role-label { color: #62e0dc; font-size: .71rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.iperlink-invite-flow { position: relative; min-height: 90px; display: grid; place-items: center; }
.iperlink-invite-flow::before { position: absolute; left: 0; right: 0; top: 50%; height: 1px; content: ""; background: linear-gradient(90deg, rgba(98,224,220,.15), #62e0dc, rgba(98,224,220,.15)); }
.iperlink-invite-flow span { position: absolute; left: 0; top: calc(50% - 5px); width: 10px; height: 10px; background: #b7fffa; border-radius: 50%; box-shadow: 0 0 15px rgba(98,224,220,.9); animation: iperlink-invite-travel 3.2s ease-in-out infinite; }
.iperlink-invite-flow strong { position: relative; z-index: 1; padding: 7px 11px; color: #06243a; background: #62e0dc; border-radius: 999px; font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.iperlink-guest-stack { display: grid; gap: 12px; }
.iperlink-guest-stack article { padding: 20px 22px; display: grid; grid-template-columns: minmax(78px,.35fr) minmax(130px,.65fr); gap: 3px 18px; align-items: center; color: var(--white); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13); border-radius: 18px; transition: transform .25s ease, background .25s ease; }
.iperlink-guest-stack article:hover { transform: translateX(7px); background: rgba(255,255,255,.11); }
.iperlink-guest-stack span { grid-row: span 2; color: #62e0dc; font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.iperlink-guest-stack small { color: #a9c4cf; }
.iperlink-role-points { margin-top: 36px; display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.iperlink-role-points article { padding: 24px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.11); border-radius: 18px; }
.iperlink-role-points strong { color: #62e0dc; }
.iperlink-role-points p { margin: 9px 0 0; font-size: .9rem; }
.iperlink-documents-section { background: linear-gradient(180deg,#fff,#f8fbfc); }
.iperlink-documents-frame { background: #ececec; box-shadow: 0 30px 80px rgba(5,28,43,.16); }
.iperlink-document-points { margin-top: 24px; gap: 18px; }
.iperlink-document-points .card { min-height: 225px; }
.iperlink-status-section { background: radial-gradient(circle at 88% 14%, rgba(19,183,191,.1), transparent 25%), linear-gradient(180deg,#f7fafb,#eef6f7); }
.iperlink-status-head { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.65fr); gap: clamp(38px,7vw,90px); align-items: end; margin-bottom: 46px; }
.iperlink-status-head h2 { max-width: 760px; font-size: clamp(2.5rem,4.4vw,4.15rem); }
.iperlink-status-head p { max-width: 500px; margin: 0 0 6px; font-size: 1.05rem; }
.iperlink-status-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.iperlink-status-card { position: relative; min-height: 310px; padding: 27px; display: flex; flex-direction: column; background: rgba(255,255,255,.92); border: 1px solid #d6e4e7; border-radius: 22px; box-shadow: 0 12px 32px rgba(6,32,48,.06); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.iperlink-status-card:hover { transform: translateY(-6px); border-color: #9fd5d7; box-shadow: 0 20px 45px rgba(6,32,48,.11); }
.iperlink-status-card::after { position: absolute; z-index: 3; top: calc(50% - 17px); right: -27px; width: 34px; height: 34px; content: "→"; display: grid; place-items: center; color: #086d78; background: #dff8f6; border: 1px solid #aee2e1; border-radius: 50%; font-size: .9rem; font-weight: 900; box-shadow: 0 7px 18px rgba(6,75,84,.12); }
.iperlink-status-card:last-child::after { display: none; }
.iperlink-status-card--approved { background: linear-gradient(145deg,#fff,#eefbf9); border-color: #b9e5df; }
.iperlink-status-card--archived { background: linear-gradient(145deg,#fff,#f1f7fa); border-color: #c7dce6; }
.iperlink-status-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.iperlink-status-card-top small { color: #65808d; font-size: .68rem; font-weight: 780; letter-spacing: .07em; text-transform: uppercase; }
.iperlink-status-index { color: var(--cyan); font-size: .72rem; font-weight: 900; letter-spacing: .15em; }
.iperlink-status-card img { width: 55px; height: 55px; margin-top: 34px; padding: 12px; background: var(--cyan-soft); border: 1px solid #c1e8e6; border-radius: 16px; }
.iperlink-status-card h3 { margin-top: 23px; font-size: 1.55rem; }
.iperlink-status-card p { margin: 13px 0 0; font-size: .91rem; line-height: 1.62; }
.iperlink-availability-note { margin-top: 22px; padding: 24px 27px; display: flex; gap: 28px; align-items: center; justify-content: space-between; background: var(--navy); border-radius: 20px; box-shadow: var(--shadow-sm); }
.iperlink-availability-note strong { color: var(--white); font-size: 1.05rem; }
.iperlink-availability-note p { max-width: 690px; margin: 4px 0 0; color: #b9ced8; font-size: .9rem; }
.iperlink-availability-tags { display: flex; flex-wrap: wrap; gap: 9px; flex: 0 0 auto; }
.iperlink-availability-tags span { padding: 8px 12px; color: #062b35; background: #62e0dc; border-radius: 999px; font-size: .76rem; font-weight: 850; }

@keyframes iperlink-orbit-spin { to { transform: rotate(360deg); } }
@keyframes iperlink-hub-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-11px); } }
@keyframes iperlink-invite-travel { 0% { left: 0; opacity: 0; } 15% { opacity: 1; } 82% { opacity: 1; } 100% { left: calc(100% - 10px); opacity: 0; } }

.page-hero { position: relative; padding: clamp(100px, 13vw, 170px) 0 90px; overflow: hidden; color: var(--white); background: var(--navy); }
.page-hero::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 85% 20%, rgba(19,183,191,.23), transparent 30%), linear-gradient(135deg, transparent 35%, rgba(13,141,204,.08)); }
.page-hero.has-image { min-height: 650px; display: grid; align-items: end; }
.page-hero.has-image::before { z-index: 1; background: radial-gradient(circle at 82% 22%, rgba(19,183,191,.2), transparent 31%); }
.page-hero.has-image::after { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(90deg, rgba(4,19,31,.97) 0%, rgba(4,19,31,.88) 42%, rgba(4,19,31,.42) 72%, rgba(4,19,31,.16) 100%), linear-gradient(0deg, rgba(4,19,31,.55), transparent 55%); }
.page-hero .page-hero-media { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: center; will-change: scale; animation: pageHeroDrift 18s ease-in-out infinite alternate; }
.hero-iperx::before { background: radial-gradient(circle at 82% 44%, rgba(20,213,232,.18), transparent 18%), radial-gradient(circle at 85% 20%, rgba(19,183,191,.23), transparent 30%), linear-gradient(135deg, transparent 35%, rgba(13,141,204,.08)); }
.hero-iperx .page-hero-content { padding-right: clamp(190px, 23vw, 310px); }
.hero-iperx-logo { position: absolute; top: 0; right: 0; width: clamp(160px, 18vw, 240px); padding: clamp(15px, 2vw, 25px); border: 1px solid rgba(98,224,220,.38); border-radius: 32px; background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(13,141,204,.08)); box-shadow: 0 24px 65px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.16); }
.hero-referentiel .page-hero-content { padding-right: clamp(180px, 21vw, 290px); }
.hero-referentiel-logo { position: absolute; top: 6px; right: 0; width: clamp(145px, 16vw, 210px); padding: clamp(14px, 1.8vw, 22px); border: 1px solid rgba(98,224,220,.38); border-radius: 30px; background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(13,141,204,.1)); box-shadow: 0 22px 58px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.17); }
.page-hero.has-image h1 { max-width: 820px; }
.page-hero.has-image p { max-width: 680px; }
.hero-image--photo-right .page-hero-media { object-position: 72% center; }
.hero-image--photo-center .page-hero-media { object-position: center; }
.hero-image--screen .page-hero-media { object-position: 72% 28%; filter: saturate(.82) contrast(.94); transform: scale(1.06); }
.page-hero.hero-image--screen::after { background: linear-gradient(90deg, rgba(4,19,31,.99) 0%, rgba(4,19,31,.94) 43%, rgba(4,19,31,.6) 72%, rgba(4,19,31,.32) 100%), linear-gradient(0deg, rgba(4,19,31,.66), transparent 58%); }
.page-hero-content { position: relative; z-index: 2; }
.page-hero h1 { max-width: 960px; font-size: clamp(3rem, 7vw, 6.4rem); }
.page-hero p { max-width: 760px; margin-top: 24px; color: #c8dae4; font-size: 1.2rem; }
.page-hero .btn-outline { color: var(--navy); background: #62e0dc; border-color: #62e0dc; box-shadow: 0 12px 28px rgba(19,183,191,.22); }
.page-hero .btn-outline:hover { color: var(--white); background: var(--blue); border-color: var(--blue); box-shadow: 0 16px 34px rgba(13,141,204,.3); }
.breadcrumb { display: flex; gap: 8px; margin-bottom: 28px; color: #8eafc0; font-size: .85rem; }
.breadcrumb a:hover { color: var(--white); }
.breadcrumb span::before { margin-right: 8px; content: "/"; }

.roadmap-hero { min-height: 560px; display: grid; align-items: end; background: radial-gradient(circle at 78% 32%, rgba(19,183,191,.24), transparent 16%), radial-gradient(circle at 88% 62%, rgba(13,141,204,.23), transparent 25%), linear-gradient(135deg, #061724 0%, #082b43 58%, #0b5472 100%); }
.roadmap-hero::before { z-index: 1; background: linear-gradient(90deg, rgba(4,19,31,.14), transparent 70%), repeating-linear-gradient(90deg, transparent 0, transparent 8.5%, rgba(137,231,230,.12) 8.5%, rgba(137,231,230,.12) 8.7%); opacity: .75; }
.roadmap-hero .page-hero-content { max-width: 900px; }
.roadmap-hero p { max-width: 760px; }
.roadmap-hero-tags { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 9px; margin-top: 32px; }
.roadmap-hero-tags span { padding: 7px 11px; color: #dffafa; background: rgba(255,255,255,.1); border: 1px solid rgba(161,243,239,.24); border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.roadmap-notice { max-width: 820px; margin: -22px 0 38px; padding: 16px 20px; color: #405b66; background: #eef8fa; border-left: 3px solid var(--cyan); border-radius: 0 14px 14px 0; font-size: .93rem; }
.roadmap-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 18px; }
.roadmap-card { position: relative; min-height: 400px; padding: clamp(28px,4vw,44px); display: flex; grid-column: span 6; flex-direction: column; overflow: hidden; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 14px 38px rgba(6,32,48,.05); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.roadmap-card::after { position: absolute; right: -75px; bottom: -82px; width: 210px; height: 210px; content: ""; background: rgba(19,183,191,.07); border-radius: 50%; }
.roadmap-card:hover { transform: translateY(-7px); border-color: #a6d9dc; box-shadow: var(--shadow-lg); }
.roadmap-card--charly { color: var(--white); background: linear-gradient(145deg, #071f33, #0d4964); border-color: #16475e; }
.roadmap-card--charly::after { background: rgba(98,224,220,.11); }
.roadmap-card--charly p, .roadmap-card--charly li { color: #c1d9e3; }
.roadmap-card--planning { background: linear-gradient(145deg, #eefafa, #fff); }
.roadmap-card--commercial { min-height: 320px; grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); column-gap: clamp(30px,6vw,90px); align-items: end; background: linear-gradient(145deg, #fff, #f3f8fb); }
.roadmap-card-top { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 30px; }
.roadmap-card--commercial .roadmap-card-top { grid-column: 1 / -1; margin-bottom: 2px; }
.roadmap-status { width: max-content; padding: 6px 9px; color: #075c67; background: #dff8f6; border: 1px solid #bdebea; border-radius: 999px; font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.roadmap-status--active { color: #dffafa; background: rgba(98,224,220,.14); border-color: rgba(98,224,220,.35); }
.roadmap-status--prepare { color: #74511c; background: #fff2db; border-color: #f4ddb5; }
.roadmap-status--design { color: #295a92; background: #e9f2fc; border-color: #ccdef3; }
.roadmap-index { color: #aac1cb; font-size: 1.05rem; font-weight: 850; }
.roadmap-card h3 { position: relative; z-index: 1; margin-top: 22px; font-size: clamp(1.9rem,3vw,3rem); }
.roadmap-card p { position: relative; z-index: 1; margin-top: 15px; }
.roadmap-card ul { position: relative; z-index: 1; display: grid; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.roadmap-card li::before { margin-right: 9px; color: var(--cyan); content: "✓"; font-weight: 900; }
.roadmap-card--charly li::before { color: #62e0dc; }
.roadmap-commercial-copy { position: relative; z-index: 1; }
.roadmap-commercial-copy h3 { margin-top: 12px; }
.roadmap-commercial-points { position: relative; z-index: 1; display: grid; gap: 10px; }
.roadmap-commercial-points span { position: relative; padding: 13px 16px 13px 44px; color: #194455; background: rgba(255,255,255,.8); border: 1px solid #d5e6ea; border-radius: 13px; font-size: .87rem; font-weight: 760; }
.roadmap-commercial-points span::before { position: absolute; left: 16px; top: calc(50% - 7px); width: 14px; height: 14px; content: ""; background: var(--cyan); border-radius: 50%; box-shadow: 0 0 0 5px rgba(19,183,191,.1); }
.roadmap-card-note { grid-column: 1 / -1; margin: 25px 0 0 !important; color: #59707d; font-size: .9rem; }
.roadmap-iso-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr); gap: clamp(34px,7vw,100px); align-items: center; }
.roadmap-standard-list { display: grid; gap: 10px; margin: 28px 0; padding: 0; list-style: none; color: var(--ink-soft); }
.roadmap-standard-list li { padding-left: 26px; position: relative; }
.roadmap-standard-list li::before { position: absolute; left: 0; top: .62em; width: 10px; height: 10px; content: ""; background: var(--cyan); border-radius: 50%; box-shadow: 0 0 0 5px rgba(19,183,191,.12); }
.roadmap-iperx-panel { padding: clamp(32px,5vw,54px); color: var(--white); background: radial-gradient(circle at 82% 16%, rgba(98,224,220,.17), transparent 26%), linear-gradient(145deg, #071f33, #0d4964); border-radius: 28px; box-shadow: var(--shadow-lg); }
.roadmap-iperx-panel img { width: 110px; height: 110px; padding: 15px; background: rgba(255,255,255,.08); border: 1px solid rgba(98,224,220,.28); border-radius: 25px; }
.roadmap-iperx-panel > span { display: block; margin-top: 28px; color: #62e0dc; font-size: .74rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.roadmap-iperx-panel h3 { margin-top: 10px; font-size: clamp(1.8rem,3vw,2.6rem); }
.roadmap-iperx-panel p { margin-top: 15px; color: #c3dbe5; }
.roadmap-iperx-panel .text-link { margin-top: 20px; color: #62e0dc; }
.roadmap-review-map { margin-top: clamp(50px,7vw,90px); padding: clamp(26px,4vw,48px); background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 16px 42px rgba(6,32,48,.06); }
.roadmap-review-caption { display: grid; grid-template-columns: minmax(190px,.42fr) minmax(0,1fr); gap: 28px; align-items: center; margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.roadmap-review-caption span, .roadmap-ai-assist > div > span { color: var(--cyan); font-size: .71rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.roadmap-review-caption p { max-width: 690px; margin: 0; font-size: 1.02rem; }
.roadmap-review-main { display: grid; grid-template-columns: minmax(0,1fr) 44px minmax(250px,.78fr) 44px minmax(0,1fr); gap: 14px; align-items: center; }
.roadmap-review-stack { display: grid; gap: 9px; }
.roadmap-review-stack span { position: relative; min-height: 49px; padding: 13px 14px 13px 34px; display: flex; align-items: center; color: #2b4a58; background: #f6fafb; border: 1px solid #dcebed; border-radius: 12px; font-size: .84rem; font-weight: 720; line-height: 1.25; }
.roadmap-review-inputs span::before, .roadmap-review-outputs span::before { position: absolute; left: 15px; width: 8px; height: 8px; content: ""; background: var(--cyan); border-radius: 50%; box-shadow: 0 0 0 4px rgba(19,183,191,.1); }
.roadmap-review-outputs span { color: #0b5262; background: #eefafa; border-color: #ccebed; }
.roadmap-review-arrow { display: grid; place-items: center; color: var(--cyan); font-size: 2.2rem; font-weight: 850; }
.roadmap-review-hub { min-height: 292px; padding: 30px; display: flex; flex-direction: column; justify-content: center; color: var(--white); background: radial-gradient(circle at 85% 16%, rgba(98,224,220,.17), transparent 28%), linear-gradient(145deg, #071f33, #0d4964); border: 1px solid #16475e; border-radius: 24px; box-shadow: 0 18px 42px rgba(6,32,48,.17); }
.roadmap-review-hub > span { color: #62e0dc; font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.roadmap-review-hub h3 { margin-top: 12px; font-size: clamp(1.65rem,2.7vw,2.45rem); }
.roadmap-review-hub p { margin: 13px 0 0; color: #c5dae3; line-height: 1.55; }
.roadmap-review-hub strong { margin-top: 17px; color: #eefeff; font-size: .82rem; line-height: 1.45; }
.roadmap-review-cycle { display: flex; gap: 10px; align-items: center; margin-top: 30px; padding: 19px 22px; color: #28515e; background: #f7fbfc; border: 1px solid #dcebed; border-radius: 18px; }
.roadmap-review-cycle span { flex: 1 1 0; font-size: .76rem; font-weight: 760; line-height: 1.25; }
.roadmap-review-cycle i { color: var(--cyan); font-size: 1.2rem; font-style: normal; font-weight: 850; }
.roadmap-review-cycle b { color: var(--blue); font-size: 1.45rem; }
.roadmap-ai-assist { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 22px; align-items: start; margin-top: 24px; padding: 28px 30px; background: #eaf8fb; border: 1px solid #ccebed; border-radius: 22px; }
.roadmap-ai-assist .app-icon { margin: 0; }
.roadmap-ai-assist h3 { margin-top: 8px; font-size: clamp(1.45rem,2.3vw,2rem); }
.roadmap-ai-assist p { max-width: 900px; margin: 10px 0 0; }

.downloads-hero { min-height: 560px; display: grid; align-items: end; background: radial-gradient(circle at 82% 28%, rgba(19,183,191,.28), transparent 17%), radial-gradient(circle at 74% 66%, rgba(13,141,204,.26), transparent 28%), linear-gradient(135deg, #061724, #08314b 61%, #0b5777); }
.downloads-hero::before { z-index: 1; background: linear-gradient(90deg, rgba(4,19,31,.24), transparent 70%), linear-gradient(135deg, transparent 50%, rgba(98,224,220,.1)); }
.downloads-hero .page-hero-content { max-width: 900px; }
.downloads-hero p { max-width: 760px; }
.downloads-hero-tags { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 9px; margin-top: 32px; }
.downloads-hero-tags span { padding: 7px 11px; color: #dffafa; background: rgba(255,255,255,.1); border: 1px solid rgba(161,243,239,.24); border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.downloads-mobile-layout { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: clamp(26px,5vw,64px); align-items: stretch; }
.downloads-collect-intro { padding: clamp(30px,4vw,46px); color: var(--white); background: radial-gradient(circle at 88% 14%, rgba(98,224,220,.17), transparent 25%), linear-gradient(145deg, #071f33, #0d4964); border-radius: 28px; box-shadow: var(--shadow-lg); }
.downloads-collect-intro .app-icon { margin-bottom: 28px; background: rgba(255,255,255,.12); }
.downloads-collect-intro > span { color: #62e0dc; font-size: .72rem; font-weight: 850; letter-spacing: .13em; }
.downloads-collect-intro h3 { margin-top: 12px; font-size: clamp(1.9rem,3vw,2.8rem); }
.downloads-collect-intro p, .downloads-collect-intro li { color: #c2d9e3; }
.downloads-collect-intro ul, .download-desktop-card ul { display: grid; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.downloads-collect-intro li::before, .download-desktop-card li::before { margin-right: 9px; color: #62e0dc; content: "✓"; font-weight: 900; }
.downloads-collect-intro .text-link { margin-top: 29px; color: #62e0dc; }
.downloads-qr-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.download-qr-card { min-width: 0; margin: 0; padding: clamp(24px,3vw,36px); display: flex; flex-direction: column; align-items: center; text-align: center; background: var(--white); border: 1px solid var(--line); border-radius: 26px; box-shadow: 0 14px 34px rgba(6,32,48,.06); }
.download-qr-card img { width: min(100%, 178px); margin: 28px auto 23px; padding: 10px; background: var(--white); border: 1px solid #dbe6e9; border-radius: 16px; image-rendering: pixelated; }
.download-os { width: max-content; padding: 6px 9px; color: #075c67; background: #dff8f6; border: 1px solid #bdebea; border-radius: 999px; font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.download-qr-card--ios .download-os { color: #295a92; background: #e9f2fc; border-color: #ccdef3; }
.download-qr-card figcaption strong { color: var(--ink); font-size: 1.08rem; }
.download-qr-card figcaption p { margin: 5px 0 0; font-size: .86rem; }
.downloads-desktop-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.download-desktop-card { min-height: 410px; padding: clamp(30px,4vw,48px); display: flex; flex-direction: column; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 14px 38px rgba(6,32,48,.05); }
.download-desktop-card--crm { color: var(--white); background: radial-gradient(circle at 88% 14%, rgba(98,224,220,.17), transparent 25%), linear-gradient(145deg, #071f33, #0d4964); border-color: #16475e; }
.download-product-head { display: flex; justify-content: space-between; gap: 16px; align-items: start; }
.download-product-mark { min-width: 62px; min-height: 62px; padding: 10px; display: grid; place-items: center; color: var(--white); background: linear-gradient(145deg, var(--blue), var(--cyan)); border-radius: 18px; font-size: .77rem; font-weight: 900; letter-spacing: -.02em; }
.download-desktop-card h3 { margin-top: 32px; font-size: clamp(2rem,3.2vw,3rem); }
.download-desktop-card p { margin-top: 14px; }
.download-desktop-card--crm p, .download-desktop-card--crm li { color: #c2d9e3; }
.download-desktop-card--crm .download-os { color: #dffafa; background: rgba(98,224,220,.14); border-color: rgba(98,224,220,.35); }
.download-desktop-card .btn { width: max-content; margin-top: auto; padding-top: 0; transform: translateY(26px); }
.downloads-update-note { padding: clamp(30px,4vw,48px); display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 24px; align-items: center; background: #eaf8fb; border: 1px solid #ccebed; border-radius: 26px; }
.downloads-update-note .icon-box { margin: 0; }
.downloads-update-note .eyebrow { margin-bottom: 10px; }
.downloads-update-note h2 { font-size: clamp(1.8rem,3vw,2.8rem); }
.downloads-update-note p { max-width: 760px; margin: 10px 0 0; }

.metric-strip { position: relative; z-index: 4; margin-top: -34px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-lg); overflow: hidden; }
.metric-grid--three { grid-template-columns: repeat(3, 1fr); }
.metric { padding: 28px; border-right: 1px solid var(--line); }
.metric:last-child { border-right: 0; }
.metric strong { display: block; color: var(--blue); font-size: clamp(1.7rem, 3vw, 2.5rem); line-height: 1; letter-spacing: -.05em; }
.metric span { display: block; margin-top: 9px; color: var(--ink-soft); font-size: .88rem; }
.metric-link { text-decoration: none; transition: background .22s ease, box-shadow .22s ease; }
.metric-link:hover { background: #edf9fb; box-shadow: inset 0 -3px 0 var(--cyan); }
.metric-link:focus-visible { outline: 3px solid var(--cyan); outline-offset: -3px; }
.iperx-rules { scroll-margin-top: 110px; }
body[data-page="referentiel"] #cycle { scroll-margin-top: 110px; }
#parcours-terrain { scroll-margin-top: 110px; }
.iperx-rules-grid { margin-top: 28px; }
.iperx-rules-summary { grid-column: 1 / -1; min-height: 0; background: linear-gradient(135deg, #ffffff, #edf9fb); }
.iperx-rules-summary .pill-row { margin-top: 22px; }

.journey-section { overflow: hidden; background: radial-gradient(circle at 15% 10%, rgba(19,183,191,.12), transparent 27%), linear-gradient(180deg, #f7fbfc, #fff); }
.field-result-flow { display: grid; grid-template-columns: minmax(0,1fr) 86px minmax(0,1fr) 86px minmax(0,1fr); gap: 12px; align-items: center; }
.flow-node { position: relative; min-height: 350px; padding: 32px; display: flex; flex-direction: column; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: var(--shadow-sm); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.flow-node::before { position: absolute; right: -68px; top: -68px; width: 170px; height: 170px; content: ""; background: rgba(19,183,191,.08); border-radius: 50%; }
.flow-node:hover { transform: translateY(-7px); border-color: #9dd8da; box-shadow: var(--shadow-lg); }
.flow-node > span { margin-top: 25px; color: var(--cyan); font-size: .72rem; font-weight: 850; letter-spacing: .13em; }
.flow-node h3 { margin-top: 10px; font-size: clamp(1.45rem,2.3vw,2.05rem); }
.flow-node p { margin-top: 14px; }
.flow-icon { width: 62px; height: 62px; display: grid; place-items: center; background: #e8f8fa; border-radius: 19px; }
.flow-icon img { width: 36px; height: 36px; object-fit: contain; }
.flow-live { margin-top: auto; padding-top: 20px; display: flex; gap: 9px; align-items: center; color: #55707f; border-top: 1px solid var(--line); font-size: .78rem; font-weight: 700; }
.flow-live i { width: 8px; height: 8px; background: var(--success); border-radius: 50%; box-shadow: 0 0 0 5px rgba(10,143,106,.11); animation: livePulse 2.1s ease-out infinite; }
.flow-node .text-link { margin-top: 18px; font-size: .86rem; }
.flow-connector { position: relative; min-height: 80px; display: grid; place-items: center; color: #67808d; font-size: .61rem; font-weight: 850; letter-spacing: .13em; }
.flow-connector::before { position: absolute; left: 0; right: 0; top: 50%; height: 1px; content: ""; background: linear-gradient(90deg, #b7d4da, var(--cyan), #b7d4da); }
.flow-connector span { position: relative; z-index: 1; padding: 5px 7px; background: #fafdfe; border-radius: 20px; }
.flow-connector i { position: absolute; z-index: 2; top: calc(50% - 5px); left: 0; width: 10px; height: 10px; background: var(--cyan); border: 2px solid var(--white); border-radius: 50%; box-shadow: 0 0 0 5px rgba(19,183,191,.13); animation: dataTravel 2.7s ease-in-out infinite; }
.flow-node--pdf { color: var(--white); background: linear-gradient(145deg, #071f33, #0d4964); border-color: #174b61; }
.flow-node--pdf::before { background: rgba(98,224,220,.12); }
.flow-node--pdf p { color: #bfd3dd; }
.flow-node--pdf .flow-live { color: #c6dce5; border-color: rgba(255,255,255,.14); }
.pdf-sheet { position: relative; width: 76px; height: 94px; padding: 17px 12px; color: var(--ink); background: var(--white); border-radius: 9px 16px 9px 9px; box-shadow: 0 14px 32px rgba(0,0,0,.26); transform: rotate(-3deg); animation: pdfReady 4.8s ease-in-out infinite; }
.pdf-sheet::after { position: absolute; top: 0; right: 0; width: 20px; height: 20px; content: ""; background: linear-gradient(225deg, rgba(7,31,51,.18) 49%, transparent 51%); border-radius: 0 12px 0 0; }
.pdf-sheet b { color: #e24c4c; font-size: .72rem; letter-spacing: .08em; }
.pdf-sheet em { display: block; height: 3px; margin-top: 8px; background: #dbe4e8; border-radius: 5px; }
.pdf-sheet em:nth-of-type(2) { width: 72%; }
.pdf-sheet i { position: absolute; right: -9px; bottom: -8px; width: 28px; height: 28px; display: grid; place-items: center; color: var(--white); background: var(--success); border: 3px solid #0b3a51; border-radius: 50%; font-style: normal; font-weight: 900; }

.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.card { padding: 30px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 30px rgba(6,32,48,.04); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.card:hover { transform: translateY(-5px); border-color: #afd6db; box-shadow: var(--shadow-sm); }
.card p { margin: 13px 0 0; }
.card-link { display: flex; min-height: 270px; flex-direction: column; justify-content: space-between; }
.card-link .text-link { margin-top: 24px; }
.card-number { color: var(--cyan); font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.icon-box { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 26px; color: var(--blue); background: #eaf8fb; border-radius: 15px; font-size: 1.35rem; font-weight: 800; }

.bento { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; }
.bento-card { position: relative; min-height: 430px; padding: 38px; overflow: hidden; border-radius: var(--radius-lg); background: var(--paper); }
.bento-card.dark { color: var(--white); background: var(--navy); }
.bento-card h3 { max-width: 440px; font-size: clamp(1.7rem, 3.1vw, 3rem); }
.bento-card p { max-width: 520px; margin-top: 16px; }
.bento-card.dark p { color: #b9ccd7; }
.bento-card.wide { grid-column: 1 / -1; min-height: 500px; }
.bento-copy { position: relative; z-index: 2; min-width: 0; }
.bento-visual { position: absolute; right: -4%; bottom: -12%; width: 68%; border: 8px solid rgba(255,255,255,.9); border-radius: 20px; box-shadow: 0 25px 80px rgba(0,0,0,.22); }
.phone-pair { position: absolute; inset: auto 25px -95px auto; display: flex; gap: 16px; align-items: flex-start; }
.phone-shot { width: 190px; border: 8px solid #17232e; border-radius: 32px; box-shadow: var(--shadow-lg); }
.phone-shot:nth-child(2) { margin-top: 45px; }
.phone-shot--home { aspect-ratio: 945 / 1580; object-fit: cover; object-position: bottom; }
.app-icon { width: 54px; height: 54px; padding: 11px; object-fit: contain; background: #e8f8fa; border-radius: 16px; }
/* Les cartes de la page Solution ont une icône en tête : on sépare clairement le repère visuel du titre. */
body[data-page="solution"] .card > .app-icon + h3 { margin-top: 18px; }
body[data-page="referentiel"] .card > .app-icon + h3 { margin-top: 18px; }

/* Les visuels des cartes d'accueil participent au flux de la grille :
   ils conservent ainsi leur propre colonne et ne peuvent plus masquer le texte. */
.bento-card--collect {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(300px, 1.1fr);
  gap: 24px;
  align-items: center;
}
.bento-card--collect .phone-pair {
  position: relative;
  inset: auto;
  min-width: 0;
  margin: 18px -24px -110px 0;
  justify-content: center;
}
.bento-card--collect .phone-shot { width: min(46%, 190px); height: auto; }
.bento-card--core {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  gap: 42px;
  align-items: center;
}
.bento-card--core .bento-visual {
  position: relative;
  inset: auto;
  width: 112%;
  max-width: none;
  margin: 36px -12% -78px 0;
}

.feature-highlight-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 24px; }
.feature-highlight { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; padding: 26px; background: var(--white); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-sm); }
.feature-highlight h3 { margin-top: 8px; font-size: 1.18rem; }
.feature-highlight p { margin-top: 10px; font-size: .92rem; }
.feature-highlight .text-link { margin-top: 15px; }

.recipient-panel { margin-top: 24px; padding: clamp(28px,4vw,46px); display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: clamp(30px,6vw,80px); align-items: center; color: var(--white); background: radial-gradient(circle at 92% 10%, rgba(98,224,220,.2), transparent 28%), linear-gradient(135deg, #071f33, #0c435e); border-radius: 28px; box-shadow: var(--shadow-lg); }
.iperx-engine-section .recipient-panel { background: radial-gradient(circle at 93% 9%, rgba(98,224,220,.3), transparent 28%), linear-gradient(135deg, #0b3c57, #0d7081); box-shadow: 0 24px 55px rgba(8,74,91,.18); }
.recipient-iperx-logo { width: 70px; height: 70px; margin: 14px 0 18px; padding: 10px; display: block; object-fit: contain; background: rgba(255,255,255,.09); border: 1px solid rgba(98,224,220,.34); border-radius: 18px; }
.recipient-panel h3 { margin-top: 10px; font-size: clamp(1.65rem,3vw,2.6rem); }
.recipient-panel p { margin-top: 14px; color: #c4d7df; }
.recipient-tags { display: flex; gap: 9px; flex-wrap: wrap; }
.recipient-tags span { padding: 9px 13px; color: #072333; background: #62e0dc; border-radius: 999px; font-size: .78rem; font-weight: 800; }
.recipient-quality { padding-top: 22px; border-top: 1px solid rgba(255,255,255,.15); }
.recipient-quality strong { color: var(--white); }
.core-capability-grid .card { min-height: 310px; }
.core-capability-grid .card h3 { margin-top: 22px; }
.traceability-line { margin-top: 24px; padding: 25px 28px; display: flex; justify-content: space-between; gap: 24px; align-items: center; color: var(--white); background: var(--blue); border-radius: 20px; }
.traceability-line strong { font-size: clamp(1.25rem,2.3vw,1.8rem); }
.traceability-line span { max-width: 560px; color: #def4fb; }

.home-module-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 18px; }
.home-module { position: relative; min-height: 310px; padding: 28px; display: flex; grid-column: span 2; flex-direction: column; overflow: hidden; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 12px 30px rgba(6,32,48,.04); transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.home-module:nth-child(-n+2) { grid-column: span 3; }
.home-module::after { position: absolute; right: -65px; bottom: -75px; width: 180px; height: 180px; content: ""; border: 28px solid rgba(19,183,191,.07); border-radius: 50%; transition: transform .4s ease; }
.home-module:hover { transform: translateY(-7px); border-color: #a8dadd; box-shadow: var(--shadow-lg); }
.home-module:hover::after { transform: scale(1.14) rotate(10deg); }
.home-module small { margin-top: 30px; color: #66808d; font-size: .7rem; font-weight: 850; letter-spacing: .13em; }
.home-module h3 { margin-top: 9px; font-size: clamp(1.55rem,2.5vw,2.25rem); }
.home-module p { margin-top: 13px; }
.home-module .text-link { position: relative; z-index: 1; margin-top: auto; padding-top: 22px; }
.home-module--inspection { color: var(--white); background: linear-gradient(145deg, #071f33, #0d4964); border-color: #16475e; }
.home-module--inspection p, .home-module--inspection small { color: #bdd2dc; }
.home-module--inspection .text-link { color: #62e0dc; }
.home-module--cofrac { background: linear-gradient(145deg, #fff, #eef8fb); }
.home-module--formation { background: linear-gradient(145deg, #eefaf9, #fff); }
.home-module--future { background: repeating-linear-gradient(135deg, #f5f7f8, #f5f7f8 12px, #eef2f4 12px, #eef2f4 24px); }
.card--crm { display: flex; flex-direction: column; overflow: hidden; background: radial-gradient(circle at 100% 0, rgba(19,183,191,.15), transparent 34%), linear-gradient(145deg, #edf9fb, #fff); border-color: #c6e5e8; }
.card--collect { background: radial-gradient(circle at 100% 0, rgba(19,183,191,.16), transparent 34%), linear-gradient(145deg, #effaf9, #fff); border-color: #c6e9e7; }
.platform-grid .card { display: flex; flex-direction: column; }
.platform-grid .card > .text-link { margin-top: auto; padding-top: 24px; align-self: flex-start; }
.crm-home-signals { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 18px; }
.crm-home-signals span { padding: 5px 8px; color: #075c67; background: rgba(255,255,255,.8); border: 1px solid #bdebea; border-radius: 999px; font-size: .68rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
body[data-page="home"] .card--crm .text-link { margin-top: auto; padding-top: 19px; }
.module-state { width: max-content; padding: 6px 9px; color: #075c67; background: #dff8f6; border: 1px solid #bdebea; border-radius: 999px; font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.module-state--free { color: #096344; background: #e1f7ec; border-color: #c3ead7; }
.module-state--soon { color: #74511c; background: #fff2db; border-color: #f4ddb5; }
.module-state--custom { color: #295a92; background: #e9f2fc; border-color: #ccdef3; }

.impact-panel { padding: clamp(34px,5vw,64px); color: var(--white); background: radial-gradient(circle at 92% 12%, rgba(29,205,208,.22), transparent 28%), linear-gradient(135deg, #061b2a, #0b3d58); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.impact-quote { max-width: 930px; }
.impact-quote h2 { font-size: clamp(2rem,4vw,4.1rem); }
.impact-quote p { max-width: 700px; margin-top: 18px; color: #bcd0da; }
.impact-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 42px; }
.impact-metric { padding: 24px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); border-radius: 18px; }
.impact-metric strong { display: block; color: #67e3df; font-size: clamp(1.7rem,3vw,2.65rem); letter-spacing: -.05em; }
.impact-metric span { display: block; margin-top: 8px; color: #d2e1e7; }
.impact-note { margin: 18px 0 0; color: #88a6b5; font-size: .8rem; }
.center-action { margin-top: 30px; text-align: center; }

.status-flow { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; }
.roadmap-flow-section { position: relative; overflow: hidden; background: radial-gradient(circle at 12% 82%, rgba(19,183,191,.12), transparent 24%), radial-gradient(circle at 88% 16%, rgba(13,141,204,.18), transparent 26%), #071f33; }
.roadmap-flow-section::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(98,224,220,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(98,224,220,.055) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(90deg, transparent, black 18%, black 82%, transparent); }
.roadmap-flow-section .container { position: relative; z-index: 1; }
.roadmap-flow-orchestrator { max-width: 720px; margin: -16px 0 0; padding: 14px 18px; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 14px; align-items: center; background: rgba(255,255,255,.07); border: 1px solid rgba(98,224,220,.2); border-radius: 18px; box-shadow: 0 14px 34px rgba(0,0,0,.12); }
.roadmap-flow-orchestrator img { width: 48px; height: 48px; padding: 7px; background: rgba(255,255,255,.08); border-radius: 14px; }
.roadmap-flow-orchestrator span { display: block; color: #62e0dc; font-size: .65rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.roadmap-flow-orchestrator strong { display: block; margin-top: 2px; color: var(--white); font-size: .94rem; line-height: 1.3; }
.roadmap-flow-orchestrator p { display: inline-flex; gap: 9px; align-items: center; margin: 0; color: #c8dce5; font-size: .78rem; white-space: nowrap; }
.roadmap-flow-orchestrator p i { width: 8px; height: 8px; display: block; background: #62e0dc; border-radius: 50%; box-shadow: 0 0 0 5px rgba(98,224,220,.13); }
.roadmap-status-flow { position: relative; left: 50%; width: min(1680px, calc(100vw - 64px)); margin: 42px 0 0; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 14px; transform: translateX(-50%); }
.roadmap-status-flow .status-step { min-height: 278px; padding: 21px 20px 23px; overflow: hidden; background: linear-gradient(160deg, rgba(29,68,91,.96), rgba(15,47,69,.97)); border: 1px solid rgba(151,213,223,.18); border-radius: 22px; box-shadow: 0 18px 38px rgba(0,0,0,.15); }
.roadmap-status-flow .status-step::before { position: absolute; right: -46px; bottom: -56px; width: 140px; height: 140px; content: ""; background: radial-gradient(circle, rgba(98,224,220,.17), rgba(98,224,220,0) 69%); border-radius: 50%; }
.roadmap-status-flow .status-step:nth-child(2), .roadmap-status-flow .status-step:nth-child(5) { background: linear-gradient(160deg, rgba(20,74,96,.98), rgba(13,52,75,.98)); }
.roadmap-status-flow .status-step:nth-child(3), .roadmap-status-flow .status-step:nth-child(6) { background: linear-gradient(160deg, rgba(18,61,84,.98), rgba(10,43,63,.98)); }
.roadmap-status-flow .status-step:nth-child(4), .roadmap-status-flow .status-step:nth-child(7) { background: linear-gradient(160deg, rgba(22,79,99,.98), rgba(13,48,69,.98)); }
.roadmap-step-meta { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.roadmap-step-meta span { width: 34px; height: 34px; display: grid; place-items: center; color: #062033; background: #62e0dc; border-radius: 11px; font-size: .72rem; font-weight: 900; letter-spacing: .06em; }
.roadmap-flow-icon { width: 38px; height: 38px; padding: 8px; object-fit: contain; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }
.roadmap-status-flow .status-step h3 { position: relative; z-index: 1; margin-top: 30px; color: var(--white); font-size: clamp(1.2rem,1.5vw,1.5rem); }
.roadmap-status-flow .status-step p { position: relative; z-index: 1; margin-top: 12px; color: #c9dce5; font-size: .92rem; line-height: 1.58; }
.roadmap-status-flow .status-step:not(:last-child)::after { top: 50%; right: -13px; z-index: 3; box-sizing: border-box; width: 26px; height: 26px; padding: 0 6px 0 0; display: flex; align-items: center; justify-content: center; color: #062033; background: #62e0dc; border: 2px solid #0a344c; box-shadow: 0 0 0 5px rgba(98,224,220,.1); font-family: Arial, sans-serif; font-size: 1.45rem; font-weight: 700; line-height: 1; text-indent: 0; transform: translateY(-50%); }
.status-step { position: relative; padding: 28px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 20px; }
.status-step > span { color: var(--cyan); font-weight: 800; letter-spacing: .1em; }
.status-step h3 { margin-top: 24px; font-size: 1.35rem; }
.status-step p { margin-top: 10px; color: #aec4cf; }
.status-step:not(:last-child)::after { position: absolute; top: 50%; right: -15px; z-index: 3; box-sizing: border-box; width: 26px; height: 26px; padding: 0 5px 1px 0; display: flex; align-items: center; justify-content: center; color: var(--navy); background: var(--cyan); border: 2px solid #0a344c; border-radius: 50%; box-shadow: 0 0 0 5px rgba(98,224,220,.1); content: "›"; font-family: Arial, sans-serif; font-size: 1.45rem; font-weight: 700; line-height: 1; transform: translateY(-50%); }
body[data-page="referentiel"] .status-flow .status-step { transition: transform .24s ease, background .24s ease, border-color .24s ease, box-shadow .24s ease; }
body[data-page="referentiel"] .status-flow .status-step:hover { transform: translateY(-5px); background: rgba(98,224,220,.12); border-color: rgba(98,224,220,.55); box-shadow: 0 16px 28px rgba(0,0,0,.16); }
body[data-page="referentiel"] .status-flow:hover .status-step:not(:last-child)::after { animation: referentiel-chevron-glow 2.8s ease-in-out infinite both; }
body[data-page="referentiel"] .status-flow:hover .status-step:nth-child(2)::after { animation-delay: .32s; }
body[data-page="referentiel"] .status-flow:hover .status-step:nth-child(3)::after { animation-delay: .64s; }
body[data-page="referentiel"] .status-flow:hover .status-step:nth-child(4)::after { animation-delay: .96s; }

.module-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.module-card { position: relative; min-height: 450px; padding: clamp(28px,4vw,44px); display: flex; flex-direction: column; overflow: hidden; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 14px 38px rgba(6,32,48,.05); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.module-card::after { position: absolute; right: -80px; bottom: -90px; width: 230px; height: 230px; content: ""; background: rgba(19,183,191,.06); border-radius: 50%; }
.module-card:hover { transform: translateY(-7px); border-color: #a6d9dc; box-shadow: var(--shadow-lg); }
.module-card-top { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 34px; }
.module-index { color: #b8c7cf; font-size: 1.1rem; font-weight: 850; }
.module-card h3 { margin-top: 10px; font-size: clamp(1.9rem,3vw,3rem); }
.module-card p { margin-top: 15px; }
.module-card ul { display: grid; gap: 7px; margin: 20px 0 0; padding: 0; color: var(--ink-soft); list-style: none; }
.module-card li::before { margin-right: 9px; color: var(--cyan); content: "✓"; font-weight: 900; }
.module-card .text-link { position: relative; z-index: 1; margin-top: auto; padding-top: 28px; }
.module-card--primary { color: var(--white); background: linear-gradient(145deg, #071f33, #0d4964); border-color: #16475e; }
.module-card--primary p, .module-card--primary ul { color: #bed2dc; }
.module-card--primary .text-link { color: #62e0dc; }
.module-card--accred { background: linear-gradient(145deg, #eef7fb, #fff); }
.module-card--training { background: linear-gradient(145deg, #effaf9, #fff); }
.module-card--univers { background: linear-gradient(145deg, #f2f8fc, #fff); }
.module-card--future { background: repeating-linear-gradient(135deg, #f6f8f9, #f6f8f9 14px, #eff3f4 14px, #eff3f4 28px); }
body[data-page="metiers"] #parcours-terrain .card { color: var(--ink); }
body[data-page="metiers"] #parcours-terrain .card p { color: var(--ink-soft); }
.erp-report-types { margin-top: 42px; }
.module-compare { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.compare-card { padding: clamp(28px,4vw,46px); color: var(--ink); background: var(--white); border-radius: 26px; }
.compare-card > span { color: var(--cyan); font-size: .71rem; font-weight: 850; letter-spacing: .14em; }
.compare-card h3 { margin-top: 14px; font-size: clamp(1.7rem,3vw,2.7rem); }
.compare-card p { margin-top: 15px; }
.compare-card--accred { background: linear-gradient(145deg, #0d405c, #0a2a41); }
.compare-card--accred p { color: #bed2dd; }

.production-type-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.production-type-card { min-height: 350px; padding: clamp(28px,4vw,42px); display: flex; flex-direction: column; color: var(--ink); background: var(--white); border: 1px solid rgba(255,255,255,.22); border-top: 4px solid var(--cyan); border-radius: 26px; box-shadow: 0 16px 38px rgba(0,0,0,.12); transition: transform .28s ease, box-shadow .28s ease; }
.production-type-card:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(0,0,0,.18); }
.production-type-card > span { color: #08717a; font-size: .69rem; font-weight: 850; letter-spacing: .12em; line-height: 1.35; }
.production-type-card h3 { margin-top: 22px; color: var(--ink); font-size: clamp(1.7rem,2.7vw,2.45rem); }
.production-type-card p { margin-top: 15px; color: var(--ink-soft); }
.production-type-card .text-link { margin-top: auto; padding-top: 28px; }
.production-type-card--inspection { background: linear-gradient(145deg, #edf9fb, #fff); border-top-color: var(--blue); }
.production-type-card--inspection > span { color: #176f96; }
.production-type-card--certification { background: linear-gradient(145deg, #edf9f4, #fff); border-top-color: var(--success); }
.production-type-card--certification > span { color: #087053; }

.training-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.training-step { position: relative; min-height: 330px; padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 12px 30px rgba(6,32,48,.05); transition: transform .28s ease, box-shadow .28s ease; }
.training-step:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.training-step > span { position: absolute; right: 24px; top: 20px; color: #bed0d7; font-weight: 850; }
.training-step .app-icon { margin-bottom: 32px; }
.training-step h3 { font-size: 1.55rem; }
.training-step p { margin-top: 13px; }

.catalog-universes { background: linear-gradient(180deg, #f5f7f8, #fff); }
.catalog-universe-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.catalog-universe { min-width: 0; min-height: 300px; padding: 27px; display: flex; flex-direction: column; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 12px 30px rgba(6,32,48,.04); transition: transform .28s ease, box-shadow .28s ease; }
.catalog-universe:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.catalog-universe h2 { margin-top: 30px; font-size: clamp(1.55rem,2.4vw,2.25rem); }
.catalog-universe p { margin-top: 13px; }
.catalog-universe .text-link { margin-top: auto; padding-top: 20px; }
.catalog-universe--inspection { color: var(--white); background: linear-gradient(145deg, #071f33, #0d4964); border-color: #16475e; }
.catalog-universe--inspection p { color: #bed2dc; }
.catalog-universe--inspection .text-link { color: #62e0dc; }
.catalog-universe--cofrac { background: #eef7fb; }
.catalog-universe--training { background: #effaf9; }

.app-phone-stage { width: min(100%, 450px); margin-inline: auto; padding: 20px 20px 0; overflow: hidden; background: linear-gradient(145deg, #0a2b40, #0d5b76); border-radius: 34px; box-shadow: var(--shadow-lg); }
.app-phone-stage img { width: 100%; max-height: 740px; object-fit: cover; object-position: top; border: 8px solid #17232e; border-bottom: 0; border-radius: 30px 30px 0 0; }
.app-phone-stage figcaption { padding: 14px 5px 18px; color: #c7d9e1; font-size: .82rem; }

.app-gallery { display: grid; gap: 24px; align-items: start; }
.app-gallery--two { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 1040px; margin-inline: auto; }
.app-showcase { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 26px; box-shadow: var(--shadow-lg); }
.phone-screen-crop { height: 760px; overflow: hidden; background: #f3f6fa; }
.phone-screen-crop img { width: 100%; height: auto; display: block; }
.phone-screen-crop.crop-app-header img { transform: translateY(-12%); margin-bottom: -12%; }
.app-showcase figcaption { display: grid; gap: 6px; padding: 22px 24px; }
.app-showcase figcaption strong { color: var(--ink); font-size: 1.08rem; }
.app-showcase figcaption span { color: var(--ink-soft); font-size: .9rem; }
.collect-screen { width: 100%; height: 680px; display: block; object-fit: cover; object-position: top; background: #f3f6fa; }
.collect-screen--compact { height: 620px; }

.ai-story { display: grid; grid-template-columns: minmax(0,1fr) 54px minmax(0,1fr); gap: 20px; align-items: center; }
.installation-ai-intro { margin-top: clamp(56px,7vw,88px); max-width: 860px; }
.installation-ai-intro h3 { color: var(--white); font-size: clamp(1.7rem,3vw,2.8rem); }
.installation-ai-intro p { max-width: 720px; margin-top: 14px; font-size: 1.05rem; }
.installation-dispositif-intro { margin-top: clamp(56px,7vw,88px); margin-bottom: 32px; }
.installation-dispositif-intro h3 { color: var(--white); font-size: clamp(1.7rem,3vw,2.8rem); }
.installation-dispositif-flow { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.installation-pdf-result { margin-top: clamp(64px,8vw,112px); }
.accreditation-installation-section { background: radial-gradient(circle at 88% 18%, rgba(19,183,191,.1), transparent 25%), linear-gradient(180deg, #f7fbfc, #edf6f8); }
.accreditation-installation-section .installation-ai-intro h3, .accreditation-installation-section .installation-dispositif-intro h3 { color: var(--ink); }
.accreditation-installation-section .callout.callout-dark { color: var(--white); background: radial-gradient(circle at 12% 20%, rgba(98,224,220,.16), transparent 28%), linear-gradient(135deg, #07324a, #0d6b7b); border-color: #168b9d; box-shadow: 0 16px 34px rgba(8,63,79,.15); }
.accreditation-installation-section .callout.callout-dark p { color: #d3edf1; }
.environment-chapter { background: radial-gradient(circle at 10% 18%, rgba(246,187,84,.16), transparent 24%), linear-gradient(180deg, #fffaf2, #f7f0e6); }
.environment-pdf-intro { margin-top: clamp(64px,8vw,112px); margin-bottom: 32px; }
.environment-pdf-intro h3 { font-size: clamp(1.7rem,3vw,2.8rem); }
.environment-duplication-intro { max-width: 860px; margin-top: clamp(56px,7vw,88px); }
.environment-duplication-intro h3 { font-size: clamp(1.7rem,3vw,2.8rem); }
.environment-duplication-intro p { max-width: 720px; margin-top: 14px; font-size: 1.05rem; }
.environment-duplication-story { margin-top: 32px; }
.environment-receiver { margin-top: clamp(64px,8vw,112px); }
.observations-chapter { background: radial-gradient(circle at 88% 12%, rgba(98,224,220,.17), transparent 24%), linear-gradient(180deg, #f4fbfb, #e9f6f5); }
.observations-edit { margin-top: clamp(64px,8vw,112px); }
.observations-pdf-intro { margin-top: clamp(64px,8vw,112px); margin-bottom: 32px; }
.observations-pdf-intro h3 { font-size: clamp(1.7rem,3vw,2.8rem); }
.chapter-iperx-logo { width: 72px; height: 72px; margin: 0 0 18px; padding: 10px; display: block; object-fit: contain; background: #e9f7f8; border: 1px solid #bfe5e7; border-radius: 18px; box-shadow: 0 12px 24px rgba(8,63,79,.1); }
.installation-ai-story { margin-top: 32px; }
.ai-shot { overflow: hidden; color: var(--ink); background: var(--white); border-radius: 26px; box-shadow: 0 25px 70px rgba(0,0,0,.28); }
.ai-shot > img { width: 100%; max-height: 720px; object-fit: contain; object-position: top; background: #f5f7fb; }
.ai-shot figcaption { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 22px; align-items: start; }
.ai-shot figcaption > span { width: 40px; height: 40px; display: grid; place-items: center; color: var(--navy); background: var(--cyan); border-radius: 50%; font-weight: 800; }
.ai-shot figcaption p { margin-top: 6px; color: var(--ink-soft); font-size: .9rem; }
.ai-arrow { color: var(--cyan); font-size: 3rem; text-align: center; }
.callout-dark { margin-top: 28px; color: var(--white); background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.15); }
.callout-dark p { color: #bdd0da; }

.legal-hero { min-height: 520px; }
.legal-hero.has-image { min-height: 580px; }
.legal-hero h1 { font-size: clamp(3rem,6vw,5.5rem); }
.legal-meta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.legal-meta span { padding: 8px 12px; color: #d2e4ea; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; font-size: .78rem; }
.legal-section-wrap { padding-top: 72px; }
.legal-layout { display: grid; grid-template-columns: 220px minmax(0,860px); gap: clamp(42px,7vw,100px); align-items: start; justify-content: center; }
.legal-nav { position: sticky; top: 130px; display: grid; gap: 5px; padding: 18px; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; }
.legal-nav strong { padding: 8px 10px 13px; color: var(--ink); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-nav a { padding: 10px; color: var(--ink-soft); border-radius: 10px; font-size: .9rem; }
.legal-nav a:hover, .legal-nav a.active { color: var(--ink); background: var(--white); box-shadow: var(--shadow-sm); }
.legal-content { min-width: 0; }
.legal-intro { margin-bottom: 20px; padding: 28px; background: #ecf7f8; border-left: 4px solid var(--cyan); border-radius: 0 18px 18px 0; }
.legal-intro strong { color: var(--ink); }
.legal-intro p { margin: 7px 0 15px; }
.legal-intro p:last-child { margin-bottom: 0; }
.legal-content > section { position: relative; padding: 42px 0; border-bottom: 1px solid var(--line); }
.legal-content > section:last-child { border-bottom: 0; }
.legal-number { display: block; margin-bottom: 11px; color: var(--cyan); font-size: .76rem; font-weight: 800; letter-spacing: .13em; }
.legal-content h2 { font-size: clamp(1.65rem,3vw,2.5rem); }
.legal-content p { margin-top: 16px; }
.legal-content ul { display: grid; gap: 9px; margin: 18px 0 0; padding-left: 22px; color: var(--ink-soft); }
.legal-content li::marker { color: var(--cyan); }
.legal-content a { color: var(--blue); text-decoration: underline; text-decoration-color: rgba(13,141,204,.3); text-underline-offset: 3px; }
.legal-content a:hover { text-decoration-color: currentColor; }
.legal-table-wrap { margin-top: 20px; overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; }
.legal-table { width: 100%; border-collapse: collapse; background: var(--white); font-size: .9rem; }
.legal-table th, .legal-table td { padding: 15px 17px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.legal-table th { color: var(--ink); background: var(--paper); font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-table td:first-child { width: 31%; color: var(--ink); font-weight: 700; }
.legal-identity { display: grid; gap: 6px; margin-top: 20px; padding: 24px; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; }
.legal-identity strong { color: var(--ink); font-size: 1.2rem; }

.steps { counter-reset: step; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid #365063; }
.steps.steps-5 { grid-template-columns: repeat(5,1fr); }
.step { position: relative; padding: 34px 26px 0 0; }
.step::before { counter-increment: step; content: "0" counter(step); color: var(--cyan); font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.step::after { position: absolute; top: -6px; left: 0; width: 11px; height: 11px; content: ""; background: var(--cyan); border: 3px solid var(--navy); border-radius: 50%; }
.step h3 { margin-top: 15px; font-size: 1.25rem; }
.step p { margin-top: 10px; font-size: .93rem; }
.animated-steps { position: relative; }
.animated-steps::before { position: absolute; z-index: 1; top: -1px; left: 0; width: 100%; height: 2px; content: ""; background: linear-gradient(90deg, rgba(98,224,220,.18), #62e0dc 55%, #e5fffd 82%, rgba(98,224,220,.18)); transform: scaleX(0); transform-origin: left center; opacity: 0; }
.animated-steps::after { position: absolute; z-index: 3; top: -6px; left: 0; width: 12px; height: 12px; content: ""; background: #d7fffc; border: 2px solid var(--navy); border-radius: 50%; box-shadow: 0 0 0 5px rgba(98,224,220,.18), 0 0 18px rgba(98,224,220,.8); opacity: 0; }
.animated-steps.visible::before { animation: iperx-cycle-line 7.2s cubic-bezier(.45,0,.2,1) infinite; }
.animated-steps.visible::after { animation: iperx-cycle-travel 7.2s cubic-bezier(.45,0,.2,1) infinite; }
.animated-steps.visible .step::after { animation: iperx-cycle-step 7.2s ease-in-out infinite both; }
.animated-steps.visible .step:nth-child(2)::after { animation-delay: 1.35s; }
.animated-steps.visible .step:nth-child(3)::after { animation-delay: 2.7s; }
.animated-steps.visible .step:nth-child(4)::after { animation-delay: 4.05s; }
.animated-steps.visible .step:nth-child(5)::after { animation-delay: 5.4s; }
.maintenance-steps { border-top: 0; background: linear-gradient(#365063, #365063) top left / 80% 1px no-repeat; }
.maintenance-steps::before { width: 80%; }
.maintenance-steps::after { display: none; }
.maintenance-steps.visible::before { animation: maintenance-track-sequence 10s linear infinite; }
.maintenance-steps.visible .step::after { animation: maintenance-step-sequence 10s ease-in-out infinite; }
.maintenance-steps.visible .step:nth-child(2)::after { animation-delay: 2s; }
.maintenance-steps.visible .step:nth-child(3)::after { animation-delay: 4s; }
.maintenance-steps.visible .step:nth-child(4)::after { animation-delay: 6s; }
.maintenance-steps.visible .step:nth-child(5)::after { animation-delay: 8s; }
body[data-page="home"] .steps.steps-5 .step::after { animation: home-cycle-step 9s ease-in-out infinite both; }
body[data-page="home"] .steps.steps-5 .step:nth-child(2)::after { animation-delay: .6s; }
body[data-page="home"] .steps.steps-5 .step:nth-child(3)::after { animation-delay: 1.2s; }
body[data-page="home"] .steps.steps-5 .step:nth-child(4)::after { animation-delay: 1.8s; }
body[data-page="home"] .steps.steps-5 .step:nth-child(5)::after { animation-delay: 2.4s; }
.archive-note { margin-top: 42px; padding: 22px 25px; display: grid; grid-template-columns: auto 1fr; gap: 17px; align-items: center; color: var(--white); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13); border-radius: 20px; }
.archive-note .app-icon { width: 48px; height: 48px; }
.archive-note p { margin: 0; color: #c6d8e1; }
.archive-note strong { color: var(--white); }

.sector-card { min-height: 340px; display: flex; flex-direction: column; background: linear-gradient(160deg, #fff, #f4f8f9); }
.sector-card ul { margin: 20px 0 0; padding: 0; list-style: none; color: var(--ink-soft); }
.sector-card li { padding: 5px 0; }
.sector-card li::before { margin-right: 9px; color: var(--cyan); content: "•"; }
.sector-card .text-link { margin-top: auto; padding-top: 25px; }
.sector-icon { width: 62px; height: 62px; display: grid; place-items: center; margin-bottom: 34px; color: var(--white); background: linear-gradient(145deg, var(--blue), var(--cyan)); border-radius: 20px; font-size: 1.5rem; }

.feature-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.feature-row { display: grid; grid-template-columns: 55px 1fr; gap: 18px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.feature-index { color: var(--cyan); font-weight: 800; }
.feature-row h3 { font-size: 1.18rem; }
.feature-row p { margin: 7px 0 0; }
.split { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(42px,8vw,110px); align-items: center; }
.screen-frame { overflow: hidden; background: #dce9ed; border: 1px solid #bed0d8; border-radius: 24px; box-shadow: var(--shadow-lg); }
.screen-frame img { width: 100%; }
.screen-frame img[data-image-zoom] { cursor: zoom-in; transition: transform .2s ease; }
.screen-frame img[data-image-zoom]:hover { transform: scale(1.012); }
.screen-frame img[data-image-zoom]:focus-visible { outline: 3px solid var(--cyan); outline-offset: -3px; }
.screen-caption { padding: 14px 18px; color: #55707f; background: var(--white); font-size: .8rem; }
.image-lightbox { width: min(96vw, 1800px); max-width: 96vw; max-height: 94vh; margin: auto; padding: 16px; overflow: visible; background: #061724; border: 1px solid rgba(98,224,220,.45); border-radius: 22px; box-shadow: 0 30px 100px rgba(0,0,0,.5); }
.image-lightbox::backdrop { background: rgba(3,18,29,.82); backdrop-filter: blur(7px); }
.image-lightbox img { max-width: 100%; max-height: calc(94vh - 32px); display: block; margin: 0 auto; object-fit: contain; border-radius: 10px; }
.image-lightbox-close { position: absolute; top: -15px; right: -15px; width: 38px; height: 38px; display: grid; place-items: center; padding: 0; color: var(--white); background: #0d8dcc; border: 2px solid var(--white); border-radius: 50%; font-size: 1.5rem; line-height: 1; cursor: pointer; }

.pill-row { display: flex; gap: 9px; flex-wrap: wrap; margin: 24px 0; }
.pill { padding: 8px 12px; color: #246079; background: #e7f6f8; border: 1px solid #c8e8eb; border-radius: 99px; font-size: .82rem; font-weight: 700; }
.callout { padding: 28px; color: #143448; background: linear-gradient(135deg, #e5f8f8, #eff8fd); border: 1px solid #c5e8ea; border-radius: var(--radius); }
.callout strong { display: block; margin-bottom: 6px; }
.callout.callout-dark { color: var(--white); background: linear-gradient(135deg, rgba(19,183,191,.26), rgba(7,31,51,.98)); border-color: rgba(98,224,220,.36); box-shadow: 0 18px 42px rgba(0,0,0,.18); }
.callout.callout-dark strong { color: var(--white); font-size: 1.12rem; }
.callout.callout-dark p { margin-top: 10px; color: #d3e6ec; line-height: 1.7; }
.quality-autocontrol .card { color: var(--ink); }
.quality-autocontrol .card h3 { color: var(--ink); }
.quality-autocontrol .card p { color: var(--ink-soft); }

.catalog-toolbar { position: sticky; top: 78px; z-index: 20; padding: 16px; background: rgba(255,255,255,.94); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-sm); backdrop-filter: blur(18px); }
.catalog-controls { display: grid; grid-template-columns: 1fr 300px; gap: 12px; }
.field, .select, .textarea { width: 100%; min-height: 50px; padding: 0 15px; color: var(--ink); background: var(--white); border: 1px solid #bdcbd2; border-radius: 12px; outline: none; transition: border-color .2s, box-shadow .2s; }
.field:focus, .select:focus, .textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(13,141,204,.11); }
.textarea { min-height: 140px; padding-top: 13px; resize: vertical; }
.catalog-meta { display: flex; justify-content: space-between; gap: 20px; padding: 13px 3px 0; color: var(--ink-soft); font-size: .84rem; }
.catalog-groups { display: grid; gap: 18px; margin-top: 28px; }
.catalog-family { border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.catalog-family summary { display: grid; grid-template-columns: minmax(0,1fr) auto 24px; padding: 22px 24px; align-items: center; gap: 20px; background: #f5f9fa; cursor: pointer; list-style: none; font-weight: 780; }
.catalog-family summary .small { text-align: right; white-space: nowrap; }
.catalog-family summary::-webkit-details-marker { display: none; }
.catalog-family summary::after { content: "+"; color: var(--blue); font-size: 1.5rem; font-weight: 400; }
.catalog-family[open] summary::after { content: "−"; }
.catalog-list { display: grid; }
.catalog-item { display: grid; grid-template-columns: 1fr auto; gap: 18px; padding: 17px 24px; align-items: center; border-top: 1px solid var(--line); }
.catalog-item small { display: block; margin-top: 4px; color: #738793; }
.price-chip { min-width: 70px; padding: 7px 10px; color: #0a6e68; background: var(--cyan-soft); border-radius: 9px; text-align: center; font-size: .82rem; font-weight: 800; }
.empty-state { padding: 60px 20px; text-align: center; border: 1px dashed #afc0c8; border-radius: var(--radius); }

.pricing-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; align-items: stretch; }
.price-card { position: relative; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.price-card.featured { color: var(--white); background: var(--navy); border-color: var(--navy); box-shadow: var(--shadow-lg); transform: translateY(-10px); }
.price-card .tag { width: max-content; margin-bottom: 26px; padding: 6px 9px; color: var(--blue); background: #e9f7fb; border-radius: 7px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.price-card.featured .tag { color: var(--navy); background: #62e0dc; }
.price-card p { min-height: 64px; margin-top: 12px; }
.price-card.featured p { color: #bfd0dc; }
.price { margin: 26px 0 6px; font-size: 2.6rem; font-weight: 780; letter-spacing: -.06em; }
.price small { font-size: .9rem; font-weight: 500; letter-spacing: 0; }
.price-card ul { margin: 26px 0 30px; padding: 0; list-style: none; }
.price-card li { padding: 7px 0; color: var(--ink-soft); font-size: .91rem; }
.price-card.featured li { color: #d4e1e8; }
.price-card li::before { margin-right: 9px; color: var(--cyan); content: "✓"; font-weight: 900; }
.price-card .btn { margin-top: auto; }
.calculator { padding: clamp(28px,5vw,52px); color: var(--white); background: linear-gradient(135deg, var(--navy), #0d3c5a); border-radius: var(--radius-lg); }
.calc-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: center; }
.range-row { display: grid; grid-template-columns: 1fr 70px; gap: 16px; align-items: center; margin: 22px 0; }
.range-row label { display: grid; gap: 7px; color: #d3e0e7; font-size: .9rem; }
.range-row input[type="range"] { width: 100%; accent-color: var(--cyan); }
.range-value { padding: 10px; color: var(--white); background: rgba(255,255,255,.1); border-radius: 10px; text-align: center; }
.calc-result { padding: 30px; color: var(--ink); background: var(--white); border-radius: 20px; }
.calc-result strong { display: block; color: var(--blue); font-size: 3rem; line-height: 1; letter-spacing: -.05em; }

.accred-card { display: grid; grid-template-columns: 160px 1fr; gap: 34px; padding: 38px; color: var(--white); background: linear-gradient(135deg, #0a2c45, #0c4563); border-radius: var(--radius-lg); }
.accred-seal { width: 140px; height: 140px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; text-align: center; }
.accred-seal strong { font-size: 1.05rem; letter-spacing: .04em; }
.accred-seal span { display: block; color: #76dedc; font-size: .7rem; }
.accred-card p { color: #c8d9e2; }
.scope-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 26px; }
.scope-item { padding: 20px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); border-radius: 15px; }
.scope-item strong { display: block; }
.scope-item span { display: block; margin-top: 5px; color: #b5cbd7; font-size: .83rem; }

.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; padding: 23px 0; display: flex; justify-content: space-between; gap: 20px; color: var(--ink); background: none; border: 0; text-align: left; font-weight: 720; }
.faq-question::after { content: "+"; color: var(--blue); font-size: 1.45rem; font-weight: 400; }
.faq-question[aria-expanded="true"]::after { content: "−"; }
.faq-answer { display: none; max-width: 820px; padding: 0 0 24px; }
.faq-answer.open { display: block; }

.contact-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; align-items: start; }
.contact-list { display: grid; gap: 18px; margin-top: 32px; }
.contact-item { padding: 20px 0; border-bottom: 1px solid var(--line); }
.contact-item span { display: block; color: var(--ink-soft); font-size: .82rem; }
.contact-item strong { display: block; margin-top: 3px; }
.form-card { padding: clamp(26px,4vw,45px); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { display: grid; gap: 7px; }
.form-group.full { grid-column: 1/-1; }
.form-group label { font-size: .85rem; font-weight: 700; }
.form-status { margin-top: 16px; color: var(--success); font-weight: 700; }

.cta-band { position: relative; padding: clamp(50px,7vw,90px); overflow: hidden; color: var(--white); background: var(--blue); border-radius: var(--radius-lg); }
.cta-band::after { position: absolute; right: -100px; bottom: -180px; width: 500px; height: 500px; content: ""; border: 80px solid rgba(255,255,255,.08); border-radius: 50%; }
.cta-band h2 { max-width: 760px; }
.cta-band p { max-width: 650px; margin-top: 18px; color: #def4fb; }
.cta-band .btn-row { position: relative; z-index: 2; }
.cta-band .btn { min-height: 50px; padding-inline: 21px; font-size: .98rem; }
.cta-band .btn-outline { color: var(--white); background: rgba(3, 41, 63, .16); border-color: rgba(255,255,255,.68); }
.cta-band .btn-outline:hover { color: var(--ink); background: var(--white); border-color: var(--white); }

/* Accueil : les cartes restent synthétiques, mais leurs contenus et actions
   doivent rester confortables à lire dès une vue d'ensemble. */
body[data-page="home"] .grid-4 .card p { font-size: .98rem; line-height: 1.65; }
body[data-page="home"] .grid-4 .card .text-link { width: fit-content; margin-top: 18px; font-size: .93rem; font-weight: 800; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
body[data-page="home"] .home-module p { font-size: 1rem; line-height: 1.65; }
body[data-page="home"] .home-module .text-link { width: fit-content; font-size: .95rem; font-weight: 800; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }

.site-footer { padding: 70px 0 28px; color: #c2d2dc; background: #061724; }
.footer-grid { display: grid; grid-template-columns: 1.25fr repeat(4, minmax(0, 1fr)); gap: 38px; }
.footer-grid > div { min-width: 0; }
.site-footer .brand-name { color: var(--white); }
.site-footer .brand-logo--footer { width: 154px; height: 52px; padding: 4px 7px; background: var(--white); border-radius: 10px; }
.footer-intro { max-width: 340px; margin-top: 20px; color: #92aab8; }
.footer-title { margin-bottom: 18px; color: var(--white); font-size: .82rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.footer-links { display: grid; gap: 10px; font-size: .9rem; }
.footer-links a:hover { color: var(--white); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 55px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); color: #7893a2; font-size: .8rem; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease var(--reveal-delay, 0ms), transform .7s ease var(--reveal-delay, 0ms); }
.reveal.visible { opacity: 1; transform: none; }

@keyframes heroCardFloat { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-10px,0); } }
@keyframes pageHeroDrift { from { scale: 1; } to { scale: 1.035; } }
@keyframes cardSheen { 0%,55% { transform: translateX(-120%); } 75%,100% { transform: translateX(120%); } }
@keyframes livePulse { 0% { box-shadow: 0 0 0 0 rgba(10,143,106,.35); } 70%,100% { box-shadow: 0 0 0 9px rgba(10,143,106,0); } }
@keyframes dataTravel { 0% { left: 0; opacity: 0; } 18% { opacity: 1; } 82% { opacity: 1; } 100% { left: calc(100% - 10px); opacity: 0; } }
@keyframes pdfReady { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-7px); } }
@keyframes iperx-cycle-line { 0% { transform: scaleX(0); opacity: 0; } 8% { opacity: 1; } 76% { transform: scaleX(1); opacity: 1; } 90% { transform: scaleX(1); opacity: .25; } 100% { transform: scaleX(1); opacity: 0; } }
@keyframes iperx-cycle-travel { 0% { left: 0; opacity: 0; } 7% { opacity: 1; } 76% { left: calc(100% - 12px); opacity: 1; } 88%,100% { left: calc(100% - 12px); opacity: 0; } }
@keyframes maintenance-track-sequence { 0% { transform: scaleX(0); opacity: .2; } 8% { opacity: 1; } 82% { transform: scaleX(1); opacity: 1; } 92% { transform: scaleX(1); opacity: .3; } 100% { transform: scaleX(0); opacity: 0; } }
@keyframes maintenance-step-sequence { 0%,9% { transform: scale(1.5); background: #d7fffc; box-shadow: 0 0 0 5px rgba(98,224,220,.16), 0 0 16px rgba(98,224,220,.8); } 13%,100% { transform: scale(1); background: var(--cyan); box-shadow: none; } }
@keyframes iperx-cycle-step { 0%,70%,100% { transform: scale(1); background: var(--cyan); box-shadow: none; } 10%,24% { transform: scale(1.55); background: #d7fffc; box-shadow: 0 0 0 5px rgba(98,224,220,.16), 0 0 16px rgba(98,224,220,.8); } }

@media (max-width: 1080px) {
  .home-process { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .process-step:nth-child(3)::after, .process-step:nth-child(6)::after { display: none; }
  .trust-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nav-links { position: fixed; inset: 109px 0 auto; max-height: calc(100vh - 109px); padding: 24px 20px 40px; display: none; flex-direction: column; align-items: stretch; background: var(--white); border-top: 1px solid var(--line); box-shadow: var(--shadow-lg); overflow: auto; }
  .nav-links.open { display: flex; }
  .nav-link { padding: 15px; font-size: 1.05rem; }
  .nav-menu { width: 100%; }
  .nav-menu > summary { width: 100%; justify-content: space-between; }
  .nav-dropdown { position: static; min-width: 0; margin: 4px 0 8px; padding: 7px; background: #f5fafb; box-shadow: none; }
  .nav-dropdown-link { padding: 12px; font-size: .96rem; white-space: normal; }
  .menu-toggle { display: block; }
  .nav-actions .btn-ghost { display: none; }
  .pricing-grid { grid-template-columns: repeat(2,1fr); }
  .price-card.featured { transform: none; }
  .grid-4 { grid-template-columns: repeat(2,1fr); }
  .bento { grid-template-columns: 1fr; }
  .bento-card, .bento-card.wide { grid-column: auto; }
  .feature-highlight-grid { grid-template-columns: 1fr; }
  .recipient-panel { grid-template-columns: 1fr; }
  .iperlink-layout { grid-template-columns: 1fr; }
  .iperlink-copy { max-width: 720px; }
  .iperlink-features { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iperlink-card { grid-template-columns: 1fr; }
  .iperlink-hero-grid { grid-template-columns: 1fr; }
  .iperlink-page-hero { padding-top: 120px; }
  .iperlink-hero-visual { width: min(100%,620px); margin-inline: auto; }
  .iperlink-access-map { grid-template-columns: minmax(250px,.8fr) 90px minmax(280px,1fr); }
  .iperlink-status-flow { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .iperlink-status-card:nth-child(2)::after { display: none; }
  .hero-data-stream { display: none; }
  .field-result-flow { grid-template-columns: 1fr; max-width: 720px; margin-inline: auto; }
  .flow-node { min-height: 310px; }
  .flow-connector { min-height: 62px; }
  .flow-connector::before { inset: 0 auto 0 50%; width: 1px; height: auto; background: linear-gradient(180deg, #b7d4da, var(--cyan), #b7d4da); }
  .flow-connector i { top: 0; left: calc(50% - 5px); animation-name: dataTravelVertical; }
  .home-module-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-module, .home-module:nth-child(-n+2) { grid-column: auto; }
  .training-flow, .catalog-universe-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .roadmap-card--commercial { grid-template-columns: 1fr; }
  .roadmap-flow-orchestrator { max-width: none; }
  .roadmap-status-flow { left: auto; width: 100%; margin: 38px 0 0; grid-template-columns: repeat(4,minmax(0,1fr)); transform: none; }
  .roadmap-status-flow .status-step:nth-child(4)::after { display: none; }
  .roadmap-review-main { grid-template-columns: 1fr; }
  .roadmap-review-arrow { min-height: 36px; transform: rotate(90deg); }
  .roadmap-review-hub { min-height: 0; }
  .downloads-mobile-layout { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  :root { --container: min(100% - 28px, 680px); }
  h1 { font-size: clamp(3rem, 13vw, 5rem); }
  .hero-iperx .page-hero-content { padding-right: 0; }
  .hero-iperx-logo { position: relative; top: auto; right: auto; display: block; width: 118px; margin: 0 0 24px auto; padding: 12px; border-radius: 24px; }
  .hero-referentiel .page-hero-content { padding-right: 0; }
  .hero-referentiel-logo { position: relative; top: auto; right: auto; display: block; width: 112px; margin: 0 0 24px auto; padding: 12px; border-radius: 24px; }
  .announcement { font-size: .7rem; }
  .nav-shell { min-height: 70px; }
  .nav-links { inset-block-start: 101px; }
  .section-head, .split, .contact-layout, .calc-grid { grid-template-columns: 1fr; gap: 30px; }
  .home-process { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .process-step:nth-child(3)::after { display: grid; }
  .process-step:nth-child(2)::after, .process-step:nth-child(4)::after, .process-step:nth-child(6)::after { display: none; }
  .product-showcase-grid, .rules-home-layout { grid-template-columns: 1fr; }
  .product-showcase-grid { max-width: 660px; margin-inline: auto; }
  .product-visual { height: 300px; }
  .rules-home-visual { width: min(100%,620px); margin-inline: auto; transform: none; }
  .rules-home-visual img { height: 500px; }
  .metric-grid { grid-template-columns: repeat(2,1fr); }
  .metric:nth-child(2) { border-right: 0; }
  .metric:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .iperlink-features { grid-template-columns: 1fr; }
  .iperlink-card { grid-template-columns: 64px minmax(0,1fr); }
  .iperlink-login-frame { justify-self: center; transform: none; }
  .iperlink-access-map { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; }
  .iperlink-invite-flow { min-height: 80px; }
  .iperlink-invite-flow::before { left: 50%; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: linear-gradient(180deg, rgba(98,224,220,.15), #62e0dc, rgba(98,224,220,.15)); }
  .iperlink-invite-flow span { left: calc(50% - 5px); top: 0; animation-name: dataTravelVertical; }
  .iperlink-role-points { grid-template-columns: 1fr; }
  .iperlink-status-head { grid-template-columns: 1fr; gap: 24px; }
  .iperlink-status-head p { max-width: 680px; }
  .iperlink-availability-note { align-items: flex-start; flex-direction: column; }
  .bento { grid-template-columns: 1fr; }
  .bento-card, .bento-card.wide { grid-column: auto; min-height: 460px; }
  .bento-card--collect, .bento-card--core { grid-template-columns: 1fr; min-height: auto; }
  .bento-card--collect .phone-pair {
    width: min(100%, 440px);
    min-height: 470px;
    margin: 22px auto -125px;
  }
  .bento-card--core .bento-visual { width: 110%; margin: 24px -10% -55px 0; }
  .steps { grid-template-columns: 1fr 1fr; gap: 40px 15px; }
  .steps.steps-5 { grid-template-columns: 1fr 1fr; }
  .animated-steps { border-top: 0; }
  .maintenance-steps { background: none; }
  .maintenance-steps.visible .step::after { animation: none; }
  .animated-steps::before, .animated-steps::after { display: none; }
  .animated-steps .step { border-top: 1px solid #365063; }
  .catalog-toolbar { top: 70px; }
  .catalog-controls { grid-template-columns: 1fr; }
  .accred-card { grid-template-columns: 1fr; }
  .scope-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .impact-grid, .status-flow { grid-template-columns: 1fr 1fr; }
  .status-step:nth-child(2)::after, .status-step:nth-child(4)::after { display: none; }
  .roadmap-status-flow .status-step:nth-child(6)::after { display: none; }
  .module-grid, .module-compare { grid-template-columns: 1fr; }
  .module-card { min-height: 410px; }
  .app-gallery--two { grid-template-columns: 1fr; max-width: 560px; }
  .collect-screen { height: 600px; }
  .collect-screen--compact { height: 540px; }
  .ai-story { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .installation-dispositif-flow { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .ai-arrow { transform: rotate(90deg); }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-nav { position: static; grid-template-columns: repeat(2,1fr); }
  .legal-nav strong { grid-column: 1 / -1; }
  .roadmap-grid { grid-template-columns: 1fr; }
  .roadmap-card, .roadmap-card--commercial { grid-column: auto; }
  .roadmap-iso-layout { grid-template-columns: 1fr; }
  .production-type-grid { grid-template-columns: 1fr; }
  .roadmap-flow-orchestrator { grid-template-columns: 48px minmax(0,1fr); }
  .roadmap-flow-orchestrator p { grid-column: 1 / -1; white-space: normal; }
  .downloads-qr-grid, .downloads-desktop-grid { grid-template-columns: 1fr; }
  .downloads-update-note { grid-template-columns: auto minmax(0,1fr); }
  .downloads-update-note .btn { grid-column: 1 / -1; justify-self: start; }
  .roadmap-review-caption { grid-template-columns: 1fr; gap: 10px; }
  .roadmap-review-cycle { display: grid; grid-template-columns: 1fr 24px 1fr; }
  .roadmap-review-cycle b { grid-column: 1 / -1; justify-self: center; transform: rotate(-35deg); }
}

@media (max-width: 560px) {
  .nav-actions .btn-primary { display: none; }
  .brand-logo--full { width: 132px; height: 44px; }
  .hero { min-height: 720px; }
  .hero::before { background: linear-gradient(0deg, rgba(4,19,31,.98) 8%, rgba(4,19,31,.82) 56%, rgba(4,19,31,.28)); }
  .hero-media { object-position: 68% center; }
  .hero-content { padding-bottom: 55px; }
  .hero-use-cases { gap: 7px; margin-top: 34px; }
  .hero-use-cases span { padding: 6px 8px; font-size: .64rem; }
  .home-process { grid-template-columns: 1fr; }
  .process-step { min-height: 0; }
  .process-step::after { display: none !important; }
  .process-example { grid-template-columns: 1fr; gap: 10px; }
  .product-visual { height: 235px; }
  .product-copy { padding: 24px; }
  .rules-home-list > div { grid-template-columns: 1fr; gap: 5px; }
  .rules-home-visual img { height: 420px; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-card { min-height: 0; }
  .iperlink-path { justify-content: flex-start; flex-wrap: wrap; }
  .iperlink-card { min-height: 0; padding: 25px; grid-template-columns: 52px minmax(0,1fr); gap: 18px; }
  .iperlink-card img { width: 52px; height: 52px; padding: 11px; border-radius: 15px; }
  .iperlink-page-hero { min-height: 0; padding-top: 100px; }
  .iperlink-hero-visual { min-height: 400px; transform: scale(.85); margin-block: -30px; }
  .iperlink-hero-orbit { width: 330px; height: 330px; }
  .iperlink-hero-hub { width: 155px; height: 155px; }
  .iperlink-hero-node { width: 155px; padding: 15px; }
  .iperlink-hero-node--client { top: 34px; left: -12px; }
  .iperlink-hero-node--recipient { right: -12px; bottom: 34px; }
  .iperlink-purpose-card { min-height: 0; }
  .iperlink-guest-stack article { grid-template-columns: 1fr; }
  .iperlink-guest-stack span { grid-row: auto; }
  .iperlink-status-flow { grid-template-columns: 1fr; gap: 34px; }
  .iperlink-status-card { min-height: 0; }
  .iperlink-status-card::after, .iperlink-status-card:nth-child(2)::after { top: auto; right: auto; bottom: -26px; left: calc(50% - 17px); content: "↓"; display: grid; }
  .iperlink-status-card:last-child::after { display: none; }
  .iperlink-availability-tags { flex: 0 0 auto; }
  .hero-proof { gap: 12px; }
  .page-hero.has-image { min-height: 590px; }
  .page-hero.has-image::after { background: linear-gradient(0deg, rgba(4,19,31,.95), rgba(4,19,31,.3)); }
  .metric { padding: 21px; }
  .grid-2, .grid-3, .grid-4, .pricing-grid { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .steps.steps-5 { grid-template-columns: 1fr; }
  .bento-card { padding: 27px; min-height: 430px; }
  .bento-visual { width: 95%; right: -22%; }
  .phone-pair { right: -35px; }
  .phone-shot { width: 155px; }
  .bento-card--collect .phone-pair {
    right: auto;
    width: calc(100% + 36px);
    min-height: 400px;
    margin: 20px -18px -110px;
  }
  .bento-card--collect .phone-shot { width: min(45%, 155px); }
  .bento-card--core .bento-visual { right: auto; width: 122%; margin: 20px -22% -35px 0; }
  .feature-highlight { grid-template-columns: 1fr; }
  .impact-grid, .status-flow { grid-template-columns: 1fr; }
  .status-step::after { display: none !important; }
  .home-module-grid, .training-flow, .catalog-universe-grid { grid-template-columns: 1fr; }
  .home-module, .module-card, .catalog-universe { min-height: auto; }
  .production-type-card { min-height: auto; }
  .roadmap-hero { min-height: 540px; }
  .roadmap-card { min-height: auto; padding: 27px; }
  .roadmap-card--commercial { display: flex; }
  .roadmap-commercial-points { width: 100%; margin-top: 24px; }
  .roadmap-review-map { padding: 24px; }
  .roadmap-review-cycle { grid-template-columns: 1fr; gap: 8px; }
  .roadmap-review-cycle i { display: none; }
  .roadmap-ai-assist { grid-template-columns: 1fr; padding: 26px; }
  .roadmap-flow-orchestrator { grid-template-columns: 1fr; padding: 22px; }
  .roadmap-flow-orchestrator img { width: 52px; height: 52px; }
  .downloads-hero { min-height: 540px; }
  .downloads-update-note { grid-template-columns: 1fr; padding: 27px; }
  .downloads-update-note .btn { grid-column: auto; }
  .download-desktop-card { min-height: auto; }
  .download-desktop-card .btn { transform: none; }
  .flow-node { min-height: 330px; padding: 27px; }
  .archive-note { grid-template-columns: 1fr; }
  .traceability-line { align-items: flex-start; flex-direction: column; }
  .phone-screen-crop { height: 530px; }
  .app-phone-stage { padding-inline: 12px; }
  .legal-hero { min-height: 500px; }
  .legal-nav { grid-template-columns: 1fr; }
  .legal-nav strong { grid-column: auto; }
  .legal-table { min-width: 620px; }
  .catalog-meta, .footer-bottom { flex-direction: column; }
  .catalog-item { padding: 16px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-group.full { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; }
}

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

@keyframes dataTravelVertical { 0% { top: 0; opacity: 0; } 18% { opacity: 1; } 82% { opacity: 1; } 100% { top: calc(100% - 10px); opacity: 0; } }
@keyframes referentiel-chevron-glow { 0%, 72%, 100% { transform: translateY(-50%) scale(1); background: var(--cyan); box-shadow: 0 0 0 5px rgba(98,224,220,.1); } 14%, 28% { transform: translateY(-50%) scale(1.16); background: #b7fffa; box-shadow: 0 0 0 8px rgba(98,224,220,.2), 0 0 18px rgba(98,224,220,.75); } }
@keyframes home-cycle-step { 0%, 74%, 100% { transform: scale(1); background: var(--cyan); box-shadow: none; } 14%, 28% { transform: scale(1.5); background: #b7fffa; box-shadow: 0 0 13px rgba(98,224,220,.7); } }
