:root{--ink:#0f0f0f;--green:#0a0a0a;--green2:#1a1a1a;--mint:#e8dfc8;--cream:#f7f4ed;--paper:#fafafa;--gold:#C9A017;--coral:#b85a46;--muted:#777777;--line:#e0ddd5;--serif:"Playfair Display",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.6 "DM Sans",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.site-header{height:86px;padding:0 clamp(24px,6vw,96px);display:flex;align-items:center;justify-content:space-between;background:rgba(250,250,250,.96);border-bottom:1px solid #e5e3dc;position:sticky;top:0;z-index:40;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;line-height:1}.brand-mark{width:38px;height:46px;border:1px solid var(--green);border-radius:50% 50% 45% 45%;display:grid;place-items:center;font:italic 28px var(--serif)}.brand b,.brand small{display:block}.brand b{font:600 15px var(--serif);letter-spacing:1.4px}.brand small{margin-top:6px;font-size:8px;letter-spacing:3px}.site-header nav{display:flex;gap:38px}.nav-link,.text-btn{border:0;background:none;color:var(--ink);font-weight:600}.nav-link{padding:30px 0;position:relative}.nav-link.active:after{content:"";position:absolute;bottom:20px;left:0;right:0;height:2px;background:var(--gold)}.head-actions{display:flex;gap:12px}.icon-btn{width:42px;height:42px;border:0;background:none;font-size:26px}.outline-btn{height:42px;padding:0 18px;border:1px solid var(--green);background:transparent;color:var(--ink);font-weight:700}.page{display:none}.page.active{display:block}.hero{height:calc(100vh - 86px);min-height:670px;max-height:900px;position:relative;overflow:hidden;background:radial-gradient(circle at 69% 40%,#e8dfc8 0,transparent 27%),linear-gradient(108deg,#f7f4ed 0 53%,#e8dfc8 53% 100%);padding:clamp(70px,10vh,120px) clamp(24px,8vw,130px)}.hero-noise{position:absolute;inset:0;opacity:.28;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E")}.hero-copy{position:relative;z-index:3;max-width:650px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.4px}.eyebrow i{display:inline-block;width:27px;height:1px;background:var(--gold);vertical-align:middle;margin-right:12px}.hero h1,.inner-head h1,.admin-top h1{font:600 clamp(62px,7vw,108px)/.95 var(--serif);letter-spacing:-3px;margin:38px 0 28px}.hero h1 em,.inner-head h1 em,.admin-top h1 em,h2 em{font-weight:600;color:var(--gold)}.hero-text{font-size:17px;color:#555555}.hero-actions{display:flex;gap:26px;align-items:center;margin-top:38px}.primary-btn,.cream-btn{min-height:52px;padding:0 24px;border:0;background:var(--green);color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:space-between;gap:28px}.primary-btn span,.cream-btn span{font-size:20px}.text-btn{padding:12px 0;border-bottom:1px solid #a8aea9}.next-event{margin-top:56px;display:flex;align-items:center;gap:13px}.next-event>span{font-size:9px;letter-spacing:1.7px;writing-mode:vertical-rl;transform:rotate(180deg)}.next-event strong{font:54px/1 var(--serif)}.next-event b{font-size:12px;line-height:1.2}.next-event b small{font-weight:400}.next-event>i{height:46px;width:1px;background:#888888;margin:0 5px}.next-event p{font-weight:600;line-height:1.3}.next-event p small{font-size:12px;color:var(--muted)}.hero-art{position:absolute;right:3vw;top:7%;width:48%;height:86%}.arch{position:absolute;bottom:-18%;border-radius:50% 50% 0 0;filter:drop-shadow(0 25px 30px #0f0f0f30)}.arch-back{width:72%;height:88%;right:0;background:#222222}.arch-mid{width:69%;height:82%;right:3%;bottom:-13%;background:#d0aa72}.arch-front{width:62%;height:77%;right:6%;bottom:-8%;background:linear-gradient(145deg,#1c1c1c,#0f0f0f);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#dfc18e}.arch-front:after{content:"";position:absolute;inset:11%;border:1px solid #dfc18e80;border-radius:50% 50% 0 0}.arch-front span{font:italic 100px/.8 var(--serif)}.arch-front b{text-align:center;font:15px var(--serif);letter-spacing:5px;margin-top:25px}.spark{position:absolute;color:#fff;font-size:33px}.s1{top:8%;right:8%}.s2{top:26%;left:11%;font-size:18px}.orb{position:absolute;width:25px;height:25px;border-radius:50%;background:#C9A017;top:15%;left:21%}.scroll-cue{position:absolute;bottom:25px;left:50%;border:0;background:none;font-size:9px;letter-spacing:2px}.scroll-cue span{display:block;font-size:20px}.section{padding:110px clamp(24px,8vw,130px)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.section-heading h2,.organize-band h2{font:600 clamp(44px,5vw,68px)/1.05 var(--serif);margin:15px 0}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.event-card{border:1px solid var(--line);background:#fff;transition:.25s;overflow:hidden}.event-card:hover{transform:translateY(-7px);box-shadow:0 20px 50px #00000018}.event-poster{height:330px;position:relative;padding:22px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.event-poster:after{content:"V";position:absolute;font:italic 240px/.7 var(--serif);right:-25px;bottom:-40px;opacity:.11}.event-poster.gold{background:radial-gradient(circle at 80% 15%,#e1bd7c 0 1%,transparent 22%),linear-gradient(145deg,#1a1a1a,#0a0a0a)}.event-poster.coral{background:radial-gradient(circle at 15% 85%,#e1956e,transparent 35%),linear-gradient(145deg,#2c1630,#913f4c)}.event-poster.violet{background:radial-gradient(circle,#b184c1 0 1%,transparent 30%),linear-gradient(135deg,#2d153e,#11152f)}.event-poster.mint{background:linear-gradient(145deg,#2a2a2a,#111111)}.poster-date{align-self:end;text-align:center;border:1px solid #ffffff70;padding:8px 12px}.poster-date b{display:block;font:35px/1 var(--serif)}.poster-copy{z-index:2}.poster-copy small{letter-spacing:3px}.poster-copy h3{font:600 34px/1.05 var(--serif);margin:10px 0}.event-info{padding:20px}.event-info p{margin:0 0 18px;color:var(--muted)}.event-info-row{display:flex;justify-content:space-between;align-items:center}.event-info-row b{font:22px var(--serif)}.small-btn{border:0;background:var(--cream);color:var(--ink);padding:11px 16px;font-weight:700}.organize-band{padding:90px clamp(24px,8vw,130px);display:grid;grid-template-columns:1.4fr 1fr;gap:90px;background:var(--green);color:#fff}.organize-band h2 em{color:#e8d89a}.organize-band>div:last-child{align-self:center;max-width:440px}.organize-band p{color:#cccccc}.cream-btn{background:var(--cream);color:var(--ink);margin-top:20px}.inner-page{min-height:calc(100vh - 86px);padding:70px clamp(24px,7vw,110px) 100px;background:#f5f2ea}.inner-head{text-align:center;max-width:850px;margin:0 auto 55px}.inner-head h1{font-size:clamp(48px,6vw,76px);margin:22px 0 16px}.inner-head>p:last-child{color:var(--muted)}.inner-head.compact{margin-bottom:42px}.calendar-layout{display:grid;grid-template-columns:minmax(600px,1fr) 330px;gap:28px;max-width:1200px;margin:auto}.calendar-card,.card,.calendar-aside>div,.admin-panel{background:#fff;border:1px solid var(--line)}.calendar-card{padding:30px}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.calendar-nav h2{font:28px var(--serif);margin:0}.calendar-nav button{border:1px solid var(--line);background:#fff;width:40px;height:40px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{font-size:10px;letter-spacing:1.5px;text-align:center;padding:10px;color:var(--muted)}.cal-day{min-height:85px;border:solid var(--line);border-width:1px 1px 0 0;background:#fff;padding:10px;text-align:left;position:relative;color:#a6aaa7}.cal-day:nth-child(7n+1){border-left-width:1px}.cal-day:nth-last-child(-n+7){border-bottom-width:1px}.cal-day.saturday{color:var(--ink);font-weight:700}.cal-day.available{background:#fafef8}.cal-day.available:before,.cal-day.pending:before,.cal-day.busy:before{content:"";position:absolute;top:10px;right:10px;width:12px;height:12px;border-radius:50%;box-shadow:0 0 10px currentColor}.cal-day.available:before{background:#39ff14;color:#39ff14}.cal-day.available:after{content:"LIBRE";position:absolute;bottom:8px;left:8px;font-size:8px;letter-spacing:1px;color:#25a10f}.cal-day.busy{background:#fff2f1;color:#8f2d27}.cal-day.busy:before{background:#ff1f1f;color:#ff1f1f}.cal-day.pending{background:#fffbea;color:#8b672e}.cal-day.pending:before{background:#ffd400;color:#ffd400}.cal-day.selected{box-shadow:inset 0 0 0 3px var(--gold)}
.cal-day .cal-thumb{display:block;width:100%;height:42px;object-fit:contain;object-position:center;margin-top:5px;border-radius:2px;background:#111;cursor:zoom-in}
.cal-day.has-event{cursor:pointer}
.cal-day.has-event:hover{box-shadow:inset 0 0 0 2px var(--gold);transform:translateY(-1px)}
.cal-day.has-event small{font-weight:700}.calendar-aside{display:flex;flex-direction:column;gap:20px}.calendar-aside>div{padding:26px}.legend h3{font:24px var(--serif);margin-top:0}.legend p{font-size:13px}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:10px}.available-dot{background:#39ff14;box-shadow:0 0 8px #39ff14}.event-dot{background:#ff1f1f;box-shadow:0 0 8px #ff1f1f}.pending-dot{background:#ffd400;box-shadow:0 0 8px #ffd400}.selection-card{background:var(--green)!important;color:#fff!important;border:0!important}.selection-card span{font-size:9px;letter-spacing:1.8px}.selection-card h3{font:30px/1.1 var(--serif)}.selection-card p{color:#cccccc}.selection-card .primary-btn{width:100%;background:var(--cream);color:var(--ink);padding:0 16px}.form-layout{display:grid;grid-template-columns:minmax(600px,1fr) 350px;gap:25px;max-width:1160px;margin:auto}.card{padding:32px}.step-title{display:flex;gap:18px;border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:25px}.step-title>span{font:42px var(--serif);color:var(--gold)}.step-title h3,.step-title p{margin:0}.step-title h3{font:28px var(--serif)}.step-title p{color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700}input,select,textarea{width:100%;border:1px solid #d8d9d3;background:#fafafa;padding:13px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #1a1a1a15}textarea{resize:vertical}.check{flex-direction:row;align-items:center;margin:20px 0}.check input{width:18px}.submit-btn{width:100%}.process ol{list-style:none;padding:0;counter-reset:steps}.process li{padding:0 0 27px 45px;position:relative;border-left:1px solid #dddddd;margin-left:13px}.process li:before{counter-increment:steps;content:counter(steps);position:absolute;left:-14px;top:0;width:27px;height:27px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:10px}.process li b,.process li span{display:block}.process li span{color:var(--muted);font-size:13px}.help{background:var(--cream);padding:22px}.help span,.help b,.help small{display:block}.help span{font-size:9px;letter-spacing:1.5px}.help b{font:25px var(--serif)}.admin-page{background:#f5f2ea}.admin-top{display:flex;justify-content:space-between;align-items:end}.admin-top h1{font-size:55px;margin:5px 0 20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0 30px}.stat-card{background:#fff;border:1px solid var(--line);padding:22px}.stat-card span{font-size:10px;letter-spacing:1.4px;color:var(--muted)}.stat-card b{display:block;font:38px var(--serif);margin-top:8px}.stat-card small{color:#C9A017}.admin-tabs{display:flex;border-bottom:1px solid #ccd1cc;gap:24px}.admin-tabs button{border:0;background:none;padding:15px 5px;color:var(--muted);font-weight:700}.admin-tabs button.active{color:var(--ink);border-bottom:3px solid var(--gold)}.admin-tabs b{background:var(--coral);color:#fff;border-radius:12px;padding:2px 7px;font-size:10px}.admin-panel{display:none;margin-top:20px;padding:28px}.admin-panel.active{display:block}.table-head{display:flex;justify-content:space-between}.table-head h2{font:30px var(--serif);margin:0}.table-head p{color:var(--muted);margin-top:2px}.data-row{display:grid;grid-template-columns:75px 1.5fr 1fr 1fr auto;gap:18px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.date-box{text-align:center;background:var(--cream);padding:8px}.date-box b{display:block;font:25px var(--serif)}.date-box small{font-size:9px}.row-main b,.row-main small{display:block}.row-main small,.data-row>span{color:var(--muted);font-size:12px}.status{display:inline-block!important;width:max-content;padding:4px 9px;border-radius:20px;font-size:9px!important;text-transform:uppercase;letter-spacing:1px}.status.pending,.status.waiting{background:#f5ead5;color:#916b2f}.status.approved,.status.signed{background:#e1f0e5;color:#326b48}.status.rejected{background:#f5dfdc;color:#91483c}.row-actions{display:flex;gap:7px}.row-actions button{border:1px solid var(--line);background:#fff;padding:9px}.row-actions .approve{background:var(--green);color:#fff;border-color:var(--green)}.empty{text-align:center;color:var(--muted);padding:40px}.promo-layout{display:grid;grid-template-columns:350px 1fr;gap:20px}.promo-layout .card{padding:25px}.promo-layout h2,.mini-form h2{font:28px var(--serif);margin-top:0}.mini-form{display:flex;flex-direction:column;gap:15px}.promo-item{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px}.promo-item b{font-family:monospace;font-size:17px}.modal{position:fixed;inset:0;background:#000000cc;display:none;place-items:center;z-index:100;padding:20px}.modal.open{display:grid}.modal-box{background:var(--paper);width:min(520px,100%);padding:38px;position:relative;max-height:90vh;overflow:auto}.modal-box h2{font:38px/1.1 var(--serif)}.modal-close{position:absolute;right:17px;top:14px;border:0;background:none;font-size:30px}.modal form{display:flex;flex-direction:column;gap:16px}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.order-total{display:flex;justify-content:space-between;padding:16px 0;border-top:1px solid var(--line)}.order-total b{font:27px var(--serif)}.toast{position:fixed;bottom:25px;right:25px;background:var(--ink);color:#fff;padding:14px 20px;display:flex;gap:12px;align-items:center;transform:translateY(130px);transition:.3s;z-index:120;box-shadow:0 10px 40px #0004}.toast.show{transform:none}.toast span{color:#C9A850}.toast p{margin:0}footer{padding:50px clamp(24px,7vw,110px);background:#0a0a0a;color:#dddddd;display:flex;align-items:center;justify-content:space-between}footer .brand{color:#fff}footer>small{color:#999999}
@media(max-width:900px){.site-header{height:70px;padding:0 18px}.site-header nav{display:none}.brand b{font-size:12px}.hero{height:auto;min-height:780px;padding:70px 25px;background:linear-gradient(160deg,#f7f4ed 0 62%,#e8dfc8 62%)}.hero h1{font-size:63px}.hero-art{opacity:.28;right:-35%;top:30%;width:100%}.event-grid,.organize-band,.calendar-layout,.form-layout,.promo-layout{grid-template-columns:1fr}.section{padding:70px 20px}.event-grid{gap:16px}.organize-band{padding:60px 25px;gap:20px}.calendar-layout,.form-layout{max-width:100%}.calendar-card{padding:12px}.cal-day{min-height:58px;padding:5px}.cal-day.available:after{display:none}.calendar-aside{order:-1}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.stats{grid-template-columns:1fr 1fr}.admin-page{padding:40px 15px}.admin-tabs{overflow:auto}.data-row{grid-template-columns:60px 1fr auto}.data-row>span{display:none}.row-actions{grid-column:2/-1}.section-heading{align-items:start;gap:20px}.section-heading>.text-btn{display:none}footer{flex-direction:column;gap:25px;text-align:center}.head-actions .icon-btn{display:none}}
/* CARROUSEL */
.carousel-section{position:relative;overflow:hidden;background:#0a0a0a;height:clamp(420px,60vh,680px)}
.carousel-track{position:relative;width:100%;height:100%}
.carousel-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
.carousel-slide.active{opacity:1;pointer-events:auto}
.carousel-poster{width:100%;height:100%;position:relative;display:flex;align-items:flex-end}
.carousel-poster.gold{background:radial-gradient(circle at 80% 15%,#e1bd7c 0 1%,transparent 22%),linear-gradient(145deg,#1a1a1a,#0a0a0a)}
.carousel-poster.coral{background:radial-gradient(circle at 15% 85%,#e1956e,transparent 35%),linear-gradient(145deg,#2c1630,#913f4c)}
.carousel-poster.violet{background:radial-gradient(circle,#b184c1 0 1%,transparent 30%),linear-gradient(135deg,#2d153e,#11152f)}
.carousel-poster.mint{background:linear-gradient(145deg,#2a2a2a,#111111)}
.carousel-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.3) 50%,transparent 100%);pointer-events:none}
.carousel-badge{position:absolute;top:28px;left:32px;font:700 12px/1 "DM Sans",sans-serif;letter-spacing:2px;color:#fff;background:rgba(0,0,0,.45);padding:8px 14px;backdrop-filter:blur(6px)}
.cinema-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;border:3px solid rgba(255,255,255,.8);background:rgba(0,0,0,.45);color:#fff;font-size:26px;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(4px);transition:.25s;padding-left:4px}
.cinema-play-btn:hover{background:rgba(201,160,23,.85);border-color:#C9A017;transform:translate(-50%,-50%) scale(1.08)}
.carousel-info{position:relative;z-index:2;padding:clamp(20px,3vw,48px) clamp(24px,5vw,80px);color:#fff;max-width:780px}
.carousel-info small{font-size:11px;letter-spacing:2.5px;color:#bbbbbb;font-weight:700}
.carousel-info h2{font:600 clamp(32px,5vw,72px)/.95 "Playfair Display",Georgia,serif;margin:10px 0 14px;letter-spacing:-1px}
.carousel-info p{color:#cccccc;margin:0 0 20px}
.carousel-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cinema-play-btn-text{border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.08);color:#fff;padding:12px 22px;cursor:pointer;font-weight:600;font-size:14px;backdrop-filter:blur(4px);transition:.2s}
.cinema-play-btn-text:hover{background:rgba(201,160,23,.2);border-color:#C9A017}
.carousel-controls{position:absolute;bottom:22px;right:32px;display:flex;align-items:center;gap:14px;z-index:10}
.carousel-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.4);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(4px);transition:.2s}
.carousel-btn:hover{background:rgba(201,160,23,.4);border-color:#C9A017}
.carousel-dots{display:flex;gap:8px}
.carousel-dot{width:8px;height:8px;border-radius:50%;border:0;background:rgba(255,255,255,.3);cursor:pointer;padding:0;transition:.3s}
.carousel-dot.active{background:#C9A017;transform:scale(1.3)}
@media(max-width:600px){.carousel-section{height:clamp(360px,75vw,500px)}.carousel-info h2{font-size:28px}.cinema-play-btn{width:56px;height:56px;font-size:20px}.carousel-controls{right:16px;bottom:16px}}
/* SALLE DE CINÉMA */
.cinema-room{position:fixed;inset:0;z-index:200;background:#000;display:none;flex-direction:column;align-items:center;justify-content:center}
.cinema-room.open{display:flex}
.cinema-room::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0,rgba(255,255,255,.015) 1px,transparent 1px,transparent 60px),repeating-linear-gradient(rgba(255,255,255,.015) 0,rgba(255,255,255,.015) 1px,transparent 1px,transparent 60px),radial-gradient(ellipse at 50% 110%,#1a0a00 0%,#000 60%);pointer-events:none}
.curtain{position:absolute;top:0;bottom:0;width:52%;z-index:10;transition:transform .7s cubic-bezier(.77,0,.175,1);will-change:transform}
.curtain::before,.curtain::after{content:"";position:absolute;top:0;bottom:0;width:22px;background:rgba(0,0,0,.35)}
.curtain-left{left:0;transform:translateX(0);background:repeating-linear-gradient(180deg,transparent 0,transparent 28px,rgba(0,0,0,.18) 28px,rgba(0,0,0,.18) 30px),linear-gradient(90deg,#5c0a0a 0%,#8b1a1a 18%,#6b1111 36%,#a02020 54%,#6b1111 72%,#8b1a1a 90%,#5c0a0a 100%)}
.curtain-right{right:0;transform:translateX(0);background:repeating-linear-gradient(180deg,transparent 0,transparent 28px,rgba(0,0,0,.18) 28px,rgba(0,0,0,.18) 30px),linear-gradient(90deg,#5c0a0a 0%,#8b1a1a 10%,#6b1111 28%,#a02020 46%,#6b1111 64%,#8b1a1a 82%,#5c0a0a 100%)}
.curtain::after{top:0;height:30px;bottom:auto;width:100%;background:repeating-linear-gradient(90deg,#7a1515 0,#7a1515 8px,#a01c1c 8px,#a01c1c 14px)}
.curtain-left.open{transform:translateX(-96%)}
.curtain-right.open{transform:translateX(96%)}
.cinema-room::after{content:"";position:absolute;top:0;left:0;right:0;height:28px;background:linear-gradient(90deg,#2a0000,#4a0a0a 20%,#6b1111 50%,#4a0a0a 80%,#2a0000);z-index:15;box-shadow:0 4px 20px #000}
.cinema-stage{position:relative;z-index:20;width:min(92vw,1400px);display:flex;flex-direction:column;align-items:center}
.cinema-screen-frame{width:100%;aspect-ratio:16/9;background:#000;box-shadow:0 0 0 6px #1a1a1a,0 0 0 8px #111,0 0 60px rgba(255,255,255,.06),0 0 120px rgba(0,0,0,.8)}
.cinema-content{width:100%;height:100%;background:#000}
.cinema-info{margin-top:16px;text-align:center;color:rgba(255,255,255,.55);display:flex;gap:24px;align-items:center}
.cinema-event-name{font:600 16px "Playfair Display",serif;color:rgba(255,255,255,.8)}
.cinema-event-date{font-size:12px;letter-spacing:1.5px}
.cinema-seats{position:absolute;bottom:0;left:0;right:0;z-index:5;padding:0 0 6px;display:flex;flex-direction:column;gap:4px;align-items:center;pointer-events:none}
.seats-row{display:flex;gap:5px;justify-content:center}
.seats-row span{width:32px;height:20px;background:linear-gradient(to bottom,#1a1a1a,#0a0a0a);border-radius:4px 4px 0 0;border:1px solid #333333}
.cinema-close{position:absolute;top:18px;right:20px;z-index:30;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.6);color:#fff;width:40px;height:40px;font-size:18px;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(4px);transition:.2s}
.cinema-close:hover{background:rgba(180,30,30,.6);border-color:#c03030}
@media(max-width:700px){.curtain-left.open{transform:translateX(-92%)}.curtain-right.open{transform:translateX(92%)}.cinema-seats{display:none}}
/* DÉPÔT */
.deposit-band{padding:90px clamp(24px,8vw,130px);display:grid;grid-template-columns:1.4fr 1fr;gap:90px;background:#111111;color:#fff}
.deposit-band h2{font:600 clamp(38px,4vw,56px)/1.05 var(--serif);margin:15px 0}.deposit-band h2 em{color:#e8d89a}
.deposit-band p{color:#cccccc}.deposit-band .cream-btn{background:var(--cream);color:var(--ink);margin-top:20px}
/* CONCOURS */
.contests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px;max-width:1160px;margin:auto}
.contest-card{padding:28px;position:relative}.contest-badge{display:inline-block;font-size:9px;letter-spacing:2px;font-weight:700;background:var(--gold);color:#fff;padding:4px 9px;margin-bottom:14px}
.contest-card h3{font:600 28px/1.1 var(--serif);margin:0 0 10px}.contest-event{color:var(--muted);font-size:13px;margin:0 0 12px}
.contest-prize{background:var(--cream);padding:14px;margin:16px 0}.contest-prize span{font-size:9px;letter-spacing:1.5px;display:block;color:var(--muted)}.contest-prize b{font:22px var(--serif)}
.contest-count{font-size:11px;color:var(--muted);margin:0 0 16px}
/* Logo Hôtel Victoria : affichage stable sur ordinateur et mobile. */
.site-header{background:#050808!important}
.site-header .brand-logo{display:block!important;visibility:visible!important;opacity:1!important;filter:none!important;object-fit:contain!important;object-position:center;width:120px;height:82px;flex:0 0 auto}
@media(max-width:900px){.site-header .brand-logo{width:82px;height:58px}}
/* FLYER DROP */
.flyer-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;border:2px dashed var(--line);cursor:pointer;padding:20px;text-align:center;color:var(--muted);gap:6px;transition:.2s}
.flyer-drop:hover,.flyer-drop.drag-over{border-color:var(--gold);background:#faf7ef}
/* LOGIN MODAL */
#loginModal .modal-box{width:min(440px,100%)}
/* LOGO */
.brand-logo{width:46px;height:46px;object-fit:contain;border-radius:50%}
.arch-logo{width:120px;height:120px;object-fit:contain;border-radius:50%;margin-bottom:10px}
/* BANNIÈRE HOTEL */
.hotel-banner{width:100%;overflow:hidden;background:#0a0a0a;line-height:0}
.hotel-banner img{width:100%;height:auto;display:block;max-height:400px;object-fit:cover;object-position:center top}
.hotel-banner.no-banner{display:none}
/* BOUTIQUE */
.boutique-coming{text-align:center;padding:80px 20px;max-width:540px;margin:0 auto}
.boutique-maker-note{max-width:720px;margin:14px auto 0;color:var(--muted);font-size:14px;line-height:1.65}
.boutique-maker-note strong{color:var(--ink);letter-spacing:.3px}
.boutique-maker-brand{max-width:760px;margin:18px auto 0;padding:18px 22px;background:#0b0b0d;border:1px solid #252a38;border-radius:4px;text-align:center}
.boutique-maker-brand img{display:block;width:min(100%,620px);height:180px;object-fit:cover;object-position:center;margin:0 auto 10px}
.boutique-maker-brand .boutique-maker-note{margin:0;color:#d8dbe4}
.boutique-maker-brand .boutique-maker-note strong{color:#fff;font-size:18px;letter-spacing:.6px}
.alphamtldesign-facebook{display:inline-block;margin-top:9px;color:#55aaff;font-weight:700;text-decoration:none}
.alphamtldesign-facebook:hover{text-decoration:underline;color:#8bc8ff}
.alphamtldesign-contact{display:inline-block;margin-top:8px;font-weight:700}
.alphamtldesign-contact a{color:#fff;text-decoration:none}
.alphamtldesign-contact a:hover{text-decoration:underline;color:#8bc8ff}
.bo
/* ══════════════════════════════════════════════════════════════
   CINÉMA PAGE
══════════════════════════════════════════════════════════════ */
.cinema-section-label{padding:0 clamp(24px,8vw,130px);margin-bottom:16px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;padding:0 clamp(24px,8vw,130px)}
.media-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;transition:.25s}
.media-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.12);transform:translateY(-2px)}
.media-card-clickable{cursor:pointer}
.media-thumb-wrap{position:relative;overflow:hidden;background:#0a0a0a;height:210px;display:flex;align-items:center;justify-content:center}
.media-thumb{width:100%;height:100%;object-fit:cover}
.media-thumb-placeholder{font-size:48px;color:#555}
.cinema-play-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:42px;color:#fff;background:rgba(0,0,0,.35);opacity:0;transition:.2s}
.media-card-clickable:hover .cinema-play-btn{opacity:1}
.media-badge{position:absolute;top:10px;left:10px;background:var(--gold);color:#fff;font-size:9px;letter-spacing:1.5px;padding:3px 8px;font-weight:700;text-transform:uppercase}
.media-info{padding:14px 16px 8px;flex:1}
.media-info h3{font:600 1rem var(--serif);margin:0 0 4px;color:var(--ink)}
.media-info p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}
.media-share{display:flex;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--line)}
.share-btn{width:34px;height:34px;border:1px solid var(--line);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;transition:.15s}
.share-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.share-btn.fb{border-color:#1877f2;color:#1877f2}
.share-btn.fb:hover{background:#1877f2;color:#fff}
.share-btn.tw{border-color:#000;color:#000}
.share-btn.wa{border-color:#25d366;color:#25d366}
.share-btn.wa:hover{background:#25d366;color:#fff}
.poster-card .media-thumb-wrap{height:320px}
.poster-thumb{object-fit:contain;background:#111}

/* ══════════════════════════════════════════════════════════════
   ADMIN SIDEBAR + SHELL
══════════════════════════════════════════════════════════════ */
.admin-shell{display:flex;min-height:calc(100vh - 64px)}
.admin-sidebar{width:220px;min-width:200px;background:#0a0a0a;color:#fff;padding:20px 0;flex-shrink:0;display:flex;flex-direction:column;gap:0}
.admin-brand{display:flex;align-items:center;gap:10px;padding:0 18px 20px;border-bottom:1px solid #222}
.admin-brand .arch-logo{width:36px;height:36px;border-radius:50%;object-fit:cover}
.admin-brand span{font:600 13px var(--serif);letter-spacing:1px;color:#fff}
.admin-nav{display:flex;flex-direction:column;padding-top:10px}
.admin-tab{background:none;border:0;color:#aaa;text-align:left;padding:11px 20px;font-size:13px;cursor:pointer;transition:.15s;border-left:3px solid transparent}
.admin-tab:hover{color:#fff;background:rgba(255,255,255,.05)}
.admin-tab.active{color:#C9A017;border-left-color:#C9A017;background:rgba(201,160,23,.08)}
.admin-main{flex:1;padding:28px 32px;background:var(--paper);overflow-y:auto}
.admin-panel{}
.admin-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:10px}
.admin-panel-header h2{margin:0;font:600 1.35rem var(--serif)}
.admin-section-label{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:10px;margin-top:0}
.admin-form{display:flex;flex-direction:column;gap:14px}
.admin-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ink)}
.admin-form input,.admin-form select,.admin-form textarea{padding:9px 12px;border:1px solid var(--line);background:#fff;font:14px/1.4 inherit;color:var(--ink)}
.admin-row2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:700px){.admin-shell{flex-direction:column}.admin-sidebar{width:100%;flex-direction:row;overflow-x:auto;padding:10px 0}.admin-nav{flex-direction:row;padding:0 8px}.admin-tab{white-space:nowrap;padding:8px 14px;border-left:0;border-bottom:3px solid transparent}.admin-tab.active{border-bottom-color:#C9A017;border-left-color:transparent}.admin-row2{grid-template-columns:1fr}}
.data-row{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#fff;border:1px solid var(--line);margin-bottom:8px;flex-wrap:wrap}
.date-box{min-width:55px;text-align:center;display:flex;flex-direction:column;align-items:center}
.row-main{display:flex;flex-direction:column;flex:1;min-width:120px}
.row-main b{font-size:14px}
.row-main small{color:var(--muted);font-size:12px}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
.small-btn{padding:5px 12px;font-size:12px;font-weight:600;border:1px solid var(--line);background:#fff;cursor:pointer;transition:.15s}
.small-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.primary-btn.small{padding:7px 16px;font-size:13px}
.notif-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:#c0392b;color:#fff;font-size:11px;font-weight:700;border-radius:10px;margin-left:8px}
.admin-request-alert{margin:16px 0;padding:12px 16px;border-left:3px solid #c9a017;background:#f5ead5;color:#6d511c;font-weight:700}

/* ══════════════════════════════════════════════════════════════
   CALENDRIER ADMIN GRILLE
══════════════════════════════════════════════════════════════ */
.acal-controls{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.acal-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.acal-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:700;border-radius:0}
.acal-badge.blocked{background:#1a1a1a;color:#fff}
.acal-badge.reserved{background:#2d6a4f;color:#fff}
.acal-badge.exclusive{background:#7b2d8b;color:#fff}
.acal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.acal-weekdays span{text-align:center;font-size:11px;font-weight:700;letter-spacing:1px;color:var(--muted);padding:4px 0}
.acal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.acal-day{min-height:72px;border:1px solid var(--line);padding:8px;background:#fff;position:relative;display:flex;flex-direction:column;gap:3px}
.acal-day span{font-size:13px;font-weight:600}
.acal-day small{font-size:10px;line-height:1.3;word-break:break-word}
.acal-day img.acal-thumb{width:100%;height:40px;object-fit:cover;margin-top:auto}
.acal-day.blank{background:transparent;border-color:transparent}
.acal-day.acal-clickable{cursor:pointer}
.acal-day.acal-clickable:hover{border-color:var(--gold)}
.acal-day.acal-today{box-shadow:inset 0 0 0 2px var(--gold)}
.acal-day.acal-today span:after{content:" · AUJOURD'HUI";font-size:8px;letter-spacing:1px;color:var(--gold)}
.acal-day.acal-gone{opacity:.4;background:#f3f1ea}
.acal-day.acal-blocked{background:#1a1a1a;color:#fff;border-color:#111}
.acal-day.acal-blocked span,.acal-day.acal-blocked small{color:#fff}
.acal-day.acal-reserved{background:#2d6a4f;color:#fff;border-color:#1e4d37}
.acal-day.acal-reserved span,.acal-day.acal-reserved small{color:#fff}
.acal-day.acal-exclusive{background:#7b2d8b;color:#fff;border-color:#5a2069}
.acal-day.acal-exclusive span,.acal-day.acal-exclusive small{color:#fff}
.acal-day.acal-event{background:#C9A017;color:#fff;border-color:#a88012}
.acal-day.acal-event span,.acal-day.acal-event small{color:#fff}
.acal-day.acal-free{background:#f7fff7;border-color:#39ff14;box-shadow:inset 0 0 0 1px #39ff14}.acal-day.acal-free:after{content:"";position:absolute;top:8px;right:8px;width:10px;height:10px;border-radius:50%;background:#39ff14;box-shadow:0 0 8px #39ff14}.acal-day.acal-event{background:#fff2f1;color:#8f2d27;border-color:#ff1f1f}.acal-day.acal-event:after{content:"";position:absolute;top:8px;right:8px;width:10px;height:10px;border-radius:50%;background:#ff1f1f;box-shadow:0 0 8px #ff1f1f}.acal-day.acal-event span,.acal-day.acal-event small{color:#8f2d27}
.acal-day.acal-saturday.acal-free:hover{background:#fffce8}
.acal-day.acal-past{background:#f5f5f5;color:#bbb}
.acal-day.acal-saturday>span{color:var(--gold)}
.acal-day.acal-blocked.acal-saturday>span,.acal-day.acal-reserved.acal-saturday>span,.acal-day.acal-exclusive.acal-saturday>span,.acal-day.acal-event.acal-saturday>span{color:#fff}

/* Cal flyer button public */
.cal-day{position:relative}
.cal-flyer-btn{position:absolute;bottom:4px;right:4px;border:0;background:var(--gold);color:#fff;width:24px;height:24px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center}

/* ══════════════════════════════════════════════════════════════
   IDENTITÉ DU SITE
══════════════════════════════════════════════════════════════ */
.site-asset-preview{min-height:60px;border:1px solid var(--line);background:#f5f2ea;padding:8px;display:flex;align-items:center;justify-content:center;margin-bottom:6px}

/* ══════════════════════════════════════════════════════════════
   MODALS
══════════════════════════════════════════════════════════════ */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9000;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-box{background:#fff;width:100%;max-height:90vh;overflow-y:auto;padding:32px 36px;position:relative}
.modal-close{position:absolute;top:14px;right:18px;background:none;border:0;font-size:20px;cursor:pointer;color:var(--muted);line-height:1}
.modal-close:hover{color:var(--ink)}
.drop-zone{border:2px dashed var(--line);padding:24px;text-align:center;font-size:14px;color:var(--muted);cursor:pointer;transition:.2s}
.drop-zone.drag-over,.drop-zone:hover{border-color:var(--gold);background:#fffce8}
.signed-receipt{display:flex;align-items:center;gap:14px;padding:18px;background:#f0f9f4;border:1px solid #a8dfc0}
.signed-receipt>span{font-size:28px;color:#2d6a4f}

/* ══════════════════════════════════════════════════════════════
   CINEMA ROOM
══════════════════════════════════════════════════════════════ */
#cinemaRoom{position:fixed;inset:0;background:#0a0a0a;z-index:10000;display:none;flex-direction:column;align-items:center;justify-content:center}
#cinemaRoom.open{display:flex}
#cinemaClose{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;font-size:24px;cursor:pointer;z-index:2}
.curtain{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(90deg,#1a0a00,#3d1a00,#1a0a00);z-index:1;transition:transform 1s cubic-bezier(.4,0,.2,1)}
#curtainLeft{left:0;transform:translateX(0)}
#curtainRight{right:0;transform:translateX(0)}
#curtainLeft.open{transform:translateX(-100%)}
#curtainRight.open{transform:translateX(100%)}
#cinemaStage{width:min(900px,90vw);aspect-ratio:16/9;background:#000;z-index:0;box-shadow:0 0 80px rgba(201,160,23,.3)}
#cinemaContent{width:100%;height:100%}
#cinemaInfo{position:absolute;bottom:70px;left:0;right:0;text-align:center;color:#fff;z-index:0}
#cinemaInfo .cinema-event-name{display:block;font:700 1.1rem var(--serif);letter-spacing:2px;color:var(--gold)}
#cinemaInfo .cinema-event-date{font-size:12px;color:#aaa;display:block;margin-top:4px}
#cinemaSeats{position:absolute;bottom:10px;display:flex;flex-direction:column;gap:5px;align-items:center;z-index:0;opacity:.4}
.seat-row{display:flex;gap:5px}
.seat{width:18px;height:14px;background:#3d3d3d;border-radius:3px 3px 0 0;border-top:2px solid #555}

/* ══════════════════════════════════════════════════════════════
   BOUTIQUE PRODUITS
══════════════════════════════════════════════════════════════ */
.boutique-cats{display:flex;gap:8px;flex-wrap:wrap;padding:0 clamp(24px,8vw,130px) 24px}
.boutique-cat{padding:7px 18px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer;transition:.2s;text-transform:uppercase}
.boutique-cat.active,.boutique-cat:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.boutique-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;padding:0 clamp(24px,8vw,130px) 48px}
.product-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;cursor:pointer;transition:.25s;overflow:hidden}
.product-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.12);transform:translateY(-2px)}
.product-img{height:240px;overflow:hidden;background:#f5f5f5;position:relative;display:flex;align-items:center;justify-content:center}
.product-img img{width:100%;height:100%;object-fit:cover;transition:.3s}
.product-card:hover .product-img img{transform:scale(1.04)}
.product-img-placeholder{font-size:48px;color:#ccc}
.product-badge{display:none}
.product-info{padding:16px 18px 8px;flex:1}
.product-cat{font-size:9px;letter-spacing:2px;font-weight:700;color:var(--gold);margin:0 0 4px;text-transform:uppercase}
.product-name{font:600 1rem var(--serif);margin:0 0 6px;color:var(--ink)}
.product-desc{font-size:13px;color:var(--muted);margin:0;line-height:1.5}
.product-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line)}
.product-price{font:700 1.15rem var(--serif);color:var(--ink)}
.product-buy{padding:8px 18px;background:var(--gold);color:#fff;border:0;font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer}
.product-modal-img{width:100%;max-height:380px;object-fit:contain;background:#f5f5f5;margin-bottom:18px}
.product-modal-price{font:700 1.3rem var(--serif);color:var(--gold);margin:0 0 10px}
.boutique-coming{grid-column:1/-1;text-align:center;padding:80px 24px;color:var(--muted)}
.boutique-coming span{font-size:36px;display:block;margin-bottom:16px;color:var(--gold)}
.boutique-coming h2{font:600 1.6rem var(--serif);margin:0 0 8px;color:var(--ink)}

/* ══════════════════════════════════════════════════════════════
   CONTRAT
══════════════════════════════════════════════════════════════ */
.sig-pad-wrap{border:1px solid var(--line);background:#fff;border-radius:0;overflow:hidden}
#sigCanvas{display:block;cursor:crosshair;touch-action:none}
.sig-note{font-size:11px;color:var(--muted);display:block;margin-top:8px}

/* ══════════════════════════════════════════════════════════════
   PAGE PERSONNES BLOQUÉES
══════════════════════════════════════════════════════════════ */
.security-gate{display:flex;align-items:center;justify-content:center;min-height:50vh;padding:40px 20px}
.security-gate-box{background:#fff;border:1px solid var(--line);padding:40px 36px;max-width:400px;width:100%;text-align:center}
.security-icon{font-size:48px;margin-bottom:16px;display:block}
.security-gate-box h2{font:700 1.4rem var(--serif);margin:0 0 8px}
.security-gate-box p{color:var(--muted);font-size:14px;margin:0 0 24px}
.security-gate-box input{width:100%;padding:14px;border:2px solid #0a0a0a;font-size:1rem;text-align:center;letter-spacing:4px;background:#f9f9f9}
.security-gate-box input:focus{outline:none;border-color:var(--gold)}
.blocked-add-panel{margin:0 clamp(24px,8vw,130px) 32px;background:#1a1a1a;color:#fff;padding:28px 32px;border-left:4px solid var(--gold)}
.blocked-add-panel h3{font:600 1rem var(--serif);color:var(--gold);margin:0 0 20px;letter-spacing:1.5px;text-transform:uppercase}
.blocked-form{}
.blocked-form-row{display:flex;gap:20px;align-items:flex-start}
.blocked-photo-label{cursor:pointer;flex-shrink:0}
.blocked-photo-placeholder{width:100px;height:100px;border-radius:50%;background:#2a2a2a;border:2px dashed #555;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:.2s;overflow:hidden}
.blocked-photo-placeholder:hover{border-color:var(--gold)}
.blocked-photo-placeholder span{font-size:28px}
.blocked-photo-placeholder small{font-size:10px;color:#aaa;text-align:center}
.blocked-photo-placeholder img{width:100%;height:100%;object-fit:cover}
.blocked-form-fields{flex:1;display:flex;flex-direction:column;gap:10px}
.blocked-form-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:1px}
.blocked-form-fields input{padding:10px 12px;border:1px solid #333;background:#111;color:#fff;font:14px inherit}
.blocked-form-fields input:focus{outline:none;border-color:var(--gold)}
.blocked-stats{padding:0 clamp(24px,8vw,130px) 16px;font-size:12px;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--muted)}
.blocked-stats span{color:#c0392b;font-size:1.3rem;font-weight:900;margin-right:4px}
.blocked-print-btn{margin-left:16px;vertical-align:middle;letter-spacing:0;font-size:11px;padding:7px 11px}
.blocked-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:0 clamp(24px,8vw,130px) 60px}
.blocked-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #e0e0e0;padding:16px;border-left:4px solid #c0392b;position:relative}
.blocked-photo{width:80px;height:80px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#f0f0f0;display:flex;align-items:center;justify-content:center}
.blocked-photo img{width:100%;height:100%;object-fit:cover}
.blocked-no-photo{font-size:36px;color:#ccc}
.blocked-info{flex:1;display:flex;flex-direction:column;gap:3px}
.blocked-info b{font:700 1rem var(--serif);color:#0a0a0a}
.blocked-reason{font-size:12px;color:#c0392b;font-style:italic}
.blocked-info small{font-size:11px;color:#999}
.blocked-tag{position:absolute;top:10px;right:12px;background:#c0392b;color:#fff;font-size:9px;font-weight:900;letter-spacing:2px;padding:3px 8px}
@media(max-width:600px){.blocked-form-row{flex-direction:column}.blocked-photo-label{align-self:center}}

/* Onglet sécurité — discret dans la nav */
.nav-blocked{border-left:1px solid rgba(255,255,255,.15);margin-left:4px;padding-left:14px !important;color:rgba(255,255,255,.6) !important;font-size:11px !important}
.nav-blocked:hover,.nav-blocked.active{color:#fff !important}

/* ── Grille carrée personnes bloquées ── */
.blocked-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:18px;padding:0 clamp(24px,6vw,100px) 32px}
.blocked-card-sq{display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #e0e0e0;border-top:3px solid #c0392b;padding:16px 12px 14px;text-align:center;gap:8px;position:relative;overflow:visible}
.blocked-sq-photo{width:110px;height:110px;border-radius:8px;overflow:hidden;background:#f0f0f0;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.blocked-sq-photo img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease,box-shadow .2s ease;cursor:zoom-in;position:relative;z-index:1}
.blocked-sq-photo:hover{overflow:visible;z-index:20}
.blocked-sq-photo:hover img{transform:scale(2.35);box-shadow:0 12px 30px rgba(0,0,0,.38);border:3px solid #fff;border-radius:8px}
.blocked-sq-nophoto{font-size:48px;color:#ccc;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.blocked-sq-tag{position:absolute;bottom:4px;right:4px;background:#c0392b;color:#fff;font-size:11px;border-radius:4px;padding:1px 5px;font-weight:700;z-index:4;pointer-events:none}
.blocked-sq-name{font:700 .9rem var(--serif);color:#0a0a0a;line-height:1.3;word-break:break-word}
.blocked-sq-reason{font-size:11px;color:#c0392b;font-style:italic;line-height:1.3}
.blocked-sq-controls{width:100%;display:flex;flex-direction:column;gap:5px;margin-top:3px}
.blocked-sq-controls select,.blocked-sq-controls input{width:100%;box-sizing:border-box;font:11px Arial,sans-serif;padding:5px 6px;border:1px solid #d7d7d7;border-radius:3px;background:#fff;color:#222}
.blocked-sq-controls input::placeholder{color:#888}
.blocked-sq-controls .blk-add-name{font-size:10px;padding:4px 5px;color:#555}
.blocked-sq-controls .blk-save-state{margin:2px 0 0;font:10px Arial,sans-serif;line-height:1.3;text-align:center}
.blocked-sq-controls .blk-duration-row{display:flex;gap:4px}
.blocked-sq-controls .blk-duration-row[hidden]{display:none}
.blocked-sq-controls .blk-duration-row .blk-duration-value{flex:0 0 52px}
.blk-duration-row{display:flex;gap:5px}
.blk-duration-row[hidden]{display:none}
.blk-duration-row .blk-duration-value{width:38%}
.blk-duration-row .blk-duration-unit{width:62%}
.blocked-sq-actions{display:flex;flex-wrap:wrap;gap:5px;width:100%}
.blocked-sq-actions .small-btn{flex:1 1 70px;min-width:0;white-space:nowrap;font-size:10px;padding:5px 3px}
.blocked-add-gate{padding:0 clamp(24px,8vw,130px) 32px}
.product-order-form{display:grid;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.product-order-form h3{margin:0 0 4px;font:22px var(--serif)}
.product-order-form label{display:grid;gap:5px;font-size:12px;font-weight:700}
.product-order-form input,.product-order-form textarea{width:100%;box-sizing:border-box;padding:9px;border:1px solid var(--line);font:inherit}
.product-card{overflow:visible;position:relative}
.product-img{overflow:visible;position:relative}
.product-img img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .28s ease,box-shadow .28s ease;position:relative;z-index:1;cursor:zoom-in;transform-origin:center center}
.product-img:hover{z-index:20}
.product-img:hover img{transform:scale(1.65);z-index:5;box-shadow:0 12px 28px rgba(0,0,0,.32);border:3px solid #fff;border-radius:6px}
.card,.process,.help,.form-layout,.form-layout>*{min-width:0;max-width:100%}
.help b,.help small,.process p,.process li,.process li span,.inner-head p{overflow-wrap:anywhere;word-break:break-word}
.help b{font-size:clamp(15px,2.2vw,25px);line-height:1.25}
@media(max-width:600px){
  #page-boutique .inner-head{padding-left:14px;padding-right:14px}
  #page-boutique .inner-head h1{font-size:34px;line-height:1.05}
  .boutique-maker-brand{margin:14px 0 0;padding:14px 12px;border-radius:3px}
  .boutique-maker-brand img{display:block;width:100%;max-width:100%;height:92px;margin-bottom:8px;object-fit:cover}
  .boutique-maker-note{font-size:12px;line-height:1.45}
  .boutique-maker-brand .boutique-maker-note strong{font-size:15px}
  .alphamtldesign-contact{display:block;line-height:1.6}
  .alphamtldesign-facebook{font-size:12px;line-height:1.35}
  .boutique-cats{padding:0 14px 18px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .boutique-cats::-webkit-scrollbar{display:none}
  .boutique-cat{flex:0 0 auto;padding:9px 14px;font-size:11px}
  .boutique-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 30px}
  .product-card{min-width:0}
  .product-card:hover{transform:none;box-shadow:none}
  .product-img{height:135px;max-width:100%;overflow:hidden!important}
  .product-img img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;transform:none!important}
  .product-img:hover img{transform:none;box-shadow:none;border:0}
  .product-info{padding:10px 9px 5px}
  .product-name{font-size:14px;line-height:1.2;overflow-wrap:anywhere}
  .product-desc{font-size:11px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .product-footer{padding:7px 9px 10px;gap:5px;flex-wrap:wrap}
  .product-price{font-size:14px}
  .product-buy{width:100%;min-height:38px}
  .product-order-form{gap:12px}
  .product-order-form input,.product-order-form textarea{font-size:16px;min-height:42px}
}
@media(max-width:600px){.blocked-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));padding-left:14px;padding-right:14px}.blocked-sq-actions .small-btn{flex-basis:78px}}

@media print{
  @page{size:letter portrait;margin:.22in}
  body *{visibility:hidden!important}
  #page-blocked,#page-blocked *{visibility:visible!important}
  #page-blocked{display:block!important;position:absolute;inset:0;background:#fff;color:#111}
  #blockedGate,#blockedAddForm,#blockedContent .blocked-add-panel,#blockedCodesPanel,#blockedCodesPanel *,.blocked-codes-panel,.blocked-codes-panel *,.blocked-code-form,.blocked-code-form *,.blocked-code-title,.blocked-code-title *,#pageSecurityCodeForm,#pageSecurityReadCodeForm,#securityCodeForm,#securityReadCodeForm,#blockedReadOnlyNotice,.blocked-save-all-btn,.security-save-status,.blocked-print-btn,.blocked-sq-controls,.site-header,.site-footer,.blocked-stats button{display:none!important}
  #blockedContent{display:block!important;padding:0}
  #blockedContent .inner-head{padding:0 0 2mm;margin:0;text-align:center}
  #blockedContent .inner-head h1{font-size:0;margin:0}
  #blockedContent .inner-head h1:after{content:"INTERDIT";font:900 23pt Arial,sans-serif;letter-spacing:1px;color:#e00000;text-shadow:1px 1px 0 #111,-1px -1px 0 #111,1px -1px 0 #111,-1px 1px 0 #111}
  #blockedContent .inner-head .eyebrow,#blockedContent .inner-head .security-note{display:none!important}
  #blockedContent .blocked-stats{padding:0 0 2.5mm;color:#111;font-size:9pt}
  /* Tenir sur 2 pages Letter. Zone utile : 8.06in x 10.56in par page.
     4 colonnes x 1.88in de hauteur => 5 rangées par page (5*1.88 + 4*2mm
     = 9.72in, sous les 9.85in restants une fois l'en-tête déduit).
     Capacité : 40 fiches sur 2 pages. Au-delà, une 3e page repart. */
  #blockedContent .blocked-grid{padding:0;grid-template-columns:repeat(4,1fr);column-gap:3mm;row-gap:2mm}
  #blockedContent .blocked-card-sq{height:1.88in;min-height:0;box-sizing:border-box;break-inside:avoid;border:0;box-shadow:none;color:#111;padding:0;gap:.5mm;background:#fff}
  #blockedContent .blocked-sq-photo{width:1.5in;height:1.5in;border-radius:0}
  #blockedContent .blocked-sq-name{font:900 10.5pt Arial,sans-serif;line-height:1.05;max-height:.3in;overflow:hidden;color:#df0000;text-shadow:.5px .5px 0 #111,-.5px -.5px 0 #111,.5px -.5px 0 #111,-.5px .5px 0 #111}
  #blockedContent .blocked-sq-reason,#blockedContent .blocked-sq-meta,.blocked-sq-tag{display:none!important}
  #blockedContent .blocked-sq-photo:hover{overflow:hidden}
  #blockedContent .blocked-sq-photo:hover img{transform:none;box-shadow:none;border:0}
  #blockedContent .blocked-sq-name,#blockedContent .blocked-sq-reason,#blockedContent .blocked-sq-meta{color:#111}
  #blockedContent .blocked-sq-name{color:#df0000!important;text-shadow:.5px .5px 0 #111,-.5px -.5px 0 #111,.5px -.5px 0 #111,-.5px .5px 0 #111}
}
.cal-flyer-thumb{width:100%;height:42px;object-fit:cover;display:block;margin-top:8px;cursor:pointer;border:1px solid #ddd}.cal-day.busy small,.cal-day.pending small{display:block;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.cal-day.has-event:hover .cal-thumb{position:absolute;z-index:30;left:50%;top:100%;width:220px;height:150px;transform:translateX(-50%);margin-top:8px;box-shadow:0 14px 35px #0005;border:3px solid #fff;background:#111}.cal-day.has-event:hover small{position:relative;z-index:31;display:block;background:#fff;padding:3px 5px;box-shadow:0 4px 12px #0002}.cal-day.has-event:hover{z-index:35}
/* ACCUEIL HOTEL VICTORIA - AMBIANCE DE NUIT */
.site-header{background:rgba(5,8,8,.9);border-bottom:1px solid rgba(255,255,255,.18);color:#fff;z-index:60}.site-header .brand,.site-header .nav-link,.site-header .icon-btn{color:#fff}.site-header .brand-logo{width:68px;height:68px;filter:brightness(0) invert(1);border-radius:0}.site-header .brand b{font-size:18px;color:#fff}.site-header .brand small{color:#d7d2bd}.site-header .nav-link{color:#f7f5ef}.site-header .nav-link.active:after{background:#d7ad45}.site-header .head-actions .icon-btn{color:#fff}.hotel-banner{height:clamp(390px,58vh,700px);position:relative;background:#050808}.hotel-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,8,7,.82),rgba(3,8,7,.18) 55%,rgba(3,8,7,.48)),linear-gradient(0deg,rgba(3,8,7,.58),transparent 45%);pointer-events:none}.hotel-banner img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 42%;filter:saturate(.92) brightness(.7)}#page-home>.hero{margin-top:-190px;position:relative;z-index:2;background:linear-gradient(110deg,rgba(4,12,10,.68),rgba(5,12,10,.38) 58%,rgba(2,5,5,.78)),url("/static/hotel-victoria-facade-wide.webp") center/cover;min-height:650px;color:#fff;border-top:1px solid rgba(255,255,255,.18)}#page-home>.hero .hero-text,#page-home>.hero .text-btn{color:#fff}#page-home>.hero .hero-noise{opacity:.12}.hero-art{opacity:.18;mix-blend-mode:screen}.hotel-banner+.hero h1{text-shadow:0 5px 25px #000}.brand-mark{border-color:#fff}

/* LOGO HEADER AGRANDI */
.site-header{min-height:112px;height:112px}.site-header .brand{gap:18px;min-width:240px}.site-header .brand-logo{width:120px;height:92px;max-width:120px;object-fit:contain;filter:brightness(0) invert(1)}.site-header .brand b{font-size:20px;letter-spacing:2px}.site-header .brand small{font-size:10px}.site-header nav{align-items:center}.site-header .nav-link{padding:40px 0}
@media(max-width:900px){.site-header{height:82px;min-height:82px}.site-header .brand{min-width:0;gap:8px}.site-header .brand-logo{width:82px;height:64px}.site-header .brand b{font-size:13px}.site-header .brand small{font-size:8px}}
.contract-pdf-card{max-width:1000px;margin:0 auto 28px;padding:26px}.contract-pdf-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:20px}.contract-pdf-head h2{font:32px var(--serif);margin:8px 0}.contract-pdf-head p:last-child{color:var(--muted);margin:0}.contract-pdf-viewer{display:block;width:100%;height:min(900px,80vh);border:1px solid var(--line);background:#fff}@media(max-width:700px){.contract-pdf-head{display:block}.contract-pdf-head .primary-btn{margin-top:16px}.contract-pdf-viewer{height:70vh}}
/* Navigation et accueil - Hotel Victoria */
.site-header .head-actions{display:none!important}
.about-card{max-width:760px;margin:0 auto;padding:38px}
.about-card h2{font:36px var(--serif);margin:0 0 18px}
.about-card p{color:var(--muted);line-height:1.75}


/* Accueil : 105 ans, hier et aujourd hui */
#page-home>.hero{background-image:linear-gradient(90deg,rgba(4,12,10,.20) 0%,rgba(4,12,10,.08) 48%,rgba(4,12,10,.28) 52%,rgba(4,12,10,.20) 100%),url("/static/hotel-victoria-old.jpg"),url("/static/hotel-victoria-current.webp");background-position:center, left center, right center;background-size:100% 100%,50% 100%,50% 100%;background-repeat:no-repeat}
@media(max-width:900px){#page-home>.hero{background-position:center,top center,bottom center;background-size:100% 100%,100% 50%,100% 50%;}}

/* Accueil : photo actuelle uniquement */
#page-home>.hero{background-image:linear-gradient(110deg,rgba(4,12,10,.28),rgba(5,12,10,.12) 58%,rgba(2,5,5,.34)),url("/static/hotel-victoria-current.webp");background-position:center;background-size:cover;background-repeat:no-repeat}

/* Accueil : photo naturelle, sans ancienne porte decor */
#page-home>.hero{background-image:url("/static/hotel-victoria-current.webp");background-position:center;background-size:cover;background-repeat:no-repeat}
#page-home>.hero .hero-art{display:none!important}
#page-home>.hero:before{display:none!important}
#page-home>.hero .hero-copy{ text-shadow:0 2px 12px rgba(0,0,0,.65)}

/* Promotion vêtements sur l accueil */
.clothing-promo{max-width:1120px;margin:0 auto 35px;padding:22px 28px;display:grid;grid-template-columns:230px 1fr;align-items:center;gap:32px;background:#171d19;color:#fff;border:1px solid #c9a84d;box-shadow:0 15px 35px rgba(0,0,0,.12)}
.clothing-promo-image{height:180px;background:#fff;overflow:hidden}.clothing-promo-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.clothing-promo-copy h2{font:42px/1.05 var(--serif);margin:10px 0 12px}.clothing-promo-copy h2 em{color:var(--gold)}.clothing-promo-copy p:not(.eyebrow){max-width:590px;color:#d7ddd8;margin:0 0 18px}.clothing-promo .primary-btn{background:#d1ab42;color:#171d19}
@media(max-width:700px){.clothing-promo{grid-template-columns:1fr;padding:18px;gap:18px}.clothing-promo-image{height:190px}.clothing-promo-copy h2{font-size:34px}}

/* Promotion vêtements pleine largeur */
.clothing-promo{max-width:none;width:100%;margin:0 0 55px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0;background:#171d19;color:#fff;border:1px solid #c9a84d;overflow:hidden;box-shadow:0 15px 35px rgba(0,0,0,.12)}
.clothing-promo-image{height:360px;background:#fff}.clothing-promo-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.clothing-promo-copy{padding:55px clamp(28px,6vw,90px);display:flex;flex-direction:column;justify-content:center}.clothing-promo-copy h2{font-size:clamp(42px,5vw,68px)}
.deposit-page-card{max-width:1050px;margin:auto;padding:55px 7%;display:grid;grid-template-columns:1fr 180px;align-items:center;background:#171d19;color:#fff;border:1px solid #c9a84d}.deposit-page-card h2{font:48px var(--serif);margin:12px 0}.deposit-page-card p:not(.eyebrow){color:#d7ddd8;max-width:650px}.deposit-page-mark{font-size:150px;color:#d1ab42;text-align:center;font-weight:200}
@media(max-width:700px){.clothing-promo{grid-template-columns:1fr}.clothing-promo-image{height:260px}.clothing-promo-copy{padding:35px 24px}.deposit-page-card{grid-template-columns:1fr;padding:35px 24px}.deposit-page-mark{display:none}}

.event-flyer-mini{position:absolute;z-index:2;top:20px;left:20px;width:92px;height:118px;object-fit:contain;border:3px solid #fff;box-shadow:0 8px 18px rgba(0,0,0,.35);background:#fff;cursor:zoom-in}.event-flyer-mini+.poster-date{margin-left:auto}
.carousel-poster{position:relative;background:#0a0a0a!important;overflow:hidden}
.carousel-flyer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#0a0a0a;cursor:zoom-in;z-index:1}
.carousel-overlay{z-index:2;pointer-events:none}

/* Promotion vetements : image complete et integration fluide */
.clothing-promo{margin:0 clamp(24px,8vw,130px) 70px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:none}
.clothing-promo-image{height:430px;background:#fff;padding:10px}.clothing-promo-image img{object-fit:contain;object-position:center}
.clothing-promo-copy{background:#171d19;color:#fff;min-height:430px}.clothing-promo-copy p:not(.eyebrow){color:#d7ddd8}.clothing-promo-copy .eyebrow{color:#fff}.clothing-promo .primary-btn{align-self:flex-start}
@media(max-width:900px){.clothing-promo{margin-left:24px;margin-right:24px}.clothing-promo-image,.clothing-promo-copy{min-height:0;height:auto}.clothing-promo-image{height:310px}}
@media(max-width:700px){.clothing-promo{margin-left:20px;margin-right:20px}.clothing-promo-image{height:250px;padding:6px}}

/* Alignement final de la bande vetements */
.clothing-promo{width:min(1120px,calc(100% - 48px));margin:18px auto 70px;position:relative;left:0;transform:translateY(8px)}
@media(max-width:700px){.clothing-promo{width:calc(100% - 40px);margin:14px auto 55px;transform:translateY(6px)}}

/* En-tete : logo seul avec Joliette dessous */
.site-header .brand{flex-direction:column;justify-content:center;gap:0;min-width:150px}.site-header .brand-logo{width:120px;height:82px}.site-header .brand-location{display:block;color:#fff;font:700 9px/1 "DM Sans",sans-serif;letter-spacing:4px;margin-top:-2px;text-align:center}
@media(max-width:900px){.site-header .brand{min-width:100px}.site-header .brand-logo{width:82px;height:58px}.site-header .brand-location{font-size:7px;letter-spacing:3px}}

/* Date actuelle visible dans le calendrier public */
.cal-day.today{box-shadow:inset 0 0 0 3px var(--gold);background:#fffbea}
.today-label{display:block;color:#9a7412;font-size:8px;letter-spacing:.5px;font-style:normal;line-height:1.1;margin-top:5px}
.calendar-nav #todayBtn{width:auto;padding:0 10px;font-size:11px;white-space:nowrap}

/* Survol des prochaines dates : flyer et informations agrandis */
.event-grid .event-card{position:relative;overflow:visible;transition:transform .25s ease,box-shadow .25s ease;z-index:1}.event-grid .event-card:hover{transform:translateY(-8px) scale(1.035);z-index:8;box-shadow:0 24px 55px rgba(0,0,0,.22)}.event-grid .event-card:hover .event-poster{overflow:visible}.event-grid .event-card:hover .event-flyer-mini{width:170px;height:220px;top:12px;left:12px;z-index:20;box-shadow:0 16px 30px rgba(0,0,0,.48);transition:width .25s ease,height .25s ease,box-shadow .25s ease}.event-grid .event-card:hover .poster-copy h3{font-size:38px;transition:font-size .25s ease}.event-grid .event-card:hover .event-info{background:#fff}
@media(max-width:700px){.event-grid .event-card:hover{transform:none;box-shadow:none}.event-grid .event-card:hover .event-flyer-mini{width:92px;height:118px;top:20px;left:20px}.event-grid .event-card:hover .poster-copy h3{font-size:34px}}

/* Pages legales */
.legal-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.legal-card{padding:28px}.legal-card h2{font:28px var(--serif);margin:0 0 14px}.legal-card p{color:var(--muted);line-height:1.7}@media(max-width:700px){.legal-grid{grid-template-columns:1fr}.legal-card{padding:22px}}

.legal-notice{max-width:1100px;margin:24px auto 0;padding:30px}.legal-notice h2{font:27px var(--serif);margin:22px 0 8px}.legal-notice h2:first-child{margin-top:0}.legal-notice p{color:var(--muted);line-height:1.75}.legal-notice a{color:var(--green);font-weight:700}

/* Pied de page professionnel */
.site-footer{background:#101211;color:#fff;padding:58px clamp(24px,8vw,130px) 22px}.footer-main{max-width:1250px;margin:auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:42px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.16)}.footer-identity{display:flex;gap:16px;align-items:flex-start}.footer-logo{width:76px;height:76px;object-fit:contain}.footer-identity b{display:block;font:27px var(--serif);color:#fff}.footer-identity small{display:block;color:#d5aa69;letter-spacing:3px;font-size:9px;margin-top:4px}.footer-identity p{color:#c9c7bd;margin-top:18px}.footer-column h3{font:21px var(--serif);color:#d5aa69;margin:0 0 12px}.footer-column p{color:#c9c7bd;line-height:1.8;margin:0}.footer-column a,.footer-bottom a{color:#fff;text-decoration:none}.footer-column a:hover,.footer-bottom a:hover{color:#d5aa69}.footer-bottom{max-width:1250px;margin:18px auto 0;display:flex;justify-content:space-between;gap:20px;color:#969891;font-size:11px}.footer-bottom a{color:#c9c7bd}@media(max-width:800px){.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-identity{grid-column:1/-1}}@media(max-width:520px){.footer-main{grid-template-columns:1fr}.footer-bottom{display:block;line-height:2.1}}

/* Pied de page discret : logo reduit */
.site-footer{padding:38px clamp(24px,8vw,130px) 16px}.footer-main{padding-bottom:28px;gap:30px}.footer-logo{width:42px;height:42px}.footer-identity{gap:10px}.footer-identity b{font-size:20px}.footer-identity small{font-size:8px;letter-spacing:2px}.footer-identity p{font-size:12px;margin-top:10px}.footer-column h3{font-size:17px}.footer-column p{font-size:12px;line-height:1.6}.footer-bottom{margin-top:12px;font-size:10px}

/* Bandeau d information defilant global */
.site-ticker{height:34px;overflow:hidden;background:#101211;color:#f5f2ea;border-bottom:1px solid rgba(213,170,105,.55);position:relative;z-index:55}.ticker-track{height:100%;display:flex;width:max-content;align-items:center;animation:ticker-scroll 28s linear infinite}.ticker-track span{display:block;padding:0 70px;font-size:11px;letter-spacing:1px;white-space:nowrap}.ticker-track span:first-child{color:#d5aa69}@keyframes ticker-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}.site-ticker:hover .ticker-track{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;transform:none}.ticker-track span[aria-hidden="true"]{display:none}}

/* Bandeau important noir et rouge */
.site-ticker{background:#000;color:#ff2020;border-bottom:2px solid #d40000}.ticker-track span,.ticker-track span:first-child{color:#ff2020;font-weight:700;letter-spacing:1.2px;text-shadow:0 0 7px rgba(255,0,0,.3)}

/* Bandeau defilant continu, droite vers gauche */
.site-ticker{display:block;white-space:nowrap}.ticker-track{display:flex;align-items:center;width:max-content;min-width:max-content;will-change:transform;animation:ticker-infinite 24s linear infinite}.ticker-track span{flex:0 0 auto;width:max-content;padding:0 42px}.ticker-track span:first-child{padding-left:28px}@keyframes ticker-infinite{0%{transform:translateX(100vw)}100%{transform:translateX(-50%)}}

/* Un seul message a la fois, boucle fluide */
.ticker-track{animation:ticker-single 25s linear infinite}.ticker-track span{padding:0 24px}@keyframes ticker-single{0%{transform:translateX(100vw)}100%{transform:translateX(-100%)}}

/* Message du bandeau plus lisible */
.site-ticker{height:42px}.ticker-track span{font-size:15px;font-weight:800;letter-spacing:.8px}
@media(max-width:700px){.site-ticker{height:40px}.ticker-track span{font-size:13px}}

/* Contraste renforce pour le bandeau */
.site-ticker{height:50px;background:#000;border-bottom:3px solid #ff0000}.ticker-track{height:50px}.ticker-track span,.ticker-track span:first-child{font-size:18px;font-weight:900;color:#ff3b30;text-shadow:0 0 2px #000,0 0 10px rgba(255,0,0,.55)}
@media(max-width:700px){.site-ticker{height:48px}.ticker-track{height:48px}.ticker-track span,.ticker-track span:first-child{font-size:15px}}

/* Logo principal plus visible */
.site-header{min-height:132px;height:132px}.site-header .brand{min-width:190px}.site-header .brand-logo{width:170px;height:104px;object-fit:contain}.site-header .brand-location{font-size:10px;letter-spacing:4px;margin-top:-4px}.site-header .nav-link{padding-top:50px;padding-bottom:50px}
@media(max-width:900px){.site-header{min-height:92px;height:92px}.site-header .brand{min-width:120px}.site-header .brand-logo{width:112px;height:68px}.site-header .brand-location{font-size:8px}.site-header .nav-link{padding:30px 0}}

/* Adaptation mobile complete */
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  .site-header{height:auto;min-height:92px;padding:8px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;position:sticky}
  .site-header .brand{width:120px;min-width:120px;align-items:center}
  .site-header .brand-logo{width:108px;height:62px}
  .site-header nav{display:flex;order:3;width:100%;gap:22px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:0 2px}
  .site-header nav::-webkit-scrollbar{display:none}
  .site-header .nav-link{flex:0 0 auto;padding:12px 0 14px;font-size:12px;white-space:nowrap}
  .site-header .nav-link.active:after{bottom:7px}
  .site-header .head-actions{display:none!important}
  .site-ticker{height:44px}.ticker-track{height:44px}.ticker-track span{font-size:14px}
  .hero{min-height:640px;height:auto;padding:58px 22px 80px}
  #page-home>.hero{margin-top:0;min-height:640px;background-position:center;background-size:cover}
  .hero h1{font-size:56px;letter-spacing:-2px;margin-top:25px}
  .hero-text{font-size:15px;max-width:92%}.hero-actions{display:grid;gap:12px;align-items:stretch}.hero-actions button{width:100%}
  .section,.inner-page,.bar-intro,.bar-reservation,.bar-history,.menu-section{padding:58px 20px}
  .section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:42px}
  .event-grid,.history-album,.menu-grid,.legal-grid,.footer-main{grid-template-columns:1fr}
  .event-card{width:100%}.event-poster{height:300px}
  .calendar-layout{display:block}.calendar-card{padding:10px;overflow-x:auto}.calendar-grid,.weekdays{min-width:620px}.calendar-aside{margin-top:20px}
  .contract-official{padding:16px}.contract-official .contract-form-head{display:flex;align-items:center}.contract-official .contract-form-head h2{font-size:27px}.contract-official .cv-section,.contract-official .cv-clauses{font-size:15px}
  .clothing-promo{width:calc(100% - 32px);margin:15px auto 45px}.clothing-promo-image{height:250px}.clothing-promo-copy{padding:30px 22px;min-height:0}.clothing-promo-copy h2{font-size:40px}
  .bar-hero{min-height:560px;padding:70px 22px}.bar-hero h1{font-size:57px}.bar-contact{padding:42px 20px}.bar-contact .map-art{margin:32px -20px -42px;min-height:280px}
  .form-grid{grid-template-columns:1fr!important}.form-grid .wide{grid-column:auto}.primary-btn,.cream-btn{min-height:50px}
  .footer-main{gap:26px}.footer-identity{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:6px}
}

/* Nouvelle bannière officielle de l accueil */
#page-home>.hero{background-image:url("/static/hotel-victoria-home.png");background-position:center;background-size:cover;background-repeat:no-repeat}
@media(max-width:900px){#page-home>.hero{background-position:center;background-size:cover}}
.blocked-sq-meta{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.35}.blocked-sq-reason{min-height:1.2em}.blocked-form-fields small{display:block;color:var(--muted);font-size:11px;max-width:420px}.blocked-form-fields select,.blocked-form-fields input{width:100%}
/* Chaque jour est une case autonome : aucun jumelage vendredi/samedi. */
.calendar-grid{column-gap:0;row-gap:0;background:var(--paper)}
.calendar-grid .cal-day{border:1px solid var(--line);border-radius:0;margin:0}
.calendar-grid .cal-day.friday,.calendar-grid .cal-day.saturday{border-width:1px}

/* Cellule de calendrier public : numéro du jour et libellé toujours empilés. */
.cal-day>span{display:block;font-weight:700;line-height:1.2}
.cal-day small{display:block;margin-top:3px;font-size:10px;line-height:1.25;word-break:break-word}

/* Les 7 colonnes doivent rester strictement égales : minmax(0,1fr) empêche
   un libellé long (nowrap) d'élargir sa colonne et de décaler la grille. */
.weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-grid .cal-day{min-width:0}
.calendar-grid .cal-day>small{max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* Onglet sécurité : bandeau du mode consultation (barmaids). */
[hidden]{display:none!important}
.blocked-readonly-notice{margin:0 0 14px;padding:12px 16px;border-left:4px solid var(--gold);background:#fdf7e6;color:#6b5418;font-size:13px;line-height:1.5}
.blocked-codes-panel{margin:0 0 18px;padding:18px;border:1px solid var(--line);background:#fff}
.blocked-codes-panel h3{margin:0 0 14px;font:22px var(--serif)}
.blocked-code-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:12px;margin-bottom:10px;background:#f7f4ed}
.blocked-code-form label{flex:1 1 180px;min-width:0}
.blocked-code-form small{width:100%;color:var(--muted);font-size:12px}

/* Titres des boîtes de codes : dégradé appliqué au texte.
   La couleur unie reste la valeur de repli si background-clip:text
   n'est pas supporté — le titre ne doit jamais devenir invisible. */
.blocked-code-title{
  width:100%;margin:0 0 4px;
  font:600 21px/1.25 var(--serif);letter-spacing:.3px;
}
.blocked-code-title>b{font-weight:600}
.blocked-code-icon{font-style:normal;margin-right:8px;-webkit-text-fill-color:initial}
.blocked-code-title span{
  display:inline-block;margin-left:8px;
  font:700 9px/1 "DM Sans",sans-serif;letter-spacing:1.6px;text-transform:uppercase;
  vertical-align:middle;color:#fff;padding:5px 9px;border-radius:20px;
}
/* Accès complet : or → bronze */
.blocked-code-form--full .blocked-code-title>b{
  color:#9a7412;
  background:linear-gradient(90deg,#C9A017 0%,#e3c667 45%,#8a5a12 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.blocked-code-form--full .blocked-code-title>b{font-weight:600}
.blocked-code-icon{font-style:normal;margin-right:8px;-webkit-text-fill-color:initial}
.blocked-code-title span{
  background:linear-gradient(90deg,#C9A017,#8a5a12);
  -webkit-text-fill-color:#fff;
}
/* Lecture seule : vert → sarcelle */
.blocked-code-form--read .blocked-code-title>b{
  color:#1e6b4f;
  background:linear-gradient(90deg,#2d6a4f 0%,#4fae86 45%,#17554a 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.blocked-code-form--read .blocked-code-title>b{font-weight:600}
.blocked-code-icon{font-style:normal;margin-right:8px;-webkit-text-fill-color:initial}
.blocked-code-title span{
  background:linear-gradient(90deg,#2d6a4f,#17554a);
  -webkit-text-fill-color:#fff;
}
/* Barre de couleur sur le bord de chaque boîte, pour distinguer d'un coup d'œil */
.blocked-code-form{border-left:4px solid transparent}
.blocked-code-form--full{border-left-color:#C9A017}
.blocked-code-form--read{border-left-color:#2d6a4f}
/* Couleur originale de la partie « restez pour l’ambiance ». */
.hero h1 em{color:#C9A017}

/* Détails complets reçus des formulaires clients (téléphone, demande spéciale). */
.row-notes{display:block;margin-top:4px;font-style:normal;color:var(--ink);white-space:pre-wrap;word-break:break-word}
