:root{--primary:#0b84f3;--primary-dark:#0564c4;--sky:#38bdf8;--navy:#09213f;--ink:#12263f;--muted:#61738a;--line:#dce8f4;--soft:#f4f9fe;--white:#fff;--success:#19a974;--shadow:0 24px 70px rgba(17,75,126,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}.public-home{margin:0!important;background:#fff;color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;line-height:1.6}.public-home button,.public-home input{font:inherit}.public-container{width:min(1180px,calc(100% - 40px));margin:auto}.public-header{height:78px;position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(220,232,244,.85)}.nav-shell{height:100%;display:flex;align-items:center;justify-content:space-between}.public-brand{display:inline-flex;align-items:center;gap:11px;color:var(--navy);font-size:21px;font-weight:800;text-decoration:none;letter-spacing:-.5px}.public-brand>span:last-child>span{color:var(--primary)}.brand-symbol{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--sky));color:#fff;box-shadow:0 8px 20px rgba(11,132,243,.27)}.brand-symbol i{transform:rotate(-15deg)}.public-nav{display:flex;align-items:center;gap:30px}.public-nav a{color:#39506a;text-decoration:none;font-size:14px;font-weight:650;transition:.2s}.public-nav a:hover{color:var(--primary)}.public-nav .nav-login{padding:10px 17px;border:1px solid #bfdbf4;border-radius:12px;color:var(--primary);display:inline-flex;gap:8px;align-items:center}.nav-toggle,.nav-toggle-label{display:none}
.hero{position:relative;overflow:hidden;padding:95px 0 85px;background:linear-gradient(135deg,#f8fcff 0%,#edf8ff 52%,#f9fcff 100%)}.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#acdafa 1px,transparent 1px);background-size:28px 28px;opacity:.28}.hero-glow{position:absolute;border-radius:50%;filter:blur(5px)}.hero-glow-one{width:520px;height:520px;background:rgba(52,190,255,.12);right:-120px;top:-210px}.hero-glow-two{width:320px;height:320px;background:rgba(19,132,243,.08);left:-160px;bottom:-120px}.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:75px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}.hero h1{font-size:clamp(42px,5vw,65px);line-height:1.08;letter-spacing:-2.8px;margin:20px 0 23px;color:var(--navy)}.hero h1 span{background:linear-gradient(90deg,var(--primary),#17aee9);-webkit-background-clip:text;color:transparent}.hero-lead{font-size:18px;max-width:620px;color:#526a83;margin:0 0 31px}.hero-actions{display:flex;gap:13px;flex-wrap:wrap}.button{border:0;border-radius:13px;padding:14px 21px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:linear-gradient(135deg,var(--primary),#0873d4);box-shadow:0 12px 28px rgba(11,132,243,.28)}.button-light{color:#244260;background:#fff;border:1px solid #d9e9f6;box-shadow:0 8px 22px rgba(28,76,117,.07)}.trust-row{display:flex;gap:19px;flex-wrap:wrap;margin-top:27px;color:#61768a;font-size:12px;font-weight:600}.trust-row i{color:var(--success);margin-right:5px}.tracking-card-wrap{position:relative}.tracking-card{position:relative;z-index:2;background:rgba(255,255,255,.97);padding:31px;border-radius:25px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.9)}.tracking-card-head{display:flex;align-items:center;gap:14px}.tracking-icon{width:49px;height:49px;border-radius:15px;background:#e7f5ff;color:var(--primary);display:grid;place-items:center;font-size:21px}.card-kicker{font-size:10px;color:#7690a8;font-weight:800;letter-spacing:1.2px}.tracking-card h2{font-size:24px;line-height:1.2;margin:2px 0 0;color:var(--navy)}.tracking-card>p{font-size:13px;color:#6b7f93;margin:15px 0 17px}.tracking-control{position:relative;display:grid;grid-template-columns:1fr auto;gap:9px}.tracking-control .input-icon{position:absolute;z-index:3;left:15px;top:13px;color:#8aa1b7}.tracking-control .ui-inputtext{width:100%;height:49px;border:1px solid #cedfeb!important;border-radius:12px!important;padding-left:40px!important;background:#f9fcff!important;box-shadow:none!important}.tracking-control .ui-inputtext:focus{border-color:var(--primary)!important}.tracking-control .ui-button{border-radius:12px!important;background:var(--primary)!important;border-color:var(--primary)!important;padding:0 17px!important}.tracking-help{border-top:1px solid #edf2f7;margin-top:19px;padding-top:14px;color:#8192a3;font-size:11px;text-align:center}.tracking-help i{color:var(--success);margin-right:5px}.floating-badge{position:absolute;z-index:3;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;color:#fff;box-shadow:0 10px 26px rgba(5,70,130,.2)}.badge-plane{right:-18px;top:-25px;background:linear-gradient(135deg,#35bdf2,#0b84f3);transform:rotate(8deg)}.badge-box{left:-22px;bottom:-20px;background:linear-gradient(135deg,#856cff,#6047d9);transform:rotate(-7deg)}.tracking-result-card{margin-top:18px;padding:18px;border-radius:15px;background:#f3faff;border:1px solid #cde8fa}.result-status{color:var(--success);font-size:12px;text-transform:uppercase}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);margin-right:6px}.result-number{font-size:18px;font-weight:800;color:var(--navy);margin:4px 0 15px}.result-route{display:grid;grid-template-columns:1fr 90px 1fr;align-items:center;gap:8px}.result-route div:last-child{text-align:right}.result-route small{display:block;color:#8294a5;font-size:9px}.result-route strong{font-size:12px}.route-line{height:1px;background:#b7d9ee;position:relative;text-align:center}.route-line i{position:relative;top:-12px;background:#f3faff;padding:5px;color:var(--primary)}.result-company{font-size:11px;color:#64788c;margin-top:13px}.stats-strip{background:var(--navy);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:25px 0}.stats-grid div{display:flex;flex-direction:column;align-items:center;border-right:1px solid rgba(255,255,255,.14)}.stats-grid div:last-child{border:0}.stats-grid strong{font-size:24px;color:#5bc8ff}.stats-grid span{font-size:11px;color:#bad0e4;text-transform:uppercase;letter-spacing:.7px}
.section{padding:95px 0}.section-heading{text-align:center;max-width:700px;margin:0 auto 48px}.section-heading h2,.business-copy h2{font-size:clamp(30px,4vw,43px);line-height:1.18;letter-spacing:-1.5px;color:var(--navy);margin:11px 0 13px}.section-heading p,.business-copy>p{color:var(--muted);margin:0}.services-section{background:#fff}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{position:relative;padding:27px 24px 26px;border:1px solid #e3edf6;border-radius:19px;background:#fff;transition:.25s;overflow:hidden}.service-card:hover{transform:translateY(-7px);box-shadow:0 20px 45px rgba(25,77,122,.1);border-color:#c7e2f7}.service-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-size:20px}.service-icon.blue{color:#087fe8;background:#e7f4ff}.service-icon.cyan{color:#079ab9;background:#e3fafd}.service-icon.violet{color:#7454df;background:#f0ebff}.service-icon.green{color:#159467;background:#e5f8f0}.service-card h3{font-size:18px;color:var(--navy);margin:19px 0 8px}.service-card p{font-size:13px;color:#6a7c8e;margin:0}.service-index{position:absolute;right:14px;bottom:-7px;font-size:46px;font-weight:900;color:#edf4f9}.business-section{background:var(--soft)}.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.business-visual{position:relative;height:450px;display:grid;place-items:center}.visual-orbit{position:absolute;border:1px dashed #a8d2ef;border-radius:50%}.orbit-one{width:340px;height:340px}.orbit-two{width:235px;height:235px}.central-package{width:110px;height:110px;border-radius:32px;display:grid;place-items:center;font-size:46px;color:#fff;background:linear-gradient(135deg,var(--primary),#24b5ef);box-shadow:0 24px 50px rgba(11,132,243,.3);z-index:2}.mode-card{position:absolute;background:#fff;border:1px solid #deebf5;border-radius:15px;padding:12px 16px;box-shadow:0 13px 30px rgba(37,82,120,.1);display:flex;align-items:center;gap:9px;font-size:12px;font-weight:750}.mode-card i{color:var(--primary);font-size:18px}.mode-air{top:44px;right:20px}.mode-road{bottom:72px;right:4px}.mode-sea{left:2px;top:190px}.check-list{list-style:none;padding:0;margin:25px 0}.check-list li{display:flex;align-items:center;gap:12px;margin:13px 0;color:#52677b}.check-list li>i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:var(--success);background:#ddf7ec;font-size:11px}.check-list strong{color:#243b53}.approval-note{display:block;margin-top:13px;color:#74889a}.journey-section{background:#fff}.journey-grid{display:grid;grid-template-columns:repeat(4,1fr);position:relative}.journey-grid:before{content:"";position:absolute;left:12%;right:12%;top:38px;border-top:1px dashed #add4ef}.journey-step{text-align:center;position:relative;padding:0 20px}.journey-step>span{position:absolute;top:-7px;left:calc(50% + 24px);z-index:2;background:var(--primary);color:#fff;width:21px;height:21px;border-radius:50%;font-size:10px;display:grid;place-items:center;border:3px solid #fff}.journey-step>i{position:relative;z-index:1;width:76px;height:76px;border-radius:22px;display:grid;place-items:center;margin:auto;background:#eff8ff;color:var(--primary);font-size:25px;border:1px solid #d5eaf8}.journey-step h3{margin:17px 0 5px;color:var(--navy)}.journey-step p{font-size:13px;color:#708295;margin:0}.cta-section{padding:20px 0 90px}.cta-card{background:linear-gradient(120deg,#086dce,#0b94ec);border-radius:26px;padding:44px 50px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:35px;box-shadow:0 25px 55px rgba(11,116,211,.24)}.eyebrow.light{color:#bde7ff}.cta-card h2{font-size:31px;margin:6px 0}.cta-card p{margin:0;color:#d8efff}.cta-actions{display:flex;gap:10px;flex-shrink:0}.button-white{background:#fff;color:var(--primary)}.button-outline-white{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.65)}
.public-footer{background:#071a2e;color:#a9bfd2;padding:62px 0 20px}.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:55px}.footer-brand{color:#fff;margin-bottom:16px}.footer-grid p{max-width:340px;font-size:13px}.footer-grid h3{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.8px;margin:4px 0 16px}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-grid a,.footer-link{color:#a9bfd2;text-decoration:none;font-size:13px;background:transparent;border:0;padding:0;cursor:pointer}.footer-grid a:hover,.footer-link:hover{color:#fff}.footer-grid span{font-size:13px}.footer-grid span i{color:#4cbdf5;margin-right:6px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:43px;padding-top:18px;display:flex;justify-content:space-between;font-size:11px}
.ui-dialog.registration-dialog,.registration-dialog{opacity:1!important;background:#fff!important;background-image:none!important;border:1px solid #dce8f4!important;border-radius:20px!important;overflow:hidden;box-shadow:0 28px 80px rgba(7,36,67,.28)!important}.registration-dialog .ui-dialog-titlebar{padding:19px 23px!important;background:#f8fcff!important;background-image:none!important;border:0!important;border-bottom:1px solid #e4edf5!important;opacity:1!important}.registration-dialog .ui-dialog-content{padding:0!important;background:#fff!important;background-image:none!important;opacity:1!important}.registration-dialog .registration-form{padding:23px;background:#fff!important;opacity:1!important}.ui-widget-overlay,.ui-dialog-mask{background:rgba(5,24,43,.62)!important;opacity:1!important;backdrop-filter:blur(4px)}.dialog-intro{padding:16px;border-radius:14px;background:#edf8ff;display:flex;align-items:center;gap:13px;margin-bottom:21px}.dialog-intro.company{background:#f1f5ff}.dialog-icon{width:43px;height:43px;border-radius:13px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:18px}.dialog-intro h3{margin:0;color:var(--navy);font-size:16px}.dialog-intro p{margin:2px 0 0;color:#687c90;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .field{display:flex;flex-direction:column;gap:6px}.form-grid .field label{font-size:12px;font-weight:700;color:#38516a}.form-grid .field .ui-inputfield{width:100%;border-radius:10px!important;border:1px solid #d3e1ec!important;padding:11px!important;box-shadow:none!important;background:#fff!important}.form-full{grid-column:1/-1}.form-notice{font-size:11px;color:#708397;background:#f7fafc;border-radius:10px;padding:10px 12px}.form-notice i{color:var(--primary);margin-right:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.dialog-actions .ui-button{border-radius:11px!important}.ui-messages{border-radius:10px!important;font-size:12px!important}
@media(max-width:980px){.public-nav{gap:17px}.hero-grid{grid-template-columns:1fr;gap:60px}.hero-copy{text-align:center}.hero-lead{margin-left:auto;margin-right:auto}.hero-actions,.trust-row{justify-content:center}.tracking-card-wrap{width:min(610px,100%);margin:auto}.service-grid{grid-template-columns:repeat(2,1fr)}.business-grid{grid-template-columns:1fr;gap:35px}.business-visual{order:2;height:390px}.business-copy{text-align:center}.check-list{display:inline-block;text-align:left}.journey-grid{grid-template-columns:repeat(2,1fr);gap:45px}.journey-grid:before{display:none}.cta-card{flex-direction:column;text-align:center}.footer-grid{grid-template-columns:2fr 1fr 1fr}.footer-grid>div:last-child{grid-column:1/-1}}
@media(max-width:720px){.public-container{width:min(100% - 28px,1180px)}.public-header{height:68px}.nav-toggle-label{display:grid;width:40px;height:40px;place-items:center;border-radius:10px;background:#edf7ff;color:var(--primary);cursor:pointer}.public-nav{position:absolute;top:68px;left:0;right:0;background:#fff;padding:18px 22px 24px;box-shadow:0 20px 30px rgba(10,45,80,.12);display:none;flex-direction:column;align-items:stretch;gap:3px}.public-nav a{padding:10px}.nav-toggle:checked~.public-nav{display:flex}.hero{padding:65px 0 67px}.hero h1{font-size:39px;letter-spacing:-1.7px}.hero-lead{font-size:16px}.hero-actions{flex-direction:column}.button{width:100%}.trust-row{flex-direction:column;gap:7px}.tracking-card{padding:22px}.tracking-control{grid-template-columns:1fr}.tracking-control .ui-button{height:47px}.floating-badge{display:none}.stats-grid{grid-template-columns:repeat(2,1fr);gap:20px}.stats-grid div:nth-child(2){border:0}.section{padding:70px 0}.service-grid{grid-template-columns:1fr}.business-visual{height:320px;transform:scale(.85)}.business-copy h2,.section-heading h2{font-size:30px}.journey-grid{grid-template-columns:1fr}.cta-section{padding-bottom:70px}.cta-card{padding:34px 21px}.cta-card h2{font-size:27px}.cta-actions{width:100%;flex-direction:column}.footer-grid{grid-template-columns:1fr;gap:30px}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:7px}.form-grid{grid-template-columns:1fr}.form-full{grid-column:auto}.dialog-actions{flex-direction:column-reverse}.dialog-actions .ui-button{width:100%}.registration-dialog{width:calc(100% - 24px)!important}.result-route{grid-template-columns:1fr 55px 1fr}}
@media(max-width:420px){.hero h1{font-size:34px}.tracking-card-head{align-items:flex-start}.stats-grid strong{font-size:21px}.business-visual{margin-left:-30px;margin-right:-30px}.mode-air{right:-5px}.mode-road{right:-10px}.mode-sea{left:-8px}}

/* PrimeFaces charge certains styles de composant après la feuille de la page.
   Ces règles finales garantissent une surface réellement opaque à chaque niveau. */
body.public-home div.ui-dialog.registration-dialog,
body.public-home div.ui-dialog.registration-dialog.ui-widget-content {
    background-color: rgb(255, 255, 255) !important;
    background-image: none !important;
    opacity: 1 !important;
    isolation: isolate;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar,
body.public-home div.ui-dialog.registration-dialog > .ui-dialog-content,
body.public-home div.ui-dialog.registration-dialog .ui-widget-content,
body.public-home div.ui-dialog.registration-dialog form.registration-form {
    background-color: rgb(255, 255, 255) !important;
    background-image: none !important;
    opacity: 1 !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar {
    background-color: rgb(248, 252, 255) !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-content {
    min-height: 120px;
}

/* Harmonisation finale des dialogues d'inscription avec l'espace connecté. */
body.public-home div.ui-dialog.registration-dialog {
    border-color: #b8dced !important;
    box-shadow: 0 28px 78px rgba(5, 48, 78, .32) !important;
}
body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar {
    color: #073b5c !important;
    background-color: #e7f7ff !important;
    background-image: linear-gradient(135deg, #edfaff 0%, #d9f1fc 100%) !important;
    border-bottom-color: #baddeb !important;
}
body.public-home div.ui-dialog.registration-dialog > .ui-dialog-content,
body.public-home div.ui-dialog.registration-dialog form.registration-form {
    color: #24485d !important;
    background-color: #ffffff !important;
}
body.public-home .registration-dialog .form-grid {
    gap: 18px 20px !important;
}
body.public-home .registration-dialog .form-grid .field {
    min-width: 0;
}
body.public-home .registration-dialog .form-grid .field .ui-inputfield {
    min-height: 44px !important;
    color: #183e55 !important;
    background-color: #fafdff !important;
    border-color: #bdd8e6 !important;
}
body.public-home .registration-dialog .form-grid .field .ui-inputfield:focus {
    background-color: #ffffff !important;
    border-color: #0b84f3 !important;
    box-shadow: 0 0 0 3px rgba(11,132,243,.13) !important;
}
.google-address-source {
    display: none !important;
}

.google-place-autocomplete {
    display: block;
    width: 100%;
    min-height: 44px;
    color-scheme: light;
}

/* Lisibilité des actions et formulaires de la landing page. */
.public-home .registration-google-button {
    width: min(100%, 390px);
    min-height: 48px;
    margin: 3px auto 5px;
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid #c7d7e3;
    border-radius: 12px;
    color: #29465b;
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(31, 73, 105, .08);
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.public-home .registration-google-button:hover,
.public-home .registration-google-button:focus {
    border-color: #4285f4;
    color: #183e55;
    background: #fafdff;
    box-shadow: 0 8px 20px rgba(66, 133, 244, .17);
    transform: translateY(-1px);
    outline: none;
}

.public-home .registration-google-button .pi-google {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #ffffff;
    background: conic-gradient(from -45deg, #4285f4 0 25%, #34a853 0 50%, #fbbc05 0 75%, #ea4335 0);
    font-size: 14px;
    box-shadow: inset 0 0 0 5px #ffffff;
}

.public-home .registration-google-button span {
    color: inherit;
}

.public-home .tracking-control .ui-button,
.public-home .tracking-control .ui-button .ui-button-text,
.public-home .tracking-control .ui-button .ui-button-icon {
    color: #ffffff !important;
}

.public-home .tracking-control .ui-button {
    background: #0b84f3 !important;
    border-color: #0b84f3 !important;
}

.public-home .tracking-control .ui-button:hover {
    background: #0564c4 !important;
    border-color: #0564c4 !important;
}

.public-home .registration-dialog .ui-dialog-titlebar-close {
    width: 34px !important;
    height: 34px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 10px !important;
    color: #31536a !important;
    background: #ffffff !important;
    opacity: 1 !important;
    position: relative !important;
    text-decoration: none !important;
}

.public-home .registration-dialog .ui-dialog-titlebar-close:hover {
    color: #ffffff !important;
    background: #0b84f3 !important;
}

.public-home .registration-dialog .ui-dialog-titlebar-close > span {
    display: none !important;
}

.public-home .registration-dialog .ui-dialog-titlebar-close::before,
.public-home .registration-dialog .ui-dialog-titlebar-close::after {
    content: "";
    position: absolute;
    left: 9px;
    top: 16px;
    width: 16px;
    height: 2px;
    border-radius: 2px;
    background: #31536a;
    transform: rotate(45deg);
}

.public-home .registration-dialog .ui-dialog-titlebar-close::after {
    transform: rotate(-45deg);
}

.public-home .registration-dialog .ui-dialog-titlebar-close:hover::before,
.public-home .registration-dialog .ui-dialog-titlebar-close:hover::after {
    background: #ffffff;
}

.public-home .registration-dialog .registration-form {
    max-height: min(76vh, 690px);
    overflow-y: auto;
}

.public-home .registration-dialog .form-grid .field label {
    font-weight: 800 !important;
    color: #24485d !important;
}

.public-home .registration-dialog .dialog-actions .landing-dialog-submit.ui-button,
.public-home .registration-dialog .dialog-actions .landing-dialog-submit.ui-button:hover,
.public-home .registration-dialog .dialog-actions .landing-dialog-submit.ui-button:focus {
    min-width: 185px !important;
    min-height: 44px !important;
    padding: 0 19px !important;
    border: 1px solid #0b84f3 !important;
    border-radius: 11px !important;
    color: #ffffff !important;
    background: #0b84f3 !important;
    box-shadow: 0 8px 18px rgba(11, 132, 243, .22) !important;
    opacity: 1 !important;
}

.public-home .registration-dialog .dialog-actions .landing-dialog-submit.ui-button:hover {
    border-color: #0564c4 !important;
    background: #0564c4 !important;
}

.public-home .registration-dialog .dialog-actions .landing-dialog-submit .ui-button-text,
.public-home .registration-dialog .dialog-actions .landing-dialog-submit .ui-button-icon {
    color: #ffffff !important;
}

.public-home .registration-dialog .dialog-actions .landing-dialog-cancel.ui-button,
.public-home .registration-dialog .dialog-actions .landing-dialog-cancel.ui-button:hover,
.public-home .registration-dialog .dialog-actions .landing-dialog-cancel.ui-button:focus {
    min-width: 110px !important;
    min-height: 44px !important;
    padding: 0 17px !important;
    border: 1px solid #9bb9cc !important;
    border-radius: 11px !important;
    color: #31536a !important;
    background: #ffffff !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

.public-home .registration-dialog .dialog-actions .landing-dialog-cancel.ui-button:hover {
    border-color: #0b84f3 !important;
    color: #0b84f3 !important;
    background: #eef8ff !important;
}

.public-home .registration-dialog .dialog-actions .landing-dialog-cancel .ui-button-text {
    color: inherit !important;
}

/* Carte publique des entreprises */
.map-section {
    background: linear-gradient(180deg, #f4f9fe 0%, #ffffff 100%);
}

.map-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 24px;
}

.map-title {
    margin: 0;
    text-align: left;
}

.map-title p {
    margin-left: 0;
}

.map-location-button {
    flex: 0 0 auto;
}

.map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 22px;
    margin-bottom: 17px;
    color: #52677b;
    font-size: 12px;
    font-weight: 700;
}

.map-legend > span {
    display: flex;
    align-items: center;
    gap: 7px;
}

.legend-marker {
    width: 25px;
    height: 25px;
    border-radius: 9px 9px 12px 12px;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 11px;
    font-style: normal;
}

.legend-marker.headquarters { background: #0b84f3; }
.legend-marker.agency { background: #7454df; }
.legend-marker.pickup { background: #19a974; }
.legend-marker.visitor { background: #ef4444; border-radius: 50%; }

.company-map-shell {
    position: relative;
    overflow: hidden;
    border: 1px solid #cfe1ef;
    border-radius: 24px;
    background: #e9f2f8;
    box-shadow: 0 25px 60px rgba(17, 75, 126, .16);
}

.company-map {
    width: 100%;
    min-height: 520px;
}

.nearest-company-card {
    position: absolute;
    z-index: 5;
    left: 20px;
    bottom: 20px;
    width: min(330px, calc(100% - 40px));
    padding: 17px 19px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(255, 255, 255, .75);
    border-radius: 16px;
    color: #28465e;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 14px 35px rgba(7, 42, 72, .2);
    backdrop-filter: blur(8px);
}

.nearest-kicker {
    color: var(--primary);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 1px;
}

.nearest-company-card strong {
    margin: 3px 0;
    color: var(--navy);
    font-size: 16px;
}

.nearest-company-card small,
.nearest-company-card > span:last-child {
    color: #687d90;
    font-size: 11px;
}

.landing-map-data {
    display: none;
}

.map-unavailable {
    min-height: 280px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px dashed #b8d5e9;
    border-radius: 22px;
    color: #687d90;
    background: #f5faff;
}

.map-unavailable i {
    color: var(--primary);
    font-size: 38px;
}

.map-unavailable strong {
    color: var(--navy);
    font-size: 18px;
}

.map-popup {
    min-width: 240px;
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 11px;
    color: #52677b;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.map-popup-logo,
.map-popup-fallback {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    object-fit: contain;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--primary);
    font-weight: 900;
}

.map-popup span,
.map-popup small,
.map-popup strong {
    display: block;
}

.map-popup span {
    color: var(--primary);
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.map-popup strong {
    color: var(--navy);
    font-size: 14px;
}

.map-popup small,
.map-popup p,
.map-popup a {
    margin: 2px 0;
    font-size: 11px;
}

/* Avis clients vérifiés */
.reviews-section {
    background: #f4f9fe;
}

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.review-card {
    padding: 23px;
    border: 1px solid #dce8f4;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(17, 75, 126, .08);
}

.review-company {
    display: flex;
    align-items: center;
    gap: 11px;
}

.review-company-logo {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 12px;
    color: var(--primary);
    background: #e7f4ff;
}

.review-company-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.review-company strong,
.review-company small {
    display: block;
}

.review-company strong {
    color: var(--navy);
    font-size: 13px;
}

.review-company small {
    color: #7a8da0;
    font-size: 10px;
}

.review-stars {
    display: flex;
    gap: 3px;
    margin: 18px 0 9px;
    color: #f7ad19;
}

.review-card > p {
    min-height: 68px;
    margin: 0;
    color: #52677b;
    font-size: 13px;
}

.review-author {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 15px;
    color: #304c63;
    font-size: 11px;
}

.review-author > span {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--primary);
    font-weight: 800;
}

.review-author i {
    color: var(--primary);
}

@media (max-width: 980px) {
    .reviews-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
    .map-heading { align-items: stretch; flex-direction: column; }
    .map-title { text-align: center; }
    .map-title p { margin-left: auto; }
    .company-map { min-height: 460px; }
    .reviews-grid { grid-template-columns: 1fr; }
}

/* Le site public charge sa propre feuille : même en-tête bleu et même fermeture. */
body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar {
    position: relative !important;
    min-height: 58px !important;
    padding: 17px 62px 17px 22px !important;
    display: flex !important;
    align-items: center !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #168fc9 0%, #087ab5 100%) !important;
    background-color: #168fc9 !important;
    border: 0 !important;
    border-bottom: 1px solid #086fa4 !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-title {
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close {
    position: absolute !important;
    top: 12px !important;
    right: 14px !important;
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    border: 1px solid rgba(255, 255, 255, .48) !important;
    border-radius: 10px !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .16) !important;
    box-shadow: none !important;
    opacity: 1 !important;
    cursor: pointer !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close:hover,
body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close:focus {
    border-color: #ffffff !important;
    background: rgba(255, 255, 255, .28) !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close > span {
    display: none !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close::before,
body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close::after {
    content: "" !important;
    position: absolute !important;
    top: 15px !important;
    left: 8px !important;
    width: 16px !important;
    height: 2px !important;
    display: block !important;
    border-radius: 2px !important;
    background: #ffffff !important;
    transform: rotate(45deg) !important;
}

body.public-home div.ui-dialog.registration-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-close::after {
    transform: rotate(-45deg) !important;
}

.company-directory-section { background: #f6f9fd; }
.company-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.company-directory-tools { max-width: 920px; margin: 0 auto 10px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0; padding: 8px; border: 1px solid #d8e7f3; border-radius: 16px; background: #fff; box-shadow: 0 12px 32px rgba(6, 43, 69, .07); }
.company-directory-tools > label { padding: 0 12px; color: #0b84f3; }
.company-directory-tools > input { min-width: 0; height: 44px; padding: 0 8px; border: 0; outline: 0; color: #173e57; background: transparent; font: inherit; }
.company-directory-tools > input::placeholder { color: #8094a7; }
.company-compare-button.ui-button { min-height: 42px; border-radius: 11px !important; color: #fff !important; background: #0b84f3 !important; border-color: #0b84f3 !important; }
.company-compare-button .ui-button-text, .company-compare-button .ui-button-icon { color: #fff !important; }
.company-compare-help { margin: 0 auto 24px; text-align: center; color: #71869a; font-size: 12px; }
.company-compare-help i { color: #0b84f3; }
.company-directory-card { overflow: hidden; border: 1px solid #dce8f4; border-radius: 20px; background: #fff; box-shadow: 0 14px 35px rgba(6, 43, 69, .08); transition: transform .2s, box-shadow .2s; }
.company-directory-card[hidden] { display: none !important; }
.company-directory-card:hover { transform: translateY(-5px); box-shadow: 0 20px 44px rgba(6, 43, 69, .14); }
.company-card-cover { min-height: 96px; padding: 18px; display: flex; align-items: flex-start; justify-content: space-between; background: linear-gradient(135deg, #e8f5ff, #f0f5ff); }
.company-card-logo { width: 68px; height: 68px; display: grid; place-items: center; overflow: hidden; border: 5px solid #fff; border-radius: 17px; color: #0b84f3; background: #fff; box-shadow: 0 8px 22px rgba(11, 132, 243, .16); }
.company-card-logo img { width: 100%; height: 100%; object-fit: contain; }
.company-card-logo i { font-size: 30px; }
.company-verified { padding: 6px 9px; border-radius: 999px; color: #08745a; background: #dff8ef; font-size: 11px; font-weight: 800; }
.company-card-content { padding: 20px; }
.company-compare-choice { margin: -4px 0 13px; display: flex; align-items: center; gap: 8px; color: #526d81; font-size: 12px; font-weight: 750; }
.company-card-content > small { color: #0b84f3; font-weight: 800; letter-spacing: .08em; }
.company-card-content h3 { margin: 6px 0 14px; color: #062b45; font-size: 20px; }
.company-card-content p { margin: 7px 0; display: flex; gap: 9px; color: #607489; font-size: 14px; }
.company-card-content p i { margin-top: 2px; color: #0b84f3; }
.company-profile-link { margin-top: 18px; padding-top: 15px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #e6edf5; color: #0b84f3; font-weight: 800; text-decoration: none; }
.company-directory-empty { padding: 35px; display: flex; justify-content: center; gap: 12px; border: 1px dashed #b9cce0; border-radius: 18px; color: #607489; background: #fff; }
.company-search-empty { display: none; margin-top: 20px; }
.company-comparison-dialog .ui-dialog-titlebar { color: #fff !important; background: linear-gradient(135deg, #0877d8, #0b95ef) !important; }
.company-comparison-dialog .ui-dialog-titlebar-close, .company-comparison-dialog .ui-dialog-titlebar-close .ui-icon { color: #fff !important; }
.company-comparison-content { padding: 8px; }
.company-comparison-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.company-comparison-column { min-width: 0; padding: 20px; border: 1px solid #dce8f4; border-radius: 16px; background: #fff; }
.company-comparison-logo { width: 60px; height: 60px; margin-bottom: 12px; display: grid; place-items: center; overflow: hidden; border-radius: 14px; color: #0b84f3; background: #e9f5ff; }
.company-comparison-logo img { width: 100%; height: 100%; object-fit: contain; }
.company-comparison-column > small { color: #0b84f3; font-weight: 800; }
.company-comparison-column h3 { min-height: 48px; margin: 4px 0 17px; color: #062b45; }
.company-comparison-column dl { margin: 0; }
.company-comparison-column dt { margin-top: 13px; color: #274b63; font-size: 12px; font-weight: 800; }
.company-comparison-column dt i { width: 19px; color: #0b84f3; }
.company-comparison-column dd { margin: 4px 0 0 19px; color: #667c8f; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.map-popup-profile { margin-top: 8px; padding: 7px 10px; display: inline-block; border-radius: 8px; color: #fff !important; background: #0b84f3; text-decoration: none; font-weight: 700; }

@media (max-width: 980px) { .company-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .company-directory-grid { grid-template-columns: 1fr; } .company-directory-tools { grid-template-columns: auto minmax(0, 1fr); } .company-directory-tools .company-compare-button { grid-column: 1 / -1; margin-top: 7px; } .company-comparison-grid { grid-template-columns: 1fr; } }
