
/* =========================================================
   Diamond Shipping — Mobile responsive layer
   Loaded after the existing stylesheets.
========================================================= */

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    max-width: 100%;
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

img,
video,
iframe,
canvas,
svg {
    max-width: 100%;
}

@media (max-width: 880px) {
    .site-header {
        position: sticky;
        top: 0;
        z-index: 2000;
    }

    .header-content {
        min-height: 68px !important;
        gap: 8px !important;
    }

    .brand {
        min-width: 0;
        flex: 1 1 auto;
        gap: 7px !important;
    }

    .brand img {
        width: 65px !important;
        height: 43px !important;
        flex: 0 0 auto;
    }

    .brand-text {
        display: none !important;
    }

    .header-actions {
        flex: 0 0 auto;
        gap: 5px !important;
    }

    .header-contact-link {
        display: none !important;
    }

    .header-customer-login {
        min-height: 38px !important;
        max-width: 90px;
        padding: 7px 8px !important;
        border-radius: 10px !important;
        font-size: 9px !important;
        line-height: 1.2;
        text-align: center;
        white-space: normal !important;
    }

    .language-switcher {
        padding: 2px !important;
        gap: 0 !important;
    }

    .language-switcher button {
        min-width: 29px;
        min-height: 34px;
        padding: 5px 6px !important;
        font-size: 10px !important;
    }

    .icon-button,
    .mobile-menu-button {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px;
    }

    .mobile-menu-button {
        display: grid !important;
    }

    .main-navigation {
        top: 68px !important;
        right: 10px !important;
        left: 10px !important;
        width: auto !important;
        max-height: calc(100dvh - 82px);
        overflow-y: auto;
        padding: 12px !important;
        border: 1px solid var(--border);
        border-radius: 0 0 18px 18px;
        background: var(--background-secondary) !important;
        box-shadow: 0 22px 60px rgba(0, 0, 0, 0.24) !important;
    }

    .main-navigation a {
        min-height: 48px;
        display: flex !important;
        align-items: center;
        padding: 10px 13px;
        border-radius: 11px;
        font-size: 14px !important;
    }

    .main-navigation a.active,
    .main-navigation a:hover {
        background: rgba(248, 117, 59, 0.10);
    }

    section {
        padding: 58px 0 !important;
    }

    .container {
        width: calc(100% - 24px) !important;
    }

    /* Scope responsive heading sizes to public content only.
       The previous global h1/h2/h3 rules also hit customer/admin pages and
       overrode their page-specific typography because this file loads last. */
    .hero h1 {
        font-size: clamp(32px, 9.4vw, 46px) !important;
        line-height: 1.08 !important;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }

    .section-header h2,
    .home-section-heading h2,
    .contact-cta-card h2 {
        font-size: clamp(27px, 7.2vw, 38px) !important;
        overflow-wrap: normal;
        word-break: normal;
    }

    .service-card h3,
    .why-card h3,
    .destination-card h3,
    .process-card h3 {
        font-size: 19px !important;
    }

    .description,
    .hero-description {
        font-size: 15px !important;
        line-height: 1.9;
    }

    .hero {
        min-height: auto !important;
        padding: 42px 0 50px !important;
    }

    .hero-grid,
    .about-grid,
    .contact-grid,
    .home-about-grid,
    .home-section-heading {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 30px !important;
    }

    .hero-content,
    .hero-visual,
    .shipping-visual,
    .contact-form-card,
    .contact-info-card {
        min-width: 0;
        width: 100%;
    }

    .hero-visual {
        min-height: auto !important;
    }

    .shipping-visual {
        padding: 14px !important;
        border-radius: 24px !important;
    }

    .floating-destination,
    .visual-floating-card {
        position: static !important;
        width: 100% !important;
        margin-top: 12px;
        transform: none !important;
    }

    .hero-buttons,
    .contact-cta-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px !important;
    }

    .hero-buttons .button,
    .contact-cta-actions .button,
    .home-request-button,
    .home-track-button {
        width: 100%;
        min-height: 50px;
        padding-inline: 15px !important;
        font-size: 14px !important;
    }

    .hero-features,
    .services-grid,
    .why-grid,
    .destinations-grid,
    .process-grid,
    .statistics-grid,
    .mission-grid,
    .visual-service-grid,
    .home-values,
    .home-process-track {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .hero-feature,
    .service-card,
    .why-card,
    .destination-card,
    .process-card {
        min-width: 0;
    }

    .form-grid,
    .portal-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .form-field,
    .form-field.full-width,
    .portal-full {
        grid-column: 1 !important;
        min-width: 0;
    }

    .contact-form-card,
    .contact-info-card,
    .portal-card {
        padding: 18px !important;
        border-radius: 18px !important;
    }

    .contact-form input,
    .contact-form select,
    .contact-form textarea,
    .portal-field input,
    .portal-field select,
    .portal-field textarea {
        min-height: 50px;
        padding: 12px !important;
        border-radius: 12px !important;
        font-size: 16px !important;
    }

    .contact-form textarea,
    .portal-field textarea {
        min-height: 120px;
    }

    .weight-input-group,
    .weight-row,
    .cargo-weight-row,
    .weight-fields,
    .delivery-fields-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .weight-input-group > *,
    .weight-row > *,
    .cargo-weight-row > *,
    .weight-fields > * {
        width: 100% !important;
        min-width: 0 !important;
    }

    .open-map,
    .map-container {
        width: 100%;
    }

    .open-map {
        height: 250px !important;
    }

    .leaflet-control-layers-expanded {
        max-width: 140px !important;
        font-size: 9px !important;
    }

    .portal-page {
        padding: 42px 0 65px !important;
    }

    .portal-heading {
        margin-bottom: 20px !important;
    }

    .portal-request-summary {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .portal-actions,
    .portal-secondary-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
    }

    .portal-actions > *,
    .portal-secondary-actions > * {
        width: 100%;
        min-height: 46px;
    }

    .footer-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 28px !important;
    }

    .footer-bottom {
        display: grid !important;
        gap: 10px;
        text-align: center;
    }

    .whatsapp-floating-button {
        width: 54px !important;
        height: 54px !important;
        right: 12px !important;
        bottom: 12px !important;
    }

    html[dir="rtl"] .whatsapp-floating-button {
        right: auto !important;
        left: 12px !important;
    }

    body.customer-body {
        overflow-x: hidden;
    }

    .customer-header-inner {
        min-height: 66px;
        padding: 9px 12px !important;
        gap: 7px !important;
        flex-wrap: nowrap;
    }

    .customer-brand {
        min-width: 0;
        flex: 1 1 auto;
        font-size: 12px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .customer-language {
        flex: 0 0 auto;
        gap: 2px !important;
    }

    .customer-language button {
        min-width: 31px;
        min-height: 38px;
        padding: 5px !important;
        font-size: 10px !important;
    }

    .customer-menu-button {
        width: 40px;
        height: 40px;
        flex: 0 0 auto;
        display: inline-grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 10px;
        color: #fff;
        background: rgba(255, 255, 255, .06);
        font: inherit;
        font-size: 22px;
        cursor: pointer;
    }

    .customer-nav {
        position: fixed;
        z-index: 3000;
        top: 66px;
        right: 10px;
        left: 10px;
        display: grid !important;
        gap: 5px !important;
        margin: 0 !important;
        padding: 12px;
        max-height: calc(100dvh - 78px);
        overflow-y: auto;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 0 0 16px 16px;
        background: #171113;
        box-shadow: 0 24px 55px rgba(0, 0, 0, .42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-12px);
        transition:
            opacity .2s ease,
            transform .2s ease,
            visibility .2s ease;
    }

    .customer-nav.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .customer-nav a,
    .customer-nav button,
    .customer-nav form {
        width: 100%;
    }

    .customer-nav a,
    .customer-nav button {
        min-height: 46px;
        display: flex !important;
        align-items: center;
        padding: 10px 13px !important;
        text-align: start;
        font-size: 14px;
    }

    .customer-main {
        width: 100%;
        padding: 25px 12px 60px !important;
    }

    .customer-login-shell {
        max-width: none !important;
        margin: 15px auto !important;
    }

    .customer-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 13px !important;
    }

    .customer-card,
    .customer-card.half,
    .customer-card.third {
        grid-column: 1 !important;
        min-width: 0;
        padding: 16px !important;
        border-radius: 14px !important;
    }

    .customer-form {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    .customer-field,
    .customer-field.full {
        grid-column: 1 !important;
        min-width: 0;
    }

    .customer-field input,
    .customer-field select,
    .customer-field textarea {
        min-height: 50px;
        padding: 12px !important;
        font-size: 16px !important;
    }

    .customer-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 9px !important;
    }

    .customer-actions > *,
    .customer-button {
        width: 100%;
        min-height: 47px;
    }

    .customer-table-wrap {
        width: 100%;
        margin-inline: -4px;
        padding-bottom: 8px;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .customer-table {
        min-width: 680px;
    }

    .customer-table th,
    .customer-table td {
        padding: 10px !important;
        font-size: 12px;
    }

    .message-list,
    .conversation {
        max-height: 55vh !important;
    }

    .rating-stars {
        flex-wrap: wrap;
    }

    /* Customer mobile header: keep brand/menu/languages on one compact row. */
    .customer-header-inner {
        min-height: 60px;
    }

    .customer-brand {
        white-space: nowrap;
        overflow-wrap: normal;
        font-size: clamp(10px, 3.2vw, 12px);
    }

    .customer-nav {
        top: 60px;
        max-height: calc(100dvh - 72px);
    }

    /* Customer auth page: page-specific rules must win over generic public CSS. */
    .customer-auth-shell {
        width: 100%;
        max-width: 600px !important;
        margin: 14px auto 36px !important;
    }

    .customer-auth-mobile-tabs {
        gap: 6px !important;
        margin-bottom: 10px !important;
        padding: 5px !important;
        border-radius: 13px !important;
    }

    .customer-auth-mobile-tabs button {
        min-height: 44px;
        padding: 9px 8px !important;
        border-radius: 9px !important;
        font-size: 14px !important;
        line-height: 1.25;
    }

    .customer-auth-card {
        border-radius: 18px !important;
    }

    .customer-auth-form-panel {
        padding: 26px 20px !important;
    }

    .customer-auth-form-content {
        width: 100% !important;
        max-width: 390px;
    }

    .customer-auth-form-content h1 {
        max-width: 100%;
        font-size: clamp(27px, 7.6vw, 34px) !important;
        line-height: 1.14 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none;
    }

    .customer-auth-eyebrow {
        margin-bottom: 8px !important;
        font-size: 11px !important;
    }

    .customer-auth-intro {
        min-height: 0 !important;
        margin: 10px 0 20px !important;
        font-size: 14px !important;
        line-height: 1.65 !important;
    }

    .customer-auth-form {
        gap: 12px !important;
    }

    .customer-auth-field {
        gap: 6px !important;
        font-size: 13px !important;
    }

    .customer-auth-field input {
        min-height: 48px;
        padding: 11px 12px !important;
        font-size: 16px !important;
    }

    .customer-auth-submit {
        min-height: 46px !important;
        padding: 11px 16px !important;
    }

    .admin-main {
        width: 100%;
        padding: 14px !important;
    }

    .admin-topbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px !important;
        margin-bottom: 16px !important;
    }

    .admin-topbar h1 {
        font-size: 25px !important;
        overflow-wrap: anywhere;
    }

    .admin-panel-heading,
    .admin-panel-heading-actions {
        align-items: stretch !important;
    }

    .admin-panel-heading {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
    }

    .admin-panel-heading-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .admin-menu-button,
    .admin-primary-link {
        min-height: 44px;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .admin-sidebar {
        width: min(86vw, 300px) !important;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .admin-panel {
        min-width: 0;
        padding: 15px !important;
        border-radius: 15px !important;
    }

    .admin-stats-grid,
    .admin-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
    }

    .admin-stats-grid article,
    .admin-metric {
        min-width: 0;
        padding: 14px !important;
    }

    .admin-stats-grid strong,
    .admin-metric strong {
        font-size: 25px !important;
    }

    .admin-detail-grid,
    .admin-form-grid,
    .filter-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .admin-details-list > div {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 5px !important;
    }

    .admin-filters,
    .admin-inline-form,
    .inline-actions,
    .reset-password-form {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .admin-filters input,
    .admin-filters select,
    .admin-filters button,
    .admin-filters a,
    .admin-inline-form input,
    .admin-inline-form select,
    .admin-inline-form button,
    .reset-password-form input,
    .small-button {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 46px;
        font-size: 16px;
    }

    .admin-table-wrap {
        width: 100%;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        border-radius: 10px;
    }

    .admin-table {
        min-width: 760px !important;
    }

    .admin-table th,
    .admin-table td {
        padding: 10px 9px !important;
        font-size: 12px;
    }

    .activity-list article,
    .notification-card {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 8px !important;
    }

    .session-device {
        max-width: none !important;
        overflow-wrap: anywhere;
    }

    dialog,
    .modal,
    .delete-modal,
    .confirmation-modal,
    .danger-modal {
        width: calc(100% - 24px) !important;
        max-width: 520px !important;
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
        margin: auto;
        padding: 18px !important;
        border-radius: 16px !important;
    }

    dialog input,
    dialog textarea,
    .modal input,
    .modal textarea,
    .delete-modal input,
    .delete-modal textarea {
        width: 100%;
        min-height: 48px;
        font-size: 16px !important;
    }
}

@media (max-width: 520px) {
    .header-customer-login {
        max-width: 76px;
        font-size: 8px !important;
    }

    .language-switcher button {
        min-width: 27px;
        padding-inline: 4px !important;
    }

    .hero-feature {
        padding: 13px !important;
    }

    .route-card,
    .shipping-visual {
        padding: 12px !important;
    }

    .route-points {
        gap: 6px;
    }

    .route-city strong {
        font-size: 16px !important;
    }

    .trust-metrics {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .customer-language button {
        min-width: 28px;
    }

    .admin-stats-grid,
    .admin-metrics-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 390px) {
    .header-customer-login {
        display: none !important;
    }

    .brand img {
        width: 58px !important;
    }

    .header-actions {
        gap: 3px !important;
    }

    .language-switcher button {
        min-width: 25px;
        font-size: 9px !important;
    }

    .icon-button,
    .mobile-menu-button {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px;
    }

    .customer-brand {
        font-size: 10px;
    }
}


/* ===== P0 mobile auth fine-tuning ===== */
@media (max-width: 540px) {
    .customer-main {
        padding: 18px 12px 48px !important;
    }

    .customer-auth-shell {
        margin-top: 8px !important;
    }

    .customer-auth-form-panel {
        padding: 22px 16px !important;
    }

    .customer-auth-form-content h1 {
        font-size: clamp(26px, 8vw, 32px) !important;
    }

    .customer-auth-intro {
        margin-bottom: 18px !important;
    }

    .customer-language button {
        min-width: 30px;
        min-height: 38px;
    }
}

@media (max-width: 360px) {
    .customer-header-inner {
        padding-inline: 9px !important;
        gap: 5px !important;
    }

    .customer-brand {
        font-size: 10px;
    }

    .customer-language {
        gap: 1px !important;
    }

    .customer-language button {
        min-width: 28px;
        padding-inline: 4px !important;
        font-size: 9px !important;
    }

    .customer-menu-button {
        width: 38px;
        height: 38px;
        font-size: 20px;
    }

    .customer-auth-form-panel {
        padding-inline: 14px !important;
    }

    .customer-auth-form-content h1 {
        font-size: clamp(25px, 8.4vw, 30px) !important;
    }
}
