/*
 * Terrain & Traces — styles du site
 * Toutes les valeurs viennent de tokens.css (chargé avant ce fichier).
 * Ne pas introduire de couleur, police, taille ou rayon hors jetons.
 */

/* ── Base ─────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font:var(--type-body);-webkit-font-smoothing:antialiased}
a{color:inherit}
p a,li a,dd a,.article-body a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}
p a:hover,li a:hover,.article-body a:hover{text-decoration-thickness:2px}
img{max-width:100%}
.skip-link{position:fixed;left:var(--space-4);top:-5rem;z-index:20;padding:var(--space-3) var(--space-4);background:var(--paper-raised);color:var(--ink);border:var(--stroke-hairline) solid var(--line-strong);border-radius:var(--radius-md)}
.skip-link:focus{top:var(--space-4)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[id]{scroll-margin-top:var(--space-4)}

h1,h2,h3{font-family:var(--font-serif);font-weight:500;margin:0;color:inherit}
h1{font:var(--type-display);letter-spacing:var(--tracking-display)}
h2{font:var(--type-h1);letter-spacing:var(--tracking-h1)}
h3{font:var(--type-h3)}

/* Surtitre : label en capitales, rouge trace */
.eyebrow,.detail-kicker,.card-label,.pricing-label{margin:0 0 var(--space-4);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--trace)}
.eyebrow.dark{color:var(--trace)}

/* Focus : 2px papier puis 2px channel ; clair sur fond encre */
:where(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--paper)}
:where(.hero,.method,.contact,.page-cta,.gallery-viewer,.announcement--alerte) :where(a,button,summary):focus-visible{outline-color:var(--on-ink);box-shadow:0 0 0 2px var(--ink)}

/* ── Boutons ──────────────────────────────────────────────────── */
.button{display:inline-flex;gap:var(--space-3);align-items:center;justify-content:center;min-height:48px;padding:0 var(--space-6);border:var(--stroke-hairline) solid var(--ink);border-radius:var(--radius-md);background:var(--ink);color:var(--on-ink);font:var(--type-button);text-decoration:none;cursor:pointer;transition:background-color var(--duration) var(--ease-out),border-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out)}
.button:hover{background:var(--trace);border-color:var(--trace);color:var(--on-ink)}
/* Sur fond encre ou photo : bouton papier */
:where(.hero,.method,.contact,.page-cta) .button{background:var(--paper);border-color:var(--paper);color:var(--ink)}
:where(.hero,.method,.contact,.page-cta) .button:hover{background:var(--trace);border-color:var(--trace);color:var(--on-ink)}
.button.secondary{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.button.secondary:hover{background:var(--sand);border-color:var(--line-strong);color:var(--ink)}

/* ── En-tête ──────────────────────────────────────────────────── */
.site-header{min-height:88px;padding:var(--space-2) clamp(var(--space-4),4vw,var(--space-16));display:flex;align-items:center;gap:var(--space-8);background:var(--paper);border-bottom:var(--stroke-hairline) solid var(--line);position:relative;z-index:10}
.brand{display:flex;align-items:center;gap:var(--space-4);text-decoration:none;margin-right:auto;flex-shrink:0}
.brand-logo{display:block;width:171px;height:auto;border-radius:var(--radius-none)}
.brand b,.brand small{white-space:nowrap}
.brand small{display:block;max-width:15rem;white-space:normal;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-muted)}
.site-header nav{display:flex;gap:var(--space-6)}
.site-header nav a{text-decoration:none;font:var(--type-body-sm);font-weight:600;color:var(--ink)}
.site-header nav a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:var(--trace)}
.site-header a,.easy-read-header a,.footer-links a{min-height:44px;display:inline-flex;align-items:center}
.header-actions,.footer-links{display:flex;align-items:center;gap:var(--space-3)}
.lang{padding:0 var(--space-3);text-decoration:none;font:var(--type-body-sm);font-weight:600;border:var(--stroke-hairline) solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink)}
.lang:hover{background:var(--sand)}
.easy-read-link{gap:var(--space-2);padding:0 var(--space-3);border:var(--stroke-hairline) solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);font:var(--type-body-sm);font-weight:600;text-decoration:none;white-space:nowrap}
.easy-read-link:hover{background:var(--sand)}
.easy-read-mark{font-weight:800;letter-spacing:-.08em}

/* ── Hero : le paysage d'abord ────────────────────────────────── */
.hero{min-height:calc(100svh - 88px);position:relative;display:flex;align-items:flex-end;overflow:hidden;color:var(--on-ink);background:var(--ink)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;border-radius:var(--radius-none)}
/* Voile fonctionnel de lisibilité (encre), limité au coin du texte */
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--scrim-strong) 0%,var(--scrim-soft) 60%,transparent)}
.hero-copy{position:relative;z-index:1;max-width:760px;padding:var(--space-24) clamp(var(--space-4),8vw,var(--space-24))}
.hero .eyebrow{color:var(--on-ink)}
.hero h1{max-width:12ch}
.hero-copy>p:not(.eyebrow){max-width:600px;font:var(--type-lede);margin:var(--space-6) 0 var(--space-8)}
.hero-note{position:absolute;right:clamp(var(--space-4),4vw,var(--space-16));bottom:var(--space-6);z-index:1;margin:0;padding:var(--space-3) var(--space-4);background:var(--ink);border-radius:var(--radius-md);font:var(--type-body-sm);color:var(--muted-on-ink)}
.hero-note span{display:block;font:var(--type-archive);letter-spacing:var(--tracking-archive);color:var(--trace-on-ink);margin-bottom:var(--space-1)}

/* ── Sections : rythme commun ─────────────────────────────────── */
.map-intro,.promise,.method,.keepsake,.faq,.contact,.pricing{padding:var(--space-24) clamp(var(--space-4),6vw,var(--space-16))}
.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,440px);gap:var(--space-4) var(--space-12);max-width:var(--measure-page);margin:0 auto var(--space-12)}
.section-heading .eyebrow{grid-column:1/-1;margin:0}
.section-heading>p:last-child{margin:0;color:var(--ink-muted);align-self:end}

/* ── Carte ────────────────────────────────────────────────────── */
.map-intro{background:var(--paper)}
.map-shell{max-width:1280px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;position:relative;background:var(--paper-raised);border:var(--stroke-hairline) solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.map-controls{grid-column:1/-1;display:flex;gap:var(--space-2);padding:var(--space-4) var(--space-4) 0;overflow:auto}
.beach-button{min-width:86px;min-height:44px;border:var(--stroke-hairline) solid var(--line);background:transparent;color:var(--ink);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font:var(--type-body-sm);font-weight:600;cursor:pointer;transition:background-color var(--duration) var(--ease-out)}
.beach-button:hover{background:var(--sand)}
.beach-button.active,.beach-button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.map-canvas{position:relative;min-height:390px;background:var(--sea);overflow:hidden}
.map-canvas svg{position:absolute;inset:0;width:100%;height:100%}
.sea-lines{fill:none;stroke:var(--coast);stroke-width:1}
.coast{fill:var(--paper)}
.shore{fill:none;stroke:var(--coast);stroke-width:2}
.map-canvas text{font:var(--type-label);letter-spacing:var(--tracking-label);fill:var(--ink-muted)}
.marker{fill:var(--paper);stroke:var(--ink);stroke-width:3;transition:r var(--duration) var(--ease-out)}
.marker.active{fill:var(--trace);r:13px}
.map-label{position:absolute;font:var(--type-label);letter-spacing:var(--tracking-label);transform:translate(-50%,-100%);padding:var(--space-1) var(--space-2);background:var(--paper-raised)}
.label-utah{left:15%;top:59%}.label-omaha{left:36%;top:49%}.label-gold{left:58%;top:54%}.label-juno{left:72%;top:45%}.label-sword{left:87%;top:52%}
.map-detail{padding:var(--space-8);border-left:var(--stroke-hairline) solid var(--line);display:flex;flex-direction:column;justify-content:flex-start;overflow:auto}
.map-detail h3{font:var(--type-h2);margin-bottom:var(--space-3)}
.map-detail>p:not(.detail-kicker):not(.detail-note){color:var(--ink-muted)}
.detail-kicker{margin-bottom:var(--space-2)}
.detail-note{font:var(--type-body-sm);color:var(--ink-muted);margin-top:var(--space-8);padding-top:var(--space-4);border-top:var(--stroke-hairline) solid var(--line)}

/* Carte géographique Leaflet + OpenStreetMap */
.location-map-shell{grid-template-columns:240px minmax(360px,1fr) 320px}
.location-map-shell .map-controls{grid-column:auto;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);max-height:520px;overflow-y:auto;border-right:var(--stroke-hairline) solid var(--line);background:var(--paper-raised)}
.location-button{width:100%;min-height:58px;padding:var(--space-2) var(--space-3);text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}
.location-button span{font:var(--type-body-sm);font-weight:600}
.location-button small{font-size:13px;line-height:18px;font-weight:400;color:var(--ink-muted)}
.location-button.active small,.location-button[aria-pressed="true"] small{color:var(--muted-on-ink)}
.location-map{height:520px;min-height:520px;background:var(--sea);z-index:0;border-radius:var(--radius-none)}
.location-map-shell .map-detail{min-height:520px}
/* Repères : petits X rouges ; lieu choisi = X plus grand sur pastille papier */
.nn-marker{display:grid!important;place-items:center;background:transparent;border:0}
.nn-marker span{position:relative;display:block;width:18px;height:18px;transition:transform var(--duration) var(--ease-out)}
.nn-marker span::before,.nn-marker span::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:3px;background:var(--trace);border-radius:1px;box-shadow:0 0 0 1.5px var(--paper)}
.nn-marker span::before{transform:translate(-50%,-50%) rotate(45deg)}
.nn-marker span::after{transform:translate(-50%,-50%) rotate(-45deg)}
.nn-marker.is-active span{width:30px;height:30px;background:var(--paper-raised);border:var(--stroke-hairline) solid var(--ink);border-radius:50%;box-shadow:var(--shadow-float)}
.nn-marker.is-active span::before,.nn-marker.is-active span::after{width:18px;box-shadow:none}
.leaflet-container{font:var(--type-body-sm)}
.leaflet-control-attribution{font:600 11px/1.4 var(--font-sans)}
.leaflet-control-attribution a{color:var(--link)}
.leaflet-control-zoom a{color:var(--ink);font-family:var(--font-sans)}
.leaflet-bar{border-radius:var(--radius-md)!important}
.leaflet-control-scale-line{font:600 11px/1.2 var(--font-sans);border-color:var(--ink);background:var(--paper-raised);color:var(--ink)}
.travel-arrow{display:grid!important;place-items:center;background:transparent;border:0}
.travel-arrow span{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:12px solid var(--trace);filter:drop-shadow(0 0 1px var(--paper));transform:rotate(var(--arrow-angle));transform-origin:center}
.travel-arc-base{stroke-linecap:round;stroke-linejoin:round}
.travel-arc-progress{stroke-linecap:butt;stroke-linejoin:round}
.map-reset-button{width:30px;height:30px;border:0;background:var(--paper-raised);color:var(--ink);font:800 16px/1 var(--font-sans);cursor:pointer}
.map-reset-button:hover,.map-reset-button:focus-visible{background:var(--sand)}
.map-overview{width:204px;height:171px;padding:var(--space-1);background:var(--paper-raised);border:var(--stroke-hairline) solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-float)}
.location-map .leaflet-pane>svg{position:absolute;inset:auto;width:auto;height:auto}
.map-overview svg{position:static;inset:auto;display:block;width:100%;height:100%}
.overview-sea{fill:var(--sea)}
.overview-country{fill:var(--paper);stroke:var(--contour);stroke-width:.55;vector-effect:non-scaling-stroke}
.overview-country.overview-france{fill:var(--sand);stroke:var(--ink-muted);stroke-width:.9}
.overview-frame{fill:var(--trace-soft);fill-opacity:.6;stroke:var(--trace);stroke-width:2;vector-effect:non-scaling-stroke}
.leaflet-container:focus-visible,.leaflet-control a:focus-visible,.leaflet-marker-icon:focus-visible{outline:2px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--paper)}

/* Photo associée à un lieu */
.map-photo{margin:0 0 var(--space-6)}
.map-photo[hidden]{display:none}
.map-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-none);background:var(--sand)}
.map-photo figcaption{margin-top:var(--space-3);padding-left:var(--space-3);border-left:var(--stroke-hairline) solid var(--line-strong);color:var(--ink);font:var(--type-body-sm);font-size:13px;line-height:20px}
.map-photo figcaption span{display:block}
.map-photo figcaption small{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-top:var(--space-1);font-size:13px;line-height:20px;color:var(--ink-muted)}
#location-photo-credit::before{content:"© ";speak:none}
.map-photo figcaption a{color:var(--link);text-underline-offset:3px}

/* ── Promesse ─────────────────────────────────────────────────── */
.promise{text-align:center;max-width:920px;margin:auto}
.promise>p:last-child{max-width:640px;margin:var(--space-6) auto 0;font:var(--type-lede);color:var(--ink-muted)}

/* ── Deux chemins ─────────────────────────────────────────────── */
.paths{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:var(--stroke-hairline);background:var(--line);border-block:var(--stroke-hairline) solid var(--line)}
.paths>*{background:var(--paper);padding:clamp(var(--space-8),5vw,var(--space-16))}
.paths-lead{display:flex;flex-direction:column;justify-content:center}
.path-card{min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;background:var(--paper-raised)}
.path-card.family,.path-card.unit{background:var(--paper-raised)}
.card-number{position:absolute;top:var(--space-8);right:var(--space-8);font:var(--type-archive);letter-spacing:var(--tracking-archive);color:var(--trace);padding:var(--space-1) var(--space-2);background:var(--trace-soft);border-radius:var(--radius-sm)}
.path-card h3{font:var(--type-h2);margin:0 0 var(--space-3)}
.path-card>p:last-child{margin:0;color:var(--ink-muted)}
/* Trait de route au-dessus de chaque chemin */
.path-card .card-label::before{content:"";display:block;width:48px;margin-bottom:var(--space-4);border-top:var(--stroke-trace) dashed var(--trace)}

/* ── Parcours et tarifs (cartes d'offre) ──────────────────────── */
.pricing{background:var(--sand);color:var(--ink)}
.pricing-heading{max-width:900px;margin:0 auto var(--space-12);text-align:center}
.pricing-heading>p:last-child{max-width:680px;margin:var(--space-6) auto 0;color:var(--ink-muted);font:var(--type-lede)}
.pricing-grid{max-width:var(--measure-page);margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
.pricing-card{padding:var(--space-8);border:var(--stroke-hairline) solid var(--line);border-radius:var(--radius-md);background:var(--paper-raised);display:flex;flex-direction:column;gap:var(--space-3)}
.pricing-card.featured{border-color:var(--ink);box-shadow:inset 0 3px 0 var(--trace)}
.pricing-label{margin:0}
.pricing-card.featured .pricing-label{color:var(--trace)}
.pricing-card h3{font:var(--type-h2)}
.pricing-price{margin:0;font:var(--type-h3);color:var(--ink)}
.pricing-card.featured .pricing-price{color:var(--ink)}
.pricing-card>p:not(.pricing-label):not(.pricing-price){margin:0;color:var(--ink-muted);font:var(--type-body-sm)}
.pricing-card ul{list-style:none;margin:auto 0 0;padding:var(--space-4) 0 0;border-top:var(--stroke-hairline) solid var(--line);display:grid;gap:var(--space-2);font:var(--type-body-sm)}
.pricing-card li{position:relative;padding-left:var(--space-6)}
.pricing-card li::before{content:"";position:absolute;left:0;top:11px;width:12px;border-top:var(--stroke-trace) solid var(--trace)}
.pricing-footer{max-width:var(--measure-page);margin:var(--space-8) auto 0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}
.pricing-footer p{max-width:760px;margin:0;color:var(--ink-muted);font:var(--type-body-sm)}
.pricing-footer .button{flex:none}

/* ── Méthode (fond encre, rail trace) ─────────────────────────── */
.method{background:var(--ink);color:var(--on-ink);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:clamp(var(--space-12),8vw,var(--space-24))}
.method .eyebrow{color:var(--trace-on-ink)}
.method-copy>p:last-child{max-width:640px;color:var(--muted-on-ink);font:var(--type-lede)}
.steps{list-style:none;padding:0;margin:0;display:grid}
.steps li{position:relative;display:grid;grid-template-columns:40px 1fr;gap:var(--space-4);padding-bottom:var(--space-8)}
.steps li::before{content:"";position:absolute;left:19px;top:32px;bottom:0;border-left:var(--stroke-trace) solid var(--trace-on-ink)}
.steps li:last-child{padding-bottom:0}
.steps li:last-child::before{display:none}
.steps li>span{width:40px;height:28px;display:flex;align-items:center;justify-content:center;font:var(--type-archive);color:var(--trace);background:var(--trace-soft);border-radius:var(--radius-sm)}
.steps b{display:block;font:var(--type-h3)}
.steps p{margin:var(--space-1) 0 0;font:var(--type-body-sm);color:var(--muted-on-ink)}

/* ── Carnet de mémoire ────────────────────────────────────────── */
.keepsake{display:grid;grid-template-columns:minmax(250px,400px) minmax(0,640px);justify-content:center;align-items:center;gap:clamp(var(--space-12),8vw,var(--space-24));background:var(--paper)}
.keepsake p:last-child{color:var(--ink-muted);font:var(--type-reading)}
.book-object{aspect-ratio:4/5;background:var(--ink);color:var(--on-ink);padding:var(--space-12) var(--space-8);border-radius:var(--radius-md);box-shadow:16px 16px 0 var(--sand);display:flex;flex-direction:column;justify-content:space-between;transform:rotate(-2deg);position:relative}
.book-object::before{content:"";position:absolute;left:var(--space-8);right:var(--space-8);top:50%;border-top:var(--stroke-trace) dashed var(--trace-on-ink)}
.book-object span{font:500 clamp(28px,3.4vw,44px)/1.1 var(--font-serif)}
.book-object i{font:var(--type-archive);font-style:normal;letter-spacing:var(--tracking-archive);color:var(--trace-on-ink)}

/* ── FAQ ──────────────────────────────────────────────────────── */
.faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(var(--space-12),7vw,var(--space-24));background:var(--sand)}
.faq-list{border-top:0}
details{border-bottom:var(--stroke-hairline) solid var(--line-strong);padding:var(--space-4) 0}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font:var(--type-h3);font-weight:500;list-style-position:outside;padding-right:var(--space-8)}
summary:hover{color:var(--trace)}
details p{color:var(--ink-muted);max-width:var(--measure-reading)}
.faq-group+.faq-group{margin-top:0}
.faq-group>h3{margin:0;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--trace);border-bottom:var(--stroke-hairline) solid var(--line-strong)}
.faq-group:first-child>h3{border-top:var(--stroke-trace) solid var(--ink)}
.faq-group-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:56px;padding:var(--space-3) var(--space-8) var(--space-3) 0;position:relative;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer}
.faq-group-toggle:hover .faq-group-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.faq-group-count{color:var(--ink-muted);font-weight:400}
/* Chevron : bas quand replié, haut quand déplié */
.faq-group-toggle::after{content:"";position:absolute;right:var(--space-2);top:50%;width:9px;height:9px;border-right:var(--stroke-trace) solid var(--ink);border-bottom:var(--stroke-trace) solid var(--ink);transform:translateY(-70%) rotate(45deg);transition:transform var(--duration) var(--ease-out)}
.faq-group-toggle[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
.faq-group-toggle[aria-expanded="true"]{border-bottom:var(--stroke-trace) solid var(--ink)}
.faq-group-panel{padding-bottom:var(--space-6)}
.faq-group-panel[hidden]{display:none}
.faq-group-panel[hidden="until-found"]{display:block;content-visibility:hidden;padding:0}

/* ── Contact ──────────────────────────────────────────────────── */
.contact{text-align:center;background:var(--ink);color:var(--on-ink)}
.contact .eyebrow{color:var(--trace-on-ink)}
.contact h2{max-width:860px;margin:auto}
.contact>p:not(.eyebrow){max-width:640px;margin:var(--space-6) auto var(--space-8);color:var(--muted-on-ink);font:var(--type-lede)}

/* ── Pied de page ─────────────────────────────────────────────── */
footer,.content-footer{padding:var(--space-8) clamp(var(--space-4),5vw,var(--space-16));display:flex;align-items:center;gap:var(--space-8);border-top:var(--stroke-hairline) solid var(--line);background:var(--paper)}
footer p{margin-left:auto;color:var(--ink-muted);font:var(--type-body-sm)}
footer>a:last-child,.footer-links a{font:var(--type-body-sm);font-weight:600}
footer .brand-logo,.content-footer .brand-logo{width:160px}
.content-footer .footer-links{margin-left:auto}

@media(max-width:900px){
  .paths{grid-template-columns:1fr}
  .path-card{min-height:320px}
  .method,.keepsake,.faq{grid-template-columns:1fr}
  .book-object{width:min(78vw,360px);justify-self:center}
  footer{flex-wrap:wrap}
  footer p{margin-left:0;width:100%}
  footer .footer-links{flex-wrap:wrap}
}
@media(max-width:820px){
  .site-header nav{display:none}
  .site-header{min-height:80px}
  .brand small{display:none}
  .hero{min-height:calc(100svh - 80px)}
  .hero-note{display:none}
  .hero-shade{background:linear-gradient(0deg,var(--scrim-strong) 0%,var(--scrim-strong) 55%,var(--scrim-soft) 100%)}
  .section-heading{display:block}
  .section-heading h2{margin-bottom:var(--space-6)}
  .map-shell{grid-template-columns:1fr}
  .map-detail{border-left:0;border-top:var(--stroke-hairline) solid var(--line)}
  .map-canvas{min-height:320px}
  .hero-copy{padding-top:var(--space-16);padding-bottom:var(--space-16)}
  .map-intro,.promise,.method,.keepsake,.faq,.contact,.pricing{padding-top:var(--space-16);padding-bottom:var(--space-16)}
  .pricing-grid{grid-template-columns:1fr}
  .pricing-footer{flex-direction:column;align-items:flex-start;gap:var(--space-6)}
  .site-header{gap:var(--space-3)}
  .header-actions{margin-left:auto}
}
@media(max-width:640px){
  h2{font:var(--type-h2);font-size:32px;line-height:38px}
}
@media(max-width:480px){
  .map-intro{padding-left:var(--space-3);padding-right:var(--space-3)}
  .map-canvas{min-height:270px}
  .map-detail{padding:var(--space-6)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marker,.nn-marker span,.beach-button,.button{transition:none}}
@media(forced-colors:active){.brand-logo,.easy-read-link,.easy-read-badge,.easy-read-contact,.easy-read-status{border:2px solid CanvasText}.marker.active{fill:Highlight}.hero-shade{background:Canvas}.hero-note{background:Canvas}}

/* ── Pages « lecture facilitée » : une colonne, sans empattement ─ */
.easy-read-page{background:var(--paper-raised);color:var(--ink);font:400 20px/1.75 var(--font-sans)}
.easy-read-header{min-height:88px;padding:var(--space-2) clamp(var(--space-4),4vw,var(--space-16));display:flex;align-items:center;gap:var(--space-8);border-bottom:var(--stroke-trace) solid var(--ink);background:var(--paper-raised)}
.easy-read-header nav{display:flex;align-items:center;gap:var(--space-3)}
.easy-read-header nav a{padding:0 var(--space-3);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.easy-read-main{width:min(100% - 2rem,780px);margin:auto;padding:clamp(var(--space-12),7vw,var(--space-24)) 0}
.easy-read-intro{padding-bottom:var(--space-8);border-bottom:3px solid var(--trace)}
.easy-read-badge{display:inline-flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-6);padding:var(--space-2) var(--space-3);background:var(--channel-soft);border:2px solid var(--channel);border-radius:var(--radius-sm);font-weight:800}
.easy-read-badge span{font-size:1.35rem;letter-spacing:-.08em}
.easy-read-page h1,.easy-read-page h2{font-family:var(--font-sans);font-weight:800;line-height:1.25;letter-spacing:0}
.easy-read-page h1{font-size:clamp(2.15rem,6vw,3.6rem)}
.easy-read-page h2{font-size:clamp(1.55rem,4vw,2rem);margin:2.75rem 0 1rem}
.easy-read-lead{font-size:1.3rem;line-height:1.65;margin:var(--space-6) 0 0}
.easy-read-content p,.easy-read-contact p,.easy-read-status p{max-width:var(--measure-reading);margin:0 0 1.1rem}
.easy-read-content ul,.easy-read-content ol{padding-left:1.5rem;margin:1rem 0 1.75rem}
.easy-read-content li{padding:.25rem 0 .55rem .35rem}
.easy-read-contact{margin-top:3.5rem;padding:var(--space-6) var(--space-8) var(--space-8);background:var(--channel-soft);border-left:6px solid var(--channel);border-radius:var(--radius-md)}
.easy-read-contact h2,.easy-read-status h2{margin-top:0}
.easy-read-button{min-height:50px;font-size:1.05rem}
.easy-read-status{margin-top:2.5rem;padding:var(--space-6);border:2px solid var(--line-strong);border-radius:var(--radius-md)}
.easy-read-status h2{font-size:1.25rem}
.easy-read-footer{padding:var(--space-6) max(1rem,calc((100% - 780px)/2));display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);border-top:var(--stroke-trace) solid var(--ink);background:var(--paper-raised)}
.easy-read-footer p{margin:0}
.easy-read-footer a{min-height:44px;display:inline-flex;align-items:center;font-weight:600}
@media(max-width:820px){.easy-read-link{font-size:13px}.easy-read-header{min-height:80px;gap:var(--space-3)}.easy-read-header nav{margin-left:auto}}
@media(max-width:520px){.site-header{padding-inline:var(--space-3)}.easy-read-link{padding-inline:var(--space-2)}.easy-read-header{align-items:flex-start;flex-direction:column;padding-block:var(--space-3)}.easy-read-header nav{width:100%;margin-left:0;justify-content:space-between}.easy-read-footer{align-items:flex-start;flex-direction:column}}

@media(prefers-reduced-motion:reduce){.nn-marker span{transition:none}}
@media(max-width:1100px){.location-map-shell{grid-template-columns:minmax(0,1fr) 320px}.location-map-shell .map-controls{grid-column:1/-1;display:flex;flex-direction:row;max-height:none;overflow-x:auto;border-right:0;border-bottom:var(--stroke-hairline) solid var(--line)}.location-button{min-width:170px}.location-map-shell .map-detail{min-height:460px}.location-map{height:460px;min-height:460px}}
@media(max-width:820px){.location-map-shell{grid-template-columns:1fr}.location-map-shell .map-controls{grid-column:auto}.location-map-shell .map-detail{min-height:auto}.location-map{height:390px;min-height:390px}.map-overview{width:132px;height:112px}}
@media(max-width:480px){.location-map{height:340px;min-height:340px}.location-button{min-width:155px}.map-overview{display:none}}
@media(forced-colors:active){.nn-marker span::before,.nn-marker span::after{background:Highlight}.location-map{border:2px solid CanvasText}}

/* ── Pages éditoriales : à propos, blog ───────────────────────── */
.content-page{background:var(--paper)}
.content-header{position:sticky;top:0}
.content-page .site-header nav{margin-left:auto}
.page-hero{padding:var(--space-24) clamp(var(--space-4),8vw,var(--space-24));background:var(--paper);border-bottom:var(--stroke-hairline) solid var(--line)}
.page-hero>div{width:min(100%,1020px);margin:auto}
.page-hero h1{max-width:18ch;font:var(--type-display);letter-spacing:var(--tracking-display)}
.page-lead{max-width:var(--measure-reading);margin:var(--space-6) 0 0;color:var(--ink-muted);font:var(--type-lede)}
.about-grid{width:min(100% - 2rem,1120px);margin:auto;padding:var(--space-24) 0;display:grid;grid-template-columns:minmax(260px,380px) minmax(0,650px);gap:clamp(var(--space-12),8vw,var(--space-24));align-items:start}
.portrait-frame{margin:0;position:sticky;top:120px}
.portrait-frame img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:68% center;border-radius:var(--radius-none);box-shadow:16px 16px 0 var(--sand)}
.portrait-frame figcaption{margin-top:var(--space-6);padding-left:var(--space-3);border-left:var(--stroke-hairline) solid var(--line-strong);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-muted)}
.article-body{font:var(--type-reading)}
.article-body h2{font:var(--type-h1);letter-spacing:var(--tracking-h1);margin:0 0 var(--space-6)}
.article-body h2:not(:first-child){margin-top:var(--space-12)}
.article-body p{margin:0 0 var(--space-6);color:var(--ink);max-width:var(--measure-reading)}
.editorial-note{margin-top:var(--space-12);padding:var(--space-6) var(--space-8);border-left:4px solid var(--channel);border-radius:var(--radius-md);background:var(--channel-soft)}
.editorial-note strong{font:var(--type-h3)}
.editorial-note p{margin:var(--space-2) 0 0;color:var(--ink)}
.page-cta{text-align:center;padding:var(--space-24) var(--space-4);background:var(--ink);color:var(--on-ink)}
.page-cta .eyebrow{color:var(--trace-on-ink)}
.page-cta h2{max-width:850px;margin:auto}
.page-cta>p:not(.eyebrow){max-width:640px;margin:var(--space-6) auto var(--space-8);color:var(--muted-on-ink);font:var(--type-lede)}
.blog-hero{background:var(--paper)}
.legal-updated{margin:var(--space-6) 0 0;font:var(--type-archive);letter-spacing:var(--tracking-archive);color:var(--ink-muted)}
.legal-body{width:min(100% - 2rem,760px);margin:auto;padding:var(--space-16) 0 var(--space-24)}
.legal-body h2{font:var(--type-h2);margin:var(--space-12) 0 var(--space-4)}
.legal-body h2:first-child{margin-top:0}
.legal-body ul{margin:0 0 var(--space-6);padding-left:var(--space-6)}
.legal-body li{margin-bottom:var(--space-2);max-width:var(--measure-reading)}
.article-list{width:min(100% - 2rem,1120px);margin:auto;padding:0;margin-block:var(--space-16);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);background:transparent;border:0}
.article-card{padding:var(--space-8);background:var(--paper-raised);border:var(--stroke-hairline) solid var(--line);border-radius:var(--radius-md);display:flex;flex-direction:column;min-height:300px}
.article-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:0 0 var(--space-6);color:var(--ink-muted);font:var(--type-archive);letter-spacing:var(--tracking-archive)}
.article-meta span{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--trace)}
.article-card h2{font:var(--type-h2)}
.article-card h2 a{text-decoration:none}
.article-card h2 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--trace)}
.article-card>p:not(.article-meta){color:var(--ink-muted);max-width:60ch}
.text-link{margin-top:auto;display:inline-flex;align-items:center;gap:var(--space-2);font:var(--type-body-sm);font-weight:600;color:var(--link);text-underline-offset:3px}
.feed-link{display:block;width:min(100% - 2rem,1120px);margin:0 auto var(--space-16);font:var(--type-body-sm);font-weight:600;color:var(--link)}
.blog-article{width:min(100% - 2rem,760px);margin:auto;padding:var(--space-24) 0}
.article-header{padding-bottom:var(--space-12);border-bottom:var(--stroke-hairline) solid var(--line)}
.article-header h1{font:var(--type-display);letter-spacing:var(--tracking-display)}
.article-header .article-meta{justify-content:flex-start;margin-bottom:var(--space-6)}
.blog-article>.article-body{padding:var(--space-12) 0}
.blog-article>.article-body h2{font:var(--type-h2)}
.article-footer{padding-top:var(--space-8);border-top:var(--stroke-hairline) solid var(--line);display:flex;justify-content:space-between;gap:var(--space-8)}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}.portrait-frame{position:static;width:min(78vw,380px)}.article-list{grid-template-columns:1fr}.content-footer{flex-wrap:wrap}.content-footer .footer-links{margin-left:0;width:100%;flex-wrap:wrap}}
@media(max-width:820px){.content-page .site-header nav{display:flex}.content-page .site-header nav a:first-child{display:none}.content-page .site-header{flex-wrap:nowrap}.content-page .site-header .brand small{display:none}.page-hero,.about-grid,.blog-article{padding-top:var(--space-16);padding-bottom:var(--space-16)}}
@media(max-width:560px){.content-page .site-header nav a:nth-child(2){display:none}.article-meta{align-items:flex-start;flex-direction:column}.article-footer{flex-direction:column}.portrait-frame{width:calc(100% - 1.5rem)}}
@media(max-width:480px){.easy-read-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.easy-read-link{width:44px;justify-content:center;padding:0}.site-header{gap:var(--space-2)}.brand{gap:var(--space-2)}.brand-logo{width:160px}}

/* ── Galeries et visionneuse ──────────────────────────────────── */
.photo-gallery{margin:var(--space-12) 0}
.photo-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);grid-auto-rows:300px}
.gallery-item{display:block;text-decoration:none;border:var(--stroke-hairline) solid var(--line);background:var(--paper-raised);transition:border-color var(--duration) var(--ease-out);overflow:hidden}
.gallery-item:hover{border-color:var(--ink)}
.gallery-item figure{margin:0}
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--radius-none);background:var(--sand)}
.gallery-item figcaption,.gallery-viewer figcaption{padding:var(--space-3) var(--space-4);color:var(--ink);font:var(--type-body-sm);display:flex;flex-direction:column;gap:var(--space-2)}
.gallery-item figcaption span,.gallery-item figcaption small,.gallery-viewer figcaption span,.gallery-viewer figcaption small{display:block}
.gallery-item figcaption small,.gallery-viewer figcaption small{color:var(--ink-muted);font:var(--type-label);overflow-wrap:break-word}
.gallery-viewer{width:min(94vw,1050px);max-height:92vh;padding:52px 72px var(--space-4);border:0;border-radius:var(--radius-md);background:var(--ink);color:var(--on-ink);box-shadow:var(--shadow-float)}
.gallery-viewer::backdrop{background:var(--backdrop)}
.gallery-viewer figure{margin:0;display:grid;justify-items:center}
.gallery-viewer img{display:block;max-width:100%;max-height:70vh;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-none)}
.gallery-viewer figcaption{width:100%;color:var(--on-ink)}
.gallery-viewer figcaption small{color:var(--muted-on-ink)}
.gallery-close,.gallery-previous,.gallery-next{position:absolute;display:grid;place-items:center;width:44px;height:44px;border:var(--stroke-hairline) solid var(--paper);border-radius:var(--radius-md);background:var(--paper);color:var(--ink);font:600 20px/1 var(--font-sans);cursor:pointer}
.gallery-close:hover,.gallery-previous:hover,.gallery-next:hover{background:var(--trace);border-color:var(--trace);color:var(--on-ink)}
.gallery-close{right:var(--space-3);top:var(--space-3)}
.gallery-previous{left:var(--space-3);top:50%;transform:translateY(-50%)}
.gallery-next{right:var(--space-3);top:50%;transform:translateY(-50%)}
@media(max-width:620px){.photo-gallery-grid{grid-template-columns:1fr}.gallery-viewer{padding:56px var(--space-3) var(--space-4)}.gallery-previous,.gallery-next{top:auto;bottom:var(--space-3);transform:none}.gallery-viewer figcaption{padding-bottom:56px}}

/* ── Bandeau d'annonce (statique par défaut) ──────────────────── */
.announcement{display:flex;align-items:center;gap:var(--space-4);min-height:48px;padding:var(--space-2) clamp(var(--space-4),5vw,var(--space-16));border-bottom:var(--stroke-hairline) solid var(--line);position:relative;z-index:9}
.announcement--information{background:var(--channel-soft);color:var(--ink)}
.announcement--conseil{background:var(--ochre-soft);color:var(--ink)}
.announcement--alerte{background:var(--ink);color:var(--on-ink);border-bottom-color:var(--ink)}
.announcement-window{flex:1;overflow:hidden}
.announcement-message{margin:0;font:var(--type-body-sm);font-weight:600}
.announcement--ticker .announcement-message{width:max-content;max-width:none;animation:announcement-ticker 16s ease-in-out infinite alternate}
.announcement--ticker:hover .announcement-message,.announcement--ticker:focus-within .announcement-message,.announcement--ticker.is-paused .announcement-message{animation-play-state:paused}
.announcement-toggle{flex:none;display:grid;place-items:center;width:44px;height:44px;border:var(--stroke-hairline) solid currentColor;border-radius:var(--radius-md);background:transparent;color:inherit;cursor:pointer;font-weight:600}
@keyframes announcement-ticker{from{transform:translateX(0)}to{transform:translateX(min(-18rem,-22vw))}}
@media(prefers-reduced-motion:reduce){.announcement--ticker .announcement-message{width:auto;animation:none}.gallery-item{transition:none}}
@media(max-width:620px){.announcement{align-items:flex-start;padding-inline:var(--space-3)}.announcement-message{font-size:14px}}
@media(forced-colors:active){.announcement,.gallery-item,.gallery-viewer{border:2px solid CanvasText}.announcement--information,.announcement--conseil,.announcement--alerte{background:Canvas;color:CanvasText}}

/* ── Photothèque interne (outil discret) ──────────────────────── */
.photo-library-page{background:var(--paper)}
.photo-library-header{min-height:88px;padding:var(--space-2) clamp(var(--space-4),4vw,var(--space-16));display:flex;align-items:center;gap:var(--space-8);border-bottom:var(--stroke-hairline) solid var(--line);background:var(--paper)}
.photo-library-header>p{display:flex;gap:var(--space-4);margin:0;color:var(--ink-muted);font:var(--type-body-sm)}
.photo-library-main{width:min(100% - 2rem,1280px);margin:auto;padding:var(--space-16) 0}
.photo-library-intro{max-width:780px}
.photo-library-intro h1{font:var(--type-display);letter-spacing:var(--tracking-display)}
.photo-library-intro>p:not(.eyebrow){color:var(--ink-muted)}
.photo-library-tools{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:var(--space-4);align-items:end;margin:var(--space-12) 0 var(--space-6);padding:var(--space-6);background:var(--paper-raised);border:var(--stroke-hairline) solid var(--line);border-radius:var(--radius-md)}
.photo-library-tools label{display:grid;gap:var(--space-2);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.photo-library-tools input,.photo-library-tools select{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:var(--stroke-hairline) solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);color:var(--ink);font:var(--type-body);text-transform:none;letter-spacing:0}
.photo-result-count{font-weight:600}
.photo-empty-state{padding:var(--space-8);background:var(--ochre-soft);border-left:4px solid var(--ochre);border-radius:var(--radius-md)}
.photo-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}
.photo-catalog-card{background:var(--paper-raised);border:var(--stroke-hairline) solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.photo-catalog-card[hidden]{display:none}
.photo-catalog-card>button{display:block;width:100%;padding:0;border:0;background:var(--sand);cursor:zoom-in}
.photo-catalog-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.photo-catalog-card.is-identity img{object-fit:contain;padding:var(--space-2);background:var(--paper)}
.photo-catalog-card>div{padding:var(--space-6)}
.photo-catalog-card code{display:inline-block;padding:2px var(--space-2);background:var(--trace-soft);color:var(--trace);border-radius:var(--radius-sm);font:var(--type-archive)}
.photo-catalog-card h2{margin:var(--space-3) 0 var(--space-2);font:var(--type-h3)}
.photo-catalog-card p{margin:var(--space-1) 0;color:var(--ink-muted)}
.photo-catalog-card dl,.photo-detail-dialog dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);margin:var(--space-4) 0;font:var(--type-body-sm)}
.photo-catalog-card dt,.photo-detail-dialog dt{font-weight:600}
.photo-catalog-card dd,.photo-detail-dialog dd{margin:0;overflow-wrap:anywhere}
.photo-copy-id{min-height:44px;padding:0 var(--space-4);border:var(--stroke-hairline) solid var(--line-strong);border-radius:var(--radius-md);background:transparent;color:var(--ink);font:var(--type-body-sm);font-weight:600;cursor:pointer}
.photo-copy-id:hover{background:var(--sand)}
.photo-detail-dialog{width:min(94vw,1000px);max-height:92vh;padding:56px;border:0;border-radius:var(--radius-md);color:var(--ink);background:var(--paper-raised);box-shadow:var(--shadow-float)}
.photo-detail-dialog::backdrop{background:var(--backdrop)}
.photo-detail-dialog>div{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1fr);gap:var(--space-4) var(--space-12)}
.photo-detail-dialog img{grid-row:1/12;width:100%;height:auto;max-height:72vh;object-fit:contain;background:var(--sand)}
.photo-detail-dialog h2{font:var(--type-h1)}
.photo-detail-dialog h3{margin-top:var(--space-4);font:var(--type-h3)}
.photo-detail-dialog p{margin:var(--space-1) 0;color:var(--ink-muted)}
.photo-detail-dialog ul{padding-left:1.2rem}
.photo-detail-dialog li small{display:block;color:var(--ink-muted)}
@media(max-width:900px){.photo-library-tools{grid-template-columns:repeat(2,1fr)}.photo-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-detail-dialog>div{grid-template-columns:1fr}.photo-detail-dialog img{grid-row:auto;max-height:48vh}}
@media(max-width:580px){.photo-library-header{align-items:flex-start}.photo-library-header>p{display:none}.photo-library-tools,.photo-catalog-grid{grid-template-columns:1fr}.photo-detail-dialog{padding:56px var(--space-4) var(--space-4)}.photo-catalog-card dl,.photo-detail-dialog dl{grid-template-columns:1fr}.photo-catalog-card dd,.photo-detail-dialog dd{margin-bottom:var(--space-2)}}

/* ── Drawer métadonnées –––––––––––––––––––––––––––––––––––––––– */
.metadata-drawer__toggle{position:absolute;z-index:10;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--paper);border:var(--stroke-hairline) solid var(--line);border-radius:50%;cursor:pointer;font-size:18px;color:var(--ink-muted);font-weight:bold;transition:all var(--duration) var(--ease-out)}
.metadata-drawer__toggle:hover{background:var(--paper-raised);color:var(--ink);transform:scale(1.1);box-shadow:0 2px 8px rgba(0,0,0,.1)}
.metadata-drawer__toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.metadata-drawer__toggle:active{transform:scale(.95)}
.metadata-drawer{position:fixed;right:0;top:0;bottom:0;width:320px;background:var(--paper-raised);border-left:var(--stroke-hairline) solid var(--line);overflow-y:auto;overflow-x:hidden;padding:var(--space-16);display:flex;flex-direction:column;gap:var(--space-16);animation:slideInRight var(--duration) var(--ease-out);will-change:transform;touch-action:manipulation;z-index:8}
.metadata-drawer[hidden]{display:none}
.metadata-drawer.closing{animation:slideOutRight var(--duration) var(--ease-out) forwards}
@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes slideOutRight{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}
.metadata-drawer__handle{display:none}
.metadata-drawer__title{font-size:20px;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:var(--space-8)}
.metadata-drawer__content{display:grid;gap:var(--space-12);font-size:14px;margin:0}
.metadata-drawer__label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-muted);font-weight:600}
.metadata-drawer__value{font-size:14px;color:var(--ink);line-height:1.4;margin:0}
.metadata-drawer__value a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--duration) var(--ease-out)}
.metadata-drawer__value a:hover{color:var(--trace);text-decoration-thickness:2px}
.metadata-drawer__value code{background:#f0ede8;padding:2px 4px;border-radius:var(--radius-sm);font-family:'Monaco',monospace;font-size:12px}
.metadata-drawer__divider{height:1px;background:var(--line);margin:var(--space-8) 0}
.metadata-drawer__copy-section{display:flex;flex-direction:column;gap:var(--space-8);margin-top:auto}
.metadata-drawer__format-controls{display:flex;gap:var(--space-8);align-items:center}
.metadata-drawer__format-toggle{display:flex;gap:4px;background:#f0ede8;border-radius:var(--radius-md);padding:2px}
.metadata-drawer__format-btn{padding:6px 12px;font-size:11px;border:none;background:transparent;color:var(--ink-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration) var(--ease-out);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.metadata-drawer__format-btn.active{background:white;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.metadata-drawer__format-btn:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.metadata-drawer__copy-btn{flex:1;min-width:80px;padding:10px var(--space-16);font-size:13px;border:var(--stroke-hairline) solid var(--line-strong);background:white;color:var(--ink);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration) var(--ease-out);text-align:center;font-weight:500;touch-action:manipulation;min-height:44px;display:flex;align-items:center;justify-content:center;gap:var(--space-8)}
.metadata-drawer__copy-btn:hover{background:var(--paper);border-color:var(--ink-muted)}
.metadata-drawer__copy-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.metadata-drawer__copy-btn:active{transform:scale(.95)}
.metadata-drawer__copy-btn.copied{background:#e8f5e9;color:#2e7d32;border-color:#2e7d32}
.metadata-drawer__format-hint{font-size:11px;color:var(--ink-muted);text-align:center}
.metadata-drawer__backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);z-index:7;opacity:0;transition:opacity var(--duration) var(--ease-out);pointer-events:none}
.metadata-drawer__backdrop.active{display:block;opacity:1;pointer-events:auto}
.metadata-drawer::-webkit-scrollbar{width:6px}
.metadata-drawer::-webkit-scrollbar-track{background:transparent}
.metadata-drawer::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
.metadata-drawer::-webkit-scrollbar-thumb:hover{background:var(--ink-muted)}
@media(max-width:767px){.metadata-drawer{position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;max-width:100%;border-left:none;border-top:var(--stroke-hairline) solid var(--line);border-radius:var(--radius-md) var(--radius-md) 0 0;max-height:60vh;animation:slideInBottom var(--duration) var(--ease-out);padding-top:calc(var(--space-16) + 20px)}.metadata-drawer.closing{animation:slideOutBottom var(--duration) var(--ease-out) forwards}@keyframes slideInBottom{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideOutBottom{from{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.metadata-drawer__handle{display:block;position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;background:var(--line-strong);border-radius:2px;pointer-events:none}}
@media(prefers-reduced-motion:reduce){.metadata-drawer{animation:none}.metadata-drawer.closing{animation:none}}
@media(prefers-color-scheme:dark){.metadata-drawer__value code{background:#3a3430}.metadata-drawer__format-toggle{background:#3a3430}.metadata-drawer__format-btn.active{background:#2a2420}}
@media(forced-colors:active){.metadata-drawer,.metadata-drawer__toggle{border:2px solid CanvasText}}