/* ============================
   Gifts page — styles only
   ============================ */

:root{
  --brand:#7c0130;
  --gold:#E6C068;
  --ink:#3D2F24;
  --cream:#F2E9E0;
  --shadow:0 20px 60px rgba(61,47,36,.25);
  --radius:18px;
}

/* Fundo claro do miolo */
.section,.after-hero{ background:#F6EFE7; }

/* ===== Banner como a HOME ===== */
.hero{
  position:relative;
  isolation:isolate;
  overflow:visible;   /* garante que o subcopy fique visível para fora do banner */
  z-index:10;         /* sobe o banner acima da seção seguinte */
}

/* subcopy sempre por cima de tudo */
.hero .subcopy{ z-index:50; }

/* Imagem do Gifts (usa arquivo que existe) */
.gifts-hero-media{
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.30)),
    url("../img/hero.jpg") center/cover no-repeat !important;
  z-index:-2;
}

/* Espaço para o subcopy não encostar/cortar */
.after-hero{
 /*  padding-top:190px;   altura do subcopy + folga */
  position:relative;
  z-index:0;           /* fica por baixo do banner/subcopy */
}
@media (max-width:760px){
  .after-hero{ padding-top:140px; }
}

/* CTA dourado */
.book-btn{
  margin:14px 0 22px; display:inline-flex; align-items:center; justify-content:center;
  gap:10px; padding:12px 18px; border-radius:14px; border:1px solid transparent;
  background:var(--gold); color:var(--ink); font-weight:700;
  box-shadow:0 12px 35px rgba(230,192,104,.35); text-decoration:none;
}
.book-btn:hover{ filter:brightness(1.06); transform:translateY(-1px); transition:.2s; }

/* ====== Lanes / Items / Modals — iguais à Catering ====== */
.options-title{ margin-top:36px; color:#7c0130; text-align:center; }
#optionsGridTop, #optionsPairRows{ display:block !important; width:100%; margin-top:14px; }

.opt-lane{ width:100%; max-width:1180px; margin:0 auto 22px auto; padding:0; }
.opt-lane .lane-grid{ display:block; }
.opt-lane.lane-duo .lane-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }

.opt-lane-cat{
  background:rgba(61,47,36,.025);
  border:1px solid rgba(61,47,36,.08);
  border-radius:16px;
  padding:12px 14px 10px;
  box-shadow:0 10px 28px rgba(61,47,36,.06);
  min-width:0;
}
.opt-lane-cat.is-empty{ visibility:hidden; }

.opt-head{
  display:inline-block; margin:2px 0 8px; padding:6px 10px;
  background:#7c0130; color:#fff; border-radius:8px;
  font-size:12px; font-weight:800; letter-spacing:.02em;
}

.lane-items{
  list-style:none; padding:6px 2px 10px; margin:0;
  display:flex; flex-wrap:nowrap; gap:16px;
  align-items:flex-start; justify-content:flex-start;
  overflow-x:auto; overflow-y:hidden;
  overscroll-behavior-x:contain; scroll-snap-type:x proximity;
  -ms-overflow-style:none; scrollbar-width:none;
}
.lane-items::-webkit-scrollbar{ display:none; height:0; }

.opt-item{
  min-width:110px; max-width:110px;
  display:grid; justify-items:center; text-align:center; gap:6px; cursor:pointer;
  scroll-snap-align:start;
}
.opt-item img{
  width:84px; height:84px; object-fit:cover; border-radius:999px;
  box-shadow:0 8px 22px rgba(0,0,0,.15); transition:transform .15s ease;
}
.opt-item:hover img{ transform:translateY(-1px) scale(1.02); }
.opt-item span{
  font-size:10.5px; line-height:1.15; color:#7c0130; font-weight:800;
  text-transform:uppercase;
}

.btn-mini{
  display:inline-block; padding:6px 10px; background:var(--gold); color:F2E9E0;
  border:1px solid rgba(61,47,36,.15); border-radius:14px;
  font-weight:800; font-size:11px; box-shadow:0 8px 18px rgba(230,192,104,.22);
  cursor:pointer; transition:.15s ease;
}
.btn-mini:hover{ filter:brightness(1.06); transform:translateY(-1px); }

.cat-mobile-cta{
  display:none; margin-top:6px; padding:10px 12px; width:100%;
  background:#fff; color:#7c0130; border:1px solid rgba(124,1,48,.2);
  border-radius:10px; font-weight:800;
}

@media (max-width:1180px){
  .opt-item{ min-width:104px; max-width:104px; }
  .opt-item img{ width:80px; height:80px; }
}
@media (max-width:1024px){
  .opt-lane{ max-width:980px; }
  .opt-item{ min-width:100px; max-width:100px; }
  .opt-item img{ width:76px; height:76px; }
}
@media (max-width:860px){
  .opt-item{ min-width:96px; max-width:96px; }
  .opt-item img{ width:72px; height:72px; }
}

/* Mobile: categorias somente; itens via modal */
@media (max-width:740px){
  .opt-lane{ max-width:100%; }
  .opt-lane.lane-duo .lane-grid{ gap:14px; }
  .opt-lane-cat{ padding:12px 12px 12px; }
  .lane-items{ display:none; }
  .cat-mobile-cta{ display:block; }
}

/* ===== Modais ===== */
.menu-modal{ position: fixed; inset: 0; display: none; z-index: 10000; }
.menu-modal.open{ display:flex; align-items:center; justify-content:center; }
.mm-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); backdrop-filter: blur(2px); }
.mm-card{
  position: relative; z-index: 1; width: min(960px, calc(100% - 28px));
  max-height: min(88vh, 980px); overflow: hidden; background: #fff;
  border-radius: 16px; box-shadow: 0 26px 70px rgba(0,0,0,.35);
  display: grid; grid-template-rows: auto 1fr auto;
}
.mm-media{ width:100%; height:min(56vh, 560px); background:#000; }
.mm-media img{ width:100%; height:100%; object-fit:cover; }
.mm-body{ padding:18px; overflow:auto; }
.mm-body h3{ margin:0 0 8px; color:#7c0130; font-size:22px; font-weight:800; }
.mm-body p{ margin:0 0 16px; color:#3D2F24; }
#mmQuoteBtn{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 18px; border-radius:999px; border:1px solid transparent;
  background:var(--gold); color:var(--ink); font-weight:700;
  box-shadow:0 12px 30px rgba(230,192,104,.35);
}
.mm-close{
  position:absolute; top:8px; left:10px; background:#fff; color:#7c0130;
  border:0; width:32px; height:32px; border-radius:999px; font-size:20px; line-height:1; cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,.2);
}
body.modal-open{ overflow:hidden; }
@media (max-width:740px){ .mm-card{ width:calc(100% - 16px); } }

/* Modal de itens por categoria (mobile) */
.cat-modal{ position:fixed; inset:0; display:none; z-index:10001; }
.cat-modal.open{ display:flex; align-items:flex-end; justify-content:center; }
.cat-modal .backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.cat-modal .sheet{
  position:relative; z-index:1; width:100%; max-width:740px; max-height:86vh;
  background:#fff; border-radius:18px 18px 0 0; padding:14px; overflow:auto;
  box-shadow:0 -18px 50px rgba(0,0,0,.35);
}
.cat-modal .sheet h3{ margin:6px 0 12px; color:#7c0130; font-weight:800; text-align:center; }
.cat-grid{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;
}
.cat-grid .opt-item{ min-width:unset; max-width:unset; }
.cat-grid .opt-item img{ width:88px; height:88px; }
.cat-close{
  position:absolute; right:10px; top:10px; background:#fff; border:1px solid rgba(0,0,0,.08);
  width:34px; height:34px; border-radius:999px; color:#7c0130; font-size:20px;
}

/* SweetAlert acima de tudo */
.swal2-container{ z-index:2147483647 !important; }
.swal2-popup{
  border-radius:16px; border:1px solid rgba(124,1,48,.25);
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.swal2-confirm{
  background:#E6C068 !important; color:#3D2F24 !important;
  font-weight:800 !important; border-radius:999px !important;
}
.swal2-icon.swal2-warning{ border-color:#E6C068 !important; color:#E6C068 !important; }

/* === Gifts: alinhar altura dos títulos (sempre 3 linhas) === */
.opt-item{
  display: grid;               /* garante layout consistente: imagem / título / botão */
  justify-items: center;
  gap: 6px;
}

/* reserva altura fixa de 3 linhas para o rótulo sob a foto */
.opt-item span{
  --lh: 1.15;                  /* line-height usado no seu span */
  --lines: 3;                  /* quantas linhas quer reservar */
  display: -webkit-box;        /* habilita clamp com fallback */
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--lines);
  overflow: hidden;

  line-height: var(--lh);
  height: calc(1em * var(--lh) * var(--lines));
  min-height: calc(1em * var(--lh) * var(--lines)); /* força mesma altura */
  text-align: center;
}
