:root{--terracotta:#9c4526;--mousse:#4e5c33;--creme:#ede4cf;--fond:#fcfaf6;--encre:#231c15;--soft:rgba(35,28,21,0.68);--faint:rgba(35,28,21,0.42);--rule:rgba(35,28,21,0.14);--mono:'DM Mono',ui-monospace,monospace;--serif:'Newsreader',Georgia,serif;--accent:var(--terracotta)}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font-family:var(--mono);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
body.home{display:flex;flex-direction:column;min-height:100%}
.wrap{max-width:900px;margin:0 auto;padding:0 40px}
@media (max-width:600px){.wrap{padding:0 22px}}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:var(--encre)}
.wm{font-family:'Archivo',Impact,sans-serif;font-variation-settings:'wdth' 68,'wght' 800;text-transform:uppercase;letter-spacing:-0.02em;line-height:0.82}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--encre);color:var(--fond);padding:8px 14px;z-index:99}
.lang{display:flex;gap:10px;font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase}
.lang a{text-decoration:none;color:var(--faint)}
.lang a.on{color:var(--accent)}
.lang span{color:var(--rule)}

/* barre */
.topbar{background:var(--fond);border-bottom:1px solid var(--rule)}
.topbar.sticky{position:sticky;top:0;z-index:10}
.topbar .row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;flex-wrap:wrap}
.topbar .brand{text-decoration:none;color:var(--accent)}
.topbar .brand .wm{font-size:26px}
.branches{display:flex;gap:22px;font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:13px;letter-spacing:0.05em}
.branches a{text-decoration:none;color:var(--faint);padding:5px 0;border-bottom:2px solid transparent}
.branches a:hover{color:var(--encre)}
.branches a.on{color:var(--accent);border-color:var(--accent)}
.subnav{display:flex;gap:24px;flex-wrap:wrap;padding:0 0 14px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase}
.subnav a{text-decoration:none;color:var(--soft);padding:3px 0;border-bottom:1px solid transparent}
.subnav a:hover{color:var(--accent);border-color:var(--accent)}
@media (max-width:640px){.topbar .row{padding-top:14px}.branches{gap:16px;font-size:12px}.subnav{gap:14px;font-size:10px}}

/* page d'ouverture */
.entry{position:relative;flex:1;display:flex;flex-direction:column;border-bottom:1px solid var(--rule)}
.doors{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto auto auto 1fr}
.door{grid-row:1 / -1;display:grid;grid-template-rows:subgrid;justify-items:center;text-align:center;gap:12px;min-height:420px;padding:56px 40px;text-decoration:none;color:inherit;border-right:1px solid var(--rule)}
.door::before,.door::after{content:""}
.door:last-child{border-right:0}
.door-b{padding-right:180px}
.door-a{padding-left:180px}
.door .h{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 68,'wght' 800;text-transform:uppercase;letter-spacing:-0.02em;line-height:0.86;font-size:clamp(34px,5vw,58px)}
.door-a .h{color:var(--terracotta)}
.door-b .h{color:var(--mousse)}
.door p{margin:0;font-size:13.5px;color:var(--soft);line-height:1.75;max-width:300px}
.door .go{font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase}
.door{transition:background 260ms ease,color 260ms ease}
.door .h,.door p,.door .go{transition:color 260ms ease}
.door-a:hover{background:var(--terracotta)}
.door-b:hover{background:var(--mousse)}
.door:hover .h,.door:hover .go{color:var(--fond)}
.door:hover p{color:rgba(252,250,246,0.85)}
@media (hover:none){.door-a:hover,.door-b:hover{background:none}.door-a:hover .h,.door-a:hover .go{color:var(--terracotta)}.door-b:hover .h,.door-b:hover .go{color:var(--mousse)}.door:hover p{color:var(--soft)}}
.door-a .go{color:var(--terracotta)}
.door-b .go{color:var(--mousse)}
.medallion{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:230px;height:230px;border-radius:50%;background:var(--terracotta);border:1px solid var(--terracotta);display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;color:var(--fond);padding:24px;transition:background 240ms ease,color 240ms ease}
.medallion .wm{font-size:25px;line-height:0.95}
.home-title{position:absolute;left:0;right:0;bottom:14px;margin:0;text-align:center;font-family:var(--mono);font-style:normal;font-size:10.5px;line-height:1.6;letter-spacing:0.14em;text-transform:uppercase;color:var(--faint);padding:0 22px}
@media (max-width:760px){.home-title{position:static;padding:22px}}
.medallion,.medallion:visited,.medallion:active,.medallion:focus{color:var(--fond)}
.medallion:hover{background:var(--terracotta);color:var(--fond)}
.entry:has(.door:hover) .medallion{background:var(--fond);color:var(--terracotta)}
.entry:has(.medallion:hover) .medallion{background:var(--terracotta);color:var(--fond)}
@media (max-width:760px){.doors{grid-template-columns:1fr;grid-template-rows:none}.door,.door-a,.door-b{grid-row:auto;grid-template-rows:auto auto auto;min-height:0;padding:44px 22px;border-right:0}.door::before,.door::after{display:none}.door-b{padding-bottom:130px;border-bottom:1px solid var(--rule)}.door-a{padding-top:130px}.medallion{width:170px;height:170px}.medallion .wm{font-size:19px}}

/* hero & sections */
.hero{padding:88px 0 76px}
.kicker{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:13px;letter-spacing:0.06em;color:var(--accent);margin:0 0 26px}
h1{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(27px,3.4vw,40px);line-height:1.4;margin:0 0 32px;max-width:640px}
.lede{font-size:15px;line-height:1.85;color:var(--soft);max-width:560px;margin:0 0 22px}
.facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;padding:0;list-style:none}
.facts li{white-space:nowrap;font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--soft);padding:6px 0;border-top:1px solid var(--rule)}
section{padding:88px 0;border-top:1px solid var(--rule)}
.sec-head{margin-bottom:48px}
.sec-kicker{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:13px;letter-spacing:0.05em;color:var(--accent);margin:0 0 14px}
.sec-title{font-family:var(--serif);font-weight:400;font-size:clamp(23px,3vw,30px);line-height:1.3;margin:0 0 16px;max-width:580px}
.sec-sub{font-size:14px;color:var(--soft);max-width:560px;margin:0;line-height:1.85}
.subgroup{margin-top:56px}
.sub-kicker{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:12px;letter-spacing:0.05em;color:var(--accent);margin:0 0 6px}
.sub-note{font-size:12.5px;color:var(--soft);margin:0 0 24px}

.credo{margin:0 0 28px;padding:0 0 0 22px;border-left:2px solid var(--accent)}
.credo-line{font-family:var(--serif);font-size:clamp(19px,2.4vw,25px);line-height:1.35;margin:0 0 10px;max-width:520px}
.credo-cite{font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.6;color:var(--soft);margin:0;max-width:520px}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card{background:var(--fond);padding:28px 26px}
.card .parent{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:11.5px;letter-spacing:0.08em;color:var(--accent);margin:0 0 10px}
.card h3{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:28px;line-height:0.9;letter-spacing:-0.01em;margin:0 0 14px}
.card p{margin:0;font-size:13.5px;color:var(--soft);line-height:1.7}
.card .kind{display:block;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--faint);margin-top:16px;padding-top:12px;border-top:1px solid var(--rule)}
@media (max-width:760px){.cards,.cards.two{grid-template-columns:1fr}}

.items{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.item{padding:24px 0;border-top:1px solid var(--rule)}
.item:first-child{border-top:0}
.item h3,.item h4{font-family:var(--serif);font-style:italic;font-weight:400;font-size:19px;margin:0 0 8px}
.item p{margin:0;font-size:13.5px;color:var(--soft);line-height:1.75;max-width:560px}
.item .tag{display:block;margin-top:12px;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent)}

.layers{margin:20px 0 0;padding:0;width:calc(100vw - 2px);max-width:1320px;position:relative;left:50%;transform:translateX(-50%)}
.layers img,.layers .mq-svg-wrap,.layers svg{display:block;width:100%;height:auto}
.layers figcaption{font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--faint);text-align:center;padding-top:14px}
@media (max-width:900px){.layers{width:100%;max-width:none;left:0;transform:none;padding:0 22px}}
.layers .mq-contours,.layers .mq-roads,.layers .mq-buildings,.layers .mq-trees{transition:opacity 60ms linear,transform 60ms linear;will-change:opacity,transform}
@media (prefers-reduced-motion:reduce){.layers .mq-contours,.layers .mq-roads,.layers .mq-buildings,.layers .mq-trees{opacity:1!important;transform:none!important;transition:none}}

/* photo galet */
.stone{position:relative;margin:48px 0 0;padding:0}
.stone .badge{position:absolute;z-index:2;top:34%;left:calc(max(14px, 50% - 410px) + 58px);transform:translate(-50%,-50%);width:132px;height:132px;border-radius:50%;background:var(--fond);color:var(--terracotta);display:grid;place-items:center;text-align:center;padding:10px}
.stone .badge .wm{font-size:19px;line-height:0.95}
@media (max-width:560px){.stone .badge{width:96px;height:96px;top:30%}.stone .badge .wm{font-size:14px}}
.stone .frame{position:relative;max-width:820px;margin:0 auto;aspect-ratio:16/11;overflow:hidden;border-radius:48% 52% 46% 54%/54% 46% 52% 48%}
.stone .frame::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,var(--terracotta) 0%,transparent 55%);mix-blend-mode:multiply;opacity:0;pointer-events:none;z-index:1;transition:opacity 900ms ease}
.stone .frame.open::after{opacity:0}

.stone img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(0.85) contrast(1.02);clip-path:circle(4% at 50% 45%);opacity:0;transform:scale(1.05);transition:clip-path 1500ms cubic-bezier(.2,.7,.2,1) 150ms,opacity 900ms ease 150ms,transform 1500ms cubic-bezier(.2,.7,.2,1) 150ms}
.stone img.revealed{clip-path:circle(75% at 50% 45%);opacity:1;transform:scale(1)}
@media (prefers-reduced-motion:reduce){.stone img{transition:none;clip-path:none;opacity:1;transform:none}}
.stone figcaption{font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--faint);text-align:center;padding-top:18px}

.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.contact-grid.two{grid-template-columns:repeat(2,1fr)}
.block h3{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 70,'wght' 800;text-transform:uppercase;font-size:11.5px;letter-spacing:0.05em;color:var(--accent);margin:0 0 10px}
.block p{margin:0;font-size:13.5px;line-height:1.8}
@media (max-width:640px){.contact-grid{grid-template-columns:1fr}}

.crossover{border-top:1px solid var(--rule);padding:52px 0}
.crossover a{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;text-decoration:none;color:inherit}
.crossover .lbl{font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faint)}
.crossover .to{font-size:clamp(26px,4vw,42px);color:var(--accent)}

footer{border-top:1px solid var(--rule);padding:32px 0}
footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
footer .wm{font-size:22px;color:var(--terracotta)}
footer .fine{font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--faint)}

/* références */
.refs{margin:34px 0 0;padding-top:22px;border-top:1px solid var(--rule)}
.refs-label{margin:0 0 14px;font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faint)}
.refs ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.refs li{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11.5px;line-height:1.35;letter-spacing:0.04em;color:var(--soft);border:1px solid var(--rule);border-radius:999px;padding:7px 13px}
.refs a{text-decoration:none;color:inherit}
.no-underline a{text-decoration:none;font-weight:600}
.kicker-icon{display:inline-block;vertical-align:-6px;margin-right:8px;width:22px;height:22px}
.kicker,.sec-kicker{display:flex;align-items:center}
.block-icon-wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.block-icon{flex:none;width:72px;height:72px;color:var(--accent);opacity:0;transform:translateX(28px);transition:opacity 700ms ease,transform 700ms ease}
.block-icon.in-view{opacity:0.5;transform:none}
@media (max-width:700px){.block-icon{width:44px;height:44px}}
@media (prefers-reduced-motion:reduce){.block-icon{opacity:1;transform:none;transition:none}}
.item ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.item ul li{font-family:var(--mono);font-size:13.5px;font-weight:400;color:var(--soft);line-height:1.75}
.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}
