/*
Theme Name: HEXIUM studio
Theme URI: https://hexiumstudio.fr
Author: HEXIUM studio
Author URI: https://hexiumstudio.fr
Description: Thème bloc sur mesure pour HEXIUM studio, architecte (Paris 17e et Seine-et-Marne). Noir et blanc, une seule grotesque (Archivo), index numéroté, filtres, grille d'images, fiches projet avec carrousels et zoom.
Version: 1.0.1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hexium-studio
*/

/* ---- Variables (design-tokens, tuile 2 « Nom fragmenté ») ---- */
:root{
  --accent-hover:rgba(254,142,170,.5);
  --pink:rgba(254,142,170,.5);
  --pink-solid:#FE8EAA;
  --ink:#000000;--paper:#FFFFFF;--muted:#595959;--surface:#F2F2F2;--hair:#8C8C8C;
  --rule:2px solid var(--ink);
  --font:"Archivo","Arial Narrow",sans-serif;
  --w-cond:62;
  --fs-label:.75rem;--fs-small:.875rem;--fs-body:1.0625rem;--fs-h3:1.5rem;--fs-h2:2.25rem;
  --fs-h1:clamp(3rem,7vw,5.5rem);--fs-logo:clamp(4.5rem,17vw,15rem);--fs-logo-s:clamp(3.25rem,10vw,8.5rem);
  --gutter:clamp(16px,4vw,48px);--gap-section:clamp(4rem,9vw,8rem);--gap-grid:clamp(24px,3vw,48px);
  --ease:cubic-bezier(.2,.6,.2,1);
}
:root[data-theme="dark"]{--ink:#FFFFFF;--paper:#000000;--muted:#A6A6A6;--surface:#1A1A1A;--hair:#8C8C8C;color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}

/* ---- Base ---- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-stretch:100%;font-weight:400;font-size:var(--fs-body);line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.wp-site-blocks{padding:0}
.wp-site-blocks > *{margin-block:0}
.wp-site-blocks > * + *{margin-block-start:0}
.wp-block-group,.wp-block-heading,.wp-block-image,.wp-block-list,.wp-block-buttons,.wp-block-post-title,.wp-block-query{margin-block:0}
p{margin-block:0}
.wrap{padding-inline:var(--gutter);max-width:1600px;margin-inline:auto;width:100%}
.sect{padding-block:var(--gap-section) 0}
.sect-first{padding-block-start:0}
.label{font-size:var(--fs-label);font-weight:600;font-stretch:100%;letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
.muted{color:var(--muted)}
.data{font-size:var(--fs-small);font-weight:500;font-stretch:90%;letter-spacing:.02em;line-height:1.5;color:var(--muted)}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2.5rem;padding-top:1rem;border-top:var(--rule)}
.sec-head h2,.sec-head .wp-block-heading{margin:0;font-size:var(--fs-h2);font-weight:700;font-stretch:62%;line-height:1;text-transform:uppercase}
.h1,h1.h1{font-size:var(--fs-h1);font-weight:800;font-stretch:62%;line-height:.9;text-transform:uppercase;text-wrap:balance;margin:0}
.page-head{padding-top:1rem;border-top:var(--rule);margin-top:clamp(1.5rem,4vw,3rem)}
.skip{position:absolute;left:var(--gutter);top:-4rem;z-index:100;background:var(--paper);color:var(--ink);border:2px solid var(--ink);padding:.6rem 1rem;text-decoration:none}
.skip:focus{top:.75rem}

/* ---- Barre de marque + menu ---- */
.bar{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;padding-block:1.25rem 0}
.tools{display:flex;flex-direction:column;align-items:flex-end}
.tools .where{text-align:right;margin:.5rem 0 0}
.menu{margin:0}
.menu .wp-block-navigation__container{display:flex;flex-wrap:wrap;gap:clamp(2rem,7vw,7rem);list-style:none;margin:0;padding:0}
.menu .wp-block-navigation-item__content{
  display:inline-block;padding:.5rem .6rem;margin-inline:-.6rem;text-decoration:none;
  font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  background:linear-gradient(var(--accent-hover),var(--accent-hover)) 0 0/0 100% no-repeat;
  transition:background-size .3s var(--ease),color .2s;
}
.menu .wp-block-navigation-item__content:hover{background-size:100% 100%;color:var(--ink)}
.menu .current-menu-item > .wp-block-navigation-item__content,
.menu .wp-block-navigation-item__content[aria-current]{box-shadow:inset 0 -2px 0 currentColor}

/* ---- Logo : nom fragmenté ---- */
.brand{position:relative;width:fit-content;max-width:100%;padding:.35rem .5rem;margin:-.35rem 0 0 -.5rem;
  font-size:clamp(1.05rem,1.7vw,1.4rem);font-weight:900;font-stretch:62%;line-height:.82;letter-spacing:-.01em;text-transform:uppercase;
  transition:background-color .25s var(--ease),color .25s var(--ease)}
.brand p{margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit}
.brand .light{font-weight:300;letter-spacing:.01em}
.brand a{text-decoration:none;color:inherit}
.brand a::after,.logo-link a::after{content:"";position:absolute;inset:0}
.brand:hover{background:var(--accent-hover);color:var(--ink)}
.logo{margin:clamp(2rem,6vw,5rem) 0 0;font-weight:900;font-stretch:calc(var(--w-cond) * 1%);font-size:var(--fs-logo);line-height:.8;letter-spacing:-.01em;text-transform:uppercase}
.logo em{display:block;font-style:normal;font-weight:300;letter-spacing:.01em}
.lede{margin:1.75rem 0 0;font-size:var(--fs-h3);font-weight:500;font-stretch:75%;line-height:1.2;text-wrap:balance}
.logo-link{position:relative;width:fit-content;max-width:100%;margin:clamp(2rem,6vw,4.5rem) 0 0;
  font-weight:900;font-stretch:calc(var(--w-cond) * 1%);font-size:var(--fs-logo-s);line-height:.8;letter-spacing:-.01em;text-transform:uppercase;
  transition:background-color .25s var(--ease)}
.logo-link p{margin:0;font:inherit;letter-spacing:inherit}
.logo-link .light{font-weight:300;letter-spacing:.01em}
.logo-link a{text-decoration:none;color:inherit}
.logo-link:hover{background:var(--accent-hover);color:var(--ink)}

/* ---- Boutons ---- */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:1rem}
.wp-block-button .wp-block-button__link,.btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.85rem 2rem;
  font:inherit;font-size:var(--fs-small);font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;
  color:#000;background:#FE8EAA;border:2px solid #FE8EAA;border-radius:0;cursor:pointer;text-decoration:none;
  transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);
}
.wp-block-button .wp-block-button__link:hover,.btn:hover{background:rgba(254,142,170,.5);color:var(--ink);border-color:var(--ink)}
.wp-block-button .wp-block-button__link:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
/* variantes sobres : bascule de thème, filtres */
.theme-toggle .wp-block-button__link{min-height:44px;padding:.5rem 1rem;font-size:var(--fs-label);font-weight:600;color:var(--ink);background:none;border-color:var(--ink)}
.theme-toggle .wp-block-button__link:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--ink)}
.tools .wp-block-buttons{margin-top:.75rem}
.cta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:2rem;padding-top:1rem;border-top:var(--rule)}
.cta h2{margin:0;font-size:var(--fs-h2);font-weight:700;font-stretch:62%;line-height:.95;text-transform:uppercase;text-wrap:balance}
.cta .label{margin:0 0 .75rem}
.cta-start{justify-content:flex-start}

/* ---- Filtres ---- */
.filter-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem}
.filters.wp-block-buttons{gap:.25rem 2rem;padding:0 .5rem}
.filters .wp-block-button .wp-block-button__link{
  font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:.75rem 0;min-height:44px;
  transition:color .2s,border-color .2s,background-color .2s;
}
.filters .wp-block-button .wp-block-button__link:hover{color:var(--ink);background:var(--accent-hover);box-shadow:-.5rem 0 0 var(--accent-hover),.5rem 0 0 var(--accent-hover);border-color:transparent}
.filters .wp-block-button .wp-block-button__link[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.filters .count{font-weight:400;margin-left:.35em;font-variant-numeric:tabular-nums}
.status{margin:0}

/* ---- Index numéroté ---- */
.index{margin:2.5rem 0 0;padding:0;border-top:var(--rule)}
.index-row{position:relative;break-inside:avoid;border-bottom:1px solid var(--hair);display:flex;align-items:baseline;gap:1.25rem;
  padding:.7rem .6rem;margin-inline:-.6rem;transition:background-color .2s,color .2s;
  font-weight:700;font-stretch:62%;font-size:var(--fs-h3);text-transform:uppercase;line-height:1.1}
.index-row p{margin:0}
.index-row a{text-decoration:none;color:inherit}
.index-row .ti a::after{content:"";position:absolute;inset:0}
.index-row .n{font-size:var(--fs-label);font-stretch:100%;font-weight:600;letter-spacing:.14em;min-width:2.2ch;font-variant-numeric:tabular-nums}
.index-row .meta{display:flex;align-items:baseline;gap:1.25rem;margin-left:auto;font-size:var(--fs-label);font-stretch:100%;font-weight:600;letter-spacing:.14em;line-height:1.3}
.index-row .meta p{color:var(--muted);transition:color .2s}
.index-row .y{min-width:4ch;text-align:right;font-weight:500;font-variant-numeric:tabular-nums}
.index-row:hover{background:var(--accent-hover);color:var(--ink)}
.index-row:hover .meta p{color:var(--ink)}
.index--compact{columns:2;column-gap:3rem}
.index--large{margin-top:1.5rem}
.index--large .index-row{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;gap:1.25rem;padding-block:1.1rem;font-size:clamp(2rem,5.6vw,4.25rem);line-height:1}
.index--large .index-row .ti{min-width:0;overflow-wrap:anywhere}
.index--large .meta{display:grid;grid-template-columns:11rem 5.5rem 3.5rem;gap:1rem}
.index--large .meta .y{text-align:right}

/* ---- Grille d'images ---- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-grid) clamp(16px,2vw,32px);margin-top:var(--gap-section)}
.sect .grid:first-child{margin-top:0}
.card{position:relative;margin:0;min-width:0}
.card .wp-block-image{margin:0;aspect-ratio:4/5;background:var(--surface);overflow:hidden}
.card .wp-block-image img{width:100%;height:100%;object-fit:cover}
.card .ph-t{display:none;margin:0}
.card .noimg,.card .err{display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;aspect-ratio:4/5;background:var(--surface)}
.card .noimg .ph-t,.card .err .ph-t{display:block;font-size:clamp(2rem,5vw,4rem);font-weight:800;font-stretch:62%;line-height:.9;text-transform:uppercase;text-wrap:balance}
.card .err img{display:none}
.card-cap{display:flex;align-items:baseline;gap:.9rem;margin-top:.9rem;padding-top:.7rem;border-top:var(--rule)}
.card-cap p{margin:0}
.card .n{font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.card .ti{font-size:var(--fs-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:background-color .2s}
.card .ti a{text-decoration:none;color:inherit}
.card .ti a::after{content:"";position:absolute;inset:0}
.card .ty{margin-left:auto;font-size:var(--fs-label);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:right}
.card:hover .ti{background:var(--accent-hover);color:var(--ink);box-shadow:-.35rem 0 0 var(--accent-hover),.35rem 0 0 var(--accent-hover)}
.card .data{margin:.5rem 0 0}
@media (min-width:1025px){
  .card.wide{grid-column:span 2}
  .card.wide .wp-block-image,.card.wide .noimg{aspect-ratio:8/5}
}

/* ---- Journal (articles) ---- */
.journal .wp-block-post-template{list-style:none;margin:0;padding:0;border-top:var(--rule)}
.journal .wp-block-post-template > li{margin:0}
.entry{display:grid;grid-template-columns:minmax(110px,180px) 1fr minmax(120px,220px);column-gap:2rem;padding-block:1.5rem;border-bottom:1px solid var(--hair)}
.entry .wp-block-post-date{font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.entry .wp-block-post-title{margin:0 0 .5rem;font-size:var(--fs-h3);font-weight:700;font-stretch:62%;text-transform:uppercase;line-height:1.05}
.entry .wp-block-post-title a{text-decoration:none}
.entry .wp-block-post-title a:hover{background:var(--accent-hover);box-shadow:-.35rem 0 0 var(--accent-hover),.35rem 0 0 var(--accent-hover)}
.entry .wp-block-post-excerpt{margin:0;max-width:60ch;text-wrap:pretty}
.entry .wp-block-post-excerpt__excerpt{margin:0}
.entry .side{text-align:right}
.entry .wp-block-post-terms a{display:inline-block;border:1px solid var(--ink);padding:.15rem .5rem;font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.entry .wp-block-post-terms a:hover{background:var(--accent-hover)}
.entry .wp-block-post-terms__separator{display:none}
.journal .wp-block-query-no-results{margin:0;padding-block:1.5rem;border-top:var(--rule);border-bottom:1px solid var(--hair);color:var(--muted)}

/* ---- Pied de page ---- */
.site-foot{padding-block:var(--gap-section) 5.5rem}
.foot{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;padding-top:1rem;border-top:var(--rule)}
.foot p{margin:0 0 .6rem}
.foot address,.foot ul,.foot .coords-p{font-style:normal;list-style:none;margin:0;padding:0;font-size:var(--fs-small);font-weight:500;font-stretch:90%;letter-spacing:.02em;line-height:1.7}
.foot ul{margin:0}
.foot a{display:inline-block;text-decoration:none;padding:.15rem .5rem;margin-inline:-.5rem;transition:background-color .2s,color .2s}
.foot a:hover{background:var(--accent-hover);color:var(--ink)}
.foot .brandname{font-weight:900;font-stretch:62%;font-size:var(--fs-h3);line-height:.9;text-transform:uppercase}
.foot .copy{margin:1rem 0 0;font-size:var(--fs-small);color:var(--muted)}

/* ---- Apparition douce au défilement ---- */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease) var(--d,0s),transform .8s var(--ease) var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}

/* ---- Fiche projet ---- */
.back{margin:clamp(1.5rem,3vw,2.5rem) 0 0 -.6rem}
.back a{display:inline-block;padding:.5rem .6rem;text-decoration:none;transition:background-color .2s,color .2s}
.back a:hover{background:var(--accent-hover);color:var(--ink)}
.sheet-title{display:flex;align-items:baseline;gap:clamp(1rem,3vw,2.5rem);margin:1rem 0 0}
.sheet-title .num{margin:0;font-size:var(--fs-h1);font-weight:200;font-stretch:62%;line-height:.9;font-variant-numeric:tabular-nums}
.sheet-title .wp-block-post-title{margin:0}
.sheet-info{display:grid;grid-template-columns:1fr 1fr;gap:1rem clamp(2rem,6vw,6rem);margin-top:clamp(2rem,4vw,3.5rem);padding-top:1rem;border-top:var(--rule)}
.sheet-info .data{margin:0;color:var(--ink);font-size:var(--fs-body)}
.sheet-info .text{margin:0;max-width:62ch;text-wrap:pretty;line-height:1.6}
.pn{display:grid;grid-template-columns:1fr 1fr;border-top:var(--rule)}
.pn-a{position:relative;padding:1.1rem .6rem 1.4rem;transition:background-color .2s,color .2s}
.pn-a + .pn-a{text-align:right}
.pn-a:hover{background:var(--accent-hover);color:var(--ink)}
.pn-a:hover .label{color:var(--ink)}
.pn-a p{margin:0}
.pn .pt{display:flex;align-items:baseline;gap:1rem;margin-top:.75rem;font-size:clamp(1.75rem,4.2vw,3.25rem);font-weight:700;font-stretch:62%;text-transform:uppercase;line-height:1}
.pn-a + .pn-a .pt{justify-content:flex-end}
.pn .pt .n{font-size:var(--fs-label);font-stretch:100%;font-weight:600;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.pn .pt a{text-decoration:none}
.pn .pt a::after{content:"";position:absolute;inset:0}
.ongoing{list-style:none;margin:0;padding:0;border-top:var(--rule)}
.ongoing li{padding-block:1.1rem;border-bottom:1px solid var(--hair);color:var(--ink)}
.ongoing abbr{text-decoration:none;cursor:help}

/* ---- Carrousels (images / plans et dessins) ---- */
.carousels{display:grid;gap:clamp(3rem,7vw,6rem);margin-top:clamp(2.5rem,5vw,4.5rem)}
.carousel{margin:0;padding-block-start:var(--gap-section)}
.car-head{display:flex;align-items:baseline;gap:1rem;border-top:var(--rule);padding-top:.8rem;margin-bottom:.9rem}
.car-head .wp-block-heading{margin:0;font-size:var(--fs-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-stretch:100%;line-height:1.3}
.car-head .car-count{margin:0 0 0 auto;font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;font-variant-numeric:tabular-nums;color:var(--muted)}
.car-stage{position:relative;background:var(--surface);height:clamp(300px,72vh,760px);display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pan-y;cursor:pointer}
.car-stage.is-plans{background:#fff}
.car-stage.is-left{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Ccircle cx='22' cy='22' r='20' fill='%23fff' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M26 12 14 22l12 10' fill='none' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") 22 22, w-resize}
.car-stage.is-right{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Ccircle cx='22' cy='22' r='20' fill='%23fff' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M18 12l12 10-12 10' fill='none' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") 22 22, e-resize}
.car-stage.is-center{cursor:zoom-in}
.car-slide{margin:0;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(8px,1.5vw,20px)}
.js .car-slide{opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s}
.js .car-slide.is-on{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
.car-slide .wp-block-image{margin:0;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center;height:100%}
.car-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
/* sans JavaScript : les images s'empilent simplement */
html:not(.js) .car-stage{height:auto;display:block;overflow:visible}
html:not(.js) .car-slide{position:static}
.car-nav{display:flex;align-items:stretch;gap:0;margin-top:.9rem}
.car-btn{font:inherit;font-size:var(--fs-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-stretch:100%;color:var(--ink);background:transparent;border:2px solid var(--ink);border-radius:0;min-height:48px;padding:.6rem 1.25rem;cursor:pointer;transition:background-color .2s}
.car-btn + .car-btn{margin-left:-2px}
.car-btn:hover{background:var(--pink)}
.car-hint{margin-left:auto;align-self:center;font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.car-stage:focus-visible,.car-btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media (max-width:640px){.car-hint{display:none}.car-btn{flex:1}}
@media (prefers-reduced-motion:reduce){.car-slide,.car-slide.is-on{transition:none}}

/* ---- Visionneuse (agrandir / zoomer) ---- */
.lb{position:fixed;inset:0;z-index:200;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;touch-action:none}
.lb[hidden]{display:none}
.lb-bar{display:flex;align-items:center;gap:0;padding:12px var(--gutter);border-bottom:var(--rule);flex:0 0 auto}
.lb-count{font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;font-variant-numeric:tabular-nums;color:var(--muted);margin-right:auto}
.lb-view{position:relative;flex:1 1 auto;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:zoom-in;user-select:none}
.lb-view.is-zoomed{cursor:grab}
.lb-view.is-drag{cursor:grabbing}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;transform-origin:0 0;will-change:transform;-webkit-user-drag:none;user-select:none;touch-action:none}
.lb-side{position:absolute;top:50%;transform:translateY(-50%);z-index:2}
.lb-side.prev{left:12px}.lb-side.next{right:12px}
.lb-cap{flex:0 0 auto;padding:10px var(--gutter);border-top:var(--rule);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;gap:1rem}
.lb-cap .keys{margin-left:auto}
.lb .car-btn{background:var(--paper)}
.lb .car-btn:hover{background:var(--pink)}
.lb.is-nozoom .lb-view{cursor:default}
.lb.is-nozoom .zoom-only{display:none}
body.lb-open{overflow:hidden}
@media (max-width:640px){.lb-cap .keys{display:none}}

/* ---- Galeries OBJETS / SUJETS ---- */
.gal-objets,.gal-sujets{margin:0}
.gal-objets{display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(16px,2vw,32px);row-gap:clamp(3rem,8vw,8rem);align-items:start}
.gal .item{margin:0;position:relative;aspect-ratio:4/5;background:var(--surface);cursor:zoom-in}
.gal.no-zoom .item{cursor:default}
.gal .item img{width:100%;height:100%;object-fit:cover}
.gal .item::after{content:"";position:absolute;left:0;right:0;top:calc(100% + .9rem);height:.9rem;border-top:var(--rule);background:transparent;transition:background-color .25s var(--ease);pointer-events:none}
.gal .item:hover::after{background:var(--accent-hover)}
.gal-objets .item:nth-child(1){grid-column:1 / span 6;aspect-ratio:1/1}
.gal-objets .item:nth-child(2){grid-column:9 / span 4;align-self:end}
.gal-objets .item:nth-child(3){grid-column:2 / span 4}
.gal-objets .item:nth-child(4){grid-column:7 / span 5;align-self:center;aspect-ratio:5/4}
.gal-objets .item:nth-child(5){grid-column:1 / span 5;aspect-ratio:5/4}
.gal-objets .item:nth-child(6){grid-column:8 / span 4;margin-top:clamp(2rem,6vw,6rem);aspect-ratio:1/1}
.gal-objets .item:nth-child(7){grid-column:2 / span 3}
.gal-objets .item:nth-child(8){grid-column:6 / span 3;margin-top:clamp(2rem,5vw,5rem)}
.gal-objets .item:nth-child(9){grid-column:10 / span 3;aspect-ratio:1/1}
.gal-sujets{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-grid)}
.gal-sujets .item:nth-child(3n+2){margin-top:clamp(1.5rem,4vw,3.5rem)}
.js .gal-sujets .reveal:nth-child(3n+2){--d:.08s}
.js .gal-sujets .reveal:nth-child(3n+3){--d:.16s}

/* ---- Contact ---- */
.contact{display:grid;grid-template-columns:5fr 7fr;column-gap:clamp(2rem,6vw,6rem);row-gap:var(--gap-section);align-items:start}
.contact h2{margin:0 0 1rem;font-size:var(--fs-h2);font-weight:700;font-stretch:62%;line-height:1;text-transform:uppercase}
.contact .lead{margin:0;max-width:62ch;text-wrap:pretty}
.team .name{margin:.75rem 0 .5rem;font-size:var(--fs-h2);font-weight:700;font-stretch:62%;line-height:1;text-transform:uppercase}
.team p{max-width:40ch;text-wrap:pretty}
.coords{margin:2.5rem 0 0;padding:0;border-top:var(--rule)}
.coords-row{display:grid;grid-template-columns:minmax(90px,9rem) 1fr;column-gap:1.25rem;align-items:baseline;padding-block:.9rem;border-bottom:1px solid var(--hair)}
.coords-row p{margin:0}
.coords-row .dd{font-weight:500}
.coords a{display:inline-block;text-decoration:none;padding:.15rem .5rem;margin-inline:-.5rem;transition:background-color .2s,color .2s;overflow-wrap:anywhere}
.coords a:hover{background:var(--accent-hover);color:var(--ink)}
.tarifs{margin-top:var(--gap-section);padding-top:1rem;border-top:var(--rule)}
.tarifs p{margin:0 0 1.5rem;max-width:62ch;text-wrap:pretty}
.tarifs .actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2rem}
.tarifs .actions p{margin:0}
.tl a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;padding:.25rem .5rem;margin-inline:-.5rem;transition:background-color .2s,color .2s}
.tl a:hover{background:var(--accent-hover);color:var(--ink)}
.apropos{columns:2;column-gap:clamp(2rem,6vw,6rem)}
.apropos p{margin:0 0 1.5rem;break-inside:avoid;text-wrap:pretty}
.apropos p:last-child{margin-bottom:0}
.apropos strong{font-weight:700}
/* Formulaire Jetpack : mêmes champs que la maquette */
.contact .wp-block-jetpack-contact-form,.contact .contact-form{margin-top:2.5rem;display:grid;gap:1.75rem}
.contact .contact-form label,.contact .grunion-field-label{font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;padding-inline:.5rem;display:block}
.contact .contact-form input[type=text],.contact .contact-form input[type=email],.contact .contact-form input[type=tel],.contact .contact-form input[type=url],.contact .contact-form textarea{
  font:inherit;font-weight:500;color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);border-radius:0;padding:.75rem .5rem;width:100%;min-height:52px;transition:background-color .25s var(--ease)}
.contact .contact-form textarea{min-height:10rem;resize:vertical;line-height:1.5}
.contact .contact-form input:hover,.contact .contact-form textarea:hover{background:var(--accent-hover)}
.contact .contact-form .wp-block-button__link,.contact .contact-form button[type=submit]{background:#FE8EAA;color:#000;border:2px solid #FE8EAA;border-radius:0;font:inherit;font-size:var(--fs-small);font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.85rem 2rem;min-height:52px;cursor:pointer}
.contact .contact-form .wp-block-button__link:hover,.contact .contact-form button[type=submit]:hover{background:rgba(254,142,170,.5);color:var(--ink);border-color:var(--ink)}

/* ---- Pages de texte (pages locales Paris 17e, 77, honoraires...) ---- */
.page-text{padding-block:clamp(2rem,4vw,3.5rem) 0}
.page-text .entry-content > *{max-width:820px}
.page-text .entry-content > .alignwide,.page-text .entry-content > .alignfull{max-width:none}
.page-text .entry-content h2,.page-text .entry-content h3{font-weight:700;font-stretch:62%;text-transform:uppercase;line-height:1.05}
.page-text .entry-content p{text-wrap:pretty}
.page-text .entry-content a:hover{background:var(--accent-hover)}

/* ---- Accident : la chaise Rietveld (page d'accueil) ---- */
.hx-accident{position:fixed;left:0;top:0;z-index:50;display:block;width:max(25vw,140px);visibility:hidden;pointer-events:auto;will-change:transform;cursor:pointer;transform:translate3d(-300px,-300px,0)}
.hx-accident.is-fallback img{mix-blend-mode:multiply}
.hx-accident img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.hx-accident:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.hx-ctrl{position:fixed;left:var(--gutter);bottom:20px;z-index:60;font:inherit;font-size:var(--fs-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;min-height:44px;padding:.5rem 1rem;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:0;cursor:pointer;transition:background-color .25s var(--ease)}
.hx-ctrl:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--ink)}

/* ---- Responsive ---- */
@media (max-width:1024px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:repeat(2,1fr)}
  .index--large .meta{grid-template-columns:9rem 5rem 3rem}
  .gal-sujets{grid-template-columns:repeat(2,1fr)}
  .gal-sujets .item:nth-child(3n+2){margin-top:0}
  .gal-sujets .item:nth-child(2n){margin-top:clamp(1.5rem,4vw,3rem)}
  .gal-sujets .item:last-child{grid-column:1 / -1;margin-top:0;aspect-ratio:16/10}
  .gal-objets{grid-template-columns:repeat(2,1fr)}
  .gal-objets .item:nth-child(n){grid-column:auto;margin-top:0;align-self:start;aspect-ratio:4/5}
  .gal-objets .item:nth-child(even){margin-top:clamp(2rem,6vw,4rem)}
  .gal-objets .item:nth-child(9){grid-column:1 / -1;margin-top:0;aspect-ratio:16/10}
}
@media (max-width:900px){
  .contact{grid-template-columns:1fr}
  .coords-row{grid-template-columns:1fr;row-gap:.25rem}
  .apropos{columns:1}
}
@media (max-width:720px){
  .bar{flex-direction:column;gap:1.25rem}
  .menu .wp-block-navigation__container{gap:.25rem 2.25rem}
  .tools{align-items:flex-start}
  .tools .where{text-align:left}
  .grid{grid-template-columns:1fr}
  .index--compact{columns:1}
  .index-row{gap:.9rem}
  .index--large .index-row{grid-template-columns:2.2rem minmax(0,1fr);gap:.4rem .75rem;padding-block:1rem}
  .index--large .meta{grid-column:2;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
  .index--large .meta .y{text-align:left}
  .entry{grid-template-columns:1fr;row-gap:.5rem}
  .entry .side{text-align:left}
  .sec-head{flex-direction:column;gap:.25rem}
  .sheet-info{grid-template-columns:1fr}
  .sheet-title{flex-direction:column;gap:.5rem}
  .pn{grid-template-columns:1fr}
  .pn-a + .pn-a{text-align:left}
  .pn-a + .pn-a .pt{justify-content:flex-start}
  .foot{grid-template-columns:1fr}
  .filter-row{flex-direction:column;align-items:flex-start}
  .gal-sujets,.gal-objets{grid-template-columns:1fr}
  .gal-sujets .item:nth-child(n),.gal-objets .item:nth-child(n){grid-column:auto;margin-top:0;aspect-ratio:4/5}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .js .reveal{opacity:1;transform:none}
}

/* ---- Menu fixe au défilement ---- */
.wp-site-blocks>header.wp-block-template-part,.wp-site-blocks>header.wp-block-template-part>.wrap{display:contents}
.wp-site-blocks>header .bar{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:90;background:var(--paper);box-sizing:border-box;width:100%;max-width:1600px;margin-inline:auto;padding:1.25rem var(--gutter) .9rem;box-shadow:0 0 0 100vmax var(--paper);clip-path:inset(0 -100vmax)}
.wp-site-blocks>header .wrap>:not(.bar){margin-left:max(var(--gutter),calc((100% - 1600px)/2 + var(--gutter)))}
@media (max-width:700px){.wp-site-blocks>header .bar{gap:.5rem;padding-block:.75rem .6rem}.wp-site-blocks>header .bar .tools .where{display:none}.wp-site-blocks>header .bar .menu .wp-block-navigation__container{gap:.25rem 1.5rem}}
