/* Kuvellega — folha de estilo partilhada
   Paleta e tipografia derivadas do logotipo original */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500&family=Jost:wght@300;400;500;600&family=Petit+Formal+Script&display=swap');

:root{
  --kv-cream:#FBF3F8;
  --kv-cream-2:#FFFFFF;
  --kv-blush:#EDD9E9;
  --kv-blush-2:#E4CBE1;
  --kv-mauve:#C98CAE;
  --kv-plum:#7A2C6B;
  --kv-plum-dark:#5C2050;
  --kv-deep:#3B1638;
  --kv-rose:#9C1F52;
  --kv-ink:#3A2438;
  --kv-gold:#C9A15A;
}

*{ scroll-behavior:smooth; }

body{
  font-family:'Jost', sans-serif;
  color:var(--kv-ink);
  background:var(--kv-cream);
}

.font-display{ font-family:'Cormorant Garamond', serif; }
.font-script{ font-family:'Petit Formal Script', cursive; }

.tracking-widest-plus{ letter-spacing:.28em; }

/* ---------- Arch motif (from the logo silhouette) ---------- */
.arch-top{
  border-radius:999px 999px 18px 18px / 260px 260px 18px 18px;
}
.arch-frame{
  border-radius:50% 50% 12px 12px / 60% 60% 12px 12px;
}
.arch-mask{
  clip-path: path('M0,60 C0,26 46,0 100,0 C154,0 200,26 200,60 L200,220 L0,220 Z');
}

/* Decorative wave divider between sections, echoes the belly curve */
.wave-divider{
  display:block;
  width:100%;
  height:64px;
}

/* ---------- Hero slider ---------- */
.hero-slide{
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1.6s ease-in-out;
}
.hero-slide.is-active{
  opacity:1;
  z-index:1;
}
.hero-slide img{
  animation:kenburns 12s ease-in-out forwards;
}
@keyframes kenburns{
  0%{ transform:scale(1.06) translate(0,0); }
  100%{ transform:scale(1.16) translate(-1.5%, -1%); }
}

.hero-dot{
  width:8px; height:8px; border-radius:999px;
  background:rgba(255,255,255,.45);
  transition:all .4s ease;
}
.hero-dot.is-active{
  width:26px;
  background:var(--kv-cream);
}

/* Fade up on scroll */
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .9s ease, transform .9s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Heart bullet used instead of generic dashes */
.heart-bullet{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.1rem;
  flex:none;
}

/* Nav link underline grow */
.nav-link{ position:relative; }
.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-6px;
  width:0; height:1px;
  background:currentColor;
  transition:width .35s ease;
}
.nav-link:hover::after{ width:100%; }

/* Card hover lift */
.kv-card{ transition:transform .45s ease, box-shadow .45s ease; }
.kv-card:hover{ transform:translateY(-6px); box-shadow:0 24px 40px -18px rgba(59,22,56,.28); }

/* Botões de reação (like, emoções) */
.reaction-btn{ transition:transform .25s ease, background-color .25s ease, border-color .25s ease; }
.reaction-btn.is-active{
  background:var(--kv-rose);
  border-color:var(--kv-rose);
  color:var(--kv-cream);
  transform:translateY(-2px);
}
.reaction-btn:active{ transform:scale(.94); }

/* Custom scrollbar for a boutique feel */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--kv-cream); }
::-webkit-scrollbar-thumb{ background:var(--kv-mauve); border-radius:999px; }

/* Focus visibility for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--kv-rose);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  .hero-slide img{ animation:none; }
  .reveal{ transition:none; opacity:1; transform:none; }
}

/* ==================================================================
   ÁREA DE ADMINISTRAÇÃO
   ================================================================== */
.admin-sidebar-link{
  display:flex; align-items:center; gap:.75rem;
  padding:.65rem .9rem; border-radius:.9rem;
  font-size:.875rem; color:rgba(251,243,248,.68);
  transition:background-color .25s ease, color .25s ease;
}
.admin-sidebar-link:hover{ background:rgba(255,255,255,.06); color:#FBF3F8; }
.admin-sidebar-link.is-active{ background:var(--kv-rose); color:#FBF3F8; }
.admin-sidebar-link svg{ flex:none; }

.admin-table{ width:100%; border-collapse:separate; border-spacing:0; }
.admin-table th{
  text-align:left; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(58,36,56,.45); font-weight:500; padding:.85rem 1.1rem; border-bottom:1px solid var(--kv-blush);
}
.admin-table td{
  padding:1rem 1.1rem; border-bottom:1px solid var(--kv-blush);
  font-size:.875rem; color:var(--kv-ink); vertical-align:middle;
}
.admin-table tr:last-child td{ border-bottom:none; }
.admin-table tbody tr{ transition:background-color .2s ease; }
.admin-table tbody tr:hover{ background:rgba(237,217,233,.35); }

.admin-badge{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.28rem .75rem; border-radius:999px; font-size:.72rem; font-weight:500;
}
.admin-badge-green{ background:#E3F3E7; color:#1F7A3D; }
.admin-badge-amber{ background:#FBEEDA; color:#9C6A11; }
.admin-badge-rose{ background:#F8E1EB; color:var(--kv-rose); }
.admin-badge-grey{ background:#EDEAEC; color:#6B5F68; }

.admin-icon-btn{
  height:2.1rem; width:2.1rem; border-radius:.7rem;
  display:inline-flex; align-items:center; justify-content:center;
  color:rgba(58,36,56,.55); transition:background-color .2s ease, color .2s ease;
}
.admin-icon-btn:hover{ background:var(--kv-blush); color:var(--kv-rose); }

.admin-stat-card{
  background:#fff; border:1px solid var(--kv-blush); border-radius:1.5rem; padding:1.6rem;
}

#adminSidebar{ transition:transform .35s ease; }
@media (max-width: 1023px){
  #adminSidebar{ transform:translateX(-100%); }
  #adminSidebar.is-open{ transform:translateX(0); }
}

