/* Tema default — identitate & componente de SITE (theme-owned, fără build).
   Încărcat de base.twig (pagini temă) ȘI de portalul client (partial/head.php),
   fiindcă ambele afișează aceleași componente (logo, reveal, mozaic galerii).
   NOTĂ: stările de culoare ale header-ului (#site-header …) stau în layout.css;
   utilitarele accent BAZĂ (.text-accent/.bg-accent/.border-accent) sunt și în
   app.min.css (Tailwind) — aici păstrăm setul complet, inclusiv variantele -inv
   pe care build-ul Tailwind nu le generează. */

/* ── Fontul caligrafic al logo-ului („Ego") — self-hosted (Apple Chancery
      există doar pe macOS/iOS). Fonturile sunt livrate de temă în css/fonts/. ── */
@font-face{
    font-family:'Great Vibes';
    font-style:normal;font-weight:400;font-display:swap;
    src:url('fonts/great-vibes-latin.woff2') format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
    font-family:'Great Vibes';
    font-style:normal;font-weight:400;font-display:swap;
    src:url('fonts/great-vibes-latin-ext.woff2') format('woff2');
    unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
.font-logo{font-family:'Great Vibes','Apple Chancery',cursive}

/* Accent monocrom adaptiv (negru pe fundal deschis / alb pe fundal închis).
   Bază (.text-accent/.bg-accent/.border-accent) există și în app.min.css; variantele
   -inv + hover/focus/group-hover le definim aici (Tailwind nu le generează). */
.text-accent{color:#111827}
.text-accent-inv{color:#fff}
.group:hover .group-hover\:text-accent{color:#111827}
.group:hover .group-hover\:text-accent-inv{color:#fff}
.hover\:text-accent-inv:hover{color:#fff}
.hover\:text-accent:hover{color:#111827}

.bg-accent{background-color:#111827}
.bg-accent-inv{background-color:#fff}
.hover\:bg-accent:hover{background-color:#111827}
.hover\:bg-accent-hover:hover{background-color:#000}
.hover\:bg-accent-inv:hover{background-color:#fff}
.hover\:bg-accent-inv-hover:hover{background-color:#e5e7eb}
.group:hover .group-hover\:bg-accent{background-color:#111827}
.group:hover .group-hover\:bg-accent-inv{background-color:#fff}

.border-accent{border-color:#111827}
.border-accent-inv{border-color:#fff}
.hover\:border-accent:hover{border-color:#111827}
.hover\:border-accent-inv:hover{border-color:#fff}
.group:hover .group-hover\:border-accent{border-color:#111827}
.group:hover .group-hover\:border-accent-inv{border-color:#fff}
.focus\:border-accent:focus{border-color:#111827}
.focus\:ring-accent:focus{--tw-ring-color:rgb(17 24 39 / 0.1)}

/* Ancorele nu se ascund sub header-ul fix la scroll-ul lin */
section[id], [id="portofoliu"]{scroll-margin-top:76px}

/* ── Previzualizare live din admin (iframe ?hp_preview=1): fără animații ── */
html.hp-preview .reveal{opacity:1 !important;transform:none !important;transition:none !important}
html.hp-preview .hero-content > *{animation:none !important}
html.hp-preview .pfab{display:none !important}

/* ── Reveal la scroll: .reveal intră cu fade+ridicare când ajunge în viewport
      (IntersectionObserver în vv-app.js adaugă .is-in). --rd = întârziere cascadă. ── */
.reveal{opacity:0;transform:translateY(24px);
    transition:opacity .7s ease var(--rd,0s),transform .7s ease var(--rd,0s)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ── Echipa (homepage): clase absente din build-ul Tailwind ── */
.w-40{width:10rem}
.h-40{height:10rem}
.tracking-\[0\.15em\]{letter-spacing:0.15em}
/* Fotografia membrului: cover în cerc (object-cover lipsește din build). */
.vv-team-ph{width:10rem;height:10rem;border-radius:9999px;overflow:hidden;
    margin:0 auto 1.25rem;border:1px solid #e5e7eb;background:#f3f4f6}
.vv-team-ph img{width:100%;height:100%;object-fit:cover;display:block}

/* ══ MOZAIC galerii eveniment — componentă partajată (pagini temă + portal client) ══
   Colaj-copertă .mz-cover c1..c6 (câte poze + aranjament). Vezi helper mosaic_cover(). */
.mz-cover{display:grid;gap:3px;width:100%;height:100%;background:#0a0a0b}
.mz-cover>*{position:relative;min-width:0;min-height:0;overflow:hidden;display:block}
.mz-cover img{width:100%;height:100%;object-fit:cover;display:block}
.mz-cover.c1{grid-template-columns:1fr;grid-template-rows:1fr}
.mz-cover.c2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
.mz-cover.c3{grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr}
.mz-cover.c3>*:first-child{grid-row:1/3}
.mz-cover.c4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.mz-cover.c5{grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:1fr 1fr}
.mz-cover.c5>*:first-child{grid-column:1;grid-row:1/3}
.mz-cover.c6{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr}

/* Galeria ÎNTREAGĂ cu șablon: grilă N coloane; „feature" = fiecare a K-a poză 2×2. */
.mz-gal{display:grid;gap:.5rem;grid-auto-flow:dense}
.mz-gal>*{overflow:hidden;border-radius:0;aspect-ratio:1/1}
.mz-gal.cols2{grid-template-columns:repeat(2,1fr)}
.mz-gal.cols3{grid-template-columns:repeat(3,1fr)}
.mz-gal.cols4{grid-template-columns:repeat(4,1fr)}
.mz-gal .mz-feat{grid-column:span 2;grid-row:span 2}
@media(max-width:640px){
  .mz-gal.cols3,.mz-gal.cols4{grid-template-columns:repeat(2,1fr)}
  .mz-gal .mz-feat{grid-column:span 2;grid-row:span 2}
}
