:root {
    color-scheme: dark;
    --color-bg-body: #0b0b0b;
    --color-bg-elevated: #111111;
    --color-bg-subtle: #181818;
    --color-bg-accent: #1c0a10;
    --color-bg-muted: #1f1f1f;
    --color-text: #f6f4ee;
    --color-text-soft: #d4d0c6;
    --color-text-muted: #a5a196;
    --color-primary: #dc2626;
    --color-primary-soft: #b91c1c;
    --color-success: #16a34a;
    --color-warning: #fbbf24;
    --color-danger: #ef4444;
    --color-border-subtle: #262626;
    --color-border-strong: #404040;
    --color-neutral-50: #fafafa;
    --color-neutral-100: #f4f4f4;
    --color-neutral-200: #e5e5e5;
    --color-neutral-300: #d4d4d4;
    --color-neutral-400: #a3a3a3;
    --color-neutral-500: #737373;
    --color-neutral-600: #525252;
    --color-neutral-700: #404040;
    --color-neutral-800: #262626;
    --color-neutral-900: #171717;
    --font-sans: "Inter", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", sans-serif;
    --font-display: "Playfair Display", "Georgia", "Times New Roman", serif;
    --font-mono: "JetBrains Mono", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;
    --text-5xl: 3rem;
    --leading-tight: 1.15;
    --leading-snug: 1.3;
    --leading-normal: 1.5;
    --leading-relaxed: 1.7;
    --space-0: 0;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 28px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;
    --space-20: 80px;
    --space-24: 96px;
    --radius-none: 0;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 18px;
    --radius-2xl: 24px;
    --radius-pill: 999px;
    --shadow-soft: 0 18px 45px rgba(0, 0, 0, 0.55);
    --shadow-subtle: 0 10px 30px rgba(0, 0, 0, 0.4);
    --shadow-card: 0 24px 70px rgba(0, 0, 0, 0.65);
    --shadow-focus: 0 0 0 1px rgba(255, 255, 255, 0.25), 0 0 0 3px rgba(220, 38, 38, 0.5);
    --transition-fast: 120ms ease-out;
    --transition-base: 200ms ease;
    --transition-slow: 320ms ease;
    --container-max: 1120px
}

*,
*::before,
*::after {
    box-sizing: border-box
}

* {
    margin: 0;
    padding: 0
}

html {
    scroll-behavior: smooth;
    text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    overflow-x: clip
}

body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    min-height: 100vh;
    background: radial-gradient(circle at top, #181818 0, #0b0b0b 54%, #050505 100%);
    color: var(--color-text);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    text-rendering: optimizeLegibility
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
    height: auto
}

main,
section,
header,
footer,
.layout-shell,
.layout-main,
.container,
.grid,
.grid-2,
.grid-3,
.card,
.package-card,
.venue-card {
    min-width: 0
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
li {
    overflow-wrap: break-word
}

input,
button,
textarea,
select {
    font: inherit;
    color: inherit;
    background: none;
    border: none
}

button {
    cursor: pointer
}

a {
    text-decoration: none;
    color: inherit
}

p {
    margin-bottom: var(--space-4);
    color: var(--color-text-soft);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed)
}

p:last-child {
    margin-bottom: 0
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-display);
    font-weight: 600;
    line-height: var(--leading-tight);
    color: var(--color-text);
    letter-spacing: .02em;
    margin-bottom: var(--space-3)
}

h1 {
    font-size: clamp(2.4rem, 4vw, 3.1rem)
}

h2 {
    font-size: clamp(1.9rem, 3vw, 2.4rem)
}

h3 {
    font-size: clamp(1.5rem, 2.4vw, 2rem)
}

h4 {
    font-size: 1.25rem
}

h5 {
    font-size: 1.125rem
}

h6 {
    font-size: 1rem
}

.kicker {
    font-size: var(--text-xs);
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: var(--space-2)
}

a:hover {
    color: var(--color-primary)
}

ul,
ol {
    margin: 0;
    padding: 0
}

button:focus-visible,
[href]:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: none;
    box-shadow: var(--shadow-focus);
    border-radius: var(--radius-md)
}

button:focus,
[href]:focus,
input:focus,
textarea:focus,
select:focus {
    outline: none
}

.no-focus-outline:focus,
.no-focus-outline:focus-visible {
    box-shadow: none;
    outline: none
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0
}

.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: clamp(16px, 4vw, 32px)
}

.layout-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column
}

.layout-main {
    flex: 1 0 auto
}

.layout-footer {
    flex-shrink: 0
}

.flex {
    display: flex
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center
}

.flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.flex-col {
    display: flex;
    flex-direction: column
}

.flex-wrap {
    flex-wrap: wrap
}

.items-center {
    align-items: center
}

.justify-center {
    justify-content: center
}

.justify-between {
    justify-content: space-between
}

.gap-xs {
    gap: var(--space-2)
}

.gap-sm {
    gap: var(--space-3)
}

.gap-md {
    gap: var(--space-4)
}

.gap-lg {
    gap: var(--space-6)
}

.gap-xl {
    gap: var(--space-8)
}

.grid {
    display: grid
}

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-8)
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-8)
}

@media(max-width:900px) {

    .grid-2,
    .grid-3 {
        grid-template-columns: minmax(0, 1fr)
    }
}

.text-center {
    text-align: center
}

.text-right {
    text-align: right
}

.mt-0 {
    margin-top: 0
}

.mt-xs {
    margin-top: var(--space-2)
}

.mt-sm {
    margin-top: var(--space-3)
}

.mt-md {
    margin-top: var(--space-4)
}

.mt-lg {
    margin-top: var(--space-6)
}

.mt-xl {
    margin-top: var(--space-8)
}

.mb-0 {
    margin-bottom: 0
}

.mb-xs {
    margin-bottom: var(--space-2)
}

.mb-sm {
    margin-bottom: var(--space-3)
}

.mb-md {
    margin-bottom: var(--space-4)
}

.mb-lg {
    margin-bottom: var(--space-6)
}

.mb-xl {
    margin-bottom: var(--space-8)
}

.py-section {
    padding-block: clamp(56px, 8vw, 88px)
}

.pt-header {
    padding-top: 88px
}

.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 10px;
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    letter-spacing: .14em;
    text-transform: uppercase
}

.badge-primary {
    background: rgba(220, 38, 38, 0.12);
    color: var(--color-primary);
    border: 1px solid rgba(220, 38, 38, 0.35)
}

.badge-soft {
    background: rgba(148, 163, 184, 0.08);
    color: var(--color-text-muted);
    border: 1px solid rgba(148, 163, 184, 0.2)
}

.page-shell {
    background: radial-gradient(120% 220% at 10% 0, #1c0a10 0, #050505 48%, #000 100%);
    color: var(--color-text)
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 40;
    backdrop-filter: blur(22px);
    background: linear-gradient(to bottom, rgba(5, 5, 5, 0.95), rgba(5, 5, 5, 0.86));
    border-bottom: 1px solid rgba(148, 163, 184, 0.12)
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    height: 76px
}

.brand-lockup {
    display: flex;
    align-items: center;
    gap: var(--space-3)
}

.brand-mark {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: radial-gradient(circle at 20% 0, #fecaca 0, #dc2626 34%, #1c0a10 100%);
    box-shadow: 0 0 0 1px rgba(248, 250, 252, 0.06), 0 18px 38px rgba(0, 0, 0, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    color: #fef2f2
}

.brand-text {
    display: flex;
    flex-direction: column
}

.brand-name {
    font-family: var(--font-display);
    font-size: 0.92rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #f9fafb
}

.brand-sub {
    font-size: 0.68rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: .16em
}

.nav-main {
    display: flex;
    align-items: center;
    gap: var(--space-6)
}

.nav-links {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--color-text-muted)
}

.nav-link {
    position: relative;
    padding-block: 4px
}

.nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -6px;
    width: 18px;
    height: 1px;
    background: linear-gradient(to right, var(--color-primary), transparent);
    opacity: 0;
    transform: translateY(3px);
    transition: opacity var(--transition-base), transform var(--transition-base)
}

.nav-link-active,
.nav-link:hover {
    color: var(--color-text)
}

.nav-link-active::after,
.nav-link:hover::after {
    opacity: 1;
    transform: translateY(0)
}

.nav-cta {
    display: flex;
    align-items: center;
    gap: var(--space-3)
}

.nav-language {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--color-text-muted);
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.3);
    padding: 3px 10px
}

.nav-language span {
    opacity: .5
}

.nav-language span.is-active {
    opacity: 1;
    color: var(--color-text)
}

.nav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(15, 15, 15, 0.9);
    gap: 4px;
    padding: 6px
}

.nav-toggle span {
    display: block;
    width: 16px;
    height: 1px;
    border-radius: 999px;
    background: #e5e5e5
}

.badge-21 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 64px;
    background: linear-gradient(135deg, #b91c1c, #dc2626, #7f1d1d);
    color: #fef2f2;
    font-size: 0.7rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    box-shadow: 0 0 0 1px rgba(248, 250, 252, 0.18), 0 14px 40px rgba(0, 0, 0, 0.9);
    white-space: nowrap
}

.badge-21 span {
    font-weight: 600
}

.badge-21 strong {
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    background: rgba(15, 15, 15, 0.98);
    border: 1px solid rgba(254, 242, 242, 0.6);
    font-size: 0.72rem
}

.hero {
    position: relative;
    padding-block: clamp(108px, 14vh, 138px) clamp(72px, 12vh, 110px)
}

.hero-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr);
    gap: clamp(32px, 5vw, 56px);
    align-items: stretch
}

.hero-intro {
    position: relative;
    z-index: 2
}

.hero-intro-header {
    margin-bottom: var(--space-6)
}

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3)
}

.hero-eyebrow-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 0, #fee2e2 0, #dc2626 40%, #450a0a 100%);
    box-shadow: 0 0 0 1px rgba(248, 250, 252, 0.35)
}

.hero-kicker {
    font-size: 0.72rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--color-text-muted)
}

.hero-title {
    margin-bottom: var(--space-4)
}

.hero-title span {
    display: block
}

.hero-title-highlight {
    background: linear-gradient(120deg, #fef3c7, #fee2e2, #e5e7eb);
    -webkit-background-clip: text;
    color: transparent
}

.hero-lede {
    max-width: 32rem;
    font-size: 1.02rem;
    color: var(--color-text-soft)
}

.hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-top: var(--space-6)
}

.hero-meta-block {
    min-width: 160px
}

.hero-meta-label {
    font-size: 0.7rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: 6px
}

.hero-meta-value {
    font-size: 0.92rem;
    color: var(--color-text)
}

.hero-meta-value strong {
    color: #fee2e2
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-6)
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    max-width: 100%;
    min-width: 0;
    border-radius: var(--radius-pill);
    padding: 10px 18px;
    font-size: 0.86rem;
    font-weight: 500;
    letter-spacing: .14em;
    line-height: 1.25;
    text-align: center;
    text-transform: uppercase;
    border: 1px solid transparent;
    transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base), transform var(--transition-fast), box-shadow var(--transition-base);
    white-space: normal;
    overflow-wrap: break-word
}

.btn-primary {
    background: radial-gradient(circle at 20% 0, #fee2e2 0, #dc2626 40%, #450a0a 100%);
    color: #0b0b0b;
    border-color: rgba(248, 250, 252, 0.18);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.8)
}

.btn-primary:hover {
    background: radial-gradient(circle at 20% 0, #fca5a5 0, #b91c1c 42%, #260707 100%);
    color: #fff7ed;
    border-color: rgba(254, 226, 226, 0.5);
    transform: translateY(-1px);
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(254, 226, 226, 0.18)
}

.btn-primary:focus-visible {
    color: #fff7ed
}

.btn-outline {
    background: rgba(15, 15, 15, 0.7);
    color: var(--color-text-soft);
    border-color: rgba(148, 163, 184, 0.5)
}

.btn-outline:hover {
    background: rgba(31, 31, 31, 0.95);
    color: var(--color-text)
}

.btn-ghost {
    background: transparent;
    color: var(--color-text-muted);
    border-color: rgba(75, 85, 99, 0.8)
}

.btn-ghost:hover {
    background: rgba(15, 15, 15, 0.9);
    color: var(--color-text)
}

.btn-sm {
    padding: 7px 14px;
    font-size: 0.78rem
}

.btn-lg {
    padding: 12px 24px;
    font-size: 0.9rem
}

.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.5);
    background: rgba(15, 15, 15, 0.85);
    color: var(--color-text-soft)
}

.btn-icon:hover {
    background: rgba(31, 31, 31, 0.98);
    color: var(--color-text)
}

.btn:disabled,
.btn[aria-disabled=true] {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none
}

.hero-visual {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch
}

.hero-panel {
    position: relative;
    border-radius: var(--radius-2xl);
    overflow: hidden;
    background: radial-gradient(circle at 0 0, #4c0519 0, #111827 40%, #020617 100%);
    box-shadow: var(--shadow-card);
    min-height: 320px
}

.hero-panel::before {
    content: "";
    position: absolute;
    inset: -20%;
    background: radial-gradient(circle at 20% 0, rgba(248, 250, 252, 0.08) 0, transparent 48%), radial-gradient(circle at 90% 10%, rgba(248, 113, 113, 0.4) 0, transparent 40%), radial-gradient(circle at 10% 80%, rgba(234, 179, 8, 0.26) 0, transparent 36%), radial-gradient(circle at 90% 90%, rgba(15, 23, 42, 0.9) 0, rgba(2, 6, 23, 1) 55%);
    mix-blend-mode: screen;
    opacity: .68
}

.hero-panel-img {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(15, 15, 15, 0.92), rgba(15, 15, 15, 0.45) 28%, rgba(0, 0, 0, 0) 52%), url("/assets/images/luxury-poker-restaurant.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: saturate(1.15) contrast(1.05)
}

.hero-panel-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 10% 0, rgba(251, 191, 36, 0.08) 0, transparent 45%), radial-gradient(circle at 80% 0, rgba(220, 38, 38, 0.7) 0, transparent 46%), linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.88));
    mix-blend-mode: multiply
}

.hero-panel-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--space-5) var(--space-5) var(--space-4)
}

.hero-panel-topline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-3);
    margin-bottom: var(--space-4)
}

.hero-chip-stack {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.chip-row {
    display: flex;
    align-items: center;
    gap: 3px
}

.chip {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 1px solid rgba(15, 15, 15, 0.9);
    box-shadow: 0 7px 14px rgba(0, 0, 0, 0.85)
}

.chip-red {
    background: radial-gradient(circle at 30% 0, #fee2e2 0, #b91c1c 38%, #450a0a 100%)
}

.chip-gold {
    background: radial-gradient(circle at 30% 0, #fef3c7 0, #eab308 35%, #92400e 100%)
}

.chip-ivory {
    background: radial-gradient(circle at 30% 0, #f9fafb 0, #e5e7eb 40%, #4b5563 100%)
}

.hero-panel-tag {
    align-self: flex-end;
    font-size: 0.68rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #fee2e2;
    border-radius: 999px;
    border: 1px solid rgba(254, 226, 226, 0.6);
    padding: 4px 10px;
    background: rgba(15, 15, 15, 0.82);
    backdrop-filter: blur(20px)
}

.hero-panel-footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-4);
    min-width: 0
}

.hero-panel-caption {
    max-width: 15rem;
    font-size: 0.82rem;
    color: #e5e5e5;
    min-width: 0
}

.hero-panel-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.78rem;
    color: #fee2e2;
    min-width: 0
}

.hero-panel-list span {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    min-width: 0
}

.hero-panel-list span::before {
    content: "";
    width: 6px;
    height: 6px;
    min-width: 6px;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 0, #fef3c7 0, #ea580c 40%, #7c2d12 100%);
    box-shadow: 0 0 0 1px rgba(248, 250, 252, 0.4);
    flex-shrink: 0;
    margin-top: 3px
}

.hero-panel-list strong {
    width: 100px;
    min-width: 100px;
    flex-shrink: 0;
    color: #fef3c7
}

.hero-panel-list em {
    font-style: normal;
    flex: 1;
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--space-4);
    margin-bottom: var(--space-6)
}

.section-heading-main {
    max-width: 32rem
}

.section-heading-eyebrow {
    font-size: 0.72rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: 8px
}

.section-heading-title {
    margin-bottom: 6px
}

.section-heading-sub {
    font-size: 0.9rem;
    color: var(--color-text-soft)
}

.section-heading-meta {
    font-size: 0.78rem;
    color: var(--color-text-muted);
    text-align: right;
    max-width: 18rem
}

.card {
    position: relative;
    border-radius: var(--radius-xl);
    background: radial-gradient(circle at 0 0, #1f2937 0, #020617 36%, #020617 100%);
    border: 1px solid rgba(148, 163, 184, 0.28);
    box-shadow: var(--shadow-soft);
    padding: var(--space-5);
    color: var(--color-text);
    overflow: hidden
}

.card::before {
    content: "";
    position: absolute;
    inset: -40%;
    background: radial-gradient(circle at 0 0, rgba(248, 250, 252, 0.06) 0, transparent 38%), radial-gradient(circle at 100% 0, rgba(220, 38, 38, 0.42) 0, transparent 45%);
    mix-blend-mode: soft-light;
    opacity: .7;
    pointer-events: none
}

.card-surface {
    position: relative;
    z-index: 1
}

.card-header {
    margin-bottom: var(--space-3)
}

.card-title {
    font-size: 1.05rem;
    margin-bottom: 4px
}

.card-kicker {
    font-size: 0.7rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: 8px
}

.card-meta {
    font-size: 0.8rem;
    color: var(--color-text-muted)
}

.card-body {
    font-size: 0.9rem;
    color: var(--color-text-soft)
}

.card-footer {
    margin-top: var(--space-4);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
    min-width: 0;
    font-size: 0.8rem;
    color: var(--color-text-muted)
}

.card-footer .btn {
    align-self: flex-start;
    max-width: 100%
}

.card-compact {
    padding: var(--space-4);
    border-radius: var(--radius-lg)
}

.card-outline {
    background: rgba(15, 15, 15, 0.85);
    border-color: rgba(75, 85, 99, 0.9);
    box-shadow: var(--shadow-subtle)
}

.tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px
}

.tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.5);
    font-size: 0.68rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    background: rgba(15, 15, 15, 0.8)
}

.tag-soft {
    background: rgba(31, 41, 55, 0.9);
    border-color: rgba(148, 163, 184, 0.7);
    color: #e5e7eb
}

.tag-primary {
    background: rgba(220, 38, 38, 0.12);
    border-color: rgba(248, 113, 113, 0.7);
    color: #fee2e2
}

.input-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: var(--space-4)
}

.input-label {
    font-size: 0.8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-muted)
}

.input-label span {
    color: #fecaca
}

.input-control {
    position: relative
}

.input {
    width: 100%;
    border-radius: var(--radius-md);
    border: 1px solid rgba(75, 85, 99, 0.9);
    background: radial-gradient(circle at 0 0, #111827 0, #020617 48%, #020617 100%);
    padding: 11px 12px 11px 12px;
    font-size: 0.9rem;
    color: var(--color-text);
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 1), 0 14px 30px rgba(0, 0, 0, 0.85);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base)
}

.input::placeholder {
    color: var(--color-text-muted);
    opacity: .7
}

.input:focus-visible {
    border-color: rgba(248, 250, 252, 0.85);
    box-shadow: 0 0 0 1px rgba(248, 250, 252, 0.35), 0 0 0 3px rgba(220, 38, 38, 0.45)
}

.input[aria-invalid=true] {
    border-color: rgba(239, 68, 68, 0.85);
    box-shadow: 0 0 0 1px rgba(127, 29, 29, 0.9)
}

textarea.input {
    min-height: 120px;
    resize: vertical
}

.input-help {
    font-size: 0.78rem;
    color: var(--color-text-muted)
}

.input-error {
    font-size: 0.78rem;
    color: var(--color-danger);
    margin-top: 3px
}

.select {
    appearance: none;
    padding-right: 34px;
    background-image: linear-gradient(45deg, transparent 50%, #e5e7eb 50%), linear-gradient(135deg, #e5e7eb 50%, transparent 50%);
    background-position: calc(100% - 16px) 48%, calc(100% - 11px) 48%;
    background-size: 6px 6px;
    background-repeat: no-repeat
}

.checkbox-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.82rem;
    color: var(--color-text-soft)
}

.checkbox-input {
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 4px;
    border: 1px solid rgba(75, 85, 99, 0.9);
    background: linear-gradient(145deg, #020617, #020617);
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.9);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: border-color var(--transition-base), background-color var(--transition-base)
}

.checkbox-input:checked {
    background: radial-gradient(circle at 20% 0, #fee2e2 0, #dc2626 45%, #450a0a 100%);
    border-color: rgba(248, 250, 252, 0.9)
}

.checkbox-input:checked::after {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: #fef2f2
}

.checkbox-text a {
    text-decoration: underline dotted;
    color: var(--color-text-soft)
}

.checkbox-text a:hover {
    color: var(--color-primary)
}

.site-footer {
    border-top: 1px solid rgba(31, 41, 55, 1);
    background: radial-gradient(circle at 0 0, #111827 0, #020617 46%, #020617 100%);
    padding-block: 24px
}

.footer-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--space-4);
    font-size: 0.78rem;
    color: var(--color-text-muted)
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.footer-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4)
}

.footer-nav a {
    color: var(--color-text-muted)
}

.footer-nav a:hover {
    color: var(--color-text)
}

.footer-legal {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    width: 100%
}

.footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: center
}

.footer-legal-links a {
    color: var(--color-text-muted)
}

.footer-legal-links a:hover {
    color: var(--color-text)
}

.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.5);
    font-size: 0.7rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-muted)
}

.pill-danger {
    border-color: rgba(239, 68, 68, 0.8);
    color: #fecaca
}

.list-feature {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.list-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9rem;
    color: var(--color-text-soft)
}

.list-feature-icon {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: radial-gradient(circle at 20% 0, #fef3c7 0, #eab308 40%, #92400e 100%);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.9);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: #020617
}

.list-feature-title {
    font-weight: 500;
    color: var(--color-text)
}

.list-feature-copy {
    font-size: 0.9rem;
    color: var(--color-text-soft)
}

.pill-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.pill-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 11px;
    border-radius: 999px;
    border: 1px solid rgba(75, 85, 99, 0.9);
    background: rgba(15, 23, 42, 0.9);
    color: var(--color-text-muted);
    font-size: 0.72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base)
}

.pill-filter[aria-pressed=true],
.pill-filter-active {
    background: radial-gradient(circle at 20% 0, #fee2e2 0, #dc2626 40%, #450a0a 100%);
    color: #020617;
    border-color: rgba(248, 250, 252, 0.9);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.9)
}

.page-header {
    padding-bottom: clamp(24px, 4vw, 32px);
    padding-top: clamp(96px, 12vh, 120px)
}

.page-header-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--space-5)
}

.page-header-main {
    max-width: 28rem
}

.page-header-kicker {
    font-size: 0.74rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: 10px
}

.page-header-title {
    margin-bottom: 10px
}

.page-header-sub {
    font-size: 0.92rem;
    color: var(--color-text-soft)
}

.page-header-meta {
    max-width: 18rem;
    font-size: 0.8rem;
    color: var(--color-text-muted);
    text-align: right
}

.package-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6)
}

@media(max-width:1040px) {
    .package-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}

@media(max-width:720px) {
    .package-grid {
        grid-template-columns: minmax(0, 1fr)
    }
}

.package-card {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: radial-gradient(circle at 0 0, #1c1917 0, #020617 50%, #020617 100%);
    border: 1px solid rgba(148, 163, 184, 0.4);
    box-shadow: var(--shadow-soft);
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-4)
}

.package-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-3)
}

.package-title {
    font-size: 1rem;
    margin-bottom: 4px
}

.package-label {
    font-size: 0.72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #fef3c7
}

.package-price {
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: #e5e7eb
}

.package-body {
    font-size: 0.9rem;
    color: var(--color-text-soft)
}

.package-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--color-text-muted)
}

.package-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    min-width: 0;
    margin-top: auto;
    padding-top: var(--space-3);
    border-top: 1px dashed rgba(75, 85, 99, 0.9)
}

.package-footer .btn {
    flex: 1 1 180px;
    max-width: 100%
}

.venue-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6)
}

@media(max-width:1040px) {
    .venue-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}

@media(max-width:720px) {
    .venue-grid {
        grid-template-columns: minmax(0, 1fr)
    }
}

.venue-card {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: #020617;
    border: 1px solid rgba(75, 85, 99, 0.9);
    box-shadow: var(--shadow-soft);
    display: flex;
    flex-direction: column
}

.venue-media {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden
}

.venue-media::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 0 0, rgba(251, 191, 36, 0.24) 0, transparent 48%), radial-gradient(circle at 100% 0, rgba(220, 38, 38, 0.6) 0, transparent 50%), linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.85));
    mix-blend-mode: multiply;
    z-index: 1
}

.venue-img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: saturate(1.15) contrast(1.05)
}

.venue-body {
    padding: var(--space-4) var(--space-4) var(--space-3);
    display: flex;
    flex-direction: column;
    gap: 6px
}

.venue-location {
    font-size: 0.78rem;
    color: var(--color-text-muted);
    letter-spacing: .16em;
    text-transform: uppercase
}

.venue-title {
    font-size: 1rem;
    color: var(--color-text)
}

.venue-meta {
    font-size: 0.82rem;
    color: var(--color-text-soft)
}

.venue-footer {
    padding: 0 var(--space-4) var(--space-4);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    font-size: 0.78rem;
    color: var(--color-text-muted)
}

.venue-footer span {
    flex: 1 1 180px;
    min-width: 0
}

.venue-footer .btn {
    flex: 0 1 170px;
    max-width: 100%
}

@media(max-width:1180px) {
    .venue-footer {
        align-items: flex-start
    }

    .venue-footer .btn {
        flex-basis: 100%;
        width: 100%
    }
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr);
    gap: var(--space-8);
    align-items: flex-start
}

@media(max-width:960px) {
    .hero-shell {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-6)
    }

    .hero-visual {
        order: -1
    }

    .section-heading,
    .page-header-inner {
        flex-direction: column;
        align-items: flex-start
    }

    .page-header-meta,
    .section-heading-meta {
        text-align: left;
        max-width: none
    }

    .nav-links {
        display: none
    }

    .nav-toggle {
        display: flex
    }

    .header-inner {
        height: 70px
    }

    .contact-layout {
        grid-template-columns: minmax(0, 1fr)
    }
}

@media(max-width:640px) {
    .hero {
        padding-block: 104px 64px
    }

    .hero-panel {
        min-height: 260px;
        border-radius: var(--radius-xl)
    }

    .hero-panel-content {
        padding: var(--space-4)
    }

    .hero-panel-topline {
        flex-wrap: wrap
    }

    .hero-panel-tag {
        align-self: flex-start;
        max-width: 100%;
        white-space: normal
    }

    .hero-panel-footer {
        flex-direction: column;
        gap: var(--space-3)
    }

    .hero-panel-caption {
        max-width: none
    }

    .hero-panel-list {
        width: 100%
    }

    .hero-panel-list span {
        display: grid;
        grid-template-columns: 10px minmax(0, auto) minmax(0, 1fr);
        align-items: start
    }

    .hero-panel-list span::before {
        grid-column: 1
    }

    .hero-panel-list strong {
        grid-column: 2;
        width: auto;
        min-width: 0;
        white-space: nowrap
    }

    .hero-panel-list em {
        grid-column: 3
    }

    .hero-actions {
        flex-direction: column;
        align-items: stretch
    }

    .btn,
    .card-footer .btn,
    .package-footer .btn {
        width: 100%
    }

    .section-heading {
        margin-bottom: var(--space-5)
    }

    .card {
        padding: var(--space-4)
    }

    .site-footer {
        padding-block: 20px
    }

    .footer-inner {
        align-items: flex-start
    }
}

@media(prefers-reduced-motion:reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important
    }

    .hero-panel::before,
    .hero-panel-overlay {
        animation: none
    }
}

ul {
    list-style: none !important
}

.nav-toggle {
    flex-direction: column
}
