/* ALTO27 — Version 1 : direction éditoriale minimaliste */
:root {
  --paper: #f7f6f2;
  --white: #fffcf7;
  --ink: #232725;
  --muted: #717570;
  --line: #d8dad3;
  --accent: #ab6b4e;
  --soft: #ebe9e2;
  --deep: #202723;
  --serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --sans: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --wrap: 1280px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 85px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
::selection { background: #dcc3b4; color: var(--ink); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.wrap { width: min(calc(100% - 100px), var(--wrap)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 300; background: var(--ink); color: var(--paper); padding: 12px 18px; }
.skip-link:focus { top: 12px; }
.page-progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; background: var(--accent); z-index: 210; pointer-events: none; }

/* Navigation */
.site-header { position: relative; z-index: 100; background: var(--paper); border-bottom: 1px solid rgba(35, 39, 37, .09); }
.header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.wordmark { font-size: 28px; font-weight: 700; letter-spacing: -.095em; white-space: nowrap; line-height: 1; }
.wordmark span:first-child { font-weight: 400; }
.wordmark-dot { color: var(--accent); margin-left: 1px; }
.desktop-nav { display: flex; align-items: center; gap: 40px; margin-left: 80px; }
.desktop-nav a, .header-contact { font-size: 12px; font-weight: 500; letter-spacing: .015em; }
.desktop-nav a { color: #4e5550; transition: color .25s ease; }
.desktop-nav a:hover { color: var(--accent); }
.header-contact { display: inline-flex; align-items: center; gap: 19px; padding-bottom: 8px; border-bottom: 1px solid var(--ink); transition: color .25s ease, border-color .25s ease; }
.header-contact:hover { color: var(--accent); border-color: var(--accent); }
.header-contact span { font-size: 18px; }
.menu-toggle, .mobile-nav { display: none; }

/* Hero */
.hero { position: relative; overflow: hidden; min-height: min(850px, calc(100svh - 88px)); }
.hero-content { position: relative; z-index: 2; min-height: min(850px, calc(100svh - 88px)); display: flex; flex-direction: column; }
.hero-topline { padding-top: 53px; display: flex; align-items: center; justify-content: space-between; }
.eyebrow, .hero-location, .hero-index, .hero-bottom, .section-kicker, .band-index, .band-marker, .artboard-corner, .artboard-bottom, .mock-menu, .mock-base, .card-caption, .universe-note, .approach-step > span, .footer-bottom { font-size: 11px; letter-spacing: .08em; }
.eyebrow, .hero-location { display: inline-flex; align-items: center; gap: 12px; }
.eyebrow { text-transform: uppercase; font-weight: 600; }
.status-dot { display: inline-block; width: 7px; height: 7px; background: var(--accent); border-radius: 50%; }
.hero-location { color: var(--muted); }
.tiny-cross { color: var(--accent); font-size: 14px; }
.hero-middle { margin: auto 0; padding-top: 70px; padding-bottom: 60px; }
.hero-index { color: var(--muted); font-weight: 500; margin: 0 0 32px; }
.hero-index span { color: #a8aba4; padding-left: 12px; }
.hero-title { margin: 0; font-size: clamp(72px, 9.3vw, 148px); letter-spacing: -.093em; font-weight: 500; line-height: .95; max-width: 1250px; }
.hero-title em, .section h2 em, .contact-section h2 em { font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; }
.hero-title em { color: var(--accent); }
.hero-intro { margin-top: 42px; max-width: 100%; display: flex; justify-content: flex-end; align-items: flex-end; gap: 74px; }
.hero-intro p { margin: 0; color: #535a54; font-size: 15px; line-height: 1.85; max-width: 355px; }
.text-link { font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; gap: 23px; border-bottom: 1px solid var(--ink); padding-bottom: 10px; white-space: nowrap; transition: color .2s ease, border-color .2s ease; }
.text-link:hover { color: var(--accent); border-color: var(--accent); }
.text-link span { font-size: 17px; }
.hero-bottom { display: flex; align-items: center; justify-content: space-between; padding-bottom: 34px; color: var(--muted); }
.scroll-link { display: inline-flex; align-items: center; gap: 19px; }
.circle-arrow { border: 1px solid #cdd0ca; border-radius: 50%; height: 40px; width: 40px; display: inline-grid; place-items: center; font-size: 19px; color: var(--ink); transition: background .25s ease, color .25s ease; }
.scroll-link:hover .circle-arrow { background: var(--ink); color: var(--paper); }
.hero-outline { position: absolute; z-index: 1; right: -290px; top: 20%; width: 590px; aspect-ratio: 1; border: 1px solid rgba(171, 107, 78, .12); border-radius: 50%; pointer-events: none; }
.hero-outline::before { content: ''; position: absolute; inset: 80px; border: 1px solid rgba(171, 107, 78, .08); border-radius: 50%; }

/* Motto */
.intro-band { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.band-inner { display: flex; align-items: center; justify-content: space-between; min-height: 100px; }
.band-marker { font-size: 22px; color: var(--accent); }
.band-inner p { margin: 0; font-family: var(--serif); font-size: clamp(24px, 3vw, 35px); letter-spacing: -.015em; }
.band-index { color: var(--muted); }

/* Shared section elements */
.section { padding: 145px 0; }
.section-kicker { color: var(--muted); text-transform: uppercase; font-weight: 600; display: flex; align-items: center; gap: 15px; }
.small-line { width: 25px; height: 1px; display: inline-block; background: var(--accent); }
.section h2 { font-size: clamp(48px, 6vw, 90px); line-height: 1.02; font-weight: 500; letter-spacing: -.073em; margin: 30px 0 0; }
.section h2 em { color: var(--accent); }
.section-heading { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10%; align-items: end; margin-bottom: 79px; }
.section-heading .section-kicker { grid-column: 1/-1; }
.section-heading p { max-width: 350px; margin: 0 0 9px auto; font-size: 15px; line-height: 1.9; color: var(--muted); }

/* Services */
.expertise { background: var(--white); }
.service-row { border-top: 1px solid var(--line); display: grid; grid-template-columns: 16% 1fr 50px; align-items: start; padding: 45px 5px 51px 0; gap: 12px; transition: padding .3s ease, color .3s ease; }
.service-row:last-child { border-bottom: 1px solid var(--line); }
.service-row:hover { padding-left: 15px; color: var(--accent); }
.service-number { padding-top: 11px; font-size: 12px; color: var(--muted); }
.service-main h3 { font-size: clamp(24px, 3.4vw, 47px); font-weight: 400; letter-spacing: -.06em; margin: 0 0 18px; }
.service-main p { color: var(--muted); margin: 0; font-size: 14px; line-height: 1.8; max-width: 500px; }
.service-arrow { justify-self: end; font-size: 29px; font-weight: 300; line-height: 1; transition: transform .25s ease; }
.service-row:hover .service-arrow { transform: translate(5px, -5px); }

/* Showcase — illustrative artboards, not client projects */
.universe { background: var(--paper); }
.universe-head { display: flex; align-items: end; justify-content: space-between; gap: 75px; margin-bottom: 65px; }
.universe-head p { max-width: 317px; color: var(--muted); font-size: 14px; line-height: 1.9; margin: 0 0 9px; }
.universe-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.artboard { position: relative; overflow: hidden; aspect-ratio: 1.17; padding: 28px; }
.artboard-corner { position: absolute; top: 28px; left: 28px; z-index: 2; font-weight: 600; }
.artboard-brand { background: #e6e1d6; display: grid; place-items: center; }
.brand-mark { font-family: var(--serif); line-height: .7; font-size: clamp(210px, 27vw, 435px); letter-spacing: -.11em; color: #665f4e; transform: translate(-19px, -5px); }
.brand-mark span { color: var(--accent); }
.artboard-bottom { position: absolute; bottom: 26px; left: 28px; right: 28px; display: flex; justify-content: space-between; align-items: center; font-size: 9px; }
.artboard-bottom span { font-size: 18px; }
.artboard-digital { background: #becac1; display: flex; justify-content: center; align-items: center; }
.mock-window { position: relative; width: 82%; height: 71%; background: #f5f4ef; box-shadow: 20px 25px 50px rgba(24, 41, 30, .12); padding: 20px 23px; transform: translate(16px, 16px); display: flex; flex-direction: column; }
.mock-menu { display: flex; justify-content: space-between; font-size: 9px; align-items: center; }
.mock-menu > span:first-child { font-size: 15px; font-weight: 700; letter-spacing: -.08em; }
.mock-title { font-size: clamp(40px, 5.2vw, 84px); letter-spacing: -.09em; line-height: .87; font-weight: 500; margin: auto 0; }
.mock-title em { font-family: var(--serif); color: var(--accent); letter-spacing: -.02em; font-weight: 400; }
.mock-base { display: flex; justify-content: space-between; gap: 10px; align-items: end; font-size: 8px; }
.mock-base span:last-child { font-size: 18px; }
.card-caption { margin: 20px 0 0; display: flex; justify-content: space-between; color: var(--muted); }
.card-caption span:first-child { color: var(--ink); font-weight: 600; }
.universe-note { margin: 25px 0 0; color: #93958f; font-size: 10px; }

/* Approach */
.approach { position: relative; overflow: hidden; background: var(--deep); color: #f7f6f2; }
.approach-inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 110px; position: relative; z-index: 2; }
.approach .section-kicker { color: #b2b7b0; }
.approach-intro h2 { font-size: clamp(48px, 5.8vw, 80px); }
.approach-intro h2 em { color: #d2ad96; }
.approach-intro > p { margin: 32px 0 0; max-width: 430px; color: #b9beb9; font-size: 14px; line-height: 1.95; }
.approach-steps { padding-top: 90px; }
.approach-step { border-top: 1px solid rgba(255, 255, 255, .22); padding: 24px 0 31px; }
.approach-step > span { font-weight: 600; color: #c9cfc7; }
.approach-step p { max-width: 330px; font-size: 16px; line-height: 1.7; margin: 20px 0 0; }
.approach-watermark { position: absolute; right: -30px; bottom: -142px; font-size: clamp(210px, 37vw, 580px); color: rgba(255, 255, 255, .025); font-weight: 700; letter-spacing: -.13em; pointer-events: none; line-height: 1; }

/* Contact and footer */
.contact-section { background: #e9e6dd; padding: 139px 0 126px; }
.contact-section h2 { font-size: clamp(53px, 8.1vw, 124px); font-weight: 500; letter-spacing: -.078em; line-height: .99; margin: 48px 0 72px; }
.contact-section h2 em { color: var(--accent); }
.contact-bottom { display: flex; align-items: end; justify-content: space-between; gap: 30px; border-top: 1px solid #c8c9c1; padding-top: 29px; }
.contact-bottom p { margin: 0; color: #606761; line-height: 1.8; font-size: 14px; }
.contact-cta { display: inline-flex; align-items: center; gap: 62px; padding: 22px 26px; background: var(--ink); color: var(--paper); font-size: 13px; transition: background .25s ease, transform .25s ease; }
.contact-cta span { font-size: 23px; }
.contact-cta:hover { background: var(--accent); transform: translateY(-3px); }
.footer { background: var(--deep); color: #f7f6f2; }
.footer-top { padding: 62px 0 61px; display: flex; align-items: start; justify-content: space-between; gap: 40px; }
.footer-logo { font-size: 41px; }
.footer-top p { color: #b7beb6; font-size: 12px; line-height: 1.95; margin: 0; }
.back-top { display: inline-flex; align-items: center; gap: 16px; font-size: 12px; }
.back-top span { font-size: 18px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.17); padding: 25px 0 31px; display: flex; justify-content: space-between; color: #a6aca6; font-size: 10px; }

/* Subtle entrance effects. All content remains visible without JS. */
.js-motion .reveal { opacity: 0; transform: translateY(25px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.75,.25,1); }
.js-motion .reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1050px) {
  .wrap { width: min(calc(100% - 70px), var(--wrap)); }
  .desktop-nav { margin-left: 0; gap: 25px; }
  .hero-title { font-size: clamp(70px, 9.8vw, 112px); }
  .approach-inner { gap: 65px; }
  .mock-title { font-size: clamp(40px, 5.3vw, 67px); }
}
@media (max-width: 750px) {
  html { scroll-padding-top: 70px; }
  .wrap { width: calc(100% - 42px); }
  .header-inner { min-height: 72px; }
  .wordmark { font-size: 26px; }
  .desktop-nav, .header-contact { display: none; }
  .menu-toggle { border: 0; background: transparent; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 13px 4px 13px 13px; cursor: pointer; }
  .menu-toggle span { display: block; background: var(--ink); width: 25px; height: 1px; transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-nav:not([hidden]) { display: flex; position: absolute; background: var(--paper); left: 0; right: 0; top: 100%; padding: 22px 21px 32px; flex-direction: column; gap: 0; box-shadow: 0 24px 40px rgba(0,0,0,.12); }
  .mobile-nav a { display: block; padding: 14px 4px; font-size: 24px; border-top: 1px solid var(--line); letter-spacing: -.05em; }
  .hero, .hero-content { min-height: min(770px, calc(100svh - 72px)); }
  .hero-topline { padding-top: 28px; }
  .hero-location { font-size: 10px; }
  .hero-middle { padding: 68px 0; }
  .hero-index { font-size: 9px; margin-bottom: 25px; }
  .hero-title { font-size: clamp(62px, 12.5vw, 91px); line-height: .98; letter-spacing: -.083em; }
  .hero-intro { margin-top: 35px; display: block; }
  .hero-intro p { font-size: 14px; max-width: 345px; }
  .hero-intro .text-link { margin-top: 25px; }
  .hero-bottom { padding-bottom: 24px; }
  .hero-bottom > span { max-width: 140px; line-height: 1.7; }
  .scroll-link { gap: 9px; }
  .scroll-link > span:first-child { display: none; }
  .hero-outline { width: 400px; right: -295px; }
  .band-inner { min-height: 90px; gap: 14px; }
  .band-inner p { font-size: 25px; }
  .band-index { display: none; }
  .section { padding: 95px 0; }
  .section-heading { display: block; margin-bottom: 50px; }
  .section h2 { font-size: clamp(55px, 10vw, 75px); margin-top: 24px; }
  .section-heading p { margin: 25px 0 0; }
  .service-row { grid-template-columns: 38px 1fr 25px; gap: 10px; padding: 32px 0 35px; }
  .service-row:hover { padding-left: 0; }
  .service-number { font-size: 11px; padding-top: 5px; }
  .service-main h3 { font-size: clamp(26px, 5.3vw, 38px); margin-bottom: 14px; }
  .service-main p { font-size: 13px; }
  .service-arrow { font-size: 23px; }
  .universe-head { display: block; margin-bottom: 36px; }
  .universe-head p { margin-top: 25px; }
  .universe-grid { grid-template-columns: 1fr; gap: 47px; }
  .artboard { aspect-ratio: 1.2; }
  .brand-mark { font-size: clamp(240px, 58vw, 420px); }
  .mock-title { font-size: clamp(52px, 11.5vw, 84px); }
  .approach-inner { display: block; }
  .approach-steps { padding-top: 56px; }
  .approach-watermark { bottom: -70px; }
  .contact-section { padding: 100px 0 100px; }
  .contact-section h2 { font-size: clamp(57px, 10.6vw, 92px); margin: 36px 0 50px; }
  .contact-bottom { display: block; }
  .contact-cta { margin-top: 28px; }
  .footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
  .footer-logo { grid-column: 1/-1; }
  .back-top { justify-self: end; }
  .footer-bottom { gap: 20px; flex-wrap: wrap; }
}
@media (max-width: 420px) {
  .hero-title { font-size: clamp(53px, 12.9vw, 65px); }
  .eyebrow, .hero-location { font-size: 9px; }
  .hero-index span { padding-left: 2px; }
  .hero-middle { padding: 52px 0 38px; }
  .section h2 { font-size: 52px; }
  .mock-title { font-size: 51px; }
  .artboard { padding: 20px; }
  .artboard-corner { top: 20px; left: 20px; }
  .artboard-bottom { left: 20px; right: 20px; bottom: 20px; }
  .contact-section h2 { font-size: 51px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .js-motion .reveal { opacity: 1; transform: none; }
}


/* ============================================================
   ALTO27 — BANDEAU « NOUS AVONS COLLABORÉ AVEC »
   Logos : couleur ↔ noir et blanc automatiquement, sans survol.
   Pour changer une taille individuellement, descendre aux
   classes .logo-casino, .logo-burostock, .logo-pavillon.
   ============================================================ */

.clients-strip {
  overflow: hidden;
  scroll-margin-top: 12px;
  padding: 54px 0 48px;
  background: var(--paper, #f7f6f2);
  border-bottom: 1px solid var(--line, #d8dad3);
}
.clients-strip-heading {
  text-align: center;
  margin-bottom: 27px;
  padding-inline: 20px;
}
.clients-strip-heading p {
  margin: 0 0 10px;
  color: var(--muted, #717570);
  font: 600 10px/1.5 'DM Sans', sans-serif;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.clients-strip-heading h2 {
  margin: 0;
  font: 400 clamp(25px, 3vw, 36px)/1.2 'Instrument Serif', Georgia, serif;
  color: var(--ink, #232725);
}
.clients-marquee {
  width: 100%;
  overflow: hidden;
  -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);
}
.clients-track {
  display: flex;
  width: max-content;
  animation: clients-slide 23s linear infinite;
}
.clients-group {
  display: flex;
  flex: none;
  align-items: center;
}
.clients-strip .client-logo {
  box-sizing: border-box;
  width: 280px;
  height: 126px;
  flex: 0 0 280px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 9px;
  padding: 14px 25px;
  overflow: hidden;
}
.clients-strip .client-logo img {
  box-sizing: border-box;
  display: block;
  width: 190px;
  height: 70px;
  max-width: 100%;
  max-height: 78px;
  flex: 0 0 auto;
  object-fit: contain;
  /* Une alternance progressive, sans effet flash ni dépendance au survol */
  filter: grayscale(100%) brightness(.78);
  opacity: .88;
  animation: logo-color-cycle 5.4s ease-in-out infinite;
}
/* Réglages individuels — modifie les px ici. */
.clients-strip .client-logo img.logo-casino {
  width: 175px;
  height: 67px;
  animation-delay: 0s;
}
.clients-strip .client-logo img.logo-burostock {
  width: 188px;
  height: 70px;
  animation-delay: -1.8s;
}
.clients-strip .client-logo img.logo-pavillon {
  width: 200px;
  height: 73px;
  animation-delay: -3.6s;
}
.clients-strip .client-logo span {
  color: #858981;
  font: 600 10px/1.5 'DM Sans', sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: center;
}
@keyframes clients-slide {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes logo-color-cycle {
  0%, 100% {
    filter: grayscale(100%) brightness(.78);
    opacity: .88;
  }
  50% {
    filter: grayscale(0%) brightness(1);
    opacity: 1;
  }
}
@media (max-width: 750px) {
  .clients-strip { padding: 42px 0 36px; }
  .clients-strip .client-logo { width: 225px; flex-basis: 225px; height: 115px; }
}
@media (prefers-reduced-motion: reduce) {
  .clients-track,
  .clients-strip .client-logo img { animation: none !important; }
  .clients-strip .client-logo img { filter: none; opacity: 1; }
}

/* Quatre entrées de menu sans débordement sur les écrans intermédiaires */
@media (max-width: 1100px) and (min-width: 751px) {
  .desktop-nav { gap: 20px; margin-left: 0; }
  .header-inner { gap: 22px; }
}

/* Page Studio — même direction artistique que l'accueil */
.desktop-nav a[aria-current="page"] { color: var(--accent); }
.studio-hero { padding: 58px 0 103px; overflow: hidden; }
.studio-topline { display: flex; align-items: center; justify-content: space-between; }
.studio-hero-grid { display: grid; grid-template-columns: 1fr 180px; gap: 60px; align-items: end; padding: 124px 0 100px; }
.studio-title { font-size: clamp(66px, 9.5vw, 142px); font-weight: 500; letter-spacing: -.088em; line-height: .96; margin: 0; }
.studio-title em, .studio-heading-row h2 em, .studio-manifesto h2 em { color: var(--accent); font-family: var(--serif); font-weight: 400; letter-spacing: -.038em; }
.studio-hero-side { display: flex; flex-direction: column; gap: 18px; border-top: 1px solid var(--line); padding-top: 18px; }
.studio-hero-side .studio-asterisk { font-size: 42px; line-height: 1; color: var(--accent); }
.studio-hero-side p { font: 400 23px/1.15 var(--serif); margin: 0; }
.studio-hero-side > span:last-child { font-size: 10px; color: var(--muted); letter-spacing: .09em; }
.studio-lead-row { display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; border-top: 1px solid var(--line); padding-top: 34px; }
.studio-label { font-size: 11px; color: var(--muted); letter-spacing: .09em; font-weight: 600; }
.studio-lead-row p { margin: 0; max-width: 630px; font-size: clamp(20px, 2.7vw, 33px); line-height: 1.42; letter-spacing: -.032em; }
.studio-principles { padding: 130px 0 145px; background: var(--white); }
.studio-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 70px; margin-bottom: 84px; }
.studio-heading-row h2 { font-size: clamp(52px, 6.4vw, 94px); line-height: .98; letter-spacing: -.074em; font-weight: 500; margin: 27px 0 0; }
.studio-heading-row p { max-width: 330px; font-size: 14px; line-height: 1.85; color: var(--muted); margin: 0 0 7px; }
.studio-principle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.studio-principle { border-top: 1px solid var(--line); padding-top: 28px; }
.studio-principle-number { color: var(--accent); font-size: 12px; font-weight: 600; }
.studio-principle h3 { font-size: clamp(29px, 3vw, 41px); font-weight: 400; letter-spacing: -.055em; margin: 49px 0 20px; }
.studio-principle p { color: var(--muted); max-width: 340px; font-size: 14px; line-height: 1.8; margin: 0; }
.studio-manifesto { position: relative; overflow: hidden; background: var(--deep); color: var(--paper); padding: 132px 0 138px; }
.studio-manifesto-inner { position: relative; z-index: 1; }
.studio-manifesto .section-kicker { color: #b2b7b0; }
.studio-manifesto h2 { font-size: clamp(53px, 8vw, 113px); font-weight: 500; letter-spacing: -.071em; line-height: 1.03; margin: 58px 0 75px; }
.studio-manifesto h2 em { color: #d2ad96; }
.studio-manifesto-bottom { border-top: 1px solid rgba(255,255,255,.22); display: flex; align-items: end; justify-content: space-between; gap: 50px; padding-top: 29px; }
.studio-manifesto-bottom p { margin: 0; color: #b9beb9; max-width: 420px; font-size: 15px; line-height: 1.85; }
.studio-manifesto .text-link { border-bottom-color: var(--paper); }
.studio-manifesto-watermark { position: absolute; bottom: -295px; right: -50px; font-size: min(53vw, 680px); font-weight: 700; opacity: .024; letter-spacing: -.14em; pointer-events: none; }
@media (max-width: 900px) {
 .studio-hero-grid { grid-template-columns: 1fr; gap: 38px; padding: 92px 0 72px; }
 .studio-hero-side { max-width: 340px; }
 .studio-hero-side .studio-asterisk { font-size: 29px; }
 .studio-lead-row { gap: 35px; }
 .studio-heading-row { gap: 35px; }
}
@media (max-width: 750px) {
 .studio-hero { padding: 28px 0 88px; }
 .studio-hero-grid { padding: 87px 0 60px; }
 .studio-title { font-size: clamp(62px, 12.2vw, 91px); }
 .studio-lead-row { grid-template-columns: 1fr; gap: 23px; }
 .studio-lead-row p { font-size: 23px; }
 .studio-principles { padding: 90px 0; }
 .studio-heading-row { display: block; margin-bottom: 50px; }
 .studio-heading-row h2 { font-size: clamp(53px, 9.5vw, 75px); }
 .studio-heading-row p { margin-top: 28px; }
 .studio-principle-grid { grid-template-columns: 1fr; gap: 44px; }
 .studio-principle h3 { margin: 24px 0 11px; }
 .studio-manifesto { padding: 100px 0; }
 .studio-manifesto h2 { font-size: clamp(51px, 10vw, 76px); margin: 40px 0 48px; }
 .studio-manifesto-bottom { display: block; }
 .studio-manifesto-bottom .text-link { margin-top: 26px; }
}
@media (max-width: 420px) {
 .studio-title { font-size: clamp(54px, 12vw, 64px); }
 .studio-manifesto h2 { font-size: 48px; }
}

/* Le bandeau commence à apparaître dès le bas du premier écran sur grand écran. */
@media (min-width: 751px) and (min-height: 760px) {
  .hero, .hero-content { min-height: min(740px, calc(100svh - 210px)); }
}


/* ============================================================
   ALTO27 / V5 — Chiffres et services éditoriaux
   ============================================================ */
.stats-section { padding: 110px 0 113px; background: var(--paper); border-bottom: 1px solid var(--line); }
.stats-head { margin-bottom: 54px; }
.stats-head h2 { margin: 22px 0 0; font: 500 clamp(43px, 5.2vw, 70px)/1.05 var(--sans); letter-spacing: -.064em; }
.stats-head h2 em { color: var(--accent); font: 400 1.02em/1 var(--serif); letter-spacing: -.02em; }
.stats-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
.stat-card { min-width: 0; padding: 29px 0 0; border-top: 1px solid #ced1cb; }
.stat-number { white-space: nowrap; color: var(--ink); font: 500 clamp(45px,5.6vw,82px)/1 var(--sans); letter-spacing: -.065em; font-variant-numeric: tabular-nums; }
.stat-card p { font-size: 14px; line-height: 1.65; margin: 20px 0 0; color: var(--muted); }

/* ============================================================
   ALTO27 / V5 — Nos services : mise en page éditoriale
   Sans images : espaces, typographies et séparateurs subtils.
   ============================================================ */
.offerings { background: var(--white); }
.offerings-heading { display: flex; justify-content: space-between; align-items: end; gap: 72px; margin-bottom: 78px; }
.offerings-heading h2 { font-size: clamp(56px,6.4vw,96px); line-height: .98; }
.offerings-heading p { max-width: 305px; margin: 0 0 12px; color: var(--muted); line-height: 1.9; font-size: 15px; }
.offerings-list { border-top: 1px solid var(--line); }
.offering-row { position: relative; display: grid; grid-template-columns: 102px minmax(0,1fr) 218px; gap: 20px; align-items: start; padding: 47px 0 49px; border-bottom: 1px solid var(--line); transition: background .35s ease, padding .35s ease; }
.offering-row::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--accent); transform-origin: center; transform: scaleY(0); transition: transform .3s ease; }
.offering-row:hover, .offering-row:focus-within { background: #f5f2eb; padding-left: 20px; padding-right: 20px; }
.offering-row:hover::before, .offering-row:focus-within::before { transform: scaleY(1); }
.offering-index { font: 500 13px/1.5 var(--sans); color: var(--accent); letter-spacing: -.025em; padding-top: 2px; white-space: nowrap; }
.offering-index span { color: #a5a7a0; font-size: 10px; }
.offering-kicker { margin: 0 0 18px; font-size: 10px; line-height: 1.5; letter-spacing: .125em; font-weight: 600; color: #91968e; }
.offering-main h3 { margin: 0 0 18px; font: 500 clamp(34px,3.7vw,54px)/1.06 var(--sans); letter-spacing: -.07em; color: var(--ink); }
.offering-main h3 em { color: var(--accent); font: 400 1.045em/1 var(--serif); letter-spacing: -.02em; }
.offering-description { margin: 0; color: #6b716b; font-size: 14px; line-height: 1.9; max-width: 540px; }
.offering-aside { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; align-self: stretch; gap: 32px; padding-top: 3px; }
.offering-tags { font: 500 11px/1.6 var(--sans); color: #969993; text-align: right; }
.offering-action { font: 600 11px/1.3 var(--sans); color: var(--ink); display: inline-flex; align-items: center; gap: 13px; padding-bottom: 10px; border-bottom: 1px solid var(--ink); transition: color .25s ease, border-color .25s ease; white-space: nowrap; }
.offering-action span { display: inline-block; font-size: 17px; font-weight: 400; transition: transform .25s ease; }
.offering-action:hover, .offering-action:focus-visible { color: var(--accent); border-color: var(--accent); }
.offering-action:hover span, .offering-action:focus-visible span { transform: translate(3px,-3px); }
.offerings-foot { margin-top: 70px; padding-top: 26px; display: flex; justify-content: space-between; align-items: baseline; gap: 25px; }
.offerings-foot > span { font: 400 clamp(24px,2.8vw,37px)/1.1 var(--serif); }
.offerings-foot a { display: inline-flex; align-items: center; gap: 15px; padding-bottom: 9px; border-bottom: 1px solid var(--ink); font-size: 12px; font-weight: 600; white-space: nowrap; }
.offerings-foot a span { font-size: 17px; }
.offerings-foot a:hover { color: var(--accent); border-bottom-color: var(--accent); }

@media (max-width: 1100px) {
  .offering-row { grid-template-columns: 70px minmax(0,1fr) 176px; gap: 14px; }
  .offering-action { white-space: normal; text-align: right; }
}
@media (max-width: 900px) {
  .stats-section { padding: 84px 0; }
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
  .offerings-heading { display: block; margin-bottom: 55px; }
  .offerings-heading p { margin: 25px 0 0; max-width: 450px; }
  .offering-row { grid-template-columns: 60px minmax(0,1fr); gap: 20px; padding: 33px 0 37px; }
  .offering-aside { grid-column: 2; flex-direction: row; align-items: center; gap: 15px; justify-content: space-between; margin-top: 7px; }
  .offering-tags { text-align: left; }
}
@media (max-width: 650px) {
  .stats-section { padding: 74px 0; }
  .stats-head { margin-bottom: 37px; }
  .stats-head h2 { font-size: clamp(40px,10vw,58px); }
  .stats-grid { gap: 28px 12px; }
  .stat-card { padding-top: 20px; }
  .stat-number { font-size: clamp(34px,9vw,55px); }
  .stat-card p { font-size: 12px; margin-top: 12px; }
  .offerings-heading { margin-bottom: 38px; }
  .offerings-heading h2 { font-size: clamp(44px,10vw,66px); }
  .offering-row { display: grid; grid-template-columns: 1fr; gap: 15px; padding: 28px 0 33px; }
  .offering-row:hover, .offering-row:focus-within { padding-left: 10px; padding-right: 10px; }
  .offering-index { font-size: 11px; }
  .offering-kicker { margin-bottom: 12px; }
  .offering-main h3 { font-size: clamp(34px,9vw,46px); margin-bottom: 14px; }
  .offering-description { font-size: 13px; }
  .offering-aside { grid-column: 1; margin-top: 6px; align-items: start; }
  .offering-tags { display: none; }
  .offering-action { text-align: left; }
  .offerings-foot { margin-top: 47px; flex-direction: column; align-items: flex-start; gap: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  .offering-row, .offering-row::before, .offering-action, .offering-action span { transition: none; }
}


/* ======================================================================
   ALTO27 / V6 — Portfolio & études conceptuelles
   ====================================================================== */
.desktop-nav a[aria-current="page"] { color: var(--accent); }
.projects-hero { padding: 77px 0 88px; background: var(--paper); }
.projects-overline { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 11px; letter-spacing: .1em; font-weight: 600; }
.projects-overline > span:first-child { display: inline-flex; align-items: center; gap: 10px; }
.projects-hero-grid { display: grid; grid-template-columns: 1.4fr .6fr; align-items: end; gap: 66px; padding: 98px 0 71px; }
.projects-hero h1 { font-size: clamp(76px, 10.4vw, 150px); font-weight: 500; line-height: .89; letter-spacing: -.09em; margin: 30px 0 0; }
.projects-hero h1 em { color: var(--accent); }
.projects-lead { margin: 0 0 9px; color: var(--muted); line-height: 1.95; font-size: 15px; max-width: 370px; }
.projects-disclaimer { border-top: 1px solid var(--line); padding-top: 26px; display: flex; align-items: start; gap: 20px; }
.projects-disclaimer .project-disclaimer-icon { font-size: 22px; color: var(--accent); }
.projects-disclaimer p { font-size: 12px; max-width: 800px; color: #7d827b; line-height: 1.85; margin: 0; }
.projects-disclaimer p strong { font-weight: 600; color: #596159; }
.projects-gallery { padding: 65px 0 147px; background: var(--white); }
.projects-gallery-head { display: flex; justify-content: space-between; padding: 0 0 20px; border-bottom: 1px solid var(--line); margin-bottom: 38px; font-size: 10px; font-weight: 600; letter-spacing: .12em; color: var(--muted); }
.projects-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.project-card { display: block; min-width: 0; }
.project-card-media { overflow: hidden; position: relative; aspect-ratio: 0.95; background: #e9e4da; }
.project-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .65s cubic-bezier(.2,.8,.2,1), filter .4s ease; }
.project-card-media--casa-luce img { object-position: center; }
.project-card-media--forma-studio img { object-position: center; }
.project-card-media--noma-living img { object-position: 48% center; }
.project-card-icon { position: absolute; top: 19px; right: 19px; display: grid; place-items: center; background: rgba(247,246,242,.95); height: 44px; width: 44px; border-radius: 50%; font-size: 21px; transform: translateY(-8px); opacity: 0; transition: .25s ease; }
.project-card:hover .project-card-icon, .project-card:focus-visible .project-card-icon { transform: none; opacity: 1; }
.project-card:hover .project-card-media img, .project-card:focus-visible .project-card-media img { transform: scale(1.055); }
.project-card-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; font-weight: 600; color: #878d85; margin: 24px 0 12px; }
.project-card-title { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; }
.project-card-title h2 { font-size: clamp(26px,2.5vw,39px); font-weight: 500; letter-spacing: -.065em; margin: 0; }
.project-card-title > span { font-size: 21px; transition: transform .25s ease; }
.project-card:hover .project-card-title > span { transform: translate(4px,-4px); color: var(--accent); }
.project-card > p { margin: 13px 0 19px; color: #727771; font-size: 13px; line-height: 1.75; }
.project-card-caption { font-size: 10px; letter-spacing: .13em; font-weight: 600; color: var(--accent); }
.projects-bottom { background: #e8e6de; padding: 101px 0; }
.projects-bottom-inner { display: flex; justify-content: space-between; gap: 50px; align-items: end; }
.projects-bottom h2 { font-size: clamp(53px,5vw,79px); font-weight: 500; letter-spacing: -.073em; line-height: 1.05; margin: 30px 0 0; }
.projects-bottom h2 em { color: var(--accent); }
.projects-bottom-inner > div:last-child { width: 33%; }
.projects-bottom p { font-size: 14px; color: #676e66; line-height: 1.85; margin: 0 0 32px; }
.project-teaser { background: #ece9e1; padding: 62px 0; }
.project-teaser-inner { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.project-teaser h2 { font-size: clamp(40px,5vw,70px); font-weight: 500; letter-spacing: -.065em; line-height: 1.05; margin: 21px 0 14px; }
.project-teaser h2 em { color: var(--accent); }
.project-teaser p { font-size: 14px; color: var(--muted); margin: 0; }
.project-teaser a { display: inline-flex; align-items: center; gap: 25px; padding-bottom: 12px; white-space: nowrap; border-bottom: 1px solid var(--ink); font-size: 12px; font-weight: 600; }
.project-teaser a:hover { color: var(--accent); border-bottom-color: var(--accent); }
.studio-work-link { background: #edeae1; padding: 92px 0; }
.studio-work-link-inner { display: flex; justify-content: space-between; align-items: end; gap: 35px; }
.studio-work-link h2 { margin: 25px 0 20px; font-size: clamp(50px,5.5vw,76px); letter-spacing: -.065em; font-weight: 500; }
.studio-work-link h2 em { color: var(--accent); }
.studio-work-link p { color: var(--muted); max-width: 590px; line-height: 1.85; font-size: 14px; margin: 0; }
.studio-work-link .text-link { margin-bottom: 9px; }

/* Case study layout */
.case-hero { background: var(--paper); padding: 45px 0 95px; }
.case-topline { display: flex; justify-content: space-between; align-items: center; gap: 25px; border-bottom: 1px solid var(--line); padding-bottom: 24px; font-size: 11px; font-weight: 600; letter-spacing: .11em; color: #8a8e87; }
.case-back { display: inline-flex; gap: 12px; align-items: center; color: var(--ink); font-weight: 600; font-size: 12px; letter-spacing: 0; }
.case-back:hover { color: var(--accent); }
.case-hero-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 42px; align-items: end; padding: 83px 0 68px; }
.case-category { font-size: 11px; color: var(--accent); letter-spacing: .08em; font-weight: 600; margin: 0 0 27px; }
.case-hero h1 { font-weight: 500; font-size: clamp(74px, 9.5vw, 150px); letter-spacing: -.083em; line-height: .85; margin: 0; white-space: nowrap; }
.case-hero h1 em { color: var(--accent); }
.case-hero-summary { max-width: 390px; justify-self: end; padding-bottom: 9px; }
.case-hero-summary p { color: #555e56; font-size: clamp(16px,1.65vw,23px); line-height: 1.55; letter-spacing: -.025em; margin: 0 0 30px; }
.case-hero-summary span { color: #888d85; font-size: 11px; }
.case-hero-visual { position: relative; width: 100%; height: clamp(320px,41vw,560px); overflow: hidden; background: #e1ded4; }
.case-hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.case-hero-visual:after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.22),transparent 30%); pointer-events: none; }
.case-hero-visual-label { position: absolute; bottom: 22px; left: 29px; right: 29px; color: white; font-weight: 600; letter-spacing: .14em; font-size: 10px; z-index: 1; }
.case-hero-visual-label span { padding: 0 13px; color: #d8a28d; }
.case-honesty { display: flex; justify-content: flex-end; gap: 15px; align-items: start; font-size: 11px; line-height: 1.7; margin: 19px 0 0; color: #7a8179; }
.case-honesty span { color: var(--accent); font-size: 10px; font-weight: 700; letter-spacing: .07em; white-space: nowrap; }
.case-chapter { background: var(--white); padding: 118px 0; border-top: 1px solid rgba(0,0,0,.06); }
.case-chapter:nth-of-type(2n) { background: #eeeae2; }
.case-chapter-grid { display: grid; grid-template-columns: minmax(0,.79fr) minmax(0,1.21fr); gap: clamp(48px,8vw,135px); align-items: center; }
.case-chapter--reverse .case-chapter-grid { grid-template-columns: minmax(0,1.21fr) minmax(0,.79fr); }
.case-chapter--reverse .case-chapter-copy { grid-column: 2; grid-row: 1; }
.case-chapter--reverse .case-chapter-art { grid-column: 1; grid-row: 1; }
.case-chapter-copy h2 { font-size: clamp(44px,5.2vw,80px); font-weight: 500; letter-spacing: -.07em; line-height: 1.05; margin: 31px 0 27px; }
.case-chapter-copy h2 em { color: var(--accent); }
.case-chapter-copy > p { font-size: 15px; line-height: 1.9; color: #717670; max-width: 420px; margin: 0; }
.case-chapter-art { min-width: 0; }
.case-figure { margin: 0; }
.case-figure img { display: block; width: 100%; max-height: 590px; object-fit: cover; background: #e8e5df; box-shadow: 0 20px 60px rgba(30,40,31,.07); }
.case-figure figcaption { margin-top: 15px; font-size: 11px; color: #888e87; line-height: 1.5; }
.case-chapter-art .case-figure img { height: clamp(295px,38vw,520px); }
.case-chapter-art .case-figure { width: 100%; }
/* The visuals are individual media / artwork, not a single image montage. */
.brand-scene { height: clamp(310px,39vw,520px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 23px; padding: 45px; position: relative; overflow: hidden; }
.brand-scene-overline { position: absolute; top: 31px; left: 30px; font-size: 10px; font-weight: 600; letter-spacing: .15em; opacity: .65; }
.brand-scene-title { font-size: clamp(34px,5vw,73px); text-align: center; line-height: 1; }
.brand-scene-title--serif { font-family: var(--serif); letter-spacing: .13em; }
.brand-scene-title--spaced { letter-spacing: .25em; font-weight: 400; }
.brand-scene-tagline { font-size: 10px; letter-spacing: .23em; text-align: center; }
.brand-scene--casa { background: #b46549; color: #fdf3e3; }
.brand-casa-symbol { width: 65px; height: 98px; border: 1px solid #fdf3e3; border-radius: 45px 45px 0 0; font-size: 42px; display: grid; place-items: center; }
.brand-scene--forma { background: #333331; color: #f7f5f1; }
.brand-forma-rule { font-family: var(--serif); font-size: 100px; line-height: .8; opacity: .85; }
.brand-scene--noma { background: #ded6c8; color: #282c29; }
.brand-noma-ring { display: grid; place-items: center; width: 80px; height: 80px; border-radius: 50%; background: #ba7758; font-size: 46px; color: white; font-family: var(--serif); }
.case-extras { padding: 112px 0 145px; background: var(--paper); }
.case-extras-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 49px; }
.case-extras-heading h2 { font-weight: 500; font-size: clamp(42px,5vw,70px); letter-spacing: -.065em; margin: 0; }
.case-extras-heading h2 em { color: var(--accent); }
.case-extras-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; align-items: start; }
.case-extra-figure img { height: 340px; object-fit: cover; }
.case-end { background: var(--deep); color: var(--white); padding: 91px 0 96px; }
.case-end-inner { display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.case-end-inner > div > span { display: block; color: #aeb6ad; font-size: 11px; letter-spacing: .12em; margin-bottom: 24px; }
.case-end-inner > div > a { display: inline-flex; align-items: center; gap: 27px; font-size: clamp(35px,5vw,68px); line-height: 1; letter-spacing: -.05em; font-weight: 500; }
.case-end-inner a:hover { color: #d2ad96; }
.case-end-inner .case-back { color: #f7f6f2; }

@media (max-width: 1000px) {
 .projects-grid { gap: 17px; }
 .case-hero h1 { font-size: clamp(70px,9vw,115px); }
 .case-chapter-grid { gap: 50px; }
}
@media (max-width: 800px) {
 .projects-hero-grid { grid-template-columns: 1fr; gap: 26px; padding: 80px 0 55px; }
 .projects-hero h1 { font-size: clamp(75px,11vw,110px); }
 .projects-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px 18px; }
 .projects-bottom-inner { display: block; }
 .projects-bottom-inner > div:last-child { width: auto; max-width: 450px; margin-top: 35px; }
 .case-hero-heading { grid-template-columns: 1fr; gap: 31px; padding: 57px 0 47px; }
 .case-hero-summary { justify-self: start; }
 .case-hero-summary p { font-size: 20px; margin-bottom: 16px; }
 .case-hero-visual { height: 430px; }
 .case-chapter { padding: 79px 0; }
 .case-chapter-grid,.case-chapter--reverse .case-chapter-grid { display: flex; flex-direction: column; align-items: stretch; gap: 33px; }
 .case-chapter--reverse .case-chapter-copy,.case-chapter--reverse .case-chapter-art { grid-column: auto; grid-row: auto; }
 .case-chapter-copy h2 { margin: 24px 0 18px; }
 .case-chapter-art .case-figure img { height: 390px; }
 .project-teaser-inner { align-items: start; flex-direction: column; }
 .studio-work-link-inner { flex-direction: column; align-items: start; }
}
@media (max-width: 600px) {
 .projects-hero { padding: 32px 0 50px; }
 .projects-overline { font-size: 9px; }
 .projects-hero-grid { padding: 68px 0 39px; }
 .projects-hero h1 { font-size: clamp(65px,12vw,83px); }
 .projects-lead { font-size: 14px; }
 .projects-gallery { padding: 44px 0 86px; }
 .projects-grid { grid-template-columns: 1fr; gap: 48px; }
 .project-card-media { aspect-ratio: 1.15; }
 .project-card-title h2 { font-size: 35px; }
 .projects-bottom { padding: 76px 0; }
 .projects-bottom h2 { font-size: 56px; }
 .case-hero { padding: 27px 0 58px; }
 .case-topline { font-size: 9px; }
 .case-hero-heading { padding: 57px 0 36px; }
 .case-hero h1 { font-size: clamp(64px,12vw,80px); white-space: normal; }
 .case-hero-summary p { font-size: 18px; }
 .case-hero-visual { height: 290px; }
 .case-hero-visual-label { font-size: 8px; left: 13px; bottom: 14px; }
 .case-honesty { display: block; }
 .case-honesty span { display: block; margin-bottom: 7px; }
 .case-chapter-copy h2 { font-size: 54px; }
 .case-chapter-art .case-figure img { height: 300px; }
 .brand-scene { height: 330px; }
 .brand-scene-title { font-size: 35px; }
 .case-extras { padding: 70px 0 84px; }
 .case-extras-heading { display: block; margin-bottom: 35px; }
 .case-extras-heading h2 { font-size: 52px; margin: 18px 0 0; }
 .case-extras-grid { grid-template-columns: 1fr; gap: 29px; }
 .case-extra-figure img { height: 250px; }
 .case-end-inner { display: block; }
 .case-end-inner .case-back { margin-top: 35px; }
}
@media (prefers-reduced-motion: reduce) { .project-card-media img,.project-card-title>span,.project-card-icon { transition: none; } }


/* =============================================================
   ALTO27 V7 — PAGE CONTACT | EDITORIAL, SANS ILLUSTRATIONS
   ============================================================= */
.contact-page { background: var(--paper); padding: 43px 0 125px; }
.contact-page-topline { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 94px; color: var(--muted); font-size: 10px; letter-spacing: .15em; font-weight: 600; }
.contact-page-topline span:first-child { display: inline-flex; align-items: center; gap: 12px; }
.contact-page-topline i { color: var(--accent); font-style: normal; font-size: 15px; margin: 0 9px; }
.contact-page-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(55px, 8.5vw, 150px); align-items: start; }
.contact-page-copy { padding-top: 24px; }
.contact-kicker { margin: 0 0 42px; color: var(--accent); letter-spacing: .15em; font-size: 11px; font-weight: 600; }
.contact-page-copy h1 { margin: 0 0 39px; font-size: clamp(72px, 7vw, 110px); line-height: .96; font-weight: 500; letter-spacing: -.085em; }
.contact-page-copy h1 em { display: inline-block; font-family: var(--serif); font-weight: 400; letter-spacing: -.057em; color: var(--accent); white-space: nowrap; }
.contact-page-lead { margin: 0; max-width: 445px; color: #595e58; font-size: 17px; line-height: 1.78; }
.contact-page-divider { width: 58px; height: 1px; margin: 58px 0 38px; background: var(--accent); }
.contact-copy-foot > span { color: #868980; font-size: 10px; letter-spacing: .1em; font-weight: 600; }
.contact-copy-foot p { color: var(--ink); max-width: 385px; font-size: 14px; line-height: 2.05; margin: 13px 0 0; }
.contact-copy-foot p span { color: var(--accent); margin: 0 5px; }
.contact-smallline { margin-top: 70px; color: #878981; font-family: var(--serif); font-size: 20px; line-height: 1.35; font-style: italic; }
.contact-form-panel { background: #eeece5; border: 1px solid #e6e3da; padding: clamp(30px, 3.7vw, 61px); }
.contact-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 20px; border-bottom: 1px solid #c6c8c0; font-size: 10px; font-weight: 600; letter-spacing: .12em; color: #797f77; }
.contact-form-panel h2 { font-size: clamp(34px, 3.8vw, 54px); font-weight: 500; letter-spacing: -.065em; line-height: 1.02; margin: 36px 0 15px; }
.contact-form-panel h2 em { font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; color: var(--accent); }
.contact-panel-intro { font-size: 13px; line-height: 1.75; color: #787d77; margin: 0 0 38px; max-width: 395px; }
.alto-contact-form { display: flex; flex-direction: column; gap: 24px; }
.alto-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.alto-field { min-width: 0; display: flex; flex-direction: column; gap: 11px; }
.alto-field label { font-size: 11px; font-weight: 600; color: #484d48; letter-spacing: .025em; }
.alto-field label span:not(.alto-optional), .alto-consent b { color: var(--accent); font-weight: 500; }
.alto-field label .alto-optional { color: #9a9d94; font-weight: 400; font-size: 10px; }
.alto-field input, .alto-field textarea, .alto-field select { display: block; width: 100%; border: 1px solid transparent; border-bottom: 1px solid #bec1b9; border-radius: 0; padding: 11px 0 13px; background: transparent; color: var(--ink); font: 400 13px/1.5 var(--sans); transition: border-color .2s ease; outline: none; appearance: none; }
.alto-field textarea { resize: vertical; min-height: 118px; }
.alto-field input::placeholder, .alto-field textarea::placeholder { color: #91978e; opacity: 1; }
.alto-field input:focus, .alto-field textarea:focus, .alto-field select:focus { border-bottom-color: var(--accent); }
.alto-field :is(input,select,textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.alto-select-wrap { position: relative; }
.alto-select-wrap select { padding-right: 27px; cursor: pointer; }
.alto-select-wrap > span { position: absolute; pointer-events: none; right: 2px; top: 50%; transform: translateY(-50%); font-size: 23px; line-height: 1; color: var(--accent); }
.alto-consent { display: flex; gap: 12px; align-items: start; padding-top: 1px; font-size: 11px; line-height: 1.6; color: #737971; cursor: pointer; }
.alto-consent input { flex: none; width: 16px; height: 16px; accent-color: var(--accent); margin: 1px 0 0; }
.alto-consent input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.alto-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 7px; }
.alto-submit-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 50px; border: none; border-radius: 0; padding: 17px 22px; background: var(--deep); color: var(--paper); font: 500 12px/1.3 var(--sans); cursor: pointer; transition: background .25s ease, transform .25s ease; }
.alto-submit-button:hover { background: var(--accent); transform: translateY(-2px); }
.alto-submit-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.alto-submit-button > span { font-size: 18px; font-weight: 400; }
.alto-submit-sign { color: #8d9089; font-size: 9px; letter-spacing: .07em; text-align: right; }
.alto-data-note { font-size: 10px; line-height: 1.7; color: #898e86; margin: -3px 0 0; }
.alto-preview-note:not([hidden]) { display: block; margin: 0; border-left: 2px solid var(--accent); padding: 10px 14px; color: #5d6058; background: #e3e0d6; font-size: 11px; line-height: 1.6; }
.alto-honeypot { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.contact-end-note { border-top: 1px solid var(--line); background: var(--paper); }
.contact-end-note .wrap { display: flex; align-items: center; gap: 27px; padding-top: 41px; padding-bottom: 48px; }
.contact-end-note .wrap > span { font-size: 25px; color: var(--accent); }
.contact-end-note p { flex: 1; font-size: clamp(15px, 2.1vw, 25px); letter-spacing: -.04em; font-weight: 400; margin: 0; }
.contact-end-note em { font-family: var(--serif); color: var(--accent); font-size: 1.2em; }
.contact-end-note a { padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: 11px; white-space: nowrap; }
.contact-end-note a span { margin-left: 7px; }
.contact-thank-you { padding: 135px 0 180px; min-height: 70vh; text-align: center; }
.thank-you-symbol { font-size: 36px; color: var(--accent); margin-bottom: 25px; }
.contact-thank-you h1 { font-size: clamp(55px, 7vw, 100px); font-weight: 500; line-height: 1; letter-spacing: -.075em; margin: 0 auto 27px; }
.contact-thank-you h1 em { color: var(--accent); font-family: var(--serif); font-weight: 400; }
.contact-thank-you p { max-width: 430px; color: var(--muted); margin: 0 auto 34px; line-height: 1.7; }
@media (max-width: 1120px) { .contact-page-grid { gap: 50px; } .contact-page-copy h1 { font-size: clamp(68px, 7vw, 94px); } .alto-form-row { gap: 16px; } }
@media (max-width: 900px) { .contact-page { padding-bottom: 90px; } .contact-page-topline { margin-bottom: 60px; } .contact-page-grid { grid-template-columns: 1fr; gap: 45px; } .contact-page-copy { padding-top: 0; } .contact-page-copy h1 { font-size: clamp(72px, 11vw, 108px); } .contact-page-lead { max-width: 630px; } .contact-smallline { margin-top: 34px; } .contact-form-panel { padding: 40px; } }
@media (max-width: 600px) { .contact-page { padding: 24px 0 65px; } .contact-page-topline { margin-bottom: 60px; } .contact-page-topline span { font-size: 9px; } .contact-page-topline span:last-child { white-space: nowrap; } .contact-page-copy h1 { font-size: clamp(56px, 12.4vw, 77px); } .contact-page-copy h1 em { white-space: normal; } .contact-page-lead { font-size: 15px; } .contact-page-divider { margin: 36px 0 26px; } .contact-form-panel { padding: 25px 20px; } .alto-form-row { grid-template-columns: 1fr; gap: 24px; } .alto-contact-form { gap: 23px; } .alto-submit-row { align-items: stretch; flex-direction: column; } .alto-submit-sign { text-align: left; } .alto-submit-button { width: 100%; } .contact-end-note .wrap { flex-wrap: wrap; gap: 16px; padding-top: 25px; padding-bottom: 32px; } .contact-end-note p { flex-basis: calc(100% - 55px); } .contact-end-note a { margin-left: 41px; } .contact-thank-you { padding: 110px 0 140px; } }
@media (prefers-reduced-motion: reduce) { .alto-submit-button { transition: none; } }


/* ALTO27 V8 — SERVICES : pages éditoriales et fiches détaillées */
.offering-detail-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 25px; padding-bottom: 7px; border-bottom: 1px solid #b9b8ad; font-size: 11px; font-weight: 600; color: var(--accent); transition: color .25s ease, gap .25s ease; }
.offering-detail-link span { font-size: 18px; line-height: .8; }
.offering-detail-link:hover { color: var(--deep); gap: 18px; }
.svc-superlabel,.svc-smalllabel,.svc-overline,.svc-list-num,.svc-list-label,.svc-hub-marker,.svc-visual-corner,.svc-visual-foot,.svc-deliver-num,.svc-format-item>span,.svc-step-item>span,.svc-next-inner>span { font-size: 10px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.svc-overline { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; color: #8b8c84; }
.svc-overline a { color: var(--ink); font-size: 11px; letter-spacing: .02em; text-transform: none; border-bottom: 1px solid #bcbdb4; padding-bottom: 6px; transition: color .2s ease; }
.svc-overline a:hover { color: var(--accent); }
.svc-smalllabel { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); }
.svc-superlabel { margin: 0 0 21px; color: var(--accent); }
.svc-hub-hero { padding: 48px 0 0; background: var(--paper); }
.svc-hub-title-row { padding: 110px 0 98px; display: grid; grid-template-columns: minmax(0,1fr) 315px; align-items: end; gap: 95px; }
.svc-hub-title-row h1,.svc-detail-hero h1 { font-size: clamp(63px,8.25vw,128px); line-height: .95; letter-spacing: -.085em; font-weight: 500; margin: 0; }
.svc-hub-title-row h1 em,.svc-detail-hero h1 em,.svc-intent-section h2 em,.svc-section-header h2 em,.svc-formats-top h2 em,.svc-process-heading h2 em,.svc-approach-inner h2 em,.svc-bottom-cta h2 em { font-family: var(--serif); color: var(--accent); font-weight: 400; letter-spacing: -.05em; }
.svc-hub-hero-copy { margin: 0 0 9px; max-width: 335px; color: var(--muted); font-size: 15px; line-height: 1.9; }
.svc-hub-marker { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 0 27px; border-top: 1px solid var(--line); color: #92958e; }
.svc-hub-list { background: var(--white); padding: 18px 0 105px; }
.svc-list-item { border-bottom: 1px solid var(--line); }
.svc-list-link { position: relative; padding: 48px 12px 49px 0; display: grid; grid-template-columns: 100px minmax(0,1fr) 85px; align-items: start; gap: 25px; transition: padding .3s ease, background .3s ease; }
.svc-list-link::before { content: ''; width: 2px; position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent); transform: scaleY(0); transition: transform .25s ease; }
.svc-list-link:hover, .svc-list-link:focus-visible { padding-left: 19px; padding-right: 20px; background: #f4f2ed; }
.svc-list-link:hover::before,.svc-list-link:focus-visible::before { transform: scaleY(1); }
.svc-list-num { padding-top: 17px; color: var(--accent); white-space: nowrap; }
.svc-list-num span { font-size: 9px; color: #a9aaa2; }
.svc-list-copy { display: flex; flex-direction: column; align-items: flex-start; }
.svc-list-label { color: #91958c; margin: 0 0 17px; }
.svc-list-copy strong { font-size: clamp(32px,4.4vw,70px); font-weight: 500; line-height: 1.08; letter-spacing: -.075em; }
.svc-serif { color: var(--accent); font: 400 1em var(--serif); }
.svc-list-description { display: block; max-width: 595px; color: var(--muted); font-size: 14px; font-weight: 400; line-height: 1.85; padding-top: 17px; }
.svc-list-arrow { justify-self: end; font-size: 35px; font-weight: 400; transition: transform .25s ease; }
.svc-list-link:hover .svc-list-arrow { transform: translate(6px,-6px); }
.svc-approach-bar { background: var(--soft); padding: 112px 0; }
.svc-approach-inner { display: grid; grid-template-columns: minmax(0,1fr) 300px; align-items: end; gap: 70px; }
.svc-approach-inner h2,.svc-formats-top h2,.svc-process-heading h2 { font-size: clamp(40px,5.2vw,76px); line-height: 1.03; letter-spacing: -.067em; font-weight: 500; margin: 24px 0 0; }
.svc-approach-copy p { color: var(--muted); font-size: 14px; line-height: 1.9; margin: 0 0 30px; }
.svc-inline-link { display: inline-flex; align-items: center; gap: 17px; font-size: 12px; font-weight: 600; padding-bottom: 8px; border-bottom: 1px solid var(--ink); transition: color .2s ease; }
.svc-inline-link:hover { color: var(--accent); border-color: var(--accent); }
.svc-inline-link span { font-size: 20px; font-weight: 400; }
.svc-bottom-cta { background: var(--deep); color: var(--paper); padding: 96px 0; }
.svc-bottom-cta-inner { display: flex; justify-content: space-between; align-items: end; gap: 65px; }
.svc-bottom-cta h2 { font-size: clamp(43px,5.5vw,79px); line-height: 1.02; font-weight: 500; letter-spacing: -.072em; margin: 12px 0 0; max-width: 720px; }
.svc-bottom-cta .svc-superlabel { color: #ba9c8c; }
.svc-bottom-cta p { color: #b9c0b9; max-width: 450px; font-size: 13px; line-height: 1.85; margin: 27px 0 0; }
.svc-action-button { flex: none; display: inline-flex; align-items: center; gap: 39px; padding: 19px 23px; border: 1px solid rgba(255,255,255,.55); font-size: 12px; font-weight: 600; transition: background .2s ease, color .2s ease; }
.svc-action-button span { font-size: 19px; font-weight: 400; }
.svc-action-button:hover { background: var(--paper); color: var(--deep); }
.svc-detail-hero { background: var(--paper); padding: 48px 0 106px; }
.svc-detail-hero-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(360px,.85fr); gap: clamp(55px,8vw,130px); align-items: stretch; padding-top: 86px; }
.svc-detail-hero-copy { align-self: center; padding-bottom: 35px; }
.svc-detail-hero h1 { font-size: clamp(57px,6.8vw,108px); }
.svc-detail-intro { max-width: 540px; margin: 40px 0 32px; font-size: 16px; color: var(--muted); line-height: 1.85; }
.svc-hero-visual { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; background: #e4e1d7; aspect-ratio: .91; padding: 31px; isolation: isolate; }
.svc-hero-visual::before { content: ''; position: absolute; width: 110%; aspect-ratio: 1; border: 1px solid rgba(35,39,37,.12); border-radius: 50%; left: 30%; top: 10%; z-index: -1; }
.svc-hero-visual::after { content: ''; position: absolute; width: 80%; aspect-ratio: 1; border: 1px solid rgba(35,39,37,.1); border-radius: 50%; left: -45%; bottom: -50%; z-index: -1; }
.svc-visual-corner,.svc-visual-foot { display: flex; justify-content: space-between; color: #686a60; }
.svc-visual-mark { color: #6a6657; margin: auto 0; font-family: var(--serif); font-size: clamp(62px,8vw,145px); font-weight: 400; letter-spacing: -.08em; line-height: 1; text-align: center; }
.svc-visual-mark span { color: var(--accent); }
.svc-visual-mark--social { font-size: clamp(60px,7vw,130px); }
.svc-visual-mark--seo { font-size: clamp(88px,12vw,175px); }
.svc-visual-mark--identite { font-size: clamp(44px,5.5vw,104px); }
.svc-intent-section { background: var(--white); padding: 109px 0 117px; border-top: 1px solid var(--line); }
.svc-intent-grid { display: grid; grid-template-columns: 25% 1fr; gap: 50px; }
.svc-intent-section h2 { font-size: clamp(36px,5vw,76px); font-weight: 500; letter-spacing: -.073em; line-height: 1.08; margin: 0 0 32px; max-width: 800px; }
.svc-intent-section .svc-intent-grid p { max-width: 570px; font-size: 16px; line-height: 1.9; color: var(--muted); margin: 0; }
.svc-deliverables { padding: 119px 0 130px; background: var(--paper); }
.svc-section-header { max-width: 700px; margin-bottom: 80px; }
.svc-section-header h2 { font-size: clamp(47px,6.2vw,91px); font-weight: 500; line-height: .99; letter-spacing: -.078em; margin: 25px 0; }
.svc-section-header p { max-width: 400px; color: var(--muted); line-height: 1.8; font-size: 14px; }
.svc-deliver-list { border-top: 1px solid var(--line); }
.svc-deliver-row { display: grid; grid-template-columns: 115px minmax(0,1fr) minmax(240px, .8fr); align-items: start; gap: 28px; padding: 34px 0 36px; border-bottom: 1px solid var(--line); }
.svc-deliver-num { color: var(--accent); padding-top: 4px; }
.svc-deliver-row h3 { font-size: clamp(20px,2.35vw,30px); letter-spacing: -.05em; font-weight: 500; margin: 0; }
.svc-deliver-row p { color: var(--muted); font-size: 14px; line-height: 1.8; margin: 0; }
.svc-formats { background: var(--soft); padding: 115px 0 125px; }
.svc-formats-top h2 { max-width: 800px; margin-bottom: 65px; }
.svc-formats-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 27px; }
.svc-format-item { padding: 24px 0 0; border-top: 1px solid #c8cac1; }
.svc-format-item>span { color: var(--accent); }
.svc-format-item h3 { font-size: clamp(23px,2.7vw,34px); letter-spacing: -.055em; font-weight: 500; margin: 37px 0 15px; }
.svc-format-item p { color: var(--muted); font-size: 14px; line-height: 1.85; margin: 0; max-width: 280px; }
.svc-process { background: var(--white); padding: 115px 0 125px; }
.svc-process-heading h2 { margin-bottom: 65px; }
.svc-process-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 25px; }
.svc-step-item { border-top: 1px solid var(--line); padding-top: 25px; }
.svc-step-item>span { color: var(--accent); }
.svc-step-item h3 { margin: 30px 0 13px; font-size: 24px; letter-spacing: -.05em; font-weight: 500; }
.svc-step-item p { color: var(--muted); font-size: 13px; line-height: 1.8; margin: 0; }
.svc-next-service { background: var(--paper); padding: 27px 0; }
.svc-next-inner { display: flex; justify-content: space-between; align-items: center; gap: 35px; }
.svc-next-inner>span { color: #888c84; }
.svc-next-inner a { font-size: clamp(19px,2.7vw,34px); font-weight: 500; letter-spacing: -.05em; }
.svc-next-inner a:hover { color: var(--accent); }
.svc-next-inner a span { font-weight: 400; }
@media (max-width: 1050px) { .svc-hub-title-row { gap: 45px; grid-template-columns: 1fr 260px; } .svc-detail-hero-grid { gap: 45px; grid-template-columns: 1.05fr .95fr; } .svc-hero-visual { padding: 22px; } .svc-detail-hero h1 { font-size: clamp(50px,6.1vw,82px); } .svc-deliver-row { grid-template-columns: 70px 1fr 1fr; } }
@media (max-width: 800px) { .svc-hub-title-row { padding: 80px 0 75px; grid-template-columns: 1fr; gap: 30px; } .svc-hub-hero-copy { max-width: 530px; } .svc-list-link { grid-template-columns: 70px 1fr 35px; gap: 16px; } .svc-list-arrow { font-size: 27px; } .svc-approach-inner { grid-template-columns: 1fr; gap: 40px; } .svc-approach-copy { max-width: 480px; } .svc-detail-hero-grid { grid-template-columns: 1fr; gap: 42px; padding-top: 65px; } .svc-detail-hero-copy { padding-bottom: 0; } .svc-hero-visual { aspect-ratio: 2/1; } .svc-visual-mark { font-size: clamp(65px,10vw,115px); } .svc-intent-grid { grid-template-columns: 1fr; gap: 25px; } .svc-deliver-row { grid-template-columns: 45px 1fr; gap: 15px; } .svc-deliver-row p { grid-column: 2; } .svc-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 38px; } .svc-bottom-cta-inner { flex-direction: column; align-items: flex-start; gap: 45px; } }
@media (max-width: 600px) { .svc-hub-hero,.svc-detail-hero { padding-top: 30px; } .svc-hub-title-row { padding: 75px 0 64px; } .svc-hub-title-row h1 { font-size: clamp(54px,11vw,70px); } .svc-hub-hero-copy { font-size: 14px; } .svc-overline { font-size: 9px; } .svc-list-link { grid-template-columns: 38px 1fr 25px; padding: 29px 0 34px; gap: 10px; } .svc-list-link:hover,.svc-list-link:focus-visible { padding-left: 0; padding-right: 0; } .svc-list-num { font-size: 9px; padding-top: 24px; } .svc-list-num span { display: none; } .svc-list-label { font-size: 9px; margin-bottom: 12px; } .svc-list-copy strong { font-size: clamp(30px,7vw,44px); } .svc-list-description { font-size: 12px; padding-top: 12px; } .svc-list-arrow { font-size: 21px; } .svc-hub-list { padding-bottom: 70px; } .svc-approach-bar, .svc-formats, .svc-process, .svc-deliverables, .svc-intent-section { padding: 74px 0; } .svc-approach-inner h2,.svc-formats-top h2,.svc-process-heading h2 { font-size: 48px; } .svc-bottom-cta { padding: 77px 0; } .svc-bottom-cta h2 { font-size: clamp(43px,10.2vw,60px); } .svc-action-button { width: 100%; justify-content: space-between; gap: 12px; } .svc-detail-hero-grid { padding-top: 60px; } .svc-detail-hero h1 { font-size: clamp(48px,10.7vw,65px); } .svc-detail-intro { font-size: 14px; margin: 30px 0; } .svc-hero-visual { aspect-ratio: 1.25; padding: 22px; } .svc-visual-mark { font-size: clamp(59px,15vw,90px); } .svc-visual-mark--identite { font-size: clamp(43px,10vw,70px); } .svc-intent-section h2 { font-size: clamp(35px,8vw,58px); } .svc-section-header h2 { font-size: clamp(46px,10vw,65px); } .svc-section-header { margin-bottom: 45px; } .svc-deliver-row { grid-template-columns: 28px 1fr; gap: 12px; padding: 29px 0; } .svc-deliver-row h3 { font-size: 20px; } .svc-deliver-row p { font-size: 13px; } .svc-formats-top h2,.svc-process-heading h2 { margin-bottom: 39px; } .svc-formats-grid { grid-template-columns: 1fr; gap: 32px; } .svc-format-item h3 { margin-top: 22px; } .svc-format-item p { max-width: 450px; } .svc-process-grid { grid-template-columns: 1fr 1fr; gap: 25px 17px; } .svc-step-item h3 { font-size: 19px; margin: 23px 0 10px; } .svc-step-item p { font-size: 12px; } .svc-next-inner { display: block; } .svc-next-inner a { display: block; margin-top: 14px; } }
@media (prefers-reduced-motion: reduce) { .svc-list-link,.svc-list-link::before,.svc-list-arrow { transition: none; } }


/* ==========================================
   ALTO27 — bouton flottant vers le formulaire
   V9 : même bouton sur toutes les pages
   ========================================== */
.floating-contact {
  position: fixed;
  z-index: 190;
  right: 28px;
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 223px;
  min-height: 68px;
  padding: 12px 13px 12px 16px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 15px;
  background: var(--deep, #202723);
  color: var(--paper, #f7f6f2);
  box-shadow: 0 12px 34px rgba(20, 30, 24, .18);
  font-family: var(--sans, 'DM Sans', sans-serif);
  isolation: isolate;
  animation: floating-contact-enter .65s cubic-bezier(.16,1,.3,1) .65s both;
  transition: box-shadow .28s ease, background .28s ease, translate .28s ease;
}
.floating-contact:hover, .floating-contact:focus-visible {
  translate: 0 -4px;
  background: #303b33;
  box-shadow: 0 18px 42px rgba(20,30,24,.24);
}
.floating-contact-status {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
  background: var(--accent, #ab6b4e);
  box-shadow: 0 0 0 4px rgba(171,107,78,.13);
}
.floating-contact-copy {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.floating-contact-overline {
  font-size: 8px;
  line-height: 1.1;
  letter-spacing: .16em;
  color: #c1c7c0;
  font-weight: 600;
  white-space: nowrap;
}
.floating-contact-title {
  font-family: var(--serif, Georgia, serif);
  font-size: 24px;
  line-height: .93;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.02em;
  white-space: nowrap;
}
.floating-contact-arrow {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.38);
  font-size: 17px;
  font-weight: 400;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.floating-contact:hover .floating-contact-arrow,
.floating-contact:focus-visible .floating-contact-arrow {
  background: var(--paper, #f7f6f2);
  color: var(--deep, #202723);
  transform: rotate(45deg);
}
@keyframes floating-contact-enter {
  from { opacity: 0; transform: translateY(25px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
#formulaire { scroll-margin-top: 105px; }
body.menu-open .floating-contact { display: none; }
@media (max-width: 600px) {
  .floating-contact {
    bottom: max(17px, env(safe-area-inset-bottom, 0px));
    right: 15px;
    min-width: 192px;
    min-height: 58px;
    gap: 10px;
    border-radius: 13px;
    padding: 10px 11px;
  }
  .floating-contact-title { font-size: 21px; }
  .floating-contact-overline { font-size: 7px; }
  .floating-contact-arrow { width: 28px; height: 28px; }
  .floating-contact-status { width: 7px; height: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .floating-contact { animation: none; transition: none; }
  .floating-contact-arrow { transition: none; }
}
@media print { .floating-contact { display: none !important; } }


/* ===================================================
   ALTO27 V10 — trois études de cas réelles visuellement,
   livrables graphiques originaux en SVG ; photos documentaires.
   =================================================== */
.port-case { --cx-ink:#222; --cx-bg:#faf8f3; --cx-accent:#ab6b4e; font-family:'DM Sans',sans-serif; background:var(--cx-bg); color:var(--cx-ink); }
.port-case--volt { --cx-bg:#F1F0EC;--cx-ink:#111215;--cx-accent:#386CF1; --cx-panel:#0e1013;--cx-on:#f8f8f3;--cx-font:'Archivo Black',sans-serif; }
.port-case--solea { --cx-bg:#FFF9EC;--cx-ink:#25366B;--cx-accent:#E74F20;--cx-panel:#E74F20;--cx-on:#fff4dc;--cx-font:'Fraunces',Georgia,serif; }
.port-case--horizon { --cx-bg:#F2F0F6;--cx-ink:#0B1025;--cx-accent:#E34C8F;--cx-panel:#0B1025;--cx-on:#FFF9F2;--cx-font:'Space Grotesk',sans-serif; }
.port-case h1,.port-case h2,.port-case h3,.port-case p { margin-top:0; }
.port-case h2 { font-size:clamp(38px,4.7vw,76px); letter-spacing:-.055em; line-height:1.06; font-weight:500; }
.port-case h2 em { font-family:'Instrument Serif',Georgia,serif; font-size:1.04em; font-weight:400; }
.port-case p { line-height:1.85; }
.cx-eyebrow { color:var(--cx-accent); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.cx-hero { padding:38px 0 96px; }
.cx-topline { display:flex; justify-content:space-between; gap:24px; padding:18px 0; border-top:1px solid rgba(0,0,0,.22); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.cx-topline a:hover { color:var(--cx-accent); }
.cx-hero-heading { display:grid; grid-template-columns:1.1fr .65fr;gap:60px;align-items:end;padding:92px 0 62px; }
.cx-hero-heading h1 { font-family:var(--cx-font);font-size:clamp(85px,13vw,205px);line-height:.92;letter-spacing:-.07em;font-weight:700; margin:26px 0 36px; }
.cx-hero-heading h1 span { color:var(--cx-accent); }
.cx-hero-heading h2 { font-family:'Instrument Serif',serif; font-size:clamp(37px,4.2vw,69px); font-style:italic; font-weight:400; max-width:720px; }
.cx-hero-heading p:not(.cx-eyebrow) { font-size:16px; color:var(--cx-ink);opacity:.76;max-width:420px;margin-bottom:0; }
.cx-hero-image { position:relative; }
.cx-hero-image .cx-photo { height:clamp(440px,54vw,720px); }
.cx-photo { position:relative; overflow:hidden; background:#DDD8CE; min-height:230px; }
.cx-photo img { display:block; width:100%;height:100%;object-fit:cover; }
.cx-hero-image .cx-photo img { object-position:center 44%; }
.cx-hero-tag { position:absolute;left:24px;bottom:24px; padding:13px 18px;background:var(--cx-panel);color:var(--cx-on);font-size:10px;letter-spacing:.13em; }
.cx-hero-tag span { padding:0 10px;color:var(--cx-accent); }
.cx-photo-credit { position:absolute;right:12px;bottom:10px; background:rgba(0,0,0,.62);color:white;padding:5px 8px;font-size:9px;letter-spacing:.04em; }
.cx-photo-credit a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.cx-disclosure { display:grid;grid-template-columns:200px 1fr;gap:35px;padding:31px 0 0;color:#6c6d6a;font-size:12px;line-height:1.65; }
.cx-disclosure strong { color:var(--cx-ink);font-size:10px;letter-spacing:.13em; }
.cx-strategy { padding:110px 0;background:#fff; }
.cx-strategy-intro { display:grid;grid-template-columns:1fr .7fr;gap:100px;align-items:end; }
.cx-strategy h2 { margin:25px 0 0; }
.cx-strategy-intro>p { max-width:530px;font-size:16px;color:#646663; }
.cx-strategy-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:75px; }
.cx-keypoint { border-top:1px solid #d8d8d2;padding-top:22px; }
.cx-keypoint span { color:var(--cx-accent);font-size:11px;font-weight:600;letter-spacing:.1em; }
.cx-keypoint p { max-width:290px;font-size:13px;color:#5c605a;margin:19px 0 0; }
.cx-palette { padding:90px 0 120px;background:var(--cx-bg); }
.cx-palette-heading { display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px; }
.cx-palette-heading h2 { font-size:clamp(33px,4vw,56px);margin:0; }
.cx-swatches { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px; }
.cx-swatch { display:flex;flex-direction:column;gap:8px;font-size:13px; }
.cx-swatch>div { height:175px;border:1px solid rgba(30,30,30,.06); }
.cx-swatch code { color:#777;font-size:11px; }
.cx-chapter { padding:118px 0;background:#fff;border-top:1px solid #ecebe7; }
.cx-chapter:nth-of-type(2n) { background:var(--cx-bg); }
.cx-chapter-grid { display:grid;grid-template-columns:.78fr 1.12fr;gap:clamp(38px,6vw,120px);align-items:center; }
.cx-chapter--reverse .cx-copy { order:2; }
.cx-chapter--reverse .cx-visual { order:1; }
.cx-copy h2 { margin:22px 0 36px; }
.cx-copy p { color:#636763; font-size:15px; max-width:490px; margin:0 0 18px; }
.cx-detail-note {display:block;border-left:2px solid var(--cx-accent);padding:12px 0 12px 18px;font-size:12px;color:#747871;margin-top:25px;line-height:1.7; }
.cx-visual { min-width:0; }
.cx-visual .cx-photo { height:620px; }
.cx-art { margin:0; display:grid;place-items:center;background:#e4e1dc;min-height:420px; }
.cx-art img { display:block;width:100%;max-height:700px;object-fit:contain; }
.cx-browser { width:100%;background:#fff;box-shadow:0 20px 65px rgba(0,0,0,.13);border-radius:8px;overflow:hidden; }
.cx-browser-bar { padding:12px 16px;display:flex;justify-content:space-between;background:#dedfdd;color:#555a56;font:10px 'IBM Plex Mono',monospace; }
.cx-browser-ui { padding:16px; }
.cx-website-nav { display:flex;justify-content:space-between;align-items:center;gap:10px;padding:20px 15px;font:11px 'DM Sans',sans-serif;letter-spacing:.1em; }
.cx-website-nav strong { font-size:25px;letter-spacing:-.04em; }
.cx-website-nav b { font-size:23px; }
.cx-website-hero { display:grid;grid-template-columns:1fr 1fr;min-height:390px; }
.cx-website-hero>.cx-photo { min-height:390px; }
.cx-website-text { display:flex;flex-direction:column;justify-content:center;padding:30px;gap:20px;min-width:0; }
.cx-website-text small,.cx-website-text span { font-size:10px;letter-spacing:.15em; }
.cx-website-text>b {font-family:var(--cx-font);font-size:clamp(31px,3.5vw,66px);line-height:1.05;letter-spacing:-.05em;}
.cx-website-text button { align-self:start;border:0;border-radius:0;padding:12px 16px;background:var(--cx-accent);color:#fff;font-size:10px;letter-spacing:.1em;opacity:1; }
.cx-browser--volt .cx-browser-ui { background:#111; color:white; }
.cx-browser--volt .cx-website-nav { border-bottom:1px solid #555; }
.cx-browser--volt .cx-website-text button { color:#111;background:#d6fa27; }
.cx-browser--solea .cx-browser-ui { background:#fff7e7;color:#e74f20; }
.cx-browser--solea .cx-website-text>b {font-family:'Fraunces',Georgia,serif;}
.cx-browser--horizon .cx-browser-ui { background:#0b1025;color:#fff; }
.cx-browser--horizon .cx-website-text button { background:#ff4d93; }
.cx-deliveries { padding:120px 0;background:var(--cx-bg); }
.cx-deliveries-top { display:grid;grid-template-columns:210px 1fr;align-items:center;margin-bottom:50px; }
.cx-deliveries-top h2 { margin:0; }
.cx-deliver-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px; }
.cx-deliver-item { background:#fff; min-width:0; }
.cx-deliver-item>.cx-art, .cx-deliver-item>.cx-photo { height:360px;min-height:0; }
.cx-deliver-item>.cx-art img { height:100%;max-height:100%;object-fit:contain; }
.cx-deliver-desc { padding:23px 22px 34px; }
.cx-deliver-desc>span { color:var(--cx-accent);font-size:10px;letter-spacing:.1em; }
.cx-deliver-desc h3 { font-size:24px;margin:15px 0 10px;font-weight:500;letter-spacing:-.04em; }
.cx-deliver-desc p { font-size:12px;color:#676b67;margin:0;line-height:1.7; }
.cx-close { padding:125px 0;background:var(--cx-panel);color:var(--cx-on); }
.cx-close-grid { display:grid;grid-template-columns:1fr .65fr;gap:90px;align-items:end; }
.cx-close h2 { margin:20px 0 28px; }
.cx-close p { max-width:640px;font-size:15px;color:var(--cx-on);opacity:.73; }
.cx-close-next { border-top:1px solid #777;padding-top:35px;display:flex;flex-direction:column;align-items:start;gap:15px; }
.cx-close-next small { font-size:10px;letter-spacing:.15em;opacity:.7; }
.cx-close-next>a:not(.cx-return) { font-size:clamp(30px,4vw,56px);font-weight:500;letter-spacing:-.055em; }
.cx-close-next>a span { color:var(--cx-accent); }
.cx-close-next .cx-return {font-size:13px;text-decoration:underline;text-underline-offset:5px;opacity:.8;margin-top:55px;}
.project-card--v10 .project-card-media { background:#111; }
.project-card--v10 .project-card-media img { filter:none; }
.project-card-overlay { position:absolute;left:23px;bottom:23px;color:#fff;font-size:clamp(32px,4vw,50px);font-weight:800;letter-spacing:-.05em;text-shadow:0 2px 18px rgba(0,0,0,.5); }
.project-card--solea .project-card-overlay { font-family:'Instrument Serif',serif;font-weight:400;font-size:66px; }
.project-card--horizon .project-card-overlay { font-family:'Space Grotesk',sans-serif;letter-spacing:.08em; }
@media (max-width:900px){ .cx-hero-heading,.cx-strategy-intro,.cx-close-grid {grid-template-columns:1fr;gap:24px} .cx-hero-heading{padding:75px 0 45px} .cx-hero-heading h1{font-size:clamp(72px,16vw,142px)} .cx-hero-heading p:not(.cx-eyebrow) {max-width:700px} .cx-chapter-grid{gap:44px} .cx-copy p{font-size:14px}.cx-deliver-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:680px){ .cx-hero{padding:25px 0 58px} .cx-topline{font-size:9px} .cx-topline span{max-width:160px;text-align:right} .cx-hero-heading{padding:70px 0 28px} .cx-hero-heading h1{font-size:clamp(65px,19vw,105px);margin:20px 0 26px} .cx-hero-heading h2{font-size:39px} .cx-hero-image .cx-photo{height:340px} .cx-hero-tag{bottom:9px;left:9px;padding:9px;font-size:7px;letter-spacing:.05em} .cx-disclosure{grid-template-columns:1fr;gap:8px;padding-top:20px} .cx-strategy,.cx-palette,.cx-chapter,.cx-deliveries,.cx-close{padding:67px 0} .cx-strategy-grid{grid-template-columns:1fr;gap:23px;margin-top:40px} .cx-strategy h2,.cx-copy h2{font-size:clamp(38px,10vw,58px)} .cx-swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cx-swatch>div{height:110px}.cx-palette-heading{display:block}.cx-palette-heading h2{margin-top:18px}.cx-chapter-grid{grid-template-columns:1fr;gap:25px}.cx-chapter--reverse .cx-copy,.cx-chapter--reverse .cx-visual{order:initial}.cx-visual .cx-photo{height:400px}.cx-art{min-height:0}.cx-art img{max-height:570px}.cx-deliveries-top{grid-template-columns:1fr;gap:20px}.cx-deliver-grid{grid-template-columns:1fr}.cx-deliver-item>.cx-photo,.cx-deliver-item>.cx-art{height:310px}.cx-browser-ui{padding:7px}.cx-website-nav{padding:13px 7px}.cx-website-nav span{font-size:7px}.cx-website-nav strong{font-size:17px}.cx-website-hero{min-height:260px}.cx-website-hero>.cx-photo{min-height:260px}.cx-website-text{padding:13px;gap:12px}.cx-website-text>b{font-size:clamp(23px,7vw,42px)}.cx-website-text button{font-size:7px;padding:9px}.cx-website-text small,.cx-website-text span{font-size:7px}.cx-close .cx-return{margin-top:20px} }
@media (prefers-reduced-motion:reduce){ .port-case *{scroll-behavior:auto} }

.cx-svg-link {padding:10px 14px 13px; background:#f5f3ef;text-align:right;font:10px 'DM Sans',sans-serif;letter-spacing:.04em;color:#626461; width:100%;}
.cx-svg-link a {text-decoration:underline;text-underline-offset:3px;}
.cx-art:has(.cx-svg-link) {display:flex;flex-direction:column;justify-content:center;}
.cx-art:has(.cx-svg-link) img {width:100%;min-height:0;object-fit:contain;flex:1;}


/* V11 — Casa Luce / Forma Studio / Noma Living : dossiers enrichis */
.legacy-case--casa {--cx-ink:#3a342d;--cx-bg:#f8f1e7;--cx-accent:#b4694a;--cx-panel:#3a342d;--cx-on:#f8f1e7;--cx-font:'Instrument Serif',Georgia,serif}
.legacy-case--forma {--cx-ink:#1e201e;--cx-bg:#f3f1ec;--cx-accent:#777d70;--cx-panel:#1e201e;--cx-on:#f3f1ec;--cx-font:'DM Sans',Arial,sans-serif}
.legacy-case--noma {--cx-ink:#262a25;--cx-bg:#f2eee5;--cx-accent:#a2765c;--cx-panel:#262a25;--cx-on:#f2eee5;--cx-font:'Instrument Serif',Georgia,serif}
.legacy-case .cx-hero-heading h1{font-size:clamp(66px,10vw,156px);font-weight:400;letter-spacing:-.055em}
.legacy-case--forma .cx-hero-heading h1{font-size:clamp(60px,9vw,134px);letter-spacing:-.075em;font-weight:500}
.legacy-case .cx-hero-heading h2{font-family:'Instrument Serif',Georgia,serif;font-style:normal;font-size:clamp(30px,3.6vw,59px)}
.legacy-case .cx-hero-heading h1 span {color:var(--cx-accent)}
.legacy-photo{position:relative;margin:0;background:#ded9cd;overflow:hidden}
.legacy-photo img{display:block;width:100%;height:100%;object-fit:cover}
.legacy-photo figcaption{position:absolute;bottom:0;right:0;background:rgba(20,23,20,.84);color:white;padding:9px 12px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;line-height:1.5}
.legacy-photo figcaption a{color:white;text-decoration:underline;text-underline-offset:3px}
.legacy-hero-photo{height:min(62vw,750px);min-height:430px}
.legacy-chapter-photo{height:600px}
.legacy-art{margin:0;background:#dedbd4;position:relative;min-height:460px;display:flex;flex-direction:column;justify-content:center}
.legacy-art>img{display:block;width:100%;height:auto;max-height:690px;object-fit:contain;flex:1;min-height:0}
.legacy-art figcaption{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:12px 17px;font-size:10px;letter-spacing:.07em;text-transform:uppercase;background:#f9f8f4;color:#686b65}
.legacy-art figcaption a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.legacy-case .cx-visual .legacy-chapter-photo{height:620px}
.legacy-case .cx-deliver-item .legacy-art,.legacy-case .cx-deliver-item .legacy-photo{height:345px;min-height:0}
.legacy-case .cx-deliver-item .legacy-art>img{height:calc(100% - 43px);max-height:none}
.legacy-mock{background:#faf9f6;color:#222;border:1px solid #e2e0db;border-radius:9px;overflow:hidden;box-shadow:0 18px 55px rgba(20,20,20,.11)}
.legacy-bar{height:38px;display:flex;gap:7px;align-items:center;background:#dddcd7;padding:0 14px;font-size:10px;color:#73736e}
.legacy-bar i{width:8px;height:8px;border-radius:50%;background:#b9b8af}
.legacy-bar span{margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.legacy-site-nav{min-height:75px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid #dddcd4}
.legacy-site-nav strong{font-size:25px;font-weight:500;letter-spacing:-.03em}
.legacy-site-nav span,.legacy-site-nav small{font-size:9px;letter-spacing:.09em}
.legacy-site-stage{display:grid;grid-template-columns:1fr 1fr;min-height:490px}
.legacy-site-stage>img{width:100%;height:100%;object-fit:cover;min-height:480px}
.legacy-web-copy{padding:44px 25px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:18px}
.legacy-web-copy>small{font-size:10px;letter-spacing:.12em}
.legacy-web-copy h3{font-size:clamp(28px,2.9vw,53px);font-weight:400;line-height:1.06;letter-spacing:-.03em;margin:0}
.legacy-web-copy h3 em{font-family:'Instrument Serif',Georgia,serif;font-weight:400}
.legacy-web-copy p{margin:0;font-size:12px;line-height:1.55}
.legacy-web-copy .legacy-small-text{opacity:.65}
.legacy-fake-btn{display:inline-block;font-size:10px;letter-spacing:.07em;border:1px solid currentColor;padding:13px 15px}
.legacy-web-foot{padding:18px 24px;border-top:1px solid #dddcd4;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.11em}
.legacy-mock--casa{background:#f8f1e7;color:#3a342d}
.legacy-mock--casa .legacy-site-nav strong{font-family:Georgia,serif;letter-spacing:.13em}
.legacy-mock--casa .legacy-fake-btn{background:#3a342d;color:#fff;border-color:#3a342d}
.legacy-mock--forma{background:#fafaf7;color:#232522}
.legacy-mock--forma .legacy-site-nav strong{font-size:20px;letter-spacing:.15em}
.legacy-mock--noma{background:#f5f2ec;color:#262a25}
.legacy-mock--noma .legacy-site-nav strong{font-family:Georgia,serif;letter-spacing:.09em}
.legacy-mock--noma .legacy-site-nav sub{font:10px Arial,sans-serif;letter-spacing:.1em}
.legacy-mock--noma .legacy-site-stage{grid-template-columns:1.1fr .9fr}
.legacy-mock--noma .legacy-fake-btn{background:#262a25;color:white}
.legacy-case .cx-deliver-grid .legacy-photo img{height:100%}
@media(max-width:900px){.legacy-case .cx-hero-heading h1{font-size:clamp(64px,13vw,115px)}.legacy-hero-photo{min-height:370px}.legacy-site-stage{min-height:350px}.legacy-site-stage>img{min-height:350px}}
@media(max-width:680px){.legacy-hero-photo{height:350px;min-height:0}.legacy-case .cx-hero-heading h1{font-size:clamp(60px,15vw,86px)}.legacy-chapter-photo,.legacy-case .cx-visual .legacy-chapter-photo{height:390px}.legacy-art{min-height:310px}.legacy-site-stage{grid-template-columns:1fr 1fr;min-height:290px}.legacy-site-stage>img{min-height:290px}.legacy-site-nav{padding:13px}.legacy-site-nav strong{font-size:16px}.legacy-site-nav span{display:none}.legacy-site-nav small{font-size:8px}.legacy-web-copy{padding:17px 12px;gap:11px}.legacy-web-copy h3{font-size:clamp(22px,5vw,35px)}.legacy-web-copy p{font-size:10px}.legacy-web-copy>small{font-size:8px}.legacy-fake-btn{font-size:7px;padding:10px 8px}.legacy-web-foot{padding:12px;font-size:7px}.legacy-art figcaption{padding:8px 11px;font-size:8px;gap:7px}.legacy-mock--forma .legacy-site-nav strong{font-size:15px}.legacy-case .cx-deliver-item .legacy-art,.legacy-case .cx-deliver-item .legacy-photo{height:330px}}


/* ===============================================================
   ALTO27 V12 — refonte des proportions, photographies + portfolio
   Règles de finition : surchargent les anciennes tailles sans supprimer
   les composants ou les animations existants.
   =============================================================== */
.hero.hero--editorial { min-height:0; overflow:visible; background:var(--paper); }
.hero--editorial .hero-editorial-layout { display:grid; grid-template-columns:minmax(0, .94fr) minmax(0,1.06fr); align-items:stretch; gap:clamp(28px,4.5vw,72px); min-height:560px; padding-top:32px; padding-bottom:30px; }
.hero--editorial .hero-editorial-copy { display:flex; flex-direction:column; padding:12px 0 10px; min-width:0; }
.hero-editorial-eyebrow { display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:10px;letter-spacing:.12em;font-weight:600; color:#6e746e; }
.hero-editorial-eyebrow .status-dot { flex:0 0 auto; }
.hero-editorial-location { margin-left:auto;font-size:10px;color:#92958e; }
.hero--editorial .hero-index { padding-top:76px; margin:0 0 20px; font-size:10px;letter-spacing:.13em; }
.hero--editorial .hero-title { margin:0; font-size:clamp(39px,4.5vw,69px); font-weight:500; letter-spacing:-.069em; line-height:1.07; max-width:none; white-space:nowrap; }
.hero--editorial .hero-title em { font-family:var(--serif); font-weight:400; letter-spacing:-.03em; }
.hero-editorial-lead { font-size:15px; color:#656b65; line-height:1.8; max-width:415px; margin:25px 0 0; }
.hero-editorial-actions { display:flex; align-items:center;flex-wrap:wrap;gap:23px;margin:32px 0 27px; }
.hero-action-primary { display:inline-flex;align-items:center;justify-content:space-between;gap:30px; background:var(--deep);color:var(--paper);padding:16px 20px;font-size:12px;font-weight:600; transition:background .22s ease, transform .22s ease; }
.hero-action-primary:hover,.hero-action-primary:focus-visible { background:var(--accent); transform:translateY(-2px); }
.hero-action-secondary { display:inline-flex;align-items:center;gap:19px;padding:13px 0 10px;border-bottom:1px solid #81857c;font-size:12px;font-weight:600; }
.hero-action-secondary:hover,.hero-action-secondary:focus-visible { color:var(--accent); border-color:var(--accent); }
.hero-editorial-foot { display:flex; justify-content:space-between; gap:15px; margin-top:auto; padding-top:20px; border-top:1px solid var(--line);font-size:9px;letter-spacing:.1em; color:#8a8e85; }
.hero-editorial-photo { position:relative;min-width:0; height:550px;overflow:hidden;background:linear-gradient(145deg,#b7a38e,#566775); }
.hero-editorial-photo>img { display:block;width:100%;height:100%;object-fit:cover;object-position:center center;animation:alto-photo-breathe 16s ease-in-out infinite alternate; }
.hero-editorial-photo-shade { position:absolute;inset:40% 0 0; background:linear-gradient(to top,rgba(13,17,18,.38),transparent 74%);pointer-events:none; }
.hero-editorial-photo-signature { position:absolute;bottom:27px;left:27px;right:27px;display:flex;justify-content:space-between;align-items:center;color:white;font-size:10px;letter-spacing:.16em;font-weight:600;text-shadow:0 1px 7px rgba(0,0,0,.25); }
.hero-editorial-photo-signature span:last-child { font-size:23px;letter-spacing:0; }
.hero-editorial-credit { position:absolute;top:12px;right:14px;background:rgba(10,15,16,.37);color:white;padding:5px 8px;font-size:9px;opacity:.78;transition:opacity .2s; }
.hero-editorial-credit:hover { opacity:1; }
@keyframes alto-photo-breathe { from {transform:scale(1)} to {transform:scale(1.035)} }

/* Les projets ne sont plus cachés derrière un hero de 850 px. */
.home-selected-work { background:#fff; padding:48px 0 59px;border-bottom:1px solid var(--line); }
.home-selected-head { display:flex;gap:28px;justify-content:space-between;align-items:end;margin-bottom:23px; }
.home-selected-index { font-size:10px;letter-spacing:.15em;color:var(--accent);font-weight:600; }
.home-selected-head h2 { margin:10px 0 0; font-size:clamp(26px,3vw,43px);font-weight:500;letter-spacing:-.055em;line-height:1.12; }
.home-selected-head h2 em { font-family:var(--serif);font-weight:400;color:var(--accent);letter-spacing:-.02em; }
.home-selected-head>a { white-space:nowrap;font-size:12px;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:8px; }
.home-selected-head>a span { margin-left:20px; }
.home-selected-head>a:hover {color:var(--accent);border-color:var(--accent);}
.home-selected-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;}
.home-selected-item { min-width:0;display:block; }
.home-selected-visual {height:clamp(155px,17vw,255px);overflow:hidden;background:#e6e2da;}
.home-selected-visual img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s ease;}
.home-selected-item:hover .home-selected-visual img,.home-selected-item:focus-visible .home-selected-visual img {transform:scale(1.055)}
.home-selected-label {display:flex;justify-content:space-between;gap:12px;padding-top:14px;align-items:center;}
.home-selected-label>span:first-child {display:flex;gap:4px;flex-direction:column;}
.home-selected-label strong {font-size:15px;font-weight:600;letter-spacing:-.02em;}
.home-selected-label small {font-size:11px;color:#8b8e87;}
.home-selected-label>span:last-child {font-size:19px;}
.home-selected-note {font-size:10px;color:#9a9d96;margin:21px 0 0;}

/* Equilibre typographique général : accueil, studio, portfolio et pages détails */
.section h2,.offerings-heading h2 { font-size:clamp(37px,4.2vw,62px);letter-spacing:-.052em; }
.project-teaser h2 { font-size:clamp(32px,4vw,55px); }
.studio-title {font-size:clamp(43px,5.6vw,80px);letter-spacing:-.064em;line-height:1.06;}
.studio-hero {padding-top:24px;padding-bottom:66px;}
.studio-hero-grid {padding:65px 0 49px;}
.studio-heading-row h2 {font-size:clamp(38px,4.7vw,64px);}
.projects-hero {padding:34px 0 34px;}
.projects-hero-grid {padding:39px 0 39px;gap:38px;align-items:center;}
.projects-hero h1 {font-size:clamp(43px,5.1vw,74px);letter-spacing:-.065em;line-height:1.03;margin:13px 0 0;}
.projects-gallery {padding:40px 0 96px;}
.projects-gallery-head {margin-bottom:25px;}
.case-hero {padding:25px 0 68px;}
.case-hero-heading {padding:45px 0 36px;gap:40px;align-items:center;}
.case-hero h1 {font-size:clamp(46px,6vw,85px);letter-spacing:-.068em;line-height:1.02;white-space:normal;}
.case-category {margin-bottom:15px;}
.case-hero-summary p {font-size:clamp(16px,1.45vw,20px);line-height:1.6;}
.case-hero-visual {height:clamp(300px,36vw,500px);}
.case-chapter-copy h2 {font-size:clamp(37px,4.3vw,61px);}
.case-chapter {padding:89px 0;}
.case-extras-heading h2 {font-size:clamp(36px,4vw,57px);}
.port-case h2 {font-size:clamp(33px,3.7vw,57px);}
.cx-hero {padding:24px 0 66px;}
.cx-hero-heading {padding:43px 0 30px;gap:36px;}
.cx-hero-heading h1 {font-size:clamp(55px,6.4vw,93px);letter-spacing:-.065em;line-height:.98;margin:12px 0 16px;}
.cx-hero-heading h2 {font-size:clamp(30px,3.1vw,48px);}
.cx-hero-image .cx-photo {height:clamp(335px,40vw,560px);}
.cx-strategy {padding:78px 0;}
.cx-chapter {padding:84px 0;}
.cx-palette {padding:75px 0 90px;}
.cx-deliveries {padding:87px 0;}
.svc-hub-title-row h1 {font-size:clamp(47px,5.8vw,84px);letter-spacing:-.063em;line-height:1.04;}
.svc-hub-title-row {padding-top:65px;padding-bottom:57px;}
.svc-detail-hero h1 {font-size:clamp(46px,5.3vw,78px);letter-spacing:-.06em;line-height:1.06;}
.contact-page-copy h1 {font-size:clamp(45px,5.9vw,80px);letter-spacing:-.067em;line-height:1.04;}

@media (max-width: 1100px) {
 .hero--editorial .hero-title {font-size:clamp(38px,4.4vw,55px);white-space:normal;}
 .hero--editorial .hero-editorial-layout {gap:30px;min-height:520px;}
 .hero-editorial-photo {height:510px;}
 .hero--editorial .hero-index {padding-top:64px;}
}
@media (max-width: 860px) {
 .hero--editorial .hero-editorial-layout {grid-template-columns:1fr;gap:26px;padding-top:22px;padding-bottom:24px;}
 .hero--editorial .hero-editorial-copy {padding:10px 0 0;}
 .hero--editorial .hero-index {padding-top:32px;}
 .hero--editorial .hero-title {font-size:clamp(40px,7.2vw,67px);}
 .hero-editorial-lead {margin-top:19px;max-width:600px;}
 .hero-editorial-actions {margin:24px 0;}
 .hero-editorial-photo {height:350px;}
 .home-selected-work {padding:42px 0 55px;}
 .home-selected-grid {gap:12px;}
 .home-selected-visual {height:195px;}
 .studio-hero-grid {padding:57px 0 43px;}
 .projects-hero-grid {grid-template-columns:1fr;gap:15px;padding:28px 0;}
 .projects-hero h1 {font-size:clamp(43px,7vw,68px);}
 .case-hero-heading {grid-template-columns:1fr;gap:15px;padding:35px 0;}
 .case-hero-summary {max-width:600px;justify-self:start;}
 .cx-hero-heading {grid-template-columns:1fr;gap:10px;}
 .cx-hero-heading h1 {font-size:clamp(54px,9vw,79px);}
 .cx-hero-heading h2 {max-width:650px;}
 .cx-hero-heading p:not(.cx-eyebrow) {max-width:630px;}
}
@media (max-width: 600px) {
 .hero--editorial .hero-editorial-layout {gap:20px;padding-top:13px;}
 .hero-editorial-eyebrow {font-size:9px;}
 .hero-editorial-location {font-size:9px;}
 .hero--editorial .hero-index {padding-top:23px;margin-bottom:16px;font-size:9px;}
 .hero--editorial .hero-title {font-size:clamp(37px,10.6vw,53px);white-space:normal;line-height:1.06;}
 .hero-editorial-lead {font-size:14px;line-height:1.65;}
 .hero-editorial-actions {gap:15px;margin:21px 0;}
 .hero-action-primary {padding:14px 16px;gap:16px;}
 .hero-editorial-foot {font-size:8px;}
 .hero-editorial-foot span:last-child {display:none;}
 .hero-editorial-photo {height:260px;}
 .hero-editorial-photo-signature {left:16px;bottom:14px;right:16px;font-size:9px;}
 .home-selected-head {align-items:start;gap:10px;}
 .home-selected-head h2 {font-size:clamp(25px,6.2vw,34px);}
 .home-selected-head>a {font-size:11px;align-self:end;white-space:normal;text-align:right;min-width:86px;}
 .home-selected-head>a span {margin-left:3px;}
 .home-selected-grid {display:flex;gap:13px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;margin-right:-22px;scrollbar-width:thin;}
 .home-selected-item {flex:0 0 min(77vw,310px);scroll-snap-align:start;}
 .home-selected-visual {height:180px;}
 .section h2,.offerings-heading h2 {font-size:clamp(35px,8.5vw,50px);}
 .studio-title {font-size:clamp(43px,10vw,57px);}
 .projects-hero {padding:22px 0 24px;}
 .projects-hero-grid {padding:27px 0 24px;}
 .projects-hero h1 {font-size:clamp(39px,9vw,55px);}
 .projects-gallery {padding-top:29px;}
 .case-hero h1 {font-size:clamp(42px,10.3vw,60px);}
 .case-hero-heading {padding:30px 0 25px;}
 .case-hero-visual {height:300px;}
 .case-chapter-copy h2 {font-size:clamp(35px,8.7vw,49px);}
 .cx-hero-heading {padding:26px 0 21px;}
 .cx-hero-heading h1 {font-size:clamp(49px,12vw,66px);}
 .cx-hero-heading h2 {font-size:clamp(28px,7.2vw,39px);}
 .cx-hero-image .cx-photo {height:340px;}
 .svc-hub-title-row h1 {font-size:clamp(42px,9.1vw,58px);}
 .svc-detail-hero h1 {font-size:clamp(43px,9vw,58px);}
 .contact-page-copy h1 {font-size:clamp(43px,10vw,60px);}
}
@media (prefers-reduced-motion: reduce){.hero-editorial-photo>img{animation:none} .home-selected-visual img {transition:none}}


/* V13 — Journal & conseils : editorial sans emphase excessive */
.advice-kicker{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:#b67857;text-transform:uppercase}
.advice-hero,.advice-article-hero{background:#f7f6f2;padding:clamp(58px,7vw,105px) 0 56px;border-bottom:1px solid #deded6}
.advice-hero h1{font-family:'DM Sans',sans-serif;font-size:clamp(36px,5.2vw,70px);letter-spacing:-.065em;line-height:1.08;font-weight:500;color:#242a27;max-width:930px;margin:24px 0 42px}
.advice-hero h1 em,.advice-cta h2 em,.advice-home-heading h2 em{font-family:'Instrument Serif',serif;font-weight:400;letter-spacing:-.025em;color:#a86a4b}
.advice-hero-foot{display:flex;align-items:end;justify-content:space-between;gap:20px;border-top:1px solid #d7d8d0;padding-top:22px}.advice-hero-foot p{max-width:540px;font-size:16px;line-height:1.75;color:#606760}.advice-hero-foot span,.advice-list-top p{font-size:11px;letter-spacing:.1em;color:#81857d}
.advice-list{padding:55px 0 100px}.advice-list-top,.advice-home-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.advice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.advice-card{background:#f9f8f5;border:1px solid #e0e1da;text-decoration:none;color:#252b28;padding:28px 27px 26px;min-height:320px;display:flex;flex-direction:column;transition:transform .25s,border-color .25s,background .25s}.advice-card:hover{transform:translateY(-4px);border-color:#b77759;background:#fff}.advice-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#997056}.advice-card-top span:last-child{font-size:23px;color:#26302b}.advice-card h2{font-size:clamp(21px,2.1vw,29px);line-height:1.23;letter-spacing:-.035em;font-weight:500;margin:29px 0 13px}.advice-card p{font-size:14px;line-height:1.75;color:#666c65;margin:0 0 28px}.advice-card-bottom{margin-top:auto;font-size:12px;font-weight:600;border-top:1px solid #e2e2db;padding-top:17px}.advice-card-bottom span{color:#91958e;font-weight:400}
.advice-cta{background:#253029;color:#f7f6f2;padding:70px 0}.advice-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:36px}.advice-cta h2{font-size:clamp(29px,3.8vw,52px);line-height:1.13;letter-spacing:-.055em;font-weight:400;margin:18px 0 15px}.advice-cta p{font-size:15px;line-height:1.75;max-width:530px;color:#c9d0ca}.advice-primary{display:inline-flex;white-space:nowrap;padding:19px 23px;background:#c17f59;color:#fff;text-decoration:none;font-size:13px;font-weight:600;gap:22px;align-items:center}
.advice-article-hero{padding-bottom:55px}.advice-back{font-size:12px;color:#70776e;text-decoration:none;display:inline-block;margin-bottom:34px}.advice-article-hero h1{font-size:clamp(36px,5vw,69px);line-height:1.1;letter-spacing:-.052em;max-width:950px;color:#242a27;font-weight:500;margin:19px 0 25px}.advice-deck{font-size:clamp(17px,1.9vw,22px);max-width:750px;color:#616861;line-height:1.6}
.advice-article-shell{display:grid;grid-template-columns:minmax(0,760px) minmax(200px,1fr);gap:clamp(30px,7vw,110px);padding-top:62px;padding-bottom:108px}.advice-article-body{min-width:0}.advice-intro{font-family:'Instrument Serif',serif;font-size:clamp(25px,2.8vw,36px);line-height:1.25;color:#a86a4b;padding-bottom:36px;border-bottom:1px solid #dfdfd7;margin-bottom:32px}.advice-section{padding-bottom:24px;margin-bottom:38px;border-bottom:1px solid #e4e4df}.advice-section h2{font-size:clamp(22px,2.3vw,30px);font-weight:500;letter-spacing:-.035em;color:#27302a;margin-bottom:18px}.advice-section p{font-size:16px;line-height:1.9;color:#515b53;margin:0 0 17px}.advice-sticky{position:sticky;top:95px;padding:25px;border:1px solid #dedfd8;background:#f8f8f5}.advice-sticky nav{display:flex;flex-direction:column;margin:17px 0 24px;gap:14px}.advice-sticky nav span{font-size:12px;line-height:1.55;color:#6d756d}.advice-sticky>a{font-size:12px;color:#9b674b;text-decoration:none;font-weight:600}.advice-inline-service{padding:31px;background:#f0eee7}.advice-inline-service>span{font-size:10px;letter-spacing:.13em;color:#996d54}.advice-inline-service h2{font-size:26px;margin:18px 0 10px;font-weight:500;letter-spacing:-.03em}.advice-inline-service p{font-size:14px;line-height:1.8;color:#666c62}.advice-inline-service>div{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}.advice-inline-service a{font-size:12px;color:#8b593f;font-weight:600;text-decoration:none}
.advice-related{padding:58px 0 80px;background:#f4f3ef}.advice-related-head{margin-bottom:28px}.advice-related-head h2{font-family:'Instrument Serif',serif;font-size:43px;font-weight:400;margin:10px 0}.advice-home{padding:65px 0 82px;border-top:1px solid #e3e3da}.advice-home-heading h2{font-size:clamp(29px,3.2vw,45px);font-weight:400;letter-spacing:-.04em;margin:10px 0}.advice-home-heading>a{font-size:13px;color:#995f43;text-decoration:none}.advice-home .advice-card{min-height:260px}.advice-footer-link{font-size:12px;text-decoration:none;color:inherit}
@media(max-width:850px){.advice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.advice-article-shell{grid-template-columns:1fr}.advice-article-side{display:none}.advice-cta-inner{display:block}.advice-primary{margin-top:22px}}
@media(max-width:600px){.advice-grid{grid-template-columns:1fr}.advice-card{min-height:245px}.advice-hero,.advice-article-hero{padding:45px 0 38px}.advice-hero h1{margin:15px 0 28px}.advice-hero-foot{display:block}.advice-hero-foot span{display:block;margin-top:18px}.advice-article-shell{padding-top:38px;padding-bottom:65px}.advice-cta{padding:52px 0}.advice-home-heading{align-items:start;flex-direction:column}.advice-list{padding:35px 0 60px}}

/* ALTO27 V16 — Expertises en mouvement et finitions, composants existants conservés. */
.v16-slider{position:relative;min-width:0;background:#e7e3da;align-self:stretch;color:var(--ink)}
.v16-slide{position:relative;padding:24px 28px 55px;min-height:570px;overflow:hidden}
.v16-slide-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;border-bottom:1px solid #23272524;padding-bottom:16px}
.v16-scene{height:275px;display:flex;align-items:center;justify-content:center;padding:27px 8px 18px;pointer-events:none}
.v16-slide-copy h2{font-size:clamp(27px,2.7vw,40px);font-weight:500;line-height:1.08;letter-spacing:-.055em;margin:12px 0}
.v16-slide-copy h2 em{font-family:var(--serif);font-weight:400;color:#925334}
.v16-slide-copy p{font-size:12px;line-height:1.7;margin:0 0 17px;color:#535b54;max-width:350px}
.v16-slide-copy>a{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px;font-weight:600;border-bottom:1px solid #23272570;padding-bottom:9px}
.v16-concept{display:block;font-size:7px;letter-spacing:.12em;margin-top:20px;color:#646a61}
.v16-slider.is-ready .v16-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s;pointer-events:none}
.v16-slider.is-ready{min-height:570px}
.v16-slider.is-ready .v16-slide.is-active{position:relative;opacity:1;visibility:visible;pointer-events:auto}
.v16-controls{position:absolute;bottom:0;left:28px;right:28px;height:48px;align-items:center;justify-content:space-between;border-top:1px solid #23272530;gap:5px}
.v16-controls:not([hidden]){display:flex}
.v16-controls button{border:0;background:transparent;color:inherit;min-width:36px;min-height:42px;padding:6px;font-size:11px;cursor:pointer}
.v16-controls button:hover{color:#925334}.v16-dots{display:flex;gap:4px}.v16-dots button[aria-current=true]{text-decoration:underline;text-underline-offset:6px;font-weight:700}
.v16-controls [data-pause]{font-size:10px;min-width:56px}.v16-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.v16-browser{width:100%;background:#f7f6f2;box-shadow:0 18px 30px #2327251f;transform:rotate(-3deg)}
.v16-browser-bar{font-size:8px;background:#d4d4cc;padding:9px 12px;color:#5b635a;display:flex;justify-content:space-between}.v16-browser-bar span{font-size:6px;letter-spacing:.1em}
.v16-web-nav{font-size:14px;font-weight:600;letter-spacing:.1em;padding:14px 19px;border-bottom:1px solid #deded6;display:flex;justify-content:space-between;align-items:center}.v16-web-nav span{font-size:7px;letter-spacing:0;font-weight:400}
.v16-web-body{display:grid;grid-template-columns:1fr 1fr;min-height:164px}.v16-web-body>div:first-child{display:flex;flex-direction:column;padding:20px;justify-content:space-between;gap:12px}.v16-web-body small{font-size:6px;letter-spacing:.15em}.v16-web-body strong{font-size:29px;letter-spacing:-.05em;line-height:1;font-weight:400}.v16-web-body i{font-family:var(--serif);font-weight:400;color:#7e705d}.v16-web-body span{font-size:7px}
.v16-arch{position:relative;background:linear-gradient(120deg,#baad93 0 20%,#ded5c4 20% 45%,#9c9c8e 45% 48%,#c8c6b7 48%);overflow:hidden}.v16-arch:after{content:'';position:absolute;inset:20% 10% -25% 35%;border:18px solid #e8dfce;border-radius:100px 100px 0 0;background:linear-gradient(120deg,#5c665b,#d2cbb9);box-shadow:-15px 17px 0 #30393044}
.v16-social-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:85%;height:240px;transform:rotate(3deg)}.v16-social-grid>img{width:100%;height:116px;object-fit:cover;background:#eeebe4}.v16-social-type{background:#b46b4b;color:#fff7ec;padding:16px;font-size:25px;line-height:.9;letter-spacing:-.06em;display:flex;flex-direction:column;justify-content:center}.v16-social-type i{font-family:var(--serif);font-weight:400}.v16-social-type small{font-size:6px;line-height:1.5;letter-spacing:.1em;margin-top:12px}.v16-social-olive{background:#5b6654}.v16-social-olive small{margin:0 0 12px}
.v16-search{width:100%;background:#f6f4ee;padding:19px;box-shadow:0 16px 25px #23272513;transform:rotate(-2deg)}.v16-search>span{font-size:7px;letter-spacing:.14em;color:#667060}.v16-searchbar{display:flex;align-items:center;gap:10px;border:1px solid #d8d9ce;border-radius:25px;margin:13px 0;padding:9px;font-size:15px}.v16-searchbar span{font-size:8px}.v16-product{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center}.v16-product img{width:100%;height:115px;object-fit:cover}.v16-product small{font-size:6px;letter-spacing:.08em}.v16-product strong{display:block;font-size:22px;font-weight:400;line-height:1.05;margin:7px 0}.v16-product i{font-family:var(--serif);color:#7e705d}.v16-product p{font-size:7px;line-height:1.6;margin:0}.v16-search-foot{display:flex;justify-content:space-between;font-size:6px;letter-spacing:.1em;margin-top:15px;border-top:1px solid #deded4;padding-top:10px}
.v16-brand-board{position:relative;width:92%;height:230px}.v16-brand-board>img:first-child{position:absolute;top:0;left:0;width:72%;height:180px;object-fit:cover;transform:rotate(-7deg);box-shadow:0 15px 30px #23272522}.v16-brand-board>img:nth-child(2){position:absolute;right:0;bottom:5px;width:63%;height:145px;object-fit:cover;transform:rotate(8deg);box-shadow:0 10px 20px #23272522}.v16-swatches{display:flex;position:absolute;bottom:-5px;left:0;gap:4px}.v16-swatches span{width:24px;height:24px;background:#f8f1e7;border:1px solid #23272510}.v16-swatches span:nth-child(2){background:#b4694a}.v16-swatches span:nth-child(3){background:#67705c}.v16-swatches span:nth-child(4){background:#3a342d}
.v16-slide--social{background:#e9e1d7}.v16-slide--seo{background:#dce1d7}.v16-slide--brand{background:#e9dcd0}
.hero--editorial .hero-editorial-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:44px;padding-top:30px;padding-bottom:28px}
.hero--editorial .hero-title{font-size:clamp(42px,4.4vw,65px);white-space:normal}.hero--editorial .hero-index{padding-top:42px}.hero-editorial-lead{max-width:370px}.hero-editorial-actions{flex-wrap:wrap}
.home-selected-work{padding-top:32px}.home-selected-head{margin-bottom:24px}
.v16-project-nav{padding-top:27px;padding-bottom:30px}.v16-project-nav-head{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.08em;margin-bottom:17px}.v16-project-nav-head>a{letter-spacing:0;color:#925334}.v16-project-links{display:flex;gap:10px;overflow-x:auto;padding:3px 3px 12px;scroll-snap-type:x proximity}.v16-project-links>a{display:flex;align-items:center;gap:10px;flex:0 0 195px;border:1px solid #dadbd3;padding:9px;background:var(--white);scroll-snap-align:start;transition:border-color .25s,transform .25s}.v16-project-links>a:hover{transform:translateY(-2px);border-color:var(--accent)}.v16-project-links img{width:49px;height:53px;object-fit:cover}.v16-project-links>a>span{font-size:11px;line-height:1.4}.v16-project-links small{display:block;font-size:8px;color:#8b664e;margin-bottom:4px}
.v16-project-cta{padding:55px 0;background:#e9e6dd}.v16-project-cta>.wrap{display:flex;align-items:center;justify-content:space-between;gap:25px}.v16-project-cta h2{font-size:clamp(29px,3.5vw,48px);font-weight:400;letter-spacing:-.05em;margin:17px 0 0;line-height:1.12}.v16-project-cta h2 em{font-family:var(--serif);color:var(--accent)}.v16-project-cta span{font-size:10px;letter-spacing:.12em}
.advice-sticky nav a{font-size:12px;line-height:1.55;color:#535e53;padding:4px 0}.advice-sticky nav a:hover{color:#925334;text-decoration:underline}.v16-reading{font-size:14px;line-height:1.8;padding:20px 0;border-top:1px solid var(--line)}.v16-reading a{color:#925334;text-decoration:underline;text-underline-offset:3px}.advice-inline-service>div>a:last-child{background:var(--ink);color:var(--paper);padding:12px 16px}.advice-inline-service>div{align-items:center}
.floating-contact{box-shadow:0 6px 22px #20272314;border-radius:4px;bottom:22px}.floating-contact-overline{letter-spacing:.09em}
@media(max-width:1100px){.hero--editorial .hero-editorial-layout{gap:25px}.v16-slide{padding-left:20px;padding-right:20px}.v16-scene{padding-left:0;padding-right:0}.v16-controls{left:20px;right:20px}.hero--editorial .hero-title{font-size:clamp(38px,4.6vw,56px)}}
@media(max-width:860px){.hero--editorial .hero-editorial-layout{grid-template-columns:1fr;gap:25px}.hero--editorial .hero-index{padding-top:22px}.hero--editorial .hero-title{font-size:clamp(39px,7vw,61px)}.hero-editorial-lead{max-width:550px}.v16-slider.is-ready{min-height:540px}.v16-slide{min-height:540px}.v16-scene{height:260px;max-width:460px;margin:auto}.v16-slide-copy{max-width:460px;margin:auto}.v16-slide-copy h2{font-size:35px}.v16-concept{max-width:460px;margin:18px auto 0}.v16-article-side{display:block;grid-row:1}.v16-article-side .advice-sticky{position:static}.v16-article-side .advice-sticky nav{display:grid;grid-template-columns:1fr 1fr}.advice-article-shell{gap:25px}}
@media(max-width:600px){.v16-slider.is-ready,.v16-slide{min-height:515px}.v16-slide{padding-top:18px}.v16-scene{height:245px;padding-top:22px}.v16-slide-copy h2{font-size:30px}.v16-slide-copy p{font-size:12px;max-width:300px}.v16-slide-top{font-size:8px}.v16-concept{font-size:6px}.v16-web-body strong{font-size:25px}.v16-web-nav{padding:12px}.v16-web-body>div:first-child{padding:16px}.v16-project-nav-head{flex-direction:column;gap:10px}.v16-project-cta>.wrap{align-items:start;flex-direction:column}.v16-project-links>a{flex-basis:178px}.v16-article-side .advice-sticky nav{grid-template-columns:1fr;gap:7px}.floating-contact{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:9px 12px;gap:10px}.floating-contact-overline{display:none}.floating-contact-title{font-size:17px}.hero--editorial .hero-title{font-size:clamp(37px,10vw,53px)}.home-selected-work{padding-top:25px}}
@media(prefers-reduced-motion:reduce){.v16-slider.is-ready .v16-slide{transition:none}.v16-project-links>a{transition:none}}
@media print{.v16-controls,.v16-project-nav{display:none!important}.v16-slider.is-ready .v16-slide{position:relative;visibility:visible;opacity:1}}
.v16-search{transform:rotate(-2deg) scale(.91)}
