/* Adèle Martinez — feuille de style du site.
   Parties 1 à 9 : design system exporté de Claude Design (tokens, base, composants), repris tel quel.
   Partie 10 : compléments propres au site de production. */


/* ==========================================================================
   1. tokens/fonts.css
   ========================================================================== */
/* Polices auto-hébergées (Google Fonts, latin + latin-ext). Aucune requête vers Google : rien à déclarer côté RGPD.
   Cormorant Garamond : nom, noms de projets, titres et texte. Archivo élargi (wdth 125) : menu, repères, légendes. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url('../fonts/Archivo-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url('../fonts/Archivo-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url('../fonts/CormorantGaramond-Italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url('../fonts/CormorantGaramond-Italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/CormorantGaramond-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/CormorantGaramond-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}


/* ==========================================================================
   2. tokens/colors.css
   ========================================================================== */
/* Couleurs — base relevée dans le book (fond rgb 243 239 231, texte et filets noirs).
   Les accents viennent des projets d'Adèle et ne servent qu'au survol, au focus et à la sélection. */
:root{
  /* Base */
  --am-creme:#F3EFE7;
  --am-creme-fonce:#E9E3D8;
  --am-creme-clair:#F8F5F0;
  --am-beige:#E3D7C3;
  --am-noir:#000000;
  --am-gris:#6B665D;
  --am-gris-clair:#8C8679;

  /* Accents (ponctuels) */
  --am-olive:#5B5A22;
  --am-terracotta:#9E4128;

  /* États */
  --am-erreur:#9E2B25;
  --am-succes:#3F5A2A;

  /* Alias sémantiques */
  --surface-page:var(--am-creme);
  --surface-sunken:var(--am-creme-fonce);
  --surface-field:var(--am-creme-clair);
  --surface-inverse:var(--am-noir);
  --text-primary:var(--am-noir);
  --text-secondary:var(--am-gris);
  --text-placeholder:var(--am-gris-clair);
  --text-inverse:var(--am-creme);
  --text-accent:var(--am-olive);
  --text-error:var(--am-erreur);
  --text-success:var(--am-succes);
  --rule-color:var(--am-noir);
  --focus-ring:var(--am-olive);
  --selection-bg:var(--am-olive);
  --selection-fg:var(--am-creme);
}


/* ==========================================================================
   3. tokens/typography.css
   ========================================================================== */
/* Typographie — deux familles :
   Principale (Cormorant Garamond) : nom du studio, noms de projets, grands titres ET tout texte courant en minuscules
   (paragraphes, libellés de formulaire, pied de page).
   Secondaire (Archivo élargi, font-stretch: expanded) : uniquement les petites capitales — menu, catégories, lieux, boutons. */
:root{
  --font-display:'Cormorant Garamond',Garamond,'Times New Roman',serif;
  --font-text:'Archivo','Helvetica Neue',Arial,sans-serif;

  --fw-light:300;
  --fw-regular:400;
  --fw-medium:500;

  /* Tailles */
  --fs-wordmark:var(--fs-name);
  --fs-display:84px;
  --fs-title:52px;
  --fs-heading:32px;
  --fs-name:30px;
  --fs-nav:11.5px;
  --fs-label:10.5px;
  --fs-micro:9.5px;
  --fs-lead:22px;
  --fs-body:18px;
  --fs-small:16px;

  /* Interlignes */
  --lh-tight:1;
  --lh-title:1.05;
  --lh-snug:1.3;
  --lh-body:1.6;

  /* Approche */
  --tracking-wordmark:var(--tracking-name);
  --tracking-nav:.16em;
  --tracking-label:.14em;
  --tracking-name:.02em;
  --tracking-title:0;
  --tracking-text:.01em;

  /* Styles composés : font: var(--type-…) */
  --type-wordmark:var(--fw-medium) var(--fs-wordmark)/var(--lh-tight) var(--font-display);
  --type-display:var(--fw-medium) var(--fs-display)/var(--lh-tight) var(--font-display);
  --type-title:var(--fw-medium) var(--fs-title)/var(--lh-title) var(--font-display);
  --type-heading:var(--fw-medium) var(--fs-heading)/1.15 var(--font-display);
  --type-name:var(--fw-medium) var(--fs-name)/var(--lh-title) var(--font-display);
  --type-nav:var(--fw-medium) expanded var(--fs-nav)/var(--lh-tight) var(--font-text);
  --type-label:var(--fw-medium) expanded var(--fs-label)/var(--lh-snug) var(--font-text);
  --type-micro:var(--fw-medium) expanded var(--fs-micro)/var(--lh-snug) var(--font-text);
  --type-lead:var(--fw-regular) var(--fs-lead)/1.45 var(--font-display);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-display);
  --type-small:var(--fw-regular) var(--fs-small)/1.5 var(--font-display);
}


/* ==========================================================================
   4. tokens/spacing.css
   ========================================================================== */
/* Espacements et mise en page */
:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;
  --space-10:128px;

  --page-margin:48px;
  --page-margin-compact:20px;
  --content-max:1440px;
  --grid-gap-x:40px;
  --grid-gap-y:72px;
  --grid-gap-x-compact:16px;
  --grid-gap-y-compact:48px;
  --breakpoint-compact:760px;

  /* Formats d'image */
  --ratio-landscape:3 / 2;
  --ratio-portrait:4 / 5;
  --ratio-wide:16 / 9;
}


/* ==========================================================================
   5. tokens/borders.css
   ========================================================================== */
/* Filets et angles — filets noirs de 1 px, aucun arrondi, aucune ombre. */
:root{
  --rule-width:1px;
  --rule:var(--rule-width) solid var(--rule-color);
  --radius:0;
  --shadow:none;
  /* Frise : ondulation douce (une période = 120 × 22 px), utilisée en masque CSS */
  --am-wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='22' viewBox='0 0 120 22' preserveAspectRatio='none'%3E%3Cpath d='M0 3C22 3 38 19 60 19S98 3 120 3V22H0Z'/%3E%3C/svg%3E");
  --am-wave-w:120px;
  --am-wave-h:22px;
}


/* ==========================================================================
   6. tokens/motion.css
   ========================================================================== */
/* Mouvement — fondus lents et apparitions douces, jamais de rebond. */
:root{
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-fast:200ms;
  --dur-base:400ms;
  --dur-slow:800ms;
  --dur-crossfade:1200ms;
  --dur-slideshow:5000ms;
  --reveal-distance:16px;
}


/* ==========================================================================
   7. base/base.css
   ========================================================================== */
/* Réglages de base des éléments */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,p,figure,blockquote,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%}
a{color:var(--text-primary);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-accent)}
button{font:inherit;color:inherit}
::selection{background:var(--selection-bg);color:var(--selection-fg)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.am-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}


/* ==========================================================================
   8. base/layout.css
   ========================================================================== */
/* Mise en page. .am-site porte le conteneur « am » : les composants passent en version
   mobile selon la largeur de ce conteneur (container queries), pas celle de la fenêtre. */
.am-site{container:am / inline-size;position:relative;min-height:100%;background:var(--surface-page);color:var(--text-primary);font:var(--type-body);letter-spacing:var(--tracking-text)}
.am-container{padding-inline:var(--page-margin);max-width:var(--content-max);margin-inline:auto;box-sizing:border-box}
.am-section{padding-block:var(--space-9)}
.am-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--grid-gap-x);row-gap:var(--grid-gap-y)}
.am-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-8);row-gap:var(--grid-gap-y)}
.am-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--space-8);align-items:start}
.am-display{font:var(--type-display);letter-spacing:var(--tracking-title);text-wrap:balance}
.am-title{font:var(--type-title);letter-spacing:var(--tracking-title);text-wrap:balance}
.am-heading{font:var(--type-heading);letter-spacing:var(--tracking-name)}
.am-lead{font:var(--type-lead);letter-spacing:.01em;text-wrap:pretty}
.am-lowercase{text-transform:lowercase}
.am-prose{font:var(--type-body);letter-spacing:var(--tracking-text);text-wrap:pretty;max-width:62ch}
.am-prose p+p{margin-top:1em}
.am-center{text-align:center}

/* En-tête collant : .am-header-sticky (occupe sa place) ou .am-header-overlay (hauteur nulle, passe au-dessus d'un bandeau) */
.am-header-sticky{position:sticky;top:0;z-index:30}
.am-header-overlay{position:sticky;top:0;height:0;z-index:30}

/* Apparition au défilement : ajouter .is-visible (IntersectionObserver) */
.am-reveal{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.am-reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.am-reveal{opacity:1;transform:none}}

@keyframes am-fade-in{from{opacity:0}to{opacity:1}}
@keyframes am-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@container am (max-width:760px){
  .am-container{padding-inline:var(--page-margin-compact)}
  .am-section{padding-block:var(--space-8)}
  .am-grid-2,.am-grid-3{grid-template-columns:minmax(0,1fr);column-gap:var(--grid-gap-x-compact);row-gap:var(--grid-gap-y-compact)}
  .am-split{grid-template-columns:minmax(0,1fr);row-gap:var(--space-6)}
  .am-display{font-size:52px}
  .am-title{font-size:38px}
  .am-heading{font-size:27px}
  .am-lead{font-size:19px}
}


/* ==========================================================================
   9. base/components.css
   ========================================================================== */
/* ===== Repères ===== */
.am-label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.am-label--muted{color:var(--text-secondary)}
.am-label--micro{font:var(--type-micro);letter-spacing:var(--tracking-label)}
.am-rule{border:0;border-top:var(--rule);margin:0;height:0}

/* ===== Boutons ===== */
.am-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;min-height:48px;padding:16px 30px 15px;border:var(--rule);border-radius:var(--radius);background:var(--surface-inverse);color:var(--text-inverse);font:var(--type-label);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.am-btn:hover{background:transparent;color:var(--text-primary)}
.am-btn--secondary{background:transparent;color:var(--text-primary)}
.am-btn--secondary:hover{background:var(--surface-inverse);color:var(--text-inverse)}
.am-btn--sm{min-height:36px;padding:10px 16px 9px;font-size:var(--fs-micro)}
.am-btn--block{display:flex;width:100%}
.am-btn:disabled,.am-btn[aria-disabled="true"]{opacity:.4;cursor:not-allowed;pointer-events:none}
.am-btn__arrow{transition:transform var(--dur-fast) var(--ease-out)}
.am-btn:hover .am-btn__arrow{transform:translateX(4px)}

/* ===== Liens ===== */
.am-link{display:inline-flex;align-items:center;gap:10px;padding:0 0 6px;border:0;border-bottom:var(--rule-width) solid currentColor;background:none;color:var(--text-primary);font:var(--type-nav);letter-spacing:var(--tracking-nav);text-transform:uppercase;text-decoration:none;cursor:pointer}
.am-link:hover{color:var(--text-accent)}
.am-link--quiet{border-bottom-color:transparent}
.am-link--quiet:hover{border-bottom-color:currentColor}
.am-link--body{display:inline;padding-bottom:0;font:inherit;letter-spacing:inherit;text-transform:none}
.am-link__arrow{transition:transform var(--dur-fast) var(--ease-out)}
.am-link:hover .am-link__arrow{transform:translateX(4px)}

/* ===== Étiquettes ===== */
.am-tag{display:inline-flex;align-items:center;gap:10px;min-height:36px;box-sizing:border-box;padding:8px 12px 7px;border:var(--rule-width) solid transparent;border-radius:var(--radius);background:none;color:var(--text-primary);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}
.am-tag:hover{border-color:var(--rule-color)}
.am-tag--outline{border-color:var(--rule-color)}
.am-tag[aria-pressed="true"],.am-tag[aria-checked="true"]{background:var(--surface-inverse);color:var(--text-inverse);border-color:var(--surface-inverse)}
.am-tag__count{opacity:.65}

/* ===== Sélecteur de langue ===== */
.am-lang{display:inline-flex;align-items:center;gap:10px;font:var(--type-nav);letter-spacing:var(--tracking-nav)}
.am-lang a,.am-lang button{padding:0 0 4px;border:0;border-bottom:var(--rule-width) solid transparent;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:uppercase;text-decoration:none;opacity:.6;cursor:pointer;transition:opacity var(--dur-fast)}
.am-lang a:hover,.am-lang button:hover{opacity:1}
.am-lang [aria-current="true"]{opacity:1;border-bottom-color:currentColor}

/* ===== En-tête : nom, frise, menu =====
   Le nom a la taille des noms de projets. Le menu se place toujours sous la frise ondulée. */
.am-header{padding:30px var(--page-margin) 0;color:var(--text-primary);background-color:transparent;transition:background-color var(--dur-base) var(--ease-out)}
.am-header--solid{background-color:var(--surface-page);padding-bottom:18px}
.am-header--bare{padding-bottom:18px}
.am-header__brand{display:block;width:max-content;max-width:100%;margin:0 auto;padding-left:var(--tracking-wordmark);color:var(--text-primary);font:var(--type-wordmark);letter-spacing:var(--tracking-wordmark);text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:color 250ms var(--ease-out)}
.am-header__brand:hover{color:var(--text-primary)}
.am-header .am-header__brand--light,.am-header .am-header__brand--light:hover{color:var(--am-creme)}
.am-frieze{display:block;height:var(--am-wave-h);margin:26px calc(var(--page-margin) * -1) 0;background:var(--am-beige);-webkit-mask:var(--am-wave) 0 0 / var(--am-wave-w) var(--am-wave-h) repeat-x;mask:var(--am-wave) 0 0 / var(--am-wave-w) var(--am-wave-h) repeat-x}
.am-sitenav{padding:22px var(--page-margin) 20px;display:flex;justify-content:center;font:var(--type-nav);letter-spacing:var(--tracking-nav);text-transform:uppercase}
.am-header .am-sitenav{padding-inline:0}
.am-header-sticky .am-header{background-color:var(--surface-page)}
/* Variante « bande » (Missions, À propos, Contact) : nom + menu sur la teinte du pied de page, bord bas droit (pas de frise) */
.am-header--band{padding:0}
.am-header__band{padding:30px var(--page-margin) 0}
.am-header--band .am-sitenav{padding:22px var(--page-margin) 20px}
/* Accueil : le menu placé sous la frise du rideau reste collé sous le nom */
.am-curtain > .am-sitenav{position:sticky;top:78px;z-index:29;background:var(--surface-page)}
.am-sitenav__menu-btn{display:none;padding:6px 0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:uppercase;cursor:pointer}
.am-nav{display:flex;justify-content:center;gap:48px;font:var(--type-nav);letter-spacing:var(--tracking-nav);text-transform:uppercase}
.am-nav a{padding-bottom:5px;border-bottom:var(--rule-width) solid transparent;color:var(--text-primary);text-decoration:none;transition:border-color var(--dur-fast),color var(--dur-fast)}
.am-nav a:hover{color:var(--text-accent);border-bottom-color:currentColor}
.am-nav a[aria-current="page"]{border-bottom-color:currentColor}

/* Menu mobile plein écran */
.am-menu{position:fixed;inset:0;overflow-y:auto;z-index:100;box-sizing:border-box;padding:24px var(--page-margin-compact) 32px;background:var(--surface-page);color:var(--text-primary);display:flex;flex-direction:column;animation:am-fade-in var(--dur-base) var(--ease-out)}
.am-menu__top{display:flex;justify-content:space-between;align-items:center;font:var(--type-nav);letter-spacing:var(--tracking-nav)}
.am-menu__close{padding:6px 0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:uppercase;cursor:pointer;color:inherit}
.am-menu__list{margin-top:56px;border-top:var(--rule)}
.am-menu__list a{display:flex;justify-content:space-between;align-items:baseline;padding:18px 0 16px;border-bottom:var(--rule);font:var(--fw-medium) 34px/1 var(--font-display);text-transform:uppercase;color:var(--text-primary);text-decoration:none}
.am-menu__list a span{font:var(--type-micro);letter-spacing:var(--tracking-label)}
.am-menu__foot{margin-top:40px;display:grid;gap:10px;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.am-menu__foot a[href^="mailto:"]{text-transform:lowercase;letter-spacing:.01em;font:var(--type-body)}

/* ===== Pied de page : frise ondulée en haut, newsletter à gauche, coordonnées à droite ===== */
.am-footer{position:relative;margin-top:var(--am-wave-h);padding:64px var(--page-margin) 56px;background:var(--surface-sunken);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:40px}
.am-footer::before{content:'';position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:var(--am-wave-h);background:var(--surface-sunken);-webkit-mask:var(--am-wave) 0 100% / var(--am-wave-w) var(--am-wave-h) repeat-x;mask:var(--am-wave) 0 100% / var(--am-wave-w) var(--am-wave-h) repeat-x}
.am-newsletter{display:grid;gap:14px;max-width:420px}
.am-newsletter__label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.am-newsletter__row{display:flex}
.am-newsletter__row .am-input{min-height:48px;padding:12px 14px;border-right:0}
.am-newsletter__row .am-btn{flex:none;min-height:48px;padding-inline:20px}
.am-newsletter__done{font:var(--type-body);text-transform:lowercase}
.am-footer__info{display:grid;gap:4px;justify-items:start;font:var(--type-lead);letter-spacing:.01em;text-transform:lowercase}
.am-footer__info a{color:inherit;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.am-footer__info a:hover{color:var(--text-accent)}
.am-footer__legal{margin-top:16px;font:var(--type-micro);letter-spacing:var(--tracking-label);text-transform:uppercase}
.am-footer .am-footer__legal a{text-decoration:none}

/* ===== Légende de projet (catégorie · NOM · lieu) — colonne catégorie fixe : tous les noms s'alignent ===== */
.am-caption{margin-top:16px;display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:start;column-gap:24px;color:inherit;transition:color var(--dur-base) var(--ease-out)}
.am-caption__cat,.am-caption__place{padding-top:9px;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.am-caption__cat{text-wrap:balance}
.am-caption__place{text-align:right;white-space:nowrap}
.am-caption__name{min-width:0;font:var(--type-name);letter-spacing:var(--tracking-name);text-transform:uppercase;text-wrap:balance}
.am-caption--stack{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
.am-caption--stack .am-caption__cat{grid-column:1;grid-row:1;padding-top:0}
.am-caption--stack .am-caption__place{grid-column:2;grid-row:1;padding-top:0}
.am-caption--stack .am-caption__name{grid-column:1 / -1;grid-row:2}
.am-card,.am-slideshow__panel{container:card / inline-size}
@container card (max-width:540px){
  .am-caption{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
  .am-caption .am-caption__cat{grid-column:1;grid-row:1;padding-top:0}
  .am-caption .am-caption__place{grid-column:2;grid-row:1;padding-top:0}
  .am-caption .am-caption__name{grid-column:1 / -1;grid-row:2}
}

/* ===== Carte projet (images alignées, même format) ===== */
.am-card{display:block;color:var(--text-primary);text-decoration:none}
.am-card__media{position:relative;aspect-ratio:var(--ratio,3 / 2);overflow:hidden;background:var(--surface-sunken)}
.am-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity var(--dur-crossfade) var(--ease-out),transform 1600ms var(--ease-out)}
.am-card__img--alt{opacity:0}
.am-card:hover .am-card__img--alt{opacity:1}
.am-card:hover .am-card__img{transform:scale(1.025)}
.am-card:hover .am-caption{color:var(--text-accent)}

/* ===== Bandeau à image fixe + rideau festonné =====
   .am-band reste collé en haut (l'image ne bouge pas) ; le contenu .am-curtain remonte par-dessus,
   bordé d'un double feston crème / beige (petites arches). */
.am-band{position:sticky;top:0;z-index:0;height:var(--band-h,88vh);min-height:420px;overflow:hidden;background:var(--am-beige)}
.am-band__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.am-band::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.36) 0%,rgba(0,0,0,0) 34%,rgba(0,0,0,0) 62%,rgba(0,0,0,.22) 100%);pointer-events:none}
.am-band__caption{position:absolute;left:0;right:0;bottom:64px;z-index:1;padding:0 var(--page-margin-compact);text-align:center;color:var(--am-creme);font:var(--type-nav);letter-spacing:var(--tracking-nav);text-transform:uppercase}
.am-curtain{position:relative;z-index:1;background:var(--surface-page)}
.am-curtain::before{content:'';position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:var(--am-wave-h);pointer-events:none;background:var(--surface-page);-webkit-mask:var(--am-wave) 0 100% / var(--am-wave-w) var(--am-wave-h) repeat-x;mask:var(--am-wave) 0 100% / var(--am-wave-w) var(--am-wave-h) repeat-x}

/* ===== Diaporama d'accueil ===== */
.am-slideshow{position:relative}
.am-slideshow__panels{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));column-gap:var(--grid-gap-x)}
.am-slideshow__panel{margin:0}
.am-slideshow__media{position:relative;display:block;aspect-ratio:var(--ratio,4 / 5);overflow:hidden;background:var(--surface-sunken)}
.am-slideshow__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity var(--dur-crossfade) var(--ease-in-out),transform 7000ms var(--ease-out)}
.am-slideshow__img.is-active{opacity:1;transform:scale(1)}
.am-slideshow__panel:nth-child(2) .am-slideshow__img{transition-delay:350ms,350ms}
.am-slideshow__panel .am-caption{animation:am-fade-in var(--dur-slow) var(--ease-out)}
.am-slideshow__bar{margin-top:28px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;font:var(--type-label);letter-spacing:var(--tracking-label)}
.am-slideshow__progress{position:relative;height:1px;background:var(--surface-sunken);overflow:hidden}
.am-slideshow__progress i{position:absolute;inset:0;background:var(--rule-color);transform-origin:left center;animation-name:am-progress;animation-timing-function:linear;animation-fill-mode:forwards}
.am-slideshow:hover .am-slideshow__progress i{animation-play-state:paused}
.am-slideshow__ctrls{display:flex;gap:8px}
.am-slideshow__ctrls button{min-width:36px;min-height:36px;padding:0;border:var(--rule-width) solid transparent;background:none;font:var(--type-label);cursor:pointer;transition:border-color var(--dur-fast)}
.am-slideshow__ctrls button:hover{border-color:var(--rule-color)}

/* ===== Mission (colonne : photo, titre, texte) ===== */
.am-mission{display:grid;justify-items:center;text-align:center;align-content:start}
.am-mission__media{width:100%}
.am-mission__title{margin-top:30px;font:var(--type-heading);letter-spacing:var(--tracking-name)}
.am-mission__text{margin-top:16px;max-width:38ch;font:var(--type-body);letter-spacing:.01em;text-wrap:pretty}

/* ===== Message ===== */
.am-notice{display:grid;gap:8px;padding:20px 22px;border:var(--rule);font:var(--type-small)}
.am-notice__title{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.am-notice--success .am-notice__title{color:var(--text-success)}
.am-notice--error{border-color:var(--am-erreur)}
.am-notice--error .am-notice__title{color:var(--text-error)}

/* ===== Formulaires : libellé en serif + « (obligatoire) », champs encadrés ===== */
.am-field{display:grid;gap:10px;align-content:start;min-width:0}
.am-field__label{font:var(--fw-regular) 19px/1.3 var(--font-display);letter-spacing:.04em}
.am-field__req{margin-left:8px;color:var(--text-secondary)}
.am-field__hint{font:var(--type-small);color:var(--text-secondary)}
.am-field__error{font:var(--type-small);color:var(--text-error)}
.am-input,.am-select,.am-textarea{width:100%;box-sizing:border-box;min-height:52px;padding:13px 16px;border:var(--rule);border-radius:var(--radius);background:var(--surface-field);color:var(--text-primary);font:var(--fw-regular) 18px/1.4 var(--font-display);letter-spacing:.02em;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.am-textarea{min-height:170px;resize:vertical}
.am-input::placeholder,.am-textarea::placeholder{color:var(--text-placeholder)}
.am-input:focus,.am-select:focus,.am-textarea:focus{border-color:var(--focus-ring);box-shadow:inset 0 0 0 1px var(--focus-ring)}
.am-input[aria-invalid="true"],.am-select[aria-invalid="true"],.am-textarea[aria-invalid="true"]{border-color:var(--am-erreur)}
.am-select-wrap{position:relative;display:block}
.am-select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer}
.am-select-wrap::after{content:'↓';position:absolute;right:16px;top:50%;transform:translateY(-50%);font:var(--type-label);pointer-events:none}
.am-check{display:flex;align-items:center;gap:14px;font:var(--fw-regular) 18px/1.4 var(--font-display);letter-spacing:.03em;cursor:pointer}
.am-check input{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin:0;border:var(--rule);border-radius:0;background:transparent;display:grid;place-content:center;cursor:pointer}
.am-check input[type="radio"]{border-radius:50%}
.am-check input:checked{background:var(--surface-inverse)}
.am-check input[type="checkbox"]:checked::after{content:'';width:5px;height:10px;margin-top:-2px;border:solid var(--text-inverse);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.am-check input[type="radio"]:checked{background:transparent}
.am-check input[type="radio"]:checked::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--surface-inverse)}
.am-check input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.am-choices{display:flex;flex-wrap:wrap;gap:8px}

/* ===== Version mobile (largeur du conteneur .am-site) ===== */
@container am (max-width:760px){
  .am-header{padding:22px var(--page-margin-compact) 0}
  .am-header--solid,.am-header--bare{padding-bottom:14px}
  .am-header__brand{font-size:24px}
  .am-frieze{margin:18px calc(var(--page-margin-compact) * -1) 0}
  .am-header__band{padding:22px var(--page-margin-compact) 0}
  .am-header--band .am-sitenav{padding:16px var(--page-margin-compact) 14px}
  .am-curtain > .am-sitenav{top:60px}
  .am-sitenav{padding:16px var(--page-margin-compact) 14px}
  .am-sitenav .am-nav{display:none}
  .am-sitenav__menu-btn{display:inline-flex}
  .am-footer{padding:44px var(--page-margin-compact) 40px;grid-template-columns:minmax(0,1fr);gap:32px}
  .am-footer__info{font-size:19px}
  .am-caption{grid-template-columns:minmax(0,1fr) auto;row-gap:6px;margin-top:12px}
  .am-caption .am-caption__cat{grid-column:1;grid-row:1;padding-top:0;font-size:9.5px}
  .am-caption .am-caption__place{grid-column:2;grid-row:1;padding-top:0;font-size:9.5px}
  .am-caption .am-caption__name{grid-column:1 / -1;grid-row:2;font-size:24px}
  .am-band{min-height:360px}
  .am-slideshow__bar{margin-top:20px;gap:16px}
  .am-mission__title{margin-top:22px}
}


/* ==========================================================================
   10. Site — compléments au design system
   ========================================================================== */

/* Les ancres tiennent compte de l'en-tête collant (hauteur mesurée par site.js) */
html{scroll-padding-top:var(--header-h,0px)}
html.am-menu-open{overflow:hidden}

/* Lien d'évitement, visible au clavier */
.am-skip{position:absolute;left:var(--space-4);top:var(--space-4);z-index:200;padding:12px 18px 11px;background:var(--surface-inverse);color:var(--text-inverse);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;transform:translateY(-300%);transition:transform var(--dur-fast) var(--ease-out)}
.am-skip:focus,.am-skip:hover{transform:none;color:var(--text-inverse)}

/* Sans JavaScript, tout reste visible */
html:not(.js) .am-reveal{opacity:1;transform:none}
html:not(.js) .am-slideshow__ctrls{visibility:hidden}

/* Ouverture des pages : fondu lent */
.am-main{animation:am-fade-in var(--dur-slow) var(--ease-out)}
.am-main:focus{outline:none}

/* En-tête « bande » (Missions, À propos, Contact) : teinte du pied de page, bord bas droit */
.am-header-sticky .am-header--band{background-color:var(--surface-sunken)}

/* Menu mobile : fermé par défaut */
.am-menu[hidden]{display:none}

/* Diaporama : pause aussi quand le clavier est dedans */
.am-slideshow:focus-within .am-slideshow__progress i{animation-play-state:paused}

/* Accueil */
.am-home-slides{padding-top:var(--space-7)}
.am-section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px 16px;margin-bottom:var(--space-6)}
.am-section-head > *{white-space:nowrap}
.am-outro{padding-bottom:var(--space-9)}
.am-outro__inner{display:grid;justify-items:center;gap:var(--space-6);padding-top:var(--space-8);border-top:var(--rule);text-align:center}
.am-outro__inner .am-lead{max-width:40ch}

/* Pages intérieures */
.am-page{padding-top:var(--space-8);padding-bottom:var(--space-9)}
.am-page--grid{padding-top:var(--space-7)}

/* Projet : fiche, galerie, projet suivant */
.am-projet__intro{padding-top:var(--space-8)}
.am-projet__intro .am-title{margin-top:var(--space-3)}
.am-meta{margin:var(--space-6) 0 0;border-top:var(--rule)}
.am-meta__row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:baseline;padding:12px 0 11px;border-bottom:var(--rule)}
.am-meta dd{margin:0;font:var(--type-small)}
.am-gallery-section{padding-top:var(--space-9)}
.am-gallery{row-gap:var(--grid-gap-x)}
.am-gallery__wide{grid-column:1 / -1}
.am-next{display:grid;gap:var(--space-3);padding-top:var(--space-5);border-top:var(--rule)}
.am-next__title{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.am-next__arrow{transition:transform var(--dur-fast) var(--ease-out)}
.am-next:hover .am-next__arrow{transform:translateX(6px)}

/* Missions */
.am-missions__cta{margin-top:var(--space-9);display:flex;justify-content:center}

/* À propos : portrait collant à gauche, texte à droite */
.am-apropos{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.am-apropos__portrait{position:sticky;top:calc(var(--header-h,140px) + var(--space-6))}
.am-apropos__texte{display:grid;gap:var(--space-6);align-content:start}
.am-apropos__texte .am-prose{font-size:19px}

/* Contact */
.am-contact__head{display:grid;justify-items:center;gap:var(--space-6);text-align:center}
.am-contact__intro{max-width:54ch;display:grid;gap:10px}
.am-contact__body{max-width:920px;margin:var(--space-8) auto 0}
.am-form{display:grid;gap:var(--space-6)}
.am-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-6) var(--space-4)}
.am-form__choices{display:grid;gap:16px;padding-top:4px}
.am-form__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.am-form__foot{display:grid;gap:var(--space-4);justify-items:start}
.am-form__note{font:var(--type-small);color:var(--text-secondary)}
.am-form__note a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.am-form__status:empty{display:none}
.am-notice a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.am-btn[aria-busy="true"]{cursor:progress}

/* Newsletter : message d'échec */
.am-newsletter__error{font:var(--type-small);color:var(--text-error);text-transform:lowercase}

/* Pages de texte (mentions légales) */
.am-legal{max-width:720px;margin-inline:auto;display:grid;gap:var(--space-7)}
.am-legal section{display:grid;gap:var(--space-3)}
.am-legal h2{font:var(--type-heading);letter-spacing:var(--tracking-name)}
.am-legal p{text-wrap:pretty}
.am-legal a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.am-a-completer{background:#F1DFA6;padding:0 4px}

/* Messages courts (page introuvable, confirmations) */
.am-message{display:grid;justify-items:center;gap:var(--space-6);max-width:640px;margin-inline:auto;text-align:center}
.am-message__links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4) var(--space-7)}

@container am (max-width:760px){
  .am-page{padding-top:var(--space-7);padding-bottom:var(--space-8)}
  .am-page--grid{padding-top:var(--space-6)}
  .am-projet__intro{padding-top:var(--space-7)}
  .am-gallery-section{padding-top:var(--space-8)}
  .am-meta__row{grid-template-columns:84px minmax(0,1fr)}
  .am-section-head{margin-bottom:var(--space-5)}
  .am-outro{padding-bottom:var(--space-8)}
  .am-outro__inner{padding-top:var(--space-7)}
  .am-missions__cta{margin-top:var(--space-8)}
  .am-apropos{grid-template-columns:minmax(0,1fr)}
  .am-apropos__portrait{position:static}
  .am-contact__body{margin-top:var(--space-7)}
}


/* ==========================================================================
   11. WordPress — compléments propres au thème
   ========================================================================== */

/* Connecté : l'en-tête collant se place sous la barre d'administration */
.admin-bar .am-header-sticky,.admin-bar .am-header-overlay{top:var(--wp-admin--admin-bar--height,32px)}
.admin-bar .am-curtain > .am-sitenav{top:calc(78px + var(--wp-admin--admin-bar--height,32px))}
@container am (max-width:760px){
  .admin-bar .am-curtain > .am-sitenav{top:calc(60px + var(--wp-admin--admin-bar--height,46px))}
}
@media screen and (max-width:600px){
  .admin-bar .am-header-sticky,.admin-bar .am-header-overlay{top:0}
  .admin-bar .am-curtain > .am-sitenav{top:60px}
}

/* Texte masqué à l'écran mais lu par les lecteurs d'écran (classe utilisée par WordPress) */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Contenu venu de l'éditeur dans les colonnes de texte */
.am-prose > * + *{margin-top:1em}
.am-prose h2,.am-prose h3{font:var(--type-heading);letter-spacing:var(--tracking-name);margin-top:1.4em}
.am-prose ul,.am-prose ol{padding-left:1.2em}
.am-prose ul{list-style:disc}
.am-prose ol{list-style:decimal}
.am-prose a,.am-mission__text a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.am-outro__inner .am-lead > * + *{margin-top:.6em}

/* Pages de texte (mentions légales, nouvelles pages) */
.am-texte{max-width:720px;margin-inline:auto}
.am-texte > * + *{margin-top:var(--space-4)}
.am-texte h1{margin-bottom:var(--space-7)}
.am-texte h2{font:var(--type-heading);letter-spacing:var(--tracking-name);margin-top:var(--space-7)}
.am-texte h3{font:var(--fw-medium) 24px/1.2 var(--font-display);margin-top:var(--space-6)}
.am-texte p,.am-texte li{text-wrap:pretty}
.am-texte ul,.am-texte ol{padding-left:1.2em}
.am-texte ul{list-style:disc}
.am-texte ol{list-style:decimal}
.am-texte a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.am-texte img{height:auto}
.am-texte figure{margin-block:var(--space-6)}
.am-texte article + article{margin-top:var(--space-7)}
