@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700;900&family=Montserrat:wght@400;700;900&family=Great+Vibes&display=swap');

/* ===== CARD PRINCIPAL (stil poster) ===== */
.npgpt-card{
  background:#323436; color:#F5F1E8;
  padding:24px 28px; border-radius:16px;
  margin:24px 0; border:0;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}

/* rând: etichetă + conținut (grid) */
.npgpt-card .npgpt-row{
  display:grid;
  grid-template-columns:max-content 1fr;
  column-gap:12px;
  align-items:start;
  margin:10px 0;
}
.npgpt-card .npgpt-row strong{
  font-family:"Playfair Display", Georgia, serif;
  font-weight:700; letter-spacing:.02em;
}

/* conținut: justify + silabisire (pune lang="ro" pe .npgpt-card) */
.npgpt-card .npgpt-row span{
  display:block;
  font-family:"Playfair Display", Georgia, serif;
  font-size:16.5px; line-height:1.6;
  text-align:justify; text-justify:inter-word;
  hyphens:auto; -webkit-hyphens:auto; -ms-hyphens:auto;
}

/* ===== ATRIBUTE (ul cu rânduri compuse de JS) ===== */
#npgpt-attrs{
  list-style:none; margin:14px 0 0; padding:0;
  display:flex; flex-direction:column; gap:8px; align-items:center;
}
#npgpt-attrs .np-attr-row{
  font-family:"Montserrat", system-ui, sans-serif;
  font-weight:900; letter-spacing:.08em;
  text-transform:uppercase; text-align:center;
  font-size:clamp(0.9rem, 1.6vw, 1.15rem);
}


/* ===== ELEMENTE OPȚIONALE PENTRU VARIANTA „POSTER” ===== */
.np-poster{
  max-width:720px; margin:24px auto; padding:36px 32px 42px;
  background:#323436; color:#F5F1E8; border-radius:16px;
  box-shadow:0 12px 30px rgba(0,0,0,.18); line-height:1.6;
}
.np-script{
  font-family:"Great Vibes", cursive;
  text-align:center; margin-top:-6px; color:#F5F1E8;
  font-size:clamp(0.8em, 8vw, 1em);
}
.np-topdots, .np-dots{
  height:1px;
  background:radial-gradient(currentColor 1px, transparent 1px) repeat-x;
  background-size:10px 2px; opacity:.6; margin:8px 0 14px;
}
.np-name{
  font-family:"Montserrat", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size:clamp(1.3em, 8vw, 2em);
  text-align:center; letter-spacing:.12em; font-weight:900;
  margin:10px 0 8px; text-transform:uppercase;
}
.np-subtitle{
  font-family:"Playfair Display", Georgia, serif;
  font-weight:700; font-size:clamp(1em, 3.2vw, 1.1em);
  letter-spacing:.08em; text-align:center; text-transform:uppercase;
}
.np-sep{ height:1px; background:rgba(245,241,232,.25); margin:10px 0; }
.np-phon{
  font-family:"Playfair Display", Georgia, serif;
  text-align:center; font-size:16px; opacity:.9; margin:14px 0 10px;
}

/* paragrafe (dacă folosești varianta .np-text) */
.np-text{
  font-family:"Playfair Display", Georgia, serif;
  font-size:0.8em; text-align:justify; text-justify:inter-word;
  hyphens:auto; -webkit-hyphens:auto; -ms-hyphens:auto;
}
.np-text p{ margin:10px 0; }
.np-label{ font-weight:700; letter-spacing:.02em; }

/* sursă */
.np-source{ text-align:center; opacity:.6; margin-top:16px; font-size:13px; }
.np-hidden{display:none!important}
.np-gallery-poster {position:absolute;}
/* ===== LOADER OVERLAY ===== */
.np-poster { position: relative; }

.np-poster.np-loading::before{
  content:"";
  position:absolute; inset:0;
  background:rgba(50,52,54,.45);
  backdrop-filter:saturate(120%) blur(2px);
  border-radius:inherit; z-index:10;
}

.np-poster.np-loading::after{
  content:"";
  position:absolute; top:50%; left:50%;
  width:48px; height:48px; margin:-24px 0 0 -24px;
  border-radius:50%;
  border:3px solid rgba(245,241,232,.35);
  border-top-color:#F5F1E8;
  animation:np-spin .9s linear infinite;
  z-index:11;
}

@keyframes np-spin { to { transform: rotate(360deg); } }

.np-poster.np-loading{ cursor: progress; pointer-events:none; }

.np-loader-msg{
  position:absolute; left:50%; top:calc(50% + 40px);
  transform:translateX(-50%); z-index:11;
  font-family:"Montserrat", system-ui, sans-serif;
  font-size:14px; color:#F5F1E8; opacity:.95; text-align:center;
  white-space:nowrap;
}

.np-loader-bar{
  position:absolute; left:16px; right:16px; bottom:16px; height:3px;
  background:rgba(245,241,232,.25); border-radius:2px; overflow:hidden; z-index:11;
}
.np-loader-bar span{
  display:block; width:40%; height:100%; background:#F5F1E8;
  animation:np-bar 1.2s ease-in-out infinite;
}
@keyframes np-bar{
  0%   { transform:translateX(-100%); }
  50%  { transform:translateX(50%); }
  100% { transform:translateX(200%); }
}
