/* ==========================================================================
   INAIVOM - Responsive Styles
   File: app/static/css/responsive.css
   Premium Matrimony Platform
   Theme: Maroon #800020 | Gold #D4AF37 | White
   ========================================================================== */


/* ==========================================================================
   1. RESPONSIVE VARIABLES
   ========================================================================== */

:root {
    --responsive-gutter: 1.5rem;
    --responsive-section-space: 4.5rem;
    --responsive-navbar-height: 72px;
}


/* ==========================================================================
   2. GLOBAL RESPONSIVE SAFETY
   ========================================================================== */

html,
body {
    max-width: 100%;
}

body {
    overflow-x: hidden;
}

img,
picture,
video,
canvas,
svg,
iframe,
embed,
object {
    max-width: 100%;
}

img,
video {
    height: auto;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

pre,
code {
    max-width: 100%;
}

pre {
    overflow-x: auto;
}

table {
    max-width: 100%;
}


/* ==========================================================================
   3. RESPONSIVE CONTAINER
   ========================================================================== */

.container,
.site-container,
.page-container {
    width: 100%;
    max-width: 1320px;

    margin-right: auto;
    margin-left: auto;

    padding-right: var(--responsive-gutter);
    padding-left: var(--responsive-gutter);
}

.container-fluid {
    width: 100%;

    padding-right: var(--responsive-gutter);
    padding-left: var(--responsive-gutter);
}


/* ==========================================================================
   4. RESPONSIVE SECTION
   ========================================================================== */

.section,
.page-section {
    padding-top: var(--responsive-section-space);
    padding-bottom: var(--responsive-section-space);
}


/* ==========================================================================
   5. RESPONSIVE TYPOGRAPHY
   ========================================================================== */

.responsive-title,
.page-title {
    font-size: clamp(1.65rem, 3vw, 2.75rem);
}

.responsive-subtitle,
.page-subtitle {
    font-size: clamp(0.85rem, 1.4vw, 1.05rem);
}


/* ==========================================================================
   6. RESPONSIVE GRID BASE
   ========================================================================== */

.responsive-grid {
    display: grid;
    grid-template-columns:
        repeat(auto-fit, minmax(min(100%, 260px), 1fr));

    gap: 1.25rem;
}


/* ==========================================================================
   7. RESPONSIVE FLEX BASE
   ========================================================================== */

.responsive-flex {
    display: flex;
    align-items: center;

    gap: 1rem;
}

.responsive-flex-wrap {
    flex-wrap: wrap;
}


/* ==========================================================================
   8. RESPONSIVE TABLE WRAPPER
   ========================================================================== */

.table-responsive {
    width: 100%;

    overflow-x: auto;

    -webkit-overflow-scrolling: touch;
}

.table-responsive > table {
    margin-bottom: 0;
}


/* ==========================================================================
   9. RESPONSIVE MEDIA
   ========================================================================== */

.responsive-image {
    display: block;

    width: 100%;
    height: auto;

    object-fit: cover;
}


/* ==========================================================================
   10. RESPONSIVE EMBEDS
   ========================================================================== */

.responsive-embed {
    position: relative;

    width: 100%;

    overflow: hidden;
}

.responsive-embed::before {
    display: block;

    padding-top: 56.25%;

    content: "";
}

.responsive-embed > iframe,
.responsive-embed > video,
.responsive-embed > embed,
.responsive-embed > object {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;
}


/* ==========================================================================
   11. DESKTOP - 1400PX+
   ========================================================================== */

@media (min-width: 1400px) {

    .container,
    .site-container,
    .page-container {
        max-width: 1320px;
    }

    .hide-xxl {
        display: none !important;
    }

    .show-xxl {
        display: initial !important;
    }
}


/* ==========================================================================
   12. LARGE DESKTOP - BELOW 1400PX
   ========================================================================== */

@media (max-width: 1399.98px) {

    :root {
        --responsive-gutter: 1.5rem;
    }

    .container,
    .site-container,
    .page-container {
        max-width: 1140px;
    }

    .hero-section,
    .home-hero {
        min-height: auto;
    }

    .hero-content {
        max-width: 620px;
    }

    .profile-grid,
    .profiles-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }

    .dashboard-grid {
        gap: 1.1rem;
    }

    .admin-content,
    .dashboard-content {
        min-width: 0;
    }
}


/* ==========================================================================
   13. DESKTOP / LAPTOP - BELOW 1200PX
   ========================================================================== */

@media (max-width: 1199.98px) {

    :root {
        --responsive-section-space: 4rem;
    }

    .container,
    .site-container,
    .page-container {
        max-width: 960px;
    }

    .profile-grid,
    .profiles-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .card-grid-4 {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .dashboard-stats,
    .stats-grid,
    .admin-stats-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .content-with-sidebar {
        grid-template-columns:
            minmax(0, 1fr) 280px;
    }

    .search-layout {
        grid-template-columns:
            260px minmax(0, 1fr);
    }

    .profile-details-layout {
        grid-template-columns:
            300px minmax(0, 1fr);
    }

    .footer-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}


/* ==========================================================================
   14. TABLET LANDSCAPE - BELOW 992PX
   ========================================================================== */

@media (max-width: 991.98px) {

    :root {
        --responsive-gutter: 1.25rem;
        --responsive-section-space: 3.5rem;
        --responsive-navbar-height: 62px;
    }

    .container,
    .site-container,
    .page-container {
        max-width: 720px;
    }

    /* ----------------------------------------------------------------------
       Navigation
       ---------------------------------------------------------------------- */

    .desktop-only,
    .hide-tablet {
        display: none !important;
    }

    .tablet-only,
    .show-tablet {
        display: initial !important;
    }

    /* ----------------------------------------------------------------------
       Hero
       ---------------------------------------------------------------------- */

    .hero-section,
    .home-hero,
    .page-hero {
        min-height: auto;
    }

    .hero-layout,
    .hero-grid {
        grid-template-columns: 1fr;

        gap: 2rem;
    }

    .hero-content {
        max-width: 680px;

        margin-right: auto;
        margin-left: auto;

        text-align: center;
    }

    .hero-actions {
        justify-content: center;
    }

    .hero-media,
    .hero-image {
        max-width: 620px;

        margin-right: auto;
        margin-left: auto;
    }

    /* ----------------------------------------------------------------------
       Grids
       ---------------------------------------------------------------------- */

    .profile-grid,
    .profiles-grid,
    .card-grid-3,
    .card-grid-4 {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .feature-grid,
    .features-grid,
    .service-grid,
    .services-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    /* ----------------------------------------------------------------------
       Sidebar layouts
       ---------------------------------------------------------------------- */

    .content-with-sidebar,
    .search-layout,
    .profile-details-layout,
    .settings-layout,
    .account-layout {
        grid-template-columns: 1fr;
    }

    .sidebar,
    .search-sidebar,
    .profile-sidebar {
        width: 100%;
        max-width: none;
    }

    /* ----------------------------------------------------------------------
       Dashboard
       ---------------------------------------------------------------------- */

    .dashboard-layout,
    .admin-layout {
        min-width: 0;
    }

    .dashboard-main,
    .admin-main {
        min-width: 0;
    }

    .dashboard-content,
    .admin-content {
        padding: 1.25rem;
    }

    /* ----------------------------------------------------------------------
       Chat
       ---------------------------------------------------------------------- */

    .chat-layout {
        grid-template-columns:
            minmax(260px, 320px)
            minmax(0, 1fr);
    }

    .chat-profile-panel {
        display: none;
    }

    /* ----------------------------------------------------------------------
       Footer
       ---------------------------------------------------------------------- */

    .footer-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 2rem;
    }
}


/* ==========================================================================
   15. TABLET PORTRAIT - BELOW 768PX
   ========================================================================== */

@media (max-width: 767.98px) {

    :root {
        --responsive-gutter: 1rem;
        --responsive-section-space: 3rem;
    }

    .container,
    .site-container,
    .page-container {
        max-width: 540px;
    }

    /* ----------------------------------------------------------------------
       Typography
       ---------------------------------------------------------------------- */

    h1,
    .h1 {
        font-size: clamp(1.65rem, 7vw, 2.2rem);
    }

    h2,
    .h2 {
        font-size: clamp(1.4rem, 6vw, 1.85rem);
    }

    h3,
    .h3 {
        font-size: clamp(1.15rem, 5vw, 1.45rem);
    }

    /* ----------------------------------------------------------------------
       Utility visibility
       ---------------------------------------------------------------------- */

    .desktop-only,
    .tablet-only,
    .hide-mobile {
        display: none !important;
    }

    .mobile-only,
    .show-mobile {
        display: initial !important;
    }

    /* ----------------------------------------------------------------------
       Sections
       ---------------------------------------------------------------------- */

    .section,
    .page-section {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .section-header,
    .page-header {
        margin-bottom: 1.75rem;
    }

    /* ----------------------------------------------------------------------
       Hero
       ---------------------------------------------------------------------- */

    .hero-section,
    .home-hero {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    .hero-content {
        text-align: center;
    }

    .hero-title {
        font-size: clamp(1.75rem, 8vw, 2.35rem);
    }

    .hero-subtitle,
    .hero-description {
        font-size: 0.9rem;
    }

    .hero-actions {
        display: flex;
        align-items: stretch;
        flex-direction: column;

        width: 100%;

        gap: 0.7rem;
    }

    .hero-actions .btn,
    .hero-actions a {
        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Cards
       ---------------------------------------------------------------------- */

    .profile-grid,
    .profiles-grid,
    .card-grid-2,
    .card-grid-3,
    .card-grid-4,
    .feature-grid,
    .features-grid,
    .service-grid,
    .services-grid {
        grid-template-columns: 1fr;
    }

    .card {
        max-width: 100%;
    }

    /* ----------------------------------------------------------------------
       Dashboard stats
       ---------------------------------------------------------------------- */

    .dashboard-stats,
    .stats-grid,
    .admin-stats-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 0.75rem;
    }

    /* ----------------------------------------------------------------------
       Forms
       ---------------------------------------------------------------------- */

    .form-row,
    .form-grid,
    .form-grid-2,
    .form-grid-3,
    .form-grid-4 {
        grid-template-columns: 1fr;
    }

    .form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .form-actions .btn,
    .form-actions button {
        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Tables
       ---------------------------------------------------------------------- */

    .table-responsive {
        margin-right: 0;
        margin-left: 0;

        border-radius: 10px;
    }

    .table-responsive table {
        min-width: 680px;
    }

    /* ----------------------------------------------------------------------
       Search
       ---------------------------------------------------------------------- */

    .search-header,
    .search-toolbar {
        align-items: stretch;
        flex-direction: column;

        gap: 0.75rem;
    }

    .search-toolbar-actions {
        width: 100%;
    }

    .search-toolbar-actions .btn {
        flex: 1 1 auto;
    }

    /* ----------------------------------------------------------------------
       Profile
       ---------------------------------------------------------------------- */

    .profile-header,
    .profile-summary {
        align-items: center;
        flex-direction: column;

        text-align: center;
    }

    .profile-header-actions {
        justify-content: center;

        width: 100%;
    }

    .profile-header-actions .btn {
        flex: 1 1 auto;
    }

    /* ----------------------------------------------------------------------
       Chat
       ---------------------------------------------------------------------- */

    .chat-layout {
        display: block;
    }

    .chat-sidebar {
        width: 100%;
        height: auto;
    }

    .chat-main {
        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Membership
       ---------------------------------------------------------------------- */

    .pricing-grid,
    .membership-grid,
    .plans-grid {
        grid-template-columns: 1fr;

        max-width: 520px;

        margin-right: auto;
        margin-left: auto;
    }

    /* ----------------------------------------------------------------------
       Payment
       ---------------------------------------------------------------------- */

    .payment-layout,
    .checkout-layout {
        grid-template-columns: 1fr;
    }

    /* ----------------------------------------------------------------------
       Verification
       ---------------------------------------------------------------------- */

    .verification-grid,
    .verification-layout {
        grid-template-columns: 1fr;
    }

    /* ----------------------------------------------------------------------
       Footer
       ---------------------------------------------------------------------- */

    .footer-grid {
        grid-template-columns: 1fr;

        gap: 1.75rem;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;

        gap: 0.75rem;
    }
}


/* ==========================================================================
   16. MOBILE - BELOW 576PX
   ========================================================================== */

@media (max-width: 575.98px) {

    :root {
        --responsive-gutter: 0.9rem;
        --responsive-section-space: 2.5rem;
    }

    .container,
    .site-container,
    .page-container,
    .container-fluid {
        padding-right: 0.9rem;
        padding-left: 0.9rem;
    }

    /* ----------------------------------------------------------------------
       Global
       ---------------------------------------------------------------------- */

    body {
        font-size: 0.94rem;
    }

    .section,
    .page-section {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    /* ----------------------------------------------------------------------
       Page headers
       ---------------------------------------------------------------------- */

    .page-header,
    .section-header {
        margin-bottom: 1.5rem;
    }

    .page-header-actions,
    .section-header-actions {
        align-items: stretch;
        flex-direction: column;

        width: 100%;
    }

    .page-header-actions .btn,
    .section-header-actions .btn {
        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Hero
       ---------------------------------------------------------------------- */

    .hero-section,
    .home-hero {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .hero-title {
        font-size: clamp(1.65rem, 9vw, 2.05rem);
    }

    .hero-subtitle,
    .hero-description {
        font-size: 0.84rem;
        line-height: 1.65;
    }

    /* ----------------------------------------------------------------------
       Cards
       ---------------------------------------------------------------------- */

    .card,
    .profile-card,
    .match-card,
    .membership-card {
        border-radius: 14px;
    }

    .card-body {
        padding: 1rem;
    }

    /* ----------------------------------------------------------------------
       Profile cards
       ---------------------------------------------------------------------- */

    .profile-card-actions,
    .match-card-actions {
        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 0.5rem;
    }

    /* ----------------------------------------------------------------------
       Dashboard
       ---------------------------------------------------------------------- */

    .dashboard-content,
    .admin-content {
        padding: 1rem 0.9rem;
    }

    .dashboard-stats,
    .stats-grid,
    .admin-stats-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-card,
    .admin-card {
        border-radius: 14px;
    }

    /* ----------------------------------------------------------------------
       Toolbar
       ---------------------------------------------------------------------- */

    .toolbar,
    .dashboard-toolbar,
    .admin-toolbar {
        align-items: stretch;
        flex-direction: column;

        gap: 0.65rem;
    }

    .toolbar-actions,
    .dashboard-toolbar-actions,
    .admin-toolbar-actions {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Filters
       ---------------------------------------------------------------------- */

    .filter-bar,
    .filters-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .filter-group,
    .filter-item {
        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Forms
       ---------------------------------------------------------------------- */

    .form-control,
    .form-select,
    input,
    select,
    textarea {
        font-size: 16px;
    }

    textarea {
        min-height: 110px;
    }

    /* ----------------------------------------------------------------------
       Buttons
       ---------------------------------------------------------------------- */

    .btn-block-mobile {
        width: 100%;
    }

    .button-group-mobile {
        display: flex;
        align-items: stretch;
        flex-direction: column;

        gap: 0.6rem;
    }

    .button-group-mobile .btn {
        width: 100%;
    }

    /* ----------------------------------------------------------------------
       Tabs
       ---------------------------------------------------------------------- */

    .tabs,
    .nav-tabs,
    .profile-tabs,
    .dashboard-tabs {
        max-width: 100%;

        overflow-x: auto;
        overflow-y: hidden;

        white-space: nowrap;

        scrollbar-width: none;

        -webkit-overflow-scrolling: touch;
    }

    .tabs::-webkit-scrollbar,
    .nav-tabs::-webkit-scrollbar,
    .profile-tabs::-webkit-scrollbar,
    .dashboard-tabs::-webkit-scrollbar {
        display: none;
    }

    /* ----------------------------------------------------------------------
       Breadcrumb
       ---------------------------------------------------------------------- */

    .breadcrumb {
        max-width: 100%;

        overflow-x: auto;

        white-space: nowrap;

        scrollbar-width: none;
    }

    .breadcrumb::-webkit-scrollbar {
        display: none;
    }

    /* ----------------------------------------------------------------------
       Pagination
       ---------------------------------------------------------------------- */

    .pagination {
        flex-wrap: wrap;

        gap: 0.3rem;
    }

    .pagination .page-link {
        min-width: 36px;
        min-height: 36px;
    }

    /* ----------------------------------------------------------------------
       Profile page
       ---------------------------------------------------------------------- */

    .profile-avatar-large,
    .profile-photo-main {
        max-width: 280px;

        margin-right: auto;
        margin-left: auto;
    }

    .profile-info-grid,
    .profile-detail-grid {
        grid-template-columns: 1fr;
    }

    /* ----------------------------------------------------------------------
       Gallery
       ---------------------------------------------------------------------- */

    .gallery-grid,
    .photo-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 0.5rem;
    }

    /* ----------------------------------------------------------------------
       Chat
       ---------------------------------------------------------------------- */

    .chat-container,
    .messages-container {
        min-height: calc(100dvh - 62px);
    }

    .chat-header {
        padding: 0.75rem;
    }

    .chat-messages {
        padding: 0.75rem;
    }

    .chat-composer,
    .message-composer {
        padding: 0.65rem;
    }

    .message-bubble {
        max-width: 84%;
    }

    /* ----------------------------------------------------------------------
       Notifications
       ---------------------------------------------------------------------- */

    .notification-item {
        align-items: flex-start;

        padding: 0.85rem;
    }

    /* ----------------------------------------------------------------------
       Membership / pricing
       ---------------------------------------------------------------------- */

    .pricing-card,
    .membership-card,
    .plan-card {
        padding: 1rem;
    }

    /* ----------------------------------------------------------------------
       Blog
       ---------------------------------------------------------------------- */

    .blog-grid,
    .article-grid {
        grid-template-columns: 1fr;
    }

    /* ----------------------------------------------------------------------
       Testimonials
       ---------------------------------------------------------------------- */

    .testimonial-grid,
    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    /* ----------------------------------------------------------------------
       Success stories
       ---------------------------------------------------------------------- */

    .success-stories-grid,
    .stories-grid {
        grid-template-columns: 1fr;
    }

    /* ----------------------------------------------------------------------
       Footer
       ---------------------------------------------------------------------- */

    .site-footer,
    .footer {
        padding-top: 2.5rem;
    }

    .footer-social {
        flex-wrap: wrap;
    }
}


/* ==========================================================================
   17. SMALL MOBILE - BELOW 480PX
   ========================================================================== */

@media (max-width: 479.98px) {

    :root {
        --responsive-gutter: 0.8rem;
    }

    .container,
    .site-container,
    .page-container,
    .container-fluid {
        padding-right: 0.8rem;
        padding-left: 0.8rem;
    }

    .hero-title {
        font-size: 1.75rem;
    }

    .section-title,
    .page-title {
        font-size: 1.45rem;
    }

    .dashboard-content,
    .admin-content {
        padding-right: 0.8rem;
        padding-left: 0.8rem;
    }

    .profile-card-actions,
    .match-card-actions {
        grid-template-columns: 1fr;
    }

    .gallery-grid,
    .photo-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .message-bubble {
        max-width: 88%;
    }
}


/* ==========================================================================
   18. VERY SMALL MOBILE - BELOW 390PX
   ========================================================================== */

@media (max-width: 389.98px) {

    :root {
        --responsive-gutter: 0.7rem;
    }

    body {
        min-width: 320px;
    }

    .container,
    .site-container,
    .page-container,
    .container-fluid {
        padding-right: 0.7rem;
        padding-left: 0.7rem;
    }

    .hero-title {
        font-size: 1.6rem;
    }

    .hero-subtitle,
    .hero-description {
        font-size: 0.8rem;
    }

    .card-body {
        padding: 0.9rem;
    }

    .gallery-grid,
    .photo-grid {
        gap: 0.4rem;
    }

    .message-bubble {
        max-width: 92%;
    }
}


/* ==========================================================================
   19. LANDSCAPE MOBILE
   ========================================================================== */

@media (max-width: 991.98px) and (orientation: landscape) {

    .hero-section,
    .home-hero {
        min-height: auto;
    }

    .modal-dialog-centered {
        min-height: calc(100% - 1rem);
    }

    .modal-content {
        max-height: calc(100dvh - 1rem);
    }

    .modal-body {
        overflow-y: auto;
    }
}


/* ==========================================================================
   20. SHORT VIEWPORT HEIGHT
   ========================================================================== */

@media (max-height: 700px) {

    .hero-section,
    .home-hero {
        min-height: auto;
    }

    .auth-page,
    .login-page,
    .register-page {
        min-height: auto;

        padding-top: 2rem;
        padding-bottom: 2rem;
    }
}


/* ==========================================================================
   21. RESPONSIVE AUTH PAGES
   ========================================================================== */

@media (max-width: 991.98px) {

    .auth-layout,
    .login-layout,
    .register-layout {
        grid-template-columns: 1fr;
    }

    .auth-visual,
    .login-visual,
    .register-visual {
        display: none;
    }

    .auth-form-wrapper,
    .login-form-wrapper,
    .register-form-wrapper {
        width: 100%;
        max-width: 520px;

        margin-right: auto;
        margin-left: auto;
    }
}

@media (max-width: 575.98px) {

    .auth-card,
    .login-card,
    .register-card {
        padding: 1.15rem;

        border-radius: 16px;
    }
}


/* ==========================================================================
   22. RESPONSIVE SEARCH PAGES
   ========================================================================== */

@media (max-width: 991.98px) {

    .search-sidebar {
        display: none;
    }

    .search-sidebar.show,
    .search-sidebar.mobile-open {
        display: block;
    }

    .mobile-filter-toggle {
        display: inline-flex;
    }
}

@media (min-width: 992px) {

    .mobile-filter-toggle {
        display: none !important;
    }
}


/* ==========================================================================
   23. RESPONSIVE DASHBOARD SIDEBAR
   ========================================================================== */

@media (max-width: 991.98px) {

    .dashboard-sidebar,
    .admin-sidebar {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 1040;

        width: min(300px, 86vw);

        overflow-y: auto;

        transform: translateX(-105%);

        visibility: hidden;

        transition:
            transform 220ms ease,
            visibility 220ms ease;
    }

    .dashboard-sidebar.show,
    .dashboard-sidebar.open,
    .admin-sidebar.show,
    .admin-sidebar.open {
        transform: translateX(0);

        visibility: visible;
    }

    .dashboard-main,
    .admin-main {
        width: 100%;

        margin-left: 0 !important;
    }

    .sidebar-toggle,
    .dashboard-sidebar-toggle,
    .admin-sidebar-toggle {
        display: inline-flex;
    }
}

@media (min-width: 992px) {

    .sidebar-toggle,
    .dashboard-sidebar-toggle,
    .admin-sidebar-toggle {
        display: none;
    }
}


/* ==========================================================================
   24. RESPONSIVE PROFILE VIEW
   ========================================================================== */

@media (max-width: 767.98px) {

    .profile-view-header {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .profile-view-photo {
        max-width: 340px;

        margin-right: auto;
        margin-left: auto;
    }

    .profile-view-actions {
        justify-content: center;
        flex-wrap: wrap;
    }

    .profile-view-sections {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================================
   25. RESPONSIVE MATCH / RECOMMENDATION CARDS
   ========================================================================== */

@media (max-width: 575.98px) {

    .match-card,
    .recommendation-card,
    .shortlist-card,
    .visitor-card,
    .favourite-card {
        width: 100%;
    }

    .match-card-footer,
    .recommendation-card-footer,
    .shortlist-card-footer {
        align-items: stretch;
        flex-direction: column;
    }
}


/* ==========================================================================
   26. RESPONSIVE ADMIN TABLES
   ========================================================================== */

@media (max-width: 991.98px) {

    .admin-table-wrapper,
    .dashboard-table-wrapper {
        width: 100%;

        overflow-x: auto;

        border-radius: 12px;

        -webkit-overflow-scrolling: touch;
    }

    .admin-table,
    .dashboard-table {
        min-width: 760px;
    }
}


/* ==========================================================================
   27. RESPONSIVE ADMIN FORMS
   ========================================================================== */

@media (max-width: 767.98px) {

    .admin-form-grid,
    .admin-form-row {
        grid-template-columns: 1fr;
    }

    .admin-form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-form-actions .btn {
        width: 100%;
    }
}


/* ==========================================================================
   28. RESPONSIVE CMS / EDITOR
   ========================================================================== */

@media (max-width: 767.98px) {

    .editor-layout,
    .cms-editor-layout {
        grid-template-columns: 1fr;
    }

    .editor-sidebar,
    .cms-editor-sidebar {
        width: 100%;
    }

    .editor-toolbar {
        overflow-x: auto;

        white-space: nowrap;

        scrollbar-width: none;
    }

    .editor-toolbar::-webkit-scrollbar {
        display: none;
    }
}


/* ==========================================================================
   29. RESPONSIVE REPORTS / ANALYTICS
   ========================================================================== */

@media (max-width: 991.98px) {

    .analytics-grid,
    .reports-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {

    .analytics-grid,
    .reports-grid {
        grid-template-columns: 1fr;
    }

    .chart-container,
    .analytics-chart {
        min-height: 260px;
    }
}


/* ==========================================================================
   30. RESPONSIVE PAYMENT / INVOICE
   ========================================================================== */

@media (max-width: 767.98px) {

    .invoice-header,
    .invoice-summary {
        align-items: flex-start;
        flex-direction: column;

        gap: 1rem;
    }

    .invoice-table-wrapper {
        overflow-x: auto;
    }

    .invoice-table {
        min-width: 650px;
    }

    .payment-method-grid {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================================
   31. RESPONSIVE BLOG
   ========================================================================== */

@media (max-width: 991.98px) {

    .blog-layout {
        grid-template-columns: 1fr;
    }

    .blog-sidebar {
        width: 100%;
    }
}

@media (max-width: 575.98px) {

    .blog-article {
        font-size: 0.9rem;
    }

    .blog-article img {
        width: 100%;
    }
}


/* ==========================================================================
   32. RESPONSIVE FAQ
   ========================================================================== */

@media (max-width: 575.98px) {

    .faq-item,
    .accordion-item {
        border-radius: 12px;
    }

    .faq-question,
    .accordion-button {
        padding: 0.9rem;

        font-size: 0.82rem;
    }

    .faq-answer,
    .accordion-body {
        padding: 0.9rem;
    }
}


/* ==========================================================================
   33. RESPONSIVE CONTACT
   ========================================================================== */

@media (max-width: 991.98px) {

    .contact-layout,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .contact-info,
    .contact-form-wrapper {
        width: 100%;
    }
}


/* ==========================================================================
   34. RESPONSIVE SUCCESS STORIES / TESTIMONIALS
   ========================================================================== */

@media (max-width: 767.98px) {

    .success-story-featured,
    .testimonial-featured {
        grid-template-columns: 1fr;
    }

    .success-story-image,
    .testimonial-image {
        width: 100%;
    }
}


/* ==========================================================================
   35. RESPONSIVE NOTIFICATIONS
   ========================================================================== */

@media (max-width: 575.98px) {

    .notifications-header {
        align-items: stretch;
        flex-direction: column;

        gap: 0.7rem;
    }

    .notification-actions {
        width: 100%;
    }
}


/* ==========================================================================
   36. RESPONSIVE BLOCKLIST / FAVOURITES / VISITORS
   ========================================================================== */

@media (max-width: 767.98px) {

    .blocklist-grid,
    .favourites-grid,
    .visitors-grid,
    .shortlists-grid,
    .recommendations-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {

    .blocklist-grid,
    .favourites-grid,
    .visitors-grid,
    .shortlists-grid,
    .recommendations-grid {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================================
   37. RESPONSIVE VERIFICATION
   ========================================================================== */

@media (max-width: 575.98px) {

    .verification-status-card,
    .verification-service-card {
        padding: 1rem;
    }

    .verification-steps {
        align-items: stretch;
        flex-direction: column;
    }
}


/* ==========================================================================
   38. RESPONSIVE SETTINGS
   ========================================================================== */

@media (max-width: 767.98px) {

    .settings-nav {
        display: flex;

        max-width: 100%;

        overflow-x: auto;

        gap: 0.4rem;

        white-space: nowrap;

        scrollbar-width: none;
    }

    .settings-nav::-webkit-scrollbar {
        display: none;
    }

    .settings-content {
        width: 100%;
    }
}


/* ==========================================================================
   39. RESPONSIVE PROFILE PHOTOS
   ========================================================================== */

@media (max-width: 575.98px) {

    .photos-grid,
    .profile-photos-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 0.5rem;
    }

    .photo-upload-card {
        min-height: 150px;
    }
}


/* ==========================================================================
   40. RESPONSIVE DOCUMENTS
   ========================================================================== */

@media (max-width: 575.98px) {

    .document-item {
        align-items: flex-start;
        flex-direction: column;

        gap: 0.7rem;
    }

    .document-actions {
        width: 100%;
    }
}


/* ==========================================================================
   41. RESPONSIVE MODALS
   ========================================================================== */

@media (max-width: 575.98px) {

    .modal-dialog {
        width: calc(100% - 1rem);
        max-width: none;

        margin: 0.5rem auto;
    }

    .modal-dialog-centered {
        min-height: calc(100% - 1rem);
    }

    .modal-header {
        padding: 1rem;
    }

    .modal-body {
        padding: 1rem;
    }

    .modal-footer {
        align-items: stretch;
        flex-direction: column-reverse;

        padding: 0.85rem 1rem;
    }

    .modal-footer .btn,
    .modal-footer button {
        width: 100%;
    }
}


/* ==========================================================================
   42. RESPONSIVE ALERTS
   ========================================================================== */

@media (max-width: 575.98px) {

    .alert {
        align-items: flex-start;

        padding: 0.8rem;

        font-size: 0.78rem;
    }

    .toast-container {
        right: 0.75rem;
        bottom: 0.75rem;
        left: 0.75rem;

        width: auto;
    }
}


/* ==========================================================================
   43. RESPONSIVE COOKIE BANNER
   ========================================================================== */

@media (max-width: 767.98px) {

    .cookie-banner,
    .cookie-consent {
        right: 0.75rem;
        bottom: 0.75rem;
        left: 0.75rem;

        width: auto;
        max-width: none;
    }

    .cookie-actions {
        display: grid;
        grid-template-columns: 1fr;

        gap: 0.5rem;
    }
}


/* ==========================================================================
   44. RESPONSIVE EMPTY STATES
   ========================================================================== */

@media (max-width: 575.98px) {

    .empty-state {
        padding: 2rem 1rem;
    }

    .empty-state-icon {
        width: 60px;
        height: 60px;
    }

    .empty-state-title {
        font-size: 1rem;
    }
}


/* ==========================================================================
   45. RESPONSIVE ERROR PAGES
   ========================================================================== */

@media (max-width: 575.98px) {

    .error-page {
        padding: 2rem 1rem;
    }

    .error-code {
        font-size: clamp(4rem, 25vw, 7rem);
    }

    .error-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .error-actions .btn {
        width: 100%;
    }
}


/* ==========================================================================
   46. TOUCH DEVICE OPTIMIZATION
   ========================================================================== */

@media (hover: none) and (pointer: coarse) {

    a,
    button,
    .btn,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"] {
        touch-action: manipulation;
    }

    button,
    .btn,
    .nav-link,
    .dropdown-item,
    .page-link {
        min-height: 44px;
    }

    input,
    select,
    textarea {
        min-height: 44px;
    }

    .tooltip {
        display: none;
    }
}


/* ==========================================================================
   47. HOVER-CAPABLE DEVICES
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {

    .hover-lift:hover {
        transform: translateY(-3px);
    }
}


/* ==========================================================================
   48. SAFE AREA - NOTCHED DEVICES
   ========================================================================== */

@supports (padding: max(0px)) {

    .fixed-bottom,
    .mobile-bottom-nav {
        padding-bottom:
            max(
                0.5rem,
                env(safe-area-inset-bottom)
            );
    }

    .mobile-drawer,
    .offcanvas {
        padding-left:
            env(safe-area-inset-left);
        padding-right:
            env(safe-area-inset-right);
    }
}


/* ==========================================================================
   49. MOBILE BOTTOM NAVIGATION
   ========================================================================== */

.mobile-bottom-nav {
    display: none;
}

@media (max-width: 767.98px) {

    .mobile-bottom-nav {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1025;

        display: grid;
        grid-template-columns:
            repeat(5, minmax(0, 1fr));

        min-height: 60px;

        border-top: 1px solid #ece5e8;

        background: rgba(255, 255, 255, 0.97);

        box-shadow:
            0 -5px 20px rgba(42, 23, 31, 0.07);

        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .mobile-bottom-nav-item {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;

        min-width: 0;

        padding: 0.4rem 0.15rem;

        color: #766e73;

        font-size: 0.58rem;
        font-weight: 600;

        text-decoration: none;
    }

    .mobile-bottom-nav-item.active {
        color: #800020;
    }

    .mobile-bottom-nav-icon {
        margin-bottom: 0.2rem;

        font-size: 1.1rem;
    }

    body.has-mobile-bottom-nav {
        padding-bottom:
            calc(
                60px +
                env(safe-area-inset-bottom)
            );
    }
}


/* ==========================================================================
   50. RESPONSIVE UTILITIES
   ========================================================================== */

@media (min-width: 992px) {

    .d-desktop-none {
        display: none !important;
    }

    .text-desktop-left {
        text-align: left !important;
    }

    .text-desktop-center {
        text-align: center !important;
    }

    .text-desktop-right {
        text-align: right !important;
    }
}

@media (max-width: 991.98px) {

    .d-tablet-none {
        display: none !important;
    }

    .text-tablet-left {
        text-align: left !important;
    }

    .text-tablet-center {
        text-align: center !important;
    }

    .text-tablet-right {
        text-align: right !important;
    }

    .w-tablet-100 {
        width: 100% !important;
    }
}

@media (max-width: 767.98px) {

    .d-mobile-none {
        display: none !important;
    }

    .d-mobile-block {
        display: block !important;
    }

    .d-mobile-flex {
        display: flex !important;
    }

    .text-mobile-left {
        text-align: left !important;
    }

    .text-mobile-center {
        text-align: center !important;
    }

    .text-mobile-right {
        text-align: right !important;
    }

    .w-mobile-100 {
        width: 100% !important;
    }

    .flex-mobile-column {
        flex-direction: column !important;
    }

    .align-mobile-stretch {
        align-items: stretch !important;
    }
}


/* ==========================================================================
   51. PRINT RESPONSIVENESS
   ========================================================================== */

@media print {

    .container,
    .site-container,
    .page-container,
    .container-fluid {
        width: 100%;
        max-width: none;

        padding: 0;
    }

    .section,
    .page-section {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    .no-print,
    .mobile-bottom-nav,
    .sidebar-toggle,
    .mobile-filter-toggle,
    .pagination,
    .modal-backdrop {
        display: none !important;
    }

    .dashboard-main,
    .admin-main,
    .dashboard-content,
    .admin-content {
        width: 100%;

        margin: 0 !important;
        padding: 0 !important;
    }

    .table-responsive,
    .admin-table-wrapper,
    .dashboard-table-wrapper {
        overflow: visible;
    }

    table,
    .admin-table,
    .dashboard-table,
    .invoice-table {
        width: 100%;
        min-width: 0;
    }
}


/* ==========================================================================
   52. REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;

        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
    }
}


/* ==========================================================================
   53. HIGH CONTRAST
   ========================================================================== */

@media (prefers-contrast: more) {

    .card,
    .profile-card,
    .dashboard-card,
    .admin-card,
    .modal-content,
    .form-control,
    .form-select {
        border-width: 2px;
    }

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline-width: 3px;
        outline-style: solid;
        outline-color: currentColor;
    }
}


/* ==========================================================================
   54. FORCED COLORS
   ========================================================================== */

@media (forced-colors: active) {

    .btn,
    .card,
    .profile-card,
    .modal-content,
    .form-control,
    .form-select,
    .alert {
        border: 1px solid CanvasText;
    }

    .btn:focus-visible,
    a:focus-visible,
    button:focus-visible {
        outline: 2px solid Highlight;
    }
}


/* ==========================================================================
   55. RESPONSIVE OVERFLOW PROTECTION
   ========================================================================== */

@media (max-width: 767.98px) {

    .row,
    .grid,
    .dashboard-grid,
    .admin-grid,
    .profile-grid,
    .profiles-grid,
    .search-layout,
    .content-with-sidebar {
        min-width: 0;
    }

    .card,
    .card-body,
    .dashboard-card,
    .admin-card,
    .profile-card,
    .match-card {
        min-width: 0;
    }

    .text-truncate-responsive {
        overflow: hidden;

        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .break-word-responsive {
        overflow-wrap: anywhere;
        word-break: break-word;
    }
}


/* ==========================================================================
   56. RESPONSIVE ACCESSIBILITY
   ========================================================================== */

@media (max-width: 767.98px) {

    .skip-link:focus,
    .skip-nav:focus {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 9999;

        width: auto;
        height: auto;

        padding: 0.75rem 1rem;

        overflow: visible;
    }
}