@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&family=Titan+One&display=swap');

:root{
  /* Palette (rouge/rose) - proche de ton style actuel */
  --bg: #f0d7d1;
  --surface: #ffffffcc;
  --surface-solid: #fff;
  --secondary: #b2675a;
  --pink: #f2635a;
  --red: #e62d21;
  --text: #1f1f1f;
  --muted: #5b4c4c;
  --white: #fff;

  --shadow: 0 14px 30px rgba(20, 10, 10, .14);
  --shadow-soft: 0 8px 18px rgba(20, 10, 10, .10);
  --radius: 16px;
  --radius-sm: 12px;

  --container: 1120px;
  --ring: 0 0 0 3px rgba(242, 99, 90, .55);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family: 'Roboto', sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }

/* Vidéo de fond, fixe, en boucle */
.bg-video{
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.bg-video::after{
  content:'';
  position:absolute;
  inset:0;
  background: var(--bg);
  opacity: .55;
}
.bg-video video{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Accessibilité */
.skip-link{
  position:absolute; left:-999px; top:16px;
  background: var(--red); color: var(--white);
  padding:.7rem 1rem; border-radius: 999px;
  z-index: 9999;
}
.skip-link:focus{ left:16px; outline:none; box-shadow: var(--ring); }

.container{ width:min(var(--container), calc(100% - 2rem)); margin-inline:auto; }

/* Header */
.site-header{
  position: sticky; top: 0; z-index: 1000;
  backdrop-filter: blur(10px);
  background: #e9463c;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.header-inner{
  width:min(var(--container), calc(100% - 2rem));
  margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between;
  gap: 1rem;
  height: 72px;
}

.brand{ display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.brand-mark{
  width: 40px; height: 40px; border-radius: 50%;
  display:grid; place-items:center;
  overflow:hidden;
  color: var(--white);
  background: var(--red);
  box-shadow: 0 10px 20px rgba(0,0,0,.18);
  font-weight: 900;
}
.brand-mark img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.brand-text{ color: var(--white); line-height:1.05; }
.brand-text strong{
  display:block;
  font-family: 'Titan One', cursive;
  font-weight: 400;
  letter-spacing: .5px;
}
.brand-text span{ display:block; opacity:.9; font-weight: 500; font-size: .92rem; }

.nav ul{ list-style:none; display:flex; align-items:center; gap: 1.1rem; }
.nav a{
  text-decoration:none;
  color: rgba(255,255,255,.92);
  font-weight: 600;
  padding:.55rem .7rem;
  border-radius: 999px;
  transition: transform .18s ease, background .18s ease, opacity .18s ease;
}
.nav a:hover{ background: rgba(255,255,255,.14); transform: translateY(-1px); }

.header-cta{ display:flex; align-items:center; gap:.6rem; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  border-radius: 999px;
  padding: .7rem 1rem;
  font-weight: 700;
  text-decoration:none;
  border: 1px solid transparent;
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn:focus{ outline:none; box-shadow: var(--ring); }
.btn-solid{
  background: var(--red);
  color: var(--white);
  box-shadow: 0 12px 22px rgba(230,45,33,.24);
}
.btn-solid:hover{ transform: translateY(-2px); box-shadow: 0 16px 28px rgba(230,45,33,.30); }

.btn-ghost{
  background: rgba(255,255,255,.12);
  color: var(--white);
  border-color: rgba(255,255,255,.22);
}
.btn-ghost:hover{ background: rgba(255,255,255,.18); transform: translateY(-1px); }

.btn-lang{
  background: rgba(255,255,255,.14);
  color: var(--white);
  border: 1px solid rgba(255,255,255,.30);
  font-family: inherit;
  font-weight: 800;
  font-size: .84rem;
  letter-spacing: .9px;
  padding: .5rem .85rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.btn-lang:hover{ background: rgba(255,255,255,.24); transform: translateY(-1px); }
.btn-lang:focus{ outline: none; box-shadow: var(--ring); }

/* Menu mobile */
.nav-toggle{ display:none; }
.burger{
  display:none;
  width: 44px; height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.12);
  padding: 10px;
  cursor:pointer;
}
.burger span{ display:block; height:2px; background: rgba(255,255,255,.95); margin: 6px 0; border-radius: 2px; }

.nav-drawer{
  display:none;
  width:min(var(--container), calc(100% - 2rem));
  margin: 0 auto 12px;
  padding: 12px;
  border-radius: var(--radius);
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
}
.nav-drawer a{
  display:block;
  color: rgba(255,255,255,.95);
  text-decoration:none;
  padding: .8rem .9rem;
  border-radius: 12px;
  font-weight: 700;
}
.nav-drawer a:hover{ background: rgba(255,255,255,.12); }

/* HERO */
.hero{
  position: relative;
  overflow:hidden;
  padding: clamp(2rem, 4vw, 4rem) 0 clamp(1rem, 2vw, 1.6rem);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.2fr .9fr;
  gap: clamp(1.2rem, 3vw, 2.4rem);
  align-items:center;
}

.kicker{
  display:inline-flex; align-items:center; gap:.5rem;
  color: rgba(31,31,31,.85);
  background: rgba(255,255,255,.45);
  border: 1px solid rgba(178,103,98,.22);
  padding:.45rem .75rem;
  border-radius: 999px;
  width: fit-content;
  box-shadow: var(--shadow-soft);
}

.hero h1{
  margin-top: 1rem;
  font-size: clamp(3rem, 7vw, 5rem);
  line-height: 1.05;
  letter-spacing: -0.6px;
}
.hero .accent{
  font-family: 'Titan One', cursive;
  font-weight: 400;
  letter-spacing: 1px;
  color: var(--red);
}

.lead{
  margin-top: 1rem;
  color: var(--muted);
  font-size: clamp(1rem, 2vw, 1.12rem);
  max-width: 60ch;
}

.hero-actions{ display:flex; gap:.8rem; margin-top: 1.4rem; flex-wrap:wrap; }

.hero-badges{
  margin-top: 1.4rem;
  display:flex; gap:.7rem; flex-wrap:wrap;
}
.badge{
  display:inline-flex; align-items:center; gap:.5rem;
  background: rgba(255,255,255,.50);
  border: 1px solid rgba(178,103,98,.20);
  padding: .55rem .8rem;
  border-radius: 999px;
  box-shadow: var(--shadow-soft);
  font-weight: 700;
}

.hero-media{ display:flex; justify-content:center; }
.media-card{
  width: min(360px, 100%);
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(178,103,98,.22);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
  transform: rotate(-1.4deg);
  transition: transform .2s ease;
}
.media-card:hover{ transform: rotate(0deg) translateY(-4px); }
.media-card img{
  height: 420px;
  width: 100%;
  object-fit: cover;
  transition: opacity .3s ease;
}
.media-card figcaption{
  display:flex; gap:.6rem; flex-wrap:wrap;
  padding: 12px 14px;
  justify-content: space-between;
}
.pill{
  display:inline-flex; align-items:center; gap:.45rem;
  font-weight: 800;
  font-size: .86rem;
  color: rgba(31,31,31,.9);
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(178,103,98,.18);
  padding:.45rem .65rem;
  border-radius: 999px;
}


/* Sections */
.section{ padding: clamp(1.2rem, 2.2vw, 2rem) 0; }
#contact.section{ padding: clamp(2.2rem, 4vw, 4rem) 0; }
.section-head{ margin-bottom: 1.4rem; }
.section-head h2{
  font-size: clamp(1.7rem, 3.2vw, 2.2rem);
  letter-spacing: -0.3px;
}
.section-head p{ color: var(--muted); margin-top: .55rem; max-width: 70ch; }

/* Cards */
.cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

/* Cartes Infos — les deux adresses empilées à gauche, l'horaire à droite */
.cards-split{
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: .8rem;
}
.cards-split .card{ padding: 1rem 1.15rem; }
.address-cards{
  display:flex;
  flex-direction: column;
  gap: .8rem;
}
.card-address{
  display:flex;
  align-items:center;
  gap: .9rem;
  flex: 1;
}
.card-address .card-icon{ flex-shrink:0; width:46px; height:46px; }
.card-address-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap: 2px;
}
.card-address-body h3{ margin:0; font-size: .9rem; line-height:1.15; }
.card-address-body .card-link{ margin:0; font-size:.75rem; line-height:1.15; gap:.35rem; }
.card-hours{
  display:flex;
  flex-direction:column;
}
.card-hours p{ margin-top:0; font-size: 1.3rem; line-height: 1.5; }

/* Qui sommes-nous */
#qui-sommes-nous{
  background: var(--surface-solid);
  padding: 0;
}
.about-row{
  display:flex;
  align-items:center;
  gap: 2rem;
  flex-wrap:wrap;
}
.about-text{ flex: 1 1 360px; }
.about-text h2{ font-size: clamp(1.5rem, 2.4vw, 1.9rem); letter-spacing: -0.3px; }
.about-text p{ margin-top: .8rem; font-size: 1.4rem; line-height: 1.35; text-align: justify; }
.about-video-frame{
  flex: 0 1 40%;
  overflow: hidden;
  border: 1px solid rgba(178,103,98,.18);
  box-shadow: var(--shadow-soft);
}
.about-video-frame video{
  display:block;
  width: 100%;
  height: auto;
}
.card.about-text{
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  transition: none;
}
.card.about-text:hover{
  transform: none;
  box-shadow: none;
}

@media (max-width: 820px){
  .about-row{ flex-direction: column; }
  .about-video-frame{ flex-basis: 100%; }
}

.card{
  background: var(--white);
  border: 1px solid rgba(178,103,98,.18);
  border-radius: var(--radius);
  padding: 1.2rem 1.1rem;
  box-shadow: var(--shadow-soft);
  position: relative;
  overflow:hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.card:hover{ transform: translateY(-6px); box-shadow: var(--shadow); }
.card-icon{
  width: 42px; height: 42px;
  display:grid; place-items:center;
  border-radius: 14px;
  background: var(--red);
  color: var(--white);
  box-shadow: 0 12px 24px rgba(178,103,98,.24);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
a.card-icon:hover{ transform: translateY(-2px); box-shadow: 0 16px 28px rgba(178,103,98,.32); }
.card h3{ margin-top: 1rem; font-size: 1.12rem; }
.card p{ margin-top: .7rem; color: rgba(31,31,31,.82); }
.card .muted{ color: var(--muted); font-size: .92rem; }
.card-link{
  display:inline-flex; align-items:center; gap:.55rem;
  margin-top: 1rem;
  color: rgba(230,45,33,.95);
  font-weight: 900;
  text-decoration:none;
}
.card-link:hover{ text-decoration: underline; }

/* Espace avant le footer (ex-section Contact) */
.section-gap{ height: clamp(6rem, 12vw, 12rem); }

.contact-aside{ display:grid; gap: 1rem; }
.mini-contrast{
  background: var(--red);
  color: rgba(255,255,255,.95);
  border-color: rgba(255,255,255,.18);
}
.mini-contrast p{ color: rgba(255,255,255,.92); }
.mini-contrast .btn-ghost{ border-color: rgba(255,255,255,.28); }

.social{ display:flex; gap: .6rem; margin-top: .8rem; }
.hero-social{ margin-top: 1.4rem; }
.social-btn{
  width: 44px; height: 44px;
  border-radius: 999px;
  display:grid; place-items:center;
  text-decoration:none;
  color: var(--white);
  background: var(--red);
  box-shadow: 0 12px 24px rgba(178,103,98,.22);
  transition: transform .18s ease, box-shadow .18s ease;
}
.social-btn:hover{ transform: translateY(-2px); box-shadow: 0 16px 30px rgba(178,103,98,.28); }

/* Footer */
.site-footer{
  background: #e9463c;
  color: var(--white);
  padding: 1.4rem 0;
}
.footer-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.2rem;
  flex-wrap:wrap;
}
.footer-brand{
  font-family: 'Titan One', cursive;
  font-weight: 400;
  font-size: 1.3rem;
  letter-spacing: .5px;
  color: var(--white);
}
.footer-contact{
  display:flex;
  align-items:center;
  gap: 1.4rem;
  flex-wrap:wrap;
}
.footer-contact-link{
  display:inline-flex;
  align-items:center;
  gap: .5rem;
  color: var(--white);
  text-decoration:none;
  font-weight: 600;
  font-size: .95rem;
}
.footer-contact-link:hover{ opacity: .85; }
.footer-social{ display:flex; align-items:center; gap: .9rem; }
.footer-social a{ color: var(--white); font-size: 1.2rem; text-decoration:none; }
.footer-social a:hover{ opacity: .8; }
.footer-right{ display:flex; align-items:center; gap: 1.6rem; flex-wrap:wrap; }
.footer-logo img{
  width: 76px; height: 76px;
  border-radius: 50%;
  object-fit: cover;
  display:block;
}
.footer-bottom{
  margin-top: 1.2rem;
  text-align:center;
  font-size: .85rem;
  color: rgba(255,255,255,.85);
}
.muted{ color: var(--muted); }

/* Bouton retour en haut */
.to-top{
  position: fixed;
  right: 14px;
  bottom: 14px;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  text-decoration:none;
  color: var(--white);
  background: var(--red);
  box-shadow: 0 16px 30px rgba(230,45,33,.28);
  border: 1px solid rgba(255,255,255,.25);
}
.to-top:hover{ transform: translateY(-2px); }

/* Responsive */
@media (max-width: 980px){
  .cards{ grid-template-columns: repeat(2, 1fr); }
  .cards .card:last-child{ grid-column: 1 / -1; }
  .cards-split{ grid-template-columns: 1fr; }
  .grid-products{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px){
  .nav, .header-cta{ display:none; }
  .burger{ display:block; }
  .header-inner{ flex-wrap:wrap; height:auto; padding: 10px 0; }
  .brand{ flex: 1 1 auto; }
  .burger{ order: 3; }
  .nav-toggle{ order: 2; }
  .nav-drawer{ flex-basis: 100%; }
  .nav-drawer{ display:none; }
  .nav-toggle:checked ~ .burger{ box-shadow: var(--ring); }
  /* Le drawer est le sibling suivant du header-inner (dans le HTML) */
  .nav-toggle:checked ~ .nav-drawer{ display:block; }
  .hero-grid{ grid-template-columns: 1fr; }
  .media-card{ transform: none; }
}

@media (max-width: 520px){
  .cards{ grid-template-columns: 1fr; }
  .grid-products{ grid-template-columns: 1fr; }
  .callout{ flex-direction: column; align-items: flex-start; }
}

/* Avis clients */
.avis-summary{
  display:flex; align-items:center; gap:.7rem;
  margin-top: .65rem; flex-wrap:wrap;
}
.avis-stars{
  display:flex; gap:3px;
  color: #c8820a;
  font-size: 1.25rem;
}
.avis-score{
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--red);
  line-height: 1;
}
.avis-count{ font-size: .93rem; color: var(--muted); }
.avis-source{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size: .82rem; font-weight: 700;
  color: var(--muted);
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(178,103,98,.18);
  padding: .3rem .6rem;
  border-radius: 999px;
}

.reviews-grid{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1rem;
  margin-top: .4rem;
}
.review-card{
  display:flex; flex-direction:column; gap:.75rem;
  min-height: 200px;
  transition: opacity .35s ease, transform .2s ease, box-shadow .2s ease;
  cursor: default;
}
.review-stars{ display:flex; gap:2px; color:#c8820a; }
.review-text{
  font-style: italic;
  color: rgba(31,31,31,.80);
  line-height: 1.6;
  flex: 1;
}
.review-author{
  font-weight: 700;
  font-size: .9rem;
  color: var(--secondary);
}

@media (max-width: 820px){
  .reviews-grid{ grid-template-columns: 1fr; }
}

/* Respect des préférences d'animation */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .media-card, .card, .product, .btn, .social-btn, .review-card{ transition: none; }
}
