/* ==========================================================================
   Celine Theret - refonte 2026
   CSS extrait des maquettes, prefixe `ct-` et scope sous `.ct-page`.
   Ne jamais editer directement dans l'admin WordPress : ce fichier est
   genere depuis les maquettes sources.
   ========================================================================== */

/* ---------- CADRE DE PAGE (point unique de reglage de la largeur) ----------
   Ces trois variables sont posees sur `:root` et non sur `.ct-content`, parce
   que le header et le pied de page, rendus par le plugin, vivent hors du
   wrapper et doivent lire les memes valeurs. Changer `--ct-cadre` ici change
   la largeur de TOUTE la page, navigation comprise.

   HISTORIQUE (pour comprendre pourquoi ce n'est plus un simple max()) :
   1200 px fixe a l'origine -> demande du 08/09 de la cliente : le cadre a
   80% de l'ecran plutot que 1200 px fixes, pour reduire les marges vides sur
   grand moniteur -> pose en max(1200px, 80vw), avec un PLANCHER a 1200 px
   pour ne jamais retrecir la reference deja approuvee (1.9.2) -> le seuil de
   croisement (1500 px) s'est revele trop proche de l'ecran de la cliente
   (1512 px) pour que le changement soit visible -> abaisse a 1300 px, donc
   92,31vw a la place de 80vw (1.9.3) -> la cliente a alors precise sa
   demande : elle veut 80% partout sur desktop/tablette, PAS seulement
   au-dela d'un seuil - « la box de l'ensemble du site (navigation, content
   et footer) occupe 80% de l'affichage sauf en version mobile ».

   PLUS DE PLANCHER, LE 08/09 (1.9.4) : un plancher et "80% partout" sont
   contradictoires - `max(1200px, 80vw)` ne peut PAS a la fois valoir 1200 px
   quand 80% en fait moins ET valoir 80% partout. La demande explicite de la
   cliente tranche en faveur du deuxieme : au-dessus du seuil mobile
   ci-dessous, `--ct-cadre` vaut 80vw, meme quand ca fait MOINS de 1200 px.
   CONSEQUENCE ASSUMEE, A SURVEILLER : la mise en page deja mesuree et
   approuvee a 1200 px n'est plus protegee entre le seuil mobile et 1500 px.
   Exemple mesure : a 1200 px de large (un ecran ou une fenetre courants),
   le cadre passe de 1200 px a 960 px - la page rendue est visiblement plus
   etroite qu'avant, pas seulement plus large sur grand ecran comme le
   demandait la version precedente. Si Laurence ou la cliente juge ça trop
   etroit sur un format donne, le retour a un plancher (comme en 1.9.2/1.9.3)
   est la seule facon de l'empecher, au prix de perdre le "80% partout".

   SEUIL MOBILE : 960 px, PAS un chiffre choisi au hasard - c'est le seuil
   qu'Uncode utilise deja, partout ailleurs sur ce site, pour empiler les
   colonnes en une seule (voir claude/uncode-balisage-reel.md et la regle
   n°9 de claude/etat-du-chantier.md). En dessous, `--ct-cadre` reste a
   1200 px, valeur qui n'a jamais d'effet en dessous de 1200 px de large de
   toute facon (max-width ne peut pas elargir un contenu deja plus etroit) -
   le mobile garde donc exactement le comportement d'avant, plein ecran,
   comme demande. Au-dessus de 960 px, `--ct-cadre` bascule a 80vw pile via
   une media query : CSS n'a pas d'operateur "80% mais seulement au-dessus
   d'un seuil, sinon illimite" en une seule expression comme `max()`/`min()`
   -- il faut deux regles. EFFET DE BORD ASSUME : au changement de regle,
   entre 960 et 961 px, le cadre saute de 1200 px (inerte, donc ~= largeur
   d'ecran) a 768,8 px (80% de 961) - une vraie marche, pas une courbe
   continue comme le donnait `max()`. Personne n'a signale ce format precis
   comme probleme a ce jour ; a surveiller si Laurence teste une fenetre
   dans cette plage.

   Controle : `python3 alignement.py` — doit afficher 0 bloc desaligne. Le
   script resout la valeur reelle de `--ct-cadre` dans le navigateur plutot
   que de la supposer : il reste correct quelle que soit cette formule.
   -------------------------------------------------------------------- */
:root{
  --ct-cadre:1200px;
  --ct-cadre-marge:28px;
  --ct-cadre-contenu:calc(var(--ct-cadre) - 2 * var(--ct-cadre-marge));
}
@media (min-width: 961px){
  :root{
    --ct-cadre:80vw;
  }
}

/* ---------- PALETTE (point unique de reglage des couleurs) ---------- */
.ct-content{
  --ct-paper:#f6f4ef;        /* fond principal */
  --ct-paper-dim:#efece4;    /* bandes en retrait */
  --ct-paper-tint:#e8e6e0;   /* fond d'attente des images */
  --ct-ink:#14161a;          /* texte et fonds sombres */
  --ct-ink-soft:#2c2e32;
  --ct-body:#3d3f43;         /* corps de texte */
  --ct-blue:#0f2a4a;         /* bleu cyanotype, sur fond clair */
  --ct-blue-light:#9fb6cf;   /* bleu clair, sur fond sombre */
  --ct-blue-soft:#7f9cba;    /* variante plus sourde, 5 maquettes */
  --ct-blue-deep:#0a1626;
  --ct-blue-grey:#8f9aa8;
  --ct-grey:#83837c;
  --ct-on-dark:#e4e1d8;      /* texte sur fond sombre */
  --ct-on-dark-dim:#d8d5cb;  /* second niveau */
  --ct-on-dark-mute:#c9c6bc; /* troisieme niveau */
  --ct-line:rgba(21,24,29,0.12);
}

/* ---------- ECHELLE TYPOGRAPHIQUE (point unique de reglage) ---------- */
.ct-content{
  --ct-fs-scale:1;   /* multiplicateur global de toute la typographie */
  --ct-fs-11:calc(11px * var(--ct-fs-scale));
  --ct-fs-11_5:calc(11.5px * var(--ct-fs-scale));
  --ct-fs-12:calc(12px * var(--ct-fs-scale));
  --ct-fs-12_5:calc(12.5px * var(--ct-fs-scale));
  --ct-fs-13:calc(13px * var(--ct-fs-scale));
  --ct-fs-13_5:calc(13.5px * var(--ct-fs-scale));
  --ct-fs-14_5:calc(14.5px * var(--ct-fs-scale));
  --ct-fs-15:calc(15px * var(--ct-fs-scale));
  --ct-fs-15_5:calc(15.5px * var(--ct-fs-scale));
  --ct-fs-16:calc(16px * var(--ct-fs-scale));
  --ct-fs-16_5:calc(16.5px * var(--ct-fs-scale));
  /* --ct-fs-17 : demande du 08/09, "la grosseur des fontes a 17px passe a
     15px partout" -- le nom de la variable reste "17" pour ne pas casser
     la vingtaine de regles qui la referencent (corps de texte de lecture,
     hero, intro, citations, notes curatoriales...), mais elle resout
     desormais a 15px. Point unique de reglage : ne pas la confondre avec
     --ct-fs-15, deja utilisee ailleurs pour des elements distincts (labels
     de navigation, legendes) qui ne doivent pas bouger avec le corps de
     texte. */
  --ct-fs-17:calc(15px * var(--ct-fs-scale));
  --ct-fs-18:calc(18px * var(--ct-fs-scale));
  --ct-fs-19:calc(19px * var(--ct-fs-scale));
  --ct-fs-20:calc(20px * var(--ct-fs-scale));
  --ct-fs-21:calc(21px * var(--ct-fs-scale));
  --ct-fs-22:calc(22px * var(--ct-fs-scale));
  --ct-fs-24:calc(24px * var(--ct-fs-scale));
  --ct-fs-26:calc(26px * var(--ct-fs-scale));
  --ct-fs-28:calc(28px * var(--ct-fs-scale));
  --ct-fs-30:calc(30px * var(--ct-fs-scale));
  --ct-fs-32:calc(32px * var(--ct-fs-scale));
  --ct-fs-34:calc(34px * var(--ct-fs-scale));
  --ct-fs-36:calc(36px * var(--ct-fs-scale));
  --ct-fs-fluid-24:calc(clamp(24px,3vw,34px) * var(--ct-fs-scale));
  --ct-fs-fluid-30:calc(clamp(30px, 4.4vw, 46px) * var(--ct-fs-scale));
  --ct-fs-fluid-30-2:calc(clamp(30px,4vw,42px) * var(--ct-fs-scale));
  --ct-fs-fluid-32:calc(clamp(32px, 4.4vw, 48px) * var(--ct-fs-scale));
  --ct-fs-fluid-34:calc(clamp(34px, 5.2vw, 58px) * var(--ct-fs-scale));
  --ct-fs-fluid-34-2:calc(clamp(34px, 5.4vw, 58px) * var(--ct-fs-scale));
  --ct-fs-fluid-38:calc(clamp(38px, 6vw, 72px) * var(--ct-fs-scale));
  --ct-fs-fluid-38-2:calc(clamp(38px, 6vw, 68px) * var(--ct-fs-scale));
}

/* ---------- BASE (present a l'identique dans les 11 pages) ---------- */
.ct-content.ct-content *{box-sizing:border-box; margin:0; padding:0}
.ct-content.ct-content a{color:inherit; text-decoration:none}
.ct-content.ct-content img{display:block; max-width:100%}
.ct-content.ct-content h1, .ct-content.ct-content h2, .ct-content.ct-content h3{font-family:"Newsreader", serif; font-weight:400; letter-spacing:-0.01em}
.ct-content.ct-content nav{max-width:var(--ct-cadre); margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:18px 28px}
.ct-content.ct-content .ct-logo{font-family:"Alex Brush", cursive; font-size:var(--ct-fs-30); color:var(--ct-ink)}
.ct-content.ct-content .ct-navlinks a{position:relative; padding:4px 0; color:var(--ct-ink); opacity:0.75; transition:opacity .2s}
.ct-content.ct-content .ct-navlinks a:hover{opacity:1}
.ct-content.ct-content .ct-navlinks a.ct-active{opacity:1}
.ct-content.ct-content .ct-navlinks a.ct-active::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:var(--ct-blue)}
.ct-content.ct-content .ct-nav-cta{font-size:var(--ct-fs-13); letter-spacing:0.05em; border:1px solid var(--ct-ink); padding:9px 18px; border-radius:2px; transition:all .2s}
.ct-content.ct-content .ct-nav-cta:hover{background:var(--ct-ink); color:var(--ct-paper)}
.ct-content.ct-content .ct-footer-logo{font-family:"Alex Brush", cursive; font-size:var(--ct-fs-26)}
.ct-content.ct-content .ct-footer-links{display:flex; gap:26px; font-size:var(--ct-fs-13); color:var(--ct-grey)}
@media (max-width:860px){
  .ct-content.ct-content .ct-navlinks{display:none}
}

/* ---------- PARTAGE (seulement les pages nommees) ---------- */
.ct-content.ct-page--blog .ct-page-intro .ct-eyebrow, .ct-content.ct-page--expositions .ct-page-intro .ct-eyebrow{margin-bottom:18px; display:block}
.ct-content.ct-page--blog .ct-page-intro p, .ct-content.ct-page--expositions .ct-page-intro p{font-size:var(--ct-fs-16); color:var(--ct-grey); font-weight:300; max-width:440px; margin:0 auto}
.ct-content.ct-page--expositions .ct-page-anchors{display:flex; justify-content:center; gap:36px; padding:30px 28px 0; font-size:var(--ct-fs-13_5); letter-spacing:0.04em}
.ct-content.ct-page--expositions .ct-page-anchors a{color:var(--ct-grey); padding-bottom:4px; border-bottom:1px solid transparent; transition:color .2s, border-color .2s}
.ct-content.ct-page--expositions .ct-page-anchors a:hover{color:var(--ct-blue); border-color:var(--ct-blue)}
.ct-content.ct-page--expositions .ct-collectif{max-width:var(--ct-cadre); margin:0 auto; padding:0 28px 90px}
.ct-content.ct-page--expositions .ct-collectif-card{display:grid; grid-template-columns:320px 1fr; gap:50px; align-items:start; border:1px solid var(--ct-line); padding:50px}
.ct-content.ct-page--expositions .ct-collectif-img{aspect-ratio:4/5; overflow:hidden; background:var(--ct-paper-dim)}
.ct-content.ct-page--expositions .ct-collectif-img img{filter:grayscale(50%) contrast(1.05)}
.ct-content.ct-page--expositions .ct-collectif-title{font-size:var(--ct-fs-28); font-style:italic; margin-bottom:10px}
.ct-content.ct-page--expositions .ct-collectif-members{font-size:var(--ct-fs-13_5); color:var(--ct-grey); margin-bottom:24px; line-height:1.7}
.ct-content.ct-page--expositions .ct-collectif-members a{color:var(--ct-blue); border-bottom:1px solid var(--ct-blue); padding-bottom:1px}
.ct-content.ct-page--expositions .ct-collectif-desc{font-size:var(--ct-fs-15_5); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:20px; max-width:600px}
.ct-content.ct-page--expositions .ct-collectif-badge{display:inline-block; font-size:var(--ct-fs-12_5); color:var(--ct-grey); font-style:italic; border:1px dashed var(--ct-line); padding:8px 14px; border-radius:3px}
.ct-content.ct-page--expositions .ct-section-head{max-width:var(--ct-cadre); margin:0 auto; padding:70px 28px 40px}
.ct-content.ct-page--expositions .ct-section-head h2{font-size:var(--ct-fs-26); font-weight:400}
.ct-content.ct-page--expositions .ct-expo-featured{max-width:var(--ct-cadre); margin:0 auto; padding:0 28px 40px}
.ct-content.ct-page--expositions .ct-expo-featured-card{display:grid; grid-template-columns:1fr 1.2fr; gap:0; overflow:hidden; border:1px solid var(--ct-line)}
.ct-content.ct-page--expositions .ct-expo-featured-img{position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--ct-paper-dim); cursor:pointer}
.ct-content.ct-page--expositions .ct-expo-featured-img img{filter:none; object-fit:contain; background:var(--ct-paper-tint)}
.ct-content.ct-page--expositions .ct-expo-featured-body{padding:54px 50px; display:flex; flex-direction:column; justify-content:center}
.ct-content.ct-page--expositions .ct-expo-tag{font-size:var(--ct-fs-12); letter-spacing:0.14em; text-transform:uppercase; color:var(--ct-blue); margin-bottom:16px}
.ct-content.ct-page--expositions .ct-expo-title{font-size:var(--ct-fs-30); font-style:italic; line-height:1.25; margin-bottom:16px}
.ct-content.ct-page--expositions .ct-expo-desc{font-size:var(--ct-fs-15_5); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:20px}
.ct-content.ct-page--expositions .ct-expo-links{display:flex; gap:20px; flex-wrap:wrap}
.ct-content.ct-page--expositions .ct-expo-links a{font-size:var(--ct-fs-13); letter-spacing:0.04em; border-bottom:1px solid var(--ct-ink); padding-bottom:3px; transition:opacity .2s}
.ct-content.ct-page--expositions .ct-expo-links a:hover{opacity:0.6}
.ct-content.ct-page--expositions .ct-expo-side{display:grid; grid-template-columns:280px 1fr; gap:36px; align-items:start}
.ct-content.ct-page--expositions .ct-expo-side-img{aspect-ratio:4/5; overflow:hidden; cursor:pointer}
.ct-content.ct-page--expositions .ct-expo-side-img img{filter:grayscale(50%) contrast(1.05); transition:transform .5s ease}
.ct-content.ct-page--expositions .ct-expo-side-img:hover img{transform:scale(1.04)}
.ct-content.ct-page--expositions .ct-expo-quad{display:grid; grid-template-columns:1fr 1fr; gap:8px; align-self:start}
.ct-content.ct-page--expositions .ct-expo-quad > div{aspect-ratio:4/3; overflow:hidden; cursor:pointer}
.ct-content.ct-page--expositions .ct-expo-quad img{filter:grayscale(55%) contrast(1.05); transition:transform .5s ease}
.ct-content.ct-page--expositions .ct-expo-quad > div:hover img{transform:scale(1.05)}
.ct-content.ct-page--expositions .ct-expo-gallery{column-count:4; column-gap:8px; margin-top:20px}
.ct-content.ct-page--expositions .ct-expo-gallery > div{break-inside:avoid; margin-bottom:8px; overflow:hidden; cursor:pointer}
.ct-content.ct-page--expositions .ct-expo-gallery img{width:100%; height:auto; display:block; filter:grayscale(55%) contrast(1.05); transition:transform .5s ease}
.ct-content.ct-page--expositions .ct-expo-gallery > div:hover img{transform:scale(1.04)}
.ct-content.ct-page--expositions .ct-expo-list{max-width:var(--ct-cadre); margin:0 auto; padding:0 28px 90px}
.ct-content.ct-page--expositions .ct-expo-row{display:grid; grid-template-columns:120px 1fr; gap:40px; padding:44px 0; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--expositions .ct-expo-row:last-child{border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--expositions .ct-expo-year{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-22); color:var(--ct-blue); padding-top:2px}
.ct-content.ct-page--expositions .ct-expo-row-title{font-size:var(--ct-fs-22); margin-bottom:10px}
.ct-content.ct-page--expositions .ct-expo-row-meta{font-size:var(--ct-fs-13_5); color:var(--ct-grey); margin-bottom:16px; line-height:1.7}
.ct-content.ct-page--expositions .ct-expo-row-meta strong{color:var(--ct-ink); font-weight:500}
.ct-content.ct-page--expositions .ct-expo-row-desc{font-size:var(--ct-fs-15_5); color:var(--ct-body); font-weight:300; line-height:1.8; max-width:700px; margin-bottom:16px}
.ct-content.ct-page--expositions .ct-expo-row-media{display:flex; gap:14px; margin-top:16px; flex-wrap:wrap}
.ct-content.ct-page--expositions .ct-expo-row-media img{width:110px; height:80px; object-fit:cover; filter:grayscale(50%)}
.ct-content.ct-page--expositions .ct-expo-row-links{display:flex; gap:20px; flex-wrap:wrap; margin-top:10px}
.ct-content.ct-page--expositions .ct-expo-row-links a{font-size:var(--ct-fs-13); letter-spacing:0.04em; color:var(--ct-blue); border-bottom:1px solid var(--ct-blue); padding-bottom:2px}
.ct-content.ct-page--expositions .ct-expo-placeholder-note{font-size:var(--ct-fs-13); color:var(--ct-grey); font-style:italic; border:1px dashed var(--ct-line); padding:10px 14px; border-radius:3px; display:inline-block; margin-top:8px}
.ct-content.ct-page--expositions .ct-expo-video-embed{aspect-ratio:16/9; max-width:340px; background:var(--ct-paper-dim); border:1px solid var(--ct-line); display:flex; align-items:center; justify-content:center; font-size:var(--ct-fs-13); color:var(--ct-grey); font-style:italic; margin-top:16px}
.ct-content.ct-page--blog-article .ct-breadcrumb a, .ct-content.ct-page--famille .ct-breadcrumb a, .ct-content.ct-page--particuliers .ct-breadcrumb a, .ct-content.ct-page--pro .ct-breadcrumb a, .ct-content.ct-page--serie .ct-breadcrumb a{color:var(--ct-blue)}
.ct-content.ct-page--blog-article .ct-article-head{max-width:800px; margin:0 auto; padding:50px 28px 40px; text-align:center}
.ct-content.ct-page--blog-article .ct-article-meta .ct-tag{color:var(--ct-blue); text-transform:uppercase; letter-spacing:0.1em; font-weight:500}
.ct-content.ct-page--blog-article .ct-article-head h1{font-size:var(--ct-fs-fluid-30); line-height:1.2; font-style:italic; font-weight:350; margin-bottom:18px}
.ct-content.ct-page--blog-article .ct-article-lede{font-size:var(--ct-fs-16); color:var(--ct-grey); font-weight:300; line-height:1.7; max-width:560px; margin:0 auto}
.ct-content.ct-page--blog-article .ct-article-hero{max-width:1100px; margin:0 auto; padding:0 28px 60px}
.ct-content.ct-page--blog-article .ct-article-hero-img{aspect-ratio:16/9; overflow:hidden}
.ct-content.ct-page--blog-article .ct-article-hero-img img{filter:grayscale(55%) contrast(1.05)}
.ct-content.ct-page--blog-article .ct-article-hero-caption{font-size:var(--ct-fs-12); color:var(--ct-grey); font-style:italic; margin-top:10px; text-align:center}
.ct-content.ct-page--blog-article .ct-article-body{max-width:680px; margin:0 auto; padding:0 28px 60px}
.ct-content.ct-page--blog-article .ct-article-body p{font-size:var(--ct-fs-17); color:var(--ct-ink-soft); font-weight:300; line-height:1.9; margin-bottom:24px}
.ct-content.ct-page--blog-article .ct-article-body h2{font-size:var(--ct-fs-24); margin:44px 0 18px; font-style:italic}
.ct-content.ct-page--blog-article .ct-article-pull-quote{margin:40px 0; padding:24px 28px; background:var(--ct-paper-dim); border-left:2px solid var(--ct-blue); font-family:"Newsreader", serif; font-size:var(--ct-fs-19); font-style:italic; color:var(--ct-blue); line-height:1.6}
.ct-content.ct-page--blog-article .ct-article-inline-img{margin:36px 0; aspect-ratio:4/5; max-width:420px; overflow:hidden}
.ct-content.ct-page--blog-article .ct-article-inline-img img{filter:grayscale(55%) contrast(1.05)}
.ct-content.ct-page--blog-article .ct-article-inline-caption{font-size:var(--ct-fs-12); color:var(--ct-grey); font-style:italic; margin-top:8px}
.ct-content.ct-page--blog-article .ct-article-signature{max-width:680px; margin:0 auto; padding:0 28px 70px; font-family:"Alex Brush", cursive; font-size:var(--ct-fs-26); color:var(--ct-blue); text-align:right}
.ct-content.ct-page--blog-article .ct-article-nav{max-width:1100px; margin:0 auto; padding:50px 28px 90px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--blog-article .ct-article-nav .ct-back{font-size:var(--ct-fs-13); letter-spacing:0.05em; color:var(--ct-grey); transition:color .2s}
.ct-content.ct-page--blog-article .ct-article-nav .ct-back:hover{color:var(--ct-blue)}
.ct-content.ct-page--blog-article .ct-article-next{text-align:right}
.ct-content.ct-page--blog-article .ct-article-next .ct-eyebrow{margin-bottom:8px; display:block}
.ct-content.ct-page--blog-article .ct-article-next .ct-title{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-20); transition:color .2s}
.ct-content.ct-page--blog-article .ct-article-next:hover .ct-title{color:var(--ct-blue)}
.ct-content.ct-page--blog .ct-featured{max-width:var(--ct-cadre); margin:0 auto; padding:70px 28px 20px}
.ct-content.ct-page--blog .ct-featured-card{position:relative; aspect-ratio:16/8; overflow:hidden; display:flex; align-items:flex-end}
.ct-content.ct-page--blog .ct-featured-card img{filter:grayscale(60%) contrast(1.05); transition:transform .6s ease}
.ct-content.ct-page--blog .ct-featured-card:hover img{transform:scale(1.03)}
.ct-content.ct-page--blog .ct-featured-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,17,20,0.05) 40%, rgba(10,15,20,0.82) 100%)}
.ct-content.ct-page--blog .ct-featured-content{position:relative; z-index:2; padding:44px; color:var(--ct-paper); max-width:640px}
.ct-content.ct-page--blog .ct-featured-tag{font-size:var(--ct-fs-12); letter-spacing:0.14em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:14px}
.ct-content.ct-page--blog .ct-featured-title{font-size:var(--ct-fs-fluid-24); font-style:italic; line-height:1.25; margin-bottom:12px}
.ct-content.ct-page--blog .ct-featured-date{font-size:var(--ct-fs-13); color:var(--ct-on-dark-mute); font-weight:300}
.ct-content.ct-page--blog .ct-articles{max-width:var(--ct-cadre); margin:0 auto; padding:70px 28px 120px}
.ct-content.ct-page--blog .ct-articles-head{margin-bottom:44px; display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px}
.ct-content.ct-page--blog .ct-articles-head h2{font-size:var(--ct-fs-26); font-weight:400}
.ct-content.ct-page--blog .ct-filters{display:flex; gap:10px; flex-wrap:wrap}
.ct-content.ct-page--blog .ct-filter-tab{font-size:var(--ct-fs-12_5); letter-spacing:0.04em; padding:8px 16px; border:1px solid var(--ct-line); border-radius:16px; color:var(--ct-grey); transition:all .2s; cursor:pointer}
.ct-content.ct-page--blog .ct-filter-tab.ct-active{background:var(--ct-ink); color:var(--ct-paper); border-color:var(--ct-ink)}
.ct-content.ct-page--blog .ct-filter-tab:hover:not(.ct-active){border-color:var(--ct-blue); color:var(--ct-blue)}
.ct-content.ct-page--blog .ct-article-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:40px 30px}
.ct-content.ct-page--blog .ct-article-card{cursor:pointer}
.ct-content.ct-page--blog .ct-article-thumb{aspect-ratio:4/5; overflow:hidden; margin-bottom:18px}
.ct-content.ct-page--blog .ct-article-thumb img{filter:grayscale(60%) contrast(1.05); transition:transform .5s ease, filter .5s ease}
.ct-content.ct-page--blog .ct-article-card:hover .ct-article-thumb img{transform:scale(1.05); filter:grayscale(15%)}
.ct-content.ct-page--blog .ct-article-tag{font-size:var(--ct-fs-11_5); letter-spacing:0.08em; text-transform:uppercase; color:var(--ct-blue)}
.ct-content.ct-page--blog .ct-article-date{font-size:var(--ct-fs-12_5); color:var(--ct-grey); font-weight:300}
.ct-content.ct-page--blog .ct-article-title{font-size:var(--ct-fs-19); font-style:italic; line-height:1.3}
.ct-content.ct-page--accueil .ct-signature, .ct-content.ct-page--famille .ct-signature, .ct-content.ct-page--particuliers .ct-signature, .ct-content.ct-page--portraits .ct-signature, .ct-content.ct-page--pro .ct-signature, .ct-content.ct-page--qui-suis-je .ct-signature{font-family:"Alex Brush", cursive; font-size:1.6em}
.ct-content.ct-page--accueil .ct-intro .ct-eyebrow, .ct-content.ct-page--famille .ct-intro .ct-eyebrow, .ct-content.ct-page--particuliers .ct-intro .ct-eyebrow, .ct-content.ct-page--pro .ct-intro .ct-eyebrow{margin-bottom:20px}
.ct-content.ct-page--famille .ct-intro-compare, .ct-content.ct-page--particuliers .ct-intro-compare, .ct-content.ct-page--pro .ct-intro-compare{margin-top:26px; padding:22px 24px; background:var(--ct-paper-dim); border-left:2px solid var(--ct-blue); font-size:var(--ct-fs-15_5); color:var(--ct-body); font-weight:300; font-style:italic; font-family:"Newsreader", serif}
.ct-content.ct-page--famille .ct-gallery, .ct-content.ct-page--particuliers .ct-gallery, .ct-content.ct-page--pro .ct-gallery{max-width:var(--ct-cadre); margin:0 auto; padding:100px 28px}
.ct-content.ct-page--famille .ct-gallery-head, .ct-content.ct-page--particuliers .ct-gallery-head, .ct-content.ct-page--pro .ct-gallery-head{margin-bottom:50px; max-width:520px}
.ct-content.ct-page--famille .ct-gallery-head h2, .ct-content.ct-page--particuliers .ct-gallery-head h2, .ct-content.ct-page--pro .ct-gallery-head h2{font-size:var(--ct-fs-30); margin-bottom:12px}
.ct-content.ct-page--famille .ct-masonry{display:grid; grid-template-columns:repeat(3, 1fr); grid-auto-rows:220px; gap:6px}
.ct-content.ct-page--famille .ct-masonry .ct-m1{grid-column:span 2; grid-row:span 2}
.ct-content.ct-page--famille .ct-masonry .ct-m2{grid-column:span 1; grid-row:span 1}
.ct-content.ct-page--famille .ct-masonry .ct-m3{grid-column:span 1; grid-row:span 2}
.ct-content.ct-page--famille .ct-masonry .ct-m4{grid-column:span 1; grid-row:span 1}
.ct-content.ct-page--famille .ct-masonry .ct-m5{grid-column:span 2; grid-row:span 1}
.ct-content.ct-page--famille .ct-masonry img{filter:grayscale(60%) contrast(1.05); transition:transform .5s ease, filter .5s ease}
.ct-content.ct-page--famille .ct-masonry div:hover img{transform:scale(1.04); filter:grayscale(15%)}
.ct-content.ct-page--famille .ct-masonry > div{overflow:hidden}
.ct-content.ct-page--famille .ct-approach, .ct-content.ct-page--particuliers .ct-approach, .ct-content.ct-page--pro .ct-approach{background:var(--ct-ink); color:var(--ct-paper); padding:100px 28px}
.ct-content.ct-page--famille .ct-approach-inner, .ct-content.ct-page--particuliers .ct-approach-inner, .ct-content.ct-page--pro .ct-approach-inner{max-width:1200px; margin:0 auto}
.ct-content.ct-page--famille .ct-approach .ct-eyebrow, .ct-content.ct-page--particuliers .ct-approach .ct-eyebrow, .ct-content.ct-page--pro .ct-approach .ct-eyebrow{color:var(--ct-blue-light); margin-bottom:16px}
.ct-content.ct-page--famille .ct-approach h2, .ct-content.ct-page--particuliers .ct-approach h2, .ct-content.ct-page--pro .ct-approach h2{font-size:var(--ct-fs-32); margin-bottom:60px; max-width:560px}
.ct-content.ct-page--famille .ct-steps, .ct-content.ct-page--particuliers .ct-steps, .ct-content.ct-page--pro .ct-steps{display:grid; grid-template-columns:repeat(3, 1fr); gap:50px}
.ct-content.ct-page--famille .ct-step-num, .ct-content.ct-page--particuliers .ct-step-num, .ct-content.ct-page--pro .ct-step-num{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-32); color:var(--ct-blue-light); margin-bottom:18px}
.ct-content.ct-page--famille .ct-step h3, .ct-content.ct-page--particuliers .ct-step h3, .ct-content.ct-page--pro .ct-step h3{font-size:var(--ct-fs-19); color:var(--ct-paper); margin-bottom:12px; font-weight:400}
.ct-content.ct-page--famille .ct-step p, .ct-content.ct-page--particuliers .ct-step p, .ct-content.ct-page--pro .ct-step p{font-size:var(--ct-fs-15); color:var(--ct-on-dark-mute); font-weight:300; line-height:1.7}
.ct-content.ct-page--famille .ct-testimonials, .ct-content.ct-page--particuliers .ct-testimonials{max-width:1000px; margin:0 auto; padding:100px 28px 20px}
.ct-content.ct-page--famille .ct-testimonials-head, .ct-content.ct-page--particuliers .ct-testimonials-head{text-align:center; margin-bottom:56px}
.ct-content.ct-page--famille .ct-testimonials-head .ct-eyebrow, .ct-content.ct-page--particuliers .ct-testimonials-head .ct-eyebrow{margin-bottom:16px; display:block}
.ct-content.ct-page--famille .ct-testimonials-head h2, .ct-content.ct-page--particuliers .ct-testimonials-head h2{font-size:var(--ct-fs-28)}
.ct-content.ct-page--famille .ct-testi-quote::before, .ct-content.ct-page--particuliers .ct-testi-quote::before{content:"“"; color:var(--ct-blue); font-size:var(--ct-fs-22); margin-right:2px}
.ct-content.ct-page--famille .ct-testi-name, .ct-content.ct-page--particuliers .ct-testi-name{font-size:var(--ct-fs-13); letter-spacing:0.04em; color:var(--ct-grey)}
.ct-content.ct-page--famille .ct-testi-name strong{color:var(--ct-ink); font-weight:500}
.ct-content.ct-page--famille .ct-cta-band .ct-eyebrow, .ct-content.ct-page--particuliers .ct-cta-band .ct-eyebrow{color:var(--ct-blue)}
.ct-content.ct-page--famille .ct-price-line strong, .ct-content.ct-page--particuliers .ct-price-line strong, .ct-content.ct-page--pro .ct-price-line strong{color:var(--ct-ink); font-weight:500}
.ct-content.ct-page--portraits .ct-mosaic-grid, .ct-content.ct-page--regards .ct-mosaic-grid{position:absolute; inset:0; display:grid; grid-template-columns:repeat(6, 1fr); grid-template-rows:repeat(3, 1fr); gap:4px}
.ct-content.ct-page--portraits .ct-mosaic-grid > div, .ct-content.ct-page--regards .ct-mosaic-grid > div{position:relative; overflow:hidden}
.ct-content.ct-page--portraits .ct-mosaic-hero:hover img, .ct-content.ct-page--regards .ct-mosaic-hero:hover img{transform:scale(1.06)}
.ct-content.ct-page--portraits .ct-mg1, .ct-content.ct-page--regards .ct-mg1{grid-column:1/3; grid-row:1/3}
.ct-content.ct-page--portraits .ct-mg2, .ct-content.ct-page--regards .ct-mg2{grid-column:3/5; grid-row:1/2}
.ct-content.ct-page--portraits .ct-mg3, .ct-content.ct-page--regards .ct-mg3{grid-column:5/7; grid-row:1/3}
.ct-content.ct-page--portraits .ct-mg4, .ct-content.ct-page--regards .ct-mg4{grid-column:3/4; grid-row:2/4}
.ct-content.ct-page--portraits .ct-mg5, .ct-content.ct-page--regards .ct-mg5{grid-column:4/5; grid-row:2/3}
.ct-content.ct-page--portraits .ct-mg6, .ct-content.ct-page--regards .ct-mg6{grid-column:1/3; grid-row:3/4}
.ct-content.ct-page--portraits .ct-mg7, .ct-content.ct-page--regards .ct-mg7{grid-column:4/6; grid-row:3/4}
.ct-content.ct-page--portraits .ct-mg8, .ct-content.ct-page--regards .ct-mg8{grid-column:6/7; grid-row:3/4}
.ct-content.ct-page--portraits .ct-mosaic-overlay, .ct-content.ct-page--regards .ct-mosaic-overlay{position:absolute; inset:0; z-index:2; background:linear-gradient(180deg, rgba(10,15,20,0.15) 0%, rgba(10,15,20,0.55) 55%, rgba(10,15,20,0.78) 100%); display:flex; align-items:center; justify-content:center}
.ct-content.ct-page--regards .ct-series-cards{max-width:var(--ct-cadre); margin:0 auto; padding:70px 28px 100px; border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--regards .ct-sc-head{text-align:center; margin-bottom:44px}
.ct-content.ct-page--regards .ct-sc-head .ct-eyebrow{margin-bottom:12px; display:block}
.ct-content.ct-page--regards .ct-sc-head h2{font-size:var(--ct-fs-26); font-weight:400}
.ct-content.ct-page--regards .ct-sc-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:2px}
.ct-content.ct-page--regards .ct-sc-card{position:relative; aspect-ratio:3/4; overflow:hidden; display:flex; align-items:flex-end}
.ct-content.ct-page--regards .ct-sc-card img{position:absolute; inset:0; filter:grayscale(65%) contrast(1.05); transition:transform .5s ease, filter .5s ease}
.ct-content.ct-page--regards .ct-sc-card:hover img{transform:scale(1.05); filter:grayscale(15%)}
.ct-content.ct-page--regards .ct-sc-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,17,20,0.02) 45%, rgba(10,15,20,0.82) 100%)}
.ct-content.ct-page--regards .ct-sc-content{position:relative; z-index:2; padding:20px; color:var(--ct-paper); width:100%}
.ct-content.ct-page--regards .ct-sc-index{font-size:var(--ct-fs-11); letter-spacing:0.14em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:6px}
.ct-content.ct-page--regards .ct-sc-title{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-17); line-height:1.25}
.ct-content.ct-page--regards .ct-scroll-hint{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:3; color:var(--ct-on-dark); font-size:var(--ct-fs-22); line-height:1; opacity:0.8; animation:hintBounce 2.4s ease-in-out infinite}
@keyframes hintBounce{0%, 100%{transform:translateX(-50%) translateY(0); opacity:0.8;}
    50%{transform:translateX(-50%) translateY(6px); opacity:1;}}
.ct-content.ct-page--regards .ct-closing a{display:inline-block; font-size:var(--ct-fs-13); letter-spacing:0.06em; border-bottom:1px solid var(--ct-ink); padding-bottom:4px; transition:opacity .2s}
.ct-content.ct-page--regards .ct-closing a:hover{opacity:0.6}
.ct-content.ct-page--accueil .ct-logo span{color:var(--ct-blue)}
.ct-content.ct-page--accueil .ct-hero h1 em{font-style:italic; color:var(--ct-blue-light)}
.ct-content.ct-page--accueil .ct-hero h1 .ct-h1-sub{display:block; font-size:0.42em; font-style:normal; font-weight:300; color:var(--ct-on-dark); margin-top:14px; line-height:1.4}
.ct-content.ct-page--accueil .ct-hero-scroll{position:absolute; right:28px; bottom:28px; z-index:2; color:var(--ct-on-dark); font-size:var(--ct-fs-11); letter-spacing:0.15em; writing-mode:vertical-rl; display:flex; align-items:center; gap:10px}
.ct-content.ct-page--accueil .ct-hero-scroll::after{content:""; width:1px; height:50px; background:var(--ct-on-dark); opacity:0.5}
.ct-content.ct-page--accueil .ct-intro-signature{margin-top:22px; color:var(--ct-blue); font-size:var(--ct-fs-16)}
.ct-content.ct-page--accueil .ct-poles{display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--accueil .ct-pole{position:relative; padding:80px 60px; min-height:480px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; isolation:isolate}
.ct-content.ct-page--accueil .ct-pole::before{content:""; position:absolute; inset:0; z-index:-1; background-size:cover; background-position:center; filter:grayscale(70%) contrast(1.05); transition:transform .6s ease, filter .6s ease}
.ct-content.ct-page--accueil .ct-pole:hover::before{transform:scale(1.04); filter:grayscale(25%) contrast(1.1)}
.ct-content.ct-page--accueil .ct-pole::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(15,17,20,0.1) 0%, rgba(10,18,28,0.8) 100%)}
.ct-content.ct-page--accueil .ct-pole-a::before{background-image:none}
.ct-content.ct-page--accueil .ct-pole-b::before{background-image:none}
.ct-content.ct-page--accueil .ct-pole-tag{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:16px}
.ct-content.ct-page--accueil .ct-pole h3{color:var(--ct-paper); font-size:var(--ct-fs-30); font-weight:400; margin-bottom:14px}
.ct-content.ct-page--accueil .ct-pole p{color:var(--ct-on-dark-dim); font-size:var(--ct-fs-16_5); font-weight:300; max-width:380px; margin-bottom:26px; line-height:1.7}
.ct-content.ct-page--accueil .ct-pole-link{color:var(--ct-paper); font-size:var(--ct-fs-12); letter-spacing:0.06em; border-bottom:1px solid rgba(246,244,239,0.5); padding-bottom:4px; width:fit-content}
.ct-content.ct-page--accueil .ct-work{max-width:var(--ct-cadre); margin:0 auto; padding:110px 28px 40px}
.ct-content.ct-page--accueil .ct-work-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:14px; gap:24px; flex-wrap:wrap}
.ct-content.ct-page--accueil .ct-work-head h2{font-size:var(--ct-fs-30); font-weight:400}
.ct-content.ct-page--accueil .ct-work-head p{font-size:var(--ct-fs-14_5); color:var(--ct-grey); max-width:360px; font-weight:300; line-height:1.6}
.ct-content.ct-page--accueil .ct-work-sub{font-size:var(--ct-fs-15); color:var(--ct-grey); font-weight:300; font-style:italic; margin-bottom:50px; font-family:"Newsreader", serif}
.ct-content.ct-page--accueil .ct-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:2px; margin-bottom:90px}
.ct-content.ct-page--accueil .ct-card{position:relative; aspect-ratio:4/5; overflow:hidden; background:#ddd}
.ct-content.ct-page--accueil .ct-card img{transition:transform .5s ease; filter:grayscale(70%)}
.ct-content.ct-page--accueil .ct-card:hover img{transform:scale(1.05); filter:grayscale(15%)}
.ct-content.ct-page--accueil .ct-card-label{position:absolute; left:0; right:0; bottom:0; padding:18px 20px; background:linear-gradient(180deg, transparent, rgba(10,15,20,0.9)); color:var(--ct-paper)}
.ct-content.ct-page--accueil .ct-card-num{font-size:var(--ct-fs-11); letter-spacing:0.13em; color:var(--ct-blue-light); margin-bottom:4px}
.ct-content.ct-page--accueil .ct-card-title{font-family:"Newsreader", serif; font-size:var(--ct-fs-18); font-style:italic}
.ct-content.ct-page--accueil .ct-expo{background:var(--ct-ink); color:var(--ct-paper); padding:90px 28px}
.ct-content.ct-page--accueil .ct-expo-inner{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center}
.ct-content.ct-page--accueil .ct-expo .ct-eyebrow{color:var(--ct-blue-light)}
.ct-content.ct-page--accueil .ct-expo h2{font-size:var(--ct-fs-36); font-weight:400; margin:18px 0 22px; line-height:1.25}
.ct-content.ct-page--accueil .ct-expo p{font-size:var(--ct-fs-15_5); color:var(--ct-on-dark-mute); font-weight:300; margin-bottom:28px; max-width:440px; line-height:1.7}
.ct-content.ct-page--accueil .ct-expo-meta div{font-size:var(--ct-fs-12); color:var(--ct-blue-grey)}
.ct-content.ct-page--accueil .ct-expo-cta{display:inline-block; font-size:var(--ct-fs-12); letter-spacing:0.06em; border:1px solid var(--ct-blue-light); color:var(--ct-paper); padding:12px 26px; border-radius:2px; transition:all .2s}
.ct-content.ct-page--accueil .ct-expo-cta:hover{background:var(--ct-blue-light); color:var(--ct-ink)}
.ct-content.ct-page--accueil .ct-expo-visual{aspect-ratio:3/4; background:var(--ct-blue-deep); background-image:none; background-size:cover; background-position:center; filter:grayscale(55%) sepia(10%) hue-rotate(170deg) saturate(1.3); border:1px solid rgba(159,182,207,0.25)}
.ct-content.ct-page--pro .ct-audience{max-width:100%; margin:0; padding:90px 28px; background:var(--ct-paper-dim); border-top:1px solid var(--ct-line); border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--pro .ct-audience-inner{max-width:1200px; margin:0 auto}
.ct-content.ct-page--pro .ct-audience-head{margin-bottom:50px; max-width:560px}
.ct-content.ct-page--pro .ct-audience-head h2{font-size:var(--ct-fs-30); margin-bottom:12px}
.ct-content.ct-page--pro .ct-audience-head p{font-size:var(--ct-fs-15_5); color:var(--ct-grey); font-weight:300}
.ct-content.ct-page--pro .ct-audience-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:50px}
.ct-content.ct-page--pro .ct-aud-card{padding:0}
.ct-content.ct-page--pro .ct-aud-num{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-26); color:var(--ct-blue); margin-bottom:14px}
.ct-content.ct-page--pro .ct-aud-title{font-family:"Newsreader", serif; font-size:var(--ct-fs-20); margin-bottom:12px; color:var(--ct-ink)}
.ct-content.ct-page--pro .ct-aud-desc{font-size:var(--ct-fs-15_5); color:var(--ct-body); font-weight:300; line-height:1.75}
.ct-content.ct-page--particuliers .ct-grid3, .ct-content.ct-page--pro .ct-grid3{display:grid; grid-template-columns:repeat(3, 1fr); gap:2px}
.ct-content.ct-page--particuliers .ct-grid3 .ct-card, .ct-content.ct-page--pro .ct-grid3 .ct-card{position:relative; aspect-ratio:4/5; overflow:hidden; background:#ddd}
.ct-content.ct-page--particuliers .ct-grid3 img, .ct-content.ct-page--pro .ct-grid3 img{filter:grayscale(60%) contrast(1.05); transition:transform .5s ease, filter .5s ease}
.ct-content.ct-page--particuliers .ct-grid3 .ct-card:hover img, .ct-content.ct-page--pro .ct-grid3 .ct-card:hover img{transform:scale(1.05); filter:grayscale(15%)}
.ct-content.ct-page--portraits .ct-intro .ct-signature{display:block; margin-top:26px; color:var(--ct-blue); font-size:var(--ct-fs-26)}
.ct-content.ct-page--portraits .ct-categories{max-width:var(--ct-cadre); margin:0 auto; padding:0 28px 110px}
.ct-content.ct-page--portraits .ct-cat-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:2px}
.ct-content.ct-page--portraits .ct-cat-card{position:relative; aspect-ratio:3/4; overflow:hidden; background:#ddd; display:flex; align-items:flex-end}
.ct-content.ct-page--portraits .ct-cat-card img{position:absolute; inset:0; filter:grayscale(70%) contrast(1.05); transition:transform .6s ease, filter .6s ease}
.ct-content.ct-page--portraits .ct-cat-card:hover img{transform:scale(1.05); filter:grayscale(20%)}
.ct-content.ct-page--portraits .ct-cat-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,17,20,0.05) 0%, rgba(10,15,20,0.82) 100%)}
.ct-content.ct-page--portraits .ct-cat-content{position:relative; z-index:2; padding:30px; color:var(--ct-paper); width:100%}
.ct-content.ct-page--portraits .ct-cat-tag{font-size:var(--ct-fs-11_5); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:10px}
.ct-content.ct-page--portraits .ct-cat-title{font-size:var(--ct-fs-24); margin-bottom:10px}
.ct-content.ct-page--portraits .ct-cat-desc{font-size:var(--ct-fs-14_5); color:var(--ct-on-dark-dim); font-weight:300; line-height:1.6; margin-bottom:16px}
.ct-content.ct-page--portraits .ct-cat-link{font-size:var(--ct-fs-12_5); letter-spacing:0.06em; border-bottom:1px solid rgba(246,244,239,0.5); padding-bottom:3px; width:fit-content}
.ct-content.ct-page--particuliers .ct-occasions{max-width:100%; margin:0; padding:90px 28px; background:var(--ct-paper-dim); border-top:1px solid var(--ct-line); border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--particuliers .ct-occasions-inner{max-width:1200px; margin:0 auto}
.ct-content.ct-page--particuliers .ct-occasions-head{margin-bottom:50px; max-width:520px}
.ct-content.ct-page--particuliers .ct-occasions-head h2{font-size:var(--ct-fs-30); margin-bottom:12px}
.ct-content.ct-page--particuliers .ct-occasions-head p{font-size:var(--ct-fs-15_5); color:var(--ct-grey); font-weight:300}
.ct-content.ct-page--particuliers .ct-occ-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:36px}
.ct-content.ct-page--particuliers .ct-occ-num{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-24); color:var(--ct-blue); margin-bottom:12px}
.ct-content.ct-page--particuliers .ct-occ h3{font-size:var(--ct-fs-18); margin-bottom:8px; font-weight:400}
.ct-content.ct-page--particuliers .ct-occ p{font-size:var(--ct-fs-13_5); color:var(--ct-grey); font-weight:300; line-height:1.6}
.ct-content.ct-page--particuliers .ct-testi-placeholder{border:1px dashed var(--ct-line); border-radius:4px; padding:28px 24px; display:flex; align-items:center; justify-content:center; text-align:center; font-size:var(--ct-fs-13_5); color:var(--ct-grey); font-style:italic; min-height:120px}
.ct-content.ct-page--serie .ct-series-head{max-width:700px; margin:0 auto; padding:100px 28px 30px; text-align:center}
.ct-content.ct-page--serie .ct-series-head .ct-eyebrow{margin-bottom:18px; display:block}
.ct-content.ct-page--serie .ct-series-head h1{font-size:var(--ct-fs-fluid-32); line-height:1.2; font-weight:350; font-style:italic; margin-bottom:16px}
.ct-content.ct-page--serie .ct-series-head .ct-lede{font-family:"Newsreader", serif; font-size:var(--ct-fs-17); font-style:italic; color:var(--ct-grey); font-weight:300; line-height:1.7; max-width:440px; margin:0 auto}
.ct-content.ct-page--serie .ct-curatorial-full{max-width:700px; margin:0 auto; padding:80px 28px 20px; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--serie .ct-curatorial-full .ct-eyebrow{display:block; text-align:center; margin-bottom:16px}
.ct-content.ct-page--serie .ct-curatorial-full h2{font-size:var(--ct-fs-26); text-align:center; margin-bottom:32px; font-style:italic}
.ct-content.ct-page--serie .ct-curatorial-full p{font-size:var(--ct-fs-17); color:var(--ct-ink-soft); font-weight:300; line-height:1.9; margin-bottom:20px}
.ct-content.ct-page--serie .ct-expo-note{max-width:1200px; margin:10px auto 44px; padding:18px 24px; background:var(--ct-paper-dim); border-left:2px solid var(--ct-blue); font-size:var(--ct-fs-15); color:var(--ct-body); font-weight:300; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap}
.ct-content.ct-page--serie .ct-expo-note a{color:var(--ct-blue); font-size:var(--ct-fs-13); letter-spacing:0.04em; border-bottom:1px solid var(--ct-blue); padding-bottom:2px; white-space:nowrap}
.ct-content.ct-page--serie .ct-sequence{max-width:var(--ct-cadre); margin:0 auto; padding:0 28px 60px}
.ct-content.ct-page--serie .ct-masonry-grid{column-count:4; column-gap:8px}
.ct-content.ct-page--serie .ct-masonry-grid > div{break-inside:avoid; margin-bottom:8px; overflow:hidden}
.ct-content.ct-page--serie .ct-masonry-grid img{width:100%; height:auto; display:block; filter:grayscale(70%) contrast(1.08); transition:transform .5s ease, filter .5s ease; cursor:pointer}
.ct-content.ct-page--serie .ct-masonry-grid > div:hover img{transform:scale(1.03); filter:grayscale(25%)}
.ct-content.ct-page--serie .ct-series-nav{max-width:var(--ct-cadre); margin:0 auto; padding:80px 28px 100px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--serie .ct-series-nav .ct-back{font-size:var(--ct-fs-13); letter-spacing:0.05em; color:var(--ct-grey); transition:color .2s}
.ct-content.ct-page--serie .ct-series-nav .ct-back:hover{color:var(--ct-blue)}
.ct-content.ct-page--serie .ct-series-next{text-align:right}
.ct-content.ct-page--serie .ct-series-next .ct-eyebrow{margin-bottom:8px; display:block}
.ct-content.ct-page--serie .ct-series-next .ct-title{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-22); transition:color .2s}
.ct-content.ct-page--serie .ct-series-next:hover .ct-title{color:var(--ct-blue)}
.ct-content.ct-page--qui-suis-je .ct-vision{max-width:720px; margin:0 auto; padding:130px 28px 110px}
.ct-content.ct-page--qui-suis-je .ct-vision-head{text-align:center; margin-bottom:50px}
.ct-content.ct-page--qui-suis-je .ct-vision-head .ct-eyebrow{margin-bottom:18px; display:block}
.ct-content.ct-page--qui-suis-je .ct-vision-head h2{font-size:var(--ct-fs-fluid-30-2); font-style:italic}
.ct-content.ct-page--qui-suis-je .ct-vision-lede{font-family:"Newsreader", serif; font-size:var(--ct-fs-19); font-style:italic; color:var(--ct-blue); line-height:1.65; margin-bottom:34px; text-align:center}
.ct-content.ct-page--qui-suis-je .ct-vision p{font-size:var(--ct-fs-17); color:var(--ct-ink-soft); font-weight:300; line-height:1.95; margin-bottom:24px}
.ct-content.ct-page--qui-suis-je .ct-parcours{max-width:var(--ct-cadre); margin:0 auto; padding:0 28px 120px; display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:center}
.ct-content.ct-page--qui-suis-je .ct-parcours-photos{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.ct-content.ct-page--qui-suis-je .ct-parcours-photos .ct-tall{grid-column:1/2; aspect-ratio:3/4.4}
.ct-content.ct-page--qui-suis-je .ct-parcours-photos .ct-short{grid-column:2/3; aspect-ratio:3/3.2; align-self:end}
.ct-content.ct-page--qui-suis-je .ct-parcours-photos > div{overflow:hidden}
.ct-content.ct-page--qui-suis-je .ct-parcours-photos img{filter:grayscale(55%) contrast(1.05)}
.ct-content.ct-page--qui-suis-je .ct-parcours-text .ct-eyebrow{margin-bottom:20px}
.ct-content.ct-page--qui-suis-je .ct-parcours-text h2{font-size:var(--ct-fs-30); margin-bottom:22px; line-height:1.25}
.ct-content.ct-page--qui-suis-je .ct-parcours-text p{font-size:var(--ct-fs-16); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:18px}
.ct-content.ct-page--qui-suis-je .ct-parcours-text em{font-style:italic; color:var(--ct-blue); font-weight:400}
.ct-content.ct-page--qui-suis-je .ct-closing-links{display:flex; gap:30px; justify-content:center}
.ct-content.ct-page--qui-suis-je .ct-closing-links a{font-size:var(--ct-fs-13); letter-spacing:0.06em; border-bottom:1px solid var(--ct-ink); padding-bottom:4px; transition:opacity .2s}
.ct-content.ct-page--qui-suis-je .ct-closing-links a:hover{opacity:0.6}
@media (max-width:860px){
  .ct-content.ct-page--expositions .ct-expo-featured-card{grid-template-columns:1fr}
  .ct-content.ct-page--expositions .ct-expo-row{grid-template-columns:1fr; gap:8px}
  .ct-content.ct-page--expositions .ct-expo-side{grid-template-columns:1fr !important}
  .ct-content.ct-page--expositions .ct-expo-quad{grid-template-columns:1fr 1fr; max-width:320px}
  .ct-content.ct-page--expositions .ct-expo-gallery{column-count:2}
  .ct-content.ct-page--expositions .ct-collectif-card{grid-template-columns:1fr; padding:30px}
  .ct-content.ct-page--expositions .ct-page-anchors{gap:20px; flex-wrap:wrap}
  .ct-content.ct-page--blog-article .ct-article-nav{flex-direction:column; align-items:flex-start}
  .ct-content.ct-page--blog-article .ct-article-next{text-align:left}
  .ct-content.ct-page--blog-article .ct-article-signature{text-align:left}
  .ct-content.ct-page--blog .ct-article-grid{grid-template-columns:1fr 1fr}
  .ct-content.ct-page--blog .ct-featured-card{aspect-ratio:4/5}
  .ct-content.ct-page--blog .ct-featured-content{padding:28px}
  .ct-content.ct-page--accueil .ct-intro, .ct-content.ct-page--famille .ct-intro, .ct-content.ct-page--particuliers .ct-intro, .ct-content.ct-page--pro .ct-intro{grid-template-columns:1fr}
  .ct-content.ct-page--famille .ct-masonry{grid-template-columns:repeat(2, 1fr); grid-auto-rows:180px}
  .ct-content.ct-page--famille .ct-masonry .ct-m1{grid-column:span 2}
  .ct-content.ct-page--famille .ct-masonry .ct-m5{grid-column:span 2}
  .ct-content.ct-page--famille .ct-steps, .ct-content.ct-page--particuliers .ct-steps, .ct-content.ct-page--pro .ct-steps{grid-template-columns:1fr; gap:36px}
  .ct-content.ct-page--portraits .ct-mosaic-grid, .ct-content.ct-page--regards .ct-mosaic-grid{grid-template-columns:repeat(3, 1fr); grid-template-rows:repeat(3, 1fr)}
  .ct-content.ct-page--portraits .ct-mg1, .ct-content.ct-page--regards .ct-mg1{grid-column:1/3; grid-row:1/3}
  .ct-content.ct-page--portraits .ct-mg2, .ct-content.ct-page--regards .ct-mg2{grid-column:3/4; grid-row:1/2}
  .ct-content.ct-page--portraits .ct-mg3, .ct-content.ct-page--regards .ct-mg3{grid-column:3/4; grid-row:2/3}
  .ct-content.ct-page--portraits .ct-mg4, .ct-content.ct-page--regards .ct-mg4{grid-column:1/2; grid-row:3/4}
  .ct-content.ct-page--portraits .ct-mg5, .ct-content.ct-page--regards .ct-mg5{grid-column:2/3; grid-row:3/4}
  .ct-content.ct-page--portraits .ct-mg6, .ct-content.ct-page--regards .ct-mg6{grid-column:3/4; grid-row:3/4}
  .ct-content.ct-page--portraits .ct-mg7, .ct-content.ct-page--regards .ct-mg7{display:none}
  .ct-content.ct-page--portraits .ct-mg8, .ct-content.ct-page--regards .ct-mg8{display:none}
  .ct-content.ct-page--regards .ct-sc-grid{grid-template-columns:1fr 1fr}
  .ct-content.ct-page--accueil .ct-poles{grid-template-columns:1fr}
  .ct-content.ct-page--accueil .ct-grid{grid-template-columns:1fr 1fr}
  .ct-content.ct-page--accueil .ct-expo-inner{grid-template-columns:1fr}
  .ct-content.ct-page--pro .ct-audience-grid{grid-template-columns:1fr; gap:36px}
  .ct-content.ct-page--particuliers .ct-grid3, .ct-content.ct-page--pro .ct-grid3{grid-template-columns:1fr 1fr}
  .ct-content.ct-page--portraits .ct-cat-grid{grid-template-columns:1fr}
  .ct-content.ct-page--portraits .ct-cat-card{aspect-ratio:4/3}
  .ct-content.ct-page--particuliers .ct-occ-grid{grid-template-columns:1fr 1fr}
  .ct-content.ct-page--serie .ct-masonry-grid{column-count:2}
  .ct-content.ct-page--serie .ct-expo-note{flex-direction:column; align-items:flex-start}
  .ct-content.ct-page--serie .ct-series-nav{flex-direction:column; align-items:flex-start}
  .ct-content.ct-page--serie .ct-series-next{text-align:left}
  .ct-content.ct-page--qui-suis-je .ct-parcours{grid-template-columns:1fr}
  .ct-content.ct-page--qui-suis-je .ct-parcours-photos{margin-bottom:10px}
}

/* ---------- utilitaire images ---------- */
.ct-content.ct-content .ct-cover{width:100%;height:100%;object-fit:cover;display:block}


/* ---------- specifique : accueil ---------- */
.ct-content.ct-page--accueil{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--accueil .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.15em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--accueil .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-15); letter-spacing:0.02em; font-weight:400}
.ct-content.ct-page--accueil .ct-expo-meta{display:flex; gap:36px; margin-bottom:30px}
.ct-content.ct-page--accueil .ct-expo-meta strong{display:block; font-family:"Newsreader", serif; font-size:var(--ct-fs-17); color:var(--ct-paper); font-weight:400; margin-top:4px}
.ct-content.ct-page--accueil .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px; letter-spacing:0.03em}
.ct-content.ct-page--accueil .ct-hero{position:relative; height:92vh; min-height:560px; display:flex; align-items:flex-end; overflow:hidden}
.ct-content.ct-page--accueil .ct-hero-img{position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,18,28,0.15) 0%, rgba(10,18,28,0.62) 100%); filter: grayscale(80%) contrast(1.08)}
.ct-content.ct-page--accueil .ct-hero-content{position:relative; z-index:2; max-width:var(--ct-cadre); margin:0 auto; width:100%; padding:0 28px 64px; color:var(--ct-paper)}
.ct-content.ct-page--accueil .ct-hero-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.18em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:18px}
.ct-content.ct-page--accueil .ct-hero h1{font-size:var(--ct-fs-fluid-38); line-height:1.15; max-width:820px; font-weight:350}
.ct-content.ct-page--accueil .ct-hero-sub{margin-top:22px; max-width:460px; font-size:var(--ct-fs-17); color:var(--ct-on-dark); font-weight:300; line-height:1.7}
.ct-content.ct-page--accueil .ct-intro{max-width:var(--ct-cadre); margin:0 auto; padding:100px 28px 90px; display:grid; grid-template-columns: 1fr 1.3fr; gap:60px; border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--accueil .ct-intro h2{font-size:var(--ct-fs-32); line-height:1.3; font-weight:400}
.ct-content.ct-page--accueil .ct-intro p{font-size:var(--ct-fs-17); color:var(--ct-body); font-weight:300; line-height:1.85}

/* ---------- specifique : blog ---------- */
.ct-content.ct-page--blog{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--blog .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--blog .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--blog .ct-page-intro{max-width:700px; margin:0 auto; padding:100px 28px 30px; text-align:center}
.ct-content.ct-page--blog .ct-page-intro h1{font-size:var(--ct-fs-fluid-32); line-height:1.2; font-weight:350; margin-bottom:18px}
.ct-content.ct-page--blog .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--blog .ct-article-meta{display:flex; gap:12px; align-items:center; margin-bottom:10px}

/* ---------- specifique : blog-article ---------- */
.ct-content.ct-page--blog-article{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--blog-article .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.15em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--blog-article .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-15); letter-spacing:0.02em}
.ct-content.ct-page--blog-article .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--blog-article .ct-breadcrumb{max-width:800px; margin:0 auto; padding:14px 28px 0; font-size:var(--ct-fs-12); color:var(--ct-grey); letter-spacing:0.03em}
.ct-content.ct-page--blog-article .ct-article-meta{display:flex; justify-content:center; gap:16px; align-items:center; margin-bottom:22px; font-size:var(--ct-fs-12_5); color:var(--ct-grey)}

/* ---------- specifique : expositions ---------- */
.ct-content.ct-page--expositions{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--expositions .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--expositions .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--expositions .ct-page-intro{max-width:700px; margin:0 auto; padding:100px 28px 30px; text-align:center}
.ct-content.ct-page--expositions .ct-page-intro h1{font-size:var(--ct-fs-fluid-32); line-height:1.2; font-weight:350; margin-bottom:16px}
.ct-content.ct-page--expositions .ct-expo-meta{font-size:var(--ct-fs-13_5); color:var(--ct-grey); margin-bottom:22px; line-height:1.7}
.ct-content.ct-page--expositions .ct-expo-meta strong{color:var(--ct-ink); font-weight:500}
.ct-content.ct-page--expositions .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}

/* ---------- specifique : famille ---------- */
.ct-content.ct-page--famille{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--famille .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--famille .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-15); letter-spacing:0.02em}
.ct-content.ct-page--famille .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--famille .ct-breadcrumb{max-width:var(--ct-cadre); margin:0 auto; padding:14px 28px 0; font-size:var(--ct-fs-12); color:var(--ct-grey); letter-spacing:0.03em}
.ct-content.ct-page--famille .ct-hero{position:relative; height:70vh; min-height:460px; display:flex; align-items:flex-end; overflow:hidden}
.ct-content.ct-page--famille .ct-hero-img{position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,18,28,0.1) 0%, rgba(10,18,28,0.6) 100%); filter: grayscale(80%) contrast(1.1)}
.ct-content.ct-page--famille .ct-hero-content{position:relative; z-index:2; max-width:var(--ct-cadre); margin:0 auto; width:100%; padding:0 28px 56px; color:var(--ct-paper)}
.ct-content.ct-page--famille .ct-hero-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.2em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:16px}
.ct-content.ct-page--famille .ct-hero h1{font-size:var(--ct-fs-fluid-34); line-height:1.1; max-width:680px; font-weight:350}
.ct-content.ct-page--famille .ct-hero-sub{margin-top:18px; max-width:460px; font-size:var(--ct-fs-17); color:var(--ct-on-dark); font-weight:300}
.ct-content.ct-page--famille .ct-intro{max-width:var(--ct-cadre); margin:0 auto; padding:100px 28px 90px; display:grid; grid-template-columns:1fr 1.2fr; gap:70px; border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--famille .ct-intro h2{font-size:var(--ct-fs-32); line-height:1.3}
.ct-content.ct-page--famille .ct-intro p{font-size:var(--ct-fs-17); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:18px}
.ct-content.ct-page--famille .ct-gallery-head p{font-size:var(--ct-fs-15_5); color:var(--ct-grey); font-weight:300}
.ct-content.ct-page--famille .ct-testi-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:44px}
.ct-content.ct-page--famille .ct-testi-quote{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-16_5); line-height:1.6; color:var(--ct-ink-soft); margin-bottom:18px}
.ct-content.ct-page--famille .ct-cta-band{background:var(--ct-paper-dim); max-width:100%; margin:0; padding:90px 28px; text-align:center; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--famille .ct-cta-band h2{font-size:var(--ct-fs-28); margin-bottom:14px; color:var(--ct-ink); font-weight:400}
.ct-content.ct-page--famille .ct-cta-band p{font-size:var(--ct-fs-15_5); color:var(--ct-grey); font-weight:300; max-width:440px; margin:0 auto 26px}
.ct-content.ct-page--famille .ct-cta-band a{display:inline-block; font-size:var(--ct-fs-13); letter-spacing:0.06em; background:transparent; color:var(--ct-ink); border:1px solid var(--ct-ink); padding:13px 28px; border-radius:2px; transition:all .2s}
.ct-content.ct-page--famille .ct-cta-band a:hover{background:var(--ct-ink); color:var(--ct-paper)}
.ct-content.ct-page--famille .ct-price-line{font-size:var(--ct-fs-14_5); color:var(--ct-grey); font-weight:300; margin-bottom:24px; letter-spacing:0.01em}
@media (max-width:860px){
  .ct-content.ct-page--famille .ct-testi-grid{grid-template-columns:1fr; gap:36px}
}

/* ---------- specifique : particuliers ---------- */
.ct-content.ct-page--particuliers{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--particuliers .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--particuliers .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--particuliers .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--particuliers .ct-breadcrumb{max-width:var(--ct-cadre); margin:0 auto; padding:14px 28px 0; font-size:var(--ct-fs-12); color:var(--ct-grey); letter-spacing:0.03em}
.ct-content.ct-page--particuliers .ct-hero{position:relative; height:70vh; min-height:460px; display:flex; align-items:flex-end; overflow:hidden}
.ct-content.ct-page--particuliers .ct-hero-img{position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,18,28,0.1) 0%, rgba(10,18,28,0.62) 100%); filter: grayscale(78%) contrast(1.1)}
.ct-content.ct-page--particuliers .ct-hero-content{position:relative; z-index:2; max-width:var(--ct-cadre); margin:0 auto; width:100%; padding:0 28px 56px; color:var(--ct-paper)}
.ct-content.ct-page--particuliers .ct-hero-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.2em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:16px}
.ct-content.ct-page--particuliers .ct-hero h1{font-size:var(--ct-fs-fluid-34); line-height:1.1; max-width:660px; font-weight:350}
.ct-content.ct-page--particuliers .ct-hero-sub{margin-top:18px; max-width:460px; font-size:var(--ct-fs-17); color:var(--ct-on-dark); font-weight:300}
.ct-content.ct-page--particuliers .ct-intro{max-width:var(--ct-cadre); margin:0 auto; padding:100px 28px 90px; display:grid; grid-template-columns:1fr 1.2fr; gap:70px; border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--particuliers .ct-intro h2{font-size:var(--ct-fs-32); line-height:1.3}
.ct-content.ct-page--particuliers .ct-intro p{font-size:var(--ct-fs-17); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:18px}
.ct-content.ct-page--particuliers .ct-gallery-head p{font-size:var(--ct-fs-14_5); color:var(--ct-grey); font-weight:300}
.ct-content.ct-page--particuliers .ct-testi-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:44px; max-width:700px; margin:0 auto}
.ct-content.ct-page--particuliers .ct-testi-quote{font-family:"Newsreader", serif; font-style:italic; font-size:var(--ct-fs-16_5); line-height:1.6; color:var(--ct-grey); margin-bottom:18px}
.ct-content.ct-page--particuliers .ct-cta-band{background:var(--ct-paper-dim); max-width:100%; margin:0; padding:90px 28px; text-align:center; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--particuliers .ct-cta-band h2{font-size:var(--ct-fs-28); margin-bottom:14px; color:var(--ct-ink); font-weight:400}
.ct-content.ct-page--particuliers .ct-cta-band p{font-size:var(--ct-fs-15_5); color:var(--ct-grey); font-weight:300; max-width:460px; margin:0 auto 26px}
.ct-content.ct-page--particuliers .ct-cta-band a{display:inline-block; font-size:var(--ct-fs-13); letter-spacing:0.06em; background:transparent; color:var(--ct-ink); border:1px solid var(--ct-ink); padding:13px 28px; border-radius:2px; transition:all .2s}
.ct-content.ct-page--particuliers .ct-cta-band a:hover{background:var(--ct-ink); color:var(--ct-paper)}
.ct-content.ct-page--particuliers .ct-price-line{font-size:var(--ct-fs-14_5); color:var(--ct-grey); font-weight:300; margin-bottom:24px}
@media (max-width:860px){
  .ct-content.ct-page--particuliers .ct-testi-grid{grid-template-columns:1fr}
}

/* ---------- specifique : portraits ---------- */
.ct-content.ct-page--portraits{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--portraits .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--portraits .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--portraits .ct-page-intro{max-width:720px; margin:0 auto; padding:90px 28px 20px; text-align:center}
.ct-content.ct-page--portraits .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--portraits .ct-intro{max-width:900px; margin:0 auto; padding:90px 28px 80px; text-align:center}
.ct-content.ct-page--portraits .ct-intro p{font-size:var(--ct-fs-17); color:var(--ct-body); font-weight:300; line-height:1.8}
.ct-content.ct-page--portraits .ct-cta-band{background:var(--ct-ink); color:var(--ct-paper); padding:90px 28px; text-align:center}
.ct-content.ct-page--portraits .ct-cta-band h2{font-size:var(--ct-fs-32); margin-bottom:16px}
.ct-content.ct-page--portraits .ct-cta-band p{font-size:var(--ct-fs-15_5); color:var(--ct-on-dark-mute); font-weight:300; max-width:440px; margin:0 auto 30px}
.ct-content.ct-page--portraits .ct-cta-band a{display:inline-block; font-size:var(--ct-fs-13); letter-spacing:0.06em; border:1px solid var(--ct-blue-light); color:var(--ct-paper); padding:13px 30px; border-radius:2px; transition:all .2s}
.ct-content.ct-page--portraits .ct-cta-band a:hover{background:var(--ct-blue-light); color:var(--ct-ink)}
.ct-content.ct-page--portraits .ct-mosaic-hero{position:relative; height:80vh; min-height:520px; overflow:hidden}
.ct-content.ct-page--portraits .ct-mosaic-grid img{filter:grayscale(70%) contrast(1.08); transition:transform 8s ease}
.ct-content.ct-page--portraits .ct-mosaic-text{text-align:center; max-width:680px; padding:0 28px; color:var(--ct-paper)}
.ct-content.ct-page--portraits .ct-mosaic-text .ct-eyebrow{color:var(--ct-blue-light); margin-bottom:20px; display:block}
.ct-content.ct-page--portraits .ct-mosaic-text h1{font-size:var(--ct-fs-fluid-34-2); font-weight:350; line-height:1.15; margin-bottom:22px}
.ct-content.ct-page--portraits .ct-mosaic-text p{font-size:var(--ct-fs-17); color:var(--ct-on-dark); font-weight:300; line-height:1.85; max-width:520px; margin:0 auto}

/* ---------- specifique : pro ---------- */
.ct-content.ct-page--pro{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--pro .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--pro .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--pro .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--pro .ct-breadcrumb{max-width:var(--ct-cadre); margin:0 auto; padding:14px 28px 0; font-size:var(--ct-fs-12); color:var(--ct-grey); letter-spacing:0.03em}
.ct-content.ct-page--pro .ct-hero{position:relative; height:70vh; min-height:460px; display:flex; align-items:flex-end; overflow:hidden}
.ct-content.ct-page--pro .ct-hero-img{position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,18,28,0.15) 0%, rgba(10,18,28,0.65) 100%); filter: grayscale(85%) contrast(1.1)}
.ct-content.ct-page--pro .ct-hero-content{position:relative; z-index:2; max-width:var(--ct-cadre); margin:0 auto; width:100%; padding:0 28px 56px; color:var(--ct-paper)}
.ct-content.ct-page--pro .ct-hero-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.2em; text-transform:uppercase; color:var(--ct-blue-light); margin-bottom:16px}
.ct-content.ct-page--pro .ct-hero h1{font-size:var(--ct-fs-fluid-34); line-height:1.1; max-width:680px; font-weight:350}
.ct-content.ct-page--pro .ct-hero-sub{margin-top:18px; max-width:480px; font-size:var(--ct-fs-17); color:var(--ct-on-dark); font-weight:300}
.ct-content.ct-page--pro .ct-intro{max-width:var(--ct-cadre); margin:0 auto; padding:100px 28px 90px; display:grid; grid-template-columns:1fr 1.2fr; gap:70px; border-bottom:1px solid var(--ct-line)}
.ct-content.ct-page--pro .ct-intro h2{font-size:var(--ct-fs-32); line-height:1.3}
.ct-content.ct-page--pro .ct-intro p{font-size:var(--ct-fs-17); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:18px}
.ct-content.ct-page--pro .ct-gallery-head p{font-size:var(--ct-fs-14_5); color:var(--ct-grey); font-weight:300}
.ct-content.ct-page--pro .ct-cta-band{max-width:var(--ct-cadre); margin:0 auto; padding:100px 28px; text-align:center}
.ct-content.ct-page--pro .ct-cta-band h2{font-size:var(--ct-fs-34); margin-bottom:16px}
.ct-content.ct-page--pro .ct-cta-band p{font-size:var(--ct-fs-15_5); color:var(--ct-grey); font-weight:300; max-width:460px; margin:0 auto 26px}
.ct-content.ct-page--pro .ct-cta-band a{display:inline-block; font-size:var(--ct-fs-13); letter-spacing:0.06em; background:var(--ct-blue); color:var(--ct-paper); padding:14px 30px; border-radius:2px; transition:opacity .2s}
.ct-content.ct-page--pro .ct-cta-band a:hover{opacity:0.85}
.ct-content.ct-page--pro .ct-price-line{font-size:var(--ct-fs-14_5); color:var(--ct-grey); font-weight:300; margin-bottom:26px}

/* ---------- specifique : qui-suis-je ---------- */
.ct-content.ct-page--qui-suis-je{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--qui-suis-je .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--qui-suis-je .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--qui-suis-je .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--qui-suis-je .ct-closing{max-width:600px; margin:0 auto; padding:80px 28px 120px; text-align:center; border-top:1px solid var(--ct-line)}
.ct-content.ct-page--qui-suis-je .ct-closing .ct-eyebrow{margin-bottom:20px; display:block}
.ct-content.ct-page--qui-suis-je .ct-closing p{font-size:var(--ct-fs-17); color:var(--ct-body); font-weight:300; line-height:1.8; margin-bottom:28px}

/* ---------- specifique : regards ---------- */
.ct-content.ct-page--regards{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--regards .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--regards .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--regards .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--regards .ct-mosaic-hero{position:relative; height:74vh; min-height:480px; overflow:hidden}
.ct-content.ct-page--regards .ct-mosaic-grid img{filter:grayscale(75%) contrast(1.1); transition:transform 8s ease}
.ct-content.ct-page--regards .ct-mosaic-text{text-align:center; max-width:640px; padding:0 28px; color:var(--ct-paper)}
.ct-content.ct-page--regards .ct-mosaic-text .ct-eyebrow{color:var(--ct-blue-light); margin-bottom:22px; display:block}
.ct-content.ct-page--regards .ct-mosaic-text h1{font-size:var(--ct-fs-fluid-38-2); font-weight:350; line-height:1.1; margin-bottom:26px}
.ct-content.ct-page--regards .ct-mosaic-text p{font-size:var(--ct-fs-17); color:var(--ct-on-dark); font-weight:300; line-height:1.85; max-width:480px; margin:0 auto}
.ct-content.ct-page--regards .ct-closing{max-width:640px; margin:0 auto; padding:100px 28px; text-align:center}
.ct-content.ct-page--regards .ct-closing .ct-eyebrow{margin-bottom:22px; display:block}
.ct-content.ct-page--regards .ct-closing p{font-size:var(--ct-fs-21); font-family:"Newsreader", serif; font-style:italic; line-height:1.6; color:var(--ct-ink); margin-bottom:30px}

/* ---------- specifique : serie ---------- */
.ct-content.ct-page--serie{background:var(--ct-paper); color:var(--ct-ink); font-family:"Jost", sans-serif; font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased}
.ct-content.ct-page--serie .ct-eyebrow{font-size:var(--ct-fs-12); letter-spacing:0.16em; text-transform:uppercase; color:var(--ct-blue); font-weight:500}
.ct-content.ct-page--serie .ct-navlinks{display:flex; gap:34px; font-size:var(--ct-fs-14_5); letter-spacing:0.03em}
.ct-content.ct-page--serie .ct-footer-copy{font-size:var(--ct-fs-12); color:var(--ct-grey); width:100%; margin-top:36px}
.ct-content.ct-page--serie .ct-breadcrumb{max-width:var(--ct-cadre); margin:0 auto; padding:14px 28px 0; font-size:var(--ct-fs-12); color:var(--ct-grey); letter-spacing:0.03em}

/* ---------- TYPOGRAPHIE MULTILINGUE ---------- */
/* ---------- TYPOGRAPHIE MULTILINGUE ----------
   L'allemand produit des mots composes tres longs (Personalisierungs-
   moeglichkeiten, Veranstaltungsfotografie). Sans cesure, ils debordent des
   colonnes etroites et des titres a largeur contrainte.
   `hyphens` s'appuie sur l'attribut lang du document, que WordPress renseigne
   automatiquement selon la langue du site (et selon la langue de la page
   lorsque Polylang est actif).
   ------------------------------------------------------------------ */
.ct-content{overflow-wrap:break-word;}

/* DECISIF. Un enfant de grille ou de flexbox a `min-width:auto` par defaut :
   il refuse de retrecir sous la largeur de son plus long mot insecable. En
   francais cela ne se voit pas ; en allemand, « Veranstaltungsfotografie »
   force la colonne a 450px dans un ecran de 390px et fait deborder la page.
   Mesure sur les 10 blocs en 390px avec un texte allemand realiste :
   sans cette regle, 5 pages debordent, jusqu'a 279px. Avec, aucune. */
.ct-content *{min-width:0;}

.ct-content h1,.ct-content h2,.ct-content h3,.ct-content p{hyphens:auto;-webkit-hyphens:auto;}
/* Les libelles courts en majuscules espacees ne doivent jamais etre coupes. */
.ct-content .ct-eyebrow,.ct-content .ct-pole-tag,.ct-content .ct-hero-eyebrow,
.ct-content .ct-card-num,.ct-content .ct-expo-tag,.ct-content .ct-breadcrumb{
  hyphens:none;-webkit-hyphens:none;
}

/* Ancres internes + header sticky. La page Ausstellungen a une barre de liens
   (#a-venir, #projets, #passees) et le header d'Uncode reste colle en haut :
   sans marge de defilement, le titre vise se retrouve masque sous le header.
   Ajuster --ct-header-h a la hauteur reelle du header une fois Uncode regle. */
.ct-content{--ct-header-h:90px;}
.ct-content [id]{scroll-margin-top:var(--ct-header-h);}

/* Le seul `white-space:nowrap` des maquettes. Il protege un libelle court
   (« En savoir plus ») d'une coupure disgracieuse, mais son equivalent
   allemand deborde de 88px sur mobile. On le leve sous 860px. */
@media (max-width:860px){
  .ct-content .ct-expo-note a{white-space:normal;}
}

/* ---------- ALIGNEMENT SUR LA NAVIGATION ----------
   Ecart volontaire avec les maquettes : voir le commentaire du cadre, en
   tete de fichier. Retirer ce bloc rend aux sections concernees le cadrage
   d'origine, decale de 28 px.
   ------------------------------------------------- */
.ct-content.ct-content .ct-expo-inner,
.ct-content.ct-content .ct-approach-inner,
.ct-content.ct-content .ct-occasions-inner,
.ct-content.ct-content .ct-audience-inner,
.ct-content.ct-content .ct-expo-note{
  max-width:var(--ct-cadre-contenu);
}

/* ---------- UNIQUE REGLE HORS WRAPPER ----------
   Defilement doux pour les ancres de la page Ausstellungen.
   Retirer cette regle si Uncode gere deja le smooth scroll. */
html{scroll-behavior:smooth;}
