/* ============================================================
   DocPacta — Responsive
   ============================================================ */

/* TABLETTE (max 1024px) */
@media (max-width: 1024px) {
    .dp-hero .dp-container {
        gap: 40px;
    }

    .dp-hero__title {
        font-size: 2.2rem;
    }

    .dp-domains__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .dp-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .dp-footer__brand {
        grid-column: span 2;
    }
}

/* MOBILE (max 768px) */
@media (max-width: 768px) {

    /* Header */
    .dp-header__nav {
        display: none;
        position: absolute;
        top: 64px;
        left: 0;
        right: 0;
        background: var(--dp-white);
        border-bottom: 1px solid var(--dp-gray-200);
        flex-direction: column;
        padding: 16px 24px;
        box-shadow: var(--dp-shadow-md);
    }

    .dp-header__nav.dp-header__nav--open {
        display: flex;
    }

    .dp-header__nav a {
        padding: 10px 0;
        font-size: 1rem;
    }

    .dp-header__burger {
        display: flex;
    }

    .dp-lang-switcher {
        gap: 2px;
    }

    .dp-lang-switcher__link {
        padding: 4px 6px;
        font-size: 0.7rem;
    }

    /* Hero */
    .dp-hero {
        padding: 40px 0;
    }

    .dp-hero .dp-container {
        flex-direction: column;
        text-align: center;
    }

    .dp-hero__title {
        font-size: 2rem;
    }

    .dp-hero__subtitle {
        font-size: 1rem;
        max-width: 100%;
    }

    .dp-hero__cta {
        display: flex;
        justify-content: center;
    }

    .dp-usecases__grid {
        grid-template-columns: 1fr;
    }

    .dp-hero__qr {
        justify-content: center;
    }

    .dp-hero__visual {
        order: -1;
        width: min(100%, 430px);
    }

    .dp-contract-stage {
        min-height: 380px;
        padding: 34px 20px 28px 34px;
        text-align: left;
    }

    .dp-contract-stage::before {
        inset: 18px 12px 38px 38px;
        box-shadow: 12px 12px 0 #ffe66a;
    }

    .dp-contract-stage__paper {
        min-height: 250px;
        padding: 30px 24px;
    }

    .dp-contract-stage__question {
        right: 3px;
        bottom: 57px;
    }

    .dp-contract-stage__privacy {
        left: 8px;
        bottom: 14px;
    }

    /* Sections */
    .dp-section {
        padding: 48px 0;
    }

    .dp-section__title {
        font-size: 1.6rem;
    }

    .dp-section__subtitle {
        font-size: 1rem;
        margin-bottom: 32px;
    }

    /* Problème */
    .dp-problem__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    /* Domaines */
    .dp-domains__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .dp-domain {
        padding: 16px;
    }

    .dp-domain__icon {
        font-size: 1.5rem;
    }

    .dp-domain__title {
        font-size: 0.85rem;
    }

    .dp-domain__desc {
        font-size: 0.78rem;
    }

    /* Privacy grid */
    .dp-privacy__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    /* IA grid */
    .dp-ia__grid {
        grid-template-columns: 1fr;
    }

    .dp-offer-grid {
        grid-template-columns: 1fr;
    }

    .dp-offer-card--primary {
        transform: none;
    }

    /* Pricing table */
    .dp-pricing__table {
        font-size: 0.82rem;
    }

    .dp-pricing__feature-name {
        padding: 10px 8px;
        font-size: 0.8rem;
    }

    .dp-pricing__cell {
        padding: 10px 8px;
    }

    .dp-pricing__plan-name {
        font-size: 0.85rem;
    }

    .dp-pricing__plan-price {
        font-size: 1.1rem;
    }

    /* Footer */
    .dp-footer__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .dp-footer__brand {
        grid-column: auto;
    }

    /* Pages */
    .dp-page__content h1 {
        font-size: 1.6rem;
    }

    .dp-page__content h2 {
        font-size: 1.1rem;
    }

    /* FAQ */
    .dp-faq__question {
        font-size: 0.9rem;
        padding: 16px 0;
    }

    /* Buttons */
    .dp-btn {
        padding: 12px 20px;
        font-size: 0.9rem;
        width: 100%;
        justify-content: center;
    }

    .dp-btn--large {
        padding: 14px 24px;
    }

    /* Manual card */
    .dp-manual__card {
        padding: 32px 20px;
    }

    .dp-manual__grid {
        grid-template-columns: 1fr;
    }

    .dp-manual__tile-top {
        align-items: flex-start;
        flex-direction: column;
    }

    .dp-manual__tile h3 {
        text-align: left;
    }
}

/* PETIT MOBILE (max 375px) */
@media (max-width: 375px) {
    .dp-hero__title {
        font-size: 1.7rem;
    }

    .dp-domains__grid {
        grid-template-columns: 1fr;
    }

    .dp-section__title {
        font-size: 1.4rem;
    }
}
