/* The opening light continues along a scroll-driven path in the page margin. */
.page-magic{position:absolute;top:0;left:0;z-index:4;display:block;max-width:100%;pointer-events:none;overflow:hidden;opacity:0;color:var(--gold);stroke:none;transition:opacity .2s,color .3s}
.page-magic.is-active{opacity:var(--travel-opacity,1)}
.page-magic-guide{fill:none;stroke:none}
.page-magic-light{fill:none;stroke:url(#page-magic-fade);stroke-width:1.35}
.page-magic-dust{fill:currentColor;stroke:none;opacity:.5}
.page-magic-spark{fill:currentColor;stroke:none}
.page-magic.on-brand-surface{color:var(--gold-dark)}
.reduced-motion .page-magic{display:none}
@media(prefers-reduced-motion:reduce){.page-magic{display:none}}
.hero-stage{position:relative;isolation:isolate;min-height:740px;height:calc(100svh - 106px);max-height:1050px;display:flex;align-items:center;background:var(--paper);--scene-inset:0px;--scene-drift:0px}
.hero-stage .hero-scene{position:absolute;inset:0;margin:0;width:100%;height:100%;overflow:hidden;background:var(--dark);clip-path:inset(0 var(--scene-inset) round 3px);z-index:-1}
.scene-images{position:absolute;inset:-35px 0;transform:translateY(var(--scene-drift));overflow:hidden}
.hero-stage .hero-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:65% 54%;opacity:0;transform-origin:65% 50%}
.hero-stage .hero-photo.is-current{opacity:1}
.hero-stage .scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(32,28,23,.90) 0%,rgba(32,28,23,.79) 34%,rgba(32,28,23,.21) 76%),linear-gradient(0deg,rgba(32,28,23,.84),transparent 32%)}
.hero-stage .hero-copy{position:relative;text-align:left;padding:55px 0 130px;margin:0 auto;width:min(1248px,calc(100% - var(--gutter)*2));color:var(--paper);pointer-events:none}
.hero-stage h1{font-size:clamp(74px,7vw,96px);line-height:.96;letter-spacing:-.025em;text-wrap:initial}
.hero-stage h1 span{display:inline-block;color:#ead7ad;font-size:.69em;line-height:1.22;margin-top:10px;letter-spacing:-.02em}
.hero-stage .hero-copy>p{font-size:15px;color:var(--paper);max-width:445px;line-height:1.85;margin:25px 0 27px}
.hero-stage .hero-copy .button{background:var(--gold);color:var(--ink);border-color:var(--gold);pointer-events:auto;min-height:56px}
.hero-stage .hero-copy .button:hover{background:#edc96e;border-color:#edc96e;color:var(--ink)}
.hero-stage .hero-location{display:flex;align-items:center;gap:8px;color:var(--paper);font-size:12px;line-height:1.5;margin-top:19px}
.hero-location svg{width:14px;height:14px}
.hero-stage :focus-visible{outline-color:var(--paper)}
.magic-trail{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;stroke:none;overflow:hidden}
.trail-guide{fill:none;stroke:url(#trail-gold);stroke-width:.7;opacity:.46}
.trail-light{fill:none;stroke:url(#trail-gold);stroke-width:2;opacity:0}
.trail-particles{fill:#fff4d3;stroke:none}
.trail-spark{fill:#fff4d3;stroke:none;opacity:0}
.hero-bottom{position:absolute;left:max(var(--gutter),calc((100% - 1248px)/2));right:max(var(--gutter),calc((100% - 1248px)/2));bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:35px;color:var(--paper)}
.discover-link{display:inline-flex;align-items:center;gap:14px;font-size:12px;min-height:48px}
.discover-link svg{width:17px;height:17px;transition:transform .3s var(--ease)}
.discover-link:hover svg{transform:translateY(5px)}
.scroll-line{width:48px;height:1px;background:#ead7ad}
.scene-picker{display:flex;gap:20px}
.scene-choice{display:flex;align-items:center;gap:12px;min-height:62px;padding:0 0 10px;border:0;border-bottom:1px solid #c4b590;background:none;color:var(--paper);font-size:12px;font-weight:500;text-align:left;transition:border-color .25s}
.scene-choice img{width:65px;height:44px;object-fit:cover;opacity:.65;transition:opacity .3s}
.scene-choice svg{width:16px;height:16px;opacity:0;color:#ead7ad}
.scene-choice[aria-pressed=true]{border-bottom:2px solid #ead7ad}
.scene-choice[aria-pressed=true] img,.scene-choice:hover img{opacity:1}
.scene-choice[aria-pressed=true] svg{opacity:1}
.scene-choice:disabled{cursor:default}






.floating-enquiry{position:fixed;z-index:15;bottom:24px;right:24px;opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;border-color:var(--paper);transition:opacity .25s,transform .3s var(--ease),visibility .25s,background .25s}
.floating-enquiry.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.floating-enquiry>svg:first-child{fill:currentColor;stroke:none;width:19px;height:19px}

@media(min-width:1600px){.hero-stage .hero-copy{width:min(1440px,calc(100% - var(--gutter)*2))}.hero-bottom{left:max(var(--gutter),calc((100% - 1440px)/2));right:max(var(--gutter),calc((100% - 1440px)/2))}}
@media(max-width:1150px){.hero-stage{min-height:760px}.hero-stage .hero-copy{padding-bottom:140px}.hero-stage h1{font-size:88px}.scene-picker{gap:16px}.scene-choice{gap:8px}.scene-choice img{width:52px;height:40px}.discover-link{gap:10px}.scroll-line{width:28px}}
@media(max-width:1020px){.hero-stage{height:calc(100svh - 88px);min-height:780px}.hero-stage .hero-copy{padding-top:35px}.hero-stage h1{font-size:82px}.hero-stage .scene-shade{background:linear-gradient(90deg,rgba(32,28,23,.9),rgba(32,28,23,.58) 65%,rgba(32,28,23,.28)),linear-gradient(0deg,rgba(32,28,23,.86),transparent 40%)}.hero-bottom{flex-wrap:wrap;gap:22px}.scene-picker{margin-left:auto}.discover-link{font-size:12px}.hero-stage .hero-copy>p{font-size:15px}}
@media(max-width:700px){.hero-stage{min-height:760px}.hero-stage .hero-copy{padding-bottom:205px}.hero-bottom{flex-direction:column;align-items:stretch;bottom:24px;gap:19px}.scene-picker{margin:0;gap:22px;order:-1}.scene-choice{flex:1;font-size:12px;gap:9px}.scene-choice svg{margin-left:auto}.discover-link{justify-content:center}.scroll-line{display:none}.floating-enquiry{bottom:15px;right:15px;min-height:48px;font-size:12px;padding:12px 16px;gap:13px}}
@media(max-width:600px){.hero-stage{height:calc(100svh - 86px);min-height:735px;max-height:950px}.hero-stage .hero-copy{padding:32px 0 220px;width:calc(100% - var(--gutter)*2)}.hero-stage h1{font-size:clamp(54px,14.5vw,78px);line-height:1}.hero-stage h1 span{font-size:.64em;margin-top:13px;white-space:nowrap}.hero-stage .hero-copy>p{font-size:14px;line-height:1.85;max-width:350px;margin:23px 0}.hero-stage .hero-copy .button{font-size:12px;min-height:52px;padding:15px 17px;gap:17px}.hero-stage .hero-location{font-size:12px;margin-top:17px}.hero-stage .hero-photo{object-position:61% center}.hero-stage .scene-shade{background:linear-gradient(90deg,rgba(32,28,23,.86),rgba(32,28,23,.61)),linear-gradient(0deg,rgba(32,28,23,.88),transparent 38%)}.magic-trail{left:0;width:100%;opacity:.65}.scene-choice img{width:51px;height:38px}.scene-choice{min-height:56px}.hero-bottom{gap:12px}.confidence-strip{padding-block:27px}}
@media(prefers-reduced-motion:reduce){.hero-stage .hero-scene{clip-path:none}.scene-images{transform:none}.magic-trail{display:none}.hero-photo{transform:none!important;filter:none!important}}
.reduced-motion .hero-stage .hero-scene{clip-path:none}.reduced-motion .scene-images{transform:none}.reduced-motion .magic-trail{display:none}
@media(max-width:380px){.scene-choice img{display:none}.scene-choice{gap:9px}.scene-picker{gap:22px}}

/* A short architectural finale: the signature sits between real photographic layers. */
.site-footer{padding:0;background:var(--paper);--finale-type-y:0px;--finale-type-scale:1;--finale-light:0}
.footer-scene{position:relative;isolation:isolate;height:clamp(700px,57vw,960px);overflow:hidden;background:var(--paper)}
.footer-landscape{position:absolute;inset:0;pointer-events:none;user-select:none;overflow:hidden}
.footer-panorama,.footer-video,.footer-foreground{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center bottom;transform:none;transform-origin:center bottom}
.footer-panorama{z-index:0}
.footer-video{z-index:0;opacity:0;transition:opacity .65s}
.footer-scene.video-ready .footer-video{opacity:1}
.footer-foreground{z-index:2}
.footer-wordmark{position:absolute;z-index:1;top:45%;left:0;width:100%;margin:0;text-align:center;white-space:nowrap;font-family:var(--display);font-size:clamp(100px,16.2vw,280px);font-weight:400;line-height:1;letter-spacing:-.04em;color:var(--gold-dark);transform:translateY(var(--finale-type-y)) scale(var(--finale-type-scale));transform-origin:center bottom}
.footer-invitation{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;text-align:center;padding:38px var(--gutter) 0}
.footer-fairy{position:relative;display:block;width:58px;height:61px;margin-bottom:15px}
.footer-fairy .fairy-mark{position:absolute;left:7px;top:0;transform:scale(1.2);transform-origin:center top}
.footer-arrival{position:absolute;top:0;right:-6px;width:17px;height:17px;fill:var(--gold);stroke:none;opacity:calc(.18 + var(--finale-light)*.82);transform:scale(calc(.7 + var(--finale-light)*.3))}
.footer-invitation h2{margin:0;font-size:clamp(40px,3.8vw,60px);line-height:1.08;letter-spacing:-.025em}
.footer-invitation h2 em{font-style:normal;color:var(--gold-dark)}
.footer-invitation .button{margin-top:24px;min-height:52px}
.footer-scene-caption{position:absolute;z-index:3;bottom:0;left:0;width:100%;margin:0;padding:45px var(--gutter) 25px;text-align:center;font-size:12px;color:var(--paper);background:linear-gradient(transparent,rgba(32,28,23,.86))}
.footer-navigation{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:39px 30px}
.footer-navigation nav{display:flex;align-items:center;gap:30px;font-size:12px}
.footer-navigation nav a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:5px}
.footer-navigation nav a:hover{text-decoration:underline;color:var(--gold-dark)}
.footer-navigation>.text-link{font-size:12px}
.footer-details .footer-bottom{align-items:center;padding-block:12px}
.footer-bottom>a{display:inline-flex;align-items:center;gap:10px;min-height:44px}
.footer-bottom>a svg{width:16px;height:16px}
.reduced-motion .site-footer{--finale-light:1!important}
.reduced-motion .footer-panorama,.reduced-motion .footer-foreground,.reduced-motion .footer-wordmark{transform:none}
@media(min-width:1800px){.footer-invitation{padding-top:60px}.footer-fairy{margin-bottom:24px}.footer-invitation .button{margin-top:30px}}
@media(max-width:1020px){.footer-scene{height:720px}.footer-wordmark{top:51%;font-size:17vw}.footer-invitation{padding-top:32px}.footer-invitation h2{font-size:48px}.footer-navigation{flex-wrap:wrap;gap:20px}.footer-navigation nav{gap:25px;order:3;width:100%;justify-content:space-between}.footer-details .footer-bottom{flex-wrap:wrap;gap:8px 22px}}
@media(max-width:600px){.footer-scene{height:650px}.footer-invitation{padding-top:30px}.footer-fairy{margin-bottom:20px}.footer-invitation h2{font-size:clamp(32px,8.8vw,44px);line-height:1.12}.footer-invitation .button{font-size:12px;padding:15px 17px;gap:15px;margin-top:23px}.footer-panorama,.footer-video,.footer-foreground{width:185%;left:-42.5%;object-fit:cover;object-position:center bottom}.footer-wordmark{top:70%;font-size:17vw;letter-spacing:-.04em;color:var(--paper);text-shadow:0 2px 16px rgba(32,28,23,.7)}.footer-scene-caption{font-size:12px;padding:45px 30px 23px}.footer-navigation{display:grid;grid-template-columns:1fr;padding-block:32px 23px;gap:20px}.footer-navigation>.brand{justify-self:center}.footer-navigation nav{flex-wrap:wrap;justify-content:center;column-gap:22px;row-gap:0;order:0}.footer-navigation>.text-link{justify-self:center}.footer-details .footer-bottom{align-items:center;text-align:center;gap:3px;padding-block:20px}.footer-details .footer-bottom>a{align-self:center;margin-top:5px}}
@media(max-width:380px){.footer-wordmark{top:72%}}
@media(prefers-reduced-motion:reduce){.footer-panorama,.footer-foreground,.footer-wordmark{transform:none}.footer-arrival{opacity:1;transform:none}}

/* The landscape plays only in view; its pause control stays outside decorative layers. */
@media(prefers-reduced-motion:reduce){.footer-video{display:none!important}}
.reduced-motion .footer-video{display:none!important}
.footer-type-layer{position:absolute;inset:0;z-index:1}
@supports (mask-composite:exclude){
  /* Invert the photographic alpha around the text so one uninterrupted video animates both planes. */
  .footer-type-layer{mask-image:linear-gradient(#fff,#fff),url('assets/luxembourg-foreground.webp');mask-mode:alpha;mask-size:cover;mask-position:center bottom;mask-repeat:no-repeat;mask-composite:exclude}
  .footer-foreground{display:none}
}
