
*{box-sizing:border-box}
html,body{margin:0;background:#000;color:#fff;font-family:Arial,Helvetica,sans-serif}
body{overflow-x:hidden}
.page{width:100%;min-height:100vh;background:#000;display:flex;flex-direction:column}

.header{
  height:128px;position:relative;background:#050505;border-bottom:1px solid #a77a12;
  flex:0 0 128px;
}
.logo-box{
  position:absolute;left:32px;top:8px;width:336px;height:104px;
  display:flex;align-items:center;justify-content:center;background:#050505;
}
.logo-box img{width:100%;height:100%;object-fit:contain}

.lang{
  position:absolute;right:42px;top:12px;display:flex;align-items:center;gap:0;
}
.lang a{
  width:auto;height:auto;min-width:0;display:block;
  border:0;background:transparent;color:#f2f2f2;text-decoration:none;
  position:relative;outline:none;padding:0 10px;font-size:14px;
}
.lang a::before{content:none!important;display:none!important}
.lang a::after{content:none!important;display:none!important}
.lang a:not(:last-child)::after{
  content:"│"!important;display:inline!important;position:static!important;
  margin-left:20px!important;color:#f2f2f2!important;
  background:none!important;border:0!important;box-shadow:none!important;
  filter:none!important;transform:none!important;opacity:1!important;
}
.lang a:hover,.lang a:focus,.lang a:focus-visible,.lang a:active{
  border:0;background:transparent;box-shadow:none;outline:0;
  animation:none;transform:none;filter:none;
}

.nav{
  position:absolute;right:42px;bottom:9px;display:flex;gap:10px;align-items:center;
}
.nav a{
  height:52px;padding:0 22px;display:flex;align-items:center;justify-content:center;
  border:1px solid #a77a12;background:#050505;color:#f2f2f2;
  text-decoration:none;position:relative;outline:none;font-size:14px;
}
.nav a::before{
  content:"";position:absolute;inset:-1px;border:1.35px solid rgba(180,135,24,.82);
  opacity:0;box-shadow:0 0 0 transparent;pointer-events:none;
  transition:opacity .18s ease,box-shadow .25s ease;
}
.nav a::after{
  content:"";position:absolute;left:50%;bottom:-5px;width:78px;height:10px;
  transform:translateX(-50%) scale(.72);transform-origin:center;border-radius:50%;
  opacity:0;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(255,249,220,.95) 0%,rgba(255,225,125,.78) 18%,rgba(218,166,35,.48) 42%,rgba(180,130,15,0) 72%);
  filter:blur(1.2px);
  box-shadow:0 0 7px rgba(226,178,47,.72),0 0 16px rgba(191,139,18,.52),0 0 24px rgba(170,120,12,.25);
  transition:opacity .18s ease,transform .28s ease;
}
.nav a:hover::before,.nav a:focus-visible::before{
  opacity:1;box-shadow:0 0 5px rgba(224,176,43,.78),0 0 12px rgba(190,139,20,.52),0 0 20px rgba(170,120,12,.24);
}
.nav a:hover::after,.nav a:focus-visible::after{
  opacity:1;transform:translateX(-50%) scale(1);filter:blur(1px);
}

.content{
  flex:1 0 auto;min-height:560px;padding:62px 7% 58px;
  background:#000;
}
.eyebrow{
  color:#C2A45F;font-size:20px;letter-spacing:.2px;margin-bottom:10px;
  text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 5px rgba(0,0,0,.4);
}
.content h1{
  margin:0 0 10px;font-size:46px;font-weight:400;line-height:1;color:#fff;
  text-shadow:0 2px 3px rgba(0,0,0,.9);
}
.content h2{
  margin:0 0 18px;font-size:30px;font-weight:400;line-height:1.1;color:#C2A45F;
  text-shadow:0 2px 3px rgba(0,0,0,.95),0 0 6px rgba(0,0,0,.4);
}
.intro{
  max-width:900px;color:#e6e6e6;font-size:17px;line-height:1.65;margin:0 0 34px;
}
.cardgrid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1120px;
}
.card{
  border:1px solid rgba(167,122,18,.75);background:#080808;
  padding:24px 26px;min-height:150px;
}
.card h3{
  color:#C2A45F;font-size:20px;font-weight:400;margin:0 0 10px;
}
.card p{
  color:#ddd;font-size:14px;line-height:1.55;margin:0;
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:28px;height:42px;padding:0 24px;
  border:1px solid rgba(167,122,18,.96);background:#000;color:#C2A45F;
  text-decoration:none;font-size:14px;position:relative;outline:none;
}
.btn:hover{box-shadow:0 0 8px rgba(190,139,20,.28)}

.footer{
  height:108px;
  border-top:1px solid #c99b1d;
  background:#050505;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:center;
  padding:0 5.5%;
}
.footer-col{height:100%;display:flex;flex-direction:column;justify-content:center}
.contact{text-align:left;align-items:flex-start}
.social{text-align:center;align-items:center}
.info{text-align:right;align-items:flex-end}
.footer h3{
  color:#C2A45F;font-size:14px;font-weight:400;
  margin:0 0 7px;line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.95);
}
.footer p,.footer a{
  color:#e2e2e2;font-size:12px;line-height:1.35;margin:0;text-decoration:none;
  text-shadow:0 1px 2px rgba(0,0,0,.9);
}
.social-icons{display:flex;gap:18px;align-items:center;justify-content:center}
.social-icons a{width:48px;height:44px;display:block}
.social-icons img{width:48px;height:44px;display:block;object-fit:contain}
.info p{white-space:nowrap}

/* Only the subpage content height is reduced so the footer begins at
   exactly the same vertical position as on the approved index. */
.subpage .content{
  /* exakt dieselbe Höhe wie das Index-Hero */
  flex:0 0 calc(100vw * 762 / 2048) !important;
  height:calc(100vw * 762 / 2048) !important;
  min-height:0 !important;
  overflow:auto !important;
  padding-bottom:40px !important;
}

@media(max-width:1100px){
  .logo-box{left:24px;width:300px}.nav{right:24px;gap:7px}.nav a{padding:0 14px}
  .lang{right:24px}.content{padding-left:5%;padding-right:5%}
}
@media(max-width:760px){
  .header{height:auto;min-height:82px;flex-basis:auto}
  .logo-box{position:relative;left:auto;top:auto;width:205px;height:70px;margin-left:12px}
  .lang{right:12px;top:15px}.lang a{font-size:11px;padding:0 6px}
  .lang a:not(:last-child)::after{margin-left:10px!important}
  .nav{position:relative;right:auto;bottom:auto;padding:8px 12px 12px;display:grid;grid-template-columns:1fr 1fr;background:#050505}
  .nav a{height:40px;padding:0;font-size:11px}
  .content{padding:40px 22px;min-height:0;height:auto !important;flex:1 0 auto !important;overflow:visible !important}
  .content h1{font-size:36px}.content h2{font-size:25px}.eyebrow{font-size:14px}
  .intro{font-size:15px}.cardgrid{grid-template-columns:1fr}
  .footer{height:auto;min-height:108px;grid-template-columns:1fr;gap:12px;padding:13px 18px;flex-basis:auto}
  .contact,.social,.info{align-items:flex-start;text-align:left}
  .social-icons{justify-content:flex-start}.info p{white-space:normal}
}

/* VIP SERVICES – uploaded Ibiza trailer as background, matching the index hero */
.vip-content{
  position:relative !important;
  overflow:hidden !important;
  background:#000 !important;
}
.vip-video-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  pointer-events:none;
}
.vip-video-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.38);
  z-index:1;
  pointer-events:none;
}
.vip-content > :not(.vip-video-bg):not(.vip-video-overlay){
  position:relative;
  z-index:2;
}


/* VIP footer icons – same approved effect as index */
body.vip-video-page .social-icons a{
  position:relative !important;
  outline:none !important;
}
body.vip-video-page .social-icons a::before{
  content:"" !important;
  position:absolute !important;
  inset:-1px !important;
  border:1px solid rgba(167,122,18,.8) !important;
  opacity:0 !important;
  box-shadow:0 0 0 transparent !important;
  pointer-events:none !important;
  transition:opacity .18s ease,box-shadow .25s ease !important;
}
body.vip-video-page .social-icons a::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  bottom:-4px !important;
  width:54px !important;
  height:8px !important;
  transform:translateX(-50%) scale(.72) !important;
  border-radius:50% !important;
  opacity:0 !important;
  pointer-events:none !important;
  background:radial-gradient(ellipse at center,rgba(255,240,165,.82) 0%,rgba(214,164,33,.42) 38%,rgba(180,130,15,0) 72%) !important;
  filter:blur(1px) !important;
  box-shadow:0 0 5px rgba(220,170,42,.45),0 0 10px rgba(184,133,18,.25) !important;
  transition:opacity .18s ease,transform .28s ease !important;
}
body.vip-video-page .social-icons a:hover::before,
body.vip-video-page .social-icons a:focus-visible::before{
  opacity:1 !important;
  box-shadow:0 0 3px rgba(220,170,42,.55),0 0 8px rgba(184,133,18,.32) !important;
}
body.vip-video-page .social-icons a:hover::after,
body.vip-video-page .social-icons a:focus-visible::after{
  opacity:1 !important;
  transform:translateX(-50%) scale(1) !important;
}

/* Additional pages */
.legal-links{
  display:flex;
  justify-content:center;
  gap:0;
  margin-top:34px;
}
.legal-links a{
  color:#C2A45F;
  text-decoration:none;
  font-size:13px;
  padding:0 14px;
}
.legal-links a:not(:last-child)::after{
  content:"│";
  color:#e2e2e2;
  margin-left:28px;
}
.legal-links a:hover{color:#fff}

.footer-legal-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  margin-top:5px;
  white-space:nowrap;
}
.footer-legal-links a{
  color:#e2e2e2;
  font-size:10px;
  text-decoration:none;
}
.footer-legal-links span{color:#C2A45F;font-size:10px}
.footer-legal-links a:hover{color:#C2A45F}
@media(max-width:760px){
  .footer-legal-links{justify-content:flex-start;white-space:normal;flex-wrap:wrap}
}

/* VIP video: tiny height reduction to eliminate page overflow/scrollbar */
body.vip-video-page{
  overflow-x:hidden !important;
}
body.vip-video-page .vip-video-bg{
  height:calc(100% - 3px) !important;
  max-height:calc(100% - 3px) !important;
}

/* VIP: no browser page scrollbar; video remains full visual background */
body.vip-video-page{overflow:hidden !important;}

/* FINAL VIP FIX: hero/video ends exactly above the footer */
html, body { margin:0 !important; }
body.vip-video-page { overflow:hidden !important; }
body.vip-video-page .page { height:100vh !important; min-height:100vh !important; overflow:hidden !important; }
body.vip-video-page .vip-content {
  flex:0 0 calc(100vh - 236px) !important;
  height:calc(100vh - 236px) !important;
  min-height:0 !important;
  max-height:calc(100vh - 236px) !important;
  overflow:hidden !important;
}
body.vip-video-page .vip-video-bg {
  height:100% !important;
  max-height:100% !important;
  width:100% !important;
  object-fit:cover !important;
}
body.vip-video-page .vip-video-overlay {
  height:100% !important;
}

/* Make the three legal pages directly reachable from every page. */
.footer-legal-links a,
.footer .info a[href="impress.html"],
.footer .info a[href="important.html"],
.footer .info a[href="jobs.html"] {
  cursor:pointer !important;
}

/* VIP SERVICES: service cards and back button intentionally removed */

/* MOBILE MENU */
.mobile-menu-toggle{
  display:none;
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:38px;
  padding:0;
  background:#050505;
  border:1px solid #C2A45F;
  color:#C2A45F;
  cursor:pointer;
  z-index:1001;
}
.mobile-menu-toggle span,
.mobile-menu-toggle span::before,
.mobile-menu-toggle span::after{
  display:block;
  width:20px;
  height:2px;
  background:#C2A45F;
  margin:auto;
  position:relative;
}
.mobile-menu-toggle span::before,
.mobile-menu-toggle span::after{
  content:"";
  position:absolute;
  left:0;
}
.mobile-menu-toggle span::before{top:-7px}
.mobile-menu-toggle span::after{top:7px}

.mobile-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:1000;
  background:rgba(0,0,0,.97);
  border-top:1px solid #C2A45F;
  border-bottom:1px solid #C2A45F;
  padding:8px 20px 12px;
}
.mobile-menu a{
  display:block;
  padding:10px 8px;
  color:#fff;
  text-decoration:none;
  font-size:13px;
  border-bottom:1px solid rgba(194,164,95,.28);
}
.mobile-menu a:last-child{border-bottom:0}
.mobile-menu a:hover{color:#C2A45F}

@media (max-width: 800px){
  .header{position:relative}
  .nav{display:none !important}
  .mobile-menu-toggle{display:block}
  .mobile-menu.open{display:block}
  .lang{right:82px !important}
}

/* FINAL MOBILE NAVIGATION */
.mobile-menu-toggle{display:none;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:46px;height:38px;padding:0;background:#050505;border:1px solid #C2A45F;color:#C2A45F;cursor:pointer;z-index:2001;}
.mobile-menu-toggle span,.mobile-menu-toggle span::before,.mobile-menu-toggle span::after{display:block;width:20px;height:2px;background:#C2A45F;margin:auto;position:relative;}
.mobile-menu-toggle span::before,.mobile-menu-toggle span::after{content:"";position:absolute;left:0;}
.mobile-menu-toggle span::before{top:-7px}.mobile-menu-toggle span::after{top:7px}
.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;z-index:2000;background:rgba(0,0,0,.98);border-top:1px solid #C2A45F;border-bottom:1px solid #C2A45F;padding:6px 18px 10px;}
.mobile-menu a{display:block!important;height:auto!important;padding:11px 8px!important;border:0!important;border-bottom:1px solid rgba(194,164,95,.25)!important;background:transparent!important;color:#fff!important;text-decoration:none!important;font-size:13px!important;}
.mobile-menu a:last-child{border-bottom:0!important}.mobile-menu a:hover{color:#C2A45F!important}
@media(max-width:800px){.nav{display:none!important}.mobile-menu-toggle{display:block!important}.mobile-menu.open{display:block!important}.header{position:relative!important}.lang{right:78px!important;top:15px!important}}

/* FINAL VIP HEIGHT */
body.vip-video-page{overflow:hidden!important}
body.vip-video-page .page{height:100vh!important;min-height:100vh!important;overflow:hidden!important}
body.vip-video-page .vip-content{position:relative!important;flex:1 1 auto!important;height:auto!important;min-height:0!important;overflow:hidden!important}
body.vip-video-page .vip-video-bg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
body.vip-video-page .vip-video-overlay{position:absolute!important;inset:0!important}
body.vip-video-page .vip-content>.content{position:relative!important;z-index:2!important;height:100%!important;min-height:0!important;padding-top:52px!important;overflow:hidden!important}
@media(max-width:760px){body.vip-video-page .vip-content>.content{padding:30px 22px!important}}

/* VIP VIDEO — restored */
body.vip-video-page { position:relative; overflow-x:hidden !important; }
body.vip-video-page .vip-video-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  z-index:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
  background:#000 !important;
}
body.vip-video-page .vip-video-bg video{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}
body.vip-video-page .header,
body.vip-video-page .content,
body.vip-video-page .footer{
  position:relative !important;
  z-index:2 !important;
}

/* FINAL VIDEO VISIBILITY FIX: VIP content must be transparent so the video behind it is visible. */
body.vip-video-page .vip-content > .content { background: transparent !important; }
body.vip-video-page .vip-content > video.vip-video-bg { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; z-index:0 !important; }
body.vip-video-page .vip-content > .vip-video-overlay { position:absolute !important; inset:0 !important; z-index:1 !important; }
body.vip-video-page .vip-content > .content { position:relative !important; z-index:2 !important; }

/* VIP: description repositioned only — all other elements remain unchanged */
body.vip-video-page .vip-description{
  max-width:760px !important;
  margin-top:8px !important;
  margin-bottom:0 !important;
  line-height:1.55 !important;
  font-size:17px !important;
  text-shadow:0 2px 3px rgba(0,0,0,.9) !important;
}
@media(max-width:760px){
  body.vip-video-page .vip-description{
    max-width:100% !important;
    font-size:15px !important;
    line-height:1.5 !important;
  }
}

/* BODYGUARDING FINAL DESKTOP MATCH – compact approved composition */
@media (min-width:801px){
  body.bodyguard-page .bg-hero{
    height:clamp(285px,18.61vw,307px) !important;
    aspect-ratio:auto !important;
    background-size:cover !important;
    background-position:center center !important;
  }
  body.bodyguard-page .bg-main{
    height:375px !important;
    min-height:375px !important;
    padding:12px 4.1% 12px !important;
    grid-template-columns:.88fr 1.12fr 1fr !important;
    gap:2.8% !important;
    align-items:stretch !important;
    overflow:hidden !important;
  }
  body.bodyguard-page .bg-photo{
    height:327px !important;
    align-self:start !important;
  }
  body.bodyguard-page .bg-photo img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#000 !important;
  }
  body.bodyguard-page .bg-col h2{font-size:clamp(22px,1.75vw,29px) !important;}
  body.bodyguard-page .bg-col p{font-size:clamp(13px,1.02vw,16px) !important;line-height:1.45 !important;margin-bottom:16px !important;}
  body.bodyguard-page .hero-text{left:66.2% !important;top:51% !important;width:30.5% !important;}
  body.bodyguard-page .hero-text h1,
  body.bodyguard-page .hero-text h2{font-size:clamp(34px,3.0vw,50px) !important;}
  body.bodyguard-page .hero-rule{width:96% !important;}
  body.bodyguard-page .slogan{height:0 !important;overflow:hidden !important;padding:0 !important;border:0 !important;}
  body.bodyguard-page .footer{height:108px !important;min-height:108px !important;flex:0 0 108px !important;}
}

/* BODYGUARDING: use the same full-page vertical frame as INDEX/VIP.
   Header and footer keep the original heights; the bodyguard content fills
   the remaining viewport so the footer sits at the same bottom position. */
@media (min-width:801px){
  body.bodyguard-page .page{
    min-height:100vh !important;
    height:100vh !important;
    overflow:hidden !important;
  }
  body.bodyguard-page .header{
    flex:0 0 128px !important;
    height:128px !important;
  }
  body.bodyguard-page .bg-wrap{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
  }
  body.bodyguard-page .bg-hero{
    flex:0 0 307px !important;
  }
  body.bodyguard-page .bg-main{
    flex:1 1 auto !important;
    height:auto !important;
    min-height:0 !important;
  }
  body.bodyguard-page .slogan{
    display:none !important;
  }
  body.bodyguard-page .footer{
    flex:0 0 108px !important;
    height:108px !important;
    min-height:108px !important;
  }
}

/* BODYGUARD FINAL FRAME: header/footer are fixed windows; only the center is flexible. */
@media (min-width:801px){
  html, body { height:100%; overflow:hidden !important; }
  body.bodyguard-page .page { position:relative !important; width:100vw !important; height:100vh !important; min-height:100vh !important; overflow:hidden !important; display:block !important; }
  body.bodyguard-page .page > .header { position:fixed !important; top:0 !important; left:0 !important; right:0 !important; width:100% !important; height:128px !important; min-height:128px !important; z-index:100 !important; }
  body.bodyguard-page .page > .footer { position:fixed !important; bottom:0 !important; left:0 !important; right:0 !important; width:100% !important; height:108px !important; min-height:108px !important; z-index:100 !important; }
  body.bodyguard-page .page > main.bg-wrap { position:absolute !important; top:128px !important; bottom:108px !important; left:0 !important; right:0 !important; width:100% !important; height:auto !important; min-height:0 !important; overflow:hidden !important; display:flex !important; flex-direction:column !important; }
  body.bodyguard-page .bg-hero { flex:0 0 307px !important; height:307px !important; }
  body.bodyguard-page .bg-main { flex:1 1 auto !important; height:auto !important; min-height:0 !important; overflow:hidden !important; }
}


/* ================================================================
   UNIVERSAL INDEX MASTER FRAME
   One fixed header + one fixed footer on every desktop page.
   All page-specific content lives exclusively in the center window.
   ================================================================ */
@media (min-width:801px){
  html, body{
    width:100%;
    height:100%;
    margin:0;
    overflow:hidden !important;
  }

  .page,
  .page.subpage{
    position:relative !important;
    width:100vw !important;
    height:100vh !important;
    min-height:100vh !important;
    overflow:hidden !important;
    display:block !important;
  }

  /* MASTER HEADER — identical on every page */
  .page > .header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:128px !important;
    min-height:128px !important;
    max-height:128px !important;
    flex:none !important;
    z-index:1000 !important;
  }

  /* MASTER FOOTER — identical on every page */
  .page > .footer{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100% !important;
    height:108px !important;
    min-height:108px !important;
    max-height:108px !important;
    flex:none !important;
    z-index:1000 !important;
  }

  /* MASTER CENTER WINDOW */
  .page > main,
  .page > .hero,
  .page > .vip-content{
    position:absolute !important;
    top:128px !important;
    left:0 !important;
    right:0 !important;
    bottom:108px !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    overflow:auto !important;
  }

  /* The homepage hero is the complete center surface. */
  .page > .hero{
    overflow:hidden !important;
    aspect-ratio:auto !important;
    background-size:100% 100% !important;
    background-position:center center !important;
  }

  /* Normal subpages: their existing content scrolls only inside the center. */
  .page.subpage > main.content{
    overflow:auto !important;
    padding:62px 7% 58px !important;
  }

  /* VIP: video stays entirely inside the center window. */
  body.vip-video-page .page > .vip-content{
    overflow:hidden !important;
  }
  body.vip-video-page .vip-video-bg{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  body.vip-video-page .vip-video-overlay{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
  }
  body.vip-video-page .vip-content > .content{
    height:100% !important;
    min-height:0 !important;
    overflow:auto !important;
    background:transparent !important;
  }

  /* Bodyguard: same center window; no special header/footer geometry. */
  body.bodyguard-page .page > main{
    top:128px !important;
    bottom:108px !important;
    overflow:auto !important;
  }
  body.bodyguard-page .bg-hero{
    flex:none !important;
  }
  body.bodyguard-page .bg-section{
    flex:none !important;
  }
  body.bodyguard-page .slogan{
    display:none !important;
  }
}


/* FINAL MASTER FRAME OVERRIDE — must be last. */
@media (min-width:801px){
  html,body{width:100% !important;height:100% !important;margin:0 !important;overflow:hidden !important;}
  .page{position:relative !important;width:100vw !important;height:100vh !important;min-height:100vh !important;max-height:100vh !important;overflow:hidden !important;display:block !important;}
  .page > .header{position:fixed !important;top:0 !important;left:0 !important;right:0 !important;width:100% !important;height:128px !important;min-height:128px !important;max-height:128px !important;margin:0 !important;z-index:10000 !important;}
  .page > .footer{position:fixed !important;left:0 !important;right:0 !important;bottom:0 !important;width:100% !important;height:108px !important;min-height:108px !important;max-height:108px !important;margin:0 !important;z-index:10000 !important;}
  .page > main{position:absolute !important;top:128px !important;left:0 !important;right:0 !important;bottom:108px !important;width:auto !important;height:auto !important;min-height:0 !important;max-height:none !important;margin:0 !important;overflow:auto !important;z-index:1 !important;}
  .page > .hero{position:absolute !important;top:128px !important;bottom:108px !important;left:0 !important;right:0 !important;width:auto !important;height:auto !important;margin:0 !important;}
  body.vip-video-page .page > .vip-content{position:absolute !important;top:128px !important;left:0 !important;right:0 !important;bottom:108px !important;width:auto !important;height:auto !important;min-height:0 !important;max-height:none !important;margin:0 !important;overflow:hidden !important;background:#000 !important;z-index:1 !important;}
  body.vip-video-page .vip-video-bg{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;max-height:none !important;object-fit:cover !important;z-index:0 !important;}
  body.vip-video-page .vip-video-overlay{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;z-index:1 !important;}
  body.vip-video-page .vip-content > .content{position:relative !important;z-index:2 !important;width:100% !important;height:100% !important;min-height:0 !important;margin:0 !important;overflow:auto !important;background:transparent !important;}
}

/* ============================================================
   ABS MASTER FRAME — SINGLE SOURCE OF TRUTH FOR ALL PAGES
   INDEX is the geometry master. Header/footer never participate
   in page flow; every page gets the identical center window.
   ============================================================ */
:root{
  --abs-header-h:128px;
  --abs-footer-h:108px;
}

@media (min-width:801px){
  html,body{
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    overflow:hidden !important;
  }

  .page{
    position:relative !important;
    width:100vw !important;
    height:100vh !important;
    min-height:100vh !important;
    max-height:100vh !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    overflow:hidden !important;
  }

  /* ONE header for every page */
  .page > .header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:var(--abs-header-h) !important;
    min-height:var(--abs-header-h) !important;
    max-height:var(--abs-header-h) !important;
    margin:0 !important;
    padding:0 !important;
    flex:none !important;
    z-index:10000 !important;
  }

  /* ONE footer for every page */
  .page > .footer{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100% !important;
    height:var(--abs-footer-h) !important;
    min-height:var(--abs-footer-h) !important;
    max-height:var(--abs-footer-h) !important;
    margin:0 !important;
    padding:0 5.5% !important;
    flex:none !important;
    z-index:10000 !important;
  }

  /* Every normal page: only this rectangle may scroll. */
  .page > main{
    position:absolute !important;
    top:var(--abs-header-h) !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--abs-footer-h) !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    overflow:auto !important;
    z-index:1 !important;
  }

  /* Homepage: its hero is the complete center window. */
  .page > .hero{
    position:absolute !important;
    top:var(--abs-header-h) !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--abs-footer-h) !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    overflow:hidden !important;
    z-index:1 !important;
  }

  /* VIP: video is clipped strictly to the same center rectangle. */
  body.vip-video-page .page > .vip-content{
    position:absolute !important;
    top:var(--abs-header-h) !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--abs-footer-h) !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    overflow:hidden !important;
    z-index:1 !important;
  }
  body.vip-video-page .vip-video-bg,
  body.vip-video-page .vip-video-overlay{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    max-height:none !important;
  }
  body.vip-video-page .vip-content > .content{
    position:relative !important;
    z-index:2 !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    margin:0 !important;
    overflow:auto !important;
    background:transparent !important;
  }

  /* Bodyguard and every other subpage use the identical center window. */
  .page.subpage > main{
    top:var(--abs-header-h) !important;
    bottom:var(--abs-footer-h) !important;
  }
}

/* ================================================================
   ABS MASTER FRAME V5 — FINAL / SINGLE SOURCE OF TRUTH
   INDEX is the geometry master. Header and footer are fixed windows.
   No page-specific rule may move them. Only the center may scroll.
   ================================================================ */
:root{--abs-master-header:128px;--abs-master-footer:108px}
@media (min-width:801px){
  html,body{
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  .page{
    position:relative !important;
    width:100vw !important;
    height:100vh !important;
    min-height:100vh !important;
    max-height:100vh !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    overflow:hidden !important;
  }
  /* MASTER HEADER: same physical window on every page */
  body .page > .header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:var(--abs-master-header) !important;
    min-height:var(--abs-master-header) !important;
    max-height:var(--abs-master-header) !important;
    margin:0 !important;
    padding:0 !important;
    z-index:100000 !important;
    box-sizing:border-box !important;
  }
  /* MASTER FOOTER: same physical window on every page */
  body .page > .footer,
  body.vip-video-page .page > .footer,
  body.bodyguard-page .page > .footer{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    width:100% !important;
    height:var(--abs-master-footer) !important;
    min-height:var(--abs-master-footer) !important;
    max-height:var(--abs-master-footer) !important;
    margin:0 !important;
    z-index:100000 !important;
    box-sizing:border-box !important;
  }
  /* ONE CENTER WINDOW for all normal pages */
  body .page > main,
  body .page > .hero,
  body .page > .vip-content{
    position:absolute !important;
    top:var(--abs-master-header) !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--abs-master-footer) !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
    z-index:1 !important;
  }
  body .page > main{overflow:auto !important;}
  body .page > .hero{overflow:hidden !important;}
  /* VIP is clipped strictly to the center window. */
  body.vip-video-page .page > .vip-content{
    overflow:hidden !important;
    background:#000 !important;
  }
  body.vip-video-page .page > .vip-content > .vip-video-bg{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    max-height:none !important;
    object-fit:cover !important;
    z-index:0 !important;
  }
  body.vip-video-page .page > .vip-content > .vip-video-overlay{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    z-index:1 !important;
  }
  body.vip-video-page .page > .vip-content > .content{
    position:relative !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    margin:0 !important;
    overflow:auto !important;
    background:transparent !important;
    z-index:2 !important;
  }
  /* Bodyguard uses exactly the same center window; no custom frame. */
  body.bodyguard-page .page > main{
    position:absolute !important;
    top:var(--abs-master-header) !important;
    left:0 !important;
    right:0 !important;
    bottom:var(--abs-master-footer) !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:auto !important;
  }
}


/* GLOBAL SOCIAL ICON HOVER EFFECT — matches the approved index.html */
.social-icons a{position:relative !important;outline:none !important;}
.social-icons a::before{content:"" !important;position:absolute !important;inset:-1px !important;border:1px solid rgba(167,122,18,.8) !important;opacity:0 !important;box-shadow:0 0 0 transparent !important;pointer-events:none !important;transition:opacity .18s ease,box-shadow .25s ease !important;}
.social-icons a::after{content:"" !important;position:absolute !important;left:50% !important;bottom:-4px !important;width:54px !important;height:8px !important;transform:translateX(-50%) scale(.72) !important;border-radius:50% !important;opacity:0 !important;pointer-events:none !important;background:radial-gradient(ellipse at center,rgba(255,240,165,.82) 0%,rgba(214,164,33,.42) 38%,rgba(180,130,15,0) 72%) !important;filter:blur(1px) !important;box-shadow:0 0 5px rgba(220,170,42,.45),0 0 10px rgba(184,133,18,.25) !important;transition:opacity .18s ease,transform .28s ease !important;}
.social-icons a:hover::before,.social-icons a:focus-visible::before{opacity:1 !important;box-shadow:0 0 3px rgba(220,170,42,.55),0 0 8px rgba(184,133,18,.32) !important;}
.social-icons a:hover::after,.social-icons a:focus-visible::after{opacity:1 !important;transform:translateX(-50%) scale(1) !important;}


/* ============================================================
   ABS HEADING MASTER — identical main heading treatment on all pages
   Based on the approved INDEX typography.
   ============================================================ */
@media (min-width:801px){
  .page > main.content,
  .page > main.vip-content{
    padding:62px 7% 58px !important;
  }

  .page > main.content h1,
  .page > main.vip-content h1,
  .page > main .object-title,
  .page > main .fw-title,
  .page > main .glevels-title{
    font-size:42px !important;
    font-weight:400 !important;
    line-height:1 !important;
    color:#fff !important;
    margin:0 0 8px !important;
    text-shadow:0 2px 3px rgba(0,0,0,.9) !important;
  }

  .page > main.content h2,
  .page > main.vip-content h2,
  .page > main .object-subtitle,
  .page > main .fw-subtitle{
    font-size:42px !important;
    font-weight:400 !important;
    line-height:1 !important;
    color:#C2A45F !important;
    margin:0 0 18px !important;
    text-shadow:0 2px 3px rgba(0,0,0,.95),0 0 8px rgba(0,0,0,.45) !important;
  }
}
@media (max-width:800px){
  .page > main.content h1, .page > main.vip-content h1,
  .page > main .object-title, .page > main .fw-title, .page > main .glevels-title{
    font-size:36px !important; font-weight:400 !important; line-height:1 !important; color:#fff !important;
  }
  .page > main.content h2, .page > main.vip-content h2,
  .page > main .object-subtitle, .page > main .fw-subtitle{
    font-size:30px !important; font-weight:400 !important; line-height:1.1 !important; color:#C2A45F !important;
  }
}

/* ABS FINAL TYPOGRAPHY + ACTIVE NAV EFFECT */
@media (min-width:801px){
  /* Main page titles */
  .page > main.content h1,
  .page > main.vip-content h1,
  .page > main .object-title,
  .page > main .fw-title,
  .page > main .glevels-title,
  .hero-copy h1,
  .hero h1 {
    font-size:42px !important; line-height:1 !important; font-weight:400 !important; color:#fff !important;
  }
  /* Main subtitles / section headings */
  .page > main.content h2,
  .page > main.vip-content h2,
  .page > main .object-subtitle,
  .page > main .fw-subtitle,
  .hero-copy h2,
  .hero h2,
  .bg-section h2,
  .event-panel h2 {
    font-size:30px !important; line-height:1.1 !important; font-weight:400 !important; color:#C2A45F !important;
  }
}


/* FINAL APPROVED ACTIVE TAB EFFECT — identical to VILLEN reference */
.nav a.active{background:linear-gradient(180deg,rgba(116,86,20,.48) 0%,rgba(91,67,13,.36) 52%,rgba(58,43,10,.28) 100%) !important;color:#eee8d8 !important;border-color:#a77a12 !important;box-shadow:0 0 7px rgba(167,122,18,.58),0 0 16px rgba(139,100,14,.34),inset 0 0 12px rgba(194,150,35,.10) !important;transform:none !important;}
.nav a.active::before{content:"" !important;position:absolute !important;inset:-1px !important;border:1.2px solid rgba(201,155,29,.82) !important;opacity:1 !important;box-shadow:0 0 5px rgba(201,155,29,.62),0 0 12px rgba(167,122,18,.30) !important;pointer-events:none !important;}
.nav a.active::after{content:"" !important;position:absolute !important;left:50% !important;bottom:-6px !important;width:92px !important;height:13px !important;transform:translateX(-50%) scale(1) !important;border-radius:50% !important;opacity:1 !important;background:radial-gradient(ellipse at center,rgba(245,224,165,.72) 0%,rgba(207,161,45,.58) 28%,rgba(167,122,18,.34) 52%,rgba(120,84,10,0) 100%) !important;filter:blur(1.1px) !important;box-shadow:0 0 8px rgba(205,157,28,.58),0 0 18px rgba(167,122,18,.34),0 0 30px rgba(120,84,10,.18) !important;pointer-events:none !important;}


/* FINAL STARTPAGE HERO EDGE FIX */
@media (min-width:801px){
  /* Extend only the homepage hero by 1px behind the fixed footer.
     The footer remains unchanged and stays above the hero. */
  body:not(.vip-video-page) .page > .hero{
    bottom:calc(var(--abs-master-footer) - 1px) !important;
  }
}
