/* Shared responsive safeguards. Keep desktop compositions and visible content intact. */
.nex-login-panel__form .woocommerce form input.input-text { font-size: 16px; }
@media (max-width: 1080px) {
    #contenu :is(.nex-hero-copy, .nex-reference-hero__content, .nex-form-card, .nex-form-intro,
        .nex-article-heading, .nex-article-content, .nex-blog-card__body, .nex-offer__body,
        .woocommerce-MyAccount-content, .wc-block-checkout__main, .wc-block-checkout__sidebar) { min-width: 0; }
    #contenu :is(h1, h2, h3) { overflow-wrap: anywhere; }
    #contenu :is(.nex-form-note, .nex-article-content a, .nex-portal-details dd, .nex-portal-card p,
        .nex-overview-document__file, .nex-transfer-coordinates dd, .woocommerce-customer-details address) { overflow-wrap: anywhere; }
    .nex-site-footer a { overflow-wrap: anywhere; }
}

@media (max-width: 900px) {
    /* Use the visible viewport on short landscape screens and mobile browser chrome. */
    .nex-menu-wrap { height: calc(100dvh - 79px); max-height: calc(100dvh - 79px); overscroll-behavior-y: contain; padding-bottom: max(28px, env(safe-area-inset-bottom)); }
    .admin-bar .nex-menu-wrap { height: calc(100dvh - 125px); max-height: calc(100dvh - 125px); }
    .nex-menu-wrap.is-open a { min-height: 44px; }
    .nex-menu-toggle { min-width: 44px; min-height: 44px; }

    /* A two-layer desktop background must not turn into a repeating mobile image. */
    .nex-offers-intro { background-repeat: no-repeat; }
    .nex-offers-intro__copy, .nex-offers-plans__toolbar > div { min-width: 0; }
    .nex-offers-table-wrap { min-width: 0; max-width: 100%; overscroll-behavior-x: contain; }
    .nex-offers-table-hint { margin: 0 0 12px !important; color: var(--offers-muted); font-size: 14px; line-height: 1.5; }
    .nex-offers-table-wrap:focus-visible { outline: 3px solid var(--nex-primary); outline-offset: 4px; }
    .nex-pack-auth-dialog { max-height: calc(100dvh - 32px); overflow-y: auto; }

    /* At least 16px avoids automatic iOS zoom while entering text. */
    #contenu input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
    #contenu select, #contenu textarea { min-width: 0; max-width: 100%; font-size: 16px !important; }
    #contenu input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
    #contenu select { min-height: 48px; }
    #contenu textarea { min-height: 120px; }
    #contenu :is(.nex-button, .nex-portal-button, .nex-offer__button, .nex-blog-read-link,
        .nex-article-card__link, .nex-transfer-contact, .nex-invoice-button) { min-width: 0; max-width: 100%; white-space: normal; text-align: center; overflow-wrap: anywhere; }
    #contenu :is(.nex-form-footer, .nex-portal-help, .nex-deliverables__head, .nex-confirmation-account-links) { min-width: 0; }
    #contenu .woocommerce :is(.form-row, .input-text, .select2-container) { min-width: 0; max-width: 100%; }
    #contenu .woocommerce table.shop_table { max-width: 100%; }
    #contenu .woocommerce table.shop_table :is(th, td) { overflow-wrap: anywhere; }
    .nex-portal-topbar__title { min-width: 0; }
}

@media (min-width: 901px) { .nex-offers-table-hint { display: none; } }

@media (max-width: 700px) {
    body.woocommerce-account.logged-in.nex-portal-page .nex-account-shell .woocommerce-MyAccount-navigation li a { min-width: 0; }
    body.woocommerce-account.logged-in.nex-portal-page .nex-account-nav__label { min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
    body.woocommerce-account.logged-in.nex-portal-page .nex-account-nav__icon { flex-shrink: 0; }
    .nex-portal--overview .nex-portal-details { padding-right: 0; }
    .nex-portal--overview .nex-portal-card--application::after { background: linear-gradient(90deg, #fffffff7, #ffffffdc); }
    .nex-portal-booking, .nex-booking-calendar, .nex-booking-calendar__days { min-width: 0; }
    .nex-booking-calendar__times button { min-height: 44px; }
}

@media (max-width: 600px) {
    .nex-offers-intro h1 { font-size: clamp(1.75rem, 8vw, 2.65rem); line-height: 1.12; overflow-wrap: anywhere; }
    .nex-offers-intro__copy { padding-top: 32px; }
    .nex-offers-intro .nex-offers-kicker { gap: 10px; }
    .nex-offers-intro .nex-offers-kicker::after { flex: 0 0 28px; width: 28px; }
    #contenu .nex-offer__body { padding: 22px 20px; }
    #contenu .nex-offer--recommended .nex-offer__body { padding: 21px 19px; }
    #contenu :is(.nex-form-grid, .nex-contact-grid, .nex-checkout-fields) { min-width: 0; }
    #contenu .woocommerce table.shop_table:not(.woocommerce-orders-table) { table-layout: fixed; }
    #contenu .woocommerce table.shop_table:not(.woocommerce-orders-table) :is(th, td) { min-width: 0; }
    #contenu .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { overflow-wrap: anywhere; }
    .nex-footer-bottom { align-items: flex-start; gap: 16px; }
    .nex-footer-bottom > div { display: flex; flex-wrap: wrap; gap: 10px 18px; min-width: 0; }
}

@media (max-width: 380px) {
    body.woocommerce-account.logged-in.nex-portal-page .nex-account-shell .woocommerce-MyAccount-navigation ul { grid-template-columns: minmax(0, 1fr); }
    .nex-portal-topbar__inner { column-gap: 6px; }
    .nex-portal-topbar__profile-copy { max-width: 125px; }
    .nex-confirmation-card .nex-confirmation-state-content { padding-inline: 18px; }
}

@media (max-height: 500px) and (max-width: 900px) {
    .nex-menu-wrap .nex-menu a { padding-block: 12px; }
    .nex-menu-wrap .nex-mobile-cta { margin-top: 14px; padding-top: 14px; }
}
