/* Styles du site helvyca.ch (externalisés depuis index.html pour une CSP sans <style> en ligne). Les attributs style="" restent dans le HTML. */
  * { box-sizing: border-box; }
  html { scroll-behavior:smooth; background:#04102A; color-scheme:dark; scrollbar-color:#1C2A47 #04102A; scrollbar-width:thin; }
  body { margin:0; background:#04102A; color:#E8EFFA; font-family:'Manrope',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; overflow-x:hidden; }
  h1,h2,h3 { font-family:'Space Grotesk','Manrope',system-ui,sans-serif; }
  a { color:#00338D; text-decoration:none; }
  a:hover { color:#0C7C85; }
  @keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)} }
  @keyframes glowPulse { 0%,100%{opacity:.35; transform:scale(1)} 50%{opacity:.7; transform:scale(1.12)} }
  @keyframes sweep { 0%{transform:translateX(-130%) skewX(-18deg)} 100%{transform:translateX(230%) skewX(-18deg)} }
  @keyframes riseIn { from{transform:translateY(26px)} to{transform:translateY(0)} }
  @keyframes gridDrift { from{background-position:0 0} to{background-position:0 -520px} }
  @keyframes blink { 0%,100%{opacity:.25} 50%{opacity:1} }
  @media (max-width:1000px) {
    .om-hero, .om-approche, .om-two { grid-template-columns:1fr !important; gap:44px !important; }
    .om-conf { grid-template-columns:1fr !important; gap:0 !important; }
    .om-conf > div:first-child { padding-bottom:0 !important; }
    .om-conf > div:last-child { padding-top:10px !important; border-left:4px solid #14B8C4; }
    .om-cards, .om-time, .om-pub { grid-template-columns:1fr !important; }
    .om-feat { grid-template-columns:repeat(2,1fr) !important; }
    .om-nav { display:none !important; }
    .om-row { flex-direction:column !important; align-items:flex-start !important; }
    .om-time { border-top:0 !important; }
    .om-step { border-left:2px solid #C9D8EC; padding-left:28px !important; padding-right:0 !important; }
    .om-dot { top:38px !important; left:-9px !important; }
  }

.navlink:hover{color:#21D4D8 !important}
.navlink{position:relative}
.navlink::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#21D4D8;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.navlink:hover::after{transform:scaleX(1)}
.navlink.active{color:#21D4D8 !important}
.navlink.active::after{transform:scaleX(1)}

/* FAQ : accordéon natif details/summary, sans script */
details.om-faq summary::-webkit-details-marker{display:none}
details.om-faq summary::marker{content:''}
details.om-faq[open] .om-faq-x{transform:rotate(45deg)}
details.om-faq summary:hover span:first-child{color:#0C7C85}

/* Fenêtre produit : la barre latérale se replie sur mobile */
@media (max-width:640px){.om-win{grid-template-columns:64px 1fr !important}.om-winb{grid-template-columns:1fr !important}}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 22px 54px rgba(20,184,196,.5)}
.btn-ghost:hover{color:#21D4D8;border-color:rgba(33,212,216,.5);background:rgba(33,212,216,.06)}
.card-light,.card-pub{box-shadow:0 1px 2px rgba(11,35,80,.05),0 10px 28px rgba(11,35,80,.05)}
.card-dark:hover{transform:translateY(-3px);border-color:rgba(33,212,216,.48) !important;box-shadow:0 14px 34px rgba(4,16,42,.55)}
.card-light:hover{transform:translateY(-3px);border-color:#14B8C4 !important;box-shadow:0 14px 34px rgba(11,35,80,.10)}
.card-pub:hover{transform:translateY(-3px);border-color:#14B8C4 !important;box-shadow:0 14px 34px rgba(11,35,80,.10)}
.conf-row:hover{background:#EFF6FC}
.footlink:hover{color:#21D4D8 !important}
.langbtn{border:0;cursor:pointer;font:700 12px inherit;letter-spacing:.06em;padding:7px 11px;border-radius:999px;transition:background .25s,color .25s;background:transparent;color:#8DA2C2}
.langbtn.on{background:linear-gradient(100deg,#21D4D8,#14B8C4);color:#04102A}

/* --- Accessibilité --- */
a,button{touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #21D4D8;outline-offset:3px;border-radius:8px;box-shadow:0 0 0 5px rgba(4,16,42,.35)}
.footlink{display:inline-block;padding:4px 2px}
.mnav .langbtn{min-height:44px;padding:12px 16px;font-size:13px}
@media (max-width:1000px) and (min-width:641px){.hd-lang .langbtn{padding:12px 14px}}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:#21D4D8;color:#04102A;font-weight:700;padding:12px 20px;border-radius:0 0 14px 0;text-decoration:none}
.skip:focus{left:0}
section[id]{scroll-margin-top:96px}

/* --- Header sticky --- */
#js-head{position:sticky;top:0;z-index:50;transition:background .35s ease,box-shadow .35s ease,padding .35s ease,border-color .35s ease;border-bottom:1px solid transparent}
#js-head.scrolled{background:rgba(4,16,42,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 12px 40px rgba(2,8,24,.45);border-bottom-color:rgba(33,212,216,.1);padding-top:13px !important;padding-bottom:13px !important}

/* --- Menu mobile --- */
.burger{display:none;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;border:1px solid rgba(169,188,216,.28);background:transparent;cursor:pointer;flex:0 0 auto;transition:border-color .3s}
.burger:hover{border-color:rgba(33,212,216,.5)}
.mnav{position:absolute;top:100%;left:0;right:0;background:rgba(4,16,42,.97);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(33,212,216,.14);padding:8px 8vw 28px;display:none;flex-direction:column;max-height:calc(100dvh - 72px);overflow-y:auto}
.mnav.open{display:flex}
.mnav .mlink{display:block;padding:15px 4px;color:#E8EFFA;font-weight:600;font-size:16px;border-bottom:1px solid rgba(169,188,216,.1)}
.mnav .mlink:hover{color:#21D4D8}
@media (max-width:1000px){.burger{display:inline-flex}}
@media (max-width:800px){.om-headcta{display:none !important}.om-foot{grid-template-columns:1fr !important;gap:28px !important}}
@media (max-width:640px){.hd-lang{display:none !important}#js-head>a>img{height:56px !important}.om-feat{grid-template-columns:1fr !important}}

/* --- Apparition au défilement --- */
.rv{opacity:0;transform:translateY(26px)}
.rv.in{opacity:1;transform:none}

/* --- Mouvement réduit --- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-delay:0ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .rv{opacity:1;transform:none}
  /* Le contenu apparaît en fondu, mais ne se déplace jamais : l'opacité seule est rendue à la vie.
     La classe « doux » est posée par le script, et seulement s'il peut mener le fondu à son terme. */
  html.doux .rv{opacity:0;transform:none !important;transition-property:opacity !important;transition-duration:.8s !important;transition-timing-function:ease !important}
  html.doux .rv.in{opacity:1}
}

/* Canevas 3D : marge latérale qui laisse respirer la rotation du bouclier. Sous 960 px elle sort
   de la fenêtre : le téléphone élargit alors sa zone d'affichage et la page se tire vers la droite.
   (Ces deux règles étaient dans l'attribut style du div, où aucune requête média ne peut les reprendre.) */
#hero3d { left: -24%; right: -24%; }
/* L'image fixe occupe la même boîte que le canevas 3D (top/left/width/height dans son attribut style :
   une image ne s'étire pas entre left/right comme un div). Sous 960 px, même repli que #hero3d. */
@media (max-width: 960px) { #hero3d { left: 0; right: 0; } #js-still { left: 0 !important; width: 100% !important; } }

/* Reflet des boutons : une seule passe, au survol (une boucle infinie signale le gabarit tout fait). */
.shine{position:absolute;top:0;left:0;width:38%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-130%) skewX(-18deg);pointer-events:none}
.btn-primary:hover .shine{animation:sweep .9s ease-out 1}

/* Coutures entre sections : fil cyan en haut des bandes sombres, filet discret entre deux bandes claires. */
#approche::before,#tardoc::before,#securite::before,#apropos::before,#contact::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(33,212,216,.45),transparent)}

/* Header compact une fois la page défilée (le !important répond au height:74px du style en ligne). */
#js-head.scrolled a img{height:52px !important}

/* Impression : page lisible sur papier (un directeur imprime pour un dossier interne). */
@media print{
  .rv{opacity:1 !important;transform:none !important}
  #js-head,#hero3d,#js-still,#js-gridZone,.burger,.mnav,.shine,[aria-hidden="true"]{display:none !important}
  *{background:transparent !important;box-shadow:none !important;color:#1C2A47 !important;text-shadow:none !important;animation:none !important}
  html,body{background:#fff !important}
  h1,h2,h3{color:#04102A !important}
  a{color:#00338D !important;text-decoration:underline}
  section{padding:20pt 0 !important}
  .card-dark,.card-light,.card-pub,.conf-row,.om-step,details.om-faq{break-inside:avoid;border:1px solid #C9D6E8 !important;border-radius:8pt}
  details.om-faq{border:0 !important;border-bottom:1px solid #C9D6E8 !important}
  details.om-faq:not([open]) summary~*{display:block !important}
}

/* Héros mobile : le bloc bouclier de 640 px laissait ~450 px de vide sous l'image. */
@media (max-width:1000px){.om-hero>div:last-child{min-height:440px !important;margin-top:0 !important}.om-hero{padding-bottom:56px !important}}

/* Parcours patient : trait qui se remplit et points qui s'allument à l'entrée à l'écran. */
.om-time{position:relative}
.om-time::before{content:'';position:absolute;top:-2px;left:0;height:2px;width:100%;background:linear-gradient(90deg,#21D4D8,#00338D);transform-origin:left;transform:scaleX(1);transition:transform 2.2s cubic-bezier(.4,.1,.3,1)}
.om-time.om-anim::before{transform:scaleX(0)}
.om-time.om-anim.lit::before{transform:scaleX(1)}
.om-time.om-anim .om-dot{opacity:.3;transition:opacity .6s ease}
.om-time.om-anim.lit .om-step:nth-child(1) .om-dot{opacity:1;transition-delay:.15s}
.om-time.om-anim.lit .om-step:nth-child(2) .om-dot{opacity:1;transition-delay:.6s}
.om-time.om-anim.lit .om-step:nth-child(3) .om-dot{opacity:1;transition-delay:.9s}
.om-time.om-anim.lit .om-step:nth-child(4) .om-dot{opacity:1;transition-delay:1.2s}

/* Carte de la Suisse (À propos) : pulsation lente du point de Fribourg. */
@keyframes chPulse{0%{r:5;opacity:.8}100%{r:24;opacity:0}}
.ch-pulse{animation:chPulse 2.8s ease-out infinite}

/* Bouton dossier de conformité au pied du registre. */
#js-compliance-table:hover{background:rgba(33,212,216,.08);border-color:#14B8C4;color:#0B2350}

/* Finitions : sélection aux couleurs de la marque, retours au clic, transitions manquantes. */
::selection{background:#21D4D8;color:#04102A}
.btn-primary:active{transform:translateY(0) scale(.985);box-shadow:0 8px 20px rgba(20,184,196,.35)}
.btn-ghost:active{background:rgba(33,212,216,.12)}
.burger:active{border-color:#21D4D8}
#js-head a img{transition:height .35s ease}
#contact address a{white-space:nowrap}

/* Menu mobile : entrée animée et burger qui devient croix. */
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}}
.mnav.open{animation:menuIn .25s ease}
.burger path{transition:transform .3s ease,opacity .3s ease;transform-origin:12px 12px}
.burger[aria-expanded="true"] path:nth-of-type(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] path:nth-of-type(2){opacity:0}
.burger[aria-expanded="true"] path:nth-of-type(3){transform:translateY(-6px) rotate(-45deg)}

/* FAQ : ouverture animée quand le navigateur le permet (dégradation neutre ailleurs). */
html{interpolate-size:allow-keywords}
details.om-faq::details-content{block-size:0;overflow:clip;transition:block-size .3s ease,content-visibility .3s allow-discrete}
details.om-faq[open]::details-content{block-size:auto}

/* Tablette : deux colonnes de cartes plutôt qu'une pile. */
@media (max-width:1000px) and (min-width:641px){.om-cards{grid-template-columns:repeat(2,1fr) !important}}

/* Mobile serré : héros compact, sections resserrées, boutons pleine largeur. */
@media (max-width:640px){
  .om-hero>div:last-child>div:last-child{height:440px !important}
  #accueil [data-i18n="heroBadge"]{font-size:11px;letter-spacing:.08em}
  #pourqui,#approche,#produit,#tardoc,#conformite,#securite,#public,#apropos,#deploiement,#faq{padding-top:72px !important;padding-bottom:72px !important}
  .om-hero .btn-primary,.om-hero .btn-ghost,#contact .btn-primary,#contact .btn-ghost{width:100%;justify-content:center}
  .om-win .win-pill{display:none}
  .footlink{padding:12px 2px}
  .om-win div[style*="width:150px"]{width:110px !important}
}

/* --- Pages thématiques : /tardoc/, /institutions/, /cabinets-medicaux/ et leurs versions de langue. --- */
.pg-hero{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;padding:48px 8vw 96px;max-width:1500px;margin:0 auto}
.pg-h1{font-size:clamp(36px,4.3vw,62px);line-height:1.08;letter-spacing:-.03em;font-weight:700;margin:26px 0 0;color:#E8EFFA;animation:riseIn .9s .2s ease both}
.pg-h1-bar{height:5px;width:88px;border-radius:99px;background:linear-gradient(90deg,#21D4D8,#0A74D6);margin-top:24px;animation:riseIn .9s .28s ease both}
.pg-visual{position:relative;animation:riseIn 1.1s .35s ease both}
.pg-visual .pg-glow{position:absolute;inset:-40px;border-radius:50%;background:radial-gradient(circle,rgba(20,184,196,.22),transparent 66%);filter:blur(30px);pointer-events:none}
.pg-legend{display:grid;gap:12px;margin-top:22px}
.pg-legend > div{display:flex;gap:12px;align-items:baseline;font-size:14.5px;line-height:1.6;color:#A9BCD8}
.pg-legend i{flex:none;width:10px;height:10px;border-radius:50%;transform:translateY(1px)}
.pg-more{display:inline-block;margin-top:18px;font-weight:700;color:#0C7C85;font-size:14px;letter-spacing:.01em}
.pg-more::after{content:' \203A';font-weight:700}
.pg-more:hover{color:#00338D}
.pg-more-dark{display:inline-block;font-weight:700;color:#21D4D8;font-size:15px}
.pg-more-dark::after{content:' \203A';font-weight:700}
.pg-more-dark:hover{color:#E8EFFA}
.pg-callout{margin-top:34px;padding:20px 24px;border-radius:14px;background:#fff;border:1px solid #DCE4EF;border-left:4px solid #14B8C4;font-size:15px;line-height:1.75;color:#4A5B75;max-width:920px}
.pg-formula{display:inline-block;margin-top:28px;padding:14px 20px;border-radius:12px;background:#0B1E42;color:#E8EFFA;font-family:'Space Grotesk','Manrope',sans-serif;font-size:17px;font-weight:600;letter-spacing:-.005em}
.pg-table-wrap{overflow-x:auto;margin-top:26px;border-radius:16px;background:#fff;border:1px solid #DCE4EF;box-shadow:0 1px 2px rgba(11,35,80,.05),0 10px 28px rgba(11,35,80,.05)}
.pg-table{width:100%;min-width:560px;border-collapse:collapse;font-size:15px;color:#0B2350}
.pg-table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#697DA0;padding:16px 18px;border-bottom:1px solid #DCE4EF}
.pg-table td{padding:14px 18px;border-bottom:1px solid #EDF3FB;line-height:1.5;vertical-align:top}
.pg-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pg-table td.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;color:#0C7C85;white-space:nowrap}
.pg-table tr.total td{font-weight:700;border-top:2px solid #C9D8EC}
.pg-table tr.amount td{font-weight:700;font-size:17px;color:#00338D;background:#F4F8FD}
.pg-rules{display:flex;flex-direction:column;margin-top:26px;max-width:920px}
.pg-rule{display:grid;grid-template-columns:64px 1fr;gap:22px;padding:24px 0;border-top:1px solid #D3E0F0}
.pg-rule-n{font-family:'Space Grotesk','Manrope',sans-serif;font-size:30px;font-weight:700;line-height:1;background:linear-gradient(120deg,#0C7C85,#00338D);-webkit-background-clip:text;background-clip:text;color:transparent}
.pg-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:52px;border-top:2px solid #C9D8EC}
.pg-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px;align-items:center}
.pg-chip{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:12px;font-size:14px;font-weight:700;color:#0B2350;background:#fff;border:1px solid #DCE4EF}
.pg-chip i{width:8px;height:8px;border-radius:50%;background:#14B8C4}
.pg-seealso{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:28px;max-width:1160px}
.pg-seealso a{display:flex;flex-direction:column;padding:26px 28px;border-radius:18px;background:#fff;border:1px solid #DCE4EF;color:#0B2350;transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s,border-color .45s}
.pg-seealso a:hover{transform:translateY(-3px);border-color:#14B8C4;box-shadow:0 14px 34px rgba(11,35,80,.10);color:#0B2350}
.pg-seealso .pg-sa-k{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#0C7C85}
.pg-seealso .pg-sa-t{font-size:18px;font-weight:700;margin-top:10px;letter-spacing:-.01em;line-height:1.35}
.pg-seealso .pg-sa-l{margin-top:auto;padding-top:12px;font-size:14px;font-weight:700;color:#0C7C85}
.pg-seealso .pg-sa-l::after{content:' \203A'}
@media (max-width:1000px){
  .pg-hero{grid-template-columns:1fr;gap:44px}
  .pg-steps{grid-template-columns:1fr;border-top:0}
  .pg-steps .om-step{border-left:2px solid #C9D8EC;padding-left:28px !important;padding-right:0 !important}
  .pg-steps .om-dot{top:38px !important;left:-9px !important}
  .pg-4{grid-template-columns:repeat(2,1fr) !important}
}
@media (max-width:640px){
  .pg-sec{padding-top:72px !important;padding-bottom:72px !important}
  .pg-hero{padding-bottom:56px}
  .pg-hero .btn-primary,.pg-hero .btn-ghost{width:100%;justify-content:center}
  .pg-4,.pg-seealso{grid-template-columns:1fr !important}
  .pg-rule{grid-template-columns:48px 1fr;gap:14px}
  .pg-hero [data-i18n="heroBadge"]{font-size:11px;letter-spacing:.08em}
}
@media print{.pg-visual{display:none !important}.pg-table-wrap{border:1px solid #C9D6E8 !important}}

/* Menu unifié (6 entrées, libellés longs en allemand) : compact sous 1320 px, menu mobile dès 1180 px. */
.navlink{white-space:nowrap;flex:none}
@media (max-width:1320px){.om-nav{gap:20px !important;font-size:13px !important}}
@media (max-width:1180px){.om-nav{display:none !important}.burger{display:inline-flex}}

/* Le halo du haut de page (div absolu de 980 px) ne doit jamais passer devant les sections qui suivent le héros :
   une section positionnée est peinte après lui. Sur les pages thématiques le héros est plus court que sur l'accueil. */
.pg-sec{position:relative}

/* Bordure lumineuse qui suit la souris sur les cartes (variables --mx/--my posées par site.js). */
.card-light,.card-pub,.card-dark{position:relative}
.card-light::after,.card-pub::after,.card-dark::after{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(33,212,216,.75),rgba(33,212,216,.12) 55%,transparent 75%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:0;transition:opacity .35s ease;pointer-events:none}
.card-light:hover::after,.card-pub:hover::after,.card-dark:hover::after{opacity:1}
@media (hover:none){.card-light::after,.card-pub::after,.card-dark::after{display:none}}

/* Formulaire de contact (section #contact, fond sombre). Traitement : /contact.php. */
.ct-form{max-width:760px;margin:38px auto 0;padding:28px 28px 26px;border-radius:20px;background:linear-gradient(165deg,rgba(20,42,86,.7),rgba(8,22,52,.5));border:1px solid rgba(169,188,216,.16);text-align:left}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.ct-field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8DA2C2}
.ct-wide{grid-column:1/-1}
.ct-field input,.ct-field select,.ct-field textarea{font:500 15px 'Manrope',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#E8EFFA;background:rgba(4,16,42,.55);border:1px solid rgba(169,188,216,.28);border-radius:12px;padding:12px 14px;outline:none;width:100%;transition:border-color .25s,box-shadow .25s;letter-spacing:0;text-transform:none}
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{border-color:#21D4D8;box-shadow:0 0 0 4px rgba(33,212,216,.15)}
.ct-field select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2321D4D8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.ct-field select option{background:#0B1E42;color:#E8EFFA}
.ct-field textarea{resize:vertical;min-height:112px}
.ct-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}
.ct-send{position:relative;overflow:hidden;display:inline-flex;align-items:center;color:#04102A;background:linear-gradient(100deg,#21D4D8,#14B8C4);padding:15px 32px;border-radius:999px;font:700 15.5px 'Manrope',system-ui,sans-serif;border:0;cursor:pointer;box-shadow:0 16px 44px rgba(20,184,196,.34);transition:transform .3s,box-shadow .3s}
.ct-note{flex:1;min-width:220px;font-size:13px;line-height:1.5;color:#7A8DAB}
.ct-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.ct-alt{font-size:15px;color:#8DA2C2;margin:22px 0 0}
.ct-alt a{color:#A9BCD8;white-space:nowrap}
.ct-alt a:hover{color:#21D4D8}
@media (max-width:640px){.ct-grid{grid-template-columns:1fr}.ct-form{padding:22px 18px}.ct-send{width:100%;justify-content:center}}
@media print{.ct-form{display:none !important}}

/* Toute section passe devant les calques décoratifs absolus du haut de page (halo, grille de points), quelle que soit
   la hauteur du héros selon la largeur de fenêtre : plus de bord dur ni de teinte qui déborde sur une bande claire. */
section[id]{position:relative}

.ct-lab{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.ct-opt{font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:none;color:#697DA0}

/* Lignes du bloc « L'essentiel » : même grille que le tableau de conformité, sur fond sombre. */
.ess-row:hover{background:rgba(33,212,216,.06)}
@media (max-width:1000px){.ess-row{grid-template-columns:1fr !important}.ess-row>div:first-child{border-left:3px solid #14B8C4;padding-bottom:6px !important}.ess-row>div:last-child{padding-top:4px !important;padding-left:18px !important;border-left:3px solid rgba(20,184,196,.3)}}

/* Le lien d'évitement déplace le focus sur <main> : pas de contour, le déplacement vient du visiteur. */
main:focus{outline:none}

/* Revue du 28.09.2026. Pied de page : il touchait les bords de l'écran (max-width 1500 px sans marge latérale).
   Les pages légales ont leur propre pied, avec un padding en ligne, qui l'emporte sur cette règle. */
footer[style*="max-width:1500px"]{box-sizing:border-box;padding-left:clamp(16px,6vw,88px);padding-right:clamp(16px,6vw,88px);padding-bottom:28px}

/* Un <button> n'hérite pas de la police : sélecteur de langue et burger sortaient en Arial. */
button{font-family:inherit}

/* Héros : les 4 chiffres tombaient en 3 + 1 ; une rangée de 4, puis 2 × 2 sur mobile. */
.om-row:has([data-i18n="stats.0.0"]){grid-template-columns:repeat(4,minmax(0,1fr)) !important}
@media (max-width:640px){.om-row:has([data-i18n="stats.0.0"]){grid-template-columns:repeat(2,minmax(0,1fr)) !important}}

/* Tableau d'exemple TARDOC sur mobile : le montant sortait de l'écran (tableau de 560 px dans 326 px).
   Les 4 colonnes tiennent en resserrant, le libellé passe à la ligne. */
@media (max-width:640px){
  .pg-table{min-width:0;font-size:13px}
  .pg-table th{padding:12px 6px;font-size:10px;letter-spacing:.04em}
  .pg-table td{padding:10px 6px}
  .pg-table td.code{font-size:11px}
  .pg-table td.num{white-space:normal}
  .pg-table tr.amount td{font-size:15px}
}
