*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; }
img, video { max-width: 100%; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #EA5F3A; outline-offset: 3px;
}

/* Header */
.site-header { position: relative; z-index: 50; }
.menu-btn {
  display: none; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 999px; border: 1px solid #E9D6C8;
  background: #FFFFFF; color: #951327; cursor: pointer; padding: 0;
}
.menu-btn path { transition: transform .25s ease, opacity .2s ease; transform-origin: 12px 12px; }
.menu-btn.open .l1 { transform: translateY(5px) rotate(45deg); }
.menu-btn.open .l2 { opacity: 0; }
.menu-btn.open .l3 { transform: translateY(-5px) rotate(-45deg); }

@media (max-width: 900px) {
  .site-header > div { flex-wrap: nowrap !important; padding: 14px 16px !important; justify-content: center !important; position: relative; min-height: 74px; }
  .site-header .menu-btn { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); }
  .site-header img { height: 38px !important; }
  .site-cta { display: none !important; }
  .menu-btn { display: inline-flex; }
  .site-nav {
    display: none !important;
    position: absolute; top: calc(100% - 4px); left: 12px; right: 12px;
    flex-direction: column !important; align-items: stretch !important; gap: 4px !important;
    padding: 10px !important; border-radius: 22px !important;
    box-shadow: 0 18px 40px rgba(42, 18, 21, 0.16) !important;
    font-size: 16px !important;
  }
  .site-nav.open { display: flex !important; }
  .site-nav a { min-height: 50px !important; padding: 0 18px !important; justify-content: flex-start; }
}

/* Contact form: one column on phones */
@media (max-width: 600px) {
  .contact-form { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Never cut words with a hyphen */
h1, h2, h3, p, span, a { hyphens: manual; -webkit-hyphens: manual; }

/* Phones: calmer type scale */
@media (max-width: 600px) {
  body > div { font-size: 15px !important; }
  h1[style*="Playfair"] { font-size: 34px !important; line-height: 1.1 !important; }
  section[aria-label="Vidéo de présentation"] h1 { font-size: 38px !important; }
  section[aria-label="Vidéo de présentation"] { min-height: 560px !important; }
  h2[style*="Playfair"] { font-size: 27px !important; line-height: 1.15 !important; }
  h3[style*="font-size: 34px"] { font-size: 24px !important; }
  h3[style*="font-size: 30px"], h3[style*="font-size: 28px"] { font-size: 23px !important; }
  h3[style*="font-size: 26px"], h3[style*="font-size: 24px"], span[style*="font-size: 24px"] { font-size: 20px !important; }
  h3[style*="font-size: 22px"], h3[style*="font-size: 21px"], p[style*="Playfair"][style*="font-size: 22px"] { font-size: 19px !important; }
  p[style*="Cormorant"] { font-size: 19px !important; line-height: 1.4 !important; }
  p[style*="font-size: 17px"], div[style*="font-size: 17px"], p[style*="font-size: 16px"] { font-size: 15px !important; }
  p[style*="font-size: 15px"] { font-size: 14px !important; }
  p[style*="clamp(48px, 5vw, 64px)"] { font-size: 46px !important; }
  span[style*="font-size: 40px"] { font-size: 32px !important; }
  /* "Nos offres" cards: more compact on phones */
  section[style*="background: #EA5F3A"] > div[style*="gap: 56px"] { gap: 32px !important; }
  div[style*="padding: 40px 32px"] { padding: 26px 22px !important; gap: 10px !important; border-radius: 14px !important; }
  div[style*="padding: 40px 32px"] > span[style*="font-size: 40px"] { font-size: 26px !important; }
  div[style*="padding: 40px 32px"] > h3 { font-size: 22px !important; }
  div[style*="padding: 40px 32px"] > p { font-size: 17px !important; }
  div[style*="padding: 40px 32px"] > ul { gap: 6px !important; font-size: 14px !important; margin-top: 4px !important; }
  /* client logos: neat 3 x 2 grid */
  ul[aria-label="Nos clients"] { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 10px !important; justify-items: center; align-items: center; width: 100%; max-width: 360px; }
  ul[aria-label="Nos clients"] > li[aria-hidden="true"] { display: none !important; }
  ul[aria-label="Nos clients"] > li { justify-content: center; align-items: center; min-height: 28px; }
  ul[aria-label="Nos clients"] img { width: auto !important; max-width: 92px; }
  ul[aria-label="Nos clients"] img[alt="Chanel"] { height: 26px !important; }
  ul[aria-label="Nos clients"] img[alt="L'Oréal"] { height: 14px !important; }
  ul[aria-label="Nos clients"] img[alt="Microsoft"] { height: 17px !important; }
  ul[aria-label="Nos clients"] img[alt="ENGIE"] { height: 21px !important; }
  ul[aria-label="Nos clients"] img[alt="Havas"] { height: 13px !important; }
  ul[aria-label="Nos clients"] > li:last-child { font-size: 14px !important; letter-spacing: 0.12em !important; }
  /* home "Ils l'ont vécu": compact swipe row instead of 3 tall cards */
  div[style*="repeat(auto-fit, minmax(300px, 1fr))"][style*="gap: 32px"] { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px !important; margin: 0 -24px; padding: 0 24px 6px; scroll-padding-left: 24px; scrollbar-width: none; }
  div[style*="repeat(auto-fit, minmax(300px, 1fr))"][style*="gap: 32px"]::-webkit-scrollbar { display: none; }
  div[style*="repeat(auto-fit, minmax(300px, 1fr))"][style*="gap: 32px"] > a { flex: 0 0 68%; scroll-snap-align: start; gap: 8px !important; }
  div[style*="repeat(auto-fit, minmax(300px, 1fr))"][style*="gap: 32px"] > a > img { aspect-ratio: 4 / 3 !important; }
  div[style*="repeat(auto-fit, minmax(300px, 1fr))"][style*="gap: 32px"] > a > span[style*="font-size: 24px"] { font-size: 16px !important; line-height: 1.3 !important; }
  div[style*="repeat(auto-fit, minmax(300px, 1fr))"][style*="gap: 32px"] > a > span[style*="font-size: 11px"] { font-size: 10px !important; }
  /* footer: smaller, same columns as on desktop */
  footer { font-size: 13px !important; }
  footer > div[style*="flex-direction: column"] { gap: 28px !important; padding-top: 28px !important; }
  footer > div > div[style*="flex-wrap: wrap"] { gap: 24px 16px !important; }
  footer div[style*="flex: 1.6 1 260px"] { flex: 1 1 100% !important; gap: 10px !important; }
  footer div[style*="flex: 1.6 1 260px"] img { height: 46px !important; }
  footer div[style*="flex: 1.6 1 260px"] p { font-size: 15px !important; max-width: none !important; }
  footer div[style*="flex: 1 1 170px"] { flex: 0 0 33% !important; gap: 6px !important; }
  footer div[style*="flex: 1 1 200px"] { flex: 1 1 0 !important; gap: 6px !important; }
  footer a[style*="min-height: 32px"], footer span[style*="min-height: 32px"] { min-height: 26px !important; gap: 7px !important; font-size: 12px; white-space: nowrap; }
  footer a[style*="width: 40px"] { width: 34px !important; height: 34px !important; }
  /* footer centred */
  footer div[style*="flex: 1.6 1 260px"] { align-items: center !important; text-align: center; }
  footer div[style*="flex: 1.6 1 260px"] img { height: 36px !important; align-self: center !important; }
  footer div[style*="flex: 1.6 1 260px"] p { font-size: 14px !important; max-width: 280px !important; }
  footer > div > div[style*="flex-wrap: wrap"] { justify-content: center !important; }
  footer div[style*="flex: 1 1 170px"], footer div[style*="flex: 1 1 200px"] { flex: 0 1 auto !important; align-items: center !important; text-align: center; }
  footer div[style*="flex: 1 1 170px"] { min-width: 120px; }
  footer div[style*="flex: 1 1 200px"] > div { justify-content: center; }
  footer div[style*="border-top: 1px solid rgba(251, 232, 218, 0.35)"] { flex-direction: column; align-items: center; text-align: center; gap: 8px !important; }
  footer div[style*="border-top: 1px solid rgba(251, 232, 218, 0.35)"] > span { justify-content: center; }
  footer > svg[style*="left: 3%"] { display: none; }
  /* shorter pages: less empty space, smaller pictures */
  section[style*="24px 96px"], section[style*="24px 112px"], div[style*="24px 112px"] { padding-bottom: 48px !important; }
  section[style*="padding: clamp(62px, 9vw, 112px)"], section[style*="padding: clamp(57px"], div[style*="padding: clamp(57px"], div[style*="padding: clamp(53px"], section[style*="padding: clamp(53px"] { padding-top: 44px !important; padding-bottom: 44px !important; }
  img[style*="border-radius: 999px 999px 14px 14px"] { max-width: 230px !important; max-height: none !important; margin: 0 auto; outline-offset: 8px !important; }
  img[style*="border-radius: 999px 999px 10px 10px"] { max-width: 190px !important; margin: 0 auto; }
  div[style*="max-width: 380px"] { max-width: 190px !important; }
  section[style*="align-items: center"] > div[style*="flex: 1 1 380px"] { flex-basis: auto !important; display: flex; justify-content: center; }
  div[style*="padding: 36px 32px"] { padding: 20px 20px !important; gap: 8px !important; border-radius: 14px !important; }
  div[style*="padding: 36px 32px"] > h3 { font-size: 21px !important; }
  div[style*="grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))"] { gap: 14px !important; }
  /* closing call-to-action band: smaller title, centred button */
  section#contact > div { flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center; gap: 18px !important; }
  section#contact h2 { font-size: 23px !important; }
  section#contact a { padding: 14px 24px !important; font-size: 12px !important; }
  /* Réalisations page: compact */
  #filters button { min-height: 36px !important; padding: 0 14px !important; font-size: 12px !important; }
  #events { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 22px 12px !important; }
  #events article { gap: 5px !important; }
  #events img { aspect-ratio: 1 / 1 !important; }
  #events span { font-size: 8.5px !important; letter-spacing: 0.1em !important; gap: 5px !important; line-height: 1.35; }
  #events h3 { font-size: 14px !important; line-height: 1.3 !important; }
  #events p { font-size: 11.5px !important; line-height: 1.35; }
  section[aria-labelledby="dernieres"] { padding-bottom: 44px !important; gap: 20px !important; }
  section[aria-labelledby="dernieres"] article > img[style*="16 / 10"] { aspect-ratio: 4 / 3 !important; }
  section[aria-labelledby="dernieres"] div[style*="flex: 1 1 360px"] { flex-direction: row !important; gap: 12px !important; }
  section[aria-labelledby="dernieres"] div[style*="flex: 1 1 360px"] > article { flex: 1 1 0; min-width: 0; gap: 6px !important; }
  section[aria-labelledby="dernieres"] div[style*="flex: 1 1 360px"] h3 { font-size: 14px !important; line-height: 1.3 !important; }
  section[aria-labelledby="dernieres"] div[style*="flex: 1 1 360px"] span { font-size: 8.5px !important; letter-spacing: 0.1em !important; }
  section[aria-labelledby="dernieres"] > div[style*="flex-wrap: wrap"] { gap: 20px !important; }
  section[aria-labelledby="toutes"] > div { gap: 24px !important; padding-bottom: 48px !important; }
  /* "Symfonia en quelques mots": 3 small tiles on one line */
  section[aria-label="Symfonia en chiffres"] > div { gap: 22px !important; }
  section[aria-label="Symfonia en chiffres"] div[style*="justify-content: center; gap: 24px"] { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px !important; }
  div[style*="padding: 40px 28px"] { padding: 16px 8px !important; gap: 6px !important; border-radius: 12px !important; box-shadow: 0 8px 18px rgba(122, 36, 20, 0.16) !important; }
  div[style*="padding: 40px 28px"] > p[style*="clamp(48px, 5vw, 64px)"] { font-size: 30px !important; min-height: 32px; display: flex; align-items: center; }
  div[style*="padding: 40px 28px"] > div[role="img"] { min-height: 32px !important; gap: 1px !important; }
  div[style*="padding: 40px 28px"] > div[role="img"] svg { width: 12px; height: 12px; }
  div[style*="padding: 40px 28px"] > div[aria-hidden="true"] { min-height: 32px !important; }
  div[style*="padding: 40px 28px"] > div[aria-hidden="true"] svg { width: 28px; height: 28px; }
  div[style*="padding: 40px 28px"] > p[style*="font-size: 22px"] { font-size: 12.5px !important; line-height: 1.25; }
  div[style*="padding: 40px 28px"] > p[style*="max-width: 240px"] { display: none !important; }
  section[aria-label="Témoignage"] { gap: 14px !important; }
  section[aria-label="Témoignage"] div[aria-live] { min-height: 190px !important; gap: 12px !important; }
  #rv-text { font-size: 18px !important; }
  /* Contact page: compact */
  .contact-form { padding: 18px 16px !important; gap: 12px !important; border-radius: 14px !important; }
  .contact-form label { font-size: 11px !important; }
  .contact-form > div:not([style*="grid-column"]) { justify-content: flex-end !important; }
  .contact-form input:not([type="checkbox"]), .contact-form select { min-height: 40px !important; font-size: 14px !important; padding: 0 12px !important; }
  .contact-form textarea { font-size: 14px !important; height: 96px; }
  .contact-form label[for="c-rgpd"] { font-size: 12px !important; }
  .contact-form button[type="submit"] { min-height: 46px !important; padding: 0 26px !important; font-size: 12px !important; width: 100%; }
  .contact-form span[style*="font-size: 19px"] { font-size: 16px !important; width: 100%; text-align: center; }
  div[style*="text-align: center; gap: 22px; max-width: 760px"] { gap: 12px !important; }
  div[style*="text-align: center; gap: 22px; max-width: 760px"] > div { gap: 6px !important; }
  div[style*="text-align: center; gap: 22px; max-width: 760px"] a, div[style*="text-align: center; gap: 22px; max-width: 760px"] > div > span { min-height: 34px !important; padding: 0 14px !important; font-size: 12.5px !important; gap: 7px !important; }
  div[style*="text-align: center; gap: 22px; max-width: 760px"] svg { width: 14px; height: 14px; }
  div[style*="align-items: center; gap: 44px"] { gap: 24px !important; }
  section[aria-label="Témoignage"] p[style*="clamp(22px, 2.6vw, 30px)"] { font-size: 17px !important; }
  section[aria-label="Témoignage"] > div[style*="padding: clamp(48px, 9vw, 80px)"] { padding-top: 36px !important; padding-bottom: 36px !important; gap: 12px !important; }
  /* floating stars would sit on the text on a narrow screen */
  section > svg[aria-hidden="true"][style*="position: absolute"]:not([style*="-3"]),
  div[style*="position: relative; overflow: hidden"] > svg[aria-hidden="true"][style*="position: absolute"] { display: none !important; }
}

/* Very narrow phones: shrink titles a little more so long words fit whole */
@media (max-width: 360px) {
  h1[style*="Playfair"] { font-size: 30px !important; }
  h2[style*="Playfair"] { font-size: 24px !important; }
}