/* Design « Néon » : boutique-hôtel urbain et bar à cocktails, nuit profonde, enseignes néon et carrelage noir et blanc. Unbounded + Inter. */
.d-neon {
  --cy: #3de8ff;
  --night: #0b0a12;
  --pink-l: color-mix(in oklab, var(--primary), #fff 38%);
  --on-primary: #14060d;
  --tube: 0 0 2px #fff, 0 0 6px var(--primary), 0 0 16px var(--primary), 0 0 36px color-mix(in oklab, var(--primary), transparent 45%);
  --tube-in: inset 0 0 8px color-mix(in oklab, var(--primary), transparent 40%);
  --tglow: 0 0 1px #fff, 0 0 8px var(--primary), 0 0 22px color-mix(in oklab, var(--primary), transparent 30%);
  --cglow: 0 0 1px #fff, 0 0 8px var(--cy), 0 0 22px rgba(61, 232, 255, .55);
  --checker: conic-gradient(#ecebf0 25%, var(--night) 0 50%, #ecebf0 0 75%, var(--night) 0);
  --brick: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='52'%3E%3Cpath d='M0 .75H60M0 26.75H60M.75 0V26M30.75 26V52' stroke='%23fff' stroke-opacity='.06' stroke-width='1.5'/%3E%3C/svg%3E");
  --bg: var(--night);
  --bg-soft: #110f1b;
  --surface: #17141f;
  --ink: #f4f0f8;
  --ink-2: #c6bfd2;
  --ink-3: #9f98ad;
  --line: rgba(255, 255, 255, .1);
  --head-w: 600;
  --h1-w: 700;
  --head-track: -.02em;
  --h1-track: -.035em;
  --footer-bg: #07060c;
  --shadow-sm: 0 2px 10px rgba(0, 0, 0, .5);
  --shadow: 0 20px 40px -18px rgba(0, 0, 0, .8);
  --shadow-lg: 0 40px 80px -30px rgba(0, 0, 0, .9);
  color-scheme: dark;
}
.d-neon ::selection { background: var(--primary); color: var(--on-primary); }
.d-neon :focus-visible { outline-color: var(--cy); }
.d-neon h3 { color: var(--ink); }

/* Boutons : tube rose et contour cyan */
.d-neon .btn-primary { background: var(--primary); color: var(--on-primary); box-shadow: 0 0 0 1px var(--pink-l) inset, 0 0 22px -2px var(--primary); }
.d-neon .btn-primary:hover { background: var(--pink-l); box-shadow: 0 0 0 1px #fff inset, 0 0 34px 0 var(--primary); }
.d-neon .btn-ghost { background: transparent; color: var(--cy); border-color: var(--cy); box-shadow: 0 0 12px -3px var(--cy), inset 0 0 10px -4px var(--cy); }
.d-neon .btn-ghost:hover { color: #fff; border-color: #fff; box-shadow: 0 0 20px -2px var(--cy), inset 0 0 12px -3px var(--cy); }
.d-neon .btn-white { background: #fff; color: var(--on-primary); }

/* Annonce + en-tête */
.d-neon .announce { background: var(--night); color: var(--pink-l); border-bottom: 1px solid color-mix(in oklab, var(--primary), transparent 60%); text-shadow: 0 0 10px color-mix(in oklab, var(--primary), transparent 40%); }
.d-neon .site-header { background: rgba(11, 10, 18, .82); border-bottom-color: var(--line); }
.d-neon .brand-mark { background: transparent; color: #fff; border: 2px solid var(--pink-l); box-shadow: var(--tube), var(--tube-in); border-radius: 50%; }
.d-neon .brand-mark .ic { filter: drop-shadow(0 0 4px var(--primary)); }
.d-neon .brand-text strong { font-size: 1.02rem; font-weight: 700; color: #fff; }
.d-neon .brand-stars { color: var(--cy); text-shadow: var(--cglow); }
.d-neon .nav a { color: var(--ink-2); white-space: nowrap; padding: .5em .7em; }
.d-neon .nav a:hover { background: transparent; color: #fff; text-shadow: var(--tglow); }
.d-neon .nav-toggle { background: transparent; border-color: var(--line); color: #fff; }

/* Bannière : mur de brique la nuit, enseigne néon, carrelage en perspective */
.d-neon .hero { background: radial-gradient(700px 420px at 78% 30%, color-mix(in oklab, var(--primary), transparent 82%), transparent 70%), radial-gradient(500px 320px at 0 100%, rgba(61, 232, 255, .08), transparent 70%), var(--night); }
.d-neon .hero h1 { color: #fff; font-size: clamp(2.1rem, 4.3vw, 3.6rem); line-height: 1.08; text-shadow: 0 0 40px color-mix(in oklab, var(--primary), transparent 55%); }
.d-neon .hero-sub { color: var(--ink-2); }
.d-neon .pill-badge { background: transparent; border: 1.5px solid var(--cy); color: var(--cy); box-shadow: 0 0 12px -3px var(--cy); text-transform: uppercase; letter-spacing: .14em; font-size: .74rem; }
.d-neon .pill-badge .dot { background: var(--cy); box-shadow: 0 0 8px 2px var(--cy); }
.d-neon .hero-art { background: radial-gradient(circle at 50% 40%, color-mix(in oklab, var(--primary), transparent 72%), transparent 55%), var(--brick), #1a1424; border: 1px solid var(--line); box-shadow: var(--shadow-lg); }
.d-neon .hero-art::before { background: linear-gradient(180deg, transparent 60%, rgba(0, 0, 0, .5)); z-index: 1; pointer-events: none; }
.d-neon .hero-art::after { content: ''; position: absolute; left: -30%; right: -30%; bottom: 0; height: 32%; background: var(--checker) 0 0 / 44px 44px; transform: perspective(260px) rotateX(48deg); transform-origin: bottom; opacity: .85; -webkit-mask: linear-gradient(transparent, #000 70%); mask: linear-gradient(transparent, #000 70%); }
.d-neon .art-ring { top: 42%; }
.d-neon .art-ring.r1 { width: 60%; border: 3px solid var(--pink-l); box-shadow: var(--tube), var(--tube-in); }
.d-neon .art-ring.r2 { width: 76%; border: 2px dashed rgba(61, 232, 255, .55); filter: drop-shadow(0 0 6px var(--cy)); }
.d-neon .art-cross { top: 42%; background: transparent; border: 0; backdrop-filter: none; }
.d-neon .art-cross .ic { stroke: #fff; filter: drop-shadow(0 0 3px var(--cy)) drop-shadow(0 0 12px var(--cy)); }
.d-neon .art-pill { background: rgba(11, 10, 18, .7); border: 1.5px solid var(--cy); color: var(--cy); box-shadow: 0 0 14px -2px var(--cy); }
.d-neon .art-pill.p2 { border-color: var(--pink-l); color: var(--pink-l); box-shadow: 0 0 14px -2px var(--primary); }
.d-neon .art-pill.p3 { border-color: #ffd23d; color: #ffd23d; box-shadow: 0 0 14px -2px #ffd23d; z-index: 2; }
.d-neon .art-pill .ic { filter: drop-shadow(0 0 4px currentColor); }
.d-neon .float-card { background: rgba(23, 20, 31, .88); border: 1px solid var(--line); color: var(--ink); z-index: 2; }
.d-neon .float-card > .ic { color: var(--pink-l); }

/* Points forts */
.d-neon .hl-grid { background: var(--surface); border-color: var(--line); box-shadow: 0 -2px 0 var(--pink-l), 0 -4px 18px -4px var(--primary), var(--shadow); }
.d-neon .ic-box { background: transparent; color: var(--cy); border: 1.5px solid var(--cy); box-shadow: 0 0 12px -3px var(--cy), inset 0 0 8px -3px var(--cy); }
.d-neon .ic-box .ic { filter: drop-shadow(0 0 3px var(--cy)); }

/* Titres : l'eyebrow s'allume */
.d-neon .eyebrow { color: var(--pink-l); text-shadow: var(--tglow); letter-spacing: .2em; }
.d-neon .sec-head h2, .d-neon .panel-head h2, .d-neon .legal h1 { color: #fff; }
.d-neon .lead, .d-neon .muted, .d-neon .prose { color: var(--ink-2); }

/* Chambres : enseigne sur mur de brique, sol damier */
.d-neon .room { background: var(--surface); border-color: var(--line); }
.d-neon .room:hover { border-color: color-mix(in oklab, var(--primary), transparent 55%); box-shadow: 0 0 30px -10px var(--primary); }
.d-neon .room-ph { background: radial-gradient(circle at 50% 42%, color-mix(in oklab, var(--primary), transparent 70%), transparent 45%), var(--brick), #1a1424; color: #fff; }
.d-neon .room-ph::after { content: ''; position: absolute; inset: auto 0 0; height: 22px; background: var(--checker) 0 0 / 22px 22px; }
.d-neon .room-ph .ic { width: 24%; translate: 0 -8%; filter: drop-shadow(0 0 3px var(--primary)) drop-shadow(0 0 12px var(--primary)); }
.d-neon .room-price { background: rgba(11, 10, 18, .85); color: var(--cy); border: 1.5px solid var(--cy); box-shadow: 0 0 12px -3px var(--cy); }
.d-neon .room-cat { color: var(--cy); }
.d-neon .room h3 { font-size: 1.08rem; }
.d-neon .room p, .d-neon .room-facts { color: var(--ink-2); }
.d-neon .room-facts .ic { color: var(--pink-l); }
.d-neon .room-book { color: var(--pink-l); }
.d-neon .room-book:hover { text-shadow: var(--tglow); }
.d-neon .pj-chip, .d-neon .pj-pager button { background: transparent; border-color: var(--line); color: var(--ink-2); }
.d-neon .pj-chip:hover, .d-neon .pj-pager button:hover:not(:disabled) { border-color: var(--cy); color: var(--cy); }
.d-neon .pj-chip.on, .d-neon .pj-pager button.on { background: var(--primary); border-color: var(--primary); color: var(--on-primary); box-shadow: 0 0 16px -3px var(--primary); }

/* La carte : ardoise du bar encadrée d'un tube néon */
.d-neon .menu-sec { background: var(--brick), var(--bg-soft); }
.d-neon .menu-board { background: #0d0b14; border: 2.5px solid var(--pink-l); border-radius: calc(var(--radius) * 1.6); box-shadow: var(--tube), var(--tube-in); }
.d-neon .menu-deco { display: block; position: absolute; top: -26px; left: 50%; translate: -50%; padding: 6px 16px; background: #0d0b14; color: var(--cy); }
.d-neon .menu-deco .ic { width: 38px; height: 38px; fill: none; stroke: #fff; filter: drop-shadow(0 0 3px var(--cy)) drop-shadow(0 0 10px var(--cy)); }
.d-neon .menu-group h3 { color: var(--cy); text-shadow: var(--cglow); border-bottom: 0; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .14em; padding-bottom: 14px; position: relative; }
.d-neon .menu-group h3::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--cy); box-shadow: 0 0 4px var(--cy), 0 0 14px var(--cy); opacity: .8; }
.d-neon .dish-line strong { color: #fff; }
.d-neon .dish-dots { border-bottom-color: rgba(255, 255, 255, .18); }
.d-neon .dish-price { color: var(--pink-l); text-shadow: 0 0 10px color-mix(in oklab, var(--primary), transparent 40%); font-family: var(--font-head); }
.d-neon .dish small, .d-neon .menu-note { color: var(--ink-3); }

/* Services, actualités */
.d-neon .card { background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)), var(--surface); border-color: var(--line); }
.d-neon .card::after { background: var(--pink-l); box-shadow: 0 0 12px var(--primary); }
.d-neon .card:hover { border-color: color-mix(in oklab, var(--primary), transparent 60%); box-shadow: 0 20px 50px -25px var(--primary); }
.d-neon .card:hover .ic-box { background: var(--cy); color: var(--night); }
.d-neon .card h3 { font-size: 1rem; }
.d-neon .card p, .d-neon .news-text { color: var(--ink-2); }
.d-neon .news-date { color: var(--cy); }

/* La maison : enseigne lumineuse sur brique */
.d-neon .about { background: var(--checker) top / 22px 22px repeat-x, var(--bg-soft); }
.d-neon .about-art { background: radial-gradient(circle at 50% 45%, color-mix(in oklab, var(--primary), transparent 72%), transparent 60%), var(--brick), #1a1424; border: 1px solid var(--line); color: #fff; }
.d-neon .about-art .ic { width: 30%; filter: drop-shadow(0 0 3px var(--cy)) drop-shadow(0 0 14px var(--cy)); }
.d-neon .about-art-name { color: #fff; font-size: 1.45rem; padding: .35em .9em; border: 2.5px solid var(--pink-l); border-radius: 999px; box-shadow: var(--tube), var(--tube-in); text-shadow: var(--tglow); }
.d-neon .stats div { background: rgba(255,255,255,.03); border-color: var(--line); }
.d-neon .stats dt { color: #fff; text-shadow: var(--tglow); font-weight: 700; }

/* Labels, avis, équipe */
.d-neon .trust { background: var(--bg-soft); }
.d-neon .trust-item, .d-neon .review { background: var(--surface); border-color: var(--line); }
.d-neon .trust-item p, .d-neon .review blockquote { color: var(--ink-2); }
.d-neon .trust-item h3 { font-size: .98rem; }
.d-neon .stars { color: #ffd23d; filter: drop-shadow(0 0 4px rgba(255, 210, 61, .6)); }
.d-neon .avatar { background: radial-gradient(circle at 50% 40%, color-mix(in oklab, var(--primary), transparent 75%), transparent 70%), var(--brick), #1a1424; border: 1.5px solid color-mix(in oklab, var(--primary), transparent 30%); box-shadow: 0 0 22px -6px var(--primary); }
.d-neon .avatar span { color: #fff; text-shadow: var(--tglow); }
.d-neon .review .avatar span { font-size: .78rem; }
.d-neon .review .avatar { border-width: 1.5px; box-shadow: 0 0 10px -2px var(--primary); }

/* Encadré : tube néon et bande de carrelage */
.d-neon .cta { background: var(--checker) bottom / 22px 22px repeat-x, radial-gradient(500px 260px at 90% 0, color-mix(in oklab, var(--primary), transparent 70%), transparent 70%), #15111e; padding-bottom: 74px; border: 2px solid var(--pink-l); box-shadow: var(--tube), var(--tube-in); }
.d-neon .cta h2 { text-shadow: 0 0 24px color-mix(in oklab, var(--primary), transparent 40%); }
.d-neon .cta-deco .ic { stroke: var(--cy); }
.d-neon .cta .btn-white { background: var(--primary); color: var(--on-primary); box-shadow: 0 0 24px -4px var(--primary); }

/* Réservation */
.d-neon .quote-sec { background: var(--bg-soft); }
.d-neon .quote-points .ic { background: transparent; color: var(--cy); border: 1.5px solid var(--cy); box-shadow: 0 0 10px -3px var(--cy); }
.d-neon .quote-call, .d-neon .f-check { color: var(--ink-2); }
.d-neon .quote-call a { color: var(--pink-l); }
.d-neon .quote-form { background: var(--surface); border-color: var(--line); box-shadow: 0 -2px 0 var(--cy), 0 -4px 18px -6px var(--cy), var(--shadow); }
.d-neon .f-field input, .d-neon .f-field select, .d-neon .f-field textarea { background: #0e0c15; border-color: rgba(255, 255, 255, .16); color: var(--ink); }
.d-neon .f-field input:focus, .d-neon .f-field select:focus, .d-neon .f-field textarea:focus { border-color: var(--pink-l); box-shadow: 0 0 0 3px color-mix(in oklab, var(--primary), transparent 75%), 0 0 16px -4px var(--primary); }
.d-neon .f-field small { color: var(--ink-3); }
.d-neon .form-msg.ok { color: #5ee69a; }
.d-neon .form-msg.ko { color: #ff8a8a; }

/* Alentours */
.d-neon .towns li { background: transparent; border-color: rgba(61, 232, 255, .45); color: var(--ink); }
.d-neon .towns .ic { color: var(--cy); }

/* Horaires & contact */
.d-neon .visit { background: var(--night); }
.d-neon .panel { background: var(--surface); border-color: var(--line); }
.d-neon .panel-head > .ic { background: transparent; color: var(--pink-l); border: 1.5px solid var(--pink-l); box-shadow: 0 0 12px -3px var(--primary); }
.d-neon .status-line, .d-neon .closures { background: rgba(255, 255, 255, .04); border: 1px solid var(--line); }
.d-neon .hours-table th, .d-neon .hours-table td { border-bottom-color: rgba(255, 255, 255, .08); }
.d-neon .hours-table td { color: var(--ink-2); }
.d-neon .hours-table tr.today th, .d-neon .hours-table tr.today td { color: var(--cy); }
.d-neon .hours-table tr.today th::after { background: var(--cy); color: var(--night); }
.d-neon .hours-table .closed { color: #ff8a8a; }
.d-neon .note .ic, .d-neon .contact-list li > .ic { color: var(--pink-l); }
.d-neon .contact-list a:hover { color: var(--cy); }
.d-neon .map { border-color: var(--line); background: var(--surface); }
.d-neon .map iframe { filter: invert(.9) hue-rotate(180deg) saturate(.6); }
.d-neon .map-pin { color: var(--on-primary); box-shadow: 0 0 20px -2px var(--primary); }

/* FAQ */
.d-neon .faq details { background: var(--surface); border-color: var(--line); }
.d-neon .faq details[open] { border-color: var(--pink-l); box-shadow: 0 0 18px -8px var(--primary); }
.d-neon .faq .plus { background: transparent; border: 1.5px solid var(--cy); color: var(--cy); }
.d-neon .faq details[open] .plus { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.d-neon .faq .answer { color: var(--ink-2); }

/* Pied de page : damier puis nuit */
.d-neon .site-footer { background: var(--checker) top / 22px 22px repeat-x, var(--footer-bg); padding-top: 96px; }
.d-neon .site-footer h3 { color: var(--cy); text-shadow: var(--cglow); }
.d-neon .socials a:hover { background: var(--primary); color: var(--on-primary); }
.d-neon .back-link { color: var(--pink-l); }

@media (max-width: 920px) {
  .d-neon .nav { background: #0f0d17; border-bottom-color: var(--line); }
  .d-neon .hl-item, .d-neon .hl-item:nth-child(odd) { border-color: var(--line); }
}
