:root{
  --navy:#061524;
  --navy-2:#09233d;
  --blue:#0aa7f4;
  --gold:#d6a536;
  --gold-2:#f2c96d;
  --cream:#f5efe3;
  --paper:#fffaf0;
  --ink:#111418;
  --muted:#c7d2df;
  --border:rgba(255,255,255,.14);
  --shadow:0 28px 80px rgba(0,0,0,.35);
  --serif:Georgia,'Times New Roman',serif;
  --sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:#fff;font-family:var(--sans);overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.skip-link{position:absolute;left:-999px;top:auto}.skip-link:focus{left:20px;top:20px;z-index:9999;background:#fff;color:#000;padding:12px 16px;border-radius:10px}
.site-header{position:sticky;top:0;z-index:1000;height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6vw,120px);background:rgba(4,14,24,.95);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.12)}
.brand img{width:clamp(145px,12vw,190px)}
.main-nav{display:flex;gap:32px;align-items:center;font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.main-nav a{opacity:.9}.main-nav a:hover{color:var(--gold)}
.header-actions{display:flex;align-items:center;gap:12px}.lang-toggle{height:39px;min-width:42px;border:2px solid #fff;background:#fff;color:#000;border-radius:8px;font-weight:900;cursor:pointer}.call-btn{border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:15px 26px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.call-btn:hover,.btn:hover,.small-link:hover{transform:translateY(-2px)}
.menu-toggle{display:none;width:46px;height:42px;border:1px solid var(--border);border-radius:12px;background:transparent}.menu-toggle span{display:block;width:20px;height:2px;background:#fff;margin:5px auto;border-radius:2px}
.hero{position:relative;min-height:calc(100vh - 86px);display:flex;align-items:center;overflow:hidden;background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(3,16,28,.58) 45%,rgba(5,17,30,.45) 100%),url('../img/antigua-hero.webp');background-size:cover;background-position:center;isolation:isolate}.hero:after{content:"";position:absolute;inset:auto 0 0 0;height:44%;background:linear-gradient(0deg,var(--navy) 0%,rgba(6,21,36,.62) 48%,transparent 100%);z-index:1}.hero-shade{position:absolute;inset:0;background:radial-gradient(circle at 75% 35%,rgba(214,165,54,.13),transparent 30%),radial-gradient(circle at 6% 92%,rgba(10,167,244,.18),transparent 28%);z-index:1}.hero-content{position:relative;z-index:4;width:min(760px,90vw);margin-left:clamp(22px,7vw,128px);padding:70px 0}.eyebrow{margin:0 0 18px;color:var(--gold-2);font-size:13px;font-weight:950;letter-spacing:.18em;text-transform:uppercase}.hero h1{margin:0;color:#fff;font-family:var(--serif);font-weight:900;font-size:clamp(56px,7vw,118px);line-height:.9;letter-spacing:-.05em;text-wrap:balance;text-shadow:0 10px 45px rgba(0,0,0,.4)}.hero-text{width:min(630px,100%);font-size:clamp(16px,1.35vw,21px);line-height:1.55;color:rgba(255,255,255,.88);margin:28px 0}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:17px 26px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;transition:.25s ease}.btn-gold{background:linear-gradient(135deg,var(--gold),#b88317);box-shadow:0 16px 40px rgba(214,165,54,.28)}.btn-ghost{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08)}.worldcup-card{display:block;width:min(420px,100%);margin-top:28px;padding:20px 24px;border:1px solid rgba(214,165,54,.62);background:rgba(4,17,30,.62);border-radius:14px;box-shadow:var(--shadow)}.worldcup-card strong{display:block;font-size:18px;margin-bottom:8px}.worldcup-card span{color:rgba(255,255,255,.86)}
.hero-ball-wrap{position:absolute;right:clamp(42px,8vw,165px);top:52%;transform:translateY(-50%);z-index:3;pointer-events:none}.hero-ball{width:clamp(260px,26vw,455px);opacity:.9;filter:drop-shadow(0 0 34px rgba(10,167,244,.22)) drop-shadow(0 28px 45px rgba(0,0,0,.45));animation:spinBall 13s linear infinite}.hero-ball-wrap:before{content:"";position:absolute;left:-220px;top:48%;width:310px;height:10px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(214,165,54,.8),rgba(10,167,244,.55),transparent);filter:blur(5px);transform:rotate(-7deg);opacity:.72}@keyframes spinBall{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.feature-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:linear-gradient(90deg,#061524,#092b4a,#061524);border-top:1px solid rgba(214,165,54,.35);border-bottom:1px solid rgba(255,255,255,.12);padding:34px clamp(20px,7vw,128px)}.feature-strip article{display:flex;gap:18px;padding:0 26px;border-right:1px solid rgba(255,255,255,.15)}.feature-strip article:last-child{border-right:0}.feature-strip span{font-size:34px}.feature-strip h3{margin:0 0 10px;font-size:16px;text-transform:uppercase}.feature-strip p{margin:0;color:rgba(255,255,255,.82);line-height:1.45}
.section{padding:86px clamp(20px,7vw,128px)}.section-head{text-align:center;margin-bottom:44px}.section h2,.split-content h2,.worldcup-copy h2,.cta-card h2{font-family:var(--serif);font-size:clamp(42px,5vw,76px);line-height:1;letter-spacing:-.035em;margin:0;color:inherit}.menu-section{background:var(--cream);color:var(--ink)}.menu-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:24px}.menu-card{background:#fff;border-radius:16px;overflow:hidden;text-align:center;box-shadow:0 18px 45px rgba(30,20,7,.12);transition:.25s ease}.menu-card:hover{transform:translateY(-6px)}.menu-card img{width:100%;height:180px;object-fit:cover;object-position:center}.menu-card h3{font-family:var(--serif);font-size:22px;margin:16px 12px 4px}.menu-card p{margin:0 12px 22px;color:#6b6258}
.split-section{display:grid;grid-template-columns:1fr 1fr;min-height:520px;background:#071727}.split-image{min-height:520px;background-size:cover;background-position:center}.bakery-bg{background-image:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.42)),url('../img/pan-dulce.jpg')}.split-content{display:flex;flex-direction:column;justify-content:center;padding:70px clamp(28px,6vw,100px)}.split-content p:not(.eyebrow){font-size:18px;line-height:1.7;color:rgba(255,255,255,.8);max-width:620px}.split-content .btn{width:max-content}
.worldcup-section{position:relative;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:70px;background:#092b4a;padding:90px clamp(20px,9vw,180px);overflow:hidden}.worldcup-ball-side img{width:min(420px,42vw);margin:auto;animation:spinBall 16s linear infinite;filter:drop-shadow(0 28px 50px rgba(0,0,0,.38))}.worldcup-copy p:not(.eyebrow){font-size:19px;line-height:1.7;color:rgba(255,255,255,.86);max-width:760px}.chips{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.chips span{padding:11px 16px;border:1px solid rgba(214,165,54,.65);border-radius:999px;font-weight:850;background:rgba(255,255,255,.04)}
.locations-section{background:#061524}.locations-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.location-card{padding:34px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));box-shadow:var(--shadow)}.location-card h3{font-family:var(--serif);font-size:29px;color:var(--gold-2);margin:0 0 20px}.location-card p{color:rgba(255,255,255,.85);line-height:1.55}.small-link{display:inline-flex;margin-top:10px;color:var(--gold-2);font-weight:950;text-transform:uppercase;letter-spacing:.04em;transition:.25s ease}.cta-section{background:linear-gradient(180deg,#061524,#03101d);padding:86px 20px}.cta-card{width:min(980px,100%);margin:auto;text-align:center;border:1px solid rgba(214,165,54,.45);border-radius:24px;padding:58px 30px;background:radial-gradient(circle at top,rgba(214,165,54,.14),transparent 45%),rgba(255,255,255,.04);box-shadow:var(--shadow)}.cta-card p:not(.eyebrow){color:rgba(255,255,255,.82);font-size:18px}.center{justify-content:center}.floating-call{position:fixed;right:24px;bottom:24px;z-index:999;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#d6a536,#0aa7f4);box-shadow:0 18px 40px rgba(10,167,244,.35);font-size:28px}.site-footer{text-align:center;padding:48px 20px;background:#030b13;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7)}.site-footer img{width:150px;margin:0 auto 18px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}
@media (max-width:1180px){.main-nav{gap:18px}.menu-grid{grid-template-columns:repeat(3,1fr)}.feature-strip{grid-template-columns:repeat(2,1fr);gap:24px}.feature-strip article{border-right:0}.hero-ball-wrap{right:-35px}.hero-ball{width:330px;opacity:.62}.locations-grid{grid-template-columns:1fr}.worldcup-section{grid-template-columns:1fr;text-align:center}.worldcup-ball-side img{width:310px}.chips{justify-content:center}.split-section{grid-template-columns:1fr}.split-image{min-height:330px}}
@media (max-width:820px){.site-header{height:76px;padding:0 18px}.brand img{width:130px}.menu-toggle{display:block;order:3}.main-nav{position:fixed;top:76px;left:0;right:0;display:none;flex-direction:column;gap:0;background:#030b13;border-bottom:1px solid var(--border);padding:10px 20px 22px}.main-nav.is-open{display:flex}.main-nav a{width:100%;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.08)}.header-actions{margin-left:auto}.call-btn{display:none}.hero{min-height:760px;align-items:flex-start;background-position:center}.hero-content{margin:0;padding:70px 22px 30px;width:100%}.hero h1{font-size:clamp(48px,16vw,76px)}.hero-ball-wrap{right:-105px;top:auto;bottom:56px;transform:none}.hero-ball{width:270px;opacity:.34}.hero-ball-wrap:before{display:none}.worldcup-card{max-width:360px}.feature-strip{grid-template-columns:1fr;padding:30px 22px}.feature-strip article{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1)}.menu-grid{grid-template-columns:1fr}.menu-card img{height:230px}.section{padding:66px 22px}.section h2,.split-content h2,.worldcup-copy h2,.cta-card h2{font-size:clamp(38px,12vw,56px)}.split-content{padding:60px 22px}.worldcup-section{padding:64px 22px}.floating-call{width:56px;height:56px;right:18px;bottom:18px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Interactive World Cup ball kick */
.btn-kick{
  border:1px solid rgba(214,165,54,.72);
  color:#061524;
  background:linear-gradient(135deg,#f2c96d,#d6a536);
  cursor:pointer;
  font:inherit;
  box-shadow:0 14px 35px rgba(214,165,54,.25);
}
.btn-kick:hover{transform:translateY(-2px);filter:brightness(1.04)}
.hero-ball-wrap.is-kicked{
  animation:heroBallKickDesktop 1.45s cubic-bezier(.2,.75,.15,1) forwards;
}
.hero-ball-wrap.is-kicked .hero-ball{
  animation:heroBallSpinKick 1.45s linear forwards;
}
.hero-ball-wrap.is-kicked::after{
  content:"";
  position:absolute;
  inset:45% auto auto -90px;
  width:260px;
  height:5px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(214,165,54,.95),rgba(10,167,244,.7),transparent);
  filter:blur(.2px);
  opacity:.9;
  animation:kickTrail 1.45s ease-out forwards;
}
@keyframes heroBallKickDesktop{
  0%{right:6%;top:50%;transform:translateY(-50%) scale(1)}
  48%{right:2%;top:17%;transform:translateY(-50%) scale(.78)}
  65%{right:1.5%;top:14%;transform:translateY(-50%) scale(.72)}
  100%{right:6%;top:50%;transform:translateY(-50%) scale(1)}
}
@keyframes heroBallSpinKick{
  0%{transform:rotate(0deg)}
  48%{transform:rotate(950deg)}
  65%{transform:rotate(1120deg)}
  100%{transform:rotate(1440deg)}
}
@keyframes kickTrail{
  0%{opacity:0;transform:translateX(-120px) scaleX(.2)}
  30%{opacity:1;transform:translateX(-30px) scaleX(1)}
  100%{opacity:0;transform:translateX(60px) scaleX(.35)}
}
@media (max-width:820px){
  .btn-kick{width:100%;justify-content:center}
  .hero-ball-wrap.is-kicked{
    animation:heroBallKickMobile 1.35s cubic-bezier(.2,.75,.15,1) forwards;
  }
  .hero-ball-wrap.is-kicked .hero-ball{
    animation:heroBallSpinKick 1.35s linear forwards;
  }
  @keyframes heroBallKickMobile{
    0%{right:-105px;bottom:56px;transform:none scale(1)}
    45%{right:-18px;bottom:calc(100% - 170px);transform:none scale(.68)}
    64%{right:-8px;bottom:calc(100% - 150px);transform:none scale(.62)}
    100%{right:-105px;bottom:56px;transform:none scale(1)}
  }
}

/* v8 button sizing + mobile ball layering fixes */
.hero-actions{
  align-items:stretch;
}
.hero-actions .btn{
  width:180px;
  min-height:58px;
  padding:16px 20px;
  text-align:center;
  white-space:nowrap;
}
.hero-actions.center .btn{
  width:210px;
}
.hero-content{
  max-width:760px;
}
.hero-ball-wrap{
  z-index:2;
}
.hero-content,
.worldcup-card{
  z-index:5;
}
.floating-call{
  z-index:950;
}
@media (min-width:821px){
  .hero-ball-wrap{
    right:clamp(50px,6vw,120px);
    top:52%;
  }
  .hero-ball{
    width:clamp(300px,30vw,520px);
  }
}
@media (max-width:820px){
  .hero{
    min-height:820px;
  }
  .hero-content{
    position:relative;
    z-index:6;
    padding-bottom:230px;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    width:min(322px,100%);
  }
  .hero-actions .btn,
  .hero-actions.center .btn,
  .btn-kick{
    width:100%;
    min-height:72px;
    justify-content:center;
    border-radius:14px;
    font-size:17px;
  }
  .hero-ball-wrap{
    right:-82px;
    bottom:34px;
    top:auto;
    z-index:2;
    transform:none;
    pointer-events:none;
  }
  .hero-ball{
    width:245px;
    opacity:.28;
    filter:drop-shadow(0 0 24px rgba(10,167,244,.22));
  }
  .worldcup-card{
    width:min(322px,100%);
  }
  .floating-call{
    width:52px;
    height:52px;
    right:16px;
    bottom:16px;
    font-size:24px;
    opacity:.92;
  }
  @keyframes heroBallKickMobile{
    0%{right:-82px;bottom:34px;transform:none scale(1)}
    45%{right:-18px;bottom:calc(100% - 172px);transform:none scale(.68)}
    64%{right:-8px;bottom:calc(100% - 150px);transform:none scale(.62)}
    100%{right:-82px;bottom:34px;transform:none scale(1)}
  }
}
@media (max-width:430px){
  .hero-content{
    padding-left:20px;
    padding-right:20px;
  }
  .hero-actions,
  .worldcup-card{
    width:100%;
  }
  .hero h1{
    font-size:clamp(46px,15.2vw,66px);
  }
  .hero-ball-wrap{
    right:-90px;
    bottom:24px;
  }
  .hero-ball{
    width:235px;
    opacity:.24;
  }
}

/* v9 mobile refinement + legal/trademark-safe update */
.site-footer .legal-note{
  max-width:880px;
  margin:12px auto 8px;
  color:rgba(255,255,255,.58);
  font-size:12px;
  line-height:1.55;
}

@media (max-width:820px){
  .hero-actions{
    gap:12px;
    width:min(300px,100%);
  }
  .hero-actions .btn,
  .hero-actions.center .btn,
  .btn-kick{
    width:100%;
    min-height:58px;
    padding:13px 18px;
    border-radius:13px;
    font-size:15px;
    letter-spacing:.04em;
  }
  .hero-content{
    padding-bottom:170px;
  }
  .hero-ball-wrap{
    right:-45px;
    bottom:44px;
    opacity:1;
  }
  .hero-ball{
    width:230px;
    opacity:.58;
    filter:drop-shadow(0 0 28px rgba(10,167,244,.3));
  }
  .worldcup-card{
    width:min(300px,100%);
  }
  .floating-call{
    right:14px;
    bottom:14px;
  }
  @keyframes heroBallKickMobile{
    0%{right:-45px;bottom:44px;transform:none scale(1)}
    45%{right:8px;bottom:calc(100% - 170px);transform:none scale(.68)}
    64%{right:12px;bottom:calc(100% - 150px);transform:none scale(.62)}
    100%{right:-45px;bottom:44px;transform:none scale(1)}
  }
}
@media (max-width:430px){
  .hero-actions{
    width:min(282px,100%);
  }
  .hero-actions .btn,
  .hero-actions.center .btn,
  .btn-kick{
    min-height:56px;
    font-size:14px;
    padding:12px 16px;
  }
  .hero-content{
    padding-bottom:150px;
  }
  .hero-ball-wrap{
    right:-42px;
    bottom:36px;
  }
  .hero-ball{
    width:205px;
    opacity:.58;
  }
  .worldcup-card{
    width:min(282px,100%);
  }
}

/* v10 Xelapan golden ball + refined mobile controls */
.hero-ball{
  opacity:.96;
  filter:drop-shadow(0 0 34px rgba(214,165,54,.34)) drop-shadow(0 0 18px rgba(10,167,244,.18));
}
@media (min-width:821px){
  .hero-ball-wrap{
    right:clamp(54px,7vw,132px) !important;
    top:53% !important;
    z-index:2 !important;
  }
  .hero-ball{
    width:clamp(285px,28vw,480px) !important;
  }
  .hero-content{max-width:760px;}
}
@media (max-width:820px){
  .hero{min-height:760px;}
  .hero-content{padding-bottom:150px !important;}
  .hero-actions{
    width:min(280px,100%) !important;
    gap:11px !important;
  }
  .hero-actions .btn,
  .hero-actions.center .btn,
  .btn-kick{
    min-height:50px !important;
    padding:11px 16px !important;
    border-radius:12px !important;
    font-size:14px !important;
    letter-spacing:.035em !important;
  }
  .hero-ball-wrap{
    right:-42px !important;
    bottom:34px !important;
    top:auto !important;
    z-index:2 !important;
    transform:none !important;
  }
  .hero-ball{
    width:215px !important;
    opacity:.72 !important;
    filter:drop-shadow(0 0 24px rgba(214,165,54,.36));
  }
  .floating-call{
    width:48px !important;
    height:48px !important;
    right:14px !important;
    bottom:14px !important;
    font-size:22px !important;
  }
  @keyframes heroBallKickMobile{
    0%{right:-42px;bottom:34px;transform:none scale(1)}
    44%{right:-8px;bottom:calc(100% - 165px);transform:none scale(.68)}
    62%{right:4px;bottom:calc(100% - 145px);transform:none scale(.62)}
    100%{right:-42px;bottom:34px;transform:none scale(1)}
  }
}
@media (max-width:430px){
  .hero-actions{width:min(260px,100%) !important;}
  .hero-actions .btn,
  .hero-actions.center .btn,
  .btn-kick{
    min-height:48px !important;
    font-size:13px !important;
  }
  .hero-ball-wrap{
    right:-50px !important;
    bottom:26px !important;
  }
  .hero-ball{width:205px !important;opacity:.78 !important;}
}

/* v11: playful bouncing Xelapan ball */
.hero-ball{
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.hero-ball-wrap.is-bouncing{
  animation:none !important;
}
.hero-ball-wrap.is-bouncing .hero-ball{
  animation:xelapanBallBounce 2.35s cubic-bezier(.18,.82,.22,1) forwards !important;
  transform-origin:center center;
}
.hero-ball-wrap.is-bouncing::after{
  content:"";
  position:absolute;
  left:18%;
  right:18%;
  bottom:-10px;
  height:18px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.48),rgba(0,0,0,0) 70%);
  filter:blur(3px);
  animation:xelapanBallShadow 2.35s ease-out forwards;
  pointer-events:none;
}
@keyframes xelapanBallBounce{
  0%{transform:translate(0,0) rotate(0deg) scale(1)}
  10%{transform:translate(34px,-118px) rotate(115deg) scale(.96)}
  20%{transform:translate(68px,0) rotate(230deg) scale(1.04,.92)}
  30%{transform:translate(92px,-84px) rotate(355deg) scale(.98)}
  40%{transform:translate(116px,0) rotate(480deg) scale(1.03,.94)}
  50%{transform:translate(132px,-58px) rotate(600deg) scale(.99)}
  60%{transform:translate(148px,0) rotate(720deg) scale(1.02,.96)}
  70%{transform:translate(154px,-34px) rotate(820deg) scale(1)}
  80%{transform:translate(160px,0) rotate(920deg) scale(1.01,.97)}
  90%{transform:translate(166px,-16px) rotate(1000deg) scale(1)}
  100%{transform:translate(0,0) rotate(1080deg) scale(1)}
}
@keyframes xelapanBallShadow{
  0%,20%,40%,60%,80%,100%{opacity:.55;transform:scaleX(1)}
  10%,30%,50%,70%,90%{opacity:.2;transform:scaleX(.58)}
}
@media (max-width:820px){
  @keyframes xelapanBallBounce{
    0%{transform:translate(0,0) rotate(0deg) scale(1)}
    10%{transform:translate(-18px,-96px) rotate(105deg) scale(.96)}
    20%{transform:translate(-34px,0) rotate(220deg) scale(1.04,.92)}
    30%{transform:translate(-50px,-68px) rotate(330deg) scale(.98)}
    40%{transform:translate(-64px,0) rotate(450deg) scale(1.03,.94)}
    50%{transform:translate(-76px,-46px) rotate(560deg) scale(.99)}
    60%{transform:translate(-86px,0) rotate(680deg) scale(1.02,.96)}
    70%{transform:translate(-92px,-28px) rotate(790deg) scale(1)}
    80%{transform:translate(-98px,0) rotate(900deg) scale(1.01,.97)}
    90%{transform:translate(-102px,-13px) rotate(990deg) scale(1)}
    100%{transform:translate(0,0) rotate(1080deg) scale(1)}
  }
}


/* v14: final header fit + interactive ball toggle without deformation */
.site-header{
  height:84px !important;
  min-height:84px !important;
  overflow:visible !important;
}
.brand{
  display:flex !important;
  align-items:center !important;
  height:100% !important;
  flex:0 0 auto !important;
}
.brand img{
  height:54px !important;
  max-height:54px !important;
  width:auto !important;
  max-width:178px !important;
  object-fit:contain !important;
}
.hero-ball-wrap{
  pointer-events:auto !important;
  will-change:transform !important;
}
.hero-ball{
  cursor:pointer !important;
  transform-origin:center center !important;
  -webkit-tap-highlight-color:transparent !important;
}
.hero-ball-wrap.is-stopped .hero-ball,
.hero-ball-wrap.is-away .hero-ball{
  animation:none !important;
  transform:rotate(0deg) !important;
}
.hero-ball-wrap.is-moving-away{
  animation:xelapanBallPathAwayDesktop 1.7s cubic-bezier(.18,.8,.22,1) forwards !important;
}
.hero-ball-wrap.is-moving-home{
  animation:xelapanBallPathHomeDesktop 1.7s cubic-bezier(.18,.8,.22,1) forwards !important;
}
.hero-ball-wrap.is-moving-away .hero-ball,
.hero-ball-wrap.is-moving-home .hero-ball{
  animation:xelapanBallRollClean 1.7s linear forwards !important;
}
.hero-ball-wrap.is-away{
  transform:translate(2vw, calc(-50% - 30vh)) !important;
}
.hero-ball-wrap.is-moving-away::after,
.hero-ball-wrap.is-moving-home::after{
  content:"";
  position:absolute;
  left:18%;
  right:18%;
  bottom:-12px;
  height:18px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.45),rgba(0,0,0,0) 70%);
  filter:blur(3px);
  animation:xelapanBallCleanShadow 1.7s ease-out forwards;
  pointer-events:none;
}
@keyframes xelapanBallRollClean{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(1260deg)}
}
@keyframes xelapanBallPathAwayDesktop{
  0%{transform:translateY(-50%)}
  14%{transform:translate(0.5vw, calc(-50% - 115px))}
  25%{transform:translate(1vw, calc(-50% - 12px))}
  38%{transform:translate(1.3vw, calc(-50% - 88px))}
  50%{transform:translate(1.6vw, calc(-50% - 10px))}
  63%{transform:translate(1.8vw, calc(-50% - 62px))}
  75%{transform:translate(1.95vw, calc(-50% - 8px))}
  88%{transform:translate(2vw, calc(-50% - 36px))}
  100%{transform:translate(2vw, calc(-50% - 30vh))}
}
@keyframes xelapanBallPathHomeDesktop{
  0%{transform:translate(2vw, calc(-50% - 30vh))}
  15%{transform:translate(1.8vw, calc(-50% - 140px))}
  28%{transform:translate(1.5vw, calc(-50% - 14px))}
  42%{transform:translate(1.1vw, calc(-50% - 92px))}
  56%{transform:translate(.8vw, calc(-50% - 10px))}
  70%{transform:translate(.45vw, calc(-50% - 54px))}
  84%{transform:translate(.2vw, calc(-50% - 7px))}
  100%{transform:translateY(-50%)}
}
@keyframes xelapanBallCleanShadow{
  0%,25%,50%,75%,100%{opacity:.55;transform:scaleX(1)}
  14%,38%,63%,88%{opacity:.18;transform:scaleX(.62)}
}
@media (max-width:820px){
  .site-header{
    height:72px !important;
    min-height:72px !important;
  }
  .brand img{
    height:44px !important;
    max-height:44px !important;
    max-width:126px !important;
  }
  .main-nav{top:72px !important;}
  .hero-ball-wrap.is-away{
    transform:translate(-24px,-410px) !important;
  }
  .hero-ball-wrap.is-moving-away{
    animation:xelapanBallPathAwayMobile 1.7s cubic-bezier(.18,.8,.22,1) forwards !important;
  }
  .hero-ball-wrap.is-moving-home{
    animation:xelapanBallPathHomeMobile 1.7s cubic-bezier(.18,.8,.22,1) forwards !important;
  }
  @keyframes xelapanBallPathAwayMobile{
    0%{transform:translate(0,0)}
    14%{transform:translate(-8px,-92px)}
    25%{transform:translate(-14px,0)}
    38%{transform:translate(-18px,-70px)}
    50%{transform:translate(-22px,0)}
    63%{transform:translate(-24px,-48px)}
    75%{transform:translate(-25px,0)}
    88%{transform:translate(-25px,-26px)}
    100%{transform:translate(-24px,-410px)}
  }
  @keyframes xelapanBallPathHomeMobile{
    0%{transform:translate(-24px,-410px)}
    15%{transform:translate(-22px,-120px)}
    28%{transform:translate(-18px,0)}
    42%{transform:translate(-14px,-75px)}
    56%{transform:translate(-10px,0)}
    70%{transform:translate(-7px,-42px)}
    84%{transform:translate(-3px,0)}
    100%{transform:translate(0,0)}
  }
}
@media (max-width:430px){
  .brand img{
    height:41px !important;
    max-height:41px !important;
    max-width:118px !important;
  }
  .hero-ball-wrap.is-away{
    transform:translate(-18px,-372px) !important;
  }
  @keyframes xelapanBallPathAwayMobile{
    0%{transform:translate(0,0)}
    14%{transform:translate(-6px,-82px)}
    25%{transform:translate(-11px,0)}
    38%{transform:translate(-14px,-62px)}
    50%{transform:translate(-16px,0)}
    63%{transform:translate(-18px,-42px)}
    75%{transform:translate(-18px,0)}
    88%{transform:translate(-18px,-23px)}
    100%{transform:translate(-18px,-372px)}
  }
  @keyframes xelapanBallPathHomeMobile{
    0%{transform:translate(-18px,-372px)}
    15%{transform:translate(-16px,-106px)}
    28%{transform:translate(-14px,0)}
    42%{transform:translate(-10px,-64px)}
    56%{transform:translate(-8px,0)}
    70%{transform:translate(-4px,-38px)}
    84%{transform:translate(-2px,0)}
    100%{transform:translate(0,0)}
  }
}


/* v15: slow-motion ball path behind the hero text + tighter header logo */
.site-header{
  height:88px !important;
  min-height:88px !important;
  overflow:hidden !important;
}
.brand{
  height:88px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  overflow:hidden !important;
}
.brand img{
  width:146px !important;
  max-width:146px !important;
  height:auto !important;
  max-height:44px !important;
  object-fit:contain !important;
  display:block !important;
}
.main-nav{top:88px;}
.hero-ball-wrap{
  z-index:2 !important; /* below .hero-content so it travels behind the letters */
  pointer-events:auto !important;
  will-change:transform !important;
}
.hero-content{z-index:5 !important;}
.hero-ball{
  cursor:pointer !important;
  transform-origin:center center !important;
  -webkit-tap-highlight-color:transparent !important;
}
.hero-ball-wrap.is-stopped .hero-ball,
.hero-ball-wrap.is-away .hero-ball{
  animation:none !important;
  transform:rotate(0deg) !important;
}
.hero-ball-wrap.is-moving-away{
  animation:xelapanSlowKickAwayDesktop 2.85s cubic-bezier(.23,.82,.26,1) forwards !important;
}
.hero-ball-wrap.is-moving-home{
  animation:xelapanSlowKickHomeDesktop 2.85s cubic-bezier(.23,.82,.26,1) forwards !important;
}
.hero-ball-wrap.is-moving-away .hero-ball,
.hero-ball-wrap.is-moving-home .hero-ball{
  animation:xelapanSlowRoll 2.85s linear forwards !important;
}
.hero-ball-wrap.is-away{
  transform:translate(-72vw, calc(-50% - 37vh)) scale(.30) !important;
}
@keyframes xelapanSlowRoll{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(900deg)}
}
@keyframes xelapanSlowKickAwayDesktop{
  0%{transform:translateY(-50%) scale(1)}
  18%{transform:translate(-12vw, calc(-50% - 3vh)) scale(.92)}
  36%{transform:translate(-28vw, calc(-50% - 9vh)) scale(.78)}
  55%{transform:translate(-44vw, calc(-50% - 17vh)) scale(.61)}
  74%{transform:translate(-60vw, calc(-50% - 27vh)) scale(.43)}
  100%{transform:translate(-72vw, calc(-50% - 37vh)) scale(.30)}
}
@keyframes xelapanSlowKickHomeDesktop{
  0%{transform:translate(-72vw, calc(-50% - 37vh)) scale(.30)}
  20%{transform:translate(-60vw, calc(-50% - 27vh)) scale(.43)}
  40%{transform:translate(-44vw, calc(-50% - 17vh)) scale(.61)}
  60%{transform:translate(-28vw, calc(-50% - 9vh)) scale(.78)}
  80%{transform:translate(-12vw, calc(-50% - 3vh)) scale(.92)}
  100%{transform:translateY(-50%) scale(1)}
}
.hero-ball-wrap.is-moving-away::after,
.hero-ball-wrap.is-moving-home::after{display:none !important;}

@media (max-width:820px){
  .site-header{
    height:74px !important;
    min-height:74px !important;
  }
  .brand{
    height:74px !important;
  }
  .brand img{
    width:116px !important;
    max-width:116px !important;
    max-height:36px !important;
  }
  .main-nav{top:74px !important;}
  .hero-ball-wrap{
    z-index:2 !important;
  }
  .hero-ball-wrap.is-away{
    transform:translate(-64vw,-455px) scale(.42) !important;
  }
  .hero-ball-wrap.is-moving-away{
    animation:xelapanSlowKickAwayMobile 2.65s cubic-bezier(.23,.82,.26,1) forwards !important;
  }
  .hero-ball-wrap.is-moving-home{
    animation:xelapanSlowKickHomeMobile 2.65s cubic-bezier(.23,.82,.26,1) forwards !important;
  }
  .hero-ball-wrap.is-moving-away .hero-ball,
  .hero-ball-wrap.is-moving-home .hero-ball{
    animation:xelapanSlowRollMobile 2.65s linear forwards !important;
  }
  @keyframes xelapanSlowRollMobile{
    0%{transform:rotate(0deg)}
    100%{transform:rotate(760deg)}
  }
  @keyframes xelapanSlowKickAwayMobile{
    0%{transform:translate(0,0) scale(1)}
    18%{transform:translate(-10vw,-80px) scale(.92)}
    36%{transform:translate(-24vw,-170px) scale(.78)}
    55%{transform:translate(-39vw,-265px) scale(.64)}
    74%{transform:translate(-53vw,-365px) scale(.52)}
    100%{transform:translate(-64vw,-455px) scale(.42)}
  }
  @keyframes xelapanSlowKickHomeMobile{
    0%{transform:translate(-64vw,-455px) scale(.42)}
    20%{transform:translate(-53vw,-365px) scale(.52)}
    40%{transform:translate(-39vw,-265px) scale(.64)}
    60%{transform:translate(-24vw,-170px) scale(.78)}
    80%{transform:translate(-10vw,-80px) scale(.92)}
    100%{transform:translate(0,0) scale(1)}
  }
}
@media (max-width:430px){
  .brand img{
    width:108px !important;
    max-width:108px !important;
    max-height:34px !important;
  }
  .hero-ball-wrap.is-away{
    transform:translate(-58vw,-425px) scale(.42) !important;
  }
  @keyframes xelapanSlowKickAwayMobile{
    0%{transform:translate(0,0) scale(1)}
    18%{transform:translate(-8vw,-72px) scale(.92)}
    36%{transform:translate(-20vw,-155px) scale(.78)}
    55%{transform:translate(-34vw,-245px) scale(.64)}
    74%{transform:translate(-48vw,-340px) scale(.52)}
    100%{transform:translate(-58vw,-425px) scale(.42)}
  }
  @keyframes xelapanSlowKickHomeMobile{
    0%{transform:translate(-58vw,-425px) scale(.42)}
    20%{transform:translate(-48vw,-340px) scale(.52)}
    40%{transform:translate(-34vw,-245px) scale(.64)}
    60%{transform:translate(-20vw,-155px) scale(.78)}
    80%{transform:translate(-8vw,-72px) scale(.92)}
    100%{transform:translate(0,0) scale(1)}
  }
}

/* v16: smooth random cancha bounce without ball deformation */
.hero-ball-wrap{
  --ball-x:0px;
  --ball-y:0px;
  --ball-scale:1;
  z-index:2 !important;
  pointer-events:auto !important;
  transform:translate(var(--ball-x), calc(-50% + var(--ball-y))) scale(var(--ball-scale)) !important;
  transform-origin:center center !important;
  transition:none !important;
  will-change:transform !important;
}
.hero-content{z-index:5 !important;}
.hero-ball{
  cursor:pointer !important;
  transform-origin:center center !important;
  -webkit-tap-highlight-color:transparent !important;
}
.hero-ball-wrap:not(.is-stopped):not(.is-random-bouncing) .hero-ball{
  animation:spinBall 13s linear infinite !important;
}
.hero-ball-wrap.is-random-bouncing .hero-ball{
  animation:spinBall .72s linear infinite !important;
}
.hero-ball-wrap.is-stopped .hero-ball{
  animation:none !important;
  transform:rotate(0deg) !important;
}
.hero-ball-wrap.is-random-bouncing::after,
.hero-ball-wrap.is-stopped::after{
  display:none !important;
}
@media (max-width:820px){
  .hero-ball-wrap{
    transform:translate(var(--ball-x), var(--ball-y)) scale(var(--ball-scale)) !important;
    z-index:2 !important;
  }
  .hero-ball{
    opacity:.82 !important;
  }
}


/* v17 full menu CTA + launch polish */
.full-menu-cta{
  margin:42px auto 0;
  max-width:760px;
  text-align:center;
  padding:34px 28px;
  border-radius:22px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(17,20,24,.08);
  box-shadow:0 18px 46px rgba(50,34,12,.12);
}
.full-menu-cta h3{
  margin:0 0 10px;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(26px,3vw,40px);
  line-height:1.05;
}
.full-menu-cta p{
  color:#53606a;
  margin:0 auto 22px;
  max-width:580px;
  line-height:1.55;
}
.full-menu-cta .btn{min-width:230px;}
@media(max-width:820px){
  .full-menu-cta{padding:28px 20px;margin-top:30px;}
  .full-menu-cta .btn{width:100%;min-width:0;}
}


/* v18 menu image refresh */
.menu-card img{
  object-fit: cover;
  object-position: center;
  background: #f7efe2;
}


/* ==============================
   V19 PREMIUM ENTRANCE + CLEAN OVERRIDES
   ============================== */
html{scroll-behavior:smooth;}
body.intro-open{overflow:hidden;}

.site-header{
  height:82px !important;
  min-height:82px !important;
  overflow:visible !important;
}
.brand{
  height:82px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  overflow:visible !important;
}
.brand img{
  width:auto !important;
  height:56px !important;
  max-height:56px !important;
  display:block !important;
  object-fit:contain !important;
}

.welcome-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:#061524;
  color:#fff;
  overflow:hidden;
  opacity:1;
  visibility:visible;
  transition:opacity .7s ease, visibility .7s ease;
}
.welcome-overlay.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.welcome-bg{
  position:absolute;
  inset:-26px;
  background:
    linear-gradient(135deg,rgba(4,13,24,.88),rgba(4,13,24,.62)),
    url('../img/antigua-hero.webp') center/cover no-repeat;
  filter:blur(7px) saturate(1.08);
  transform:scale(1.04);
}
.welcome-overlay::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 40%,rgba(214,165,54,.18),transparent 32%),
    radial-gradient(circle at 80% 20%,rgba(10,167,244,.12),transparent 28%),
    linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.55));
  pointer-events:none;
}
.welcome-panel{
  position:relative;
  z-index:2;
  width:min(780px,100%);
  text-align:center;
  padding:clamp(30px,5vw,58px) clamp(22px,5vw,64px);
  border:1px solid rgba(214,165,54,.45);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(5,19,34,.78),rgba(5,19,34,.56));
  box-shadow:0 35px 90px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.11);
  backdrop-filter:blur(18px);
}
.welcome-logo{
  width:min(245px,62vw);
  height:auto;
  margin:0 auto 18px;
  display:block;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.35));
}
.welcome-eyebrow{
  margin:0 0 10px;
  color:#d6a536;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:900;
}
.welcome-panel h1{
  margin:0;
  font-family:var(--serif, Georgia, serif);
  font-size:clamp(44px,7vw,84px);
  line-height:.95;
  color:#fff;
  text-shadow:0 14px 40px rgba(0,0,0,.42);
}
.welcome-copy{
  margin:16px auto 20px;
  color:rgba(255,255,255,.86);
  font-size:clamp(16px,2vw,20px);
  font-weight:700;
}
.welcome-icons{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin:0 auto 24px;
}
.welcome-icons span{
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.9);
  font-size:13px;
  font-weight:800;
}
.welcome-enter{
  border:0;
  cursor:pointer;
  border-radius:999px;
  padding:15px 28px;
  min-width:220px;
  background:linear-gradient(135deg,#f3ce69,#d6a536);
  color:#061524;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.08em;
  box-shadow:0 18px 45px rgba(214,165,54,.33);
  transition:transform .22s ease, box-shadow .22s ease;
}
.welcome-enter:hover{transform:translateY(-2px);box-shadow:0 23px 55px rgba(214,165,54,.42);}
.welcome-panel small{
  display:block;
  margin-top:16px;
  color:rgba(255,255,255,.58);
  font-size:12px;
  letter-spacing:.04em;
}
.welcome-ball{
  position:absolute;
  z-index:3;
  right:-130px;
  bottom:14%;
  width:clamp(120px,17vw,240px);
  opacity:0;
  filter:drop-shadow(0 24px 40px rgba(0,0,0,.45));
  pointer-events:none;
}
.welcome-overlay.is-entering .welcome-ball{
  animation:welcomeBallCross .85s cubic-bezier(.19,1,.22,1) forwards;
}
.welcome-overlay.is-entering .welcome-panel{
  animation:welcomePanelExit .62s ease forwards;
}
@keyframes welcomePanelExit{
  to{opacity:0; transform:translateY(-10px) scale(.985);}
}
@keyframes welcomeBallCross{
  0%{opacity:0; transform:translate(0,0) rotate(0deg) scale(.82);}
  14%{opacity:1;}
  100%{opacity:1; transform:translate(-120vw,-26vh) rotate(-720deg) scale(1);}
}

.back-to-top{
  position:fixed;
  right:24px;
  bottom:96px;
  z-index:998;
  width:48px;
  height:48px;
  border:1px solid rgba(214,165,54,.48);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(5,19,34,.82);
  color:#f3ce69;
  font-size:24px;
  font-weight:900;
  box-shadow:0 18px 42px rgba(0,0,0,.3);
  backdrop-filter:blur(12px);
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease;
}
.back-to-top.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}

.hero-ball{will-change:transform; transform-origin:center center !important;}
.hero-ball-wrap.is-random-bouncing .hero-ball,
.hero-ball-wrap.is-stopped .hero-ball{
  animation:none !important;
}
.hero-ball-wrap.is-random-bouncing,
.hero-ball-wrap.is-stopped{
  transform:translate(calc(-50% + var(--ball-x,0px)), calc(-50% + var(--ball-y,0px))) scale(var(--ball-scale,1)) !important;
}
.hero-ball-wrap.is-random-bouncing .hero-ball{
  transform:rotate(var(--ball-rot,0deg)) !important;
}

@media (max-width:820px){
  .site-header{height:74px !important;min-height:74px !important;padding:0 16px !important;}
  .brand{height:74px !important;}
  .brand img{height:46px !important;max-height:46px !important;}
  .main-nav{top:74px !important;}
  .welcome-overlay{padding:18px;}
  .welcome-panel{border-radius:22px;padding:28px 18px;}
  .welcome-logo{width:min(210px,70vw);}
  .welcome-icons{gap:8px;}
  .welcome-icons span{font-size:12px;padding:9px 10px;}
  .welcome-enter{min-width:190px;padding:14px 20px;}
  .welcome-ball{width:130px;right:-70px;bottom:11%;}
  .back-to-top{right:18px;bottom:86px;width:44px;height:44px;font-size:22px;}
}
