/** * Site-wide responsive layer — mobile & tablet * Loaded after ui-base.css. Preserves desktop identity; adjusts spacing & layout. */ /* ─── Fluid typography & spacing tokens ─── */ :root { --page-pad-x: clamp(0.75rem, 3vw, 2rem); --page-pad-y: clamp(1rem, 2.5vw, 2rem); --card-pad: clamp(1rem, 2.5vw, 1.5rem); --hero-pad: clamp(1.25rem, 4vw, 2.75rem); --text-hero: clamp(1.35rem, 4.5vw, 2.25rem); --text-h2: clamp(1rem, 2.5vw, 1.25rem); } /* ─── Page heroes (programs, news, gallery, etc.) ─── */ .programs-hero, .news-hero, .gallery-hero, .page-hero { padding: var(--hero-pad) var(--page-pad-x) !important; margin-bottom: clamp(1rem, 3vw, 2rem) !important; border-radius: clamp(0.75rem, 2vw, 1.5rem) !important; } .programs-hero h1, .news-hero h1, .gallery-hero h1, .page-hero h1 { font-size: var(--text-hero) !important; } .news-hero p, .programs-hero p, .page-hero p { font-size: clamp(0.88rem, 2.5vw, 1rem) !important; } /* Guest / gradient hero on home */ .home-guest-hero { padding: var(--hero-pad) var(--page-pad-x) !important; text-align: center; } .home-guest-hero h1 { font-size: var(--text-hero) !important; margin-bottom: 0.75rem !important; } .home-guest-hero p { font-size: clamp(0.9rem, 2.5vw, 1.05rem) !important; max-width: 36rem; margin-inline: auto; margin-bottom: 1.5rem !important; } .home-guest-hero .hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.65rem; } .home-guest-hero .hero-actions .btn { flex: 1 1 auto; min-width: min(100%, 10rem); max-width: 100%; } /* ─── Cards & sections ─── */ .admin-card .sec-head { padding: var(--card-pad) !important; } .admin-card .p-3, .admin-card .p-4, .admin-card .p-5 { padding: var(--card-pad) !important; } .admin-card .sec-head .btn { flex-shrink: 0; } /* Stat boxes (home dashboard) */ .stat-box { padding: clamp(1rem, 3vw, 1.5rem) !important; gap: clamp(0.65rem, 2vw, 1.1rem) !important; } .stat-icon-wrapper { width: clamp(44px, 12vw, 55px) !important; height: clamp(44px, 12vw, 55px) !important; font-size: clamp(1.15rem, 3vw, 1.5rem) !important; } .stat-info .value { font-size: clamp(1.2rem, 4vw, 1.6rem) !important; } .stat-info .label { font-size: clamp(0.72rem, 2vw, 0.8rem) !important; } /* Program / news cards */ .program-card-img { height: clamp(160px, 42vw, 200px) !important; } .program-card-body, .news-card-body { padding: clamp(1rem, 3vw, 1.25rem) !important; } .program-card-title, .news-card-title { font-size: clamp(1rem, 2.8vw, 1.1rem) !important; } /* ─── Tables: scroll inside box, wrap text on very small screens ─── */ .table-responsive { margin-bottom: 0; border-radius: 0.5rem; } @media (max-width: 768px) { .table-admin thead th { white-space: normal !important; font-size: 0.72rem !important; padding: 0.65rem 0.5rem !important; } .table-admin tbody td { font-size: 0.82rem !important; padding: 0.65rem 0.5rem !important; white-space: normal; word-break: break-word; } .table-admin .badge { font-size: 0.7rem; white-space: normal; } } /* ─── Page toolbars (back + title) ─── */ .page-toolbar { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.75rem; margin-bottom: 1.25rem; } .page-toolbar .page-toolbar-actions { flex-shrink: 0; } @media (max-width: 576px) { .page-toolbar { flex-direction: column; align-items: stretch; } .page-toolbar .page-toolbar-actions { width: 100%; } .page-toolbar .page-toolbar-actions .btn, .page-toolbar .page-toolbar-actions a { width: 100%; justify-content: center; } } /* ─── Map ─── */ .map-embed, #map.map-embed { height: clamp(260px, 55vh, 480px) !important; min-height: 240px; width: 100% !important; border-radius: 1rem; } /* ─── Footer ─── */ .site-footer.legacy-site-footer { padding: clamp(1.75rem, 5vw, 3rem) 0 clamp(1.25rem, 4vw, 2rem) !important; } .site-footer.legacy-site-footer .container { padding-inline: var(--page-pad-x); } .site-footer.legacy-site-footer .footer-grid { grid-template-columns: 1fr !important; gap: clamp(1.25rem, 4vw, 2.5rem) !important; margin-bottom: clamp(1.25rem, 4vw, 2.5rem) !important; } @media (min-width: 576px) { .site-footer.legacy-site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } } @media (min-width: 992px) { .site-footer.legacy-site-footer .footer-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important; } } .site-footer.legacy-site-footer .footer-logo { font-size: clamp(1.1rem, 3vw, 1.35rem) !important; } .site-footer.legacy-site-footer .footer-about > p { font-size: clamp(0.85rem, 2.5vw, 0.95rem) !important; } .site-footer.legacy-site-footer .social-link { width: 40px; height: 40px; } .site-footer.legacy-site-footer .footer-bottom p, .site-footer.legacy-site-footer .footer-bottom a { font-size: clamp(0.8rem, 2.2vw, 0.875rem) !important; } /* ─── Membership card page ─── */ .card-print-page { padding: clamp(0.75rem, 3vw, 1.25rem) clamp(0.5rem, 2vw, 0.75rem) clamp(5rem, 12vw, 6rem) !important; } .sf-card { width: min(380px, 100%) !important; max-width: 100% !important; } .sf-lvl { width: calc(33.333% - 6px); min-width: 0; } .sf-lvl-name { white-space: normal !important; font-size: clamp(0.58rem, 2vw, 0.65rem) !important; line-height: 1.2; } .sf-print-btn { bottom: max(1rem, env(safe-area-inset-bottom, 0px)) !important; inset-inline: 50% auto; transform: translateX(-50%); width: min(340px, calc(100% - 2rem)); max-width: 100%; z-index: 1020; } html[dir="rtl"] .sf-print-btn { transform: translateX(50%); } @media (max-width: 576px) { .theme-swatch { flex: 1 1 calc(50% - 0.5rem) !important; min-width: 0 !important; } .sf-layout { flex-direction: column; } .sf-details, .sf-stats { flex: 1 1 100% !important; min-width: 0 !important; width: 100% !important; } } /* ─── Modals (programs detail, etc.) ─── */ @media (max-width: 576px) { .modal-dialog { margin: 0.5rem; max-width: calc(100% - 1rem); } .modal-body { padding: 1rem !important; } } /* ─── Forms & buttons ─── */ @media (max-width: 576px) { .btn-modern.w-100, .rental-form-mobile-stack .col-md-3 .btn-modern, .rental-form-mobile-stack .col-md-3 { width: 100%; } .form-select-lg { font-size: 0.9rem !important; } } /* ─── Teams cards partial ─── */ @media (max-width: 576px) { .team-card-meta { flex-direction: column; align-items: flex-start !important; gap: 0.35rem !important; } } /* ─── Gallery grid ─── */ .gallery-hero { padding: var(--hero-pad) var(--page-pad-x) !important; } /* ─── News article ─── */ @media (max-width: 768px) { .article-body, .news-article-body { padding: 0 0.25rem !important; font-size: 0.95rem !important; line-height: 1.75 !important; } .article-body img, .news-article-body img { max-width: 100% !important; height: auto !important; } .article-wrap { border-radius: 0.75rem !important; } .article-hero-img { max-height: 220px !important; border-radius: 0.75rem 0.75rem 0 0 !important; } } /* ─── Team cards (programs page) ─── */ .team-card-cover { height: clamp(160px, 42vw, 200px) !important; } /* ─── Auth / guest layout ─── */ @media (max-width: 576px) { .prem-auth-wrap { padding: 1rem 0.75rem !important; } .prem-card { padding: 1.25rem 1rem !important; } } /* ─── Header: tablet ─── */ @media (max-width: 992px) { .admin-content { padding: var(--page-pad-y) var(--page-pad-x) !important; } .notifications-nav { position: static; } } /* ─── Header: phone — actions full width row ─── */ @media (max-width: 480px) { .admin-header { display: grid !important; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "toggle title" "actions actions"; align-items: center; column-gap: 0.5rem; row-gap: 0.5rem; padding: 0.5rem var(--page-pad-x) !important; } .sidebar-toggle-btn { grid-area: toggle; } .admin-header-title { grid-area: title; max-width: 100% !important; font-size: 0.95rem !important; } .header-actions { grid-area: actions; width: 100%; justify-content: center; flex-wrap: wrap; gap: 0.4rem !important; } .header-actions > .btn-modern, .header-actions > .btn-light-modern, .header-actions > a.btn-light-modern { padding: 0.4rem 0.75rem !important; font-size: 0.78rem !important; } .lang-switch { max-width: 100%; } } /* ─── Leaderboard name cell ─── */ @media (max-width: 576px) { .lb-name-cell { max-width: 100px !important; } } /* ─── Prevent overflow from pre/code ─── */ .admin-content pre, .admin-content code, .admin-card pre { max-width: 100%; overflow-x: auto; } /* ─── Partner logos row ─── */ .partners-wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; } .partners-wrap > a, .partners-wrap > div { min-width: min(88px, 28vw) !important; max-width: 100%; } /* ─── Touch targets ─── */ @media (max-width: 992px) { .nav-item-admin { padding: 0.75rem 1.25rem !important; } .btn-light-modern, .btn-modern, .sidebar-toggle-btn { min-height: 40px; } }