/* Open-seats carousel (Home page). Molten-orange band under the Holiday Sale, curving up over its bottom edge. */
.os{position:relative;z-index:3;margin-top:-48px;isolation:isolate;overflow:hidden;padding:88px 0 96px;border-radius:48px 48px 0 0;box-shadow:0 -18px 50px rgba(120,40,0,0.30);color:var(--cgac-ink);background:radial-gradient(900px 520px at 85% 0%,#ffd27a 0%,transparent 60%),radial-gradient(800px 600px at 0% 100%,#c8461a 0%,transparent 62%),linear-gradient(160deg,#f9a03a 0%,#f37521 45%,#e05a1c 100%)}
.os__glow{position:absolute;z-index:-1;top:-30%;left:50%;width:1100px;height:1100px;margin-left:-550px;border-radius:50%;background:repeating-conic-gradient(rgba(255,240,200,0.16) 0 6deg,transparent 6deg 16deg);-webkit-mask:radial-gradient(circle,#000 18%,transparent 64%);mask:radial-gradient(circle,#000 18%,transparent 64%);animation:osSpin 60s linear infinite}
.os::before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(115deg,rgba(255,255,255,0.05) 0 2px,transparent 2px 22px);background-size:200% 100%;animation:osShimmer 14s linear infinite;pointer-events:none}
.os__inner{position:relative;max-width:1160px;margin:0 auto;padding:0 28px}
.os__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:28px}
.os__eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:13px;letter-spacing:0.22em;text-transform:uppercase;color:var(--cgac-ink);background:#fff6e4;padding:7px 14px 7px 10px;border-radius:999px;margin:0 0 16px;box-shadow:0 6px 18px rgba(120,40,0,0.18)}
.os__flame{width:12px;height:12px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:radial-gradient(circle at 60% 40%,#ffe08a,#f37521 60%,#c8261a);animation:osFlicker 1.4s ease-in-out infinite}
.os__title{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,5.4vw,72px);line-height:0.95;text-transform:uppercase;letter-spacing:0.01em;color:var(--cgac-ink);margin:0 0 12px;text-wrap:balance}
.os__script{font-family:var(--font-script);text-transform:none;letter-spacing:0;color:#fff;font-size:1.05em;display:inline-block;text-shadow:0 0 30px rgba(255,230,170,0.9),0 4px 0 rgba(120,30,0,0.25);animation:osBob 3.6s ease-in-out infinite}
.os__lede{font-size:18px;line-height:1.5;color:var(--cgac-ink);margin:0;max-width:52ch;text-wrap:pretty}
.os__nav{display:flex;gap:10px}
.os__arrow{width:56px;height:56px;border-radius:50%;border:2px solid var(--cgac-ink);background:#fff6e4;color:var(--cgac-ink);font-size:20px;line-height:1;cursor:pointer;transition:transform 180ms var(--ease-out),background 180ms var(--ease-out),color 180ms var(--ease-out)}
.os__arrow:hover:not(:disabled){background:var(--cgac-ink);color:#fff;transform:scale(1.08)}
.os__arrow:disabled{opacity:0.35;cursor:default}
.os__arrow:focus-visible,.os__track:focus-visible,.os__cta:focus-visible{outline:3px solid var(--cgac-ink);outline-offset:3px}
.os__track{list-style:none;margin:0 -28px;padding:14px 28px 24px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,calc((100% - 56px - 60px) / 4));gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 28px;scrollbar-width:thin;scrollbar-color:rgba(26,26,26,0.4) transparent}
.os__card{scroll-snap-align:start;display:flex;flex-direction:column;background:#fffaf2;border:2px solid var(--cgac-ink);border-radius:var(--radius-md);box-shadow:6px 6px 0 var(--cgac-ink);overflow:hidden;opacity:0;transform:translateY(28px) rotate(-1deg);transition:transform 260ms var(--ease-out),box-shadow 260ms var(--ease-out)}
.os.is-in .os__card{animation:osIn 640ms var(--ease-out) both;animation-delay:calc(var(--os-i) * 90ms)}
.os__card:hover{transform:translateY(-6px);box-shadow:10px 12px 0 var(--cgac-ink)}
.os__img{position:relative;aspect-ratio:4/3;background:#2a1a10;border-bottom:2px solid var(--cgac-ink);overflow:hidden}
.os__img{display:block}
.os__photo{display:block;width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease-out)}
.os__ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 22% 14%;background:repeating-linear-gradient(135deg,rgba(255,255,255,0.07) 0 14px,transparent 14px 28px),radial-gradient(260px 180px at 80% 0%,rgba(255,255,255,0.28),transparent 70%),var(--os-c);transition:transform 600ms var(--ease-out)}
.os__ph img{width:100%;height:auto;max-height:100%;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,0.25))}
.os__card:hover .os__photo,.os__card:hover .os__ph{transform:scale(1.06)}
.os__date{position:absolute;left:12px;bottom:12px;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;align-items:end;padding:10px 14px 10px 12px;background:var(--os-c);color:#fff;border:2px solid var(--cgac-ink);border-radius:var(--radius-sm);box-shadow:3px 3px 0 var(--cgac-ink);overflow:hidden}
.os__date::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,0.45),transparent);transform:skewX(-20deg);transition:left 600ms var(--ease-out)}
.os__card:hover .os__date::after{left:130%}
.os__day{grid-row:1 / 3;grid-column:1;font-family:var(--font-display);font-size:44px;line-height:0.85;text-shadow:0 2px 0 rgba(0,0,0,0.25)}
.os__dow,.os__mo{grid-column:2;font-family:var(--font-display);font-size:13px;letter-spacing:0.16em;text-transform:uppercase;text-shadow:0 1px 0 rgba(0,0,0,0.3)}
.os__dow{grid-row:1}.os__mo{grid-row:2}
.os__body{display:flex;flex-direction:column;gap:8px;padding:16px 20px 20px;flex:1}
.os__room{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--fg-2);margin:0}
.os__room::before{content:'';width:10px;height:10px;border-radius:3px;background:var(--os-c);flex:none}
.os__name{font-family:var(--font-body);font-weight:700;font-size:20px;line-height:1.25;color:var(--fg-1);margin:0;text-wrap:pretty;overflow-wrap:anywhere}
.os__meta{font-size:15px;line-height:1.45;color:var(--fg-2);margin:0}
.os__seats{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-weight:700;font-size:14px;color:var(--cgac-ink);background:#ffe3c4;border-radius:999px;padding:5px 12px 5px 10px;margin:4px 0 6px}
.os__pulse{width:8px;height:8px;border-radius:50%;background:#e0401c;box-shadow:0 0 0 0 rgba(224,64,28,0.6);animation:osPulse 1.8s ease-out infinite}
.os__cta{position:relative;overflow:hidden;margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 20px;font-family:var(--font-display);font-size:15px;letter-spacing:0.14em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius-stamp);background:var(--cgac-ink);color:#fff;border:2px solid var(--cgac-ink);transition:background 180ms var(--ease-out),color 180ms var(--ease-out)}
.os__cta span{transition:transform 180ms var(--ease-out)}
.os__cta:hover{background:var(--cgac-orange);color:var(--cgac-ink)}
.os__cta:hover span{transform:translateX(4px)}
.os__cta::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,0.35),transparent);transform:skewX(-20deg);animation:osSweep 3.6s ease-in-out infinite;animation-delay:calc(var(--os-i,0) * 300ms)}
@keyframes osSpin{to{transform:rotate(360deg)}}
@keyframes osShimmer{to{background-position:-200% 0}}
@keyframes osFlicker{0%,100%{transform:rotate(-45deg) scale(1)}50%{transform:rotate(-45deg) scale(1.2)}}
@keyframes osBob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(2deg)}}
@keyframes osIn{from{opacity:0;transform:translateY(28px) rotate(-1deg)}to{opacity:1;transform:none}}
@keyframes osPulse{0%{box-shadow:0 0 0 0 rgba(224,64,28,0.6)}80%,100%{box-shadow:0 0 0 9px rgba(224,64,28,0)}}
@keyframes osSweep{0%,60%{left:-60%}100%{left:130%}}
.os.is-in .os__card:hover{transform:translateY(-6px)}
@media (prefers-reduced-motion:reduce){.os__glow,.os::before,.os__flame,.os__script,.os__pulse,.os__cta::after{animation:none}.os__card,.os.is-in .os__card{opacity:1;transform:none;animation:none}.os__track{scroll-behavior:auto}}
@media (max-width:1080px){.os{margin-top:-28px;border-radius:28px 28px 0 0}.os__track{grid-auto-columns:minmax(260px,calc((100% - 56px - 40px) / 3))}}
@media (max-width:820px){.os__track{grid-auto-columns:minmax(250px,calc((100% - 56px - 20px) / 2))}}
@media (max-width:640px){.os{padding:64px 0 72px}.os__inner{padding:0 20px}.os__track{margin:0 -20px;padding:14px 20px 20px;scroll-padding:0 20px;grid-auto-columns:82%}.os__nav{display:none}}
