/* =========================
   RESET
========================= */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{

  font-family:'Inter',sans-serif;

  background:
    linear-gradient(
      180deg,
      #f8f7fc 0%,
      #ffffff 100%
    );

  color:#111827;

  overflow-x:hidden;
}

/* =========================
   LINKS
========================= */

a{
  text-decoration:none;
  color:inherit;
}

/* =========================
   TOPBAR
========================= */

.topbar{

  position:fixed;

  top:0;
  left:0;

  width:100%;

  z-index:1000;

  background:
    rgba(255,255,255,.78);

  backdrop-filter:blur(16px);

  border-bottom:
    1px solid rgba(255,255,255,.3);
}

.header-container{

  max-width:1300px;

  margin:auto;

  padding:20px 28px;

  display:flex;

  align-items:center;

  justify-content:space-between;
}

.logo-wrap{

  display:flex;

  align-items:center;

  gap:14px;
}

.logo-icon{

  width:48px;
  height:48px;

  border-radius:18px;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:22px;

  color:white;

  background:
    linear-gradient(
      135deg,
      #6c47ff,
      #8b5cf6
    );

  box-shadow:
    0 10px 30px rgba(108,71,255,.25);
}

.logo-text{

  font-size:20px;

  font-weight:800;

  color:#111827;
}

.logo-subtitle{

  font-size:13px;

  color:#6b7280;

  margin-top:2px;
}

.main-nav,
.hero-nav{

  display:flex;

  align-items:center;

  gap:28px;
}

.main-nav a,
.hero-nav a{

  color:#374151;

  font-weight:600;

  transition:.2s;
}

.main-nav a:hover,
.hero-nav a:hover{

  color:#6c47ff;
}

/* =========================
   HERO
========================= */

.hero-header{

  position:relative;

  min-height:100vh;

  padding-top:120px;

  overflow:hidden;
}

.hero-overlay{

  position:absolute;

  inset:0;

  background:
    radial-gradient(
      circle at top left,
      rgba(108,71,255,.12),
      transparent 40%
    ),
    radial-gradient(
      circle at bottom right,
      rgba(139,92,246,.10),
      transparent 35%
    );

  pointer-events:none;
}

.hero-content{

  max-width:1300px;

  margin:auto;

  min-height:calc(100vh - 120px);

  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:70px;

  align-items:center;

  padding:40px 28px 80px;
}

.hero-left{

  position:relative;

  z-index:2;
}

.hero-badge{

  display:inline-flex;

  padding:12px 18px;

  border-radius:999px;

  background:#ede9fe;

  color:#6c47ff;

  font-weight:700;

  margin-bottom:28px;
}

.hero-left h1{

  font-size:68px;

  line-height:1.05;

  font-weight:800;

  color:#111827;

  margin-bottom:28px;

  letter-spacing:-2px;
}

.hero-left p{

  font-size:20px;

  line-height:1.8;

  color:#6b7280;

  max-width:650px;

  margin-bottom:40px;
}

.hero-buttons{

  display:flex;

  gap:18px;

  flex-wrap:wrap;
}

.hero-button,
.primary-btn{

  border:none;

  background:
    linear-gradient(
      135deg,
      #6c47ff,
      #8b5cf6
    );

  color:white;

  padding:18px 30px;

  border-radius:20px;

  font-size:16px;

  font-weight:700;

  cursor:pointer;

  transition:.25s;

  box-shadow:
    0 14px 35px rgba(108,71,255,.28);

  display:inline-flex;

  align-items:center;

  justify-content:center;
}

.hero-button:hover,
.primary-btn:hover{

  transform:translateY(-3px);

  box-shadow:
    0 20px 40px rgba(108,71,255,.32);
}

.secondary-button,
.secondary-btn{

  background:white;

  color:#111827;

  border:
    1px solid #e5e7eb;

  padding:18px 28px;

  border-radius:20px;

  font-weight:700;

  transition:.2s;

  display:inline-flex;

  align-items:center;

  justify-content:center;
}

.secondary-button:hover,
.secondary-btn:hover{

  background:#f9fafb;
}

.hero-right{

  position:relative;
}

.hero-right img{

  width:100%;

  height:720px;

  object-fit:cover;

  border-radius:40px;

  box-shadow:
    0 30px 80px rgba(0,0,0,.15);
}

/* =========================
   FEATURES
========================= */

.features-section{

  padding:120px 28px;
}

.section-title{

  text-align:center;

  margin-bottom:70px;
}

.section-badge{

  display:inline-flex;

  padding:12px 18px;

  border-radius:999px;

  background:#ede9fe;

  color:#6c47ff;

  font-weight:700;

  margin-bottom:24px;
}

.section-title h2{

  font-size:52px;

  line-height:1.1;

  max-width:850px;

  margin:auto;
}

.features-grid{

  max-width:1300px;

  margin:auto;

  display:grid;

  grid-template-columns:
    repeat(auto-fit,minmax(300px,1fr));

  gap:28px;
}

.feature-card{

  background:white;

  border-radius:34px;

  padding:40px;

  box-shadow:
    0 20px 50px rgba(0,0,0,.06);

  transition:.25s;
}

.feature-card:hover{

  transform:translateY(-5px);
}

.feature-icon{

  width:70px;
  height:70px;

  border-radius:24px;

  display:flex;

  align-items:center;

  justify-content:center;

  font-size:28px;

  margin-bottom:28px;

  color:#6c47ff;

  background:#ede9fe;
}

.feature-card h3{

  font-size:26px;

  margin-bottom:18px;
}

.feature-card p{

  color:#6b7280;

  line-height:1.8;

  font-size:17px;
}

/* =========================
   CTA
========================= */

.cta-section{

  padding:0 28px 120px;
}

.cta-card{

  max-width:1100px;

  margin:auto;

  border-radius:42px;

  padding:80px;

  text-align:center;

  background:
    linear-gradient(
      135deg,
      #6c47ff,
      #8b5cf6
    );

  color:white;

  box-shadow:
    0 30px 80px rgba(108,71,255,.28);
}

.cta-card .section-badge{

  background:
    rgba(255,255,255,.15);

  color:white;
}

.cta-card h2{

  font-size:54px;

  line-height:1.1;

  margin-bottom:24px;
}

.cta-card p{

  max-width:720px;

  margin:auto auto 40px auto;

  line-height:1.8;

  font-size:19px;

  opacity:.92;
}

.cta-card .hero-button{

  background:white;

  color:#6c47ff;

  box-shadow:none;
}

/* =========================
   QUESTIONNAIRE
========================= */

.questionnaire-page{

  min-height:100vh;

  padding:150px 20px 80px;
}

.questionnaire-card{

  max-width:950px;

  margin:auto;

  background:white;

  border-radius:38px;

  padding:50px;

  box-shadow:
    0 20px 60px rgba(0,0,0,.08);
}

.progress{

  width:100%;

  height:10px;

  background:#ece9ff;

  border-radius:999px;

  overflow:hidden;

  margin-bottom:40px;
}

#progressBar{

  height:100%;

  width:0;

  background:
    linear-gradient(
      135deg,
      #6c47ff,
      #8b5cf6
    );

  transition:.3s;
}

.question-step h1,
.result-card h1{

  font-size:48px;

  line-height:1.1;

  margin-bottom:35px;
}

.answer-grid{

  display:grid;

  grid-template-columns:
    repeat(auto-fit,minmax(230px,1fr));

  gap:18px;
}

.answer-card{

  border:none;

  background:#f8f7ff;

  border:2px solid transparent;

  padding:24px;

  border-radius:24px;

  font-size:16px;

  font-weight:700;

  color:#111827;

  cursor:pointer;

  transition:.2s;

  text-align:left;
}

.answer-card:hover,
.answer-card.active{

  background:#6c47ff;

  border-color:#6c47ff;

  color:white;

  transform:translateY(-2px);
}

.question-actions{

  margin-top:40px;

  display:flex;

  justify-content:space-between;

  gap:18px;
}

.result-card p{

  color:#6b7280;

  line-height:1.8;

  font-size:18px;

  margin-bottom:30px;
}

.result-tags{

  display:flex;

  flex-wrap:wrap;

  gap:12px;

  margin-bottom:40px;
}

.result-tags span{

  background:#ede9fe;

  color:#6c47ff;

  padding:10px 16px;

  border-radius:999px;

  font-weight:700;
}

/* =========================
   DASHBOARD
========================= */

.dashboard-wrapper{

  padding:
    140px 20px 80px;

  max-width:1200px;

  margin:auto;

  display:grid;

  gap:28px;
}

.dashboard-card{

  background:white;

  border-radius:34px;

  padding:40px;

  box-shadow:
    0 20px 50px rgba(0,0,0,.06);
}

.dashboard-card h2{

  font-size:32px;

  margin-bottom:30px;
}

input,
textarea,
select{

  width:100%;

  padding:18px 20px;

  border-radius:18px;

  border:1px solid #e5e7eb;

  margin-bottom:18px;

  font-size:16px;

  font-family:'Inter',sans-serif;

  background:#fafafa;

  transition:.2s;
}

input:focus,
textarea:focus,
select:focus{

  outline:none;

  border-color:#6c47ff;

  background:white;
}

textarea{

  min-height:140px;

  resize:vertical;
}

.days-grid{

  display:grid;

  grid-template-columns:
    repeat(auto-fit,minmax(120px,1fr));

  gap:16px;

  margin-bottom:24px;
}

.days-grid label{

  display:flex;

  align-items:center;

  gap:10px;

  padding:14px;

  border-radius:16px;

  background:#f8f7ff;

  font-weight:600;
}

.hours-row{

  display:grid;

  grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

  gap:20px;
}

.google-btn{

  width:100%;

  border:none;

  background:
    linear-gradient(
      135deg,
      #111827,
      #374151
    );

  color:white;

  padding:18px;

  border-radius:20px;

  font-weight:700;

  cursor:pointer;

  transition:.2s;
}

.google-btn:hover{

  transform:translateY(-2px);
}

.google-btn:disabled{

  cursor:not-allowed;

  opacity:.7;

  transform:none !important;
}

.success-google{

  margin-top:20px;

  padding:18px;

  border-radius:18px;

  background:#ecfdf3;

  color:#067647;

  font-weight:700;
}

.error-google{

  margin-top:20px;

  padding:18px;

  border-radius:18px;

  background:#fef3f2;

  color:#b42318;

  font-weight:700;
}

/* =========================
   FOOTER
========================= */

.legal-footer{

  padding:70px 20px;

  background:#faf8ff;

  text-align:center;

  color:#6b7280;

  line-height:1.9;

  font-size:14px;

  border-top:
    1px solid #ece9ff;
}

.legal-footer p{

  max-width:900px;

  margin:0 auto 14px auto;
}

/* =========================
   MOBILE
========================= */

@media(max-width:980px){

  .hero-content{

    grid-template-columns:1fr;

    gap:60px;
  }

  .hero-left h1{

    font-size:52px;
  }

  .hero-right img{

    height:500px;
  }

  .cta-card{

    padding:50px 30px;
  }

  .cta-card h2{

    font-size:42px;
  }

  .section-title h2{

    font-size:42px;
  }
}

@media(max-width:768px){

  .main-nav,
  .hero-nav{

    display:none;
  }

  .hero-left h1{

    font-size:42px;
  }

  .hero-left p{

    font-size:18px;
  }

  .hero-buttons{

    flex-direction:column;
  }

  .questionnaire-card{

    padding:28px;
  }

  .question-step h1,
  .result-card h1{

    font-size:34px;
  }

  .question-actions{

    flex-direction:column;
  }

  .dashboard-card{

    padding:28px;
  }
}
.legal-links{

  display:flex;

  justify-content:center;

  flex-wrap:wrap;

  gap:24px;

  margin-bottom:28px;
}

.legal-links a{

  color:#6c47ff;

  font-weight:700;

  transition:.2s;
}

.legal-links a:hover{

  opacity:.7;
}

.copyright{

  margin-top:30px;

  font-size:13px;

  opacity:.7;
}

.menu-toggle{
  display:none;
  border:none;
  background:#6c47ff;
  color:white;
  font-size:24px;
  width:48px;
  height:48px;
  border-radius:14px;
  cursor:pointer;
}

.trust-section{
  padding:60px 20px;
  background:white;
}

.trust-grid{
  max-width:1100px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:22px;
}

.trust-card{
  background:#f8f7ff;
  border-radius:24px;
  padding:28px;
  text-align:center;
  font-weight:700;
  color:#111827;
}

@media(max-width:768px){

  .menu-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .main-nav,
  .hero-nav{
    display:none;
    width:100%;
    flex-direction:column;
    gap:16px;
    padding:20px 0;
  }

  .main-nav.open,
  .hero-nav.open{
    display:flex;
  }

  .header-container{
    flex-wrap:wrap;
  }
}
.auth-page{

  min-height:100vh;

  display:flex;

  align-items:center;

  justify-content:center;

  padding:140px 20px 60px;
}

.auth-card{

  width:100%;

  max-width:520px;

  background:white;

  border-radius:34px;

  padding:42px;

  box-shadow:
    0 20px 60px rgba(0,0,0,.08);
}

.auth-badge{

  display:inline-flex;

  padding:10px 16px;

  border-radius:999px;

  background:#ede9fe;

  color:#6c47ff;

  font-weight:700;

  margin-bottom:24px;
}

.auth-card h1{

  font-size:42px;

  margin-bottom:16px;
}

.auth-text{

  color:#6b7280;

  line-height:1.7;

  margin-bottom:32px;
}

.auth-secondary{

  width:100%;

  margin-top:16px;
}

#login-btn{

  width:100%;
}

.account-box{

  display:flex;

  flex-direction:column;

  gap:18px;
}

.account-line{

  display:flex;

  justify-content:space-between;

  align-items:center;

  padding:20px;

  border-radius:18px;

  background:#f8f7ff;
}

.account-line span{

  color:#6b7280;
}

.appointment-card{

  background:#f8f7ff;

  padding:24px;

  border-radius:24px;

  margin-bottom:18px;
}

.appointment-card h3{

  margin-bottom:10px;
}

.appointment-card p{

  color:#6b7280;

  line-height:1.7;
}
*{

  margin:0;
  padding:0;
  box-sizing:border-box;
}

html,
body{

  overflow-x:hidden;
}

body{

  width:100%;

  font-family:
    "Inter",
    sans-serif;

  background:#f7f5ff;

  color:#111827;
}

img{

  max-width:100%;
}

.topbar{

  width:100%;

  background:white;

  position:sticky;

  top:0;

  z-index:999;

  border-bottom:
    1px solid #ece8ff;
}

.header-container{

  width:100%;

  max-width:1280px;

  margin:auto;

  padding:20px;

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:20px;
}

.logo-wrap{

  display:flex;

  align-items:center;

  gap:18px;

  text-decoration:none;
}

.logo-icon{

  width:72px;
  height:72px;

  border-radius:24px;

  background:
    linear-gradient(
      135deg,
      #6c47ff,
      #8b5cf6
    );

  display:flex;

  align-items:center;

  justify-content:center;

  color:white;

  font-size:34px;

  flex-shrink:0;
}

.logo-text{

  font-size:28px;

  font-weight:800;

  color:#111827;
}

.logo-subtitle{

  color:#6b7280;

  margin-top:4px;
}

.main-nav{

  display:flex;

  align-items:center;

  gap:34px;
}

.main-nav a{

  text-decoration:none;

  color:#374151;

  font-weight:600;

  transition:.2s;
}

.main-nav a:hover{

  color:#6c47ff;
}

.menu-toggle{

  display:none;

  width:52px;
  height:52px;

  border:none;

  border-radius:16px;

  background:
    linear-gradient(
      135deg,
      #6c47ff,
      #8b5cf6
    );

  color:white;

  font-size:26px;

  cursor:pointer;
}

@media(max-width:900px){

  .menu-toggle{

    display:flex;

    align-items:center;

    justify-content:center;
  }

  .main-nav{

    position:absolute;

    top:100%;

    left:0;

    width:100%;

    background:white;

    padding:24px;

    flex-direction:column;

    display:none;

    border-bottom:
      1px solid #ece8ff;
  }

  .main-nav.open{

    display:flex;
  }

  .logo-text{

    font-size:22px;
  }

  .logo-subtitle{

    font-size:14px;
  }

  .logo-icon{

    width:58px;
    height:58px;
  }

  .header-container{

    padding:16px;
  }
}
.praticiens-page{

  padding:40px 24px 80px;
}

.praticiens-grid{

  display:grid;

  grid-template-columns:
  repeat(auto-fit,minmax(380px,1fr));

  gap:32px;

  max-width:1400px;

  margin:auto;
}

.praticien-card{

  background:#ffffff;

  border-radius:36px;

  padding:42px;

  border:1px solid #ece8ff;

  box-shadow:
  0 10px 40px rgba(76,29,149,.06);

  transition:.25s;
}

.praticien-card:hover{

  transform:translateY(-4px);

  box-shadow:
  0 20px 60px rgba(76,29,149,.10);
}

.praticien-badges{

  display:flex;

  gap:12px;

  margin-bottom:28px;

  flex-wrap:wrap;
}

.badge-verified{

  background:#dcfce7;

  color:#166534;

  padding:10px 18px;

  border-radius:999px;

  font-weight:700;

  font-size:14px;
}

.badge-recommended{

  background:#ede9fe;

  color:#6d28d9;

  padding:10px 18px;

  border-radius:999px;

  font-weight:700;

  font-size:14px;
}

.praticien-name{

  font-size:42px;

  font-weight:800;

  margin-bottom:14px;

  color:#0f172a;
}

.praticien-speciality{

  font-size:26px;

  color:#475569;

  margin-bottom:18px;
}

.praticien-location{

  color:#64748b;

  margin-bottom:24px;

  font-size:18px;
}

.praticien-description{

  color:#334155;

  line-height:1.8;

  font-size:18px;

  margin-bottom:36px;
}

.praticien-actions{

  display:flex;

  gap:16px;

  flex-wrap:wrap;
}

.praticien-btn{

  padding:18px 28px;

  border-radius:20px;

  font-weight:700;

  text-decoration:none;

  transition:.2s;
}

.praticien-btn.primary{

  background:#0f172a;

  color:white;
}

.praticien-btn.primary:hover{

  transform:translateY(-2px);
}

.praticien-btn.secondary{

  background:#f1f5f9;

  color:#0f172a;
}

.loading-state{

  padding:60px;

  text-align:center;

  font-size:22px;

  color:#64748b;
}
/* =========================================
   GLOBAL
========================================= */

body{

  margin:0;

  font-family:'Inter',sans-serif;

  background:#f7f5ff;

  color:#0f172a;

  overflow-x:hidden;
}

*{

  box-sizing:border-box;
}

/* =========================================
   HERO
========================================= */

.listing-hero,
.dashboard-hero{

  padding:80px 24px 50px;
}

.listing-content,
.dashboard-hero-content{

  max-width:1300px;

  margin:auto;
}

.listing-content h1,
.dashboard-hero-content h1{

  font-size:72px;

  line-height:1.05;

  margin:20px 0;

  font-weight:800;

  max-width:1100px;
}

.listing-content p,
.dashboard-hero-content p{

  font-size:24px;

  color:#475569;

  max-width:900px;

  line-height:1.6;
}

.hero-badge,
.section-badge{

  display:inline-flex;

  align-items:center;

  gap:10px;

  background:#ede9fe;

  color:#6d28d9;

  padding:14px 24px;

  border-radius:999px;

  font-weight:700;

  font-size:18px;
}

/* =========================================
   SEARCH
========================================= */

.filters-section{

  padding:0 24px 40px;
}

.filters-wrapper{

  max-width:1300px;

  margin:auto;
}

#searchInput{

  width:100%;

  height:84px;

  border-radius:30px;

  border:1px solid #e5e7eb;

  padding:0 30px;

  font-size:24px;

  background:white;

  outline:none;
}

/* =========================================
   PRACTITIONERS
========================================= */

.praticiens-page{

  padding:30px 24px 90px;
}

.praticiens-grid{

  max-width:1400px;

  margin:auto;

  display:grid;

  grid-template-columns:
  repeat(auto-fit,minmax(420px,1fr));

  gap:36px;
}

.praticien-card{

  background:white;

  border-radius:36px;

  padding:42px;

  border:1px solid #ece8ff;

  box-shadow:
  0 10px 40px rgba(76,29,149,.06);

  transition:.25s;
}

.praticien-card:hover{

  transform:translateY(-5px);

  box-shadow:
  0 20px 60px rgba(76,29,149,.12);
}

.praticien-badges{

  display:flex;

  gap:14px;

  margin-bottom:26px;

  flex-wrap:wrap;
}

.badge-verified{

  background:#dcfce7;

  color:#166534;

  padding:10px 18px;

  border-radius:999px;

  font-weight:700;
}

.badge-recommended{

  background:#ede9fe;

  color:#6d28d9;

  padding:10px 18px;

  border-radius:999px;

  font-weight:700;
}

.praticien-name{

  font-size:46px;

  font-weight:800;

  margin-bottom:16px;
}

.praticien-speciality{

  font-size:26px;

  color:#475569;

  margin-bottom:16px;
}

.praticien-location{

  color:#64748b;

  margin-bottom:26px;

  font-size:18px;
}

.praticien-description{

  font-size:20px;

  line-height:1.8;

  color:#334155;

  margin-bottom:34px;
}

.praticien-actions{

  display:flex;

  gap:18px;

  flex-wrap:wrap;
}

/* =========================================
   BUTTONS
========================================= */

.praticien-btn,
.primary-btn,
.secondary-btn,
.hero-button,
.danger-btn{

  border:none;

  text-decoration:none;

  display:inline-flex;

  align-items:center;

  justify-content:center;

  padding:18px 30px;

  border-radius:22px;

  font-weight:700;

  font-size:18px;

  cursor:pointer;

  transition:.25s;
}

.primary-btn,
.hero-button,
.praticien-btn.primary{

  background:#0f172a;

  color:white;
}

.primary-btn:hover,
.hero-button:hover{

  transform:translateY(-3px);
}

.secondary-btn,
.praticien-btn.secondary{

  background:#eef2ff;

  color:#4338ca;
}

.danger-btn{

  background:#fee2e2;

  color:#991b1b;
}

/* =========================================
   ACCOUNT
========================================= */

.account-page{

  padding:20px 24px 90px;

  max-width:1400px;

  margin:auto;
}

.account-card{

  background:white;

  border-radius:36px;

  padding:42px;

  margin-bottom:32px;

  border:1px solid #ece8ff;

  box-shadow:
  0 10px 40px rgba(76,29,149,.05);
}

.account-card h2{

  font-size:52px;

  margin:22px 0 34px;
}

.account-grid{

  display:grid;

  grid-template-columns:
  repeat(auto-fit,minmax(300px,1fr));

  gap:24px;
}

.account-item{

  background:#f8f7ff;

  border-radius:24px;

  padding:28px;
}

.account-label{

  display:block;

  font-size:15px;

  color:#64748b;

  margin-bottom:12px;

  text-transform:uppercase;

  letter-spacing:.04em;
}

.account-value{

  font-size:24px;

  font-weight:700;

  color:#0f172a;
}

.account-actions{

  display:flex;

  gap:18px;

  flex-wrap:wrap;
}

/* =========================================
   TRUST
========================================= */

.trust-section{

  padding:40px 24px 80px;
}

.trust-grid{

  max-width:1300px;

  margin:auto;

  display:grid;

  grid-template-columns:
  repeat(auto-fit,minmax(260px,1fr));

  gap:26px;
}

.trust-card{

  background:white;

  border-radius:30px;

  padding:36px;

  text-align:center;

  border:1px solid #ece8ff;
}

.trust-icon{

  width:70px;

  height:70px;

  border-radius:50%;

  background:#ede9fe;

  color:#6d28d9;

  display:flex;

  align-items:center;

  justify-content:center;

  margin:auto auto 24px;

  font-size:28px;

  font-weight:700;
}

/* =========================================
   FOOTER
========================================= */

.legal-footer{

  padding:70px 24px;

  text-align:center;

  color:#64748b;

  background:#f3f0ff;
}

.legal-links{

  display:flex;

  justify-content:center;

  gap:30px;

  flex-wrap:wrap;

  margin-bottom:34px;
}

.legal-links a{

  color:#6d28d9;

  text-decoration:none;

  font-weight:700;
}

.copyright{

  margin-top:30px;

  opacity:.7;
}

/* =========================================
   MOBILE
========================================= */

@media(max-width:900px){

  .listing-content h1,
  .dashboard-hero-content h1{

    font-size:46px;
  }

  .listing-content p,
  .dashboard-hero-content p{

    font-size:20px;
  }

  .praticiens-grid{

    grid-template-columns:1fr;
  }

  .account-card h2{

    font-size:40px;
  }

  #searchInput{

    height:72px;

    font-size:20px;
  }
}

@media(max-width:640px){

  .listing-content h1,
  .dashboard-hero-content h1{

    font-size:38px;
  }

  .praticien-name{

    font-size:34px;
  }

  .praticien-speciality{

    font-size:22px;
  }

  .praticien-description{

    font-size:18px;
  }

  .account-card{

    padding:30px;
  }

  .account-card h2{

    font-size:34px;
  }
}

.practitioners-grid{

  display:grid;

  grid-template-columns:
    repeat(auto-fit,minmax(340px,1fr));

  gap:32px;

  padding:40px;
}

.practitioner-card{

  background:white;

  border-radius:32px;

  padding:32px;

  box-shadow:
    0 10px 40px rgba(0,0,0,.05);

  border:1px solid #ece8ff;

  transition:.3s;
}

.practitioner-card:hover{

  transform:translateY(-6px);

  box-shadow:
    0 20px 60px rgba(98,76,255,.12);
}

.practitioner-top{

  display:flex;

  gap:12px;

  margin-bottom:24px;
}

.badge{

  padding:10px 16px;

  border-radius:999px;

  font-size:14px;

  font-weight:700;
}

.verified{

  background:#e8fff1;

  color:#169a52;
}

.recommended{

  background:#f0ebff;

  color:#624cff;
}

.practitioner-name{

  font-size:40px;

  font-weight:800;

  margin-bottom:12px;

  color:#081028;
}

.practitioner-city{

  color:#667085;

  font-size:18px;

  margin-bottom:10px;
}

.practitioner-speciality{

  color:#624cff;

  font-weight:700;

  margin-bottom:18px;

  font-size:18px;
}

.practitioner-description{

  line-height:1.8;

  color:#344054;

  margin-bottom:28px;
}

.primary-btn{

  display:inline-flex;

  align-items:center;

  justify-content:center;

  padding:16px 28px;

  border-radius:20px;

  background:#081028;

  color:white;

  text-decoration:none;

  font-weight:700;

  transition:.3s;
}

.primary-btn:hover{

  transform:translateY(-2px);

  background:#624cff;
}
.praticien-contact{

  display:flex;

  flex-direction:column;

  gap:14px;

  margin-top:28px;

  margin-bottom:28px;
}

.contact-item{

  font-size:17px;

  color:#344054;
}

.contact-item a{

  color:#624cff;

  text-decoration:none;

  font-weight:600;
}

.disabled-btn{

  opacity:.7;

  cursor:not-allowed;
}
/* =========================
   PRACTITIONER PAGE
========================= */

.praticien-page{

  padding:80px 24px;

  background:#f7f5ff;

  min-height:100vh;
}

.praticien-card-page{

  max-width:1100px;

  margin:auto;

  background:white;

  border-radius:32px;

  padding:60px;

  box-shadow:
  0 10px 40px rgba(0,0,0,.06);
}

.praticien-badges{

  display:flex;

  gap:14px;

  margin-bottom:24px;

  flex-wrap:wrap;
}

.badge{

  padding:12px 18px;

  border-radius:999px;

  font-weight:700;

  font-size:15px;
}

.badge.verified{

  background:#dcfce7;

  color:#166534;
}

.badge.recommended{

  background:#ede9fe;

  color:#6d28d9;
}

.praticien-page-name{

  font-size:54px;

  line-height:1.1;

  margin-bottom:18px;

  color:#0f172a;
}

.praticien-page-speciality{

  font-size:24px;

  color:#624cff;

  font-weight:700;

  margin-bottom:14px;
}

.praticien-page-city{

  font-size:18px;

  color:#667085;

  margin-bottom:50px;
}

.praticien-contact-card,
.praticien-description-card,
.praticien-availability-card{

  background:#faf9ff;

  border:1px solid #ece8ff;

  border-radius:24px;

  padding:36px;

  margin-bottom:28px;
}

.praticien-contact-card h2,
.praticien-description-card h2,
.praticien-availability-card h2{

  font-size:28px;

  margin-bottom:24px;

  color:#0f172a;
}

.contact-line{

  font-size:18px;

  margin-bottom:16px;

  color:#344054;
}

.contact-line a{

  color:#624cff;

  text-decoration:none;

  font-weight:600;
}

.praticien-description-full{

  font-size:19px;

  line-height:1.9;

  color:#344054;
}

.availability-list{

  display:flex;

  flex-wrap:wrap;

  gap:14px;

  margin-bottom:24px;
}

.availability-day{

  background:white;

  border:1px solid #e9e5ff;

  border-radius:999px;

  padding:14px 18px;

  font-weight:600;

  color:#624cff;
}

.hours-info{

  font-size:18px;

  color:#475467;
}

.praticien-actions-page{

  display:flex;

  gap:18px;

  margin-top:40px;

  flex-wrap:wrap;
}

.primary-btn{

  background:
  linear-gradient(
    135deg,
    #624cff,
    #8b5cf6
  );

  color:white;

  padding:18px 34px;

  border-radius:18px;

  text-decoration:none;

  font-weight:700;

  font-size:17px;

  border:none;

  cursor:pointer;

  transition:.3s;
}

.primary-btn:hover{

  transform:translateY(-2px);

  box-shadow:
  0 10px 30px rgba(98,76,255,.25);
}

.secondary-btn{

  background:white;

  color:#0f172a;

  padding:18px 34px;

  border-radius:18px;

  text-decoration:none;

  font-weight:700;

  font-size:17px;

  border:1px solid #e5e7eb;

  transition:.3s;
}

.secondary-btn:hover{

  background:#f8fafc;
}

.disabled-btn{

  opacity:.6;

  cursor:not-allowed;
}

/* =========================
   MOBILE
========================= */

@media(max-width:768px){

  .praticien-page{

    padding:40px 16px;
  }

  .praticien-card-page{

    padding:28px;

    border-radius:24px;
  }

  .praticien-page-name{

    font-size:38px;
  }

  .praticien-page-speciality{

    font-size:20px;
  }

  .praticien-contact-card,
  .praticien-description-card,
  .praticien-availability-card{

    padding:24px;
  }

  .praticien-actions-page{

    flex-direction:column;
  }

  .primary-btn,
  .secondary-btn{

    width:100%;

    text-align:center;
  }
}
@media(max-width:768px){

  .menu-toggle{
    display:flex !important;
    align-items:center;
    justify-content:center;
  }

  .main-nav{
    display:none !important;
    width:100% !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:18px !important;
    padding-top:20px !important;
  }

  .main-nav.mobile-open{
    display:flex !important;
  }

  .header-container{
    flex-wrap:wrap !important;
  }
}
.mobile-menu-button{
  display:none;
  width:48px;
  height:48px;
  border:none;
  border-radius:14px;
  background:#6c47ff;
  color:white;
  font-size:28px;
  font-weight:800;
  cursor:pointer;
  align-items:center;
  justify-content:center;
}

.site-menu{
  display:flex;
  align-items:center;
  gap:28px;
}

.site-menu a{
  font-weight:700;
  color:#374151;
  text-decoration:none;
}

.site-menu a:hover{
  color:#6c47ff;
}

@media(max-width:768px){

  .header-container{
    flex-wrap:wrap !important;
  }

  .mobile-menu-button{
    display:flex !important;
  }

  .site-menu{
    display:none !important;
    width:100% !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:18px !important;
    padding:22px 0 8px !important;
  }

  .site-menu.is-open{
    display:flex !important;
  }

  .site-menu a{
    width:100%;
    padding:8px 0;
    font-size:18px;
  }
}



