/**/.dmNewParagraph[data-version] .text-align-left{text-align:left!important}.dmNewParagraph[data-version] .text-align-center{text-align:center!important}.dmNewParagraph[data-version] .text-align-right{text-align:right!important}
.dmNewParagraph[data-version] .text-align-justify{text-align:justify!important}.dmNewParagraph[data-version] .ql-indent-1{padding:0 1em;padding-inline-end:0;padding-inline-start:3em}.dmNewParagraph[data-version] .ql-indent-2{padding:0 2em;padding-inline-end:0;padding-inline-start:6em}
.dmNewParagraph[data-version] .ql-indent-3{padding:0 3em;padding-inline-end:0;padding-inline-start:9em}.dmNewParagraph[data-version] .ql-indent-4{padding:0 4em;padding-inline-end:0;padding-inline-start:12em}
.dmNewParagraph[data-version] .ql-indent-5{padding:0 5em;padding-inline-end:0;padding-inline-start:15em}.dmNewParagraph[data-version] .ql-indent-6{padding:0 6em;padding-inline-end:0;padding-inline-start:18em}
.dmNewParagraph[data-version] .ql-indent-7{padding:0 7em;padding-inline-end:0;padding-inline-start:21em}.dmNewParagraph[data-version] .ql-indent-8{padding:0 8em;padding-inline-end:0;padding-inline-start:24em}
.dmNewParagraph[data-version] .ql-indent-9{padding:0 9em;padding-inline-end:0;padding-inline-start:27em}.dmNewParagraph[data-version]{line-height:initial}.dmNewParagraph[data-version] [class*=size-]{width:auto!important;height:auto!important}
.dmNewParagraph[data-version] h1,.dmNewParagraph[data-version] h2,.dmNewParagraph[data-version] h3,.dmNewParagraph[data-version] h4,.dmNewParagraph[data-version] h5,.dmNewParagraph[data-version] h6,.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] p,.dmNewParagraph[data-version] ul{margin-top:0;margin-bottom:0}
.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] ul{padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.dmNewParagraph[data-version] ol>li,.dmNewParagraph[data-version] ul>li{list-style-type:none;text-indent:-1.5em;margin:0 1em;margin-inline-end:0;margin-inline-start:2em}
.dmNewParagraph[data-version] ol>li:before,.dmNewParagraph[data-version] ul>li:before{min-width:1em;display:inline-block;margin-right:.5em;margin-inline-start:0;margin-inline-end:.5em;text-align:right;text-align:end}
.dmNewParagraph[data-version] ul .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ul .ql-indent-1:before{font-weight:700;content:"○"}
.dmNewParagraph[data-version] ul .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ul .ql-indent-2:before,.dmNewParagraph[data-version] ul .ql-indent-3:before,.dmNewParagraph[data-version] ul .ql-indent-4:before,.dmNewParagraph[data-version] ul .ql-indent-5:before,.dmNewParagraph[data-version] ul .ql-indent-6:before,.dmNewParagraph[data-version] ul .ql-indent-7:before,.dmNewParagraph[data-version] ul .ql-indent-8:before,.dmNewParagraph[data-version] ul .ql-indent-9:before{font-weight:700;content:"■"}
.dmNewParagraph[data-version] ul .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ul .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}
.dmNewParagraph[data-version] ul .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ul .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}
.dmNewParagraph[data-version] ul .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ul .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ul .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}
.dmNewParagraph[data-version] ul>li:before{font-weight:700;content:"•";font-family:Arial}.dmNewParagraph[data-version] ul.custom-list-1>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"○";transform:scale(1);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-2>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"★";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-3>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"➞";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-4>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"＋";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-5>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"－";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-6>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"✓";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-7>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"✗";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ol .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ol .ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ol .ql-indent-2:before{content:counter(list-2,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ol .ql-indent-3:before{content:counter(list-3,decimal) ". "}
.dmNewParagraph[data-version] ol .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}.dmNewParagraph[data-version] ol .ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ol .ql-indent-5:before{content:counter(list-5,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}.dmNewParagraph[data-version] ol .ql-indent-6:before{content:counter(list-6,decimal) ". "}
.dmNewParagraph[data-version] ol .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ol .ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ol .ql-indent-8:before{content:counter(list-8,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}.dmNewParagraph[data-version] ol .ql-indent-9:before{content:counter(list-9,decimal) ". "}
.dmNewParagraph[data-version] ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.dmNewParagraph[data-version] ol li:before{content:counter(list-0,decimal) ". "}
.dmNewParagraph[data-version] a{vertical-align:initial}@media(min-width:768px) and (max-width:1024px){.dmNewParagraph[data-version] .t-text-align-left{text-align:left!important}.dmNewParagraph[data-version] .t-text-align-center{text-align:center!important}
.dmNewParagraph[data-version] .t-text-align-right{text-align:right!important}.dmNewParagraph[data-version] .t-text-align-justify{text-align:justify!important}}@media(max-width:767px){.dmRoot .dmNewParagraph[data-version] .m-text-align-left{text-align:left!important}
.dmRoot .dmNewParagraph[data-version] .m-text-align-center{text-align:center!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-right{text-align:right!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-justify{text-align:justify!important}
}.inlineBindingLink{color:inherit!important;text-decoration:inherit!important}/**/.imageWidget{position:relative}.imageWidget a,.imageWidget span.image-caption{font-style:italic;text-align:center}.imageWidget a[data-caption]::after,.imageWidget span[data-caption]::after{content:attr(data-caption);display:block;line-height:100%}
.imageWidget.with-caption a::after,.imageWidget.with-caption span.image-caption::after{margin-top:12px}.imageWidget img[width][height]{height:auto}[data-flex-site] #fcontainer .imageWidget:after,[data-flex-site] #flex-footer .imageWidget:after,[data-flex-site] #flex-header .imageWidget:after{content:none}
[data-flex-site] #fcontainer .imageWidget:before,[data-flex-site] #flex-footer .imageWidget:before,[data-flex-site] #flex-header .imageWidget:before{font-size:80px;transform:none}.imageWidget.hover img.hover-image,.imageWidget:hover img.hover-image{display:initial}
.imageWidget.hover.hasHover img:not(.hover-image),.imageWidget:hover.hasHover img:not(.hover-image){display:none!important}.imageWidget img.hover-image,.imageWidget img.logo-on-scroll{display:none}/**/.graphicWidget{width:200px;height:200px;margin:10px auto;text-align:center}.graphicWidget svg.svg{width:100%;height:100%;color:#000;fill:#000}.graphicWidget img.svg{object-fit:contain;width:100%;height:100%}
.graphicWidget .svg[data-icon-mask]{display:block;aspect-ratio:1;width:100%;height:100%;color:#000;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}
.graphicWidgetV2{width:60px;height:60px}.graphicWidgetV3{font-size:0}/**/.hamburgerButton{display:block;background-color:transparent;border:0;padding:0;margin:0}.hamburgerButton,.hamburgerButton svg{width:100%;height:100%}
/* Custom Widgets Styles */
@import url("https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css");
.widget-55fa4f {
  text-align: left;
}

.btn {
  visibility: visible !important;
}

.widget-55fa4f.btn-outline-dark:hover {
  border-color: #212529;
  color: white !important;
  background-color: black !important;
}

.widget-55fa4f.btn.btn-light-dark:hover {
  background-color: #000000 !important;
  color: #ffffff !important;
}

.btn.btn-outline {
  font-size: large !important;
}

.offcanvas-end {
  width: 500px !important;
}

h6 {
  font-size: 18px !important;
}

.fw-bolder {
  font-weight: 600 !important;
}

@media (max-width: 567px) {
  .m-5 {
    margin: 0px !important;
  }
}

@media (max-width: 320px) {
  .px-5.modal-body {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
}

.offcanvas-backdrop {
  height: 100vh;
  /*background-color: rgba(0, 0, 0, 0.15);*/
  backdrop-filter: brightness(0.5);
  left: 0;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 1040;
}

.offcanvas-backdrop.show {
  opacity: 0.5;
}

a.btn.btn-dark.px-5.w-100.py-3.rounded-0.dmWidget.button-class {
  color: #f7f3f3;
  font-size: 0.85rem;
  height: 44px;
  font-size: 16px;
  display: flex;
  justify-content: center;
  align-items: center;
}


.widget-bd4d33 {
  text-align: left;
}

.form-select {
  background: white !important;
  border: 2px !important;
  border-color: aliceblue !important;
  border-style: groove !important;
}

.input-group {
  display: flex !important;
  justify-content: space-between;
  flex-wrap: nowrap !important;
}

select.form-select[name="address.countryId"],
select.form-select[name="address.stateId"] {
  border-radius: 0.375rem;
  padding: 0.625rem 0.75rem;
  border: 1px solid rgb(209, 213, 219) !important;
  background-color: rgb(249, 250, 251) !important;
  font-size: 0.875rem;
}

input.form-control.form-control-lg[name="address.addressLine2"],
input.form-control.form-control-lg[name="address.city"],
input.form-control.form-control-lg[name="address.zipCode"] {
  border-radius: 0.375rem !important;
  padding: 0.625rem 0.75rem;
  border: 1px solid rgb(209, 213, 219);
  background-color: rgb(249, 250, 251);
  font-size: 0.875rem !important;
}

@charset "UTF-8";
.events-widget {
  width: 100%;
  padding: 20px;
  background: #ffffff;
  border-radius: 8px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Mobile Calendar Header - Hidden by default, shown on mobile */
.mobile-calendar-header {
  display: none;
}

/* Toolbar */
.events-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 20px;
  padding: 16px;
  background: #f8fafc;
  border-radius: 8px;
  align-items: center;
  justify-content: space-between;
}

.events-search-wrapper {
  display: flex;
  gap: 8px;
  flex: 1;
  min-width: 250px;
}

.events-search-input {
  flex: 1;
  padding: 10px 16px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  background: #ffffff;
}

.events-search-input:focus {
  outline: none;
  border-color: #3b82f6;
}

.events-search-btn {
  padding: 10px 20px;
  background: #3b82f6;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.events-search-btn:hover {
  background: #2563eb;
}

.search-btn-icon {
  display: none;
}

.events-view-toggle {
  display: flex;
  gap: 4px;
  background: #ffffff;
  padding: 4px;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
  margin-left: auto;
}

.view-btn {
  padding: 8px 16px;
  background: transparent;
  color: #64748b;
  border: none;
  border-radius: 4px;
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s;
}

.view-btn:hover {
  background: #f1f5f9;
  color: #334155;
}

.view-btn.active {
  background: #3b82f6;
  color: #ffffff;
}

/* Navigation Controls */
.events-nav-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
  align-items: center;
}

.nav-btn {
  width: 36px;
  height: 36px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  border-radius: 6px;
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.nav-btn:hover:not(:disabled) {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.nav-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.today-btn {
  padding: 8px 16px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.today-btn:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.events-date-label {
  font-size: 18px;
  font-weight: 600;
  color: #1e293b;
  margin-left: 8px;
}

.events-date-filter {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.events-date-filter label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #64748b;
}

.events-date-filter input[type=date] {
  padding: 6px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 14px;
}

.events-category-filter select {
  padding: 8px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  background: #ffffff;
  cursor: pointer;
}

/* List View */
.events-list-view {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.month-header {
  font-size: 24px;
  font-weight: 700;
  color: #1e293b;
  margin: 24px 0 16px 0;
  padding-bottom: 8px;
  border-bottom: 2px solid #e2e8f0;
}

.event-card {
  display: flex;
  gap: 20px;
  padding: 20px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
}

.event-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}

.event-date-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 70px;
  padding: 12px;
  background: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
}

.event-day-name {
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.event-day-number {
  font-size: 32px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
  margin-top: 4px;
}

.event-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.event-datetime {
  font-size: 14px;
  color: #64748b;
  font-weight: 500;
}

.event-title {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
  line-height: 1.3;
}

.event-title a {
  color: inherit;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s;
}

.event-title a:hover {
  border-bottom-color: #3b82f6;
}

.featured-badge-inline {
  display: inline-block;
  padding: 2px 8px;
  background: #fbbf24;
  color: #78350f;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 4px;
  margin-left: 8px;
  vertical-align: middle;
}

.event-venue {
  font-size: 14px;
  color: #475569;
  line-height: 1.5;
}

.event-venue strong {
  font-weight: 600;
  color: #1e293b;
}

.event-description {
  font-size: 14px;
  color: #64748b;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.event-price {
  font-size: 18px;
  font-weight: 700;
  color: #3b82f6;
  margin-top: 4px;
}

/* Calendar View */
.events-calendar-view {
  background: #ffffff;
  overflow-x: auto;
}

.calendar-table {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
  table-layout: fixed;
}

.calendar-table thead {
  background: #f8fafc;
  border-bottom: 2px solid #e2e8f0;
}

.calendar-table th {
  padding: 12px;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-right: 1px solid #e2e8f0;
  width: 14.28%;
}

.calendar-table th:last-child {
  border-right: none;
}

.calendar-table tbody tr {
  border-bottom: 1px solid #e2e8f0;
}

.calendar-table tbody tr:last-child {
  border-bottom: none;
}

.calendar-day {
  min-height: 100px;
  height: 100px;
  padding: 8px;
  border-right: 1px solid #e2e8f0;
  vertical-align: top;
  position: relative;
  background: #ffffff;
  transition: background 0.2s;
}

.calendar-day:hover {
  background: #f8fafc;
}

.calendar-day:last-child {
  border-right: none;
}

.calendar-day.other-month {
  background: #f8fafc;
  opacity: 0.5;
}

.calendar-day.today {
  background: #eff6ff;
  border: 2px solid #3b82f6;
}

.day-number {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 8px;
}

.day-events {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.calendar-event {
  padding: 6px 8px;
  background: #dbeafe;
  border-left: 3px solid #3b82f6;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.calendar-event:hover {
  background: #bfdbfe;
  transform: translateX(2px);
}

.calendar-event.featured {
  background: #fef3c7;
  border-left-color: #fbbf24;
}

.calendar-event.featured:hover {
  background: #fde68a;
}

.calendar-event .event-time {
  font-weight: 700;
  color: #1e40af;
  font-size: 11px;
  line-height: 1.2;
}

.calendar-event .event-name {
  color: #1e293b;
  line-height: 1.3;
  font-weight: 500;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.more-events {
  font-size: 10px;
  color: #64748b;
  font-weight: 600;
  margin-top: 2px;
  padding: 2px 4px;
  cursor: pointer;
  text-align: center;
}

.more-events:hover {
  color: #3b82f6;
  text-decoration: underline;
}

/* =====================
   Photo View
   ===================== */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.photo-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: visible;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
}

.photo-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(-4px);
}

/* Image wrapper — aspect ratio controlled via JS inline style.
   Top corners match the card's border-radius; bottom corners are square
   so the info section sits flush. Overflow hidden clips the image. */
.photo-card-image {
  width: 100%;
  overflow: hidden;
  background: #f1f5f9;
  position: relative;
  border-radius: inherit;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.photo-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}

.photo-card:hover .photo-card-image img {
  transform: scale(1.05);
}

/* ---- Date Badge base ---- */
.photo-date-badge {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.photo-date-badge .badge-month {
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.photo-date-badge .badge-day {
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
}

/* ---- Badge sizes ---- */
.photo-date-badge.badge-small {
  padding: 5px 8px;
  min-width: 44px;
}

.photo-date-badge.badge-small .badge-month {
  font-size: 9px;
}

.photo-date-badge.badge-small .badge-day {
  font-size: 18px;
  margin-top: 2px;
}

.photo-date-badge.badge-medium {
  padding: 8px 12px;
  min-width: 56px;
}

.photo-date-badge.badge-medium .badge-month {
  font-size: 11px;
}

.photo-date-badge.badge-medium .badge-day {
  font-size: 24px;
  margin-top: 3px;
}

.photo-date-badge.badge-large {
  padding: 12px 16px;
  min-width: 72px;
}

.photo-date-badge.badge-large .badge-month {
  font-size: 13px;
}

.photo-date-badge.badge-large .badge-day {
  font-size: 34px;
  margin-top: 4px;
}

/* ---- Badge placements: top-corner badges sit inside .photo-card-image ---- */
.photo-card-image .photo-date-badge {
  position: absolute;
  z-index: 2;
}

.photo-card-image .photo-date-badge.badge-top-right {
  top: 16px;
  right: 16px;
}

.photo-card-image .photo-date-badge.badge-top-left {
  top: 16px;
  left: 16px;
}

/* ---- Overlap badges: positioned on .photo-card so they can overflow the image ---- */
/* These are rendered as siblings of .photo-card-image (direct children of .photo-card) */
.photo-card > .photo-date-badge {
  position: absolute;
  z-index: 10;
}

/* Vertical position is set via JS using a CSS custom property based on image height */
.photo-card > .photo-date-badge.badge-overlap-bottom-right {
  right: 16px;
}

.photo-card > .photo-date-badge.badge-overlap-bottom-left {
  left: 16px;
}

/* ---- Info section ---- */
.photo-card-info {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Extra top padding when overlap badge hangs into info area */
.photo-card-info.has-overlap-badge {
  padding-top: 28px;
}

.photo-card-info .event-datetime {
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

.photo-card-info .event-title {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.3;
}

.photo-card-info .event-description {
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.featured-badge {
  display: inline-block;
  padding: 4px 12px;
  background: #fbbf24;
  color: #78350f;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 6px;
  align-self: flex-start;
}

.photo-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}

/* Remove footer border when footer has no visible content */
.photo-card-footer:empty {
  display: none;
}

.photo-card-footer.no-border {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}

.ticket-link {
  padding: 8px 16px;
  background: #3b82f6;
  color: #ffffff;
  text-decoration: none;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  transition: background 0.2s;
}

.ticket-link:hover {
  background: #2563eb;
}

.photo-card-footer .event-price {
  font-size: 16px;
  font-weight: 700;
  color: #3b82f6;
  margin: 0;
}

/* Empty State */
.events-empty {
  padding: 60px 20px;
  text-align: center;
  color: #64748b;
}

.events-empty p {
  font-size: 18px;
  margin: 0;
}

/* Pagination */
.events-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #e2e8f0;
}

.page-btn {
  padding: 10px 20px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.page-btn:hover:not(:disabled) {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.page-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.page-info {
  font-size: 14px;
  color: #64748b;
  font-weight: 500;
}

/* Mobile Event Details */
.mobile-event-details {
  padding: 20px 0;
  border-top: 2px solid #e2e8f0;
  margin-top: 20px;
}

.mobile-event-date-header {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 16px;
}

.mobile-event-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mobile-event-item {
  padding: 16px;
  background: #f8fafc;
  border-radius: 8px;
  border-left: 4px solid #3b82f6;
  cursor: pointer;
  transition: all 0.2s;
}

.mobile-event-item:hover {
  background: #f1f5f9;
  transform: translateX(4px);
}

.mobile-event-time {
  font-size: 13px;
  color: #64748b;
  margin-bottom: 4px;
}

.mobile-event-title {
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
}

.no-events-message {
  font-size: 14px;
  color: #64748b;
  text-align: center;
  padding: 24px;
  font-style: italic;
}

/* Mobile Month Navigation */
.mobile-month-nav {
  display: none;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 16px 0;
  margin-top: 20px;
  border-top: 2px solid #e2e8f0;
}

.mobile-nav-prev,
.mobile-nav-today,
.mobile-nav-next {
  padding: 10px 16px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  color: #334155;
}

.mobile-nav-prev:hover,
.mobile-nav-today:hover,
.mobile-nav-next:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.mobile-nav-prev,
.mobile-nav-next {
  flex: 1;
}

.mobile-nav-today {
  flex: 0 0 auto;
}

/* Responsive Styles */
@media (min-width: 768px) and (max-width: 1024px) {
  .photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .calendar-day {
    min-height: 100px;
    height: auto;
    padding: 6px;
  }
  .day-number {
    font-size: 14px;
  }
  .calendar-event {
    font-size: 11px;
    padding: 4px 6px;
  }
}
/* Mobile-only styles (max-width: 480px) */
@media (max-width: 480px) {
  .events-widget {
    padding: 16px;
  }
  /* Hide entire desktop toolbar on mobile */
  .events-toolbar {
    display: none;
  }
  /* Show mobile calendar header for all views */
  .mobile-calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
    background: #f8fafc;
    border-radius: 8px;
    margin-bottom: 16px;
  }
  .mobile-date-selector {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #1e293b;
    cursor: pointer;
    transition: all 0.2s;
  }
  .mobile-date-selector:hover {
    background: #f8fafc;
    border-color: #94a3b8;
  }
  .mobile-date-selector svg {
    width: 12px;
    height: 12px;
  }
  .mobile-view-icons {
    display: flex;
    gap: 8px;
  }
  .mobile-view-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border: 2px solid #e2e8f0;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
    color: #64748b;
  }
  .mobile-view-icon:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
  }
  .mobile-view-icon.active {
    background: #3b82f6;
    border-color: #3b82f6;
    color: #ffffff;
  }
  .mobile-view-icon svg {
    width: 20px;
    height: 20px;
  }
  /* Hide desktop controls on mobile */
  .events-nav-controls {
    display: none;
  }
  /* Mobile search styling */
  .events-search-wrapper {
    min-width: 100%;
    gap: 8px;
  }
  .events-search-btn {
    padding: 10px 12px;
    min-width: 44px;
  }
  .search-btn-text {
    display: none;
  }
  .search-btn-icon {
    display: block;
  }
  .event-card {
    flex-direction: column;
    gap: 16px;
  }
  .event-date-badge {
    align-self: flex-start;
    flex-direction: row;
    gap: 12px;
    min-width: auto;
  }
  .event-day-name {
    font-size: 14px;
  }
  .event-day-number {
    font-size: 24px;
  }
  .month-header {
    font-size: 20px;
  }
  /* Mobile calendar - simplified with dots and reduced height */
  .calendar-table {
    border: none;
  }
  .calendar-table th {
    padding: 8px 4px;
    font-size: 11px;
  }
  .calendar-day {
    min-height: 55px;
    height: 55px;
    padding: 4px;
    text-align: center;
    cursor: pointer;
    border: 1px solid #e2e8f0;
  }
  .calendar-day:hover {
    background: #f8fafc;
  }
  .day-number {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 4px;
  }
  /* Hide events text on mobile, show dots instead */
  .calendar-day .day-events {
    display: none;
  }
  .event-dot {
    width: 6px;
    height: 6px;
    background: #3b82f6;
    border-radius: 50%;
    margin: 0 auto;
  }
  /* Selected date styling */
  .calendar-day.selected-date {
    background: #3b82f6 !important;
    border-color: #3b82f6;
  }
  .calendar-day.selected-date .day-number {
    color: #ffffff;
  }
  .calendar-day.selected-date .event-dot {
    background: #ffffff;
  }
  .calendar-day.other-month {
    opacity: 0.3;
  }
  .photo-grid {
    grid-template-columns: 1fr;
  }
  .events-pagination {
    flex-wrap: wrap;
  }
}

.widget-1f5975 .copyright {
    font-size: 13px;
    display: flex;
    text-align: left;
    justify-content: flex-start;
}
