@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,600;9..40,700;9..40,900&display=swap');

body.kai-reservas-v1-active { --black:#050505; --red:#ed1c24; --white:#f7f6f1; --cream:#e7decc; --impact:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; --sans:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
body.kai-reservas-v1-active { scroll-behavior:smooth; background:var(--black); }
body.kai-reservas-v1-active { margin:0; overflow-x:clip; background:var(--white); color:var(--black); font-family:var(--sans); }
img,video { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
a:focus-visible,button:focus-visible { outline:3px solid #ffcf00; outline-offset:4px; }
.kicker { margin:0; font-size:10px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.kai-reservas-button,.header-reserve-trigger { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 22px; border:2px solid currentColor; background:transparent; color:inherit; cursor:pointer; font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; transition:transform .25s ease,background .25s ease,color .25s ease; }
.kai-reservas-button:hover,.button:focus-visible,.header-reserve-trigger:hover,.header-reserve-trigger:focus-visible { transform:translateY(-2px); }
.kai-reservas-button--red { border-color:var(--red); background:var(--red); color:white; }

.site-header { position:absolute; z-index:20; top:0; left:0; display:grid; grid-template-columns:auto 1fr auto; align-items:center; width:100%; min-height:88px; padding:12px clamp(18px,4vw,62px); border-bottom:1px solid rgba(5,5,5,.18); }
.brand { width:94px; }
.brand img { width:100%; height:48px; object-fit:contain; filter:brightness(0); }
.desktop-nav { display:flex; justify-content:center; gap:clamp(18px,3vw,48px); font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.desktop-nav a { padding:12px 0; border-bottom:2px solid transparent; }
.desktop-nav a:hover,.desktop-nav a:focus-visible { border-color:var(--red); }
.header-actions { display:flex; align-items:center; gap:10px; }
.header-reserve-trigger { border-color:var(--black); }

.reservation-intro { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.38fr); gap:40px; align-items:end; height:clamp(420px,31vw,500px); padding:132px clamp(18px,4vw,64px) clamp(42px,4vw,66px); overflow:hidden; background:var(--cream); }
.reservation-intro h1 { margin:14px 0 0; font-family:var(--impact); font-size:clamp(82px,11.6vw,174px); font-weight:900; letter-spacing:-.055em; line-height:.72; text-transform:uppercase; }
.reservation-intro h1 span,.reservation-intro h1 strong { display:block; }
.reservation-intro h1 strong { color:var(--red); font-weight:900; }
.reservation-intro > p { max-width:390px; margin:0 0 3px; font-size:clamp(17px,1.5vw,23px); font-weight:700; line-height:1.16; }

.reservation-selector { display:flex; width:100%; min-width:0; background:var(--black); }
.reservation-selector--page { height:clamp(570px,43vw,680px); }
.reservation-card { position:relative; display:flex; min-width:0; flex:1 1 0; align-items:flex-end; overflow:hidden; isolation:isolate; color:white; transition:flex-grow .55s cubic-bezier(.2,.7,.2,1),filter .35s ease; }
.reservation-card + .reservation-card { border-left:1px solid rgba(255,255,255,.25); }
.reservation-card__media,.reservation-card__shade { position:absolute; z-index:-2; inset:0; }
.reservation-card__media img,.reservation-card__media video { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .75s cubic-bezier(.2,.7,.2,1); }
.reservation-card__shade { z-index:-1; background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.06) 72%),linear-gradient(90deg,rgba(0,0,0,.2),transparent); }
.reservation-card__content { width:100%; padding:clamp(22px,3vw,46px); }
.reservation-card__content > p { margin:0 0 8px; font-size:9px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.reservation-card h2 { margin:0; font-family:var(--impact); font-size:clamp(48px,5.5vw,82px); font-weight:900; letter-spacing:-.04em; line-height:.82; text-transform:uppercase; }
.reservation-card__actions { display:flex; gap:10px; align-items:center; margin-top:22px; }
.reserve-link,.location-link { display:inline-flex; min-height:48px; align-items:center; justify-content:space-between; gap:28px; padding:0 18px; border:2px solid white; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; transition:background .25s,color .25s,transform .25s; }
.reserve-link { min-width:148px; border-color:var(--red); background:var(--red); }
.location-link { border-color:rgba(255,255,255,.72); }
.reserve-link:hover,.reserve-link:focus-visible,.location-link:hover,.location-link:focus-visible { transform:translateY(-2px); background:white; color:var(--black); }

@media (hover:hover) and (pointer:fine) {
  .reservation-selector:has(.reservation-card:hover) .reservation-card:not(:hover) { filter:brightness(.72); }
  .reservation-card:hover,.reservation-card:focus-within { flex-grow:1.1; }
  .reservation-card:hover .reservation-card__media img,.reservation-card:hover .reservation-card__media video,.reservation-card:focus-within .reservation-card__media img,.reservation-card:focus-within .reservation-card__media video { transform:scale(1.035); }
}

.reservation-footer { display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:center; min-height:128px; padding:24px clamp(18px,4vw,64px); background:var(--red); color:white; }
.reservation-footer img { width:94px; height:52px; object-fit:contain; }
.reservation-footer p,.reservation-footer a { margin:0; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.reservation-footer p { justify-self:center; }
.reservation-footer a { padding-bottom:7px; border-bottom:2px solid; }

[data-slot='dialog-overlay'] { position:fixed; z-index:90; inset:0; background:rgba(0,0,0,.82); backdrop-filter:blur(6px); }
.reservation-dialog { position:fixed!important; z-index:100!important; inset:18px!important; top:18px!important; left:18px!important; width:auto!important; max-width:none!important; height:calc(100dvh - 36px); padding:0!important; transform:none!important; overflow:hidden; border:1px solid rgba(255,255,255,.24)!important; border-radius:0!important; background:var(--black)!important; color:white; }
.reservation-dialog__header { display:flex; height:100px; align-items:center; justify-content:space-between; gap:20px; padding:18px 24px; border-bottom:1px solid rgba(255,255,255,.22); }
.reservation-dialog__header h2 { margin:0; font-family:var(--impact); font-size:clamp(34px,4vw,58px); letter-spacing:-.03em; line-height:.85; text-transform:uppercase; }
.reservation-dialog__header p { margin:7px 0 0; color:rgba(255,255,255,.65); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.dialog-close { min-height:44px; padding:0 16px; border:1px solid rgba(255,255,255,.72); background:transparent; color:white; cursor:pointer; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.reservation-selector--overlay { height:calc(100% - 100px); }
.reservation-selector--overlay .reservation-card h2 { font-size:clamp(44px,5vw,74px); }

@media (max-width:900px) {
  .site-header { grid-template-columns:auto 1fr; min-height:74px; border-color:rgba(5,5,5,.16); padding:10px 18px; }
  .brand { width:78px; }
  .brand img { height:42px; }
  .desktop-nav { display:none; }
  .header-actions { justify-self:end; }
  .header-actions .button { display:none; }
  .header-reserve-trigger { min-height:42px; padding:0 15px; border-color:var(--red); background:var(--red); color:white; }
  .reservation-intro { display:block; height:340px; padding:108px 18px 36px; }
  .reservation-intro h1 { font-size:clamp(76px,23vw,112px); }
  .reservation-intro > p { max-width:270px; margin:20px 0 0; font-size:16px; }
  .reservation-selector { display:grid; }
  .reservation-selector--page { height:auto; }
  .reservation-card { min-height:228px; }
  .reservation-card + .reservation-card { border-top:1px solid rgba(255,255,255,.28); border-left:0; }
  .reservation-card__media img,.reservation-card__media video { object-position:center 38%; }
  .reservation-card__shade { background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.16) 78%),linear-gradient(0deg,rgba(0,0,0,.6),transparent 60%); }
  .reservation-card__content { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 12px; align-items:end; padding:20px 18px; }
  .reservation-card__content > p { grid-column:1; }
  .reservation-card h2 { grid-column:1; font-size:48px; }
  .reservation-card__actions { grid-column:2; grid-row:1/3; flex-direction:column; margin:0; }
  .reserve-link,.location-link { min-width:132px; min-height:44px; gap:14px; padding:0 12px; }
  .reservation-footer { grid-template-columns:1fr auto; min-height:110px; gap:16px; padding:22px 18px; }
  .reservation-footer p { display:none; }
  .reservation-footer img { width:76px; }
  .reservation-dialog { inset:8px!important; top:8px!important; bottom:auto!important; left:8px!important; height:auto; max-height:calc(100dvh - 16px); overflow-y:auto; }
  .reservation-dialog__header { position:sticky; z-index:5; top:0; height:82px; padding:14px 16px; background:var(--black); }
  .reservation-dialog__header h2 { font-size:34px; }
  .reservation-dialog__header p { display:none; }
  .reservation-selector--overlay { height:auto; }
  .reservation-selector--overlay .reservation-card { min-height:190px; }
  .reservation-selector--overlay .reservation-card h2 { font-size:42px; }
}

@media (max-width:430px) {
  .reservation-card__content { grid-template-columns:minmax(0,1fr) 126px; }
  .reservation-card h2 { font-size:clamp(39px,11vw,46px); }
  .reserve-link,.location-link { min-width:126px; }
}

@media (prefers-reduced-motion:reduce) {
  body.kai-reservas-v1-active { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}

body.kai-reservas-v1-active{margin:0;overflow-x:clip;background:#f7f6f1;color:#050505;font-family:var(--sans)}
body.kai-reservas-v1-active .elementor-location-header,body.kai-reservas-v1-active .elementor-location-footer{display:none!important}
.reservation-closing{min-height:430px;padding:clamp(76px,8vw,120px) clamp(18px,4vw,64px);background:#ed1c24;color:#050505;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}.reservation-closing h2{margin:18px 0 0;font-family:var(--impact);font-size:clamp(82px,10vw,150px);font-weight:900;letter-spacing:-.05em;line-height:.72;text-transform:uppercase}.reservation-closing h2 em{color:#fff;font-style:normal}.reservation-closing>a{align-self:end;border-bottom:2px solid;padding:0 0 8px;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:760px){.reservation-closing{grid-template-columns:1fr;min-height:360px;padding:70px 18px 32px}.reservation-closing h2{font-size:clamp(72px,22vw,98px)}.reservation-closing>a{justify-self:start}}
