:root {
    --blue: #052c3b;
    --deep-blue: #021b3d;
    --green: #008b8f;
    --green-dark: #00747a;
    --orange: #ff7a1a;
    --lime: #93d94e;
    --sand: #f6f1e8;
    --cream: #fbf8f1;
    --ink: #071d35;
    --muted: #667782;
    --line: #dce7e8;
    --white: #ffffff;
    --shadow: 0 18px 45px rgba(5, 44, 59, .14);
    --strong-shadow: 0 22px 60px rgba(0, 0, 0, .16);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    background: var(--cream);
    color: var(--ink);
}

main,
.container {
    flex: 1;
}

a {
    color: var(--green);
    text-decoration: none;
}

/* =========================
   HEADER
========================= */

.top {
    position: sticky;
    top: 0;
    z-index: 50;
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 54px;
    background: rgba(255, 255, 255, .98);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(5, 44, 59, .08);
    box-shadow: 0 6px 22px rgba(0, 0, 0, .04);
}

.brand {
    display: flex;
    gap: 10px;
    align-items: center;
    font-weight: 900;
    color: var(--blue);
    font-size: 20px;
    letter-spacing: -.3px;
}

.logo {
    font-size: 30px;
}

.top nav {
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap;
}

.top nav a {
    position: relative;
    font-weight: 900;
    font-size: 14px;
    color: var(--deep-blue);
    text-transform: uppercase;
    letter-spacing: .4px;
}

.top nav a:hover {
    color: var(--green);
}

.top nav a:first-child {
    color: var(--green);
}

.top nav a:first-child::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -28px;
    height: 4px;
    background: var(--green);
    border-radius: 999px;
}

/* =========================
   LAYOUT
========================= */

.container {
    width: 100%;
    margin: 0 auto;
    padding: 0 0 90px;
}

/* =========================
   HERO STYLE 8443
========================= */

.hero {
    position: relative;
    min-height: 650px;
    display: grid;
    grid-template-columns: minmax(340px, 620px) 1fr;
    gap: 40px;
    align-items: center;
    overflow: hidden;
    padding: 95px 6vw 145px;
    color: var(--deep-blue);
    background:
        linear-gradient(90deg,
            rgba(255, 255, 255, .96) 0%,
            rgba(255, 255, 255, .86) 24%,
            rgba(255, 255, 255, .35) 48%,
            rgba(255, 255, 255, .08) 72%),
        linear-gradient(180deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(246, 241, 232, .65) 88%,
            rgba(246, 241, 232, 1) 100%),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    border-radius: 0;
    box-shadow: none;
}

.hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 150px;
    background: linear-gradient(180deg, rgba(246, 241, 232, 0), var(--cream));
    pointer-events: none;
}

.hero > div:first-child {
    position: relative;
    z-index: 2;
    max-width: 610px;
}

.hero h1 {
    margin: 0 0 18px;
    font-size: clamp(42px, 5vw, 66px);
    line-height: .96;
    letter-spacing: -2px;
    font-weight: 950;
    color: var(--deep-blue);
}

.hero h1::before {
    content: "VOTRE BIEN ENTRE DE BONNES MAINS";
    display: block;
    margin-bottom: 18px;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: 4px;
    color: var(--green);
    font-weight: 950;
}

.hero h1::after {
    content: "d’Outre-mer";
    display: block;
    width: max-content;
    margin-top: 8px;
    padding-bottom: 5px;
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--green-dark);
    border-bottom: 4px solid var(--orange);
}

.hero p {
    max-width: 560px;
    margin: 22px 0 0;
    font-size: 18px;
    line-height: 1.75;
    color: #082139;
}

.hero p:last-child {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 34px;
}

/* On masque le panneau texte blanc d'origine si l'ancien index.php existe encore */
.panel {
    display: none;
}

/* Si tu as remplacé le panneau par .hero-image, on le masque aussi
   car l'image est maintenant en fond pleine largeur */
.hero-image {
    display: none;
}

/* =========================
   BUTTONS
========================= */

.btn,
button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    padding: 0 28px;
    border: 0;
    border-radius: 999px;
    background: var(--green);
    color: white;
    font-weight: 900;
    font-size: 15px;
    cursor: pointer;
    box-shadow: 0 14px 28px rgba(0, 139, 143, .24);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.btn:hover,
button:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(0, 139, 143, .32);
    background: var(--green-dark);
}

.btn.secondary {
    background: white;
    color: var(--green-dark);
    border: 1.5px solid var(--green);
    box-shadow: none;
}

.btn.secondary:hover {
    background: #ecfbf7;
}

.btn.light {
    background: #eaf7f2;
    color: var(--green);
}

.btn.danger {
    background: #ba2d2d;
}

/* =========================
   CARDS HOME
========================= */

.cards {
    position: relative;
    z-index: 5;
    width: min(1180px, 88vw);
    margin: -105px auto 55px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.card {
    position: relative;
    min-height: 270px;
    overflow: hidden;
    background: var(--white);
    border: 0;
    border-radius: 22px;
    padding: 34px 30px;
    box-shadow: var(--strong-shadow);
}

.card::before {
    content: "";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: var(--green);
}

.card:nth-child(2)::before {
    background: var(--orange);
}

.card:nth-child(3)::before {
    background: #2c8a39;
}

.card h3 {
    max-width: 210px;
    margin: 0 0 12px;
    font-size: 28px;
    line-height: .9;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--green);
}

.card:nth-child(2) h3 {
    color: var(--orange);
}

.card:nth-child(3) h3 {
    color: #2c8a39;
}

.card p {
    max-width: 250px;
    margin: 0 0 24px;
    font-size: 15px;
    line-height: 1.55;
    color: #082139;
}

.card a {
    position: absolute;
    left: 30px;
    bottom: 28px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--green);
}

.card:nth-child(2) a {
    color: var(--orange);
}

.card:nth-child(3) a {
    color: #2c8a39;
}

/* =========================
   COMMON COMPONENTS
========================= */

.panel,
.card,
.side,
.stat,
.table {
    border: 1px solid var(--line);
}

input,
select,
textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    font: inherit;
}

label {
    display: block;
    font-weight: 700;
    margin: 10px 0 6px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--shadow);
}

.table th,
.table td {
    padding: 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
}

.badge {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef7f1;
    color: var(--green);
    font-size: 12px;
    font-weight: 800;
}

.badge.gold {
    background: #fff4c5;
    color: #8a6500;
}

.muted {
    color: var(--muted);
}

.grid {
    width: min(1180px, 92vw);
    margin: 32px auto;
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 22px;
}

.side {
    background: white;
    border-radius: 22px;
    padding: 18px;
    box-shadow: var(--shadow);
    height: max-content;
}

.side a {
    display: block;
    padding: 10px;
    border-radius: 12px;
    color: var(--blue);
    font-weight: 700;
}

.side a:hover {
    background: #eef7f1;
}

.alert {
    padding: 12px 16px;
    border-radius: 14px;
    margin: 12px 0;
}

.alert-success {
    background: #e8f7ed;
    color: #166534;
}

.alert-error {
    background: #fdeaea;
    color: #991b1b;
}

.alert-info {
    background: #eaf1ff;
    color: #1e3a8a;
}

.agency-card {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 16px;
}

.agency-card img {
    width: 92px;
    height: 92px;
    border-radius: 18px;
    object-fit: cover;
    background: #e9f5f1;
}

.map {
    height: 540px;
    border-radius: 22px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.media-preview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.media-preview img,
.media-preview video {
    width: 100%;
    height: 130px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid var(--line);
}

.stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.stat {
    background: white;
    border-radius: 18px;
    padding: 18px;
}

.stat strong {
    font-size: 30px;
    color: var(--green);
}

/* =========================
   FOOTER
========================= */

.foot {
    margin-top: auto;
    padding: 32px 30px;
    text-align: center;
    color: #d2ebe3;
    background: var(--blue);
}

.foot a {
    color: #d2ebe3;
    font-weight: 700;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1050px) {
    .top {
        padding: 16px 24px;
    }

    .top nav {
        gap: 16px;
    }

    .hero {
        grid-template-columns: 1fr;
        min-height: 590px;
        padding: 80px 7vw 140px;
        background-position: center right;
    }

    .cards {
        grid-template-columns: 1fr;
        margin-top: -85px;
    }

    .card {
        min-height: 230px;
    }
}

@media (max-width: 850px) {
    .top {
        display: block;
        min-height: auto;
        padding: 14px 20px;
    }

    .top nav {
        margin-top: 12px;
        gap: 12px;
    }

    .top nav a {
        font-size: 12px;
    }

    .top nav a:first-child::after {
        display: none;
    }

    .hero {
        min-height: 560px;
        padding: 60px 6vw 120px;
        background:
            linear-gradient(90deg,
                rgba(255, 255, 255, .96) 0%,
                rgba(255, 255, 255, .82) 60%,
                rgba(255, 255, 255, .35) 100%),
            linear-gradient(180deg,
                rgba(255, 255, 255, 0) 0%,
                rgba(246, 241, 232, 1) 100%),
            url("/assets/img/hero-zandoli.png");
        background-size: cover;
        background-position: center;
    }

    .hero h1 {
        font-size: 42px;
    }

    .hero p {
        font-size: 16px;
    }

    .cards,
    .form-grid,
    .grid,
    .stats {
        grid-template-columns: 1fr;
    }

    .grid {
        width: 94vw;
    }

    .media-preview {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* =========================
   PAGE ZANDOLI PROTECT
========================= */

.service-hero {
    position: relative;
    width: 100%;
    min-height: 520px;
    display: grid;
    grid-template-columns: minmax(360px, 620px) minmax(320px, 540px);
    gap: 60px;
    align-items: center;
    padding: 80px 7vw 95px;
    overflow: hidden;
    background:
        linear-gradient(90deg,
            rgba(255, 255, 255, .98) 0%,
            rgba(255, 255, 255, .86) 42%,
            rgba(255, 255, 255, .45) 68%,
            rgba(255, 255, 255, .15) 100%),
        var(--cream);
}

.protect-hero {
    background:
        linear-gradient(90deg,
            rgba(255, 255, 255, .98) 0%,
            rgba(255, 255, 255, .88) 42%,
            rgba(255, 255, 255, .50) 68%,
            rgba(255, 255, 255, .15) 100%),
        url("/assets/img/zandoli-protect-card.png");
    background-size: cover;
    background-position: center right;
}

.service-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 110px;
    background: linear-gradient(180deg, rgba(251, 248, 241, 0), var(--cream));
    pointer-events: none;
}

.service-hero-content {
    position: relative;
    z-index: 2;
    max-width: 640px;
}

.service-eyebrow {
    display: inline-block;
    margin-bottom: 18px;
    font-size: 15px;
    font-weight: 950;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--green);
}

.service-hero h1 {
    margin: 0 0 22px;
    font-size: clamp(42px, 5vw, 66px);
    line-height: .96;
    letter-spacing: -2px;
    color: var(--deep-blue);
    font-weight: 950;
}

.service-hero p {
    max-width: 590px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: #082139;
}

.service-actions {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    margin-top: 34px;
}

.service-hero-image {
    position: relative;
    z-index: 2;
    min-height: 360px;
    border-radius: 34px;
    overflow: hidden;
    box-shadow: var(--strong-shadow);
    background: white;
}

.service-hero-image img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    display: block;
    object-fit: cover;
}

.service-intro {
    width: min(980px, 88vw);
    margin: 70px auto 30px;
    text-align: left;
}

.service-intro h2 {
    margin: 0 0 14px;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1;
    color: var(--deep-blue);
    letter-spacing: -1px;
}

.service-intro p {
    max-width: 760px;
    margin: 0;
    font-size: 18px;
    line-height: 1.7;
    color: #082139;
}

.protect-pricing {
    width: min(1120px, 88vw);
    margin: 45px auto 70px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.protect-card {
    position: relative;
    min-height: 260px;
    padding: 34px 32px;
    background: #fff;
    border-radius: 22px;
    border: 0;
    box-shadow: var(--strong-shadow);
    overflow: hidden;
}

.protect-card::after {
    content: "";
    position: absolute;
    right: -72px;
    bottom: -72px;
    width: 170px;
    height: 170px;
    border-radius: 50%;
    background: rgba(0, 139, 143, .08);
}

.protect-dot {
    width: 58px;
    height: 58px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: var(--green);
}

.protect-card.orange .protect-dot {
    background: var(--orange);
}

.protect-card.green .protect-dot {
    background: #2c8a39;
}

.protect-card h3 {
    max-width: 240px;
    margin: 0 0 12px;
    font-size: 29px;
    line-height: .9;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--green);
}

.protect-card.orange h3 {
    color: var(--orange);
}

.protect-card.green h3 {
    color: #2c8a39;
}

.protect-card strong {
    display: block;
    margin-bottom: 24px;
    font-size: 16px;
    color: var(--deep-blue);
}

.protect-card p {
    max-width: 270px;
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: #082139;
}

.protect-detail {
    width: min(1120px, 88vw);
    margin: 30px auto 90px;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 40px;
    align-items: center;
    padding: 46px;
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--strong-shadow);
}

.protect-detail h2 {
    margin: 0 0 18px;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1;
    color: var(--deep-blue);
}

.protect-detail p {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: #082139;
}

.protect-list {
    padding: 28px;
    border-radius: 22px;
    background: #f2faf7;
}

.protect-list ul {
    margin: 0;
    padding-left: 22px;
}

.protect-list li {
    margin: 12px 0;
    font-weight: 700;
    color: #082139;
}

@media (max-width: 1050px) {
    .service-hero {
        grid-template-columns: 1fr;
        padding: 70px 7vw 85px;
    }

    .service-hero-image {
        max-width: 620px;
    }

    .protect-pricing,
    .protect-detail {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .service-hero {
        min-height: auto;
        padding: 55px 6vw 70px;
    }

    .service-hero h1 {
        font-size: 42px;
    }

    .service-hero p,
    .service-intro p {
        font-size: 16px;
    }

    .service-hero-image {
        min-height: 260px;
    }

    .service-hero-image img {
        min-height: 260px;
    }

    .protect-pricing {
        grid-template-columns: 1fr;
    }

    .protect-detail {
        padding: 28px;
    }
}
/* =========================
   LOGIN PRO / PROPRIETAIRE
   Interface joviale mobile
========================= */

body:has(.login-shell) {
    background:
        linear-gradient(120deg, rgba(255,255,255,.92), rgba(246,241,232,.86)),
        url("/assets/img/footer-tropical.png");
    background-size: cover;
    background-position: center;
}

.login-shell {
    width: min(1100px, 92vw);
    margin: 60px auto 90px;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 32px;
    align-items: stretch;
}

.login-welcome {
    position: relative;
    overflow: hidden;
    min-height: 500px;
    padding: 46px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.76)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.login-welcome::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -70px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.login-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 28px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.login-welcome h1 {
    max-width: 560px;
    margin: 0 0 20px;
    font-size: clamp(38px, 5vw, 60px);
    line-height: .98;
    color: #fff;
    letter-spacing: -1.8px;
}

.login-welcome p {
    max-width: 520px;
    margin: 0;
    font-size: 18px;
    line-height: 1.7;
    color: rgba(255,255,255,.92);
}

.login-benefits {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 12px;
    margin-top: 34px;
}

.login-benefit {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    border-radius: 18px;
    background: rgba(255,255,255,.14);
    backdrop-filter: blur(6px);
    font-weight: 800;
}

.login-benefit span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    color: var(--green);
}

.login-card {
    padding: 34px;
    border-radius: 34px;
    background: rgba(255,255,255,.96);
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.9);
}

.login-card h2 {
    margin: 0 0 10px;
    font-size: 30px;
    line-height: 1;
    color: var(--deep-blue);
}

.login-card .login-subtitle {
    margin: 0 0 26px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.55;
}

.login-card form,
.login-card form.panel {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
}

.login-card label {
    margin: 16px 0 8px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.login-card input {
    height: 52px;
    padding: 0 16px;
    border-radius: 18px;
    border: 1px solid #d9e6e8;
    background: #f9fcfb;
    font-size: 15px;
    transition: border .18s ease, box-shadow .18s ease, background .18s ease;
}

.login-card input:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.login-card button,
.login-card .btn {
    width: 100%;
    margin-top: 22px;
    min-height: 54px;
    font-size: 15px;
}

.login-demo {
    margin-top: 20px;
    padding: 14px 16px;
    border-radius: 18px;
    background: #f1faf7;
    color: #315b62;
    font-size: 14px;
    line-height: 1.55;
}

.login-demo strong {
    color: var(--green);
}

.login-links {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 800;
}

.login-links a {
    color: var(--green);
}

.login-switch {
    margin-top: 22px;
    padding: 18px;
    border-radius: 22px;
    text-align: center;
    background: linear-gradient(135deg, #fff7eb, #eefaf7);
    color: var(--deep-blue);
    font-weight: 800;
}

.login-switch a {
    color: var(--orange);
    font-weight: 950;
}

/* Pour les pages login existantes si elles n'ont pas encore le nouveau HTML */
.container > h1 + form {
    width: min(460px, 92vw);
    margin: 30px auto 90px;
    padding: 32px;
    background: white;
    border-radius: 30px;
    box-shadow: var(--strong-shadow);
    border: 1px solid var(--line);
}

.container > h1 {
    width: min(460px, 92vw);
    margin: 60px auto 0;
}

/* Mobile */
@media (max-width: 940px) {
    .login-shell {
        grid-template-columns: 1fr;
        margin: 28px auto 70px;
    }

    .login-welcome {
        min-height: auto;
        padding: 34px 28px;
    }

    .login-welcome h1 {
        font-size: 40px;
    }

    .login-welcome p {
        font-size: 16px;
    }

    .login-card {
        padding: 28px 22px;
    }

    .login-links {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 520px) {
    .login-shell {
        width: 94vw;
        margin-top: 18px;
    }

    .login-welcome {
        border-radius: 26px;
        padding: 30px 22px;
    }

    .login-card {
        border-radius: 26px;
    }

    .login-welcome h1 {
        font-size: 34px;
    }

    .login-benefit {
        font-size: 14px;
    }
}

/* =========================
   SIGNUP PRO
   Interface joviale mobile
========================= */

.signup-hero {
    position: relative;
    min-height: 440px;
    display: flex;
    align-items: center;
    padding: 80px 7vw 120px;
    overflow: hidden;
    background:
        linear-gradient(90deg,
            rgba(255,255,255,.98) 0%,
            rgba(255,255,255,.86) 42%,
            rgba(255,255,255,.40) 68%,
            rgba(255,255,255,.10) 100%),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
}

.signup-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 120px;
    background: linear-gradient(180deg, rgba(251,248,241,0), var(--cream));
}

.signup-hero-content {
    position: relative;
    z-index: 2;
    max-width: 720px;
}

.signup-hero h1 {
    margin: 0 0 20px;
    font-size: clamp(42px, 5vw, 66px);
    line-height: .96;
    letter-spacing: -2px;
    color: var(--deep-blue);
    font-weight: 950;
}

.signup-hero p {
    max-width: 620px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: #082139;
}

.signup-benefits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 34px;
    max-width: 690px;
}

.signup-benefits div {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 12px 28px rgba(5,44,59,.08);
    font-weight: 850;
    color: var(--deep-blue);
}

.signup-benefits span {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
}

.signup-wrapper {
    width: min(1180px, 90vw);
    margin: -80px auto 90px;
    position: relative;
    z-index: 5;
}

.signup-plans {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 30px;
}

.signup-plan {
    min-height: 235px;
    padding: 30px 26px;
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.75);
}

.plan-dot {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    margin-bottom: 22px;
    background: var(--green);
}

.signup-plan.orange .plan-dot { background: var(--orange); }
.signup-plan.green .plan-dot { background: #2c8a39; }
.signup-plan.dark .plan-dot { background: var(--deep-blue); }

.signup-plan h3 {
    margin: 0 0 10px;
    font-size: 25px;
    line-height: .92;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--green);
}

.signup-plan.orange h3 { color: var(--orange); }
.signup-plan.green h3 { color: #2c8a39; }
.signup-plan.dark h3 { color: var(--deep-blue); }

.signup-plan strong {
    display: block;
    margin-bottom: 16px;
    color: var(--deep-blue);
}

.signup-plan p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: #082139;
}

.signup-card {
    padding: 38px;
    border-radius: 30px;
    background: rgba(255,255,255,.97);
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
}

.signup-card h2 {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1;
    color: var(--deep-blue);
}

.signup-subtitle {
    margin: 0 0 28px;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.6;
}

.signup-form {
    display: block;
}

.signup-form label {
    margin-top: 16px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.signup-form input,
.signup-form textarea,
.signup-form select {
    border-radius: 18px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.signup-form input:focus,
.signup-form textarea:focus,
.signup-form select:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.signup-form button {
    width: 100%;
    margin-top: 26px;
    min-height: 56px;
}

.plan-select {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.plan-radio {
    margin: 0 !important;
    cursor: pointer;
}

.plan-radio input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.plan-radio span {
    display: block;
    min-height: 86px;
    padding: 16px;
    border: 2px solid #d9e6e8;
    border-radius: 20px;
    background: #f9fcfb;
    font-size: 14px;
    line-height: 1.4;
    text-transform: none;
    letter-spacing: 0;
    transition: border .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.plan-radio strong {
    color: var(--green);
}

.plan-radio input:checked + span {
    border-color: var(--green);
    background: #eefaf7;
    box-shadow: 0 12px 28px rgba(0,139,143,.14);
    transform: translateY(-2px);
}

@media (max-width: 1050px) {
    .signup-plans,
    .plan-select {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .signup-wrapper {
        margin-top: -60px;
    }
}

@media (max-width: 720px) {
    .signup-hero {
        min-height: auto;
        padding: 58px 6vw 95px;
        background:
            linear-gradient(90deg,
                rgba(255,255,255,.96) 0%,
                rgba(255,255,255,.84) 70%,
                rgba(255,255,255,.45) 100%),
            url("/assets/img/hero-zandoli.png");
        background-size: cover;
        background-position: center;
    }

    .signup-hero h1 {
        font-size: 38px;
    }

    .signup-hero p {
        font-size: 16px;
    }

    .signup-benefits,
    .signup-plans,
    .plan-select,
    .signup-card .form-grid {
        grid-template-columns: 1fr;
    }

    .signup-wrapper {
        width: 94vw;
        margin-top: -50px;
    }

    .signup-card {
        padding: 26px 20px;
        border-radius: 26px;
    }

    .signup-card h2 {
        font-size: 28px;
    }

    .signup-plan {
        min-height: auto;
    }
}

/* =========================
   OWNER REGISTER PAGE
   Interface propriétaire mobile
========================= */

.owner-register-hero {
    width: min(1180px, 92vw);
    margin: 58px auto 90px;
    display: grid;
    grid-template-columns: 1fr 460px;
    gap: 34px;
    align-items: stretch;
}

.owner-register-content {
    position: relative;
    overflow: hidden;
    min-height: 560px;
    padding: 50px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.72)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.owner-register-content::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -90px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.owner-register-content .service-eyebrow {
    color: #bff5e8;
}

.owner-register-content h1 {
    position: relative;
    z-index: 2;
    max-width: 650px;
    margin: 0 0 22px;
    font-size: clamp(40px, 5vw, 64px);
    line-height: .96;
    letter-spacing: -2px;
    color: #fff;
    font-weight: 950;
}

.owner-register-content p {
    position: relative;
    z-index: 2;
    max-width: 600px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: rgba(255,255,255,.93);
}

.owner-register-benefits {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-top: 34px;
}

.owner-register-benefits div {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(6px);
    font-weight: 850;
    color: #fff;
}

.owner-register-benefits span {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: var(--green);
}

.owner-register-card {
    padding: 36px;
    border-radius: 34px;
    background: rgba(255,255,255,.97);
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
}

.owner-register-card h2 {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1;
    color: var(--deep-blue);
}

.owner-register-subtitle {
    margin: 0 0 26px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.6;
}

.owner-register-form label {
    margin-top: 16px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.owner-register-form input {
    height: 52px;
    padding: 0 16px;
    border-radius: 18px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.owner-register-form input:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.owner-register-note {
    margin-top: 20px;
    padding: 15px 16px;
    border-radius: 18px;
    background: #eefaf7;
    color: #315b62;
    font-size: 14px;
    line-height: 1.55;
    font-weight: 700;
}

.owner-register-form button {
    width: 100%;
    margin-top: 24px;
    min-height: 56px;
}

.owner-register-switch {
    margin-top: 22px;
    padding: 18px;
    border-radius: 22px;
    text-align: center;
    background: linear-gradient(135deg, #fff7eb, #eefaf7);
    color: var(--deep-blue);
    font-weight: 850;
}

.owner-register-switch a {
    color: var(--orange);
    font-weight: 950;
}

@media (max-width: 980px) {
    .owner-register-hero {
        grid-template-columns: 1fr;
        margin: 28px auto 70px;
    }

    .owner-register-content {
        min-height: auto;
        padding: 38px 30px;
    }

    .owner-register-card {
        padding: 30px 24px;
    }
}

@media (max-width: 620px) {
    .owner-register-hero {
        width: 94vw;
        margin-top: 18px;
    }

    .owner-register-content {
        border-radius: 26px;
        padding: 30px 22px;
    }

    .owner-register-content h1 {
        font-size: 36px;
    }

    .owner-register-content p {
        font-size: 16px;
    }

    .owner-register-benefits,
    .owner-register-card .form-grid {
        grid-template-columns: 1fr;
    }

    .owner-register-card {
        border-radius: 26px;
        padding: 26px 20px;
    }

    .owner-register-card h2 {
        font-size: 28px;
    }
}

/* =========================
   OWNER REQUEST PAGE
   Demande propriétaire mobile
========================= */

.owner-request-hero {
    width: min(1180px, 92vw);
    margin: 58px auto 90px;
    display: grid;
    grid-template-columns: 1fr 500px;
    gap: 34px;
    align-items: stretch;
}

.owner-request-content {
    position: relative;
    overflow: hidden;
    min-height: 620px;
    padding: 52px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.72)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.owner-request-content::after {
    content: "";
    position: absolute;
    right: -95px;
    bottom: -95px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.owner-request-content .service-eyebrow {
    color: #bff5e8;
}

.owner-request-content h1 {
    position: relative;
    z-index: 2;
    max-width: 680px;
    margin: 0 0 22px;
    font-size: clamp(40px, 5vw, 64px);
    line-height: .96;
    letter-spacing: -2px;
    color: #fff;
    font-weight: 950;
}

.owner-request-content p {
    position: relative;
    z-index: 2;
    max-width: 620px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: rgba(255,255,255,.93);
}

.owner-request-benefits {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-top: 34px;
}

.owner-request-benefits div {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(6px);
    font-weight: 850;
    color: #fff;
}

.owner-request-benefits span {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: var(--green);
}

.owner-request-card {
    padding: 36px;
    border-radius: 34px;
    background: rgba(255,255,255,.97);
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
}

.owner-request-card h2 {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1;
    color: var(--deep-blue);
}

.owner-request-subtitle {
    margin: 0 0 26px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.6;
}

.owner-request-form label {
    margin-top: 16px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.owner-request-form input,
.owner-request-form textarea,
.owner-request-form select {
    border-radius: 18px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.owner-request-form input:focus,
.owner-request-form textarea:focus,
.owner-request-form select:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.request-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 10px 0 10px;
}

.request-choice {
    margin: 0 !important;
    cursor: pointer;
}

.request-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.request-choice span {
    display: flex;
    align-items: center;
    min-height: 58px;
    padding: 14px 16px;
    border: 2px solid #d9e6e8;
    border-radius: 18px;
    background: #f9fcfb;
    font-size: 14px;
    font-weight: 900;
    text-transform: none;
    letter-spacing: 0;
    color: var(--deep-blue);
    transition: border .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.request-choice input:checked + span {
    border-color: var(--green);
    background: #eefaf7;
    box-shadow: 0 12px 28px rgba(0,139,143,.14);
    transform: translateY(-2px);
}

.request-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.request-check {
    display: flex !important;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding: 14px 16px;
    border-radius: 18px;
    background: #f1faf7;
    color: var(--deep-blue);
    font-size: 14px !important;
    font-weight: 850 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.request-check input {
    width: auto;
    height: auto;
}

.owner-request-note {
    margin-top: 20px;
    padding: 15px 16px;
    border-radius: 18px;
    background: #fff7eb;
    color: #6b4b12;
    font-size: 14px;
    line-height: 1.55;
    font-weight: 750;
}

.owner-request-form button {
    width: 100%;
    margin-top: 24px;
    min-height: 56px;
}

@media (max-width: 1050px) {
    .owner-request-hero {
        grid-template-columns: 1fr;
        margin: 28px auto 70px;
    }

    .owner-request-content {
        min-height: auto;
        padding: 38px 30px;
    }

    .owner-request-card {
        padding: 30px 24px;
    }
}

@media (max-width: 650px) {
    .owner-request-hero {
        width: 94vw;
        margin-top: 18px;
    }

    .owner-request-content {
        border-radius: 26px;
        padding: 30px 22px;
    }

    .owner-request-content h1 {
        font-size: 36px;
    }

    .owner-request-content p {
        font-size: 16px;
    }

    .owner-request-benefits,
    .owner-request-card .form-grid,
    .request-choice-grid,
    .request-options {
        grid-template-columns: 1fr;
    }

    .owner-request-card {
        border-radius: 26px;
        padding: 26px 20px;
    }

    .owner-request-card h2 {
        font-size: 28px;
    }
}


/* =========================
   PRO CONNECTED SPACE
   Dashboard / Profile / Subscription / Invoices
========================= */

.grid:has(.pro-page) {
    width: min(1280px, 92vw);
    margin: 38px auto 90px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 28px;
    align-items: start;
}

.grid:has(.pro-page) .side {
    position: sticky;
    top: 105px;
    padding: 24px;
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)),
        url("/assets/img/footer-tropical.png");
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.grid:has(.pro-page) .side h3 {
    margin: 0 0 18px;
    color: var(--deep-blue);
    font-size: 20px;
    font-weight: 950;
}

.grid:has(.pro-page) .side a {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 7px 0;
    padding: 13px 14px;
    border-radius: 16px;
    color: var(--deep-blue);
    font-weight: 900;
    transition: background .18s ease, transform .18s ease, color .18s ease;
}

.grid:has(.pro-page) .side a:hover {
    background: #eefaf7;
    color: var(--green);
    transform: translateX(3px);
}

.grid:has(.pro-page) .side a:nth-of-type(1)::before { content: "📊"; }
.grid:has(.pro-page) .side a:nth-of-type(2)::before { content: "🏢"; }
.grid:has(.pro-page) .side a:nth-of-type(3)::before { content: "⭐"; }
.grid:has(.pro-page) .side a:nth-of-type(4)::before { content: "🧾"; }

.pro-page {
    min-width: 0;
}

.pro-hero {
    position: relative;
    overflow: hidden;
    min-height: 310px;
    margin-bottom: 26px;
    padding: 42px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.72)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.pro-hero.small {
    min-height: 250px;
}

.pro-hero::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -90px;
    width: 250px;
    height: 250px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.pro-hero > div {
    position: relative;
    z-index: 2;
    max-width: 780px;
}

.pro-hero .service-eyebrow {
    color: #bff5e8;
}

.pro-hero h1 {
    margin: 0 0 18px;
    font-size: clamp(36px, 4vw, 56px);
    line-height: .96;
    color: #fff;
    letter-spacing: -1.6px;
    font-weight: 950;
}

.pro-hero p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.92);
    font-size: 17px;
    line-height: 1.7;
}

.pro-hero-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.pro-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 28px;
}

.pro-kpi {
    min-height: 145px;
    padding: 24px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.pro-kpi span {
    display: block;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--muted);
    font-weight: 800;
}

.pro-kpi strong {
    display: block;
    color: var(--green);
    font-size: 28px;
    line-height: .98;
    font-weight: 950;
}

.pro-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.pro-card,
.pro-form-card,
.pro-plan-card {
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(220,231,232,.95);
    border-radius: 28px;
    box-shadow: var(--strong-shadow);
}

.pro-card {
    min-height: 260px;
    padding: 30px;
}

.pro-card-icon,
.plan-dot {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 58px;
    height: 58px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 25px;
}

.pro-card-icon.orange,
.pro-plan-card.pro .plan-dot {
    background: var(--orange);
}

.pro-card-icon.green,
.pro-plan-card.premium .plan-dot {
    background: #2c8a39;
}

.pro-plan-card.visibility .plan-dot {
    background: var(--deep-blue);
}

.pro-card h2 {
    margin: 0 0 14px;
    color: var(--deep-blue);
    font-size: 26px;
    line-height: 1;
    font-weight: 950;
}

.pro-card p {
    margin: 0 0 24px;
    color: #082139;
    line-height: 1.65;
}

.pro-form-card {
    padding: 36px;
}

.pro-section-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 28px;
}

.pro-section-title h2 {
    margin: 0 0 8px;
    color: var(--deep-blue);
    font-size: 34px;
    line-height: 1;
    font-weight: 950;
}

.pro-section-title p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.pro-modern-form label,
.pro-form-card label {
    margin-top: 16px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.pro-modern-form input,
.pro-modern-form textarea,
.pro-modern-form select,
.pro-form-card input,
.pro-form-card textarea,
.pro-form-card select {
    border-radius: 18px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.pro-modern-form input:focus,
.pro-modern-form textarea:focus,
.pro-form-card input:focus,
.pro-form-card textarea:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.pro-modern-form button {
    width: 100%;
    margin-top: 24px;
    min-height: 56px;
}

.pro-plan-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.pro-plan-card {
    min-height: 310px;
    padding: 30px;
}

.pro-plan-card h3 {
    margin: 0 0 12px;
    color: var(--green);
    font-size: 28px;
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 950;
}

.pro-plan-card.pro h3 {
    color: var(--orange);
}

.pro-plan-card.premium h3 {
    color: #2c8a39;
}

.pro-plan-card.visibility h3 {
    color: var(--deep-blue);
}

.pro-plan-card strong {
    display: block;
    margin-bottom: 16px;
    color: var(--deep-blue);
}

.pro-plan-card p {
    min-height: 78px;
    margin: 0 0 22px;
    line-height: 1.6;
    color: #082139;
}

.pro-plan-card button {
    width: 100%;
}

.pro-table-wrap {
    overflow-x: auto;
}

.pro-table {
    box-shadow: none;
    border: 1px solid var(--line);
}

.pro-empty {
    padding: 50px 24px;
    border-radius: 26px;
    text-align: center;
    background: linear-gradient(135deg, #eefaf7, #fff7eb);
}

.pro-empty div {
    font-size: 52px;
    margin-bottom: 12px;
}

.pro-empty h3 {
    margin: 0 0 10px;
    color: var(--deep-blue);
    font-size: 28px;
}

.pro-empty p {
    margin: 0 auto 24px;
    max-width: 520px;
    color: var(--muted);
    line-height: 1.6;
}

/* Sécurité : les formulaires panel ne doivent jamais être cachés hors hero */
.grid:has(.pro-page) form.panel,
.grid:has(.pro-page) .panel {
    display: block;
}

@media (max-width: 1150px) {
    .grid:has(.pro-page) {
        grid-template-columns: 1fr;
    }

    .grid:has(.pro-page) .side {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .grid:has(.pro-page) .side h3 {
        width: 100%;
    }

    .grid:has(.pro-page) .side a {
        margin: 0;
    }

    .pro-kpis,
    .pro-plan-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pro-action-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .grid:has(.pro-page) {
        width: 94vw;
        margin-top: 20px;
    }

    .pro-hero {
        padding: 30px 22px;
        border-radius: 26px;
    }

    .pro-hero h1 {
        font-size: 36px;
    }

    .pro-hero p {
        font-size: 16px;
    }

    .pro-kpis,
    .pro-plan-grid,
    .pro-form-card .form-grid {
        grid-template-columns: 1fr;
    }

    .pro-form-card,
    .pro-card,
    .pro-plan-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .pro-section-title {
        display: block;
    }

    .pro-section-title .btn {
        margin-top: 18px;
        width: 100%;
    }

    .pro-hero-actions .btn {
        width: 100%;
    }
}


/* =========================
   PUBLIC AGENCY PROFILE
========================= */

.agency-public-error {
    width: min(760px, 92vw);
    margin: 90px auto;
    padding: 40px;
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--strong-shadow);
    text-align: center;
}

.agency-public-error h1 {
    margin: 0 0 14px;
    color: var(--deep-blue);
    font-size: 42px;
}

.agency-public-hero {
    position: relative;
    min-height: 520px;
    display: flex;
    align-items: center;
    padding: 78px 7vw 120px;
    background-size: cover;
    background-position: center right;
    overflow: hidden;
}

.agency-public-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 130px;
    background: linear-gradient(180deg, rgba(251,248,241,0), var(--cream));
    pointer-events: none;
}

.agency-public-hero-content {
    position: relative;
    z-index: 2;
    max-width: 880px;
}

.agency-public-title-row {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 20px;
}

.agency-public-title-row img {
    width: 96px;
    height: 96px;
    border-radius: 28px;
    object-fit: contain;
    background: #fff;
    padding: 12px;
    box-shadow: 0 18px 38px rgba(5,44,59,.15);
}

.agency-public-title-row h1 {
    margin: 0;
    max-width: 760px;
    color: var(--deep-blue);
    font-size: clamp(42px, 5vw, 66px);
    line-height: .95;
    letter-spacing: -2px;
    font-weight: 950;
}

.agency-public-title-row p {
    margin: 10px 0 0;
    color: #082139;
    font-size: 18px;
    font-weight: 800;
}

.agency-public-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0 22px;
}

.agency-public-badge {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 8px 13px;
    border-radius: 999px;
    background: #eefaf7;
    color: var(--green);
    font-size: 13px;
    font-weight: 950;
}

.agency-public-badge.gold {
    background: #fff4c5;
    color: #8a6500;
}

.agency-public-badge.muted-badge {
    background: #eef1f2;
    color: #52636d;
}

.agency-public-desc {
    max-width: 760px;
    margin: 0;
    color: #082139;
    font-size: 18px;
    line-height: 1.75;
}

.agency-public-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 32px;
}

.agency-public-wrapper {
    position: relative;
    z-index: 4;
    width: min(1180px, 92vw);
    margin: -70px auto 90px;
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 28px;
    align-items: start;
}

.agency-public-main {
    display: grid;
    gap: 24px;
}

.agency-public-card,
.agency-side-card {
    padding: 34px;
    border-radius: 30px;
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.agency-public-card h2,
.agency-side-card h3 {
    margin: 0 0 18px;
    color: var(--deep-blue);
    font-size: 32px;
    line-height: 1;
    font-weight: 950;
}

.agency-side-card h3 {
    font-size: 26px;
}

.agency-service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.agency-service-item {
    padding: 15px 16px;
    border-radius: 18px;
    background: #f1faf7;
    color: var(--deep-blue);
    font-weight: 850;
}

.agency-commune-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.agency-commune-list span {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 999px;
    background: #eefaf7;
    color: var(--green);
    font-weight: 950;
}

.agency-public-note p,
.agency-side-card p {
    margin: 0 0 16px;
    color: #082139;
    line-height: 1.7;
}

.agency-public-side {
    display: grid;
    gap: 22px;
}

.agency-side-card .btn {
    width: 100%;
    margin-top: 8px;
}

@media (max-width: 980px) {
    .agency-public-wrapper {
        grid-template-columns: 1fr;
        margin-top: -50px;
    }

    .agency-public-title-row {
        align-items: flex-start;
    }
}

@media (max-width: 680px) {
    .agency-public-hero {
        min-height: auto;
        padding: 55px 6vw 100px;
        background-position: center;
    }

    .agency-public-title-row {
        display: block;
    }

    .agency-public-title-row img {
        margin-bottom: 18px;
        width: 82px;
        height: 82px;
    }

    .agency-public-title-row h1 {
        font-size: 38px;
    }

    .agency-public-desc {
        font-size: 16px;
    }

    .agency-service-grid {
        grid-template-columns: 1fr;
    }

    .agency-public-card,
    .agency-side-card {
        padding: 26px 20px;
        border-radius: 24px;
    }

    .agency-public-actions .btn {
        width: 100%;
    }
}

/* =========================
   LEADS ZANDOLI / AGENCY
========================= */

.lead-detail-grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 24px;
    align-items: start;
}

.lead-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.lead-preview-grid div {
    padding: 18px;
    border-radius: 18px;
    background: #f1faf7;
    border: 1px solid #d9e6e8;
}

.lead-preview-grid span {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
}

.lead-preview-grid strong {
    display: block;
    color: var(--deep-blue);
    font-size: 19px;
    line-height: 1.15;
    font-weight: 950;
}

.lead-paywall {
    position: sticky;
    top: 110px;
}

.lead-paywall h2,
.lead-contact h2,
.lead-message h2 {
    margin: 0 0 14px;
    color: var(--deep-blue);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
}

.lead-paywall p,
.lead-contact p,
.lead-message p {
    color: #082139;
    line-height: 1.65;
}

.lead-paywall form {
    margin-top: 16px;
}

.lead-paywall button {
    width: 100%;
}

.lead-paywall button.secondary {
    background: #fff;
    color: var(--green);
    border: 1.5px solid var(--green);
    box-shadow: none;
}

.lead-contact {
    position: sticky;
    top: 110px;
}

.lead-message {
    grid-column: 1 / -1;
}

.admin-leads-page .pro-table,
.pro-leads-page .pro-table {
    min-width: 950px;
}

@media(max-width: 980px) {
    .lead-detail-grid {
        grid-template-columns: 1fr;
    }

    .lead-paywall,
    .lead-contact {
        position: static;
    }
}

@media(max-width: 650px) {
    .lead-preview-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================
   OWNER SPACE FULL REDESIGN
========================= */

.grid:has(.owner-space-page) {
    width: min(1280px, 92vw);
    margin: 38px auto 90px;
    display: grid;
    grid-template-columns: 270px 1fr;
    gap: 28px;
    align-items: start;
}

.grid:has(.owner-space-page) .side {
    position: sticky;
    top: 105px;
    padding: 24px;
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)),
        url("/assets/img/footer-tropical.png");
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.grid:has(.owner-space-page) .side h3 {
    margin: 0 0 18px;
    color: var(--deep-blue);
    font-size: 20px;
    font-weight: 950;
}

.grid:has(.owner-space-page) .side a {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 7px 0;
    padding: 13px 14px;
    border-radius: 16px;
    color: var(--deep-blue);
    font-weight: 900;
    transition: background .18s ease, transform .18s ease, color .18s ease;
}

.grid:has(.owner-space-page) .side a:hover {
    background: #eefaf7;
    color: var(--green);
    transform: translateX(3px);
}

.grid:has(.owner-space-page) .side a:nth-of-type(1)::before { content: "📊"; }
.grid:has(.owner-space-page) .side a:nth-of-type(2)::before { content: "🏡"; }
.grid:has(.owner-space-page) .side a:nth-of-type(3)::before { content: "🌴"; }
.grid:has(.owner-space-page) .side a:nth-of-type(4)::before { content: "🤝"; }
.grid:has(.owner-space-page) .side a:nth-of-type(5)::before { content: "📸"; }

.owner-space-page {
    min-width: 0;
}

.owner-space-hero {
    position: relative;
    overflow: hidden;
    min-height: 320px;
    margin-bottom: 26px;
    padding: 42px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.72)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.owner-space-hero.small {
    min-height: 260px;
}

.owner-space-hero::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -90px;
    width: 250px;
    height: 250px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.owner-space-hero > div {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.owner-space-hero .service-eyebrow {
    color: #bff5e8;
}

.owner-space-hero h1 {
    margin: 0 0 18px;
    font-size: clamp(36px, 4vw, 56px);
    line-height: .96;
    color: #fff;
    letter-spacing: -1.6px;
    font-weight: 950;
}

.owner-space-hero p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.92);
    font-size: 17px;
    line-height: 1.7;
}

.owner-hero-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.owner-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 28px;
}

.owner-kpis article {
    min-height: 145px;
    padding: 24px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.owner-kpis span {
    display: block;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--muted);
    font-weight: 800;
}

.owner-kpis strong {
    display: block;
    color: var(--green);
    font-size: 34px;
    line-height: .98;
    font-weight: 950;
}

.owner-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 28px;
}

.owner-card,
.owner-panel,
.owner-agency-card,
.owner-property-card,
.owner-report-card {
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(220,231,232,.95);
    border-radius: 28px;
    box-shadow: var(--strong-shadow);
}

.owner-card {
    min-height: 260px;
    padding: 30px;
}

.owner-card-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 58px;
    height: 58px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 25px;
}

.owner-card-icon.orange { background: var(--orange); }
.owner-card-icon.green { background: #2c8a39; }

.owner-card h2,
.owner-panel h2,
.owner-section-title h2 {
    margin: 0 0 14px;
    color: var(--deep-blue);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
}

.owner-card p {
    margin: 0 0 24px;
    color: #082139;
    line-height: 1.65;
}

.owner-panel {
    padding: 36px;
    margin-bottom: 28px;
}

.owner-section-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 28px;
}

.owner-section-title p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.owner-empty {
    padding: 32px;
    border-radius: 22px;
    background: linear-gradient(135deg, #eefaf7, #fff7eb);
    color: var(--deep-blue);
    font-weight: 850;
    text-align: center;
}

.owner-property-grid,
.owner-reports-grid,
.owner-agency-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.owner-property-card,
.owner-report-card,
.owner-agency-card {
    padding: 28px;
}

.owner-property-card h3,
.owner-report-card h3,
.owner-agency-card h2 {
    margin: 0 0 10px;
    color: var(--deep-blue);
    font-size: 26px;
    line-height: 1;
    font-weight: 950;
}

.owner-property-card form {
    margin-top: 18px;
}

.owner-modern-form label {
    margin-top: 16px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.owner-modern-form input,
.owner-modern-form textarea,
.owner-modern-form select {
    border-radius: 18px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.owner-modern-form input:focus,
.owner-modern-form textarea:focus,
.owner-modern-form select:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.owner-modern-form button {
    width: 100%;
    margin-top: 24px;
    min-height: 56px;
}

.owner-check-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 16px 0;
}

.owner-check-row label {
    display: flex !important;
    gap: 10px;
    align-items: center;
    padding: 14px 16px;
    border-radius: 18px;
    background: #f1faf7;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.owner-check-row input {
    width: auto;
}

.owner-report-list {
    display: grid;
    gap: 12px;
}

.owner-report-list article {
    padding: 18px;
    border-radius: 18px;
    background: #f1faf7;
}

.owner-report-list strong,
.owner-report-list span,
.owner-report-list small {
    display: block;
}

.owner-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}

.owner-media-grid img,
.owner-media-grid video {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 16px;
    border: 1px solid var(--line);
}

.owner-agency-grid {
    width: min(1180px, 92vw);
    margin: 0 auto 90px;
}

.owner-agency-logo img {
    width: 76px;
    height: 76px;
    object-fit: contain;
    padding: 10px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(5,44,59,.12);
    margin-bottom: 18px;
}

.owner-agency-card p {
    min-height: 48px;
    color: #082139;
    line-height: 1.5;
}

.owner-agency-card form,
.owner-agency-card .btn {
    width: 100%;
    margin-top: 18px;
}

.owner-agency-card button {
    width: 100%;
}

/* Backend Protect */
.admin-leads-page .pro-table {
    min-width: 1000px;
}

@media (max-width: 1150px) {
    .grid:has(.owner-space-page) {
        grid-template-columns: 1fr;
    }

    .grid:has(.owner-space-page) .side {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .grid:has(.owner-space-page) .side h3 {
        width: 100%;
    }

    .grid:has(.owner-space-page) .side a {
        margin: 0;
    }

    .owner-kpis,
    .owner-action-grid,
    .owner-property-grid,
    .owner-reports-grid,
    .owner-agency-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .grid:has(.owner-space-page) {
        width: 94vw;
        margin-top: 20px;
    }

    .owner-space-hero {
        padding: 30px 22px;
        border-radius: 26px;
    }

    .owner-space-hero h1 {
        font-size: 36px;
    }

    .owner-space-hero p {
        font-size: 16px;
    }

    .owner-kpis,
    .owner-action-grid,
    .owner-property-grid,
    .owner-reports-grid,
    .owner-agency-grid,
    .owner-panel .form-grid,
    .owner-media-grid {
        grid-template-columns: 1fr;
    }

    .owner-panel,
    .owner-card,
    .owner-property-card,
    .owner-report-card,
    .owner-agency-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .owner-section-title {
        display: block;
    }

    .owner-section-title .btn {
        width: 100%;
        margin-top: 18px;
    }

    .owner-hero-actions .btn {
        width: 100%;
    }
}


/* =========================
   LOCKED PUBLIC MAP
========================= */

.map-locked-hero {
    width: min(1180px, 92vw);
    margin: 58px auto 28px;
    min-height: 330px;
    padding: 46px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.72)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.map-locked-hero h1 {
    max-width: 780px;
    margin: 0 0 18px;
    font-size: clamp(38px, 5vw, 58px);
    line-height: .96;
    color: #fff;
    letter-spacing: -1.6px;
    font-weight: 950;
}

.map-locked-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.92);
    font-size: 17px;
    line-height: 1.7;
}

.map-locked-hero .service-eyebrow {
    color: #bff5e8;
}

.map-locked-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.map-locked-wrapper {
    width: min(1180px, 92vw);
    margin: 0 auto 90px;
    display: grid;
    grid-template-columns: 1fr 330px;
    gap: 24px;
    align-items: stretch;
}

.map-locked {
    height: 620px;
    border-radius: 30px;
    overflow: hidden;
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
    background: #fff;
}

.map-locked-panel {
    padding: 32px;
    border-radius: 30px;
    background: rgba(255,255,255,.97);
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
}

.map-locked-panel h2 {
    margin: 0 0 14px;
    color: var(--deep-blue);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
}

.map-locked-panel p {
    margin: 0 0 22px;
    color: #082139;
    line-height: 1.65;
}

.map-price-box {
    padding: 24px;
    border-radius: 24px;
    background: linear-gradient(135deg, #eefaf7, #fff7eb);
    margin-bottom: 20px;
    text-align: center;
}

.map-price-box strong {
    display: block;
    color: var(--green);
    font-size: 48px;
    line-height: 1;
    font-weight: 950;
}

.map-price-box span {
    display: block;
    margin-top: 8px;
    color: var(--deep-blue);
    font-weight: 850;
}

.zandoli-marker div {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--green);
    border: 4px solid white;
    box-shadow: 0 8px 24px rgba(0,0,0,.28);
}

.zandoli-marker.gold div {
    background: #f6c343;
}

.map-popup {
    min-width: 230px;
}

.map-popup strong {
    display: block;
    margin-bottom: 8px;
    color: var(--deep-blue);
    font-size: 18px;
    line-height: 1.15;
}

.map-popup p {
    margin: 0 0 14px;
    color: #082139;
    line-height: 1.45;
}

.map-popup .btn,
.map-popup button {
    width: 100%;
    min-height: 44px;
    padding: 0 16px;
    font-size: 13px;
}

.map-popup .btn.secondary {
    background: #fff;
    color: var(--green);
    border: 1.5px solid var(--green);
    box-shadow: none;
}

@media(max-width: 980px) {
    .map-locked-wrapper {
        grid-template-columns: 1fr;
    }

    .map-locked {
        height: 520px;
    }
}

@media(max-width: 650px) {
    .map-locked-hero,
    .map-locked-wrapper {
        width: 94vw;
    }

    .map-locked-hero {
        margin-top: 24px;
        padding: 30px 22px;
        border-radius: 26px;
    }

    .map-locked-hero h1 {
        font-size: 36px;
    }

    .map-locked-actions .btn {
        width: 100%;
    }

    .map-locked {
        height: 460px;
        border-radius: 24px;
    }

    .map-locked-panel {
        padding: 24px 20px;
        border-radius: 24px;
    }
}

/* Correction lisibilité boutons carte */
.map-popup a.btn:not(.secondary),
.map-popup button {
    color: #ffffff !important;
}

.map-popup a.btn:not(.secondary):visited,
.map-popup a.btn:not(.secondary):hover,
.map-popup a.btn:not(.secondary):focus {
    color: #ffffff !important;
}

.map-popup a.btn.secondary,
.map-popup a.btn.secondary:visited,
.map-popup a.btn.secondary:hover,
.map-popup a.btn.secondary:focus {
    color: var(--green) !important;
}


/* =========================
   ZANDOLI MEDIA PAGE
========================= */

.media-hero {
    position: relative;
    min-height: 560px;
    display: grid;
    grid-template-columns: minmax(360px, 640px) minmax(320px, 520px);
    gap: 60px;
    align-items: center;
    padding: 80px 7vw 110px;
    overflow: hidden;
    background:
        linear-gradient(90deg,
            rgba(255,255,255,.98) 0%,
            rgba(255,255,255,.88) 43%,
            rgba(255,255,255,.52) 70%,
            rgba(255,255,255,.18) 100%),
        url("/assets/img/zandoli-airbnb-card.png");
    background-size: cover;
    background-position: center right;
}

.media-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 120px;
    background: linear-gradient(180deg, rgba(251,248,241,0), var(--cream));
    pointer-events: none;
}

.media-hero-content {
    position: relative;
    z-index: 2;
    max-width: 680px;
}

.media-hero h1 {
    margin: 0 0 22px;
    font-size: clamp(42px, 5vw, 66px);
    line-height: .96;
    letter-spacing: -2px;
    color: var(--deep-blue);
    font-weight: 950;
}

.media-hero p {
    max-width: 610px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: #082139;
}

.media-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 34px;
}

.media-hero-visual {
    position: relative;
    z-index: 2;
    min-height: 380px;
    border-radius: 34px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--strong-shadow);
}

.media-hero-visual img {
    width: 100%;
    height: 100%;
    min-height: 380px;
    display: block;
    object-fit: cover;
}

.media-intro {
    width: min(980px, 88vw);
    margin: 70px auto 34px;
}

.media-intro h2 {
    margin: 0 0 14px;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1;
    color: var(--deep-blue);
    letter-spacing: -1px;
}

.media-intro p {
    max-width: 780px;
    margin: 0;
    font-size: 18px;
    line-height: 1.7;
    color: #082139;
}

.media-offers {
    width: min(1120px, 88vw);
    margin: 45px auto 70px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.media-offer-card {
    position: relative;
    min-height: 290px;
    padding: 34px 30px;
    background: #fff;
    border-radius: 24px;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
    overflow: hidden;
}

.media-offer-card::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -70px;
    width: 165px;
    height: 165px;
    border-radius: 50%;
    background: rgba(0,139,143,.08);
}

.media-dot {
    width: 58px;
    height: 58px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: var(--green);
}

.media-offer-card.orange .media-dot {
    background: var(--orange);
}

.media-offer-card.green .media-dot {
    background: #2c8a39;
}

.media-offer-card h3 {
    max-width: 240px;
    margin: 0 0 12px;
    font-size: 28px;
    line-height: .9;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--green);
}

.media-offer-card.orange h3 {
    color: var(--orange);
}

.media-offer-card.green h3 {
    color: #2c8a39;
}

.media-offer-card strong {
    display: block;
    margin-bottom: 22px;
    color: var(--deep-blue);
    font-size: 16px;
}

.media-offer-card p {
    position: relative;
    z-index: 2;
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: #082139;
}

.media-process {
    width: min(1120px, 88vw);
    margin: 30px auto 70px;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 34px;
    align-items: center;
    padding: 44px;
    border-radius: 30px;
    background: #fff;
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
}

.media-process h2 {
    margin: 0 0 16px;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1;
    color: var(--deep-blue);
    letter-spacing: -1px;
}

.media-process p {
    margin: 0;
    color: #082139;
    line-height: 1.7;
}

.media-steps {
    display: grid;
    gap: 14px;
}

.media-steps article {
    padding: 22px;
    border-radius: 22px;
    background: #f1faf7;
}

.media-steps span {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-weight: 950;
    margin-bottom: 12px;
}

.media-steps h3 {
    margin: 0 0 8px;
    color: var(--deep-blue);
    font-size: 22px;
}

.media-cta {
    width: min(1120px, 88vw);
    margin: 0 auto 90px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 34px;
    border-radius: 30px;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.78)),
        url("/assets/img/zandoli-airbnb-card.png");
    background-size: cover;
    background-position: center;
    box-shadow: var(--strong-shadow);
    color: #fff;
}

.media-cta h2 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 34px;
    line-height: 1;
}

.media-cta p {
    margin: 0;
    color: rgba(255,255,255,.9);
}

.media-cta .btn {
    flex: 0 0 auto;
}

@media (max-width: 1100px) {
    .media-offers {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .media-process {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 850px) {
    .media-hero {
        grid-template-columns: 1fr;
        padding: 58px 6vw 85px;
        background:
            linear-gradient(90deg,
                rgba(255,255,255,.96) 0%,
                rgba(255,255,255,.82) 70%,
                rgba(255,255,255,.40) 100%),
            url("/assets/img/zandoli-airbnb-card.png");
        background-size: cover;
        background-position: center;
    }

    .media-hero h1 {
        font-size: 38px;
    }

    .media-hero p,
    .media-intro p {
        font-size: 16px;
    }

    .media-hero-visual {
        min-height: 260px;
    }

    .media-hero-visual img {
        min-height: 260px;
    }

    .media-offers {
        grid-template-columns: 1fr;
    }

    .media-process,
    .media-cta {
        padding: 26px 20px;
        border-radius: 24px;
    }

    .media-cta {
        display: block;
    }

    .media-cta .btn {
        width: 100%;
        margin-top: 20px;
    }
}


/* Correction menu global : Accueil + Carte des professionnels */
.top nav a:first-child {
    color: var(--deep-blue) !important;
}

.top nav a:first-child::after {
    display: none !important;
}

.top nav a:hover {
    color: var(--green) !important;
}

@media (max-width: 900px) {
    .top nav {
        gap: 10px;
    }

    .top nav a {
        font-size: 12px;
    }
}

\n\n
/* Menu global Zandoli */
.top nav {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.top nav a {
    white-space: nowrap;
}

.top nav a:first-child {
    color: var(--deep-blue) !important;
}

.top nav a:first-child::after {
    display: none !important;
}

.top nav a:hover {
    color: var(--green) !important;
}


/* Menu global : Zandoli Services */
.top nav {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.top nav a,
.top nav .nav-dropbtn {
    white-space: nowrap;
}

.top nav .nav-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.top nav .nav-dropbtn {
    min-height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--deep-blue) !important;
    box-shadow: none !important;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .4px;
    cursor: pointer;
}

.top nav .nav-dropbtn:hover {
    color: var(--green) !important;
    transform: none !important;
    box-shadow: none !important;
}

.top nav .nav-dropdown-menu {
    position: absolute;
    top: 28px;
    left: 0;
    min-width: 190px;
    display: none;
    padding: 10px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid var(--line);
    box-shadow: var(--strong-shadow);
    z-index: 999;
}

.top nav .nav-dropdown:hover .nav-dropdown-menu,
.top nav .nav-dropdown:focus-within .nav-dropdown-menu {
    display: grid;
    gap: 4px;
}

.top nav .nav-dropdown-menu a {
    display: block;
    padding: 11px 12px;
    border-radius: 12px;
    color: var(--deep-blue) !important;
    font-size: 13px;
    font-weight: 900;
}

.top nav .nav-dropdown-menu a:hover {
    background: #eefaf7;
    color: var(--green) !important;
}

@media (max-width: 900px) {
    .top nav {
        gap: 12px;
    }

    .top nav .nav-dropdown {
        width: 100%;
        display: block;
    }

    .top nav .nav-dropdown-menu {
        position: static;
        display: grid;
        margin-top: 8px;
        box-shadow: none;
    }
}



/* =========================
   ADMIN LOGIN PAGE
========================= */

.admin-login-shell {
    width: min(1120px, 92vw);
    margin: 58px auto 90px;
    display: grid;
    grid-template-columns: 1fr 430px;
    gap: 34px;
    align-items: stretch;
}

.admin-login-visual {
    position: relative;
    overflow: hidden;
    min-height: 560px;
    padding: 52px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.97), rgba(0,139,143,.76)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.admin-login-visual::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -90px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

.admin-login-visual .service-eyebrow {
    color: #bff5e8;
}

.admin-login-visual h1 {
    position: relative;
    z-index: 2;
    max-width: 660px;
    margin: 0 0 22px;
    font-size: clamp(40px, 5vw, 64px);
    line-height: .96;
    letter-spacing: -2px;
    color: #fff;
    font-weight: 950;
}

.admin-login-visual p {
    position: relative;
    z-index: 2;
    max-width: 620px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: rgba(255,255,255,.93);
}

.admin-login-benefits {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-top: 34px;
}

.admin-login-benefits div {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(6px);
    font-weight: 850;
    color: #fff;
}

.admin-login-benefits span {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: var(--green);
}

.admin-login-card {
    padding: 38px;
    border-radius: 34px;
    background: rgba(255,255,255,.98);
    box-shadow: var(--strong-shadow);
    border: 1px solid rgba(220,231,232,.95);
}

.admin-login-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 30px;
    box-shadow: 0 14px 28px rgba(0,139,143,.22);
}

.admin-login-card h2 {
    margin: 0 0 10px;
    color: var(--deep-blue);
    font-size: 34px;
    line-height: 1;
    font-weight: 950;
}

.admin-login-card p {
    margin: 0 0 26px;
    color: var(--muted);
    line-height: 1.6;
}

.admin-login-form label {
    margin-top: 16px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--deep-blue);
}

.admin-login-form input {
    height: 54px;
    padding: 0 16px;
    border-radius: 18px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.admin-login-form input:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.admin-login-form button {
    width: 100%;
    margin-top: 24px;
    min-height: 56px;
}

.admin-login-demo {
    margin-top: 22px;
    padding: 16px;
    border-radius: 18px;
    background: #fff7eb;
    color: #6b4b12;
    font-size: 14px;
    line-height: 1.55;
    font-weight: 750;
}

.admin-login-demo strong {
    color: var(--orange);
}

@media (max-width: 980px) {
    .admin-login-shell {
        grid-template-columns: 1fr;
        margin: 28px auto 70px;
    }

    .admin-login-visual {
        min-height: auto;
        padding: 38px 30px;
    }

    .admin-login-card {
        padding: 30px 24px;
    }
}

@media (max-width: 620px) {
    .admin-login-shell {
        width: 94vw;
        margin-top: 18px;
    }

    .admin-login-visual {
        border-radius: 26px;
        padding: 30px 22px;
    }

    .admin-login-visual h1 {
        font-size: 36px;
    }

    .admin-login-visual p {
        font-size: 16px;
    }

    .admin-login-benefits {
        grid-template-columns: 1fr;
    }

    .admin-login-card {
        border-radius: 26px;
        padding: 26px 20px;
    }

    .admin-login-card h2 {
        font-size: 28px;
    }
}


/* =========================
   ADMIN SPACE VISUAL REDESIGN
   Dashboard / agences / demandes / protect / rapports / notifications
========================= */

.admin-layout {
    width: min(1360px, 94vw);
    margin: 42px auto 96px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    gap: 30px;
    align-items: start;
}

.admin-layout .side {
    position: sticky;
    top: 108px;
    padding: 26px;
    border-radius: 30px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.97), rgba(255,255,255,.90)),
        url("/assets/img/footer-tropical.png");
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.admin-layout .side h3 {
    margin: 0 0 20px;
    color: var(--deep-blue);
    font-size: 21px;
    line-height: 1;
    font-weight: 950;
}

.admin-layout .side a {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 7px 0;
    padding: 13px 14px;
    border-radius: 16px;
    color: var(--deep-blue);
    font-weight: 900;
    transition: background .18s ease, transform .18s ease, color .18s ease;
}

.admin-layout .side a:hover {
    background: #eefaf7;
    color: var(--green);
    transform: translateX(4px);
}

.admin-layout .side a:nth-of-type(1)::before { content: "📊"; }
.admin-layout .side a:nth-of-type(2)::before { content: "🏢"; }
.admin-layout .side a:nth-of-type(3)::before { content: "📩"; }
.admin-layout .side a:nth-of-type(4)::before { content: "🌴"; }
.admin-layout .side a:nth-of-type(5)::before { content: "🔎"; }
.admin-layout .side a:nth-of-type(6)::before { content: "🛡️"; }
.admin-layout .side a:nth-of-type(7)::before { content: "📸"; }
.admin-layout .side a:nth-of-type(8)::before { content: "🧾"; }
.admin-layout .side a:nth-of-type(9)::before { content: "📣"; }

.admin-layout > *:not(.side) {
    min-width: 0;
}

.admin-layout h1 {
    position: relative;
    overflow: hidden;
    margin: 0 0 26px;
    padding: 42px;
    border-radius: 34px;
    color: #fff;
    font-size: clamp(34px, 4vw, 54px);
    line-height: .96;
    letter-spacing: -1.5px;
    font-weight: 950;
    background:
        linear-gradient(135deg, rgba(5,44,59,.97), rgba(0,139,143,.76)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.admin-layout h1::before {
    content: "BACKOFFICE ZANDOLI CONNECT";
    display: block;
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: 4px;
    color: #bff5e8;
    font-weight: 950;
}

.admin-layout h2 {
    color: var(--deep-blue);
    font-size: 30px;
    line-height: 1;
    letter-spacing: -.8px;
    font-weight: 950;
}

.admin-layout .stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 28px;
}

.admin-layout .stat {
    min-height: 150px;
    padding: 24px;
    border-radius: 26px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.admin-layout .stat::before {
    content: "";
    display: block;
    width: 54px;
    height: 54px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: var(--green);
}

.admin-layout .stat:nth-child(2)::before {
    background: var(--orange);
}

.admin-layout .stat:nth-child(3)::before {
    background: #2c8a39;
}

.admin-layout .stat:nth-child(4)::before {
    background: var(--deep-blue);
}

.admin-layout .stat span,
.admin-layout .stat p {
    display: block;
    margin: 0 0 8px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 800;
}

.admin-layout .stat strong {
    display: block;
    color: var(--green);
    font-size: 34px;
    line-height: .95;
    font-weight: 950;
}

.admin-layout .table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border-radius: 26px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.admin-layout .table th {
    padding: 18px 18px;
    color: var(--deep-blue);
    background: #f5fbf9;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
    white-space: nowrap;
}

.admin-layout .table td {
    padding: 18px;
    border-bottom: 1px solid var(--line);
    color: #082139;
    vertical-align: middle;
}

.admin-layout .table tr:last-child td {
    border-bottom: 0;
}

.admin-layout .table tr:hover td {
    background: #fbfdfc;
}

.admin-layout form {
    margin: 0;
}

.admin-layout input,
.admin-layout select,
.admin-layout textarea {
    border-radius: 16px;
    background: #f9fcfb;
    border: 1px solid #d9e6e8;
}

.admin-layout input:focus,
.admin-layout select:focus,
.admin-layout textarea:focus {
    outline: none;
    border-color: var(--green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,139,143,.12);
}

.admin-layout button,
.admin-layout .btn {
    min-height: 46px;
    padding: 0 20px;
    font-size: 14px;
}

.admin-layout .table button,
.admin-layout .table .btn {
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
}

.admin-layout .badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eefaf7;
    color: var(--green);
    font-size: 12px;
    font-weight: 950;
}

.admin-layout .badge.gold {
    background: #fff4c5;
    color: #8a6500;
}

.admin-layout .muted {
    color: var(--muted);
}

.admin-layout .panel,
.admin-layout .card,
.admin-layout .pro-form-card,
.admin-layout .admin-card {
    display: block;
    padding: 32px;
    border-radius: 30px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.admin-layout .form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.admin-layout label {
    margin: 14px 0 8px;
    color: var(--deep-blue);
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.admin-layout .pro-table-wrap,
.admin-layout .table-wrap,
.admin-layout .responsive-table {
    width: 100%;
    overflow-x: auto;
    border-radius: 26px;
}

.admin-layout .table form {
    display: grid;
    gap: 10px;
}

.admin-layout .table select {
    min-width: 150px;
}

.admin-layout .table input[type="checkbox"] {
    width: auto;
    margin-right: 8px;
}

.admin-layout .table td:last-child {
    min-width: 170px;
}

.admin-layout .alert {
    margin: 0 0 22px;
    padding: 16px 18px;
    border-radius: 18px;
    font-weight: 850;
}

.admin-layout .alert-success {
    background: #e8f7ed;
    color: #166534;
}

.admin-layout .alert-error {
    background: #fdeaea;
    color: #991b1b;
}

.admin-layout .alert-info {
    background: #eaf1ff;
    color: #1e3a8a;
}

/* Cartes d’action si présentes */
.admin-layout .admin-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 28px;
}

.admin-layout .admin-action-card {
    padding: 30px;
    border-radius: 28px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.admin-layout .admin-action-card h3 {
    margin: 0 0 12px;
    color: var(--deep-blue);
    font-size: 26px;
    line-height: 1;
    font-weight: 950;
}

.admin-layout .admin-action-card p {
    margin: 0 0 22px;
    color: #082139;
    line-height: 1.65;
}

/* Notifications */
.admin-layout td:has(.badge),
.admin-layout td.status {
    white-space: nowrap;
}

/* Meilleure lisibilité des longues demandes */
.admin-layout .table td:nth-child(5) {
    max-width: 420px;
    line-height: 1.5;
}

/* Responsive */
@media (max-width: 1180px) {
    .admin-layout {
        grid-template-columns: 1fr;
    }

    .admin-layout .side {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .admin-layout .side h3 {
        width: 100%;
    }

    .admin-layout .side a {
        margin: 0;
    }

    .admin-layout .stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-layout .admin-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .admin-layout {
        width: 94vw;
        margin-top: 22px;
    }

    .admin-layout h1 {
        padding: 30px 22px;
        border-radius: 26px;
        font-size: 36px;
    }

    .admin-layout .stats,
    .admin-layout .form-grid,
    .admin-layout .admin-action-grid {
        grid-template-columns: 1fr;
    }

    .admin-layout .panel,
    .admin-layout .card,
    .admin-layout .pro-form-card,
    .admin-layout .admin-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .admin-layout .table {
        min-width: 820px;
    }

    .admin-layout .side {
        padding: 20px;
        border-radius: 24px;
    }
}


/* =========================
   ADMIN CONFIGURATION + LEGAL PAGES
========================= */

.admin-config-hero {
    position: relative;
    overflow: hidden;
    margin-bottom: 26px;
    padding: 42px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.97), rgba(0,139,143,.76)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.admin-config-hero .service-eyebrow {
    color: #bff5e8;
}

.admin-config-hero h1 {
    margin: 0 0 16px !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: none !important;
    color: #fff !important;
}

.admin-config-hero h1::before {
    display: none !important;
}

.admin-config-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.92);
    line-height: 1.7;
}

.admin-config-card {
    margin-bottom: 24px;
    padding: 32px;
    border-radius: 30px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.admin-config-card h2 {
    margin-top: 0;
}

.config-switch {
    display: flex !important;
    gap: 12px;
    align-items: center;
    padding: 16px 18px;
    border-radius: 18px;
    background: #f1faf7;
    margin-bottom: 18px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.config-switch input {
    width: auto !important;
}

.admin-config-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 50px;
}

.legal-page {
    width: min(980px, 92vw);
    margin: 54px auto 90px;
}

.legal-hero {
    padding: 42px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.97), rgba(0,139,143,.76)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.legal-hero .service-eyebrow {
    color: #bff5e8;
}

.legal-hero h1 {
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(36px, 4vw, 56px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -1.4px;
}

.legal-hero p {
    margin: 0;
    color: rgba(255,255,255,.92);
    line-height: 1.7;
}

.legal-card {
    margin-top: 28px;
    padding: 40px;
    border-radius: 30px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: var(--strong-shadow);
}

.legal-card h2 {
    margin: 28px 0 12px;
    color: var(--deep-blue);
    font-size: 26px;
    line-height: 1.05;
    font-weight: 950;
}

.legal-card h2:first-child {
    margin-top: 0;
}

.legal-card p {
    color: #082139;
    line-height: 1.75;
}

@media(max-width: 720px) {
    .admin-config-card,
    .legal-card,
    .legal-hero,
    .admin-config-hero {
        padding: 26px 20px;
        border-radius: 24px;
    }

    .admin-config-actions .btn,
    .admin-config-actions button {
        width: 100%;
    }
}


/* Vignette Configuration sous menu Administration */
.admin-config-tile {
    margin-top: 26px;
    padding: 18px;
    border-radius: 22px;
    background:
        linear-gradient(135deg, rgba(0,139,143,.12), rgba(255,122,24,.10)),
        #ffffff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: 0 16px 34px rgba(5,44,59,.10);
}

.admin-config-tile-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 22px;
}

.admin-config-tile strong {
    display: block;
    margin-bottom: 8px;
    color: var(--deep-blue);
    font-size: 18px;
    font-weight: 950;
}

.admin-config-tile span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 750;
}

.admin-config-tile a {
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 42px;
    margin-top: 16px !important;
    padding: 0 16px !important;
    border-radius: 999px !important;
    background: var(--green) !important;
    color: #ffffff !important;
    font-weight: 950 !important;
    transform: none !important;
}

.admin-config-tile a::before {
    content: "" !important;
    display: none !important;
}

.admin-config-tile a:hover {
    background: var(--deep-blue) !important;
    color: #ffffff !important;
    transform: none !important;
}

@media(max-width: 1180px) {
    .admin-config-tile {
        width: 100%;
    }
}


/* Gestion utilisateurs dans Configuration */
.admin-user-create {
    margin: 24px 0 32px;
    padding: 24px;
    border-radius: 24px;
    background: #f8fcfb;
    border: 1px solid rgba(220,231,232,.95);
}

.config-switch.inline {
    margin: 0 !important;
    padding: 10px 12px !important;
    min-height: 46px;
}

.user-management-table {
    margin-top: 22px;
}

.user-management-table .table {
    min-width: 1150px;
}

.user-management-table input,
.user-management-table select {
    min-width: 150px;
}

.user-actions {
    display: grid;
    gap: 10px;
    min-width: 170px;
}

.user-actions form {
    margin: 0;
}

.user-actions .danger {
    background: #ba2d2d !important;
    color: #fff !important;
}


/* Sécurité visibilité Configuration */
.admin-config-tile {
    display: none !important;
}

.admin-layout .admin-config-tile {
    display: block !important;
}


/* Rapports Protect - modification / suppression */
.admin-report-hero {
    position: relative;
    overflow: hidden;
    margin-bottom: 26px;
    padding: 42px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.97), rgba(0,139,143,.76)),
        url("/assets/img/hero-zandoli.png");
    background-size: cover;
    background-position: center right;
    box-shadow: var(--strong-shadow);
}

.admin-report-hero .service-eyebrow {
    color: #bff5e8;
}

.admin-report-hero h1 {
    margin: 0 0 14px !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: none !important;
    color: #fff !important;
}

.admin-report-hero h1::before {
    display: none !important;
}

.admin-report-hero p {
    margin: 0;
    color: rgba(255,255,255,.92);
}

.report-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.report-actions form {
    margin: 0;
}

.admin-report-form textarea {
    min-height: 180px;
}

.report-media-admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

.report-media-admin-card {
    padding: 16px;
    border-radius: 22px;
    background: #f8fcfb;
    border: 1px solid rgba(220,231,232,.95);
}

.report-media-admin-card img,
.report-media-admin-card video {
    width: 100%;
    height: 190px;
    border-radius: 16px;
    object-fit: cover;
    background: #eefaf7;
}

.report-media-admin-card p {
    margin: 12px 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
}

.report-media-admin-card form {
    margin: 0;
}

@media(max-width: 900px) {
    .report-media-admin-grid {
        grid-template-columns: 1fr;
    }

    .report-actions {
        display: grid;
    }

    .report-actions .btn,
    .report-actions button {
        width: 100%;
    }
}


/* Owner reports media viewer */
.owner-report-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin-top: 24px;
}

.owner-report-item {
    padding: 24px;
    border-radius: 26px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: 0 18px 45px rgba(5,44,59,.10);
}

.owner-report-head h3 {
    margin: 0 0 8px;
    color: var(--deep-blue);
    font-size: 26px;
    line-height: 1;
    font-weight: 950;
}

.owner-report-head p {
    margin: 0 0 8px;
    color: var(--muted);
    font-weight: 800;
}

.owner-report-head small {
    color: var(--green);
    font-weight: 900;
}

.owner-report-text {
    margin: 18px 0;
    padding: 16px;
    border-radius: 18px;
    background: #f8fcfb;
    color: #082139;
    line-height: 1.65;
}

.owner-report-media-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.owner-media-open {
    position: relative;
    overflow: hidden;
    display: block;
    width: 100%;
    height: 180px;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 20px !important;
    background: #eefaf7 !important;
    cursor: pointer;
    box-shadow: none !important;
}

.owner-media-open img,
.owner-media-open video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.owner-media-open span {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(5,44,59,.88);
    color: #fff;
    font-size: 13px;
    font-weight: 950;
}

.owner-report-actions {
    margin-top: 18px;
}

.owner-media-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.owner-media-modal.is-open {
    display: block;
}

.owner-media-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5,44,59,.72);
    backdrop-filter: blur(6px);
}

.owner-media-modal-box {
    position: relative;
    width: min(980px, 94vw);
    max-height: 92vh;
    margin: 4vh auto;
    padding: 24px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
    overflow: auto;
}

.owner-media-modal-box h3 {
    margin: 0 54px 18px 0;
    color: var(--deep-blue);
    font-size: 26px;
    font-weight: 950;
}

.owner-media-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    padding: 0 !important;
    border-radius: 50% !important;
    background: var(--deep-blue) !important;
    color: #fff !important;
    font-size: 28px;
    line-height: 1;
}

.owner-media-modal-content img,
.owner-media-modal-content video {
    width: 100%;
    max-height: 70vh;
    object-fit: contain;
    border-radius: 20px;
    background: #f5fbf9;
}

.owner-media-modal-box .btn {
    margin-top: 18px;
}

.owner-empty-state {
    padding: 28px;
    border-radius: 24px;
    background: #f8fcfb;
    border: 1px solid rgba(220,231,232,.95);
}

@media(max-width: 900px) {
    .owner-report-grid,
    .owner-report-media-grid {
        grid-template-columns: 1fr;
    }

    .owner-media-open {
        height: 220px;
    }
}


/* Bande engagements accueil */
.trust-strip {
    width: min(1180px, 92vw);
    margin: 34px auto 58px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    background: #ffffff;
    border: 1px solid rgba(220,231,232,.95);
    border-radius: 0;
    box-shadow: 0 18px 45px rgba(5,44,59,.08);
}

.trust-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 18px;
    align-items: start;
    min-height: 112px;
    padding: 28px 28px;
    border-right: 1px solid rgba(5,44,59,.18);
}

.trust-item:last-child {
    border-right: 0;
}

.trust-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: var(--green);
}

.trust-icon svg {
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.trust-item h3 {
    margin: 0 0 8px;
    color: var(--deep-blue);
    font-size: 14px;
    line-height: 1.1;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .8px;
}

.trust-item p {
    margin: 0;
    color: #082139;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 650;
}

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

    .trust-item:nth-child(2) {
        border-right: 0;
    }

    .trust-item:nth-child(1),
    .trust-item:nth-child(2) {
        border-bottom: 1px solid rgba(5,44,59,.14);
    }
}

@media(max-width: 620px) {
    .trust-strip {
        width: 94vw;
        grid-template-columns: 1fr;
        margin: 28px auto 42px;
        border-radius: 24px;
    }

    .trust-item {
        border-right: 0;
        border-bottom: 1px solid rgba(5,44,59,.14);
        padding: 22px;
    }

    .trust-item:last-child {
        border-bottom: 0;
    }
}


/* Ajustement bande engagements accueil : fusion avec fond + footer rapproché */
.trust-strip {
    width: min(1180px, 92vw) !important;
    margin: 18px auto 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.trust-item {
    min-height: 82px !important;
    padding: 16px 30px !important;
    background: transparent !important;
    border-right: 1px solid rgba(5,44,59,.20) !important;
    box-shadow: none !important;
}

.trust-item:last-child {
    border-right: 0 !important;
}

.trust-icon {
    color: var(--green) !important;
}

.trust-item h3 {
    margin-bottom: 6px !important;
    color: var(--deep-blue) !important;
    font-size: 13px !important;
    letter-spacing: .7px !important;
}

.trust-item p {
    color: #082139 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

/* Supprime le grand vide entre la bande et le pied de page */
.container:has(.trust-strip) {
    padding-bottom: 0 !important;
}

.container:has(.trust-strip) + .foot,
.foot {
    margin-top: 0 !important;
}

/* Mobile */
@media(max-width: 980px) {
    .trust-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        margin-top: 20px !important;
    }

    .trust-item:nth-child(2) {
        border-right: 0 !important;
    }

    .trust-item:nth-child(1),
    .trust-item:nth-child(2) {
        border-bottom: 1px solid rgba(5,44,59,.14) !important;
    }
}

@media(max-width: 620px) {
    .trust-strip {
        width: 94vw !important;
        grid-template-columns: 1fr !important;
        margin: 18px auto 0 !important;
    }

    .trust-item {
        border-right: 0 !important;
        border-bottom: 1px solid rgba(5,44,59,.14) !important;
        padding: 18px 12px !important;
    }

    .trust-item:last-child {
        border-bottom: 0 !important;
    }
}

/* Footer tropical restauré global */
html {
    min-height: 100%;
}

body {
    min-height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
}

.top {
    flex: 0 0 auto !important;
}

main,
main.container,
.container {
    flex: 1 0 auto !important;
}

.container {
    padding-bottom: 18px !important;
}

.grid,
.admin-layout,
.owner-layout,
.pro-layout {
    margin-bottom: 18px !important;
    padding-bottom: 0 !important;
    align-items: start !important;
}

.foot.zc-footer-tropical,
.foot {
    flex-shrink: 0 !important;
    position: relative !important;
    overflow: hidden !important;
    margin-top: auto !important;
    padding: 0 !important;
    color: #ffffff !important;
    background-color: #003f49 !important;
    background-image:
        linear-gradient(90deg, rgba(0,28,36,.74), rgba(0,92,99,.68), rgba(0,28,36,.74)),
        url("/assets/img/footer-tropical.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.zc-footer-inner {
    width: min(1180px, 92vw) !important;
    min-height: 82px !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 1.25fr 1.35fr .25fr !important;
    gap: 28px !important;
    align-items: center !important;
}

.zc-footer-signature {
    color: #ffffff !important;
    font-family: "Segoe Script", "Brush Script MT", "Comic Sans MS", cursive !important;
    font-size: 22px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.42) !important;
}

.zc-footer-contact {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 28px !important;
    flex-wrap: wrap !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.32) !important;
}

.zc-footer-contact span {
    color: #ffffff !important;
    white-space: nowrap !important;
}

.zc-footer-social {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
}

.zc-footer-social a,
.zc-instagram-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.14) !important;
    border: 2px solid #ffffff !important;
    color: #ffffff !important;
    text-decoration: none !important;
    box-shadow: 0 12px 30px rgba(0,0,0,.24) !important;
    transition: transform .18s ease, background .18s ease !important;
}

.zc-footer-social a:hover,
.zc-instagram-link:hover {
    background: rgba(255,255,255,.24) !important;
    transform: translateY(-2px) !important;
}

.zc-instagram-link svg {
    width: 22px !important;
    height: 22px !important;
    fill: none !important;
    stroke: #ffffff !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.zc-footer-legal {
    width: min(1180px, 92vw) !important;
    margin: 0 auto !important;
    padding: 8px 0 12px !important;
    border-top: 1px solid rgba(255,255,255,.14) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    color: rgba(255,255,255,.92) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    text-align: center !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.28) !important;
}

.zc-footer-legal nav {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
}

.zc-footer-legal a {
    color: #ffffff !important;
    font-weight: 950 !important;
    text-decoration: none !important;
}

.zc-footer-legal a:hover {
    text-decoration: underline !important;
}

@media(max-width: 920px) {
    .zc-footer-inner {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        padding: 24px 0 16px !important;
        text-align: center !important;
    }

    .zc-footer-contact,
    .zc-footer-social {
        justify-content: center !important;
    }

    .zc-footer-signature {
        font-size: 20px !important;
    }
}

@media(max-width: 620px) {
    .zc-footer-contact {
        display: grid !important;
        gap: 9px !important;
    }

    .zc-footer-legal {
        padding-bottom: 16px !important;
    }
}

/* Footer territoires Outre-mer */
.zc-footer-inner {
    grid-template-columns: 1fr 1.65fr .22fr !important;
    min-height: 92px !important;
}

.zc-footer-contact {
    display: grid !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
}

.zc-footer-contact-line {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 26px !important;
    flex-wrap: wrap !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

.zc-footer-territories {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px 16px !important;
    flex-wrap: wrap !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
}

.zc-footer-territories span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    white-space: nowrap !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.35) !important;
}

.zc-footer-territories b {
    font-style: normal !important;
    font-weight: 900 !important;
}

.zc-footer-social {
    justify-content: flex-end !important;
}

@media(max-width: 920px) {
    .zc-footer-inner {
        grid-template-columns: 1fr !important;
        min-height: auto !important;
    }

    .zc-footer-contact-line,
    .zc-footer-territories,
    .zc-footer-social {
        justify-content: center !important;
    }

    .zc-footer-territories {
        max-width: 94vw !important;
    }
}

/* Carte territoires Outre-mer */
.zc-map-hero {
    width: min(1180px, 92vw);
    margin: 42px auto 26px;
    padding: 48px;
    border-radius: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,139,143,.74)),
        url("/assets/img/hero-zandoli.png") center right / cover no-repeat;
    box-shadow: 0 24px 60px rgba(5,44,59,.18);
}

.zc-map-hero h1 {
    max-width: 850px;
    margin: 0 0 18px;
    color: #fff;
    font-size: clamp(36px, 5vw, 64px);
    line-height: .95;
    font-weight: 950;
}

.zc-map-hero p {
    max-width: 780px;
    margin: 0 0 24px;
    color: rgba(255,255,255,.94);
    font-size: 17px;
    line-height: 1.65;
}

.zc-map-hero-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.zc-territory-panel {
    width: min(1180px, 92vw);
    margin: 0 auto 26px;
    padding: 26px;
    border-radius: 28px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.96);
    box-shadow: 0 18px 45px rgba(5,44,59,.10);
}

.zc-territory-title {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: end;
    margin-bottom: 20px;
}

.zc-territory-title h2 {
    margin: 4px 0 0;
    color: var(--deep-blue);
    font-size: 34px;
    line-height: 1;
    font-weight: 950;
}

.zc-territory-title p {
    max-width: 520px;
    margin: 0;
    color: var(--muted);
    font-weight: 750;
    line-height: 1.45;
}

.zc-territory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.zc-territory-card {
    min-height: 96px;
    padding: 18px;
    border-radius: 22px;
    border: 1px solid rgba(220,231,232,.95);
    background: #f8fcfb;
    color: var(--deep-blue);
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.zc-territory-card:hover,
.zc-territory-card.active {
    transform: translateY(-2px);
    border-color: var(--green);
    background: linear-gradient(135deg, rgba(0,139,143,.10), rgba(255,122,24,.08)), #fff;
    box-shadow: 0 18px 34px rgba(5,44,59,.12);
}

.zc-territory-pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: rgba(0,139,143,.10);
    color: #e33;
}

.zc-territory-card strong {
    display: block;
    margin-bottom: 6px;
    color: var(--deep-blue);
    font-size: 18px;
    font-weight: 950;
}

.zc-territory-card small {
    color: var(--green);
    font-size: 13px;
    font-weight: 900;
}

.zc-map-layout {
    width: min(1180px, 92vw);
    margin: 0 auto 28px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 28px;
    align-items: stretch;
}

.zc-map-box {
    overflow: hidden;
    min-height: 620px;
    border-radius: 30px;
    border: 1px solid rgba(220,231,232,.96);
    box-shadow: 0 24px 60px rgba(5,44,59,.13);
}

#zandoliMap {
    width: 100%;
    height: 620px;
    background: #dceff0;
}

.zc-map-side {
    padding: 32px;
    border-radius: 30px;
    background: #fff;
    border: 1px solid rgba(220,231,232,.96);
    box-shadow: 0 24px 60px rgba(5,44,59,.10);
}

.zc-map-side h2 {
    margin: 8px 0 14px;
    color: var(--deep-blue);
    font-size: 34px;
    line-height: 1;
    font-weight: 950;
}

.zc-map-side p {
    margin: 0 0 22px;
    color: #082139;
    line-height: 1.6;
    font-weight: 700;
}

.zc-price-box {
    margin: 22px 0;
    padding: 24px;
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(0,139,143,.08), rgba(255,122,24,.10));
    text-align: center;
}

.zc-price-box strong {
    display: block;
    color: var(--green);
    font-size: 46px;
    font-weight: 950;
    line-height: 1;
}

.zc-price-box span {
    color: var(--deep-blue);
    font-weight: 950;
}

.zc-map-note {
    padding: 18px;
    border-radius: 18px;
    background: #fff6e8;
    color: #7a4700;
    font-weight: 850;
    line-height: 1.5;
}

.zc-map-count {
    margin-top: 18px;
    color: var(--green);
    font-weight: 950;
}

.zc-leaflet-pin-wrap {
    background: transparent;
    border: 0;
}

.zc-leaflet-pin {
    width: 24px;
    height: 24px;
    border-radius: 50% 50% 50% 0;
    background: var(--green);
    border: 3px solid #fff;
    transform: rotate(-45deg);
    box-shadow: 0 8px 20px rgba(5,44,59,.35);
}

.zc-leaflet-pin::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    left: 5px;
    top: 5px;
    border-radius: 50%;
    background: #fff;
}

.zc-map-popup {
    min-width: 230px;
}

.zc-map-popup h3 {
    margin: 0 0 10px;
    color: var(--deep-blue);
    font-size: 20px;
    font-weight: 950;
}

.zc-map-popup p {
    margin: 0 0 14px;
    color: #082139;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 700;
}

.zc-map-popup .btn {
    width: 100%;
    margin: 5px 0;
    color: #fff !important;
}

.zc-map-popup .btn.light {
    color: var(--green) !important;
}

@media(max-width: 1050px) {
    .zc-map-layout {
        grid-template-columns: 1fr;
    }

    .zc-map-side {
        order: -1;
    }

    .zc-territory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width: 680px) {
    .zc-map-hero,
    .zc-territory-panel,
    .zc-map-layout {
        width: 94vw;
    }

    .zc-map-hero {
        padding: 34px 24px;
    }

    .zc-territory-title {
        display: block;
    }

    .zc-territory-title p {
        margin-top: 12px;
    }

    .zc-territory-grid {
        grid-template-columns: 1fr;
    }

    .zc-map-box,
    #zandoliMap {
        min-height: 460px;
        height: 460px;
    }

    .zc-map-side {
        padding: 24px;
    }
}

/* Page Zandoli Protect - offres ajustées */
.protect-hero {
    width: min(1180px, 92vw);
    margin: 36px auto 64px;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 46px;
    align-items: center;
    min-height: 520px;
    position: relative;
}

.protect-hero::before {
    content: "";
    position: absolute;
    inset: -36px calc((100vw - min(1180px, 92vw)) / -2) -80px;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 34%, rgba(255,255,255,.35) 62%, rgba(255,255,255,.88) 100%),
        url("/assets/img/zandoli-protect-card.png") right center / contain no-repeat;
}

.protect-hero-content {
    max-width: 560px;
}

.service-eyebrow {
    display: inline-block;
    margin-bottom: 18px;
    color: var(--green);
    font-size: 14px;
    font-weight: 950;
    letter-spacing: 7px;
    text-transform: uppercase;
}

.protect-hero h1 {
    margin: 0 0 22px;
    color: var(--deep-blue, var(--blue, #052c3b));
    font-size: clamp(42px, 5vw, 72px);
    line-height: .95;
    font-weight: 950;
}

.protect-hero p {
    margin: 0 0 28px;
    color: #082139;
    font-size: 18px;
    line-height: 1.65;
    font-weight: 600;
}

.protect-hero-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.protect-hero-card {
    display: flex;
    justify-content: center;
    align-items: center;
}

.protect-hero-card img {
    width: min(460px, 100%);
    max-height: 330px;
    object-fit: cover;
    border-radius: 34px;
    box-shadow: 0 28px 70px rgba(5,44,59,.20);
}

.protect-section-head {
    width: min(900px, 92vw);
    margin: 0 auto 34px;
}

.protect-section-head h2 {
    margin: 0 0 16px;
    color: var(--deep-blue, var(--blue, #052c3b));
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.05;
    font-weight: 950;
}

.protect-section-head p {
    margin: 0;
    color: #082139;
    font-size: 17px;
    line-height: 1.65;
    font-weight: 600;
}

.protect-offers {
    width: min(1040px, 92vw);
    margin: 0 auto 56px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.protect-offer-card {
    position: relative;
    overflow: hidden;
    min-height: 245px;
    padding: 34px 34px 30px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: 0 22px 55px rgba(5,44,59,.10);
}

.protect-offer-card::after {
    content: "";
    position: absolute;
    right: -34px;
    bottom: -34px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: rgba(0,139,143,.10);
}

.offer-dot {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    margin-bottom: 28px;
}

.offer-dot.teal {
    background: #009697;
}

.offer-dot.orange {
    background: #ff7a18;
}

.offer-dot.green {
    background: #2b9138;
}

.protect-offer-card h3 {
    margin: 0 0 10px;
    color: var(--green);
    font-size: 28px;
    line-height: .9;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.protect-offer-card strong {
    display: block;
    margin-bottom: 22px;
    color: var(--deep-blue, var(--blue, #052c3b));
    font-size: 17px;
    font-weight: 950;
}

.protect-offer-card p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: #082139;
    font-size: 15px;
    line-height: 1.65;
    font-weight: 600;
}

.protect-conditions {
    width: min(1040px, 92vw);
    margin: 0 auto 34px;
    padding: 38px;
    border-radius: 28px;
    background: #ffffff;
    border: 1px solid rgba(220,231,232,.95);
    box-shadow: 0 22px 55px rgba(5,44,59,.10);
}

.protect-conditions h2 {
    margin: 0 0 24px;
    color: var(--deep-blue, var(--blue, #052c3b));
    font-size: 38px;
    line-height: 1.05;
    font-weight: 950;
}

.protect-conditions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
}

.protect-conditions-grid div {
    padding: 24px;
    border-radius: 22px;
    background: #f7fcfb;
    border: 1px solid rgba(220,231,232,.95);
}

.protect-conditions h3 {
    margin: 0 0 14px;
    color: var(--green);
    font-size: 22px;
    font-weight: 950;
}

.protect-conditions ul {
    margin: 0;
    padding-left: 20px;
}

.protect-conditions li {
    margin: 8px 0;
    color: #082139;
    font-weight: 650;
    line-height: 1.45;
}

@media(max-width: 980px) {
    .protect-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        margin-top: 28px;
    }

    .protect-hero::before {
        background:
            linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.82)),
            url("/assets/img/zandoli-protect-card.png") center top / cover no-repeat;
    }

    .protect-offers {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width: 680px) {
    .protect-hero,
    .protect-section-head,
    .protect-offers,
    .protect-conditions {
        width: 94vw;
    }

    .protect-offers,
    .protect-conditions-grid {
        grid-template-columns: 1fr;
    }

    .protect-hero h1 {
        font-size: 42px;
    }

    .protect-offer-card {
        min-height: auto;
    }

    .protect-conditions {
        padding: 26px;
    }
}

/* CORRECTION PROTECT HERO COMME MEDIA */
.zcp-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 0 !important;
    margin-bottom: 52px !important;
    padding:
        76px
        max(7vw, calc((100vw - min(1180px, 92vw)) / 2))
        96px !important;
    min-height: 650px !important;
    display: grid !important;
    grid-template-columns: minmax(360px, 540px) minmax(340px, 470px) !important;
    justify-content: start !important;
    align-items: center !important;
    gap: 80px !important;
    position: relative !important;
    overflow: hidden !important;
    background:
        linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.90) 34%, rgba(255,255,255,.42) 64%, rgba(255,255,255,.82) 100%),
        url("/assets/img/zandoli-protect-card.png") right center / cover no-repeat !important;
}

.zcp-hero::before {
    display: none !important;
    content: none !important;
}

.zcp-hero::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 170px !important;
    z-index: 0 !important;
    background: linear-gradient(180deg, rgba(246,241,232,0), var(--sand, #f6f1e8) 86%) !important;
    pointer-events: none !important;
}

.zcp-hero-text,
.zcp-hero-visual {
    position: relative !important;
    z-index: 1 !important;
}

.zcp-hero-text {
    max-width: 540px !important;
}

.zcp-hero h1 {
    margin: 0 0 22px !important;
    color: var(--deep-blue, #052c3b) !important;
    font-size: clamp(42px, 5vw, 72px) !important;
    line-height: .95 !important;
    font-weight: 950 !important;
    letter-spacing: -1px !important;
}

.zcp-hero p {
    margin: 0 0 30px !important;
    max-width: 520px !important;
    color: #082139 !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
    font-weight: 650 !important;
}

.zcp-actions {
    display: flex !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
}

.zcp-hero-visual {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.zcp-hero-visual img {
    width: min(460px, 100%) !important;
    height: 300px !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 32px !important;
    box-shadow: 0 30px 75px rgba(5,44,59,.22) !important;
}

.zcp-section-title {
    margin-top: 0 !important;
}

@media(max-width: 980px) {
    .zcp-hero {
        grid-template-columns: 1fr !important;
        gap: 34px !important;
        padding: 54px 5vw 78px !important;
        min-height: auto !important;
        background:
            linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.82)),
            url("/assets/img/zandoli-protect-card.png") center center / cover no-repeat !important;
    }

    .zcp-hero-visual {
        justify-content: flex-start !important;
    }
}

@media(max-width: 680px) {
    .zcp-hero {
        padding: 42px 4vw 64px !important;
    }

    .zcp-hero h1 {
        font-size: 42px !important;
    }

    .zcp-hero-visual img {
        height: 250px !important;
        border-radius: 24px !important;
    }
}

/* ZANDOLI PROTECT PAGE RESTAURATION COMPLETE */
.zcp-hero {
    width: 100% !important;
    min-height: 650px !important;
    margin: 0 auto 60px !important;
    padding: 72px max(7vw, 40px) 80px !important;
    display: grid !important;
    grid-template-columns: minmax(360px, 540px) minmax(360px, 520px) !important;
    align-items: center !important;
    gap: 70px !important;
    position: relative !important;
    overflow: hidden !important;
}

.zcp-hero::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -2 !important;
    background:
        linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.88) 36%, rgba(255,255,255,.38) 66%, rgba(255,255,255,.82) 100%),
        url("/assets/img/zandoli-protect-card.png") right center / cover no-repeat !important;
}

.zcp-hero::after {
    content: "" !important;
    position: absolute !important;
    inset: auto 0 0 0 !important;
    height: 160px !important;
    z-index: -1 !important;
    background: linear-gradient(180deg, rgba(246,241,232,0), var(--sand, #f6f1e8) 88%) !important;
}

.zcp-hero-text {
    max-width: 560px !important;
}

.zcp-hero h1 {
    margin: 0 0 22px !important;
    color: var(--deep-blue, #052c3b) !important;
    font-size: clamp(42px, 5vw, 72px) !important;
    line-height: .95 !important;
    font-weight: 950 !important;
    letter-spacing: -1px !important;
}

.zcp-hero p {
    margin: 0 0 30px !important;
    color: #082139 !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
    font-weight: 650 !important;
}

.zcp-actions {
    display: flex !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
}

.zcp-hero-visual {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.zcp-hero-visual img {
    width: min(460px, 100%) !important;
    height: 320px !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 34px !important;
    box-shadow: 0 30px 75px rgba(5,44,59,.22) !important;
}

.zcp-section-title {
    width: min(900px, 92vw) !important;
    margin: 0 auto 36px !important;
}

.zcp-section-title h2 {
    margin: 0 0 14px !important;
    color: var(--deep-blue, #052c3b) !important;
    font-size: clamp(34px, 4vw, 54px) !important;
    line-height: 1.05 !important;
    font-weight: 950 !important;
}

.zcp-section-title p {
    margin: 0 !important;
    color: #082139 !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
    font-weight: 650 !important;
}

.zcp-offers {
    width: min(1040px, 92vw) !important;
    margin: 0 auto 56px !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 26px !important;
}

.zcp-card {
    position: relative !important;
    overflow: hidden !important;
    min-height: 250px !important;
    padding: 34px 34px 30px !important;
    border-radius: 24px !important;
    background: #fff !important;
    border: 1px solid rgba(220,231,232,.96) !important;
    box-shadow: 0 22px 55px rgba(5,44,59,.10) !important;
}

.zcp-card::after {
    content: "" !important;
    position: absolute !important;
    right: -34px !important;
    bottom: -34px !important;
    width: 120px !important;
    height: 120px !important;
    border-radius: 50% !important;
    background: rgba(0,139,143,.10) !important;
}

.zcp-dot {
    display: block !important;
    width: 54px !important;
    height: 54px !important;
    border-radius: 50% !important;
    margin-bottom: 28px !important;
}

.zcp-dot.teal { background: #009697 !important; }
.zcp-dot.orange { background: #ff7a18 !important; }
.zcp-dot.green { background: #2b9138 !important; }

.zcp-card h3 {
    margin: 0 0 10px !important;
    color: var(--green, #0b7a5b) !important;
    font-size: 28px !important;
    line-height: .92 !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}

.zcp-card strong {
    display: block !important;
    margin-bottom: 22px !important;
    color: var(--deep-blue, #052c3b) !important;
    font-size: 17px !important;
    font-weight: 950 !important;
}

.zcp-card p {
    position: relative !important;
    z-index: 1 !important;
    margin: 0 !important;
    color: #082139 !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
    font-weight: 650 !important;
}

.zcp-conditions {
    width: min(1040px, 92vw) !important;
    margin: 0 auto 34px !important;
    padding: 38px !important;
    border-radius: 28px !important;
    background: #fff !important;
    border: 1px solid rgba(220,231,232,.96) !important;
    box-shadow: 0 22px 55px rgba(5,44,59,.10) !important;
}

.zcp-conditions h2 {
    margin: 0 0 24px !important;
    color: var(--deep-blue, #052c3b) !important;
    font-size: 38px !important;
    line-height: 1.05 !important;
    font-weight: 950 !important;
}

.zcp-conditions-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px !important;
}

.zcp-conditions-grid > div {
    padding: 24px !important;
    border-radius: 22px !important;
    background: #f7fcfb !important;
    border: 1px solid rgba(220,231,232,.96) !important;
}

.zcp-conditions h3 {
    margin: 0 0 14px !important;
    color: var(--green, #0b7a5b) !important;
    font-size: 22px !important;
    font-weight: 950 !important;
}

.zcp-conditions ul {
    margin: 0 !important;
    padding-left: 20px !important;
}

.zcp-conditions li {
    margin: 8px 0 !important;
    color: #082139 !important;
    font-weight: 650 !important;
    line-height: 1.45 !important;
}

@media(max-width: 980px) {
    .zcp-hero {
        grid-template-columns: 1fr !important;
        padding: 52px 5vw 70px !important;
        gap: 34px !important;
    }

    .zcp-hero-visual {
        justify-content: flex-start !important;
    }

    .zcp-offers {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media(max-width: 680px) {
    .zcp-hero {
        padding: 42px 4vw 58px !important;
    }

    .zcp-hero h1 {
        font-size: 42px !important;
    }

    .zcp-hero-visual img {
        height: 260px !important;
    }

    .zcp-offers,
    .zcp-conditions-grid {
        grid-template-columns: 1fr !important;
    }

    .zcp-card {
        min-height: auto !important;
    }

    .zcp-conditions {
        padding: 26px !important;
    }
}

/* LOGO GLOBAL ZANDOLI CONNECT HEADER */
.top {
    min-height: 76px !important;
    padding: 10px 48px !important;
    display: flex !important;
    align-items: center !important;
}

.zc-brand,
.brand.zc-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: max-content !important;
    color: var(--deep-blue, #052c3b) !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

.zc-brand-logo {
    display: block !important;
    width: 52px !important;
    height: 52px !important;
    object-fit: contain !important;
    flex: 0 0 auto !important;
}

.zc-brand-name {
    display: inline-block !important;
    color: var(--deep-blue, #052c3b) !important;
    font-size: 20px !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
}

.logo {
    display: none !important;
}

@media(max-width: 900px) {
    .top {
        padding: 10px 20px !important;
        min-height: 70px !important;
    }

    .zc-brand-logo {
        width: 46px !important;
        height: 46px !important;
    }

    .zc-brand-name {
        font-size: 18px !important;
    }
}

@media(max-width: 520px) {
    .zc-brand-logo {
        width: 42px !important;
        height: 42px !important;
    }

    .zc-brand-name {
        font-size: 16px !important;
    }
}

/* CORRECTION TAILLE LOGO HEADER */
.top {
    min-height: 82px !important;
    padding: 10px 48px !important;
}

.zc-brand,
.brand.zc-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
}

.zc-brand-logo {
    width: 165px !important;
    height: 58px !important;
    object-fit: contain !important;
    object-position: left center !important;
}

.zc-brand-name {
    display: none !important;
}

@media(max-width: 900px) {
    .top {
        min-height: 76px !important;
        padding: 10px 20px !important;
    }

    .zc-brand-logo {
        width: 145px !important;
        height: 52px !important;
    }
}

@media(max-width: 520px) {
    .zc-brand-logo {
        width: 125px !important;
        height: 48px !important;
    }
}

/* AGRANDISSEMENT LOGO HEADER V2 */
.top {
    min-height: 92px !important;
    padding: 10px 48px !important;
}

.zc-brand-logo {
    width: 230px !important;
    height: 76px !important;
    object-fit: contain !important;
    object-position: left center !important;
}

.zc-brand-name {
    display: none !important;
}

@media(max-width: 900px) {
    .top {
        min-height: 82px !important;
        padding: 10px 20px !important;
    }

    .zc-brand-logo {
        width: 190px !important;
        height: 64px !important;
    }
}

@media(max-width: 520px) {
    .zc-brand-logo {
        width: 155px !important;
        height: 54px !important;
    }
}

/* LOGO ZANDOLI CONNECT FINAL HEADER */
.top {
    min-height: 96px !important;
    padding: 10px 48px !important;
    display: flex !important;
    align-items: center !important;
}

.zc-brand,
.brand.zc-brand {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 310px !important;
    min-width: 310px !important;
    height: 76px !important;
    overflow: visible !important;
}

.zc-brand-logo {
    display: block !important;
    width: 300px !important;
    height: 76px !important;
    object-fit: contain !important;
    object-position: left center !important;
}

.zc-brand-name,
.logo {
    display: none !important;
}

@media(max-width: 900px) {
    .top {
        min-height: 84px !important;
        padding: 8px 20px !important;
    }

    .zc-brand,
    .brand.zc-brand {
        width: 230px !important;
        min-width: 230px !important;
        height: 64px !important;
    }

    .zc-brand-logo {
        width: 220px !important;
        height: 64px !important;
    }
}

@media(max-width: 520px) {
    .zc-brand,
    .brand.zc-brand {
        width: 180px !important;
        min-width: 180px !important;
    }

    .zc-brand-logo {
        width: 175px !important;
        height: 56px !important;
    }
}

/* ESPACE TEAM ZANDOLI */
.join-team-hero {
    width: min(1180px, 92vw);
    margin: 42px auto 34px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 34px;
    align-items: center;
}

.join-team-copy {
    padding: 52px;
    border-radius: 32px;
    color: #fff;
    background:
      linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,150,151,.78)),
      url("/assets/img/hero-zandoli.png") center/cover no-repeat;
    box-shadow: var(--shadow);
}

.join-team-copy h1 {
    margin: 0 0 18px;
    font-size: clamp(38px, 5vw, 64px);
    line-height: .95;
    font-weight: 950;
}

.join-team-copy p {
    font-size: 18px;
    line-height: 1.65;
    color: #eefdf8;
}

.join-team-image img {
    width: 100%;
    max-height: 480px;
    object-fit: cover;
    border-radius: 32px;
    box-shadow: var(--shadow);
    background: #eaf7f2;
}

.join-team-info {
    width: min(1180px, 92vw);
    margin: 0 auto 34px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.join-team-info article,
.team-login-card,
.team-form-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 26px;
    padding: 26px;
    box-shadow: var(--shadow);
}

.team-login-page {
    width: min(1080px, 92vw);
    margin: 52px auto 34px;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 28px;
    align-items: stretch;
}

.team-login-visual {
    padding: 54px;
    border-radius: 32px;
    color: #fff;
    background:
      linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,150,151,.74)),
      url("/assets/img/hero-zandoli.png") center/cover no-repeat;
    box-shadow: var(--shadow);
}

.team-login-visual h1 {
    margin: 0 0 18px;
    font-size: clamp(38px, 5vw, 62px);
    line-height: .95;
}

.team-login-visual p {
    color: #eefdf8;
    line-height: 1.65;
}

.team-login-points {
    display: grid;
    gap: 12px;
    margin-top: 28px;
}

.team-login-points span {
    display: block;
    padding: 14px 18px;
    border-radius: 18px;
    background: rgba(255,255,255,.18);
    font-weight: 800;
}

.team-layout {
    width: min(1180px, 92vw);
    margin: 36px auto 34px;
    grid-template-columns: 260px 1fr !important;
}

.team-side {
    background: linear-gradient(180deg, #fff, #edf8f5);
}

.team-main {
    min-width: 0;
}

.team-hero,
.admin-hero {
    padding: 42px;
    margin-bottom: 24px;
    border-radius: 30px;
    color: #fff;
    background:
      linear-gradient(135deg, rgba(5,44,59,.96), rgba(0,150,151,.72)),
      url("/assets/img/hero-zandoli.png") center/cover no-repeat;
    box-shadow: var(--shadow);
}

.team-hero h1,
.admin-hero h1 {
    margin: 0 0 12px;
    font-size: clamp(34px, 4vw, 56px);
    line-height: .95;
    font-weight: 950;
}

.team-hero p,
.admin-hero p {
    color: #eefdf8;
    line-height: 1.6;
    margin: 0;
}

.team-stats {
    margin-bottom: 24px;
}

.team-table th,
.team-table td {
    vertical-align: middle;
}

.table-wrap {
    width: 100%;
    overflow-x: auto;
}

.team-service-form {
    display: contents;
}

.team-rate {
    color: var(--green);
    font-size: 18px;
}

.team-media-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.team-media-item {
    display: block;
    padding: 10px;
    border-radius: 18px;
    background: #f7fcfb;
    border: 1px solid var(--line);
    text-align: center;
    font-weight: 800;
}

.team-media-item img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 14px;
}

@media(max-width: 900px) {
    .join-team-hero,
    .team-login-page,
    .team-layout {
        grid-template-columns: 1fr !important;
    }

    .join-team-info {
        grid-template-columns: 1fr;
    }

    .team-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width: 560px) {
    .join-team-copy,
    .team-login-visual,
    .team-hero,
    .admin-hero {
        padding: 28px;
    }

    .team-media-grid {
        grid-template-columns: 1fr;
    }
}

/* FIX TEAM LOGIN FORM VISIBLE */
.zc-team-login-force {
    width: min(1080px, 92vw) !important;
    margin: 52px auto 36px !important;
    display: grid !important;
    grid-template-columns: 1.15fr .85fr !important;
    gap: 30px !important;
    align-items: stretch !important;
}

.zc-auth-card {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #fff !important;
    border: 1px solid var(--line, #d9e7e5) !important;
    border-radius: 30px !important;
    padding: 34px !important;
    box-shadow: var(--shadow, 0 24px 60px rgba(0,0,0,.12)) !important;
    min-height: 100% !important;
    position: relative !important;
    z-index: 5 !important;
}

.zc-auth-icon {
    width: 58px !important;
    height: 58px !important;
    border-radius: 50% !important;
    background: var(--teal, #009697) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 26px !important;
    margin-bottom: 18px !important;
}

.zc-auth-card h2 {
    margin: 0 0 8px !important;
    font-size: 30px !important;
    line-height: 1 !important;
    color: var(--deep-blue, #052c3b) !important;
}

.zc-auth-card label {
    display: block !important;
    margin-top: 16px !important;
    margin-bottom: 7px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
    letter-spacing: .06em !important;
}

.zc-auth-card input {
    width: 100% !important;
    height: 48px !important;
    border-radius: 16px !important;
    border: 1px solid var(--line, #d9e7e5) !important;
    padding: 0 14px !important;
    background: #f8fcfb !important;
}

.zc-auth-submit {
    width: 100% !important;
    margin-top: 22px !important;
}

.zc-demo-box {
    margin-top: 18px !important;
    padding: 16px !important;
    border-radius: 18px !important;
    background: #f1fbf8 !important;
    color: var(--deep-blue, #052c3b) !important;
    font-weight: 700 !important;
}

@media(max-width: 900px) {
    .zc-team-login-force {
        grid-template-columns: 1fr !important;
    }
}

/* MENU TEAM PARTENAIRE */
.top nav a.nav-account,
.top nav a.nav-logout,
header nav a.nav-account,
header nav a.nav-logout {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 950 !important;
    color: var(--deep-blue, #052c3b) !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

.top nav a.nav-account.is-active,
header nav a.nav-account.is-active {
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}

.top nav a.nav-logout,
header nav a.nav-logout {
    color: var(--deep-blue, #052c3b) !important;
}

/* TEAM PROTECT STRICT STATUS CSS */
.badge.status-a_pourvoir {
    background: #eafaf7 !important;
    color: #008f8f !important;
}

.badge.status-pris_en_charge {
    background: #fff2d6 !important;
    color: #8a5a00 !important;
}

.badge.status-terminee {
    background: #edf0f3 !important;
    color: #344054 !important;
}

.team-table .btn {
    white-space: nowrap !important;
}

.team-table td {
    vertical-align: top !important;
}

/* ACTIVE SPACE ROLE MENU */
/* ACTIVE SPACE ROLE MENU */
.top nav a.zc-current-space,
header nav a.zc-current-space,
nav a.zc-current-space {
    color: var(--deep-blue, #052c3b) !important;
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}

/* ZC CURRENT CONNECTED SPACE - PERSIST ROLE */
.top nav a.zc-current-space,
header nav a.zc-current-space,
nav a.zc-current-space {
    color: var(--deep-blue, #052c3b) !important;
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}

.top nav a.zc-current-space:hover,
header nav a.zc-current-space:hover,
nav a.zc-current-space:hover {
    color: var(--deep-blue, #052c3b) !important;
}

/* TEAM LOGIN CREATE SPACE BOX */
.zc-login-create-box {
    margin-top: 18px !important;
    padding: 18px 16px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, #fff8ec, #eefbf7) !important;
    color: var(--deep-blue, #052c3b) !important;
    text-align: center !important;
    font-weight: 900 !important;
}

.zc-login-create-box a {
    display: inline-block !important;
    margin-top: 6px !important;
    color: var(--orange, #ff7a1a) !important;
    font-weight: 950 !important;
    text-decoration: none !important;
}

.zc-login-create-box a:hover {
    text-decoration: underline !important;
}

.zc-auth-card textarea {
    width: 100% !important;
    border-radius: 16px !important;
    border: 1px solid var(--line, #d9e7e5) !important;
    padding: 12px 14px !important;
    background: #f8fcfb !important;
    resize: vertical !important;
}


/* ROLE PARTENAIRE AUTOENTREPRENEUR SELECT */
select[name="role"] {
    min-width: 210px !important;
}

/* ESPACE TEAM ZANDOLI MENU */
/* ESPACE TEAM ZANDOLI MENU */
.top nav a.zc-team-menu-link,
header nav a.zc-team-menu-link,
nav a.zc-team-menu-link {
    white-space: nowrap !important;
}

/* ZC CONNECTED ROLE ACTIVE UNDERLINE FINAL */
.top nav a.zc-current-space,
header nav a.zc-current-space,
.site-header nav a.zc-current-space,
.main-header nav a.zc-current-space {
    color: var(--deep-blue, #052c3b) !important;
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}

.top nav a.zc-team-menu-link,
header nav a.zc-team-menu-link,
.site-header nav a.zc-team-menu-link,
.main-header nav a.zc-team-menu-link {
    white-space: nowrap !important;
}

/* ZC FINAL CONNECTED ROLE MENU */
/* ZC FINAL CONNECTED ROLE MENU */
.top nav a.zc-current-space,
header nav a.zc-current-space,
.site-header nav a.zc-current-space,
.main-header nav a.zc-current-space {
    color: var(--deep-blue, #052c3b) !important;
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}

.top nav a.zc-partner-menu-link,
header nav a.zc-partner-menu-link,
.site-header nav a.zc-partner-menu-link,
.main-header nav a.zc-partner-menu-link {
    white-space: nowrap !important;
}


/* ZC TEAM DIRECT PROTECT WORKFLOW */
.top nav a.zc-current-space,
header nav a.zc-current-space,
.site-header nav a.zc-current-space,
.main-header nav a.zc-current-space {
    color: var(--deep-blue, #052c3b) !important;
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}

.top nav a.zc-partner-menu-link,
header nav a.zc-partner-menu-link,
.site-header nav a.zc-partner-menu-link,
.main-header nav a.zc-partner-menu-link {
    white-space: nowrap !important;
}

.inline-form {
    display: grid !important;
    gap: 8px !important;
}

.inline-form input[type="datetime-local"] {
    min-width: 190px !important;
}

.table-scroll {
    overflow-x: auto !important;
}

.btn.small,
button.small {
    padding: 9px 14px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
}

.pill {
    display: inline-flex !important;
    align-items: center !important;
    padding: 6px 10px !important;
    border-radius: 999px !important;
    background: #eefbf7 !important;
    color: var(--teal, #009697) !important;
    font-weight: 900 !important;
}

/* ZC TEAM CUMUL PRESTATIONS */
/* ZC TEAM CUMUL PRESTATIONS */
.team-layout .stats {
    margin: 24px 0 !important;
}

.team-layout .panel table th,
.team-layout .panel table td {
    vertical-align: top !important;
}

.team-layout .panel h2 {
    margin-bottom: 8px !important;
}

.team-layout .muted {
    color: rgba(5, 44, 59, .68) !important;
}

/* ZC TEAM SIDEBAR FORCE LINKS */
/* ZC TEAM SIDEBAR FORCE LINKS */
.side.team-side {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

.side.team-side h3 {
    margin-bottom: 8px !important;
}

.side.team-side a {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: var(--deep-blue, #052c3b) !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    line-height: 1.2 !important;
    min-height: 22px !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.side.team-side a:hover {
    color: var(--teal, #009697) !important;
}

.side.team-side a[href="/team/dashboard.php"] {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* ZC TEAM DASHBOARD SPLIT FINAL */
/* ZC TEAM DASHBOARD SPLIT FINAL */
.team-side {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

.team-side a {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    visibility: visible !important;
    opacity: 1 !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}

.zc-team-dashboard-stats {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
    gap: 20px !important;
    margin-top: 28px !important;
}

.zc-team-dashboard-stats .stat {
    min-height: 130px !important;
}

@media(max-width: 1100px) {
    .zc-team-dashboard-stats {
        grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
    }
}

@media(max-width: 640px) {
    .zc-team-dashboard-stats {
        grid-template-columns: 1fr !important;
    }
}

/* ZC USERS ROLE AUTH */
/* ZC USERS ROLE AUTH */
.zc-auth-role-page .alert-error {
    background: #fde8e8 !important;
    color: #8a1f1f !important;
    border-radius: 14px !important;
    padding: 12px 14px !important;
    margin: 14px 0 !important;
    font-weight: 800 !important;
}

.zc-auth-role-page .zc-login-create-box {
    margin-top: 18px !important;
    padding: 16px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, #fff8ec, #eefbf7) !important;
    text-align: center !important;
}

.zc-auth-role-page .zc-login-create-box a {
    color: #ff7900 !important;
    font-weight: 950 !important;
    text-decoration: none !important;
}

.zc-current-space {
    border-bottom: 4px solid var(--teal, #009697) !important;
    padding-bottom: 8px !important;
}
