/* Wild — Style A : épuré, féminin, premium léger */

:root{
  --rose-50:#fbf3ef;
  --rose-100:#f4e4dc;
  --rose-200:#ecd2c5;
  --rose-300:#d9a994;
  --beige:#f7f1ec;
  --or:#b88a5f;
  --or-foncé:#8a6440;
  --texte:#2c2420;
  --texte-doux:#6e5e54;
  --blanc:#ffffff;
  --ombre: 0 8px 30px rgba(70,40,25,.08);
  --r: 14px;
}

*{box-sizing:border-box}
img{ display:block; max-width:100% }
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  color:var(--texte);
  background:var(--beige);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

.container{ max-width:1120px; margin:0 auto; padding:0 24px }
.center{ text-align:center }
.small{ font-size:.875rem }
.muted{ color:var(--texte-doux) }

h1,h2,h3{ font-weight:500; letter-spacing:-.01em; line-height:1.15; margin:0 0 .4em }
h1{ font-size: clamp(2.4rem, 5.5vw, 4rem) }
h1 em{ font-style:italic; color:var(--or); font-weight:400 }
h2{ font-size: clamp(1.6rem, 3vw, 2.2rem) }
h3{ font-size: 1.05rem; font-family: ui-sans-serif, -apple-system, "Helvetica Neue", Arial, sans-serif; letter-spacing:.04em; text-transform:uppercase }

p{ margin:0 0 1em }

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.72rem;
  color:var(--or);
  margin:0 0 1em;
  font-family: ui-sans-serif, -apple-system, "Helvetica Neue", Arial, sans-serif;
}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,241,236,.94);
  backdrop-filter: blur(10px);
  border-bottom:1px solid #ebd9cd;
}
.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px;
}
.logo{
  display:flex; flex-direction:column; line-height:1; text-decoration:none; color:var(--texte);
}
.logo-text{
  font-family:"Iowan Old Style", Georgia, serif; font-style:italic;
  font-size:1.7rem; letter-spacing:.02em;
}
.logo-sub{
  font-family: ui-sans-serif, sans-serif;
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--or); margin-top:4px;
}
.nav{
  display:flex; align-items:center; gap:26px;
}
.nav a{
  color:var(--texte); text-decoration:none; font-size:.92rem;
  font-family: ui-sans-serif, -apple-system, "Helvetica Neue", Arial, sans-serif;
}
.nav a:hover{ color:var(--or-foncé) }

.btn{
  display:inline-block; padding:12px 22px; border-radius:999px;
  font-family: ui-sans-serif, -apple-system, "Helvetica Neue", Arial, sans-serif;
  font-size:.9rem; letter-spacing:.04em;
  text-decoration:none; cursor:pointer; border:1px solid transparent;
  transition: all .2s ease;
}
.btn-primary{ background:var(--or); color:white }
.btn-primary:hover{ background:var(--or-foncé) }
.btn-ghost{ background:transparent; color:var(--texte); border-color:var(--rose-300) }
.btn-ghost:hover{ background:var(--rose-100) }
.btn-pill{ background:var(--texte); color:#fff; padding:10px 18px; font-size:.82rem }
.btn-pill:hover{ background:var(--or-foncé) }

.nav-toggle{ display:none; background:none; border:0; padding:8px; cursor:pointer }
.nav-toggle span{ display:block; width:22px; height:2px; background:var(--texte); margin:4px 0; transition:.2s }

/* ===== Hero ===== */
.hero{
  position:relative; overflow:hidden;
  background: var(--rose-50);
  padding: 80px 0 100px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  align-items:center;
  gap: 40px;
}
.hero-inner{ padding-left: max(24px, calc((100vw - 1120px)/2 + 24px)); padding-right:24px; max-width:640px }
.hero h1{ margin-bottom:.4em }
.lead{ font-size:1.1rem; color:var(--texte-doux); max-width:520px }
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; margin-top:24px }
.hero-photo{
  height: 100%;
  min-height: 460px;
  padding-right: max(24px, calc((100vw - 1120px)/2 + 24px));
}
.hero-photo img{
  width:100%; height:100%; object-fit:cover; border-radius:var(--r);
  box-shadow:var(--ombre);
  min-height: 460px;
}

/* ===== About ===== */
.about{ padding:90px 0; background:var(--blanc) }
.two-col{
  display:grid; grid-template-columns: 1fr 1fr; gap:60px; align-items:center;
}
.about-img{
  aspect-ratio: 4/5;
  border-radius:var(--r);
  overflow:hidden;
  box-shadow:var(--ombre);
}
.about-img img{ width:100%; height:100%; object-fit:cover }
.bullets{ list-style:none; padding:0; margin:1.2em 0 0 }
.bullets li{ padding:8px 0 8px 26px; position:relative }
.bullets li::before{
  content:""; position:absolute; left:0; top:16px; width:14px; height:1px;
  background:var(--or);
}

/* ===== Services ===== */
.services{ padding:100px 0; background:var(--rose-50) }
.grid{ display:grid; gap:22px }
.services-grid{ grid-template-columns: repeat(3, 1fr); margin-top:40px }
.card{
  background:var(--blanc); border-radius:var(--r); overflow:hidden;
  box-shadow:var(--ombre);
  border:1px solid #f1e2d6;
  transition: transform .3s ease;
}
.card:hover{ transform: translateY(-3px) }
.card-img{ aspect-ratio: 4/3; overflow:hidden; background:var(--rose-100) }
.card-img img{ width:100%; height:100%; object-fit:cover; transition: transform .6s ease }
.card:hover .card-img img{ transform: scale(1.05) }
.card-body{ padding: 22px 24px 26px }
.card h3{ margin-bottom:.6em }
.price{
  margin-top:14px; margin-bottom:0;
  color:var(--or-foncé);
  font-family: ui-sans-serif, -apple-system, "Helvetica Neue", Arial, sans-serif;
  letter-spacing:.04em;
  font-size:.92rem;
}

/* ===== Galerie ===== */
.galerie{ padding:100px 0; background:var(--blanc) }
.gallery-grid{
  display:grid; grid-template-columns: repeat(3,1fr); gap:14px; margin-top:36px;
}
.g{ aspect-ratio: 1/1; border-radius: var(--r); overflow:hidden; background:var(--rose-100) }
.g img{ width:100%; height:100%; object-fit:cover; transition: transform .6s ease }
.g:hover img{ transform: scale(1.05) }

/* ===== Avis ===== */
.avis{ padding:100px 0; background:var(--rose-50) }
.testimonials{ grid-template-columns: repeat(3,1fr); margin-top:40px }
.card-quote{
  background:var(--blanc); border-radius:var(--r); padding:28px;
  box-shadow:var(--ombre); border:1px solid #f1e2d6;
  font-style:italic; color:var(--texte); margin:0;
}
.card-quote cite{ display:block; margin-top:14px; font-style:normal; color:var(--or-foncé); font-size:.9rem }

/* ===== FAQ ===== */
.faq{ padding:100px 0; background:var(--blanc) }
.faq details{
  border-bottom:1px solid #efe0d4; padding:18px 0; cursor:pointer;
}
.faq summary{
  list-style:none; font-size:1.05rem; position:relative; padding-right:30px;
}
.faq summary::-webkit-details-marker{ display:none }
.faq summary::after{
  content:"+"; position:absolute; right:0; top:0; color:var(--or); font-size:1.3rem;
}
.faq details[open] summary::after{ content:"–" }
.faq details p{ margin-top:10px; color:var(--texte-doux) }

/* ===== Contact ===== */
.contact{ padding:100px 0; background:var(--rose-100) }
.address, .hours{ font-size:1.05rem }
.contact-cta{ display:flex; gap:12px; margin:20px 0; flex-wrap:wrap }
.socials{ display:flex; gap:18px; margin-top:18px }
.socials a{
  font-family: ui-sans-serif, -apple-system, sans-serif; font-size:.9rem;
  color:var(--or-foncé); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px;
}
.map{
  aspect-ratio: 4/3; border-radius:var(--r); overflow:hidden; box-shadow:var(--ombre);
  background: #f0e8e0;
}
.map iframe{ width:100%; height:100%; display:block }

/* ===== Footer ===== */
.site-footer{ padding:50px 0 60px; background:#2c2420; color:#e6d6c8; text-align:center }
.site-footer p{ margin:.3em 0 }
.site-footer strong{ font-family:"Iowan Old Style",Georgia,serif; font-style:italic; font-size:1.15rem; color:#fff }

/* ===== Apparition au scroll ===== */
.reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
.reveal.in{ opacity:1; transform:none }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none }
}

/* ===== Responsive ===== */
@media (max-width: 980px){
  .hero{ grid-template-columns: 1fr; padding: 56px 0 0 }
  .hero-inner{
    padding-left:24px; padding-right:24px; max-width:none;
    margin:0 auto; max-width:720px;
  }
  .hero-photo{
    padding:24px;
    min-height: 320px;
  }
  .hero-photo img{ min-height: 320px; aspect-ratio: 16/10 }
}

@media (max-width: 880px){
  .nav{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0; padding:10px 24px 20px;
    background:var(--beige); border-bottom:1px solid #ebd9cd;
  }
  .nav.open{ display:flex }
  .nav a{ padding:12px 0; border-bottom:1px solid #ebd9cd }
  .nav a:last-child{ border:0; margin-top:8px; text-align:center }
  .nav-toggle{ display:block }
  .nav-wrap{ position:relative }

  .two-col{ grid-template-columns: 1fr; gap:36px }
  .services-grid{ grid-template-columns: 1fr 1fr }
  .testimonials{ grid-template-columns: 1fr }
  .gallery-grid{ grid-template-columns: 1fr 1fr }
}

@media (max-width: 520px){
  .services-grid{ grid-template-columns: 1fr }
  .gallery-grid{ grid-template-columns: 1fr 1fr; gap:10px }
  .about, .services, .galerie, .avis, .faq, .contact{ padding:64px 0 }
  .btn{ padding:12px 18px }
  .nav-wrap{ padding:12px 18px }
  .container{ padding:0 18px }
  .hero-inner{ padding-left:18px; padding-right:18px }
  .hero-photo{ padding:18px; min-height: 260px }
  .hero-photo img{ min-height: 260px }
  .logo-text{ font-size:1.5rem }
}

@media (display-mode: standalone){
  body{ padding-top: env(safe-area-inset-top) }
}
