/* ============================================================
   XAVIER S. — Thème enfant Twenty Twenty-Four
   Design tokens & layout custom calqués sur la maquette validée
   ============================================================ */

:root{
  --bg:#FAF6EF;
  --bg-alt:#F2EBE0;
  --ink:#1A1A1A;
  --ink-soft:#4A4540;
  --line:#D9CFBF;
  --line-soft:#EAE2D2;
  --copper:#B07A3F;
  --copper-soft:#C99A65;
  --noir:#0F0F0F;
  --serif:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --sans:'Inter',-apple-system,system-ui,sans-serif;
  --serif-zh:'Noto Serif SC','Cormorant Garamond',serif;
}

html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Liens — soulignement cuivre élégant qui se déploie depuis le centre */
a{color:inherit;text-decoration:none;transition:color .25s ease}
a:hover{color:var(--copper)}

/* Boutons WordPress — alignés sur le design system */
.wp-block-button__link{
  background:var(--ink)!important;
  color:#fff!important;
  border:0;
  border-radius:0!important;
  font-family:var(--sans);
  font-size:.75rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-weight:500;
  padding:1.125rem 2.25rem!important;
  transition:background .3s ease;
}
.wp-block-button__link:hover{background:var(--copper)!important}
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent!important;
  color:var(--ink)!important;
  border:1px solid var(--ink)!important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  background:var(--ink)!important;color:#fff!important;
}

/* ============ BARRE DE LANGUE (au-dessus du header) ============ */
.lang-bar{
  border-bottom:1px solid var(--line);
  background:var(--bg);
  font-family:var(--sans);
  font-size:.625rem;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.lang-bar-inner{
  max-width:1440px;margin:0 auto;padding:.5rem 2.5rem;
  display:flex;justify-content:flex-end;gap:1.125rem;align-items:center;
  color:var(--ink-soft);
}
.lang-bar a{padding:0 .25rem;color:var(--ink-soft)}
.lang-bar a.active,.lang-bar a.wpml-ls-current-language{
  color:var(--ink);border-bottom:1px solid var(--copper);padding-bottom:2px;
}
.lang-bar a:hover{color:var(--copper)}
.lang-bar .zh,.lang-bar a[lang="zh-CN"]{
  font-family:var(--serif-zh);font-size:.8125rem;letter-spacing:.05em;
}
.lang-bar .sep{color:var(--line)}

/* ============ SITE TITLE / LOGO ============ */
.brand-mark{
  font-family:var(--serif);
  font-size:1.375rem;
  letter-spacing:.4em;
  font-weight:400;
  text-align:center;
  white-space:nowrap;
}
.brand-mark .dot{color:var(--copper)}

/* ============ HERO ============ */
.hero{
  position:relative;height:88vh;min-height:620px;
  background:#000 center/cover no-repeat;
  display:flex;align-items:flex-end;color:#fff;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,.5) 100%);
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:2;
  max-width:1440px;margin:0 auto;padding:3.75rem 2.5rem;width:100%;
  display:flex;justify-content:space-between;align-items:flex-end;gap:2.5rem;flex-wrap:wrap;
}
.hero-title{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(2.5rem,6vw,5.25rem);line-height:1;
  letter-spacing:.02em;max-width:14ch;color:#fff;margin:0;
}
.hero-title em{font-style:italic;color:var(--copper-soft)}
.hero-meta{
  font-family:var(--sans);font-size:.6875rem;
  letter-spacing:.25em;text-transform:uppercase;
  border-left:1px solid rgba(255,255,255,.3);padding-left:1.125rem;
}
.hero-meta strong{display:block;font-weight:500;font-size:.875rem;letter-spacing:.18em;margin-bottom:.375rem}

/* ============ SIGNATURE / EYEBROW ============ */
.eyebrow{
  font-family:var(--sans);font-size:.6875rem;
  letter-spacing:.32em;text-transform:uppercase;
  color:var(--copper);font-weight:500;margin-bottom:1.5rem;
  display:block;
}
.signature-block{
  max-width:880px;margin:0 auto;padding:7.5rem 2.5rem 5rem;text-align:center;
}
.signature-block h2{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.25;
  letter-spacing:.01em;color:var(--ink);
}
.signature-block h2 em{font-style:italic;color:var(--ink-soft)}
.divider{width:60px;height:1px;background:var(--copper);margin:2.5rem auto 0;display:block}

/* ============ FEATURED — GRILLE ASYMÉTRIQUE ============ */
.featured-section{
  max-width:1440px;margin:0 auto;padding:2.5rem 2.5rem 7.5rem;
}
.featured-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:3rem;gap:1.5rem;flex-wrap:wrap;
}
.featured-head h3{
  font-family:var(--serif);font-weight:300;font-size:2.25rem;letter-spacing:.02em;margin:0;
}
.see-all{
  font-family:var(--sans);font-size:.6875rem;letter-spacing:.25em;text-transform:uppercase;
  border-bottom:1px solid var(--copper);padding-bottom:.25rem;color:var(--ink);
}
.featured-grid{
  display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;
}
.work-item{
  position:relative;overflow:hidden;background:#eee;cursor:pointer;
}
.work-item img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.22,1,.36,1);
}
.work-item:hover img{transform:scale(1.04)}
.work-item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.55) 100%);
  opacity:0;transition:opacity .4s ease;pointer-events:none;
}
.work-item:hover::after{opacity:1}
.work-info{
  position:absolute;left:1.5rem;right:1.5rem;bottom:1.25rem;color:#fff;
  font-family:var(--sans);transform:translateY(.5rem);opacity:0;
  transition:transform .5s ease,opacity .5s ease;z-index:2;
}
.work-item:hover .work-info{transform:translateY(0);opacity:1}
.work-info .title{font-family:var(--serif);font-size:1.375rem;font-weight:400;letter-spacing:.02em;margin-bottom:.25rem;color:#fff}
.work-info .meta{font-size:.625rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85}

/* Tailles pour la grille asymétrique */
.work-item.w-1{grid-column:span 7;aspect-ratio:3/2}
.work-item.w-2{grid-column:span 5;aspect-ratio:4/5}
.work-item.w-3{grid-column:span 4;aspect-ratio:4/5}
.work-item.w-4{grid-column:span 4;aspect-ratio:4/5}
.work-item.w-5{grid-column:span 4;aspect-ratio:4/5}
.work-item.w-6{grid-column:span 8;aspect-ratio:3/2}
.work-item.w-7{grid-column:span 4;aspect-ratio:1/1}

/* ============ CATÉGORIES ============ */
.categories-section{
  background:var(--bg-alt);padding:7.5rem 2.5rem;
}
.categories-inner{max-width:1440px;margin:0 auto}
.categories-section h3{
  font-family:var(--serif);font-weight:300;font-size:2.25rem;letter-spacing:.02em;margin:0 0 .75rem 0;
}
.categories-section .lead{
  font-family:var(--serif);font-style:italic;font-size:1.25rem;
  color:var(--ink-soft);margin-bottom:3rem;max-width:60ch;
}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.cat-card{
  position:relative;aspect-ratio:4/5;overflow:hidden;
  background:#1a1a1a;cursor:pointer;display:block;
}
.cat-card img{
  width:100%;height:100%;object-fit:cover;
  opacity:.85;transition:opacity .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1);
}
.cat-card:hover img{opacity:1;transform:scale(1.05)}
.cat-label{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:#fff;text-align:center;
  background:rgba(0,0,0,.25);transition:background .4s ease;
}
.cat-card:hover .cat-label{background:rgba(0,0,0,.15)}
.cat-label .num{
  font-family:var(--serif);font-style:italic;font-size:.875rem;
  color:var(--copper-soft);margin-bottom:.5rem;letter-spacing:.05em;
}
.cat-label h4{
  font-family:var(--serif);font-weight:300;font-size:2.125rem;
  letter-spacing:.18em;text-transform:uppercase;margin:0;color:#fff;
}
.cat-label .count{
  font-family:var(--sans);font-size:.625rem;letter-spacing:.25em;
  text-transform:uppercase;margin-top:.625rem;opacity:.7;
}

/* ============ ÉDITIONS — SECTION DOUBLE COLONNE ============ */
.editions-section{
  padding:8.75rem 2.5rem;max-width:1440px;margin:0 auto;
}
.editions-grid{
  display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;align-items:center;
}
.editions-text h3{
  font-family:var(--serif);font-weight:300;
  font-size:2.75rem;line-height:1.15;letter-spacing:.01em;
  margin:0 0 1.75rem 0;
}
.editions-text h3 em{font-style:italic}
.editions-text p{margin-bottom:1.125rem;color:var(--ink-soft);max-width:54ch}
.specs-list{margin-top:2.25rem;border-top:1px solid var(--line);padding:0;list-style:none}
.specs-list li{
  display:grid;grid-template-columns:auto 1fr;gap:1.5rem;
  padding:1.125rem 0;border-bottom:1px solid var(--line);align-items:start;
  list-style:none;
}
.specs-list .num{
  font-family:var(--serif);font-style:italic;color:var(--copper);
  font-size:1.125rem;min-width:1.5rem;
}
.specs-list strong{
  font-family:var(--serif);font-size:1.125rem;font-weight:400;
  display:block;margin-bottom:.125rem;
}
.specs-list span{font-size:.875rem;color:var(--ink-soft)}
.editions-img{
  aspect-ratio:4/5;background:#000 center/cover no-repeat;
}

/* ============ ABOUT TEASER (fond noir) ============ */
.about-teaser{
  background:var(--noir);color:#F2EBE0;padding:8.75rem 2.5rem;
}
.about-inner{max-width:1100px;margin:0 auto;text-align:center}
.about-teaser .eyebrow{color:var(--copper)}
.about-teaser h3{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(1.75rem,3.4vw,2.625rem);line-height:1.45;
  letter-spacing:.01em;color:#F2EBE0;margin:0;
}
.about-teaser .signature-name{
  font-family:var(--serif);font-size:.875rem;letter-spacing:.4em;
  text-transform:uppercase;margin-top:2.5rem;color:var(--copper-soft);
}

/* ============ NEWSLETTER ============ */
.newsletter-section{padding:6.25rem 2.5rem;text-align:center}
.newsletter-inner{max-width:560px;margin:0 auto}
.newsletter-section h3{
  font-family:var(--serif);font-weight:300;font-size:2rem;margin:0 0 .875rem 0;
}
.newsletter-section p{color:var(--ink-soft);margin-bottom:2rem;font-size:.9375rem}
.newsletter-section form{
  display:flex;gap:0;border:1px solid var(--ink);max-width:480px;margin:0 auto;
}
.newsletter-section input[type="email"]{
  flex:1;padding:1rem 1.25rem;border:0;background:transparent;
  font-family:var(--sans);font-size:.875rem;color:var(--ink);outline:0;
}
.newsletter-section input[type="email"]::placeholder{
  color:var(--ink-soft);font-style:italic;
}
.newsletter-section button{
  background:var(--ink);color:#fff;border:0;padding:0 1.75rem;
  font-family:var(--sans);font-size:.6875rem;letter-spacing:.25em;
  text-transform:uppercase;cursor:pointer;
}
.newsletter-section button:hover{background:var(--copper)}
.newsletter-section .legal-mini{font-size:.6875rem;color:var(--ink-soft);margin-top:.875rem}

/* ============ FOOTER ============ */
.site-footer{
  background:var(--noir);color:#C9C0B5;padding:5rem 2.5rem 1.875rem;
  font-family:var(--sans);font-size:.8125rem;
}
.foot-grid{
  max-width:1440px;margin:0 auto;
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem;
}
.foot-grid h5{
  font-family:var(--serif);font-weight:400;font-size:.875rem;
  letter-spacing:.25em;text-transform:uppercase;color:#fff;margin:0 0 1.25rem 0;
}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:.625rem;padding:0;margin:0}
.foot-grid a{color:#C9C0B5}
.foot-grid a:hover{color:var(--copper-soft)}
.foot-bottom{
  max-width:1440px;margin:3.75rem auto 0;padding-top:1.5rem;
  border-top:1px solid #2a2520;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;
  font-size:.6875rem;color:#7d746b;letter-spacing:.06em;
}

/* ============ RESPONSIVE MOBILE ============ */
@media (max-width:980px){
  .hero-inner{padding:2.5rem 1.25rem}
  .signature-block{padding:5rem 1.25rem 3.75rem}
  .featured-section{padding:0 1.25rem 5rem}
  .featured-grid{grid-template-columns:repeat(6,1fr);gap:.875rem}
  .work-item.w-1,.work-item.w-2,.work-item.w-3,.work-item.w-4,
  .work-item.w-5,.work-item.w-6,.work-item.w-7{grid-column:span 6;aspect-ratio:4/5}
  .categories-section{padding:5rem 1.25rem}
  .cat-grid{grid-template-columns:1fr 1fr;gap:.875rem}
  .editions-section{padding:5rem 1.25rem}
  .editions-grid{grid-template-columns:1fr;gap:2.5rem}
  .editions-text h3{font-size:2rem}
  .about-teaser{padding:5rem 1.25rem}
  .foot-grid{grid-template-columns:1fr 1fr;gap:2rem}
}

/* ============ AJUSTEMENTS WORDPRESS / TWENTY TWENTY-FOUR ============ */

/* Réduit les marges par défaut sur les blocs Group plein largeur */
.wp-site-blocks > .wp-block-group{margin-block:0!important}

/* Force la pleine largeur pour les sections custom */
.alignfull{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

/* Container contenu max */
.is-layout-constrained > *:not(.alignfull):not(.alignwide){
  max-width:880px;margin-inline:auto;
}
