/* Styles Hemera adaptés aux couleurs et composants Hemera */
@font-face {font-family:'OpenDyslexic';src:url('https://cdn.jsdelivr.net/gh/madjeek-web/open-dyslexic@main/OpenDyslexic-2025/opendyslexic-regular-webfont.woff2') format('woff2');font-weight:400;font-display:swap;}
:root {--a11y-text-scale:100%;}
.a11y-overlay, .accessibility-trigger {--gold:#b58a2c;--gold-light:#e6c877;--white:#fff;--ink:#34232c;--ink-2:#34232c;--ink-3:#6c5f66;--paper:#fffdfb;--paper-2:#f7efe8;--paper-3:#fffaf4;--muted:#6c5f66;--muted-dark:#6c5f66;--line:rgba(52,35,44,.15);--line-dark:rgba(52,35,44,.25);font-family:Inter,Arial,sans-serif;}
/* Accessibilité : déclencheur et panneau accessible au clavier. */
body.a11y-modal-open { overflow: hidden; }
.accessibility-trigger {
  position: fixed;
  z-index: 145;
  right: 18px;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 8px 16px 8px 8px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  color: var(--white);
  background: rgba(10,9,8,.92);
  box-shadow: 0 14px 45px rgba(0,0,0,.34);
  backdrop-filter: blur(12px);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
}
.accessibility-icon,
.a11y-brand-icon,
.a11y-option-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.accessibility-icon {
  width: 34px;
  height: 34px;
  padding: 6px;
  border-radius: 50%;
  color: #17120b;
  background: var(--gold);
}
.accessibility-icon svg,
.a11y-brand-icon svg,
.a11y-option-icon svg,
.a11y-close svg { width: 100%; height: 100%; }
.a11y-overlay {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(4,4,3,.66);
  backdrop-filter: blur(9px);
}
.a11y-dialog {
  width: min(860px, 100%);
  max-height: min(820px, calc(100svh - 44px));
  overflow: auto;
  padding: 28px;
  border: 1px solid rgba(28,24,20,.08);
  border-radius: 28px;
  color: var(--ink-2);
  background: var(--paper-3);
  box-shadow: 0 28px 90px rgba(0,0,0,.32);
}
.a11y-head {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: flex-start;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(31,28,24,.10);
}
.a11y-heading-group {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.a11y-heading-group > div:last-child { min-width: 0; }
.a11y-brand-icon {
  width: 72px;
  height: 72px;
  padding: 14px;
  border-radius: 22px;
  color: #9a763b;
  background: #ece2d2;
}
.a11y-head span {
  color: #9a763b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.a11y-head h2 {
  margin: 7px 0 10px;
  font-family: var(--sans);
  font-size: clamp(34px, 5vw, 48px);
  font-weight: 800;
  line-height: 1;
}
.a11y-head p { margin: 0; max-width: 720px; color: #574f46; }
.a11y-close {
  width: 58px;
  height: 58px;
  flex: 0 0 auto;
  padding: 15px;
  border: 1px solid rgba(31,28,24,.12);
  border-radius: 18px;
  color: var(--ink-2);
  background: var(--white);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}
.a11y-section { margin-top: 28px; }
.a11y-section-title {
  margin: 0 0 14px;
  color: #5d513f;
  font-size: clamp(17px, 1.4vw, 19px);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.a11y-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.a11y-option {
  min-height: 110px;
  display: grid;
  grid-template-columns: 56px minmax(0,1fr) auto;
  align-items: start;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(31,28,24,.08);
  border-radius: 20px;
  color: var(--ink-2);
  background: #eef1f1;
  box-shadow: 0 10px 25px rgba(10,10,10,.05);
  cursor: pointer;
  text-align: left;
}
.a11y-option:hover { border-color: rgba(154,118,59,.36); }
.a11y-option.is-active {
  border-color: #9a763b;
  background: #f8f0df;
  box-shadow: 0 14px 30px rgba(154,118,59,.12);
}
.a11y-option-icon {
  width: 56px;
  height: 56px;
  padding: 12px;
  border-radius: 16px;
  color: #9a763b;
  background: #fbf8f2;
}
.a11y-option.is-active .a11y-option-icon {
  color: #7f5f29;
  background: #fffdf8;
}
.a11y-option-copy { display: grid; gap: 4px; }
.a11y-label { font-size: 16px; font-weight: 800; line-height: 1.22; }
.a11y-description { display: block; color: #575047; font-size: 15px; line-height: 1.45; }
.a11y-state {
  align-self: center;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(17,16,14,.08);
  color: #4f473f;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.a11y-option.is-active .a11y-state {
  background: #17120b;
  color: var(--white);
}
.a11y-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid rgba(31,28,24,.10);
}
.a11y-footer a { color: #7f5f29; text-decoration: underline; text-underline-offset: 4px; }

/* Agrandissement du texte : contrôle 100 % → 200 %, inspiré du module de référence. */
.a11y-text-scale-card {
  margin-top: 14px;
  padding: 22px;
  border: 1px solid rgba(31,28,24,.09);
  border-radius: 22px;
  background: #eef1f1;
  box-shadow: 0 10px 25px rgba(10,10,10,.05);
}
.a11y-text-scale-head {
  display: grid;
  grid-template-columns: 56px minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
}
.a11y-text-scale-head .a11y-label {
  margin: 0;
  font: inherit;
  font-size: 16px;
  font-weight: 800;
}
.a11y-text-scale-head .a11y-description { margin: 4px 0 0; }
.a11y-text-scale-icon { background: #fbf8f2; }
.a11y-text-output {
  min-width: 86px;
  padding: 10px 14px;
  border-radius: 14px;
  color: #17120b;
  background: #e5dccb;
  font-size: 16px;
  font-weight: 900;
  text-align: center;
}
.a11y-text-range-row {
  display: grid;
  grid-template-columns: 64px minmax(0,1fr) 64px;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
}
.a11y-text-step {
  min-height: 54px;
  border: 1px solid rgba(31,28,24,.12);
  border-radius: 15px;
  color: #17120b;
  background: #fffdf8;
  cursor: pointer;
  font-size: 20px;
  font-weight: 900;
}
.a11y-text-step:disabled { cursor: not-allowed; opacity: .42; }
.a11y-text-range {
  width: 100%;
  min-height: 44px;
  margin: 0;
  border: 0;
  background: transparent;
  accent-color: #9a763b;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.a11y-text-range:focus-visible { outline: 4px solid #9a763b; outline-offset: 5px; border-radius: 999px; }
.a11y-text-range::-webkit-slider-runnable-track {
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, #9a763b 0%, #9a763b var(--a11y-range-progress, 0%), #4a4540 var(--a11y-range-progress, 0%), #4a4540 100%);
}
.a11y-text-range::-webkit-slider-thumb {
  width: 24px;
  height: 24px;
  margin-top: -8px;
  border: 3px solid #fffdf8;
  border-radius: 50%;
  background: #9a763b;
  box-shadow: 0 2px 8px rgba(0,0,0,.22);
  -webkit-appearance: none;
  appearance: none;
}
.a11y-text-range::-moz-range-track {
  height: 8px;
  border-radius: 999px;
  background: #4a4540;
}
.a11y-text-range::-moz-range-progress {
  height: 8px;
  border-radius: 999px;
  background: #9a763b;
}
.a11y-text-range::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border: 3px solid #fffdf8;
  border-radius: 50%;
  background: #9a763b;
  box-shadow: 0 2px 8px rgba(0,0,0,.22);
}
.a11y-text-presets {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 10px;
  margin-top: 12px;
}
.a11y-text-preset {
  min-height: 50px;
  padding: 8px 10px;
  border: 1px solid rgba(31,28,24,.12);
  border-radius: 14px;
  color: #17120b;
  background: #fffdf8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
}
.a11y-text-preset.is-active {
  border-color: #9a763b;
  color: #fff;
  background: #9a763b;
  box-shadow: inset 0 0 0 2px #fffdf8, 0 0 0 1px #9a763b;
}
.a11y-text-note {
  margin: 12px 0 0;
  color: #575047;
  font-size: 13px;
}

/* Options d'affichage. */
html.a11y-font-dyslexic body,
html.a11y-font-dyslexic body *:not(svg):not(path):not(img):not(video):not(canvas):not(code):not(pre):not(kbd):not(samp) {
  font-family: 'OpenDyslexic', Verdana, Arial, sans-serif !important;
}
html.a11y-font-readable body,
html.a11y-font-readable body *:not(svg):not(path):not(img):not(video):not(canvas):not(code):not(pre):not(kbd):not(samp) {
  font-family: Arial, Verdana, Tahoma, sans-serif !important;
}
html.a11y-spacing body *:not(svg):not(path) {
  line-height: 1.5 !important;
  letter-spacing: .12em !important;
  word-spacing: .16em !important;
}
html.a11y-visible-links a:not(.btn):not(.brand) {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: .22em !important;
}
html.a11y-focus :focus-visible {
  outline: 4px solid #ffdd72 !important;
  outline-offset: 5px !important;
  box-shadow: 0 0 0 2px #090908 !important;
}
html.a11y-high-contrast {
  --ink: #000;
  --ink-2: #000;
  --ink-3: #000;
  --paper: #000;
  --paper-2: #000;
  --paper-3: #000;
  --white: #fff;
  --muted: #fff;
  --muted-dark: #fff;
  --gold: #ffd84b;
  --gold-light: #fff0a6;
  --line: rgba(255,255,255,.45);
  --line-dark: rgba(255,255,255,.45);
}
html.a11y-high-contrast body {
  background: #000 !important;
  color: #fff !important;
}
html.a11y-high-contrast .site-header,
html.a11y-high-contrast .site-header.scrolled,
html.a11y-high-contrast .section-paper,
html.a11y-high-contrast .section-paper-2,
html.a11y-high-contrast .section-dark-soft,
html.a11y-high-contrast .signal-strip,
html.a11y-high-contrast .signal,
html.a11y-high-contrast .hero-side,
html.a11y-high-contrast .destination-card,
html.a11y-high-contrast .editorial-card,
html.a11y-high-contrast .gallery-card,
html.a11y-high-contrast .prose-card,
html.a11y-high-contrast .contact-card,
html.a11y-high-contrast .form-card,
html.a11y-high-contrast .map-consent-placeholder,
html.a11y-high-contrast .cookie-dialog,
html.a11y-high-contrast .cookie-toggle,
html.a11y-high-contrast .a11y-dialog,
html.a11y-high-contrast .a11y-option,
html.a11y-high-contrast .a11y-text-scale-card,
html.a11y-high-contrast .a11y-text-step,
html.a11y-high-contrast .a11y-text-preset,
html.a11y-high-contrast .accessibility-trigger,
html.a11y-high-contrast .menu-figure,
html.a11y-high-contrast .menu-modal-card,
html.a11y-high-contrast .visual-frame,
html.a11y-high-contrast .cta-band,
html.a11y-high-contrast .cta-card,
html.a11y-high-contrast .story-card,
html.a11y-high-contrast .contact-map-card,
html.a11y-high-contrast .detail-card {
  background: #000 !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.65) !important;
  box-shadow: none !important;
}
html.a11y-high-contrast .a11y-option-icon,
html.a11y-high-contrast .a11y-text-output,
html.a11y-high-contrast .a11y-brand-icon,
html.a11y-high-contrast .accessibility-icon,
html.a11y-high-contrast .signal-icon,
html.a11y-high-contrast .brand-emblem {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}
html.a11y-high-contrast .btn-gold,
html.a11y-high-contrast .btn-dark,
html.a11y-high-contrast .btn-ghost,
html.a11y-high-contrast .cookie-toggle.is-on,
html.a11y-high-contrast .a11y-option.is-active .a11y-state,
html.a11y-high-contrast .a11y-text-preset.is-active {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}
html.a11y-high-contrast .btn-link,
html.a11y-high-contrast .gold,
html.a11y-high-contrast .eyebrow,
html.a11y-high-contrast .hero-kicker,
html.a11y-high-contrast .hero-side-label,
html.a11y-high-contrast .a11y-footer a,
html.a11y-high-contrast .cookie-policy-link a,
html.a11y-high-contrast .nav-links a,
html.a11y-high-contrast .breadcrumbs,
html.a11y-high-contrast .brand-type small {
  color: #fff0a6 !important;
}
html.a11y-high-contrast p,
html.a11y-high-contrast li,
html.a11y-high-contrast small,
html.a11y-high-contrast label,
html.a11y-high-contrast .section-copy,
html.a11y-high-contrast .hero-lead,
html.a11y-high-contrast .hero-meta,
html.a11y-high-contrast .hero-side small,
html.a11y-high-contrast .a11y-description,
html.a11y-high-contrast .a11y-text-note,
html.a11y-high-contrast .a11y-head p,
html.a11y-high-contrast .cookie-dialog p,
html.a11y-high-contrast .legal-content p,
html.a11y-high-contrast .legal-content li,
html.a11y-high-contrast .signal small,
html.a11y-high-contrast .field-note {
  color: #fff !important;
}
html.a11y-high-contrast input,
html.a11y-high-contrast textarea,
html.a11y-high-contrast select {
  background: #000 !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.75) !important;
}
html.a11y-high-contrast ::placeholder { color: #f6f0d0 !important; opacity: 1; }
html.a11y-large-cursor,
html.a11y-large-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M5 3l30 25-14 2 8 13-7 4-8-14-9 11z' fill='%23fff' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E") 5 4, auto !important; }
.reading-guide {
  position: fixed;
  z-index: 190;
  left: 0;
  right: 0;
  height: 48px;
  border-top: 2px solid rgba(255,225,154,.9);
  border-bottom: 2px solid rgba(255,225,154,.9);
  background: rgba(255,225,154,.12);
  pointer-events: none;
}
html.a11y-hide-images img { opacity: 0 !important; }
html.a11y-hide-images .hero,
html.a11y-hide-images .cta-band,
html.a11y-hide-images .editorial-card,
html.a11y-hide-images .destination-card,
html.a11y-hide-images .visual-frame { background-image: none !important; background-color: #171512 !important; }
html.a11y-stop-animations *,
html.a11y-stop-animations *::before,
html.a11y-stop-animations *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
html.a11y-stop-animations [data-reveal] { opacity: 1 !important; transform: none !important; }

@media (max-width: 1080px) {
  .menu-book-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .menu-book-grid { grid-template-columns: 1fr; }
  .cookie-overlay { padding: 10px; }
  .cookie-dialog { padding: 22px 18px; border-radius: 19px; }
  .cookie-actions { display: grid; grid-template-columns: 1fr; }
  .cookie-actions .btn { width: 100%; }
  .cookie-category { grid-template-columns: 1fr; gap: 12px; }
  .cookie-toggle { justify-self: start; }
  .a11y-overlay { padding: 10px; }
  .a11y-dialog { padding: 22px 18px; border-radius: 19px; }
  .a11y-head { align-items: flex-start; }
  .a11y-heading-group { align-items: flex-start; }
  .a11y-brand-icon { width: 58px; height: 58px; padding: 12px; border-radius: 18px; }
  .a11y-grid { grid-template-columns: 1fr; }
  .a11y-option { grid-template-columns: 48px minmax(0,1fr); }
  .a11y-option-icon { width: 48px; height: 48px; padding: 10px; }
  .a11y-state { grid-column: 2; justify-self: start; }
  .a11y-text-scale-card { padding: 18px; }
  .a11y-text-scale-head { grid-template-columns: 48px minmax(0,1fr); }
  .a11y-text-output { grid-column: 2; justify-self: start; min-width: 78px; }
  .a11y-text-range-row { grid-template-columns: 54px minmax(0,1fr) 54px; gap: 9px; }
  .a11y-text-presets { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .a11y-text-preset:nth-child(4), .a11y-text-preset:nth-child(5) { grid-column: span 1; }
  .a11y-footer { align-items: stretch; flex-direction: column; }
  .accessibility-trigger { right: 12px; bottom: 82px; }
  .accessibility-trigger > span:last-child { display: none; }
  .accessibility-trigger { padding: 7px; }
  .map-consent-placeholder { min-height: 430px; padding: 24px 18px; }
}


.centered-actions { justify-content: center; }



/* Agrandissement global reprenant le mécanisme Hemera. */
html.a11y-text-scaled { font-size: var(--a11y-text-scale,100%) !important; }
/* Hemera: bouton circulaire demandé, en bas à droite, au-dessus des composants ordinaires. */
.accessibility-trigger {width:64px;height:64px;min-height:0;padding:8px;border-radius:50%;justify-content:center;background:#fffdfb;border:1px solid #e7dfd5;box-shadow:0 8px 25px rgba(52,35,44,.16);color:#b58a2c;right:20px;bottom:20px;z-index:99990;}
.accessibility-trigger:hover {transform:translateY(-2px);box-shadow:0 12px 30px rgba(52,35,44,.22)}
.accessibility-trigger .accessibility-icon {width:46px;height:46px;padding:6px;background:transparent;color:#b58a2c;}
.a11y-overlay {z-index:99999;box-sizing:border-box;}
.a11y-overlay *, .accessibility-trigger * {box-sizing:border-box;}
.a11y-overlay .a11y-dialog {background:#fffaf4;color:#34232c;}
.a11y-overlay button {cursor:pointer;}
.a11y-overlay button:focus-visible,.accessibility-trigger:focus-visible{outline:3px solid #b58a2c;outline-offset:3px;}
.a11y-overlay .a11y-option {color:#34232c;}
.a11y-overlay .a11y-description {color:#6c5f66;}
.a11y-overlay .a11y-section-title {color:#8a6a20;}
.a11y-overlay .a11y-heading-group h2 {color:#17120b;}
.a11y-overlay .a11y-text-range {accent-color:#b58a2c;}
.a11y-overlay .a11y-option.is-active {border-color:#b58a2c;}
.a11y-overlay [hidden] {display:none!important;}
.a11y-overlay .sr-only,.accessibility-trigger .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;}
@media(max-width:640px){.accessibility-trigger {width:54px;height:54px;right:12px;bottom:12px}.accessibility-trigger .accessibility-icon{width:40px;height:40px}.a11y-overlay{padding:9px}.a11y-dialog{padding:18px 14px;max-height:calc(100dvh - 18px)}.a11y-grid{grid-template-columns:1fr!important}.a11y-head{gap:10px}.a11y-heading-group{gap:10px}}

/* Déclencheur positionné en bas à gauche sur toutes les pages. */
.accessibility-trigger { left: 18px !important; right: auto !important; }
@media (max-width: 600px) {.accessibility-trigger { left: 12px !important; right: auto !important; }}
