/* Optional anniversary theme. Remove this stylesheet and the body class to
   restore the original storefront. Shopping and account behavior is unchanged. */
body.celebration-store {
  --gold: #805819;
  --gold-light: #e7c56f;
  --dark: #351723;
  --muted: #6f625c;
  --cream: #fbf2df;
  --line: #ddc9a5;
  --white: #fffefa;
  --focus: #1666be;
  color: var(--dark);
  background:
    radial-gradient(ellipse at 50% 0, #9f384457 0, transparent 570px),
    radial-gradient(ellipse at 0 24%, #daa65316, transparent 38%),
    radial-gradient(ellipse at 100% 58%, #daa65313, transparent 32%),
    #330b18;
}
.celebration-store .site-header {
  max-width: none;
  padding: 16px max(24px, calc((100% - 1180px) / 2));
  gap: 22px;
  color: #fff4d8;
  border-bottom: 1px solid #cc9b4f;
  background: linear-gradient(110deg, #360c19, #661a2c 50%, #360c19);
  box-shadow: 0 4px 24px #19000855, inset 0 -3px #f2ca6810;
}
.celebration-store .brand { gap: 13px; font-size: 27px; }
.celebration-store .brand img {
  width: 64px;
  height: 64px;
  border: 2px solid #e9bd58;
  box-shadow: 0 0 0 4px #e6bc5b20, 0 5px 18px #18000655;
}
.celebration-store .brand small { color: #e4bd77; letter-spacing: 1.1px; }
.celebration-store .main-nav a { color: #ffedc9; }
.celebration-store .main-nav a:hover { color: #fff; }
.celebration-store .account-button {
  color: #fff0cc;
  background: #ffffff07;
  border-color: #c4975b;
}
.celebration-store .account-button:hover { background: #ffffff15; }
.celebration-store .cart-button,
.celebration-store .primary,
.celebration-store .add {
  color: #3e1a11;
  border: 1px solid #b78327;
  background: linear-gradient(112deg, #e0ae43 0%, #ffe6a2 43%, #edc060 72%, #dba039 100%);
  box-shadow: inset 0 1px #fff8d6, 0 3px 0 #a06b25, 0 5px 13px #69241119;
  font-weight: 700;
  transition: background-color .15s ease, box-shadow .15s ease;
}
.celebration-store .cart-button:hover,
.celebration-store .primary:hover,
.celebration-store .add:hover:not(:disabled) {
  background: linear-gradient(112deg, #edc15a, #fff0c1 43%, #f2cb78 72%, #e3b04d);
  box-shadow: inset 0 1px #fff9df, 0 3px 0 #a06b25, 0 6px 18px #69241126;
}
.celebration-store .cart-count { color: #fff7df; background: #641a2d; }
.celebration-store .cart-button-countdown { color: #542111; }
.celebration-store .settings summary { color: #ffedc8; }
.celebration-store .settings-panel {
  color: var(--dark);
  border-color: #c8a466;
  border-top: 3px solid #d5a848;
  background: #fffcf4;
  box-shadow: 0 14px 40px #21000955;
  z-index: 8;
}
.celebration-store .settings-panel select {
  border-color: #a38b68;
  background: #fffefa;
  color: #351723;
}
.celebration-store .skip-link { color: #351723; }
.celebration-store .shop-anniversary {
  position: relative;
  width: calc(100% - 48px);
  max-width: 1180px;
  padding: 28px 0 24px;
  margin: 0 auto;
}
.celebration-store .anniversary-banner {
  position: relative;
  padding: 5px;
  border: 3px solid transparent;
  border-radius: 20px;
  background:
    linear-gradient(#f9e9bc, #f9e9bc) padding-box,
    linear-gradient(125deg, #b87920, #ffedb4 22%, #bc812a 45%, #ffe9a5 65%, #b87920 87%, #edc363) border-box;
  box-shadow: 0 16px 38px #17000655, 0 0 34px #e7b85416, inset 0 0 0 1px #fff7d9;
}
.celebration-store .anniversary-banner::after {
  content: '';
  position: absolute;
  inset: 1px;
  border: 1px solid #b1843f;
  border-radius: 15px;
  pointer-events: none;
}
.celebration-store .anniversary-banner img { border-radius: 11px; }
.celebration-store .inventory {
  position: relative;
  width: calc(100% - 48px);
  max-width: 1180px;
  padding: 28px 28px 34px;
  margin: 0 auto 30px;
  border: 1px solid #d6b775;
  border-radius: 24px;
  background: linear-gradient(135deg, #fffdf5, #fbf4e6 65%, #fffaf0);
  box-shadow: 0 14px 40px #14000838, inset 0 0 0 5px #fffaf0;
}
.celebration-store .inventory::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 36px;
  right: 36px;
  height: 4px;
  border-radius: 3px;
  background: linear-gradient(90deg, transparent, #c2943d 12%, #ffe9a4 50%, #c2943d 88%, transparent);
  pointer-events: none;
}
.celebration-store .inventory .section-heading { margin-bottom: 18px; }
.celebration-store .inventory h1 {
  color: #58182a;
  font-size: 34px;
  padding-left: 16px;
  border-left: 4px solid #bf8c30;
}
.celebration-store .inventory .demo-label { color: #78674f; }
.celebration-store .search-bar { margin-bottom: 24px; }
.celebration-store .search-controls { gap: 10px; }
.celebration-store .search-controls input {
  min-height: 58px;
  border: 1px solid #b7985f;
  border-radius: 11px;
  background: #fffefa;
  box-shadow: inset 0 2px 5px #94692b0b;
}
.celebration-store .search-controls input::placeholder { color: #766b5e; }
.celebration-store .search-controls .primary { min-height: 56px; border-radius: 11px; }
.celebration-store .secondary {
  color: #542335;
  background: #fffdf7;
  border-color: #b7a183;
  border-radius: 10px;
}
.celebration-store .secondary:hover { background: #f8edda; }
.celebration-store .ticket-groups { gap: 30px; }
.celebration-store .ticket-grid { gap: 20px; align-items: stretch; }
.celebration-store .ticket-group-heading { margin-bottom: 18px; }
.celebration-store .ticket-group-heading h3 {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #571d30;
  font-size: 26px;
}
.celebration-store .ticket-group-heading h3::after {
  content: '';
  flex: 1;
  min-width: 20px;
  height: 1px;
  margin-left: 4px;
  background: linear-gradient(90deg, #b88a3e99, transparent);
}
.celebration-store .featured-group {
  position: relative;
  padding: 24px;
  border: 1px solid #c29a4a;
  border-radius: 19px;
  background:
    radial-gradient(ellipse at 50% 0, #ae354b70, transparent 65%),
    linear-gradient(135deg, #6d1a2e, #461021 75%);
  box-shadow: inset 0 0 0 5px #b7893520, 0 7px 18px #5a18271a;
}
.celebration-store .featured-group::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px solid #e4bd6538;
  border-radius: 13px;
  pointer-events: none;
}
.celebration-store .featured-group .ticket-group-heading h3 { color: #ffe6a3; }
.celebration-store .featured-group .ticket-group-heading h3::before {
  content: '✦';
  flex: none;
  color: #f6cf74;
  font: 30px/1 Georgia, serif;
  text-shadow: 0 0 14px #ffd77d38;
}
.celebration-store .featured-group .ticket-group-heading h3::after {
  background: linear-gradient(90deg, #e8c17099, #e8c17005);
}
.celebration-store .ticket {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid #d4b985;
  border-radius: 14px;
  background: #fffdf7;
  box-shadow: 0 5px 15px #5734180d;
}
.celebration-store .featured-ticket { border-color: #efce85; box-shadow: 0 6px 19px #21000933; }
.celebration-store .inventory .actual-ticket {
  padding: 9px;
  border-bottom: 1px solid #e2d1ae;
  background: linear-gradient(135deg, #f7e8c9, #fff8e8 50%, #eddbb2);
}
.celebration-store .ticket-photo-button {
  border-radius: 7px;
  overflow: hidden;
  background: #fff;
}
.celebration-store .inventory .ticket-photo-button img {
  display: block;
  width: 100%;
  height: 185px;
  min-height: 0;
  max-height: none;
  object-fit: contain;
}
.celebration-store .inventory .ticket-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 16px;
}
.celebration-store .ticket-info .meta { color: #756752; font-size: 16px; line-height: 1.6; }
.celebration-store .ticket-info .ticket-number {
  color: #49192a;
  font: 700 38px/1.35 'Courier New', monospace;
  letter-spacing: 5px;
  margin: 9px 0 12px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.celebration-store .featured-ticket .ticket-number { color: #6c1c31; }
.celebration-store .ticket-bottom { margin-top: auto; gap: 12px; }
.celebration-store .price { color: #775016; font-size: 25px; line-height: 1.4; overflow-wrap: anywhere; }
.celebration-store .add { min-height: 56px; border-radius: 9px; font-size: 21px; }
.celebration-store .add:disabled,
.celebration-store .primary:disabled,
.celebration-store #demoCheckout:disabled {
  color: #53604e;
  border-color: #abb59e;
  background: #e8eddf;
  box-shadow: inset 0 1px #ffffff80;
  cursor: default;
}
.celebration-store .sample-notice {
  border-color: #dcc48f;
  background: #fbefd2;
  color: #71531e;
  border-radius: 9px;
}
.celebration-store .sample-badge {
  align-self: flex-start;
  color: #795b27;
  background: #f9efd8;
  border-color: #ddc698;
  margin-bottom: 7px;
}
.celebration-store .exchange-note { color: #716252; }
.celebration-store .inventory-status:not(:empty),
.celebration-store .empty-message { background: #f9edd5; border-color: #d9bd85; color: #634b29; }
.celebration-store .customer-orders {
  width: calc(100% - 48px);
  max-width: 1180px;
  padding: 28px;
  margin: 0 auto 28px;
  color: #3f2630;
  background: #fffbf1;
  border: 1px solid #c9a969;
  border-radius: 20px;
}
.celebration-store .customer-orders h2 { color: #571d30; }
.celebration-store .shop-details {
  width: calc(100% - 48px);
  max-width: 1180px;
  margin: 0 auto 30px;
  border: 1px solid #bc995e;
  border-radius: 14px;
  background: #fff9ed;
}
.celebration-store .shop-details > summary { color: #542335; background: #f3e5c7; }
.celebration-store footer {
  color: #f8e6c2;
  border-top: 1px solid #9e733b;
  background: linear-gradient(115deg, #2b0713, #4b1222, #2b0713);
}
.celebration-store .footer-brand { color: #edc779; letter-spacing: 3px; }
.celebration-store footer small { color: #ddcdb5; }
.celebration-store dialog {
  color: #351723;
  background: #fffcf4;
  border: 2px solid #c5a05b;
  border-radius: 19px;
  box-shadow: 0 22px 70px #19000866, inset 0 0 0 4px #f8ecd3;
}
.celebration-store dialog::backdrop { background: #210811ce; backdrop-filter: blur(3px); }
.celebration-store .dialog-heading h2 { color: #5e2033; }
.celebration-store .close-button { color: #5c2639; background: #fffdf7; border-color: #c6ad80; border-radius: 50%; }
.celebration-store .close-button:hover { background: #f7eace; }
.celebration-store .cart-row { border-color: #e3d0a9; }
.celebration-store .cart-row strong { color: #581e32; }
.celebration-store .total { color: #4c2130; border-bottom: 1px solid #dac291; }
.celebration-store .total strong { color: #76521d; }
.celebration-store fieldset { border-color: #c6ac7c; background: #fffdf8; border-radius: 11px; }
.celebration-store #orderForm input[type=text],
.celebration-store #orderForm input[type=tel],
.celebration-store #orderForm input[type=date] { color: #351723; border-color: #ac9064; background: #fff; }
.celebration-store input[type=radio] { accent-color: #78253c; }
.celebration-store .order-card { background: #fffef9; border-color: #ddc69a; }
.celebration-store .order-card h3 { color: #581d31; }
.celebration-store .auth-profile { background: #fff8e9; border-color: #d9c18f; }
.celebration-store .auth-status { background: #f8ecd1; border-color: #d2b477; color: #60491f; }
.celebration-store .mobile-cart-bar .primary {
  border: 2px solid #fff1bf;
  box-shadow: 0 5px 24px #24000b66, 0 0 0 1px #aa7832;
}
.celebration-store .ticket-photo-button:focus-visible { outline-offset: -5px; }
.celebration-store .site-header :focus-visible { outline-color: #fff0a2; }
.celebration-store .settings-panel :focus-visible { outline-color: var(--focus); }

@media (max-width: 1100px) {
  .celebration-store .site-header { gap: 16px; }
  .celebration-store .brand { font-size: 25px; }
  .celebration-store .brand img { width: 56px; height: 56px; }
  .celebration-store .main-nav { display: none; }
  .celebration-store .ticket-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 681px) and (max-width: 850px) {
  .celebration-store .site-header { flex-wrap: nowrap; gap: 14px; }
  .celebration-store .header-actions { gap: 8px; }
  .celebration-store .brand { gap: 10px; font-size: 23px; }
  .celebration-store .brand small { font-size: 11px; letter-spacing: .3px; }
  .celebration-store .brand img { width: 50px; height: 50px; }
  .celebration-store .account-button, .celebration-store .cart-button { padding: 10px 12px; }
  .celebration-store .settings summary { font-size: 15px; }
}
@media (max-width: 680px) {
  .celebration-store .site-header { padding: 14px 16px 16px; gap: 13px 10px; }
  .celebration-store .brand { gap: 10px; font-size: 24px; }
  .celebration-store .brand img { width: 46px; height: 46px; }
  .celebration-store .brand small { font-size: 10px; letter-spacing: .2px; }
  .celebration-store .account-button, .celebration-store .cart-button { min-height: 54px; font-size: 18px; }
  .celebration-store .settings summary { font-size: 15px; }
  .celebration-store .shop-anniversary { width: calc(100% - 24px); padding: 18px 0; }
  .celebration-store .anniversary-banner { padding: 3px; border-width: 2px; border-radius: 13px; }
  .celebration-store .anniversary-banner::after { border-radius: 9px; }
  .celebration-store .anniversary-banner img { border-radius: 7px; }
  .celebration-store .inventory { width: calc(100% - 24px); padding: 20px 14px 24px; margin-bottom: 20px; border-radius: 17px; }
  .celebration-store .inventory::before { left: 24px; right: 24px; }
  .celebration-store .inventory h1 { font-size: 29px; padding-left: 12px; }
  .celebration-store .inventory .section-heading { gap: 4px 12px; margin-bottom: 16px; }
  .celebration-store .inventory .demo-label { font-size: 16px; }
  .celebration-store .sample-notice { font-size: 16px; padding: 10px 12px; }
  .celebration-store .search-bar { margin-bottom: 20px; }
  .celebration-store .search-controls { display: flex; gap: 7px; }
  .celebration-store .search-controls input { flex: 1; width: 0; min-width: 0; min-height: 54px; padding: 10px; font-size: 23px; }
  .celebration-store .search-controls input::placeholder { font-size: 16px; }
  .celebration-store .search-controls .primary { min-width: 70px; min-height: 54px; padding: 10px; font-size: 18px; }
  .celebration-store .search-controls .secondary { padding: 10px; font-size: 17px; }
  .celebration-store .ticket-groups { gap: 24px; }
  .celebration-store .ticket-grid { grid-template-columns: 1fr; gap: 17px; }
  .celebration-store .featured-group { padding: 15px 12px; margin: 0; border-radius: 14px; }
  .celebration-store .featured-group::before { inset: 4px; border-radius: 10px; }
  .celebration-store .ticket-group-heading { margin-bottom: 15px; }
  .celebration-store .ticket-group-heading h3 { gap: 9px; font-size: 24px; }
  .celebration-store .featured-group .ticket-group-heading h3::before { font-size: 26px; }
  .celebration-store .inventory .actual-ticket { padding: 8px; }
  .celebration-store .inventory .ticket-photo-button { min-height: 145px; }
  .celebration-store .inventory .ticket-photo-button img { height: 170px; }
  .celebration-store .inventory .ticket-info { padding: 14px; }
  .celebration-store .ticket-info .meta { font-size: 16px; }
  .celebration-store .ticket-info .ticket-number { font-size: 38px; letter-spacing: 5px; }
  .celebration-store .price { font-size: 26px; }
  .celebration-store .add { min-height: 58px; font-size: 21px; }
  .celebration-store .customer-orders { width: calc(100% - 24px); padding: 22px 18px; margin-bottom: 20px; border-radius: 16px; }
  .celebration-store .customer-orders h2 { font-size: 26px; }
  .celebration-store .shop-details { width: calc(100% - 24px); margin: 0 auto 22px; border-radius: 12px; }
  .celebration-store dialog { padding: 21px 18px; border-radius: 16px; }
  .celebration-store .mobile-cart-bar { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .celebration-store .mobile-cart-bar .primary { min-height: 62px; }
}
@media (max-width: 374px) {
  .celebration-store .brand { font-size: 21px; gap: 8px; }
  .celebration-store .brand img { width: 42px; height: 42px; }
  .celebration-store .brand small { font-size: 9px; }
  .celebration-store .inventory { padding-inline: 11px; }
  .celebration-store .ticket-info .ticket-number { font-size: 34px; letter-spacing: 4px; }
  .celebration-store .search-controls .primary { min-width: 62px; }
}
@media (prefers-reduced-motion: reduce) {
  .celebration-store *, .celebration-store *::before, .celebration-store *::after { transition: none !important; animation: none !important; }
}
