@import url('https://fonts.googleapis.com/css2?family=Parisienne&display=swap');

:root{
  --beige:#F5EDE3;
  --beige-200:#EFE6DA;
  --orange:#fc6e51;
  --orange-600:#e55a3a;
  --black:#111111;
  --white:#FFFFFF;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans','Apple Color Emoji','Segoe UI Emoji',sans-serif;
  color:var(--black);
  background:var(--beige);
  line-height:1.6;
  display:flex;
  flex-direction:column;
  min-height:100vh;
}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 20px}
.container.wide{max-width:1280px}

/* Base typography */
h1{font-family:'Parisienne', cursive;font-size:3rem;line-height:1.1;margin:0.5rem 0 1rem 0}
h1.section-title{font-family:'Parisienne', cursive;font-size:3rem;margin:0.5rem 0 1rem 0}

/* Main content */
main{flex:1}

/* Header */
.site-header{position:sticky;top:0;background:var(--white);box-shadow:0 2px 10px rgba(0,0,0,.05);z-index:20;border-bottom-left-radius: 34px;border-bottom-right-radius: 34px;}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:100px}
.brand{display:flex;flex-direction:column;align-items:flex-start}
.logo{font-family:'Parisienne','Architects Daughter', 'Brush Script MT', 'Lucida Handwriting', cursive;font-weight:400;font-size:3.5rem;color:var(--black);text-decoration:none;font-display:swap;white-space:nowrap;display:inline-block;line-height:1}
.logo span{color:var(--orange-600)}
.tagline{font-size:0.85rem;color:#666;font-style:italic;margin-top:0;letter-spacing:0.5px}
.nav-desktop ul{list-style:none;margin:0;padding:0;display:flex;gap:18px}
.nav-desktop a{color:var(--black);text-decoration:none;padding:8px 10px;border-radius:8px}
.nav-desktop a.active,.nav-desktop a:hover{background:var(--orange)}

/* Dropdown menu */
.dropdown{position:relative}
.dropdown-menu{
  position:absolute;
  top:100%;
  left:50%; /* Centre le menu déroulant sous le parent */
  transform: translateX(-50%) translateY(-8px); /* Ajuste le positionnement et l'animation */
  background:var(--white);
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  border-radius:12px; /* Plus arrondi */
  padding:8px 0;
  min-width:200px;
  opacity:0;
  visibility:hidden;
  transition:all .3s ease; /* Transition plus douce */
  z-index:30;
  display: flex; /* Active Flexbox */
  flex-direction: column; /* Organise les éléments en colonne */
}
.dropdown:hover .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform: translateX(-50%) translateY(0);
}
.dropdown-menu li{margin:0}
.dropdown-menu a{
  display:block;
  padding:6px 16px; /* Réduit encore le padding vertical */
  border-radius:8px; /* Applique un rayon aux coins des éléments */
  white-space:nowrap;
  color:var(--black); /* Couleur de texte par défaut */
}
.dropdown-menu a:hover{
  background:var(--orange); /* Couleur de survol orange */
  color:var(--white); /* Conserve la couleur de texte pour un look plus raffiné */
}
.nav-toggle{display:none;border:none;background:transparent;font-size:26px;cursor:pointer}

/* Navigation Desktop/Mobile */
.nav-desktop{display:flex}
.nav-mobile{display:none}

@media (max-width: 800px){
  .nav-toggle{display:block}
  .nav-desktop{display:none}
  .nav-mobile{display:block;position:absolute;right:0;top:100px;background:var(--white);width:100%;box-shadow:0 12px 24px rgba(0,0,0,.08);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.2s}
  .nav-mobile.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-mobile ul{flex-direction:column;padding:12px 16px;gap:0;list-style:none}
  .nav-mobile li{margin:0;list-style:none}
  .nav-mobile a{padding:12px 16px;color:var(--black);text-decoration:none;border-radius:8px;display:block;font-weight:500}
  .nav-mobile a:hover,.nav-mobile a.active{background:var(--orange);color:var(--white)}
  .logo{font-size:3rem;white-space:nowrap}
  .tagline{font-size:0.8rem;margin-top:0}
}

@media (max-width: 480px){
  .logo{font-size:2.5rem;white-space:nowrap}
  .header-inner{height:86px}
  .nav-mobile{top:86px}
  .tagline{font-size:0.75rem;margin-top:0}
}

/* Hero */
.hero{background:linear-gradient(180deg, var(--white), var(--beige));padding:56px 0}
.hero h1{font-family:'Parisienne', cursive;font-size:3.2rem;line-height:1.1;margin:0.5rem 0 0.3rem 0}
.hero p{max-width:720px;margin:0 0 24px;color:#333}
.cta-group{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 18px;border-radius:10px;text-decoration:none;font-weight:600}
.btn.primary{background:var(--orange);color:var(--black)}
.btn.primary:hover{background:var(--orange-600);color:var(--white)}
.btn.ghost{border:1px solid var(--black);color:var(--black);background:transparent}
.btn.ghost:hover{background:var(--black);color:var(--white)}

/* Sections */
section{padding:16px 0}
.anchor-target{scroll-margin-top:110px}
.section-title{font-size:1.6rem;margin:0 0 20px}
.grid{display:grid;gap:20px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media (max-width: 900px){
  .grid.cols-3{grid-template-columns:1fr 1fr}
}
@media (max-width: 640px){
  .grid.cols-3,.grid.cols-2{grid-template-columns:1fr}
}

/* Typo adjustments on smaller screens */
@media (max-width: 800px){
  h1{font-family:'Parisienne', cursive;font-size:2.4rem;margin:0.4rem 0 1rem 0}
  h1.section-title{font-family:'Parisienne', cursive;font-size:2.4rem;margin:0.4rem 0 1rem 0}
  .hero h1{font-family:'Parisienne', cursive;font-size:2.6rem;margin:0.4rem 0 1rem 0}
  .section-title{font-size:1.4rem}
}
@media (max-width: 480px){
  h1{font-family:'Parisienne', cursive;font-size:2rem;margin:0.3rem 0 1rem 0}
  h1.section-title{font-family:'Parisienne', cursive;font-size:2rem;margin:0.3rem 0 1rem 0}
  .hero h1{font-family:'Parisienne', cursive;font-size:2.2rem;margin:0.3rem 0 1rem 0}
  .section-title{font-size:1.3rem}
  .card h3{font-size:1.05rem}
}

.card{background:var(--white);border:2px solid #eee;border-radius:14px;padding:0;box-shadow:0 4px 18px rgba(0,0,0,.06);overflow:hidden}
.card-image{width:100%;height:200px;overflow:hidden}
.card-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}
.card-image:hover img{transform:scale(1.05)}
.card h3{margin:18px 18px 8px;font-size:1.1rem}
.card p{margin:0 18px 18px}
.muted{color:#444}

/* Service cards clickable */
.service-card-clickable{transition:all 0.3s ease;cursor:pointer}
.service-card-clickable:hover{border-color:var(--orange);transform:translateY(-5px);box-shadow:0 8px 25px rgba(0,0,0,0.1)}
.card-link{text-decoration:none;color:inherit;display:block}
.card-link:hover{text-decoration:none;color:inherit}

/* Services compact cards */
.services-grid{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}
.service-card{position:relative;border-radius:16px;overflow:hidden;border:1px solid #eee;background:
  radial-gradient(120px 60px at 10% 10%, rgba(252,110,81,.15), transparent 60%),
  radial-gradient(160px 80px at 90% 0%, rgba(229,90,58,.15), transparent 60%),
  linear-gradient(180deg, #fff, #fff)}
.service-card .content{padding:16px}
.service-card h3{margin:0 0 6px;font-size:1.08rem}
.service-card p{margin:0 0 12px;color:#333;font-size:.95rem}
.service-card .meta{display:flex;gap:10px;color:#555;font-size:.9rem}
.service-card .actions{display:flex;gap:10px;align-items:center}
.service-card .btn{padding:9px 12px;border-radius:10px}
.service-emoji{font-size:22px;margin-right:6px}
.service-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #eee;border-radius:999px;padding:4px 10px}
.service-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08)}
.service-card:after{content:"";position:absolute;inset:0;background:radial-gradient(400px 120px at var(--mx,70%) var(--my,0%), rgba(252,110,81,.12), transparent 60%);pointer-events:none;transition:opacity .2s ease}
@media (max-width: 900px){.services-grid{grid-template-columns:1fr 1fr}}
@media (max-width: 640px){.services-grid{grid-template-columns:1fr}}

/* Desktop one-line compact layout for service cards */
.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width: 901px){
  .service-card .content{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px}
  .service-card h3{margin:0;font-size:1rem;white-space:normal}
  .service-card p{margin:0}
  .service-card .meta{gap:8px}
  .service-card .actions .btn{padding:6px 10px}
}

/* Text link style for "En savoir plus" */
.link-more{color:var(--black);text-decoration:underline;text-underline-offset:2px}
.link-more:hover{color:var(--orange-600)}

/* Section block styling with emojis */
.section-block h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:1.1rem}
.section-block.contraindications{background:linear-gradient(135deg, #fff5f5, #fff);border-left:4px solid #e53e3e;padding:20px;border-radius:12px}
.section-block.contraindications h3{color:#c53030}

/* Forms */
form{display:grid;gap:14px}
label{font-weight:600}
input,select,textarea{width:100%;padding:12px 12px;border-radius:10px;border:1px solid #ddd;background:var(--white);font:inherit}
textarea{min-height:120px}
.form-row{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media (max-width: 700px){.form-row{grid-template-columns:1fr}}
.error{color:#b00020;font-weight:600}
.success{color:#0a7f3f;font-weight:600}

/* Footer */
.site-footer{background:#2c2c2c;color:var(--white);padding:30px 0;margin-top:0}
.footer-inner{display:grid;gap:12px;align-items:center;grid-template-columns:1fr auto 1fr}
.footer-links{display:flex;gap:16px}
.site-footer a{color:var(--white)}
@media (max-width: 800px){
  .footer-inner{grid-template-columns:1fr}
  .footer-links{flex-wrap:wrap}
}


/* Intro feature section */
.intro-feature{padding:16px 0 46px 0;background:linear-gradient(180deg, var(--beige), var(--white));}
.feature-grid{display:grid;gap:20px;grid-template-columns:1fr 1fr}
.feature-card{background:var(--white);border:1px solid #eee;border-radius:14px;padding:26px 26px 28px;position:relative;box-shadow:0 8px 28px rgba(0,0,0,.06)}
.feature-card:before{content:"";position:absolute;inset:0;border-radius:14px;padding:1px;background:linear-gradient(135deg, var(--orange), #ffd2c7);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;}
.feature-card .lead{font-size:1.05rem;color:#333;margin-top:6px}
.feature-card p{margin:10px 0;color:#333}
.feature-card .section-title{margin-top:0}
@media (max-width: 900px){
  .feature-grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .feature-card{padding:22px}
  .feature-card .lead{font-size:1rem}
}

/* ===================== */
/* Drainage lymphatique */
/* ===================== */
.dl-hero{background:linear-gradient(180deg, var(--white), var(--beige));padding:56px 0;border-radius:16px}
.dl-hero > .container{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}
.dl-hero__subtitle{color:#333;max-width:60ch;margin:.5rem 0 1rem}
.dl-badges{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px 0;padding:0;list-style:none}
.dl-badges li{background:var(--beige-200);color:#333;padding:6px 10px;border-radius:999px;font-size:.9rem}
.dl-hero__media img{width:100%;height:auto;border-radius:14px;object-fit:cover;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.dl-hero__media--circle img{width:320px;height:320px;border-radius:50%;object-fit:cover;display:block;box-shadow:0 12px 30px rgba(0,0,0,.12);border:6px solid var(--white)}
/* Visage page: align with default (no letterboxing) */
.dl-hero__media--visage img{width:320px;height:320px;object-fit:cover;background:transparent}

@media(max-width:992px){
  .dl-hero > .container{grid-template-columns:1fr}
  .dl-hero__content{text-align:center}
  .dl-badges{justify-content:center}
  .dl-cta-group{justify-content:center}
  .dl-hero__media--circle img{margin:20px auto 0 auto;width:260px;height:260px}
  .dl-hero__media--visage img{width:260px;height:260px}
  /* Shorten button text on mobile */
  .dl-cta-group .btn.primary[href*="reservations"]{position:relative;font-size:0;line-height:normal;vertical-align:middle}
  .dl-cta-group .btn.primary[href*="reservations"]::after{content:"Réserver";font-size:1rem;font-weight:600;display:inline-block;vertical-align:middle;line-height:1.5}
}

/* CTA group on service pages */
.dl-cta-group{display:flex;gap:12px;flex-wrap:wrap}

.dl-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.dl-card{background:var(--white);border:1px solid #eee;border-radius:14px;padding:18px;box-shadow:0 6px 22px rgba(0,0,0,.05)}
.dl-card__icon{font-size:1.6rem;margin-right:.5rem;display:inline-block}
.dl-card h3{display:flex;align-items:center;margin:0 0 .5rem 0}

.dl-steps{padding:26px 0}
.dl-steps__list{counter-reset:step;list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.dl-steps__list li{position:relative;padding-left:2.2rem}
.dl-steps__list li::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:.15rem;width:1.6rem;height:1.6rem;border-radius:999px;background:var(--orange);color:var(--black);display:grid;place-items:center;font-weight:700}

.dl-proof{margin:26px 0}
.dl-quote{font-style:italic;border-left:3px solid var(--orange);padding-left:1rem;color:#444}
.dl-stats{display:grid;gap:.25rem;margin:.75rem 0 0 0;padding:0;list-style:none}
.dl-before-after{position:relative;overflow:hidden;border-radius:12px;box-shadow:0 10px 24px rgba(0,0,0,.06)}
.dl-before-after img{display:block;width:100%;height:auto}
.dl-after-wrap{position:absolute;top:0;left:0;right:0;height:100%;width:100%;overflow:hidden}
.dl-after-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.dl-ba-slider{position:absolute;left:0;right:0;bottom:.5rem;margin:0 auto;width:70%}

.dl-pricing{margin:32px 0}
.dl-price-card{background:var(--white);border:1px solid #eee;border-radius:16px;padding:18px;text-align:center;position:relative}
.dl-price-card--featured{border-color:var(--orange);box-shadow:0 14px 30px rgba(252,110,81,.18)}
.dl-ribbon{position:absolute;top:.75rem;right:.75rem;background:var(--orange);color:var(--black);padding:.25rem .5rem;border-radius:6px;font-size:.8rem}
.dl-price{font-size:1.6rem;font-weight:700;margin:.25rem 0}

.dl-faq details{background:var(--white);border:1px solid #eee;border-radius:12px;padding:.75rem 1rem;margin-bottom:.5rem}
.dl-faq summary{cursor:pointer;font-weight:600}

.dl-trust{background:linear-gradient(180deg, var(--beige), var(--white));border-radius:14px;padding:16px;margin:26px 0}
.dl-trust__list{display:flex;gap:12px;flex-wrap:wrap;list-style:none;padding:0;margin:0}

.dl-sticky-cta{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;background:var(--orange);color:var(--black);padding:.8rem 1.2rem;border-radius:999px;box-shadow:0 10px 20px rgba(0,0,0,.18);z-index:1000;text-decoration:none;font-weight:700;opacity:0;visibility:hidden;transition:opacity 0.3s ease, visibility 0.3s ease}
.dl-sticky-cta.visible{opacity:1;visibility:visible}
@media(min-width:992px){.dl-sticky-cta{display:none}}

@media(max-width:992px){
  .dl-grid-3{grid-template-columns:1fr}
}
