/* Habillage public : graphite, ivoire et or patiné. Chargé uniquement hors jeu. */
html body { --public-gold: #C5AC77; --public-ivory: #E7DFCB; --public-line: #41423E; --public-muted: #ABA99F; background: #151719 !important; color: #D7D4C8; }
html body.public-home { background: #151719 !important; }
.public-nav, #public-main, #public-main *, .public-nav * { box-sizing: border-box; }
body .public-nav { flex-direction: row; align-items: center; position: relative; z-index: 2; max-width: 1440px; margin-inline: auto; padding: 22px 42px; gap: 22px; border-bottom: 1px solid #FFFFFF12; }
body .public-nav .cx-brand { gap: 12px; }
.public-nav .cx-brand strong { color: #E7DFCB; font-size: 14px; letter-spacing: 2.5px; }
.public-nav .cx-brand small { color: #AAA694; font-size: 8px; letter-spacing: 1.7px; margin-top: 3px; }
body .public-nav .navigation { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; }
body .public-nav .navigation a { padding: 8px 10px; color: #B7B7AC; border-radius: 2px; font-size: 12px; }
body .public-nav .navigation a[aria-current='page'] { color: #DDC58F; background: #FFFFFF06; box-shadow: none; border-bottom: 1px solid #97835C; }
body .public-nav .navigation a:hover { background: #FFFFFF08; color: #E7DFCB; }
.public-nav-access { display: flex; align-items: center; gap: 18px; font-size: 11px; white-space: nowrap; }
.public-nav-access a { text-decoration: none; color: #D4C9AA; }
.public-nav-access .public-nav-signup { display: inline-flex; gap: 20px; padding: 9px 13px; background: #3B372D; border: 1px solid #74684D; border-radius: 2px 8px 2px 8px; }
#public-main { max-width: 1360px; margin-inline: auto; padding: 0 42px; }
.public-notices { display: flow-root; }
.public-notices:empty { display: none; }
body .public-notices > .w3-container { padding: 20px 0 0 !important; }
body .public-notices .searchera { padding: 9px 14px; background: #262829; color: #CDB984; border: 1px solid #49473F !important; border-radius: 2px 8px 2px 8px; font-size: 15px !important; text-align: left; }
body .public-notices .fond_bleu { padding: 14px 18px; background: #272D30 !important; border-color: #494E4C !important; color: #CCCABD !important; border-radius: 3px; font-size: 13px !important; }
body .public-notices .margin_2 { margin-inline: 0 !important; }
.public-entry { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0,1fr) 365px; align-items: center; gap: 64px; min-height: 600px; padding: 64px 0 58px; overflow: clip; }
/* Réutiliser le globe existant, désaturé, sans charger une nouvelle illustration. */
.public-entry::before { content: ''; position: absolute; z-index: -2; width: 790px; height: 620px; left: 18%; top: -3%; background: url('images/connexion/fondHQ.png') center / cover; filter: grayscale(.88); opacity: .35; pointer-events: none; }
.public-entry::after { content: ''; position: absolute; inset: -1px -42px; z-index: -1; background: linear-gradient(90deg,#151719 0%,#151719a3 32%,#15171920 58%,#151719 98%),linear-gradient(0deg,#151719 0%,transparent 35%,transparent 70%,#151719 100%); pointer-events: none; }
.public-intro { min-width: 0; padding-block: 18px; }
.public-kicker { color: #AD9A70; font: 500 10px/1.7 var(--cx-font); text-transform: uppercase; letter-spacing: 2.2px; }
body .public-intro h1 { color: #E7DFCB; font: 400 clamp(42px,4.3vw,64px)/1.1 Georgia,serif; letter-spacing: -1.8px; margin: 24px 0; text-wrap: initial; }
.public-intro h1 em { color: #CDB681; font-style: normal; }
.public-intro > p { max-width: 420px; color: #AAAFA9; font-size: 15px; line-height: 1.9; margin: 0; }
.public-intro-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 28px; }
.public-primary { display: inline-flex; align-items: center; justify-content: space-between; gap: 35px; padding: 12px 20px; color: #191B1A; background: #C5AC77; border: 1px solid #D1BA8C; border-radius: 2px 9px 2px 9px; font-size: 12px; font-weight: 600; text-decoration: none; }
.public-primary:hover { background: #DFC899; }
.public-text-link { font-size: 12px; color: #C6B898; text-decoration: none; }
.public-text-link:hover { color: #EFDEB6; }
.public-intro-actions .public-text-link > span { margin-left: 12px; }
.public-nations { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 38px; }
.public-nations img { display: block; width: 32px; height: 21px; object-fit: cover; opacity: .8; border: 1px solid #FFFFFF28; border-radius: 1px; }
.public-panel { background: #222527; border: 1px solid #484941; border-radius: 2px 14px 2px 14px; }
body .public-panel h2 { color: #E7DFCB; font: 400 29px/1.3 Georgia,serif; margin: 0 0 24px; }
.public-login { position: relative; min-width: 0; padding: 28px; box-shadow: 0 20px 70px #0003; scroll-margin-top: 22px; }
.public-field { min-width: 0; }
.public-field + .public-field { margin-top: 17px; }
.public-field label { display: block; color: #BCB8A9; font-size: 12px; margin-bottom: 8px; }
body.public-home .public-field :is(input,select) { display: block; width: 100%; max-width: 100%; min-width: 0; margin: 0; padding: 11px 12px; background: #181C1E !important; border: 1px solid #54574E !important; border-radius: 3px; color: #E4DCC8 !important; text-align: left; font: 400 14px/1.5 var(--cx-font); }
body.public-home .public-field :is(input,select):focus { border-color: #C5AC77; }
body.public-home input.pushbutton { display: block; width: 100%; margin: 0; padding: 12px 18px; color: #F0E1BF; background: #4B4332; border: 1px solid #9B8559; border-radius: 2px 8px 2px 8px; font: 600 13px/1.5 var(--cx-font); box-shadow: none; text-shadow: none; }
body.public-home input.pushbutton:hover { background: #5C5038; border-color: #C0A16A; color: #F0E1BF; }
.public-captcha { margin: 20px 0; min-width: 0; }
.public-captcha .cf-turnstile { max-width: 100%; }
.public-login-signup { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-top: 20px; margin-top: 23px; border-top: 1px solid #FFFFFF12; color: #AAA99C; font-size: 11px; text-decoration: none; }
.public-login-signup strong { color: #CDB782; font-weight: 500; }
.public-features { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #FFFFFF18; border-bottom: 1px solid #FFFFFF18; }
.public-features article { display: flex; align-items: center; gap: 18px; padding: 25px 20px; min-width: 0; }
.public-features article + article { border-left: 1px solid #FFFFFF12; }
.public-features img { width: 43px; height: 45px; object-fit: contain; opacity: .85; }
body .public-features h2 { color: #D8C9A6; font: 400 22px/1.3 Georgia,serif; margin: 0 0 6px; }
.public-features p { margin: 0; color: #9DA39D; font-size: 11px; line-height: 1.7; }
.public-registration { margin: 44px 0 0; padding: 32px; scroll-margin-top: 24px; }
.public-registration-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px solid #FFFFFF12; }
body .public-registration-heading h2 { margin: 0; }
.public-registration-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 28px; }
.public-registration-fields .public-field { margin: 0; }
.public-country-field { grid-column: 1/-1; max-width: calc(50% - 14px); width: 100%; }
.public-field-help { color: #91978E; margin: 18px 0 0; font-size: 10px; line-height: 1.8; }
.public-registration-submit { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; padding-top: 20px; margin-top: 18px; border-top: 1px solid #FFFFFF12; }
.public-registration-submit .public-captcha { margin: 0; }
body.public-home .public-registration-submit input.pushbutton { width: 230px; max-width: 100%; }
.public-beta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 15px; margin: 28px 0 0; padding: 20px 2px; }
body .public-beta h2 { color: #ABA99B; font: 500 13px/1.5 var(--cx-font); margin: 0; }
body:has(.public-nav) footer { max-width: 1200px; margin-inline: auto; padding-top: 28px; color: #858B83; font-size: 10px !important; }
/* Les pages publiques existantes héritent de la navigation et des surfaces, avec leur contenu intact. */
body:has(.public-nav):not(.public-home) > .w3-col:empty { display: none; }
body:has(.public-nav):not(.public-home) > .w3-col:is(.l8,.l6) { float: none; width: min(1060px,calc(100% - 48px)); margin: 36px auto 0; padding-inline: 0; display: flow-root; }
body:has(.public-nav):not(.public-home) .fond_connexion { color: #D5D1C3; background: #222527; border-radius: 2px 12px 2px 12px; text-align: left; }
body:has(.public-nav):not(.public-home) .fond_connexion > .w3-xxlarge { color: #E7DFCB; font: 400 29px/1.3 Georgia,serif !important; padding: 12px 4px 18px; text-align: left !important; }
body:has(.public-nav):not(.public-home) .fond_connexion .font-courier { font-size: 13px !important; line-height: 1.9; }
body:has(.public-nav) .pantheon_tableau { width: 100%; color: #D6CFBD; font-size: 13px; }
body:has(.public-nav) .pantheon_tableau td { padding: 12px 8px; border-bottom: 1px solid #FFFFFF12; }
body:has(.public-nav) .pantheon_pseudo { background: #1A1E20; color: #BAA16A; }
@media(max-width: 1100px) {
 body .public-nav { flex-wrap: wrap; padding: 20px 28px; }
 body .public-nav .navigation { order: 3; flex-basis: 100%; justify-content: center; }
 .public-nav-access { margin-left: auto; }
 #public-main { padding-inline: 28px; }
 .public-entry { gap: 32px; grid-template-columns: minmax(0,1fr) 335px; }
 body .public-intro h1 { font-size: 46px; }
 .public-login { padding: 16px; }
 .public-features article { gap: 12px; padding: 22px 12px; }
}
@media(max-width: 760px) {
 .public-entry { grid-template-columns: minmax(0,1fr); gap: 30px; padding-block: 38px; }
 .public-entry::before { width: 100%; height: 500px; left: 0; top: 0; }
 .public-entry::after { inset-inline: -20px; }
 .public-intro { padding: 0; }
 body .public-intro h1 { font-size: clamp(38px,6.4vw,49px); letter-spacing: -1.2px; margin-block: 20px; }
 .public-nations { margin-top: 26px; }
 .public-login { width: 100%; }
 .public-features { grid-template-columns: minmax(0,1fr); }
 .public-features article { padding: 20px 8px; gap: 18px; }
 .public-features article + article { border-left: 0; border-top: 1px solid #FFFFFF12; }
 .public-registration { padding: 24px; margin-top: 30px; }
 .public-registration-fields { grid-template-columns: minmax(0,1fr); gap: 18px; }
 .public-country-field { max-width: 100%; }
}
@media(max-width: 480px) {
 body .public-nav { padding: 18px 18px 14px; gap: 18px 12px; }
 body .public-nav .cx-brand strong { font-size: 12px; letter-spacing: 1.8px; }
 .public-nav .cx-brand small { font-size: 7px; letter-spacing: 1px; }
 .public-nav .cx-brand-watch { width: 33px; height: 38px; }
 .public-nav-access { gap: 8px; }
 .public-nav-access > a:first-child { display: none; }
 .public-nav-access .public-nav-signup { padding: 8px 9px; gap: 9px; font-size: 10px; }
 body .public-nav .navigation { gap: 2px; justify-content: space-between; }
 body .public-nav .navigation a { padding: 7px 9px; font-size: 11px; }
 #public-main { padding-inline: 18px; overflow: clip; }
 .public-kicker { font-size: 9px; letter-spacing: 1.3px; }
 .public-intro > p { font-size: 13px; }
 .public-intro-actions { gap: 18px; }
 .public-nations { gap: 13px; }
 .public-login, .public-registration { padding: 20px; }
 .public-registration-submit { display: block; }
 body.public-home .public-registration-submit input.pushbutton { margin-top: 20px; width: 100%; }
 body:has(.public-nav):not(.public-home) > .w3-col:is(.l8,.l6) { width: calc(100% - 28px); }
}
@media(prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Le widget normal mesure 300 px ; permettre son défilement local sur les écrans les plus étroits. */
.public-captcha { max-width: 100%; overflow-x: auto; }

@media(max-width: 380px) { .public-login, .public-registration { padding: 10px; } }

@media(max-width: 380px) { #public-main { padding-inline: 10px; } }
