/* =====================================================================
   Eventful Media modern theme (Bootstrap 5.3 variables + a few tweaks)
   ===================================================================== */

:root {
  --em-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --em-grad: linear-gradient(135deg, #06b6d4 0%, #3b82f6 55%, #6366f1 100%);
  --em-radius: .9rem;
  --bs-font-sans-serif: var(--em-font);
  --bs-body-font-family: var(--em-font);
  --bs-primary: #3b82f6;
  --bs-primary-rgb: 59, 130, 246;
  --bs-success: #10b981;
  --bs-success-rgb: 16, 185, 129;
  --bs-danger: #ef4444;
  --bs-danger-rgb: 239, 68, 68;
  --bs-warning: #f59e0b;
  --bs-warning-rgb: 245, 158, 11;
  --bs-info: #06b6d4;
  --bs-info-rgb: 6, 182, 212;
  --bs-border-radius: .65rem;
  --bs-border-radius-sm: .5rem;
  --bs-border-radius-lg: var(--em-radius);
  --bs-link-color: #3b82f6;
  --bs-link-color-rgb: 59, 130, 246;
  --bs-link-hover-color: #2563eb;
  --bs-link-hover-color-rgb: 37, 99, 235;
}

body { -webkit-font-smoothing: antialiased; letter-spacing: -.005em; }
h1, h2, h3, h4, .h1, .h2, .h3, .h4 { letter-spacing: -.02em; font-weight: 700; }

/* Buttons */
.btn { font-weight: 600; border-radius: .7rem; padding: .55rem 1.1rem; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.btn-sm { border-radius: .55rem; padding: .3rem .7rem; }
.btn-lg { border-radius: .9rem; padding: .8rem 1.4rem; }
.btn:active { transform: scale(.98); }
.btn-primary {
  --bs-btn-bg: #3b82f6; --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: #2563eb; --bs-btn-hover-border-color: transparent;
  --bs-btn-active-bg: #1d4ed8; --bs-btn-active-border-color: transparent;
  --bs-btn-disabled-bg: #3b82f6; --bs-btn-disabled-border-color: transparent;
  background-image: var(--em-grad);
  box-shadow: 0 6px 20px -6px rgba(59, 130, 246, .55);
}
.btn-primary:hover { box-shadow: 0 10px 24px -6px rgba(59, 130, 246, .7); transform: translateY(-1px); }
.btn-success {
  --bs-btn-bg: #10b981; --bs-btn-border-color: #10b981;
  --bs-btn-hover-bg: #059669; --bs-btn-hover-border-color: #059669;
  --bs-btn-active-bg: #047857; --bs-btn-active-border-color: #047857;
}
.btn-outline-primary {
  --bs-btn-color: #3b82f6; --bs-btn-border-color: rgba(59,130,246,.45);
  --bs-btn-hover-bg: #3b82f6; --bs-btn-hover-border-color: #3b82f6;
}

/* Cards, lists, forms */
.card {
  --bs-card-border-radius: var(--em-radius);
  --bs-card-inner-border-radius: calc(var(--em-radius) - 1px);
  --bs-card-cap-bg: transparent;
}
.card-header { font-weight: 600; padding-top: .9rem; padding-bottom: .9rem; }
.list-group { --bs-list-group-border-radius: var(--em-radius); }
.form-control, .form-select { border-radius: .7rem; padding: .65rem .9rem; }
.form-control:focus, .form-select:focus { border-color: #3b82f6; box-shadow: 0 0 0 .25rem rgba(59,130,246,.2); }
.badge { font-weight: 600; border-radius: .5rem; padding: .4em .65em; }
.alert { border-radius: var(--em-radius); }
.modal { --bs-modal-border-radius: 1.1rem; }
.progress { border-radius: 99px; }
.accordion { --bs-accordion-border-radius: var(--em-radius); --bs-accordion-inner-border-radius: calc(var(--em-radius) - 1px); }

/* ---------- Shop (dark) ---------- */
body.em-shop {
  --bs-body-bg: #0a0c12;
  --bs-body-color: #e5e7eb;
  --bs-secondary-color: rgba(229, 231, 235, .6);
  --bs-border-color: rgba(255, 255, 255, .08);
  --bs-tertiary-bg: rgba(255, 255, 255, .04);
  background:
    radial-gradient(1000px 500px at 10% -10%, rgba(6, 182, 212, .14), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(99, 102, 241, .14), transparent 60%),
    #0a0c12;
  background-attachment: fixed;
}

.em-shop .card,
.em-shop .list-group-item,
.em-shop .accordion-item {
  --bs-card-bg: rgba(255, 255, 255, .035);
  --bs-list-group-bg: rgba(255, 255, 255, .035);
  --bs-accordion-bg: rgba(255, 255, 255, .035);
  --bs-card-border-color: rgba(255, 255, 255, .08);
  --bs-list-group-border-color: rgba(255, 255, 255, .08);
  --bs-accordion-border-color: rgba(255, 255, 255, .08);
}
.em-shop .card { box-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 20px 40px -24px rgba(0,0,0,.8); }
.em-shop .form-control, .em-shop .form-select { background-color: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.em-shop .offcanvas { --bs-offcanvas-bg: #0f121a; --bs-offcanvas-border-color: rgba(255,255,255,.08); }
.em-shop .modal { --bs-modal-bg: #11141c; }
.em-shop .btn-outline-light { --bs-btn-border-color: rgba(255,255,255,.15); --bs-btn-hover-bg: rgba(255,255,255,.1); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: rgba(255,255,255,.25); }
.em-shop .btn-outline-secondary { --bs-btn-color: #e5e7eb; --bs-btn-border-color: rgba(255,255,255,.1); --bs-btn-hover-bg: rgba(255,255,255,.08); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: rgba(255,255,255,.18); }
.em-shop footer { border-color: rgba(255,255,255,.06) !important; }

/* Frosted navbar */
.em-navbar {
  background: rgba(10, 12, 18, .72) !important;
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  min-height: 4rem;
}
.em-navbar .btn-outline-light { border-radius: .8rem; width: 2.6rem; height: 2.6rem; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.em-navbar .navbar-brand span { font-weight: 700; letter-spacing: -.02em; }

/* Gradient headline helper */
.em-gradient-text { background: var(--em-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Event cards on the home page */
.em-shop a.card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; overflow: hidden; }
.em-shop a.card:hover { transform: translateY(-4px); border-color: rgba(59,130,246,.45); box-shadow: 0 24px 48px -20px rgba(59,130,246,.45); }
.em-shop a.card .card-img-top { aspect-ratio: 16 / 9; object-fit: cover; }


.em-navbar .navbar-logo {
  height: 48px;
  width: auto;
}

.em-navbar .navbar-brand {
  max-width: 60vw;
  white-space: normal;
  line-height: 1.2;
}

/* Left menu: sticky column on large screens, offcanvas below */
@media (min-width: 992px) {
  .em-side-col .offcanvas-lg {
    position: sticky;
    top: 4.5rem;
    max-height: calc(100vh - 5.5rem);
    overflow-y: auto;
  }
}

.em-entry-link.active {
  background-image: var(--em-grad);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 6px 20px -8px rgba(59,130,246,.7);
}

/* Photo grids: square thumbnails, cropped */
.em-thumb {
  display: block;
  overflow: hidden;
  border-radius: .75rem;
  background: #000;
  position: relative;
  box-shadow: 0 8px 24px -12px rgba(0,0,0,.8);
  transition: transform .2s ease, box-shadow .2s ease;
}

.em-thumb:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px -12px rgba(59,130,246,.5);
}

.em-thumb img,
.em-thumb video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .2s ease;
}

.em-thumb:hover img,
.em-thumb:hover video {
  transform: scale(1.04);
}

.em-thumb .em-thumb-badge {
  position: absolute;
  left: .4rem;
  bottom: .4rem;
}

/* Fullscreen media viewer (free / studio galleries) */
.em-viewer .modal-body {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: #000;
}

.em-viewer .em-viewer-media {
  max-width: 100%;
  max-height: calc(100vh - 140px);
  object-fit: contain;
}

.em-viewer .em-viewer-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.em-viewer .em-viewer-nav.prev { left: .75rem; }
.em-viewer .em-viewer-nav.next { right: .75rem; }

/* Colorbox "Add to cart" button inside the lightbox */
#cboxLoadedContent .lightbox-add-to-cart {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  z-index: 1000;
}

#cboxLoadedContent .lightbox-bonus-msg {
  position: absolute;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  max-width: 320px;
  z-index: 1000;
}

/* Keep colorbox above the sticky navbar / offcanvas */
#colorbox, #cboxOverlay, #cboxWrapper { z-index: 2000; }

.back-to-top {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1030;
  display: none;
}

/* Form validation used by existing scripts (.error class) */
.form-control.error,
input.error {
  border-color: var(--bs-danger) !important;
  box-shadow: 0 0 0 .2rem rgba(var(--bs-danger-rgb), .25);
}

.errortext {
  color: var(--bs-danger);
  font-size: .875rem;
  margin-top: .25rem;
}

/* Select2 sized like a Bootstrap .form-control-lg */
.select2-container .select2-selection--single {
  height: calc(3rem + 2px) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 3rem !important;
  font-size: 1.1rem;
  text-align: left;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 3rem !important;
}

/* Select2 dark theme (dancer search) */
.em-shop .select2-container--default .select2-selection--single {
  background-color: #161a24;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: .8rem;
}

.em-shop .select2-container--default.select2-container--focus .select2-selection--single,
.em-shop .select2-container--default.select2-container--open .select2-selection--single {
  border-color: #3b82f6;
  box-shadow: 0 0 0 .25rem rgba(59, 130, 246, .2);
}

.em-shop .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #f3f4f6;
  padding-left: 1rem;
}

.em-shop .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: rgba(243, 244, 246, .55);
}

.em-shop .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: #9ca3af transparent transparent transparent;
}

.em-shop .select2-dropdown {
  background-color: #161a24;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: .8rem;
  color: #f3f4f6;
  overflow: hidden;
}

.em-shop .select2-container--default .select2-search--dropdown {
  padding: .6rem;
}

.em-shop .select2-container--default .select2-search--dropdown .select2-search__field {
  background-color: #0f121a;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: .6rem;
  color: #f3f4f6;
  padding: .55rem .75rem;
  font-size: 1rem;
  outline: none;
}

.em-shop .select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: #3b82f6;
}

.em-shop .select2-results__option,
.em-shop .select2-results__message {
  color: #e5e7eb;
  padding: .55rem 1rem;
  text-align: left;
}

.em-shop .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
.em-shop .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #3b82f6;
  color: #fff;
}

.em-shop .select2-container--default .select2-results__option--selected,
.em-shop .select2-container--default .select2-results__option[aria-selected=true] {
  background-color: rgba(59, 130, 246, .2);
  color: #fff;
}

/* ---------- Admin (light) ---------- */
body.em-admin {
  --bs-body-bg: #f5f7fb;
  --bs-tertiary-bg: #f5f7fb;
  --bs-border-color: #e7eaf1;
  background: #f5f7fb !important;
  color: #1f2937;
}

.em-admin .card {
  --bs-card-border-color: #eceff5;
  box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px -12px rgba(16,24,40,.12) !important;
}

.em-admin .em-topbar {
  background: rgba(255,255,255,.85);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid #eceff5;
  height: 3.75rem;
}

.em-admin .em-brand-mark {
  width: 2rem; height: 2rem; border-radius: .6rem;
  background: var(--em-grad); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: .9rem;
}

.em-admin .sidebar { background: #fff; border-color: #eceff5 !important; }

.em-admin .sidebar .nav-link {
  color: #4b5563;
  font-weight: 500;
  border-radius: .65rem;
  padding: .55rem .8rem;
}

.em-admin .sidebar .nav-link i {
  width: 1.25rem;
  text-align: center;
  margin-right: .55rem;
  color: #9ca3af;
}

.em-admin .sidebar .nav-link:hover { background-color: #f3f4f6; color: #111827; }

.em-admin .sidebar .nav-link.active {
  background-color: rgba(59,130,246,.1);
  color: #2563eb;
  font-weight: 600;
}

.em-admin .sidebar .nav-link.active i { color: #3b82f6; }

.em-admin .sidebar-heading {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #9ca3af !important;
}

/* Tables */
.em-admin .table { --bs-table-hover-bg: #f8fafc; margin-bottom: 0; }
.em-admin .table > thead th,
.em-admin .table-light th {
  --bs-table-bg: #f9fafb;
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #6b7280;
  border-bottom-color: #eceff5;
  padding-top: .75rem;
  padding-bottom: .75rem;
}
.em-admin .table td { padding-top: .7rem; padding-bottom: .7rem; border-color: #f1f3f7; }
.em-admin .card > .table-responsive { border-radius: var(--bs-card-inner-border-radius); }

/* Stat cards: drop the old thick left border, use an icon chip instead */
.em-admin .card.border-start.border-4 { border-left-width: 1px !important; border-left-color: #eceff5 !important; }

@media (min-width: 768px) {
  .em-admin .sidebar .offcanvas-md {
    position: sticky;
    top: 3.75rem;
    height: calc(100vh - 3.75rem);
    overflow-y: auto;
  }
}

.status-dot {
  display: inline-block;
  width: .8rem;
  height: .8rem;
  border-radius: 50%;
}

/* Justified photo rows: each photo keeps its real shape (no square crop).
   Items set --r (width / height) inline; row height is --row-h. */
.em-justified {
  --row-h: 220px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.em-justified::after {
  content: "";
  flex-grow: 999999; /* stops the last row from stretching */
}

.em-justified > .em-jitem {
  flex: var(--r, 1.5) 1 calc(var(--r, 1.5) * var(--row-h));
  max-width: calc(var(--r, 1.5) * var(--row-h) * 1.6);
}

.em-justified > .em-jitem > .em-jpad {
  display: block;
  padding-bottom: calc(100% / var(--r, 1.5));
}

.em-justified > .em-jitem > img,
.em-justified > .em-jitem > video {
  position: absolute;
  inset: 0;
}

.em-justified .em-jlabel {
  flex-basis: 100%;
}

@media (max-width: 767.98px) {
  .em-justified { --row-h: 130px; gap: 4px; }
}

/* Buy viewer (paid gallery) */
.em-buy-viewer .modal-content { height: 100dvh; }
.em-buy-viewer #pvStage { flex: 1 1 auto; min-height: 0; touch-action: pan-y; }
.em-pv-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: opacity .2s ease;
  user-select: none;
  -webkit-user-drag: none;
}
.em-pv-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .1);
  border: 0;
  z-index: 2;
}
.em-pv-nav:hover { background: rgba(255, 255, 255, .2); }
.em-pv-nav.prev { left: 1rem; }
.em-pv-nav.next { right: 1rem; }
.em-pv-footer { padding-bottom: max(1rem, env(safe-area-inset-bottom)) !important; }
@media (min-width: 768px) {
  .em-pv-footer { max-width: 480px; width: 100%; margin: 0 auto; }
}

/* Logo shine: a brand-coloured light that sweeps across the logo shape only */
.em-logo-shine {
  position: relative;
  display: inline-block;
  line-height: 0;
}
.em-logo-shine::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 35%, #67e8f9 45%, #a5b4fc 52%, transparent 62%);
  background-size: 300% 100%;
  background-position: 100% 0;
  -webkit-mask: url("../img/logo.png") center / contain no-repeat;
          mask: url("../img/logo.png") center / contain no-repeat;
  opacity: 0;
  pointer-events: none;
}
.em-shine-once::after { animation: em-shine 1.1s ease-in-out .4s 1; }
.em-navbar .navbar-brand:hover .em-logo-shine::after { animation: em-shine .9s ease-in-out 1; }
.em-navbar .navbar-brand .navbar-logo { transition: filter .3s ease; }
.em-navbar .navbar-brand:hover .navbar-logo { filter: drop-shadow(0 0 10px rgba(59, 130, 246, .7)); }
.em-splashing .em-navbar .navbar-logo { visibility: hidden; } /* the splash logo flies into this spot */

@keyframes em-shine {
  0%   { opacity: 1; background-position: 100% 0; }
  100% { opacity: 1; background-position: 0 0; }
}

/* Home page logo splash */
#em-splash {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Background is its own layer so it can fade while the logo flies to the header */
.em-splash-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at center, #1e293b 0%, #0b1120 70%);
  transition: opacity .5s ease;
}
#em-splash::before {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: var(--em-grad);
  filter: blur(60px);
  opacity: 0;
  animation: em-splash-glow 1.25s ease-out forwards;
  transition: opacity .4s ease;
}
#em-splash.em-splash-out { pointer-events: none; }
#em-splash.em-splash-out .em-splash-bg { opacity: 0; }
#em-splash.em-splash-out::before { opacity: 0 !important; animation: none; }
#em-splash.em-splash-out .em-splash-flash { display: none; }

.em-splash-logo {
  position: relative;
  width: min(48vw, 220px);
  transition: transform .55s cubic-bezier(.65, 0, .35, 1);
}
/* Entrance runs on the inner element, so it doesn't fight the fly-to-header transform on the outer one */
.em-splash-logo > .em-logo-shine { animation: em-splash-logo .6s cubic-bezier(.2, .8, .2, 1) both; }
.em-splash-logo .em-logo-shine,
.em-splash-logo img { width: 100%; height: auto; }
.em-splash-logo .em-logo-shine::after { animation: em-shine .8s ease-in-out .6s 1; }

/* Camera lens "click": a bright spark on the camera's lens */
.em-splash-lens {
  position: absolute;
  left: 71%;
  top: 32%;
  width: 14%;
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  background: radial-gradient(circle, #fff 0%, #a5f3fc 35%, rgba(59, 130, 246, 0) 70%);
  animation: em-lens .5s ease-out .45s both;
}
/* Whole-screen flash, like a camera flash going off */
.em-splash-flash {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 60% 45%, rgba(255,255,255,.95), rgba(165,243,252,.5) 40%, rgba(255,255,255,0) 75%);
  opacity: 0;
  pointer-events: none;
  animation: em-flash .45s ease-out .5s both;
}

@keyframes em-splash-logo {
  0%   { opacity: 0; transform: scale(.75); filter: blur(6px); }
  100% { opacity: 1; transform: scale(1);   filter: blur(0); }
}
@keyframes em-splash-glow {
  0%   { opacity: 0; transform: scale(.5); }
  45%  { opacity: .6; transform: scale(1.05); }
  100% { opacity: .35; transform: scale(1.15); }
}
@keyframes em-lens {
  0%   { transform: translate(-50%, -50%) scale(0); opacity: 1; }
  40%  { transform: translate(-50%, -50%) scale(2.2); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(3); opacity: 0; }
}
@keyframes em-flash {
  0%   { opacity: 0; }
  20%  { opacity: .85; }
  100% { opacity: 0; }
}

/* Thin brand-gradient loading bar at the top while the next page loads */
#em-loadbar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  z-index: 2100;
  background: var(--em-grad);
  box-shadow: 0 0 10px rgba(59, 130, 246, .8);
  opacity: 0;
  pointer-events: none;
}
#em-loadbar.em-loading {
  opacity: 1;
  animation: em-loadbar 8s cubic-bezier(.1, .7, .2, 1) forwards;
}
@keyframes em-loadbar {
  0%   { width: 0; }
  10%  { width: 45%; }
  100% { width: 92%; }
}

/* Small faded logo in the footer */
.em-footer-logo {
  height: 36px;
  width: auto;
  opacity: .35;
  transition: opacity .3s ease;
}
.em-footer-logo:hover { opacity: .7; }

@media (prefers-reduced-motion: reduce) {
  .em-logo-shine::after, #em-loadbar.em-loading { animation: none; }
  #em-loadbar.em-loading { width: 60%; }
}

/* Gallery: items already in the cart */
.em-thumb.em-in-cart {
  outline: 3px solid var(--bs-success);
  outline-offset: -3px;
}
.em-thumb.em-in-cart img { opacity: .75; }
.em-thumb .em-cart-badge {
  position: absolute;
  top: .4rem;
  right: .4rem;
  z-index: 1;
}

/* Cart button bounce after adding something */
.em-bounce { animation: em-bounce .65s cubic-bezier(.28, .84, .42, 1); }
.em-bounce .badge { animation: em-badge-pop .65s ease; }
@keyframes em-bounce {
  0%   { transform: scale(1); }
  25%  { transform: scale(1.3) translateY(-4px); }
  45%  { transform: scale(.9); }
  65%  { transform: scale(1.12); }
  85%  { transform: scale(.97); }
  100% { transform: scale(1); }
}
@keyframes em-badge-pop {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  40%      { transform: translate(-50%, -50%) scale(1.5); }
}
@media (prefers-reduced-motion: reduce) {
  .em-bounce, .em-bounce .badge { animation: none; }
}

/* Package suggestion popup */
.em-pkg-suggest { border: 1px solid rgba(59, 130, 246, .35); border-radius: 1.25rem; overflow: hidden; }
.em-pkg-suggest::before { content: ""; display: block; height: 4px; background: var(--em-grad); }
.em-pkg-icon {
  width: 3.5rem; height: 3.5rem; border-radius: 1rem;
  display: flex; align-items: center; justify-content: center;
  background: var(--em-grad); color: #fff; font-size: 1.4rem;
  box-shadow: 0 10px 30px -10px rgba(59, 130, 246, .8);
}

/* Mobile cart bar */
#em-cartbar {
  position: fixed;
  left: .75rem;
  right: .75rem;
  bottom: max(.75rem, env(safe-area-inset-bottom));
  z-index: 1040;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .55rem .55rem .55rem .75rem;
  border-radius: 1.25rem;
  background: rgba(15, 18, 28, .85);
  -webkit-backdrop-filter: saturate(160%) blur(16px);
  backdrop-filter: saturate(160%) blur(16px);
  border: 1px solid rgba(255, 255, 255, .1);
  box-shadow: 0 16px 40px -12px rgba(0, 0, 0, .8);
  transform: translateY(150%);
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
#em-cartbar.em-show { transform: translateY(0); }
#em-cartbar.em-pop { animation: em-cartbar-pop .4s ease; }
.em-cartbar-info {
  display: flex;
  align-items: center;
  gap: .65rem;
  background: none;
  border: 0;
  color: inherit;
  text-align: left;
  padding: 0;
  line-height: 1.2;
}
.em-cartbar-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: .8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--em-grad);
  color: #fff;
}
@keyframes em-cartbar-pop {
  0%, 100% { transform: translateY(0) scale(1); }
  40%      { transform: translateY(-4px) scale(1.02); }
}
/* Keep page content and the Top button clear of the bar */
@media (max-width: 991.98px) {
  body.em-has-cartbar { padding-bottom: 5.5rem; }
  body.em-has-cartbar .back-to-top { bottom: 6rem; }
}

/* Home: continue where you left off */
.em-recent-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: .75rem;
}
.em-recent-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
  padding: .75rem .9rem;
  border-radius: 1rem;
  color: inherit;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .08);
  transition: transform .15s ease, border-color .15s ease, background-color .15s ease;
}
.em-recent-item:hover { transform: translateY(-2px); border-color: rgba(59, 130, 246, .5); background: rgba(59, 130, 246, .08); color: inherit; }
.em-recent-text { min-width: 0; }
.em-recent-avatar {
  flex-shrink: 0;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #fff;
  background: var(--em-grad);
}

/* ===== Package card: "Most popular" ribbon ===== */
.em-pkg-card { position: relative; overflow: visible; margin-top: .75rem; }
.em-popular-badge {
  position: absolute; top: -.7rem; left: 1rem;
  background: var(--em-grad); color: #fff;
  font-size: .75rem; font-weight: 700; letter-spacing: .02em;
  padding: .2rem .65rem; border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.em-alldances-card { border-style: dashed; }
.em-pkg-title { font-size: 1.25rem; }
/* Phones: keep the package cards short so the photos stay on screen */
@media (max-width: 767.98px) {
  .em-pkg-card .card-body, .em-alldances-card .card-body { padding: .75rem; }
  .em-pkg-card .card-body { padding-top: 1rem; }
  .em-pkg-title { font-size: 1rem; }
  .em-pkg-card .btn-lg, .em-alldances-card .btn-lg { padding: .45rem .75rem; font-size: 1rem; }
  .em-alldances-card { margin-top: -.5rem; }
}

/* ===== Share with family ===== */
.em-share-btn { background: #25d366; border-color: #25d366; color: #fff; }
.em-share-btn:hover, .em-share-btn:focus { background: #1ebe5a; border-color: #1ebe5a; color: #fff; }

/* ===== Google review stars (checkout / payment) ===== */
.em-google-reviews { display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; color: var(--bs-body-color); font-size: .875rem; }
.em-google-reviews:hover { color: var(--bs-body-color); text-decoration: underline; }
.em-google-reviews .em-stars { color: #fbbc04; letter-spacing: .05em; }
