/* ============================================
   ACO Plâtrerie — Styles globaux
   Bordeaux, depuis 1988
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
  --rouge:        #8B1A2C;
  --rouge-fonce:  #6A1220;
  --rouge-vif:    #A52237;
  --rouge-light:  #FDF0F2;
  --gris:         #7A7A7A;
  --gris-fonce:   #3A3A3A;
  --gris-clair:   #F5F4F2;
  --gris-border:  #E8E5E0;
  --blanc:        #FFFFFF;
  --noir:         #1A1A1A;
  --ombre:        0 4px 32px rgba(0,0,0,0.09);
  --ombre-forte:  0 12px 48px rgba(0,0,0,0.16);
  --radius:       8px;
  --radius-lg:    16px;
  --transition:   all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --font-serif:   'Playfair Display', Georgia, serif;
  --font-sans:    'Inter', system-ui, -apple-system, sans-serif;
  --max:          1200px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-sans);
  color: var(--noir);
  background: var(--blanc);
  line-height: 1.7;
  font-size: 16px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul { list-style: none; }
h1, h2, h3, h4, h5 { line-height: 1.2; font-weight: 700; }

/* ---------- Conteneurs ---------- */
.aco-container { max-width: var(--max); margin: 0 auto; padding: 0 24px; }

/* ---------- Barre de scroll ---------- */
.aco-scroll-bar {
  position: fixed; top: 0; left: 0;
  height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--rouge), var(--rouge-vif));
  z-index: 9999; transition: width 0.1s linear;
}

/* ============================================
   HEADER
   ============================================ */
.aco-header {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 1000; padding: 20px 0;
  transition: var(--transition);
  background: linear-gradient(to bottom, rgba(0,0,0,0.52) 0%, rgba(0,0,0,0) 100%);
}
.aco-header.scrolled {
  background: var(--blanc);
  box-shadow: var(--ombre);
  padding: 12px 0;
}
.aco-header__inner {
  display: flex; align-items: center;
  justify-content: space-between; gap: 24px;
}
.aco-logo { display: flex; align-items: center; flex-shrink: 0; }
.aco-logo img { height: 60px; transition: var(--transition); }
.aco-header.scrolled .aco-logo img { height: 46px; }

.aco-nav { display: flex; align-items: center; gap: 4px; }
.aco-nav__link {
  position: relative; padding: 8px 16px;
  font-size: 14px; font-weight: 500; letter-spacing: 0.04em;
  text-transform: uppercase; color: rgba(255,255,255,0.9);
  transition: var(--transition);
}
.aco-header.scrolled .aco-nav__link { color: var(--gris-fonce); }
.aco-nav__link::after {
  content: ''; position: absolute; bottom: 2px; left: 16px; right: 16px;
  height: 2px; background: var(--rouge);
  transform: scaleX(0); transform-origin: left; transition: transform 0.3s;
}
.aco-nav__link:hover::after, .aco-nav__link.active::after { transform: scaleX(1); }
.aco-nav__link:hover { color: var(--blanc); }
.aco-header.scrolled .aco-nav__link:hover { color: var(--rouge); }

/* Boutons */
.aco-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; padding: 14px 32px; font-weight: 600; font-size: 14px;
  letter-spacing: 0.05em; text-transform: uppercase; border-radius: 99px;
  transition: var(--transition); cursor: pointer; position: relative;
  overflow: hidden; white-space: nowrap;
}
.aco-btn--primary {
  background: linear-gradient(135deg, var(--rouge-vif) 0%, var(--rouge-fonce) 100%);
  color: var(--blanc);
  box-shadow: 0 4px 16px rgba(139,26,44,0.25);
}
.aco-btn--primary::before {
  content: ''; position: absolute; top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
  transition: left 0.55s;
}
.aco-btn--primary:hover {
  background: linear-gradient(135deg, var(--rouge) 0%, var(--rouge-fonce) 100%);
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 14px 36px rgba(139,26,44,0.42);
}
.aco-btn--primary:hover::before { left: 100%; }
.aco-btn--primary:active { transform: translateY(-1px) scale(0.99); }
.aco-btn--outline { background: transparent; color: var(--blanc); border: 2px solid rgba(255,255,255,0.65); }
.aco-btn--outline:hover {
  background: var(--blanc); color: var(--rouge); border-color: var(--blanc);
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 10px 28px rgba(0,0,0,0.18);
}
.aco-btn--ghost { color: var(--rouge); border: 2px solid var(--rouge); background: transparent; }
.aco-btn--ghost:hover {
  background: var(--rouge); color: var(--blanc);
  transform: translateY(-3px); box-shadow: 0 12px 32px rgba(139,26,44,0.28);
}
.aco-btn--dark { background: var(--noir); color: var(--blanc); border-radius: 99px; }
.aco-btn--dark:hover { background: var(--gris-fonce); transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,0.3); }
.aco-btn--lg { padding: 18px 42px; font-size: 14px; letter-spacing: 0.07em; }

/* Hamburger mobile */
.aco-burger {
  display: none; width: 34px; height: 34px;
  flex-direction: column; justify-content: center; gap: 6px;
  z-index: 1001; flex-shrink: 0;
}
.aco-burger span {
  display: block; height: 2px; width: 100%;
  background: var(--blanc); border-radius: 2px; transition: var(--transition);
}
.aco-header.scrolled .aco-burger span { background: var(--noir); }
.aco-burger.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.aco-burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.aco-burger.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ============================================
   HERO
   ============================================ */
.aco-hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  text-align: center; color: var(--blanc);
  overflow: hidden; isolation: isolate;
}
.aco-hero__bg {
  position: absolute; inset: -8% 0; z-index: -2;
}
.aco-hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; animation: acoSlideshow 24s infinite; will-change: transform, opacity;
}
.aco-hero__slide:nth-child(1) { animation-delay: 0s;  background-image: url('https://images.unsplash.com/photo-1631679706909-1844bbd07221?w=1600&q=90&auto=format&fit=crop'); background-position: center 40%; }
.aco-hero__slide:nth-child(2) { animation-delay: 8s;  background-image: url('https://images.unsplash.com/photo-1505691938895-1758d7feb511?w=1600&q=90&auto=format&fit=crop'); background-position: center 30%; }
.aco-hero__slide:nth-child(3) { animation-delay: 16s; background-image: url('https://images.unsplash.com/photo-1600573472550-8090b5e0745e?w=1600&q=90&auto=format&fit=crop'); background-position: center 50%; }
@keyframes acoSlideshow {
  0%   { opacity: 0; transform: scale(1.06) translate(0, 0); }
  4%   { opacity: 1; }
  24%  { opacity: 1; transform: scale(1.16) translate(-1.5%, -1%); }
  28%  { opacity: 0; }
  100% { opacity: 0; }
}
.aco-hero__overlay {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(160deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.45) 50%, rgba(139,26,44,0.3) 100%);
}
.aco-hero__content {
  position: relative; z-index: 2;
  padding: 140px 24px 100px; max-width: 860px;
}
.aco-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 20px; margin-bottom: 24px;
  background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.25);
  border-radius: 99px; backdrop-filter: blur(10px);
  font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  animation: fadeDown 0.8s ease-out;
}
.aco-hero__eyebrow::before { content: ''; width: 6px; height: 6px; background: var(--rouge-vif); border-radius: 50%; }
.aco-hero h1 {
  font-family: var(--font-serif); font-size: clamp(2.8rem, 6.5vw, 5.5rem);
  font-weight: 700; letter-spacing: -0.01em; margin-bottom: 20px;
  line-height: 1.1; animation: fadeDown 0.9s ease-out 0.1s both;
}
.aco-hero h1 em { font-style: italic; color: rgba(255,255,255,0.85); }
.aco-hero__subtitle {
  font-size: clamp(1.05rem, 2.2vw, 1.3rem); font-weight: 300;
  color: rgba(255,255,255,0.88); margin-bottom: 40px; max-width: 600px; margin-left: auto; margin-right: auto;
  animation: fadeDown 1s ease-out 0.2s both;
}
.aco-hero__cta {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 16px;
  animation: fadeDown 1.1s ease-out 0.3s both;
}
.aco-hero__scroll {
  position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%);
  z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 6px;
  color: rgba(255,255,255,0.7); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  animation: heroBounce 2.5s ease-in-out infinite;
}
.aco-hero__scroll-line {
  width: 1px; height: 48px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.7), transparent);
}
@keyframes heroBounce { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(10px); } }
@keyframes fadeDown { from { opacity:0; transform: translateY(-20px); } to { opacity:1; transform: translateY(0); } }

/* ============================================
   STATS
   ============================================ */
.aco-stats {
  background: var(--blanc);
  padding: 0;
  border-top: 1px solid var(--gris-border);
  border-bottom: 1px solid var(--gris-border);
}
.aco-stats__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.aco-stat {
  padding: 56px 32px;
  text-align: center; position: relative;
  border-right: 1px solid var(--gris-border);
  transition: background 0.3s;
}
.aco-stat:last-child { border-right: none; }
.aco-stat:hover { background: var(--rouge-light); }
.aco-stat__num {
  font-family: var(--font-serif);
  font-size: clamp(3rem, 4.5vw, 4.8rem);
  font-weight: 700; line-height: 1;
  color: var(--rouge);
  letter-spacing: -0.03em;
  margin-bottom: 0;
}
.aco-stat__num::after {
  content: '';
  display: block;
  width: 20px; height: 1px;
  background: var(--gris-border);
  margin: 16px auto;
}
.aco-stat__label {
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--gris);
}

/* ============================================
   SECTIONS GÉNÉRIQUES
   ============================================ */
.aco-section { padding: 100px 0; }
.aco-section--alt { background: var(--gris-clair); }
.aco-section--dark { background: var(--noir); color: var(--blanc); }

.aco-section__head { text-align: center; max-width: 620px; margin: 0 auto 64px; }
.aco-section__eyebrow {
  display: inline-block; font-size: 12px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--rouge);
  margin-bottom: 14px; padding-bottom: 14px; position: relative;
}
.aco-section__eyebrow::after {
  content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 32px; height: 2px; background: var(--rouge);
}
.aco-section__title {
  font-family: var(--font-serif); font-size: clamp(1.9rem, 3.5vw, 3rem);
  font-weight: 600; margin-bottom: 18px; line-height: 1.2; letter-spacing: -0.01em;
}
.aco-section--dark .aco-section__title { color: var(--blanc); }
.aco-section__lead {
  font-size: 1.05rem; color: var(--gris); line-height: 1.7;
}
.aco-section--dark .aco-section__lead { color: rgba(255,255,255,0.6); }

/* ============================================
   SECTION GLASS — APPLE STYLE
   ============================================ */
.aco-section--glass {
  background: linear-gradient(160deg, #0d0a12 0%, #19080e 50%, #0d0b10 100%);
  position: relative; overflow: hidden;
}
.aco-section--glass::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 70% 55% at 15% 25%, rgba(139,26,44,0.22) 0%, transparent 65%),
    radial-gradient(ellipse 55% 45% at 85% 75%, rgba(139,26,44,0.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 30% at 50% 50%, rgba(80,0,20,0.08) 0%, transparent 70%);
}
.aco-section--glass .aco-section__eyebrow { color: #c9566e; }
.aco-section--glass .aco-section__eyebrow::after { background: rgba(185,80,100,0.5); }
.aco-section--glass .aco-section__title { color: rgba(255,255,255,0.95); }
.aco-section--glass .aco-section__lead { color: rgba(255,255,255,0.5); }
.aco-section--glass .aco-service {
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  border-radius: 20px;
  box-shadow: 0 2px 0 rgba(255,255,255,0.04) inset, 0 -1px 0 rgba(0,0,0,0.3) inset;
}
.aco-section--glass .aco-service::before {
  background: linear-gradient(90deg, #c9566e, var(--rouge-fonce));
}
.aco-section--glass .aco-service:hover {
  background: rgba(255,255,255,0.065);
  border-color: rgba(139,26,44,0.4);
  box-shadow:
    0 28px 70px rgba(0,0,0,0.55),
    0 0 0 1px rgba(139,26,44,0.2),
    0 2px 0 rgba(255,255,255,0.07) inset;
  transform: translateY(-7px);
}
.aco-section--glass .aco-service h3 { color: rgba(255,255,255,0.92); font-size: 1.15rem; }
.aco-section--glass .aco-service p { color: rgba(255,255,255,0.44); }
.aco-section--glass .aco-service__icon {
  background: rgba(139,26,44,0.18);
  border: 1px solid rgba(139,26,44,0.32);
}
.aco-section--glass .aco-service__icon svg { color: #d45878; }
.aco-section--glass .aco-service:hover .aco-service__icon {
  background: var(--rouge); border-color: var(--rouge);
}
.aco-section--glass .aco-service:hover .aco-service__icon svg { color: var(--blanc); }
.aco-section--glass .aco-service__link { color: #c9566e; }
.aco-section--glass .aco-service:hover .aco-service__link { color: #da7080; }
.aco-section--glass .aco-btn--ghost {
  color: rgba(255,255,255,0.8);
  border-color: rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.04);
}
.aco-section--glass .aco-btn--ghost:hover {
  background: var(--rouge); border-color: var(--rouge); color: var(--blanc);
}

/* ============================================
   À PROPOS / ABOUT
   ============================================ */
.aco-about {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 80px; align-items: center;
}
.aco-about__eyebrow {
  display: inline-block; font-size: 12px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--rouge);
  margin-bottom: 16px;
}
.aco-about__title {
  font-family: var(--font-serif); font-size: clamp(2rem, 3.5vw, 2.8rem);
  font-weight: 600; margin-bottom: 24px; line-height: 1.2;
}
.aco-about__text p { color: var(--gris-fonce); margin-bottom: 20px; font-size: 1.02rem; line-height: 1.8; }
.aco-about__list { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; }
.aco-about__list li {
  display: flex; align-items: flex-start; gap: 12px;
  font-size: 0.95rem; color: var(--gris-fonce);
}
.aco-about__list li::before {
  content: ''; width: 18px; height: 18px; background: var(--rouge);
  border-radius: 50%; flex-shrink: 0; margin-top: 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l2.5 3L9 1' stroke='white' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 10px; background-position: center; background-repeat: no-repeat;
}
.aco-about__cta { margin-top: 36px; display: flex; gap: 16px; flex-wrap: wrap; }
.aco-about__media { position: relative; }
.aco-about__img-wrap {
  position: relative; overflow: hidden; border-radius: var(--radius-lg);
  box-shadow: var(--ombre-forte);
}
.aco-about__img-wrap img { width: 100%; height: 500px; object-fit: cover; transition: transform 0.7s ease; }
.aco-about__img-wrap:hover img { transform: scale(1.04); }
.aco-about__badge {
  position: absolute; bottom: -20px; left: -20px;
  background: var(--rouge); color: var(--blanc);
  padding: 20px 24px; border-radius: var(--radius);
  box-shadow: var(--ombre-forte);
}
.aco-about__badge-num {
  font-family: var(--font-serif); font-size: 2.4rem; font-weight: 700; line-height: 1;
}
.aco-about__badge-txt { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.85; margin-top: 4px; }

/* ============================================
   SERVICES
   ============================================ */
.aco-services__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.aco-service {
  background: var(--blanc); border: 1px solid var(--gris-border);
  border-radius: var(--radius); padding: 36px 28px;
  transition: var(--transition); cursor: default; position: relative;
  overflow: hidden;
}
.aco-section--alt .aco-service { background: var(--blanc); }
.aco-service::before {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 3px; background: var(--rouge);
  transform: scaleX(0); transform-origin: left; transition: transform 0.4s;
}
.aco-service:hover { transform: translateY(-6px); box-shadow: var(--ombre-forte); border-color: transparent; }
.aco-service:hover::before { transform: scaleX(1); }
.aco-service__icon {
  width: 56px; height: 56px; background: var(--rouge-light);
  border-radius: var(--radius); display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px; transition: var(--transition);
}
.aco-service:hover .aco-service__icon { background: var(--rouge); }
.aco-service__icon svg { width: 26px; height: 26px; color: var(--rouge); transition: var(--transition); }
.aco-service:hover .aco-service__icon svg { color: var(--blanc); }
.aco-service h3 { font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; margin-bottom: 12px; }
.aco-service p { color: var(--gris); font-size: 0.93rem; line-height: 1.7; }
.aco-service__link {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 18px; font-size: 13px; font-weight: 600;
  color: var(--rouge); letter-spacing: 0.04em;
  transition: gap 0.3s;
}
.aco-service:hover .aco-service__link { gap: 10px; }

.aco-services__cta { text-align: center; margin-top: 48px; }

/* ============================================
   CERTIFICATIONS
   ============================================ */
.aco-certs {
  padding: 60px 0; border-top: 1px solid var(--gris-border); border-bottom: 1px solid var(--gris-border);
}
.aco-certs__label {
  text-align: center; font-size: 12px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--gris);
  margin-bottom: 36px;
}
.aco-certs__items {
  display: flex; align-items: center; justify-content: center;
  gap: 56px; flex-wrap: wrap;
}
.aco-cert { display: flex; align-items: center; gap: 12px; opacity: 0.65; transition: opacity 0.3s; }
.aco-cert:hover { opacity: 1; }
.aco-cert img { height: 52px; object-fit: contain; }
.aco-cert__txt { font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--gris-fonce); }

/* ============================================
   GALERIE APERÇU
   ============================================ */
.aco-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto auto;
  gap: 12px;
}
.aco-gallery__item {
  position: relative; overflow: hidden; border-radius: var(--radius);
  cursor: pointer; background: var(--gris-clair);
}
.aco-gallery__item:nth-child(1) { grid-row: span 2; }
.aco-gallery__item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s ease; display: block;
}
.aco-gallery__item:nth-child(1) img { height: 520px; }
.aco-gallery__item:not(:nth-child(1)) img { height: 254px; }
.aco-gallery__item:hover img { transform: scale(1.07); }
.aco-gallery__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 55%);
  opacity: 0; transition: opacity 0.4s;
  display: flex; align-items: flex-end; padding: 20px;
}
.aco-gallery__item:hover .aco-gallery__overlay { opacity: 1; }
.aco-gallery__overlay span {
  color: var(--blanc); font-size: 14px; font-weight: 500; line-height: 1.4;
}
.aco-gallery__cta { text-align: center; margin-top: 40px; }

/* ============================================
   TÉMOIGNAGE
   ============================================ */
.aco-testimonial {
  max-width: 700px; margin: 0 auto; text-align: center; padding: 0 24px;
}
.aco-testimonial__quote-icon {
  font-family: Georgia, serif; font-size: 80px; line-height: 0.5;
  color: var(--rouge); opacity: 0.3; margin-bottom: 20px; display: block;
}
.aco-testimonial__txt {
  font-family: var(--font-serif); font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-style: italic; line-height: 1.7; color: var(--gris-fonce);
  margin-bottom: 32px;
}
.aco-testimonial__author { display: flex; align-items: center; justify-content: center; gap: 14px; }
.aco-testimonial__avatar {
  width: 52px; height: 52px; border-radius: 50%;
  object-fit: cover; border: 2px solid var(--gris-border);
}
.aco-testimonial__name { font-weight: 700; font-size: 15px; }
.aco-testimonial__loc { font-size: 13px; color: var(--gris); }
.aco-testimonial__stars { color: #F5B100; font-size: 18px; letter-spacing: 2px; margin-bottom: 6px; }

/* ============================================
   CTA BANDE
   ============================================ */
.aco-cta-band {
  background: linear-gradient(135deg, var(--rouge-fonce) 0%, var(--rouge) 50%, var(--rouge-vif) 100%);
  padding: 90px 0; text-align: center; color: var(--blanc);
  position: relative; overflow: hidden;
}
.aco-cta-band::before {
  content: ''; position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.aco-cta-band__content { position: relative; z-index: 1; }
.aco-cta-band h2 {
  font-family: var(--font-serif); font-size: clamp(2rem, 3.5vw, 3rem);
  margin-bottom: 16px; font-weight: 600;
}
.aco-cta-band p { font-size: 1.1rem; opacity: 0.88; margin-bottom: 36px; max-width: 500px; margin-left: auto; margin-right: auto; }
.aco-cta-band__btns { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.aco-btn--white { background: var(--blanc); color: var(--rouge); }
.aco-btn--white:hover { background: var(--gris-clair); transform: translateY(-2px); }
.aco-btn--white-outline { background: transparent; color: var(--blanc); border: 2px solid rgba(255,255,255,0.6); }
.aco-btn--white-outline:hover { background: rgba(255,255,255,0.1); border-color: var(--blanc); }

/* ============================================
   FOOTER
   ============================================ */
.aco-footer {
  background: var(--noir); color: rgba(255,255,255,0.75); padding: 70px 0 0;
}
.aco-footer__grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px; margin-bottom: 48px;
}
.aco-footer__logo img { height: 52px; margin-bottom: 18px; }
.aco-footer__about { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,0.55); max-width: 280px; }
.aco-footer__col h4 {
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--blanc); margin-bottom: 20px; font-weight: 600;
}
.aco-footer__links { display: flex; flex-direction: column; gap: 10px; }
.aco-footer__links a {
  font-size: 14px; color: rgba(255,255,255,0.55);
  transition: color 0.2s; display: inline-flex; align-items: center; gap: 8px;
}
.aco-footer__links a:hover { color: var(--blanc); }
.aco-footer__links a::before { content: '—'; font-size: 10px; color: var(--rouge); }
.aco-footer__contact-item {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 14px; color: rgba(255,255,255,0.55);
  margin-bottom: 12px; line-height: 1.5;
}
.aco-footer__contact-item svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--rouge); margin-top: 2px; }
.aco-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 22px 0;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font-size: 13px; color: rgba(255,255,255,0.35);
}
.aco-footer__bottom a { color: rgba(255,255,255,0.5); transition: color 0.2s; }
.aco-footer__bottom a:hover { color: var(--rouge); }

/* ============================================
   PAGE INTÉRIEURE — HERO COURT
   ============================================ */
.aco-page-hero {
  padding: 150px 0 80px; background: var(--noir); color: var(--blanc);
  position: relative; overflow: hidden;
}
.aco-page-hero::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(139,26,44,0.4) 0%, transparent 60%);
}
.aco-page-hero__content { position: relative; z-index: 1; }
.aco-page-hero__breadcrumb {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: rgba(255,255,255,0.55); margin-bottom: 16px;
}
.aco-page-hero__breadcrumb a { color: rgba(255,255,255,0.55); transition: color 0.2s; }
.aco-page-hero__breadcrumb a:hover { color: var(--blanc); }
.aco-page-hero__breadcrumb span { color: var(--rouge-vif); }
.aco-page-hero h1 {
  font-family: var(--font-serif); font-size: clamp(2.2rem, 4.5vw, 4rem);
  font-weight: 600; margin-bottom: 16px;
}
.aco-page-hero p { font-size: 1.1rem; color: rgba(255,255,255,0.7); max-width: 600px; }

/* ============================================
   ENTREPRISE — HISTOIRE TIMELINE
   ============================================ */
.aco-timeline { position: relative; padding-left: 40px; }
.aco-timeline::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 2px; background: linear-gradient(to bottom, var(--rouge), var(--gris-border));
}
.aco-timeline__item { position: relative; margin-bottom: 48px; }
.aco-timeline__item::before {
  content: ''; position: absolute; left: -46px; top: 4px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--rouge); border: 3px solid var(--blanc);
  box-shadow: 0 0 0 3px var(--rouge);
}
.aco-timeline__year {
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--rouge); margin-bottom: 6px;
}
.aco-timeline__title { font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; margin-bottom: 8px; }
.aco-timeline__desc { font-size: 0.95rem; color: var(--gris); line-height: 1.7; }

/* Équipe cards */
.aco-equipe__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.aco-equipe-card {
  background: var(--blanc); border: 1px solid var(--gris-border);
  border-radius: var(--radius-lg); overflow: hidden; transition: var(--transition);
}
.aco-equipe-card:hover { transform: translateY(-4px); box-shadow: var(--ombre-forte); }
.aco-equipe-card__img { height: 240px; overflow: hidden; background: var(--gris-clair); }
.aco-equipe-card__img img { width: 100%; height: 100%; object-fit: cover; }
.aco-equipe-card__body { padding: 24px; }
.aco-equipe-card__role {
  font-size: 12px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--rouge); margin-bottom: 6px;
}
.aco-equipe-card__name { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 600; }

/* ============================================
   SAVOIR-FAIRE — ACCORDION
   ============================================ */
.aco-accordion { border: 1px solid var(--gris-border); border-radius: var(--radius); overflow: hidden; }
.aco-accordion__item { border-bottom: 1px solid var(--gris-border); }
.aco-accordion__item:last-child { border-bottom: none; }
.aco-accordion__btn {
  width: 100%; padding: 24px 28px;
  display: flex; align-items: center; gap: 16px; text-align: left;
  background: var(--blanc); transition: background 0.2s;
}
.aco-accordion__btn:hover, .aco-accordion__btn.open { background: var(--rouge-light); }
.aco-accordion__icon-wrap {
  width: 44px; height: 44px; border-radius: var(--radius);
  background: var(--rouge-light); display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background 0.2s;
}
.aco-accordion__btn.open .aco-accordion__icon-wrap { background: var(--rouge); }
.aco-accordion__icon-wrap svg { width: 22px; height: 22px; color: var(--rouge); transition: color 0.2s; }
.aco-accordion__btn.open .aco-accordion__icon-wrap svg { color: var(--blanc); }
.aco-accordion__title { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 600; flex: 1; }
.aco-accordion__arrow {
  width: 24px; height: 24px; flex-shrink: 0; color: var(--gris);
  transition: transform 0.3s; display: flex; align-items: center; justify-content: center;
}
.aco-accordion__btn.open .aco-accordion__arrow { transform: rotate(180deg); color: var(--rouge); }
.aco-accordion__body {
  max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease;
  padding: 0 28px;
}
.aco-accordion__body.open { max-height: 600px; padding-bottom: 28px; }
.aco-accordion__body p { color: var(--gris-fonce); font-size: 0.97rem; line-height: 1.8; margin-bottom: 12px; }
.aco-accordion__body ul { display: flex; flex-direction: column; gap: 8px; padding-left: 0; }
.aco-accordion__body ul li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 0.93rem; color: var(--gris-fonce);
}
.aco-accordion__body ul li::before {
  content: '–'; color: var(--rouge); font-weight: 700; flex-shrink: 0; margin-top: 1px;
}

/* ============================================
   RÉFÉRENCES — GALERIE FILTRÉE
   ============================================ */
.aco-filters { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 40px; }
.aco-filter-btn {
  padding: 9px 20px; border-radius: 99px; font-size: 13px; font-weight: 500;
  border: 2px solid var(--gris-border); background: var(--blanc); cursor: pointer;
  transition: var(--transition); color: var(--gris-fonce);
}
.aco-filter-btn:hover, .aco-filter-btn.active {
  background: var(--rouge); color: var(--blanc); border-color: var(--rouge);
}

.aco-refs__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.aco-ref-item {
  position: relative; overflow: hidden; border-radius: var(--radius);
  cursor: pointer; aspect-ratio: 4/3; background: var(--gris-clair);
  transition: var(--transition);
}
.aco-ref-item.hidden { display: none; }
.aco-ref-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.aco-ref-item:hover img { transform: scale(1.07); }
.aco-ref-item__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, transparent 55%);
  opacity: 0; transition: opacity 0.35s;
  display: flex; flex-direction: column; justify-content: flex-end; padding: 20px;
}
.aco-ref-item:hover .aco-ref-item__overlay { opacity: 1; }
.aco-ref-item__tag {
  display: inline-block; padding: 4px 10px; background: var(--rouge);
  color: var(--blanc); font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; border-radius: 2px;
  margin-bottom: 6px; width: fit-content;
}
.aco-ref-item__title { color: var(--blanc); font-size: 14px; font-weight: 500; }

/* Lightbox */
.aco-lightbox {
  position: fixed; inset: 0; z-index: 9998;
  background: rgba(0,0,0,0.95); display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity 0.3s;
}
.aco-lightbox.open { opacity: 1; pointer-events: all; }
.aco-lightbox img { max-width: 90vw; max-height: 88vh; object-fit: contain; border-radius: 4px; }
.aco-lightbox__close {
  position: absolute; top: 20px; right: 24px; width: 44px; height: 44px;
  background: rgba(255,255,255,0.1); border-radius: 50%; color: #fff; font-size: 22px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  transition: background 0.2s;
}
.aco-lightbox__close:hover { background: var(--rouge); }
.aco-lightbox__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,0.1); border: none; color: #fff; font-size: 28px;
  width: 52px; height: 52px; border-radius: 50%; cursor: pointer; display: flex;
  align-items: center; justify-content: center; transition: background 0.2s;
}
.aco-lightbox__nav:hover { background: var(--rouge); }
.aco-lightbox__prev { left: 20px; }
.aco-lightbox__next { right: 20px; }

/* ============================================
   CONTACT
   ============================================ */
.aco-contact-wrap {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 64px; align-items: start;
}
.aco-contact-info { }
.aco-contact-info__title {
  font-family: var(--font-serif); font-size: 1.8rem; font-weight: 600;
  margin-bottom: 24px;
}
.aco-contact-info__item {
  display: flex; gap: 14px; margin-bottom: 28px;
}
.aco-contact-info__ico {
  width: 46px; height: 46px; background: var(--rouge-light); border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.aco-contact-info__ico svg { width: 20px; height: 20px; color: var(--rouge); }
.aco-contact-info__label { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gris); margin-bottom: 4px; }
.aco-contact-info__val { font-size: 1rem; font-weight: 500; color: var(--noir); }
.aco-contact-info__val a:hover { color: var(--rouge); }
.aco-contact-hours { background: var(--gris-clair); border-radius: var(--radius); padding: 24px; margin-top: 32px; }
.aco-contact-hours h4 { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 14px; }
.aco-contact-hours__row { display: flex; justify-content: space-between; font-size: 14px; padding: 8px 0; border-bottom: 1px solid var(--gris-border); }
.aco-contact-hours__row:last-child { border-bottom: none; }
.aco-contact-hours__row span:last-child { font-weight: 600; }

.aco-form { background: var(--blanc); border: 1px solid var(--gris-border); border-radius: var(--radius-lg); padding: 40px; }
.aco-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.aco-form__group { display: flex; flex-direction: column; gap: 6px; }
.aco-form__group--full { grid-column: 1 / -1; }
.aco-form label { font-size: 13px; font-weight: 600; color: var(--gris-fonce); }
.aco-form input, .aco-form select, .aco-form textarea {
  padding: 13px 16px; border: 1.5px solid var(--gris-border);
  border-radius: var(--radius); font-family: var(--font-sans); font-size: 15px;
  color: var(--noir); background: var(--blanc); transition: border-color 0.25s, box-shadow 0.25s;
  width: 100%;
}
.aco-form input:focus, .aco-form select:focus, .aco-form textarea:focus {
  outline: none; border-color: var(--rouge); box-shadow: 0 0 0 3px rgba(139,26,44,0.1);
}
.aco-form textarea { resize: vertical; min-height: 130px; }
.aco-form__submit { margin-top: 8px; width: 100%; padding: 16px; font-size: 15px; }
.aco-form__notice { font-size: 12px; color: var(--gris); text-align: center; margin-top: 14px; }
.aco-form__success {
  display: none; background: #D4EDDA; border: 1px solid #C3E6CB;
  border-radius: var(--radius); padding: 16px 20px; color: #155724;
  font-size: 14px; margin-top: 16px; text-align: center;
}

/* Map placeholder */
.aco-map { height: 380px; border-radius: var(--radius-lg); overflow: hidden; margin-top: 64px; }
.aco-map iframe { width: 100%; height: 100%; border: 0; }

/* ============================================
   ANIMATIONS REVEAL
   ============================================ */
.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.in-view { opacity: 1; transform: none; }
.reveal-left { opacity: 0; transform: translateX(-36px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal-left.in-view { opacity: 1; transform: none; }
.reveal-right { opacity: 0; transform: translateX(36px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal-right.in-view { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
  .aco-about { grid-template-columns: 1fr; gap: 48px; }
  .aco-about__media { order: -1; }
  .aco-services__grid { grid-template-columns: repeat(2, 1fr); }
  .aco-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .aco-contact-wrap { grid-template-columns: 1fr; gap: 44px; }
  .aco-equipe__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .aco-stats__grid { grid-template-columns: repeat(2, 1fr); }
  .aco-stat { padding: 40px 20px; }
  .aco-stat:nth-child(2) { border-right: none; }
  .aco-stat:nth-child(3) { border-top: 1px solid var(--gris-border); }
  .aco-stat:nth-child(4) { border-top: 1px solid var(--gris-border); border-right: none; }
  .aco-nav { 
    position: fixed; top: 0; right: -100%; bottom: 0; width: 280px;
    background: var(--blanc); flex-direction: column; justify-content: center;
    gap: 8px; padding: 80px 32px 32px;
    box-shadow: -8px 0 32px rgba(0,0,0,0.15); transition: right 0.35s ease;
    z-index: 999;
  }
  .aco-nav.open { right: 0; }
  .aco-nav__link { color: var(--noir); font-size: 16px; padding: 12px 0; }
  .aco-nav__link::after { left: 0; right: 0; }
  .aco-header__cta { display: none; }
  .aco-burger { display: flex; }
  .aco-services__grid { grid-template-columns: 1fr; }
  .aco-gallery__grid { grid-template-columns: 1fr 1fr; }
  .aco-gallery__item:nth-child(1) { grid-row: span 1; }
  .aco-gallery__item:nth-child(1) img { height: 220px; }
  .aco-gallery__item:not(:nth-child(1)) img { height: 160px; }
  .aco-refs__grid { grid-template-columns: 1fr 1fr; }
  .aco-footer__grid { grid-template-columns: 1fr; }
  .aco-equipe__grid { grid-template-columns: 1fr; }
  .aco-form__grid { grid-template-columns: 1fr; }
  .aco-form { padding: 28px 20px; }
  .aco-certs__items { gap: 28px; }
  .aco-section { padding: 72px 0; }
  .aco-about__badge { left: 10px; bottom: -10px; }
}

@media (max-width: 480px) {
  .aco-stats__grid { grid-template-columns: 1fr 1fr; }
  .aco-gallery__grid { grid-template-columns: 1fr; }
  .aco-gallery__item:nth-child(1) img { height: 280px; }
  .aco-refs__grid { grid-template-columns: 1fr; }
  .aco-cta-band__btns { flex-direction: column; align-items: center; }
  .aco-footer__bottom { flex-direction: column; text-align: center; }
  .aco-lightbox__nav { width: 40px; height: 40px; font-size: 20px; }
  .aco-lightbox__prev { left: 10px; }
  .aco-lightbox__next { right: 10px; }
}
