@font-face {
    font-family: 'Enchanted';
    src: url('/font/enchanted-land.otf') format('opentype');
    font-display: swap;
}
@font-face {
    font-family: 'Cinzel';
    src: url('/font/Cinzel-Regular.ttf') format('truetype');
    font-display: swap;
}
:root {
    color-scheme: dark;
    --fond: #100b08;
    --papier: #f1e4cc;
    --or: #dbaf68;
    --secondaire: #bdb09c;
    --trait: #b387493b;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body { margin: 0; background: var(--fond); color: var(--papier); font: 16px/1.75 Georgia, 'Times New Roman', serif; }
::selection { background: #d7a151; color: #100b08; }
a { color: inherit; text-decoration: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--or); outline-offset: 6px; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin: 0; }
h2 { font-size: clamp(30px, 3.5vw, 48px); line-height: 1.25; font-weight: 400; }
h2 em { color: var(--or); font-weight: 400; }
.lien-evitement { position: absolute; z-index: 10; top: 12px; left: 12px; padding: 12px 20px; background: var(--papier); color: var(--fond); transform: translateY(-150%); }
.lien-evitement:focus { transform: translateY(0); }
.entete { position: absolute; z-index: 3; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 24px 5%; border-bottom: 1px solid #d3ad6226; background: linear-gradient(#090604aa, transparent); }
.marque { display: flex; gap: 13px; align-items: center; }
.marque img { width: 46px; height: 57px; object-fit: contain; }
.marque > span { color: var(--or); font: 30px/1.05 'Enchanted', Georgia, serif; }
.marque small { display: block; margin-top: 7px; color: var(--papier); font: 9px/1.5 Arial, sans-serif; letter-spacing: 2.5px; text-transform: uppercase; }
.entete nav { display: flex; align-items: center; gap: 36px; }
.lien-experience { font: 11px 'Cinzel', Georgia, serif; letter-spacing: 1.7px; }
.lien-experience:hover { color: var(--or); }
.bouton { display: inline-flex; align-items: center; justify-content: center; gap: 30px; padding: 17px 27px; border: 1px solid var(--or); font: 11px/1.5 'Cinzel', Georgia, serif; letter-spacing: 1.6px; text-align: center; transition: background .2s, color .2s, box-shadow .2s; }
.bouton span { font: 20px/1 Georgia, serif; }
.bouton-fin { padding: 12px 23px; color: var(--or); }
.bouton-fin:hover { background: var(--or); color: var(--fond); }
.bouton-or { color: #241307; background: linear-gradient(110deg, #e9c98c, #c4934a); border-color: #e0ba79; box-shadow: 0 0 28px #de9b381a; }
.bouton-or:hover { background: #f1d8a5; box-shadow: 0 0 32px #de9b3840; }
.ouverture { position: relative; min-height: 850px; min-height: max(780px, 100svh); display: flex; align-items: center; isolation: isolate; overflow: hidden; }
.decor-ouverture { position: absolute; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ouverture::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #090705b3, #100b0840 48%, transparent 78%), linear-gradient(0deg, var(--fond), transparent 26%, transparent 85%, #100b0855); }
.contenu-ouverture { width: 60%; max-width: 850px; padding: 142px 30px 114px 7vw; text-align: center; }
.surtitre { color: var(--or); font: 10px/1.8 'Cinzel', Georgia, serif; letter-spacing: 2.6px; text-transform: uppercase; }
.contenu-ouverture > .surtitre { color: #efcd96; margin-bottom: 22px; }
.surtitre > span { margin-right: 8px; }
h1 { font-weight: 400; line-height: .88; text-shadow: 0 4px 30px #000; }
.invitation { display: block; font: italic clamp(25px, 3vw, 42px)/1.3 Georgia, serif; color: var(--papier); }
.mot-halloween { display: block; margin-top: 10px; font: clamp(95px, 10.7vw, 168px)/.92 'Enchanted', Georgia, serif; color: #edbf71; }
.au-manoir { display: block; color: #ebc686; font: clamp(52px, 5.8vw, 87px)/1 'Enchanted', Georgia, serif; }
.ornement { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--or); max-width: 325px; margin: 24px auto 17px; }
.ornement::before, .ornement::after { content: ''; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--or)); }
.ornement::after { transform: rotate(180deg); }
.ornement span { font-size: 24px; line-height: 1; }
.trilogie { font: 15px/1.8 'Cinzel', Georgia, serif; letter-spacing: 2px; }
.trilogie span { color: var(--or); padding: 0 7px; }
.accroche { color: #e0d2bc; font-size: 17px; line-height: 1.6; margin: 16px 0 25px; }
.lieu { font: 9px/1.7 Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #d5be99; margin-top: 20px; }
.defiler { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); font: 9px/1.5 'Cinzel', Georgia, serif; letter-spacing: 2px; text-align: center; white-space: nowrap; color: #d3ba97; }
.defiler span { display: block; font: 25px/1.3 Georgia, serif; margin-bottom: 10px; }
.mention-ambiance { position: absolute; right: 22px; bottom: 27px; color: #c1ae96; font: 9px Arial, sans-serif; }
.reperes { display: flex; align-items: center; justify-content: center; gap: 7%; padding: 34px 5%; border-block: 1px solid var(--trait); background: #17100b; text-align: center; }
.reperes strong { display: block; font: 19px/1.6 'Cinzel', Georgia, serif; color: var(--or); font-weight: 400; }
.reperes p > span { display: block; color: var(--secondaire); font-size: 13px; }
.etoile { color: #8c6234; font-size: 12px; }
.section { width: min(1200px, 88%); margin-inline: auto; }
.experience { padding-block: 100px 80px; }
.introduction { max-width: 715px; margin: 0 auto 53px; text-align: center; }
.introduction h2 { margin: 18px 0 23px; }
.introduction > p:last-child { color: var(--secondaire); max-width: 615px; margin: auto; }
.chapitres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.chapitre { min-width: 0; }
.image-chapitre { position: relative; aspect-ratio: 2.15; overflow: hidden; border: 1px solid #b3874955; }
/* Recadrage des affiches sur leur décor, en conservant les fichiers originaux. */
.image-chapitre img { position: absolute; width: 100%; max-width: none; height: auto; top: -102%; }
.chapitre:first-child .image-chapitre img { width: 135%; left: -17.5%; top: -155%; }
.image-chapitre::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, #100b0899); pointer-events: none; }
.image-chapitre > span { position: absolute; z-index: 1; bottom: 8px; left: 19px; font: 28px 'Cinzel', Georgia, serif; color: #e4c594; }
.texte-chapitre { padding: 24px 0 0; }
.texte-chapitre .surtitre { font-size: 9px; letter-spacing: 1.7px; }
.texte-chapitre h3 { font-weight: 400; font-size: 25px; margin: 8px 0 13px; }
.texte-chapitre > p:last-child { color: var(--secondaire); font-size: 15px; line-height: 1.8; }
.legende-visuels { margin-top: 28px; font-size: 11px; color: var(--secondaire); text-align: right; font-style: italic; }
.invitation-nuit { position: relative; padding: 74px 24px 85px; text-align: center; background: radial-gradient(ellipse at 50% 80%, #401b144f, transparent 70%), #170d0b; border-block: 1px solid var(--trait); }
.sceau { margin: 0 auto 33px; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 115px; height: 115px; border: 1px solid #9c714e88; border-radius: 50%; outline: 1px solid #9c714e33; outline-offset: 7px; color: var(--or); }
.sceau span { font: 40px/1.2 'Cinzel', Georgia, serif; }
.sceau small { max-width: 90px; font: 7px/1.8 'Cinzel', Georgia, serif; letter-spacing: 1px; text-transform: uppercase; }
.invitation-nuit h2 { margin: 17px 0 24px; }
.invitation-nuit > p:not(.surtitre) { max-width: 590px; margin: 0 auto 26px; color: var(--secondaire); }
.lien-dore { display: inline-block; color: var(--or); font-size: 14px; border-bottom: 1px solid #9c714e88; padding-bottom: 5px; }
.lien-dore span { margin-left: 15px; }
.lien-dore:hover { color: #ffe4b2; border-color: currentColor; }
.preparer { padding-block: 100px; display: grid; grid-template-columns: 1fr 1.2fr; gap: 9%; }
.titre-preparer h2 { font-size: clamp(30px, 3vw, 41px); margin: 17px 0 20px; }
.titre-preparer > p:not(.surtitre) { max-width: 300px; color: var(--secondaire); margin-bottom: 25px; }
.questions { border-top: 1px solid var(--trait); }
.questions details { border-bottom: 1px solid var(--trait); }
.questions summary { display: flex; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; padding: 24px 0; font-size: 17px; line-height: 1.5; }
.questions summary::-webkit-details-marker { display: none; }
.questions summary span { color: var(--or); font-size: 22px; line-height: 1; transition: transform .2s; }
.questions details[open] summary span { transform: rotate(45deg); }
.questions details > p { padding: 0 25px 24px 0; color: var(--secondaire); font-size: 15px; }
.questions a { color: var(--or); text-decoration: underline; }
.dernier-appel { padding: 87px 24px 95px; text-align: center; background: linear-gradient(#100b08b5, #100b08dc), url('/img/evenements/halloween/manoir.webp') center 65% / cover; border-block: 1px solid var(--trait); }
.dernier-appel h2 { font: 77px/.95 'Enchanted', Georgia, serif; margin: 24px 0; }
.dernier-appel h2 span { color: var(--or); }
.dernier-appel > p:not(.surtitre) { color: #d1c0a5; }
.dernier-appel .bouton { margin-top: 28px; }
.dernier-appel .precision { font-size: 12px; margin-top: 15px; }
.pied-page { padding: 37px 24px; text-align: center; }
.signature { color: var(--or); font: 32px 'Enchanted', Georgia, serif; }
.pied-page > p { margin-top: 10px; color: var(--secondaire); font-size: 12px; }
.pied-page nav { display: flex; flex-wrap: wrap; gap: 12px 26px; justify-content: center; margin-top: 20px; color: #c7b79e; font: 10px/1.7 Arial, sans-serif; }
.pied-page nav a:hover { text-decoration: underline; }
@media (min-width: 1700px) {
    .contenu-ouverture { margin-left: calc((100vw - 1600px) / 2); padding-left: 30px; }
}
@media (max-width: 1000px) {
    .contenu-ouverture { width: 65%; padding-left: 4vw; padding-right: 0; }
    .chapitres { gap: 22px; }
    .texte-chapitre h3 { font-size: 22px; }
    .preparer { gap: 6%; }
}
@media (max-width: 700px) {
    .entete { padding: 18px 5%; }
    .marque { gap: 8px; }
    .marque img { width: 33px; height: 44px; }
    .marque > span { font-size: 24px; }
    .marque small { font-size: 7px; letter-spacing: 1.4px; }
    .entete nav { gap: 0; }
    .lien-experience { display: none; }
    .bouton-fin { padding: 10px 12px; font-size: 9px; letter-spacing: .8px; gap: 10px; }
    .ouverture { min-height: 850px; min-height: max(810px, 100svh); align-items: flex-start; }
    .decor-ouverture { object-position: 68% center; }
    .ouverture::before { background: linear-gradient(180deg, #0b07094d, #100b0877 20%, #100b086b 65%, #100b08), linear-gradient(90deg, #100b0866, #100b081a); }
    .contenu-ouverture { width: 100%; max-width: none; padding: 158px 20px 105px; }
    .contenu-ouverture > .surtitre { font-size: 8px; letter-spacing: 2px; margin-bottom: 25px; }
    .invitation { font-size: 31px; }
    .mot-halloween { font-size: clamp(95px, 23vw, 155px); }
    .au-manoir { font-size: 62px; }
    .ornement { max-width: 250px; margin-top: 25px; }
    .trilogie { font-size: 12px; letter-spacing: 1px; }
    .accroche { font-size: 16px; margin-block: 18px 25px; }
    .lieu { font-size: 8px; }
    .defiler { bottom: 38px; }
    .mention-ambiance { bottom: 11px; right: 12px; font-size: 8px; }
    .reperes { gap: 9px; padding: 24px 12px; justify-content: space-around; }
    .reperes strong { font-size: 13px; }
    .reperes p > span { font-size: 10px; max-width: 90px; line-height: 1.5; margin: 5px auto 0; }
    .etoile { font-size: 8px; }
    .experience { padding-block: 65px 55px; }
    .surtitre { font-size: 9px; letter-spacing: 1.8px; }
    .introduction { margin-bottom: 36px; }
    .introduction > p:last-child { font-size: 15px; }
    .chapitres { grid-template-columns: 1fr; gap: 35px; }
    .image-chapitre { aspect-ratio: 2.15; }
    .texte-chapitre { padding-top: 19px; }
    .texte-chapitre h3 { font-size: 27px; }
    .legende-visuels { text-align: left; }
    .invitation-nuit { padding-block: 60px; }
    .invitation-nuit > p:not(.surtitre) { font-size: 15px; }
    .preparer { padding-block: 65px; grid-template-columns: 1fr; gap: 34px; }
    .questions summary { font-size: 16px; padding-block: 22px; }
    .dernier-appel { padding-block: 65px; }
    .dernier-appel h2 { font-size: 63px; }
    .dernier-appel > p:not(.surtitre) { font-size: 14px; }
    .dernier-appel .precision { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; }
}
