:root { --ink:#031522; --deep:#04111b; --surface:#071e2e; --surface-2:#0b2c40; --line:rgb(156 211 235 / 22%); --cyan:#12ddec; --cyan-soft:#9beff4; --text:#f4fbfd; --muted:#a9c1cf; --sans:"Avenir Next","Segoe UI",Arial,sans-serif; --shadow:0 18px 45px rgb(0 0 0 / 28%); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; background:var(--deep); } body { margin:0; background:var(--deep); color:var(--text); font:16px/1.5 var(--sans); } img { display:block; max-width:100%; height:auto; } a { color:inherit; } button,input,select,textarea { font:inherit; } button { cursor:pointer; } [hidden] { display:none !important; } main { overflow:clip; min-height:70vh; } :focus-visible { outline:3px solid var(--cyan); outline-offset:4px; } .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; }
.skip-link { position:fixed; z-index:100; top:-5rem; left:1rem; padding:.65rem .9rem; color:var(--ink); background:var(--cyan); font-weight:800; } .skip-link:focus { top:1rem; }
.icon { width:1.1em; height:1.1em; flex:0 0 auto; vertical-align:-.18em; }
.site-header { position:relative; z-index:20; display:flex; align-items:center; gap:clamp(1.5rem,4vw,4.5rem); min-height:86px; padding:0 clamp(1.25rem,3vw,3.5rem); border-bottom:1px solid var(--line); background:#03121d; }
.brand { display:flex; align-items:center; gap:.4rem; flex-shrink:0; text-decoration:none; }
.brand .brand-symbol { width:44px; height:44px; }
.brand .brand-wordmark { width:186px; height:auto; }
.site-nav { display:flex; align-self:stretch; gap:2.5rem; }
.site-nav a { display:grid; place-items:center; text-decoration:none; color:#d7e9ef; font-size:.95rem; font-weight:650; border-bottom:2px solid transparent; }
.site-nav a:hover,.site-nav a[aria-current="page"] { color:var(--cyan); border-color:var(--cyan); }
.header-contact { display:inline-flex; align-items:center; gap:.7rem; margin-left:auto; color:var(--cyan); font-size:.92rem; font-weight:650; text-decoration:none; white-space:nowrap; }
.header-contact:hover { text-decoration:underline; text-underline-offset:.35em; }
.header-contact .icon { width:24px; height:24px; } .header-contact span { font-size:1.4rem; }
.nav-toggle { display:none; border:1px solid var(--line); border-radius:6px; color:var(--text); background:transparent; padding:.5rem .7rem; }
.atlas { container-type:inline-size; position:relative; background:var(--deep); }
.atlas-controls { position:absolute; inset:0 0 auto; z-index:4; display:flex; justify-content:space-between; gap:1rem; padding:1.4rem clamp(1.25rem,3vw,3.5rem); background:linear-gradient(#03121de8,#03121d00); pointer-events:none; }
.atlas-controls > * { pointer-events:auto; }
.project-filters { display:flex; gap:.65rem; padding:0; margin:0; border:0; }
.project-filters button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:46px; padding:.55rem 1.45rem; border:1px solid #38586b; border-radius:999px; background:#051e2de8; color:var(--text); font-size:.92rem; font-weight:650; box-shadow:0 3px 12px #0002; }
.project-filters button[aria-pressed="true"] { border-color:var(--cyan); background:var(--cyan); color:#00151c; }
.project-search { display:flex; align-items:center; width:min(390px,35vw); min-height:46px; gap:.75rem; padding:0 1rem; border:1px solid #38586b; border-radius:999px; background:#031827ed; color:#c5dae3; }
.project-search input { min-width:0; width:100%; border:0; padding:.5rem 0; background:transparent; color:var(--text); font-size:.9rem; }
.project-search:focus-within { outline:2px solid var(--cyan); outline-offset:3px; } .project-search input:focus { outline:0; }
.project-search input::placeholder { color:#b4cbd7; }
/* The equirectangular image ALWAYS stays 2:1. Only the polar margins are cropped. */
.atlas-map { --map-height:50cqw; --map-top:-4cqw; position:relative; width:100%; height:calc(100cqw / 2.6); overflow:hidden; background:#071e2e url('/assets/world-satellite.webp') center var(--map-top) / 100% auto no-repeat; isolation:isolate; }
.atlas-map::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#04111b7a,transparent 30%,#00162620 70%,#04111b66),linear-gradient(90deg,#00172830,#00172815); }
.map-empty { display:grid; place-items:center; height:100%; max-width:35ch; margin:auto; text-align:center; }
.map-attribution { position:absolute; z-index:2; right:1rem; bottom:.65rem; color:#c3d9e5; font-size:.65rem; text-underline-offset:.2em; background:#04111b9c; padding:.15rem .35rem; border-radius:4px; }
.map-point { position:absolute; z-index:2; left:var(--point-x); top:calc(var(--point-y) * var(--map-height) + var(--map-top)); transform:translate(-50%,-50%); }
.map-point.is-open { z-index:3; }
.marker { position:relative; display:block; width:26px; height:26px; padding:0; border:0; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 6px #12ddec32,0 0 25px #12ddec70; }
.marker::after { content:""; position:absolute; inset:8px; border-radius:50%; background:#021a28; }
.marker::before { content:""; position:absolute; inset:-9px; border-radius:50%; }
.map-popover { position:absolute; width:clamp(184px,14vw,220px); left:48px; top:0; overflow:hidden; border:1px solid #78afc0; border-radius:13px; background:#031827f7; box-shadow:var(--shadow); }
.map-popover img { width:100%; aspect-ratio:1.85; object-fit:cover; }
.map-popover div { padding:.8rem .9rem; }
.map-popover strong { display:block; font-size:1rem; line-height:1.2; font-weight:650; }
.map-popover span { display:block; margin:.3rem 0 .65rem; color:#bbd2df; font-size:.8rem; line-height:1.3; }
.map-popover a { display:inline-flex; align-items:center; min-height:28px; color:var(--cyan); font-size:.78rem; font-weight:650; text-decoration:none; }
.map-popover a:hover { text-decoration:underline; text-underline-offset:.2em; }
.map-point[data-project="resort"] .map-popover { left:22px; right:auto; top:30px; }
.map-point::before { content:""; position:absolute; height:1px; width:36px; background:#91b7c8; top:13px; left:26px; }
.map-point[data-project="resort"]::before { display:none; }
.map-fullscreen-close { display:none; position:absolute; z-index:8; top:1rem; right:1rem; padding:.65rem 1rem; border:1px solid var(--cyan); border-radius:999px; background:var(--deep); color:var(--text); font-weight:700; }
.atlas-map:fullscreen,.atlas-map.is-expanded { --map-height:50vw; --map-top:max(0px,calc((100dvh - 50vw) / 2)); width:100vw; height:100dvh; background-size:100% auto; }
.atlas-map.is-expanded { position:fixed; z-index:70; inset:0; }
.atlas-map:fullscreen .map-fullscreen-close,.atlas-map.is-expanded .map-fullscreen-close { display:block; }
.destinations { position:relative; width:calc(100% - clamp(2.5rem,4vw,5rem)); max-width:1800px; margin:0 auto; padding:1.5rem 0 2rem; }
.destinations__heading { display:flex; justify-content:space-between; gap:2rem; align-items:center; margin-bottom:1.35rem; }
.eyebrow { margin:0 0 .45rem; color:var(--cyan); font-size:.72rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.destinations .eyebrow { display:none; }
.destinations h1 { margin:0; font-size:clamp(1.6rem,2.2vw,2.25rem); line-height:1.15; letter-spacing:-.035em; }
.map-expand { display:inline-flex; align-items:center; gap:.6rem; border:0; padding:.5rem 0; background:transparent; color:var(--cyan); font-size:.85rem; text-decoration:none; }
.map-expand:hover { text-decoration:underline; }
.filter-result { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.destination-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.destination-card { display:grid; grid-template-columns:1.1fr 1fr; overflow:hidden; border:1px solid #355268; border-radius:14px; background:linear-gradient(130deg,#082537,#041623); }
.destination-card__image { min-width:0; min-height:270px; background:#102c3a; }
.destination-card__image img { width:100%; height:100%; object-fit:cover; }
.destination-card__body { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:clamp(1rem,1.5vw,1.8rem); }
.project-type { display:inline-flex; align-items:center; gap:.5rem; padding:.3rem .75rem; border:1px solid #12ddec40; border-radius:999px; color:var(--cyan); background:#06324966; font-size:.76rem; }
.destination-card h2 { margin:1.1rem 0 .4rem; font-size:clamp(1.35rem,1.65vw,1.9rem); line-height:1.14; letter-spacing:-.035em; }
.destination-card__place { margin:0; color:#d5e7ee; font-size:.86rem; }
.project-status { display:flex; align-items:center; gap:.5rem; width:100%; margin:1rem 0 1.15rem; padding-top:.85rem; border-top:1px solid var(--line); color:var(--cyan); font-size:.8rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:45px; padding:.7rem 1rem; border:1px solid var(--cyan); border-radius:999px; background:var(--cyan); color:#00151c; font-weight:650; text-decoration:none; }
.button:hover { background:#93f6fb; border-color:#93f6fb; }
.destination-card .button { margin-top:auto; width:100%; font-size:.88rem; }
.destination-card[data-project-card="gite"] .button { background:transparent; color:var(--text); border-color:#7597aa; }
.destination-card[data-project-card="gite"] .project-status { color:#c1d5e1; }
.destination-card[data-project-card="gite"] .button:hover { background:#0b2c40; }
.no-results { margin:1.5rem 0; color:var(--muted); }.no-results button { padding:0; border:0; color:var(--cyan); background:transparent; text-decoration:underline; }
.site-footer { border-top:1px solid var(--line); background:#020d16; padding:1.4rem clamp(1.25rem,3vw,3.5rem); }
.footer-grid { display:flex; align-items:center; gap:2rem; max-width:1800px; margin:auto; }.footer-brand { flex-shrink:0; }.footer-brand img { width:160px; height:auto; }
.footer-grid nav,.footer-meta { display:flex; flex-wrap:wrap; gap:1rem; }.footer-grid a,.footer-grid button { color:#aec6d3; border:0; padding:0; background:transparent; font-size:.78rem; text-decoration:none; }.footer-grid a:hover,.footer-grid button:hover { color:var(--cyan); }.footer-meta { margin-left:auto; }.footer-meta a:last-child { color:#d9eff3; }
.shell { width:min(1180px,calc(100% - 2rem)); margin:0 auto; }.editorial,.legal { padding:clamp(4rem,8vw,8rem) 0; }.editorial h1,.editorial h2,.legal h1,.legal h2 { letter-spacing:-.055em; line-height:1.03; }.editorial h1,.legal h1 { font-size:clamp(2.7rem,5vw,5rem); }.editorial h2,.legal h2 { font-size:clamp(2rem,3vw,3.5rem); }.lede { max-width:48ch; color:#c5dae3; font-size:1.13rem; }.archive-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:3rem; border:1px solid var(--line); background:var(--line); }.archive-card { display:flex; flex-direction:column; min-height:275px; padding:2rem; background:#082032; text-decoration:none; }.archive-card:hover { background:#0b2c40; }.archive-card__index { color:var(--cyan); font-size:1.6rem; }.archive-card__meta { margin-top:auto; color:var(--cyan-soft); font-size:.85rem; }.details-hero,.hero { display:grid; grid-template-columns:1fr 1.1fr; min-height:490px; background:#062033; }.details-hero__content,.hero__content { align-self:center; padding:clamp(3rem,7vw,7rem); }.details-hero__image,.hero__visual { min-height:370px; }.details-hero__image img,.hero__visual img { width:100%; height:100%; object-fit:cover; }.hero__label { margin:0; padding:1rem; color:var(--muted); }.split-intro,.two-column,.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,7rem); }.project-feature,.tour-launch { margin:3rem 0; padding:clamp(2rem,5vw,5rem); background:#0a2b3e; }.facts { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:3rem 0; background:var(--line); border:1px solid var(--line); }.fact { padding:1rem; background:#082133; }.fact strong { display:block; color:var(--cyan); font-size:1.65rem; }.fact span,.form-note { color:var(--muted); font-size:.85rem; }.tour-frame { min-height:350px; margin-top:1.5rem; background:#020f19; }.tour-frame iframe { width:100%; height:570px; border:0; }.tour-frame__placeholder { padding:2rem; color:var(--muted); text-align:center; }.feature-list { padding:0; list-style:none; }.feature-list li { padding:1rem 0; border-bottom:1px solid var(--line); }.status-note { margin:2rem 0; padding:1rem 1.2rem; border-left:3px solid var(--cyan); background:#0b2c40; }.configuration article { display:grid; grid-template-columns:110px 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }.configuration strong { color:var(--cyan); font-size:2rem; }.contact-grid { padding:clamp(3rem,7vw,7rem) 0; }.contact-form { padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--line); border-radius:12px; background:#082133; }.contact-form label { display:block; margin:1rem 0 .35rem; font-size:.85rem; font-weight:700; }.contact-form input,.contact-form select,.contact-form textarea { width:100%; padding:.7rem; border:1px solid #608095; border-radius:6px; background:#031522; color:var(--text); }.contact-form textarea { min-height:10rem; }.honeypot { position:absolute; left:-10000px; }.legal { max-width:800px; }.legal h2 { margin-top:3rem; }.legal a:not(.button) { color:#08647a; }.legal a.button { color:#06223b; }.cookie-banner { position:fixed; z-index:30; bottom:1rem; left:1rem; width:min(550px,calc(100% - 2rem)); padding:1.2rem; background:#061a27; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }.cookie-banner p { margin:0 0 1rem; }.cookie-actions,.dialog-actions { display:flex; flex-wrap:wrap; gap:.6rem; }.cookie-actions .button--light { background:transparent; color:var(--text); }.cookie-actions .button--light:hover { background:#0b2c40; } dialog { width:min(610px,calc(100% - 2rem)); border:1px solid var(--line); border-radius:12px; color:var(--text); background:#082133; box-shadow:var(--shadow); } dialog::backdrop { background:rgb(0 8 13 / 72%); }.dialog-content { padding:2rem; }.preference { display:flex; gap:1rem; padding:1rem 0; }.preference input { accent-color:var(--cyan); }

@media (max-width:1200px) { .site-header { gap:2rem; }.site-nav { gap:1.6rem; }.brand .brand-wordmark { width:160px; }.destination-card { grid-template-columns:1fr 1fr; }.destination-card__body { padding:1rem; }.destination-card h2 { font-size:1.4rem; }.destination-card__image { min-height:290px; }.footer-grid { flex-wrap:wrap; }.footer-meta { margin-left:0; } }
@media (max-width:1200px) {
  .atlas-controls { position:relative; padding:1rem 1.25rem; background:#041521; }
  .atlas-map { --map-top:0px; height:calc(var(--map-height) + 152px); }
  .map-point { position:static; transform:none; }
  .map-point::before { display:none; }
  .map-point .marker { position:absolute; left:var(--point-x); top:calc(var(--point-y) * var(--map-height) + var(--map-top)); translate:-50% -50%; z-index:3; }
  .map-point .map-popover,.map-point[data-project] .map-popover { display:grid; grid-template-columns:130px minmax(0,1fr); top:calc(var(--map-height) + var(--map-top) + 10px); left:1.25rem; right:1.25rem; bottom:auto; width:auto; min-height:110px; }
  .map-popover img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }.map-popover div { padding:.7rem 1rem; }
  .map-attribution { bottom:.25rem; font-size:.6rem; }
  .destination-grid { grid-template-columns:1fr; }.destination-card { grid-template-columns:1.1fr 1fr; }.destination-card__image { min-height:260px; }.destination-card__body { padding:1.4rem; }.destination-card h2 { font-size:1.8rem; }
  .atlas-map:fullscreen,.atlas-map.is-expanded { --map-top:max(60px,calc((100dvh - 50vw - 152px) / 2)); height:100dvh; }
}
@media (max-width:760px) {
  .site-header { min-height:74px; padding:0 1rem; gap:.7rem; }.brand { gap:.35rem; }.brand .brand-symbol { width:33px; height:33px; }.brand .brand-wordmark { width:153px; }.header-contact { display:none; }.nav-toggle { display:block; margin-left:auto; }
  .site-nav { position:absolute; top:100%; right:1rem; left:1rem; display:none; flex-direction:column; gap:0; padding:.5rem; border:1px solid var(--line); border-radius:10px; background:#061a27; box-shadow:var(--shadow); }.site-nav[data-open="true"] { display:flex; }.site-nav a { display:block; padding:.8rem; border-bottom:0; }
  .atlas-controls { flex-direction:column; padding:.9rem 1rem; gap:.8rem; }.project-filters { gap:.5rem; }.project-filters button { flex:1; min-width:0; padding:.5rem .75rem; font-size:.86rem; }.project-search { width:100%; min-height:44px; }
  .destinations { width:calc(100% - 2rem); padding:1.4rem 0 1.8rem; }.destinations__heading { align-items:start; flex-direction:column; gap:.5rem; margin-bottom:1rem; }.destination-card { grid-template-columns:1fr; }.destination-card__image { min-height:0; aspect-ratio:1.65; }.destination-card__body { padding:1.25rem; }.destination-card h2 { margin-top:.8rem; font-size:1.65rem; }.project-status { margin:.85rem 0 1rem; }
  .map-point .map-popover,.map-point[data-project] .map-popover { left:1rem; right:1rem; grid-template-columns:95px minmax(0,1fr); }.map-popover strong { font-size:.9rem; }.map-popover span,.map-popover a { font-size:.75rem; }.map-popover div { padding:.65rem .75rem; }
  .footer-grid { align-items:flex-start; flex-direction:column; gap:1.2rem; }.footer-grid nav,.footer-meta { gap:.8rem; }.footer-brand img { width:155px; }
  .facts { grid-template-columns:repeat(2,1fr); }.details-hero,.hero,.split-intro,.two-column,.contact-grid { grid-template-columns:1fr; }.details-hero__content,.hero__content { padding:3rem 1rem; }.archive-grid { grid-template-columns:1fr; }.configuration article { grid-template-columns:70px 1fr; }
}

/* Atlas clair — refonte 2026-11-02. Les pages de réalisation conservent leur
   contenu long ; ces règles remplacent leur enveloppe nocturne par une lecture
   calme, lumineuse et cohérente avec le catalogue. */
:root { --ink:#071b3a; --deep:#f8fafb; --text:#071b3a; --muted:#59708e; --cyan:#08c9df; --cyan-soft:#046f85; --line:#dbe5ee; --pearl:#f3f7fa; --panel:#fff; --shadow:0 18px 44px rgb(21 53 88 / .11); }
* { box-sizing:border-box; }
body { background:var(--deep); color:var(--text); font-family:"Avenir Next","Segoe UI",Arial,sans-serif; }
a { color:inherit; }
.skip-link { background:#071b3a; color:#fff; }
.site-header { position:sticky; z-index:20; top:0; min-height:76px; padding:0 clamp(1rem,4vw,4rem); border-bottom:1px solid var(--line); background:rgb(255 255 255 / .94); backdrop-filter:blur(12px); }
.brand { display:flex; align-items:center; min-width:172px; }
.brand .brand-wordmark { width:clamp(150px,16vw,205px); height:auto; }
.site-nav { gap:clamp(1rem,2.5vw,2.5rem); }
.site-nav a { color:var(--ink); font-weight:700; }
.site-nav a[aria-current="page"],.site-nav a:hover { color:#007f98; border-bottom-color:var(--cyan); }
.header-contact { color:#007f98; font-weight:750; }
.nav-toggle { border-color:#9eb5c8; color:var(--ink); background:#fff; }
.atlas-home { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; min-height:500px; padding:clamp(2rem,7vw,7rem) clamp(1rem,6vw,7rem); overflow:hidden; background:linear-gradient(140deg,#fff 0%,#f6f9fb 56%,#eef5f8 100%); }
.atlas-home__copy { position:relative; z-index:2; max-width:540px; }
.eyebrow { color:#007f98; }
.atlas-home h1,.listing-hero h1,.contact-hero h1 { max-width:9ch; margin:.2rem 0 1.1rem; color:var(--ink); font-size:clamp(3rem,6.2vw,6.2rem); line-height:.95; letter-spacing:-.07em; }
.atlas-home .lede,.listing-hero .lede,.contact-hero .lede { color:#5a7090; font-size:clamp(1.2rem,2vw,1.55rem); }
.hero-search { display:flex; align-items:center; gap:.55rem; width:min(100%,500px); min-height:60px; margin-top:2rem; padding:.35rem .4rem .35rem 1rem; border:1px solid #d2dfea; border-radius:999px; background:#fff; box-shadow:0 10px 24px rgb(21 53 88 / .07); }
.hero-search .icon { flex:0 0 22px; color:#466480; }.hero-search input { min-width:0; flex:1; border:0; outline:0; color:var(--ink); font:inherit; }.hero-search .button { min-height:48px; }
.button { border-color:var(--cyan); background:var(--cyan); color:#06223b; font-weight:800; }.button:hover { background:#64e5ef; border-color:#64e5ef; }.button--outline { background:#fff; border-color:#a7bfce; color:#123556; }.button--outline:hover { background:#edf8fa; }
.atlas-map { background-image:url("/assets/world-relief.svg?v=914002ec52fb") !important; background-size:contain !important; background-position:center !important; background-repeat:no-repeat !important; }
.atlas-map--hero { min-height:360px; height:min(43vw,520px); margin-left:-5vw; background-color:transparent !important; }
.atlas-map .map-attribution { display:none; }.map-empty { color:#5b718a; background:#fff; }.marker { background:var(--cyan); box-shadow:0 0 0 6px rgb(8 201 223 / .18),0 6px 17px rgb(8 201 223 / .32); }.marker::after { background:#073152; }
.map-popover { border-color:#d5e4ed; background:#fff; color:var(--ink); box-shadow:var(--shadow); }.map-popover span { color:var(--muted); }.map-popover a { color:#007f98; }
.home-categories { display:flex; flex-wrap:wrap; gap:.8rem; width:min(1180px,calc(100% - 2rem)); margin:-1.25rem auto 3rem; position:relative; z-index:3; }.home-categories a { display:inline-flex; align-items:center; gap:.55rem; min-height:48px; padding:.65rem 1.1rem; border:1px solid #d9e5ed; border-radius:999px; background:#fff; color:var(--ink); font-weight:750; text-decoration:none; box-shadow:0 4px 12px rgb(17 49 79 / .05); }.home-categories a:hover { border-color:var(--cyan); background:#effcff; }.home-categories .icon { width:19px; color:#00859f; }
.destinations { width:min(1180px,calc(100% - 2rem)); padding:1rem 0 3.5rem; }.destinations__heading { align-items:end; }.destinations h1,.destinations h2 { color:var(--ink); font-size:clamp(2rem,4vw,3.6rem); line-height:1; letter-spacing:-.055em; }.destinations-intro { max-width:65ch; color:var(--muted); }.text-link { color:#007f98; font-weight:800; text-decoration:none; }.text-link:hover { text-decoration:underline; text-underline-offset:.25em; }
.destination-grid { gap:1.25rem; }.destination-card { overflow:hidden; display:flex; flex-direction:column; border:1px solid #dce7ee; border-radius:16px; background:#fff; box-shadow:0 10px 26px rgb(19 53 86 / .07); }.destination-card__image { min-height:0; aspect-ratio:1.54; background:#e8f0f5; }.destination-card__body { min-height:260px; padding:1.25rem; }.project-type { border-color:#cde8ee; background:#effcff; color:#006d86; }.destination-card h2 { margin:.9rem 0 .35rem; color:var(--ink); font-size:1.45rem; }.destination-card__place { color:var(--muted); }.project-status { border-top-color:#e5edf2; color:#007f98; }.destination-card[data-project-card="gite"] .project-status { color:#52718d; }.destination-card[data-project-card="gite"] .button { color:#063150; border-color:#9ab7c9; background:#fff; }.destination-card[data-project-card="gite"] .button:hover { background:#effcff; }
.owner-cta { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin:0 auto 4rem; padding:clamp(1.5rem,4vw,3rem); border:1px solid #e2ebf1; border-radius:22px; background:linear-gradient(105deg,#eef9fb,#fff 70%); }.owner-cta h2 { margin:.1rem 0 .5rem; color:var(--ink); font-size:clamp(1.65rem,3vw,2.7rem); letter-spacing:-.04em; }.owner-cta p:not(.eyebrow) { max-width:63ch; margin:0; color:var(--muted); }.owner-cta .button { flex:0 0 auto; }
.site-footer { border-color:#dfe8ef; background:#fff; }.footer-brand img { width:180px; height:auto; }.footer-grid a,.footer-grid button { color:#46617d; }.footer-grid a:hover,.footer-grid button:hover { color:#007f98; }
.editorial,.legal { color:var(--ink); }.editorial h1,.legal h1,.editorial h2,.legal h2 { color:var(--ink); }.lede,.form-note { color:var(--muted); }.archive-grid { gap:1.25rem; border:0; background:none; }.archive-card { overflow:hidden; min-height:300px; padding:0 1.5rem 1.5rem; border:1px solid #dde7ef; border-radius:16px; background:#fff; color:var(--ink); box-shadow:0 10px 26px rgb(19 53 86 / .06); }.archive-card:hover { background:#f9fcfd; transform:translateY(-2px); }.archive-card img { width:calc(100% + 3rem); max-height:210px; margin:0 -1.5rem 1.3rem; object-fit:cover; }.archive-card__index,.archive-card__meta { color:#007f98; }
.details-hero,.hero { background:#f2f8fa; min-height:460px; }.details-hero__content,.hero__content { color:var(--ink); }.details-hero__image { position:relative; }.details-hero__image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgb(242 248 250 / .15),transparent); pointer-events:none; }.project-story__body { color:var(--ink); }.project-story__body p { color:#526b86; }.case-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:2.8rem 0 0; border:1px solid #dce8ef; border-radius:15px; overflow:hidden; background:#dce8ef; }.case-overview article { padding:1.5rem; background:#fff; }.case-overview h2 { margin:.15rem 0 .6rem; font-size:1.35rem; letter-spacing:-.03em; }.case-overview p { margin:0; }.case-credit { grid-column:1/-1; margin:0 !important; padding:.85rem 1.5rem; background:#effbfc; color:#3d617c !important; }
.facts,.archive-grid { border-color:#dce8ef; background:#dce8ef; }.fact,.archive-card { background:#fff; }.fact strong { color:#007f98; }.project-chapters { border-color:#dce8ef; background:#fff; }.project-chapters a { color:#31536f; }.project-chapters a:hover { color:#007f98; }.project-feature,.tour-launch,.status-note { background:#eef7f9; border-color:#b8e8ee; }.project-note { color:#59718b !important; }.project-shot { border-color:#dce8ef; background:#fff; }.project-shot figcaption { color:#536c85; }.point-examples article,.access-explanations article { border-color:#dce8ef; background:#fff; }.formula-table-wrap,.formula-table { border-color:#dce8ef; }.formula-table th,.formula-table td { border-color:#dce8ef; color:#31536f; }.formula-table thead th { background:#edf8fa; color:var(--ink); }
.listing-hero { overflow:hidden; background:linear-gradient(135deg,#fff,#eef6f9); }.listing-hero__inner { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; min-height:300px; }.atlas-map--listing { height:260px; }.catalogue { display:grid; grid-template-columns:235px minmax(0,1fr); gap:2rem; padding:3rem 0 4rem; }.catalogue-filters { align-self:start; padding:1.2rem; border:1px solid #dce8ef; border-radius:16px; background:#f3f8fa; }.catalogue-filters h2 { margin:0 0 1.25rem; font-size:1.35rem; }.catalogue-filters label { display:block; margin:1rem 0 .35rem; color:#254865; font-size:.86rem; font-weight:750; }.catalogue-filters input,.catalogue-filters select,.contact-form input,.contact-form select,.contact-form textarea { border-color:#cad9e4; background:#fff; color:var(--ink); }.catalogue-filters input,.catalogue-filters select { width:100%; min-height:43px; padding:.6rem; border-radius:8px; }.catalogue-filters .button { width:100%; margin-top:1.5rem; }.catalogue-results__heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }.catalogue-results__heading h2 { margin:0; font-size:clamp(2rem,4vw,3.2rem); letter-spacing:-.055em; }.view-toggle { display:flex; border:1px solid #cfdeea; border-radius:999px; overflow:hidden; }.view-toggle button { min-height:38px; padding:.4rem .9rem; border:0; color:#31536f; background:#fff; font:inherit; font-weight:750; }.view-toggle button[aria-pressed="true"] { background:#e2fafd; color:#006d86; }.listing-map { min-height:420px; margin:1rem 0; border:1px solid #dce8ef; border-radius:16px; background-color:#f2f7f9; background-repeat:no-repeat; background-size:contain; background-position:center; }.listing-map p { margin:0; padding:1rem; color:#52718d; text-align:center; }
.contact-hero { overflow:hidden; background:linear-gradient(110deg,#fff 38%,#dff4f5); }.contact-hero__inner { display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:360px; }.contact-hero__inner img { width:100%; height:360px; object-fit:cover; }.service-options { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:-1.4rem; position:relative; z-index:2; }.service-options article { padding:1.4rem; border:1px solid #dce8ef; border-radius:14px; background:#fff; box-shadow:0 10px 20px rgb(19 53 86 / .06); }.service-options span { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; color:#007f98; background:#e1fbfd; }.service-options .icon { width:25px; }.service-options h2 { margin:1rem 0 .35rem; font-size:1.2rem; }.service-options p,.contact-process span { color:var(--muted); }.contact-process ol { display:grid; gap:1.2rem; padding:0; list-style:none; counter-reset:steps; }.contact-process li { display:grid; grid-template-columns:36px 1fr; column-gap:.8rem; }.contact-process li::before { content:counter(steps); counter-increment:steps; display:grid; grid-row:span 2; width:36px; height:36px; place-items:center; border-radius:50%; color:#007f98; background:#ddfafe; font-weight:800; }.contact-process strong,.contact-process span { grid-column:2; }.contact-form { border-color:#dce8ef; background:#f4f8fa; }.contact-form h2 { margin-top:0; }.optional { color:#6e849c; font-weight:400; }.contact-form .button { width:100%; margin-top:1rem; }
.cookie-banner,dialog { color:var(--ink); border-color:#d7e4ec; background:#fff; }.cookie-actions .button--light { color:var(--ink); background:#fff; }.cookie-actions .button--light:hover { background:#eef8fa; }
:focus-visible { outline:3px solid #006f87; outline-offset:3px; }
@media (max-width:760px) { .site-header { min-height:68px; }.brand .brand-wordmark { width:160px; }.site-nav { background:#fff; border-color:#d5e3ec; }.atlas-home,.listing-hero__inner,.contact-hero__inner { grid-template-columns:1fr; }.atlas-home { min-height:auto; padding-top:3.5rem; }.atlas-map--hero { min-height:230px; height:270px; margin:1rem -1.5rem -1rem; }.atlas-home h1,.listing-hero h1,.contact-hero h1 { font-size:clamp(2.8rem,14vw,4rem); }.hero-search { flex-wrap:wrap; border-radius:18px; padding:.7rem; }.hero-search input { min-height:36px; }.hero-search .button { width:100%; }.home-categories { margin:1rem auto 2rem; }.home-categories a { flex:1; justify-content:center; }.destinations__heading,.owner-cta,.catalogue-results__heading { align-items:start; flex-direction:column; }.owner-cta { align-items:stretch; }.owner-cta .button { width:100%; }.case-overview,.service-options { grid-template-columns:1fr; }.catalogue { grid-template-columns:1fr; padding-top:1.5rem; }.catalogue-filters { position:static; }.destination-grid--listing { grid-template-columns:1fr; }.atlas-map--listing { height:200px; }.contact-hero__inner img { height:220px; }.service-options { margin-top:1rem; }.contact-grid { padding-top:2.5rem; } }
@media (max-width:360px) { .brand .brand-wordmark { width:134px; }.brand .brand-symbol { width:28px; }.nav-toggle { padding:.45rem .55rem; }.site-header { gap:.4rem; }.project-filters button { gap:.35rem; padding:.5rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
/* Bridge the hover gap so the visitor can reach the destination link. */
.map-point.is-open::after { content:""; position:absolute; left:15px; top:-10px; width:46px; height:60px; z-index:-1; }

/* La Tortue: a visual case study of the real interactive visit. */
.project-story .details-hero__image { background:#e7edf5; display:grid; align-content:center; }
.project-story .details-hero__image img { height:auto; object-fit:contain; }
.project-story h1 { font-size:clamp(2.5rem,4.5vw,4.6rem); line-height:1.06; letter-spacing:-.045em; margin:.8rem 0 1.3rem; }
.project-story .details-hero .button { margin-top:1rem; }
.project-story__body { width:min(1260px,calc(100% - 3rem)); margin:auto; }
.project-story .facts { margin:2.5rem 0 1.5rem; }
.project-chapters { display:flex; flex-wrap:wrap; gap:.65rem; padding:0 0 1.5rem; border-bottom:1px solid var(--line); }
.project-chapters a { padding:.5rem .9rem; border:1px solid #38586b; border-radius:999px; color:#c6dce7; text-decoration:none; font-size:.85rem; }
.project-chapters a:hover { border-color:var(--cyan); color:var(--cyan); }
.project-intro { max-width:75ch; font-size:clamp(1rem,1.6vw,1.2rem); line-height:1.8; color:#c5dae3; margin:2rem 0 0; }
.project-chapter { padding:4.5rem 0; border-bottom:1px solid var(--line); scroll-margin-top:1.5rem; }
.chapter-heading { max-width:760px; margin-bottom:2rem; }
.chapter-heading h2,.project-story .tour-launch h2 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.1; letter-spacing:-.035em; margin:.6rem 0 1rem; }
.chapter-heading > p:last-child { color:#bfd3df; font-size:1.05rem; line-height:1.75; margin:0; }
.project-shot { min-width:0; margin:0; border:1px solid #38586b; border-radius:13px; background:#081f2e; overflow:hidden; }
.project-shot > a { display:block; position:relative; background:#e7edf5; }
.project-shot img { width:100%; height:auto; }
.project-shot--interface { max-width:1100px; margin-inline:auto; }
.shot-zoom { position:absolute; display:flex; align-items:center; gap:.4rem; right:.75rem; bottom:.75rem; padding:.4rem .65rem; border:1px solid #5d8e9e; border-radius:999px; color:#f4fbfd; background:#031827e8; font-size:.72rem; }
.project-shot a:hover .shot-zoom { background:#0b3748; }
.project-shot figcaption { padding:1rem 1.2rem; color:#c1d6e2; font-size:.9rem; line-height:1.65; }
.project-shot figcaption strong { color:var(--text); }
.project-gallery { display:grid; gap:1.25rem; align-items:start; }
.project-gallery--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.project-gallery--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.point-examples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:2.5rem; }
.point-examples article { border-top:2px solid #12ddec70; padding-top:1.2rem; }
.point-examples span { color:var(--cyan); font-size:.76rem; }
.point-examples h3 { margin:.6rem 0; font-size:1.25rem; line-height:1.3; letter-spacing:-.02em; }
.point-examples p { color:#b5cddc; font-size:.95rem; line-height:1.75; margin:0; }
.project-note { margin:1.4rem 0 0; max-width:95ch; color:#a9c1cf; font-size:.82rem; line-height:1.75; }
.guided-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; counter-reset:guide; gap:1.5rem; padding:0; margin:2rem 0 0; }
.guided-steps li { counter-increment:guide; padding-top:1rem; border-top:1px solid var(--line); }
.guided-steps li::before { content:'0' counter(guide); display:block; color:var(--cyan); font-size:1.7rem; margin-bottom:.6rem; }
.guided-steps strong { display:block; margin-bottom:.5rem; }
.guided-steps span { color:#bad1df; font-size:.92rem; line-height:1.7; }
.project-story .tour-launch { border:1px solid #315467; border-radius:14px; scroll-margin-top:1rem; }
.project-story .button-row { display:flex; flex-wrap:wrap; gap:.8rem; }
.project-story .button--light { background:transparent; color:var(--text); }
.project-note--last { margin:0 0 3rem; }
@media (max-width:760px) {
 .project-story__body { width:calc(100% - 2rem); }
 .project-story .details-hero__image { min-height:0; }
 .project-story .details-hero__content { padding:2.5rem 1rem; }
 .project-story .facts { margin:1.5rem 0; }
 .project-story .fact strong { font-size:1.35rem; }
 .project-chapter { padding:2.8rem 0; }
 .project-gallery--two,.project-gallery--three,.point-examples,.guided-steps { grid-template-columns:1fr; }
 .point-examples { gap:1.5rem; margin-top:1.5rem; }
 .project-shot figcaption { padding:.85rem 1rem; }
 .chapter-heading { margin-bottom:1.4rem; }
 .project-story .tour-launch { padding:1.5rem 1rem; }
 .project-story .tour-frame iframe { height:720px; }
 .guided-steps { gap:.8rem; }
}
@media (max-width:1200px) {
 .atlas-map { height:var(--map-height); }
 .atlas-map.has-open-popover { height:calc(var(--map-height) + 152px); }
 .atlas-map:fullscreen,.atlas-map.is-expanded { height:100dvh; }
}
.map-point:not(.is-open)::before { display:none; }

.formula-table-wrap { margin-top:2.2rem; overflow:auto; border:1px solid #38586b; border-radius:12px; }
.formula-table { width:100%; min-width:720px; border-collapse:collapse; text-align:left; font-size:.9rem; line-height:1.6; }
.formula-table caption { padding:1.1rem 1.2rem; text-align:left; font-weight:700; font-size:1.2rem; color:var(--text); background:#0b2c40; }
.formula-table th,.formula-table td { padding:1rem; border-bottom:1px solid var(--line); vertical-align:top; width:25%; }
.formula-table thead th { color:var(--cyan); background:#082536; }
.formula-table tbody th { font-weight:650; background:#071e2e; }
.formula-table td { color:#c7dae5; }
.formula-table tr:last-child > * { border-bottom:0; }
.table-scroll-hint { display:none; color:var(--muted); font-size:.8rem; }
.access-explanations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.7rem; margin:0 0 2.2rem; }
.access-explanations h3 { font-size:1.2rem; line-height:1.3; }
.access-explanations p { color:#bfd3df; line-height:1.7; font-size:.95rem; }
@media(max-width:760px) { .access-explanations { grid-template-columns:1fr; gap:.8rem; }.table-scroll-hint { display:block; } }

/* Belledonne: focus the overview on the place and keep comparison labels in view. */
.project-story--belledonne .details-hero__image { position:relative; display:block; align-self:stretch; min-width:0; width:100%; }
.project-story--belledonne .details-hero__image img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center 30%; }
.project-story--belledonne .formula-table-wrap { container-type:inline-size; }
@media(max-width:760px) {
 .project-story--belledonne .details-hero__image { aspect-ratio:940 / 650; }
 .project-story--belledonne .table-scroll-hint { margin:2rem 0 .6rem; }
 .project-story--belledonne .formula-table-wrap { margin-top:0; }
 .project-story--belledonne .formula-table { --label-width:112px; --value-width:min(200px,calc(100cqw - 112px)); width:calc(var(--label-width) + var(--value-width) * 3); min-width:0; table-layout:fixed; }
 .project-story--belledonne .formula-table caption { position:sticky; left:0; width:100cqw; max-width:100cqw; }
 .project-story--belledonne .formula-table th,.project-story--belledonne .formula-table td { width:var(--value-width); padding:.85rem .75rem; }
 .project-story--belledonne .formula-table th:first-child { position:sticky; left:0; z-index:1; width:var(--label-width); box-shadow:1px 0 0 #38586b; }
 .project-story--belledonne .formula-table thead th:first-child { z-index:2; }
}
@media(max-width:520px) {
 .project-story--belledonne .formula-table { --value-width:calc(100cqw - 112px); }
}

/* SEO: a logical heading outline and visible paths to the archive. */
.breadcrumbs { padding:.85rem clamp(1rem,3vw,3.5rem); border-bottom:1px solid var(--line); color:var(--muted); font-size:.85rem; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:.45rem .7rem; padding:0; margin:0; list-style:none; }
.breadcrumbs li + li::before { content:"/"; margin-right:.7rem; color:var(--muted); }
.breadcrumbs a { text-underline-offset:.2em; }
.destinations-intro { max-width:85ch; margin:0 0 1.25rem; color:var(--muted); }

@media (max-width:1200px) { .atlas-map { background-image:url("/assets/world-satellite-1200.webp"); } }
@media (max-width:680px) { .atlas-map { background-image:url("/assets/world-satellite-800.webp"); } }

.listing-map { position:relative; margin-bottom:4rem; }
.listing-map > p { position:absolute; top:100%; left:0; width:100%; padding:.6rem 0; font-size:.8rem; line-height:1.5; }
.listing-map__marker { position:absolute; display:inline-flex; align-items:center; min-height:34px; padding:.3rem .65rem; border:1px solid #96e5ec; border-radius:999px; background:#fff; color:#006d86; font-size:.8rem; font-weight:800; text-decoration:none; box-shadow:0 6px 18px rgb(15 60 91 / .15); }
.listing-map__marker::before { content:""; width:9px; height:9px; margin-right:.4rem; border-radius:50%; background:#08c9df; }.listing-map__marker--tortue { top:57%; left:83%; }.listing-map__marker--belledonne { top:31%; left:53%; }

/* Correctifs QA Atlas clair : une seule géométrie 2:1 pour l'image et les repères. */
.atlas-map,.atlas-map--hero,.atlas-map--listing { --map-top:0; --map-height:100%; width:100%; height:auto !important; min-height:0; aspect-ratio:2 / 1; margin:0; overflow:visible; background:#f4f7f8 url("/assets/world-relief.svg?v=914002ec52fb") center / 100% 100% no-repeat !important; }
.atlas-map::before { display:none !important; }.atlas-map .map-empty { display:none; }.atlas-map .map-attribution { display:none; }.map-point { top:calc(var(--point-y) * 100%) !important; }.atlas-map .map-popover { z-index:5; color:var(--ink); }.atlas-map .map-popover strong { color:var(--ink); }.atlas-map .map-popover span { color:#4c6680; }.atlas-map .map-point[data-project="resort"] .map-popover { left:30px; top:28px; }
.atlas-home { overflow:visible; }.atlas-map--hero { margin:0; }.atlas-map--listing { height:auto; }
.listing-map { position:relative; min-height:0; aspect-ratio:2 / 1; overflow:visible; background:#f4f7f8 url("/assets/world-relief.svg?v=914002ec52fb") center / 100% 100% no-repeat !important; }.listing-map__marker { left:var(--point-x); top:var(--point-y); transform:translate(-50%,-50%); z-index:2; }.listing-map__marker--tortue,.listing-map__marker--belledonne { left:var(--point-x); top:var(--point-y); }
.project-credit { display:flex; align-items:center; gap:.45rem; margin:.55rem 0 0; color:#42657e; font-size:.82rem; }.project-credit .icon { color:#007f98; }
.project-story:not(.project-story--belledonne) .details-hero { grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr); }.project-story:not(.project-story--belledonne) .details-hero__image { order:0; }.project-story:not(.project-story--belledonne) .details-hero__content { order:1; }.project-story .details-hero__content .project-note { margin-top:1rem; color:#4d6a83 !important; }
.project-story .project-chapters a { color:#31536f; border-color:#c9dce7; background:#fff; }.project-story .project-chapters a:hover { color:#006f87; border-color:#08c9df; }.chapter-heading > p:last-child,.project-intro,.point-examples p,.access-explanations p,.guided-steps span,.project-shot figcaption,.project-note,.formula-table td,.table-scroll-hint { color:#486580 !important; }.project-shot figcaption strong { color:var(--ink); }.project-shot { border-color:#d5e4ec; background:#fff; }.shot-zoom { color:#fff; background:#123856e8; }.project-story .tour-launch { border-color:#cce4ea; background:#eef9fa; }.formula-table caption { color:var(--ink); background:#edf8fa; }.formula-table thead th { color:var(--ink); background:#e9f7f9; }.formula-table tbody th { color:var(--ink); background:#f6fafb; }.formula-table th,.formula-table td { border-color:#dce8ef; }.configuration article { border-color:#dce8ef; }.cookie-banner p,dialog p,dialog label { color:#365570; }
@media (max-width:760px) { .atlas-map,.atlas-map--hero,.atlas-map--listing { aspect-ratio:2 / 1; }.atlas-map--hero { margin:1rem 0 0; }.project-story:not(.project-story--belledonne) .details-hero { grid-template-columns:1fr; }.project-story:not(.project-story--belledonne) .details-hero__image { order:0; }.project-story:not(.project-story--belledonne) .details-hero__content { order:1; }.listing-map__marker { max-width:48%; font-size:.7rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } }
.atlas-home { min-height:0; padding-top:clamp(2rem,4vw,4rem); padding-bottom:clamp(2rem,4vw,4rem); }
@media (min-width:1201px) { .atlas-map .map-point[data-project="resort"] .map-popover { left:auto; right:0; } }
@media (max-width:1200px) { .atlas-map .map-point .marker { top:calc(var(--point-y) * 100%); } }
.eyebrow,.text-link,.point-examples span { color:#006b80 !important; }
.optional,.footer-meta a,.footer-meta a:last-child,.footer-meta button { color:#486580; }

/* Seconde passe : navigation complète, résultats lisibles et encarts mobiles. */
.site-nav a[href="/contact/"] { display:none; }
.header-contact[aria-current="page"] { text-decoration:underline; text-underline-offset:.35em; }
.catalogue .filter-result { position:static; width:auto; height:auto; overflow:visible; clip:auto; margin:.75rem 0 1rem; color:#486580; }
.map-popover__close { position:absolute; top:.35rem; right:.35rem; display:grid; place-items:center; width:32px; height:32px; border:1px solid #a6bdcc; border-radius:50%; background:#fff; color:#071b3a; font-size:1.35rem; line-height:1; box-shadow:0 2px 6px #071b3a20; cursor:pointer; }
.map-popover__close:hover { background:#ddfafe; }
@media (max-width:1200px) {
 .atlas-map.has-open-popover { margin-bottom:156px; }
 .atlas-map .map-point .map-popover,.atlas-map .map-point[data-project] .map-popover { top:calc(100% + 12px); left:0; right:0; width:auto; }
 .atlas-map .map-popover div { padding-right:2.5rem; }
}
@media (max-width:760px) {
 .site-nav a[href="/contact/"] { display:block; }
}

/* Fidélité Atlas clair : proportions, rythme et densité de la direction B retenue.
   Ces règles arrivent après les passes de compatibilité et préservent les contrats
   de la carte, du catalogue et du formulaire. */
:root { --sans:"DM Sans","dm-sans","Avenir Next","Segoe UI",Arial,sans-serif; --display:"futura-pt","Futura PT","Avenir Next","Segoe UI",Arial,sans-serif; }
body { font-family:var(--sans); font-size:16px; line-height:1.55; }
h1,h2,h3 { font-family:var(--display); }
h1,h2,h3 { font-weight:600; }
.site-header { min-height:74px; }
.site-nav a,.header-contact { font-family:var(--sans); font-weight:600; }
.atlas-home { grid-template-columns:minmax(330px,.72fr) minmax(510px,1.28fr); min-height:500px; padding:clamp(2rem,5.4vw,5rem) max(1rem,calc((100vw - 1200px)/2)); background:linear-gradient(135deg,#fff 0%,#f9fbfc 45%,#eff6f8 100%); }
.atlas-home__copy { max-width:460px; margin-left:clamp(0rem,1.2vw,1rem); }
.atlas-home h1 { max-width:13ch; margin:.15rem 0 .85rem; font-size:clamp(3.1rem,5.25vw,5.6rem); line-height:1.06; letter-spacing:-.025em; }
.atlas-home .lede { max-width:25ch; font-size:clamp(1.15rem,1.7vw,1.45rem); line-height:1.35; }
.atlas-map--hero { min-width:0; min-height:0; width:calc(100% + 2.5vw); height:auto; margin:0 0 0 -2.2vw; filter:drop-shadow(0 18px 20px rgb(21 53 88 / .08)); }
.hero-search { width:min(100%,474px); min-height:58px; margin-top:1.8rem; }
.hero-search .button { min-width:128px; }
.home-categories { width:min(1200px,calc(100% - 2rem)); margin:-.85rem auto 3.35rem; }
.home-categories a { min-width:125px; justify-content:center; padding:.62rem 1.2rem; }
.destinations { width:min(1200px,calc(100% - 2rem)); padding:0 0 3.5rem; }
.destinations__heading { padding-top:0; }
.destinations h2 { font-size:clamp(2.25rem,3.6vw,3.6rem); }
.destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.35rem; }
.destination-card { display:flex; min-height:0; max-width:560px; border-radius:14px; }
.destination-card__image { aspect-ratio:1.54; min-height:0; }
.destination-card__body { min-height:232px; padding:1.35rem 1.35rem 1.2rem; }
.destination-card h2 { margin:.78rem 0 .3rem; font-size:clamp(1.35rem,2vw,1.85rem); line-height:1.04; }
.destination-card .button { width:auto; min-width:0; padding:.6rem .85rem; font-size:.86rem; }
.project-credit,.project-status { font-size:.78rem; }
.owner-cta { position:relative; overflow:hidden; min-height:176px; padding:2.2rem clamp(1.75rem,4vw,3.3rem); border-radius:20px; background:linear-gradient(105deg,#eef9fb 0%,#fff 58%,#ecf5f8 100%); }
.owner-cta::after { content:""; position:absolute; inset:0 0 0 auto; width:34%; opacity:.24; pointer-events:none; background:radial-gradient(ellipse at 75% 62%,#b4d1dc 0 2%,transparent 2.5%),linear-gradient(154deg,transparent 0 33%,#9dbbc8 33.5% 35%,transparent 35.5% 100%); }
.owner-cta > * { position:relative; z-index:1; }
.owner-cta__illustration { position:absolute; z-index:0; right:-.5rem; bottom:0; width:min(43%,460px); max-height:100%; object-fit:contain; object-position:right bottom; opacity:.88; pointer-events:none; }
.owner-cta h2 { max-width:24ch; font-size:clamp(1.7rem,2.8vw,2.55rem); }

.listing-hero__inner { min-height:302px; grid-template-columns:.83fr 1.17fr; }
.listing-hero h1 { max-width:11ch; font-size:clamp(3rem,5.25vw,5rem); }
.listing-hero .lede { max-width:36ch; line-height:1.36; }
.atlas-map--listing { width:100%; max-width:660px; justify-self:end; }
.catalogue { grid-template-columns:244px minmax(0,1fr); gap:2.35rem; padding:2.4rem 0 4.5rem; }
.catalogue-filters { padding:1.45rem 1.2rem; border-radius:17px; background:linear-gradient(165deg,#f2f8fa,#f8fbfc); }
.catalogue-filters h2 { font-size:1.65rem; }
.catalogue-results__heading h2 { font-size:clamp(2.25rem,3.6vw,3.35rem); }
.destination-grid--listing { grid-template-columns:repeat(2,minmax(0,1fr)); }
.destination-grid--listing .destination-card { grid-template-columns:1fr; min-height:0; }
.destination-grid--listing .destination-card__image { min-height:0; aspect-ratio:1.54; }
.destination-grid--listing .destination-card__body { min-height:230px; }

.project-story:not(.project-story--belledonne) .details-hero { grid-template-columns:minmax(0,1.32fr) minmax(360px,.68fr); min-height:430px; }
.details-hero__content { padding:clamp(2rem,4.6vw,4.5rem); }
.details-hero h1 { margin:.35rem 0 1rem; font-size:clamp(3.15rem,5vw,5.45rem); line-height:.91; letter-spacing:-.052em; }
.details-hero .lede { font-size:1.13rem; line-height:1.45; }
.project-story .details-hero__image img { width:100%; height:100%; object-fit:cover; }
.project-story__body { width:min(1200px,calc(100% - 2rem)); margin:0 auto; }
.case-overview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:2.5rem 0 0; border:0; overflow:visible; background:transparent; }
.case-overview article { min-height:190px; padding:1.7rem; border:1px solid #dce8ef; border-radius:15px; box-shadow:0 8px 22px rgb(19 53 86 / .05); }
.case-credit { grid-column:1/-1; padding:0; background:transparent; }
.visit-features { margin:1.25rem 0 2.25rem; padding:1.55rem; border:1px solid #dce8ef; border-radius:15px; background:linear-gradient(135deg,#f8fcfd,#fff); }
.visit-features__heading { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:.35rem 1.5rem; align-items:end; margin-bottom:1.4rem; }
.visit-features__heading .eyebrow { grid-column:1/-1; margin:0; }.visit-features__heading h2 { margin:0; font-size:clamp(1.7rem,2.6vw,2.55rem); line-height:1; }.visit-features__heading p { margin:0; }
.visit-features__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; }
.visit-features__grid article { min-width:0; padding:.3rem 1rem .4rem; border-left:1px solid #dce8ef; }.visit-features__grid article:first-child { padding-left:0; border-left:0; }.visit-features__grid .icon { width:28px; height:28px; padding:5px; border-radius:50%; color:#007f98; background:#e0f9fb; }.visit-features__grid h3 { margin:.75rem 0 .4rem; font-family:var(--sans); font-size:.93rem; line-height:1.15; }.visit-features__grid p { margin:0; font-size:.84rem; line-height:1.45; }
.facts { grid-template-columns:repeat(4,1fr); gap:1px; margin:1.1rem 0 2.2rem; border-radius:15px; overflow:hidden; }
.fact { min-height:112px; padding:1.15rem; }
.project-chapters { margin:0 0 1.6rem; }
.project-story .project-chapters a { border-radius:999px; }
.project-gallery--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tour-launch { border-radius:18px; }

.contact-hero { background:linear-gradient(90deg,#fff 0 37%,rgb(255 255 255 / .9) 46%,transparent 65%),linear-gradient(110deg,#fff,#dff4f5); }
.contact-hero__inner { min-height:390px; grid-template-columns:.95fr 1.05fr; }
.contact-hero__inner > div { position:relative; z-index:1; }
.contact-hero h1 { max-width:6ch; font-size:clamp(3.35rem,5.8vw,5.9rem); line-height:.92; }
.contact-hero__inner img { height:390px; object-position:center; mask-image:linear-gradient(90deg,transparent 0,black 22%); }
.service-options { gap:.7rem; margin-top:-1.7rem; }
.service-options article { position:relative; min-height:130px; padding:1.3rem 3.7rem 1.25rem 1.3rem; border-radius:13px; }
.service-options article::after { content:"→"; position:absolute; right:1rem; bottom:1.15rem; display:grid; width:30px; height:30px; place-items:center; border:1px solid #ccdce7; border-radius:50%; color:#007f98; }
.service-options h2 { font-size:1.35rem; line-height:1.05; }
.contact-grid { grid-template-columns:.95fr 1.05fr; gap:clamp(2rem,6.5vw,6.5rem); padding:4rem 0; }
.contact-process h2 { max-width:12ch; font-size:clamp(2rem,3.4vw,3.35rem); line-height:.98; }
.contact-process ol { gap:1.75rem; }
.contact-process li { grid-template-columns:48px 1fr; column-gap:1rem; }
.contact-process li::before { width:42px; height:42px; color:#007f98; }
.contact-form { padding:clamp(1.5rem,3.5vw,3rem); border-radius:16px; box-shadow:0 12px 30px rgb(19 53 86 / .06); }
.contact-form h2 { font-size:clamp(2rem,3vw,3rem); line-height:1; }
.contact-form input,.contact-form select { min-height:44px; }
@media (max-width:900px) {
 .atlas-home { grid-template-columns:minmax(270px,.8fr) minmax(380px,1.2fr); }
 .destination-card { max-width:none; }.destination-card__body { min-height:230px; }
 .destination-grid--listing { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
 .atlas-home { display:block; padding:3.25rem 1rem 1.6rem; }
 .atlas-home__copy { margin:0; }.atlas-home h1 { font-size:clamp(3rem,14vw,4.3rem); }
 .atlas-map--hero { width:100%; margin:1.6rem 0 0; }
 .home-categories { display:grid; grid-template-columns:repeat(3,1fr); gap:.45rem; margin:1.2rem auto 2.5rem; }
 .home-categories a { min-width:0; padding:.55rem .35rem; font-size:.82rem; }
 .destination-grid,.destination-grid--listing { grid-template-columns:1fr; }
 .owner-cta::after { width:44%; opacity:.22; }.owner-cta__illustration { width:48%; opacity:.45; }
 .listing-hero__inner { min-height:0; padding-top:2.75rem; }
 .atlas-map--listing { justify-self:stretch; margin-top:1rem; }
 .catalogue { gap:1.2rem; }.catalogue-filters { padding:1.1rem; }
 .project-story:not(.project-story--belledonne) .details-hero { grid-template-columns:1fr; }
 .details-hero__content { padding:2.5rem 1rem; }.details-hero h1 { font-size:clamp(3rem,14vw,4.5rem); }
 .case-overview { grid-template-columns:1fr; }.case-overview article { min-height:0; }.visit-features { padding:1.25rem; }.visit-features__heading { grid-template-columns:1fr; }.visit-features__grid { grid-template-columns:1fr; gap:.9rem; }.visit-features__grid article,.visit-features__grid article:first-child { display:grid; grid-template-columns:32px 1fr; column-gap:.75rem; padding:0; border-left:0; }.visit-features__grid h3 { margin:0; }.visit-features__grid p { grid-column:2; margin-top:.15rem; }
 .facts { grid-template-columns:repeat(2,1fr); }.project-gallery--three { grid-template-columns:1fr; }
  .contact-hero { background:#fff; }.contact-hero__inner { min-height:0; }.contact-hero__inner > div { padding:2.7rem 0 1rem; }
 .contact-hero__inner img { height:auto; aspect-ratio:1.8; mask-image:linear-gradient(90deg,transparent 0,black 23%,black 100%); }
 .service-options article { min-height:0; }.contact-grid { gap:2rem; padding:3rem 0; }
}

/* Atlas clair — proportions contrôlées sur les maquettes B et les deux lieux réels. */
html,body { background:#fff; }
h1,h2,h3 { font-synthesis:none; letter-spacing:-.025em; }
.button { font-weight:600; }
.atlas-home { min-height:470px; padding-top:3rem; padding-bottom:2rem; background:linear-gradient(120deg,#fff,#f5f8fa); }
.atlas-home__copy { max-width:480px; }
.atlas-home h1 { font-size:clamp(3rem,5.1vw,4.5rem); }
.atlas-home h1::after,.listing-hero h1::after,.contact-hero h1::after { content:""; display:block; width:88px; height:4px; margin:1.05rem 0; background:var(--cyan); }
.atlas-map,.atlas-map--hero,.atlas-map--listing,.listing-map { background-color:transparent !important; filter:none; }
.atlas-map--hero { width:calc(100% + 2vw); }
.atlas-map .marker { width:40px; height:40px; background:transparent; box-shadow:none; }
.atlas-map .marker::after { inset:14px; background:#00bed7; box-shadow:0 0 0 5px rgb(8 201 223 / .12),0 3px 7px rgb(8 201 223 / .15); }
.atlas-map .marker::before { inset:0; }
.home-categories { margin:0 auto 2.8rem; padding-top:1rem; }
.home-categories a { box-shadow:none; font-weight:500; }
.home-categories a:first-child { background:#a9eff6; border-color:#a9eff6; color:#071b3a; }
.destinations__heading,.section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 1.4rem; }
.destinations__heading h2,.section-heading h2 { margin:0; font-size:clamp(2rem,3.3vw,2.8rem); }
.section-heading p { margin:0; color:#58718a; font-size:.85rem; }
.destinations__heading > div { min-width:0; }
.project-type { background:transparent; padding:0; border:0; border-radius:0; color:#294b66; font-size:.82rem; }
.owner-cta { display:grid; grid-template-columns:minmax(0,1fr) auto 190px; align-items:center; gap:1.5rem; min-height:165px; margin-bottom:2rem; padding:1.6rem 2rem; background:linear-gradient(110deg,#f2f6f8,#fafcfd); border:0; box-shadow:none; }
.owner-cta::after { display:none; }
.owner-cta h2 { max-width:none; margin:0 0 .5rem; font-size:2rem; line-height:1.12; }
.owner-cta p { margin:0; max-width:58ch; }
.owner-cta .owner-cta__illustration { position:static; width:220px; max-width:100%; height:auto; opacity:1; align-self:center; }
.site-footer { margin-top:2rem; }
.project-story .details-hero,.project-story:not(.project-story--belledonne) .details-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:2rem; width:min(1200px,calc(100% - 2rem)); min-height:0; margin:1.5rem auto 0; background:transparent; border:0; }
.project-story .details-hero__image { order:0; min-height:0; aspect-ratio:1.5; border-radius:14px; overflow:hidden; }
.project-story .details-hero__image img { position:static; width:100%; height:100%; object-fit:cover; }
.project-story .details-hero__content { order:1; min-width:0; padding:1rem 0; align-self:center; }
.project-story .details-hero h1 { font-size:clamp(2.8rem,4.7vw,4.5rem); line-height:1.03; letter-spacing:-.025em; }
.detail-location { display:flex; align-items:center; gap:.65rem; margin:.8rem 0; color:#45637e; font-size:1.1rem; }
.details-hero__content .project-credit { margin:0 0 1.5rem; padding-bottom:1.5rem; border-bottom:1px solid #dce6ed; font-size:1rem; }
.details-hero__content .button { font-size:.9rem; width:100%; text-align:center; line-height:1.3; }
.case-overview { margin:1.5rem 0 0; }
.case-overview article { min-height:0; padding:1.5rem 1.7rem; background:#f4f8fa; border:0; box-shadow:none; }
.case-overview article .eyebrow { font-family:var(--display); font-size:1.85rem; font-weight:600; letter-spacing:-.02em; text-transform:none; color:var(--ink) !important; margin:0 0 .45rem; }
.case-overview article h2 { font-size:1.2rem; margin:0 0 .55rem; }
.case-overview p { margin:.3rem 0 0; }
.case-credit { margin:.2rem 0 0 !important; font-size:.8rem; }
.visit-features { margin:1rem 0 1.8rem; background:#f8fbfc; }
.visit-features__heading { display:block; }
.visit-features__heading .eyebrow { display:none; }
.visit-features__heading h2 { font-size:1.85rem; line-height:1.15; margin:0 0 .3rem; }
.visit-features__heading p { font-size:.92rem; }
.visit-features__grid h3 { font-synthesis:none; font-weight:600; }
.case-gallery { margin:1.5rem 0; }
.case-gallery .project-shot { margin:0; border:0; box-shadow:none; }
.case-gallery .project-shot a { aspect-ratio:1.55; border-radius:12px; overflow:hidden; }
.case-gallery .project-shot img { width:100%; height:100%; object-fit:cover; }
.case-gallery .project-shot figcaption { padding:.55rem .2rem; font-size:.9rem; }
.case-details { border-top:1px solid #dce6ed; border-bottom:1px solid #dce6ed; margin:1.5rem 0; }
.case-details > summary { cursor:pointer; padding:1.2rem .3rem; font-weight:600; color:#294b66; }
.case-details[open] > summary { margin-bottom:1rem; }
.project-story .tour-launch { padding:1.3rem 1.6rem; margin:1.5rem 0; background:#f5f9fa; }
.tour-launch h2 { margin:.25rem 0 .5rem; font-size:2rem; }.tour-launch .eyebrow { display:none; }
.tour-launch p { margin:.5rem 0; }.tour-launch .button-row { margin-top:.8rem; }
.project-note--last { margin-bottom:2rem; font-size:.8rem; }
.contact-hero h1 { max-width:none; line-height:1.04; letter-spacing:-.025em; font-size:clamp(3.4rem,5.3vw,4.7rem); }
.contact-hero .lede { max-width:30ch; font-size:1.4rem; line-height:1.4; }
.service-options { margin-top:.8rem; gap:1rem; }
.service-options article { display:grid; grid-template-columns:55px 1fr; column-gap:1rem; min-height:135px; padding:1.2rem 2.2rem 1.2rem 1.2rem; box-shadow:none; }
.service-options article > span { grid-row:span 2; width:55px; height:55px; }
.service-options h2 { margin:0 0 .4rem; font-size:1.5rem; }
.service-options h2 a { text-decoration:none; }.service-options h2 a::after { content:""; position:absolute; inset:0; border-radius:13px; }
.service-options article:focus-within { outline:3px solid #007f98; outline-offset:3px; }
.service-options p { margin:0; font-size:.92rem; }
.contact-grid { gap:3rem; padding:3rem 0 1.5rem; }
.contact-process h2 { max-width:none; margin:0 0 1.5rem; font-size:2.6rem; line-height:1.1; }
.contact-process ol { margin:2rem 0; gap:2rem; }
.contact-process li { position:relative; min-height:85px; }
.contact-process li:not(:last-child)::after { content:""; position:absolute; left:21px; top:49px; height:calc(100% - 25px); width:1px; background:#c8e2eb; }
.contact-process strong { font-family:var(--display); font-size:1.65rem; font-weight:600; line-height:1.1; margin:.2rem 0 .35rem; }
.contact-process__image { width:100%; aspect-ratio:2; object-fit:cover; border-radius:13px; margin-top:2rem; }
.contact-form { padding:1.8rem; box-shadow:none; border:0; }
.contact-form h2 { font-size:2.5rem; margin:0 0 1rem; }
.contact-form label { display:block; margin:.8rem 0 .35rem; font-size:.9rem; font-weight:500; }
.contact-form input,.contact-form select { min-height:43px; margin:0; padding:.65rem .8rem; border-radius:9px; }
.contact-form textarea { min-height:130px; margin:0; padding:.8rem; border-radius:9px; }
.contact-form .form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.contact-form .form-row > div { min-width:0; }
.contact-form .form-note { font-size:.8rem; }
.portfolio-cta { display:grid; grid-template-columns:1fr auto 200px; align-items:center; gap:2rem; padding:1.8rem 2rem; border-radius:18px; background:#f3f8fa; margin-bottom:2.5rem; }
.portfolio-cta h2 { margin:0 0 .5rem; font-size:2.2rem; }.portfolio-cta p { margin:0; max-width:45ch; }
@media (min-width:761px) and (max-width:1000px) {
 .atlas-home { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
 .atlas-home h1 { font-size:3.1rem; }.atlas-home .lede { font-size:1.15rem; }
 .hero-search { flex-wrap:wrap; border-radius:18px; }.hero-search .button { min-width:105px; }
 .owner-cta,.portfolio-cta { grid-template-columns:1fr auto; }.owner-cta__illustration,.portfolio-cta > img { display:none; }
 .project-story .details-hero,.project-story:not(.project-story--belledonne) .details-hero { gap:1.3rem; grid-template-columns:1.1fr 1fr; }
 .project-story .details-hero h1 { font-size:3rem; }.visit-features__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
 .service-options article { display:block; padding:1.1rem; }.service-options article > span { margin-bottom:.6rem; }.service-options h2 { font-size:1.35rem; }
 .contact-grid { gap:1.5rem; }.contact-form { padding:1.3rem; }.contact-form h2 { font-size:2rem; }
}
@media (max-width:760px) {
 .atlas-home { min-height:0; padding:2.5rem 1rem .5rem; }.atlas-home h1 { font-size:clamp(2.8rem,10.8vw,4rem); }
 .atlas-map--hero { width:100%; margin:.4rem 0 0; }.home-categories { margin:.5rem auto 2rem; }
 .destinations__heading,.section-heading { align-items:flex-start; flex-direction:column; gap:.65rem; }
 .destination-card__image { aspect-ratio:1.8; }
 .owner-cta,.portfolio-cta { grid-template-columns:1fr; padding:1.5rem; gap:1.1rem; }.owner-cta h2 { font-size:1.9rem; }
 .owner-cta .owner-cta__illustration,.portfolio-cta > img { display:none; }.owner-cta .button { justify-self:start; width:auto; }
 .project-story .details-hero,.project-story:not(.project-story--belledonne) .details-hero { grid-template-columns:1fr; gap:1rem; margin-top:1rem; }
 .project-story .details-hero__image { order:0; aspect-ratio:1.5; }.project-story .details-hero__content { order:1; padding:.5rem 0; }
 .project-story .details-hero h1 { font-size:2.9rem; }.case-overview article { padding:1.25rem; }
 .case-gallery .project-gallery { gap:1rem; }.case-gallery .project-shot a { aspect-ratio:1.7; }
 .contact-hero h1 { font-size:3.4rem; }.contact-hero .lede { font-size:1.2rem; }
 .service-options { margin-top:1rem; }.service-options article { min-height:0; }
 .contact-process h2 { font-size:2.25rem; }.contact-grid { grid-template-columns:1fr; gap:2rem; padding-top:2rem; }
 .contact-form h2 { font-size:2.15rem; }.contact-form { padding:1.25rem; }.contact-form .form-row { grid-template-columns:1fr; gap:0; }
 .portfolio-cta .button { justify-self:start; }
}

/* Atlas clair B, PDF pages 7–8: fixed three-column rhythm, independent of item count. */
.destination-grid,.destination-grid--listing { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:stretch; }
.destination-card,.destination-grid--listing .destination-card { position:relative; display:flex; flex-direction:column; min-width:0; min-height:0; max-width:none; overflow:hidden; border:1px solid #e3ebf0; border-radius:12px; background:#fff; box-shadow:0 7px 20px rgb(19 53 86 / .045); }
.destination-card__image,.destination-grid--listing .destination-card__image { min-height:0; aspect-ratio:1.73; border-radius:11px; overflow:hidden; background:#edf3f6; }
.destination-grid--listing .destination-card__image { aspect-ratio:1.46; }
.destination-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.destination-card__body,.destination-grid--listing .destination-card__body { display:flex; flex-direction:column; align-items:stretch; gap:.42rem; min-height:0; padding:1rem; }
.destination-card h3 { margin:0; color:var(--ink); font-size:1.4rem; line-height:1.12; letter-spacing:-.025em; }
.destination-card__link { color:inherit; text-decoration:none; }
.destination-card__link::after { content:""; position:absolute; inset:0; border-radius:12px; }
.destination-card:focus-within { outline:3px solid #007f98; outline-offset:4px; }
.destination-card__link:focus-visible { outline:0; }
.destination-card:hover { border-color:#a5cdd8; box-shadow:0 9px 24px rgb(19 53 86 / .09); }
.destination-card .project-type { display:flex; align-items:center; gap:.7rem; margin:0 0 .1rem; color:var(--ink); font-size:.8rem; line-height:1.4; font-weight:400; }
.destination-card .destination-card__place,.destination-card .project-credit { display:flex; align-items:flex-start; gap:.65rem; margin:0; color:#526e86; font-size:.8rem; line-height:1.45; }
.destination-card .icon { flex-shrink:0; width:18px; height:18px; color:#294b66; }
.destination-card .project-status,.destination-card[data-project-card="gite"] .project-status { display:block; width:auto; margin:.1rem 0 0; padding:0; border:0; color:#5b7288; font-size:.72rem; line-height:1.45; }
.catalogue { grid-template-columns:22% minmax(0,1fr); align-items:start; gap:1.2rem; padding:1.4rem 0 3rem; }
.catalogue-filters { align-self:stretch; padding:1.45rem 1.15rem 1.7rem; border:0; border-radius:21px; background:linear-gradient(110deg,#f2f8fa,#f7fafc); }
.catalogue-filters h2 { margin:0 0 1.5rem; font-size:1.6rem; line-height:1.1; }
.catalogue-field + .catalogue-field { margin-top:1.85rem; }
.catalogue-filters label { display:flex; align-items:center; gap:.9rem; margin:0 0 .65rem; color:var(--ink); font-weight:400; font-size:.85rem; line-height:1.4; }
.catalogue-filters label .icon { width:23px; height:23px; flex-shrink:0; }
.catalogue-filters select { display:block; width:100%; min-width:0; min-height:46px; padding:.65rem 2rem .65rem 1rem; border:1px solid #d4e0eb; border-radius:14px; color:var(--ink); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23071b3a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center; appearance:none; font:inherit; font-size:.82rem; text-overflow:ellipsis; }
.catalogue-reset { border-top:1px solid #d4e0eb; margin-top:2rem; padding-top:2rem; }
.catalogue-filters .button { margin:0; min-height:46px; padding:.65rem .5rem; border:1px solid #c4d6e6; border-radius:999px; background:transparent; color:#173e61; font-size:.8rem; font-weight:400; gap:.8rem; }
.catalogue-results { min-width:0; }
.catalogue-results__heading { min-height:66px; align-items:center; gap:.75rem; }
.catalogue-results__heading h2 { margin:0; font-size:clamp(1.8rem,3.125vw,2.4rem); line-height:1.1; letter-spacing:-.025em; }
.catalogue-view { display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.catalogue-map-preview { width:130px; height:62px; object-fit:contain; border-radius:12px; background:linear-gradient(110deg,#f1f6f9,#f9fbfc); }
.view-toggle { align-items:center; border-color:#c9d9e6; }
.view-toggle button { display:flex; align-items:center; justify-content:center; gap:.55rem; padding:.65rem .85rem; min-height:44px; font-size:.78rem; font-weight:400; }
.view-toggle .icon { width:19px; height:19px; }
.view-toggle button[aria-pressed="true"] { color:#07334e; background:#e8f8fa; }
.catalogue-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin:.65rem 0 1rem; }
.catalogue .filter-result { margin:0; color:#526e86; font-size:.8rem; }
.catalogue-search { display:flex; align-items:center; gap:.5rem; width:210px; min-width:0; border-bottom:1px solid #d4e0eb; }
.catalogue-search .icon { width:17px; height:17px; flex-shrink:0; color:#526e86; }
.catalogue-search input { width:100%; min-width:0; min-height:38px; padding:.4rem 0; margin:0; border:0; border-radius:0; background:transparent; color:var(--ink); font:inherit; font-size:.8rem; }
@media (min-width:1000px) {
 .listing-hero__inner { min-height:280px; grid-template-columns:1fr 1fr; }
 .listing-hero h1 { max-width:none; font-size:clamp(4rem,6.25vw,4.8rem); line-height:1.03; letter-spacing:-.025em; }
}
@media (max-width:999px) { .catalogue-map-preview { display:none; } }
@media (min-width:761px) and (max-width:999px) {
 .destination-grid,.destination-grid--listing { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalogue { grid-template-columns:210px minmax(0,1fr); }
 .catalogue-results__heading { align-items:flex-start; flex-direction:column; }
}
@media (max-width:760px) {
 .listing-hero__inner { grid-template-columns:1fr; gap:.5rem; padding-top:2rem; padding-bottom:1rem; }
 .listing-hero h1 { max-width:none; font-size:clamp(2.8rem,10.8vw,3.7rem); line-height:1.03; letter-spacing:-.025em; }
 .listing-hero .lede { max-width:none; }
 .listing-hero .atlas-map--listing { height:auto; min-height:0; aspect-ratio:2; margin-top:0; }
 .destination-grid,.destination-grid--listing { grid-template-columns:1fr; }
 .destination-card__image,.destination-grid--listing .destination-card__image { aspect-ratio:1.73; }
 .catalogue { grid-template-columns:1fr; gap:1.5rem; }
 .catalogue-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding:1.25rem; }
 .catalogue-filters h2,.catalogue-reset { grid-column:1/-1; }
 .catalogue-filters h2 { margin:0 0 .25rem; }
 .catalogue-field + .catalogue-field { margin:0; }
 .catalogue-filters label { gap:.5rem; }.catalogue-filters select { padding-left:.7rem; }
 .catalogue-reset { margin:0; padding-top:1rem; }
 .catalogue-results__heading { flex-direction:row; align-items:center; flex-wrap:wrap; min-height:44px; }
 .catalogue-toolbar { flex-wrap:wrap; }.catalogue-search { flex:1; min-width:155px; }
}

/* Atlas clair B — external case and contact layouts, PDF pages 9 and 11. */
.project-story .details-hero,.project-story:not(.project-story--belledonne) .details-hero { width:min(1200px,calc(100% - 4rem)); grid-template-columns:minmax(0,1.95fr) minmax(0,1fr); gap:2rem; margin-top:1.5rem; }
.project-story .details-hero__image { aspect-ratio:1.47; border-radius:13px; }
.project-story .details-hero__image::after { display:none; }
.project-story .details-hero__content { padding:.65rem 0; }
.project-story .details-hero h1 { margin:.8rem 0 1.3rem; font-size:clamp(3rem,5.25vw,4.25rem); line-height:1.03; }
.details-hero__content .project-type { display:inline-flex; margin:0; padding:.35rem 1rem; border-radius:999px; background:#d5f7fb; color:#07334e; font-size:.8rem; }
.details-hero__content .project-type > .icon { display:none; }
.details-hero__content .detail-location,.details-hero__content .project-credit { gap:.85rem; align-items:flex-start; font-size:clamp(.95rem,1.7vw,1.2rem); line-height:1.4; }
.details-hero__content .detail-location .icon,.details-hero__content .project-credit .icon { width:24px; height:24px; color:#173e61; }
.details-hero__content .project-credit { margin:.8rem 0 1.1rem; padding-bottom:1.5rem; }
.details-hero__content .button { min-height:49px; border-radius:999px; font-size:.9rem; }
.official-tour-note { margin:.7rem 0 0; font-size:.85rem; overflow-wrap:anywhere; color:#006d86; }
.official-tour-note span,.official-tour-note small { display:block; }
.official-tour-note small { margin-top:.35rem; color:#526e86; font-size:.8rem; }
.project-story__body { width:min(1200px,calc(100% - 4rem)); }
.atlas-icon-disc { display:grid; place-items:center; width:58px; height:58px; border-radius:50%; color:#173e61; background:#e1f4fc; flex-shrink:0; }
.atlas-icon-disc > .icon { width:30px; height:30px; }
.case-overview { gap:.75rem; margin-top:1.8rem; }
.case-overview article { display:grid; grid-template-columns:58px minmax(0,1fr); align-items:start; gap:1.4rem; padding:1.3rem 1.6rem; border-radius:13px; background:linear-gradient(120deg,#f2f7fa,#f7fafc); }
.case-overview article h2 { margin:.2rem 0 .55rem; font-size:1.85rem; line-height:1.08; }
.case-overview article p { margin:0; font-size:.9rem; line-height:1.5; }
.visit-features { margin:1rem 0 1.7rem; padding:1.1rem 1.6rem 1.4rem; border:1px solid #e6edf3; border-radius:13px; background:linear-gradient(115deg,#f8fbfd,#fff); }
.visit-features__heading { display:grid; grid-template-columns:58px minmax(0,1fr); align-items:center; gap:1.4rem; margin:0 0 1.3rem; }
.visit-features__heading h2 { margin:0 0 .35rem; font-size:1.85rem; }
.visit-features__heading p { margin:0; font-size:.9rem; }
.visit-features__grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; }
.visit-features__grid article,.visit-features__grid article:first-child { display:grid; grid-template-columns:46px minmax(0,1fr); align-content:start; align-items:center; gap:.65rem .7rem; padding:0 1rem; border-left:1px solid #e1ebf3; }
.visit-features__grid article:first-child { padding-left:0; border-left:0; }.visit-features__grid article:last-child { padding-right:0; }
.visit-features__grid .atlas-icon-disc { width:46px; height:46px; }
.visit-features__grid .icon { width:26px; height:26px; padding:0; border-radius:0; background:none; color:#173e61; }
.visit-features__grid h3 { margin:0; font-size:.82rem; line-height:1.3; }
.visit-features__grid p { grid-column:1/-1; margin:0; font-size:.875rem; line-height:1.5; }
.case-gallery .section-heading { margin-bottom:1rem; }
.case-gallery .section-heading h2 { font-size:2.1rem; }
.case-gallery .project-gallery { gap:1rem; }
.case-gallery .project-shot a { aspect-ratio:1.5; }
.case-gallery .project-shot figcaption { padding:.45rem .55rem; font-size:.875rem; }
.case-gallery figcaption strong,.case-gallery figcaption span { display:block; }
.case-gallery figcaption strong { color:var(--ink); font-weight:600; }
.case-gallery figcaption span { margin-top:.1rem; font-size:.8rem; }
.project-story .case-details { margin:1.25rem 0; border:1px solid #dde8f0; border-radius:12px; background:#fff; }
.project-story .case-details > summary { padding:1rem 1.25rem; font-size:.9rem; }
.project-story .case-details[open] { padding:0 1.25rem 1.25rem; }
.project-story .case-details[open] > summary { margin:0 -1.25rem 1rem; border-bottom:1px solid #dde8f0; }
.project-story .tour-launch { border-radius:13px; }
.project-story .status-note { margin:1.25rem 0; padding:1rem 1.25rem; border-radius:0 12px 12px 0; font-size:.875rem; }
.portfolio { padding:2.7rem 0 3rem; }
.portfolio .eyebrow { margin:0 0 .6rem; }
.portfolio h1 { margin:0 0 1rem; font-size:clamp(3rem,5.25vw,4.5rem); line-height:1.05; }
.portfolio h1::after { content:""; display:block; width:88px; height:4px; margin:1rem 0; background:var(--cyan); }
.portfolio .lede { max-width:64ch; margin:0; font-size:1.15rem; }
.portfolio .destination-grid { margin-top:2rem; }
.contact-hero { position:relative; background:#f8fbfd; }
.contact-hero__inner { position:relative; display:flex; align-items:center; width:100%; min-height:330px; }
.contact-hero__inner > div { width:min(1200px,calc(100% - 4rem)); margin:0 auto; padding:2.2rem 0; }
.contact-hero__inner > img { position:absolute; right:0; top:0; width:72%; max-width:none; height:100%; object-fit:cover; object-position:center 58%; mask-image:linear-gradient(90deg,transparent 0%,rgb(0 0 0 / .2) 20%,#000 52%); }
.contact-hero h1 { max-width:7ch; font-size:clamp(3.5rem,6.25vw,4.8rem); line-height:1.03; }
.contact-hero .lede { max-width:29ch; font-size:clamp(1.2rem,2.35vw,1.6rem); line-height:1.35; }
.service-options { width:min(1200px,calc(100% - 4rem)); margin-top:.6rem; gap:.7rem; }
.service-options article { grid-template-columns:58px minmax(0,1fr); gap:.5rem 1.35rem; min-height:128px; padding:1rem 2.8rem 1rem 1rem; border:1px solid #e1eaf2; background:linear-gradient(125deg,#fff,#fbfdff); }
.service-options article > span { width:58px; height:58px; margin:0; }
.service-options article > span > .icon { width:32px; height:32px; }
.service-options h2 { font-size:1.4rem; line-height:1.07; margin:.55rem 0 0; }
.service-options p { grid-column:2; font-size:.875rem; line-height:1.4; }
.service-options article::after { top:50%; bottom:auto; right:.65rem; transform:translateY(-50%); color:#173e61; pointer-events:none; }
.contact-grid { width:min(1200px,calc(100% - 4rem)); grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:1.5rem; padding:2.8rem 0 1.7rem; align-items:start; }
.contact-process h2 { font-size:clamp(2.1rem,3.6vw,2.8rem); margin:.5rem 0 1.5rem; }
.contact-process ol { gap:1.8rem; margin:1.5rem 0 1.8rem; }
.contact-process li { grid-template-columns:40px 54px minmax(0,1fr); align-content:start; gap:.3rem 1rem; min-height:115px; }
.contact-process li::before { width:40px; height:40px; grid-column:1; grid-row:1/3; font-size:1.2rem; font-weight:500; }
.contact-process li:not(:last-child)::after { left:20px; top:49px; height:calc(100% - 20px); }
.contact-process li > .contact-step-icon { grid-column:2; grid-row:1/3; display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:linear-gradient(120deg,#edf9fc,#e3f9fc); color:#071b3a; }
.contact-step-icon .icon { width:29px; height:29px; }
.contact-process li > strong,.contact-process li > span:not(.contact-step-icon) { grid-column:3; }
.contact-process strong { font-size:1.55rem; line-height:1.1; margin:.4rem 0 .2rem; }
.contact-process li > span:not(.contact-step-icon) { font-size:.95rem; line-height:1.45; }
.contact-process__image { margin:0; aspect-ratio:2.35; border-radius:12px; }
.contact-process > p { margin:.6rem 0 0; font-size:.85rem; }
.contact-form { padding:1.8rem 2rem; border-radius:14px; background:linear-gradient(120deg,#f3f7fa,#f9fbfc); scroll-margin-top:95px; }
.contact-form h2 { font-size:clamp(1.9rem,3.1vw,2.5rem); line-height:1.1; margin:0 0 1rem; }
.contact-form label { margin:.7rem 0 .35rem; font-size:.85rem; }
.contact-form input,.contact-form select,.contact-form textarea { border-color:#d4e1ec; border-radius:10px; font-size:.85rem; min-height:42px; }
.contact-form textarea { min-height:112px; }.contact-form .optional { font-size:.75rem; color:#526e86; }
.contact-form .form-note { font-size:.75rem; line-height:1.45; margin:.8rem 0 0; }
.contact-form .button { min-height:54px; margin-top:1rem; font-size:1rem; border-radius:999px; }
.portfolio-cta { position:relative; isolation:isolate; overflow:hidden; width:min(1200px,calc(100% - 4rem)); grid-template-columns:minmax(0,1fr) auto 22%; min-height:155px; padding:1.7rem 2rem; gap:1.5rem; background:linear-gradient(110deg,#f2f7fa,#fafcfd); }
.portfolio-cta > div,.portfolio-cta > a { position:relative; z-index:1; }.portfolio-cta h2 { font-size:2.1rem; }
.portfolio-cta > img { display:block; position:absolute; inset:0 0 0 auto; width:42%; height:100%; object-fit:cover; object-position:center; mask-image:linear-gradient(90deg,transparent,#000 65%); }
.portfolio-cta > .button { grid-column:2; border-radius:999px; background:#ffffffbf; }
@media (min-width:761px) and (max-width:999px) {
 .project-story .details-hero,.project-story:not(.project-story--belledonne) .details-hero { grid-template-columns:1.35fr 1fr; gap:1.4rem; }
 .project-story .details-hero h1 { font-size:2.8rem; }
 .case-overview article { grid-template-columns:46px minmax(0,1fr); gap:1rem; padding:1.2rem; }
 .case-overview .atlas-icon-disc { width:46px; height:46px; }
 .visit-features__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem 0; }
 .visit-features__grid article:nth-child(4) { padding-left:0; border-left:0; }
 .service-options article { display:grid; grid-template-columns:1fr; gap:.5rem; padding:1rem 2.4rem 1rem 1rem; }
 .service-options h2,.service-options p { grid-column:1; }.service-options h2 { font-size:1.3rem; }.service-options article > span { grid-row:auto; }
 .contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }.contact-process li { grid-template-columns:32px 40px minmax(0,1fr); column-gap:.6rem; }
 .contact-process li::before { width:32px; height:32px; }.contact-process li:not(:last-child)::after { left:16px; top:42px; }
 .contact-process li > .contact-step-icon { width:40px; height:40px; }.contact-step-icon .icon { width:25px; height:25px; }
 .contact-process strong { font-size:1.35rem; }.contact-form { padding:1.5rem; }.contact-form .form-row { grid-template-columns:1fr; gap:0; }
 .portfolio-cta { grid-template-columns:1fr auto; }.portfolio-cta > img { opacity:.4; }
}
@media (max-width:760px) {
 .project-story .details-hero,.project-story:not(.project-story--belledonne) .details-hero { width:calc(100% - 2rem); grid-template-columns:1fr; gap:1rem; margin-top:1rem; }
 .project-story .details-hero h1 { font-size:clamp(2.6rem,10vw,3.5rem); margin:.75rem 0 1rem; }
 .project-story .details-hero__content { padding:.25rem 0; }.details-hero__content .detail-location,.details-hero__content .project-credit { font-size:1rem; }
 .project-story__body { width:calc(100% - 2rem); }
 .case-overview { grid-template-columns:1fr; margin-top:1.25rem; }.case-overview article { grid-template-columns:44px minmax(0,1fr); gap:.85rem; padding:1.1rem; }
 .case-overview .atlas-icon-disc { width:44px; height:44px; }.case-overview .atlas-icon-disc > .icon { width:25px; height:25px; }
 .case-overview article h2 { font-size:1.6rem; }.case-overview article p { font-size:.875rem; }
 .visit-features { padding:1.1rem; }.visit-features__heading { grid-template-columns:44px minmax(0,1fr); gap:.85rem; }
 .visit-features__heading .atlas-icon-disc { width:44px; height:44px; }.visit-features__heading .icon { width:25px; height:25px; }.visit-features__heading h2 { font-size:1.6rem; }
 .visit-features__grid { grid-template-columns:1fr; gap:1rem; }
 .visit-features__grid article,.visit-features__grid article:first-child { grid-template-columns:40px minmax(0,1fr); gap:.35rem .75rem; padding:0; border:0; }
 .visit-features__grid .atlas-icon-disc { width:40px; height:40px; grid-row:1/3; }.visit-features__grid h3 { font-size:.9rem; }.visit-features__grid p { grid-column:2; }
 .case-gallery .section-heading h2 { font-size:1.9rem; }.case-gallery .project-gallery { grid-template-columns:1fr; }
 .portfolio { padding:2rem 0; }.portfolio h1 { font-size:2.8rem; }
 .contact-hero__inner { display:block; min-height:0; }.contact-hero__inner > div { width:calc(100% - 2rem); padding:2rem 0 1rem; }
 .contact-hero h1 { font-size:3.4rem; }.contact-hero .lede { font-size:1.2rem; max-width:28ch; }
 .contact-hero__inner > img { position:static; width:100%; height:auto; aspect-ratio:2.1; object-fit:cover; mask-image:linear-gradient(180deg,transparent,#000 25%); }
 .service-options,.contact-grid,.portfolio-cta { width:calc(100% - 2rem); }
 .service-options { grid-template-columns:1fr; gap:.75rem; margin-top:1rem; }
 .service-options article { display:grid; grid-template-columns:52px minmax(0,1fr); column-gap:1rem; min-height:0; padding:1rem 2.8rem 1rem 1rem; }
 .service-options article > span { width:52px; height:52px; grid-row:1/3; }.service-options h2 { font-size:1.35rem; margin:.15rem 0 0; }
 .contact-grid { grid-template-columns:1fr; gap:1.7rem; padding-top:2rem; }.contact-process h2 { font-size:2.2rem; }
 .contact-process li { grid-template-columns:32px 42px minmax(0,1fr); column-gap:.65rem; min-height:105px; }.contact-process li::before { width:32px; height:32px; }
 .contact-process li:not(:last-child)::after { left:16px; top:41px; }.contact-process li > .contact-step-icon { width:42px; height:42px; }.contact-step-icon .icon { width:25px; height:25px; }
 .contact-process strong { font-size:1.4rem; }.contact-process li > span:not(.contact-step-icon) { font-size:.875rem; }
 .contact-form { padding:1.25rem; }.contact-form h2 { font-size:2rem; }.contact-form .form-row { grid-template-columns:1fr; gap:0; }
 .portfolio-cta { grid-template-columns:1fr; min-height:190px; padding:1.5rem; }.portfolio-cta h2 { font-size:1.9rem; }.portfolio-cta p { max-width:30ch; }
 .portfolio-cta > .button { grid-column:1; justify-self:start; }.portfolio-cta > img { width:60%; opacity:.18; }
}
