:root{--paper:#f6f2ee;--rose:#d8b0aa;--plum:#844b5e;--ink:#262222;--line:#b8afa9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}header{height:72px;position:fixed;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;padding:0 3vw;border-bottom:1px solid #ffffff55;background:#f6f2eee8;backdrop-filter:blur(10px)}header a{text-decoration:none;color:inherit}.logo{font-size:30px;font-weight:900;letter-spacing:-2px}.folio{margin-left:auto;font-size:11px;letter-spacing:.16em}nav{display:flex;gap:28px;margin-left:60px;text-transform:uppercase;font-size:11px;letter-spacing:.13em}.cover{min-height:100vh;padding:110px 4vw 4vw;display:grid;grid-template-columns:45% 55%;position:relative;overflow:hidden}.cover figure{margin:0;height:78vh;overflow:hidden;border-radius:90px 0 0 0}.cover figure img,.image img{width:100%;height:100%;object-fit:cover}.cover-copy{align-self:center;z-index:2}.kicker,.eyebrow,.chapter>span,.contact>span{color:var(--plum);text-transform:uppercase;letter-spacing:.18em;font-size:12px}.cover h1{font-size:clamp(55px,7vw,118px);line-height:.82;letter-spacing:-.065em;margin:25px 0}.cover h1 i,.contact h2 i{font-family:Georgia,serif;font-weight:400;color:var(--plum)}.cover-copy p{max-width:480px;line-height:1.6}.pill{display:inline-block;margin-top:25px;padding:14px 22px;border:1px solid var(--ink);border-radius:99px;text-decoration:none;color:inherit;text-transform:uppercase;font-size:11px;letter-spacing:.12em}.issue{position:absolute;right:2vw;bottom:4vw;background:var(--rose);padding:16px;font-size:10px;letter-spacing:.18em}.spread{display:grid;grid-template-columns:1fr 1fr;min-height:92vh;border-top:1px solid var(--line)}.page{min-height:92vh;position:relative;overflow:hidden}.page.text{padding:10vw 7vw;display:flex;flex-direction:column;justify-content:center}.page.text:after{content:"";position:absolute;top:5%;bottom:5%;right:0;border-right:1px solid var(--line)}.page h2{font-size:clamp(46px,6vw,92px);line-height:.92;letter-spacing:-.055em;margin:20px 0 35px}.page p{max-width:520px;font-size:17px;line-height:1.7}.small,.caption{font-size:13px!important;color:#6c6260}.num{position:absolute;top:4vw;left:4vw;color:var(--plum);font-size:12px;letter-spacing:.2em}.chapter{min-height:75vh;background:var(--plum);color:var(--paper);padding:8vw;position:relative;display:flex;flex-direction:column;justify-content:center}.chapter>span{color:var(--rose)}.chapter strong{position:absolute;right:6vw;top:5vw;font-size:18vw;line-height:1;color:#ffffff0d}.chapter h2{font-size:clamp(60px,9vw,140px);line-height:.83;letter-spacing:-.06em;margin:30px 0;z-index:1}.project .page.image{padding:4vw}.project .page.image img{border-radius:0 70px 0 0}.reverse .page.image img{border-radius:0 0 0 70px}.gallery{padding:8vw 4vw;display:grid;grid-template-columns:1fr 1fr;gap:7vw 3vw}.gallery article img{width:100%;aspect-ratio:4/3;object-fit:cover}.gallery article:nth-child(even){margin-top:10vw}.gallery span{display:block;margin-top:15px;font-size:11px;letter-spacing:.14em}.personal{background:var(--rose);color:var(--ink)}.personal>span{color:var(--plum)}.art .page{padding:3vw}.art img{object-fit:cover}.outro{background:#fff}.collage{padding:4vw;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px}.collage img{width:100%;height:100%;object-fit:cover}.collage img:first-child{grid-row:1/3}.dark{background:var(--ink);color:white}.contact{min-height:100vh;background:var(--ink);color:var(--paper);padding:10vw 6vw;display:flex;flex-direction:column;justify-content:center}.contact h2{font-size:clamp(65px,10vw,150px);line-height:.85;letter-spacing:-.065em;margin:30px 0}.contact>a{color:var(--rose);font-size:clamp(18px,2.5vw,35px);text-decoration:none}.contact p{color:#aaa}.foot{position:absolute;align-self:stretch;margin-top:75vh;display:flex;justify-content:space-between;border-top:1px solid #ffffff33;padding-top:18px;font-size:11px;letter-spacing:.14em}.foot b{font-size:24px}@media(max-width:760px){header{height:62px}nav{display:none}.cover{display:block;padding:95px 20px 35px}.cover figure{height:48vh;margin-top:35px;border-radius:55px 0 0 0}.cover h1{font-size:17vw}.issue{display:none}.spread{display:block;min-height:auto}.page{min-height:70vh}.page.text{padding:90px 28px}.page.text:after{display:none}.page.image{height:70vh}.page h2{font-size:15vw}.chapter{min-height:70vh;padding:80px 28px}.chapter h2{font-size:17vw}.gallery{display:block;padding:70px 20px}.gallery article,.gallery article:nth-child(even){margin:0 0 60px}.art .page{padding:16px;height:70vh}.collage{height:80vh;padding:20px}.contact{padding:90px 28px}.contact h2{font-size:18vw}.foot{margin-top:70vh}.folio{font-size:9px}}
.case{padding:8vw 4vw;border-top:1px solid var(--line);background:var(--paper)}.case:nth-of-type(even){background:#fff}.case-head{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end;margin-bottom:4vw}.case-head h2,.hybrid h2{font-size:clamp(52px,7vw,110px);line-height:.88;letter-spacing:-.06em;margin:14px 0}.case-head>p,.case-head>div>p{max-width:600px;line-height:1.7}.num-static{font-size:12px;letter-spacing:.2em;color:var(--plum)}.mosaic{display:grid;gap:14px}.mosaic figure{margin:0;overflow:hidden;background:#ddd}.mosaic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.mosaic figure:hover img{transform:scale(1.02)}.five{grid-template-columns:1.25fr .75fr .75fr;grid-template-rows:38vw 30vw}.five .hero{grid-row:1/3}.five figure:nth-child(4){grid-column:2/3}.five figure:nth-child(5){grid-column:3/4}.three{grid-template-columns:repeat(3,1fr)}.three figure{aspect-ratio:1/1}.zoomgrid{grid-template-columns:1.4fr .8fr .8fr;grid-template-rows:24vw 24vw}.zoomgrid .hero{grid-row:1/3}.zoomgrid figure:nth-child(4){grid-column:2/4}.digital{background:var(--ink)}.tdb{background:#eaded9}.zoom{background:#fff}.hybrid{display:grid;grid-template-columns:1fr 1fr;min-height:92vh;border-top:1px solid var(--line);background:#fff}.hybrid-copy{padding:8vw 6vw;display:flex;flex-direction:column;justify-content:center}.kitchen-placeholder{margin:4vw;background:var(--rose);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background-color:var(--ink);min-height:72vh}.kitchen-placeholder>div{background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center}.kitchen-placeholder b{font-family:Georgia,serif;font-size:7vw;font-weight:400;color:var(--plum)}.kitchen-placeholder span{font-size:11px;letter-spacing:.16em;text-transform:uppercase}.kitchen-placeholder p{grid-column:1/3;background:var(--plum);color:white;margin:0;display:flex;align-items:center;justify-content:center;letter-spacing:.18em;font-size:11px}.case .pill{margin-top:10px}@media(max-width:760px){.case{padding:80px 20px}.case-head{display:block;margin-bottom:35px}.case-head h2{font-size:15vw}.five,.three,.zoomgrid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto}.five .hero,.zoomgrid .hero{grid-row:auto;grid-column:1/3}.five figure,.three figure,.zoomgrid figure{aspect-ratio:1/1}.five figure:nth-child(4),.five figure:nth-child(5),.zoomgrid figure:nth-child(4){grid-column:auto}.three figure:first-child{grid-column:1/3}.hybrid{display:block}.hybrid-copy{padding:90px 28px}.hybrid h2{font-size:15vw}.kitchen-placeholder{min-height:65vh;margin:20px}.kitchen-placeholder b{font-size:18vw}}
.immo{background:#fff}.immo-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.immo-grid figure{margin:0;overflow:hidden;background:#eee}.immo-grid figure:not(.wide){aspect-ratio:.72}.immo-grid .wide{grid-column:span 3;aspect-ratio:1.55}.immo-grid img{width:100%;height:100%;object-fit:cover;display:block}.carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 18px;scrollbar-width:thin}.carousel figure{margin:0;flex:0 0 min(72vw,780px);height:58vw;max-height:720px;scroll-snap-align:start;background:#111;overflow:hidden}.carousel img{width:100%;height:100%;object-fit:cover;display:block}.tdb-carousel figure{flex-basis:min(48vw,560px);height:auto;aspect-ratio:1}.zolia-story{display:grid;grid-template-columns:1fr 1fr;gap:18px}.zolia-story figure,.kitchen-story figure{margin:0;background:#fff;overflow:hidden}.zolia-story img{width:100%;height:38vw;object-fit:contain;display:block}.zolia-story figcaption,.kitchen-story figcaption{padding:12px 4px;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--plum)}.kitchen-story{padding:4vw;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-content:center}.kitchen-story .plan,.kitchen-story .elevation{grid-column:span 1}.kitchen-story img{width:100%;height:25vw;object-fit:contain;background:white;display:block}.kitchen-story figure:nth-child(n+3) img{object-fit:cover}.intro .page.image img{filter:grayscale(1);object-position:center}.intro .page.image{background:#111}
@media(max-width:760px){.immo-grid{grid-template-columns:1fr 1fr}.immo-grid .wide{grid-column:span 2}.carousel figure{flex-basis:86vw;height:86vw}.tdb-carousel figure{flex-basis:78vw}.zolia-story{grid-template-columns:1fr}.zolia-story img{height:auto;max-height:70vh}.kitchen-story{padding:20px;grid-template-columns:1fr}.kitchen-story .plan,.kitchen-story .elevation{grid-column:auto}.kitchen-story img{height:auto;max-height:70vh}}
/* V4 — une image principale visible, les suivantes au défilement horizontal */
.clean-carousel{display:flex!important;grid-template-columns:none!important;gap:18px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding-bottom:18px;scrollbar-width:thin}
.clean-carousel figure{flex:0 0 min(76vw,860px)!important;width:min(76vw,860px);height:min(58vw,690px)!important;max-height:690px;margin:0;scroll-snap-align:start;background:#fff;overflow:hidden}
.clean-carousel figure img{width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;display:block;background:#fff}
.clean-carousel figure.hero img{object-fit:cover!important}
.tdb-carousel figure{flex-basis:min(62vw,680px)!important;width:min(62vw,680px);height:min(62vw,680px)!important}
.zolia-story figure{flex-basis:min(72vw,820px)!important;width:min(72vw,820px)}
.kitchen-story{padding:4vw!important;align-content:initial!important}
.kitchen-story figure{flex-basis:min(72vw,820px)!important;width:min(72vw,820px);height:auto!important}
.kitchen-story img{height:min(50vw,590px)!important;object-fit:contain!important}
.mini-carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
.gallery .jefco-card .mini-carousel figure{flex:0 0 100%;margin:0;scroll-snap-align:start;aspect-ratio:4/3;overflow:hidden;background:#fff}
.gallery .jefco-card .mini-carousel img{width:100%;height:100%;object-fit:contain;display:block}
@media(max-width:760px){.clean-carousel figure,.zolia-story figure,.kitchen-story figure{flex-basis:88vw!important;width:88vw;height:auto!important}.clean-carousel figure img{height:auto!important;max-height:72vh!important}.tdb-carousel figure{flex-basis:82vw!important;width:82vw;height:82vw!important}.kitchen-story{padding:20px!important}}
/* V5 — toutes les expériences suivent la logique éditoriale Fonia : texte + un seul visuel visible */
.portfolio-row{background:#fff}.portfolio-row:nth-of-type(even){background:var(--paper)}
.carousel-pane{padding:4vw!important;display:flex;align-items:center;min-width:0}
.single-carousel{width:100%;height:100%;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:thin;gap:0;background:#eee}
.single-carousel figure{margin:0;min-width:100%;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;background:#eee}
.single-carousel img{width:100%;height:100%;display:block;object-fit:cover}
.single-carousel.contain figure{background:#fff}.single-carousel.contain img{object-fit:contain;background:#fff}
.carousel-pane:after{content:"←  FAIRE DÉFILER  →";position:absolute;right:5vw;bottom:2vw;background:#f6f2eee8;padding:8px 11px;font-size:9px;letter-spacing:.16em;z-index:3}
@media(max-width:760px){.carousel-pane{padding:16px!important;height:70vh}.single-carousel{height:100%}.carousel-pane:after{right:26px;bottom:24px}}

/* V6 — alternance éditoriale et cadrages */
.spread.project.reverse .page.image{order:1}
.spread.project.reverse .page.text{order:2}
.spread.project.reverse .page.text:after{right:auto;left:0;border-right:0;border-left:1px solid var(--line)}
.spread.project.reverse .num{left:auto;right:4vw}
.single-carousel figure:has(img[src$="flyer 4.png"]){background:#fff}
.single-carousel img[src$="flyer 4.png"]{object-fit:contain!important;background:#fff;padding:2.5% 0}
@media(max-width:760px){
 .spread.project.reverse .page.image,.spread.project.reverse .page.text{order:initial}
 .spread.project.reverse .page.text:after{left:auto;right:0;border-left:0;border-right:1px solid var(--line)}
 .spread.project.reverse .num{left:4vw;right:auto}
}

/* V9 — cadrage intégral des visuels : aucun contenu coupé */
.carousel-pane{background:#eee}
.single-carousel figure{background:#eee!important;display:flex;align-items:center;justify-content:center;padding:3.5%;box-sizing:border-box}
.single-carousel img,
.single-carousel.contain img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:transparent!important;box-sizing:border-box}
/* Les formats très horizontaux/verticaux gardent une respiration éditoriale sur les côtés */
#immo .single-carousel figure{padding:4.5%}
#immo .single-carousel img{max-width:100%;max-height:100%}
/* Même principe pour les autres galeries du portfolio */
.clean-carousel figure,.zolia-story figure,.kitchen-story figure{background:#eee!important;padding:2.5%;box-sizing:border-box}
.clean-carousel img,.zolia-story img,.kitchen-story img{object-fit:contain!important;object-position:center!important;background:transparent!important}
@media(max-width:760px){
  .single-carousel figure{padding:4%}
  #immo .single-carousel figure{padding:5%}
  .single-carousel img,.single-carousel.contain img{height:100%!important;max-height:100%!important}
}

/* V13 — bandeau unique Au-delà du graphisme */
.spread.art.art-banner{grid-template-columns:1fr;min-height:auto;background:#f4f1eb}
.spread.art.art-banner .page.image{width:100%;min-height:0;padding:clamp(18px,3vw,42px);display:flex;align-items:center;justify-content:center;background:#f4f1eb}
.spread.art.art-banner .art-banner-img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}

/* V16 — Identité & image : newsletter (3e visuel) affichée à 50 % */
.portfolio-row .single-carousel figure:nth-child(3) img[src="assets/identity-newsletter-horsnormes.png"]{
  width:50%!important;
  height:50%!important;
  max-width:50%!important;
  max-height:50%!important;
  object-fit:contain!important;
}

/* V17 — final portfolio adjustments */
.cover h1{font-size:clamp(48px,6vw,100px)}
.contact-content{display:flex;align-items:flex-start;justify-content:space-between;gap:4vw;max-width:1100px;width:100%}
.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.contact-details a{color:var(--rose);font-size:clamp(18px,2.5vw,35px);text-decoration:none}
.contact-details p{color:#aaa;margin:6px 0 0}
.contact .contact-cv{color:var(--paper);font-size:11px;border-color:var(--paper);margin-top:4px;white-space:nowrap}
@media(max-width:760px){.cover h1{font-size:14vw}.contact-content{display:block}.contact .contact-cv{margin-top:28px}}

/* V19 — couverture : l'image occupe exactement la moitié droite du flipbook */
@media (min-width:761px){
  .cover{grid-template-columns:50% 50%;}
}

/* V24 mobile fix — titres COMMUNICATION : aucun rognage sur petits écrans */
@media(max-width:760px){
  .communication-title{
    font-size:clamp(38px,11.5vw,58px)!important;
    line-height:.9!important;
    letter-spacing:-.055em!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  .cover-copy,.page.text{min-width:0;}
}
@media(max-width:390px){
  .communication-title{font-size:10.8vw!important;letter-spacing:-.06em!important;}
}

/* V25 — mobile : bandeau "Au-delà du graphisme" sans espace vertical superflu */
@media(max-width:760px){
  .spread.art.art-banner{min-height:0!important;}
  .spread.art.art-banner .page.image{
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    display:block!important;
  }
  .spread.art.art-banner .art-banner-img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
  }
}
