/* ============================================================
   POPPY CLIC — feuille de styles
   1. Tokens · 2. Base · 3. Utilitaires Client-First
   4. Composants · 5. Animations · 6. Responsive
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  --paper:#E7E8DE;
  --paper-2:#F0F1E9;
  --chalk:#FBFAF6;
  --forest:#232B21;
  --forest-soft:#39422F;
  --poppy:#C4362C;
  --poppy-dark:#A32B23;
  --wood:#B8834E;
  --ink:#171A15;
  --ink-60:rgba(23,26,21,.62);
  --line:rgba(23,26,21,.14);

  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Schibsted Grotesk",system-ui,-apple-system,sans-serif;

  --radius:2px;
  --radius-lg:4px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ---------- 2. BASE ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-body);font-size:1rem;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:500;line-height:1.05;letter-spacing:-.02em;}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
:focus-visible{outline:2px solid var(--poppy);outline-offset:3px;}
::selection{background:var(--poppy);color:var(--chalk);}

/* ---------- 3. UTILITAIRES CLIENT-FIRST ---------- */
.page-wrapper{overflow-x:clip;}
.padding-global{padding-left:2.5rem;padding-right:2.5rem;}
.container-large{width:100%;max-width:90rem;margin:0 auto;}
.container-medium{width:100%;max-width:56rem;margin:0 auto;}
.padding-section-large{padding-top:8rem;padding-bottom:8rem;}
.padding-section-medium{padding-top:5rem;padding-bottom:5rem;}
.text-align-center{text-align:center;}
.margin-bottom-small{margin-bottom:1rem;}
.margin-bottom-medium{margin-bottom:2rem;}
.margin-bottom-large{margin-bottom:4rem;}

.heading-style-h1{font-size: clamp(2.9rem, 6.4vw, 2.4rem);}
.heading-style-h2{font-size:clamp(2.1rem,4vw,2.55rem);}
.heading-style-h3{font-size:clamp(1.25rem,1.8vw,1.5rem);}
.text-size-large{font-size: clamp(1.06rem, 1.4vw, 1.00rem);line-height:1.6;}
.text-size-small{font-size:.875rem;}
.text-color-muted{color:var(--ink-60);}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--poppy);
}
.eyebrow::before{
  content:"";width:1.6rem;height:1px;background:var(--poppy);
  transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease-out) .15s;
}
.is-visible .eyebrow::before,.eyebrow.is-visible::before{transform:scaleX(1);}
.eyebrow.is-light{color:var(--wood);}
.eyebrow.is-light::before{background:var(--wood);}

/* ---------- 4. COMPOSANTS ---------- */

/* Boutons — sweep de couleur au survol */
.button{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 1.7rem;border:1px solid var(--poppy);border-radius:var(--radius);
  background:var(--poppy);color:var(--chalk);
  font-family:var(--font-body);font-size:.94rem;font-weight:600;letter-spacing:.01em;
  text-decoration:none;cursor:pointer;
  transition:transform .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);
}
.button::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--poppy-dark);
  transform:translateY(101%);transition:transform .45s var(--ease-out);
}
.button:hover{transform:translateY(-2px);}
.button:hover::before{transform:translateY(0);}
.button:active{transform:translateY(0) scale(.98);}
.button.is-secondary{background:transparent;color:var(--ink);border-color:var(--line);}
.button.is-secondary::before{background:var(--ink);}
.button.is-secondary:hover{color:var(--chalk);border-color:var(--ink);}
.button.is-light{background:var(--chalk);color:var(--forest);border-color:var(--chalk);}
.button.is-light::before{background:var(--wood);}
.button.is-light:hover{border-color:var(--wood);}
.button-group{display:flex;flex-wrap:wrap;gap:.75rem;}

/* Navbar */
.navbar_component{
  position:sticky;top:0;z-index:60;
  background:rgba(231,232,222,.72);backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.navbar_component.is-scrolled{
  background:rgba(231,232,222,.94);border-bottom-color:var(--line);
  box-shadow:0 10px 30px -26px rgba(23,26,21,.6);
}
.navbar_container{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:4.75rem;}
.navbar_brand{display:flex;align-items:baseline;gap:.55rem;text-decoration:none;}
.navbar_logo{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:-.03em;}
/* le point clignote comme un témoin d'appareil photo */
.navbar_logo-dot{color:var(--poppy);display:inline-block;animation:blink 3.4s steps(1,end) infinite;}
.navbar_tag{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);}
.navbar_menu{display:flex;align-items:center;gap:2rem;}
.navbar_link{position:relative;font-size:.9rem;font-weight:500;text-decoration:none;padding:.25rem 0;}
.navbar_link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--poppy);
  transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-out);
}
.navbar_link:hover::after{transform:scaleX(1);transform-origin:left;}

/* Hero */
.section_hero{position:relative;overflow:hidden;}
.hero_layout{
  display:grid;grid-template-columns:2.15fr .85fr;gap:5rem;align-items:center;
  padding-top:6rem;padding-bottom:6rem;
}
.hero_title{margin-top:1.4rem;margin-bottom:1.6rem;}
.hero_title em{font-style:italic;color:var(--poppy);font-weight:400;}
.hero_text{max-width:34rem;}
.hero_actions{margin-top:2.2rem;}
.hero_proof{display:flex;flex-wrap:wrap;gap:2rem;margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);}
.hero_proof-item{max-width:11rem;}
.hero_proof-label{
  display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--poppy);margin-bottom:.3rem;
}

/* Bande photo — élément signature */
.strip_wrap{display:flex;justify-content:center;perspective:1200px;}
.strip{
  --strip-w:17.5rem;
  position:relative;width:var(--strip-w);background:var(--chalk);
  padding:.85rem .85rem 3.2rem;
  box-shadow:0 26px 60px -28px rgba(23,26,21,.55),0 2px 0 rgba(23,26,21,.06);
  transform:rotate(-2.4deg);
  animation:strip-float 7s ease-in-out 2.4s infinite;
  transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out);
}
.strip:hover{
  animation-play-state:paused;
  transform:rotate(0deg) translateY(-6px) scale(1.02);
  box-shadow:0 40px 80px -30px rgba(23,26,21,.6);
}
.strip::after{
  content:"POPPY CLIC";
  position:absolute;left:0;right:0;bottom:1.15rem;text-align:center;
  font-size:.66rem;font-weight:600;letter-spacing:.34em;color:var(--ink-60);
  opacity:0;animation:fade-in .6s var(--ease-out) 2.1s forwards;
}
.strip_shot{
  position:relative;aspect-ratio:4/3;margin-bottom:.5rem;overflow:hidden;
  background-color:var(--forest-soft);background-size:cover;background-position:center;
  display:flex;align-items:flex-end;
  opacity:0;transform:scale(1.05);
  animation:shot-in .7s var(--ease-out) forwards;
}
.strip_shot:nth-child(1){animation-delay:.35s;}
.strip_shot:nth-child(2){animation-delay:.8s;background-color:#4A5540;}
.strip_shot:nth-child(3){animation-delay:1.25s;background-color:var(--wood);}
.strip_shot:nth-child(4){animation-delay:1.7s;background-color:#3B4433;margin-bottom:0;}
/* flash du photobooth au moment où la vignette apparaît */
.strip_shot::before{
  content:"";position:absolute;inset:0;background:var(--chalk);
  opacity:0;animation:flash .7s var(--ease-out) forwards;animation-delay:inherit;
}
.strip_caption{
  position:relative;width:100%;padding:.55rem .7rem;
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--chalk);
  background:linear-gradient(to top,rgba(23,26,21,.6),transparent);
  transform:translateY(100%);transition:transform .45s var(--ease-out);
}
.strip:hover .strip_caption{transform:translateY(0);}

/* Bandeau défilant */
.section_marquee{background:var(--forest);color:var(--chalk);overflow:hidden;}
.marquee_track{display:flex;gap:3rem;padding:1.05rem 0;width:max-content;animation:marquee 34s linear infinite;}
.section_marquee:hover .marquee_track{animation-play-state:paused;}
.marquee_item{
  display:flex;align-items:center;gap:3rem;
  font-size:.78rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
}
.marquee_item::after{content:"✳";color:var(--poppy);animation:spin 9s linear infinite;}

/* En-tête de section */
.section_header{max-width:44rem;margin-bottom:4rem;}
.section_header .heading-style-h2{margin-top:1.2rem;margin-bottom:1rem;}

/* Occasions */
.occasions_list{grid-template-columns:repeat(2,1fr);gap:1px;}
.occasions_item{position:relative;background:var(--paper);padding:2.75rem 2.25rem;overflow:hidden;transition:background .4s var(--ease);}
.occasions_item::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--poppy);
  transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease-out);
}
.occasions_item:hover{background:var(--paper-2);}
.occasions_item:hover::before{transform:scaleY(1);transform-origin:top;}
.occasions_head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.9rem;}
.occasions_head h3{transition:transform .5s var(--ease-out);}
.occasions_item:hover .occasions_head h3{transform:translateX(.4rem);}
.occasions_tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.4rem;}
.tag{
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);
  border:1px solid var(--line);border-radius:100px;padding:.28rem .7rem;
  transition:border-color .3s var(--ease),color .3s var(--ease);
}
.occasions_item:hover .tag{border-color:rgba(196,54,44,.35);color:var(--poppy);}

/* Artisan */
.section_artisan{background:var(--forest);color:var(--chalk);}
.artisan_layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.artisan_layout .text-color-muted{color:rgba(251,250,246,.68);}
.artisan_title{margin-top:1.3rem;margin-bottom:1.4rem;}
.artisan_specs{margin-top:2.5rem;border-top:1px solid rgba(251,250,246,.18);}
.artisan_spec{
  display:flex;justify-content:space-between;gap:1.5rem;padding:.95rem 0;
  border-bottom:1px solid rgba(251,250,246,.18);font-size:.92rem;
  opacity:0;transform:translateY(12px);
  transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);
  transition-delay:calc(var(--i,0) * 90ms);
}
.is-visible .artisan_spec{opacity:1;transform:none;}
.artisan_spec span:last-child{color:var(--wood);font-weight:500;}
.artisan_quote{
  border-left:2px solid var(--poppy);padding-left:2rem;
  font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2.05rem);
  font-style:italic;line-height:1.28;letter-spacing:-.015em;
}
.artisan_quote-author{
  display:block;margin-top:1.5rem;font-family:var(--font-body);font-style:normal;
  font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--wood);
}

/* Tarifs */
.pricing_list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;align-items:start;}
.pricing_item{
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:2.5rem 2rem;display:flex;flex-direction:column;height:100%;
  transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color .45s var(--ease);
}
.pricing_item:hover{transform:translateY(-6px);border-color:rgba(23,26,21,.28);box-shadow:0 26px 50px -34px rgba(23,26,21,.65);}
.pricing_item.is-featured{background:#c4362cc9;color:var(--chalk);border-color:var(--forest);}
.pricing_item.is-featured .pricing_meta,.pricing_item.is-featured .pricing_note{color:rgba(251,250,246,.62);}
.pricing_item.is-featured .pricing_feature{border-color:rgba(251,250,246,.16);}
.pricing_item.is-featured .pricing_feature::before{color:var(--wood);}
.pricing_badge{
  display:inline-block;margin-bottom:1.2rem;padding:.3rem .7rem;
  background:var(--poppy);color:var(--chalk);border-radius:100px;
  font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  animation:pulse 3.2s var(--ease) infinite;
   display: none;
}
.pricing_meta{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);}
.pricing_name{margin:.5rem 0 1.4rem;font-size:1.7rem;}
.pricing_price{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1.8rem;}
.pricing_amount{font-family:var(--font-display);font-size:3rem;font-weight:500;letter-spacing:-.03em;line-height:1;}
.pricing_features{margin-bottom:2rem;}
.pricing_feature{position:relative;padding:.7rem 0 .7rem 1.5rem;border-bottom:1px solid var(--line);font-size:.92rem;}
.pricing_feature::before{
  content:"✳";position:absolute;left:0;top:.7rem;color:var(--poppy);font-size:.8rem;
  transition:transform .4s var(--ease-out);
}
.pricing_item:hover .pricing_feature::before{transform:rotate(90deg);}
.pricing_item .button{margin-top:auto;width:100%;}
.pricing_note{margin-top:2.5rem;font-size:.85rem;color:var(--ink-60);}

/* Inclus */
.included_layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:5rem;}
.included_title{margin-top:1.2rem;}
.included_list{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem 2rem;}
.included_item{position:relative;padding-top:1.2rem;}
.included_item::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;
  transition:transform .8s var(--ease-out);transition-delay:calc(var(--i,0) * 110ms);
}
.is-visible .included_item::before{transform:scaleX(1);}
.included_item h3{margin-bottom:.5rem;font-size:1.15rem;}

/* Étapes — vraie séquence, la numérotation porte l'info */
.section_steps{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.steps_list{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;counter-reset:step;}
.steps_item{position:relative;padding-top:2.5rem;counter-increment:step;}
.steps_item::after{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;
  transition:transform 1s var(--ease-out);transition-delay:calc(var(--i,0) * 200ms);
}
.is-visible .steps_item::after{transform:scaleX(1);}
.steps_item::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;top:1rem;left:0;
  font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:.1em;color:var(--poppy);
}
.steps_item h3{margin-bottom:.6rem;}

/* Formulaire */
.section_contact{background:var(--forest);color:var(--chalk);}
.contact_layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:5rem;align-items:start;}
.contact_intro .text-color-muted{color:rgba(251,250,246,.68);}
.contact_title{margin-top:1.3rem;margin-bottom:1.2rem;}
.contact_reassurance{margin-top:2.5rem;padding:1.4rem 1.6rem;border:1px solid rgba(251,250,246,.2);border-radius:var(--radius-lg);}
.contact_reassurance strong{display:block;margin-bottom:.4rem;font-weight:600;}
.contact_reassurance p{font-size:.9rem;color:rgba(251,250,246,.68);}
.form_component{background:var(--chalk);color:var(--ink);padding:2.5rem;border-radius:var(--radius-lg);}
.form_grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.form_field{display:flex;flex-direction:column;gap:.4rem;}
.form_field.is-full{grid-column:1 / -1;}
.form_label{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);transition:color .3s var(--ease);}
.form_field:focus-within .form_label{color:var(--poppy);}
.form_input,.form_select,.form_textarea{
  width:100%;padding:.8rem .9rem;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);
  font-family:var(--font-body);font-size:.95rem;color:var(--ink);
  transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease);
}
.form_input:focus,.form_select:focus,.form_textarea:focus{
  border-color:var(--forest);background:var(--chalk);outline:none;
  box-shadow:0 0 0 3px rgba(35,43,33,.08);
}
.form_textarea{min-height:7rem;resize:vertical;}
.form_check{display:flex;align-items:flex-start;gap:.7rem;grid-column:1 / -1;font-size:.85rem;color:var(--ink-60);}
.form_check input{margin-top:.25rem;accent-color:var(--poppy);width:1rem;height:1rem;flex:none;}
.form_component .button{grid-column:1 / -1;width:100%;margin-top:.5rem;}

/* FAQ */
.faq_list{border-top:1px solid var(--line);}
.faq_item{border-bottom:1px solid var(--line);}
.faq_question{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:1.6rem 0;cursor:pointer;list-style:none;
  font-family:var(--font-display);font-size:clamp(1.1rem,1.6vw,1.32rem);font-weight:500;letter-spacing:-.015em;
  transition:color .3s var(--ease),padding-left .4s var(--ease-out);
}
.faq_question::-webkit-details-marker{display:none;}
.faq_question:hover{color:var(--poppy);padding-left:.4rem;}
.faq_question::after{content:"+";color:var(--poppy);font-size:1.4rem;transition:transform .4s var(--ease-out);}
.faq_item[open] .faq_question::after{transform:rotate(135deg);}
.faq_answer{padding-bottom:1.7rem;max-width:44rem;color:var(--ink-60);}
.faq_item[open] .faq_answer{animation:answer-in .45s var(--ease-out) both;}

/* Footer */
.footer_component{background:var(--ink);color:var(--chalk);}
.footer_top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2.5rem;padding-bottom:3rem;}
.footer_cta{max-width:26rem;}
.footer_cta .heading-style-h3{margin-bottom:1.2rem;}
.footer_links{display:flex;flex-wrap:wrap;gap:1.5rem;}
.footer_links a{font-size:.9rem;text-decoration:none;color:rgba(251,250,246,.7);transition:color .3s var(--ease);}
.footer_links a:hover{color:var(--wood);}
.footer_bottom{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;
  padding-top:1.6rem;border-top:1px solid rgba(251,250,246,.16);
  font-size:.8rem;color:rgba(251,250,246,.55);
}

/* ---------- 5. ANIMATIONS ---------- */

/* Apparition au scroll : ajoute data-reveal sur l'élément, --i pour décaler */
[data-reveal]{
  opacity:0;transform:translateY(26px);
  transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);
  transition-delay:calc(var(--i,0) * 110ms);
}
[data-reveal].is-visible{opacity:1;transform:none;}

/* Séquence d'entrée du hero (pas de scroll requis) */
.hero_content > *{opacity:0;animation:rise .9s var(--ease-out) forwards;}
.hero_content > *:nth-child(1){animation-delay:.1s;}
.hero_content > *:nth-child(2){animation-delay:.22s;}
.hero_content > *:nth-child(3){animation-delay:.34s;}
.hero_content > *:nth-child(4){animation-delay:.46s;}
.hero_content > *:nth-child(5){animation-delay:.58s;}

@keyframes rise{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
@keyframes fade-in{to{opacity:1;}}
@keyframes shot-in{to{opacity:1;transform:scale(1);}}
@keyframes flash{0%{opacity:1;}100%{opacity:0;}}
@keyframes strip-float{0%,100%{transform:rotate(-2.4deg) translateY(0);}50%{transform:rotate(-1.6deg) translateY(-10px);}}
@keyframes marquee{to{transform:translateX(-50%);}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes blink{0%,88%{opacity:1;}90%,96%{opacity:.15;}98%,100%{opacity:1;}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(196,54,44,.45);}60%{box-shadow:0 0 0 8px rgba(196,54,44,0);}}
@keyframes answer-in{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:none;}}

/* ---------- 6. RESPONSIVE ---------- */
@media (max-width:991px){
  .padding-global{padding-left:1.75rem;padding-right:1.75rem;}
  .padding-section-large{padding-top:5.5rem;padding-bottom:5.5rem;}
  .hero_layout{grid-template-columns:1fr;gap:3.5rem;padding-top:4rem;padding-bottom:4rem;}
  .artisan_layout,.included_layout,.contact_layout{grid-template-columns:1fr;gap:3rem;}
  .pricing_list,.steps_list{grid-template-columns:1fr;}
  .navbar_menu{display:none;}
}
@media (max-width:640px){
  .padding-global{padding-left:1.25rem;padding-right:1.25rem;}
  .occasions_list,.included_list,.form_grid{grid-template-columns:1fr;}
  .occasions_item{padding:2rem 1.5rem;}
  .form_component{padding:1.75rem 1.4rem;}
  .hero_proof{gap:1.5rem;}
  .button{width:100%;}
  .button-group{flex-direction:column;}
  .navbar_tag{display:none;}
  .strip_caption{transform:none;}
}

/* Accessibilité : on coupe tout si l'utilisateur le demande */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
  [data-reveal],.hero_content > *,.strip_shot{opacity:1!important;transform:none!important;}
  .eyebrow::before,.included_item::before,.steps_item::after{transform:scaleX(1)!important;}
  .strip_caption{transform:none!important;}
}
.occasions_intro{
  align-self:center;
}
.occasions_intro .heading-style-h2{
  margin-top:1.5rem;
  font-size:clamp(2.15rem,3vw,3.2rem);
  line-height:1.02;
}
.occasions_rule{
  display:block;
  width:4.3rem;
  height:1px;
  background:var(--poppy);
  margin-top:2.5rem;
}
.occasions_cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.8rem;
}
.occasion_card{
  min-height:20rem;
  background:rgba(255,253,248,.72);
  border:1px solid rgba(36,48,36,.11);
  border-radius:7px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 12px 28px -24px rgba(36,48,36,.35);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);
}
.occasion_card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 42px -27px rgba(36,48,36,.4);
}
.occasion_card-copy{
  padding:1.55rem 1.45rem 1.25rem;
  min-height:10.3rem;
}
.occasion_icon{
  display:block;
  min-height:1.5rem;
  color:var(--poppy);
  font-size:1.5rem;
  margin-bottom:.55rem;
}
.occasion_card h3{
  font-size:1.3rem;
  color:var(--forest);
  margin-bottom:.45rem;
}
.occasion_card p{
  color:var(--ink-60);
  font-size:.82rem;
  line-height:1.5;
}
.occasion_card img{
  width:100%;
  height:9.2rem;
  object-fit:cover;
  margin-top:auto;
  filter:saturate(.92) contrast(.98);
}
.occasions_intro{
  align-self:center;
}
.occasions_intro .heading-style-h2{
  margin-top:1.5rem;
  font-size:clamp(2.15rem,3vw,3.2rem);
  line-height:1.02;
}
.occasions_rule{
  display:block;
  width:4.3rem;
  height:1px;
  background:var(--poppy);
  margin-top:2.5rem;
}
.occasions_cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.8rem;
}
.occasion_card{
  min-height:20rem;
  background:rgba(255,253,248,.72);
  border:1px solid rgba(36,48,36,.11);
  border-radius:7px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 12px 28px -24px rgba(36,48,36,.35);
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);
}
.occasion_card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 42px -27px rgba(36,48,36,.4);
}
.occasion_card-copy{
  padding:1.55rem 1.45rem 1.25rem;
  min-height:10.3rem;
}
.occasion_icon{
  display:block;
  min-height:1.5rem;
  color:var(--poppy);
  font-size:1.5rem;
  margin-bottom:.55rem;
}
.occasion_card h3{
  font-size:1.3rem;
  color:var(--forest);
  margin-bottom:.45rem;
}
.occasion_card p{
  color:var(--ink-60);
  font-size:.82rem;
  line-height:1.5;
}
.occasion_card img{
  width:100%;
  height:9.2rem;
  object-fit:cover;
  margin-top:auto;
  filter:saturate(.92) contrast(.98);
}


/* ============================================================
   7. HERO — offre de location immédiatement compréhensible
   Ajustement 22/08/2026 : conserve la charte existante.
   ============================================================ */

/* Le premier écran est plus compact et la photo produit devient prioritaire. */
.hero_layout{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(23rem,.88fr);
  grid-template-areas:
    "intro visual"
    "detail visual";
  column-gap:4.25rem;
  row-gap:1.35rem;
  align-items:center;
  padding-top:3.1rem;
  padding-bottom:4rem;
}
span.eyebrow.is-visible.hero_kicker {
    margin-bottom: 40px;
}
.hero_intro{grid-area:intro;align-self:start;max-width:48rem;margin-top: 50px;}
.hero_detail{grid-area:detail;align-self:start;max-width:43rem;margin-top: -110px;}
.hero_kicker{font-size:.75rem;letter-spacing:.17em;}
.hero_title{
  margin-top:1.15rem;
  margin-bottom:0;
  max-width:48rem;
  text-wrap:balance;
}
.hero_text{max-width:40rem;}
.hero_actions{margin-top:3.75rem;}
.hero_proof{
  gap:1.4rem 2rem;
  margin-top:2.15rem;
  padding-top:1.35rem;
}
.hero_proof-item{max-width:12.5rem;}

.hero_visual{
  grid-area:visual;
  position:relative;
  width:min(100%,33rem);
  margin:0;
  justify-self:end;
  padding:0 0 1.5rem 1.25rem;
}
.hero_visual::before{
  content:"";
  position:absolute;
  inset:1.25rem 1.25rem 0 0;
  border:1px solid rgba(23,26,21,.15);
  transform:translate(-1rem,1rem);
  pointer-events:none;
}
.hero_visual-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:var(--forest-soft);
  box-shadow:0 32px 70px -36px rgba(23,26,21,.65);
}
.hero_visual-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(23,26,21,.18),transparent 42%);
  pointer-events:none;
}
.hero_visual img{
  width:100%;

  object-fit:cover;
  object-position:center 47%;
  transform:scale(1.002);
}
.hero_visual-badge{
  position:absolute;
  left:0;
  bottom:0;
  width:min(19rem,76%);
  padding:1rem 1.1rem 1.05rem;
  background:var(--chalk);
  border:1px solid var(--line);
  box-shadow:0 20px 38px -30px rgba(23,26,21,.7);
}
.hero_visual-badge span{
  display:block;
  margin-bottom:.28rem;
  color:var(--poppy);
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.hero_visual-badge strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.08rem;
  font-weight:500;
  line-height:1.18;
}
.hero_visual-badge small{
  display:block;
  margin-top:.45rem;
  color:var(--ink-60);
  font-size:.72rem;
  line-height:1.35;
}

/* Entrée du nouveau hero : même esprit que les animations existantes. */
.hero_intro > *, .hero_detail > *, .hero_visual{
  opacity:0;
  animation:rise .9s var(--ease-out) forwards;
}
.hero_intro > *:nth-child(1){animation-delay:.08s;}
.hero_intro > *:nth-child(2){animation-delay:.18s;}
.hero_visual{animation-delay:.24s;}
.hero_detail > *:nth-child(1){animation-delay:.3s;}
.hero_detail > *:nth-child(2){animation-delay:.4s;}
.hero_detail > *:nth-child(3){animation-delay:.5s;}

@media (max-width:991px){
  .hero_layout{
    grid-template-columns:1fr;
    grid-template-areas:
      "intro"
      "visual"
      "detail";
    gap:2rem;
    padding-top:2.5rem;
    padding-bottom:3.25rem;
  }
  .hero_intro,.hero_detail{max-width:46rem;}
  .hero_visual{
    width:min(100%,40rem);
    justify-self:start;
  }
}

@media (max-width:640px){
  .navbar_container{
    min-height:4.25rem;
    height:auto;
    gap:.85rem;
    padding:.65rem 0;
  }
  .navbar_logo{font-size:1.18rem;line-height:1;}
  .navbar_container > .button{
    width:auto;
    flex:none;
    padding:.72rem .85rem;
    font-size:.78rem;
    white-space:nowrap;
  }
  .hero_layout{
    gap:1.45rem;
    padding-top:1.75rem;
    padding-bottom:2.6rem;
  }
  .hero_kicker{
    font-size:.67rem;
    line-height:1.55;
    letter-spacing:.14em;
  }
  .hero_title{
    margin-top:.85rem;
    font-size: clamp(1.75rem, 7.6vw, 4rem);
        line-height: 1.2;
  }
  .hero_visual{
    width:100%;
    padding:0 0 1.3rem 0;
  }
  .hero_visual::before{display:none;}
  .hero_visual img{
   
    object-position:center 43%;
  }
  .hero_visual-badge{
    left:.8rem;
    right:.8rem;
    bottom:0;
    width:auto;
    padding:.85rem .95rem;
  }
  .hero_visual-badge strong{font-size:1rem;}
  .hero_text{
    font-size:1rem;
    line-height:1.55;
  }
  .hero_actions{margin-top:1.35rem;}
  .hero_proof{
    display:grid;
    grid-template-columns:1fr;
    gap:.8rem;
    margin-top:1.65rem;
    padding-top:1.15rem;
  }
  .hero_proof-item{max-width:none;}
  .hero_proof-label{margin-bottom:.12rem;}
}

@media (prefers-reduced-motion:reduce){
  .hero_intro > *, .hero_detail > *, .hero_visual{opacity:1!important;transform:none!important;}
}

/* ============================================================
   8. AJOUTS PAGE COMPLÈTE — photos, tarifs, expérience
   Base : CSS personnel Poppy Clic du 22/08/2026
   ============================================================ */

/* Occasions : photos plus présentes sans changer le style des cartes */
.occasions_cards{
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}

.occasion_card{
  min-height:22rem;
}

.occasion_card img{
  height:11rem;
  object-fit:cover;
}

.occasion_card:first-child img{
  object-position:center 45%;
}


/* Le photobooth : grande photo, mais hauteur maîtrisée */
.artisan_second-text{
  margin-top:1.15rem;
}

.artisan_media{
  position:relative;
  margin:0;
  height:63rem;
  min-height:0;
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:var(--forest-soft);
  box-shadow:0 32px 65px -42px rgba(0,0,0,.8);
}

.artisan_media img{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  object-position:center 42%;
}

.artisan_media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(23,26,21,.68),transparent 48%);
  pointer-events:none;
}

.artisan_media figcaption{
  position:absolute;
  z-index:2;
  left:1.5rem;
  right:1.5rem;
  bottom:1.5rem;
   display: none;
}

.artisan_media figcaption span{
  display:block;
  margin-bottom:.35rem;
  color:var(--wood);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.artisan_media figcaption strong{
  display:block;
  color:var(--chalk);
  font-family:var(--font-display);
  font-size:1.55rem;
  font-weight:500;
  line-height:1.15;
}


/* Tarifs : conserve la carte Signature rouge personnalisée */
.pricing_header{
  margin-bottom:3rem;
}

.pricing_item{
  padding:2.2rem 1.8rem;
}

.pricing_price{
  margin-bottom:1.4rem;
}

.pricing_amount{
  font-size:3.15rem;
}

.pricing_feature{
  line-height:1.45;
}


/* Informations location sous les formules */
.rental_infos{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2.4rem;
}

.rental_info{
  padding:1.45rem 1.5rem;
  border:1px solid var(--line);
  background:var(--paper-2);
  border-radius:var(--radius-lg);
}

.rental_info-title{
  display:block;
  margin-bottom:.55rem;
  color:var(--poppy);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.rental_info p{
  color:var(--ink-60);
  font-size:.88rem;
  line-height:1.55;
}

.rental_info strong{
  color:var(--ink);
}

.rental_info.is-caution{
  background:var(--chalk);
  border-color:rgba(196,54,44,.28);
}


/* Galerie photos */
.section_gallery{
  padding:5rem 0;
  background:var(--paper-2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.gallery_layout{
  display:grid;
  grid-template-columns:.68fr 1.32fr;
  gap:3.5rem;
  align-items:center;
}

.gallery_intro{
  max-width:30rem;
}

.gallery_intro .heading-style-h2{
  margin-top:1.15rem;
  margin-bottom:2rem;
}

.gallery_grid{
  display:grid;
  grid-template-columns:1.18fr .82fr;
  grid-template-rows:1fr 1fr;
  gap:.85rem;
  height:29rem;
  min-height:0;
}

.gallery_photo{
  margin:0;
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:var(--forest-soft);
}

.gallery_photo.is-large{
  grid-row:1 / 3;
}

.gallery_photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s var(--ease-out);
}

.gallery_photo:hover img{
  transform:scale(1.025);
}

.gallery_photo.is-large img{
  object-position:center 45%;
}


/* Expérience : section plus compacte */
.section_included .padding-section-large{
  padding-top:4.5rem;
  padding-bottom:4.5rem;
}

.included_layout{
  grid-template-columns:.8fr 1.2fr;
  gap:3.5rem;
  align-items:start;
}

.included_title{
  max-width:28rem;
}

.included_list{
  gap:1.55rem 2rem;
}

.included_item{
  padding-top:1rem;
}

.included_item h3{
  margin-bottom:.4rem;
}

.included_item p{
  font-size:.94rem;
  line-height:1.55;
}


/* Étapes : moins de vide */
.section_steps .padding-section-medium{
  padding-top:3.8rem;
  padding-bottom:3.8rem;
}

.section_steps .section_header{
  margin-bottom:2.4rem;
}

.section_steps .heading-style-h2{
  max-width:38rem;
  font-size:clamp(2.15rem,3.4vw,3.15rem);
}

.steps_list{
  gap:2rem;
}

.steps_item{
  padding-top:2.15rem;
}

.steps_item h3{
  margin-bottom:.45rem;
}

.steps_item p{
  font-size:.94rem;
  line-height:1.55;
}


/* Contact */
.contact_reassurance a{
  color:var(--wood);
  font-weight:600;
  text-decoration:none;
}

.contact_reassurance a:hover{
  text-decoration:underline;
}


/* Responsive des ajouts */
@media (max-width:991px){

  .occasions_cards{
    grid-template-columns:repeat(2,1fr);
  }

  .artisan_media{
    height:30rem;
  }

  .rental_infos{
    grid-template-columns:1fr;
  }

  .gallery_layout{
    grid-template-columns:1fr;
    gap:2.5rem;
  }

  .gallery_intro{
    max-width:42rem;
  }

  .gallery_grid{
    height:27rem;
  }

  .included_layout{
    grid-template-columns:1fr;
    gap:2.5rem;
  }
}


@media (max-width:640px){

  .occasions_cards{
    grid-template-columns:1fr;
  }

  .occasion_card{
    min-height:0;
  }

  .occasion_card-copy{
    min-height:0;
  }

  .occasion_card img{
    height:13rem;
  }

  .artisan_media{
    height:24rem;
  }

  .artisan_media figcaption{
    left:1rem;
    right:1rem;
    bottom:1rem;
  }

  .artisan_media figcaption strong{
    font-size:1.25rem;
  }

  .pricing_item{
    padding:1.8rem 1.4rem;
  }

  .rental_info{
    padding:1.25rem;
  }

  .section_gallery{
    padding:3.75rem 0;
  }

  .gallery_grid{
    height:auto;
    grid-template-columns:1fr 1fr;
    grid-template-rows:18rem 11rem;
  }

  .gallery_photo.is-large{
    grid-column:1 / 3;
    grid-row:1;
  }

  .gallery_photo:not(.is-large){
    grid-row:2;
  }

  .section_included .padding-section-large{
    padding-top:3.75rem;
    padding-bottom:3.75rem;
  }

  .section_steps .padding-section-medium{
    padding-top:3.25rem;
    padding-bottom:3.25rem;
  }
}

/* Logo Poppy Clic dans la navigation. */
.navbar_logo-image{
  display:block;
  width:auto;
  height:3.6rem;
  object-fit:contain;
}

@media(max-width:640px){
  .navbar_logo-image{
    height:2.8rem;
  }
}

/* ============================================================
   EXPÉRIENCE + RÉSERVATION — VERSION "IMAGE 3"
   Conserve toute la charte et les modifications personnelles.
   ============================================================ */

/* ---------- EXPÉRIENCE ---------- */

.section_included{
  background:var(--paper);
  border-top:1px solid var(--line);
}

.experience_layout{
  display:grid;
  grid-template-columns:minmax(18rem,.72fr) minmax(0,1.28fr);
  gap:4.5rem;
  align-items:center;
  padding-top:4.6rem;
  padding-bottom:4.6rem;
}

.experience_intro{
  max-width:31rem;
}

.experience_title{
  margin-top:1.2rem;
  max-width:29rem;
  font-size:clamp(2.45rem,4vw,2.55rem);
  line-height:.98;
}

.experience_intro-text{
  max-width:27rem;
  margin-top:1.45rem;
  color:var(--ink-60);
  font-size: clamp(1.06rem, 1.4vw, 1.00rem);
  line-height:1.65;
}

.experience_cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.9rem;
}

.experience_card{
  display:grid;
  grid-template-columns:5.6rem minmax(0,1fr);
  gap:1.25rem;
  align-items:center;
  min-height:12.2rem;
  padding:1.45rem 1.5rem;
  background:rgba(251,250,246,.48);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  transition:
    transform .38s var(--ease-out),
    background .38s var(--ease-out),
    box-shadow .38s var(--ease-out);
}

.experience_card:hover{
  transform:translateY(-3px);
  background:var(--chalk);
  box-shadow:0 20px 42px -34px rgba(23,26,21,.45);
}

.experience_icon{
  display:grid;
  place-items:center;
  width:5rem;
  height:5rem;
  border:1px solid var(--line);
  border-radius:50%;
  background:rgba(251,250,246,.38);
  color:var(--ink);
}

.experience_icon svg{
  width:2.65rem;
  height:2.65rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.experience_icon.is-gold{
  color:var(--wood);
}

.experience_icon .icon-accent{
  stroke:var(--poppy);
}

.experience_number{
  display:block;
  margin-bottom:.45rem;
  color:var(--poppy);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.12em;
}

.experience_card h3{
  margin-bottom:.45rem;
  font-size:1.3rem;
  line-height:1.12;
}

.experience_card p{
  color:var(--ink-60);
  font-size:.9rem;
  line-height:1.55;
}


/* ---------- RÉSERVATION ---------- */

.section_steps{
  background:var(--paper-2);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.reservation_layout{
  padding-top:3.9rem;
  padding-bottom:3.9rem;
}

.reservation_header{
  max-width:38rem;
  margin-bottom:2.55rem;
}

.reservation_header .heading-style-h2{
  margin-top:1.05rem;
  max-width:34rem;
  font-size: clamp(2.25rem, 3.6vw, 2.55rem);
  line-height:1;
}

.reservation_steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2.5rem;
  align-items:start;
}

.reservation_step{
  position:relative;
  display:grid;
  grid-template-columns:auto 5.25rem minmax(0,1fr);
  gap:1rem;
  align-items:center;
  min-width:0;
}

.reservation_step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:2.6rem;
  right:-1.65rem;
  width:1.25rem;
  border-top:1px dashed rgba(184,131,78,.8);
}

.reservation_step:not(:last-child)::before{
  content:"";
  position:absolute;
  top:2.43rem;
  right:-1.68rem;
  width:.34rem;
  height:.34rem;
  border-radius:50%;
  background:var(--wood);
  transform:translateX(100%);
}

.reservation_step-number{
  margin:0;
  color:var(--poppy);
  font-family:var(--font-display);
  font-size:3.35rem;
  font-weight:400;
  line-height:.9;
  letter-spacing:-.05em;
}

.reservation_step-icon{
  display:grid;
  place-items:center;
  width:4.8rem;
  height:4.8rem;
  border:1px solid var(--line);
  border-radius:50%;
  background:rgba(251,250,246,.5);
  color:var(--ink);
}

.reservation_step-icon svg{
  width:2.7rem;
  height:2.7rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.reservation_step-icon .icon-accent{
  stroke:var(--wood);
}

.reservation_step-icon .icon-accent-fill{
  fill:var(--wood);
  stroke:none;
}

.reservation_step-content{
  min-width:0;
}

.reservation_step-content h3{
  margin-bottom:.45rem;
  font-size:1.28rem;
  line-height:1.15;
}

.reservation_step-content p{
  max-width:20rem;
  color:var(--ink-60);
  font-size:.88rem;
  line-height:1.55;
}


/* ---------- TABLETTE ---------- */

@media(max-width:1100px){

  .experience_layout{
    grid-template-columns:1fr;
    gap:2.3rem;
  }

  .experience_intro{
    max-width:42rem;
  }

  .experience_title{
    max-width:38rem;
  }

  .reservation_steps{
    gap:1.4rem;
  }

  .reservation_step{
    grid-template-columns:auto 4.4rem 1fr;
    gap:.75rem;
  }

  .reservation_step-icon{
    width:4.2rem;
    height:4.2rem;
  }

  .reservation_step-number{
    font-size:2.8rem;
  }

  .reservation_step:not(:last-child)::after,
  .reservation_step:not(:last-child)::before{
    display:none;
  }
}


/* ---------- MOBILE ---------- */

@media(max-width:700px){

  .experience_layout{
    gap:2rem;
    padding-top:3.3rem;
    padding-bottom:3.3rem;
  }

  .experience_title{
    font-size:clamp(2.35rem,11vw,3.35rem);
  }

  .experience_cards{
    grid-template-columns:1fr;
  }

  .experience_card{
    grid-template-columns:4.6rem 1fr;
    min-height:0;
    padding:1.25rem;
  }

  .experience_icon{
    width:4rem;
    height:4rem;
  }

  .experience_icon svg{
    width:2.2rem;
    height:2.2rem;
  }

  .reservation_layout{
    padding-top:3.2rem;
    padding-bottom:3.2rem;
  }

  .reservation_header{
    margin-bottom:2rem;
  }

  .reservation_steps{
    grid-template-columns:1fr;
    gap:0;
  }

  .reservation_step{
    grid-template-columns:3.4rem 4rem 1fr;
    gap:.75rem;
    padding:1.35rem 0;
    border-top:1px solid var(--line);
  }

  .reservation_step:last-child{
    border-bottom:1px solid var(--line);
  }

  .reservation_step-number{
    font-size:2.25rem;
  }

  .reservation_step-icon{
    width:3.75rem;
    height:3.75rem;
  }

  .reservation_step-icon svg{
    width:2.15rem;
    height:2.15rem;
  }

  .reservation_step-content p{
    max-width:none;
  }
}


/* ---------- PETITS MOBILES ---------- */

@media(max-width:430px){

  .experience_card{
    grid-template-columns:3.9rem 1fr;
    gap:.9rem;
    padding:1.1rem;
  }

  .experience_icon{
    width:3.5rem;
    height:3.5rem;
  }

  .experience_icon svg{
    width:1.95rem;
    height:1.95rem;
  }

  .reservation_step{
    grid-template-columns:3rem 3.5rem 1fr;
  }

  .reservation_step-icon{
    width:3.3rem;
    height:3.3rem;
  }
}
/* ============================================================
   FOOTER PREMIUM — POPPY CLIC / SOS ORDI 03
   ============================================================ */

.pc-footer{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(
      circle at 14% 15%,
      rgba(184,131,78,.09),
      transparent 30rem
    ),
    var(--ink);
  color:var(--chalk);
}


/* petite ligne rouge décorative */
.pc-footer::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    var(--poppy) 25%,
    var(--wood) 55%,
    transparent
  );
  opacity:.7;
}


/* ============================================================
   PARTIE PRINCIPALE
   ============================================================ */

.pc-footer-main{
  display:grid;
  grid-template-columns:
    minmax(15rem,1.25fr)
    minmax(12rem,.9fr)
    minmax(10rem,.72fr)
    minmax(14rem,1fr);

  gap:4.5rem;

  padding-top:5rem;
  padding-bottom:4.5rem;
}


/* ============================================================
   MARQUE
   ============================================================ */

.pc-footer-logo{
  margin-bottom:1.35rem;

  font-family:var(--font-display);
  font-size:2.45rem;
  font-weight:500;
  letter-spacing:-.04em;
  line-height:1;
}

.pc-footer-logo span{
  color:var(--poppy);
}


.pc-footer-description{
  max-width:25rem;

  color:rgba(251,250,246,.68);

  font-size:.92rem;
  line-height:1.7;
}


.pc-footer-signature{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;

  margin-top:2rem;

  color:rgba(251,250,246,.52);

  font-size:.78rem;
}


.pc-footer-signature > span{
  display:block;

  width:2rem;
  height:1px;

  margin-right:.25rem;

  background:var(--poppy);
}


.pc-footer-signature strong{
  color:var(--wood);
  font-weight:600;
}


/* ============================================================
   TITRES
   ============================================================ */

.pc-footer-title{
  display:block;

  margin-bottom:1.5rem;

  color:var(--wood);

  font-size:.68rem;
  font-weight:600;
  letter-spacing:.18em;

  text-transform:uppercase;
}


/* ============================================================
   CONTACT
   ============================================================ */

.pc-footer-contact{
  display:flex;
  flex-direction:column;
  gap:1rem;
}


.pc-footer-contact-item{
  display:grid;
  grid-template-columns:2.25rem minmax(0,1fr);

  gap:.75rem;
  align-items:center;

  color:rgba(251,250,246,.78);

  font-size:.88rem;
  line-height:1.5;
}


.pc-footer-contact-item > div{
  display:flex;
  flex-direction:column;
}


.pc-footer-contact-item a{
  width:max-content;
  max-width:100%;

  color:rgba(251,250,246,.88);

  text-decoration:none;

  transition:
    color .25s var(--ease),
    transform .25s var(--ease);
}


.pc-footer-contact-item a:hover{
  color:var(--wood);
  transform:translateX(2px);
}


/* ============================================================
   ICÔNES
   ============================================================ */

.pc-footer-icon{
  display:grid;
  place-items:center;

  width:2.15rem;
  height:2.15rem;

  border:1px solid rgba(184,131,78,.35);
  border-radius:50%;

  color:var(--wood);

  background:rgba(251,250,246,.025);
}


.pc-footer-icon svg{
  display:block;

  width:1.05rem;
  height:1.05rem;

  fill:none;
  stroke:currentColor;

  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* ============================================================
   NAVIGATION
   ============================================================ */

.pc-footer-nav{
  display:flex;
  flex-direction:column;

  gap:.7rem;
}


.pc-footer-nav a{
  display:flex;
  align-items:center;
  gap:.55rem;

  width:max-content;

  color:rgba(251,250,246,.7);

  font-size:.88rem;
  text-decoration:none;

  transition:
    color .25s var(--ease),
    transform .3s var(--ease-out);
}


.pc-footer-nav a span{
  color:var(--poppy);

  font-family:var(--font-display);
  font-size:1.35rem;
  line-height:.7;

  transition:transform .3s var(--ease-out);
}


.pc-footer-nav a:hover{
  color:var(--chalk);
  transform:translateX(3px);
}


.pc-footer-nav a:hover span{
  transform:translateX(2px);
}


/* ============================================================
   CTA
   ============================================================ */

.pc-footer-cta{
  position:relative;

  padding-left:2rem;

  border-left:1px solid rgba(251,250,246,.13);
}


.pc-footer-cta h3{
  max-width:18rem;

  margin-bottom:1rem;

  color:var(--chalk);

  font-size: clamp(1.65rem, 2vw, 1.15rem);
  line-height:1.08;
}


.pc-footer-cta p{
  max-width:18rem;

  margin-bottom:1.65rem;

  color:rgba(251,250,246,.55);

  font-size:.83rem;
  line-height:1.6;
}


.pc-footer-button{
  width:auto;
}


/* ============================================================
   BAS DU FOOTER
   ============================================================ */

.pc-footer-bottom{
  border-top:1px solid rgba(251,250,246,.12);

  background:rgba(0,0,0,.08);
}


.pc-footer-bottom-inner{
  display:grid;
  grid-template-columns:1fr auto auto;

  gap:2.5rem;
  align-items:center;

  padding-top:1.55rem;
  padding-bottom:1.55rem;
}


.pc-footer-company{
  display:flex;
  flex-wrap:wrap;

  gap:.35rem .85rem;

  color:rgba(251,250,246,.43);

  font-size:.72rem;
}


.pc-footer-company strong{
  color:rgba(251,250,246,.68);
  font-weight:500;
}


.pc-footer-company span + span::before{
  content:"·";
  margin-right:.85rem;

  color:var(--poppy);
}


.pc-footer-legal{
  display:flex;
  flex-wrap:wrap;

  gap:1.4rem;
}


.pc-footer-legal a{
  position:relative;

  color:rgba(251,250,246,.52);

  font-size:.72rem;
  text-decoration:none;

  transition:color .25s var(--ease);
}


.pc-footer-legal a:not(:last-child)::after{
  content:"";

  position:absolute;

  top:50%;
  right:-.75rem;

  width:1px;
  height:.8rem;

  background:rgba(251,250,246,.16);

  transform:translateY(-50%);
}


.pc-footer-legal a:hover{
  color:var(--wood);
}


.pc-footer-copyright{
  white-space:nowrap;

  color:rgba(251,250,246,.38);

  font-size:.72rem;
}


/* ============================================================
   TABLETTE
   ============================================================ */

@media(max-width:1100px){

  .pc-footer-main{
    grid-template-columns:1.2fr 1fr;
    gap:3.5rem 4rem;
  }

  .pc-footer-cta{
    padding-left:0;

    border-left:0;
  }


  .pc-footer-bottom-inner{
    grid-template-columns:1fr auto;
  }


  .pc-footer-copyright{
    grid-column:1 / -1;
  }

}


/* ============================================================
   MOBILE
   ============================================================ */

@media(max-width:640px){

  .pc-footer-main{
    grid-template-columns:1fr;

    gap:2.8rem;

    padding-top:3.75rem;
    padding-bottom:3.4rem;
  }


  .pc-footer-logo{
    font-size:2.15rem;
  }


  .pc-footer-description{
    max-width:none;
  }


  .pc-footer-contact{
    gap:.85rem;
  }


  .pc-footer-cta{
    padding-top:2.2rem;

    border-top:1px solid rgba(251,250,246,.12);
  }


  .pc-footer-cta h3,
  .pc-footer-cta p{
    max-width:none;
  }


  .pc-footer-bottom-inner{
    grid-template-columns:1fr;

    gap:1.2rem;

    padding-top:1.5rem;
    padding-bottom:1.7rem;
  }


  .pc-footer-company{
    flex-direction:column;

    gap:.2rem;
  }


  .pc-footer-company span + span::before{
    display:none;
  }


  .pc-footer-legal{
    gap:1rem 1.35rem;
  }


  .pc-footer-copyright{
    grid-column:auto;
  }

}

/* ============================================================
   HERO PREMIUM FINAL — 159 € + pictogrammes
   Ajout sur la base du CSS personnel existant.
   ============================================================ */

.hero_price-premium{
  display:grid;
  grid-template-columns:auto auto minmax(11rem,1fr);
  align-items:center;
  column-gap:1rem;
  width:min(100%,39rem);
  margin-top:1.25rem;
  margin-bottom:.15rem;
  padding:.9rem 0;
  border-top:1px solid rgba(184,131,78,.58);
  border-bottom:1px solid rgba(184,131,78,.58);
}

.hero_price-from{
  color:var(--ink);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
  white-space:nowrap;
}

.hero_price-amount{
  display:flex;
  align-items:flex-start;
  color:var(--poppy);
  line-height:1;
}

.hero_price-amount strong{
  font-family:var(--font-display);
  font-size:clamp(3.8rem,5vw,5.25rem);
  font-weight:500;
  line-height:.82;
  letter-spacing:-.055em;
}

.hero_price-amount > span{
  margin:.12rem 0 0 .15rem;
  font-family:var(--font-display);
  font-size:1.75rem;
  line-height:1;
}

.hero_price-side{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.2rem;
  min-height:3.5rem;
  padding-left:1.2rem;
  border-left:1px solid rgba(184,131,78,.5);
}

.hero_price-side strong{
  color:var(--ink);
  font-size:.71rem;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.hero_price-side span{
  color:var(--ink-60);
  font-family:var(--font-display);
  font-size:.9rem;
  font-style:italic;
  line-height:1.3;
}

.hero_price-premium + .hero_title{
  margin-top:4.45rem;
       margin-bottom: 1rem;
}

/* Les trois bénéfices visuels sous les boutons */
.hero_proof.hero_proof-premium{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:2.15rem;
  padding-top:1.55rem;
  border-top:1px solid var(--line);
       display: none;
}

.hero_proof-premium .hero_proof-item{
  display:grid;
  grid-template-columns:3.75rem minmax(0,1fr);
  gap:.85rem;
  align-items:start;
  max-width:none;
  min-width:0;
  padding-right:1.15rem;
}

.hero_proof-premium .hero_proof-item + .hero_proof-item{
  padding-left:1.15rem;
  border-left:1px solid var(--line);
}

.hero_proof-icon{
  display:grid;
  place-items:center;
  width:3.35rem;
  height:3.35rem;
  color:var(--wood);
  border:1px solid rgba(184,131,78,.75);
  border-radius:50%;
  background:rgba(251,250,246,.18);
}

.hero_proof-icon svg{
  display:block;
  width:1.78rem;
  height:1.78rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.hero_proof-premium .hero_proof-label{
  margin-top:.12rem;
  margin-bottom:.2rem;
}

.hero_proof-premium .hero_proof-item p{
  line-height:1.42;
}

/* Le hero contient maintenant 3 éléments dans hero_intro : kicker, prix, titre. */
.hero_intro > *:nth-child(1){animation-delay:.08s;}
.hero_intro > *:nth-child(2){animation-delay:.17s;}
.hero_intro > *:nth-child(3){animation-delay:.26s;}

@media(max-width:991px){
  .hero_price-premium{
    width:min(100%,36rem);
  }

  .hero_proof.hero_proof-premium{
    max-width:44rem;
  }
}

@media(max-width:640px){
  .hero_price-premium{
    grid-template-columns:auto auto minmax(0,1fr);
    column-gap:.65rem;
    width:100%;
    margin-top:1rem;
    padding:.78rem 0;
  }

  .hero_price-from{
    font-size:.56rem;
    letter-spacing:.11em;
  }

  .hero_price-amount strong{
    font-size:2.15rem;
  }

  .hero_price-amount > span{
    font-size:1.25rem;
  }

  .hero_price-side{
    min-height:3rem;
    padding-left:.7rem;
  }

  .hero_price-side strong{
    font-size:.58rem;
    letter-spacing:.1em;
  }

  .hero_price-side span{
    font-size:.7rem;
  }

  .hero_price-premium + .hero_title{
    margin-top:1.15rem;
  }

  .hero_proof.hero_proof-premium{
    display:grid;
    grid-template-columns:1fr;
    gap:.8rem;
    margin-top:1.6rem;
    padding-top:1.15rem;
  }

  .hero_proof-premium .hero_proof-item{
    grid-template-columns:3.15rem 1fr;
    gap:.8rem;
    padding:0;
  }

  .hero_proof-premium .hero_proof-item + .hero_proof-item{
    padding:0;
    padding-top:.85rem;
    border-left:0;
    border-top:1px solid var(--line);
  }

  .hero_proof-icon{
    width:2.9rem;
    height:2.9rem;
  }

  .hero_proof-icon svg{
    width:1.52rem;
    height:1.52rem;
  }
}

@media(max-width:390px){
  .hero_price-premium{
    grid-template-columns:auto auto;
    row-gap:.5rem;
  }

  .hero_price-side{
    grid-column:1 / -1;
    min-height:0;
    padding:.5rem 0 0;
    border-left:0;
    border-top:1px solid rgba(184,131,78,.38);
  }
}

/* ============================================================
   MENU MOBILE — VERSION SIMPLE ET ROBUSTE
   Ajout uniquement. Aucune règle existante n'est remplacée.
   ============================================================ */

.mobile-menu-toggle,
.mobile-menu{
  display:none;
}

@media (max-width:991px){

  .mobile-menu-toggle{
    display:grid;
    place-content:center;
    gap:4px;

    flex:0 0 auto;
    width:2.75rem;
    height:2.75rem;
    padding:0;

    border:1px solid rgba(23,26,21,.18);
    border-radius:50%;
    background:rgba(251,250,246,.55);
    color:var(--ink);

    cursor:pointer;
  }

  .mobile-menu-toggle span{
    display:block;
    width:1rem;
    height:1.5px;
    background:currentColor;
    border-radius:2px;
    transition:transform .25s var(--ease-out), opacity .2s ease;
  }

  .navbar_component.mobile-menu-open .mobile-menu-toggle span:nth-child(1){
    transform:translateY(5.5px) rotate(45deg);
  }

  .navbar_component.mobile-menu-open .mobile-menu-toggle span:nth-child(2){
    opacity:0;
  }

  .navbar_component.mobile-menu-open .mobile-menu-toggle span:nth-child(3){
    transform:translateY(-5.5px) rotate(-45deg);
  }

  /* Fermé = réellement absent. Aucun lien visible par accident. */
  .mobile-menu{
    display:none;
  }

  .navbar_component.mobile-menu-open .mobile-menu{
    display:block;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:58;

    background:rgba(231,232,222,.985);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    box-shadow:0 22px 45px -34px rgba(23,26,21,.55);
  }

  .mobile-menu-inner{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding-top:.75rem;
    padding-bottom:.75rem;
  }

  .mobile-menu a{
    display:grid;
    grid-template-columns:2rem 1fr;
    align-items:center;
    gap:.7rem;

    min-height:4rem;
    padding:.8rem 1rem;

    color:var(--ink);
    text-decoration:none;
    border-bottom:1px solid var(--line);
  }

  .mobile-menu a:nth-child(odd){
    border-right:1px solid var(--line);
  }

  .mobile-menu a span{
    color:var(--poppy);
    font-size:.6rem;
    font-weight:600;
    letter-spacing:.12em;
  }

  .mobile-menu a strong{
    font-family:var(--font-display);
    font-size:1.05rem;
    font-weight:500;
    line-height:1.15;
  }
}

@media (max-width:640px){

  .navbar_container{
    gap:.5rem;
  }

  .mobile-menu-toggle{
    width:2.6rem;
    height:2.6rem;
  }

  .mobile-menu-inner{
    grid-template-columns:1fr;
  }

  .mobile-menu a{
    min-height:3.65rem;
    padding:.72rem 0;
    border-right:0 !important;
  }

  .mobile-menu a:last-child{
    border-bottom:0;
  }
}

@media (max-width:390px){

  .mobile-menu-toggle{
    width:2.45rem;
    height:2.45rem;
  }

  .mobile-menu-toggle span{
    width:.9rem;
  }
}

@media (prefers-reduced-motion:reduce){
  .mobile-menu-toggle span{
    transition:none!important;
  }
}

/* ============================================================
   DISPONIBILITÉS — CARTE INTÉGRÉE AU FORMULAIRE
   Remplace uniquement l'ancien grand calendrier Google.
   ============================================================ */

.availability_checker{
  position:relative;
  margin-top:1.5rem;
  padding:1.65rem;
  overflow:hidden;
  border:1px solid rgba(251,250,246,.18);
  border-radius:var(--radius-lg);
  background:
    linear-gradient(135deg,rgba(251,250,246,.07),rgba(251,250,246,.025));
}

.availability_checker::after{
  content:"";
  position:absolute;
  right:-3rem;
  bottom:-3rem;
  width:8rem;
  height:8rem;
  border:1px solid rgba(184,131,78,.2);
  border-radius:50%;
  pointer-events:none;
}

.availability_checker-kicker{
  display:block;
  margin-bottom:.65rem;
  color:var(--wood);
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.17em;
  text-transform:uppercase;
}

.availability_checker h3{
  margin-bottom:.65rem;
  color:var(--chalk);
  font-size:clamp(1.45rem,2vw,1.85rem);
  line-height:1.08;
}

.availability_checker-copy{
  max-width:32rem;
  color:rgba(251,250,246,.68);
  font-size:.9rem;
  line-height:1.55;
}

.availability_checker-controls{
  margin-top:1.25rem;
}

.availability_checker-label{
  display:block;
  margin-bottom:.45rem;
  color:rgba(251,250,246,.68);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.availability_checker-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.65rem;
  align-items:stretch;
}

.availability_checker-input{
  width:100%;
  min-width:0;
  min-height:3.25rem;
  padding:.8rem .9rem;
  border:1px solid rgba(251,250,246,.22);
  border-radius:var(--radius);
  background:var(--chalk);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:.95rem;
}

.availability_checker-input:focus{
  border-color:var(--wood);
  outline:none;
  box-shadow:0 0 0 3px rgba(184,131,78,.14);
}

.availability_checker-button{
  min-height:3.25rem;
  padding:.8rem 1.1rem;
  white-space:nowrap;
}

.availability_checker-button:disabled{
  opacity:.62;
  cursor:wait;
  transform:none;
}

.availability_checker-status{
  min-height:1.35rem;
  margin-top:.8rem;
  font-size:.82rem;
  font-weight:600;
  line-height:1.45;
}

.availability_checker-status:empty{
  min-height:0;
  margin-top:0;
}

.availability_checker-status.is-checking,
.availability_checker-status.is-error{
  color:rgba(251,250,246,.62);
}

.availability_checker-status.is-available{
  color:#00cd5d;
}

.availability_checker-status.is-available::before{
  content:"✓ ";
  color:var(--wood);
}

.availability_checker-status.is-busy{
  color:#ff978c;
}

.availability_checker-status.is-busy::before{
  content:"× ";
}

.availability_checker-note{
  margin-top:1rem;
  padding-top:.9rem;
  border-top:1px solid rgba(251,250,246,.13);
  color:rgba(251,250,246,.5);
  font-size:.74rem;
  line-height:1.45;
}

@media(max-width:640px){
  .availability_checker{
    margin-top:1.25rem;
    padding:1.35rem;
  }

  .availability_checker-row{
    grid-template-columns:1fr;
  }

  .availability_checker-button{
    width:100%;
  }
}

/* ============================================================
   DISPONIBILITÉ DU CHAMP DATE
   Ajout uniquement — le CSS existant est conservé.
   ============================================================ */

.date-availability-status{
  min-height:1.25rem;
  margin-top:.15rem;
  font-size:.78rem;
  line-height:1.4;
  color:var(--ink-60);
}

.date-availability-status:empty{
  min-height:0;
  margin-top:0;
}

.date-availability-status.is-checking{
  color:var(--ink-60);
}

.date-availability-status.is-available{
  color:var(--forest);
  font-weight:600;
}

.date-availability-status.is-available::before{
  content:"✓ ";
  color:var(--wood);
}

.date-availability-status.is-busy{
  color:var(--poppy-dark);
  font-weight:600;
}

.date-availability-status.is-busy::before{
  content:"× ";
}

.date-availability-status.is-error{
  color:var(--ink-60);
}

#date:invalid:not(:focus):not(:placeholder-shown){
  border-color:rgba(196,54,44,.55);
}

@media(max-width:640px){
  .date-availability-status{
    font-size:.76rem;
  }
}

.location-info {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #c4362c;
   text-transform: none;
}
