/* Composition fidèle au kit ; composants interactifs et gestion. */
:root{--line:#66504865;--muted:#bbb0a9}body{font-size:15px;line-height:1.6}body::after{opacity:.12}button,select,textarea{font:inherit}button{color:inherit}a:hover{color:#ee777d}button:disabled{opacity:.45;cursor:not-allowed}.site-header{min-height:92px;padding:14px 5%;gap:32px}.brand img{width:230px;height:auto}.top-nav{gap:30px}.top-nav a{font-size:19px;padding:8px 0;position:relative}.top-nav a.active:after{position:absolute;content:'';height:1px;background:#bf2631;bottom:0;left:0;right:0;box-shadow:0 0 10px #f22}.header-note{font:10px/1.6 var(--serif);letter-spacing:.25em;text-transform:uppercase;border-left:1px solid #8d2929;padding-left:20px;color:#b4aaa4}.hero{min-height:775px;height:calc(100svh - 20px);max-height:1050px;background-position:center top}.hero-inner{width:min(780px,65%);padding:145px 0 110px 5.8%}.hero::before{background:linear-gradient(90deg,#030506d9,transparent 78%),linear-gradient(0deg,#07090b,transparent 24%)}.hero h1{font-size:clamp(46px,5.5vw,84px);line-height:1.1;letter-spacing:-.03em}.hero h1>span{display:block}.hero h1 .red{font-size:.64em;color:#bd4a45;line-height:1.25;letter-spacing:-.04em}.tagline{font-size:clamp(21px,1.8vw,28px);letter-spacing:.11em;white-space:normal}.story{font-size:22px;line-height:1.5}.eyebrow{font-size:11px;letter-spacing:.24em}.age-warning{display:flex;align-items:center;gap:12px;margin:25px 0 30px;border-block:1px solid #8f2d2d80;width:max-content;max-width:100%;padding:5px 12px 5px 0;color:#e46363;font-family:var(--serif);letter-spacing:.12em;font-size:13px}.age-warning b{font:700 19px var(--sans);border:2px solid #a02c32;border-radius:50%;padding:5px;letter-spacing:-1px}.age-warning small{display:block;color:#bcb2aa;font-size:10px;letter-spacing:.06em}.btn{font-size:16px;min-height:49px;padding:12px 20px;text-transform:none}.btn span{margin-left:12px;font-size:22px}.hero-caption{position:absolute;bottom:22px;right:5%;font:10px var(--serif);letter-spacing:.3em;text-transform:uppercase;color:#bbb}.section.intro{padding-top:10px;padding-bottom:55px}.separator{text-align:center;letter-spacing:.3em;text-transform:uppercase;font:11px var(--serif);margin:12px 0 28px}.features{gap:16px}.feature{min-height:215px;padding:25px 22px}.feature h2{font:600 24px/1.2 var(--serif);text-align:left;margin:25px 0 12px;letter-spacing:.05em}.feature p{font-size:19px}.feature .num{font-size:10px;letter-spacing:.15em;color:#d2aaa1}.feature:nth-child(1){background-image:linear-gradient(#10101280,#090b0ecf),url('../img/carte-ouija.webp')}.story-section{padding-block:80px}.story-section .text-link{display:inline-block;margin-top:25px}.text-link{color:#e1a098;border-bottom:1px solid #7e3b36;padding-bottom:5px}.center{text-align:center}.skip-link{position:fixed;top:-100px;left:20px;background:#eee;color:#111;padding:10px;z-index:100}.skip-link:focus{top:10px}.menu-button{display:none}.footer{font-size:17px}.footer p{color:#c8b5aa;margin:8px}.footer div{display:flex;justify-content:center;gap:25px;margin:22px 0}.footer small{font:11px var(--sans);color:#b4aaa5}body:not(:has(.hero)) .site-header{position:relative;background:#07090b}body:not(:has(.hero)) main{min-height:70vh;padding-bottom:70px}.page-heading{padding:60px 24px 42px;text-align:center}.page-heading h1{font:500 clamp(36px,4.4vw,62px)/1.18 var(--display);margin:12px 0 20px}.page-heading h1 em{color:#ba5250;font-style:normal}.page-heading .lead{font:24px var(--serif);color:#c5b6ad;max-width:700px;margin:auto}.history-page main{background:linear-gradient(#06080999,#07090bf5 900px),url('../img/fond-histoire-couloir.webp') top center/100% auto no-repeat}.reservation-page main{background:linear-gradient(#07090bdd,#07090bf5),url('../img/fond-reservation-chambre.webp') center top/cover fixed}.admin-page main{background:linear-gradient(#07090be8,#07090bf8),url('../img/fond-admin-rituel.webp') center top/cover}.narrow{max-width:850px;margin:0 auto}.narrative{padding:10px 25px 45px;font:24px/1.8 var(--serif)}.dropcap:first-letter{float:left;font:70px/1 var(--display);padding:12px 12px 0 0;color:#bd5252}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:40px -60px}.archive-grid figure{margin:0;background:#111;border:1px solid var(--line);padding:8px}.archive-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(.75);transition:filter .4s}.archive-grid img:hover{filter:saturate(1)}figcaption{font:10px var(--sans);letter-spacing:.12em;color:#d1b7a8;padding:12px 4px}blockquote{font-style:italic;text-align:center;color:#d5a796;border-block:1px solid var(--line);padding:25px;margin:35px 0}.panel{border:1px solid var(--line);background:#0e1013ed;padding:30px;margin-bottom:22px;box-shadow:0 16px 55px #0003}.panel h2{font:600 29px var(--serif);margin:0 0 20px}.panel h3{font:600 23px var(--serif)}.panel p{color:#c2b6b0}.panel p.eyebrow{color:#c9988e}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1120px;margin:0 auto;padding:0 24px}.info-grid .panel{margin:0}.contact-panel{max-width:700px}dt{font-size:12px;color:#c6968f;margin-top:18px}dd{margin:5px 0}label{display:block;font-size:13px;color:#dfd5ce;margin:14px 0}input,select,textarea{width:100%;padding:11px 12px;min-height:46px;background:#17191c;border:1px solid #66585c;border-radius:2px;color:#f0e5dc;display:block;margin-top:7px}textarea{min-height:110px;resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #e85b5d;outline-offset:3px}.check{display:flex;gap:12px;align-items:flex-start;font-size:13px}.check input{width:18px;min-height:18px;flex:0 0 18px;margin:3px 0 0;accent-color:#ad2935}.inline{display:inline-flex;margin-right:15px}fieldset{border:1px solid var(--line);padding:12px;margin:20px 0}legend{font-size:13px;color:#c7b0a3}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}hr{border:0;border-top:1px solid var(--line);margin:30px 0}.privacy{font-size:12px;line-height:1.7;color:#bcb1ac}.privacy a,details a{text-decoration:underline}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.muted{color:#b5aaa5;font-size:13px}details{border-top:1px solid var(--line);margin:22px 0;padding-top:15px}summary{cursor:pointer;color:#d4b5a8}.booking-shell{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;max-width:1140px;padding:0 24px;margin:auto}.steps{grid-column:1/-1;display:flex;justify-content:center;list-style:none;gap:60px;padding:0;margin:0 0 12px}.steps li{color:#b4a7a1;font:21px var(--serif)}.steps span{font:12px var(--sans);margin-left:8px}.steps li[aria-current]{color:#ee8c83}.booking-aside img{width:100%;aspect-ratio:1;object-fit:cover;opacity:.7}.booking-aside{align-self:start;border:1px solid var(--line);padding:15px;background:#0c0d10}.booking-aside p{font:italic 25px var(--serif);margin:18px 0}.booking-aside ul{padding-left:19px;font-size:12px;line-height:2.6;color:#c2b4ab}.booking-aside .text-link{font-size:12px}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:20px}.month-nav button,.admin-toolbar button,.calendar button{background:#15171b;border:1px solid #55464a;cursor:pointer;padding:10px;min-height:44px}.month-nav h3{text-transform:capitalize;font-size:24px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar .weekday{text-align:center;font-size:11px;color:#b9a69d}.calendar button{padding:8px 2px;line-height:1.35;position:relative;min-height:48px}.calendar small{display:block;font-size:9px;color:#c2b0a8}.calendar button.open{border-color:#975255;background:#34171e}.calendar button[aria-pressed=true],.slot[aria-pressed=true]{border:1px solid #ff8c8c;background:#6a1621;box-shadow:0 0 15px #bd253333}.legend{font-size:11px;color:#bcaea5}.dot{display:inline-block;width:7px;height:7px;background:#c96670;border-radius:50%}.dot.closed{background:#7e7878}.slots{margin:15px 0 25px}.slot{min-height:46px;border-radius:2px}.booking-step .actions{margin-top:24px}#booking-message,#admin-message{grid-column:1/-1}#booking-message:not(:empty),#admin-message:not(:empty){padding:15px 20px;border:1px solid #d17868;background:#321b1a;color:#ffddd2;margin:0 auto 20px;max-width:1100px}#admin-app{max-width:1250px;margin:auto;padding:0 24px}.admin-toolbar{display:flex;justify-content:space-between;gap:15px;margin-bottom:25px}.admin-toolbar nav{display:flex;flex-wrap:wrap;gap:8px}.admin-toolbar button[aria-pressed=true]{border-color:#d27677;background:#401b22}.small{min-height:42px;padding:8px 14px;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{padding:20px;background:#151317;border:1px solid var(--line);font-size:12px;color:#cab8ae}.stat strong{display:block;font:36px var(--serif);color:#f0ded0;margin-top:10px}.filter-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-bottom:24px}.filter-bar label{flex:1;min-width:140px}.filter-bar .btn{margin-bottom:14px}#admin-calendar{max-width:700px}#admin-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-height:500px;overflow:auto}.slot-card,.reservation-card{padding:16px;border:1px solid var(--line);background:#15151a}.slot-card p{font-size:13px;margin:6px 0}.slot-card .actions{gap:5px;margin-top:10px}.reservation-card{margin-top:15px}.reservation-card h3{margin:0 0 10px}.reservation-card .data-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reservation-card p{margin:3px 0;font-size:13px;overflow-wrap:anywhere}.reservation-card .actions{margin-top:14px}.badge{font-size:11px;background:#3c2226;color:#efb9b9;padding:3px 8px;border-radius:2px}.danger{border-color:#c44;color:#ffb4ae}dialog{background:#111318;color:var(--bone);border:1px solid #805451;max-width:620px;width:calc(100% - 30px);padding:30px;max-height:90svh;overflow:auto}dialog::backdrop{background:#000b}#dialog-error{color:#ffc4b9}#confirmation dl{margin-bottom:30px}[hidden]{display:none!important}
@media(min-width:1600px){.hero-inner{width:900px}.hero h1{font-size:100px}.hero h1 .red{font-size:.62em}}
@media(max-width:1100px){.header-note{display:none}.top-nav{gap:22px}.hero-inner{width:70%}.hero h1{font-size:64px}.hero .btn{font-size:15px;padding-inline:15px}.features{grid-template-columns:repeat(2,1fr)}.booking-shell{grid-template-columns:minmax(0,1fr) 230px}}
@media(max-width:860px){.site-header{flex-direction:row;flex-wrap:wrap;min-height:80px;padding:15px 22px;gap:0}.brand img{width:210px}.menu-button{display:flex;gap:15px;background:transparent;border:1px solid #635052;padding:8px 12px;min-height:44px;align-items:center}.top-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;padding-top:15px;gap:0}.top-nav.expanded{display:flex}.top-nav a{padding:12px}.hero{height:auto;min-height:900px;max-height:none;background-position:center top;background-size:auto 900px;align-items:end}.hero-inner{width:100%;max-width:100%;padding:360px 24px 85px}.hero h1{font-size:clamp(43px,8vw,64px)}.hero::before{background:linear-gradient(0deg,#07090b 1%,#07090bf2 35%,#07090b11 85%)}.hero .eyebrow{font-size:10px}.hero .story{font-size:21px;max-width:650px}.hero-caption{left:24px;right:24px;font-size:8px;text-align:center}.booking-shell{grid-template-columns:1fr;max-width:760px}.booking-aside{display:none}.archive-grid{margin:30px 0}.steps{gap:25px}.page-heading{padding-top:40px}.stats{grid-template-columns:repeat(2,1fr)}#admin-slots{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.features{grid-template-columns:1fr 1fr;gap:9px}.feature{padding:18px 13px;min-height:210px}.feature h2{font-size:22px;margin-top:20px}.feature p{font-size:17px}.feature .num{font-size:8px}.section.intro{padding-inline:15px}.separator{font-size:9px;line-height:1.8;letter-spacing:.16em}.hero-inner{padding-top:345px}.hero{min-height:990px;background-size:auto 820px}.hero h1{font-size:49px}.hero h1 .red{font-size:.6em;line-height:1.45}.tagline{font-size:22px;letter-spacing:.03em}.hero .actions .btn{width:100%;font-size:17px}.hero .actions{gap:10px}.age-warning{font-size:11px;letter-spacing:.07em}.age-warning small{font-size:9px}.info-grid{grid-template-columns:1fr;padding:0 16px}.panel{padding:22px 18px}.contact-panel,.narrow.panel{margin-inline:16px}.booking-shell{padding:0 14px}.steps{gap:18px}.steps li{font-size:18px}.steps span{font-size:10px;margin-left:3px}.form-grid{grid-template-columns:1fr}.calendar{gap:4px}.calendar button{font-size:12px;min-height:44px}.calendar small{font-size:8px}.booking-step h2{font-size:25px}.archive-grid{grid-template-columns:1fr}.archive-grid figure{max-width:400px}.narrative{font-size:22px}.page-heading h1{font-size:35px}.page-heading .lead{font-size:22px}.footer div{flex-direction:column;gap:12px}.admin-toolbar{flex-direction:column}.admin-toolbar nav{display:grid}.stats{gap:10px}.stat{padding:14px}#admin-app{padding:0 14px}#admin-slots{grid-template-columns:1fr}.reservation-card .data-grid{grid-template-columns:1fr}.filter-bar{gap:0 12px}.filter-bar label{min-width:120px}.btn{font-size:14px}.header-note{display:none}}
@media print{body,main,.panel{background:white!important;color:black!important;box-shadow:none!important}body::after,.site-header,.footer,.actions,.skip-link{display:none!important}.page-heading,.panel{padding:15px!important;margin:0!important;border-color:#aaa!important}p,dt,dd,h1,h2,.eyebrow{color:black!important}body:not(:has(.hero)) main{padding:0!important;min-height:0!important}}
[data-setting="practical"],[data-setting="terms"]{white-space:pre-line}.hero h1 .red{animation:eerie-flicker 17s linear infinite,subtle-glitch 23s linear infinite}
