/* Expo Page Builder — RSVP section ([expo_rsvp]) */
@font-face{font-family:"EPB Archivo";src:url(../fonts/epb-archivo-latin.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"EPB Archivo";src:url(../fonts/epb-archivo-latin-ext.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

.epb-rsvp{
  --epb-font:"EPB Archivo","Helvetica Neue",Arial,sans-serif;
  --epb-ink:#1d1d1f;--epb-sub:#6e6e73;--epb-tile:#f5f5f7;--epb-line:#e3e3e8;--epb-rad:12px;
  --epb-accent:#e4572e;--epb-btn-bg:#000;--epb-btn-text:#fff;
  container-type:inline-size;container-name:epbr;
  margin:0 0 2em;font-family:var(--epb-font);font-size:16px;line-height:1.5;color:var(--epb-ink);text-align:left;-webkit-font-smoothing:antialiased}
.epb-rsvp *,.epb-rsvp *::before,.epb-rsvp *::after{box-sizing:border-box}
.epb-rsvp [hidden]{display:none !important}
.epb-rsvp .epb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.epb-rsvp h2,.epb-rsvp h3,.epb-rsvp p,.epb-rsvp ul{margin:0;padding:0}
.epb-rsvp ul{list-style:none}

/* ---------- header (same as Classes / Deals) ---------- */
.epb-rsvp .epb-head{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;gap:22px 64px;margin:0 0 28px;padding:clamp(28px,6.5cqi,76px);background:var(--epb-head-bg,#000);color:var(--epb-head-fg,#fff);overflow:hidden}
.epb-rsvp .epb-head-main{flex:1 1 440px;max-width:100%}
.epb-rsvp .epb-eyebrow{display:inline-block;margin:0 0 22px;padding:6px 10px;border:1px solid rgba(255,255,255,.55);border-color:color-mix(in srgb,var(--epb-head-fg,#fff) 55%,transparent);font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;color:var(--epb-head-fg,#fff)}
.epb-rsvp .epb-heading{margin:0;padding:0;font-family:var(--epb-font);font-size:clamp(28px,6.2cqi,64px);font-weight:900;line-height:.95;letter-spacing:-.035em;text-transform:uppercase;color:var(--epb-head-fg,#fff);font-stretch:125%;font-variation-settings:"wdth" 125}
.epb-rsvp .epb-intro{flex:1 1 280px;min-width:0;max-width:46ch;margin:0;font-size:16px;line-height:1.55;color:#d6d6d6;color:color-mix(in srgb,var(--epb-head-fg,#fff) 84%,var(--epb-head-bg,#000))}
.epb-rsvp .epb-head.has-img{isolation:isolate;background-color:var(--epb-head-bg,#000);background-image:var(--epb-head-img);background-position:center;background-size:cover;background-repeat:no-repeat}
.epb-rsvp .epb-head.has-img::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--epb-head-bg,#000);opacity:var(--epb-head-dim,.5);pointer-events:none}
.epb-rsvp .epb-head.has-img .epb-intro{color:var(--epb-head-fg,#fff);opacity:.9}

/* ---------- city cards ---------- */
.epb-rsvp .epb-r-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.epb-rsvp .epb-r-cards.epb-r-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.epb-rsvp .epb-r-cards.epb-r-n1{grid-template-columns:minmax(0,1fr);max-width:520px}
.epb-rsvp .epb-r-card{display:flex;flex-direction:column;padding:24px;border:1px solid var(--epb-line);border-radius:var(--epb-rad);background:#fff;font-family:var(--epb-font)}
.epb-rsvp .epb-r-cbody{display:flex;flex-direction:column;gap:18px;margin-top:18px}
.epb-rsvp .epb-r-city{margin:0;font-family:var(--epb-font);font-size:clamp(24px,3.4cqi,34px);font-weight:900;line-height:1;letter-spacing:-.02em;text-transform:uppercase;color:var(--epb-ink);font-stretch:118%;font-variation-settings:"wdth" 118}
.epb-rsvp .epb-r-range{margin:6px 0 0;font-size:15px;font-weight:700;color:var(--epb-accent)}
.epb-rsvp .epb-r-chev,.epb-rsvp .epb-r-cnext{display:none}
.epb-rsvp .epb-r-venue{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:14.5px;line-height:1.45;color:var(--epb-sub)}
.epb-rsvp .epb-r-venue svg{flex:none;width:17px;height:17px;margin-top:2px;color:var(--epb-ink)}
.epb-rsvp .epb-r-venue b{color:var(--epb-ink);font-weight:650}
.epb-rsvp .epb-r-map{margin-left:8px;color:var(--epb-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.epb-rsvp .epb-r-none{color:var(--epb-sub);font-size:15px}
.epb-rsvp .epb-r-card.is-ended{opacity:.55}

/* ---------- day rows ---------- */
.epb-rsvp .epb-r-days{display:flex;flex-direction:column;gap:8px}
.epb-rsvp .epb-r-day{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;margin:0;padding:10px;border:1px solid var(--epb-line);border-radius:var(--epb-rad);background:#fff;transition:border-color .2s}
.epb-rsvp .epb-r-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--epb-rad);background:var(--epb-tile);text-align:center;line-height:1}
.epb-rsvp .epb-r-date small{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--epb-accent)}
.epb-rsvp .epb-r-date b{margin-top:2px;font-size:24px;font-weight:900;letter-spacing:-.03em;color:var(--epb-ink);font-stretch:112%;font-variation-settings:"wdth" 112}
.epb-rsvp .epb-r-dinfo{min-width:0;line-height:1.3}
.epb-rsvp .epb-r-dinfo>b{display:block;font-size:16px;font-weight:700;color:var(--epb-ink)}
.epb-rsvp .epb-r-dinfo>span{display:block;font-size:14px;color:var(--epb-sub);white-space:nowrap}
.epb-rsvp .epb-r-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border:0;border-radius:var(--epb-rad);background:var(--epb-btn-bg);color:var(--epb-btn-text);font-family:var(--epb-font);font-size:15px;font-weight:700;line-height:1;text-decoration:none;white-space:nowrap;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.epb-rsvp .epb-r-btn:hover,.epb-rsvp .epb-r-btn:focus{color:var(--epb-btn-text)}
.epb-rsvp .epb-r-btn svg{width:18px;height:18px;transition:transform .25s}
.epb-rsvp .epb-r-btn.is-soon{padding:0 12px;background:var(--epb-tile);color:var(--epb-sub);font-size:13.5px;font-weight:600}
.epb-rsvp .epb-r-day.is-past{opacity:.5}
.epb-rsvp .epb-r-day.is-past .epb-r-btn{background:var(--epb-tile);color:var(--epb-sub);pointer-events:none}
.epb-rsvp .epb-r-day.is-past .epb-r-btn svg{display:none}
.epb-rsvp.is-hide-past .epb-r-day.is-past,.epb-rsvp.is-hide-past .epb-r-card.is-ended{display:none}
.epb-rsvp .epb-r-chead:focus{outline:none}
.epb-rsvp a.epb-r-btn:focus-visible,.epb-rsvp .epb-r-chead:focus-visible{outline:2px solid var(--epb-accent);outline-offset:2px}
@media (hover:hover) and (pointer:fine){
  .epb-rsvp a.epb-r-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(0,0,0,.5)}
  .epb-rsvp a.epb-r-btn:hover svg{transform:translateX(3px)}
  .epb-rsvp .epb-r-day:not(.is-past):hover{border-color:var(--epb-ink)}
}

/* ---------- tablet: one card per row ---------- */
@container epbr (max-width:900px){
  .epb-rsvp .epb-r-cards,.epb-rsvp .epb-r-cards.epb-r-n2{grid-template-columns:minmax(0,1fr)}
}

/* ---------- phones: each city folds up, rows go compact ---------- */
@container epbr (max-width:560px){
  .epb-rsvp .epb-head{padding:26px 22px;gap:14px;margin-bottom:20px}
  .epb-rsvp .epb-eyebrow{margin-bottom:14px;padding:5px 8px;font-size:9.5px}
  .epb-rsvp .epb-heading{font-size:30px}
  .epb-rsvp .epb-intro{font-size:14px}

  .epb-rsvp .epb-r-cards{gap:10px}
  .epb-rsvp .epb-r-card{padding:14px 14px 14px 16px}
  .epb-rsvp .epb-r-chead{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .epb-rsvp .epb-r-chev{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--epb-tile);color:var(--epb-ink);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .epb-rsvp .epb-r-chev svg{width:18px;height:18px}
  .epb-rsvp .is-collapsed .epb-r-chev{transform:rotate(-90deg)}
  .epb-rsvp .is-collapsed .epb-r-cbody{display:none}
  .epb-rsvp .epb-r-cnext{display:inline;color:var(--epb-sub);font-weight:600}
  .epb-rsvp .epb-r-city{font-size:22px}
  .epb-rsvp .epb-r-range{margin-top:4px;font-size:13.5px}
  .epb-rsvp .epb-r-cbody{gap:10px;margin-top:14px}

  .epb-rsvp .epb-r-venue{font-size:13px;gap:6px}
  .epb-rsvp .epb-r-venue svg{width:15px;height:15px}
  .epb-rsvp .epb-r-venue br{display:none}
  .epb-rsvp .epb-r-venue b::after{content:" · "}

  .epb-rsvp .epb-r-days{gap:6px}
  .epb-rsvp .epb-r-day{grid-template-columns:42px minmax(0,1fr) auto;gap:10px;padding:7px}
  .epb-rsvp .epb-r-date{width:42px;height:42px;border-radius:9px}
  .epb-rsvp .epb-r-date small{font-size:9px}
  .epb-rsvp .epb-r-date b{margin-top:1px;font-size:19px}
  .epb-rsvp .epb-r-dinfo>b{font-size:15px}
  .epb-rsvp .epb-r-dinfo>span{font-size:12.5px}
  .epb-rsvp .epb-r-btn{height:36px;padding:0 14px;font-size:14px;border-radius:9px}
  .epb-rsvp .epb-r-btn svg{width:15px;height:15px}
  .epb-rsvp .epb-r-day.is-past .epb-r-btn{background:none;padding:0 6px}
}

/* ---------- browsers without container queries ---------- */
@supports not (container-type:inline-size){
  @media (max-width:900px){ .epb-rsvp .epb-r-cards,.epb-rsvp .epb-r-cards.epb-r-n2{grid-template-columns:minmax(0,1fr)} }
}
@media (prefers-reduced-motion:reduce){ .epb-rsvp *{transition:none !important} }
