@theme {
    --color-primary: #151515;
    --color-secondary: #626262;
    --color-neutral: #151515;
    --color-background: #ffffff;
    --font-sans: "Hanken Grotesk", sans-serif;
    --text-base: 0.8333333rem;
    --text-caption: 0.9166667rem;
    --text-lg: 1rem;
    --text-xl: 1.1666667rem;
}
:root {
    --coa-font: "Hanken Grotesk", sans-serif;
    --coa-text: 0.9166667rem;
    --coa-body: 0.8333333rem;
    --coa-h2: 1rem;
    --coa-h1: 1.1666667rem;
    --coa-fixed-header-height:64px;
}
/* Hanken Grotesk: 11pt Light labels, 10pt Light body, 12pt Bold h2, 14pt Black h1. */
.coa-site { margin:0; background:#fff; color:#151515; font-family:var(--coa-font); font-size:var(--coa-body); font-weight:300; line-height:1.65; -webkit-font-smoothing:antialiased; }
.coa-nav, .coa-project-filters, .coa-project-name, .coa-carousel-caption, .coa-edition-title, .coa-article-row span { font-size:var(--coa-text); font-weight:300; }
.coa-site *, .coa-site *::before, .coa-site *::after { box-sizing:border-box; }
.coa-site h1, .coa-site h2, .coa-site h3, .coa-site h4, .coa-site h5, .coa-site h6, .coa-site p, .coa-site figure { margin:0; }
.coa-site h1 { font-size:var(--coa-h1); font-weight:900; line-height:1.35; }
.coa-site h2, .coa-site h3, .coa-site h4, .coa-site h5, .coa-site h6 { font-size:var(--coa-h2); font-weight:700; line-height:1.4; }
.coa-site strong, .coa-site b { font-weight:700; }
.coa-site a { color:inherit; text-decoration:none; }
.coa-site img { display:block; max-width:100%; height:auto; }
.coa-site button, .coa-site input, .coa-site select, .coa-site textarea { font:inherit; color:inherit; }
.coa-site [x-cloak], .coa-site [hidden] { display:none !important; }
/* Legacy Elementor popups are not part of this theme. */
.coa-site > .elementor-location-popup { display:none !important; }
.coa-site a:focus-visible, .coa-site button:focus-visible, .coa-site input:focus-visible, .coa-site summary:focus-visible, .coa-site textarea:focus-visible { outline:2px solid #151515; outline-offset:5px; }
.coa-shell { width:100%; max-width:1680px; padding-left:48px; padding-right:48px; margin-left:auto; margin-right:auto; }
.coa-header-space { position:relative; }
.coa-header { position:relative; z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; max-width:none; padding-top:24px; padding-bottom:16px; border:0; box-shadow:none; background:#fff; opacity:1; transition:opacity .18s ease; }
.coa-header.is-transitioning { opacity:0; pointer-events:none; transition-duration:.12s; }
.coa-menu-toggle { display:none; width:44px; height:44px; padding:10px; border:0; border-radius:0; background:none; cursor:pointer; }
.coa-menu-toggle span { display:block; width:24px; height:1px; background:currentColor; transition:transform .2s ease, opacity .2s ease; }
.coa-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.coa-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.coa-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.home .coa-header { gap:10px; padding-top:16px; padding-bottom:8px; }
.coa-brand { display:block; flex-shrink:0; }
.coa-brand .coa-logo { display:block; width:174.8px; height:auto; object-fit:contain; object-position:center; }
.coa-brand .coa-logo-compact { display:none; }
.coa-nav { display:flex; flex-wrap:wrap; gap:36px; align-items:center; justify-content:center; }
.coa-nav, .coa-project-filters { text-transform:uppercase; }
.coa-nav a { position:relative; padding:8px 0; }
.coa-nav a::after { content:""; position:absolute; left:0; right:0; bottom:4px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.coa-nav a:hover::after, .coa-nav a[aria-current="page"]::after { transform:scaleX(1); }
.coa-skip, .coa-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.coa-skip:focus { clip:auto; width:auto; height:auto; padding:12px 20px; left:20px; top:10px; background:#fff; z-index:10000; }
.coa-main { min-height:65vh; }
.coa-hero { --coa-carousel-gutter:64px; position:relative; width:100%; margin:10px auto 28px; }
.coa-carousel-stage { position:relative; height:var(--coa-stage-height,max(180px,calc(100svh - 330px))); touch-action:pan-y pinch-zoom; }
.coa-slide { position:absolute; inset:0 var(--coa-carousel-gutter); display:flex; align-items:center; justify-content:center; }
.coa-slide > img, .coa-hero-link img { width:100%; height:100%; object-fit:contain; object-position:center; }
.coa-hero-link { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.coa-carousel-arrow { position:absolute; z-index:2; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-radius:0; background:none; color:#151515; cursor:pointer; transition:opacity .2s ease; }
.coa-carousel-arrow:hover { opacity:.5; }
.coa-carousel-arrow:focus-visible { outline:2px solid #151515; outline-offset:3px; }
.coa-carousel-prev { left:0; justify-content:flex-start; }
.coa-carousel-next { right:0; justify-content:flex-end; }
.coa-carousel-meta { display:block; width:var(--coa-caption-width,calc(100% - 2 * var(--coa-carousel-gutter))); margin:10px auto 0; }
.coa-carousel-captions { display:grid; align-items:start; min-width:0; min-height:3em; }
.coa-carousel-caption { grid-area:1/1; line-height:1.5; text-align:left; }
.coa-scroll { display:flex; justify-content:center; align-items:center; width:40px; height:32px; margin:6px auto 0; transition:opacity .18s ease, visibility .18s ease; }
.coa-scroll.is-dismissed { opacity:0; visibility:hidden; pointer-events:none; }
.coa-projects, #contenu, .coa-site [id] { scroll-margin-top:calc(var(--coa-fixed-header-height,64px) + var(--coa-admin-offset,0px) + 20px); }
.coa-projects { overflow-anchor:none; }
.coa-project-filters { display:flex; flex-wrap:wrap; gap:10px 28px; align-items:center; margin-bottom:32px; }
.coa-project-filters a { padding:5px 0; color:#626262; border-bottom:1px solid transparent; }
.coa-project-filters a:hover, .coa-project-filters a[aria-current="true"] { color:#151515; border-color:currentColor; }
.coa-project-grid { --coa-grid-gap:40px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--coa-grid-gap); }
.coa-project-card { margin-bottom:calc(-1 * var(--coa-card-caption-height,0px)); }
.coa-card-image { overflow:hidden; aspect-ratio:3/2; background:#f3f3f1; }
.coa-card-image img { display:block; width:100%; height:100%; object-fit:cover; }
/* Reserve the title's bold wrapping so hovering never moves the image rows. */
.coa-project-name { display:grid; font-size:var(--coa-text); font-weight:300; margin-top:10px !important; line-height:1.5; }
.coa-project-name > span, .coa-project-name::after { grid-area:1/1; }
.coa-project-name::after { content:attr(data-title); font-weight:700; visibility:hidden; pointer-events:none; }
.coa-card-link:hover .coa-project-name, .coa-card-link:focus-visible .coa-project-name { font-weight:700; }
.coa-filter-empty { padding:32px 0; color:#626262; font-size:var(--coa-text); }
.coa-page { padding-top:42px; }
.coa-page-title { margin-bottom:38px !important; }
.coa-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; margin-top:110px; padding-top:25px; padding-bottom:32px; color:#626262; }
.coa-footer-links { display:flex; flex-wrap:wrap; gap:12px 24px; }
.coa-footer a:hover, .coa-prose a:hover, .coa-text-link:hover, .coa-legal-copy a:hover { text-decoration:underline; text-underline-offset:3px; }
.coa-footer span { margin:0 7px; }
.coa-project-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:35px; }
.coa-project-heading h1 { max-width:800px; }
.coa-back-link { color:#626262 !important; white-space:nowrap; }
.coa-project-layout { display:grid; grid-template-columns:minmax(240px,1fr) minmax(0,2.4fr); gap:65px; align-items:start; }
.coa-project-copy { line-height:1.75; padding-top:4px; max-width:420px; }
.coa-project-copy p { margin-bottom:18px; }
.coa-project-gallery { display:grid; gap:24px; min-width:0; }
.coa-project-gallery img { width:100%; height:auto; }
.coa-image-caption { padding-top:9px; color:#626262; }
.coa-next-projects { margin-top:80px; display:flex; justify-content:space-between; gap:24px; }
.coa-agency-hero { margin-bottom:65px !important; }
.coa-agency-hero img { width:100%; height:auto; }
.coa-agency-sections { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; margin-bottom:65px; }
.coa-agency-section h2 { margin-bottom:20px; }
.coa-agency-section p { margin-bottom:16px; }
.coa-agency-section p:last-child { margin-bottom:0; }
.coa-agency-gallery { margin-bottom:65px; }
.coa-agency-gallery-grid { columns:3; column-gap:24px; }
.coa-agency-gallery-grid a { display:block; break-inside:avoid; margin-bottom:24px; }
.coa-agency-gallery-grid img { width:100%; height:auto; }
.coa-agency-custom { max-width:950px; margin:0 auto 65px; }
.coa-agency-custom h2 { margin:32px 0 18px; }
.coa-agency-custom p { margin-bottom:16px; }
.coa-team { margin-top:90px; padding-top:45px; border-top:1px solid #dedede; }
.coa-section-label { font-size:var(--coa-h2); font-weight:700; margin-bottom:30px !important; }
.coa-team-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:42px 30px; }
.coa-member-photo { aspect-ratio:2/3; overflow:hidden; margin-bottom:14px; background:#f4f4f2; }
.coa-member-photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(1); }
.coa-member-photo--elouan img { transform:scale(1.65); transform-origin:50% 55%; }
.coa-member h3 { margin-bottom:7px; }
.coa-member-copy { color:#626262; line-height:1.6; }
.coa-member-copy p { margin-bottom:5px; }
.coa-office-label { margin:45px 0 25px !important; }
.coa-editions-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:48px; row-gap:48px; }
.coa-edition-cover { background:#f7f7f5; aspect-ratio:4/5; display:flex; justify-content:center; align-items:center; padding:28px; margin-bottom:14px; }
.coa-edition-cover img { max-width:100%; max-height:100%; width:auto; height:auto; box-shadow:0 4px 12px #00000010; }
.coa-edition a:hover img { opacity:.8; }
.coa-edition-title { font-size:var(--coa-text); font-weight:300; line-height:1.5; }
.coa-article-list { margin-top:90px; }
.coa-article-list summary { cursor:pointer; padding:12px 0; list-style:revert; }
.coa-article-row { display:grid; grid-template-columns:130px 1fr; gap:30px; padding:20px 0; border-top:1px solid #e6e6e6; }
.coa-article-row time { color:#626262; }
.coa-contact-layout { display:grid; grid-template-columns:1fr 1.6fr; gap:90px; align-items:start; margin-top:15px; }
.coa-contact-details { line-height:1.85; }
.coa-contact-office + .coa-contact-office { margin-top:48px; }
.coa-contact-details h2 { margin-bottom:28px; }
.coa-contact-details address { font-style:normal; margin-bottom:28px; }
.coa-contact-details p { margin-bottom:6px; }
.coa-contact-details .coa-text-link { display:inline-block; margin-top:32px; }
.coa-contact-photo img { width:100%; height:auto; }
.coa-prose { line-height:1.85; max-width:880px; margin-left:auto; margin-right:auto; overflow-wrap:anywhere; }
.coa-prose h1 { margin-bottom:35px; }
.coa-prose h2, .coa-prose h3, .coa-prose h4 { margin:36px 0 14px; }
.coa-prose p { margin:0 0 20px; }
.coa-prose ul, .coa-prose ol { margin:0 0 20px; padding-left:22px; }
.coa-prose ul { list-style:disc; }
.coa-prose ol { list-style:decimal; }
.coa-prose img { margin:24px auto; }
.coa-legal-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:80px; align-items:start; }
.coa-legal-nav { display:grid; gap:8px; position:sticky; top:calc(var(--coa-fixed-header-height,64px) + var(--coa-admin-offset,0px) + 24px); }
.coa-legal-nav a { padding:7px 0; color:#626262; }
.coa-legal-nav a[aria-current="page"] { color:#151515; text-decoration:underline; text-underline-offset:5px; }
.coa-legal-nav a:hover { color:#151515; }
.coa-legal-main { width:100%; max-width:920px; min-width:0; }
.coa-legal-intro { max-width:660px; margin-bottom:40px !important; }
.coa-privacy-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; }
.coa-privacy-link { display:block; padding:25px 0; border-top:1px solid #dedede; }
.coa-privacy-link h2 { margin-bottom:12px; }
.coa-privacy-link p { color:#626262; }
.coa-privacy-link:hover h2 { text-decoration:underline; text-underline-offset:4px; }
.coa-legal-copy { max-width:780px; line-height:1.85; overflow-wrap:anywhere; }
.coa-legal-copy p { margin:0 0 18px; }
.coa-legal-copy h2, .coa-legal-copy h3 { margin:36px 0 16px; }
.coa-legal-copy h2:first-child { margin-top:0; }
.coa-legal-copy ul, .coa-legal-copy ol { padding-left:22px; margin:0 0 20px; }
.coa-legal-copy ul { list-style:disc; }
.coa-legal-copy ol { list-style:decimal; }
.coa-legal-copy a { text-decoration:underline; text-underline-offset:3px; }
.coa-legal-copy form { margin-top:28px; }
.coa-legal-copy label { display:block; margin-bottom:8px; }
.coa-legal-copy input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), .coa-legal-copy textarea, .coa-legal-copy select { width:100%; max-width:100%; padding:10px 12px; border:1px solid #bbb; border-radius:0; background:#fff; margin-bottom:18px; }
.coa-legal-copy input[type="submit"], .coa-legal-copy button { border:1px solid #151515; border-radius:0; background:#fff; padding:10px 20px; cursor:pointer; }
.coa-legal-copy input[type="checkbox"], .coa-legal-copy input[type="radio"] { accent-color:#151515; }
.coa-legal-contact { margin-top:50px; padding-top:25px; border-top:1px solid #dedede; }
.coa-legal-contact h2 { margin-bottom:12px; }
.coa-legal-contact p { margin-bottom:8px; }
.coa-empty { min-height:45vh; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:24px; }
.coa-empty a { text-decoration:underline; text-underline-offset:4px; }
@media (max-width:1000px) {
    .coa-shell { padding-left:32px; padding-right:32px; }
    .coa-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .coa-project-layout { grid-template-columns:1fr 1.7fr; gap:35px; }
    .coa-team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .coa-editions-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
    .coa-agency-sections { gap:28px; }
    .coa-agency-gallery-grid { column-gap:18px; }
    .coa-contact-layout { gap:45px; grid-template-columns:1fr 1.2fr; }
    .coa-legal-layout { grid-template-columns:190px minmax(0,1fr); gap:40px; }
    .coa-privacy-links { grid-template-columns:1fr; }
}
@media (max-width:640px) {
    .coa-shell { padding-left:20px; padding-right:20px; }
    .coa-header { padding-top:20px; padding-bottom:12px; gap:14px; }
    .home .coa-header { padding-top:14px; padding-bottom:8px; gap:8px; }
    .coa-brand .coa-logo-centered { width:144.9px; }
    .coa-nav { gap:12px 25px; }
    .coa-carousel-meta { margin-top:8px; }
    .coa-carousel-caption { text-align:left; }
    .coa-scroll { margin-top:6px; }
    .coa-project-filters { gap:8px 22px; margin-bottom:25px; }
    .coa-project-grid { grid-template-columns:1fr; row-gap:32px; }
    .coa-project-name { margin-top:11px !important; }
    .coa-footer { display:block; margin-top:75px; padding-bottom:28px; }
    .coa-footer-links { margin-top:12px; gap:10px 18px; }
    .coa-page { padding-top:25px; }
    .coa-page-title { margin-bottom:28px !important; }
    .coa-project-heading { display:block; margin-bottom:25px; }
    .coa-back-link { display:inline-block; margin-top:15px; }
    .coa-project-layout { display:flex; flex-direction:column; gap:32px; }
    .coa-project-gallery { order:-1; width:100%; gap:15px; }
    .coa-project-copy { max-width:none; width:100%; }
    .coa-next-projects { margin-top:45px; }
    .coa-agency-hero { margin-bottom:40px !important; }
    .coa-agency-sections { grid-template-columns:1fr; gap:32px; margin-bottom:40px; }
    .coa-agency-section h2 { margin-bottom:14px; }
    .coa-agency-gallery { margin-bottom:40px; }
    .coa-agency-gallery-grid { columns:2; column-gap:14px; }
    .coa-agency-gallery-grid a { margin-bottom:14px; }
    .coa-team { margin-top:55px; padding-top:30px; }
    .coa-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; }
    .coa-editions-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 20px; }
    .coa-edition-cover { padding:16px; }
    .coa-article-row { grid-template-columns:1fr; gap:5px; }
    .coa-contact-layout { display:flex; flex-direction:column; gap:40px; }
    .coa-legal-layout { grid-template-columns:1fr; gap:35px; }
    .coa-legal-nav { display:flex; flex-wrap:wrap; gap:6px 22px; position:static; padding-bottom:20px; border-bottom:1px solid #dedede; }
    .coa-legal-intro { margin-bottom:28px !important; }
    .coa-privacy-links { grid-template-columns:1fr; }
}
@media (max-height:650px) and (min-width:641px) {
    .coa-header { padding-top:14px; padding-bottom:10px; gap:10px; }
    .coa-brand .coa-logo-centered { width:113.85px; }
    .coa-hero { margin-top:10px; }
    .home .coa-header { padding-top:12px; padding-bottom:8px; }
    .coa-scroll { margin-top:6px; }
}
@media (max-height:650px) and (max-width:640px) {
    .coa-header { padding-top:12px; padding-bottom:8px; gap:8px; }
    .coa-brand .coa-logo-centered { width:105.8px; }
    .coa-hero { margin-top:8px; }
    .home .coa-header { padding-top:12px; padding-bottom:8px; }
    .coa-scroll { height:32px; margin-top:6px; }
}
/* The selected centered header stays visible on every page. */
@media (max-width:767px) {
    :root { --coa-fixed-header-height:58px; }
    .coa-header, .home .coa-header { padding-top:14px; padding-bottom:12px; gap:8px; }
    .coa-brand .coa-logo-centered { width:119.6px; }
    .coa-header.is-menu-ready .coa-menu-toggle { position:absolute; top:12px; right:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; }
    .coa-header.is-menu-ready .coa-nav { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; gap:0; padding:12px 20px 20px; background:#fff; box-shadow:0 8px 12px #1515150c; max-height:calc(100svh - var(--coa-header-height,150px) - var(--coa-admin-offset,0px)); overflow-y:auto; }
    .coa-header.is-menu-ready .coa-nav a { padding:10px 20px; }
    .coa-hero { --coa-carousel-gutter:0px; width:100%; margin-top:8px; margin-bottom:24px; }
    .coa-carousel-stage { height:auto; aspect-ratio:3/2; }
    .coa-carousel-arrow { display:none; }
    .coa-carousel-meta { width:100%; }
}
@media (max-height:650px) and (max-width:767px) {
    .coa-brand .coa-logo-centered { width:105.8px; }
}
/* A compact fixed bar replaces the centered header after scrolling. */
.coa-header.is-compact { position:fixed; inset:var(--coa-admin-offset,0px) 0 auto; width:100%; flex-direction:row; align-items:center; justify-content:space-between; gap:24px; min-height:64px; padding:8px max(48px,calc((100% - 1584px) / 2)); border:0; box-shadow:none; }
.coa-header.is-compact .coa-brand .coa-logo-centered { display:none; }
.coa-header.is-compact .coa-brand .coa-logo-compact { display:block; width:220px; }
.coa-header.is-compact .coa-nav { justify-content:flex-end; }
@media (max-width:1000px) {
    .coa-header.is-compact { padding-left:32px; padding-right:32px; }
}
@media (max-width:767px) {
    .coa-header.is-compact, .home .coa-header.is-compact { flex-direction:row; justify-content:space-between; gap:16px; min-height:58px; padding:6px 32px; }
    .coa-header.is-compact .coa-brand .coa-logo-compact { width:160px; }
    .coa-header.is-compact .coa-menu-toggle { top:50%; transform:translateY(-50%); }
    .coa-header.is-compact .coa-nav { justify-content:flex-start; }
}
@media (max-width:640px) {
    .coa-header.is-compact, .home .coa-header.is-compact { padding-left:20px; padding-right:20px; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto !important; }
    .coa-site *, .coa-site *::before, .coa-site *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
