/* Dining & Events section (home): two photo cards, always-visible title and button, details appear on hover / tap,
   plus four event-type cards that lead to the events page. */
.de-head { text-align: center; max-width: 40rem; margin: 0 auto 2.6rem; }
.de-head .rz-eyebrow { justify-content: center; }
.de-head h2 { margin: .7rem 0 .6rem; color: var(--rz-text-primary); font-weight: 800; letter-spacing: -.028em; line-height: 1.08; font-size: clamp(2rem, 4.6vw, 3.1rem); }
.de-head h2::after { margin-left: auto !important; margin-right: auto !important; }
.de-head p { color: var(--rz-text-secondary); font-size: 1.02rem; line-height: 1.7; margin: 0; }

.de-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.1rem, 2.4vw, 1.8rem); }
@media (max-width: 800px) { .de-grid { grid-template-columns: 1fr; } }

.de-card {
    position: relative; isolation: isolate; overflow: hidden; border-radius: 30px; min-height: clamp(400px, 44vw, 500px); color: #fff; background: #0c1226;
    display: flex; flex-direction: column; justify-content: flex-end; cursor: pointer;
    box-shadow: 0 2px 4px rgba(10,14,39,.12), 0 28px 50px -24px rgba(10,14,39,.55);
    transition: transform .6s cubic-bezier(.16,1,.3,1), box-shadow .6s ease;
}
.de-card:hover, .de-card.is-open { transform: translateY(-6px); box-shadow: 0 4px 8px rgba(10,14,39,.14), 0 40px 64px -26px rgba(10,14,39,.65); }

/* photos (a slow crossfade when there are several) */
.de-slides { position: absolute; inset: 0; z-index: -2; }
.de-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transform: scale(1.06); transition: opacity 1.2s ease, transform 6s ease-out; }
.de-slide.is-active { opacity: 1; transform: scale(1); }
.de-noimg { position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 80% 15%, rgba(212,175,55,.28), transparent 45%), linear-gradient(160deg, #0a0e27, #1a2552); }

/* light navy fade at the bottom so the title reads; deeper on hover */
.de-card::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(10,14,39,0) 38%, rgba(10,16,48,.68) 100%); }
.de-card::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .55s ease; background: linear-gradient(180deg, rgba(10,14,39,.3), rgba(8,12,34,.88)); }
.de-card:hover::after, .de-card.is-open::after, .de-card:focus-within::after { opacity: 1; }

.de-frame { position: absolute; inset: 12px; border-radius: 22px; border: 1px solid rgba(212,175,55,.34); pointer-events: none; transition: inset .6s cubic-bezier(.16,1,.3,1), border-color .6s ease; z-index: 1; }
.de-card:hover .de-frame, .de-card.is-open .de-frame { inset: 9px; border-color: rgba(240,216,120,.7); }

.de-body { position: relative; z-index: 2; padding: 0 clamp(1.4rem, 3vw, 2.2rem) clamp(1.5rem, 3vw, 2.1rem); display: flex; flex-direction: column; gap: .6rem; }
.de-kicker { font-size: .68rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #e6c860; }
.de-card h3 { margin: 0; font-family: 'Playfair Display', Georgia, serif !important; font-weight: 700; color: #fff !important; font-size: clamp(1.55rem, 2.6vw, 2.1rem); line-height: 1.1; text-shadow: 0 4px 22px rgba(0,0,0,.45); }
.de-card h3::after { display: none !important; }

/* details: hidden until hover (desktop) or tap (touch) */
.de-more { max-height: 0; opacity: 0; transform: translateY(14px); overflow: hidden; transition: max-height .6s cubic-bezier(.16,1,.3,1), opacity .5s ease, transform .6s cubic-bezier(.16,1,.3,1); }
.de-card:hover .de-more, .de-card.is-open .de-more, .de-card:focus-within .de-more { max-height: 14em; opacity: 1; transform: none; }
.de-more p { margin: 0 0 .8rem; color: rgba(255,255,255,.86); font-size: .95rem; line-height: 1.6; max-width: 30rem; }
.de-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.de-facts li { display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px; border-radius: 999px; font-size: .8rem; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.24); }
.de-facts i, .de-facts svg { color: #f0d878; font-size: .75rem; } .de-facts b { font-weight: 700; }

.de-cta {
    align-self: flex-start; margin-top: .5rem; display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 8px 0 24px; border-radius: 999px;
    background: #D4AF37; color: #14110b !important; font-weight: 800; font-size: .88rem; letter-spacing: .02em; text-decoration: none;
    transition: gap .4s cubic-bezier(.16,1,.3,1), filter .2s ease;
}
.de-cta .de-ar { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #14110b; color: #f0d878; font-size: .8rem; transition: transform .4s cubic-bezier(.16,1,.3,1); }
.de-cta:hover { gap: 16px; filter: brightness(1.06); } .de-cta:hover .de-ar { transform: translateX(3px); }

.de-dots { position: absolute; right: 26px; top: 26px; z-index: 2; display: flex; gap: 6px; }
.de-dots span { width: 8px; height: 8px; border-radius: 99px; background: rgba(255,255,255,.55); transition: width .35s ease, background .35s ease; }
.de-dots span.is-active { width: 24px; background: #D4AF37; }

/* ---- event types: nice small cards that lead to the events page ---- */
.de-types { list-style: none; margin: clamp(1.2rem, 2.4vw, 1.8rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.8rem, 1.6vw, 1.2rem); }
@media (max-width: 900px) { .de-types { grid-template-columns: repeat(2, 1fr); } }
.de-type {
    display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.3rem 1.3rem 1.2rem; border-radius: 22px; text-decoration: none;
    background: var(--rz-bg-card, #fff); border: 1px solid var(--rz-border, #e2e8f0); box-shadow: 0 1px 2px rgba(15,23,42,.05);
    transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, border-color .3s ease;
}
.de-type:hover { transform: translateY(-5px); border-color: rgba(212,175,55,.6); box-shadow: 0 22px 40px -24px rgba(15,23,42,.45); }
.de-type .de-ic { width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.15rem; color: #14110b; background: linear-gradient(135deg, #f0d878, #D4AF37); margin-bottom: .5rem; }
.de-type strong { color: var(--rz-text-primary); font-size: 1.02rem; font-weight: 800; }
.de-type span { color: var(--rz-text-secondary); font-size: .85rem; line-height: 1.5; }
.de-type em { margin-top: auto; padding-top: .6rem; font-style: normal; font-size: .82rem; font-weight: 700; color: #aa820a; display: inline-flex; align-items: center; gap: 8px; }
.de-type .de-ar2 { display: inline-flex; transition: transform .35s ease; } .de-type:hover .de-ar2 { transform: translateX(4px); }
[data-theme="dark"] .de-type em { color: #e6c860; }
.de-all { text-align: center; margin: 1.6rem 0 0; }

@media (prefers-reduced-motion: reduce) { .de-card, .de-slide, .de-more, .de-cta, .de-cta .de-ar, .de-type { transition: none; } .de-card:hover { transform: none; } .de-slide, .de-slide.is-active { transform: none; } }
