.upcoming-events{grid-column:1/-1;margin-bottom:24px;padding:clamp(22px,4vw,38px);border:1px solid #d4a04455;border-radius:24px;color:#f7f2e9;background:radial-gradient(circle at 90% 0,#d4a0442b,transparent 20rem),#0a1726}.events-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.events-heading span,.event-label{color:#f0c879;font-size:.75rem;font-weight:800;letter-spacing:.12em}.events-heading h1{margin:4px 0;font:600 clamp(2rem,5vw,3.2rem)/1 "Playfair Display",serif}.events-heading p{margin:0;color:#bdc7d2}.events-heading a{color:#f0c879;font-weight:700}.events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.event-card{display:grid;grid-template-columns:76px 1fr;gap:17px;padding:18px;border:1px solid #ffffff20;border-radius:17px;background:#ffffff0a}.event-card.selected{border-color:#f0c879;box-shadow:0 0 0 2px #f0c87922}.event-date{display:flex;flex-direction:column;align-items:center;align-self:start;padding:10px 6px;border-radius:13px;color:#07111e;background:linear-gradient(145deg,#f4d38d,#d4a044)}.event-date span,.event-date small{font-size:.72rem;font-weight:800}.event-date strong{font:700 2rem "Playfair Display",serif}.event-copy h2{margin:5px 0 7px;font:600 1.35rem "Playfair Display",serif}.event-copy>p{margin:0;color:#c5ced8;font-size:.92rem}.event-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:14px 0;color:#f0c879}.event-meta span{color:#d8dee5}.event-actions{display:grid;grid-template-columns:100px 1fr;gap:9px;align-items:end}.event-actions label{display:grid;gap:4px;color:#c5ced8;font-size:.78rem}.event-actions select,.event-actions button{min-height:44px;border-radius:10px;font:inherit}.event-actions select{padding:0 10px}.event-actions button{border:0;color:#07111e;background:linear-gradient(135deg,#f0c879,#d4a044);font-weight:900}.event-actions button:disabled{opacity:.6}.event-copy>small{display:block;margin-top:8px;color:#95a2b0}.event-message,.sold-out{color:#ffb9a8!important;font-weight:700}.events-empty,.events-loading{grid-column:1/-1;padding:20px;border:1px dashed #ffffff33;border-radius:14px;color:#c5ced8}@media(max-width:760px){.events-heading{align-items:flex-start;flex-direction:column}.events-grid{grid-template-columns:1fr}}@media(max-width:430px){.event-card{grid-template-columns:62px 1fr;padding:14px;gap:12px}.event-actions{grid-template-columns:1fr}.event-actions label{grid-template-columns:1fr 1fr;align-items:center}}

/* Reservation confirmation (post-payment) */
.reservation-confirmation{grid-column:1/-1;margin-bottom:24px}
.rc-card{padding:clamp(22px,4vw,38px);border:1px solid #d4a04455;border-radius:24px;color:#f7f2e9;background:radial-gradient(circle at 90% 0,#d4a0442b,transparent 20rem),#0a1726}
.rc-state h2{margin:6px 0 10px;font:600 clamp(1.6rem,4.5vw,2.4rem)/1.1 "Playfair Display",serif}
.rc-state p{margin:0 0 12px;color:#c5ced8;line-height:1.55}
.rc-badge{display:grid;place-items:center;width:52px;height:52px;margin-bottom:14px;border-radius:50%;font-size:1.5rem;font-weight:900;color:#07111e;background:linear-gradient(145deg,#f4d38d,#d4a044)}
.rc-badge-pending{background:linear-gradient(145deg,#f4d38d,#d4a044)}
.rc-badge-paid{background:linear-gradient(145deg,#9be7a4,#4caf50)}
.rc-badge-expired{background:linear-gradient(145deg,#f6b8a6,#c96a4a)}
.rc-badge-help{background:linear-gradient(145deg,#ffd98a,#d4a044)}
.rc-details{display:grid;gap:10px;margin:18px 0;padding:18px;border:1px solid #ffffff1f;border-radius:15px;background:#ffffff08}
.rc-details>div{display:grid;grid-template-columns:110px 1fr;gap:10px}
.rc-details dt{color:#95a2b0;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.rc-details dd{margin:0;font-weight:600;color:#fff4df}
.rc-token{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;word-break:break-all}
.rc-note{color:#f0c879!important;font-weight:600}
.rc-contact{color:#95a2b0!important;font-size:.85rem}
.rc-contact a{color:#f0c879;font-weight:700}
.rc-button{display:inline-block;margin-top:14px;padding:13px 22px;min-height:48px;border:0;border-radius:12px;color:#07111e;background:linear-gradient(135deg,#f0c879,#d4a044);font:800 1rem inherit;text-decoration:none;cursor:pointer}
.rc-button:disabled{opacity:.6}
.rc-loading,.rc-state .event-label{color:#f0c879}
.upcoming-events.confirmation-active{opacity:.55}
.reservations-soon{margin:10px 0;color:#f0c879;font-weight:800}

/* Warm boho treatment aligned with the Cozy Co logo */
.upcoming-events{
  position:relative;
  overflow:hidden;
  border-color:#9b6f483d;
  color:#2b211b;
  background:
    radial-gradient(circle at 92% -15%,#b47a4638,transparent 18rem),
    repeating-linear-gradient(45deg,#6d4b3320 0 1px,transparent 1px 9px),
    repeating-linear-gradient(-45deg,#ffffff45 0 1px,transparent 1px 9px),
    #e4d2b9;
  box-shadow:0 18px 44px #2d1d1214;
}
.upcoming-events::after{
  content:"";
  position:absolute;
  right:-54px;
  bottom:-74px;
  width:190px;
  height:190px;
  border:1px solid #9b6f4838;
  border-radius:50%;
  box-shadow:0 0 0 22px #9b6f4810,0 0 0 44px #9b6f480a;
  pointer-events:none;
}
.events-heading,.events-grid{position:relative;z-index:1}
.events-heading span,.event-label{color:#945d32}
.events-heading h1{color:#211914}
.events-heading p{color:#655548}
.events-heading a{color:#7a4928;text-underline-offset:4px}
.event-card{
  border-color:#7b57352b;
  color:#2b211b;
  background:rgba(255,250,242,.67);
  box-shadow:0 8px 24px #4e321512;
}
.event-card.selected{border-color:#a86e3f;box-shadow:0 0 0 2px #a86e3f24,0 8px 24px #4e321512}
.event-date{color:#211914;background:linear-gradient(145deg,#ead0a4,#bd8250)}
.event-copy h2{color:#211914}
.event-copy>p,.event-meta span,.event-actions label,.event-copy>small{color:#67584c}
.event-meta{color:#8c562f}
.event-actions select{
  padding:0 36px 0 12px;
  border:1px solid #9b6f4854;
  color:#2b211b;
  background-color:#fffaf2;
  background-image:linear-gradient(45deg,transparent 50%,#8c562f 50%),linear-gradient(135deg,#8c562f 50%,transparent 50%);
  background-position:calc(100% - 17px) 18px,calc(100% - 11px) 18px;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
  appearance:none;
}
.event-actions select option{color:#2b211b;background:#fffaf2}
.event-actions button{color:#fff8ee;background:linear-gradient(135deg,#6d4932,#2f241e)}
.events-empty,.events-loading{border-color:#7b57354a;color:#67584c;background:rgba(255,250,242,.45)}

/* Keep Plan Your Visit and event controls aligned with the active season. */
:root[data-season] .upcoming-events{
  border-color:color-mix(in srgb,var(--season-accent) 35%,transparent);
  background:
    radial-gradient(circle at 92% -15%,color-mix(in srgb,var(--season-accent) 28%,transparent),transparent 18rem),
    repeating-linear-gradient(45deg,color-mix(in srgb,var(--season-deep) 10%,transparent) 0 1px,transparent 1px 9px),
    repeating-linear-gradient(-45deg,rgba(255,255,255,.28) 0 1px,transparent 1px 9px),
    color-mix(in srgb,var(--season-top) 88%,var(--paper));
}
:root[data-season] .event-card{border-color:color-mix(in srgb,var(--season-accent) 25%,transparent);background:color-mix(in srgb,var(--paper) 76%,transparent)}
:root[data-season] .event-date{background:linear-gradient(145deg,var(--gold-light),var(--season-accent))}
:root[data-season] .event-actions select{
  border-color:color-mix(in srgb,var(--season-accent) 48%,transparent);
  background-color:var(--paper);
  background-image:linear-gradient(45deg,transparent 50%,var(--season-accent) 50%),linear-gradient(135deg,var(--season-accent) 50%,transparent 50%);
}
:root[data-season] .event-actions select option{background:var(--paper)}
