/* ORAFIRST — polices auto-hebergees (aucune requete vers Google : conforme RGPD) */
/* Polices variables : un seul fichier couvre toutes les graisses. Sous-ensemble latin (accents FR inclus). */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:400 600; font-display:swap;
  src:url(fonts/inter-latin.woff2) format('woff2');
}
@font-face{
  font-family:'Sora'; font-style:normal; font-weight:500 800; font-display:swap;
  src:url(fonts/sora-latin.woff2) format('woff2');
}
@font-face{
  font-family:'Playfair Display'; font-style:normal; font-weight:800 900; font-display:swap;
  src:url(fonts/playfair-latin.woff2) format('woff2');
}

/* ---------- Socle commun accessibilite ---------- */
.skip-link{
  position:absolute; left:16px; top:-60px; z-index:3000;
  padding:10px 18px; border-radius:999px;
  background:#d4af37; color:#15110c; font-weight:700; font-size:.85rem; text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{ top:16px; }
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
:focus-visible{ outline:2px solid #f0dfa8; outline-offset:3px; border-radius:6px; }
::selection{ background:rgba(212,175,55,.35); color:#fff; }

/* ---------- Pied de page legal commun (pages secondaires) ---------- */
.mini-footer{
  max-width:1100px; margin:0 auto; padding:28px 6vw 36px;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px;
  border-top:1px solid rgba(212,175,55,.16);
  font-size:.78rem; color:var(--muted,#cdbf9f);
}
.mini-footer nav{ display:flex; flex-wrap:wrap; gap:8px 20px; }
.mini-footer a{ color:var(--muted,#cdbf9f); text-decoration:none; }
.mini-footer a:hover{ color:var(--chrome,#f7f3ea); text-decoration:underline; text-underline-offset:3px; }

/* ---------- Transitions fluides entre les pages (Chrome, Edge, Safari 18.2+) ---------- */
@view-transition{ navigation:auto; }
::view-transition-old(root){ animation:orfPageOut .28s cubic-bezier(.4,0,1,1) both; }
::view-transition-new(root){ animation:orfPageIn .42s cubic-bezier(.16,.8,.24,1) both; }
@keyframes orfPageOut{ to{ opacity:0; transform:scale(.985); filter:blur(4px); } }
@keyframes orfPageIn{ from{ opacity:0; transform:scale(1.015); filter:blur(4px); } }
@media (prefers-reduced-motion: reduce){ ::view-transition-old(root), ::view-transition-new(root){ animation:none; } }

/* ---------- Barre de progression de lecture ---------- */
.orf-progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:2500; pointer-events:none;
  background:linear-gradient(90deg, #a8842a, #f0dfa8, #d4af37);
  transform-origin:0 50%; transform:scaleX(0);
  box-shadow:0 0 10px rgba(212,175,55,.6);
}

/* ---------- Visionneuse plein ecran (galeries) ---------- */
.orf-zoomable{ cursor:zoom-in; }
.orf-lightbox{
  position:fixed; inset:0; z-index:3000;
  display:flex; align-items:center; justify-content:center;
  background:rgba(10,8,6,.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s;
  overscroll-behavior:contain; touch-action:pan-y;
}
.orf-lightbox.open{ opacity:1; visibility:visible; transition:opacity .3s ease; }
.orf-lb-figure{ margin:0; max-width:min(92vw,1400px); max-height:86vh; display:flex; flex-direction:column; align-items:center; gap:14px; }
.orf-lb-img{
  max-width:100%; max-height:78vh; object-fit:contain; border-radius:10px;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
  transform:scale(.96); opacity:0; transition:transform .45s cubic-bezier(.16,.8,.24,1), opacity .3s ease;
}
.orf-lb-img.tall{ max-height:none; }
.orf-lb-scroll{ max-height:78vh; overflow:auto; border-radius:10px; -webkit-overflow-scrolling:touch; }
.orf-lightbox.open .orf-lb-img.ready{ transform:none; opacity:1; }
.orf-lb-caption{ color:#f7f3ea; font:600 .9rem 'Bricolage Grotesque','Manrope',sans-serif; letter-spacing:.04em; text-align:center; }
.orf-lb-count{ color:#cdbf9f; font:500 .75rem 'Manrope',sans-serif; letter-spacing:.14em; margin-left:10px; }
.orf-lb-btn{
  position:absolute; width:50px; height:50px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(31,25,18,.75); border:1px solid rgba(212,175,55,.45); color:#f7f3ea; cursor:pointer;
  transition:border-color .25s, background .25s, transform .25s cubic-bezier(.16,.8,.24,1);
}
.orf-lb-btn:hover{ border-color:#d4af37; background:rgba(31,25,18,.95); }
.orf-lb-btn svg{ width:20px; height:20px; }
.orf-lb-close{ top:max(18px, env(safe-area-inset-top)); right:18px; }
.orf-lb-prev{ left:18px; top:50%; transform:translateY(-50%); }
.orf-lb-next{ right:18px; top:50%; transform:translateY(-50%); }
.orf-lb-prev:hover{ transform:translateY(-50%) translateX(-3px); }
.orf-lb-next:hover{ transform:translateY(-50%) translateX(3px); }
@media (max-width:640px){
  .orf-lb-prev, .orf-lb-next{ top:auto; bottom:max(18px, env(safe-area-inset-bottom)); transform:none; }
  .orf-lb-prev:hover, .orf-lb-next:hover{ transform:none; }
  .orf-lb-prev{ left:calc(50% - 62px); } .orf-lb-next{ right:calc(50% - 62px); }
}
html.orf-lb-lock, html.orf-lb-lock body{ overflow:hidden; }

/* Polices generales du site (titres + texte) */
@font-face{
  font-family:'Bricolage Grotesque'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url(fonts/bricolage-latin.woff2) format('woff2');
}
@font-face{
  font-family:'Manrope'; font-style:normal; font-weight:300 800; font-display:swap;
  src:url(fonts/manrope-latin.woff2) format('woff2');
}

/* Police editoriale (mots-cles engagements + titres des pages detail) */
@font-face{
  font-family:'Instrument Serif'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/instrument-serif-latin.woff2) format('woff2');
}
@font-face{
  font-family:'Instrument Serif'; font-style:italic; font-weight:400; font-display:swap;
  src:url(fonts/instrument-serif-italic-latin.woff2) format('woff2');
}

/* Chiffres editoriaux (pages engagements).
   'Migra' (Pangram Pangram) est une police commerciale : une fois la licence achetee, deposez
   assets/fonts/migra-extralight.woff2 et activez la ligne indiquee ci-dessous. */
@font-face{
  font-family:'Migra'; font-style:normal; font-weight:200; font-display:swap;
  src:local('Migra Extralight'), local('Migra-Extralight');
  /* Licence achetee ? remplacez la ligne ci-dessus par :
  src:url(fonts/migra-extralight.woff2) format('woff2'); */
}
@font-face{
  font-family:'Cormorant Garamond'; font-style:normal; font-weight:300; font-display:swap;
  src:url(fonts/cormorant-light-latin.woff) format('woff');
}

/* Chiffres des prix : TeX Gyre Schola Bold (clone libre du Century Schoolbook, licence GUST) — sous-ensemble chiffres , . € */
@font-face{
  font-family:'Schola Prix'; font-style:normal; font-weight:700; font-display:swap;
  src:url(fonts/schola-bold-prix.woff2) format('woff2');
  unicode-range:U+0020-0039, U+00A0, U+20AC;
}

/* Titres : General Sans (Indian Type Foundry / Fontshare, licence ITF Free Font License) — auto-heberge */
@font-face{ font-family:'General Sans'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/general-sans-500.woff2) format('woff2'); }
@font-face{ font-family:'General Sans'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/general-sans-600.woff2) format('woff2'); }
/* Fraunces (SIL OFL) — demo restaurant "Maison Olia" */
@font-face{
  font-family:'Fraunces'; font-style:normal; font-weight:600; font-display:swap;
  src:url(fonts/fraunces-600-latin.woff2) format('woff2');
}
@font-face{
  font-family:'Fraunces'; font-style:italic; font-weight:400; font-display:swap;
  src:url(fonts/fraunces-italic-latin.woff2) format('woff2');
}
