/* =============================================================
   Paname Services — feuille de style principale
   ============================================================= */

/* ---------- Polices ----------
   Chargées par header.php : assets/fonts/fonts.css si présent (auto-hébergé, voir outils/telecharger-polices.py),
   sinon Google Fonts (Nunito Sans, Heebo) + fonts.cdnfonts.com (Lemon/Milk) comme sur le site d'origine.
   Familles utilisées : 'Lemon/Milk' (400/700), 'Lemon/Milk light' (300), 'Nunito Sans', 'Heebo'. */

/* ---------- Variables ---------- */
:root {
  --black: #000;
  --dark: #0f0f0f;
  --yellow: #ffcc00;
  --btn: #ffd027;
  --cream: #ffffed;
  --text: #252425;
  --muted: #5c5c5c;
  --light: #dedede;
  --line: #e8e8e8;
  --bordeaux: #a22338;
  --font-title: 'Lemon/Milk', 'Nunito Sans', Arial, sans-serif;
  --font-title-light: 'Lemon/Milk light', 'Lemon/Milk', 'Nunito Sans', Arial, sans-serif;
  --font-alt: 'Heebo', 'Nunito Sans', Arial, sans-serif;
  --font-body: 'Nunito Sans', Arial, Helvetica, sans-serif;
  --container: 1140px;
  --radius: 0;
  --shadow: 0 6px 30px rgba(0,0,0,.08);
  --header-h: 70px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font-body); font-weight: 300; font-size: 18px; line-height: 1.5; color: #000; background: #fff; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0 0 .5em; font-family: var(--font-title); text-transform: uppercase; line-height: 1.1; font-weight: 700; letter-spacing: 0; }
h1 { font-size: 52px; }
h2 { font-size: 36px; }
h3 { font-size: 23px; font-weight: 400; line-height: 1.2; }
h4 { font-size: 16px; font-weight: 400; }
h1 .accent, h2 .accent, h3 .accent { font-family: var(--font-title-light); font-weight: 300; }
p { margin: 0 0 1em; }
.accent { color: var(--yellow); }
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.section { padding: 90px 0; }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--yellow); padding: 8px 12px; z-index: 999; }
.skip-link:focus { left: 8px; }

/* ---------- Icônes (SVG en masque) ---------- */
.ico { display: inline-block; width: 1em; height: 1em; background-color: currentColor; vertical-align: -0.15em;
  -webkit-mask: var(--svg) no-repeat center / contain; mask: var(--svg) no-repeat center / contain; }
.ico-phone     { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M497.4 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.7 370.7 0 0 1 130.6 204.1l60.6-49.6a23.9 23.9 0 0 0 6.9-28l-48-112A24.2 24.2 0 0 0 122.6.6l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.3 24.3 0 0 0-14-27.6z'/></svg>"); }
.ico-mail      { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z'/></svg>"); }
.ico-instagram { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/></svg>"); }
.ico-linkedin  { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M100.3 448H7.4V148.9h92.9zM53.8 108.1C24.1 108.1 0 83.5 0 53.8a53.8 53.8 0 0 1 107.6 0c0 29.7-24.1 54.3-53.8 54.3zM447.9 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448z'/></svg>"); }
.ico-chevron   { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='none' stroke='black' stroke-width='2' d='M4 8l8 8 8-8'/></svg>"); }
.ico-arrow     { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/></svg>"); }
.ico-check     { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM227.3 387.3l184-184c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0L216 308.1l-70.1-70.1c-6.2-6.2-16.4-6.2-22.6 0l-22.6 22.6c-6.2 6.2-6.2 16.4 0 22.6l104 104c6.2 6.3 16.4 6.3 22.6 0z'/></svg>"); }
.ico-pin       { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><path d='M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7-9.5 13.8-29.9 13.8-39.5 0zM192 272c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80z'/></svg>"); }
.ico-clock     { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm92.5 313h0l-20 25c-4.1 5.2-11.7 6-16.9 1.9l-63.5-47c-2.9-2.3-4.5-5.7-4.5-9.3V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l50.9 39.4c5.2 4.1 6.1 11.7 2 16.9z'/></svg>"); }
.ico-plus      { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11 4h2v7h7v2h-7v7h-2v-7H4v-2h7z'/></svg>"); }
.ico-quote     { --svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z'/></svg>"); }

/* ---------- Boutons ---------- */
.btn { display: inline-block; padding: 20px 40px; font-size: 15px; font-weight: 300; line-height: 1; text-decoration: underline; text-underline-offset: 3px; border: 0; cursor: pointer; font-family: var(--font-body); transition: background .2s, color .2s, transform .2s; }
.btn:hover { transform: translateY(-2px); }
.btn--yellow { background: var(--btn); color: var(--black); }
.btn--yellow:hover { background: var(--yellow); }
.btn--cream { background: var(--cream); color: var(--black); text-decoration: none; }
.btn--cream:hover { background: var(--yellow); }
.btn--bordeaux { background: var(--bordeaux); color: #fff; }
.btn--block { display: block; width: 100%; text-align: center; text-decoration: none; padding: 18px; font-size: 15px; }

/* ---------- Barre supérieure ---------- */
.topbar { background: var(--black); color: #fff; font-size: 14px; border-bottom: 1px solid #1c1c1c; }
.topbar__inner { display: flex; justify-content: space-between; align-items: center; height: 40px; }
.topbar__contact { display: flex; align-items: center; gap: 12px; color: var(--light); }
.topbar__contact a:hover { color: var(--yellow); }
.topbar__contact .ico { color: var(--yellow); margin-right: 8px; font-size: 13px; }
.topbar__sep { width: 1px; height: 18px; background: #444; }
.topbar__social { display: flex; gap: 10px; }
.topbar__social a, .footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--yellow); color: var(--black); font-size: 12px; transition: background .2s; }
.topbar__social a:hover, .footer__social a:hover { background: #fff; }

/* ---------- Header ---------- */
.header { position: sticky; top: 0; z-index: 100; background: var(--black); color: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.3); }
.header__inner { display: flex; align-items: center; height: var(--header-h); gap: 20px; }
.header__logo img { width: 42px; height: auto; }
.nav { margin-left: auto; margin-right: auto; }
.nav__list { display: flex; align-items: center; gap: 30px; }
.nav__item { position: relative; }
.nav__item > a { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; padding: 10px 0; color: #fff; transition: color .2s; }
.nav__item > a .ico { font-size: 12px; }
.nav__item > a:hover, .nav__item.is-active > a { color: var(--yellow); }
.nav__toggle { display: none; }
.nav__sub { position: absolute; top: 100%; left: -16px; min-width: 260px; background: #fff; color: var(--text); box-shadow: 0 10px 30px rgba(0,0,0,.15); padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .2s; }
.nav__sub a { display: block; padding: 9px 20px; font-size: 14px; }
.nav__sub a:hover { color: var(--black); background: var(--cream); }
.has-sub:hover .nav__sub, .has-sub:focus-within .nav__sub, .has-sub.is-open .nav__sub { opacity: 1; visibility: visible; transform: none; }
.header__cta { margin-left: auto; padding: 16px 34px; font-size: 15px; }
.burger { display: none; width: 40px; height: 40px; background: none; border: 0; cursor: pointer; padding: 6px; margin-left: auto; }
.burger span { display: block; width: 100%; height: 2px; background: #fff; margin: 6px 0; transition: transform .2s, opacity .2s; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- Titres de section ---------- */
.section-head { margin-bottom: 40px; }
.section-head--center { text-align: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 14px; font-size: 18px; font-weight: 300; text-transform: uppercase; color: #000; margin-bottom: 4px; }
.eyebrow::after { content: ""; width: 80px; height: 2px; background: var(--yellow); }
.section-head--center .eyebrow { justify-content: center; }
.section-head h2 { margin: 0; }
.dark .eyebrow { color: #fff; }

/* ---------- HERO ACCUEIL ---------- */
.hero { position: relative; display: grid; grid-template-columns: 1fr 1fr; background: var(--black); color: #fff; }
.hero__content { display: flex; align-items: center; padding: 100px 0 150px; }
.hero__content > div { width: 100%; max-width: calc(var(--container) / 2); margin-left: auto; padding: 0 60px 0 20px; }
.hero h1 { font-size: 52px; margin-bottom: 20px; }
.hero p { color: var(--light); font-family: var(--font-alt); font-size: 16px; line-height: 1.5; }
.hero p strong { color: #fff; font-weight: 700; }
.hero .btn { margin-top: 20px; }
.hero__img { min-height: 620px; background: #222 center / cover no-repeat; }
.hero__stats { position: absolute; left: 50%; bottom: -80px; margin-left: 66px; background: var(--btn); color: var(--black); display: flex; gap: 50px; padding: 36px 42px; width: 380px; }
.stat__num { font-family: var(--font-body); font-size: 28px; font-weight: 700; color: var(--text); }
.stat__num sup { color: var(--yellow); font-size: 14px; margin-left: 3px; top: -.6em; }
.stat__label { font-size: 18px; line-height: 1.4; }

/* ---------- Grille de services ---------- */
.services-grid { padding-top: 160px; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.card { background: #fff; box-shadow: var(--shadow); padding: 40px 32px 36px; border: 1px solid var(--line); transition: transform .25s, box-shadow .25s; }
.card:hover { transform: translateY(-6px); box-shadow: 0 14px 40px rgba(0,0,0,.12); }
.cards .card:nth-child(3n+2) { transform: translateY(24px); }
.cards .card:nth-child(3n+2):hover { transform: translateY(18px); }
.card__picto { height: 60px; width: auto; margin-bottom: 16px; }
.card h3 { font-size: 23px; margin-bottom: 12px; }
.card p { color: #000; font-size: 18px; line-height: 1.5; }
.card__more { font-size: 15px; text-decoration: underline; text-underline-offset: 3px; color: var(--muted); }
.card__more .ico { color: var(--yellow); margin-left: 4px; font-size: 12px; }
.card__more:hover { color: var(--black); }

.encheres { margin-top: 60px; background: var(--dark); color: #fff; text-align: center; padding: 50px 40px; }
.encheres img { margin: 0 auto 20px; width: 150px; }
.encheres h3 { font-size: 23px; margin-bottom: 14px; }
.encheres p { color: var(--light); max-width: 900px; margin: 0 auto; }

/* ---------- Double image (accueil & pages services) ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.photos { position: relative; padding-bottom: 200px; max-width: 460px; }
.photos img { box-shadow: var(--shadow); }
.photos__main { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.photos__second { position: absolute; right: -80px; bottom: 0; width: 55%; aspect-ratio: 3/4; object-fit: cover; border: 6px solid #fff; }
.photos--single { padding-bottom: 0; }
.photos--single .photos__main { aspect-ratio: 3/4; }

.checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 30px; margin: 24px 0 32px; }
.checklist li { position: relative; padding-left: 28px; font-size: 18px; }
.checklist li .ico { position: absolute; left: 0; top: 4px; color: var(--yellow); font-size: 15px; }

.quote { background: var(--cream); border-left: 4px solid var(--black); padding: 24px 30px; margin: 0 0 30px; font-size: 18px; }
.quote p { margin-bottom: 20px; }
.quote cite { font-style: normal; }

/* ---------- Logos clients ---------- */
.clients { padding: 80px 0 60px; background: linear-gradient(#fff 28%, #f3f3f3 100%); text-align: center; }
.clients h2 { margin-bottom: 50px; }
.marquee { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marquee__track { display: flex; align-items: center; gap: 90px; width: max-content; animation: marquee 35s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__track img { height: 44px; width: auto; max-width: 180px; object-fit: contain; filter: grayscale(0); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Bloc contact (accueil) ---------- */
.contact-cta { position: relative; color: #fff; text-align: center; padding: 100px 0 220px; background: var(--dark) center / cover no-repeat; }
.contact-cta::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.75); }
.contact-cta .container { position: relative; }
.contact-cta p { max-width: 460px; margin: 0 auto 30px; }
.contact-box { position: relative; z-index: 2; margin-top: -170px; background: #fff; box-shadow: var(--shadow); padding: 40px; display: grid; grid-template-columns: 1fr 1.2fr; gap: 50px; }
.contact-box__info { background: var(--dark); color: #fff; padding: 40px 32px; }
.contact-box__info h2 { font-size: 18px; font-weight: 400; margin-bottom: 20px; }
.contact-box__info p { color: var(--light); font-size: 16px; }
.contact-box__info ul { margin-top: 24px; }
.contact-box__info li { position: relative; padding-left: 28px; margin-bottom: 14px; font-size: 16px; }
.contact-box__info li .ico { position: absolute; left: 0; top: 5px; color: var(--yellow); font-size: 14px; }
.contact-box__info a:hover { color: var(--yellow); }

/* ---------- Formulaire ---------- */
.form__row { margin-bottom: 16px; }
.form input, .form textarea { width: 100%; padding: 12px 14px; font: inherit; font-size: 16px; color: var(--text); border: 1px solid #d8d8d8; background: #fff; border-radius: 3px; }
.form input:focus, .form textarea:focus { outline: 2px solid var(--yellow); outline-offset: 0; border-color: var(--yellow); }
.form textarea { resize: vertical; min-height: 110px; }
.form__hp { position: absolute; left: -9999px; }
.form__check { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; }
.form__check input { width: 90px; }
.form__recaptcha { min-height: 78px; }
.form__flash { padding: 14px 16px; margin-bottom: 18px; font-size: 15px; border-radius: 3px; }
.form__flash--ok { background: #e9f7ea; color: #1e6b2b; border: 1px solid #b6e2bb; }
.form__flash--err { background: #fdecec; color: #8a1c1c; border: 1px solid #f3b7b7; }

/* ---------- Avis ---------- */
.avis { padding: 100px 0; }
.avis .split { align-items: start; }
.avis__text p { color: var(--muted); }
.avis__card { position: relative; background: #fff; box-shadow: var(--shadow); padding: 36px 40px 30px; min-height: 230px; border-left: 2px solid #eee; overflow: hidden; }
.avis__card .ico-quote { position: absolute; right: 40px; bottom: 20px; font-size: 60px; color: var(--yellow); opacity: .35; }
.avis__slide { display: none; }
.avis__slide.is-active { display: block; animation: fade .5s; }
.avis__slide p { font-size: 18px; margin-bottom: 40px; }
.avis__slide cite { font-style: normal; font-size: 15px; font-weight: 600; }
.avis__dots { display: flex; gap: 8px; margin-top: 16px; }
.avis__dots button { width: 8px; height: 8px; border-radius: 50%; border: 0; background: #ccc; padding: 0; cursor: pointer; }
.avis__dots button[aria-selected="true"] { background: var(--yellow); }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Pied de page ---------- */
.footer { background: var(--black); color: #fff; padding: 80px 0 30px; font-size: 16px; }
.footer__grid { display: grid; grid-template-columns: 1.3fr .9fr .9fr 1.4fr; gap: 40px; }
.footer__brand img { width: 90px; margin-bottom: 20px; }
.footer__brand p { color: var(--light); max-width: 240px; }
.footer__social { display: flex; gap: 12px; margin-top: 24px; }
.footer__social a { width: 32px; height: 32px; font-size: 14px; }
.footer h4 { color: #fff; font-family: var(--font-body); font-weight: 300; font-size: 18px; text-transform: none; margin-bottom: 26px; position: relative; padding-bottom: 12px; }
.footer h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 55px; height: 2px; background: var(--yellow); }
.footer__col li { margin-bottom: 10px; }
.footer__col a:hover { color: var(--yellow); }
.footer__access p { color: #fff; font-size: 16px; }
.footer__addr { color: var(--yellow); }
.footer__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 60px; }
.footer__card { background: #fff; color: var(--black); display: flex; align-items: center; justify-content: center; gap: 18px; padding: 20px 16px; font-family: var(--font-title); font-weight: 400; text-transform: uppercase; font-size: 16px; transition: transform .2s; }
.footer__card:hover { transform: translateY(-3px); }
.footer__card--yellow { background: var(--btn); }
.footer__card-ico { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; background: var(--yellow); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
.footer__card--yellow .footer__card-ico { background: var(--black); color: #fff; }
.footer__bottom { border-top: 1px solid #333; margin-top: 60px; padding-top: 22px; text-align: right; color: var(--light); font-size: 14px; }
.footer__bottom p { margin: 0; }

/* ---------- Bannière pages intérieures ---------- */
.page-hero { position: relative; background: var(--dark) center / cover no-repeat; color: #fff; text-align: center; padding: 90px 0 80px; }
.page-hero::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.page-hero__inner { position: relative; }
.page-hero h1 { font-size: 52px; margin-bottom: 8px; }
.breadcrumb ol { display: flex; justify-content: center; gap: 8px; font-size: 16px; }
.breadcrumb a { color: var(--yellow); }
.breadcrumb li + li::before { content: "›"; margin-right: 8px; color: var(--yellow); }

/* ---------- Pages services ---------- */
.service { padding: 90px 0 60px; }
.service .eyebrow { margin-top: 10px; }
.service h2 { font-size: 36px; }
.service p { font-size: 18px; }
.accordion { border: 1px solid #ddd; margin: 26px 0 18px; }
.accordion summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary .ico { font-size: 18px; transition: transform .2s; }
.accordion[open] summary .ico { transform: rotate(45deg); }
.accordion .checklist { margin: 4px 18px 18px; }
.service .cards { margin-top: 40px; }
.service--bordeaux .accent { color: var(--bordeaux); }
.service--bordeaux .eyebrow::after { background: var(--bordeaux); }
.service--bordeaux .checklist li .ico { color: var(--bordeaux); }
.service + .services-grid { padding-top: 60px; border-top: 1px solid #ddd; }
.service .lieux li { position: relative; padding-left: 26px; margin-bottom: 6px; font-size: 18px; }
.service .lieux li .ico { position: absolute; left: 0; top: 5px; color: var(--muted); font-size: 14px; }

/* ---------- Page services (index) ---------- */
.services-index { padding: 90px 0 100px; }

/* ---------- À propos ---------- */
.about-intro { padding: 90px 0 100px; }
.about-intro p { font-size: 18px; }
.about-team { display: grid; grid-template-columns: 1fr 1fr; background: var(--black); color: #fff; }
.about-team__text { display: flex; align-items: center; padding: 90px 0; }
.about-team__text > div { width: 100%; max-width: calc(var(--container) / 2); margin-left: auto; padding: 0 60px 0 20px; }
.about-team__text h3 { font-size: 18px; margin: 6px 0 24px; }
.about-team__text p { color: var(--light); font-size: 18px; }
.about-team__img { position: relative; min-height: 540px; background: #333 center / cover no-repeat; }
.about-team__phone { position: absolute; left: 80px; bottom: 50px; background: #fff; color: var(--black); display: flex; align-items: center; gap: 18px; padding: 16px 100px 16px 100px; font-family: var(--font-title); font-weight: 400; font-size: 16px; text-transform: uppercase; }
.about-team__phone .footer__card-ico { background: var(--yellow); }
.about-encheres { display: grid; grid-template-columns: 1fr 1fr; background: var(--black); color: #fff; }
.about-encheres__img { min-height: 640px; background: #333 center / cover no-repeat; }
.about-encheres__text { display: flex; align-items: center; padding: 90px 0; }
.about-encheres__text > div { width: 100%; max-width: calc(var(--container) / 2); margin-right: auto; padding: 0 20px 0 110px; }
.about-encheres__text h3 { font-size: 18px; margin: 6px 0 24px; }
.about-encheres__text p { color: var(--light); font-size: 18px; }
.about-encheres__text img { width: 470px; max-width: 100%; margin-top: 40px; }
.about-insta { padding: 90px 0; text-align: center; }
.about-insta h2 { margin: 0; }
.about-insta a.accent:hover { text-decoration: underline; }

/* ---------- Contact ---------- */
.contact-page { padding: 90px 0 100px; background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><path d='M0 200 Q100 100 200 200 T400 200 M0 300 Q100 200 200 300 T400 300 M0 100 Q100 0 200 100 T400 100' fill='none' stroke='%23f0f0f0' stroke-width='1.5'/></svg>"); }
.contact-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 40px 0 60px; }
.contact-card { background: #fff; box-shadow: var(--shadow); text-align: center; padding: 40px 30px 50px; }
.contact-card--yellow { background: var(--btn); }
.contact-card--black { background: var(--dark); color: #fff; }
.contact-card__ico { width: 48px; height: 48px; border-radius: 50%; background: var(--black); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; margin-bottom: 20px; }
.contact-card--yellow .contact-card__ico { background: var(--black); }
.contact-card--black .contact-card__ico { background: var(--yellow); color: var(--black); }
.contact-card h3 { font-size: 23px; }
.contact-card p { margin: 0; font-size: 18px; }
.contact-card a:hover { text-decoration: underline; }
.contact-form-box { display: grid; grid-template-columns: 1fr 1fr; background: #fff; box-shadow: var(--shadow); }
.contact-form-box iframe { width: 100%; height: 100%; min-height: 520px; border: 0; display: block; }
.contact-form-box .form { padding: 36px 32px; }

/* ---------- FAQ ---------- */
.faq { padding: 0 0 100px; }
.faq__list { max-width: 860px; margin: 0 auto; }
.faq__item { margin: 0 0 12px; background: #fff; }
.faq__item summary { text-decoration: none; font-weight: 700; font-size: 17px; padding: 16px 20px; }
.faq__item p { padding: 0 20px 18px; margin: 0; font-size: 17px; color: var(--text); }

/* ---------- Pages légales ---------- */
.legal { padding: 70px 0 100px; }
.legal .container { max-width: 900px; }
.legal p { font-size: 18px; }
.legal h2 { font-size: 18px; font-family: var(--font-body); font-weight: 700; margin: 30px 0 12px; }
.legal h3 { font-size: 18px; font-family: var(--font-body); font-weight: 700; text-transform: none; margin: 20px 0 8px; }

/* ---------- Animations d'apparition ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } .marquee__track { animation: none; } }

/* =============================================================
   Responsive
   ============================================================= */
@media (max-width: 1100px) {
  .hero__stats { margin-left: 20px; }
  .about-encheres__text > div { padding-left: 50px; }
}
@media (max-width: 960px) {
  h1, .hero h1, .page-hero h1 { font-size: 36px; }
  h2, .service h2 { font-size: 28px; }
  body { font-size: 16px; }
  .section { padding: 60px 0; }
  .burger { display: block; }
  .nav { position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; background: var(--black); margin: 0; padding: 20px; overflow-y: auto; transform: translateX(100%); transition: transform .3s; }
  .nav.is-open { transform: none; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { border-bottom: 1px solid #222; display: flex; flex-wrap: wrap; align-items: center; }
  .nav__item > a { flex: 1; padding: 14px 0; font-size: 16px; }
  .nav__item > a .ico { display: none; }
  .nav__toggle { display: block; width: 44px; height: 44px; background: none; border: 0; position: relative; cursor: pointer; }
  .nav__toggle::before, .nav__toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; background: var(--yellow); transform: translate(-50%, -50%); }
  .nav__toggle::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .2s; }
  .has-sub.is-open .nav__toggle::after { transform: translate(-50%, -50%) rotate(0); }
  .nav__sub { position: static; width: 100%; background: none; color: #fff; box-shadow: none; padding: 0 0 10px 16px; display: none; opacity: 1; visibility: visible; transform: none; }
  .has-sub.is-open .nav__sub { display: block; }
  .has-sub:hover .nav__sub:not(.x) { }
  .nav__sub a { padding: 8px 0; color: var(--light); }
  .nav__sub a:hover { background: none; color: var(--yellow); }
  .header__cta { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero__content { padding: 60px 0 60px; }
  .hero__content > div { max-width: none; padding: 0 20px; }
  .hero__img { min-height: 360px; }
  .hero__stats { position: static; margin: 0 20px; width: auto; transform: translateY(40px); }
  .services-grid { padding-top: 110px; }
  .cards { grid-template-columns: 1fr 1fr; }
  .cards .card:nth-child(3n+2), .cards .card:nth-child(3n+2):hover { transform: none; }
  .split, .contact-box, .contact-form-box, .about-team, .about-encheres { grid-template-columns: 1fr; }
  .photos { max-width: 100%; padding-bottom: 0; margin-bottom: 30px; }
  .photos__second { display: none; }
  .about-team__text > div, .about-encheres__text > div { max-width: none; padding: 0 20px; }
  .about-team__img, .about-encheres__img { min-height: 380px; }
  .about-team__phone { left: 20px; right: 20px; bottom: 20px; padding: 14px 20px; justify-content: center; }
  .about-encheres__img { order: -1; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__cards, .contact-cards { grid-template-columns: 1fr; }
  .contact-form-box iframe { min-height: 320px; }
}
@media (max-width: 600px) {
  .topbar__inner { height: auto; padding: 6px 0; flex-direction: column; gap: 6px; font-size: 13px; }
  .topbar__contact { flex-wrap: wrap; justify-content: center; }
  .cards { grid-template-columns: 1fr; }
  .checklist { grid-template-columns: 1fr; }
  .contact-box { padding: 20px; gap: 24px; margin-top: -140px; }
  .contact-box__info { padding: 28px 22px; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__bottom { text-align: center; }
  .hero__stats { flex-direction: column; gap: 20px; padding: 26px; }
  .page-hero h1 { font-size: 28px; }
}
