/*
  DÉCOR'IN — Responsive editorial header
  Typography: Manrope (brand/navigation), DM Sans (content)
  Colours: graphite, warm ivory, brushed-gold accent from the supplied SVG.

  The header is position: fixed and initially overlays the full-bleed hero.
  Its background becomes opaque as the page scrolls.
*/
:root {
  --ink: #242a29;
  --muted: #6f7470;
  --paper: #f8f7f3;
  --ivory: #f1eee8;
  --gold: #c2a071;
  --gold-dark: #96754b;
  --header-height: 101px;
  --page-gutter: clamp(22px, 5vw, 92px);
  --font-ui: 'Manrope', 'Avenir Next', 'Segoe UI', Arial, sans-serif;
  --font-body: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); }
body.menu-open { overflow: hidden; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
section[id] { scroll-margin-top: 80px; }
.skip-link { position: fixed; z-index: 2000; top: 0; left: 18px; transform: translateY(-140%); padding: 12px 20px; background: var(--paper); color: var(--ink); text-decoration: none; }
.skip-link:focus { transform: translateY(12px); }

/* 1. Desktop header */
.site-header {
  position: fixed;
  top: 0; right: 0; left: 0;
  height: var(--header-height);
  z-index: 1000;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.28);
  background: linear-gradient(180deg, rgba(16,23,22,.44), rgba(16,23,22,.12));
  transition: height .35s ease, background .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.site-header.is-scrolled, .site-header.is-open {
  height: 81px;
  color: var(--ink);
  background: rgba(248,247,243,.97);
  border-bottom-color: rgba(42,47,44,.1);
  box-shadow: 0 7px 28px rgba(32,37,32,.055);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.site-header__inner {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px;
  padding-inline: var(--page-gutter);
  max-width: 1920px; margin-inline: auto;
}
.brand { display: inline-flex; align-items: center; gap: 15px; min-width: 0; flex-shrink: 0; text-decoration: none; }
.brand__logo { display: block; width: 95px; height: 60px; object-fit: contain; flex: none; transition: width .35s ease, height .35s ease; }
.is-scrolled .brand__logo, .is-open .brand__logo { width: 85px; height: 54px; }
.brand__copy { display: flex; flex-direction: column; min-width: 0; gap: 5px; }
.brand__name { color: inherit; font-family: var(--font-ui); font-size: 26px; font-weight: 500; letter-spacing: -.055em; line-height: 1.05; white-space: nowrap; }
.brand__tagline { color: rgba(255,255,255,.86); font-family: var(--font-ui); font-size: 10px; font-weight: 500; letter-spacing: .145em; text-transform: uppercase; white-space: nowrap; transition: color .35s ease; }
.is-scrolled .brand__tagline, .is-open .brand__tagline { color: #666763; }

.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(20px, 2.5vw, 44px); min-width: 0; }
.site-nav__link { position: relative; display: inline-flex; align-items: center; min-height: 44px; color: inherit; font-family: var(--font-ui); font-weight: 500; font-size: 12px; letter-spacing: .035em; text-decoration: none; white-space: nowrap; transition: color .2s ease; }
.site-nav__link:not(.site-nav__link--contact)::after { content: ''; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.site-nav__link:hover::after, .site-nav__link.is-active::after { transform: scaleX(1); }
.site-nav__link:hover { color: #e5cda7; }
.site-header.is-scrolled .site-nav__link:hover { color: var(--gold-dark); }
.site-nav__link--contact { min-height: 44px; gap: 20px; padding: 0 17px 0 20px; border: 1px solid rgba(255,255,255,.72); transition: background .25s, color .25s, border-color .25s; }
.site-nav__link--contact:hover { background: #fff; border-color: #fff; color: var(--ink); }
.site-nav__link--contact.is-active { border-color: var(--gold); }
.is-scrolled .site-nav__link--contact { border-color: rgba(36,42,41,.35); }
.is-scrolled .site-nav__link--contact:hover { color: #fff; background: var(--ink); border-color: var(--ink); }
.contact-arrow { width: 17px; height: 17px; transition: transform .2s ease; }
.site-nav__link--contact:hover .contact-arrow { transform: translate(3px,-2px); }
.menu-toggle, .menu-backdrop { display: none; }

/* HERO — photo d’accueil fournie par Décor'In, intégrée en local. */
.hero { isolation: isolate; position: relative; display: flex; min-height: max(700px, 100svh); overflow: hidden; color: #fff; align-items: center; }
.hero__background { position: absolute; z-index: -3; inset: 0;
  background-color: #77756b;
  background-image: url('./assets/hero/accueil-salon.jpg');
  background-position: center 52%; background-repeat: no-repeat; background-size: cover;
  transform: none;
}
/* Gradient always renders even when the demo image is offline. */
.hero__shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(15,21,19,.62) 0%, rgba(15,21,19,.36) 46%, rgba(15,21,19,.09) 100%), linear-gradient(0deg,rgba(12,18,16,.43),transparent 35%); }
.hero__content { width: 100%; max-width: 1580px; margin: 0 auto; padding: calc(var(--header-height) + 50px) var(--page-gutter) 145px; }
.eyebrow { display: flex; align-items: center; gap: 15px; margin: 0 0 26px; font-family: var(--font-ui); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .24em; }
.eyebrow__rule { display: inline-block; width: 36px; height: 1px; background: #d9be91; }
.hero h1 { margin: 0; font-family: var(--font-ui); font-size: clamp(56px, 6.75vw, 112px); font-weight: 300; letter-spacing: -.067em; line-height: 1.12; }
.hero h1 em { font-style: normal; color: #e1c39d; }
.hero__description { max-width: 470px; margin: 28px 0 37px; font-size: clamp(14px, 1.23vw, 17px); line-height: 1.95; font-weight: 400; color: rgba(255,255,255,.88); }
.hero__link { display: inline-flex; align-items: center; gap: 28px; border-bottom: 1px solid rgba(255,255,255,.75); padding-bottom: 11px; font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: .035em; text-decoration: none; transition: color .25s, gap .25s; }
.hero__link:hover { gap: 34px; color: #e1c39d; }
.hero__link span { font-size: 20px; font-weight: 400; }
.hero__bottom { position: absolute; bottom: 35px; left: var(--page-gutter); right: var(--page-gutter); display: flex; justify-content: space-between; gap: 20px; font-family: var(--font-ui); font-size: 10px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.76); }
.hero__bottom a { display: inline-flex; align-items: center; gap: 18px; text-decoration: none; }
.hero__scroll-indicator { display: inline-block; position: relative; height: 39px; width: 1px; background: rgba(255,255,255,.7); }
.hero__scroll-indicator::after { position: absolute; bottom: 0; left: -3px; content: ''; width: 7px; height: 7px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; transform: rotate(45deg); }
.demo-section { display: flex; min-height: 57vh; align-items: center; background: var(--paper); }
.demo-section--contrast { background: #efede7; }
.demo-section--last { background: #2b302d; color: #f6f2e8; }
.demo-section__inner { width: min(1240px, calc(100% - 2 * var(--page-gutter))); margin: auto; display: grid; grid-template-columns: minmax(130px, 28%) 1fr; align-items: start; }
.demo-section__index { padding-top: 8px; color: var(--gold-dark); font: 600 11px var(--font-ui); letter-spacing: .17em; }
.demo-section__eyebrow { margin: 0 0 14px; color: var(--gold-dark); text-transform: uppercase; font: 600 11px var(--font-ui); letter-spacing: .16em; }
.demo-section h2 { margin: 0 0 16px; font-family: var(--font-ui); font-size: clamp(36px, 5vw, 78px); line-height: 1.2; font-weight: 300; letter-spacing: -.06em; }
.demo-section p:not(.demo-section__eyebrow) { font-size: 16px; line-height: 1.7; color: #747a75; }
.demo-section--last p:not(.demo-section__eyebrow) { color: #c2c5c0; }



/* 4. FOOTER — understated architecture-studio treatment. */
.site-footer {
  background: #202623;
  color: #f5f3ed;
  border-top: 1px solid rgba(228, 211, 177, .18);
}
.site-footer__inner {
  width: min(1600px, 100%);
  padding: clamp(76px, 8vw, 132px) var(--page-gutter) 0;
  margin-inline: auto;
}
.site-footer__main {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: clamp(56px, 7vw, 132px);
  align-items: start;
  padding-bottom: clamp(70px, 8vw, 115px);
}
.site-footer__eyebrow {
  display: flex;
  gap: 17px;
  align-items: center;
  margin: 3px 0 29px;
  font: 600 10px/1.4 var(--font-ui);
  letter-spacing: .20em;
  text-transform: uppercase;
  color: #dcc39a;
}
.site-footer__eyebrow-line { display: inline-block; width: 36px; height: 1px; background: #c3a373; }
.site-footer h2 {
  margin: 0;
  font: 300 clamp(40px, 4.3vw, 70px)/1.19 var(--font-ui);
  letter-spacing: -.063em;
}
.site-footer h2 em { font-style: normal; color: #c8a87b; }
.site-footer__details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 38px;
  max-width: 610px;
  margin-top: clamp(55px, 7vw, 95px);
}
.site-footer__detail { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }
.site-footer__label {
  display: block;
  color: #c5a777;
  font: 600 10px/1.5 var(--font-ui);
  letter-spacing: .19em;
  text-transform: uppercase;
}
.site-footer address {
  color: rgba(245,243,237,.90);
  font: normal 400 clamp(14px, 1.13vw, 17px)/1.85 var(--font-body);
}
.site-footer__phone {
  color: #f5f3ed;
  font: 400 clamp(16px, 1.35vw, 20px)/1.65 var(--font-ui);
  text-decoration: none;
  border-bottom: 1px solid rgba(245,243,237,.35);
  transition: color .2s ease, border-color .2s ease;
}
.site-footer__phone:hover { color: #d9bb8e; border-color: #d9bb8e; }
.site-footer__location { min-width: 0; }
.site-footer__map-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 17px;
}
.site-footer__map-city { font: 400 11px var(--font-ui); letter-spacing: .07em; color: rgba(245,243,237,.57); }
.site-footer__map-frame {
  position: relative;
  overflow: hidden;
  height: clamp(275px, 26vw, 390px);
  background: #ebe8e0;
  border: 1px solid rgba(255,255,255,.1);
}
.site-footer__map-frame iframe { width: 100%; height: 100%; display: block; border: 0; filter: grayscale(.3) saturate(.65); }
.site-footer__map-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 20px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(245,243,237,.5);
  color: #f5f3ed;
  text-decoration: none;
  font: 500 12px var(--font-ui);
  letter-spacing: .025em;
  transition: color .2s ease, border-color .2s ease;
}
.site-footer__map-link:hover { color: #d9bb8e; border-color: #d9bb8e; }
.site-footer__map-link svg { width: 17px; height: 17px; transition: transform .2s ease; }
.site-footer__map-link:hover svg { transform: translate(2px,-2px); }
.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  column-gap: 40px;
  row-gap: 18px;
  padding: 25px 0 31px;
  border-top: 1px solid rgba(245,243,237,.18);
}
.site-footer__signature { color: #f5f3ed; text-decoration: none; font: 500 19px var(--font-ui); letter-spacing: -.055em; }
.site-footer__signature span { color: rgba(245,243,237,.54); font: 400 10px var(--font-ui); letter-spacing: .09em; }
.site-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 15px 35px; font: 400 11px/1.6 var(--font-ui); color: rgba(245,243,237,.62); }
.site-footer__legal a { color: #f5f3ed; text-decoration: none; border-bottom: 1px solid rgba(245,243,237,.4); transition: color .2s ease; }
.site-footer__legal a:hover { color: #d9bb8e; }
@media (max-width: 940px) {
  .site-footer__main { grid-template-columns: 1fr; gap: 70px; }
  .site-footer__details { margin-top: 50px; }
  .site-footer__map-frame { height: clamp(310px, 45vw, 480px); }
}
@media (max-width: 600px) {
  .site-footer__inner { padding-top: 67px; }
  .site-footer h2 { font-size: clamp(37px, 10vw, 53px); }
  .site-footer__main { gap: 59px; padding-bottom: 65px; }
  .site-footer__details { grid-template-columns: 1fr; gap: 33px; margin-top: 48px; }
  .site-footer__detail { gap: 10px; }
  .site-footer__map-frame { height: 310px; }
  .site-footer__map-city { font-size: 10px; }
  .site-footer__bottom { align-items: flex-start; padding: 27px 0 35px; }
  .site-footer__legal { flex-direction: column; align-items: flex-start; gap: 11px; }
}

/* 3. Mobile navigation */
@media (max-width: 1080px) {
  :root { --header-height: 85px; }
  .site-header { height: var(--header-height); }
  .site-header.is-scrolled, .site-header.is-open { height: 75px; }
  .site-header__inner { gap: 16px; }
  .brand__logo { width: 77px; height: 51px; }
  .is-scrolled .brand__logo, .is-open .brand__logo { width: 73px; height: 48px; }
  .brand { gap: 10px; }
  .brand__name { font-size: 24px; }
  .brand__tagline { font-size: 9px; }
  .menu-toggle { position: relative; z-index: 1002; display: inline-flex; align-items: center; justify-content: flex-end; gap: 13px; min-width: 80px; height: 46px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
  .menu-toggle__label { font-family: var(--font-ui); font-size: 11px; letter-spacing: .045em; font-weight: 600; }
  .menu-toggle__lines { display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 26px; height: 22px; }
  .menu-toggle__lines span { width: 26px; height: 1.5px; display: block; background: currentColor; transform-origin: center; transition: transform .25s ease; }
  .site-header.is-open .menu-toggle__lines span:first-child { transform: translateY(3.75px) rotate(45deg); }
  .site-header.is-open .menu-toggle__lines span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
  .menu-backdrop { display: block; position: fixed; z-index: 997; inset: 0; background: rgba(20,26,24,.48); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .35s, visibility .35s; }
  .menu-open .menu-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }
  .site-nav { position: fixed; z-index: 999; top: 75px; right: 0; left: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 0; padding: 22px var(--page-gutter) 44px; max-height: calc(100dvh - 75px); overflow-y: auto; color: var(--ink); background: var(--paper); border-bottom: 1px solid rgba(36,42,41,.08); box-shadow: 0 18px 36px rgba(0,0,0,.07); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-18px); transition: opacity .3s ease, transform .3s ease, visibility .3s; }
  .site-header.is-open .site-nav { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .site-nav__link { min-height: 66px; padding: 10px 1px; border-bottom: 1px solid rgba(36,42,41,.13); font-size: clamp(21px, 4vw, 31px); font-weight: 400; letter-spacing: -.045em; }
  .site-nav__link:not(.site-nav__link--contact)::after { bottom: 0; }
  .site-nav__link--contact { margin-top: 25px; padding-inline: 20px; min-height: 56px; justify-content: space-between; font-size: 17px; border: 1px solid var(--gold-dark); }
  .site-nav__link--contact:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
}
@media (max-width: 600px) {
  :root { --page-gutter: 23px; }
  .site-header { height: 76px; }
  .site-header.is-scrolled, .site-header.is-open { height: 70px; }
  .brand__logo { width: 66px; height: 44px; }
  .is-scrolled .brand__logo, .is-open .brand__logo { width: 64px; height: 42px; }
  .brand { gap: 7px; }
  .brand__name { font-size: 22px; }
  .brand__tagline { font-size: 8px; letter-spacing: .09em; }
  .menu-toggle { min-width: 72px; gap: 9px; }
  .site-nav { top: 70px; max-height: calc(100dvh - 70px); padding-bottom: 35px; }
  .hero { min-height: max(680px, 100svh); }
  .hero__background { background-position: 58% center; }
  .hero__shade { background: linear-gradient(90deg, rgba(17,24,22,.75), rgba(17,24,22,.38)), linear-gradient(0deg,rgba(10,12,12,.4),transparent 45%); }
  .hero__content { padding: 155px var(--page-gutter) 120px; }
  .eyebrow { font-size: 9px; letter-spacing: .17em; }
  .hero h1 { font-size: clamp(49px, 12vw, 68px); }
  .hero__description { max-width: 330px; font-size: 14px; }
  .hero__bottom { bottom: 23px; }
  .hero__bottom > span { max-width: 165px; line-height: 1.8; }
  .demo-section { min-height: 50vh; padding-block: 85px; }
  .demo-section__inner { grid-template-columns: 1fr; gap: 35px; }
}
@media (max-width: 350px) {
  .brand__logo { width: 57px; }
  .brand__name { font-size: 20px; }
  .brand__tagline { font-size: 7.5px; }
  .menu-toggle__label { display: none; }
  .menu-toggle { min-width: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}



/* 3. RÉALISATIONS — editorial image gallery; preserves existing heading typography. */
.portfolio-section {
  display: block;
  min-height: auto;
  padding: clamp(90px, 9vw, 154px) var(--page-gutter) clamp(100px, 10vw, 165px);
  background: var(--paper);
}
.portfolio-section__inner { width: min(1440px, 100%); margin-inline: auto; }
.portfolio-section__heading { margin-bottom: clamp(34px, 4vw, 66px); }
.portfolio-section__heading h2 { margin-bottom: 0; }
.portfolio-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.8vw, 26px); }
.project-card {
  display: block; position: relative; width: 100%; aspect-ratio: 4 / 4.75;
  padding: 0; border: 0; overflow: hidden; background: #d0c9bc;
  text-align: left; color: #fff; cursor: pointer; isolation: isolate;
}
.project-card__visual { display: block; position: absolute; inset: 0; overflow: hidden; }
.project-card__visual img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.project-card:hover .project-card__visual img, .project-card:focus-visible .project-card__visual img { transform: scale(1.055); }
.project-card__overlay {
  display: flex; flex-direction: column; justify-content: space-between; position: absolute; inset: 0;
  padding: clamp(20px, 2.5vw, 38px); background: linear-gradient(180deg, rgba(14,19,17,.34) 0%, transparent 35%, rgba(14,19,17,.09) 50%, rgba(14,19,17,.73) 100%);
}
.project-card__topline { font: 500 10px/1.5 var(--font-ui); letter-spacing: .13em; text-transform: uppercase; color: #f7f3ec; }
.project-card__topline > span { padding-inline: 7px; color: #d4b990; }
.project-card__bottomline { display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.project-card__bottomline > span:first-child { display: grid; gap: 8px; min-width: 0; }
.project-card__location { color: #dfcba9; font: 600 10px var(--font-ui); text-transform: uppercase; letter-spacing: .17em; }
.project-card__title { display: block; font: 400 clamp(24px, 2.3vw, 34px)/1.13 var(--font-ui); letter-spacing: -.053em; text-wrap: balance; }
.project-card__arrow { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: none; border: 1px solid rgba(255,255,255,.67); border-radius: 50%; font: 300 21px var(--font-ui); transition: background .25s,color .25s,transform .25s; }
.project-card:hover .project-card__arrow, .project-card:focus-visible .project-card__arrow { transform: translate(2px,-2px); background: #fff; color: var(--ink); }

/* Native dialog keeps focus inside the project panel and supports the Esc key. */
body.portfolio-open { overflow: hidden; }
.project-dialog {
  position: fixed; inset: 0; width: min(1240px, calc(100% - 54px)); max-width: 1240px;
  max-height: min(780px, calc(100dvh - 60px)); margin: auto; padding: 0; border: 0;
  background: var(--paper); color: var(--ink); box-shadow: 0 35px 100px rgba(13,18,15,.3);
  overflow-y: auto; overscroll-behavior: contain;
}
.project-dialog:not([open]) { display: none; }
.project-dialog::backdrop { background: rgba(14,19,17,.76); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.project-dialog__shell { position: relative; min-height: 100%; }
.project-dialog__close { display: flex; align-items: center; gap: 13px; position: absolute; top: 20px; right: 21px; z-index: 4; min-height: 40px; padding: 5px 8px 5px 15px; border: 0; color: var(--ink); background: rgba(248,247,243,.94); font: 600 11px var(--font-ui); cursor: pointer; }
.project-dialog__close svg { width: 22px; height: 22px; }
.project-dialog__close:hover { color: var(--gold-dark); }
.project-dialog__layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); min-height: 610px; }
.project-dialog__gallery { background: #e8e4da; min-width: 0; display: flex; flex-direction: column; }
.project-dialog__main-image { position: relative; flex: 1; min-height: 440px; background: #d7d0c5; }
.project-dialog__main-image > img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.project-dialog__controls { display: flex; justify-content: space-between; align-items: center; gap: 14px; position: absolute; left: 20px; right: 20px; bottom: 20px; pointer-events: none; }
.project-dialog__counter { padding: 10px 12px; font: 600 11px var(--font-ui); letter-spacing: .13em; color: #fff; background: rgba(17,23,20,.69); }
.project-dialog__arrows { display: flex; gap: 7px; }
.project-dialog__arrows button { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.65); background: rgba(248,247,243,.97); cursor: pointer; pointer-events: auto; transition: background .2s, color .2s; }
.project-dialog__arrows button:hover { background: var(--ink); color: #fff; }
.project-dialog__arrows svg { width: 19px; height: 19px; }
.project-dialog__thumbnails { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 9px; padding: 10px; background: #ebe7de; }
.project-dialog__thumbnails button { padding: 0; aspect-ratio: 1.5; overflow: hidden; border: 2px solid transparent; background: #c3beb4; cursor: pointer; opacity: .62; transition: opacity .2s, border-color .2s; }
.project-dialog__thumbnails button.is-active, .project-dialog__thumbnails button:hover { border-color: var(--gold-dark); opacity: 1; }
.project-dialog__thumbnails img { display: block; width: 100%; height: 100%; object-fit: cover; }
.project-dialog__information { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: clamp(80px, 7vw, 114px) clamp(28px, 5vw, 72px) 62px; }
.project-dialog__eyebrow { margin: 0 0 28px; color: var(--gold-dark); font: 600 10px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; }
.project-dialog__information h2 { margin: 0; font: 300 clamp(36px, 3.7vw, 58px)/1.1 var(--font-ui); letter-spacing: -.063em; text-wrap: balance; }
.project-dialog__rule { display: block; width: 39px; height: 1px; margin: 32px 0 22px; background: var(--gold-dark); }
.project-dialog__information #project-dialog-description { margin: 0; max-width: 420px; color: #616761; font: 400 15px/1.9 var(--font-body); }
.project-dialog__metadata { display: flex; gap: 25px; margin-top: 42px; padding-top: 18px; border-top: 1px solid #dedad0; font: 500 11px var(--font-ui); }
.project-dialog__metadata span { color: var(--gold-dark); text-transform: uppercase; letter-spacing: .15em; }
.project-dialog__metadata strong { font-weight: 500; }
.project-dialog__contact { display: inline-flex; align-self: flex-start; justify-content: space-between; gap: 25px; margin-top: 44px; padding-bottom: 11px; border-bottom: 1px solid var(--ink); font: 600 12px var(--font-ui); text-decoration: none; }
.project-dialog__contact:hover { color: var(--gold-dark); border-color: var(--gold-dark); }
@media (max-width: 1000px) {
  .portfolio-grid { gap: 13px; }
  .project-card { aspect-ratio: 4 / 5.2; }
  .project-card__overlay { padding: 20px; }
  .project-card__title { font-size: 25px; }
  .project-dialog__layout { grid-template-columns: 1.2fr .8fr; min-height: 540px; }
  .project-dialog__main-image { min-height: 375px; }
  .project-dialog__information { padding: 80px 25px 45px; }
}
@media (max-width: 760px) {
  .portfolio-section { padding-block: 83px 104px; }
  .portfolio-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .project-card { aspect-ratio: 4 / 4.7; }
  .project-dialog { width: 100%; max-width: none; max-height: 100dvh; height: 100dvh; margin: 0; }
  .project-dialog__layout { display: flex; flex-direction: column; min-height: 100%; }
  .project-dialog__main-image { flex: none; min-height: 0; aspect-ratio: 1.23; }
  .project-dialog__close { position: fixed; top: 14px; right: 14px; }
  .project-dialog__information { padding: 44px var(--page-gutter) 70px; }
  .project-dialog__information h2 { max-width: 460px; }
  .project-dialog__information #project-dialog-description { max-width: 560px; }
  .project-dialog__eyebrow { margin-bottom: 18px; }
  .project-dialog__rule { margin: 25px 0 18px; }
  .project-dialog__metadata { margin-top: 28px; }
  .project-dialog__contact { margin-top: 30px; }
}
@media (max-width: 540px) {
  .portfolio-section__heading { margin-bottom: 29px; }
  .portfolio-grid { grid-template-columns: 1fr; gap: 15px; }
  .project-card { aspect-ratio: 1.12; }
  .project-card__title { font-size: clamp(26px, 7vw, 34px); }
  .project-card__overlay { padding: 24px; }
  .project-dialog__main-image { aspect-ratio: 1.08; }
  .project-dialog__controls { left: 12px; right: 12px; bottom: 12px; }
  .project-dialog__arrows button { height: 42px; width: 42px; }
  .project-dialog__close span { display: none; }
  .project-dialog__close { width: 41px; height: 41px; padding: 9px; justify-content: center; }
  .project-dialog__thumbnails { gap: 6px; padding: 7px; }
  .project-dialog__information { padding-top: 38px; }
}

/* Réalisations v2: minimal rectangular arrow, expandable six-project gallery. */
.project-card__overlay { justify-content: flex-end; background: linear-gradient(180deg,transparent 44%, rgba(14,19,17,.18) 58%, rgba(14,19,17,.75) 100%); }
.project-card__topline { display: none; }
.project-card__arrow { width: 43px; height: 43px; border-radius: 3px; border-color: rgba(247,236,216,.8); color: #fff; background: rgba(23,25,20,.14); font-size: 22px; }
.project-card:hover .project-card__arrow, .project-card:focus-visible .project-card__arrow { background: #f7f5f0; color: var(--ink); border-color: #f7f5f0; transform: translate(2px,-2px); }
.project-card[hidden] { display: none !important; }
.portfolio-section__actions { display: flex; justify-content: center; padding-top: clamp(30px, 4.5vw, 56px); }
.portfolio-more-button { display: inline-flex; justify-content: center; align-items: center; gap: 26px; min-height: 54px; padding: 15px 25px; border: 1px solid #b3a18b; border-radius: 2px; background: transparent; color: var(--ink); font: 600 11px/1.3 var(--font-ui); text-transform: uppercase; letter-spacing: .16em; cursor: pointer; transition: background .23s ease,color .23s ease,border-color .23s ease; }
.portfolio-more-button:hover, .portfolio-more-button:focus-visible { background: #27332d; color: #fff; border-color: #27332d; }
.portfolio-more-button svg { width: 19px; height: 19px; flex: none; transition: transform .25s ease; }
.portfolio-more-button[aria-expanded="true"] svg { transform: rotate(180deg); }
.project-card--extra:not([hidden]) { animation: portfolio-reveal .45s ease both; }
@keyframes portfolio-reveal { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 540px) { .portfolio-section__actions { padding-top: 32px; } .portfolio-more-button { width: 100%; gap: 14px; justify-content: space-between; padding-inline: 20px; } }
@media (prefers-reduced-motion: reduce) { .project-card--extra:not([hidden]) { animation: none; } }


/* Réalisations v3 — quiet, editorial transitions with a gentle upward drift. */
.portfolio-section__heading { scroll-margin-top: 112px; }
.project-dialog[open]:not(.is-closing) {
  animation: project-panel-in .42s cubic-bezier(.22, 1, .36, 1) both;
}
.project-dialog[open].is-closing {
  animation: project-panel-out .3s cubic-bezier(.45, 0, .65, 1) both;
  pointer-events: none;
}
.project-dialog[open]:not(.is-closing)::backdrop {
  animation: project-backdrop-in .42s ease-out both;
}
.project-dialog[open].is-closing::backdrop {
  animation: project-backdrop-out .3s ease-in both;
}
@keyframes project-panel-in {
  from { opacity: 0; transform: translate3d(0, 25px, 0) scale(.985); }
  to   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes project-panel-out {
  from { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  to   { opacity: 0; transform: translate3d(0, 17px, 0) scale(.988); }
}
@keyframes project-backdrop-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes project-backdrop-out {
  from { opacity: 1; }
  to   { opacity: 0; }
}
@media (max-width: 760px) {
  .portfolio-section__heading { scroll-margin-top: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  .project-dialog[open], .project-dialog[open]::backdrop { animation: none !important; }
}


/* PRESTATIONS — visual, gallery-led service presentation using provided transparent PNGs. */
.services-section {
  display: block;
  min-height: 0;
  padding: clamp(88px, 8.2vw, 136px) var(--page-gutter) clamp(88px, 8.2vw, 132px);
  background: #eeece6;
}
.services-section__inner { width: min(1370px, 100%); margin-inline: auto; }
.services-section__heading { margin: 0 0 clamp(40px, 5vw, 65px); text-align: left; }
.services-section__heading .demo-section__eyebrow { margin-bottom: 14px; }
.demo-section.services-section .services-section__heading h2 { margin: 0; }
.demo-section.services-section .services-section__intro {
  width: min(740px, 100%);
  margin: 20px 0 0;
  color: #5b615d;
  font: 400 clamp(16px, 1.42vw, 20px)/1.75 var(--font-body);
  letter-spacing: -.014em;
  text-wrap: pretty;
}
.services-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.1vw, 32px);
  align-items: stretch;
}
.service-showcase {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: rgba(250, 249, 245, .75);
  border: 1px solid rgba(171, 156, 132, .23);
  overflow: hidden;
  isolation: isolate;
  transition: border-color .35s ease, background-color .35s ease;
}
.service-showcase__copy { position: relative; }
.service-showcase__accent {
  display: block;
  width: 38px;
  height: 1px;
  margin-bottom: clamp(18px, 2vw, 25px);
  background: #a98861;
}
.service-showcase h3 {
  margin: 0;
  color: #272e2a;
  font: 400 clamp(24px, 2.1vw, 33px)/1.25 var(--font-ui);
  letter-spacing: -.052em;
  text-wrap: balance;
}
.demo-section.services-section .service-showcase p {
  margin: 15px 0 0;
  color: #626961;
  font: 400 clamp(14px, 1.08vw, 16px)/1.85 var(--font-body);
}
.service-showcase__art {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  overflow: hidden;
  background: radial-gradient(ellipse at 50% 76%, rgba(230, 222, 207, .38), transparent 65%);
}
.service-showcase__art img {
  display: block;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  transition: transform .75s cubic-bezier(.18,.7,.22,1);
}
/* Lead with a generous, asymmetric feature panel. The image is no longer an icon in the left gutter. */
.service-showcase--featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: clamp(340px, 33vw, 445px);
  background: #f8f6f1;
}
.service-showcase--featured .service-showcase__copy {
  align-self: center;
  padding: clamp(36px, 4.6vw, 80px);
}
.service-showcase--featured h3 { font-size: clamp(29px, 3vw, 44px); }
.service-showcase--featured .service-showcase__copy p { max-width: 450px; }
.service-showcase--featured .service-showcase__art {
  padding: 22px 40px 0 10px;
  background: radial-gradient(ellipse at 50% 70%, rgba(229, 218, 201, .38), transparent 63%);
}
.service-showcase--featured .service-showcase__art img {
  width: min(390px, 100%);
  height: clamp(320px, 32vw, 430px);
}
.service-showcase--card .service-showcase__art {
  height: clamp(255px, 26vw, 355px);
  padding: clamp(18px, 2vw, 26px) 24px 0;
}
.service-showcase--card .service-showcase__art img {
  width: min(430px, 100%);
  height: 100%;
}
.service-showcase--card .service-showcase__copy {
  padding: clamp(24px, 3.05vw, 44px) clamp(24px, 3.05vw, 45px) clamp(30px, 3.5vw, 50px);
  flex: 1;
}
.service-showcase--card .service-showcase__copy h3 { max-width: 490px; }
.service-showcase--card .service-showcase__copy p { max-width: 510px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .service-showcase:hover { border-color: rgba(169, 136, 97, .52); background-color: #faf9f5; }
  .service-showcase:hover .service-showcase__art img { transform: translateY(-6px) scale(1.025); }
}
.services-section__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  padding-top: clamp(36px, 4.8vw, 67px);
}
/* Editorial call-to-action: a confident, luxurious serif italic alongside the restrained sans-serif button. */
.services-section__bottom > .services-section__prompt {
  display: block;
  flex: 1 1 470px;
  max-width: 720px;
  margin: 0;
  color: #303832;
  font-family: 'Cormorant Garamond', 'Iowan Old Style', 'Baskerville', Georgia, serif;
  font-size: clamp(33px, 3.65vw, 53px);
  font-style: italic;
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.services-section__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 0 0 10px;
  border-bottom: 1px solid #96754b;
  color: #373a35;
  text-decoration: none;
  font: 600 12px/1.4 var(--font-ui);
  transition: color .25s ease, gap .25s ease;
}
.services-section__cta:hover { gap: 37px; color: #96754b; }
.services-section__cta span { font-size: 21px; font-weight: 300; }
@media (max-width: 900px) {
  .service-showcase--featured { min-height: 360px; }
  .service-showcase--featured .service-showcase__copy { padding: 34px; }
  .service-showcase--featured .service-showcase__art { padding: 16px; }
  .service-showcase--card .service-showcase__art { height: 270px; }
  .service-showcase--card .service-showcase__copy { padding: 25px 26px 33px; }
}
@media (max-width: 680px) {
  .services-section { padding-block: 82px 96px; }
  .services-section__heading { margin-bottom: 35px; }
  .demo-section.services-section .services-section__intro { margin-top: 14px; font-size: 16px; line-height: 1.7; }
  .services-gallery { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .service-showcase--featured { grid-column: auto; display: flex; flex-direction: column; }
  .service-showcase--featured .service-showcase__art { order: -1; padding: 10px 14px 0; height: 280px; }
  .service-showcase--featured .service-showcase__art img { height: 275px; max-width: 290px; }
  .service-showcase--featured .service-showcase__copy { padding: 23px 25px 33px; }
  .service-showcase--featured h3 { font-size: 29px; }
  .service-showcase--card .service-showcase__art { height: 270px; padding: 12px 15px 0; }
  .service-showcase--card .service-showcase__copy { padding: 23px 25px 33px; }
  .service-showcase h3 { font-size: clamp(24px, 6vw, 29px); }
  .demo-section.services-section .service-showcase p { font-size: 14px; line-height: 1.8; }
  .services-section__bottom { align-items: start; gap: 15px; padding-top: 36px; }
}
@media (max-width: 400px) {
  .service-showcase--card .service-showcase__art { height: 235px; }
  .service-showcase--featured .service-showcase__art { height: 245px; }
  .service-showcase--featured .service-showcase__art img { height: 245px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-showcase, .service-showcase__art img { transition: none !important; }
}


/* 2026-10-29 — PRESTATIONS: premium contact banner */
.services-section__bottom {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(24px, 4.5vw, 72px);
  overflow: hidden;
  margin-top: clamp(42px, 6vw, 82px);
  padding: clamp(36px, 5vw, 67px) clamp(27px, 5.3vw, 78px);
  background: #29312c;
  border: 1px solid rgba(212, 188, 149, .55);
  box-shadow: 0 22px 54px rgba(44, 46, 38, .07);
}
.services-section__bottom::before,
.services-section__bottom::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 440px;
  height: 440px;
  right: -145px;
  top: -340px;
  border: 1px solid rgba(214, 180, 127, .23);
  border-radius: 50%;
  pointer-events: none;
}
.services-section__bottom::after {
  width: 305px;
  height: 305px;
  right: -80px;
  top: -235px;
  border-color: rgba(214, 180, 127, .13);
}
.services-section__bottom-copy { min-width: 0; }
.services-section__bottom-kicker {
  display: block;
  margin-bottom: 15px;
  color: #cbb38e;
  font: 600 10px/1.45 var(--font-ui);
  letter-spacing: .23em;
  text-transform: uppercase;
}
.demo-section.services-section .services-section__bottom .services-section__prompt {
  display: block;
  max-width: 740px;
  margin: 0;
  color: #f7f3eb;
  font: italic 500 clamp(35px, 3.85vw, 58px)/1.08 'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  letter-spacing: -.028em;
  text-wrap: balance;
}
.services-section__bottom .services-section__cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: clamp(18px, 2vw, 34px);
  min-height: 68px;
  padding: 18px clamp(22px, 2.5vw, 38px);
  border: 1px solid #e1c69c;
  background: #e1c69c;
  color: #29312c;
  text-decoration: none;
  font: 600 clamp(13px, 1.06vw, 16px)/1.35 var(--font-ui);
  letter-spacing: -.015em;
  white-space: nowrap;
  transition: background .26s ease, color .26s ease, transform .26s ease, border-color .26s ease;
}
.services-section__bottom .services-section__cta:hover {
  background: #f2dfbf;
  border-color: #f2dfbf;
  color: #29312c;
  transform: translateY(-3px);
  gap: clamp(18px, 2vw, 34px);
}
.services-section__bottom .services-section__cta svg { width: 23px; height: 23px; flex: none; }

/* L'AGENCE — histoire, visuels du lieu regroupés, puis portrait de la fondatrice. */
.agency-section {
  display: block;
  min-height: 0;
  padding: clamp(92px, 9vw, 145px) var(--page-gutter) clamp(95px, 10vw, 156px);
  background: #f8f7f3;
}
.agency-section__inner { width: min(1370px, 100%); margin: 0 auto; }
.agency-section__heading { margin-bottom: clamp(45px, 5.5vw, 78px); }
.agency-section__heading .demo-section__eyebrow { margin-bottom: 13px; }
.demo-section.agency-section .agency-section__heading h2 { margin: 0; }
.demo-section.agency-section .agency-section__lede {
  margin: 14px 0 0;
  color: #626861;
  font: 400 clamp(16px, 1.45vw, 21px)/1.7 var(--font-body);
}
.agency-section__eyebrow {
  display: block;
  margin: 0 0 24px;
  color: #a18058;
  font: 600 10px/1.5 var(--font-ui);
  letter-spacing: .21em;
  text-transform: uppercase;
}
.agency-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  column-gap: clamp(40px, 7vw, 108px);
  align-items: center;
}
.agency-intro__copy {
  display: grid;
  gap: 26px;
  align-content: start;
}
.agency-intro h3, .agency-founder__text h3 {
  margin: 0;
  color: #26302b;
  font: 300 clamp(36px, 3.7vw, 60px)/1.15 var(--font-ui);
  letter-spacing: -.063em;
  text-wrap: balance;
}
.agency-intro h3 em, .agency-founder__text h3 em { font-style: normal; color: #9d7a50; }
.demo-section.agency-section .agency-intro__description,
.demo-section.agency-section .agency-founder__text > p:not(.agency-section__eyebrow) {
  max-width: 620px;
  margin: 0;
  color: #606660;
  font: 400 clamp(15px, 1.22vw, 17px)/1.9 var(--font-body);
}
.agency-intro__photo {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #e6e1d9;
  box-shadow: 0 22px 55px rgba(52, 49, 43, .08);
}
.agency-intro__photo::before {
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(255,255,255,.5);
  pointer-events: none;
  z-index: 1;
}
.agency-intro__photo img {
  display: block;
  width: 100%;
  height: clamp(340px, 35vw, 520px);
  object-fit: cover;
  object-position: center;
}
.agency-gallery { margin-top: clamp(65px, 7vw, 108px); }
.agency-gallery__heading { margin-bottom: 28px; }
.agency-gallery__heading h3 {
  margin: 0;
  color: #29312c;
  font: 300 clamp(27px, 2.6vw, 40px)/1.2 var(--font-ui);
  letter-spacing: -.05em;
}
.agency-gallery__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(2, clamp(190px, 20vw, 270px));
  gap: clamp(13px, 1.4vw, 22px);
}
.agency-gallery__main {
  margin: 0;
  min-width: 0;
  grid-column: span 6;
  grid-row: span 2;
  background: #e8e5dc;
  overflow: hidden;
}
.agency-gallery__main img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 61%;
}
.agency-gallery__placeholder {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  position: relative;
  min-width: 0;
  padding: clamp(19px, 2.3vw, 33px);
  background: linear-gradient(132deg, #eceae5, #e4e0d6);
  border: 1px solid #dcd4c5;
  overflow: hidden;
}
.agency-gallery__placeholder--creation { grid-column: span 6; }
.agency-gallery__placeholder--materials,
.agency-gallery__placeholder--art { grid-column: span 3; }
.agency-gallery__placeholder::before {
  content: '';
  position: absolute;
  inset: 13px;
  border: 1px solid rgba(163, 144, 109, .22);
  pointer-events: none;
}
.agency-gallery__plus {
  position: absolute;
  top: 43%; left: 50%; transform: translate(-50%, -50%);
  width: 39px; height: 39px;
  border: 1px solid rgba(169, 148, 115, .54);
  border-radius: 50%;
}
.agency-gallery__plus::before, .agency-gallery__plus::after {
  content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  background: #b09a7b;
}
.agency-gallery__plus::before { width: 13px; height: 1px; }
.agency-gallery__plus::after { width: 1px; height: 13px; }
.agency-gallery__placeholder-tag {
  position: relative; z-index: 1;
  margin-bottom: 9px;
  color: #988568;
  font: 600 9px/1.5 var(--font-ui);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.agency-gallery__placeholder-title {
  position: relative; z-index: 1;
  color: #414941;
  font: 400 clamp(19px, 1.7vw, 26px)/1.25 var(--font-ui);
  letter-spacing: -.045em;
}
.agency-founder {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1fr);
  align-items: center;
  column-gap: clamp(45px, 8vw, 120px);
  margin-top: clamp(100px, 12vw, 176px);
  padding-top: clamp(65px, 6vw, 98px);
  border-top: 1px solid #dcd7cc;
}
.agency-founder__text { padding: 20px clamp(0px, 2vw, 30px); }
.agency-founder__text h3 { margin-bottom: 26px; }
.agency-founder__signature {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 34px;
  color: #8d795e;
  font: 500 11px/1.7 var(--font-ui);
  letter-spacing: .035em;
}
.agency-founder__signature span { width: 32px; height: 1px; flex: none; background: #af8c62; }
.agency-founder__photo {
  margin: 0;
  min-width: 0;
  background: #e9e8e2;
  overflow: hidden;
}
.agency-founder__photo img {
  display: block;
  width: 100%;
  height: clamp(440px, 45vw, 625px);
  object-fit: cover;
  object-position: center 26%;
}

/* PRESSE — a restrained editorial grid of the agency-supplied magazine wordmarks. */
.press-section {
  display: block;
  min-height: 0;
  padding: clamp(90px, 9vw, 145px) var(--page-gutter) clamp(105px, 11vw, 160px);
  background: #f0eee9;
}
.press-section__inner { width: min(1370px, 100%); margin: auto; }
.press-section__heading { margin-bottom: clamp(45px, 6vw, 82px); }
.press-section__heading .demo-section__eyebrow { margin-bottom: 13px; }
.demo-section.press-section .press-section__heading h2 { margin: 0; }
.demo-section.press-section .press-section__intro {
  max-width: 730px;
  margin: 15px 0 0;
  color: #656c65;
  font: 400 clamp(15px, 1.35vw, 19px)/1.75 var(--font-body);
}
.press-section__logos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid #dfdcd4;
  background: #dfdcd4;
}
.press-section__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: clamp(155px, 16vw, 228px);
  padding: clamp(22px, 3vw, 44px);
  background: #fcfbf8;
  transition: background .32s ease;
}
.press-section__logo img {
  display: block;
  max-width: 100%;
  width: auto;
  max-height: 94px;
  height: auto;
  object-fit: contain;
}
.press-section__logo--elle img { max-width: 49%; max-height: 74px; }
.press-section__logo--jardin img { max-height: 118px; max-width: 78%; }
@media (hover: hover) {
  .press-section__logo:hover { background: #f5f0e7; }
}
/* Social placeholders. No link to a third-party home page until official account URLs are provided. */
.site-footer__socials { margin-top: clamp(44px, 5vw, 70px); }
.site-footer__social-list { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-top: 17px; }
.site-footer__social {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
  color: #ede7d9;
  font: 500 11px/1.3 var(--font-ui);
  text-decoration: none;
  opacity: .8;
}
.site-footer__social svg { width: 19px; height: 19px; color: #ddc49c; }
.site-footer__social[aria-disabled="true"] { cursor: default; }
.site-footer__social[href]:hover { color: #e7cb9c; opacity: 1; }

@media (max-width: 1020px) {
  .services-section__bottom { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .services-section__bottom .services-section__cta { min-height: 60px; }
  .agency-intro { column-gap: 38px; grid-template-columns: minmax(0, 1fr) minmax(290px, .85fr); }
  .agency-founder { column-gap: 45px; }
}
@media (max-width: 980px) {
  .agency-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 410px 225px;
  }
  .agency-gallery__main { grid-column: 1; grid-row: 1; }
  .agency-gallery__placeholder--creation { grid-column: 2; grid-row: 1; }
  .agency-gallery__placeholder--materials { grid-column: 1; grid-row: 2; }
  .agency-gallery__placeholder--art { grid-column: 2; grid-row: 2; }
  .press-section__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .agency-section { padding-block: 85px 100px; }
  .agency-section__heading { margin-bottom: 42px; }
  .agency-intro { grid-template-columns: 1fr; gap: 26px; }
  .agency-intro__photo img { height: clamp(300px, 66vw, 420px); }
  .agency-gallery { margin-top: 55px; }
  .agency-gallery__grid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-template-rows: 460px 195px 195px; }
  .agency-gallery__main { grid-column: 1 / -1; grid-row: 1; }
  .agency-gallery__placeholder--creation { grid-column: 1 / -1; grid-row: 2; }
  .agency-gallery__placeholder--materials, .agency-gallery__placeholder--art { grid-column: span 1; grid-row: 3; }
  .agency-founder { grid-template-columns: 1fr; gap: 34px; margin-top: 97px; padding-top: 62px; }
  .agency-founder__text { padding: 0; }
  .agency-founder__photo img { height: clamp(430px, 105vw, 640px); }
  .press-section { padding-block: 90px 110px; }
  .press-section__logos { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .press-section__logo { min-height: 164px; padding: 25px; }
  .press-section__logo--elle img { max-width: 58%; }
}
@media (max-width: 730px) {
  .services-section__bottom { gap: 28px; padding: 37px 27px; margin-top: 50px; }
  .demo-section.services-section .services-section__bottom .services-section__prompt { font-size: clamp(35px, 8.5vw, 48px); }
  .services-section__bottom .services-section__cta { width: 100%; justify-content: space-between; padding: 17px 19px; white-space: normal; }
}
@media (max-width: 520px) {
  .agency-gallery__grid { grid-template-rows: 380px 175px 182px; gap: 11px; }
  .agency-gallery__placeholder { padding: 18px; }
  .agency-gallery__placeholder::before { inset: 9px; }
  .agency-gallery__placeholder-tag { font-size: 8px; letter-spacing: .07em; }
  .agency-gallery__placeholder-title { font-size: 19px; }
  .agency-gallery__plus { width: 32px; height: 32px; top: 35%; }
  .press-section__logos { grid-template-columns: 1fr; }
  .press-section__logo { min-height: 116px; padding: 23px 35px; }
  .press-section__logo img { max-height: 69px; max-width: 82%; }
  .press-section__logo--elle img { max-width: 39%; max-height: 62px; }
  .press-section__logo--jardin img { max-height: 84px; max-width: 65%; }
  .site-footer__social-list { gap: 10px 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .services-section__bottom .services-section__cta,
  .press-section__logo { transition: none; }
}


/* 2026-10-29 — presse marquee refresh + icon-only footer socials */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.press-section {
  overflow: hidden;
}
.press-section__heading {
  display: grid;
  gap: 0;
}
.press-marquee {
  position: relative;
  display: grid;
  gap: 18px;
  padding: clamp(20px, 2.2vw, 28px);
  background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.33));
  border: 1px solid rgba(211, 204, 191, .9);
  box-shadow: 0 18px 45px rgba(63, 60, 53, .05);
  overflow: hidden;
}
.press-marquee::before,
.press-marquee::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: clamp(36px, 7vw, 120px);
  z-index: 2;
  pointer-events: none;
}
.press-marquee::before {
  left: 0;
  background: linear-gradient(90deg, #f0eee9 12%, rgba(240,238,233,0));
}
.press-marquee::after {
  right: 0;
  background: linear-gradient(270deg, #f0eee9 12%, rgba(240,238,233,0));
}
.press-marquee__row {
  position: relative;
  overflow: hidden;
  padding-block: 4px;
}
.press-marquee__track {
  display: flex;
  align-items: center;
  gap: clamp(16px, 1.8vw, 24px);
  width: max-content;
  will-change: transform;
}
.press-marquee__row--primary .press-marquee__track {
  animation: press-marquee-left 38s linear infinite;
}
.press-marquee__row--secondary .press-marquee__track {
  animation: press-marquee-right 42s linear infinite;
}
.press-marquee__card {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(170px, 18vw, 280px);
  min-height: clamp(90px, 9vw, 122px);
  padding: clamp(14px, 1.5vw, 20px) clamp(18px, 1.9vw, 28px);
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(221, 214, 201, .88);
  backdrop-filter: blur(4px);
}
.press-marquee__card img {
  display: block;
  max-width: 100%;
  max-height: 72px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.press-marquee__card--elle { min-width: 170px; }
.press-marquee__card--elle img { max-height: 50px; }
.press-marquee__card--jardin { min-width: clamp(220px, 24vw, 330px); }
.press-marquee__card--jardin img { max-height: 86px; }
.press-marquee__card--campagne { min-width: clamp(340px, 36vw, 520px); }
.press-marquee__card--campagne img { max-height: 92px; }

@keyframes press-marquee-left {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-50% - 12px),0,0); }
}
@keyframes press-marquee-right {
  from { transform: translate3d(calc(-50% - 12px),0,0); }
  to { transform: translate3d(0,0,0); }
}

.site-footer__social-list {
  gap: 12px;
}
.site-footer__social {
  justify-content: center;
  width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0;
  border: 1px solid rgba(225, 198, 156, .28);
  border-radius: 999px;
  background: rgba(255,255,255,.03);
}
.site-footer__social svg {
  width: 18px;
  height: 18px;
}
.site-footer__social[href]:hover {
  border-color: rgba(231, 203, 156, .6);
  background: rgba(231, 203, 156, .08);
}

@media (max-width: 980px) {
  .press-marquee__row--primary .press-marquee__track { animation-duration: 32s; }
  .press-marquee__row--secondary .press-marquee__track { animation-duration: 36s; }
}
@media (max-width: 760px) {
  .press-section { padding-block: 90px 110px; }
  .press-marquee { gap: 14px; padding: 16px; }
  .press-marquee__card {
    min-width: 185px;
    min-height: 84px;
    padding: 12px 16px;
  }
  .press-marquee__card img { max-height: 60px; }
  .press-marquee__card--campagne { min-width: 315px; }
  .press-marquee__card--campagne img { max-height: 72px; }
  .press-marquee__card--jardin img { max-height: 72px; }
}
@media (max-width: 520px) {
  .press-marquee::before, .press-marquee::after { width: 34px; }
  .press-marquee__track { gap: 12px; }
  .press-marquee__row--primary .press-marquee__track { animation-duration: 28s; }
  .press-marquee__row--secondary .press-marquee__track { animation-duration: 31s; }
  .press-marquee__card {
    min-width: 154px;
    min-height: 76px;
    padding: 10px 14px;
  }
  .press-marquee__card img { max-height: 50px; }
  .press-marquee__card--elle { min-width: 132px; }
  .press-marquee__card--elle img { max-height: 42px; }
  .press-marquee__card--jardin { min-width: 205px; }
  .press-marquee__card--jardin img { max-height: 65px; }
  .press-marquee__card--campagne { min-width: 280px; }
  .press-marquee__card--campagne img { max-height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .press-marquee__row--primary .press-marquee__track,
  .press-marquee__row--secondary .press-marquee__track {
    animation: none;
  }
}
/* L'AGENCE — galerie d'images éditoriale en mosaïque */
.agency-gallery { margin-top: clamp(65px, 7vw, 112px); }
.agency-gallery__heading { margin-bottom: 27px; }
.agency-gallery__heading .agency-section__eyebrow { margin-bottom: 12px; }
.agency-gallery__heading h3 {
  font: 300 clamp(32px, 3.2vw, 50px)/1.15 var(--font-ui);
  letter-spacing: -.062em;
}
.agency-gallery__heading h3 em { font: italic 500 1.15em/1.05 'Cormorant Garamond', Georgia, serif; color: #96754b; }
.agency-gallery__mosaic {
  display: grid;
  grid-template-columns: 1.13fr 1.07fr 1fr;
  grid-template-rows: 215px 215px 240px;
  gap: clamp(11px, 1.35vw, 19px);
}
.agency-photo {
  position: relative;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
  margin: 0;
  background: #e3e1db;
}
.agency-photo img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.22,.61,.36,1), filter .6s;
}
.agency-photo:hover img { transform: scale(1.045); }
.agency-photo--facade { grid-column: 1; grid-row: 1 / 4; }
.agency-photo--facade img { object-position: 50% 68%; }
.agency-photo--staircase { grid-column: 2; grid-row: 1 / 3; }
.agency-photo--staircase img { object-position: 50% 43%; }
.agency-photo--studio { grid-column: 3; grid-row: 1; }
.agency-photo--shelves { grid-column: 3; grid-row: 2; }
.agency-photo--material { grid-column: 2; grid-row: 3; }
.agency-photo--salon { grid-column: 3; grid-row: 3; }
.agency-founder { margin-top: clamp(86px, 9vw, 130px); }
.agency-founder__quote { margin: 0 0 clamp(30px, 4vw, 52px); padding: 0; }
.agency-founder__quote p {
  margin: 0 0 17px;
  color: #29312c !important;
  font: italic 500 clamp(35px, 3.6vw, 57px)/1.15 'Cormorant Garamond', Georgia, serif !important;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.agency-founder__quote cite {
  color: #9a7c55;
  font: normal 600 10px/1.5 var(--font-ui);
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* PRESSE — un seul bandeau transparent, sans fonds ni contours sur les logos. */
.press-section__heading { margin-bottom: clamp(35px, 4.2vw, 56px); }
.press-marquee {
  --press-gap: clamp(42px, 5.7vw, 94px);
  display: block;
  padding: clamp(10px, 1.6vw, 24px) 0;
  background: none;
  border: 0;
  box-shadow: none;
  overflow: hidden;
}
.press-marquee::before, .press-marquee::after { width: clamp(20px, 4vw, 70px); }
.press-marquee::before { background: linear-gradient(90deg, #f0eee9, rgba(240,238,233,0)); }
.press-marquee::after { background: linear-gradient(270deg, #f0eee9, rgba(240,238,233,0)); }
.press-marquee__row { padding: 12px 0; }
.press-marquee__track { gap: var(--press-gap); }
.press-marquee__row--primary .press-marquee__track { animation: press-marquee-left-v4 35s linear infinite; }
.press-marquee__card,
.press-marquee__card--elle,
.press-marquee__card--jardin,
.press-marquee__card--campagne {
  min-width: 0;
  width: 220px;
  min-height: 94px;
  padding: 0;
  border: none;
  background: transparent;
  backdrop-filter: none;
}
.press-marquee__card img { max-height: 83px; max-width: 100%; }
.press-marquee__card--elle { width: 160px; }
.press-marquee__card--elle img { max-height: 66px; }
.press-marquee__card--jardin { width: 235px; }
.press-marquee__card--jardin img { max-height: 105px; }
.press-marquee__card--campagne { width: 390px; }
.press-marquee__card--campagne img { max-height: 94px; }
.press-marquee:hover .press-marquee__track { animation-play-state: paused; }
@keyframes press-marquee-left-v4 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-50% - var(--press-gap) / 2),0,0); }
}

/* CONTACT — premium minimal form, separate pathways */
.contact-section {
  padding: clamp(95px, 10vw, 160px) var(--page-gutter) clamp(110px, 11vw, 175px);
  background: #f6f4ef;
}
.contact-section__inner {
  display: grid;
  grid-template-columns: minmax(0,.77fr) minmax(0,1.23fr);
  align-items: start;
  gap: clamp(55px, 7.5vw, 124px);
  width: min(1400px, 100%);
  margin: 0 auto;
}
.contact-section__intro { padding-top: 14px; }
.contact-section__intro h2 {
  max-width: 490px;
  margin: 14px 0 0;
  font: 300 clamp(47px, 5vw, 80px)/1.05 var(--font-ui);
  letter-spacing: -.065em;
  color: #29312c;
}
.contact-section__intro h2 em { display: block; color: #9d7d54; font: italic 500 1.04em/1.06 'Cormorant Garamond', Georgia, serif; letter-spacing: -.035em; }
.contact-section__rule { width: 65px; height: 1px; margin-top: 37px; background: #af936a; }
.contact-section__intro > p:not(.demo-section__eyebrow) {
  max-width: 415px;
  margin: 32px 0 0;
  font: 400 clamp(15px, 1.25vw, 17px)/1.85 var(--font-body);
  color: #68706a;
}
.contact-section__direct { display: grid; justify-items: start; gap: 10px; margin-top: 60px; }
.contact-section__direct span { margin-bottom: 4px; color: #97856c; font: 600 10px/1.5 var(--font-ui); letter-spacing: .13em; text-transform: uppercase; }
.contact-section__direct a { color: #354039; font: 500 clamp(13px, 1.08vw, 16px)/1.7 var(--font-body); text-decoration: none; border-bottom: 1px solid transparent; }
.contact-section__direct a:hover { border-bottom-color: #a78558; }
.contact-panel { min-width: 0; padding: clamp(27px, 4vw, 62px); background: #fffefa; border: 1px solid #e2ded5; box-shadow: 0 18px 65px rgba(55,57,48,.045); }
.contact-panel__top { margin-bottom: clamp(24px, 3.3vw, 46px); }
.contact-panel__eyebrow { margin: 0 0 12px; color: #9d7a50; font: 600 10px/1.4 var(--font-ui); letter-spacing: .2em; text-transform: uppercase; }
.contact-panel h3 { margin: 0; color: #2d3932; font: 400 clamp(27px, 2.45vw, 35px)/1.25 var(--font-ui); letter-spacing: -.055em; }
.contact-panel__top > p:last-child { margin: 10px 0 0; color: #7a817a; font: 400 12px/1.7 var(--font-body); }
.contact-form__profiles { margin: 0 0 33px; padding: 0; border: 0; }
.contact-form__profiles legend,
.contact-form__type-fieldset legend { margin: 0 0 13px; color: #454e47; font: 600 12px/1.5 var(--font-ui); }
.contact-form__profiles legend span,
.contact-form__type-fieldset legend span { color: #ab865b; }
.contact-form__profile-options { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.contact-form__profile, .contact-form__type-options label { display: block; position: relative; cursor: pointer; }
.contact-form__profile input, .contact-form__type-options input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.contact-form__profile span {
  display: flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 12px 16px;
  background: #f8f7f3; border: 1px solid #dcd9d2;
  color: #647067; font: 600 12px/1.4 var(--font-ui);
  transition: background .2s, color .2s, border-color .2s;
}
.contact-form__profile input:checked + span { background: #2d3731; border-color: #2d3731; color: #fcf9f3; }
.contact-form__profile input:focus-visible + span, .contact-form__type-options input:focus-visible + span { outline: 2px solid #b68c57; outline-offset: 3px; }
.contact-form__fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; }
.contact-form__field { display: flex; flex-direction: column; min-width: 0; gap: 10px; }
.contact-form__field--full { grid-column: 1 / -1; }
.contact-form__field label { color: #444e45; font: 600 12px/1.5 var(--font-ui); }
.contact-form__field label span { color: #ad895c; }
.contact-form__field input, .contact-form__field textarea {
  display: block; width: 100%; min-height: 49px;
  padding: 12px 14px; border: 1px solid #ddd9d0;
  border-radius: 0; background: #fbfaf7;
  color: #2e3832; font: 400 14px/1.5 var(--font-body);
  transition: border-color .2s, background .2s;
}
.contact-form__field textarea { min-height: 146px; resize: vertical; }
.contact-form__field input::placeholder, .contact-form__field textarea::placeholder { color: #9b9c96; opacity: 1; }
.contact-form__field input:focus, .contact-form__field textarea:focus { border-color: #b79a70; background: #fff; outline: 1px solid #b79a70; outline-offset: 1px; }
.contact-form__variant { margin-top: 24px; }
.contact-form__type-fieldset { padding: 0; margin: 24px 0 0; border: 0; }
.contact-form__type-options { display: flex; flex-wrap: wrap; gap: 9px; }
.contact-form__type-options span { display: block; padding: 11px 15px; border: 1px solid #dcd9d1; background: #f9f8f4; color: #5a645c; font: 500 12px/1.4 var(--font-ui); transition: background .2s, color .2s, border-color .2s; }
.contact-form__type-options input:checked + span { background: #e9e1d4; border-color: #a9885c; color: #3c413b; }
.contact-form__message { margin-top: 25px; }
.contact-form__hint { color: #8d928b; font: 400 11px/1.4 var(--font-body); }
.contact-form__honeypot { position: absolute; overflow: hidden; width: 1px; height: 1px; clip-path: inset(50%); white-space: nowrap; }
.contact-form__bottom { margin-top: 26px; }
.contact-form__privacy { color: #7d837c; font: 400 11px/1.75 var(--font-body); }
.contact-form__submit {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; gap: 25px; min-height: 60px;
  padding: 17px 23px; margin-top: 24px;
  border: 1px solid #2d3731; background: #2d3731;
  color: #fffdf8; font: 600 13px/1.35 var(--font-ui); cursor: pointer;
  transition: background .24s, transform .24s;
}
.contact-form__submit:hover { background: #465147; transform: translateY(-2px); }
.contact-form__submit:disabled { opacity: .65; cursor: wait; transform: none; }
.contact-form__submit svg { width: 24px; height: 24px; }
.contact-form__status { margin: 15px 0 0; font: 500 13px/1.6 var(--font-body); }
.contact-form__status.is-error { color: #9b403b; }
.contact-form__status.is-info { color: #665238; }
.contact-form__success { padding: clamp(25px, 4vw, 45px) 0; text-align: left; }
.contact-form__success-mark { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 35px; border: 1px solid #bb9b6b; color: #b18a55; font-size: 26px; }
.contact-form__success h3 { max-width: 480px; font: italic 500 clamp(37px,4vw,56px)/1.16 'Cormorant Garamond', Georgia, serif; }
.contact-form__success > p:not(.contact-panel__eyebrow) { max-width: 420px; margin: 20px 0 30px; color: #68736a; font: 400 15px/1.8 var(--font-body); }
.contact-form__success button { border: 0; background: none; padding: 0 0 8px; border-bottom: 1px solid #ac8c65; color: #3e483d; font: 600 12px/1.6 var(--font-ui); cursor: pointer; }
[hidden] { display: none !important; }
@media (max-width: 1100px) {
  .contact-section__inner { grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 45px; }
  .agency-gallery__mosaic { grid-template-rows: 185px 185px 210px; }
}
@media (max-width: 850px) {
  .agency-gallery__mosaic { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 320px 250px 180px 180px; }
  .agency-photo--facade { grid-column: 1; grid-row: 1 / 3; }
  .agency-photo--staircase { grid-column: 2; grid-row: 1 / 3; }
  .agency-photo--studio { grid-column: 1; grid-row: 3; }
  .agency-photo--shelves { grid-column: 2; grid-row: 3; }
  .agency-photo--material { grid-column: 1; grid-row: 4; }
  .agency-photo--salon { grid-column: 2; grid-row: 4; }
  .contact-section__inner { grid-template-columns: 1fr; gap: 45px; }
  .contact-section__intro > p:not(.demo-section__eyebrow) { max-width: 640px; }
  .contact-section__direct { margin-top: 25px; }
}
@media (max-width: 580px) {
  .agency-gallery__heading h3 { font-size: 34px; }
  .agency-intro__copy { gap: 20px; }
  .agency-intro__photo::before { inset: 9px; }
  .agency-intro__photo img { height: 280px; }
  .agency-gallery__mosaic { grid-template-rows: 370px 250px 160px 160px; gap: 9px; }
  .agency-photo--facade { grid-column: 1 / -1; grid-row: 1; }
  .agency-photo--staircase { grid-column: 1 / -1; grid-row: 2; }
  .agency-photo--studio { grid-column: 1; grid-row: 3; }
  .agency-photo--shelves { grid-column: 2; grid-row: 3; }
  .agency-photo--material { grid-column: 1; grid-row: 4; }
  .agency-photo--salon { grid-column: 2; grid-row: 4; }
  .agency-photo--facade img { object-position: 50% 55%; }
  .agency-founder__quote p { font-size: 39px !important; }
  .press-marquee { --press-gap: 38px; padding: 9px 0; }
  .press-marquee__card { width: 164px; min-height: 75px; }
  .press-marquee__card img { max-height: 60px; }
  .press-marquee__card--elle { width: 100px; }
  .press-marquee__card--elle img { max-height: 44px; }
  .press-marquee__card--jardin { width: 168px; }
  .press-marquee__card--jardin img { max-height: 76px; }
  .press-marquee__card--campagne { width: 300px; }
  .press-marquee__card--campagne img { max-height: 70px; }
  .contact-section { padding-block: 85px 100px; }
  .contact-section__intro h2 { font-size: 48px; }
  .contact-panel { padding: 26px 21px 31px; }
  .contact-form__fields { grid-template-columns: 1fr; gap: 19px; }
  .contact-form__type-options { gap: 8px; }
  .contact-form__type-options span { padding: 10px 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .press-marquee__row--primary .press-marquee__track { animation: none; }
  .press-marquee__row { overflow-x: auto; }
  .agency-photo img, .contact-form__submit { transition: none !important; }
}


/* V5 — Affinages ciblés des sections Accueil, Réalisations, Agence, Presse et Contact. */
.hero__background { background-position: center 51%; }
.hero__shade {
  background: linear-gradient(90deg, rgba(13, 22, 26, .67) 0%, rgba(13, 22, 26, .45) 38%, rgba(13, 22, 26, .12) 82%),
              linear-gradient(0deg, rgba(15, 20, 23, .35), transparent 34%);
}
.hero__bottom { justify-content: flex-end; }

/* Aligner les titres de Réalisations sur ceux des autres sections, sans changer la typographie. */
.portfolio-section__inner { width: min(1370px, 100%); }
.portfolio-section__heading { text-align: left; margin-left: 0; margin-right: 0; }

/* Le titre doré du Contact reprend exactement l'écriture de l'Agence :
   mêmes caractères Manrope légers (non italiques), même teinte. */
.contact-section__intro h2 em {
  display: block;
  color: #9d7a50;
  font-family: var(--font-ui);
  font-size: inherit;
  font-style: normal;
  font-weight: 300;
  line-height: inherit;
  letter-spacing: inherit;
}
.contact-form__field label .contact-form__optional {
  color: #86867d;
  font-weight: 400;
  font-size: 11px;
}

/* Presse plus compacte, avec une matière de fond douce et contemporaine.
   Les logos restent sur une seule ligne et ne sont pas encadrés. */
.demo-section.press-section {
  position: relative;
  isolation: isolate;
  min-height: 0;
  padding-block: clamp(55px, 5.8vw, 90px) clamp(58px, 6.1vw, 98px);
  overflow: hidden;
  background: radial-gradient(ellipse at 93% 13%, rgba(186, 170, 139, .22), transparent 42%),
              radial-gradient(ellipse at 8% 90%, rgba(211, 204, 187, .21), transparent 46%),
              linear-gradient(128deg, #f8f7f4 0%, #efeee9 56%, #e9e8e2 100%);
  border-top: 1px solid rgba(185, 172, 153, .18);
  border-bottom: 1px solid rgba(185, 172, 153, .24);
}
.demo-section.press-section .press-section__heading { margin-bottom: clamp(20px, 2.8vw, 39px); }
.demo-section.press-section .press-section__intro { margin-top: 10px; }
.press-marquee {
  padding: 0;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
.press-marquee::before, .press-marquee::after { display: none; }
.press-marquee__row { padding-block: 5px; }
.press-marquee__card,
.press-marquee__card--elle,
.press-marquee__card--jardin,
.press-marquee__card--campagne {
  min-height: 84px;
}
@media (max-width: 730px) {
  .hero__background { background-position: 54% center; }
  .hero__shade { background: linear-gradient(90deg, rgba(14,21,24,.72), rgba(14,21,24,.27) 100%), linear-gradient(0deg, rgba(10,17,17,.30), transparent 40%); }
  .demo-section.press-section { padding-block: 57px 62px; }
  .demo-section.press-section .press-section__heading { margin-bottom: 22px; }
  .press-marquee { -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent); }
}




/* Galerie longue : miniatures accessibles par défilement horizontal (7 photos Grand Large). */
.project-dialog__thumbnails.is-scrollable {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: #b5a58d #ebe7de;
}
.project-dialog__thumbnails.is-scrollable button {
  flex: 0 0 clamp(76px, 10vw, 106px);
  scroll-snap-align: start;
}
@media (max-width: 540px) {
  .project-dialog__thumbnails.is-scrollable button { flex-basis: 80px; }
}


/* Décor'In — mise à jour éditoriale : 29 octobre 2026 */
/* Accueil fixe, sans animation de fond. */
.hero__background {
  transform: none !important;
  animation: none !important;
  transition: none !important;
  will-change: auto;
}

/* Galerie : tonalité uniforme discrète sur les vignettes, sans toucher aux photos en grand. */
.project-card__visual img {
  filter: saturate(.84) contrast(.98) brightness(.96);
  transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
.project-card:hover .project-card__visual img,
.project-card:focus-visible .project-card__visual img {
  filter: saturate(.98) contrast(1) brightness(1);
}

/* Prestations : 2 cartes + 3 cartes, visuels plus petits et toujours entièrement visibles. */
.services-gallery {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: clamp(16px,1.8vw,26px);
  align-items: stretch;
}
.services-gallery > .service-showcase {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: #f9f8f4;
  border: 1px solid #ded9ce;
}
.services-gallery > .service-showcase:nth-child(-n+2) {
  grid-column: span 3;
  background: #f8f6f1;
}
.services-gallery .service-showcase__art {
  order: 0;
  height: clamp(195px,18vw,240px);
  min-height: 0;
  padding: 18px 20px 2px;
  flex: 0 0 auto;
  overflow: visible;
  background: radial-gradient(ellipse at 50% 78%,rgba(227,217,202,.25),transparent 70%);
}
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art {
  height: clamp(200px,19vw,265px);
  padding-top: 21px;
}
.services-gallery .service-showcase__art img,
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img {
  display: block;
  width: 100%;
  max-width: 320px;
  max-height: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.services-gallery .service-showcase__copy,
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__copy {
  flex: 1;
  width: 100%;
  padding: clamp(25px,2.8vw,40px) clamp(23px,2.6vw,37px) clamp(32px,3vw,43px);
  align-self: stretch;
}
.services-gallery .service-showcase h3,
.services-gallery > .service-showcase:nth-child(-n+2) h3 {
  font-size: clamp(23px,2.1vw,32px);
  line-height: 1.27;
}
.services-gallery .service-showcase__accent {
  margin-bottom: 17px;
  width: 35px;
}
.services-gallery .service-showcase__copy p,
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__copy p {
  max-width: 560px;
  margin-top: 13px;
}
@media (max-width: 1050px) {
  .services-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .services-gallery > .service-showcase,
  .services-gallery > .service-showcase:nth-child(-n+2) { grid-column: auto; }
  .services-gallery > .service-showcase:last-child { grid-column: 1 / -1; }
  .services-gallery .service-showcase__art,
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art { height: 210px; padding: 14px 16px 0; }
  .services-gallery .service-showcase__art img,
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img { max-width: 300px; }
}
@media (max-width: 680px) {
  .services-gallery { grid-template-columns: 1fr; gap: 18px; }
  .services-gallery > .service-showcase,
  .services-gallery > .service-showcase:nth-child(-n+2),
  .services-gallery > .service-showcase:last-child { grid-column: 1; }
  .services-gallery .service-showcase__art,
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art {
    order: 0; height: 210px; padding: 15px 18px 0;
  }
  .services-gallery .service-showcase__art img,
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img {
    width: 100%; max-width: 280px; height: 100%;
  }
  .services-gallery .service-showcase__copy,
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__copy {
    padding: 26px 26px 34px;
  }
}
@media (max-width: 380px) {
  .services-gallery .service-showcase__art,
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art { height: 185px; }
}

/* L'Agence : léger espacement après L' et photo du centre ancien sans encadrement. */
.demo-section.agency-section .agency-section__heading h2 {
  letter-spacing: -.035em;
}
.agency-intro__photo {
  box-shadow: none;
  border: 0;
}
.agency-intro__photo::before { content: none; }

/* Les PNG restent entièrement contenus dans une zone dédiée, sans chevauchement du texte. */
.services-gallery .service-showcase__art,
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.services-gallery .service-showcase__art img,
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img {
  flex: none;
  width: auto;
  height: auto;
  max-width: 94%;
  max-height: 185px;
  object-fit: contain;
}
.services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img {
  max-height: 205px;
}
@media (max-width: 1050px) {
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img,
  .services-gallery .service-showcase__art img { max-height: 180px; }
}
@media (max-width: 380px) {
  .services-gallery > .service-showcase:nth-child(-n+2) .service-showcase__art img,
  .services-gallery .service-showcase__art img { max-height: 160px; }
}

/* Ajustement optique entre l'apostrophe et le A du titre de section. */
.demo-section.agency-section .agency-section__heading h2 .agency-title__word {
  padding-inline-start: .075em;
}

/* Espace optique après l’apostrophe dans « L’agence en images. » */
.agency-gallery__after-apostrophe { margin-left: .12em; }


/* V10 — Espacements encore plus compacts entre les sections.
   Les marges internes des cartes, les photographies et la lisibilité restent intactes. */
.portfolio-section {
  padding-block: clamp(42px, 4.4vw, 68px) clamp(44px, 4.8vw, 74px);
}
.portfolio-section__heading { margin-bottom: clamp(26px, 3vw, 42px); }
.services-section {
  padding-block: clamp(43px, 4.5vw, 70px) clamp(45px, 4.9vw, 77px);
}
.services-section__heading { margin-bottom: clamp(28px, 3.2vw, 44px); }
.services-section__bottom { margin-top: clamp(30px, 4vw, 52px); }
.agency-section {
  padding-block: clamp(45px, 4.7vw, 72px) clamp(48px, 5.1vw, 80px);
}
.agency-section__heading { margin-bottom: clamp(30px, 3.3vw, 48px); }
.agency-gallery { margin-top: clamp(44px, 4.7vw, 68px); }
.agency-founder { margin-top: clamp(58px, 6.2vw, 90px); }
.demo-section.press-section {
  padding-block: clamp(32px, 3.3vw, 52px) clamp(34px, 3.7vw, 57px);
}
.contact-section {
  padding-block: clamp(45px, 4.7vw, 73px) clamp(46px, 4.8vw, 76px);
}
.site-footer__inner {
  padding-top: clamp(48px, 5.2vw, 82px);
}
@media (max-width: 760px) {
  .portfolio-section { padding-block: 42px 47px; }
  .services-section { padding-block: 43px 50px; }
  .agency-section { padding-block: 46px 54px; }
  .agency-gallery { margin-top: 43px; }
  .agency-founder { margin-top: 60px; }
  .demo-section.press-section { padding-block: 34px 38px; }
  .contact-section { padding-block: 46px 53px; }
  .site-footer__inner { padding-top: 48px; }
}

/* Espacement optique du lien L'Agence dans le menu desktop et mobile. */
.site-nav__after-apostrophe { margin-inline-start: .14em; }

/* Avis Google : carte compacte et élégante sous le numéro dans Contact. */
.contact-section__direct .google-review {
  display: grid;
  width: min(100%, 330px);
  padding: 19px 23px 17px;
  margin-top: 18px;
  border: 1px solid #dcd5c8;
  background: linear-gradient(145deg, #fffefa 0%, #f1ece3 100%);
  box-shadow: 0 10px 23px rgba(57, 50, 38, .04);
  color: #354039;
}
.google-review__heading {
  color: #87745c !important;
  font: 600 10px/1.5 var(--font-ui) !important;
  text-transform: uppercase;
  letter-spacing: .14em !important;
  margin: 0 0 8px !important;
}
.google-review__main { display: flex; gap: 11px; align-items: center; }
.google-review__main svg { width: 23px; height: 23px; flex: none; color: #b68c55; }
.google-review__main strong {
  color: #313d34;
  font: 500 32px/1.2 var(--font-ui);
  letter-spacing: -.05em;
}
.google-review__main strong small { font-size: 16px; color: #687169; letter-spacing: 0; }
.google-review__count { margin-left: auto; font: 500 13px/1.3 var(--font-body); color: #5c665e; }

/* Rating is static information, not an interactive link. */
.contact-section__direct .google-review { cursor: default; }
.contact-section__direct .google-review__count {
  margin: 0 0 0 auto;
  color: #5c665e;
  font: 500 13px/1.3 var(--font-body);
  letter-spacing: normal;
  text-transform: none;
}
