/*
Theme Name: Emilie Quinson
Theme URI: https://emilie-quinson.com
Description: Theme custom pour Emilie Quinson
Version: 1.2
Author: Custom Dev
Text Domain: emilie-quinson
*/

/* Reset & Base */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Lato', sans-serif; color: #56585e; line-height: 1.6; background: #fff; }
h1, h2, h3, h4 { font-family: 'Roboto', sans-serif; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 5%; }

/* HEADER */
.site-header { position: sticky; top: 0; z-index: 1000; background: #fff; border-bottom: 1px solid #f0f0f0; }
.header-inner { max-width: 1400px; margin: 0 auto; padding: 12px 5%; display: flex; align-items: center; justify-content: space-between; }
.header-left { display: flex; align-items: center; gap: 30px; }
.site-logo img, .custom-logo { max-height: 66px !important; width: auto !important; }
.custom-logo-link { display: flex; align-items: center; }
.main-nav ul { list-style: none; display: flex; align-items: center; gap: 25px; }
.main-nav a { font-size: 15px; color: #56585e; transition: color 0.3s; }
.main-nav a:hover { color: #d87093; }
.main-nav .me-soutenir-btn { display: none; }
.header-right { display: flex; align-items: center; gap: 20px; }
.social-icons { display: flex; align-items: center; gap: 12px; }
.social-icons a { color: #2d2d2d; transition: color 0.3s; display: flex; }
.social-icons a:hover { color: #d87093; }
.btn-soutenir { padding: 14px 36px; background: #f2ceca; color: #56585e; border-radius: 7px; font-size: 16px; font-weight: 600; transition: background 0.3s; }
.btn-soutenir:hover { background: #e8b8b4; }

/* HERO */
.hero-section { display: flex; align-items: center; padding: 60px 5%; gap: 40px; max-width: 1200px; margin: 0 auto; }
.hero-text { flex: 1; padding-top: 40px; }
.hero-text h1 { font-size: 52px; font-weight: 700; margin-bottom: 20px; color: #56585e; }
.hero-text p { font-size: 20px; margin-bottom: 40px; color: #56585e; }
.hero-image { flex: 1; }
.hero-image img { width: 100%; max-height: 550px; object-fit: cover; border-radius: 20px; }
.btn-primary { display: inline-block; background: #f2ceca; color: #fff; padding: 15px 30px; border-radius: 30px; font-size: 16px; font-weight: 500; transition: background 0.3s; }
.btn-primary:hover { background: #edd5c3; color: #56585e; }

/* SECTIONS */
.section { padding: 60px 5%; }
.section-pink { background-color: #f2ceca; }
.section-testimonials { background-color: #b8c0cc; padding: 60px 20px; position: relative; }
.section-testimonials::before { content: ""; position: absolute; top: 0; bottom: 0; left: -9999px; right: -9999px; background-color: #b8c0cc; z-index: -1; }
.section h2 { font-size: 36px; font-weight: 700; text-align: center; margin-bottom: 40px; color: #56585e; }
.section p, .section li { color: #56585e; }
.section ul { padding-left: 20px; margin-bottom: 20px; }
.section li { margin-bottom: 8px; }
.two-cols { display: flex; gap: 40px; align-items: flex-start; max-width: 1200px; margin: 0 auto; }
.two-cols .col-img { flex: 0 0 40%; }
.two-cols .col-img img { width: 100%; border-radius: 20px; }
.two-cols .col-text { flex: 1; }
/* WP BLOCKS */
.wp-block-group.alignfull { margin-left: 0; margin-right: 0; width: 100%; max-width: 100%; }
.wp-block-group.has-background { padding: 60px 5%; }
.page-content { width: 100%; }
.page-content .wp-block-group { max-width: 100%; }
.wp-block-columns { gap: 40px; }
.wp-block-heading { color: #56585e; font-family: 'Roboto', sans-serif; }
.wp-block-list { padding-left: 20px; }
.wp-block-list li { margin-bottom: 8px; color: #56585e; }
.entry-content p, .page-content p { color: #56585e; margin-bottom: 15px; }
.wp-block-button__link { transition: background 0.3s; }

/* TESTIMONIALS */
.testimonial-wrapper { position: relative; width: 100%; max-width: 600px; margin: 0 auto; overflow: visible; }
.scroll-container { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0; padding: 20px 0; scrollbar-width: none; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; }
.scroll-container::-webkit-scrollbar { display: none; }
.testimonial-card { flex: 0 0 100%; width: 100%; background: #fff; padding: 30px; border-radius: 15px; border: 1px solid #f0f0f0; box-shadow: 0 4px 15px rgba(0,0,0,0.05); scroll-snap-align: center; white-space: pre-line; }
.stars { color: #000; font-size: 16px; margin-bottom: 15px; text-align: center; }
.testimonial-card .text { color: #333; line-height: 1.6; font-size: 16px; text-align: center; word-break: break-word; }
.testimonial-card .author { font-weight: 700; color: #D87093; margin-top: 25px; font-size: 20px; text-align: center; }
.nav-btn { position: absolute; top: 50%; transform: translateY(-50%); background: #f0f0f0; color: #888; border: none; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; z-index: 10; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.nav-btn.prev { left: -20px; }
.nav-btn.next { right: -20px; }

/* COLLAPSIBLE */
.collapsible-wrapper { width: 100%; margin: 15px 0; }
.collapsible-trigger { width: 100%; background: #fff; color: #333; cursor: pointer; padding: 20px; border: 1px solid #f0f0f0; border-radius: 12px; text-align: left; font-size: 16px; font-weight: 700; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.chevron-icon { font-size: 20px; transition: transform 0.3s ease; color: #D87093; }
.collapsible-content { max-height: 0; overflow: hidden; transition: max-height 0.4s ease-in-out; background: #fff; border-radius: 0 0 12px 12px; }
.inner-padding { padding: 20px 25px; border: 1px solid #f0f0f0; border-top: none; border-radius: 0 0 12px 12px; }
.active .chevron-icon { transform: rotate(90deg); }
.points-list { margin: 0 0 20px 0; padding-left: 20px; list-style-type: disc; color: #444; }
.points-list li { margin-bottom: 8px; line-height: 1.5; font-size: 14px; }

/* FOOTER */
.site-footer { background-color: #f2ceca; padding: 60px 5% 40px; width: 100%; }
.footer-inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; color: #fff; }
.footer-title { color: #d4a0a0; font-size: 24px; font-style: italic; margin-bottom: 15px; }
.footer-subtitle { color: #fff; font-size: 20px; margin-bottom: 15px; }
.site-footer p { color: #fff; margin-bottom: 10px; }
.copyright { color: rgba(255,255,255,0.7) !important; font-size: 14px; margin-top: 20px; }
.footer-social { display: flex; gap: 15px; margin-bottom: 20px; margin-top: 15px; }
.footer-social a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: rgba(255,255,255,0.2); border-radius: 50%; transition: background 0.3s; }
.footer-social a:hover { background: rgba(255,255,255,0.4); }
.btn-rdv { display: inline-block; background: #b8c0cc; color: #fff; padding: 15px 30px; border-radius: 30px; font-weight: 600; font-size: 18px; margin-top: 15px; transition: background 0.3s; }
.btn-rdv:hover { background: #a0a8b4; color: #fff; }
.newsletter-form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 15px; }
.newsletter-form input { flex: 1; padding: 12px 15px; border: 1px solid rgba(255,255,255,0.5); border-radius: 8px; font-size: 14px; min-width: 180px; background: rgba(255,255,255,0.9); font-family: 'Lato', sans-serif; }
.newsletter-form button { padding: 12px 25px; background: #b8c0cc; color: #fff; border: none; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; font-family: 'Lato', sans-serif; transition: background 0.3s; }
.newsletter-form button:hover { background: #a0a8b4; }

/* RESPONSIVE */

/* === Hamburger Menu Button (hidden on desktop) === */
.hamburger { display: none; background: none; border: none; cursor: pointer; padding: 8px; z-index: 1002; }
.hamburger span { display: block; width: 24px; height: 2px; background: #56585e; margin: 5px 0; transition: all 0.3s ease; border-radius: 2px; }
body.mobile-menu-open .hamburger span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
body.mobile-menu-open .hamburger span:nth-child(2) { opacity: 0; }
body.mobile-menu-open .hamburger span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* === Mobile Menu Overlay (hidden by default) === */
.mobile-menu-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 999; }
body.mobile-menu-open .mobile-menu-overlay { display: block; }
.mobile-nav { position: fixed; top: 0; right: 0; width: 280px; height: 100%; background: #fff; padding: 80px 30px 40px; display: flex; flex-direction: column; gap: 0; z-index: 1001; box-shadow: -4px 0 20px rgba(0,0,0,0.15); }
.mobile-nav a { display: block; padding: 16px 0; font-size: 17px; color: #56585e; border-bottom: 1px solid #f0f0f0; font-family: 'Lato', sans-serif; text-decoration: none; }
.mobile-nav a:hover { color: #d87093; }
.mobile-nav .mobile-soutenir { margin-top: 20px; background: #f2ceca; color: #56585e; text-align: center; padding: 14px 20px; border-radius: 7px; border-bottom: none; font-weight: 600; }

/* === Contact page hero fixes === */
.contact-hero.reveal, .contact-hero .reveal, .contact-hero { opacity: 1 !important; transform: none !important; }
.soutenir-hero.reveal, .soutenir-hero .reveal, .soutenir-hero { opacity: 1 !important; transform: none !important; }
.contact-hero h1 { font-size: 52px !important; text-shadow: 0 2px 16px rgba(0,0,0,0.35); font-family: 'Roboto', sans-serif !important; font-weight: 700 !important; }
.contact-hero p { font-size: 18px !important; }
.contact-hero label { font-size: 16px !important; }
.contact-hero input, .contact-hero textarea { font-size: 16px !important; padding: 16px 18px !important; }
.contact-hero button[type="submit"] { font-size: 17px !important; padding: 16px 45px !important; }
.contact-hero form input:focus, .contact-hero form textarea:focus { border-color: #f2ceca !important; outline: none; }
.contact-hero form button:hover { background: #6b7d60 !important; }


/* === Spacing cleanup === */
.wp-block-group { margin-top: 0; margin-bottom: 0; }
.entry-content > *, .page-content > * { margin-top: 0; margin-bottom: 0; }
.entry-content > .wp-block-html + .wp-block-html { margin-top: 0; }
.wp-block-spacer { display: none; }
p:empty { display: none; margin: 0; padding: 0; }

/* === RESPONSIVE - Mobile (max 768px) === */
@media (max-width: 768px) {
  /* Header mobile */
  .hamburger { display: flex; flex-direction: column; justify-content: center; }
  .header-inner { padding: 10px 4%; }
  .header-left { gap: 10px; flex: 1; }
  .main-nav { display: none !important; }
  .header-right .social-icons { display: none; }
  .header-right .btn-soutenir { display: none; }
  .site-logo img, .custom-logo { max-height: 50px !important; }

  /* Hero section */
  .hero-section { flex-direction: column !important; padding: 30px 5% !important; gap: 20px; }
  .hero-text { padding-top: 10px; }
  .hero-text h1 { font-size: 32px !important; }
  .hero-text p { font-size: 16px !important; }
  .hero-image img { max-height: 300px !important; }

  /* Sections */
  .section { padding: 25px 5%; }
  h1 { font-size: 30px !important; }
  h2 { font-size: 26px !important; }
  h3 { font-size: 20px !important; }

  /* Two columns layout */
  .two-cols { flex-direction: column !important; }
  .two-cols .col-img { flex: none !important; width: 100% !important; }
  .two-cols .col-text { flex: 1 !important; }

  /* Flex layouts in page content */
  div[style*="display:flex"], div[style*="display: flex"] { flex-direction: column !important; }
  div[style*="flex:1"], div[style*="flex: 1"] { min-width: 100% !important; }
  div[style*="flex:0 0 4"], div[style*="flex: 0 0 4"] { flex: 1 1 100% !important; min-width: 100% !important; }

  /* Contact page */
  .contact-hero { min-height: 70vh !important; }
  .contact-hero h1 { font-size: 32px !important; }
  .contact-hero p { font-size: 15px !important; }
  .contact-hero > div > div { max-width: 95% !important; padding: 15px !important; }
  .contact-hero form > div > div { padding: 25px 20px !important; }

  /* Soutenir page */
  .soutenir-hero { min-height: 60vh !important; }
  .soutenir-hero h1 { font-size: 30px !important; }
  .soutenir-hero p { font-size: 15px !important; }

  /* About page - pink banner */
  div[style*="background:#f8ece9"] > div { flex-direction: column !important; text-align: center; }
  div[style*="background:#f8ece9"] h1 { font-size: 32px !important; }
  div[style*="background:#f8ece9"] img { width: 60% !important; height: auto !important; }

  /* Iframes */
  iframe { height: 250px !important; width: 100% !important; }

  /* Footer */
  .footer-inner { grid-template-columns: 1fr !important; gap: 30px; }
  .footer-social { justify-content: center; }
  .btn-rdv { display: block; text-align: center; }

  /* Carousel / Testimonials */
  .testimonial-wrapper { padding: 0 10px !important; }
  .testimonial-card { padding: 30px 20px !important; }
  .nav-btn.prev { left: 5px; }
  .nav-btn.next { right: 5px; }

  /* Service cards */
  .service-card, div[style*="border-radius"][style*="padding:30px"] { min-width: 100% !important; }

  /* Collapsible sections */
  .collapsible-trigger { padding: 15px !important; font-size: 15px !important; }
}

/* === RESPONSIVE - Tablet (max 1024px) === */
@media (max-width: 1024px) and (min-width: 769px) {
  .contact-hero h1 { font-size: 40px !important; }
  .contact-hero > div > div { max-width: 550px !important; }
  div[style*="background:#f8ece9"] img { height: 300px !important; }
  .hero-text h1 { font-size: 42px !important; }
}

/* Admin bar offset */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}


/* Fix wpautop artifacts - hide br and empty p inside forms and between sections */
.contact-hero form > br,
.contact-hero form > p:empty,
.page-content > p:empty,
.page-content > br,
.section > br,
article > p:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

/* Hide wpautop BR between labels and inputs in contact form */
.contact-hero form > div > br {
  display: none !important;
}

/* Tighter label-to-input spacing */
.contact-hero form label {
  display: block;
  margin-bottom: 8px;
}

/* Reduce excessive spacing on Accompagnements and all pages */
.section-testimonials {
  padding: 35px 20px 40px !important;
}
.section-testimonials h2 {
  margin-bottom: 20px !important;
}

/* Reduce padding around "Prendre rendez-vous" area */
.btn-rdv-section,
article.page-content > div > .btn-primary,
article.page-content > div[style*="text-align: center"] {
  margin-top: 15px !important;
  margin-bottom: 15px !important;
}

/* Tighter section spacing globally */
.section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}
