/* =========================================================
   A Tribute to Rabbi Mark Urkowitz — Gala Theme
   Elevated navy + gold visual system
   ========================================================= */

:root{
  --navy-deepest:#070f1f;
  --navy-deep:#0b1830;
  --navy:#122544;
  --navy-soft:#1a3459;
  --gold:#cda434;
  --gold-light:#eed99b;
  --gold-dim:#8a6d22;
  --cream:#faf6ec;
  --cream-dim:#f0e9d8;
  --ink:#1c1a15;
  --ink-soft:#4a4436;
  --line:rgba(205,164,52,0.25);

  --diamond:#8fd6ff;
  --ruby:#a31432;
  --platinum:#c9ccd1;
  --sapphire:#2149a6;
  --gold-tier:#cda434;
  --silver:#a9adb3;
  --bronze:#9a5a2b;
  --sponsor:#6d6458;
  --ticket:#7a5cc9;

  --radius-lg:22px;
  --radius-md:14px;
  --radius-sm:8px;
  --shadow-soft:0 20px 60px rgba(7,15,31,0.35);
  --shadow-card:0 10px 30px rgba(7,15,31,0.18);
}

*{box-sizing:border-box;}

body.gala-body{
  margin:0;
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.gala-body h1, .gala-body h2, .gala-body h3, .gala-body h4{
  font-family:'Playfair Display', Georgia, serif;
  letter-spacing:0.01em;
}

.gala-wrap{max-width:1180px; margin:0 auto; padding:0 24px;}

/* ---------- Star motif divider ---------- */
.gala-star{
  display:inline-block; width:18px; height:18px; margin:0 10px;
  background:conic-gradient(from 0deg, var(--gold), var(--gold-light), var(--gold));
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  vertical-align:middle;
}

.gala-divider{
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); margin:18px 0;
}
.gala-divider::before, .gala-divider::after{
  content:""; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  max-width:160px;
}

/* ---------- Top bar ---------- */
.gala-topbar{
  background:var(--navy-deepest);
  color:var(--gold-light);
  text-align:center;
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  padding:9px 12px;
}

.gala-nav{
  background:var(--navy-deep);
  padding:18px 0;
  text-align:center;
  border-bottom:1px solid var(--line);
}
.gala-nav img{max-height:150px; width:auto;}

/* ---------- Hero ---------- */
.gala-hero{
  position:relative;
  background:
    radial-gradient(ellipse at 20% 20%, rgba(205,164,52,0.18), transparent 55%),
    radial-gradient(ellipse at 80% 0%, rgba(205,164,52,0.12), transparent 50%),
    linear-gradient(180deg, var(--navy-deep) 0%, var(--navy-deepest) 100%);
  color:var(--cream);
  padding:88px 0 96px;
  text-align:center;
  overflow:hidden;
}
.gala-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(circle, rgba(233,207,128,0.55) 1px, transparent 1.4px);
  background-size: 46px 46px;
  opacity:0.28;
  pointer-events:none;
}
.gala-hero-inner{position:relative; z-index:2;}
.gala-eyebrow{
  text-transform:uppercase; letter-spacing:0.32em; font-size:13px;
  color:var(--gold-light); margin-bottom:18px; font-weight:600;
}
.gala-hero h1{
  font-size:clamp(34px, 6vw, 64px);
  margin:0 0 10px;
  line-height:1.08;
  color:#fff;
}
.gala-hero h1 span{color:var(--gold-light); font-style:italic;}
.gala-hero-sub{
  font-size:clamp(16px, 2.4vw, 20px);
  color:var(--cream-dim);
  max-width:760px;
  margin:18px auto 8px;
  line-height:1.7;
}
.gala-entertainment{
  margin-top:10px;
  font-size:16px;
  color:var(--gold-light);
  font-style:italic;
}
.gala-hero-meta{
  display:flex; flex-wrap:wrap; gap:14px; justify-content:center;
  margin-top:34px;
}
.gala-pill{
  background:rgba(255,255,255,0.06);
  border:1px solid var(--line);
  color:var(--cream);
  padding:10px 20px;
  border-radius:999px;
  font-size:14px;
  letter-spacing:0.03em;
  backdrop-filter:blur(6px);
}
.gala-pill strong{color:var(--gold-light);}

.gala-countdown{
  margin-top:38px;
  display:flex; gap:16px; justify-content:center; flex-wrap:wrap;
}
.gala-countdown .cd-box{
  background:rgba(255,255,255,0.05);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:16px 20px;
  min-width:86px;
}
.cd-box .cd-num{
  font-family:'Playfair Display', serif;
  font-size:32px; color:var(--gold-light); font-weight:700; line-height:1;
}
.cd-box .cd-label{
  font-size:11px; text-transform:uppercase; letter-spacing:0.14em;
  color:var(--cream-dim); margin-top:6px;
}

.gala-cta-row{margin-top:40px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.gala-btn{
  display:inline-block;
  padding:15px 34px;
  border-radius:999px;
  font-weight:600;
  letter-spacing:0.02em;
  text-decoration:none;
  cursor:pointer;
  border:2px solid transparent;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color .25s ease;
  font-size:15px;
}
.gala-btn-primary{
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 60%, var(--gold-dim));
  color:var(--navy-deepest);
  box-shadow:0 12px 30px rgba(205,164,52,0.35);
}
.gala-btn-primary:hover{transform:translateY(-3px); box-shadow:0 18px 40px rgba(205,164,52,0.45); color:var(--navy-deepest);}
.gala-btn-ghost{
  background:transparent;
  color:var(--cream);
  border-color:rgba(250,246,236,0.5);
}
.gala-btn-ghost:hover{background:rgba(255,255,255,0.08); color:#fff; transform:translateY(-3px);}

/* ---------- Section shells ---------- */
.gala-section{padding:80px 0;}
.gala-section-dark{
  background:var(--navy);
  color:var(--cream);
}
.gala-section-cream{background:var(--cream);}
.gala-section-title{
  text-align:center;
  font-size:clamp(28px, 4vw, 42px);
  margin:0 0 6px;
  color:inherit;
}
.gala-section-lede{
  text-align:center;
  max-width:720px;
  margin:0 auto 46px;
  color:var(--ink-soft);
  font-size:17px;
  line-height:1.7;
}
.gala-section-dark .gala-section-lede{color:var(--cream-dim);}

/* ---------- Honoree card ---------- */
.honoree-card{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:40px;
  align-items:center;
  background:linear-gradient(145deg, #ffffff, var(--cream-dim));
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:40px;
  box-shadow:var(--shadow-card);
}
.honoree-photo{
  width:220px; height:220px; border-radius:50%;
  background:linear-gradient(135deg, var(--navy), var(--navy-soft));
  border:5px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-light);
  font-family:'Playfair Display', serif;
  font-size:56px;
  box-shadow:0 14px 30px rgba(18,37,68,0.25);
  flex-shrink:0;
}
.honoree-text h3{margin:0 0 12px; font-size:26px; color:var(--navy);}
.honoree-text p{line-height:1.8; font-size:16.5px; color:var(--ink-soft); margin:0 0 10px;}
.honoree-text .honoree-quote{font-style:italic; color:var(--gold-dim); font-weight:600;}

@media (max-width:720px){
  .honoree-card{grid-template-columns:1fr; text-align:center; padding:30px;}
  .honoree-photo{margin:0 auto;}
}

/* ---------- Sponsorship tiers ---------- */
.tier-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
  gap:22px;
}
.tier-card{
  position:relative;
  background:#fff;
  border-radius:var(--radius-lg);
  padding:30px 26px 26px;
  border:1px solid rgba(0,0,0,0.06);
  box-shadow:var(--shadow-card);
  transition:transform 0.25s ease, box-shadow 0.25s ease, border-color .25s ease;
  cursor:pointer;
  display:flex; flex-direction:column;
}
.tier-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(7,15,31,0.2);}
.tier-card.is-selected{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(205,164,52,0.3), var(--shadow-card);
}
.tier-gem{
  width:44px; height:44px; border-radius:50%;
  margin-bottom:16px;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,0.5), 0 6px 14px rgba(0,0,0,0.18);
}
.tier-name{font-size:21px; margin:0 0 4px; color:var(--navy);}
.tier-price{
  font-family:'Playfair Display', serif;
  font-size:30px; font-weight:700; color:var(--ink); margin-bottom:14px;
}
.tier-benefit{
  font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin:0 0 18px; flex-grow:1;
}
.tier-select-btn{
  margin-top:auto;
  background:var(--navy);
  color:#fff;
  border:none;
  padding:11px 18px;
  border-radius:999px;
  font-weight:600;
  font-size:14px;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.tier-select-btn:hover{background:var(--navy-deepest); transform:translateY(-2px);}
.tier-card.is-selected .tier-select-btn{background:var(--gold); color:var(--navy-deepest);}

.tier-diamond .tier-gem{background:var(--diamond);}
.tier-ruby .tier-gem{background:var(--ruby);}
.tier-platinum .tier-gem{background:var(--platinum);}
.tier-sapphire .tier-gem{background:var(--sapphire);}
.tier-gold .tier-gem{background:var(--gold-tier);}
.tier-silver .tier-gem{background:var(--silver);}
.tier-bronze .tier-gem{background:var(--bronze);}
.tier-sponsor .tier-gem{background:var(--sponsor);}
.tier-ticket .tier-gem{background:var(--ticket);}

.tier-ticket-qty{
  display:flex; align-items:center; gap:8px; margin-bottom:14px;
}
.tier-ticket-qty label{font-size:13px; color:var(--ink-soft);}
.tier-ticket-qty input{
  width:64px; padding:8px 10px; border-radius:8px; border:1px solid #ccc; font-size:14px;
}

/* ---------- Sticky order summary ---------- */
.gala-order-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:500;
  background:var(--navy-deepest);
  color:#fff;
  padding:14px 0;
  transform:translateY(120%);
  transition:transform .35s ease;
  box-shadow:0 -10px 30px rgba(0,0,0,0.3);
}
.gala-order-bar.is-visible{transform:translateY(0);}
.gala-order-bar-inner{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.gala-order-bar .oi-label{font-size:13px; color:var(--cream-dim); text-transform:uppercase; letter-spacing:0.1em;}
.gala-order-bar .oi-value{font-family:'Playfair Display', serif; font-size:22px; color:var(--gold-light);}

/* ---------- Dedication / checkout modal ---------- */
.gala-modal-overlay{
  position:fixed; inset:0; background:rgba(7,15,31,0.72);
  display:none; align-items:flex-start; justify-content:center;
  z-index:1000; padding:40px 16px; overflow-y:auto;
  backdrop-filter:blur(3px);
}
.gala-modal-overlay.is-open{display:flex;}
.gala-modal{
  background:#fff; border-radius:var(--radius-lg);
  max-width:680px; width:100%;
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  animation:galaModalIn .3s ease;
}
@keyframes galaModalIn{from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:translateY(0);}}
.gala-modal-head{
  background:linear-gradient(135deg, var(--navy), var(--navy-soft));
  color:#fff; padding:24px 30px; position:relative;
}
.gala-modal-head h3{margin:0; font-size:24px;}
.gala-modal-head .modal-tier-price{color:var(--gold-light); font-size:15px; margin-top:4px;}
.gala-modal-close{
  position:absolute; top:16px; right:18px;
  background:rgba(255,255,255,0.12); border:none; color:#fff;
  width:32px; height:32px; border-radius:50%; font-size:18px; cursor:pointer;
  line-height:1;
}
.gala-modal-close:hover{background:rgba(255,255,255,0.25);}
.gala-modal-body{padding:28px 30px 34px; max-height:70vh; overflow-y:auto;}

.gala-fieldset{border:none; padding:0; margin:0 0 26px;}
.gala-fieldset legend{
  font-family:'Playfair Display', serif; font-size:16px; color:var(--navy);
  padding:0 0 10px; width:100%; border-bottom:1px solid var(--line); margin-bottom:16px;
}
.gala-field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
.gala-field{margin-bottom:14px;}
.gala-field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.05em;}
.gala-field input[type=text], .gala-field input[type=email], .gala-field input[type=tel], .gala-field textarea, .gala-field select{
  width:100%; padding:11px 13px; border:1px solid #d8d3c4; border-radius:10px;
  font-size:14px; font-family:'Inter', sans-serif; color:var(--ink);
  background:#fdfcf8;
}
.gala-field textarea{min-height:96px; resize:vertical;}
.gala-field input:focus, .gala-field textarea:focus, .gala-field select:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(205,164,52,0.18);
}

.gala-radio-row{display:flex; gap:14px; flex-wrap:wrap;}
.gala-radio-card{
  flex:1; min-width:160px;
  border:1.5px solid #ddd6c2; border-radius:12px; padding:14px 16px;
  cursor:pointer; font-size:13.5px; display:flex; align-items:center; gap:10px;
  transition:border-color .2s ease, background .2s ease;
}
.gala-radio-card input{margin:0;}
.gala-radio-card.is-active{border-color:var(--gold); background:#fbf6e6;}

.gala-upload{
  border:2px dashed #d8d3c4; border-radius:14px; padding:20px; text-align:center;
  cursor:pointer; position:relative; transition:border-color .2s ease, background .2s ease;
}
.gala-upload:hover{border-color:var(--gold); background:#fbf8ef;}
.gala-upload input[type=file]{position:absolute; inset:0; opacity:0; cursor:pointer;}
.gala-upload-preview{max-width:140px; max-height:140px; border-radius:10px; margin:0 auto 10px; display:none; object-fit:cover;}
.gala-upload-hint{font-size:12px; color:var(--ink-soft);}
.gala-upload-error{color:#b3261e; font-size:12.5px; margin-top:6px; display:none;}

.gala-toggle-row{display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; font-size:13.5px; color:var(--ink-soft);}
.gala-toggle-row input{margin-top:3px;}

.gala-privacy-row{display:flex; gap:14px; margin-bottom:8px;}

.gala-total-line{
  display:flex; justify-content:space-between; align-items:center;
  background:var(--cream-dim); border-radius:12px; padding:16px 20px; margin-bottom:20px;
}
.gala-total-line .tl-label{font-size:14px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.08em;}
.gala-total-line .tl-value{font-family:'Playfair Display', serif; font-size:26px; color:var(--navy); font-weight:700;}

.gala-card-fields{display:none;}
.gala-card-fields.is-active{display:block;}
.gala-check-note{
  display:none; background:#fff8e6; border:1px solid var(--gold-light); border-radius:12px;
  padding:16px 18px; font-size:13.5px; color:var(--ink-soft); line-height:1.6;
}
.gala-check-note.is-active{display:block;}

.hideiframe{border:0; width:100%; height:44px;}

.gala-submit-btn{
  width:100%; padding:16px; border:none; border-radius:999px;
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 60%, var(--gold-dim));
  color:var(--navy-deepest); font-weight:700; font-size:15.5px; cursor:pointer;
  box-shadow:0 12px 26px rgba(205,164,52,0.35);
  transition:transform .2s ease;
}
.gala-submit-btn:hover{transform:translateY(-2px);}
.gala-submit-btn:disabled{opacity:0.6; cursor:not-allowed; transform:none;}

#transaction-status{text-align:center; font-size:13.5px; color:var(--navy); min-height:18px;}

/* ---------- Dedications wall ---------- */
.wall-filters{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:36px;}
.wall-filter-btn{
  border:1.5px solid var(--line); background:transparent; color:var(--cream);
  padding:9px 18px; border-radius:999px; font-size:13px; cursor:pointer; letter-spacing:0.03em;
  transition:all .2s ease;
}
.wall-filter-btn.is-active, .wall-filter-btn:hover{background:var(--gold); color:var(--navy-deepest); border-color:var(--gold);}

.wall-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:20px;
}
.wall-card{
  background:rgba(255,255,255,0.04);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:22px;
  display:flex; gap:14px;
  animation:wallCardIn .4s ease both;
}
@keyframes wallCardIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
.wall-avatar{
  width:56px; height:56px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display', serif; font-weight:700; font-size:20px;
  color:var(--navy-deepest);
  background:var(--gold-light);
  object-fit:cover;
  overflow:hidden;
}
.wall-avatar img{width:100%; height:100%; object-fit:cover; border-radius:50%;}
.wall-body{flex:1; min-width:0;}
.wall-name{font-weight:700; color:#fff; font-size:15.5px; margin-bottom:2px;}
.wall-tier-badge{
  display:inline-block; font-size:10.5px; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--gold-light); margin-bottom:8px;
}
.wall-message{font-size:13.5px; color:var(--cream-dim); line-height:1.6; font-style:italic;}
.wall-empty{text-align:center; color:var(--cream-dim); padding:40px 0; font-size:14px; grid-column:1/-1;}

/* ---------- Comedian / entertainment card ---------- */
.entertainment-card{
  display:flex; align-items:center; gap:26px;
  background:linear-gradient(145deg, var(--navy), var(--navy-soft));
  color:#fff; border-radius:var(--radius-lg); padding:34px; box-shadow:var(--shadow-card);
}
.entertainment-icon{
  width:88px; height:88px; border-radius:50%; flex-shrink:0;
  background:radial-gradient(circle, var(--gold-light), var(--gold));
  display:flex; align-items:center; justify-content:center; font-size:38px;
}
.entertainment-card h4{margin:0 0 6px; font-size:22px; color:var(--gold-light);}
.entertainment-card p{margin:0; color:var(--cream-dim); line-height:1.7;}

/* ---------- FAQ ---------- */
.gala-faq{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line); padding:18px 0;}
.faq-q{
  display:flex; justify-content:space-between; align-items:center; cursor:pointer;
  font-weight:600; font-size:16px; color:var(--navy);
}
.faq-q::after{content:"+"; font-size:22px; color:var(--gold-dim); transition:transform .2s ease;}
.faq-item.is-open .faq-q::after{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease; font-size:14.5px; color:var(--ink-soft); line-height:1.7;}
.faq-item.is-open .faq-a{max-height:400px; padding-top:12px;}

/* ---------- Footer ---------- */
.gala-footer{background:var(--navy-deepest); color:var(--cream-dim); padding:36px 0; text-align:center; font-size:13px;}
.gala-footer a{color:var(--gold-light);}

/* ---------- Toast ---------- */
.gala-toast{
  position:fixed; top:20px; right:20px; z-index:2000;
  background:var(--navy-deepest); color:#fff; padding:14px 20px; border-radius:12px;
  box-shadow:var(--shadow-card); font-size:13.5px; max-width:320px;
  transform:translateX(140%); transition:transform .35s ease;
  border-left:4px solid var(--gold);
}
.gala-toast.is-visible{transform:translateX(0);}

@media (max-width:600px){
  .gala-field-row{grid-template-columns:1fr;}
  .honoree-card{padding:24px;}
  .entertainment-card{flex-direction:column; text-align:center;}
}
