/* AttoVa V5 — logos droits et rythme typographique.
   Ajustements de présentation uniquement : les logos et les photos d'origine
   sont conservés, sans retouche ni redessin. */

/* Identité : aucune inclinaison ni déformation ajoutée aux logos. */
.brand, .footer-brand, .brand-disk, .hero-art-label,
.agency-logo-card, .agency-link .icon,
.brand img, .brand-disk img, .sticky-contact img, .agency-logo-card img {
  transform: none;
  rotate: none;
}
.brand img, .brand-disk img, .sticky-contact img, .agency-logo-card img {
  object-fit: contain;
  object-position: center;
}
.brand strong { display: inline-block; line-height: 1.16; }
.brand small, .footer-brand small { line-height: 1.4; }
.service-icon { align-self: flex-start; }
.service-icon > .icon { display: block; transform: none; rotate: none; }
.icon { flex-shrink: 0; }

/* Titres plus lisibles, sans lettres ni lignes trop resserrées. */
body { word-spacing: normal; }
h1, h2 { letter-spacing: -.028em; line-height: 1.18; }
h3 { letter-spacing: -.015em; line-height: 1.32; }
.hero h1 { line-height: 1.12; letter-spacing: -.032em; }
.service-hero h1, .local-page-hero h1,
.contact-intro h1, .contact-intro h2, .gallery-page-intro h1 {
  line-height: 1.16;
  letter-spacing: -.028em;
}
.eyebrow { line-height: 1.8; }
.hero-description, .lead { line-height: 1.8; }
.hero-art-label strong { line-height: 1.45; letter-spacing: 0; }
.hero-art-label small { line-height: 1.65; }
.button, .text-link { line-height: 1.45; }
.button-row { gap: 12px; }

/* Empêcher les colonnes d'imposer une largeur supérieure à leur écran. */
.section-heading > *, .service-family-heading > *, .services-grid > *,
.service-hero > *, .article-layout > *, .contact-layout > *,
.footer-grid > *, .agency-feature > * { min-width: 0; }
.section-heading { column-gap: clamp(24px, 3.4vw, 48px); row-gap: 22px; }
.section-heading > p { margin-bottom: 0; line-height: 1.8; }
.service-family-heading { align-items: center; }
.service-family-heading h3 { line-height: 1.32; letter-spacing: -.018em; }
.service-family-heading > div { min-width: 0; }

/* Cartes : marges et icônes uniformes ; pied des cartes toujours aligné. */
.service-card-top { margin-bottom: 24px; }
.service-card h3 { line-height: 1.32; letter-spacing: -.018em; margin-bottom: 12px; }
.service-card > p { line-height: 1.75; margin-bottom: 26px; }
.card-link { gap: 10px; line-height: 1.5; }
.card-link .icon { width: 18px; height: 18px; }
.services-note { line-height: 1.8; }

/* Le bloc logo conserve une vraie marge entre le disque et sa légende. */
.process-brand { flex-direction: column; padding: 36px 32px; gap: 24px; }
.brand-disk { flex: 0 0 auto; position: relative; z-index: 1; }
.brand-disk img { border-radius: 50%; }
.process-caption { position: relative; z-index: 1; left: auto; bottom: auto; align-self: flex-start; }
.process-caption strong { line-height: 1.3; letter-spacing: -.018em; }
.steps h3 { line-height: 1.4; margin-bottom: 9px; }
.steps p { line-height: 1.8; }
.prose h2 { line-height: 1.3; margin-bottom: 20px; letter-spacing: -.02em; }
.prose p { line-height: 1.85; }
.prose section > :last-child { margin-bottom: 0; }
.sticky-contact h2 { line-height: 1.25; }
.sticky-contact > img { margin-inline: auto; margin-bottom: 22px; }
.faq-list summary { line-height: 1.6; gap: 16px; }
.faq-list details p { line-height: 1.85; margin-top: 16px; }

/* Formulaire et contacts : textes d'aide aérés, libellés non tassés. */
.form-heading h3 { line-height: 1.3; margin-bottom: 12px; }
.form-heading p { line-height: 1.8; }
.form-heading p[data-service-intro] { min-height: 0; }
.field { margin-bottom: 18px; }
.field label { line-height: 1.6; margin-bottom: 8px; }
.form-note, .form-delivery-note, .privacy-check { line-height: 1.8; }
.contact-email, .business-address { overflow-wrap: anywhere; }
.contact-large { line-height: 1.4; }
.business-address { line-height: 1.85; }
.footer-grid-expanded > div > a:not(.footer-brand) { line-height: 1.75; overflow-wrap: break-word; }
.footer-grid-expanded a[href^="mailto:"], .footer-address { overflow-wrap: anywhere; }
.footer-grid-expanded h2 { line-height: 1.6; margin-bottom: 18px; min-height: 0; }
.footer-grid p { margin-top: 0; }
.footer-bottom, .agency-credit { line-height: 1.8; }
.agency-credit { row-gap: 6px; column-gap: 8px; }

/* Galerie : titres et légendes lisibles, photos inchangées. */
.realisation-card h3 { line-height: 1.35; letter-spacing: -.015em; }
.realisation-description { line-height: 1.75; }
.lightbox-brand { line-height: 1.3; }
.lightbox-bottom h2 { line-height: 1.4; }

@media (max-width: 900px) {
  .nav-dropdown-expanded a { line-height: 1.6; gap: 10px; }
  .nav-group-title { line-height: 1.75; }
}
@media (max-width: 700px) {
  h2 { line-height: 1.22; }
  .hero h1 { line-height: 1.13; }
  .hero-description { line-height: 1.85; }
  .hero .eyebrow { letter-spacing: .09em; }
  .hero-art-label { transform: none; bottom: 32px; }
  .hero-details { line-height: 1.8; row-gap: 9px; }
  .section-heading { row-gap: 20px; margin-bottom: 30px; }
  .service-family-heading { align-items: flex-start; gap: 12px; }
  .service-family-heading > div { gap: 12px; }
  .service-family-heading h3 { line-height: 1.4; }
  .services-grid, .creative-family .services-grid { gap: 14px; }
  .service-card, .creative-family .service-card { padding: 24px 18px; min-height: 265px; }
  .service-card-top { margin-bottom: 22px; }
  .service-card h3, .creative-family .service-card h3 {
    font-size: 1.1rem;
    line-height: 1.35;
    min-height: 2.7em;
    margin-bottom: 12px;
  }
  .service-card > p, .creative-family .service-card > p { font-size: .82rem; line-height: 1.75; }
  .card-link, .creative-family .card-link { font-size: .72rem; line-height: 1.5; gap: 8px; }
  .card-link .icon { width: 16px; height: 16px; }
  .process-brand { padding: 28px 24px; gap: 24px; }
  .process-caption { left: auto; bottom: auto; }
  .process-caption strong { line-height: 1.35; }
  .service-hero h1 { font-size: clamp(2rem, 8.2vw, 2.65rem); line-height: 1.2; }
  .contact-page .contact-intro h1 { font-size: clamp(2.1rem, 9vw, 3rem); line-height: 1.18; }
  .contact-intro h2 { font-size: clamp(2.1rem, 8.8vw, 2.8rem); line-height: 1.18; }
  .gallery-page-intro h1 { font-size: clamp(2.2rem, 9vw, 2.95rem); line-height: 1.16; }
  .prose h2 { line-height: 1.3; }
  .prose p { line-height: 1.8; }
  .related-section .service-card h3 { min-height: 0; }
  .footer-grid-expanded { gap: 32px 22px; }
  .footer-grid-expanded > div > a:not(.footer-brand) { font-size: .78rem; }
  .footer-grid-expanded h2 { line-height: 1.6; }
  .form-note, .form-delivery-note { font-size: .73rem; }
  .realisation-card h3 { line-height: 1.4; }
}
@media (max-width: 520px) {
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  .form-heading h3 { font-size: 1.3rem; }
  .field label { font-size: .82rem; }
  .field .optional { font-size: .72rem; }
}
@media (max-width: 380px) {
  .all-services .services-grid, .creative-family .services-grid { grid-template-columns: 1fr; }
  .service-card, .creative-family .service-card { min-height: 225px; }
  .service-card h3, .creative-family .service-card h3 { min-height: 0; font-size: 1.16rem; }
  .card-link, .creative-family .card-link { font-size: .77rem; }
  .hero h1 { font-size: 2.18rem; }
  .hero .button-row > .button { flex: 1 1 auto; }
  .contact-large { font-size: 1.5rem; gap: 10px; }
  .lead-form { padding: 24px 18px; }
}
@media print {
  .brand-disk, .hero-art-label { transform: none; }
  h1, h2, h3 { break-after: avoid; }
}
