/* Font & background */
body { font-family: 'Inter', sans-serif; background-color: #f8fafc; }
.font-oswald { font-family: 'Oswald', sans-serif; }

/* Motto */
.motto-tight {
  letter-spacing: clamp(0.12em, 0.6vw, 0.55em);
  white-space: nowrap;
  font-weight: 1000;
  color: rgba(55, 65, 81, 0.9);
}
@media (min-width: 1024px) { .motto-tight { font-size: 0.8rem; } }

/* Details arrow off + desktop lock */
details > summary::-webkit-details-marker { display: none; }
details > summary { list-style: none; }
@media (min-width: 768px) {
  details.no-toggle > summary { pointer-events: none; cursor: default; }
}

/* A11y focus for summary */
details > summary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59,130,246,.35);
  border-radius: .75rem;
}

/* Fade-in sections */
.fade-in-section { opacity: 0; transform: translateY(20px); transition: opacity .6s ease-out, transform .6s ease-out; }
.fade-in-section.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .fade-in-section { transition: none; transform: none; }
}

/* Partner logos – grayscale default, color on hover/touch */
.partner-logo { transition: filter 1s ease-in-out; filter: grayscale(1); cursor: pointer; }
.partner-logo:hover { filter: grayscale(0); }

/* Icon buttons (fără @apply – compatibil CDN) */
.icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; /* size-10 */
  border-radius: .75rem; /* rounded-xl */
  color: #9ca3af; /* text-gray-400 */
  box-shadow: 0 0 0 1px rgba(55,65,81,.4); /* ring-1 ring-gray-700/40 */
  transition: background-color .7s ease-in-out, color 1s ease-in-out;
}
@media (min-width: 768px) { .icon-btn { width: 2.75rem; height: 2.75rem; } } /* md:size-11 */
.icon-btn:hover { background-color: rgba(255,255,255,.05); }

/* Print A4 */
@media print {
  header, footer, script { display: none !important; }
  body { font-family: 'Times New Roman', serif; font-size: 12pt; background: #fff; color: #000; }
  main { padding: 1.5cm !important; box-shadow: none !important; }
  .fade-in-section { opacity: 1 !important; transform: none !important; }
  section, .grid > div { break-inside: avoid; }
  img { filter: none !important; -webkit-filter: grayscale(0) !important; }
  h1, h2, h3, h4 { color: #000 !important; page-break-after: avoid; }
  a { color: #000 !important; text-decoration: none; }
}

/* ===== Cases Wall (3 carduri independente) ===== */
.cases-wall {
  display: grid; gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 768px){ .cases-wall{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px){ .cases-wall{ grid-template-columns: repeat(3,1fr); } }

.case-spot { position: relative; }
.case-spot .stage {
  position: relative; overflow: hidden;
  transition: height 240ms cubic-bezier(.22,.61,.36,1);
}
.case-card{
  position:absolute; inset:0; background:#fff;
  border-radius: 1rem; box-shadow: 0 1px 0 rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.08);
  opacity:0; pointer-events:none;
}
.case-card.active{ opacity:1; pointer-events:auto; }

@keyframes case-in { from { opacity:0; transform: translateY(8px) scale(.985); filter: blur(6px); } to { opacity:1; transform:none; filter:none; } }
@keyframes case-out{ to   { opacity:0; transform: translateY(-8px) scale(.985); filter: blur(6px); } }

.case-card.enter { animation: case-in 240ms cubic-bezier(.22,.61,.36,1) both; }
.case-card.leave { animation: case-out 200ms cubic-bezier(.22,.61,.36,1) both; }

/* mic “val” lucios la intrare */
.case-card.enter::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transform: translateX(-100%);
  animation: case-sweep 680ms ease both;
}
@keyframes case-sweep { to { transform: translateX(100%); } }

/* butoane (opțional) pe fiecare card */
.case-nav-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  display:inline-flex; align-items:center; justify-content:center;
  width:2.4rem; height:2.4rem; border-radius:.75rem;
  background: rgba(17,24,39,.65); color:#fff;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08);
  backdrop-filter: blur(3px);
}
.case-prev{ left:.5rem; } .case-next{ right:.5rem; }
.case-nav-btn:hover{ background: rgba(17,24,39,.9); }

/* ===== Gradient Page Transitions (din soluția noastră) ===== */
:root{ --pt1:#0ea5e9; --pt2:#6366f1; --pt3:#0ea5e9; }
.pt-overlay{
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  background: linear-gradient(120deg, var(--pt1), var(--pt2), var(--pt3));
  transform: scaleX(0); transform-origin:left center;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
}
@keyframes pt-wipe-out{ to{ transform: scaleX(1); } }
@keyframes pt-wipe-in { to{ transform: scaleX(0); } }
.pt-overlay.wipe-out{ animation: pt-wipe-out 260ms cubic-bezier(.22,.61,.36,1) forwards; }
.pt-overlay.wipe-in { transform-origin:right center; animation: pt-wipe-in 340ms cubic-bezier(.22,.61,.36,1) forwards; }
@media (prefers-reduced-motion: reduce){ .pt-overlay{ animation:none !important; transform:none !important; } }

