/* ── SHARED PANELS ─────────────────────────────────────────
   Lightbox, gift, zoom overlays
─────────────────────────────────────────────────────────── */
.panel {
  position: fixed; inset: 0;
  background: rgba(58,31,26,.6); backdrop-filter: blur(10px);
  z-index: 300; display: flex; align-items: center; justify-content: center;
  animation: fadeIn .35s ease;
}

.panel-inner {
  background: var(--cream);
  border: 1px solid rgba(232,169,154,.35); border-radius: 3px;
  padding: 2.8rem 2.4rem; width: min(480px, 92vw);
  position: relative; text-align: center;
  box-shadow: 0 32px 80px rgba(58,31,26,.18);
}

.panel-close {
  position: absolute; top: .9rem; right: 1.2rem;
  background: none; border: none; font-size: .95rem;
  color: var(--text-light); cursor: pointer;
  font-family: 'Jost', sans-serif; transition: color .2s;
}
.panel-close:hover { color: var(--text-dark); }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ── LIGHTBOX ─── */
#lightbox .panel-inner {
  background: transparent; border: none; box-shadow: none;
  padding: 0; width: auto; max-width: 95vw; max-height: 90svh;
}
#lightbox img {
  max-width: 90vw; max-height: 85svh;
  object-fit: contain; display: block;
  border: 6px solid #fff8f5; box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
#lightbox .panel-close {
  color: rgba(253,240,235,.8); top: -2.2rem; right: 0; font-size: 1.1rem;
}

/* ── GIFT ─── */
.gift-icon-big {
  font-size: 3rem; margin-bottom: 1.4rem; display: block;
  animation: giftBob 2.6s ease-in-out infinite;
}
@keyframes giftBob {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-7px); }
}
.gift-prompt {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 1.2rem; color: var(--text-mid);
  margin-bottom: 1.5rem; letter-spacing: .04em;
}
.gift-input {
  width: 100%; border: none;
  border-bottom: 1px solid rgba(232,169,154,.5);
  background: transparent; padding: .55rem 0;
  font-family: 'Jost', sans-serif; font-size: 1.05rem;
  color: var(--text-dark); text-align: center;
  letter-spacing: .3em; outline: none;
  transition: border-color .3s; margin-bottom: 1.5rem;
}
.gift-input:focus { border-color: var(--petal); }
.gift-submit {
  background: var(--text-dark); color: var(--cream); border: none;
  padding: .72rem 2.6rem; font-family: 'Jost', sans-serif;
  font-size: .7rem; letter-spacing: .3em; text-transform: uppercase;
  cursor: pointer; transition: background .3s;
}
.gift-submit:hover { background: var(--rose); color: #fff; }
.gift-error { font-size: .72rem; color: var(--rose); letter-spacing: .16em; margin-top: .85rem; }
.gift-reveal { animation: revealFade .8s ease forwards; }
@keyframes revealFade {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.gift-code-label {
  font-size: .6rem; letter-spacing: .42em; text-transform: uppercase;
  color: var(--petal); margin-bottom: .9rem;
}
.gift-code {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.2rem, 3.5vw, 1.8rem);
  color: var(--text-dark); letter-spacing: .25em;
  padding: .9rem 1.4rem;
  border: 1px solid rgba(232,169,154,.4);
  background: rgba(232,169,154,.08);
  margin-bottom: 1.8rem; word-break: break-all;
}
.gift-message {
  font-size: .82rem; font-weight: 300;
  color: var(--text-mid); line-height: 1.88; font-style: italic;
}

/* ── ADMIN SHARED ─── */
.admin-header {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 1rem; color: var(--text-mid); margin-bottom: 1rem;
}
.admin-input {
  width: 100%; border: none;
  border-bottom: 1px solid rgba(232,169,154,.5);
  background: transparent; padding: .55rem 0;
  font-family: 'Jost', sans-serif; font-size: .9rem;
  color: var(--text-dark); text-align: center;
  letter-spacing: .12em; outline: none;
  transition: border-color .3s; margin-bottom: 1.2rem;
}
.admin-input:focus { border-color: var(--petal); }
.admin-save {
  background: var(--text-dark); color: var(--cream); border: none;
  padding: .65rem 2.2rem; font-family: 'Jost', sans-serif;
  font-size: .7rem; letter-spacing: .3em; text-transform: uppercase;
  cursor: pointer; transition: background .3s;
}
.admin-save:hover { background: var(--rose); color: #fff; }
.admin-ok { font-size: .7rem; color: var(--gold); letter-spacing: .2em; margin-top: .7rem; }

/* ── ZOOM ─── */
.zoom-waiting {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: clamp(1.9rem, 4.5vw, 2.8rem);
  color: var(--text-dark); margin-bottom: 2.3rem; letter-spacing: .04em;
}
.zoom-btn {
  display: inline-block; background: var(--text-dark); color: var(--cream);
  text-decoration: none; padding: .85rem 3.6rem;
  font-family: 'Jost', sans-serif; font-size: .7rem;
  letter-spacing: .4em; text-transform: uppercase; transition: background .3s;
}
.zoom-btn:hover { background: var(--rose); color: #fff; }
.zoom-cog {
  position: absolute; bottom: .65rem; right: 1rem;
  font-size: .6rem; letter-spacing: .18em; color: rgba(160,96,96,.15);
  text-transform: uppercase; cursor: pointer;
  background: none; border: none;
  font-family: 'Jost', sans-serif; padding: 0; transition: color .25s;
}
.zoom-cog:hover { color: rgba(160,96,96,.5); }

@keyframes shake {
  0%   { transform: translateX(0); }
  20%  { transform: translateX(-8px); }
  40%  { transform: translateX(8px); }
  60%  { transform: translateX(-5px); }
  80%  { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
