/**
 * cuisinieres.css
 * Slider cuisinières, cards, tarifs, témoignages, page liste complète
 * Dépend de : variables.css, base.css
 */

  /* ===== CHEFS SLIDER ===== */
  .chefs-section { background: var(--cream); }
  .chefs-slider-wrap {
    position: relative;
    margin-top: 60px;
    overflow: hidden;
  }
  .chefs-grid {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 8px 4px 24px;
    cursor: grab;
  }
  .chefs-grid::-webkit-scrollbar { display: none; }
  .chefs-grid:active { cursor: grabbing; }

  .chef-card {
    flex: 0 0 300px;
    scroll-snap-align: start;
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    border: 1.5px solid var(--cream-dark);
  }
  .chef-card:hover { transform: translateY(-6px); box-shadow: 0 24px 56px rgba(61,35,20,0.12); border-color: rgba(196,98,45,0.2); }

  /* Dots indicator */
  .slider-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 4px;
  }
  .slider-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--sand);
    transition: all 0.3s;
    border: none;
    cursor: pointer;
    padding: 0;
  }
  .slider-dot.active { width: 24px; border-radius: 4px; background: var(--terracotta); }

  .chef-photo {
    height: 190px;
    position: relative;
    overflow: hidden;
  }
  .chef-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
  .chef-card:hover .chef-photo img { transform: scale(1.04); }

  /* Dégradé en bas de la photo */
  .chef-photo::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 60px;
    background: linear-gradient(to top, rgba(42,23,8,0.35), transparent);
    pointer-events: none;
  }

  .chef-verified-badge {
    position: absolute;
    top: 12px; right: 12px;
    background: rgba(46,125,82,0.92);
    backdrop-filter: blur(4px);
    color: #fff;
    padding: 4px 10px;
    border-radius: 50px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 4px;
  }

  /* Photo bottom info — département sur la photo */
  .chef-photo-info {
    position: absolute;
    bottom: 10px; left: 12px;
    color: rgba(255,255,255,0.92);
    font-size: 12px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 4px;
    z-index: 2;
  }

  /* SVG heart fav button */
  .fav-btn {
    position: absolute;
    top: 12px; left: 12px;
    width: 32px; height: 32px;
    background: rgba(255,255,255,0.9);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    box-shadow: 0 2px 8px rgba(42,23,8,0.12);
    z-index: 2;
    padding: 0;
  }
  .fav-btn:hover { background: #fff0f0; }
  .fav-btn svg { width: 15px; height: 15px; }
  .fav-btn .heart-fill { transition: fill 0.2s, stroke 0.2s; }
  .fav-btn.active { background: #fff0f0; }
  .fav-btn.active .heart-fill { fill: #e05555; stroke: #e05555; }
  .fav-btn.pop { animation: heartPop 0.4s ease; }

  .chef-body { padding: 18px 20px 20px; }
  .chef-region {
    font-size: 12px;
    color: var(--text-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .chef-specialties { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 14px; min-height: 52px; }
  .chef-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 14px;
    border-top: 1px solid var(--cream-dark);
    margin-top: 4px;
  }
  .chef-price { font-size: 13px; color: var(--text-light); }
  .chef-price strong { color: var(--terracotta); font-size: 15px; font-weight: 700; }

  /* ===== PRICING ===== */
  .pricing-section { background: var(--cream-dark); }
  .pricing-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 60px; max-width: 1200px; margin-left: auto; margin-right: auto; }

  .pricing-card {
    background: var(--white);
    border-radius: 24px;
    padding: 40px 32px;
    text-align: center;
    position: relative;
    transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.3s ease;
    cursor: default;
    will-change: transform;
  }
  .pricing-card:hover,
  .pricing-card:active,
  .pricing-card.touched {
    box-shadow: 0 24px 56px rgba(196,98,45,0.18);
    z-index: 2;
  }
  .pricing-card.featured {
    background: linear-gradient(160deg, #C4622D 0%, #D4782A 50%, #C9963C 100%);
    color: var(--white);
    transform: scale(1.03);
  }
  .pricing-card.featured:hover,
  .pricing-card.featured:active,
  .pricing-card.featured.touched {
    box-shadow: 0 28px 64px rgba(196,98,45,0.35);
  }

  .pricing-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(105deg, #8B6914 0%, #C9963C 25%, #F0D060 45%, #FFE97A 50%, #F0D060 55%, #C9963C 75%, #8B6914 100%);
    background-size: 200% auto;
    animation: goldShimmer 2.5s linear infinite, badgeGlow 2s ease-in-out infinite;
    color: #3D2314;
    padding: 5px 18px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 5px;
  }
  .badge-star { display: inline-block; animation: starPulse 1.8s ease-in-out infinite; }

  .pricing-plan { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 16px; color: var(--text-light); }
  .pricing-card.featured .pricing-plan { color: rgba(255,255,255,0.8); }

  .pricing-price { font-family: 'Playfair Display', Georgia, serif; font-size: 56px; font-weight: 600; color: var(--text-dark); line-height: 1; margin-bottom: 4px; }
  .pricing-card.featured .pricing-price { color: var(--white); }

  .pricing-period { font-size: 13px; color: var(--text-light); margin-bottom: 28px; }
  .pricing-card.featured .pricing-period { color: rgba(255,255,255,0.75); }

  .pricing-features { list-style: none; text-align: left; margin-bottom: 32px; display: flex; flex-direction: column; gap: 12px; }
  .pricing-features li { font-size: 14px; color: var(--text-mid); display: flex; align-items: flex-start; gap: 10px; }
  .pricing-card.featured .pricing-features li { color: rgba(255,255,255,0.9); }
  .pricing-features li::before { content: '✓'; color: var(--terracotta); font-weight: 700; flex-shrink: 0; margin-top: 1px; }
  .pricing-card.featured .pricing-features li::before { color: rgba(255,255,255,0.95); }

  /* ===== TESTIMONIALS ===== */
  .testimonials-section { background: var(--cream); }
  .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 60px; }

  .testimonial-card {
    border-radius: 20px;
    padding: 28px;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
    min-width: 280px;
    max-width: 360px;
    width: 320px;
    flex-shrink: 0;
    box-sizing: border-box;
  }
  .testimonial-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(61,35,20,0.12); }
  .testimonial-card:nth-child(1) { background: linear-gradient(145deg, #FFF5EF, #FFE8DC); border: 1.5px solid rgba(196,98,45,0.15); }
  .testimonial-card:nth-child(2) { background: linear-gradient(145deg, #FDF6E8, #FFF0CC); border: 1.5px solid rgba(201,150,60,0.2); }
  .testimonial-card:nth-child(3) { background: linear-gradient(145deg, #F0EBE3, #E8DDD0); border: 1.5px solid rgba(61,35,20,0.1); }

  /* Guillemet décoratif */
  .testimonial-card::before {
    content: '"';
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 100px;
    line-height: 1;
    position: absolute;
    top: 8px; right: 16px;
    opacity: 0.08;
    color: var(--terracotta);
  }

  /* Étoiles */
  .testimonial-stars {
    display: flex;
    gap: 3px;
    margin-bottom: 14px;
  }
  .star {
    width: 16px; height: 16px;
    animation: starPop 0.4s ease both;
  }
  .star:nth-child(1) { animation-delay: 0s; }
  .star:nth-child(2) { animation-delay: 0.08s; }
  .star:nth-child(3) { animation-delay: 0.16s; }
  .star:nth-child(4) { animation-delay: 0.24s; }
  .star:nth-child(5) { animation-delay: 0.32s; }
  @keyframes starPop {
    0% { transform: scale(0) rotate(-20deg); opacity: 0; }
    70% { transform: scale(1.3) rotate(5deg); }
    100% { transform: scale(1) rotate(0deg); opacity: 1; }
  }

  .testimonial-text { font-size: 14px; line-height: 1.75; color: var(--text-mid); margin-bottom: 20px; font-style: italic; position: relative; z-index: 1; white-space: normal; word-wrap: break-word; overflow-wrap: break-word; }

  .testimonial-author { display: flex; align-items: center; gap: 12px; }
  .author-avatar {
    width: 44px; height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
  }
  .avatar-1 { background: linear-gradient(135deg, var(--terracotta), var(--gold)); }
  .avatar-2 { background: linear-gradient(135deg, var(--brown-mid), var(--terracotta)); }
  .avatar-3 { background: linear-gradient(135deg, var(--gold), var(--terracotta-light)); }
  .author-info .author-name { font-weight: 700; font-size: 14px; color: var(--text-dark); }
  .author-info .author-role { font-size: 12px; color: var(--text-light); margin-top: 1px; }

  /* Bouton avis */
  .reviews-cta {
    text-align: center;
    margin-top: 48px;
  }

  /* ===== SPA PAGES ===== */
  .spa-page { display: none; min-height: 100vh; background: var(--cream); padding-top: 72px; }
  .spa-page.active { display: block; animation: fadeInUp 0.3s ease; }

  .chefs-page-header { background: var(--brown); padding: 48px 60px 40px; position: relative; overflow: hidden; }
  .chefs-page-header::before { content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='30' cy='30' r='1' fill='rgba(201,150,60,0.08)'/%3E%3C/svg%3E"); }
  .chefs-page-header h1 { font-family:'Playfair Display',serif;font-size:36px;font-weight:500;color:var(--cream);position:relative;z-index:1;margin-bottom:6px; }
  .chefs-page-header p { font-size:14px;color:rgba(250,246,240,0.6);position:relative;z-index:1; }

  .chefs-filters { background:white;border-bottom:1px solid var(--cream-dark);padding:14px 60px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;position:sticky;top:72px;z-index:50; }
  .filter-chip { background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:50px;padding:7px 16px;font-size:13px;font-weight:500;color:var(--text-mid);cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:6px;font-family:'DM Sans',sans-serif; }
  .filter-chip:hover,.filter-chip.active { background:var(--terracotta);border-color:var(--terracotta);color:white; }
  .filter-select { background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:50px;padding:7px 16px;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--text-mid);outline:none;cursor:pointer; }

  .chefs-page-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:36px 60px; }
  @media (max-width:900px) { .chefs-page-grid { grid-template-columns:repeat(2,1fr);padding:20px; } .chefs-filters { padding:12px 20px; } .chefs-page-header { padding:32px 20px; } }
  @media (max-width:600px) { .chefs-page-grid { grid-template-columns:1fr; } }

  .chef-card-full { background:white;border-radius:20px;overflow:hidden;border:1.5px solid var(--cream-dark);transition:transform 0.3s,box-shadow 0.3s;cursor:pointer; }
  .chef-card-full:hover { transform:translateY(-5px);box-shadow:0 20px 48px rgba(61,35,20,0.1);border-color:rgba(196,98,45,0.2); }
  .chef-card-full-photo { height:180px;position:relative;overflow:hidden;background:var(--cream-dark); }
  .chef-card-full-photo img { width:100%;height:100%;object-fit:cover;transition:transform 0.4s;display:block; }
  .chef-card-full-photo::after { content:'';position:absolute;bottom:0;left:0;right:0;height:50px;background:linear-gradient(to top,rgba(42,23,8,0.4),transparent);pointer-events:none; }
  .chef-card-full:hover .chef-card-full-photo img { transform:scale(1.04); }
  .chef-card-full-body { padding:16px 18px;background:white; }
  .chef-card-full-tags { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;min-height:auto; }
  .chef-card-full-tags .tag { background:var(--cream-dark);color:var(--text-mid);padding:4px 12px;border-radius:50px;font-size:12px;font-weight:500;display:inline-block; }
  .chef-card-full-footer { display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--cream-dark); }

  /* Profile pleine page */
  .chef-profile-cover { height:200px;background:linear-gradient(135deg,#C4622D,#C9963C);position:relative; }
  .chef-profile-cover img { width:100%;height:100%;object-fit:cover; }
  .chef-profile-avatar { width:80px;height:80px;border-radius:50%;border:4px solid white;background:linear-gradient(135deg,#C4622D,#C9963C);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:28px;position:absolute;bottom:-40px;left:28px; }
  .chef-profile-info { padding:52px 28px 24px; }
  .chef-profile-stats { display:flex;gap:0;border:1.5px solid var(--cream-dark);border-radius:14px;overflow:hidden;margin:16px 0; }
  .chef-profile-stat { flex:1;text-align:center;padding:12px 8px;border-right:1px solid var(--cream-dark); }
  .chef-profile-stat:last-child { border-right:none; }
  .chef-profile-stat .num { font-family:'Playfair Display',serif;font-size:20px;font-weight:600;color:var(--terracotta); }
  .chef-profile-stat .lbl { font-size:11px;color:var(--text-light);margin-top:2px; }

  /* Stories */
  .stories-row { display:flex;gap:14px;padding:12px 28px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--cream-dark); }
  .stories-row::-webkit-scrollbar { display:none; }
  .story-bubble { display:flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0;cursor:pointer; }
  .story-ring { width:62px;height:62px;border-radius:50%;padding:3px;background:linear-gradient(45deg,#C4622D,#C9963C,#E0B84A); }
  .story-ring.seen { background:var(--cream-dark); }
  .story-ring.locked { background:#ccc;position:relative; }
  .story-ring-inner { width:100%;height:100%;border-radius:50%;border:3px solid white;background:var(--cream-dark);display:flex;align-items:center;justify-content:center;overflow:hidden; }
  .story-ring-inner img { width:100%;height:100%;object-fit:cover; }
  .story-label { font-size:11px;color:var(--text-mid);font-weight:500;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center; }

  /* Actualités */
  .actu-item { background:white;border-radius:14px;padding:14px 18px;margin:0 28px 10px;border-left:4px solid var(--terracotta);display:flex;align-items:flex-start;gap:12px; }
  .actu-icon { width:34px;height:34px;background:rgba(196,98,45,0.1);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
  .actu-title { font-size:14px;font-weight:700;color:var(--text-dark);margin-bottom:3px; }
  .actu-text { font-size:13px;color:var(--text-mid);line-height:1.5; }
  .actu-date { font-size:11px;color:var(--text-light);margin-top:3px; }

  /* Sub badge */
  .sub-badge { display:inline-flex;align-items:center;gap:5px;background:rgba(196,98,45,0.08);border:1.5px solid rgba(196,98,45,0.2);border-radius:50px;padding:6px 16px;font-size:13px;font-weight:600;color:var(--terracotta);cursor:pointer;transition:all 0.2s;font-family:'DM Sans',sans-serif; }
  .sub-badge:hover { background:var(--terracotta);color:white; }
  .sub-badge.subscribed { background:var(--terracotta);color:white; }

  /* Story viewer */
  .story-viewer { position:fixed;inset:0;background:black;z-index:9999;display:none;align-items:center;justify-content:center;flex-direction:column; }
