:root {
  --ink: #0b2136;
  --ink-deep: #061522;
  --ink-soft: #123a58;
  --blue: #1677e8;
  --blue-light: #65d6f6;
  --green: #c4ee68;
  --green-soft: #e1f8ab;
  --paper: #f6f8fa;
  --paper-dark: #eaf0f3;
  --white: #fff;
  --text: #102b3b;
  --muted: #687a83;
  --line: #dbe4e8;
  --danger: #ab3f36;
  --container: 1180px;
  --header-height: 82px;
  --shadow: 0 28px 80px rgba(6, 21, 34, .14);
  --shadow-soft: 0 22px 60px rgba(6, 21, 34, .09);
  --radius: 26px;
  --ease: cubic-bezier(.22, .72, .16, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 52px); }
body { margin: 0; padding-top: calc(var(--header-height) + 36px); overflow-x: hidden; background: var(--paper); color: var(--text); font-family: Inter, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.62; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 10px 16px; background: var(--white); color: var(--ink); box-shadow: var(--shadow); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
.scroll-progress { position: fixed; z-index: 1001; top: 0; left: 0; width: var(--scroll-progress, 0%); height: 3px; background: linear-gradient(90deg, var(--blue-light), var(--green)); box-shadow: 0 0 16px rgba(101, 214, 246, .65); pointer-events: none; }

.topline { position: fixed; z-index: 102; top: 0; right: 0; left: 0; background: var(--ink-deep); color: rgba(255, 255, 255, .63); font-size: 10px; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.topline__inner { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topline p { margin: 0; }
.topline__inner > div { display: flex; align-items: center; gap: 28px; }
.topline a:first-child { color: var(--blue-light); }
.topline a:last-child { color: var(--white); }

.site-header { position: fixed; z-index: 101; top: 36px; right: 0; left: 0; height: var(--header-height); background: rgba(248, 247, 243, .96); border-bottom: 1px solid rgba(10, 34, 50, .1); backdrop-filter: blur(16px); transition: box-shadow .25s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 34px rgba(5, 23, 34, .09); }
.header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-grid; grid-template-columns: 112px auto; align-items: center; gap: 16px; color: var(--ink); }
.brand img { width: 112px; height: 59px; object-fit: contain; }
.brand small { padding-left: 16px; border-left: 1px solid var(--line); color: var(--muted); font-size: 8px; font-weight: 750; letter-spacing: .1em; line-height: 1.45; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: clamp(15px, 1.65vw, 25px); font-size: 12px; font-weight: 680; }
.main-nav > a:not(.button) { position: relative; }
.main-nav > a:not(.button)::after { content: ""; position: absolute; right: 0; bottom: -8px; left: 0; height: 1px; background: var(--blue); transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ease); }
.main-nav > a:not(.button):hover::after, .main-nav > a:not(.button):focus-visible::after { transform: scaleX(1); transform-origin: left; }
.main-nav > a:nth-last-child(2) { color: var(--blue); }
.nav-resources { position: relative; }
.nav-resources summary { display: flex; align-items: center; gap: 7px; list-style: none; cursor: pointer; user-select: none; }
.nav-resources summary::-webkit-details-marker { display: none; }
.nav-resources summary::after { content: "+"; color: var(--blue); font-size: 15px; font-weight: 400; line-height: 1; transition: transform .25s var(--ease); }
.nav-resources[open] summary::after { transform: rotate(45deg); }
.nav-resources__menu { position: absolute; z-index: 120; top: calc(100% + 24px); right: 0; width: 320px; padding: 10px; border: 1px solid rgba(11, 33, 54, .1); border-radius: 18px; background: rgba(255, 255, 255, .97); box-shadow: 0 25px 70px rgba(6, 21, 34, .18); backdrop-filter: blur(20px); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top right; transition: opacity .22s ease, visibility 0s linear .22s, transform .22s var(--ease); }
.nav-resources[open] .nav-resources__menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nav-resources__menu > a, .nav-resources__menu > span { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 12px; min-height: 62px; padding: 10px 12px; border-radius: 12px; color: var(--ink); transition: background .2s ease, transform .25s var(--ease); }
.nav-resources__menu > a:hover, .nav-resources__menu > a:focus-visible { background: #edf5fb; transform: translateX(3px); }
.nav-resources__menu img { width: 25px; height: 25px; opacity: .78; }
.nav-resources__menu span span, .nav-resources__menu a span { display: flex; flex-direction: column; font-size: 11px; font-weight: 760; }
.nav-resources__menu small { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .04em; }
.nav-resources__menu a small { color: var(--blue); }
.nav-resource--pending { opacity: .48; cursor: not-allowed; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px 9px; border: 0; background: transparent; cursor: pointer; }
.menu-toggle i { display: block; width: 26px; height: 2px; margin: 5px 0; background: currentColor; transition: transform .25s ease, opacity .25s ease; }

.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 18px; padding: 0 24px; border: 1px solid var(--blue); border-radius: 2px; background: var(--blue); color: var(--white); font-size: 12px; font-weight: 760; letter-spacing: .02em; cursor: pointer; transition: transform .25s var(--ease), background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.button:hover { border-color: #057eb6; background: #057eb6; box-shadow: 0 14px 34px rgba(13, 142, 200, .25); transform: translateY(-2px); }
.button span { font-size: 17px; }
.button--small { min-height: 42px; padding-inline: 17px; font-size: 11px; }
.button--light { border-color: var(--green); background: var(--green); color: var(--ink-deep); }
.button--light:hover { border-color: var(--green-soft); background: var(--green-soft); }

.hero { position: relative; min-height: calc(100svh - 118px); overflow: hidden; background: var(--ink); color: var(--white); }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 78% 34%, rgba(85, 197, 234, .16), transparent 28%), linear-gradient(115deg, rgba(5, 23, 34, .2), transparent 60%); }
.hero__mesh { position: absolute; inset: 0; opacity: .065; background-image: linear-gradient(rgba(255, 255, 255, .9) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .9) 1px, transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(90deg, transparent 0%, #000 42%, #000 100%); }
.hero__layout { position: relative; z-index: 1; min-height: calc(100svh - 118px); display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 84px; padding-block: 78px 92px; }
.eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 25px; color: var(--blue-light); font-size: 10px; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow > span { padding: 6px 9px; border: 1px solid rgba(85, 197, 234, .35); color: var(--green); }
h1, h2 { margin: 0; color: inherit; font-size: clamp(51px, 5.5vw, 79px); font-weight: 650; letter-spacing: -.052em; line-height: .99; }
h1 em, h2 em { color: var(--green); font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 400; }
.hero__lead { max-width: 640px; margin: 30px 0 0; color: rgba(255, 255, 255, .68); font-size: clamp(16px, 1.55vw, 20px); line-height: 1.65; }
.hero__actions { display: flex; align-items: center; gap: 30px; margin-top: 38px; }
.plain-link { display: inline-flex; align-items: center; gap: 14px; color: rgba(255, 255, 255, .86); font-size: 12px; font-weight: 720; }
.plain-link span { color: var(--green); font-size: 17px; transition: transform .2s ease; }
.plain-link:hover span { transform: translateY(4px); }
.hero__proofs { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 650px; margin: 52px 0 0; padding: 21px 0 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .16); }
.hero__proofs li { display: flex; flex-direction: column; gap: 1px; padding-right: 22px; }
.hero__proofs li + li { padding-left: 22px; border-left: 1px solid rgba(255, 255, 255, .16); }
.hero__proofs strong { color: var(--white); font-size: 14px; letter-spacing: .05em; }
.hero__proofs span { color: rgba(255, 255, 255, .43); font-size: 8px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.hero__visual { position: relative; }
.control-panel { position: relative; width: min(100%, 490px); margin-left: auto; border: 1px solid rgba(255, 255, 255, .17); background: rgba(5, 23, 34, .63); box-shadow: 0 32px 90px rgba(0, 0, 0, .22); backdrop-filter: blur(8px); }
.control-panel::before, .control-panel::after { content: ""; position: absolute; width: 20px; height: 20px; border-color: var(--green); }
.control-panel::before { top: -1px; left: -1px; border-top: 2px solid var(--green); border-left: 2px solid var(--green); }
.control-panel::after { right: -1px; bottom: -1px; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); }
.control-panel__head, .control-panel__foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 50px; padding-inline: 22px; color: rgba(255, 255, 255, .45); font-size: 8px; font-weight: 760; letter-spacing: .16em; text-transform: uppercase; }
.control-panel__head { border-bottom: 1px solid rgba(255, 255, 255, .13); }
.control-panel__head > div { display: flex; align-items: center; gap: 8px; }
.control-panel__head > span { color: var(--green); }
.live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(182, 214, 60, .1); animation: pulse 2s ease infinite; }
.control-panel__body { padding: 29px 28px 25px; }
.control-panel__label { margin: 0 0 7px; color: var(--blue-light); font-size: 8px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.control-panel__reference { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-bottom: 23px; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.control-panel__reference span { color: rgba(255, 255, 255, .45); font-size: 10px; }
.control-panel__reference strong { font-size: 18px; letter-spacing: .04em; }
.control-panel__status { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; }
.control-panel__status > span { color: rgba(255, 255, 255, .45); font-size: 9px; }
.control-panel__status strong { display: flex; align-items: center; gap: 9px; color: var(--green); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.control-panel__status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mini-timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .12); }
.mini-timeline li { display: grid; grid-template-columns: 28px 1fr 24px; align-items: center; gap: 12px; padding: 16px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.mini-timeline li > span { color: rgba(255, 255, 255, .34); font-size: 8px; font-weight: 800; }
.mini-timeline p { margin: 0; font-size: 11px; font-weight: 720; }
.mini-timeline small { display: block; color: rgba(255, 255, 255, .35); font-size: 8px; font-weight: 500; }
.mini-timeline li > i { display: grid; width: 23px; height: 23px; place-content: center; border: 1px solid rgba(255, 255, 255, .17); border-radius: 50%; color: var(--green); font-size: 9px; font-style: normal; }
.mini-timeline .active { margin-top: 7px; padding-inline: 12px; border: 1px solid rgba(182, 214, 60, .45); background: rgba(182, 214, 60, .06); }
.control-panel__foot { border-top: 1px solid rgba(255, 255, 255, .13); }
.hero__stamp { position: absolute; right: -20px; bottom: -52px; display: flex; align-items: stretch; gap: 15px; padding: 16px 20px; background: var(--green); color: var(--ink-deep); box-shadow: var(--shadow); }
.hero__stamp span { padding-right: 14px; border-right: 1px solid rgba(5, 23, 34, .22); font-size: 9px; font-weight: 800; }
.hero__stamp strong { font-size: 11px; line-height: 1.35; text-transform: uppercase; }

.commitment { background: var(--green); color: var(--ink-deep); }
.commitment__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.commitment p { display: flex; min-height: 76px; align-items: center; gap: 15px; margin: 0; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.commitment p + p { padding-left: 24px; border-left: 1px solid rgba(5, 23, 34, .18); }
.commitment span { opacity: .48; font-size: 8px; }

.section { padding-block: 125px; }
.section-kicker { margin: 0 0 22px; color: var(--blue); font-size: 10px; font-weight: 820; letter-spacing: .18em; text-transform: uppercase; }
.section-kicker::before { content: ""; display: inline-block; width: 33px; height: 1px; margin-right: 12px; vertical-align: middle; background: currentColor; }
.section-kicker--light { color: var(--blue-light); }
.section-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 90px; margin-bottom: 65px; }
.section-heading h2, .accreditation h2, .tracking h2, .training h2, .territory h2, .contact-section h2 { color: var(--ink); font-size: clamp(43px, 4.8vw, 67px); }
.section-heading > p { margin: 0 0 7px; color: var(--muted); font-size: 16px; line-height: 1.75; }

.priority-card { display: grid; grid-template-columns: .38fr .62fr; min-height: 520px; margin-bottom: 18px; overflow: hidden; background: var(--white); border: 1px solid var(--line); box-shadow: 0 18px 58px rgba(5, 23, 34, .06); }
.priority-card__intro { position: relative; padding: 34px; overflow: hidden; background: var(--blue); color: var(--white); }
.priority-card__intro::before { content: ""; position: absolute; top: 50%; left: 50%; width: 420px; height: 420px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 55px rgba(255, 255, 255, .035), 0 0 0 110px rgba(255, 255, 255, .025); }
.card-meta { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #91a0a8; font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.priority-card__intro .card-meta { color: rgba(255, 255, 255, .65); }
.scope-badge { padding: 6px 8px; border: 1px solid rgba(182, 214, 60, .7); color: var(--green); font-size: 7px; white-space: nowrap; }
.scope-badge--outside { border-color: rgba(13, 142, 200, .42); color: var(--blue); }
.priority-card__intro .scope-badge--outside { border-color: rgba(255, 255, 255, .45); color: var(--white); }
.priority-card__icon { position: absolute; top: 50%; left: 50%; z-index: 1; display: grid; width: 138px; height: 138px; place-content: center; margin: 0; border: 1px solid rgba(255, 255, 255, .38); border-radius: 50%; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: 70px; font-style: italic; transform: translate(-50%, -50%); }
.priority-card__icon img { width: 64px; height: 64px; filter: brightness(0) invert(1); }
.priority-card__content { padding: 56px 62px; }
.card-overline { margin: 0 0 9px; color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.priority-card h3 { margin: 0; color: var(--ink); font-size: clamp(36px, 4vw, 56px); letter-spacing: -.04em; line-height: 1.05; }
.priority-card__content > p:not(.card-overline, .exclusion) { max-width: 620px; margin: 23px 0; color: var(--muted); }
.check-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; }
.check-list li { padding: 7px 11px; border: 1px solid var(--line); background: var(--paper); color: var(--ink-soft); font-size: 10px; }
.check-list li::before { content: "✓"; margin-right: 7px; color: var(--blue); font-weight: 800; }
.exclusion { padding: 13px 15px; border-left: 3px solid var(--green); background: #f2f6e5; color: var(--muted); font-size: 11px; }
.exclusion strong { margin-right: 7px; color: var(--ink); }
.arrow-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 12px; border-bottom: 1px solid currentColor; color: var(--ink); font-size: 10px; font-weight: 820; letter-spacing: .06em; text-transform: uppercase; }
.arrow-link span { font-size: 17px; transition: transform .2s ease; }
.arrow-link:hover span { transform: translateX(4px); }

.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.service-card { min-height: 550px; display: flex; flex-direction: column; padding: 35px 38px; border: 1px solid var(--line); background: var(--white); transition: transform .3s var(--ease), box-shadow .3s ease; }
.service-card:hover { z-index: 2; transform: translateY(-5px); box-shadow: var(--shadow); }
.service-card--dark { border-color: var(--ink); background: var(--ink); color: var(--white); }
.service-card--dark .card-meta { color: rgba(255, 255, 255, .45); }
.service-card__symbol { width: 62px; margin: 70px 0 40px; color: var(--blue); }
.service-card--dark .service-card__symbol { color: var(--green); }
.service-card__symbol svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.service-card__symbol svg path:first-child:only-child { fill: currentColor; stroke: none; }
.service-card__symbol--bolt { height: 62px; background: currentColor; -webkit-mask: url("Images/Icone I1/bolt-circle-svgrepo-com.svg") center / contain no-repeat; mask: url("Images/Icone I1/bolt-circle-svgrepo-com.svg") center / contain no-repeat; }
.service-card h3 { margin: 0; color: var(--ink); font-size: 34px; letter-spacing: -.035em; line-height: 1.1; }
.service-card--dark h3 { color: var(--white); }
.service-card > p:not(.card-overline) { margin: 19px 0 23px; color: var(--muted); font-size: 14px; }
.service-card--dark > p:not(.card-overline) { color: rgba(255, 255, 255, .58); }
.service-card__details { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.service-card__details li { padding: 6px 9px; border: 1px solid var(--line); color: var(--muted); font-size: 9px; }
.service-card--dark .service-card__details li { border-color: rgba(255, 255, 255, .15); color: rgba(255, 255, 255, .55); }
.service-card .arrow-link { margin-top: auto; align-self: flex-start; }
.service-card--dark .arrow-link { color: var(--white); }

.public-equipment { display: grid; grid-template-columns: 1fr 1fr; margin-top: 18px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.public-card { display: grid; grid-template-columns: 34px 1fr auto; align-items: start; gap: 24px; min-height: 255px; padding: 37px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.public-card__number { color: #96a4aa; font-size: 9px; font-weight: 800; }
.public-card h3 { margin: 5px 0 10px; color: var(--ink); font-size: 27px; }
.public-card p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.public-card > a { display: grid; width: 36px; height: 36px; place-content: center; border: 1px solid var(--line); color: var(--blue); transition: background .2s ease, color .2s ease; }
.public-card > a:hover { background: var(--ink); color: var(--white); }
.other-services { display: grid; grid-template-columns: .38fr .62fr; gap: 50px; align-items: center; margin-top: 18px; padding: 46px 48px; background: var(--paper-dark); }
.other-services h3 { margin: 0; color: var(--ink); font-size: 26px; line-height: 1.25; }
.other-services ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; margin: 0; padding: 0; list-style: none; border-top: 1px solid #cbd3d4; }
.other-services li { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid #cbd3d4; color: var(--ink); font-size: 12px; font-weight: 680; }
.other-services li span { color: var(--blue); font-size: 8px; font-weight: 800; }

.thermography { position: relative; overflow: hidden; background: radial-gradient(circle at 8% 22%, rgba(22, 119, 232, .09), transparent 25%), radial-gradient(circle at 88% 78%, rgba(255, 116, 74, .08), transparent 24%), var(--paper); }
.thermography::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(22, 119, 232, .4), rgba(255, 112, 67, .45), transparent); }
.thermography__layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 90px; }
.thermography__visual { position: relative; }
.thermography__visual::before { content: ""; position: absolute; inset: 10% -4% -7% 10%; border-radius: 30px; background: linear-gradient(135deg, rgba(22, 119, 232, .16), rgba(255, 95, 63, .12)); filter: blur(24px); }
.thermal-screen { position: relative; overflow: hidden; aspect-ratio: 1.04; border: 1px solid rgba(255, 255, 255, .14); border-radius: 28px; background: #071827; box-shadow: 0 35px 90px rgba(6, 21, 34, .22); }
.thermal-screen__head, .thermal-screen__foot { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; padding-inline: 24px; color: rgba(255, 255, 255, .5); font-size: 8px; font-weight: 780; letter-spacing: .13em; text-transform: uppercase; }
.thermal-screen__head { height: 56px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.thermal-screen__head span { display: flex; align-items: center; gap: 9px; }
.thermal-screen__head span i { width: 7px; height: 7px; border-radius: 50%; background: #ff744a; box-shadow: 0 0 0 6px rgba(255, 116, 74, .1), 0 0 18px rgba(255, 116, 74, .7); animation: thermalPulse 2.2s ease-in-out infinite; }
.thermal-screen__head strong { color: var(--blue-light); font-size: 8px; }
.thermal-map { position: relative; height: calc(100% - 104px); overflow: hidden; background: radial-gradient(circle at 64% 42%, #ffdf4f 0 3%, #ff6a3d 8%, rgba(209, 38, 102, .88) 17%, transparent 33%), radial-gradient(circle at 34% 68%, #fff176 0 2%, #ff7a45 7%, rgba(123, 42, 148, .78) 17%, transparent 31%), linear-gradient(135deg, #172a69, #3b216e 46%, #102b63); }
.thermal-map::before { content: ""; position: absolute; inset: 0; opacity: .24; background-image: linear-gradient(rgba(255, 255, 255, .25) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .25) 1px, transparent 1px); background-size: 28px 28px; }
.thermal-cabinet { position: absolute; display: flex; flex-direction: column; gap: 9px; padding: 16px; border: 2px solid rgba(101, 214, 246, .52); background: rgba(5, 23, 34, .2); }
.thermal-cabinet--one { top: 16%; right: 13%; width: 40%; height: 68%; }
.thermal-cabinet--two { bottom: 12%; left: 11%; width: 31%; height: 48%; }
.thermal-cabinet i { flex: 1; border: 1px solid rgba(255, 255, 255, .28); background: linear-gradient(90deg, rgba(101, 214, 246, .16), rgba(255, 116, 74, .16)); }
.heat-point { position: absolute; z-index: 2; display: grid; width: 18px; height: 18px; place-content: center; border: 2px solid #fff176; border-radius: 50%; box-shadow: 0 0 0 8px rgba(255, 226, 92, .12), 0 0 34px #ff693d; animation: heatPoint 2.8s ease-in-out infinite; }
.heat-point b { position: absolute; left: 22px; bottom: 18px; padding: 5px 8px; border-radius: 5px; background: rgba(5, 23, 34, .82); color: #fff176; font-size: 9px; white-space: nowrap; }
.heat-point--one { top: 35%; right: 29%; }
.heat-point--two { bottom: 24%; left: 26%; animation-delay: -1.2s; }
.thermal-target { position: absolute; z-index: 2; top: 50%; left: 50%; width: 58px; height: 58px; border: 1px solid rgba(255, 255, 255, .54); border-radius: 50%; transform: translate(-50%, -50%); }
.thermal-target::before, .thermal-target::after { content: ""; position: absolute; top: 50%; left: 50%; background: rgba(255, 255, 255, .54); transform: translate(-50%, -50%); }
.thermal-target::before { width: 78px; height: 1px; }
.thermal-target::after { width: 1px; height: 78px; }
.thermal-scan { position: absolute; z-index: 2; top: -12%; right: 0; left: 0; height: 3px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .9), transparent); box-shadow: 0 0 18px rgba(255, 255, 255, .8); animation: thermalScan 4.8s ease-in-out infinite; }
.thermal-screen__foot { height: 48px; }
.thermal-screen__foot i { flex: 1; height: 6px; margin-inline: 14px; border-radius: 999px; background: linear-gradient(90deg, #173b9b, #7831a5, #e52c63, #ff7a3c, #fff176); }
.thermography__meta { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.thermography__meta .section-kicker { margin-bottom: 0; }
.thermography__content h2 { color: var(--ink); font-size: clamp(43px, 4.8vw, 67px); }
.thermography__lead { margin: 27px 0 30px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.q19-card { display: grid; grid-template-columns: 92px 1fr; gap: 25px; align-items: center; padding: 22px 25px; border-radius: 20px; background: linear-gradient(135deg, #0b2b47, #101f3e); color: var(--white); box-shadow: 0 18px 45px rgba(6, 21, 34, .13); }
.q19-card > strong { display: grid; width: 76px; height: 76px; place-content: center; border: 1px solid rgba(255, 255, 255, .18); border-radius: 50%; background: radial-gradient(circle at 36% 32%, #ffcf4f, #ff643f 55%, #b62a79); font-size: 23px; box-shadow: 0 0 0 8px rgba(255, 255, 255, .04); }
.q19-card span { color: var(--blue-light); font-size: 9px; font-weight: 820; letter-spacing: .13em; text-transform: uppercase; }
.q19-card p { margin: 5px 0 0; color: rgba(255, 255, 255, .62); font-size: 11px; line-height: 1.55; }
.thermography__causes { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 25px 0 30px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.thermography__causes li { position: relative; padding: 13px 0 13px 19px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 11px; font-weight: 680; }
.thermography__causes li::before { content: ""; position: absolute; top: 19px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: #ff6c42; box-shadow: 0 0 0 5px rgba(255, 108, 66, .09); }
.thermography__actions { display: flex; align-items: center; gap: 26px; }
.thermography__actions .arrow-link { margin-top: 0; }

@keyframes thermalPulse { 50% { box-shadow: 0 0 0 10px rgba(255, 116, 74, 0), 0 0 28px rgba(255, 116, 74, .9); } }
@keyframes heatPoint { 50% { scale: 1.18; filter: brightness(1.25); } }
@keyframes thermalScan { 0%, 12% { top: -12%; opacity: 0; } 25% { opacity: 1; } 70%, 100% { top: 112%; opacity: 0; } }

.accreditation { overflow: hidden; background: var(--ink); color: var(--white); }
.accreditation__layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 100px; align-items: start; }
.accreditation h2 { color: var(--white); }
.accreditation__intro > p:not(.section-kicker, .scope-note, .cofrac-link) { margin: 28px 0 37px; color: rgba(255, 255, 255, .59); }
.accreditation__intro > .cofrac-link { margin: -24px 0 37px; color: rgba(255, 255, 255, .48); font-size: 11px; }
.cofrac-link a { color: var(--green); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.certificate-card { position: relative; padding: 28px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .04); }
.certificate-card::before { content: ""; position: absolute; top: -1px; left: -1px; width: 22px; height: 22px; border-top: 2px solid var(--green); border-left: 2px solid var(--green); }
.certificate-card__logo { position: absolute; top: 22px; right: 25px; width: 66px; height: auto; padding: 5px; border-radius: 7px; background: var(--white); box-shadow: 0 10px 26px rgba(0, 0, 0, .16); }
.certificate-card > span { display: block; color: var(--blue-light); font-size: 8px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.certificate-card strong { display: block; max-width: calc(100% - 82px); margin: 17px 0 10px; color: var(--white); font-size: 27px; }
.certificate-card p { margin: 0 0 21px; color: rgba(255, 255, 255, .48); font-size: 11px; }
.certificate-card a { display: flex; align-items: center; justify-content: space-between; padding-top: 17px; border-top: 1px solid rgba(255, 255, 255, .14); color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.scope-note { margin: 16px 0 0; color: rgba(255, 255, 255, .33); font-size: 8px; line-height: 1.5; }
.scope-list { border: 1px solid rgba(255, 255, 255, .17); }
.scope-list__head { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding-inline: 25px; border-bottom: 1px solid rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .44); font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.scope-list__head span:last-child { color: var(--green); }
.scope-list__item { display: block; color: inherit; }
.scope-list article { display: grid; grid-template-columns: 72px 1fr; gap: 22px; padding: 26px 28px; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.scope-list__item article { position: relative; padding-right: 66px; cursor: pointer; }
.scope-list__item article::after { content: "↗"; position: absolute; top: 50%; right: 28px; color: var(--green); font-size: 17px; font-style: normal; opacity: .46; transform: translateY(-50%); transition: opacity .25s ease,transform .3s var(--ease); }
.scope-list__item:focus-visible { outline: 2px solid var(--green); outline-offset: -2px; }
.scope-list article > span { padding-top: 4px; color: var(--blue-light); font-size: 9px; font-weight: 800; }
.scope-list h3 { margin: 0 0 5px; font-size: 16px; }
.scope-list article p { margin: 0; color: rgba(255, 255, 255, .5); font-size: 12px; }
.scope-list__outside { padding: 24px 28px; background: var(--green); color: var(--ink-deep); }
.scope-list__outside strong { display: block; font-size: 12px; text-transform: uppercase; }
.scope-list__outside p { margin: 4px 0 0; font-size: 11px; }

.tracking { background: var(--paper-dark); }
.tracking__heading { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 60px; margin-bottom: 62px; }
.iperya-mark { display: grid; min-width: 210px; grid-template-columns: 1fr; padding: 18px 22px; border-left: 3px solid var(--blue); background: var(--white); box-shadow: 0 14px 40px rgba(5, 23, 34, .07); transition: transform .3s var(--ease), box-shadow .3s ease, border-color .3s ease; }
.iperya-mark:hover { border-left-color: var(--green); box-shadow: 0 22px 55px rgba(5,23,34,.14); transform: translateY(-4px); }
.iperya-mark span, .iperya-mark small { color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.iperya-mark small { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.iperya-mark small i { color: var(--blue); font-size: 12px; font-style: normal; transition: transform .2s ease; }
.iperya-mark:hover small i { transform: translate(3px,-3px); }
.iperya-mark strong { color: var(--ink); font-size: 22px; letter-spacing: .12em; }
.tracking__content { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; }
.process-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid #c8d0d1; }
.process-list li { display: grid; grid-template-columns: 58px 1fr; gap: 22px; padding: 24px 8px; border-bottom: 1px solid #c8d0d1; }
.process-list li > span { color: var(--blue); font-size: 9px; font-weight: 800; }
.process-list h3 { margin: 0 0 4px; color: var(--ink); font-size: 17px; }
.process-list p { margin: 0; color: var(--muted); font-size: 12px; }
.tracking__aside { min-height: 100%; padding: 50px 45px; background: var(--blue); color: var(--white); }
.tracking__aside > p { margin: 0 0 16px; color: rgba(255, 255, 255, .66); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.tracking__aside h3 { margin: 0 0 55px; font-family: Georgia, "Times New Roman", serif; font-size: 29px; font-style: italic; font-weight: 400; line-height: 1.35; }
.tracking__aside ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .25); }
.tracking__aside li { padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .25); font-size: 11px; font-weight: 730; text-transform: uppercase; }
.tracking__aside li::before { content: "+"; margin-right: 12px; color: var(--green); }

.training { overflow: hidden; background: var(--ink-soft); color: var(--white); }
.training__layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 100px; }
.training h2 { color: var(--white); }
.training__content > p:not(.section-kicker) { max-width: 600px; margin: 29px 0; color: rgba(255, 255, 255, .62); }
.training__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 35px; }
.training__tags span { padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .65); font-size: 9px; text-transform: uppercase; }
.training__graphic { position: relative; width: min(100%, 520px); aspect-ratio: 1; max-width: 520px; margin-left: auto; }
.orbit { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; transform: translate(-50%, -50%); }
.orbit--one { width: 95%; height: 95%; }
.orbit--two { width: 68%; height: 68%; }
.orbit--three { width: 40%; height: 40%; border-color: rgba(182, 214, 60, .55); }
.training__core { position: absolute; top: 50%; left: 50%; display: flex; width: 145px; height: 145px; align-items: center; justify-content: center; gap: 9px; border-radius: 50%; background: var(--green); color: var(--ink-deep); transform: translate(-50%, -50%); box-shadow: 0 0 0 18px rgba(182, 214, 60, .06); }
.training__core span { font-size: 23px; font-weight: 800; }
.training__core i { color: rgba(5, 23, 34, .45); font-style: normal; }
.training__label { position: absolute; padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .2); background: var(--ink-soft); color: rgba(255, 255, 255, .66); font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.training__label--one { top: 15%; left: 7%; }
.training__label--two { top: 45%; right: 0; }
.training__label--three { bottom: 12%; left: 16%; }

.territory { background: var(--paper); }
.territory__layout { display: grid; grid-template-columns: .86fr 1.14fr; gap: 100px; align-items: center; }
.territory__intro > p:not(.section-kicker) { margin: 27px 0 38px; color: var(--muted); }
.territory address { padding: 23px 0 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; font-style: normal; }
.territory address span { display: block; margin-bottom: 8px; color: var(--blue); font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.territory address strong { display: block; color: var(--ink); font-size: 14px; }
.department-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.department-grid > * { min-height: 180px; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); color: inherit; text-decoration: none; transition: background .25s ease, color .25s ease; }
.department-grid > *:hover { background: var(--ink); color: var(--white); }
.department-grid strong { color: var(--blue); font-size: 38px; font-weight: 400; letter-spacing: -.04em; }
.department-grid > *:hover strong { color: var(--green); }
.department-grid span { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.faq { background: var(--white); }
.faq__layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(55px, 8vw, 120px); align-items: start; }
.faq__intro { position: sticky; top: 145px; }
.faq__intro > p:last-child { max-width: 450px; margin-top: 26px; color: var(--muted); }
.faq__list { border-top: 1px solid var(--line); }
.faq__list details { border-bottom: 1px solid var(--line); }
.faq__list summary { position: relative; padding: 26px 52px 26px 0; color: var(--ink); font-size: 16px; font-weight: 760; cursor: pointer; list-style: none; }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::after { content: "+"; position: absolute; top: 18px; right: 0; display: grid; width: 34px; height: 34px; place-content: center; border-radius: 50%; background: rgba(22, 119, 232, .08); color: var(--blue); font-size: 20px; transition: transform .25s ease, background .25s ease; }
.faq__list details[open] summary::after { background: var(--green); color: var(--ink-deep); transform: rotate(45deg); }
.faq__list details p { max-width: 680px; margin: -5px 48px 26px 0; color: var(--muted); }

.contact-section { padding-block: 120px; background: var(--ink-deep); color: var(--white); }
.contact-section__layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 95px; align-items: start; }
.contact-section h2 { color: var(--white); }
.contact-section__intro > p:not(.section-kicker) { max-width: 520px; margin: 28px 0 45px; color: rgba(255, 255, 255, .57); }
.direct-contact { display: grid; grid-template-columns: 1fr; gap: 18px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .15); }
.direct-contact div { display: flex; flex-direction: column; align-items: flex-start; }
.direct-contact span { color: rgba(255, 255, 255, .37); font-size: 8px; font-weight: 750; letter-spacing: .15em; text-transform: uppercase; }
.direct-contact a { color: var(--green); font-size: 21px; font-weight: 760; }
.contact-form { padding: 43px; background: var(--white); color: var(--text); box-shadow: 0 30px 85px rgba(0, 0, 0, .2); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.contact-form > label, .form-grid label { display: block; margin-bottom: 20px; color: var(--ink); font-size: 9px; font-weight: 820; letter-spacing: .07em; text-transform: uppercase; }
.contact-form label > span, .form-actions p span, .consent b { color: var(--danger); }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-top: 7px; padding: 12px 0; border: 0; border-bottom: 1px solid #bcc8cc; border-radius: 0; outline: 0; background: transparent; color: var(--text); font-size: 14px; text-transform: none; transition: border-color .2s ease, box-shadow .2s ease; }
.contact-form textarea { min-height: 118px; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--blue); box-shadow: 0 1px 0 var(--blue); }
.contact-form .field-error { border-color: var(--danger); box-shadow: 0 1px 0 var(--danger); }
.consent { display: grid !important; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; margin-top: 5px; color: var(--muted) !important; font-size: 10px !important; font-weight: 500 !important; letter-spacing: 0 !important; line-height: 1.55; text-transform: none !important; cursor: pointer; }
.consent input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--blue); }
.form-actions { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 26px; }
.form-actions p { margin: 0; color: var(--muted); font-size: 8px; }
.form-status { min-height: 21px; margin: 16px 0 -8px; color: var(--blue); font-size: 11px; font-weight: 700; text-align: right; }
.form-status.is-success { color: #25714d; }
.form-status.is-error { color: var(--danger); }
.contact-form button[disabled] { cursor: wait; opacity: .58; transform: none; }
.form-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

.site-footer { padding-top: 65px; background: #03131d; color: var(--white); }
.footer__top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 42px; padding-bottom: 40px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.brand--footer { grid-template-columns: 104px; color: var(--white); }
.brand--footer img { width: 104px; height: 55px; filter: brightness(0) invert(1); }
.footer__top > p { margin: 0; color: rgba(255, 255, 255, .42); font-family: Georgia, "Times New Roman", serif; font-size: 16px; font-style: italic; }
.footer__top > a:last-child { color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.footer__links { display: grid; grid-template-columns: 1.18fr 1fr 1fr .9fr; gap: clamp(36px, 5vw, 70px); padding-block: 48px; }
.footer__links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer__links strong { margin-bottom: 8px; color: rgba(255, 255, 255, .3); font-size: 8px; letter-spacing: .17em; text-transform: uppercase; }
.footer__links a, .footer__links span { color: rgba(255, 255, 255, .66); font-size: 12px; }
.footer__links a:hover { color: var(--green); }
.footer__links a { transition: color .2s ease, transform .2s var(--ease); }
.footer__links a:hover { transform: translateX(3px); }
.footer__links .footer__address { margin-top: 7px; color: rgba(255, 255, 255, .4); line-height: 1.65; }
.footer__bottom { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 28px; border-top: 1px solid rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .3); font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.footer__bottom p { margin: 0; }
.footer__bottom div { display: flex; flex-wrap: wrap; gap: 24px; }

/* Pages locales Yonne et Aube */
.local-hero { position: relative; overflow: hidden; padding-block: clamp(82px, 10vw, 140px); background: radial-gradient(circle at 80% 30%, rgba(22, 119, 232, .38), transparent 28%), linear-gradient(135deg, #061522, #0b304a); color: var(--white); }
.local-hero::after { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, transparent, #000); }
.local-hero .container { position: relative; z-index: 1; }
.breadcrumb { display: flex; gap: 10px; margin-bottom: 54px; color: rgba(255,255,255,.48); font-size: 11px; }
.breadcrumb a { color: var(--blue-light); }
.local-hero h1 { max-width: 960px; font-size: clamp(49px, 7vw, 88px); }
.local-hero__lead { max-width: 760px; margin: 32px 0 0; color: rgba(255,255,255,.7); font-size: clamp(17px, 1.6vw, 21px); }
.local-hero__actions { display: flex; align-items: center; gap: 30px; margin-top: 40px; }
.local-two-columns { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(60px, 9vw, 130px); align-items: start; }
.local-two-columns h2 { font-size: clamp(45px, 5vw, 68px); }
.local-richtext { padding-top: 24px; color: var(--muted); }
.local-richtext p { margin: 0 0 24px; }
.local-richtext a { color: var(--blue); font-weight: 750; }
.local-profile { position: relative; overflow: hidden; background: var(--white); border-top: 1px solid rgba(11,33,54,.07); }
.local-profile::after { content: ""; position: absolute; right: -210px; bottom: -330px; width: 580px; height: 580px; border: 1px solid rgba(22,119,232,.08); border-radius: 50%; box-shadow: 0 0 0 58px rgba(22,119,232,.018); pointer-events: none; }
.local-profile .container { position: relative; z-index: 1; }
.local-profile__copy { padding-top: 24px; color: var(--muted); }
.local-profile__copy p { max-width: 720px; margin: 0 0 22px; }
.local-profile__audiences { display: flex; flex-wrap: wrap; gap: 10px; margin: 32px 0 0; padding: 0; list-style: none; }
.local-profile__audiences li { padding: 9px 14px; border: 1px solid rgba(22,119,232,.18); border-radius: 999px; background: rgba(22,119,232,.045); color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.local-services { background: linear-gradient(180deg, #eaf0f3, #f6f8fa); }
.local-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 56px; }
.local-service-grid article { min-height: 320px; display: flex; flex-direction: column; padding: 30px; border-radius: 22px; background: var(--white); box-shadow: var(--shadow-soft); transition: transform .35s var(--ease), box-shadow .35s ease; }
.local-service-grid article:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.local-service-grid article > span { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.local-service-grid h3 { margin: 43px 0 14px; color: var(--ink); font-size: 23px; line-height: 1.15; }
.local-service-grid p { margin: 0 0 28px; color: var(--muted); font-size: 14px; }
.local-service-grid a { margin-top: auto; color: var(--blue); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.local-areas { background: var(--white); }
.local-areas .local-two-columns > div:last-child > p { max-width: 650px; margin: 18px 0 34px; color: var(--muted); }
.local-tags { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; list-style: none; }
.local-tags li { padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-size: 11px; font-weight: 750; }
.local-followup { background: #eaf0f3; }
.local-followup__card { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(55px,8vw,110px); padding: clamp(46px,6vw,78px); overflow: hidden; border-radius: 28px; background: radial-gradient(circle at 92% 10%,rgba(22,119,232,.22),transparent 28%),linear-gradient(135deg,var(--ink-deep),#103853); color: var(--white); box-shadow: var(--shadow); }
.local-followup__card h2 { max-width: 570px; color: var(--white); font-size: clamp(42px,5vw,64px); }
.local-followup__card > div:last-child { align-self: center; }
.local-followup__card > div:last-child p { max-width: 650px; margin: 0 0 20px; color: rgba(255,255,255,.66); }
.local-followup__card .arrow-link { margin-top: 15px; color: var(--green); }
.local-cta { padding-block: 100px; background: linear-gradient(135deg, #116dcf, #0c94ce); color: var(--white); text-align: center; }
.local-cta p { margin: 0 0 16px; color: var(--blue-light); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.local-cta h2 { margin-bottom: 38px; font-size: clamp(46px, 6vw, 76px); }
.local-page .main-nav [aria-current="page"] { color: var(--blue); }

/* Présentation du dirigeant */
.leader-page .main-nav [aria-current="page"] { color: var(--blue); }
.leader-hero { position: relative; overflow: hidden; padding-block: clamp(80px, 9vw, 132px); background: radial-gradient(circle at 78% 26%, rgba(22,119,232,.35), transparent 26%), linear-gradient(135deg, #061522, #0b304a); color: var(--white); }
.leader-hero::before { content: ""; position: absolute; top: -190px; right: -80px; width: 680px; height: 680px; border: 1px solid rgba(101,214,246,.12); border-radius: 50%; box-shadow: 0 0 0 80px rgba(101,214,246,.025), 0 0 0 160px rgba(101,214,246,.018); }
.leader-hero__layout { position: relative; display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(55px, 8vw, 110px); align-items: center; }
.leader-hero__content h1 { max-width: 860px; font-size: clamp(52px, 6.4vw, 84px); }
.leader-hero__lead { max-width: 720px; margin: 32px 0 0; color: rgba(255,255,255,.68); font-size: clamp(17px, 1.5vw, 20px); }
.leader-hero__lead strong { color: var(--white); }
.leader-linkedin { display: inline-flex; align-items: center; gap: 11px; margin-top: 26px; color: rgba(255,255,255,.82); font-size: 11px; font-weight: 760; }
.leader-linkedin span { display: grid; width: 28px; height: 28px; place-content: center; border-radius: 7px; background: #0a66c2; color: #fff; font-size: 13px; font-weight: 850; }
.leader-linkedin i { color: var(--green); font-size: 14px; font-style: normal; transition: transform .2s ease; }
.leader-linkedin:hover i { transform: translate(3px,-3px); }
.leader-card { position: relative; overflow: hidden; min-height: 530px; padding: 35px; border: 1px solid rgba(255,255,255,.17); border-radius: 26px; background: linear-gradient(145deg, rgba(20,76,111,.66), rgba(5,23,34,.72)); box-shadow: 0 35px 90px rgba(0,0,0,.26); backdrop-filter: blur(16px); }
.leader-card::after { content: ""; position: absolute; right: -75px; bottom: -90px; width: 260px; height: 260px; border-radius: 50%; background: rgba(196,238,104,.13); filter: blur(2px); }
.leader-card__monogram { position: relative; display: grid; width: 180px; height: 180px; place-content: center; margin-left: auto; border: 1px solid rgba(101,214,246,.24); border-radius: 50%; }
.leader-card__monogram::before, .leader-card__monogram::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.leader-card__monogram::before { inset: 18px; }
.leader-card__monogram::after { inset: 36px; border-color: rgba(196,238,104,.18); }
.leader-card__monogram span { position: relative; z-index: 1; color: var(--green); font-size: 46px; font-weight: 760; letter-spacing: -.05em; }
.leader-card__monogram i { position: absolute; top: 17px; right: 28px; width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 18px var(--green); }
.leader-card__portrait { position: relative; width: 210px; height: 210px; margin-left: auto; padding: 8px; border: 1px solid rgba(101,214,246,.3); border-radius: 50%; box-shadow: 0 0 0 16px rgba(101,214,246,.035), 0 24px 60px rgba(0,0,0,.25); }
.leader-card__portrait::after { content: ""; position: absolute; top: 17px; right: 20px; width: 10px; height: 10px; border-radius: 50%; background: var(--green); box-shadow: 0 0 18px var(--green); }
.leader-card__portrait img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: center 35%; }
.leader-card__identity { margin-top: 35px; }
.leader-card__identity p { margin: 0 0 7px; color: var(--blue-light); font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.leader-card__identity h2 { color: var(--white); font-size: 35px; font-weight: 680; line-height: 1; }
.leader-card dl { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 38px 0 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.13); }
.leader-card dl div { display: flex; flex-direction: column; gap: 4px; }
.leader-card dt { color: rgba(255,255,255,.34); font-size: 7px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.leader-card dd { margin: 0; color: rgba(255,255,255,.82); font-size: 10px; font-weight: 700; }
.leader-manifesto { padding-block: 72px; background: linear-gradient(100deg, #b8e95a, #dff9a4); color: var(--ink-deep); }
.leader-manifesto__layout { display: grid; grid-template-columns: auto 1fr auto; gap: 30px; align-items: center; }
.leader-manifesto__layout > span { color: var(--blue); font-family: Georgia,serif; font-size: 100px; line-height: .5; }
.leader-manifesto blockquote { max-width: 900px; margin: 0; font-family: Georgia,"Times New Roman",serif; font-size: clamp(25px, 3vw, 40px); font-style: italic; line-height: 1.25; }
.leader-manifesto p { margin: 0; font-size: 8px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; writing-mode: vertical-rl; }
.leader-story { background: var(--white); }
.leader-story__layout { display: grid; grid-template-columns: 230px 1fr; gap: clamp(70px, 9vw, 130px); align-items: start; }
.leader-story__nav { position: sticky; top: 150px; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.leader-story__nav p { margin: 0; padding: 18px 0; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.leader-story__nav a { padding: 13px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; font-weight: 700; transition: color .2s ease, padding-left .25s var(--ease); }
.leader-story__nav a:hover { padding-left: 7px; color: var(--blue); }
.leader-chapter { max-width: 820px; padding-bottom: 100px; scroll-margin-top: 150px; }
.leader-chapter + .leader-chapter { padding-top: 100px; border-top: 1px solid var(--line); }
.leader-chapter h2 { margin-bottom: 38px; font-size: clamp(43px, 5vw, 66px); }
.leader-chapter > p:not(.section-kicker) { max-width: 740px; margin: 0 0 23px; color: var(--muted); font-size: 16px; }
.leader-text-link { display: inline-flex; margin-top: 14px; color: var(--blue); font-size: 11px; font-weight: 830; letter-spacing: .04em; text-transform: uppercase; }
.leader-expertise-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 15px 0 38px; }
.leader-expertise-grid section { min-height: 270px; padding: 27px; border-radius: 20px; background: var(--paper); }
.leader-expertise-grid span { color: var(--blue); font-size: 9px; font-weight: 850; }
.leader-expertise-grid h3 { margin: 38px 0 12px; color: var(--ink); font-size: 20px; line-height: 1.15; }
.leader-expertise-grid p { margin: 0; color: var(--muted); font-size: 13px; }
.leader-principles { display: grid; gap: 14px; }
.leader-principles section { padding: 28px 30px; border-left: 3px solid var(--green); border-radius: 0 18px 18px 0; background: var(--paper); }
.leader-principles h3 { margin: 0 0 10px; color: var(--ink); font-size: 20px; }
.leader-principles p { margin: 0; color: var(--muted); font-size: 14px; }
.leader-timeline { background: linear-gradient(180deg, #eaf0f3, #f6f8fa); }
.leader-timeline__list { display: grid; grid-template-columns: repeat(3, 1fr); margin: 62px 0 0; padding: 0; list-style: none; border-top: 1px solid #bdccd3; }
.leader-timeline__list li { position: relative; min-height: 220px; padding: 34px 32px 25px 0; }
.leader-timeline__list li + li { padding-left: 32px; border-left: 1px solid #bdccd3; }
.leader-timeline__list li::before { content: ""; position: absolute; top: -6px; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 6px rgba(22,119,232,.1); }
.leader-timeline__list li + li::before { left: 32px; }
.leader-timeline__list strong { display: block; margin-bottom: 28px; color: var(--ink); font-size: 32px; }
.leader-timeline__list span { color: var(--muted); font-size: 14px; }
.leader-cta { background: radial-gradient(circle at 15% 20%, rgba(196,238,104,.13), transparent 25%), linear-gradient(135deg, #061522, #0b304a); }
.leader-teaser { position: relative; overflow: hidden; background: var(--white); }
.leader-teaser::after { content: ""; position: absolute; top: -180px; left: -180px; width: 420px; height: 420px; border-radius: 50%; background: rgba(101,214,246,.1); filter: blur(45px); }
.leader-teaser__layout { position: relative; z-index: 1; display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(60px, 9vw, 130px); align-items: center; }
.leader-teaser__visual { position: relative; width: min(100%, 430px); aspect-ratio: 4 / 5; overflow: hidden; border-radius: 30px; background: var(--ink); box-shadow: 0 35px 90px rgba(6,21,34,.24); }
.leader-teaser__visual::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(6,21,34,.18) 62%, rgba(6,21,34,.94) 100%); pointer-events: none; }
.leader-teaser__visual::after { content: ""; position: absolute; z-index: 3; top: 26px; left: 0; width: 7px; height: 78px; border-radius: 0 5px 5px 0; background: linear-gradient(var(--blue-light), var(--blue)); }
.leader-teaser__visual span { position: relative; z-index: 1; color: var(--green); font-size: clamp(64px, 8vw, 105px); font-weight: 760; letter-spacing: -.08em; }
.leader-teaser__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transform: scale(1.025); }
.leader-teaser__visual i { position: absolute; z-index: 4; top: 25px; right: 25px; padding: 9px 13px; border-radius: 999px; background: var(--green); color: var(--ink-deep); box-shadow: 0 12px 28px rgba(6,21,34,.18); font-size: 9px; font-style: normal; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.leader-teaser__caption { position: absolute; z-index: 4; right: 30px; bottom: 28px; left: 30px; display: flex; flex-direction: column; }
.leader-teaser__caption strong { color: var(--white); font-size: 24px; line-height: 1.1; }
.leader-teaser__caption span { margin-top: 7px; color: var(--blue-light); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.leader-teaser__content h2 { font-size: clamp(46px, 5vw, 68px); }
.leader-teaser__content > p:not(.section-kicker) { max-width: 650px; margin: 28px 0 18px; color: var(--muted); }
.leader-teaser__content blockquote { max-width: 620px; margin: 0 0 34px; padding-left: 20px; border-left: 3px solid var(--green); color: var(--ink); font-family: Georgia,"Times New Roman",serif; font-size: 18px; font-style: italic; }

/* Espace client */
.client-page .main-nav [aria-current="page"] { color: var(--blue); }
.client-hero { position: relative; overflow: hidden; padding-block: clamp(80px, 9vw, 130px); background: radial-gradient(circle at 77% 27%, rgba(22,119,232,.38), transparent 25%), linear-gradient(135deg, #061522, #0b304a); color: var(--white); }
.client-hero::before { content: ""; position: absolute; inset: 0; opacity: .1; background-image: linear-gradient(rgba(255,255,255,.6) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.6) 1px, transparent 1px); background-size: 62px 62px; mask-image: linear-gradient(90deg, transparent 20%, #000); }
.client-hero__layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1.03fr .97fr; gap: clamp(55px, 7vw, 95px); align-items: center; }
.client-hero h1 { max-width: 760px; font-size: clamp(52px, 6vw, 79px); }
.client-hero__lead { max-width: 670px; margin: 30px 0 0; color: rgba(255,255,255,.68); font-size: clamp(16px, 1.45vw, 19px); }
.client-access { margin-top: 38px; }
.client-access__status { display: flex; align-items: center; gap: 10px; margin-bottom: 17px; color: var(--blue-light); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.client-access__status i { width: 8px; height: 8px; border-radius: 50%; background: #f1bd55; box-shadow: 0 0 0 6px rgba(241,189,85,.1); }
.client-access__button[disabled] { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.09); color: rgba(255,255,255,.48); box-shadow: none; cursor: not-allowed; transform: none; }
.client-access__button[disabled]::before { display: none; }
.client-access > p { max-width: 490px; margin: 12px 0 0; color: rgba(255,255,255,.38); font-size: 9px; }
.client-console { overflow: hidden; border: 1px solid rgba(255,255,255,.19); border-radius: 25px; background: linear-gradient(145deg, rgba(13,53,79,.84), rgba(5,23,34,.78)); box-shadow: 0 40px 100px rgba(0,0,0,.3); backdrop-filter: blur(16px); }
.client-console__head, .client-console__foot { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-inline: 24px; border-bottom: 1px solid rgba(255,255,255,.11); color: rgba(255,255,255,.39); font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.client-console__head > div { display: flex; align-items: center; gap: 10px; }
.client-console__head i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 6px rgba(196,238,104,.1); }
.client-console__head > span { color: var(--green); }
.client-console__profile { display: grid; grid-template-columns: 52px 1fr auto; gap: 16px; align-items: center; padding: 28px 25px; border-bottom: 1px solid rgba(255,255,255,.11); }
.client-console__profile > div { display: grid; width: 52px; height: 52px; place-content: center; border-radius: 15px; background: linear-gradient(135deg, var(--blue), #16a9d4); font-size: 17px; font-weight: 820; }
.client-console__profile p { margin: 0; }
.client-console__profile small { display: block; color: rgba(255,255,255,.35); font-size: 8px; }
.client-console__profile strong { display: block; font-size: 13px; }
.client-console__profile > span { color: rgba(255,255,255,.28); letter-spacing: .18em; }
.client-console__stats { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid rgba(255,255,255,.11); }
.client-console__stats div { padding: 22px 20px; }
.client-console__stats div + div { border-left: 1px solid rgba(255,255,255,.11); }
.client-console__stats strong { display: block; color: var(--green); font-size: 23px; }
.client-console__stats span { color: rgba(255,255,255,.38); font-size: 7px; font-weight: 750; text-transform: uppercase; }
.client-console__list { padding: 25px; }
.client-console__list > p { margin: 0 0 12px; color: var(--blue-light); font-size: 8px; font-weight: 820; letter-spacing: .14em; text-transform: uppercase; }
.client-console__list > div { display: grid; grid-template-columns: 40px 1fr auto; gap: 13px; align-items: center; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.1); }
.client-console__list i { display: grid; width: 36px; height: 36px; place-content: center; border-radius: 10px; background: rgba(22,119,232,.17); color: var(--blue-light); font-size: 7px; font-style: normal; font-weight: 850; }
.client-console__list strong { display: block; font-size: 10px; }
.client-console__list small { display: block; color: rgba(255,255,255,.35); font-size: 8px; }
.client-console__list b { color: var(--green); font-size: 14px; }
.client-console__foot { border-top: 1px solid rgba(255,255,255,.11); border-bottom: 0; }
.client-console__foot strong { color: rgba(255,255,255,.6); font-size: 8px; }
.client-benefits { background: linear-gradient(180deg, #eef3f5, #f6f8fa); }
.client-benefits__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 58px; }
.client-benefits__grid article { position: relative; min-height: 330px; padding: 30px; border-radius: 22px; background: var(--white); box-shadow: var(--shadow-soft); }
.client-benefits__grid article > span { color: var(--blue); font-size: 9px; font-weight: 850; }
.client-benefits__grid img { width: 46px; height: 46px; margin: 45px 0 25px; opacity: .75; }
.client-benefits__grid h3 { margin: 0 0 13px; color: var(--ink); font-size: 22px; }
.client-benefits__grid p { margin: 0; color: var(--muted); font-size: 14px; }
.client-help { background: var(--white); }
.client-help__layout { display: grid; grid-template-columns: .83fr 1.17fr; gap: clamp(60px, 9vw, 130px); align-items: start; }
.client-help h2 { font-size: clamp(45px, 5vw, 67px); }
.client-help__layout > div:last-child > p { max-width: 630px; margin: 20px 0 35px; color: var(--muted); }
.client-help__contacts { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.client-help__contacts a { display: flex; flex-direction: column; gap: 5px; padding: 23px 0; }
.client-help__contacts a + a { padding-left: 25px; border-left: 1px solid var(--line); }
.client-help__contacts span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.client-help__contacts strong { color: var(--blue); font-size: 17px; }

/* Répertoire et pages de services */
.services-hub-page .main-nav [aria-current="page"], .service-detail-page .main-nav [aria-current="page"] { color: var(--blue); }
.services-hub-hero { position: relative; overflow: hidden; padding-block: clamp(85px, 10vw, 145px); background: radial-gradient(circle at 80% 25%, rgba(22,119,232,.38), transparent 28%), linear-gradient(135deg, #061522, #0b304a); color: var(--white); }
.services-hub-hero::after { content: ""; position: absolute; inset: 0; opacity: .1; background-image: linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.6) 1px,transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg,transparent,#000); }
.services-hub-hero .container { position: relative; z-index: 1; }
.services-hub-hero h1 { max-width: 980px; font-size: clamp(52px, 6.8vw, 88px); }
.services-hub-hero .container > p:last-child { max-width: 760px; margin: 32px 0 0; color: rgba(255,255,255,.69); font-size: 19px; }
.services-directory { background: linear-gradient(180deg,#eef3f5,#f6f8fa); }
.services-directory__grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; margin-top: 60px; }
.services-directory__grid > a { position: relative; min-height: 320px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto auto; gap: 0 25px; padding: 32px; overflow: hidden; border-radius: 23px; background: var(--white); box-shadow: var(--shadow-soft); transition: transform .38s var(--ease), box-shadow .38s ease; }
.services-directory__grid > a::before { content: ""; position: absolute; right: -65px; bottom: -75px; width: 190px; height: 190px; border-radius: 50%; background: rgba(22,119,232,.06); transition: scale .38s var(--ease); }
.services-directory__grid > a:hover { transform: translateY(-8px); box-shadow: var(--shadow); }
.services-directory__grid > a:hover::before { scale: 1.35; }
.services-directory__grid > a > span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.services-directory__grid img { grid-column: 2; grid-row: 1 / 3; width: 48px; height: 48px; opacity: .72; }
.services-directory__grid h2 { grid-column: 1; align-self: end; margin: 55px 0 14px; color: var(--ink); font-size: 29px; letter-spacing: -.035em; line-height: 1.05; }
.services-directory__grid p { grid-column: 1 / 3; max-width: 520px; margin: 0 0 25px; color: var(--muted); font-size: 14px; }
.services-directory__grid strong { position: relative; z-index: 1; grid-column: 1 / 3; color: var(--blue); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.service-detail-hero { position: relative; overflow: hidden; padding-block: clamp(76px, 8vw, 120px); background: radial-gradient(circle at 80% 26%, rgba(22,119,232,.35), transparent 27%), linear-gradient(135deg,#061522,#0b304a); color: var(--white); }
.service-detail-hero::before { content: ""; position: absolute; right: -220px; bottom: -300px; width: 700px; height: 700px; border: 1px solid rgba(101,214,246,.12); border-radius: 50%; box-shadow: 0 0 0 90px rgba(101,214,246,.025),0 0 0 180px rgba(101,214,246,.018); }
.service-detail-hero--electric { background: radial-gradient(circle at 80% 24%,rgba(22,119,232,.45),transparent 25%),linear-gradient(135deg,#061522,#082b4c); }
.service-detail-hero--lifting { background: radial-gradient(circle at 82% 24%,rgba(196,238,104,.14),transparent 27%),linear-gradient(135deg,#061522,#12384c); }
.service-detail-hero--thermal { background: radial-gradient(circle at 82% 25%,rgba(255,89,44,.24),transparent 24%),radial-gradient(circle at 72% 45%,rgba(22,119,232,.28),transparent 25%),linear-gradient(135deg,#061522,#20233d); }
.service-detail-hero--q18 { background: radial-gradient(circle at 81% 23%,rgba(196,238,104,.18),transparent 26%),linear-gradient(135deg,#061522,#183446); }
.service-detail-hero--public { background: radial-gradient(circle at 80% 23%,rgba(101,214,246,.3),transparent 27%),linear-gradient(135deg,#061522,#104159); }
.service-detail-hero--training { background: radial-gradient(circle at 80% 23%,rgba(196,238,104,.19),transparent 27%),linear-gradient(135deg,#061522,#17384e); }
.service-detail-hero--other { background: radial-gradient(circle at 80% 23%,rgba(22,119,232,.3),transparent 27%),linear-gradient(135deg,#061522,#243747); }
.service-detail-hero__layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(55px,7vw,95px); align-items: center; }
.service-detail-hero h1 { max-width: 840px; font-size: clamp(49px,6vw,78px); }
.service-detail-hero__lead { max-width: 690px; margin: 30px 0 38px; color: rgba(255,255,255,.68); font-size: 18px; }
.service-quick-card { padding: 33px; border: 1px solid rgba(255,255,255,.17); border-radius: 24px; background: rgba(255,255,255,.055); box-shadow: 0 30px 80px rgba(0,0,0,.2); backdrop-filter: blur(15px); }
.service-quick-card > span { color: var(--blue-light); font-size: 8px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.service-quick-card h2 { margin: 30px 0; color: var(--white); font-size: 28px; letter-spacing: -.035em; line-height: 1.13; }
.service-quick-card ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.12); }
.service-quick-card li { padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.68); font-size: 12px; }
.service-quick-card li::before { content: "✓"; margin-right: 10px; color: var(--green); }
.service-quick-card p { margin: 22px 0 0; color: var(--green); font-size: 10px; font-weight: 750; }
.service-quick-card a { display: inline-block; margin-top: 22px; color: var(--green); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.service-detail-content { background: var(--white); }
.service-detail-content__layout { display: grid; grid-template-columns: 220px 1fr; gap: clamp(65px,9vw,125px); align-items: start; }
.service-detail-content__layout > aside { position: sticky; top: 150px; display: flex; flex-direction: column; padding-top: 17px; border-top: 1px solid var(--line); }
.service-detail-content__layout > aside p { margin: 0 0 15px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-detail-content__layout > aside strong { margin-bottom: 28px; color: var(--blue); font-size: 13px; }
.service-detail-content__layout > aside a { color: var(--ink); font-size: 10px; font-weight: 800; }
.service-detail-content__layout > div > h2 { margin-bottom: 36px; font-size: clamp(44px,5vw,66px); }
.service-detail-content__layout > div > p:not(.section-kicker) { max-width: 760px; color: var(--muted); font-size: 16px; }
.service-mission-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 48px 0 34px; }
.service-mission-grid article { min-height: 250px; padding: 27px; border-radius: 20px; background: var(--paper); }
.service-mission-grid article > span { color: var(--blue); font-size: 9px; font-weight: 850; }
.service-mission-grid h3 { margin: 38px 0 12px; color: var(--ink); font-size: 21px; line-height: 1.14; }
.service-mission-grid p { margin: 0; color: var(--muted); font-size: 13px; }
.service-mission-grid--compact { grid-template-columns: repeat(3,1fr); }
.service-mission-grid--compact article { min-height: 220px; }
.service-mission-grid--compact h3 { margin-top: 10px; }
.service-regulation { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(180px,.7fr) 1.6fr; gap: clamp(28px,5vw,58px); margin: 42px 0 14px; padding: clamp(28px,4vw,44px); overflow: hidden; border-radius: 24px; background: linear-gradient(135deg,var(--ink-deep),var(--ink-soft)); color: var(--white); box-shadow: 0 24px 55px rgba(6,21,34,.14); }
.service-regulation::after { content: ""; position: absolute; z-index: -1; top: -90px; right: -75px; width: 240px; height: 240px; border: 1px solid rgba(101,214,246,.2); border-radius: 50%; box-shadow: 0 0 0 42px rgba(101,214,246,.04),0 0 0 84px rgba(196,238,104,.025); }
.service-regulation__heading { padding-right: 25px; border-right: 1px solid rgba(255,255,255,.16); }
.service-regulation__heading span { color: var(--green); font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.service-regulation__heading h3 { margin: 22px 0 0; color: var(--white); font-size: clamp(25px,3vw,35px); line-height: 1.08; }
.service-regulation__body p { margin: 0; color: rgba(255,255,255,.7); font-size: 14px; }
.service-regulation__body p + p { margin-top: 14px; }
.service-regulation__body strong { color: var(--white); }
.service-regulation__body a { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; color: var(--blue-light); font-size: 10px; font-weight: 820; letter-spacing: .04em; text-transform: uppercase; }
.service-regulation__body a span { color: var(--green); transition: transform .2s ease; }
.service-regulation__body a:hover span { transform: translate(3px,-3px); }
.service-callout { margin-top: 20px; padding: 27px 30px; border-left: 4px solid var(--green); border-radius: 0 18px 18px 0; background: #edf4f7; }
.service-callout strong { color: var(--ink); font-size: 16px; }
.service-callout p { margin: 8px 0 0; color: var(--muted); font-size: 14px; }
.dre-panel { margin: 42px 0 14px; padding: clamp(28px,4vw,43px); border: 1px solid #cbdde7; border-radius: 24px; background: linear-gradient(145deg,#eff7fb,#f7fbfd 58%,#edf4f7); box-shadow: 0 24px 60px rgba(6,21,34,.08); }
.dre-panel__header { display: grid; grid-template-columns: .9fr 1.25fr; gap: clamp(28px,5vw,55px); padding-bottom: 30px; border-bottom: 1px solid #cbdde7; }
.dre-panel__header > div:first-child { padding-right: 28px; border-right: 1px solid #cbdde7; }
.dre-panel__header span:first-child { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.dre-panel__header h3 { margin: 21px 0 0; color: var(--ink); font-size: clamp(26px,3.3vw,39px); line-height: 1.08; }
.dre-panel__header p { margin: 0; color: var(--muted); font-size: 14px; }
.dre-panel__source { margin-top: 18px !important; color: var(--blue) !important; font-size: 10px !important; font-weight: 820; letter-spacing: .03em; text-transform: uppercase; }
.dre-panel__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 24px; }
.dre-panel__grid article { min-height: 152px; padding: 21px; border: 1px solid rgba(11,33,54,.08); border-radius: 17px; background: rgba(255,255,255,.82); box-shadow: 0 12px 30px rgba(6,21,34,.045); }
.dre-panel__grid strong { display: block; margin-bottom: 17px; color: var(--blue); font-size: 18px; letter-spacing: -.02em; }
.dre-panel__grid span { color: var(--muted); font-size: 12px; line-height: 1.48; }
.dre-panel__note { margin: 24px 0 0; padding: 18px 20px; border-left: 3px solid var(--green); background: rgba(255,255,255,.68); color: var(--muted); font-size: 12px; }
.dre-panel__note strong { color: var(--ink); }
.service-related { padding-block: 75px; background: var(--paper-dark); }
.service-related .container > p { margin: 0 0 20px; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.service-related .container > div { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #bdccd3; }
.service-related a { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 20px 25px 0; color: var(--ink); font-size: 13px; font-weight: 750; }
.service-related a + a { padding-left: 20px; border-left: 1px solid #bdccd3; }
.service-related a span { color: var(--blue); transition: transform .2s ease; }
.service-related a:hover span { transform: translateX(5px); }
.service-footer { padding-top: 58px; }

.legal-hero { position: relative; overflow: hidden; padding-block: clamp(78px,10vw,135px); background: radial-gradient(circle at 82% 26%,rgba(22,119,232,.28),transparent 26%),linear-gradient(135deg,var(--ink-deep),#123a58); color: var(--white); }
.legal-hero::after { content: ""; position: absolute; right: -160px; bottom: -220px; width: 620px; height: 620px; border: 1px solid rgba(101,214,246,.14); border-radius: 50%; box-shadow: 0 0 0 70px rgba(101,214,246,.025),0 0 0 140px rgba(196,238,104,.018); }
.legal-hero--privacy { background: radial-gradient(circle at 84% 23%,rgba(196,238,104,.15),transparent 27%),linear-gradient(135deg,var(--ink-deep),#15394e); }
.legal-hero__layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1.25fr .55fr; align-items: end; gap: clamp(50px,8vw,110px); }
.legal-hero .breadcrumb { margin-bottom: 50px; }
.legal-hero h1 { max-width: 820px; margin: 0; color: var(--white); font-size: clamp(58px,8vw,106px); line-height: .88; letter-spacing: -.065em; }
.legal-hero h1 em { color: var(--green); font-family: Georgia,"Times New Roman",serif; font-weight: 400; }
.legal-hero__layout > div > p:last-child { max-width: 700px; margin: 34px 0 0; color: rgba(255,255,255,.67); font-size: 17px; }
.legal-hero__layout > aside { display: flex; flex-direction: column; padding: 30px; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; background: rgba(255,255,255,.055); box-shadow: 0 28px 70px rgba(0,0,0,.18); backdrop-filter: blur(14px); }
.legal-hero__layout > aside span { color: var(--blue-light); font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.legal-hero__layout > aside strong { margin: 25px 0 18px; color: var(--white); font-size: 20px; line-height: 1.2; }
.legal-hero__layout > aside small { color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.7; }
.legal-content { background: var(--white); }
.legal-content__layout { display: grid; grid-template-columns: 220px 1fr; align-items: start; gap: clamp(62px,9vw,125px); }
.legal-toc { position: sticky; top: 150px; display: flex; flex-direction: column; padding-top: 17px; border-top: 1px solid var(--line); }
.legal-toc p { margin: 0 0 18px; color: var(--muted); font-size: 9px; font-weight: 820; letter-spacing: .13em; text-transform: uppercase; }
.legal-toc a { padding: 9px 0; color: var(--ink); font-size: 11px; font-weight: 720; transition: color .2s ease,transform .2s ease; }
.legal-toc a:hover { color: var(--blue); transform: translateX(4px); }
.legal-stack { display: grid; gap: 18px; }
.legal-stack > section { scroll-margin-top: 145px; padding: clamp(30px,4vw,48px); border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(145deg,#fff,var(--paper)); box-shadow: 0 18px 48px rgba(6,21,34,.055); }
.legal-stack > section > span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.legal-stack h2 { margin: 21px 0 27px; color: var(--ink); font-size: clamp(31px,4vw,48px); line-height: 1; letter-spacing: -.045em; }
.legal-stack p { margin: 0; color: var(--muted); font-size: 14px; }
.legal-stack p + p { margin-top: 15px; }
.legal-stack p strong { color: var(--ink); }
.legal-facts { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.75); }
.legal-facts dl { margin: 0; }
.legal-facts dl > div { display: grid; grid-template-columns: minmax(170px,.65fr) 1.35fr; gap: 24px; padding: 14px 18px; }
.legal-facts dl > div + div { border-top: 1px solid var(--line); }
.legal-facts dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.legal-facts dd { margin: 0; color: var(--ink); font-size: 12px; font-weight: 720; }
.legal-contact-card { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: 24px; padding: 22px; border-left: 4px solid var(--green); border-radius: 0 17px 17px 0; background: #eaf2f6; }
.legal-contact-card strong { flex-basis: 100%; color: var(--ink); font-size: 15px; }
.legal-contact-card span,.legal-contact-card a { color: var(--muted); font-size: 12px; }
.legal-contact-card a { color: var(--blue); font-weight: 750; }
.legal-inline-link { color: var(--blue); font-weight: 750; text-decoration: underline; text-decoration-color: rgba(22,119,232,.32); text-underline-offset: 3px; }
.legal-update { margin-top: 30px !important; padding-top: 18px; border-top: 1px solid var(--line); font-size: 11px !important; font-weight: 750; }
.privacy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 25px; }
.privacy-grid article { min-height: 180px; padding: 24px; border-radius: 18px; background: #edf4f7; }
.privacy-grid strong { display: block; margin-bottom: 16px; color: var(--ink); font-size: 16px; }
.privacy-grid p { font-size: 12px; }
.privacy-purposes { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.75); }
.privacy-purposes > div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 25px; padding: 18px; }
.privacy-purposes > div + div { border-top: 1px solid var(--line); }
.privacy-purposes strong { color: var(--ink); font-size: 12px; }
.privacy-purposes span { color: var(--muted); font-size: 12px; }
.privacy-cookie-card { margin-bottom: 24px; padding: 26px; border-radius: 18px; background: linear-gradient(135deg,var(--ink),var(--ink-soft)); }
.privacy-cookie-card strong { display: block; margin-bottom: 10px; color: var(--green); font-size: 18px; }
.privacy-cookie-card p { color: rgba(255,255,255,.68); }
.form-privacy-note { margin: -6px 0 18px; color: rgba(255,255,255,.55); font-size: 10px; }
.form-privacy-note a { color: var(--blue-light); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 820px) {
  .local-hero { padding-block: 74px 88px; }
  .breadcrumb { margin-bottom: 38px; }
  .local-hero__actions { align-items: stretch; flex-direction: column; }
  .local-hero__actions .button { width: 100%; }
  .local-two-columns { grid-template-columns: 1fr; gap: 40px; }
  .local-richtext { padding-top: 0; }
  .local-profile__copy { padding-top: 0; }
  .local-followup__card { grid-template-columns: 1fr; gap: 36px; }
  .local-service-grid { grid-template-columns: 1fr 1fr; }
  .leader-hero__layout { grid-template-columns: 1fr; }
  .leader-card { min-height: 470px; }
  .leader-story__layout { grid-template-columns: 1fr; }
  .leader-story__nav { position: static; display: none; }
  .leader-timeline__list { grid-template-columns: 1fr; border-top: 0; }
  .leader-timeline__list li, .leader-timeline__list li + li { min-height: auto; padding: 30px 0 40px 32px; border-top: 1px solid #bdccd3; border-left: 0; }
  .leader-timeline__list li::before, .leader-timeline__list li + li::before { top: 25px; left: -5px; }
  .leader-teaser__layout { grid-template-columns: 1fr; }
  .leader-teaser__visual { max-width: 380px; margin-inline: auto; }
  .client-hero__layout { grid-template-columns: 1fr; }
  .client-help__layout { grid-template-columns: 1fr; gap: 42px; }
  .client-benefits__grid { grid-template-columns: 1fr; }
  .services-directory__grid { grid-template-columns: 1fr; }
  .service-detail-hero__layout { grid-template-columns: 1fr; }
  .service-detail-content__layout { grid-template-columns: 1fr; }
  .service-detail-content__layout > aside { position: static; }
  .legal-hero__layout { grid-template-columns: 1fr; }
  .legal-hero__layout > aside { max-width: 430px; }
  .legal-content__layout { grid-template-columns: 1fr; }
  .legal-toc { position: static; display: none; }
  .dre-panel__header { grid-template-columns: 1fr; }
  .dre-panel__header > div:first-child { padding: 0 0 24px; border-right: 0; border-bottom: 1px solid #cbdde7; }
  .dre-panel__grid { grid-template-columns: 1fr 1fr; }
  .service-regulation { grid-template-columns: 1fr; }
  .service-regulation__heading { padding: 0 0 22px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
  .service-mission-grid--compact { grid-template-columns: 1fr 1fr; }
  .service-related .container > div { grid-template-columns: 1fr; border-top: 0; }
  .service-related a, .service-related a + a { padding: 18px 0; border-top: 1px solid #bdccd3; border-left: 0; }
}

@media (max-width: 560px) {
  .local-service-grid { grid-template-columns: 1fr; }
  .local-service-grid article { min-height: 285px; }
  .local-followup__card { padding: 34px 24px; border-radius: 20px; }
  .local-cta { padding-block: 74px; }
  .leader-manifesto__layout { grid-template-columns: 1fr; gap: 20px; }
  .leader-manifesto__layout > span { font-size: 75px; }
  .leader-manifesto p { writing-mode: initial; }
  .leader-card { min-height: 455px; padding: 25px; }
  .leader-card__monogram { width: 145px; height: 145px; }
  .leader-card dl { grid-template-columns: 1fr; }
  .leader-expertise-grid { grid-template-columns: 1fr; }
  .leader-chapter { padding-bottom: 74px; }
  .leader-chapter + .leader-chapter { padding-top: 74px; }
  .client-console__profile { grid-template-columns: 46px 1fr; }
  .client-console__profile > span { display: none; }
  .client-console__stats strong { font-size: 19px; }
  .client-benefits__grid article { min-height: 290px; }
  .client-help__contacts { grid-template-columns: 1fr; }
  .client-help__contacts a + a { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .services-directory__grid > a { min-height: 300px; padding: 26px; }
  .service-mission-grid, .service-mission-grid--compact { grid-template-columns: 1fr; }
  .service-mission-grid article { min-height: 220px; }
  .legal-hero { padding-block: 70px 85px; }
  .legal-hero .breadcrumb { margin-bottom: 38px; }
  .legal-hero h1 { font-size: clamp(54px,18vw,75px); }
  .legal-hero__layout > div > p:last-child { font-size: 15px; }
  .legal-stack > section { padding: 25px; border-radius: 20px; }
  .legal-facts dl > div,.privacy-purposes > div { grid-template-columns: 1fr; gap: 5px; }
  .privacy-grid { grid-template-columns: 1fr; }
  .privacy-grid article { min-height: auto; }
  .dre-panel { padding: 24px; border-radius: 20px; }
  .dre-panel__grid { grid-template-columns: 1fr; }
  .dre-panel__grid article { min-height: auto; }
  .service-regulation { padding: 25px; border-radius: 20px; }
  .service-quick-card { padding: 26px; }
}

/* Nouvelle direction visuelle : technique, lumineuse et vivante */
.topline { background: linear-gradient(90deg, #061522, #0c2c43 55%, #061522); }
.site-header { background: rgba(246, 248, 250, .82); border-bottom-color: rgba(11, 33, 54, .08); backdrop-filter: blur(22px) saturate(150%); }
.site-header.is-scrolled { box-shadow: 0 14px 45px rgba(6, 21, 34, .1); }
.brand img { filter: drop-shadow(0 8px 12px rgba(22, 119, 232, .16)); }
.brand--footer img { filter: brightness(0) invert(1); }
.button { position: relative; isolation: isolate; overflow: hidden; border-radius: 14px; box-shadow: 0 12px 28px rgba(22, 119, 232, .18); }
.button::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, .25) 48%, transparent 76%); transform: translateX(-130%); transition: transform .65s var(--ease); }
.button:hover::before { transform: translateX(130%); }
.button--light { box-shadow: 0 13px 30px rgba(196, 238, 104, .16); }

.hero { isolation: isolate; min-height: calc(100svh - 118px); overflow: clip; contain: paint; background: #071827; }
.hero::before { z-index: -4; background: radial-gradient(circle at 78% 24%, rgba(22, 119, 232, .4), transparent 27%), radial-gradient(circle at 26% 86%, rgba(17, 92, 128, .28), transparent 31%), linear-gradient(132deg, #061522 6%, #0a2941 57%, #071827 100%); background-size: 110% 110%; animation: heroBreath 10s ease-in-out infinite alternate; }
.hero::after { content: ""; position: absolute; z-index: -2; inset: 0; opacity: .38; background-image: radial-gradient(circle, rgba(255, 255, 255, .2) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(circle at 75% 46%, #000, transparent 47%); }
.hero__mesh { z-index: -3; inset: 0; opacity: .075; background-size: 64px 64px; mask-image: linear-gradient(90deg, transparent 0%, #000 48%, #000 100%); animation: meshDrift 16s linear infinite; }
.hero__aurora { position: absolute; z-index: -3; top: 4%; right: 0; width: min(54vw, 760px); aspect-ratio: 1; border-radius: 50%; background: conic-gradient(from 90deg, rgba(101, 214, 246, .1), rgba(196, 238, 104, .13), transparent 35%, rgba(22, 119, 232, .17), rgba(101, 214, 246, .1)); filter: blur(30px); animation: auroraSpin 22s linear infinite; }
.hero__layout { gap: clamp(60px, 7vw, 105px); padding-block: 88px 105px; }
.eyebrow > span { border-radius: 999px; background: rgba(196, 238, 104, .08); }
h1 { max-width: 780px; text-wrap: balance; }
h1 em, h2 em { text-shadow: 0 10px 30px rgba(196, 238, 104, .1); }
.hero__lead { color: rgba(255, 255, 255, .72); }
.hero__proofs { border-top-color: rgba(255, 255, 255, .12); }
.hero__proofs strong { font-size: 16px; }

.hero__visual { --panel-rx: 0deg; --panel-ry: 0deg; position: relative; min-height: 620px; display: block; }
.hero__orbit { position: absolute; top: 50%; left: 50%; width: min(560px, 100%); aspect-ratio: 1; border: 1px solid rgba(101, 214, 246, .18); border-radius: 50%; transform: translate(-48%, -50%); animation: heroOrbitSpin 26s linear infinite; }
.hero__orbit::before, .hero__orbit::after { content: ""; position: absolute; border: 1px solid rgba(255, 255, 255, .08); border-radius: inherit; }
.hero__orbit::before { inset: 11%; }
.hero__orbit::after { inset: 26%; border-color: rgba(196, 238, 104, .18); }
.hero__orbit i { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 20px var(--green); }
.hero__orbit i:nth-child(1) { top: 14%; left: 18%; }
.hero__orbit i:nth-child(2) { right: 4%; bottom: 38%; background: var(--blue-light); box-shadow: 0 0 20px var(--blue-light); }
.hero__orbit i:nth-child(3) { bottom: 7%; left: 33%; width: 5px; height: 5px; }
.control-panel { width: min(100%, 500px); margin-top: 66px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .2); border-radius: 24px; background: linear-gradient(145deg, rgba(13, 45, 67, .82), rgba(5, 23, 34, .72)); box-shadow: 0 40px 110px rgba(0, 0, 0, .32), inset 0 1px rgba(255, 255, 255, .08); backdrop-filter: blur(18px) saturate(140%); transform: perspective(1100px) rotateX(var(--panel-rx)) rotateY(var(--panel-ry)); translate: 0 var(--panel-float, 0); transition: transform .22s ease-out; animation: panelFloat 6s ease-in-out infinite; }
.control-panel::before { border-radius: 24px 0 0; }
.control-panel::after { border-radius: 0 0 24px; }
.control-panel__body { position: relative; overflow: hidden; }
.control-panel__body::after { content: ""; position: absolute; top: -25%; right: 0; left: 0; height: 34%; background: linear-gradient(180deg, transparent, rgba(101, 214, 246, .09), rgba(196, 238, 104, .16), transparent); transform: skewY(-3deg); animation: dataScan 5.8s ease-in-out infinite; pointer-events: none; }
.mini-timeline .active { border-radius: 12px; background: linear-gradient(90deg, rgba(196, 238, 104, .1), rgba(101, 214, 246, .04)); }
.hero__chip { position: absolute; z-index: 4; display: flex; align-items: center; gap: 9px; padding: 11px 14px; border: 1px solid rgba(255, 255, 255, .16); border-radius: 999px; background: rgba(7, 24, 39, .72); color: rgba(255, 255, 255, .82); box-shadow: 0 18px 42px rgba(0, 0, 0, .2); backdrop-filter: blur(14px); font-size: 9px; font-weight: 760; letter-spacing: .05em; text-transform: uppercase; animation: chipFloat 5s ease-in-out infinite; }
.hero__chip i { display: grid; width: 18px; height: 18px; place-content: center; border-radius: 50%; background: rgba(196, 238, 104, .14); color: var(--green); font-size: 9px; font-style: normal; }
.hero__chip--one { top: 10px; left: 24px; }
.hero__chip--one i { width: 7px; height: 7px; background: var(--green); box-shadow: 0 0 0 6px rgba(196, 238, 104, .1); }
.hero__chip--two { display: none; }
.hero__stamp { right: 8%; bottom: 0; border-radius: 15px; box-shadow: 0 20px 55px rgba(196, 238, 104, .2); transform: rotate(-2deg); animation: stampFloat 5.6s ease-in-out infinite; }
.hero__stamp strong { font-size: 10px; letter-spacing: .06em; }

.commitment { position: relative; overflow: hidden; background: linear-gradient(100deg, #b8e95a, #d8f78f 48%, #b9e765); }
.commitment::before { content: ""; position: absolute; inset: 0; opacity: .32; background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, .7) 40%, transparent 60%); transform: translateX(-100%); animation: ribbonShine 8s ease-in-out infinite; }
.commitment p { position: relative; justify-content: center; gap: 11px; }
.commitment p::before { display: none; }
.commitment p img { width: 23px; height: 23px; opacity: .78; transition: transform .35s var(--ease), opacity .35s ease; }
.commitment p:hover img { opacity: 1; transform: translateY(-2px) scale(1.08); }

.services { position: relative; background: linear-gradient(180deg, #f6f8fa, #eef3f5 50%, #f6f8fa); }
.services::before { content: ""; position: absolute; top: 4%; right: -12%; width: 420px; height: 420px; border-radius: 50%; background: rgba(101, 214, 246, .1); filter: blur(80px); }
.section-heading h2 { text-wrap: balance; }
.priority-card, .service-card, .public-card, .other-services { position: relative; overflow: hidden; border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.priority-card { border: 0; background: rgba(255, 255, 255, .88); }
.priority-card__intro { background: radial-gradient(circle at 30% 25%, rgba(101, 214, 246, .5), transparent 35%), linear-gradient(145deg, #1686ed, #0b4b9b); }
.priority-card__intro::before { border-color: rgba(255, 255, 255, .19); animation: ringsPulse 6s ease-in-out infinite; }
.priority-card__icon { border-width: 2px; box-shadow: 0 0 0 14px rgba(255, 255, 255, .04), 0 25px 60px rgba(2, 35, 78, .25); }
.priority-card__icon img { transition: transform .5s var(--ease); }
.priority-card:hover .priority-card__icon img { transform: scale(1.08) rotate(-4deg); }
.card-meta { justify-content: flex-end; }
.scope-badge { border-radius: 999px; background: rgba(196, 238, 104, .07); }
.priority-card__intro .scope-badge--outside { background: rgba(255, 255, 255, .1); }
.service-grid { gap: 24px; margin-top: 24px; }
.service-card { border: 0; border-radius: var(--radius); box-shadow: var(--shadow-soft); transition: transform .45s var(--ease), box-shadow .45s ease; }
.service-card::before, .public-card::before { content: ""; position: absolute; inset: 0; opacity: 0; background: radial-gradient(circle 260px at var(--card-x, 50%) var(--card-y, 50%), rgba(22, 119, 232, .12), transparent 72%); transition: opacity .35s ease; pointer-events: none; }
.service-card--dark::before { background: radial-gradient(circle 280px at var(--card-x, 50%) var(--card-y, 50%), rgba(101, 214, 246, .18), transparent 72%); }
.service-card:hover::before, .public-card:hover::before { opacity: 1; }
.service-card:hover { transform: translateY(-10px) scale(1.006); box-shadow: 0 35px 90px rgba(6, 21, 34, .18); }
.service-card--dark { background: radial-gradient(circle at 80% 10%, rgba(22, 119, 232, .24), transparent 32%), linear-gradient(145deg, #0c2d46, #061522); }
.service-card__symbol { transition: transform .45s var(--ease); }
.service-card:hover .service-card__symbol { transform: translateY(-7px) rotate(-4deg) scale(1.08); }
.service-card__details li, .check-list li { border-radius: 999px; }
.public-equipment { gap: 24px; margin-top: 24px; border: 0; }
.public-card { grid-template-columns: 1fr auto; border: 0; background: rgba(255, 255, 255, .78); box-shadow: var(--shadow-soft); transition: transform .4s var(--ease), box-shadow .4s ease; }
.public-card:hover { transform: translateY(-7px); box-shadow: 0 30px 75px rgba(6, 21, 34, .13); }
.public-card > a { position: relative; z-index: 1; border-radius: 50%; }
.other-services { margin-top: 24px; background: linear-gradient(135deg, #e4ecef, #f8fafb); }
.other-services li { position: relative; padding-left: 20px; }
.other-services li::before { content: ""; position: absolute; top: 50%; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); transform: translateY(-50%); box-shadow: 0 0 0 5px rgba(22, 119, 232, .08); }

.accreditation { position: relative; background: radial-gradient(circle at 85% 18%, rgba(22, 119, 232, .24), transparent 25%), linear-gradient(140deg, #061522, #0b2d45 62%, #071827); }
.accreditation::before { content: ""; position: absolute; right: -15%; bottom: -35%; width: 600px; height: 600px; border: 1px solid rgba(101, 214, 246, .12); border-radius: 50%; box-shadow: 0 0 0 90px rgba(101, 214, 246, .025), 0 0 0 180px rgba(101, 214, 246, .02); }
.certificate-card, .scope-list { overflow: hidden; border-radius: 22px; background: rgba(255, 255, 255, .045); backdrop-filter: blur(12px); }
.scope-list article { transition: background .25s ease, padding-left .35s var(--ease); }
.scope-list article:hover { padding-left: 36px; background: rgba(255, 255, 255, .04); }
.scope-list__item:hover article::after,.scope-list__item:focus-visible article::after { opacity: 1; transform: translate(4px,-50%); }
.scope-list__outside { background: linear-gradient(100deg, var(--green), #ddf99d); }

.tracking { background: linear-gradient(180deg, #eaf0f3, #f5f8fa); }
.iperya-mark, .tracking__aside, .contact-form { border-radius: 22px; }
.process-list li { transition: transform .3s var(--ease), background .3s ease; }
.process-list li:hover { padding-left: 18px; border-radius: 13px; background: rgba(255, 255, 255, .75); transform: translateX(6px); }
.tracking__aside { background: radial-gradient(circle at 80% 10%, rgba(101, 214, 246, .28), transparent 28%), linear-gradient(145deg, #1684ed, #0c5cb4); box-shadow: 0 30px 80px rgba(22, 119, 232, .22); }
.training { position: relative; background: radial-gradient(circle at 78% 45%, rgba(22, 119, 232, .22), transparent 27%), linear-gradient(140deg, #0d304a, #071a2a); }
.orbit--one { animation: orbitSpin 20s linear infinite; }
.orbit--two { animation: orbitSpinReverse 15s linear infinite; }
.orbit--three { animation: orbitPulse 4s ease-in-out infinite; }
.training__core { box-shadow: 0 0 0 18px rgba(196, 238, 104, .06), 0 0 80px rgba(196, 238, 104, .2); animation: corePulse 4s ease-in-out infinite; }
.training__label { border-radius: 999px; backdrop-filter: blur(10px); }
.department-grid { gap: 12px; border: 0; }
.department-grid > * { border: 0; border-radius: 18px; box-shadow: 0 14px 35px rgba(6, 21, 34, .07); transition: transform .4s var(--ease), background .3s ease, color .3s ease, box-shadow .4s ease; }
.department-grid > *:hover { transform: translateY(-7px) rotate(-1deg); box-shadow: 0 28px 60px rgba(6, 21, 34, .16); }
.contact-section { position: relative; background: radial-gradient(circle at 15% 25%, rgba(22, 119, 232, .22), transparent 24%), linear-gradient(135deg, #061522, #0b2a40); }
.contact-form { box-shadow: 0 35px 100px rgba(0, 0, 0, .26); }
.contact-form input, .contact-form select, .contact-form textarea { transition: border-color .2s ease, box-shadow .2s ease, padding-left .25s var(--ease); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { padding-left: 8px; }

@keyframes heroBreath { to { background-position: 8% 10%; filter: saturate(1.12); } }
@keyframes meshDrift { to { background-position: 64px 64px; } }
@keyframes auroraSpin { to { transform: rotate(360deg); } }
@keyframes heroOrbitSpin { to { transform: translate(-48%, -50%) rotate(360deg); } }
@keyframes orbitSpin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes orbitSpinReverse { to { transform: translate(-50%, -50%) rotate(-360deg); } }
@keyframes panelFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }
@keyframes dataScan { 0%, 14% { top: -35%; opacity: 0; } 30% { opacity: 1; } 64%, 100% { top: 112%; opacity: 0; } }
@keyframes chipFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }
@keyframes stampFloat { 0%, 100% { translate: 0 0; rotate: -2deg; } 50% { translate: 0 -7px; rotate: 0deg; } }
@keyframes ribbonShine { 0%, 55% { transform: translateX(-100%); } 85%, 100% { transform: translateX(100%); } }
@keyframes ringsPulse { 0%, 100% { scale: .94; opacity: .7; } 50% { scale: 1.05; opacity: 1; } }
@keyframes orbitPulse { 0%, 100% { opacity: .5; scale: .94; } 50% { opacity: 1; scale: 1.04; } }
@keyframes corePulse { 0%, 100% { scale: 1; } 50% { scale: 1.04; } }

.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; filter: blur(7px); transform: translateY(34px) scale(.985); transition: opacity .85s var(--ease), transform .85s var(--ease), filter .7s ease; transition-delay: var(--reveal-delay, 0s); }
.js .reveal--delay { transition-delay: .12s; }
.js .reveal.is-visible { opacity: 1; filter: none; transform: none; }

@keyframes pulse { 50% { box-shadow: 0 0 0 9px rgba(182, 214, 60, 0); } }

@media (max-width: 1100px) {
  :root { --container: 960px; }
  .main-nav { gap: 15px; }
  .main-nav > a:not(.button):nth-child(3), .main-nav > a:not(.button):nth-child(4), .main-nav > a:not(.button):nth-child(5) { display: none; }
  .hero__layout { gap: 50px; }
  .hero__stamp { right: 0; }
  .section-heading, .accreditation__layout, .training__layout, .territory__layout, .contact-section__layout { gap: 60px; }
  .thermography__layout { gap: 55px; }
  .priority-card { grid-template-columns: .34fr .66fr; }
  .priority-card__content { padding: 50px 48px; }
}

@media (max-width: 820px) {
  :root { --header-height: 72px; }
  .container { width: min(calc(100% - 34px), var(--container)); }
  .topline__inner { justify-content: center; }
  .topline p, .topline__inner > div a:first-child { display: none; }
  .brand { grid-template-columns: 88px; }
  .brand img { width: 88px; height: 47px; }
  .brand small { display: none; }
  .menu-toggle { display: block; }
  .menu-toggle[aria-expanded="true"] i:nth-of-type(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i:nth-of-type(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] i:nth-of-type(3) { transform: translateY(-7px) rotate(-45deg); }
  .main-nav { position: absolute; top: 100%; right: 0; left: 0; height: calc(100svh - var(--header-height) - 36px); display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 24px 17px 36px; overflow-y: auto; background: var(--paper); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-10px); transition: opacity .22s ease, transform .22s var(--ease), visibility 0s linear .22s; }
  .main-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition-delay: 0s; }
  .main-nav > a, .main-nav > a:not(.button):nth-child(3), .main-nav > a:not(.button):nth-child(4), .main-nav > a:not(.button):nth-child(5) { display: flex; min-height: 56px; align-items: center; border-bottom: 1px solid var(--line); font-size: 17px; }
  .main-nav > a::after { display: none; }
  .main-nav .nav-resources { border-bottom: 1px solid var(--line); }
  .main-nav .nav-resources summary { min-height: 56px; justify-content: space-between; font-size: 17px; }
  .main-nav .nav-resources__menu { position: static; width: 100%; padding: 2px 0 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; transform: none; transform-origin: center; }
  .main-nav .nav-resources__menu > a, .main-nav .nav-resources__menu > span { min-height: 58px; margin-top: 5px; background: var(--white); }
  .main-nav .button { justify-content: center; margin-top: 20px; border-bottom: 0; }
  .hero { min-height: auto; }
  .hero__layout { min-height: auto; grid-template-columns: 1fr; gap: 74px; padding-block: 78px 105px; }
  .hero__visual { width: min(100%, 550px); margin-inline: auto; }
  .hero__chip--one { left: 0; }
  .hero__chip--two { right: 0; }
  .control-panel { margin-inline: auto; }
  .commitment__grid { grid-template-columns: 1fr 1fr; }
  .commitment p:nth-child(3) { border-left: 0; }
  .commitment p:nth-child(n+3) { border-top: 1px solid rgba(5, 23, 34, .18); }
  .section { padding-block: 90px; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 48px; }
  .priority-card { grid-template-columns: 1fr; }
  .priority-card__intro { min-height: 290px; }
  .service-card { min-height: 530px; }
  .public-card { grid-template-columns: 1fr auto; gap: 16px; padding: 29px; }
  .other-services { grid-template-columns: 1fr; gap: 28px; }
  .accreditation__layout, .training__layout, .territory__layout, .contact-section__layout { grid-template-columns: 1fr; }
  .thermography__layout { grid-template-columns: 1fr; }
  .thermography__content { order: -1; }
  .thermography__visual { width: min(100%, 650px); margin-inline: auto; }
  .accreditation__intro { max-width: 660px; }
  .tracking__content { grid-template-columns: 1fr; }
  .tracking__aside { min-height: 430px; }
  .training__graphic { width: min(100%, 500px); margin-inline: auto; }
  .territory__intro, .contact-section__intro { max-width: 650px; }
  .footer__top { grid-template-columns: auto 1fr; }
  .footer__top > a:last-child { grid-column: 1 / -1; }
  .footer__links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 70px; }
}

@media (max-width: 560px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .hero__layout { gap: 64px; padding-block: 63px 92px; }
  h1 { font-size: clamp(47px, 14.7vw, 62px); }
  .hero__lead { margin-top: 24px; font-size: 15px; }
  .hero__actions { align-items: stretch; flex-direction: column; gap: 20px; }
  .hero__actions .button { width: 100%; }
  .hero__proofs { grid-template-columns: 1fr; margin-top: 38px; padding-top: 0; }
  .hero__proofs li, .hero__proofs li + li { padding: 13px 0; border-left: 0; border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .control-panel__body { padding: 24px 20px; }
  .control-panel__head, .control-panel__foot { padding-inline: 17px; }
  .control-panel__reference { align-items: start; flex-direction: column; }
  .control-panel__status { align-items: start; flex-direction: column; }
  .hero__visual { min-height: 500px; }
  .hero__orbit { width: 100%; }
  .hero__chip { display: none; }
  .control-panel { margin-top: 0; }
  .hero__visual { min-height: auto; padding-bottom: 78px; }
  .hero__stamp { right: 8px; bottom: 0; }
  .commitment p { min-height: 62px; gap: 8px; font-size: 9px; }
  .commitment p + p { padding-left: 13px; }
  .section { padding-block: 74px; }
  .section-heading h2, .accreditation h2, .tracking h2, .training h2, .territory h2, .faq h2, .contact-section h2 { font-size: 42px; }
  .priority-card__intro { min-height: 245px; }
  .priority-card__icon { width: 112px; height: 112px; font-size: 57px; }
  .priority-card__content { padding: 36px 24px; }
  .service-grid, .public-equipment { grid-template-columns: 1fr; }
  .service-card { min-height: 500px; padding: 30px 26px; }
  .service-card__symbol { margin-block: 55px 34px; }
  .public-card { min-height: 240px; }
  .other-services { padding: 34px 24px; }
  .other-services ul { grid-template-columns: 1fr; }
  .thermography__layout { gap: 48px; }
  .thermography__meta { align-items: flex-start; flex-direction: column; }
  .thermography__content h2 { font-size: 42px; }
  .thermal-screen { border-radius: 20px; }
  .thermal-screen__head, .thermal-screen__foot { padding-inline: 17px; }
  .q19-card { grid-template-columns: 68px 1fr; gap: 18px; padding: 19px; }
  .q19-card > strong { width: 60px; height: 60px; font-size: 19px; }
  .thermography__causes { grid-template-columns: 1fr; }
  .thermography__actions { align-items: stretch; flex-direction: column; }
  .thermography__actions .button { width: 100%; }
  .thermography__actions .arrow-link { align-self: flex-start; }
  .scope-list article { grid-template-columns: 1fr; gap: 5px; padding: 23px 20px; }
  .scope-list__item article { padding-right: 52px; }
  .scope-list__item article::after { right: 20px; }
  .scope-list__head { align-items: start; flex-direction: column; justify-content: center; gap: 3px; }
  .scope-list__outside { padding: 22px 20px; }
  .tracking__heading { grid-template-columns: 1fr; align-items: start; gap: 30px; }
  .iperya-mark { width: 100%; }
  .tracking__aside { min-height: auto; padding: 38px 28px; }
  .tracking__aside h3 { margin-bottom: 40px; font-size: 25px; }
  .training__layout { gap: 60px; }
  .training__graphic { max-width: 360px; }
  .training__core { width: 115px; height: 115px; }
  .training__label--one { left: 0; }
  .training__label--two { right: -5px; }
  .department-grid { grid-template-columns: 1fr 1fr; }
  .department-grid > * { min-height: 145px; padding: 20px; }
  .faq__layout { grid-template-columns: 1fr; gap: 44px; }
  .faq__intro { position: static; }
  .contact-section { padding-block: 78px; }
  .contact-section__layout { gap: 55px; }
  .contact-form { padding: 29px 22px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .form-actions .button { width: 100%; }
  .form-status { text-align: left; }
  .footer__top { grid-template-columns: 1fr; gap: 18px; }
  .footer__top > a:last-child { grid-column: auto; }
  .footer__links { grid-template-columns: 1fr; gap: 30px; }
  .footer__bottom { align-items: flex-start; flex-direction: column; padding-block: 22px; }
}

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

/* Conditions générales de vente */
.cgv-hero { position: relative; min-height: 720px; overflow: hidden; background: radial-gradient(circle at 76% 33%, rgba(22,119,232,.28), transparent 27%), linear-gradient(125deg, #061522 0%, #0a2940 58%, #123d5a 100%); color: var(--white); }
.cgv-hero::before { content: ""; position: absolute; width: 520px; height: 690px; right: -80px; top: 80px; border: 1px solid rgba(101,214,246,.15); border-radius: 34px; transform: rotate(9deg); box-shadow: 0 0 0 38px rgba(255,255,255,.018), 0 45px 100px rgba(0,0,0,.22); }
.cgv-hero__grid { position: absolute; inset: 0; opacity: .055; background-image: linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(90deg,transparent 4%,#000 48%,#000); }
.cgv-hero__layout { position: relative; z-index: 1; min-height: 720px; display: grid; grid-template-columns: minmax(0,1.16fr) minmax(320px,.56fr); align-items: center; gap: clamp(60px,8vw,120px); padding-block: 82px; }
.cgv-hero .breadcrumb { margin-bottom: 46px; }
.cgv-hero h1 { max-width: 820px; font-size: clamp(58px,7vw,96px); line-height: .91; }
.cgv-hero__content > p:not(.eyebrow) { max-width: 690px; margin: 31px 0 0; color: rgba(255,255,255,.68); font-size: 17px; }
.cgv-hero__actions { display: flex; align-items: center; gap: 27px; margin-top: 37px; }
.cgv-download { display: inline-flex; align-items: center; gap: 13px; color: rgba(255,255,255,.86); font-size: 12px; font-weight: 760; }
.cgv-download span { color: var(--green); font-size: 18px; transition: transform .22s var(--ease); }
.cgv-download:hover span { transform: translateY(4px); }
.cgv-file-card { position: relative; overflow: hidden; padding: 28px; border: 1px solid rgba(255,255,255,.19); border-radius: 28px; background: rgba(5,21,34,.7); box-shadow: 0 36px 95px rgba(0,0,0,.3); backdrop-filter: blur(18px); transform: rotate(1.8deg); }
.cgv-file-card::after { content: ""; position: absolute; width: 220px; height: 220px; right: -125px; top: 80px; border: 1px solid rgba(196,238,104,.24); border-radius: 50%; box-shadow: 0 0 0 32px rgba(196,238,104,.035); }
.cgv-file-card__top { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.14); color: var(--blue-light); font-size: 9px; font-weight: 820; letter-spacing: .13em; text-transform: uppercase; }
.cgv-file-card__top strong { color: rgba(255,255,255,.56); }
.cgv-file-card__icon { display: grid; width: 82px; height: 82px; margin: 31px 0 27px; place-content: center; border-radius: 22px; background: linear-gradient(135deg,var(--blue),var(--blue-light)); box-shadow: 0 18px 46px rgba(22,119,232,.28); }
.cgv-file-card__icon img { width: 42px; height: 42px; filter: brightness(0) invert(1); }
.cgv-file-card > p { margin: 0 0 29px; color: var(--white); font-size: 21px; font-weight: 760; line-height: 1.18; }
.cgv-file-card dl { margin: 0; }
.cgv-file-card dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.11); }
.cgv-file-card dt,.cgv-file-card dd { margin: 0; font-size: 10px; }
.cgv-file-card dt { color: rgba(255,255,255,.4); }
.cgv-file-card dd { color: var(--white); font-weight: 760; }
.cgv-file-card__seal { display: block; margin: 26px -28px -28px; padding: 15px 28px; background: var(--green); color: var(--ink-deep); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.cgv-intro { background: var(--white); }
.cgv-intro__layout { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(60px,9vw,130px); align-items: start; }
.section-kicker { margin: 0 0 20px; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.cgv-intro h2,.cgv-reader h2 { color: var(--ink); font-size: clamp(42px,5.3vw,69px); }
.cgv-intro__copy > p { margin: 7px 0 29px; color: var(--muted); font-size: 16px; }
.cgv-integrity { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 17px; padding: 19px; border: 1px solid #cfe3d1; border-radius: 17px; background: #f3fae8; }
.cgv-integrity > span { display: grid; width: 52px; height: 52px; place-content: center; border-radius: 15px; background: var(--green); color: var(--ink-deep); font-size: 22px; font-weight: 900; }
.cgv-integrity p { display: flex; flex-direction: column; margin: 0; }
.cgv-integrity strong { color: var(--ink); font-size: 13px; }
.cgv-integrity small { color: var(--muted); font-size: 10px; }
.cgv-scope { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 72px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cgv-scope article { min-height: 230px; padding: 29px 24px 28px 0; }
.cgv-scope article + article { padding-left: 24px; border-left: 1px solid var(--line); }
.cgv-scope span { color: var(--blue); font-size: 9px; font-weight: 850; }
.cgv-scope strong { display: block; min-height: 58px; margin: 46px 0 18px; color: var(--ink); font-size: 17px; line-height: 1.2; }
.cgv-scope small { color: var(--muted); font-size: 10px; line-height: 1.6; }
.cgv-reader { background: linear-gradient(155deg,#e9f0f4,#f8fafb); }
.cgv-reader__head { display: flex; align-items: end; justify-content: space-between; gap: 55px; margin-bottom: 43px; }
.cgv-reader__head > div:first-child { max-width: 680px; }
.cgv-reader__head > div:first-child > p:last-child { max-width: 620px; margin: 22px 0 0; color: var(--muted); font-size: 13px; }
.cgv-reader__head > div:last-child { display: flex; align-items: center; gap: 25px; flex-shrink: 0; }
.cgv-download--dark { color: var(--ink); }
.cgv-download--dark span { color: var(--blue); }
.cgv-reader__frame { overflow: hidden; border: 1px solid #bdd0d9; border-radius: 25px; background: #dce6eb; box-shadow: 0 35px 90px rgba(6,21,34,.16); }
.cgv-reader__bar { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 20px; padding-inline: 23px; background: var(--ink-deep); color: rgba(255,255,255,.65); font-size: 10px; font-weight: 760; letter-spacing: .05em; }
.cgv-reader__bar span { display: flex; min-width: 0; align-items: center; gap: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cgv-reader__bar i { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(196,238,104,.1); }
.cgv-reader__bar small { flex-shrink: 0; color: var(--blue-light); font-size: 8px; text-transform: uppercase; }
.cgv-reader object { display: block; width: 100%; height: min(80vh,900px); min-height: 650px; border: 0; background: #fff; }
.cgv-reader__fallback { display: grid; min-height: 650px; place-content: center; justify-items: center; padding: 35px; text-align: center; }
.cgv-reader__fallback strong { color: var(--ink); font-size: 22px; }
.cgv-reader__fallback p { margin: 8px 0 24px; color: var(--muted); }
.cgv-reader__note { margin: 22px 0 0; color: var(--muted); font-size: 10px; text-align: right; }
.nav-resources__menu a[aria-current="page"] { background: #edf5fb; }

@media (max-width: 900px) {
  .cgv-hero__layout { grid-template-columns: 1fr; gap: 70px; padding-block: 80px 95px; }
  .cgv-file-card { width: min(100%,430px); transform: none; }
  .cgv-intro__layout { grid-template-columns: 1fr; gap: 38px; }
  .cgv-scope { grid-template-columns: 1fr 1fr; }
  .cgv-scope article:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }
  .cgv-scope article:nth-child(4) { border-top: 1px solid var(--line); }
  .cgv-reader__head { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .cgv-hero { min-height: auto; }
  .cgv-hero__layout { min-height: auto; padding-block: 64px 76px; }
  .cgv-hero .breadcrumb { margin-bottom: 37px; }
  .cgv-hero h1 { font-size: clamp(47px,13.3vw,60px); }
  .cgv-hero__content > p:not(.eyebrow) { font-size: 15px; }
  .cgv-hero__actions,.cgv-reader__head > div:last-child { align-items: stretch; flex-direction: column; }
  .cgv-hero__actions .button,.cgv-reader__head .button { width: 100%; }
  .cgv-file-card { padding: 23px; }
  .cgv-file-card__seal { margin: 24px -23px -23px; }
  .cgv-scope { grid-template-columns: 1fr; margin-top: 52px; }
  .cgv-scope article,.cgv-scope article + article { min-height: auto; padding: 25px 0; border-top: 1px solid var(--line); border-left: 0; }
  .cgv-scope strong { min-height: 0; margin: 22px 0 11px; }
  .cgv-reader__frame { border-radius: 18px; }
  .cgv-reader object { height: 70vh; min-height: 540px; }
  .cgv-reader__note { text-align: left; }
}

/* Page thermographie infrarouge APSAD D19 / Q19 */
.thermal-d19 { position: relative; overflow: hidden; background: linear-gradient(145deg,#eaf1f5,#f7fafb); }
.thermal-d19::after { content: ""; position: absolute; width: 520px; height: 520px; right: -270px; bottom: -280px; border: 1px solid rgba(22,119,232,.13); border-radius: 50%; box-shadow: 0 0 0 60px rgba(22,119,232,.025),0 0 0 120px rgba(101,214,246,.018); }
.thermal-d19__layout { position: relative; z-index: 1; display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: clamp(60px,9vw,130px); }
.thermal-d19__intro { position: sticky; top: 150px; }
.thermal-d19 h2,.thermal-process h2,.thermal-output h2,.thermal-prepare h2,.thermal-faq h2 { color: var(--ink); font-size: clamp(43px,5.2vw,68px); }
.thermal-d19__intro > p:not(.section-kicker) { margin: 30px 0 0; color: var(--muted); font-size: 15px; }
.thermal-d19__links { display: flex; align-items: flex-start; flex-direction: column; gap: 13px; margin-top: 31px; }
.thermal-d19__links a { display: inline-flex; align-items: center; gap: 12px; color: var(--blue); font-size: 11px; font-weight: 790; text-decoration: underline; text-decoration-color: rgba(22,119,232,.25); text-underline-offset: 4px; }
.thermal-d19__links span { color: var(--ink); font-size: 15px; transition: transform .2s ease; }
.thermal-d19__links a:hover span { transform: translate(3px,-3px); }
.thermal-d19__contexts { display: grid; gap: 13px; }
.thermal-d19__contexts article { position: relative; min-height: 220px; padding: 30px; overflow: hidden; border: 1px solid #cfdee5; border-radius: 22px; background: rgba(255,255,255,.83); box-shadow: 0 18px 45px rgba(6,21,34,.055); }
.thermal-d19__contexts article::after { content: ""; position: absolute; width: 120px; height: 120px; right: -62px; bottom: -65px; border: 1px solid rgba(22,119,232,.18); border-radius: 50%; }
.thermal-d19__contexts span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .13em; }
.thermal-d19__contexts h3 { margin: 42px 0 12px; color: var(--ink); font-size: 23px; line-height: 1.1; }
.thermal-d19__contexts p { max-width: 520px; margin: 0; color: var(--muted); font-size: 13px; }
.thermal-process { position: relative; overflow: hidden; background: radial-gradient(circle at 85% 15%,rgba(238,115,36,.22),transparent 24%),linear-gradient(135deg,var(--ink-deep),#132d45); color: var(--white); }
.thermal-process::before { content: ""; position: absolute; inset: 0; opacity: .045; background-image: linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px); background-size: 58px 58px; }
.thermal-process .container { position: relative; z-index: 1; }
.thermal-process__heading { display: grid; grid-template-columns: 1.1fr .55fr; align-items: end; gap: clamp(55px,9vw,130px); }
.thermal-process .section-kicker { color: var(--blue-light); }
.thermal-process h2 { color: var(--white); }
.thermal-process__heading > p { margin: 0 0 5px; color: rgba(255,255,255,.62); font-size: 15px; }
.thermal-process__steps { display: grid; grid-template-columns: repeat(4,1fr); margin: 70px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.2); }
.thermal-process__steps li { position: relative; min-height: 330px; padding: 31px 27px 28px 0; }
.thermal-process__steps li + li { padding-left: 27px; border-left: 1px solid rgba(255,255,255,.16); }
.thermal-process__steps li::before { content: ""; position: absolute; top: -5px; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 7px rgba(196,238,104,.1); }
.thermal-process__steps li:first-child::before { left: 0; }
.thermal-process__steps > li > span { color: var(--blue-light); font-size: 9px; font-weight: 850; letter-spacing: .13em; }
.thermal-process__steps h3 { margin: 70px 0 15px; color: var(--white); font-size: 20px; line-height: 1.12; }
.thermal-process__steps p { margin: 0; color: rgba(255,255,255,.58); font-size: 12px; }
.thermal-output { background: var(--white); }
.thermal-output__layout { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(60px,9vw,125px); }
.thermal-output__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 15px; }
.thermal-output__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.thermal-output__cards article { min-height: 470px; padding: 32px; border: 1px solid var(--line); border-radius: 23px; background: linear-gradient(145deg,#f7fafb,#edf3f6); }
.thermal-output__cards article > span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.thermal-output__cards h3 { margin: 84px 0 28px; color: var(--ink); font-size: 25px; line-height: 1.08; }
.thermal-output__cards ul { margin: 0; padding: 0; list-style: none; }
.thermal-output__cards li { padding: 11px 0; border-top: 1px solid #ccd9df; color: var(--muted); font-size: 11px; }
.thermal-output__q19 { position: relative; overflow: hidden; border-color: var(--ink) !important; background: linear-gradient(145deg,#0b2136,#123e5b) !important; }
.thermal-output__q19::after { content: "Q19"; position: absolute; right: -8px; bottom: -26px; color: rgba(255,255,255,.045); font-size: 112px; font-weight: 900; letter-spacing: -.08em; }
.thermal-output__q19 > span { color: var(--green) !important; }
.thermal-output__q19 h3 { color: var(--white); }
.thermal-output__q19 p { color: rgba(255,255,255,.62); font-size: 13px; }
.thermal-output__q19 a { position: absolute; z-index: 1; right: 32px; bottom: 31px; left: 32px; display: flex; justify-content: space-between; gap: 15px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.15); color: var(--white); font-size: 10px; font-weight: 760; }
.thermal-output__q19 b { color: var(--green); font-size: 15px; }
.thermal-prepare { background: #e8eff3; }
.thermal-prepare__layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px,9vw,125px); align-items: start; }
.thermal-prepare__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.thermal-prepare__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid #bccdd6; }
.thermal-prepare__list li { display: grid; grid-template-columns: 50px 1fr; gap: 23px; padding: 24px 0; border-bottom: 1px solid #bccdd6; }
.thermal-prepare__list > li > span { color: var(--blue); font-size: 9px; font-weight: 850; }
.thermal-prepare__list div { display: flex; flex-direction: column; gap: 7px; }
.thermal-prepare__list strong { color: var(--ink); font-size: 15px; }
.thermal-prepare__list small { max-width: 620px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.thermal-faq { background: var(--white); }
.thermal-faq__layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(60px,9vw,125px); align-items: start; }
.thermal-faq__items { border-top: 1px solid var(--line); }
.thermal-faq__items details { border-bottom: 1px solid var(--line); }
.thermal-faq__items summary { position: relative; padding: 23px 48px 23px 0; color: var(--ink); font-size: 14px; font-weight: 760; cursor: pointer; list-style: none; }
.thermal-faq__items summary::-webkit-details-marker { display: none; }
.thermal-faq__items summary::after { content: "+"; position: absolute; top: 21px; right: 5px; color: var(--blue); font-size: 20px; font-weight: 400; transition: transform .22s ease; }
.thermal-faq__items details[open] summary::after { transform: rotate(45deg); }
.thermal-faq__items p { max-width: 720px; margin: 0; padding: 0 45px 25px 0; color: var(--muted); font-size: 13px; }

@media (max-width: 900px) {
  .thermal-d19__layout,.thermal-process__heading,.thermal-output__layout,.thermal-prepare__layout,.thermal-faq__layout { grid-template-columns: 1fr; }
  .thermal-d19__intro { position: static; }
  .thermal-d19__contexts { grid-template-columns: repeat(3,1fr); }
  .thermal-d19__contexts article { min-height: 290px; }
  .thermal-process__steps { grid-template-columns: 1fr 1fr; }
  .thermal-process__steps li:nth-child(3) { border-top: 1px solid rgba(255,255,255,.16); border-left: 0; }
  .thermal-process__steps li:nth-child(4) { border-top: 1px solid rgba(255,255,255,.16); }
  .thermal-process__steps li:nth-child(n+3)::before { top: -5px; }
  .thermal-output__cards { max-width: 720px; }
}

@media (max-width: 620px) {
  .thermal-d19__contexts,.thermal-output__cards,.thermal-process__steps { grid-template-columns: 1fr; }
  .thermal-d19__contexts article { min-height: 225px; }
  .thermal-process__steps { border-top: 0; }
  .thermal-process__steps li,.thermal-process__steps li + li { min-height: auto; padding: 27px 0 38px 30px; border-top: 1px solid rgba(255,255,255,.16); border-left: 0; }
  .thermal-process__steps li::before,.thermal-process__steps li:first-child::before,.thermal-process__steps li:nth-child(n+3)::before { top: 22px; left: -4px; }
  .thermal-process__steps h3 { margin: 30px 0 12px; }
  .thermal-output__cards article { min-height: 420px; padding: 27px; }
  .thermal-output__cards h3 { margin-top: 60px; }
  .thermal-output__q19 a { right: 27px; bottom: 27px; left: 27px; }
  .thermal-prepare__list li { grid-template-columns: 34px 1fr; gap: 13px; }
  .thermal-d19__links a { line-height: 1.45; }
}

/* Pages de service enrichies : installations électriques et appareils de levage */
.expanded-service-page { --inspection-accent: var(--blue-light); --inspection-accent-strong: var(--blue); }
.lifting-page { --inspection-accent: var(--green); --inspection-accent-strong: #89b92e; }
.q18-page { --inspection-accent: var(--green); --inspection-accent-strong: #79a924; }
.public-safety-page { --inspection-accent: var(--blue-light); --inspection-accent-strong: #1684ed; }
.training-page { --inspection-accent: var(--green); --inspection-accent-strong: #77aa1f; }
.expanded-types { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 44px; }
.expanded-types--three { grid-template-columns: repeat(3,1fr); }
.expanded-types article { position: relative; min-height: 350px; display: flex; flex-direction: column; padding: 26px; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.expanded-types article::after { content: ""; position: absolute; width: 118px; height: 118px; right: -67px; bottom: -67px; border: 1px solid color-mix(in srgb,var(--inspection-accent-strong) 30%,transparent); border-radius: 50%; box-shadow: 0 0 0 24px color-mix(in srgb,var(--inspection-accent-strong) 5%,transparent); }
.expanded-types article > span { color: var(--inspection-accent-strong); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.expanded-types h3 { margin: 70px 0 17px; color: var(--ink); font-size: 21px; line-height: 1.08; }
.expanded-types p { margin: 0 0 24px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.expanded-types small { position: relative; right: auto; bottom: auto; left: auto; width: 100%; margin-top: auto; padding-top: 12px; border-top: 1px solid #ccd8de; color: var(--ink); font-size: 9px; font-weight: 740; }

.regulatory-facts { position: relative; overflow: hidden; background: linear-gradient(145deg,#e7eff3,#f7fafb); }
.regulatory-facts::after { content: ""; position: absolute; width: 420px; height: 420px; right: -230px; top: -235px; border: 1px solid rgba(22,119,232,.14); border-radius: 50%; box-shadow: 0 0 0 60px rgba(22,119,232,.022),0 0 0 120px rgba(22,119,232,.015); }
.regulatory-facts--lifting::after { border-color: rgba(137,185,46,.22); box-shadow: 0 0 0 60px rgba(137,185,46,.028),0 0 0 120px rgba(137,185,46,.018); }
.regulatory-facts .container { position: relative; z-index: 1; }
.regulatory-facts__heading { display: grid; grid-template-columns: 1.1fr .55fr; align-items: end; gap: clamp(55px,9vw,130px); }
.regulatory-facts h2,.lifting-triggers h2,.inspection-process h2,.inspection-methods h2,.inspection-prepare h2,.inspection-output h2,.inspection-faq h2 { color: var(--ink); font-size: clamp(43px,5.2vw,68px); }
.regulatory-facts__heading > p { margin: 0 0 6px; color: var(--muted); font-size: 14px; }
.regulatory-facts__grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 63px; border-top: 1px solid #bdced6; border-bottom: 1px solid #bdced6; }
.regulatory-facts__grid--four { grid-template-columns: repeat(4,1fr); }
.regulatory-facts__grid article { min-height: 300px; padding: 30px 27px 27px 0; }
.regulatory-facts__grid article + article { padding-left: 27px; border-left: 1px solid #bdced6; }
.regulatory-facts__grid strong { display: block; color: var(--inspection-accent-strong); font-size: clamp(38px,4vw,56px); letter-spacing: -.05em; }
.regulatory-facts__grid span { display: block; margin: 65px 0 14px; color: var(--ink); font-size: 15px; font-weight: 780; }
.regulatory-facts__grid p { margin: 0; color: var(--muted); font-size: 11px; }

.lifting-triggers { background: var(--white); }
.lifting-triggers__layout { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: clamp(60px,9vw,125px); }
.lifting-triggers__layout > div:first-child { position: sticky; top: 150px; }
.lifting-triggers__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.lifting-triggers__grid { border-top: 1px solid var(--line); }
.lifting-triggers__grid article { display: grid; grid-template-columns: 55px 1fr; align-items: center; gap: 19px; min-height: 96px; border-bottom: 1px solid var(--line); }
.lifting-triggers__grid span { color: var(--inspection-accent-strong); font-size: 9px; font-weight: 900; }
.lifting-triggers__grid strong { max-width: 620px; color: var(--ink); font-size: 15px; line-height: 1.4; }

.inspection-process { position: relative; overflow: hidden; color: var(--white); }
.inspection-process--electric { background: radial-gradient(circle at 86% 12%,rgba(101,214,246,.18),transparent 26%),linear-gradient(135deg,var(--ink-deep),#123b57); }
.inspection-process--lifting { background: radial-gradient(circle at 87% 10%,rgba(196,238,104,.17),transparent 25%),linear-gradient(135deg,#061522,#153a3d); }
.inspection-process--q18 { background: radial-gradient(circle at 86% 10%,rgba(196,238,104,.18),transparent 25%),radial-gradient(circle at 15% 88%,rgba(22,119,232,.16),transparent 27%),linear-gradient(135deg,#061522,#153a45); }
.inspection-process--public { background: radial-gradient(circle at 87% 10%,rgba(101,214,246,.2),transparent 25%),linear-gradient(135deg,#061522,#124154); }
.inspection-process--training { background: radial-gradient(circle at 87% 10%,rgba(196,238,104,.18),transparent 25%),radial-gradient(circle at 12% 90%,rgba(22,119,232,.16),transparent 27%),linear-gradient(135deg,#061522,#173a48); }
.inspection-process::before { content: ""; position: absolute; inset: 0; opacity: .043; background-image: linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px); background-size: 58px 58px; }
.inspection-process .container { position: relative; z-index: 1; }
.inspection-process__heading { display: grid; grid-template-columns: 1.1fr .55fr; align-items: end; gap: clamp(55px,9vw,130px); }
.inspection-process .section-kicker { color: var(--inspection-accent); }
.inspection-process h2 { color: var(--white); }
.inspection-process__heading > p { margin: 0 0 6px; color: rgba(255,255,255,.62); font-size: 14px; }
.inspection-process__steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 64px 0 0; padding: 0; list-style: none; }
.inspection-process__steps--seven { grid-template-columns: repeat(4,1fr); }
.inspection-process__steps li { position: relative; min-height: 290px; padding: 27px; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 19px; background: rgba(255,255,255,.035); }
.inspection-process__steps li::after { content: ""; position: absolute; width: 90px; height: 90px; right: -49px; bottom: -51px; border: 1px solid color-mix(in srgb,var(--inspection-accent) 25%,transparent); border-radius: 50%; }
.inspection-process__steps > li > span { color: var(--inspection-accent); font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.inspection-process__steps h3 { margin: 70px 0 15px; color: var(--white); font-size: 20px; line-height: 1.12; }
.inspection-process__steps p { margin: 0; color: rgba(255,255,255,.59); font-size: 11px; line-height: 1.65; }

.inspection-methods { background: var(--white); }
.inspection-methods--lifting { background: linear-gradient(145deg,#f7fafb,#eaf1f4); }
.inspection-methods__layout { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(60px,9vw,125px); }
.inspection-methods__layout > div:first-child { position: sticky; top: 150px; }
.inspection-methods__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.inspection-methods__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.inspection-methods__grid article { min-height: 285px; padding: 27px; border: 1px solid var(--line); border-radius: 19px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.inspection-methods--lifting .inspection-methods__grid article { background: rgba(255,255,255,.76); }
.inspection-methods__grid span { display: grid; width: 34px; height: 34px; place-content: center; border: 1px solid color-mix(in srgb,var(--inspection-accent-strong) 40%,#cad7dd); border-radius: 50%; color: var(--inspection-accent-strong); font-size: 9px; font-weight: 900; }
.inspection-methods__grid h3 { margin: 63px 0 16px; color: var(--ink); font-size: 22px; line-height: 1.1; }
.inspection-methods__grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }

.inspection-prepare { background: #e8eff3; }
.inspection-prepare__layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px,9vw,125px); align-items: start; }
.inspection-prepare__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.inspection-prepare__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid #bccdd6; }
.inspection-prepare__list li { display: grid; grid-template-columns: 50px 1fr; gap: 23px; padding: 24px 0; border-bottom: 1px solid #bccdd6; }
.inspection-prepare__list > li > span { color: var(--inspection-accent-strong); font-size: 9px; font-weight: 900; }
.inspection-prepare__list div { display: flex; flex-direction: column; gap: 7px; }
.inspection-prepare__list strong { color: var(--ink); font-size: 15px; }
.inspection-prepare__list small { max-width: 650px; color: var(--muted); font-size: 11px; line-height: 1.6; }

.inspection-output { background: var(--white); }
.inspection-output__layout { display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; gap: clamp(60px,9vw,125px); }
.inspection-output__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.inspection-output__card { position: relative; min-height: 500px; padding: 34px; overflow: hidden; border: 1px solid var(--ink); border-radius: 24px; background: radial-gradient(circle at 90% 12%,rgba(101,214,246,.18),transparent 27%),linear-gradient(145deg,#0b2136,#123e5b); }
.inspection-output--lifting .inspection-output__card { background: radial-gradient(circle at 90% 12%,rgba(196,238,104,.15),transparent 27%),linear-gradient(145deg,#0a1c2b,#173f42); }
.inspection-output__card::after { content: ""; position: absolute; width: 250px; height: 250px; right: -145px; bottom: -150px; border: 1px solid color-mix(in srgb,var(--inspection-accent) 24%,transparent); border-radius: 50%; box-shadow: 0 0 0 45px color-mix(in srgb,var(--inspection-accent) 4%,transparent); }
.inspection-output__card > span { color: var(--inspection-accent); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.inspection-output__card h3 { margin: 74px 0 28px; color: var(--white); font-size: 29px; }
.inspection-output__card ul { margin: 0; padding: 0; list-style: none; }
.inspection-output__card li { padding: 11px 0; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.65); font-size: 11px; }
.inspection-output__card a { position: absolute; z-index: 1; right: 34px; bottom: 31px; left: 34px; display: flex; justify-content: space-between; gap: 16px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.15); color: var(--white); font-size: 10px; font-weight: 780; }
.inspection-output__card b { color: var(--inspection-accent); font-size: 15px; }

.inspection-faq { background: linear-gradient(145deg,#f6f9fa,#eaf0f3); }
.inspection-faq__layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(60px,9vw,125px); align-items: start; }
.inspection-faq__items { border-top: 1px solid #bdcdd5; }
.inspection-faq__items details { border-bottom: 1px solid #bdcdd5; }
.inspection-faq__items summary { position: relative; padding: 23px 48px 23px 0; color: var(--ink); font-size: 14px; font-weight: 760; cursor: pointer; list-style: none; }
.inspection-faq__items summary::-webkit-details-marker { display: none; }
.inspection-faq__items summary::after { content: "+"; position: absolute; top: 20px; right: 5px; color: var(--inspection-accent-strong); font-size: 20px; font-weight: 400; transition: transform .22s ease; }
.inspection-faq__items details[open] summary::after { transform: rotate(45deg); }
.inspection-faq__items p { max-width: 720px; margin: 0; padding: 0 45px 25px 0; color: var(--muted); font-size: 13px; }

@media (max-width: 1020px) {
  .expanded-types { grid-template-columns: 1fr 1fr; }
  .expanded-types--three { grid-template-columns: repeat(3,1fr); }
  .regulatory-facts__grid--four { grid-template-columns: 1fr 1fr; }
  .regulatory-facts__grid--four article:nth-child(3) { border-top: 1px solid #bdced6; border-left: 0; }
  .regulatory-facts__grid--four article:nth-child(4) { border-top: 1px solid #bdced6; }
  .inspection-process__steps--seven { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 900px) {
  .regulatory-facts__heading,.lifting-triggers__layout,.inspection-process__heading,.inspection-methods__layout,.inspection-prepare__layout,.inspection-output__layout,.inspection-faq__layout { grid-template-columns: 1fr; }
  .lifting-triggers__layout > div:first-child,.inspection-methods__layout > div:first-child { position: static; }
  .inspection-process__steps,.inspection-process__steps--seven { grid-template-columns: 1fr 1fr; }
  .inspection-methods__grid { max-width: 760px; }
  .inspection-output__card { max-width: 720px; }
}

@media (max-width: 620px) {
  .expanded-types,.expanded-types--three,.regulatory-facts__grid,.regulatory-facts__grid--four,.inspection-process__steps,.inspection-process__steps--seven,.inspection-methods__grid { grid-template-columns: 1fr; }
  .expanded-types article { min-height: 300px; }
  .regulatory-facts__grid article,.regulatory-facts__grid article + article { min-height: auto; padding: 28px 0; border-top: 1px solid #bdced6; border-left: 0; }
  .regulatory-facts__grid span { margin-top: 36px; }
  .lifting-triggers__grid article { grid-template-columns: 38px 1fr; min-height: 105px; }
  .inspection-process__steps li { min-height: 265px; }
  .inspection-methods__grid article { min-height: 270px; }
  .inspection-prepare__list li { grid-template-columns: 34px 1fr; gap: 13px; }
  .inspection-output__card { min-height: 535px; padding: 27px; }
  .inspection-output__card a { right: 27px; bottom: 27px; left: 27px; }
}

/* Mission de vérification périodique Q18 — APSAD D18 2026 */
.q18-purpose { position: relative; overflow: hidden; background: linear-gradient(145deg,#e7eff3,#f8fafb); }
.q18-purpose::after { content: "Q18"; position: absolute; right: -20px; bottom: -78px; color: rgba(11,33,54,.025); font-size: clamp(180px,27vw,380px); font-weight: 900; letter-spacing: -.09em; line-height: .8; }
.q18-purpose__layout { position: relative; z-index: 1; display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(60px,9vw,125px); }
.q18-purpose__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.q18-purpose__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.q18-purpose__grid article { position: relative; min-height: 410px; padding: 28px; overflow: hidden; border: 1px solid var(--line); border-radius: 21px; background: rgba(255,255,255,.82); box-shadow: 0 18px 45px rgba(6,21,34,.055); }
.q18-purpose__grid article:nth-child(2) { background: linear-gradient(145deg,#0b2136,#153d54); }
.q18-purpose__grid article::after { content: ""; position: absolute; width: 130px; height: 130px; right: -74px; bottom: -74px; border: 1px solid rgba(22,119,232,.18); border-radius: 50%; box-shadow: 0 0 0 28px rgba(22,119,232,.025); }
.q18-purpose__grid span { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.q18-purpose__grid h3 { margin: 118px 0 20px; color: var(--ink); font-size: 25px; }
.q18-purpose__grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.q18-purpose__grid article:nth-child(2) span { color: var(--green); }
.q18-purpose__grid article:nth-child(2) h3 { color: var(--white); }
.q18-purpose__grid article:nth-child(2) p { color: rgba(255,255,255,.62); }

.q18-reading { background: var(--white); }
.inspection-output--q18 { background: linear-gradient(145deg,#f7fafb,#e8eff3); }
.inspection-output--q18 .inspection-output__card { background: radial-gradient(circle at 88% 12%,rgba(196,238,104,.17),transparent 27%),linear-gradient(145deg,#071a29,#17414b); }
.q18-output-card::before { content: "Q18"; position: absolute; right: -5px; bottom: 13px; color: rgba(255,255,255,.035); font-size: 118px; font-weight: 900; letter-spacing: -.08em; }

.q18-comparison { background: var(--white); }
.q18-comparison__heading { display: grid; grid-template-columns: 1.1fr .55fr; align-items: end; gap: clamp(55px,9vw,130px); }
.q18-comparison h2 { color: var(--ink); font-size: clamp(43px,5.2vw,68px); }
.q18-comparison__heading > p { margin: 0 0 6px; color: var(--muted); font-size: 14px; }
.q18-comparison__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 62px; }
.q18-comparison__grid article { position: relative; min-height: 430px; padding: 34px; overflow: hidden; border: 1px solid var(--line); border-radius: 23px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.q18-comparison__grid article:nth-child(2) { background: radial-gradient(circle at 87% 12%,rgba(255,103,54,.18),transparent 25%),linear-gradient(145deg,#0b2136,#1f2d48); }
.q18-comparison__grid article::after { content: ""; position: absolute; width: 190px; height: 190px; right: -100px; bottom: -110px; border: 1px solid rgba(22,119,232,.16); border-radius: 50%; }
.q18-comparison__grid > article > span { color: var(--blue); font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.q18-comparison__grid h3 { margin: 85px 0 24px; color: var(--ink); font-size: 28px; }
.q18-comparison__grid p { max-width: 560px; margin: 0; color: var(--muted); font-size: 13px; }
.q18-comparison__grid a { position: absolute; z-index: 1; right: 34px; bottom: 32px; left: 34px; padding-top: 15px; border-top: 1px solid #cad7dd; color: var(--blue); font-size: 10px; font-weight: 790; }
.q18-comparison__grid article:nth-child(2) > span { color: #ff9b75; }
.q18-comparison__grid article:nth-child(2) h3 { color: var(--white); }
.q18-comparison__grid article:nth-child(2) p { color: rgba(255,255,255,.62); }
.q18-comparison__grid article:nth-child(2) a { border-color: rgba(255,255,255,.16); color: var(--white); }

/* Mouvement commun à l’ensemble du site */
.service-detail-hero,.legal-hero,.cgv-hero,.leader-hero,.client-hero,.services-hub-hero { background-size: 112% 112%; animation: pageHeroBreath 12s ease-in-out infinite alternate; }
.service-detail-hero::before { animation: detailHaloDrift 11s ease-in-out infinite; }
.service-quick-card { transition: transform .45s var(--ease),border-color .35s ease,box-shadow .45s ease; }
.expanded-types article,.regulatory-facts__grid article,.inspection-process__steps li,.inspection-methods__grid article,.q18-purpose__grid article,.q18-comparison__grid article,.legal-stack > section,.services-directory__grid > a { transition: transform .38s var(--ease),box-shadow .38s ease,border-color .3s ease; }

@media (hover:hover) and (pointer:fine) {
  .service-quick-card:hover { transform: translateY(-8px) rotate(.35deg); border-color: rgba(196,238,104,.36); box-shadow: 0 42px 100px rgba(0,0,0,.27); }
  .expanded-types article:hover,.inspection-process__steps li:hover,.inspection-methods__grid article:hover,.q18-purpose__grid article:hover,.q18-comparison__grid article:hover,.legal-stack > section:hover { transform: translateY(-7px); box-shadow: 0 28px 65px rgba(6,21,34,.12); }
  .inspection-process__steps li:hover { border-color: color-mix(in srgb,var(--inspection-accent) 48%,transparent); box-shadow: 0 25px 60px rgba(0,0,0,.2); }
  .regulatory-facts__grid article:hover { transform: translateY(-5px); }
}

@keyframes pageHeroBreath { to { background-position: 7% 9%; } }
@keyframes detailHaloDrift { 0%,100% { transform: translate(0,0) scale(1); opacity: .72; } 50% { transform: translate(-28px,-18px) scale(1.035); opacity: 1; } }

@media (max-width: 900px) {
  .q18-purpose__layout,.q18-comparison__heading { grid-template-columns: 1fr; }
  .q18-purpose__grid { max-width: 760px; }
}

@media (max-width: 700px) {
  .q18-purpose__grid,.q18-comparison__grid { grid-template-columns: 1fr; }
  .q18-purpose__grid article { min-height: 330px; }
  .q18-purpose__grid h3 { margin-top: 82px; }
  .q18-comparison__grid article { min-height: 420px; padding: 27px; }
  .q18-comparison__grid a { right: 27px; bottom: 27px; left: 27px; }
}

/* Aires de jeux et équipements sportifs */
.public-regulations { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 43px; }
.public-regulations article { position: relative; min-height: 430px; padding: 32px; overflow: hidden; border: 1px solid var(--line); border-radius: 23px; background: radial-gradient(circle at 88% 12%,rgba(101,214,246,.18),transparent 27%),linear-gradient(145deg,#0b2136,#15445a); color: var(--white); }
.public-regulations article:nth-child(2) { background: radial-gradient(circle at 88% 12%,rgba(196,238,104,.18),transparent 27%),linear-gradient(145deg,#0a2131,#27433f); }
.public-regulations article::after { content: ""; position: absolute; width: 180px; height: 180px; right: -105px; bottom: -110px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 35px rgba(255,255,255,.018); }
.public-regulations article > span { color: var(--blue-light); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.public-regulations article:nth-child(2) > span { color: var(--green); }
.public-regulations h3 { margin: 74px 0 22px; color: var(--white); font-size: 27px; line-height: 1.12; }
.public-regulations p { margin: 0; color: rgba(255,255,255,.64); font-size: 13px; }
.public-regulations article > a,.public-regulations article > div { position: absolute; z-index: 1; right: 32px; bottom: 29px; left: 32px; }
.public-regulations article > div { display: flex; align-items: flex-start; flex-direction: column; gap: 8px; }
.public-regulations a { color: var(--white); font-size: 9px; font-weight: 790; text-decoration: underline; text-decoration-color: rgba(255,255,255,.25); text-underline-offset: 4px; }

.public-traceability { position: relative; overflow: hidden; background: linear-gradient(145deg,#e7eff3,#f8fafb); }
.public-traceability::after { content: ""; position: absolute; width: 520px; height: 520px; right: -300px; bottom: -310px; border: 1px solid rgba(22,119,232,.13); border-radius: 50%; box-shadow: 0 0 0 70px rgba(22,119,232,.02),0 0 0 140px rgba(22,119,232,.012); }
.public-traceability__layout { position: relative; z-index: 1; display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(60px,9vw,125px); }
.public-traceability h2,.public-standard h2,.training-analysis h2,.training-formats h2,.training-employer h2 { color: var(--ink); font-size: clamp(43px,5.2vw,68px); }
.public-traceability__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.public-traceability__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.public-traceability__grid article { min-height: 390px; padding: 28px; border: 1px solid var(--line); border-radius: 21px; background: rgba(255,255,255,.84); box-shadow: 0 18px 45px rgba(6,21,34,.055); }
.public-traceability__grid span { color: var(--blue); font-size: 9px; font-weight: 900; }
.public-traceability__grid h3 { margin: 110px 0 19px; color: var(--ink); font-size: 23px; line-height: 1.1; }
.public-traceability__grid p { margin: 0; color: var(--muted); font-size: 12px; }
.public-checkpoints { background: var(--white); }

.public-standard { position: relative; overflow: hidden; background: radial-gradient(circle at 82% 22%,rgba(101,214,246,.2),transparent 26%),linear-gradient(135deg,#061522,#123b52); color: var(--white); }
.public-standard__layout { display: grid; grid-template-columns: 1.1fr .62fr; align-items: center; gap: clamp(60px,9vw,125px); }
.public-standard h2 { color: var(--white); }
.public-standard__layout > div > p:not(.section-kicker) { max-width: 720px; margin: 30px 0 0; color: rgba(255,255,255,.64); font-size: 14px; }
.public-standard__layout > div > a { display: inline-flex; gap: 12px; margin-top: 30px; color: var(--blue-light); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.public-standard__layout > div > a span { color: var(--green); }
.public-standard__layout aside { padding: 32px; border: 1px solid rgba(255,255,255,.17); border-radius: 23px; background: rgba(255,255,255,.055); box-shadow: 0 30px 80px rgba(0,0,0,.2); backdrop-filter: blur(14px); }
.public-standard__layout aside span { color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.public-standard__layout aside strong { display: block; margin: 65px 0 22px; color: var(--white); font-size: 24px; line-height: 1.18; }
.public-standard__layout aside p { margin: 0; color: rgba(255,255,255,.62); font-size: 12px; }
.inspection-output--public .inspection-output__card { background: radial-gradient(circle at 88% 12%,rgba(101,214,246,.19),transparent 27%),linear-gradient(145deg,#071a29,#16465b); }

/* Formation à l’habilitation électrique */
.training-analysis { background: var(--white); }
.training-analysis__layout { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: clamp(60px,9vw,125px); }
.training-analysis__layout > div:first-child { position: sticky; top: 150px; }
.training-analysis__layout > div:first-child > p:last-child { margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.training-analysis__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.training-analysis__grid article { min-height: 315px; padding: 28px; border: 1px solid var(--line); border-radius: 21px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.training-analysis__grid article:nth-child(2),.training-analysis__grid article:nth-child(3) { background: linear-gradient(145deg,#0b2136,#154253); }
.training-analysis__grid span { color: var(--blue); font-size: 9px; font-weight: 900; }
.training-analysis__grid strong { display: block; margin: 75px 0 17px; color: var(--ink); font-size: 19px; line-height: 1.22; }
.training-analysis__grid p { margin: 0; color: var(--muted); font-size: 11px; }
.training-analysis__grid article:nth-child(2) span,.training-analysis__grid article:nth-child(3) span { color: var(--green); }
.training-analysis__grid article:nth-child(2) strong,.training-analysis__grid article:nth-child(3) strong { color: var(--white); }
.training-analysis__grid article:nth-child(2) p,.training-analysis__grid article:nth-child(3) p { color: rgba(255,255,255,.6); }
.training-program { background: linear-gradient(145deg,#f7fafb,#e9f0f3); }

.training-formats { background: var(--white); }
.training-formats__heading { display: grid; grid-template-columns: 1.1fr .55fr; align-items: end; gap: clamp(55px,9vw,130px); }
.training-formats__heading > p { margin: 0 0 6px; color: var(--muted); font-size: 14px; }
.training-formats__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 62px; }
.training-formats__grid article { min-height: 460px; padding: 34px; border: 1px solid var(--line); border-radius: 23px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.training-formats__grid article:nth-child(2) { background: radial-gradient(circle at 88% 12%,rgba(196,238,104,.16),transparent 27%),linear-gradient(145deg,#0b2136,#174548); }
.training-formats__grid article > span { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.training-formats__grid h3 { margin: 78px 0 24px; color: var(--ink); font-size: 28px; }
.training-formats__grid p { max-width: 590px; color: var(--muted); font-size: 13px; }
.training-formats__grid ul { margin: 30px 0 0; padding: 0; list-style: none; }
.training-formats__grid li { padding: 11px 0; border-top: 1px solid #cad7dd; color: var(--muted); font-size: 11px; }
.training-formats__grid article:nth-child(2) > span { color: var(--green); }
.training-formats__grid article:nth-child(2) h3 { color: var(--white); }
.training-formats__grid article:nth-child(2) p,.training-formats__grid article:nth-child(2) li { color: rgba(255,255,255,.62); }
.training-formats__grid article:nth-child(2) li { border-color: rgba(255,255,255,.14); }
.inspection-output--training .inspection-output__card { background: radial-gradient(circle at 88% 12%,rgba(196,238,104,.17),transparent 27%),linear-gradient(145deg,#071a29,#174449); }

.training-employer { position: relative; overflow: hidden; background: radial-gradient(circle at 83% 20%,rgba(22,119,232,.22),transparent 26%),linear-gradient(135deg,#061522,#123a53); color: var(--white); }
.training-employer__layout { display: grid; grid-template-columns: 1.08fr .62fr; align-items: center; gap: clamp(60px,9vw,125px); }
.training-employer h2 { color: var(--white); }
.training-employer__layout > div > p:not(.section-kicker) { max-width: 720px; margin: 30px 0 0; color: rgba(255,255,255,.64); font-size: 14px; }
.training-employer__layout > div > a { display: inline-flex; gap: 12px; margin-top: 29px; color: var(--blue-light); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.training-employer__layout > div > a span { color: var(--green); }
.training-employer__layout aside { padding: 32px; border: 1px solid rgba(255,255,255,.17); border-radius: 23px; background: rgba(255,255,255,.055); box-shadow: 0 30px 80px rgba(0,0,0,.2); backdrop-filter: blur(14px); }
.training-employer__layout aside span { color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.training-employer__layout aside strong { display: block; margin: 66px 0 22px; color: var(--white); font-size: 25px; line-height: 1.16; }
.training-employer__layout aside p { margin: 0; color: rgba(255,255,255,.62); font-size: 12px; }

.training-provider { position: relative; overflow: hidden; background: linear-gradient(145deg,#edf3f6,#fff); }
.training-provider::after { content: ""; position: absolute; right: -210px; bottom: -330px; width: 540px; height: 540px; border: 1px solid rgba(22,119,232,.13); border-radius: 50%; box-shadow: 0 0 0 72px rgba(22,119,232,.025),0 0 0 144px rgba(196,238,104,.02); }
.training-provider__layout { position: relative; z-index: 1; display: grid; grid-template-columns: .74fr 1.26fr; gap: clamp(52px,8vw,118px); align-items: start; }
.training-provider__heading h2 { color: var(--ink); font-size: clamp(43px,5.2vw,68px); }
.training-provider__heading > p:last-child { max-width: 660px; margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.training-provider__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.training-provider__cards article { min-height: 330px; padding: 31px; border: 1px solid var(--line); border-radius: 23px; background: rgba(255,255,255,.86); box-shadow: 0 22px 55px rgba(6,21,34,.06); }
.training-provider__cards article:nth-child(2) { border-color: rgba(196,238,104,.3); background: radial-gradient(circle at 88% 12%,rgba(196,238,104,.15),transparent 28%),linear-gradient(145deg,#0b2136,#174548); }
.training-provider__cards span { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.training-provider__cards article:nth-child(2) span { color: var(--green); }
.training-provider__cards strong { display: block; margin: 56px 0 21px; color: var(--ink); font-size: 27px; line-height: 1.12; }
.training-provider__cards article:nth-child(2) strong { color: var(--white); }
.training-provider__cards p { margin: 0; color: var(--muted); font-size: 12px; }
.training-provider__cards article:nth-child(2) p { color: rgba(255,255,255,.63); }
.training-provider__cards a { display: inline-flex; gap: 10px; margin-top: 24px; color: var(--blue-light); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.training-provider__cards a b { color: var(--green); }
.training-provider__scope { grid-column: 2; margin: -1px 0 0; color: var(--muted); font-size: 10px; }

@media (hover:hover) and (pointer:fine) {
  .public-regulations article,.public-traceability__grid article,.training-analysis__grid article,.training-formats__grid article,.training-provider__cards article { transition: transform .38s var(--ease),box-shadow .38s ease,border-color .3s ease; }
  .public-regulations article:hover,.public-traceability__grid article:hover,.training-analysis__grid article:hover,.training-formats__grid article:hover,.training-provider__cards article:hover { transform: translateY(-7px); box-shadow: 0 28px 65px rgba(6,21,34,.13); }
}

@media (max-width: 1020px) {
  .public-traceability__grid { grid-template-columns: 1fr; }
  .public-traceability__grid article { min-height: 270px; }
  .public-traceability__grid h3 { margin-top: 64px; }
}

@media (max-width: 900px) {
  .public-traceability__layout,.public-standard__layout,.training-analysis__layout,.training-formats__heading,.training-employer__layout,.training-provider__layout { grid-template-columns: 1fr; }
  .training-analysis__layout > div:first-child { position: static; }
  .public-standard__layout aside,.training-employer__layout aside { max-width: 720px; }
  .training-provider__scope { grid-column: 1; }
}

@media (max-width: 700px) {
  .public-regulations,.training-analysis__grid,.training-formats__grid,.training-provider__cards { grid-template-columns: 1fr; }
  .public-regulations article { min-height: 450px; padding: 27px; }
  .public-regulations article > a,.public-regulations article > div { right: 27px; bottom: 27px; left: 27px; }
  .public-traceability__grid article { min-height: 260px; }
  .training-analysis__grid article { min-height: 285px; }
  .training-formats__grid article { min-height: 450px; padding: 27px; }
  .training-provider__cards article { min-height: 300px; padding: 27px; }
}

/* Page accreditation Cofrac */
.accreditation-page { background: #f3f7f9; }
.accreditation-page-hero { position: relative; overflow: hidden; min-height: 720px; background: radial-gradient(circle at 82% 24%,rgba(196,238,104,.15),transparent 24%),radial-gradient(circle at 20% 88%,rgba(22,119,232,.2),transparent 28%),linear-gradient(132deg,#061522 0%,#0a2c43 60%,#123e4a 100%); color: var(--white); }
.accreditation-page-hero::before { content: ""; position: absolute; inset: 0; opacity: .05; background-image: linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px); background-size: 62px 62px; mask-image: linear-gradient(90deg,transparent,#000 62%,#000); }
.accreditation-page-hero__layout { position: relative; z-index: 1; min-height: 720px; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(360px,.62fr); align-items: center; gap: clamp(64px,9vw,132px); padding-block: 76px; }
.accreditation-page-hero .breadcrumb { color: rgba(255,255,255,.52); }
.accreditation-page-hero .breadcrumb a { color: var(--blue-light); }
.accreditation-page-hero .eyebrow { color: var(--blue-light); }
.accreditation-page-hero .eyebrow span { color: var(--green); }
.accreditation-page-hero h1 { max-width: 900px; color: var(--white); font-size: clamp(67px,7vw,105px); line-height: .9; }
.accreditation-page-hero h1 em { color: var(--green); }
.accreditation-page-hero__lead { max-width: 820px; margin: 35px 0 0; color: rgba(255,255,255,.68); font-size: 15px; }
.accreditation-page-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 36px; }
.accreditation-page-hero__actions > a:not(.button) { color: var(--blue-light); font-size: 10px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.accreditation-page-hero__actions > a:not(.button) span { margin-left: 9px; color: var(--green); }
.accreditation-page-hero__card { position: relative; padding: 32px; border: 1px solid rgba(255,255,255,.23); border-radius: 27px; background: rgba(255,255,255,.96); box-shadow: 0 38px 100px rgba(0,0,0,.3); color: var(--ink); }
.accreditation-page-hero__logo { position: absolute; top: 27px; right: 27px; display: grid; place-items: center; width: 86px; height: 116px; overflow: hidden; border: 1px solid #dce5e9; border-radius: 14px; background: #fff; }
.accreditation-page-hero__logo img { width: 68px; height: 102px; object-fit: contain; }
.accreditation-page-hero__card > span { display: block; max-width: 180px; color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.accreditation-page-hero__card > strong { display: block; margin: 150px 0 30px; font-size: 36px; line-height: 1; }
.accreditation-page-hero__card dl { margin: 0; border-top: 1px solid var(--line); }
.accreditation-page-hero__card dl div { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.accreditation-page-hero__card dt { color: var(--muted); font-size: 10px; }
.accreditation-page-hero__card dd { margin: 0; font-size: 10px; font-weight: 900; }
.accreditation-page-hero__card > small { display: block; margin-top: 22px; color: var(--muted); font-size: 9px; line-height: 1.55; }

.inspection-type { background: var(--white); }
.inspection-type__layout { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: clamp(60px,9vw,132px); }
.inspection-type h2,.accreditation-scope-page h2,.impartiality-page h2,.accreditation-documents h2,.accreditation-final-cta h2 { font-size: clamp(46px,5.4vw,72px); }
.inspection-type__content > p { max-width: 810px; margin: 7px 0 45px; color: var(--muted); font-size: 15px; }
.inspection-type__principles { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; }
.inspection-type__principles article { min-height: 290px; padding: 27px; border: 1px solid var(--line); border-radius: 21px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.inspection-type__principles article > span { color: var(--blue); font-size: 9px; font-weight: 900; }
.inspection-type__principles strong { display: block; margin: 75px 0 22px; color: var(--ink); font-size: 24px; }
.inspection-type__principles p { margin: 0; color: var(--muted); font-size: 12px; }

.accreditation-scope-page { position: relative; overflow: hidden; background: radial-gradient(circle at 85% 10%,rgba(196,238,104,.12),transparent 23%),linear-gradient(135deg,#061522,#123b50); color: var(--white); }
.accreditation-scope-page__heading { display: grid; grid-template-columns: 1fr .58fr; align-items: end; gap: clamp(55px,9vw,132px); }
.accreditation-scope-page h2 { color: var(--white); }
.accreditation-scope-page__heading > p { margin: 0 0 8px; color: rgba(255,255,255,.62); font-size: 14px; }
.accreditation-scope-page__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 64px; }
.accreditation-scope-page__grid article { min-height: 340px; padding: 31px; border: 1px solid rgba(255,255,255,.14); border-radius: 23px; background: rgba(255,255,255,.055); box-shadow: 0 28px 75px rgba(0,0,0,.12); }
.accreditation-scope-page__grid article > span { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.accreditation-scope-page__grid h3 { margin: 78px 0 20px; color: var(--white); font-size: 28px; }
.accreditation-scope-page__grid p { max-width: 650px; margin: 0; color: rgba(255,255,255,.65); font-size: 13px; }
.accreditation-scope-page__grid small { display: block; margin-top: 28px; color: var(--blue-light); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.accreditation-scope-page__clarity { display: grid; grid-template-columns: .72fr 1.2fr auto; align-items: center; gap: 34px; margin-top: 14px; padding: 28px 31px; border: 1px solid rgba(196,238,104,.28); border-radius: 21px; background: rgba(196,238,104,.07); }
.accreditation-scope-page__clarity strong { color: var(--green); font-size: 16px; }
.accreditation-scope-page__clarity p { margin: 0; color: rgba(255,255,255,.64); font-size: 11px; }
.accreditation-scope-page__clarity a { color: var(--blue-light); font-size: 9px; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.accreditation-scope-page__clarity a span { margin-left: 8px; color: var(--green); }

.impartiality-page { background: linear-gradient(145deg,#eef4f6,#fff); }
.impartiality-page__layout { display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; gap: clamp(60px,9vw,132px); }
.impartiality-page__layout > div > p:last-child { max-width: 710px; margin: 31px 0 0; color: var(--muted); font-size: 14px; }
.impartiality-page__steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.impartiality-page__steps li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding: 27px 0; border-bottom: 1px solid var(--line); }
.impartiality-page__steps li > span { color: var(--blue); font-size: 9px; font-weight: 900; }
.impartiality-page__steps strong { color: var(--ink); font-size: 20px; }
.impartiality-page__steps p { margin: 9px 0 0; color: var(--muted); font-size: 12px; }

.accreditation-documents { background: var(--white); }
.accreditation-documents__layout { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: clamp(60px,9vw,132px); }
.accreditation-documents__layout > div:first-child > p:last-child { max-width: 650px; margin: 30px 0 0; color: var(--muted); font-size: 14px; }
.accreditation-documents__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.accreditation-documents__cards article { min-height: 420px; padding: 32px; border: 1px solid var(--line); border-radius: 23px; background: linear-gradient(145deg,#f8fafb,#edf3f6); }
.accreditation-documents__cards article:nth-child(2) { background: radial-gradient(circle at 87% 12%,rgba(196,238,104,.15),transparent 27%),linear-gradient(145deg,#0b2136,#174548); }
.accreditation-documents__cards article > span { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.accreditation-documents__cards article:nth-child(2) > span { color: var(--green); }
.accreditation-documents__cards strong { display: block; margin: 78px 0 22px; color: var(--ink); font-size: 28px; line-height: 1.12; }
.accreditation-documents__cards article:nth-child(2) strong { color: var(--white); }
.accreditation-documents__cards p { margin: 0; color: var(--muted); font-size: 12px; }
.accreditation-documents__cards article:nth-child(2) p { color: rgba(255,255,255,.64); }
.accreditation-documents__cards article > a,.accreditation-documents__cards article > div { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 30px; }
.accreditation-documents__cards a { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.accreditation-documents__cards article:nth-child(2) a { color: var(--blue-light); }
.accreditation-documents__cards a b { color: var(--green); }

.accreditation-final-cta { padding: 85px 0; background: linear-gradient(125deg,#0a2437,#14505a); color: var(--white); }
.accreditation-final-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.accreditation-final-cta h2 { margin: 0; color: var(--white); }

@media (hover:hover) and (pointer:fine) {
  .inspection-type__principles article,.accreditation-scope-page__grid article,.accreditation-documents__cards article { transition: transform .38s var(--ease),box-shadow .38s ease,border-color .3s ease; }
  .inspection-type__principles article:hover,.accreditation-scope-page__grid article:hover,.accreditation-documents__cards article:hover { transform: translateY(-7px); box-shadow: 0 30px 70px rgba(6,21,34,.16); }
}

@media (max-width: 980px) {
  .accreditation-page-hero__layout,.inspection-type__layout,.accreditation-scope-page__heading,.impartiality-page__layout,.accreditation-documents__layout { grid-template-columns: 1fr; }
  .accreditation-page-hero__card { max-width: 640px; }
  .inspection-type__principles { grid-template-columns: 1fr 1fr 1fr; }
  .accreditation-scope-page__clarity { grid-template-columns: 1fr; }
  .accreditation-final-cta .container { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 700px) {
  .accreditation-page-hero { min-height: auto; }
  .accreditation-page-hero__layout { min-height: auto; grid-template-columns: minmax(0,1fr); padding-block: 58px; }
  .accreditation-page-hero h1 { font-size: clamp(52px,15vw,70px); }
  .accreditation-page-hero__card { padding: 26px; }
  .accreditation-page-hero__logo { top: 23px; right: 23px; width: 72px; height: 100px; }
  .accreditation-page-hero__logo img { width: 57px; height: 88px; }
  .accreditation-page-hero__card > strong { margin-top: 118px; }
  .inspection-type__principles,.accreditation-scope-page__grid,.accreditation-documents__cards { grid-template-columns: 1fr; }
  .inspection-type__principles article { min-height: 250px; }
  .accreditation-scope-page__grid article { min-height: 310px; padding: 27px; }
  .accreditation-documents__cards article { min-height: 390px; padding: 27px; }
}
/* Page 404 */
.error-page { background: #f3f7f9; }
.error-hero { position: relative; min-height: 680px; overflow: hidden; background: radial-gradient(circle at 78% 42%, rgba(22,119,232,.22), transparent 26%), linear-gradient(125deg, #061522 0%, #092941 58%, #0c3650 100%); color: var(--white); }
.error-hero::before { content: ""; position: absolute; right: -220px; bottom: -410px; width: 820px; height: 820px; border: 1px solid rgba(101,214,246,.14); border-radius: 50%; box-shadow: 0 0 0 82px rgba(101,214,246,.025), 0 0 0 164px rgba(196,238,104,.015); }
.error-hero__grid { position: absolute; inset: 0; opacity: .045; background-image: linear-gradient(rgba(255,255,255,.85) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.85) 1px,transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(90deg, transparent 2%, #000 48%, #000); }
.error-hero__layout { position: relative; z-index: 1; min-height: 680px; display: grid; grid-template-columns: minmax(0,1fr) minmax(390px,.72fr); align-items: center; gap: clamp(70px,9vw,130px); padding-block: 72px; }
.error-hero h1 { max-width: 760px; color: var(--white); font-size: clamp(64px,7.2vw,100px); line-height: .89; }
.error-hero__content > p:not(.eyebrow) { max-width: 650px; margin: 30px 0 0; color: rgba(255,255,255,.68); font-size: 17px; }
.error-hero__actions { display: flex; align-items: center; gap: 28px; margin-top: 38px; }
.error-hero .button--accent { border-color: var(--green); background: var(--green); color: var(--ink-deep); box-shadow: 0 15px 35px rgba(196,238,104,.16); }
.error-hero .button--accent:hover { border-color: var(--green-soft); background: var(--green-soft); }
.error-text-link { display: inline-flex; align-items: center; gap: 12px; color: rgba(255,255,255,.82); font-size: 12px; font-weight: 750; }
.error-text-link span { color: var(--blue-light); font-size: 18px; transition: transform .25s var(--ease); }
.error-text-link:hover span { transform: translate(3px,-3px); }
.error-visual { position: relative; width: min(100%,460px); aspect-ratio: 1; display: grid; place-items: center; margin-left: auto; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; background: rgba(3,18,30,.32); box-shadow: inset 0 0 70px rgba(101,214,246,.07), 0 35px 90px rgba(0,0,0,.24); backdrop-filter: blur(10px); }
.error-visual::before { content: ""; position: absolute; inset: 17%; border-radius: 50%; background: radial-gradient(circle at 36% 30%, #e0ff9c, var(--green) 66%, #9fd24a); box-shadow: 0 0 0 19px rgba(196,238,104,.055), 0 0 60px rgba(196,238,104,.13); }
.error-visual strong { position: relative; z-index: 2; color: var(--ink-deep); font-size: clamp(84px,9vw,138px); font-weight: 850; letter-spacing: -.09em; line-height: 1; transform: translateX(-.04em); }
.error-visual > span { position: absolute; z-index: 3; bottom: 22%; padding: 7px 12px; border: 1px solid rgba(6,21,34,.16); border-radius: 999px; background: rgba(255,255,255,.78); color: var(--ink-deep); font-size: 9px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; backdrop-filter: blur(7px); }
.error-visual__orbit { position: absolute; border: 1px solid rgba(101,214,246,.25); border-radius: 50%; }
.error-visual__orbit--one { inset: 6%; animation: error-spin 18s linear infinite; }
.error-visual__orbit--two { inset: 29%; border-color: rgba(6,21,34,.18); animation: error-spin 11s linear infinite reverse; }
.error-visual i { position: absolute; z-index: 4; width: 10px; height: 10px; border-radius: 50%; background: var(--blue-light); box-shadow: 0 0 0 8px rgba(101,214,246,.08); }
.error-visual i:nth-of-type(1) { top: 11%; right: 28%; }
.error-visual i:nth-of-type(2) { right: 5%; bottom: 39%; width: 7px; height: 7px; background: var(--green); }
.error-visual i:nth-of-type(3) { bottom: 8%; left: 31%; width: 6px; height: 6px; }
@keyframes error-spin { to { transform: rotate(360deg); } }

.error-orientation { background: #f3f7f9; }
.error-orientation__heading { display: grid; grid-template-columns: 1fr .7fr; align-items: end; gap: 80px; margin-bottom: 50px; }
.error-orientation__heading h2 { color: var(--ink); font-size: clamp(42px,5vw,68px); }
.error-orientation__heading > p { max-width: 520px; margin: 0 0 5px; color: var(--muted); }
.error-links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.error-links a { position: relative; min-height: 230px; display: flex; flex-direction: column; padding: 28px; overflow: hidden; border: 1px solid rgba(11,33,54,.1); border-radius: 22px; background: var(--white); box-shadow: 0 17px 45px rgba(6,21,34,.055); transition: transform .3s var(--ease), border-color .25s ease, box-shadow .3s ease; }
.error-links a::after { content: ""; position: absolute; right: -55px; bottom: -65px; width: 145px; height: 145px; border: 1px solid rgba(22,119,232,.13); border-radius: 50%; box-shadow: 0 0 0 22px rgba(22,119,232,.025); transition: transform .35s var(--ease); }
.error-links a:hover { border-color: rgba(22,119,232,.38); box-shadow: 0 24px 60px rgba(6,21,34,.1); transform: translateY(-6px); }
.error-links a:hover::after { transform: scale(1.12); }
.error-links span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.error-links strong { max-width: 210px; margin-top: auto; color: var(--ink); font-size: 18px; line-height: 1.18; }
.error-links small { max-width: 200px; margin-top: 9px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.error-links i { position: absolute; z-index: 1; top: 23px; right: 25px; color: var(--blue); font-size: 19px; font-style: normal; transition: transform .25s var(--ease); }
.error-links a:hover i { transform: translate(3px,-3px); }

@media (max-width: 1020px) {
  .error-hero__layout { grid-template-columns: minmax(0,1fr) minmax(320px,.72fr); gap: 45px; }
  .error-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .error-hero__layout { min-height: auto; grid-template-columns: 1fr; gap: 55px; padding-block: 70px; }
  .error-hero__content { text-align: center; }
  .error-hero .eyebrow, .error-hero__actions { justify-content: center; }
  .error-hero__content > p:not(.eyebrow) { margin-inline: auto; }
  .error-visual { width: min(100%,390px); margin-inline: auto; }
  .error-orientation__heading { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 560px) {
  .error-hero__layout { padding-block: 60px; }
  .error-hero h1 { font-size: clamp(54px,17vw,76px); }
  .error-hero__actions { flex-direction: column; gap: 20px; }
  .error-visual { width: min(100%,320px); }
  .error-links { grid-template-columns: 1fr; }
  .error-links a { min-height: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  .error-visual__orbit { animation: none; }
}
