/* Correctifs visuels et alignement typographique */
p {
    text-align: justify;
    text-align-last: left;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.brand-mark {
    position: relative;
    flex: 0 0 38px;
}

.brand-mark::before,
.brand-mark::after {
    content: "";
    position: absolute;
    left: 9px;
    width: 20px;
    height: 5px;
    background: #fff;
    border-radius: 2px;
}

.brand-mark::before {
    top: 9px;
    transform: skew(-25deg);
}

.brand-mark::after {
    top: 23px;
    transform: skew(25deg);
}

.btn-outline,
.btn-outline:visited {
    color: var(--navy);
    background: #fff;
    border-color: #c8d7e6;
}

.btn-outline:hover,
.btn-outline:focus {
    color: var(--blue);
    background: #f3fbff;
    border-color: var(--cyan);
}

.brand-logo img {
    display: block;
    width: 178px;
    height: auto;
}

.footer-logo img {
    width: 190px;
}

.visual::after {
    display: none;
}

.visual {
    display: grid;
    place-items: center;
    padding: 45px;
}

.visual > img {
    display: block;
    position: relative;
    z-index: 2;
    width: min(100%, 390px);
    height: auto;
}

.influencer-section {
    background: #fff;
    padding: 55px 0;
    overflow: hidden;
}

.influencer-section .section-head {
    margin-bottom: 28px;
}

.influencer-visual {
    display: block;
    width: min(100%, 650px);
    max-width: 650px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--navy);
    box-shadow: var(--shadow);
}

.influencer-visual img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.hero-promo {
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 22px;
    background: #071525;
    box-shadow: 0 26px 60px rgba(0, 0, 0, .25);
}

.hero-promo img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.hero-budget {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 22px;
    color: #dbe7f2;
    font-weight: 700;
}

.hero-budget svg {
    width: 20px;
    flex: 0 0 20px;
    margin-top: 2px;
    color: var(--cyan);
}

@media (max-width: 900px) {
    .hero-promo {
        width: min(100%, 650px);
    }
}

@media (max-width: 600px) {
    .influencer-visual {
        border-radius: 16px;
    }
}

/* Espace support et tickets */
.page-hero.compact { padding: 55px 0; }
.page-hero.compact h1 { margin-bottom: 8px; }
.ticket-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 32px; align-items: start; }
.ticket-sidebar { display: grid; gap: 20px; }
.ticket-card { padding: 34px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 14px 40px rgba(7,21,37,.07); }
.ticket-card > h2:first-child { margin-top: 0; color: var(--navy); }
.ticket-form { display: grid; gap: 20px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ticket-form label { display: grid; gap: 7px; color: var(--navy); font-weight: 750; }
.ticket-form input, .ticket-form select, .ticket-form textarea { width: 100%; border: 1px solid #cbd8e6; border-radius: 10px; padding: 12px 14px; background: #fff; color: var(--text); font: inherit; }
.ticket-form textarea { resize: vertical; min-height: 130px; }
.ticket-form input:focus, .ticket-form select:focus, .ticket-form textarea:focus { outline: 3px solid rgba(38,214,200,.18); border-color: var(--cyan); }
.ticket-form .btn { justify-self: start; cursor: pointer; font: inherit; }
.form-help { margin: -5px 0 0; color: var(--muted); font-size: .9rem; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.notice { margin: 0 0 24px; padding: 18px 20px; border-radius: 12px; }
.notice h2 { margin-top: 0; }
.notice p { text-align: left; }
.notice-success { color: #075f52; background: #e7faf6; border: 1px solid #9de7da; }
.notice-error { color: #8a1c1c; background: #fff0f0; border: 1px solid #f3b4b4; }
.notice-warning { color: #735510; background: #fff8dc; border: 1px solid #ead58c; }
.ticket-reference { display: inline-block; margin: 5px 0 22px; padding: 10px 14px; border-radius: 9px; background: var(--navy); color: #fff; font-weight: 900; letter-spacing: .08em; }
.ticket-reference.small { margin: 0 0 10px; font-size: .83rem; }
.ticket-narrow { max-width: 920px; }
.auth-card { max-width: 560px; }
.ticket-heading { display: flex; justify-content: space-between; gap: 25px; align-items: flex-start; margin-bottom: 30px; }
.ticket-heading h1, .ticket-heading h2 { margin: 0 0 8px; color: var(--navy); line-height: 1.2; }
.ticket-heading p { margin: 0; color: var(--muted); }
.ticket-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.status, .priority { display: inline-flex; white-space: nowrap; border-radius: 999px; padding: 5px 10px; font-size: .78rem; font-weight: 900; }
.status-nouveau { color: #075da8; background: #e3f2ff; }
.status-en_cours { color: #765000; background: #fff3c9; }
.status-en_attente { color: #71430c; background: #ffead1; }
.status-resolu { color: #06705f; background: #ddf8f1; }
.priority { color: #4b5563; background: #edf2f7; }
.ticket-timeline { display: grid; gap: 15px; margin-bottom: 30px; }
.ticket-message { max-width: 85%; padding: 19px 21px; border: 1px solid var(--line); border-radius: 16px; background: #f6f9fc; }
.ticket-message.from-admin { justify-self: end; background: #eaf3ff; border-color: #bdd8fb; }
.ticket-message header { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 8px; }
.ticket-message time { color: var(--muted); font-size: .8rem; }
.ticket-message p { margin: 0; text-align: left; }
.reply-card { margin-top: 22px; }
.text-link { color: var(--blue); font-weight: 750; }
.admin-bar { padding: 11px 0; background: #10243a; color: #d8e6f3; font-size: .88rem; }
.admin-bar .container { display: flex; align-items: center; gap: 22px; }
.admin-bar a:last-child { margin-left: auto; }
.admin-section { padding-top: 55px; }
.admin-title { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-bottom: 25px; }
.admin-title h1 { margin: 5px 0 0; color: var(--navy); font-size: 2.5rem; }
.ticket-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; }
.ticket-filters a { padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; font-weight: 750; }
.ticket-filters a.active { color: #fff; border-color: var(--blue); background: var(--blue); }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; }
.ticket-table { width: 100%; border-collapse: collapse; background: #fff; }
.ticket-table th, .ticket-table td { padding: 15px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.ticket-table th { background: #f2f7fb; color: var(--navy); }
.ticket-table small { display: block; color: var(--muted); }
.ticket-table tr:last-child td { border-bottom: 0; }
.empty-state { padding: 45px; border: 1px dashed #b9c9da; border-radius: 16px; color: var(--muted); text-align: center; }

@media (max-width: 900px) {
    .ticket-layout { grid-template-columns: 1fr; }
    .ticket-sidebar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
    .form-grid, .ticket-sidebar { grid-template-columns: 1fr; }
    .ticket-card { padding: 23px; }
    .ticket-heading, .admin-title { flex-direction: column; }
    .ticket-badges { justify-content: flex-start; }
    .ticket-message { max-width: 100%; }
    .ticket-message header { flex-direction: column; gap: 2px; }
    .admin-bar .container { flex-wrap: wrap; }
}
