 :root {
   --brand: #7b1f3a;
   --brand-dark: #571329;
   --brand-2: #b04a6a;
   --gold: #c59a3d;
   --gold-soft: #f7efd9;
   --teal: #247c7a;
   --teal-soft: #e7f4f3;
   --blue: #376aa5;
   --blue-soft: #e9f1fb;
   --green: #2f7d58;
   --green-soft: #eaf5ef;
   --orange: #c86d2b;
   --orange-soft: #fff0e5;
   --purple: #7452a6;
   --purple-soft: #f0ebf8;
   --ink: #24211f;
   --muted: #6f6862;
   --line: #ded7d0;
   --soft: #f8f4f0;
   --soft-2: #fffdfb;
   --success: #2f7d58;
   --warning: #9c6810;
   --danger: #b13a43;
   --white: #fff;
   --shadow: 0 18px 48px rgba(66, 43, 31, .14);
 }

 * {
   box-sizing: border-box
 }

 html {
   scroll-behavior: smooth
 }

 body {
   margin: 0;
   color: var(--ink);
   font-family: Arial, Helvetica, sans-serif;
   -webkit-font-smoothing: antialiased;
   background:
     radial-gradient(circle at 10% 10%, rgba(197, 154, 61, .10), transparent 22%),
     radial-gradient(circle at 90% 12%, rgba(36, 124, 122, .10), transparent 24%),
     linear-gradient(180deg, #f9f6f2 0%, #f3efeb 100%);
 }

 a {
   color: var(--brand)
 }

 a:hover {
   color: var(--brand-dark)
 }

 .event-shell .topbar {
   background: linear-gradient(90deg, #2b1820, #4b2231 45%, #1f3536);
   color: #fff;
   font-size: .82rem
 }

 .event-shell .topbar a {
   color: #fff;
   text-decoration: none;
   opacity: .9
 }

 .event-shell .brandline {
   background: rgba(255, 255, 255, .96);
   border-bottom: 1px solid #eee5df;
   box-shadow: 0 2px 14px rgba(60, 40, 30, .04)
 }

 .event-shell .brandmark {
   font-weight: 800;
   letter-spacing: .09em;
   text-transform: uppercase;
   background: linear-gradient(90deg, var(--brand), var(--gold), var(--teal));
   -webkit-background-clip: text;
   background-clip: text;
   color: transparent
 }

.event-shell .brandmark-custom {
    display: inline-flex;
    align-items: center;
    max-width: 140px !important;
}

 .event-shell .brandmark-logo {
   max-height: 40px;
   max-width: 220px;
   width: auto;
   height: auto;
   object-fit: contain;
   display: block;
 }

 .event-shell .hero {
   min-height: 300px;
   color: #fff;
   display: flex;
   align-items: end;
   position: relative;
   overflow: hidden;
   background:
     linear-gradient(100deg, rgba(57, 15, 34, .88) 0%, rgba(123, 31, 58, .76) 28%, rgba(60, 89, 101, .62) 68%, rgba(31, 73, 70, .62) 100%),
     radial-gradient(circle at 80% 20%, #d2b780 0, #aa8561 22%, #6f5962 52%, #43363d 100%);
 }

 .event-shell .hero::before {
   content: "";
   position: absolute;
   inset: 0;
   background:
     radial-gradient(circle at 18% 20%, rgba(255, 213, 128, .22), transparent 18%),
     radial-gradient(circle at 74% 24%, rgba(145, 224, 219, .20), transparent 20%);
   pointer-events: none
 }

 .event-shell .hero::after {
   content: "";
   position: absolute;
   right: -90px;
   bottom: -110px;
   width: 360px;
   height: 360px;
   border-radius: 50%;
   border: 70px solid rgba(255, 255, 255, .045);
   pointer-events: none
 }

 .event-shell .hero.small {
   min-height: 215px
 }

 .event-shell .hero-content {
   padding: 52px 0 45px;
   max-width: 900px;
   position: relative;
   z-index: 1
 }

 .event-shell .kicker {
   text-transform: uppercase;
   letter-spacing: .18em;
   font-size: .76rem;
   opacity: .92;
   color: #ffe9b8;
   font-weight: 700
 }

 .event-shell .hero h1 {
   font-size: clamp(2rem, 4vw, 3.55rem);
   font-weight: 750;
   margin: .55rem 0 .8rem;
   text-shadow: 0 2px 16px rgba(0, 0, 0, .16)
 }

 .event-shell .hero p {
   font-size: 1.08rem;
   max-width: 760px;
   opacity: .96
 }

 .event-shell .content-rise {
   margin-top: -38px;
   position: relative;
   z-index: 3
 }

 .event-shell .main-card {
   background: rgba(255, 255, 255, .98);
   border: 1px solid rgba(255, 255, 255, .8);
   border-radius: 12px;
   overflow: hidden;
   box-shadow: var(--shadow)
 }

 .event-shell .main-card .card-body {
   padding: clamp(22px, 4vw, 44px)
 }

 .event-shell .event-detail-image {
   width: 100%;
   border-radius: 14px;
   object-fit: cover;
   box-shadow: 0 8px 24px rgba(66, 43, 31, .10);
 }

 .event-shell .event-image-cover-wrapper {
   position: relative;
   width: 100%;
   height: 100%;
   min-height: 380px;
 }

 .event-shell .event-detail-cover,
 .event-shell .event-detail-image.cover-full {
   width: 100%;
   height: 100%;
   min-height: 100%;
   object-fit: cover;
   display: block;
   border-radius: 0;
   box-shadow: none;
 }

 @media(max-width: 991.98px) {
   .event-shell .event-image-cover-wrapper {
     min-height: 240px;
     max-height: 320px;
   }
 }

 .event-shell .section-title {
   font-size: 1.55rem;
   font-weight: 750;
   margin-bottom: .35rem;
   background: linear-gradient(90deg, var(--brand), var(--purple), var(--teal));
   -webkit-background-clip: text;
   background-clip: text;
   color: transparent
 }

  .event-shell .section-subtitle {
    color: var(--muted);
    margin-bottom: 25px;
    max-width: 700px;
  }

 .event-shell .eyebrow {
   font-size: .78rem;
   text-transform: uppercase;
   letter-spacing: .12em;
   color: var(--brand);
   font-weight: 800
 }

 .event-shell .progress-track {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 10px;
   margin-bottom: 30px
 }

 .event-shell .step-pill {
   display: flex;
   align-items: center;
   gap: 9px;
   border: 1px solid var(--line);
   border-radius: 999px;
   padding: 10px 12px;
   background: #fff;
   color: var(--muted);
   font-size: .84rem;
   white-space: nowrap;
   transition: .18s ease
 }

 .event-shell .step-pill:nth-child(1) .num {
   background: #f1e4e9;
   color: var(--brand)
 }

 .event-shell .step-pill:nth-child(2) .num {
   background: var(--blue-soft);
   color: var(--blue)
 }

 .event-shell .step-pill:nth-child(3) .num {
   background: var(--purple-soft);
   color: var(--purple)
 }

 .event-shell .step-pill:nth-child(4) .num {
   background: var(--teal-soft);
   color: var(--teal)
 }

 .event-shell .step-pill:nth-child(5) .num {
   background: var(--gold-soft);
   color: #8f6814
 }

 .event-shell .step-pill .num {
   width: 26px;
   height: 26px;
   display: grid;
   place-items: center;
   border-radius: 50%;
   font-weight: 800;
   flex: 0 0 auto
 }

 .event-shell .step-pill.active {
   border-color: var(--brand);
   color: var(--brand);
   background: linear-gradient(90deg, #fff8fa, #fffdf8);
   box-shadow: 0 5px 16px rgba(123, 31, 58, .08)
 }

 .event-shell .step-pill.active .num,
 .event-shell .step-pill.done .num {
   background: linear-gradient(135deg, var(--brand), var(--brand-2));
   color: #fff
 }

 .event-shell .info-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 12px
 }

 .event-shell .info-tile {
   border: 1px solid rgba(255, 255, 255, .20);
   border-radius: 14px;
   padding: 15px;
   backdrop-filter: blur(5px);
   box-shadow: inset 0 1px rgba(255, 255, 255, .08)
 }

 .event-shell .info-tile:nth-child(1) {
   background: linear-gradient(145deg, rgba(176, 74, 106, .28), rgba(255, 255, 255, .08))
 }

 .event-shell .info-tile:nth-child(2) {
   background: linear-gradient(145deg, rgba(36, 124, 122, .28), rgba(255, 255, 255, .08))
 }

 .event-shell .info-tile:nth-child(3) {
   background: linear-gradient(145deg, rgba(197, 154, 61, .28), rgba(255, 255, 255, .08))
 }

 .event-shell .info-tile:nth-child(4) {
   background: linear-gradient(145deg, rgba(55, 106, 165, .28), rgba(255, 255, 255, .08))
 }

 .event-shell .info-tile .label {
   font-size: .73rem;
   text-transform: uppercase;
   letter-spacing: .08em;
   opacity: .8
 }

 .event-shell .info-tile .value {
   font-size: 1rem;
   font-weight: 750;
   margin-top: 4px
 }

 .event-shell .stat-card {
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 19px;
   height: 100%;
   background:
     linear-gradient(145deg, #fff 0%, #fff9f5 58%, #f8fbfb 100%);
   box-shadow: 0 8px 26px rgba(76, 50, 40, .06)
 }

 .event-shell .stat-card:nth-child(odd) {
   background: linear-gradient(145deg, #fff 0%, #fff7ed 52%, #f7fbfb 100%)
 }

 .event-shell .stat-number {
   font-size: 1.75rem;
   font-weight: 800;

   -webkit-background-clip: text;
   background-clip: text;
   color: var(--brand);
 }

 .event-shell .status-row {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   align-items: center
 }

 .event-shell .badge-soft-success {
   background: var(--green-soft);
   color: var(--success)
 }

 .event-shell .badge-soft-warning {
   background: var(--gold-soft);
   color: var(--warning)
 }

 .event-shell .badge-soft-danger {
   background: #fdebed;
   color: var(--danger)
 }

 .event-shell .badge-soft-neutral {
   background: #efedeb;
   color: #514d49
 }

 .event-shell .form-label {
   font-size: .9rem;
   font-weight: 750
 }

 .event-shell .form-control,
 .event-shell .form-select {
   min-height: 48px;
   border-radius: 11px;
   border-color: #d6cec7;
   background: #fffdfc
 }

 .event-shell .form-control:hover,
 .event-shell .form-select:hover {
   border-color: #c9b7aa
 }

 .event-shell .form-control:focus,
 .event-shell .form-select:focus {
   border-color: var(--brand);
   box-shadow: 0 0 0 .2rem rgba(123, 31, 58, .12);
   background: #fff
 }

 .event-shell .btn-brand {
   background: linear-gradient(135deg, var(--brand), var(--brand-2));
   border: 0;
   color: #fff;
   min-height: 48px;
   border-radius: 11px;
   font-weight: 750;
   padding: .65rem 1.4rem;
   box-shadow: 0 8px 18px rgba(123, 31, 58, .18)
 }

 .event-shell .btn-brand:hover,
 .event-shell .btn-brand:focus {
   background: linear-gradient(135deg, var(--brand-dark), var(--brand));
   color: #fff;
   transform: translateY(-1px)
 }

 .event-shell .btn-outline-brand {
   border: 1px solid var(--brand);
   color: var(--brand);
   min-height: 48px;
   border-radius: 11px;
   font-weight: 750
 }

 .event-shell .btn-outline-brand:hover {
   background: var(--brand);
   color: #fff
 }

 .event-shell .btn-quiet {
   min-height: 48px;
   border-radius: 11px;
   border-color: #aaa39c;
   color: #3f3a36;
   background: #fff;
   display: flex;
   align-items: center;
 }

 .event-shell .callout {
   border-left: 5px solid var(--brand);
   background: linear-gradient(90deg, #fff6f8, #fffdfb);
   border-radius: 10px;
   padding: 15px 16px;
   box-shadow: 0 5px 16px rgba(87, 19, 41, .04);
   max-width: 680px
 }

 .event-shell .callout.warning {
   border-left-color: var(--gold);
   background: linear-gradient(90deg, #fff8e9, #fffdf7)
 }

 .event-shell .callout.success {
   border-left-color: var(--success);
   background: linear-gradient(90deg, #edf8f2, #fbfffd)
 }

 .event-shell .callout.danger {
   border-left-color: var(--danger);
   background: linear-gradient(90deg, #fff0f1, #fffafa)
 }

 .event-shell .event-card {
   border: 1px solid var(--line);
   border-radius: 17px;
   background: #fff;
   padding: 20px;
   height: 100%;
   transition: .18s ease;
   cursor: pointer;
   position: relative;
   overflow: hidden
 }

 .event-shell .event-card::after {
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   bottom: 0;
   height: 5px;
   background: linear-gradient(90deg, var(--brand), var(--gold), var(--teal))
 }

 .event-shell .event-card:nth-child(1) {
   background: linear-gradient(160deg, #fff 0%, #fff6f8 100%)
 }

 .event-shell .event-card:nth-child(2) {
   background: linear-gradient(160deg, #fff 0%, #f4fbfb 100%)
 }

 .event-shell .event-card:nth-child(3) {
   background: linear-gradient(160deg, #fff 0%, #fff9ed 100%)
 }

 .event-shell .event-card:hover {
   transform: translateY(-3px);
   box-shadow: 0 12px 28px rgba(0, 0, 0, .08)
 }

 .event-shell .event-card.selected {
   border: 2px solid var(--brand);
   background: linear-gradient(160deg, #fff8fb, #fffdf7);
   box-shadow: 0 10px 26px rgba(123, 31, 58, .10)
 }

 .event-shell .event-card.disabled {
   opacity: .66;
   cursor: not-allowed
 }

 .event-shell .event-card h3 {
   font-size: 1.08rem;
   margin: 10px 0 6px
 }

 .event-shell .date-chip {
   display: inline-flex;
   padding: 10px 14px;
   border: 1px solid var(--line);
   border-radius: 999px;
   background: #fff;
   margin: 0 7px 8px 0;
   cursor: pointer;
   transition: .18s ease
 }

 .event-shell .date-chip:hover {
   border-color: var(--brand);
   color: var(--brand)
 }

 .event-shell .date-chip.active {
   background: linear-gradient(135deg, var(--brand), var(--brand-2));
   color: #fff;
   border-color: transparent;
   box-shadow: 0 6px 16px rgba(123, 31, 58, .16)
 }

 .event-shell .guest-card {
   border: 1px solid #e0d6ce;
   border-radius: 15px;
   padding: 19px;
   background: linear-gradient(145deg, #fffaf5, #f6fbfb)
 }

 .event-shell .summary-box {
   border: 1px solid var(--line);
   border-radius: 15px;
   padding: 20px;
   background:
     linear-gradient(145deg, #fff 0%, #fff9f7 46%, #f8fbfb 100%);
   box-shadow: 0 7px 20px rgba(71, 47, 36, .04)
 }

 .event-shell .summary-row {
   display: flex;
   justify-content: space-between;
   gap: 24px;
   padding: 10px 0;
   border-bottom: 1px solid #ebe6e1
 }

 .event-shell .summary-row:last-child {
   border-bottom: 0
 }

 .event-shell .summary-row span:first-child {
   color: var(--muted)
 }

 .event-shell .summary-row strong {
   text-align: right
 }

 .event-shell .success-icon,
 .event-shell .state-icon {
   width: 76px;
   height: 76px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   margin: 0 auto 18px;
   font-size: 2rem;
   font-weight: 800;
   box-shadow: 0 10px 28px rgba(0, 0, 0, .08)
 }

 .event-shell .success-icon {
   background: linear-gradient(135deg, #dff4e8, #f3fbf7);
   color: var(--success);
   border: 1px solid #cde9da
 }

 .event-shell .state-icon.warning {
   background: linear-gradient(135deg, #fff0c8, #fff8e8);
   color: var(--warning);
   border: 1px solid #eedaa5
 }

 .event-shell .state-icon.danger {
   background: linear-gradient(135deg, #fde4e7, #fff4f5);
   color: var(--danger);
   border: 1px solid #f0c7cb
 }

 .event-shell .state-icon.neutral {
   background: linear-gradient(135deg, #eee8e3, #fbf8f6);
   color: #514d49;
   border: 1px solid #dfd7d1
 }

 .event-shell .capacity-bar {
   height: 10px;
   border-radius: 999px;
   background: #ebe7e2;
   overflow: hidden
 }

 .event-shell .capacity-bar>span {
   display: block;
   height: 100%;
   background: linear-gradient(90deg, var(--brand), var(--orange), var(--gold), var(--teal))
 }

 .event-shell .manage-card {
   border: 1px solid var(--line);
   border-radius: 16px;
   padding: 21px;
   background: linear-gradient(145deg, #fff 0%, #fffaf6 56%, #f7fbfb 100%);
   box-shadow: 0 8px 24px rgba(70, 48, 35, .05)
 }

 .event-shell .developer-note {
   border: 1px dashed #b9a99e;
   background: linear-gradient(90deg, #fffdf8, #f8fbfb);
   border-radius: 12px;
   padding: 16px;
   font-size: .88rem;
   color: #5f5852
 }

 .event-shell .list-group-item {
   border-color: #e4dcd5;
   background: #fffdfc;
 }

 .event-shell .list-group-item:hover {
   background: linear-gradient(90deg, #fff5f8, #f7fbfb);
   color: var(--brand)
 }

 .event-shell footer {
   padding: 28px 0 36px;
   color: #666;
   font-size: 12px;
 }

 .event-shell footer a {
   margin-left: 8px;
 }

 @media(max-width:991.98px) {
   .event-shell .progress-track {
     grid-template-columns: repeat(2, 1fr)
   }

   .event-shell .info-grid {
     grid-template-columns: repeat(2, 1fr)
   }
 }

 @media(max-width:575.98px) {
   .event-shell .progress-track {
     grid-template-columns: 1fr
   }

   .event-shell .info-grid {
     grid-template-columns: 1fr
   }

   .event-shell .content-rise {
     margin-top: -20px
   }

   .event-shell .hero {
     min-height: 245px
   }

   .event-shell .summary-row {
     display: block
   }

   .event-shell .summary-row strong {
     display: block;
     text-align: left;
     margin-top: 4px
   }
 }

 /* Event RSVP - Public flow styling. Scoped under .event-rsvp so it never leaks onto the
   rest of the production site. Matches the approved public prototype (warm, editorial,
   card-based) - distinct from the enterprise backend theme in event-rsvp-backend.css. */

 
 
 .event-rsvp .hero.small {
   padding: 1.75rem 0;
 }

 .event-rsvp .kicker {
   text-transform: uppercase;
   letter-spacing: 0.12em;
   font-size: 0.75rem;
   opacity: 0.85;
 }

 .event-rsvp .hero h1 {
   font-size: 1.75rem;
   font-weight: 700;
   margin: 0.35rem 0;
 }

 .event-rsvp .content-rise {
   margin-top: -2rem;
 }

 .event-rsvp .main-card {
   border: none;
   border-radius: 14px;
   box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
 }

 .event-rsvp .card-body {
   padding: 2rem;
 }

 .event-rsvp .form-label {
   font-weight: 600;
   margin-bottom: 0.35rem;
   display: block;
 }
  
 .event-rsvp .event-card-list {
   display: grid;
   gap: 1rem;
   grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
 }

 .event-rsvp .event-card {
   border: 1px solid #ece3d6;
   border-radius: 12px;
   padding: 1rem;
   background: #fff;
 }

 .event-rsvp .event-card.disabled {
   opacity: 0.55;
 }

 .event-rsvp .event-card-image {
   width: 100%;
   border-radius: 8px;
   margin-bottom: 0.5rem;
   object-fit: cover;
   max-height: 160px;
 }

 .event-rsvp .event-detail-image {
   width: 100%;
   border-radius: 12px;
   margin-bottom: 1rem;
   max-height: 320px;
   object-fit: cover;
 }

 
 .event-rsvp .badge {
   display: inline-block;
   padding: 0.25rem 0.6rem;
   border-radius: 999px;
   font-size: 0.75rem;
   font-weight: 600;
 }

 
 .event-rsvp .badge.muted {
   background: #eee;
   color: #666;
 }

 .event-rsvp .state-icon,
 .event-rsvp .success-icon {
   width: 64px;
   height: 64px;
   margin: 0 auto 1rem;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1.75rem;
 }

 .event-rsvp .success-icon {
   background: #e4f3e6;
   color: #256029;
 }
 
 .event-rsvp .state-icon.neutral {
   background: #eef1f5;
   color: #45536b;
 }
 
 .event-rsvp .section-title {
   font-size: 1.4rem;
   font-weight: 700;
   margin: 0.35rem 0;
 }
 

 .event-rsvp .summary-row {
   display: flex;
   justify-content: space-between;
   padding: 0.4rem 0;
   border-bottom: 1px dashed #e6dcc9;
 }

 .event-rsvp .summary-row:last-child {
   border-bottom: none;
 }

 .event-rsvp .callout {
   border-radius: 10px;
   padding: 1rem;
   background: #f4ede2;
 }

 .event-rsvp .callout.warning {
   background: #fdf2e0;
 }

 .event-rsvp .step-pill {
   display: inline-flex;
   align-items: center;
   gap: 0.35rem;
   padding: 0.35rem 0.75rem;
   border-radius: 999px;
   background: #f1ece1;
   margin-right: 0.35rem;
   font-size: 0.8rem;
 }
  
 .event-rsvp .progress-track {
   margin-bottom: 1.5rem;
 }
 
 .event-rsvp .section-subtitle {
   max-width: 700px;
 }

 .eventrsvp-cancel-form {
   max-width: 90%;
   text-align: center;
 }

 .event-rsvp .confirm-cancel {
   max-width: 760px;
   border-left-color: #2e7d32;
 }

 .event-rsvp .day[data-href] {
   cursor: pointer;
 }

 .event-rsvp .panel-full-width {
   grid-column: 1 / -1;
 }

 /* Public Calendar Styles */
 .event-rsvp .calendar-top { display: flex; justify-content: space-between; align-items: center; margin: 1rem 0 0.5rem; }
 .event-rsvp .month-title { font-weight: 700; font-size: 1.2rem; }
 .event-rsvp .calendar-legend { font-size: 0.85rem; color: var(--muted); display: flex; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
 .event-rsvp .legend-item .dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; }

 .event-rsvp .days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
 .event-rsvp .day { min-height: 85px; border: 1px solid var(--line); border-radius: 8px; padding: 6px; font-size: 0.8rem; background: #fff; transition: 0.2s; }
 .event-rsvp .day:hover { border-color: var(--brand); box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
 .event-rsvp .day.selected { background: #fff8fb; border-color: var(--brand); border-width: 2px; }
 .event-rsvp .day.out-of-range { background: var(--soft); color: #a1a1aa; opacity: 0.6; pointer-events: none; cursor: not-allowed; }
  .event-rsvp .day.out-of-range .chip { background: #d1d5db !important; color: #6b7280 !important; cursor: not-allowed; }
 .event-rsvp .day .num { font-weight: 700; display: block; margin-bottom: 4px; font-size: 0.9rem; }
.event-rsvp .chip {
    display: block;
    border-radius: 4px;
    padding: 2px 6px;
    margin-bottom: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: wrap;
    font-size: 0.75rem;
}

 /* Program-scope calendar distinct colors */
 .event-rsvp .legend-item .dot.legend-0, .event-rsvp .chip.legend-0 { background: var(--brand); }
 .event-rsvp .legend-item .dot.legend-1, .event-rsvp .chip.legend-1 { background: var(--teal); }
 .event-rsvp .legend-item .dot.legend-2, .event-rsvp .chip.legend-2 { background: var(--gold); }
 .event-rsvp .legend-item .dot.legend-3, .event-rsvp .chip.legend-3 { background: var(--blue); }
 .event-rsvp .legend-item .dot.legend-4, .event-rsvp .chip.legend-4 { background: var(--orange); }
 .event-rsvp .legend-item .dot.legend-5, .event-rsvp .chip.legend-5 { background: var(--purple); }
 .event-rsvp .chip.legend-0, .event-rsvp .chip.legend-1, .event-rsvp .chip.legend-2,
 .event-rsvp .chip.legend-3, .event-rsvp .chip.legend-4, .event-rsvp .chip.legend-5 { color: #fff; font-weight: 600; }

 .event-rsvp .btn-calendar-nav { display: inline-block; padding: 0.4rem 0.8rem; font-size: 0.85rem; font-weight: 600; color: var(--brand); border: 1px solid var(--line); border-radius: 6px; text-decoration: none; background: #fff; transition: 0.2s; margin-left: 0.25rem; }
 .event-rsvp .btn-calendar-nav:hover { border-color: var(--brand); background: var(--soft); color: var(--brand-dark); box-shadow: 0 2px 8px rgba(0,0,0,0.05); }
 .event-rsvp .btn-calendar-nav.disabled { opacity: 0.4; pointer-events: none; cursor: not-allowed; }

 /* Breadcrumbs */
 .event-rsvp .breadcrumb-bar {
   background: #fdfdfd;
   border-bottom: 1px solid var(--line);
   font-size: 0.85rem;
 }
 .event-rsvp .breadcrumb {
   background: transparent;
   padding: 0;
 }
 .event-rsvp .breadcrumb-item a {
   color: var(--brand);
   text-decoration: none;
 }
 .event-rsvp .breadcrumb-item a:hover {
   text-decoration: underline;
 }
 .event-rsvp .breadcrumb-item.active {
   color: var(--ink);
   font-weight: 600;
 }
 .event-rsvp .breadcrumb-item + .breadcrumb-item::before {
   content: "›";
   font-size: 1.1em;
   line-height: 1;
   vertical-align: middle;
   color: var(--muted);
 }

 .selected-date-pill {
   display: inline-block;
   background-color: #8C2B4E;
   color: white;
   padding: 8px 24px;
   border-radius: 24px;
   font-weight: 500;
   font-size: 16px;
   box-shadow: 0 4px 12px rgba(140, 43, 78, 0.25);
 }

 .validation-summary-valid {
   display: none !important;
 }

 .validation-summary-errors ul {
   list-style-type: none;
   padding-left: 0;
   margin-bottom: 0;
 }

.select2-container .select2-selection--single {
    min-height: 46px;
    border-color: #C8C2BA;
    background: #fffdfc;
    display: flex;
    align-items: center;
    border-radius: var(--radius-sm) !important;
}

.event-shell .event-disclaimer-box {
  border: 1px solid #d4e0ee;
  border-left: 4px solid var(--blue);
  border-radius: 12px;
  padding: 16px 18px;
  background: linear-gradient(145deg, #ffffff 0%, #f4f8fd 100%);
  margin-top: 20px;
  text-align: left;
  box-shadow: 0 4px 14px rgba(55, 106, 165, 0.05);
}

.event-shell .event-disclaimer-box .disclaimer-title {
  font-weight: 600;
  font-size: 0.95rem;
  color: #1e3a5f;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.event-shell .event-disclaimer-box .disclaimer-content {
  font-size: 0.88rem;
  color: #4a5568;
  line-height: 1.55;
}

.event-shell .event-disclaimer-box .disclaimer-icon {
  color: var(--blue);
  flex-shrink: 0;
}

.event-shell .event-timezone {
  font-weight: 400;
  font-size: 0.9em;
  margin-left: 5px;
  color: var(--muted);
}

/*.event-shell .privacy-content {
  max-width: 760px;
}*/

.event-shell .alert-danger {
  white-space: pre-line;
}

/* International Telephone Input (iti) Integration */
.event-shell .iti {
  width: 100%;
}
.event-shell .iti .form-control {
  padding-left: 52px !important;
}

/* Select2 Form Control Customization */
.event-shell .select2-container .select2-selection--single {
  min-height: 48px;
  border-radius: 11px;
  border-color: #d6cec7;
  display: flex;
  align-items: center;
}
.event-shell .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 46px;
  top: 1px;
  right: 5px;
}
.event-shell .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: normal;
  color: #212529;
  padding-left: 12px;
}
.event-shell .select2-dropdown {
  border-color: #c9b7aa;
  border-radius: 11px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Event Photo Gallery Styles */
.event-shell .event-gallery-section {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(66, 43, 31, .06);
}

.event-shell .gallery-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--brand);
}

.event-shell .gallery-thumb-card {
  cursor: pointer;
  border-radius: 10px;
  overflow: hidden;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
  outline: none;
}

.event-shell .gallery-thumb-card:hover,
.event-shell .gallery-thumb-card:focus {
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}

.event-shell .gallery-thumb-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 8px;
  background-color: #f1ede8;
}

.event-shell .gallery-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.event-shell .gallery-thumb-card:hover .gallery-thumb {
  transform: scale(1.06);
}

.event-shell .gallery-thumb-overlay {
  position: absolute;
  inset: 0;
  background: rgba(36, 33, 31, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.22s ease;
}

.event-shell .gallery-thumb-card:hover .gallery-thumb-overlay,
.event-shell .gallery-thumb-card:focus .gallery-thumb-overlay {
  opacity: 1;
}

.event-shell .gallery-zoom-icon {
  color: #fff;
  font-size: 1.4rem;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4));
}

.event-shell .gallery-thumb-caption {
  font-size: 0.82rem;
  color: var(--muted);
  margin-top: 0.4rem;
  padding: 0 0.15rem;
}

/* Event Photo Gallery Modal & Backdrop */
.event-gallery-modal {
  z-index: 1060 !important;
}

.modal-backdrop {
  z-index: 1050 !important;
}

.modal-backdrop.show {
  opacity: 0.8 !important;
  background-color: #0b0908 !important;
}

.event-gallery-modal .modal-content {
  border-radius: 14px;
  overflow: hidden;
  background-color: #ffffff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.event-gallery-modal .modal-header {
  padding: 1rem 1.25rem 0.5rem;
}

.event-gallery-modal .modal-body {
  padding: 0.5rem 1.25rem 1.5rem;
}

.event-gallery-modal .gallery-modal-img-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8f6f4;
  border-radius: 8px;
  padding: 8px;
}

.event-gallery-modal .gallery-modal-img {
  max-height: 72vh;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  margin: 0 auto;
  display: block;
}

/* Gallery Slider Track & Controls */
.event-shell .gallery-slider-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.event-shell .gallery-slider-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 4px 2px 10px 2px;
}

.event-shell .gallery-slider-track::-webkit-scrollbar {
  display: none;
}

.event-shell .gallery-slide-item {
  flex: 0 0 calc(25% - 12px);
  min-width: 210px;
  scroll-snap-align: start;
}

@media (max-width: 991.98px) {
  .event-shell .gallery-slide-item {
    flex: 0 0 calc(33.333% - 11px);
    min-width: 180px;
  }
}

@media (max-width: 767.98px) {
  .event-shell .gallery-slide-item {
    flex: 0 0 calc(50% - 8px);
    min-width: 150px;
  }
}

@media (max-width: 480px) {
  .event-shell .gallery-slide-item {
    flex: 0 0 78%;
    min-width: 0;
  }
}

/* Track Prev/Next Arrows flanking at start and end */
.event-shell .gallery-track-arrow {
  position: absolute;
  top: calc(50% - 12px);
  transform: translateY(-50%);
  z-index: 10;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #ffffff;
  border: 1px solid var(--line);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
  transition: all 0.22s ease;
  padding: 0;
}

.event-shell .gallery-track-arrow:hover:not(:disabled) {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.24);
}

.event-shell .gallery-track-arrow:disabled {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.event-shell .gallery-track-prev {
  left: -16px;
}

.event-shell .gallery-track-next {
  right: -16px;
}

@media (max-width: 767.98px) {
  .event-shell .gallery-track-prev {
    left: 4px;
  }
  .event-shell .gallery-track-next {
    right: 4px;
  }
}

/* Modal Lightbox Carousel Arrows */
.event-gallery-modal .gallery-modal-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: #1a1a1a;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
  padding: 0;
}

.event-gallery-modal .gallery-modal-arrow:hover {
  background: #ffffff;
  color: var(--brand);
  transform: translateY(-50%) scale(1.08);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
}

.event-gallery-modal .gallery-modal-prev {
  left: 10px;
}

.event-gallery-modal .gallery-modal-next {
  right: 10px;
}

/* Event Details Multi-Session Selector */
.event-shell .summary-row.session-selector-row {
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.event-shell .session-dropdown-wrapper {
  max-width: 280px;
  width: 100%;
}

.event-shell .session-select {
  border-radius: 8px;
  border: 1.5px solid var(--line, #e2e8f0);
  padding: 6px 12px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #1e293b;
  background-color: #f8fafc;
  transition: all 0.2s ease;
  cursor: pointer;
}

.event-shell .session-select:hover,
.event-shell .session-select:focus {
  border-color: var(--brand, #7b1f3a);
  background-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(123, 31, 58, 0.12);
  outline: none;
}

.hidden {
  display: none !important;
}

.loading-state {
  opacity: 0.5;
  pointer-events: none;
}