html { scroll-behavior: smooth; }
body { margin: 0; background: #0A0E18; color: #EAEDF5; font-family: Jost, sans-serif; font-weight: 300; overflow-x: hidden; }
a { color: #8FA6F2; text-decoration: none; }
a:hover { color: #FFFFFF; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; word-break: normal; hyphens: auto; }

@keyframes defile { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes scrollnudge { 0%, 100% { transform: translateY(0); opacity: 0.5; } 50% { transform: translateY(6px); opacity: 1; } }
@keyframes glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(69,104,220,0.0); } 50% { box-shadow: 0 0 30px 4px rgba(69,104,220,0.25); } }

/* Icon system */
.luxeau-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.luxeau-icon-lg { width: 22px; height: 22px; }
.luxeau-icon-sm { width: 18px; height: 18px; }
.luxeau-check { color: #4568DC; }

/* Scroll indicator on hero */
.luxeau-scroll { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; color: #6B7490; font-family: Montserrat, sans-serif; font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; animation: scrollnudge 2.4s ease-in-out infinite; pointer-events: none; z-index: 2; }
.luxeau-scroll svg { width: 14px; height: 14px; opacity: 0.7; }

/* Trust bar */
.luxeau-trust { background: #080B14; border-top: 1px solid rgba(143,166,242,0.10); border-bottom: 1px solid rgba(143,166,242,0.10); padding: 22px 40px; }
.luxeau-trust-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-around; gap: 32px; flex-wrap: wrap; }
.luxeau-trust-item { display: flex; align-items: center; gap: 10px; color: #B9C2DB; font-size: 14px; letter-spacing: 0.04em; }
.luxeau-trust-item strong { color: #FFFFFF; font-family: Montserrat, sans-serif; font-weight: 700; letter-spacing: 0.04em; }
.luxeau-trust-item .luxeau-icon { color: #4568DC; width: 20px; height: 20px; }

/* Package card premium glow */
.luxeau-forfait-vedette { position: relative; }
.luxeau-forfait-vedette::before { content: ""; position: absolute; inset: -1px; border-radius: 21px; padding: 1px; background: linear-gradient(135deg, rgba(69,104,220,0.6), rgba(143,166,242,0.1), rgba(69,104,220,0.6)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; opacity: 0.85; }

/* Extras list icons */
.luxeau-extra-icon { color: #4568DC; opacity: 0.85; }

/* FAQ */
details summary::-webkit-details-marker { display: none; }
details summary { transition: color .2s; }
details[open] summary span:last-child { transform: rotate(45deg); color: #8FA6F2; }
details:hover { border-color: rgba(143,166,242,0.28) !important; }

/* Gallery hover polish */
.luxeau-gal { position: relative; transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s; }
.luxeau-gal img { transition: transform 0.6s cubic-bezier(0.22,1,0.36,1); }
.luxeau-gal:hover { box-shadow: 0 20px 60px rgba(69,104,220,0.25); }
.luxeau-gal:hover img { transform: scale(1.05); }

/* Hamburger (mobile) */
.luxeau-hamburger { display: none; background: none; border: none; padding: 0; cursor: pointer; width: 36px; height: 36px; align-items: center; justify-content: center; }
.luxeau-hamburger span { display: block; width: 22px; height: 2px; background: #EAEDF5; position: relative; transition: transform .3s, opacity .3s; }
.luxeau-hamburger span::before, .luxeau-hamburger span::after { content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: #EAEDF5; transition: transform .3s; }
.luxeau-hamburger span::before { top: -7px; }
.luxeau-hamburger span::after { top: 7px; }
.luxeau-hamburger.is-open span { background: transparent; }
.luxeau-hamburger.is-open span::before { transform: translateY(7px) rotate(45deg); }
.luxeau-hamburger.is-open span::after { transform: translateY(-7px) rotate(-45deg); }

.luxeau-drawer { display: none; position: fixed; inset: 0; z-index: 60; background: rgba(10,14,24,0.98); backdrop-filter: blur(10px); flex-direction: column; padding: 90px 32px 40px; gap: 22px; }
.luxeau-drawer.is-open { display: flex; }
.luxeau-drawer a { font-family: Montserrat, sans-serif; font-weight: 700; font-size: 22px; letter-spacing: 0.06em; color: #EAEDF5; text-transform: uppercase; }
.luxeau-drawer a.luxeau-drawer-cta { background: #4568DC; color: #FFFFFF; border-radius: 999px; padding: 14px 24px; text-align: center; margin-top: 12px; }
.luxeau-drawer .luxeau-drawer-phone { color: #B9C2DB; font-family: Jost, sans-serif; font-weight: 400; font-size: 18px; letter-spacing: 0.04em; text-transform: none; }
.luxeau-drawer .luxeau-drawer-lang { align-self: flex-start; margin-top: 14px; background: none; border: 1px solid rgba(143,166,242,0.4); color: #B9C2DB; border-radius: 999px; padding: 8px 18px; font-family: Jost, sans-serif; font-size: 13px; letter-spacing: 0.08em; }

/* Sticky mobile CTA bar */
.luxeau-sticky-cta { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; background: rgba(10,14,24,0.94); backdrop-filter: blur(14px); border-top: 1px solid rgba(143,166,242,0.14); padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); gap: 8px; }
.luxeau-sticky-cta a { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase; padding: 12px 6px; border-radius: 999px; text-decoration: none; }
.luxeau-sticky-cta .l-book { background: #4568DC; color: #FFFFFF; }
.luxeau-sticky-cta .l-call { background: transparent; color: #EAEDF5; border: 1px solid rgba(143,166,242,0.4); }
.luxeau-sticky-cta .l-gift { background: transparent; color: #EAEDF5; border: 1px solid rgba(143,166,242,0.4); }
.luxeau-sticky-cta svg { width: 14px; height: 14px; }

@media (max-width: 900px) {
  [data-mq~="navlinks"] { display: none !important; }
  [data-mq~="nav"] { padding: 10px 16px !important; }
  [data-mq~="navtel"] { display: none !important; }
  [data-mq~="navcta"] { display: none !important; }
  [data-mq~="navlang"] { display: none !important; }
  .luxeau-hamburger { display: inline-flex; }
  [data-mq~="hero"] { padding: 96px 20px 92px !important; min-height: auto !important; }
  [data-mq~="hero"] h1 { font-size: clamp(30px, 9vw, 44px) !important; line-height: 1.08 !important; hyphens: none !important; word-break: keep-all; }
  [data-mq~="hero"] p { font-size: 17px !important; }
  [data-mq~="herocar"] { display: none !important; }
  [data-mq~="herophoto"] { opacity: 0.55 !important; background-position: center 30% !important; }
  [data-mq~="hero"] h1, [data-mq~="hero"] p { text-shadow: 0 2px 12px rgba(0,0,0,0.55); }
  [data-mq~="section"] { padding: 64px 20px !important; }
  [data-mq~="padx"] { padding-left: 20px !important; padding-right: 20px !important; }
  [data-mq~="grid2"] { grid-template-columns: 1fr !important; gap: 36px !important; }
  [data-mq~="galerie"] { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 150px !important; gap: 10px !important; }
  [data-mq~="ba"] { aspect-ratio: 4 / 3 !important; border-radius: 14px !important; }
  [data-mq~="footbot"] { flex-direction: column !important; align-items: flex-start !important; gap: 18px !important; }
  [data-mq~="btnrow"] { width: 100%; }
  [data-mq~="btnrow"] > a { flex: 1 1 auto; text-align: center; min-width: 0; }
  body { padding-bottom: 68px; } /* room for sticky CTA */
  .luxeau-sticky-cta { display: flex; }
  .luxeau-scroll { bottom: 20px; font-size: 10px; }
  .luxeau-trust { padding: 20px 20px; }
  .luxeau-trust-inner { justify-content: flex-start; gap: 16px 24px; }
  .luxeau-trust-item { font-size: 13px; }
}

@media (max-width: 400px) {
  [data-mq~="hero"] h1 { font-size: 28px !important; letter-spacing: -0.01em; }
}
