Files
maria_uslugi/includes/mobil_style.css
T
2026-03-05 10:25:39 +01:00

938 lines
21 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ==========================================================================
mobile.css — Overrides globaux mobile (≤ 956px)
Charge CE FICHIER EN DERNIER
========================================================================== */
@media (max-width: 956px) {
/* ---------- Garde-fous généraux ---------- */
html,
body {
width: 100%;
max-width: 100%;
overflow-x: hidden; /* coupe tout débordement horizontal */
-webkit-text-size-adjust: 100%;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
img,
video,
iframe {
max-width: 100%;
height: auto;
display: block;
}
body {
min-height: 100svh; /* hauteur écran fiable iOS/Android */
padding-left: env(safe-area-inset-left, 0);
padding-right: env(safe-area-inset-right, 0);
}
.row {
margin-left: 0 !important;
margin-right: 0 !important;
}
.container {
width: 100% !important;
max-width: 100% !important;
padding-left: 16px !important;
padding-right: 16px !important; /* ✅ symétrie gauche/droite */
}
/* ==== VISUEL COMMUN POUR TOUS LES MENUS ==== */
.menu-panel {
background: #fff;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
min-width: 230px;
padding: 8px 0;
}
/* Items (li custom OU .dropdown-item Bootstrap) */
.menu-panel > li,
.menu-panel .dropdown-item {
padding: 12px 18px;
font-size: 16px;
line-height: 1.25;
white-space: nowrap;
}
.menu-panel > li + li,
.menu-panel .dropdown-item + .dropdown-item {
border-top: 1px solid #f1f1f1;
}
.menu-panel a {
color: inherit;
text-decoration: none;
display: block;
}
/* ==== MENU “BURGER” CUSTOM ==== */
.menu-wrap {
position: relative;
}
.dropdown-menu-custom {
position: absolute;
top: calc(100% + 8px);
right: 0; /* ← fini le -180px */
list-style: none;
margin: 0;
display: none; /* fermé par défaut */
z-index: 1100;
cursor: pointer;
}
.dropdown-menu-custom.is-open {
display: block;
}
/* Sous-menu admin (inchangé) */
.has-submenu .submenu-toggle {
width: 100%;
text-align: left;
background: none;
border: 0;
padding: 0.55rem 1rem;
font-weight: 400;
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
color: #000;
}
.submenu {
list-style: none;
margin: 0;
padding: 0 0 0.5rem 0;
}
.submenu > li {
padding: 0.4rem 1rem 0.4rem 1.5rem;
cursor: pointer;
}
.submenu > li:hover {
background: #f8f9fa;
}
.submenu[hidden] {
display: none;
}
/* ==== MENU “?” BOOTSTRAP ==== */
.dropdown-menu.menu-panel {
/* on garde le comportement Bootstrap */
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
min-width: 230px;
padding: 8px 0;
cursor: pointer;
}
/* Sécurité : que rien ne coupe les menus */
.site-header,
.header-actions,
.menu-wrap,
.dropdown {
overflow: visible;
background: #f1f1f1;
}
.brand {
display: flex;
align-items: center;
gap: 10px;
width: auto;
max-width: 100%;
}
/* ---------- HERO ---------- */
.hero-title {
font-size: 40px;
}
.results-title,
.results-meta,
.result-count {
margin-top: 12px;
color: #38378b;
text-align: center;
}
/* Chips : rangées centrées et espacées de façon homogène */
.hero .row {
display: flex;
flex-wrap: wrap;
justify-content: center; /* ✅ centrage horizontal des chips */
gap: 8px 10px; /* espace cohérent */
}
.chip {
font-size: 12px;
width: 110px; /* tu peux passer en auto + padding si tu veux */
}
/* ---------- Steps (mobile) ---------- */
.step-label {
background: var(--c-white);
color: var(--c-dark);
font-weight: 700;
font-size: clamp(13px, 2.6vw, 26px);
padding: 14px 26px 14px 38px; /* pour chevauchement côté gauche */
border-radius: 999px;
white-space: nowrap;
box-shadow: var(--c-shadow);
margin-left: -30px;
z-index: 0;
}
/* tailles différentes pour chaque étape */
.step:nth-child(1) .step-badge {
width: 70px;
height: 70px;
font-size: clamp(41px, 5vw, 56px);
}
.step:nth-child(2) .step-badge {
width: 90px;
height: 90px;
font-size: clamp(48px, 5.5vw, 64px);
}
.step:nth-child(3) .step-badge {
width: 110px;
height: 110px;
font-size: clamp(52px, 6vw, 72px);
}
.step--left {
justify-self: start;
transform: translateX(0);
}
.step--right {
justify-self: end;
transform: translateX(0);
}
/* ❗️Supprime le décalage latéral au milieu (source d’asymétrie visuelle) */
.step--center {
justify-self: center;
transform: translateY(12px);
padding-left: 100px; /* ✅ avant : 100px → crée l’effet “plus d’espace à gauche” */
}
/* ---------- Composants transverses ---------- */
main,
.main,
.main1,
.main2 {
display: block !important;
align-items: initial !important;
justify-content: initial !important;
background: transparent !important;
margin: 0 !important;
padding: 0 !important;
width: 100% !important;
max-width: none !important;
}
.text-end {
text-align: initial !important;
}
.text-end .btn {
width: 100%;
}
.card,
.card * {
overflow-wrap: anywhere;
word-break: break-word;
}
.card,
.card.shadow-sm.p-3,
.card.shadow-sm.p-3.avis-card {
min-width: 0 !important;
width: 100% !important;
max-width: 100% !important;
overflow: hidden;
border-radius: 16px;
box-sizing: border-box;
}
/*
.profile-grid > * { min-width: 0; min-height: 0; }
.big-photo { width: 100% !important; max-height: 400px; overflow: hidden; border-radius: 16px; }
.big-photo img { width: 100% !important; height: auto !important; object-fit: cover; display: block; }
.info-scroll, .vlist { max-height: none !important; overflow: visible !important; padding-right: 0 !important; }
.vlist { display: grid !important; grid-template-columns: 1fr !important; gap: 12px !important; }
.vlist .vitem { width: 100%; border-radius: 16px; overflow: hidden; background: #000; aspect-ratio: 21 / 9; }
.vlist .vitem img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bottom-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 12px !important; }
.card .d-flex.align-items-center { flex-direction: column !important; align-items: flex-start !important; gap: 6px; }
.avis-card .d-flex.justify-content-between { flex-direction: column !important; align-items: flex-start !important; gap: 4px; }
.avis-card .meta + div { overflow: hidden; display: block; line-height: 1.5; max-height: calc(1.5em * 3); }
.big-photo, section.panel, aside.panel, .profile-grid, .bottom-grid, .card {
position: static !important; float: none !important; transform: none !important;
z-index: auto !important; margin-left: 0 !important; margin-right: 0 !important; clear: both !important;
}*/
/* ---------- PROFIL ---------- */
/* ---------- PROFIL (mobile) ---------- */
.profile-grid {
display: grid !important;
grid-template-columns: 1fr !important; /* ← empile en 1 colonne */
grid-auto-rows: auto !important;
gap: 16px !important;
}
.profile-grid.profile-top {
height: auto !important;
} /* annule clamp() s'il existe */
.profile-grid > * {
min-width: 0;
min-height: 0;
}
/* annule les hauteurs "90%" du desktop */
.profile-grid .panel {
height: auto !important;
}
.big-photo {
width: 100% !important;
height: auto !important; /* ← annule le 90% */
max-width: 100% !important;
max-height: none !important; /* évite la “fenêtre” grise */
overflow: hidden;
border-radius: 16px;
}
.big-photo img {
width: 100% !important;
height: auto !important;
object-fit: cover;
display: block;
}
.info-scroll,
.vlist {
max-height: none !important;
overflow: visible !important;
padding-right: 0 !important;
}
.vlist {
display: grid !important;
grid-template-columns: 1fr !important;
gap: 12px !important;
}
.bottom-grid {
display: grid !important;
grid-template-columns: 1fr !important;
gap: 12px !important;
}
/* les cartes doivent pouvoir rétrécir */
.card {
min-width: 0 !important;
}
/* ---------- LISTES / RÉSULTATS ---------- */
.pro-list {
gap: 16px !important;
padding: 12px 0 24px !important;
}
.pro-card {
display: grid !important;
grid-template-columns: 1fr !important;
grid-template-areas: "photo" "info" "video" "cta" !important;
gap: 12px !important;
padding: 16px !important;
}
.pro-photo img {
width: 100% !important;
aspect-ratio: 3 / 4;
object-fit: cover;
border-radius: 16px;
}
.pro-info {
padding: 0 !important;
}
.pro-video-col {
width: 100% !important;
display: block !important;
}
.pro-video,
.pro-video.placeholder {
width: 100%;
aspect-ratio: 16 / 9;
max-height: none;
border-radius: 16px;
overflow: hidden;
background: #000;
}
.pro-cta-col {
display: block !important;
}
.pro-cta {
display: block;
width: 100%;
text-align: center;
}
/* ---------- FAVORIS ---------- */
.praticien-card {
display: block !important;
}
.praticien-card > div:first-child {
margin-bottom: 12px;
}
.praticien-card .card-img-top {
display: block;
width: 100%;
height: auto;
border-radius: 12px;
}
.praticien-card > .card-body.p-0 {
margin-bottom: 12px;
min-width: 0;
}
.praticien-card .d-flex {
display: flex;
flex-direction: column;
gap: 10px;
}
.praticien-card .d-flex .btn {
width: 100%;
justify-content: center;
}
/* ---------- Suggestions (autocomplete) ---------- */
.suggest,
#suggestions {
position: absolute !important;
top: calc(100% + 8px);
left: 0;
right: 0; /* => même largeur que l'input */
z-index: 2000;
background: #fff;
border: 1px solid #e9ecef;
border-radius: 14px;
padding: 8px 0;
margin: 0;
max-height: 50vh; /* scrollable si long */
overflow-y: auto;
-webkit-overflow-scrolling: touch;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
width: auto !important; /* annule width:100% si besoin */
}
.suggest li,
#suggestions li {
list-style: none;
padding: 12px 16px;
font-size: clamp(14px, 3.8vw, 18px);
line-height: 1.25;
cursor: pointer;
}
.suggest li + li,
#suggestions li + li {
border-top: 1px solid #f3f4f6;
}
.suggest li:hover,
#suggestions li:hover {
background: #f8f9fa;
}
/* Largeurs figées à neutraliser en mobile */
.pto-list {
width: 100% !important;
}
/* Footer */
.site-footer {
font-size: 12px;
}
}
/*---------Transformation table en cards-----------------------*
***************************************************************/
/* ===== TABLE -> CARTES (mobile) ===== */
@media (max-width: 768px) {
/* ✅ N’affiche pas THEAD tant que data-label n’est pas prêt */
#table_rdv thead {
display: table-header-group;
}
.mc-ready #table_rdv thead {
display: none;
}
/* neutralise centrage hérité */
#table_rdv,
#table_rdv tr,
#table_rdv td,
#table_rdv td * {
text-align: left !important;
}
/* wrapper bootstrap */
.table-responsive {
overflow: visible;
}
#table_rdv {
width: 100%;
border: 0;
background: transparent;
border-collapse: separate;
border-spacing: 0;
}
#table_rdv tbody {
display: block;
}
/* chaque ligne -> carte */
#table_rdv tr {
display: block;
margin: 12px 0;
background: #fff;
border: 1px solid rgba(0, 0, 0, 0.06);
border-radius: 14px;
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
overflow: hidden;
}
#table_rdv tr::before {
content: "";
display: block;
height: 3px;
background: #38378b;
opacity: 0.9;
}
/* cellules empilées */
#table_rdv td {
display: block;
padding: 10px 14px !important;
background: transparent !important;
border: none !important;
box-sizing: border-box;
}
#table_rdv td + td {
border-top: 1px dashed rgba(0, 0, 0, 0.08) !important;
}
/* libellés auto (et on masque s’ils sont vides) */
#table_rdv td::before {
content: attr(data-label);
display: inline-block;
min-width: 120px;
margin-right: 8px;
font-weight: 600;
color: #666;
}
#table_rdv td::before:empty {
display: none;
}
/* hiérarchie visuelle (adapte si ordre diffère) */
#table_rdv td:nth-child(1) {
font-size: 16px;
font-weight: 700;
letter-spacing: 0.2px;
}
#table_rdv td:nth-child(2) {
color: #6b7280;
font-weight: 600;
padding-top: 6px;
}
/* select pleine largeur + iOS align */
#table_rdv select.form-select {
display: block;
width: 100%;
height: 40px;
font-size: 15px;
border-radius: 10px;
margin: 6px 0;
text-align: left !important;
text-align-last: left !important;
-webkit-text-size-adjust: 100%;
}
/* actions */
#table_rdv .row-actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 6px;
justify-content: flex-start !important;
align-items: stretch !important;
}
#table_rdv .row-actions .btn {
flex: 1 1 calc(50% - 4px);
margin: 0 !important;
}
/* neutralise utilitaires Bootstrap qui centrent */
#table_rdv
:is(.text-center, .text-sm-center, .text-md-center, .text-lg-center) {
text-align: left !important;
}
#table_rdv :is(.mx-auto, .ms-auto, .me-auto) {
margin-left: 0 !important;
margin-right: 0 !important;
}
#table_rdv
:is(
.justify-content-center,
.justify-content-sm-center,
.justify-content-md-center,
.justify-content-lg-center
) {
justify-content: flex-start !important;
}
#table_rdv :is(.align-items-center) {
align-items: flex-start !important;
}
/* retire les zébrures en mode carte */
#table_rdv.table-striped > tbody > tr:nth-of-type(odd) > * {
background: transparent !important;
}
}
/******************************FIN TABLES MOBILE********************************************/
@media (max-width: 576px) {
/* Barre de recherche */
.searchbar {
background: #fff;
border-radius: 12px;
display: flex;
align-items: center;
gap: 14px;
padding: 10px 14px;
max-width: 760px;
margin: 0 auto;
box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
}
.search-icon {
margin-left: 6px;
}
.input-wrap {
position: relative;
flex: 1.3;
}
.searchbar input {
width: 100%;
border: none;
outline: none;
font-size: clamp(10px, 3vw, 16px);
padding: 10px 4px;
}
.divider {
width: 1px;
height: 28px;
background: #e6e6e6;
}
}
.footer-top-links {
color: #38378b;
font-weight: 600;
}
.footer-top-links a {
color: inherit; /* hérite du bleu foncé */
}
/* Fallback si le navigateur ne supporte pas gap */
@supports not (gap: 1rem) {
.d-flex.gap-2 > * {
margin-right: 0.5rem;
}
.d-flex.gap-3 > * {
margin-right: 1rem;
}
.d-flex.gap-4 > * {
margin-right: 1.5rem;
}
.d-flex[class*="gap-"] > *:last-child {
margin-right: 0;
}
}
.scrollable {
-webkit-overflow-scrolling: touch;
}
.fullheight {
min-height: 100vh;
} /* défaut */
@supports (height: 100dvh) {
.fullheight {
min-height: 100dvh;
} /* iOS 16+ */
}
@supports not (height: 100dvh) {
.fullheight {
min-height: -webkit-fill-available;
} /* iOS anciens */
}
/*---------Transformation table en cards-----------------------*
***************************************************************/
/* ===== TABLE -> CARTES (mobile) ===== */
@media (max-width: 768px) {
/* ✅ N’affiche pas THEAD tant que data-label n’est pas prêt */
#table_rdv1 thead {
display: table-header-group;
}
.mc-ready #table_rdv1 thead {
display: none;
}
/* neutralise centrage hérité */
#table_rdv1,
#table_rdv1 tr,
#table_rdv1 td,
#table_rdv1 td * {
text-align: left !important;
}
/* wrapper bootstrap */
.table-responsive {
overflow: visible;
}
#table_rdv1 {
width: 100%;
border: 0;
background: transparent;
border-collapse: separate;
border-spacing: 0;
}
#table_rdv1 tbody {
display: block;
}
/* chaque ligne -> carte */
#table_rdv1 tr {
display: block;
margin: 12px 0;
background: #fff;
border: 1px solid rgba(0, 0, 0, 0.06);
border-radius: 14px;
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
overflow: hidden;
}
#table_rdv1 tr::before {
content: "";
display: block;
height: 3px;
background: #38378b;
opacity: 0.9;
}
/* cellules empilées */
#table_rdv1 td {
display: block;
padding: 10px 14px !important;
background: transparent !important;
border: none !important;
box-sizing: border-box;
}
#table_rdv1 td + td {
border-top: 1px dashed rgba(0, 0, 0, 0.08) !important;
}
/* libellés auto (et on masque s’ils sont vides) */
#table_rdv1 td::before {
content: attr(data-label);
display: inline-block;
min-width: 120px;
margin-right: 8px;
font-weight: 600;
color: #666;
}
#table_rdv1 td::before:empty {
display: none;
}
/* hiérarchie visuelle (adapte si ordre diffère) */
#table_rdv1 td:nth-child(1) {
font-size: 16px;
font-weight: 700;
letter-spacing: 0.2px;
}
#table_rdv1 td:nth-child(2) {
color: #6b7280;
font-weight: 600;
padding-top: 6px;
}
/* select pleine largeur + iOS align */
#table_rdv1 select.form-select {
display: block;
width: 100%;
height: 40px;
font-size: 15px;
border-radius: 10px;
margin: 6px 0;
text-align: left !important;
text-align-last: left !important;
-webkit-text-size-adjust: 100%;
}
/* actions */
#table_rdv1 .row-actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 6px;
justify-content: flex-start !important;
align-items: stretch !important;
}
#table_rdv1 .row-actions .btn {
flex: 1 1 calc(50% - 4px);
margin: 0 !important;
}
/* neutralise utilitaires Bootstrap qui centrent */
#table_rdv1
:is(.text-center, .text-sm-center, .text-md-center, .text-lg-center) {
text-align: left !important;
}
#table_rdv1 :is(.mx-auto, .ms-auto, .me-auto) {
margin-left: 0 !important;
margin-right: 0 !important;
}
#table_rdv1
:is(
.justify-content-center,
.justify-content-sm-center,
.justify-content-md-center,
.justify-content-lg-center
) {
justify-content: flex-start !important;
}
#table_rdv1 :is(.align-items-center) {
align-items: flex-start !important;
}
/* retire les zébrures en mode carte */
#table_rdv1.table-striped > tbody > tr:nth-of-type(odd) > * {
background: transparent !important;
}
}
/******************************FIN TABLES MOBILE********************************************/
/* Header fixe en haut */
.site-header--fixed {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1030;
}
/* Safe-area iOS (notch) */
@supports (padding: max(0px)) {
.site-header--fixed {
padding-top: max(env(safe-area-inset-top), 0px);
}
}
/* Espace en haut pour ne pas cacher le contenu */
body.has-fixed-header {
padding-top: 64px; /* ajuste si besoin */
}
@supports (padding: max(0px)) {
body.has-fixed-header {
padding-top: calc(64px + max(env(safe-area-inset-top), 0px));
}
}
.pwa-install {
position: fixed;
right: 14px;
top: 100px;
bottom: auto;
transform: translateY(-50%);
z-index: 9999;
border: 0;
border-radius: 9999px;
padding: 10px 12px;
font-weight: 600;
color: #ffffff;
background: #38378b;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.16);
display: inline-flex;
align-items: center;
gap: 10px;
}
.pwa-install img {
display: block;
}
.pwa-ios-hint {
position: fixed;
inset: 0;
z-index: 10000;
background: rgba(0, 0, 0, 0.45);
display: flex;
align-items: flex-end;
justify-content: center;
padding: 16px;
}
.pwa-ios-card {
width: 100%;
max-width: 520px;
background: #fff;
border-radius: 18px;
padding: 14px 14px 12px;
box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}
.pwa-ios-title {
font-weight: 800;
margin-bottom: 6px;
}
.pwa-ios-text {
line-height: 1.25;
margin-bottom: 10px;
}
.pwa-ios-close {
width: 100%;
border: 0;
border-radius: 999px;
padding: 10px 12px;
background: #e03c3f;
color: #fff;
font-weight: 700;
}
@media (min-width: 992px) {
.pwa-install,
.pwa-ios-hint {
display: none !important;
}
}
/*.d-none{ display:none !important; }*/
@media (max-width: 956px) {
/* Layout page : header + main qui prend l'espace + footer en bas */
body {
min-height: 100dvh; /* mieux que svh */
display: flex;
flex-direction: column;
}
.main {
flex: 1 0 auto; /* prend l’espace vide */
}
.site-footer {
margin-top: auto; /* pousse le footer tout en bas */
}
}