.legal-shell {
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 26px 90px;
}

.legal-head {
    max-width: 850px;
    margin: 0 0 48px;
}

.legal-head h1 {
    margin: 10px 0 20px;
    color: #173c36;
    font: 600 clamp(46px, 6vw, 72px)/1 "Newsreader";
}

.legal-head > p:not(.eyebrow) {
    max-width: 760px;
    color: #536761;
    font-size: 18px;
    line-height: 1.65;
}

.legal-head small {
    color: #71817c;
    font-size: 11px;
}

.legal-configuration-warning {
    margin: 0 0 30px;
    padding: 18px 20px;
    border: 1px solid #d99d82;
    border-radius: 9px;
    background: #fff1e9;
    color: #713d2d;
}

.legal-configuration-warning p {
    margin: 5px 0 0;
    font-size: 12px;
    line-height: 1.55;
}

.legal-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 60px;
    align-items: start;
}

.legal-summary {
    position: sticky;
    top: 95px;
    padding: 20px;
    border: 1px solid #d9e0d9;
    border-radius: 10px;
    background: #fffefa;
}

.legal-summary > strong {
    color: #173c36;
    font: 600 20px "Newsreader";
}

.legal-summary ol {
    margin: 14px 0 0;
    padding-left: 20px;
}

.legal-summary li {
    padding: 5px 0;
    color: #65756f;
    font-size: 11px;
    line-height: 1.4;
}

.legal-summary a:hover,
.legal-content a {
    color: #276f5e;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal-content {
    min-width: 0;
}

.legal-content section {
    position: relative;
    padding: 0 0 40px 50px;
    margin: 0 0 40px;
    border-bottom: 1px solid #d9e0d9;
    scroll-margin-top: 95px;
}

.legal-content section > span:first-child {
    position: absolute;
    top: 7px;
    left: 0;
    color: #276f5e;
    font-size: 10px;
    font-weight: 700;
}

.legal-content h2 {
    margin: 0 0 16px;
    color: #173c36;
    font: 600 31px/1.15 "Newsreader";
}

.legal-content p,
.legal-content li,
.legal-details dd {
    color: #425650;
    font-size: 15px;
    line-height: 1.75;
}

.legal-content li {
    margin-bottom: 8px;
}

.legal-callout {
    margin: 24px 0;
    padding: 20px;
    border-left: 3px solid #276f5e;
    background: #edf3ed;
}

.legal-callout p {
    margin: 6px 0 0;
    font-size: 13px;
}

.legal-details {
    margin: 0;
}

.legal-details > div {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 20px;
    padding: 13px 0;
    border-top: 1px solid #e1e6e1;
}

.legal-details dt {
    color: #71817c;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.legal-details dd {
    margin: 0;
}

.legal-table {
    margin: 22px 0;
    border: 1px solid #d9e0d9;
    border-radius: 9px;
    overflow: hidden;
}

.legal-table > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    padding: 16px;
    border-top: 1px solid #d9e0d9;
    background: #fffefa;
}

.legal-table > div:first-child {
    border-top: 0;
}

.legal-table strong,
.legal-table span {
    color: #425650;
    font-size: 12px;
    line-height: 1.5;
}

.withdrawal-model {
    margin: 22px 0;
    padding: 28px;
    border: 1px dashed #98aba3;
    background: #fffefa;
}

.withdrawal-model p {
    font-family: Georgia, serif;
    font-size: 13px;
}

.legal-email-button {
    display: inline-flex;
    margin-top: 8px;
    color: #fff !important;
    text-decoration: none !important;
}

.legal-print {
    padding: 0;
}

.legal-related {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 15px 0 0 300px;
}

.legal-related a {
    padding: 8px 11px;
    border: 1px solid #d9e0d9;
    border-radius: 99px;
    color: #536761;
    font-size: 10px;
}

@media (max-width: 800px) {
    .legal-layout {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .legal-summary {
        position: static;
    }

    .legal-related {
        margin-left: 0;
    }
}

@media (max-width: 560px) {
    .legal-shell {
        padding-inline: 18px;
    }

    .legal-head h1 {
        font-size: clamp(38px, 12vw, 50px);
        overflow-wrap: anywhere;
    }

    .legal-content section {
        padding-left: 0;
    }

    .legal-content section > span:first-child {
        position: static;
        display: block;
        margin-bottom: 8px;
    }

    .legal-content h2 {
        font-size: 27px;
    }

    .legal-details > div,
    .legal-table > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }
}

@media print {
    .topbar,
    .site-footer,
    .legal-summary,
    .legal-related,
    .legal-configuration-warning,
    .legal-print {
        display: none !important;
    }

    .legal-layout {
        display: block;
    }

    .legal-content section:not(#modele),
    .legal-head {
        display: none;
    }
}
