/* Editorial composition uses the established type, palette and original photographs. */
:root{--editorial-ease:cubic-bezier(.22,.61,.36,1)}
.editorial-home .hero h1{font-size:clamp(2.5rem,5.5vw,5rem);line-height:1.07;letter-spacing:-.045em;overflow-wrap:normal;word-break:normal;text-wrap:wrap}
.editorial-home .hero-content{width:min(850px,74vw)}
.editorial-home .hero-lead{max-width:57ch;font-size:1.08rem}
.hero-project-link{position:absolute;right:var(--pad);bottom:2.25rem;z-index:2;max-width:290px;padding:.9rem 1rem;border-top:1px solid #d6b99b;background:rgba(17,17,15,.88);color:#fff;line-height:1.6}
.hero-project-link>span{display:block;font-size:.78rem;color:#e5d2bf}
.hero-project-link strong{display:block;font-size:.94rem;font-weight:500}
.hero-project-link strong>span{display:inline-block;margin-left:.65rem}
.project-editorial{display:grid;gap:clamp(2.5rem,5vw,4.5rem)}
.featured-project{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-bottom:3rem;border-bottom:1px solid var(--line)}
.featured-project-image{display:block;min-width:0;background:#e8e5dd;position:relative}
.featured-project-image img{width:100%;height:auto;aspect-ratio:auto}
.image-caption{display:block;padding:.8rem 1rem;font-size:.85rem;line-height:1.6;color:#514e49}
.featured-project-copy h3{font:500 clamp(1.9rem,3.4vw,3.35rem)/1.15 "Manrope",Arial,sans-serif;letter-spacing:-.04em;margin:0 0 1.4rem;overflow-wrap:normal}
.featured-project-copy h3 em{font:italic 500 1em "Playfair Display",serif;color:#775438}
.featured-project-copy>p:not(.eyebrow){font-size:1.02rem;line-height:1.8;color:#514e49;max-width:49ch}
.featured-facts{margin:1.8rem 0 1.5rem;border-top:1px solid var(--line)}
.featured-facts>div{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.featured-facts dt{font-size:.8rem;color:#775438}
.featured-facts dd{margin:0;font-size:.9rem;line-height:1.65}
.editorial-link{display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:48px;border-bottom:1px solid #9b7350;padding:.5rem 0;font-size:.95rem;font-weight:500;line-height:1.6;color:var(--ink);text-decoration:none}
.editorial-link>span,.hero-project-link strong>span{transition:transform .22s var(--editorial-ease)}
.editorial-link:hover>span,.editorial-link:focus-visible>span,.hero-project-link:hover strong>span{transform:translate(2px,-2px)}
.editorial-link:hover{color:#775438;border-color:#775438}
.project-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3.5rem)}
.project-story-card{display:flex;flex-direction:column;min-width:0}
.project-story-image{display:block;background:#e8e5dd;min-width:0}
.project-story-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.project-story-copy{padding:1.5rem 0 0;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.project-story-copy .eyebrow{margin-bottom:.65rem;font-size:.78rem}
.project-story-copy h3{font:500 clamp(1.5rem,2.5vw,2.35rem)/1.2 "Manrope",Arial,sans-serif;letter-spacing:-.035em;margin:0 0 .85rem;overflow-wrap:normal}
.project-story-copy>p:not(.eyebrow){font-size:1rem;line-height:1.75;color:#514e49;max-width:54ch;margin:0 0 1rem}
.project-story-copy .editorial-link{margin-top:auto}
.project-other-heading{border-top:1px solid var(--line);padding-top:2rem;margin-bottom:-2rem}
.project-other-heading p{margin:0;font-size:.78rem}
.project-other{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.project-other-link{display:grid;grid-template-columns:90px minmax(0,1fr);gap:1rem;align-items:start;min-width:0}
.project-other-link img{width:90px;height:110px;object-fit:contain;background:#e8e5dd}
.project-other-link>div{min-width:0}
.project-other-link>div>span:first-child{font-size:.76rem;line-height:1.5;color:#775438}
.project-other-link h3{font:500 1.02rem/1.45 "Manrope",Arial,sans-serif;letter-spacing:-.015em;margin:.5rem 0;overflow-wrap:normal}
.project-other-read{display:inline-block;font-size:.8rem;text-decoration:underline;text-underline-offset:.2em;padding:.4rem 0}
.project-other-link:hover h3,.project-story-copy h3 a:hover{color:#775438}
.project-other-link:focus-visible,.featured-project-image:focus-visible,.project-story-image:focus-visible{outline-offset:5px}
.editorial-home #references .section-action{margin-top:2.5rem}

/* Shared structure of the three documented case studies. */
.project-brief{padding-top:1rem}
.project-brief .eyebrow,.project-section-heading .eyebrow,.project-outcome .eyebrow{font-size:.8rem;color:#775438;letter-spacing:.12em}
.project-brief h2,.project-section-heading h2,.project-outcome h2{overflow-wrap:normal;word-break:normal;hyphens:none}
.project-brief .story-intro{font-size:1.05rem;line-height:1.85;max-width:48ch}
.project-phases{padding:2.5rem 0 3rem;border-top:1px solid var(--line)}
.project-section-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:.5rem 3rem;align-items:end;margin-bottom:2rem}
.project-section-heading .eyebrow{grid-column:1/-1;margin-bottom:.5rem}
.project-section-heading h2,.project-outcome h2{font:500 clamp(1.7rem,3vw,2.65rem)/1.2 "Manrope",Arial,sans-serif;letter-spacing:-.035em;margin:0}
.project-section-heading>p:last-child{font-size:1rem;line-height:1.8;color:#514e49;margin:0}
.project-phase-list{list-style:none;counter-reset:project-phase;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding:0;margin:0}
.project-phase-list li{counter-increment:project-phase;border-top:1px solid #b5a18c;padding:1.1rem 0 0;min-width:0}
.project-phase-list li::before{content:"0" counter(project-phase);display:block;color:#775438;font-size:.8rem;margin-bottom:1rem}
.project-phase-list h3{font:500 1.14rem/1.5 "Manrope",Arial,sans-serif;margin:0 0 .85rem}
.project-phase-list p{font-size:1rem;line-height:1.8;color:#514e49;margin:0}
.project-outcome{padding:2rem clamp(1.4rem,3vw,2.7rem);margin:2.5rem 0;background:#e8e5dd;border-left:2px solid #9b7350}
.project-outcome h2{font-size:clamp(1.45rem,2.4vw,2rem)}
.project-outcome>p:last-child{max-width:78ch;font-size:1rem;line-height:1.85;color:#514e49;margin:1rem 0 0}
.project-brief~.project-gallery .gallery-grid{gap:2rem}
.project-brief~.project-gallery .gallery-grid>figure:first-child{grid-column:1/-1;max-width:1000px;justify-self:center;width:100%}
.project-brief~.project-gallery .gallery-grid>figure:first-child .gallery-link{background:transparent;border-color:transparent}
.project-brief~.project-gallery .gallery-grid>figure:first-child img{max-height:680px}

/* Context is explicit, optional and removable; the actual form stays editable. */
.contact-context{border-left:2px solid #9b7350;background:#f4f2ec;padding:1.1rem 1.25rem;margin:0 0 1.75rem}
.contact-context[hidden]{display:none}
.contact-context h2{font:500 1.12rem/1.5 "Manrope",Arial,sans-serif;margin:0 0 .6rem}
.contact-context p{font-size:.94rem;line-height:1.75;color:#514e49;margin:.5rem 0}
.contact-context-actions{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;margin-top:.7rem}
.contact-context-actions .button{width:auto;background:transparent;border:0;border-bottom:1px solid #9b7350;padding:.4rem 0;min-height:44px;font:500 .875rem/1.5 "DM Sans",Arial,sans-serif;color:#775438;cursor:pointer}
.contact-context-actions .button:hover{color:#11110f;border-color:#11110f}
.project-footer .button-primary>span{display:inline-block;transition:transform .22s var(--editorial-ease)}
.project-footer .button-primary:hover>span,.project-footer .button-primary:focus-visible>span{transform:translate(2px,-2px)}

@media(max-width:1100px){
 .hero-project-link{display:none}
 .project-other{grid-template-columns:1fr;gap:1.25rem}
 .project-other-link{grid-template-columns:120px minmax(0,1fr);border-top:1px solid var(--line);padding-top:1rem}
 .project-other-link img{width:120px;height:90px}
 .project-other-link h3{font-size:1.1rem}
}
@media(max-width:900px){
 .featured-project{grid-template-columns:1fr;gap:1.7rem}
 .featured-project-copy{max-width:70ch}
 .featured-project-copy>p:not(.eyebrow){max-width:none}
 .project-section-heading{grid-template-columns:1fr;gap:.75rem}
 .project-phase-list{grid-template-columns:1fr;gap:1.6rem}
}
@media(max-width:780px){
 .editorial-home .hero-content{width:100%}
 .editorial-home .hero h1{font-size:clamp(2rem,8.5vw,3.4rem);line-height:1.1}
 .editorial-home .hero-lead{font-size:1rem;line-height:1.8}
 .project-duo{grid-template-columns:1fr;gap:2.5rem}
 .featured-project{padding-bottom:2rem}
 .featured-project-copy h3{font-size:clamp(1.75rem,6.5vw,2.5rem)}
 .featured-facts>div{grid-template-columns:1fr;gap:.2rem}
 .project-story-copy{padding-top:1.1rem}
 .project-other-link{grid-template-columns:90px minmax(0,1fr);gap:1rem}
 .project-other-link img{width:90px;height:90px}
 .project-other-heading{margin-bottom:-1.4rem}
 .project-brief~.project-gallery .gallery-grid{gap:1.5rem}
 .project-outcome{padding:1.5rem 1.25rem}
 .contact-context{padding:1rem}
}
@media(prefers-reduced-motion:reduce){
 .editorial-link>span,.hero-project-link strong>span,.project-footer .button-primary>span{transition:none;transform:none!important}
}
@media print{
 .hero-project-link{display:none}
 .featured-project,.project-duo,.project-other,.project-phase-list{display:block}
 .featured-project-copy,.project-story-card,.project-phase-list li{break-inside:avoid;margin-bottom:1.5rem}
}

/* The operation catalogue reads as a photographic index, with real filters. */
.portfolio-page .page-heading{padding-bottom:3.5rem}
.portfolio-page .page-heading .page-intro{max-width:65ch}
.portfolio-page .project-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,5vw,5rem) clamp(1.8rem,4vw,4rem)}
.portfolio-page .project-link{border:0;border-bottom:1px solid #b9b1a4;background:transparent;box-shadow:none;transition:border-color .2s ease}
.portfolio-page .project-link:hover{box-shadow:none;border-color:#775438}
.portfolio-page .project-link>img{width:100%;height:auto;aspect-ratio:8/5;object-fit:contain;background:#e8e5dd}
.portfolio-page .project-link-copy{padding:1.35rem 0 1.6rem;gap:1rem}
.catalog-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem}
.catalog-folio{font:italic 500 1.6rem/1 "Playfair Display",serif;color:#775438;flex-shrink:0}
.portfolio-page .project-link h3{font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.2;max-width:23ch;overflow-wrap:normal;word-break:normal;hyphens:none}
.portfolio-page .project-link p{font-size:1rem;max-width:49ch;line-height:1.8}
.portfolio-page .project-link .project-read{display:flex;justify-content:space-between;align-items:center;text-decoration:none;padding:.7rem 0 0;gap:1rem}
.portfolio-page .project-read>span{font-size:1.15rem;transition:transform .2s ease}
.portfolio-page .project-link:hover .project-read>span,.portfolio-page .project-link:focus-visible .project-read>span{transform:translate(2px,-2px)}
.portfolio-page .project-link:hover h3{text-decoration:underline;text-decoration-color:#9b7350;text-decoration-thickness:1px;text-underline-offset:.18em}
.portfolio-page .project-filters{border-top:1px solid var(--line);padding:1.1rem 0;gap:.5rem 1rem}
.portfolio-page .project-filters button{border:0;border-bottom:1px solid transparent;padding:.7rem .3rem;min-height:48px;background:transparent}
.portfolio-page .project-filters button:hover{background:transparent;border-bottom-color:#775438}
.portfolio-page .project-filters button[aria-pressed="true"]{color:#11110f;background:transparent;border-bottom:2px solid #775438;font-weight:600}
.portfolio-page #project-count{font-size:.875rem;margin:1rem 0 2.25rem}
.portfolio-end{display:flex;gap:2rem;align-items:center;justify-content:space-between;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}
.portfolio-end .privacy-note{background:none;border:0;padding:0;margin:0;max-width:72ch;font-size:.9rem}
.portfolio-end .editorial-link{flex-shrink:0}

/* Reading aids use native anchor links, including with JavaScript unavailable. */
.project-contents{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.7rem;border-bottom:1px solid var(--line);padding:1rem 0;margin:0 0 2.5rem;position:sticky;top:86px;z-index:5;background:#f4f2ec}
.project-contents>p{font-size:.8rem;letter-spacing:.06em;color:#775438;margin:0 1rem 0 0}
.project-contents a{display:inline-flex;align-items:center;min-height:44px;font-size:.94rem;padding:.5rem 0;color:#514e49;border-bottom:2px solid transparent;text-decoration:none}
.project-contents a:hover,.project-contents a[aria-current="location"]{color:#11110f;border-bottom-color:#775438}
.project-contents a[aria-current="location"]{font-weight:600}
.project-reading section[id],.project-reading h2[id]{scroll-margin-top:180px}
.lesson-contents a[aria-current="location"]{color:#775438;font-weight:600;text-decoration-thickness:2px;text-underline-offset:.25em}
.gallery-link::after{content:"Agrandir ↗";position:absolute;right:.75rem;bottom:.75rem;background:rgba(17,17,15,.9);color:#f4f2ec;padding:.5rem .75rem;font:500 .8rem/1.4 "DM Sans",Arial,sans-serif;pointer-events:none;border:1px solid #8b7761}
.gallery-link:hover::after,.gallery-link:focus-visible::after{background:#775438}

@media(max-width:1050px){
 .project-contents{position:static;padding:.75rem 0;gap:.35rem 1.4rem}
 .project-contents>p{flex-basis:100%;margin:0}
 .project-reading section[id],.project-reading h2[id]{scroll-margin-top:112px}
}
@media(max-width:780px){
 .portfolio-page .page-heading{padding-bottom:2rem}
 .portfolio-page .project-cards{grid-template-columns:minmax(0,1fr);gap:2.5rem}
 .portfolio-page .project-link-copy{padding:1rem 0 1.35rem;gap:.7rem}
 .portfolio-page .project-link h3{max-width:none;font-size:clamp(1.4rem,6vw,1.8rem)}
 .portfolio-page .project-filters{gap:.2rem 1rem}
 .portfolio-page .project-filters button{font-size:.88rem}
 .portfolio-end{flex-direction:column;align-items:flex-start;gap:1rem;margin-top:2.5rem}
 .gallery-link::after{right:.5rem;bottom:.5rem;font-size:.75rem;padding:.4rem .6rem}
}
@media(prefers-reduced-motion:reduce){
 .portfolio-page .project-read>span{transition:none;transform:none!important}
}
@media print{
 .project-contents,.gallery-link::after{display:none}
 .portfolio-page .project-cards{display:block}
 .portfolio-page .project-link{break-inside:avoid;margin-bottom:2rem}
}
.faq-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:0 0 3rem}
.faq-topics a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--line);padding:.7rem .25rem;color:var(--ink);font-size:.94rem;line-height:1.5;text-decoration:none;transition:color .2s,border-color .2s}
.faq-topics a:hover,.faq-topics a:focus-visible{color:#775438;border-color:#775438}
.faq-group{margin:0 0 3.5rem}
.faq-group h2{font:500 clamp(1.5rem,3vw,2rem)/1.3 "Manrope",Arial,sans-serif;letter-spacing:-.025em;margin:0 0 1.35rem;text-wrap:balance}
.faq-group details{scroll-margin-top:112px}
.faq-list .faq-source{display:inline-block;margin-top:.65rem;font-size:.88rem}
@media(max-width:600px){.faq-topics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem;margin-bottom:2.5rem}.faq-group{margin-bottom:2.8rem}.faq-group details{scroll-margin-top:96px}}
@media(prefers-reduced-motion:reduce){.faq-topics a{transition:none}}
