.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.6rem;
  padding:1rem 2.1rem;
  border:1px solid transparent;
  border-radius:999px;
  font-size:.76rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
  cursor:pointer; white-space:nowrap;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease,
             background-color .3s ease, color .3s ease, border-color .3s ease;
}

.btn svg{ width:17px; height:17px; flex:none; }

.btn--primary{
  background:linear-gradient(135deg, var(--bordeaux), var(--bordeaux-2));
  color:#fff;
  box-shadow:0 14px 30px -16px rgba(92,27,46,.85);
}

.btn--primary:hover{ transform:translateY(-3px); box-shadow:0 22px 40px -18px rgba(92,27,46,.9); }

.btn--gold{
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:var(--bordeaux-deep);
  box-shadow:0 14px 30px -16px rgba(192,160,98,.9);
}

.btn--gold:hover{ transform:translateY(-3px); box-shadow:0 22px 40px -18px rgba(192,160,98,.95); }

.btn--ghost{
  border-color:rgba(255,255,255,.55);
  color:#fff;
  backdrop-filter:blur(4px);
  background:rgba(255,255,255,.06);
}

.btn--ghost:hover{ background:rgba(255,255,255,.16); border-color:#fff; transform:translateY(-3px); }

.btn--outline{ border-color:var(--bordeaux); color:var(--bordeaux); }

.btn--outline:hover{ background:var(--bordeaux); color:#fff; transform:translateY(-3px); }

.btn--wa{ background:var(--wa); color:#fff; box-shadow:0 14px 30px -16px rgba(37,211,102,.9); }

.btn--wa:hover{ transform:translateY(-3px); background:#1FBE5B; }

.btn--sm{ padding:.7rem 1.4rem; font-size:.68rem; }

.g-badge{
  display:inline-flex; align-items:center; gap:.85rem;
  padding:.7rem 1.35rem; border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(8px);
  font-size:.8rem; letter-spacing:.04em;
}

.g-badge .g-score{
  font-family:var(--ff-display); font-size:1.5rem; font-weight:600;
  color:var(--gold-2); line-height:1;
}

.g-badge .stars{ display:flex; gap:2px; color:var(--star-bright); }

.g-badge .stars svg{ width:14px; height:14px; }

.g-badge small{ display:block; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; opacity:.85; }

.features{ display:grid; gap:1.6rem; margin-top:2.4rem; }

.feature{ display:flex; gap:1.1rem; align-items:flex-start; }

.feature-icon{
  flex:none; width:52px; height:52px;
  display:grid; place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg, rgba(192,160,98,.2), rgba(92,27,46,.1));
  border:1px solid rgba(192,160,98,.5);
  color:var(--bordeaux);
}

.feature-icon svg{ width:22px; height:22px; }

.feature h3{ font-size:1.15rem; margin-bottom:.25rem; }

.feature p{ margin:0; color:var(--muted); font-size:.94rem; line-height:1.7; }

.service-card{
  background:var(--white);
  border:1px solid rgba(192,160,98,.28);
  overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:var(--sh-sm);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}

.service-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--sh-lg);
  border-color:var(--gold);
}

.service-body{ padding:1.9rem 1.7rem 2.1rem; text-align:center; }

.service-body h3{ margin-bottom:.6rem; }

.service-body h3 + .ornament{ margin-bottom:1rem; }

.service-body p{ color:var(--muted); font-size:.95rem; margin:0; }

.service-body .btn{ margin-top:1.5rem; }

.stat{
  padding:1.6rem .8rem;
  border:1px solid rgba(192,160,98,.28);
  background:rgba(255,255,255,.03);
  transition:border-color .4s ease, transform .4s cubic-bezier(.2,.7,.2,1);
}

.stat:hover{ border-color:var(--gold); transform:translateY(-6px); }

.stat-num{
  display:block;
  font-family:var(--ff-display);
  font-size:clamp(2.6rem, 5.2vw, 4rem);
  font-weight:600; line-height:1;
  color:var(--gold-2);
}

.stat-label{
  display:block; margin-top:.7rem;
  font-size:.74rem; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.78);
}

.gallery-item{
  aspect-ratio:1/1;
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;
}

.gallery-item:hover{ transform:scale(1.02); box-shadow:var(--sh-md); z-index:2; }

.gallery-zoom{
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%) scale(.8);
  width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(251,248,243,.92); color:var(--bordeaux);
  opacity:0; transition:opacity .4s ease, transform .4s ease;
  pointer-events:none; z-index:3;
}

.gallery-zoom svg{ width:20px; height:20px; }

.lightbox{
  position:fixed; inset:0; z-index:var(--z-lightbox);
  display:flex; align-items:center; justify-content:center;
  padding:clamp(1rem, 4vw, 3rem);
  background:rgba(46,13,24,.94);
  backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}

.lightbox.is-open{ opacity:1; visibility:visible; }

.lightbox-figure{
  margin:0; width:min(100%, 900px);
  transform:scale(.96); transition:transform .35s cubic-bezier(.2,.7,.2,1);
}

.lightbox.is-open .lightbox-figure{ transform:scale(1); }

.lightbox-figure figcaption{
  margin-top:1rem; text-align:center;
  color:var(--gold-2); font-size:.78rem;
  letter-spacing:.2em; text-transform:uppercase;
}

.lightbox-btn{
  position:absolute;
  z-index:3;
  width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(255,255,255,.1); color:#fff;
  border:1px solid rgba(255,255,255,.25);
  transition:background-color .3s ease, transform .3s ease;
}

.lightbox-btn:hover{ background:var(--gold); color:var(--bordeaux-deep); transform:scale(1.06); }

.lightbox-btn[hidden]{ display:none; }

.lightbox-btn svg{ width:20px; height:20px; }

.lightbox-close{ top:22px; right:22px; }

.lightbox-prev{ left:22px; top:50%; transform:translateY(-50%); }

.lightbox-next{ right:22px; top:50%; transform:translateY(-50%); }

.lightbox-prev:hover{ transform:translateY(-50%) scale(1.06); }

.lightbox-next:hover{ transform:translateY(-50%) scale(1.06); }

.lightbox-counter{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.7); font-size:.75rem; letter-spacing:.22em;
}

.review-card{
  position:relative;
  background:var(--white);
  border:1px solid rgba(192,160,98,.3);
  padding:2.4rem 1.9rem 2rem;
  display:flex; flex-direction:column; gap:1rem;
  box-shadow:var(--sh-sm);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}

.review-card:hover{ transform:translateY(-8px); box-shadow:var(--sh-md); }

.review-card::before{
  content:"\201C";
  position:absolute; top:-.35em; right:.4em;
  font-family:var(--ff-display); font-size:6rem;
  color:rgba(192,160,98,.22); line-height:1; pointer-events:none;
}

.review-stars{ display:flex; gap:3px; color:var(--star); }

.review-stars svg{ width:17px; height:17px; }

.review-card blockquote{
  margin:0; font-family:var(--ff-display);
  font-size:1.12rem; font-style:italic; line-height:1.65;
  color:var(--ink);
}

.review-author{
  display:flex; align-items:center; gap:.9rem;
  margin-top:auto; padding-top:1rem;
  border-top:1px solid rgba(192,160,98,.28);
}

.review-avatar{
  width:44px; height:44px; border-radius:50%; flex:none;
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--bordeaux), var(--bordeaux-2));
  color:var(--gold-2);
  font-family:var(--ff-display); font-size:1.15rem; font-weight:600;
}

.review-author strong{ display:block; font-weight:500; font-size:.95rem; }

.review-author span{ display:block; font-size:.8rem; color:var(--muted); }

.insta-item{
  display:block; aspect-ratio:1/1; overflow:hidden;
  border:1px solid rgba(192,160,98,.35);
}

.contact-card{
  background:var(--white);
  min-width:0;
  border:1px solid rgba(192,160,98,.32);
  padding:clamp(1.9rem, 4vw, 2.8rem);
  box-shadow:var(--sh-sm);
}

.contact-list{ display:grid; gap:1.6rem; margin:0 0 2rem; }

.contact-item{ display:flex; gap:1.05rem; align-items:flex-start; }

.contact-icon{
  width:44px; height:44px; flex:none; border-radius:50%;
  display:grid; place-items:center;
  background:var(--cream-2);
  border:1px solid rgba(192,160,98,.45);
  color:var(--bordeaux);
}

.contact-icon svg{ width:19px; height:19px; }

.contact-item h3{
  font-family:var(--ff-body); font-size:.78rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold-ink); margin-bottom:.3rem;
}

.contact-item p, .contact-item a{ margin:0; color:var(--ink); font-size:1rem; line-height:1.7; }

.contact-item a:hover{ color:var(--bordeaux); text-decoration:underline; text-underline-offset:4px; }

.contact-actions{ display:flex; flex-wrap:wrap; gap:.9rem; }

.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:var(--z-wa);
  width:60px; height:60px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--wa); color:#fff;
  box-shadow:0 14px 32px -10px rgba(37,211,102,.75);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}

.wa-float svg{ width:32px; height:32px; position:relative; z-index:2; }

.wa-float:hover{ transform:scale(1.08); box-shadow:0 18px 40px -10px rgba(37,211,102,.9); }

.wa-float::before{
  content:"";
  position:absolute; inset:0; border-radius:50%;
  background:var(--wa); opacity:.55;
  animation:wa-pulse 2.6s cubic-bezier(.4,0,.6,1) infinite;
  z-index:1;
}

@keyframes wa-pulse{
  0%   { transform:scale(1);   opacity:.5; }
  70%  { transform:scale(1.7); opacity:0;  }
  100% { transform:scale(1.7); opacity:0;  }
}

.wa-float .wa-tip{
  position:absolute; right:calc(100% + 14px); top:50%;
  transform:translateY(-50%) translateX(8px);
  white-space:nowrap;
  background:var(--white); color:var(--ink);
  padding:.6rem 1rem; border-radius:999px;
  font-size:.76rem; letter-spacing:.08em;
  box-shadow:var(--sh-md);
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, transform .3s ease, visibility .3s ease;
}

.wa-float:hover .wa-tip{ opacity:1; visibility:visible; transform:translateY(-50%) translateX(0); }

.to-top{
  position:fixed; right:28px; bottom:96px; z-index:var(--z-to-top);
  width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--bordeaux); color:var(--gold-2);
  box-shadow:var(--sh-md);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s ease, visibility .3s ease, transform .3s ease, background-color .3s ease;
}

.to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }

.to-top:hover{ background:var(--bordeaux-2); }

.to-top svg{ width:17px; height:17px; }

.service-media{ display:block; overflow:hidden; }

.service-card img{
  height:auto; aspect-ratio:4/3;
  border-bottom:1px solid rgba(192,160,98,.28);
}

.service-card .service-media--portrait img{ object-position:center 85%; }

.zoomable{
  position:relative;
  display:block; width:100%;
  padding:0; border:0; background:none;
  cursor:zoom-in; overflow:hidden;
  color:inherit; font:inherit; text-align:inherit;
}

.zoomable::after{
  content:"";
  position:absolute; inset:0;
  background:rgba(46,13,24,.42);
  opacity:0; transition:opacity .4s ease;
  pointer-events:none;
}

.zoomable:hover::after,
.zoomable:focus-visible::after{ opacity:1; }

.zoomable:hover .gallery-zoom,
.zoomable:focus-visible .gallery-zoom{ opacity:1; transform:translate(-50%,-50%) scale(1); }

.katalog-media{ box-shadow:var(--sh-lg); }

.katalog-media img{ height:auto; object-fit:contain; }

.katalog-body h3{
  font-size:clamp(1.55rem, 3vw, 2.15rem);
  margin-bottom:.9rem;
}

.katalog-body p{ color:var(--muted); margin:0; }

.katalog-body p + p{ margin-top:.9rem; }

.katalog-actions{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.9rem; }

.package-card{
  position:relative;
  display:flex; flex-direction:column;
  background:var(--white);
  border:1px solid rgba(192,160,98,.28);
  box-shadow:var(--sh-sm);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}

.package-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--sh-lg);
  border-color:var(--gold);
}

.package-media img{ height:auto; aspect-ratio:2/3; }

.package-badge{
  position:absolute; z-index:3;
  top:16px; right:-5px;
  padding:.42rem .8rem;
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:var(--bordeaux-deep);
  font-size:.6rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase;
  box-shadow:0 10px 22px -12px rgba(43,34,38,.85);
}

.package-badge::after{
  content:"";
  position:absolute; right:0; bottom:-5px;
  border:2.5px solid transparent;
  border-top-color:rgba(92,27,46,.55);
  border-right-color:rgba(92,27,46,.55);
}

.package-body{
  display:flex; flex-direction:column; flex:1;
  padding:1.7rem 1.4rem 1.9rem;
  text-align:center;
}

.package-body h3{ font-size:1.2rem; margin-bottom:.5rem; }

.package-body h3 + .ornament{ margin-bottom:.95rem; }

.package-body > p{ color:var(--muted); font-size:.92rem; margin:0; line-height:1.75; }

.package-list{
  list-style:none; margin:1.15rem 0 1.6rem; padding:0;
  display:flex; flex-wrap:wrap; gap:.4rem; justify-content:center;
}

.package-list li{
  padding:.34rem .66rem;
  font-size:.63rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--bordeaux);
  background:rgba(192,160,98,.08);
  border:1px solid rgba(192,160,98,.45);
}

.package-body .btn{ margin-top:auto; align-self:center; }

.katalog-list{ justify-content:flex-start; margin:1.2rem 0 0; }

.tag-item{
  border:1px solid rgba(192,160,98,.35);
  background:var(--white);
  box-shadow:var(--sh-sm);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}

.tag-item:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); }

.tag-item img{ height:auto; aspect-ratio:4/5; }

.tag-caption{
  display:block; padding:.95rem 1rem;
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--bordeaux); text-align:center;
}

.ikram-item{
  background:var(--white);
  border:1px solid rgba(192,160,98,.3);
  box-shadow:var(--sh-sm);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}

.ikram-item:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); border-color:var(--gold); }

.ikram-item img{ height:auto; aspect-ratio:1/1; }

.ikram-caption{
  display:block; padding:.95rem .8rem;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--bordeaux); text-align:center;
}

#lbStage img{
  display:block;
  width:auto; max-width:100%; max-height:74vh;
  margin-inline:auto;
  object-fit:contain;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.85);
}
