/* Weblancer — tema Versiunea 2: imagini și culoare peste layoutul de bază (style.css + motion.css). */
:root {
  --v2-violet:#4f3df5;
  --v2-teal:#0e8f80;
  --v2-coral:#f0603a;
  --v2-ink:#0b0a14;
  --v2-soft:#f4f2ee
}

/* ── Prezentarea video de sub titlu ─────────────────────────────── */
.theme-v2 .home-reel {
  margin:0 auto calc(6 * var(--u))
}

.theme-v2 .home-reel .hero-media {
  background:linear-gradient(135deg,var(--v2-violet),var(--v2-coral))
}

/* ── Serviciile de pe prima pagină: culoare și imagine ──────────── */
.theme-v2 .service {
  --accent-deep:color-mix(in srgb,var(--accent,#4f3df5) 62%,#07060f);
  background:var(--accent-deep);
  color:#fff;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease)
}

.theme-v2 .services-list {
  gap:calc(1.4 * var(--u) + 18px)
}

/* Pe calculator, fundalul și titlul rămân mereu colorat, respectiv alb; derularea deschide doar textul și imaginea. */
.theme-v2 .services-enhanced .service {
  background:var(--accent-deep);
  color:#fff;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease)
}

.theme-v2 .service:hover {
  transform:translateY(-6px);
  box-shadow:0 26px 54px -28px var(--accent,#4f3df5)
}

.theme-v2 .service .number {
  color:inherit;
  opacity:.75;
  font-weight:600
}

.theme-v2 .service-art {
  background:var(--accent-deep)
}

.theme-v2 .service-art img {
  position:absolute;
  top:0;
  right:0;
  width:58%;
  height:100%;
  object-fit:cover;
  object-position:top center;
  transform:scale(1.04);
  transition:transform 1.4s var(--ease)
}

.theme-v2 .service[open] .service-art img {
  transform:scale(1)
}

.theme-v2 .service-art:after {
  background:linear-gradient(90deg,var(--accent-deep) 38%,color-mix(in srgb,var(--accent-deep) 55%,transparent) 62%,color-mix(in srgb,var(--accent-deep) 10%,transparent) 100%)
}

.theme-v2 .service-body .pill {
  background:#fff;
  color:#000;
  border-color:#fff
}

/* ── Paginile pe domenii: carduri ───────────────────────────────── */
.theme-v2 .niches-strip {
  padding:calc(4 * var(--u)) 0 calc(14 * var(--u))
}

.theme-v2 .niches-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:calc(5 * var(--u))
}

.theme-v2 .niche-rail {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(280px,calc(28 * var(--u) + 120px));
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:16px max(15vw,calc((100vw - 1120px) / 2)) 56px;
  margin:-16px 0 -40px;
  scroll-padding-inline:max(15vw,calc((100vw - 1120px) / 2));
  scrollbar-width:thin
}

.theme-v2 .niche-rail .niche-card {
  scroll-snap-align:start
}

.theme-v2 .niches-section {
  padding:calc(6 * var(--u)) 0 calc(12 * var(--u))
}

.theme-v2 .niche-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}

.theme-v2 .niche-card {
  --accent-deep:color-mix(in srgb,var(--accent,#4f3df5) 70%,#07060f);
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:100%;
  padding:12px 12px 26px;
  border-radius:24px;
  background:color-mix(in srgb,var(--accent) 10%,#fff);
  color:#000;
  transition:transform .6s var(--ease),background .4s,box-shadow .6s
}

.theme-v2 .niche-card:hover,.theme-v2 .niche-card:focus-visible {
  transform:translateY(-6px);
  background:color-mix(in srgb,var(--accent) 18%,#fff);
  box-shadow:0 24px 50px -28px var(--accent)
}

.theme-v2 .niche-card figure {
  position:relative;
  aspect-ratio:3/2;
  border-radius:16px;
  overflow:hidden;
  margin:0 0 20px;
  background:radial-gradient(120% 120% at 15% 15%,color-mix(in srgb,var(--accent) 55%,#fff) 0,var(--accent) 45%,var(--accent-deep) 100%)
}

.theme-v2 .niche-card img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.2s var(--ease)
}

.theme-v2 .niche-card:hover img {
  transform:scale(1.06)
}

.theme-v2 .niche-glyph {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:clamp(70px,9vw,130px);
  font-weight:600;
  letter-spacing:-.06em;
  color:#fff;
  opacity:.9;
  mix-blend-mode:soft-light
}

.theme-v2 .niche-kicker {
  display:inline-block;
  align-self:flex-start;
  margin:0 12px 10px;
  padding:5px 11px;
  border-radius:40px;
  font-size:12px;
  letter-spacing:.01em;
  background:#fff;
  color:var(--accent-deep)
}

.theme-v2 .niche-card h3 {
  margin:0 12px;
  font-size:clamp(21px,1.7vw,27px);
  line-height:1.15;
  letter-spacing:-.03em;
  font-weight:500;
  padding-right:28px
}

.theme-v2 .niche-card p {
  margin:10px 12px 0;
  font-size:15px;
  line-height:1.45;
  color:#333
}

.theme-v2 .niche-arrow {
  position:absolute;
  right:22px;
  bottom:24px;
  font-size:20px;
  color:var(--accent-deep);
  transition:transform .5s var(--ease)
}

.theme-v2 .niche-card:hover .niche-arrow {
  transform:translate(3px,-3px)
}

/* ── Pagina de serviciu: imagine mare, listă cu imagini ─────────── */
.theme-v2 .service-hero-media {
  margin:0 auto calc(4 * var(--u));
  aspect-ratio:21/9;
  border-radius:calc(2.4 * var(--u));
  overflow:hidden;
  background:linear-gradient(135deg,var(--accent,#4f3df5),var(--v2-coral))
}

.theme-v2 .service-hero-media img {
  width:100%;
  height:100%;
  object-fit:cover
}









.theme-v2 .solution h3 {
  color:color-mix(in srgb,var(--accent,#4f3df5) 75%,#000)
}

/* ── Proiectele pe prima pagină ────────────────────────────────── */




/* ── Portofoliul de pe paginile de serviciu: carduri cât cele ale domeniilor ── */
.theme-v2 .service-portfolio {
  padding:calc(4 * var(--u)) 0 calc(12 * var(--u))
}

.theme-v2 .portfolio-card {
  display:block;
  color:inherit
}

.theme-v2 .portfolio-card figure {
  border-radius:20px;
  overflow:hidden;
  margin:0 0 18px;
  padding:6%;
  background:var(--bg,#eee);
  transition:transform .6s var(--ease)
}

.theme-v2 .portfolio-card img {
  display:block;
  width:100%;
  height:auto;
  border-radius:8px;
  box-shadow:0 10px 30px #0002;
  transition:transform 1.2s var(--ease)
}

.theme-v2 .portfolio-card:hover figure {
  transform:translateY(-4px)
}

.theme-v2 .portfolio-card:hover img {
  transform:scale(1.04)
}

.theme-v2 .portfolio-card h3 {
  font-size:clamp(20px,1.6vw,24px);
  letter-spacing:-.03em;
  font-weight:500
}

.theme-v2 .portfolio-card p {
  margin-top:6px;
  font-size:15px;
  line-height:1.45;
  color:#555
}

/* ── Pagina Servicii: „Soluțiile noastre” cu titlul mare, colorat ── */
.theme-v2 .solution {
  grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);
  align-items:start
}

.theme-v2 .solution h3 {
  font-size:calc(6 * var(--u));
  line-height:1.12;
  letter-spacing:-.035em;
  text-transform:none;
  font-weight:500;
  color:var(--accent,#000)
}

.theme-v2 .solution-copy>p {
  margin-top:.3em
}

/* ── Portofoliu: carduri construite din HTML (nume, etichetă, captura site-ului) ── */
.theme-v2 .project-visual.pv-html {
  aspect-ratio:auto;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:clamp(20px,calc(3 * var(--u)),34px);
  padding:clamp(22px,calc(4 * var(--u)),40px) clamp(18px,calc(3.2 * var(--u)),34px);
  background:var(--bg,#eee);
  border-radius:calc(2 * var(--u));
  overflow:hidden;
  color:#111
}

.theme-v2 .pv-head {
  display:flex;
  flex-direction:column;
  gap:10px
}

.theme-v2 .pv-name {
  font-size:clamp(24px,calc(3.4 * var(--u)),40px);
  letter-spacing:-.03em;
  line-height:1.05;
  font-weight:400
}

.theme-v2 .pv-kicker {
  font-size:max(11px,calc(1.3 * var(--u)));
  letter-spacing:.06em;
  text-transform:uppercase
}

.theme-v2 .pv-shot {
  position:relative;
  display:block;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 18px 40px #0002
}

.theme-v2 .project-visual.pv-html .pv-shot img {
  position:static;
  display:block;
  width:100%;
  height:auto;
  border-radius:0;
  box-shadow:none;
  transition:transform 1.2s var(--ease)
}

.theme-v2 .project-visual.pv-html .pv-shot video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .4s
}

.theme-v2 .pv-shot.is-playing video {
  opacity:1
}

.theme-v2 .project a:hover .pv-html img {
  transform:scale(1.03)
}

.theme-v2 .project:nth-child(even) {
  padding-top:0
}

/* ── Pagina proiectului: galerie (PC: una mare + 4 mici; telefon: glisare) ── */
.theme-v2 .project-gallery {
  margin:0 auto calc(6 * var(--u))
}

.theme-v2 .pg-track {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:clamp(10px,calc(1.6 * var(--u)),18px);
  aspect-ratio:2.25/1
}

.theme-v2 .pg-item {
  margin:0;
  min-width:0;
  min-height:0;
  border-radius:clamp(12px,calc(1.8 * var(--u)),20px);
  overflow:hidden;
  background:color-mix(in srgb,currentColor 5%,transparent)
}

.theme-v2 .pg-0 {
  grid-row:1 / 3
}

.theme-v2 .pg-empty {
  background:none
}

.theme-v2 .pg-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top center
}

.theme-v2 .pg-hint {
  display:none
}

/* ── Spații verticale mai strânse (fără pagini goale, fără înghesuială) ── */
.theme-v2 .hero {
  padding:calc(16 * var(--u)) 0 calc(6 * var(--u))
}

.theme-v2 .section,.theme-v2 .why {
  padding:calc(10 * var(--u)) 0
}

.theme-v2 .section-heading {
  margin-bottom:calc(7 * var(--u))
}

.theme-v2 .why .section-heading {
  margin-bottom:calc(6 * var(--u))
}

.theme-v2 .interior-hero,.theme-v2.service-page .interior-hero,.theme-v2.case-page .interior-hero,.theme-v2.portfolio-page .interior-hero {
  padding-top:calc(15 * var(--u));
  padding-bottom:calc(5 * var(--u))
}

.theme-v2 .service-overview.section {
  padding-top:calc(2 * var(--u));
  padding-bottom:calc(8 * var(--u))
}

.theme-v2 .solutions-section {
  padding-bottom:calc(9 * var(--u))!important
}

.theme-v2 .solutions-grid>.big-title {
  margin-bottom:calc(7 * var(--u))
}

.theme-v2 .split {
  padding:calc(7 * var(--u)) 0
}

.theme-v2 .faq {
  padding:calc(11 * var(--u)) 0 calc(12 * var(--u))
}

.theme-v2 .faq h2 {
  margin-bottom:calc(7 * var(--u))
}

.theme-v2 .insights {
  padding-top:calc(10 * var(--u))
}

.theme-v2 .clients {
  padding:calc(2 * var(--u)) 0 calc(10 * var(--u))
}

.theme-v2 .related {
  padding:calc(5 * var(--u)) 0
}

.theme-v2 .cta {
  min-height:calc(56 * var(--u))
}

.theme-v2 .niches-section,.theme-v2 .service-portfolio {
  padding:calc(3 * var(--u)) 0 calc(9 * var(--u))
}

/* ── Testimoniale: cartonașe care urcă și se așază într-un teanc la derulare ── */
.theme-v2 .testimonials {
  position:relative;
  padding:calc(10 * var(--u)) 0
}

.theme-v2 .tm-title {
  text-align:center;
  margin:0 auto calc(5 * var(--u));
  max-width:90%
}

.theme-v2 .tm-stage {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px;
  width:85%;
  max-width:1360px;
  margin:0 auto
}

.theme-v2 .tm-card {
  margin:0;
  padding:clamp(26px,3.2vw,46px) clamp(24px,3vw,44px);
  background:var(--bg,#eef0fb);
  border:6px solid #fff;
  border-radius:8px;
  box-shadow:0 30px 60px -36px #0005,0 2px 10px #0000000d;
  color:#111
}

.theme-v2 .tm-mark {
  display:block;
  height:.55em;
  font-size:clamp(64px,6vw,96px);
  line-height:1;
  font-family:Georgia,serif;
  color:#0003
}

.theme-v2 .tm-card blockquote {
  margin:clamp(14px,2vw,26px) 0 0
}

.theme-v2 .tm-card blockquote p {
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.5;
  letter-spacing:-.01em
}

.theme-v2 .tm-card figcaption {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 12px;
  margin-top:clamp(18px,2.4vw,30px);
  padding-top:clamp(14px,1.8vw,22px);
  border-top:1px solid #0002;
  font-size:15px
}

.theme-v2 .tm-card figcaption img {
  height:28px;
  width:auto;
  max-width:120px;
  object-fit:contain
}

.theme-v2 .tm-card figcaption span {
  color:#555;
  width:100%
}

.theme-v2 .tm-card figcaption img + b {
  margin-left:4px
}

.theme-v2 .testimonials.tm-on {
  height:calc(100vh + var(--n,3) * 42vh);
  padding:0
}

.theme-v2 .tm-on .tm-sticky {
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding-top:calc(13 * var(--u))
}

.theme-v2 .tm-on .tm-stage {
  position:relative;
  display:block;
  flex:1;
  width:100%;
  max-width:none
}

.theme-v2 .tm-on .tm-card {
  position:absolute;
  left:50%;
  top:46%;
  width:clamp(300px,30vw,450px);
  z-index:var(--z,1);
  transform:translate(-50%,-50%) translate(var(--x),calc(var(--y) + (1 - var(--p,0)) * 120vh)) rotate(calc(var(--r) + (1 - var(--p,0)) * var(--r) * 2.4 + (1 - var(--p,0)) * 8deg));
  will-change:transform
}

.theme-v2 .tm-nav {
  display:none
}

.theme-v2 .tm-dots {
  display:flex;
  gap:8px
}

.theme-v2 .tm-dots button {
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#0003;
  transition:background .3s,transform .3s
}

.theme-v2 .tm-dots button[aria-current="true"] {
  background:#111;
  transform:scale(1.3)
}

.theme-v2 .tm-arrows {
  display:flex;
  gap:10px
}

.theme-v2 .tm-arrows button {
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid #0003;
  background:#fff;
  color:#111;
  font-size:18px;
  line-height:1
}

.theme-v2 .tm-pos-0 { --x:0%; --y:-18%; --r:0deg }
.theme-v2 .tm-pos-1 { --x:-80%; --y:6%; --r:-8deg }
.theme-v2 .tm-pos-2 { --x:80%; --y:4%; --r:8deg }
.theme-v2 .tm-pos-3 { --x:-40%; --y:36%; --r:-14deg }
.theme-v2 .tm-pos-4 { --x:44%; --y:34%; --r:17deg }
.theme-v2 .tm-pos-5 { --x:2%; --y:24%; --r:-4deg }

/* ── Apariții discrete la derulare (clasele le pune theme-v2.js; fără JS totul e vizibil) ── */
.theme-v2 .v2-pre {
  opacity:0;
  transform:translateY(18px)
}

.theme-v2 .v2-pre.v2-in {
  opacity:1;
  transform:none;
  transition:opacity .8s ease-out var(--v2-d,0ms),transform 1s cubic-bezier(.16,1,.3,1) var(--v2-d,0ms)
}

/* Mici mișcări la hover, pentru un aer mai viu */
.theme-v2 .solution .pill,.theme-v2 .portfolio-card h3 span,.theme-v2 .niche-arrow {
  transition:transform .45s cubic-bezier(.16,1,.3,1)
}

.theme-v2 .solution:hover .pill {
  transform:translateX(6px)
}

.theme-v2 .portfolio-card:hover h3 span {
  display:inline-block;
  transform:translate(3px,-3px)
}

@media(prefers-reduced-motion:reduce) {
  .theme-v2 .v2-pre {
    opacity:1;
    transform:none
  }
}

/* ── Îndemnul de la final: mai mult colorit ─────────────────────── */
.theme-v2 .outro-art {
  background:
    radial-gradient(60% 80% at 85% 20%,#f0603a99 0,transparent 60%),
    radial-gradient(55% 70% at 10% 90%,#0e8f8099 0,transparent 60%),
    linear-gradient(120deg,#0b0820 5%,#2a1a7a 55%,#4f3df5)
}

.theme-v2 .outro-art:before {
  opacity:.6
}

/* ── Telefon și tabletă ─────────────────────────────────────────── */
@media(max-width:1050px) {
  .theme-v2 .niche-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}

@media(max-width:767px) {
  .theme-v2 .hero {
    padding:108px 10px 32px
  }

  .theme-v2 .section,.theme-v2 .why {
    padding:48px 0
  }

  .theme-v2 .section-heading {
    margin-bottom:32px
  }

  .theme-v2 .section-heading .eyebrow {
    margin-bottom:16px
  }

  .theme-v2 .interior-hero,.theme-v2.service-page .interior-hero,.theme-v2.case-page .interior-hero,.theme-v2.portfolio-page .interior-hero {
    padding:108px 10px 32px
  }

  .theme-v2 .service-overview.section {
    padding:0 0 44px
  }

  .theme-v2 .solutions-section {
    padding-bottom:48px!important
  }

  .theme-v2 .solutions-grid>.big-title {
    margin-bottom:28px
  }

  .theme-v2 .split {
    padding:40px 0
  }

  .theme-v2 .faq {
    padding:60px 0
  }

  .theme-v2 .faq h2 {
    margin-bottom:28px
  }

  .theme-v2 .insights {
    padding-top:56px
  }

  .theme-v2 .clients {
    padding:0 0 48px
  }

  .theme-v2 .cta {
    min-height:440px;
    padding:64px 0
  }

  .theme-v2 .niches-strip {
    padding:16px 0 56px
  }

  .theme-v2 .niches-section,.theme-v2 .service-portfolio {
    padding:16px 0 48px
  }

  .theme-v2 .testimonials {
    padding:56px 0
  }

  .theme-v2 .tm-stage {
    position:relative;
    display:flex;
    gap:14px;
    width:100%;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:16px;
    padding:6px 16px 10px;
    scrollbar-width:none;
    overscroll-behavior-x:contain
  }

  .theme-v2 .tm-stage::-webkit-scrollbar {
    display:none
  }

  .theme-v2 .tm-card {
    flex:0 0 86%;
    scroll-snap-align:start;
    border-width:5px;
    box-shadow:0 14px 30px -24px #0006
  }

  .theme-v2 .tm-nav {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:calc(100% - 32px);
    margin:18px auto 0
  }

  .theme-v2 .services-list .service summary {
    cursor:default
  }

  .theme-v2 .services-list {
    gap:28px
  }

  .theme-v2 .solution {
    grid-template-columns:1fr;
    gap:18px
  }

  .theme-v2 .solution h3 {
    font-size:36px
  }

  .theme-v2 .pg-track {
    display:flex;
    aspect-ratio:auto;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:16px;
    margin:0 -16px;
    padding:0 16px 6px;
    scrollbar-width:none
  }

  .theme-v2 .pg-track::-webkit-scrollbar {
    display:none
  }

  .theme-v2 .pg-item {
    flex:0 0 86%;
    aspect-ratio:4/3;
    scroll-snap-align:start
  }

  .theme-v2 .pg-track>.pg-item:only-child {
    flex-basis:100%
  }

  .theme-v2 .pg-empty {
    display:none
  }

  .theme-v2 .pg-hint {
    display:block;
    margin-top:12px;
    font-size:13px;
    opacity:.6
  }

  .theme-v2 .service-art img {
    width:100%;
    opacity:.6
  }

  .theme-v2 .service-art:after {
    background:linear-gradient(180deg,color-mix(in srgb,var(--accent-deep) 55%,transparent),var(--accent-deep) 75%)
  }

  .theme-v2 .niches-head {
    flex-direction:column;
    align-items:flex-start
  }

  .theme-v2 .niche-rail {
    grid-auto-columns:78vw;
    padding:16px 16px 48px;
    scroll-padding-inline:16px
  }

  .theme-v2 .niche-grid {
    grid-template-columns:1fr;
    gap:16px
  }

  .theme-v2 .service-hero-media {
    aspect-ratio:4/3;
    border-radius:18px
  }


  .theme-v2 .home-reel {
    margin-bottom:40px
  }
}

@media(prefers-reduced-motion:reduce) {
  .theme-v2 .niche-card,.theme-v2 .niche-card img,.theme-v2 .service-art img {
    transition:none
  }
}

/* ── G2o: antetul rămâne vizibil pe telefon la derulare ── */
@media (max-width:767px) {
  .theme-v2 .header.is-hidden { transform:none }
}

/* ── G2o: animații de apariție (weblancer-motion.js). Elementele sunt ascunse doar cât se pregătește animația;
   dacă scriptul nu rulează, apar singure după 3 secunde. Fără animații: nimic nu se ascunde. ── */
@keyframes wl-show { to { opacity:1 } }
html.wl-motion:not(.wl-ready) body.theme-v2 main :is([data-lines], h2, h3, p, blockquote, .eyebrow, figure, .pg-item, .service-hero-media, .niche-card, .portfolio-card, .project, .insights-grid > a, .solution, .related-links > a, .faq details, li, .pill, .text-link):not(.services-list *):not(.wl-services *):not([data-testimonials] *):not(form *):not(.faq-answer *) {
  opacity:0;
  animation:wl-show 0s 3s forwards
}
html.wl-motion body.theme-v2 .wl-wait { opacity:0 }
html.wl-motion body.theme-v2 .wl-done { opacity:1 }
.theme-v2 .wl-w { display:inline-block; will-change:transform, opacity }
.theme-v2 :is(figure, .pg-item, .service-hero-media).wl-done { overflow:hidden }

/* ── G2o: prezentarea video de pe prima pagină ── */
.theme-v2 .wl-reel-wrap { margin-top:calc(2 * var(--u, 10px)); margin-bottom:calc(4 * var(--u, 10px)) }
.theme-v2 .wl-reel {
  --reel-p:1;
  position:relative;
  margin:0;
  aspect-ratio:16 / 9;
  border-radius:calc(48px - 32px * var(--reel-p));
  overflow:hidden;
  background:#111;
  transform:scale(calc(.82 + .18 * var(--reel-p)));
  transform-origin:50% 0;
  will-change:transform, border-radius
}
.theme-v2 .wl-reel-open {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:none;
  cursor:pointer;
  color:#fff
}
.theme-v2 .wl-reel-preview { width:100%; height:100%; object-fit:cover; display:block; pointer-events:none }
.theme-v2 .wl-reel-play {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:16px 26px;
  border-radius:99px;
  background:#ffffffe6;
  color:#111;
  font-size:15px;
  font-weight:500;
  letter-spacing:.02em;
  white-space:nowrap;
  transition:transform .6s cubic-bezier(.19,1,.22,1), opacity .4s
}
.theme-v2 .wl-reel-open:hover .wl-reel-play, .theme-v2 .wl-reel-open:focus-visible .wl-reel-play { transform:translate(-50%, -50%) scale(1.08) }
html.cursor-active .theme-v2 .wl-reel-play { opacity:0 }
html.cursor-active .theme-v2 .wl-reel-open:focus-visible .wl-reel-play { opacity:1 }
.theme-v2 .wl-reel-pause {
  position:absolute;
  right:16px;
  bottom:16px;
  z-index:2;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid #ffffff80;
  background:#0009;
  color:#fff;
  display:grid;
  place-items:center;
  backdrop-filter:blur(8px)
}
.wl-reel-dialog {
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  margin:0;
  padding:64px 20px 28px;
  border:0;
  background:#000;
  color:#fff
}
.wl-reel-dialog[open] { display:flex; align-items:center; justify-content:center }
.wl-reel-dialog::backdrop { background:#000 }
.wl-reel-dialog video { width:100%; height:100%; object-fit:contain }
.wl-reel-close {
  position:absolute;
  top:16px;
  right:20px;
  z-index:2;
  padding:10px 18px;
  border-radius:99px;
  border:1px solid #ffffff66;
  background:#000;
  color:#fff;
  font-size:14px
}
@media (max-width:767px) {
  .theme-v2 .wl-reel { transform:scale(calc(.92 + .08 * var(--reel-p))) }
  .theme-v2 .wl-reel-wrap { margin-top:8px; margin-bottom:24px }
  .theme-v2 .wl-reel-play { padding:13px 20px; font-size:14px }
}
@media (prefers-reduced-motion:reduce) {
  .theme-v2 .wl-reel { transform:none; border-radius:16px }
}
html.a11y-no-motion .theme-v2 .wl-reel { transform:none; border-radius:16px }

/* ── G2p: pagina proiectului — o singură imagine, cât lățimea textului de dedesubt (pe telefon, tot ecranul) ── */
.theme-v2 .project-shot { margin-top:calc(2 * var(--u, 10px)); margin-bottom:calc(6 * var(--u, 10px)) }
.theme-v2 .project-shot img { display:block; width:100%; height:auto; border-radius:var(--radius, 16px) }
@media (max-width:767px) {
  .theme-v2 .project-shot.narrow { width:100%; margin:20px 0 36px }
  .theme-v2 .project-shot img { border-radius:0 }
}

/* ── G2s: cardurile cu servicii în stivă (prima pagină). Varianta veche: .services-list (partials/services-classic). ── */
.theme-v2 .wl-services {
  --stick-top:104px;
  --stick-step:18px;
  --gap:40px;
  --radius:28px;
  --ink:#fff;
  --ink-soft:rgba(255,255,255,.82);
  --line:rgba(255,255,255,.2);
  --ease:cubic-bezier(.19,1,.22,1);
  width:100%;
  padding-bottom:calc(4 * var(--u, 10px))
}
.theme-v2 .wl-services *, .theme-v2 .wl-services *::before, .theme-v2 .wl-services *::after { box-sizing:border-box }
.theme-v2 .wl-services__stack { display:flex; flex-direction:column; gap:var(--gap); margin:0; padding:0; list-style:none }
.theme-v2 .wl-services .svc {
  --accent:color-mix(in srgb, var(--bg) 28%, #fff);
  --depth:0;
  position:sticky;
  top:calc(var(--stick-top) + var(--i) * var(--stick-step));
  display:grid;
  grid-template-columns:minmax(0, 7fr) minmax(0, 3fr);
  align-items:center;
  gap:48px;
  margin:0;
  padding:60px 64px;
  color:var(--ink);
  background:radial-gradient(110% 90% at 100% 0%, color-mix(in srgb, var(--accent) 22%, transparent) 0%, transparent 55%), var(--bg);
  border-radius:var(--radius);
  box-shadow:0 -12px 40px -20px rgba(0,0,0,.35);
  overflow:hidden;
  isolation:isolate;
  scale:calc(1 - .05 * var(--depth));
  transform-origin:50% 0
}
/* cardul acoperit de următorul se micșorează și se întunecă puțin (adâncime) */
.theme-v2 .wl-services .svc::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:#000;
  opacity:calc(.32 * var(--depth));
  pointer-events:none
}
.theme-v2 .wl-services .svc__body { position:relative; z-index:1 }
.theme-v2 .wl-services .svc__meta {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:26px;
  font-size:14px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-soft)
}
.theme-v2 .wl-services .svc__num {
  display:inline-grid;
  place-items:center;
  min-width:44px;
  height:30px;
  padding:0 10px;
  border-radius:999px;
  background:var(--accent);
  color:var(--bg);
  font-variant-numeric:tabular-nums;
  letter-spacing:0
}
.theme-v2 .wl-services .svc__meta::after { content:""; flex:1; height:1px; background:var(--line); transform-origin:0 50% }
.theme-v2 .wl-services .svc__title {
  margin:0 0 18px;
  font-size:clamp(30px, 4vw, 56px);
  font-weight:600;
  line-height:1.05;
  letter-spacing:-.035em;
  color:var(--ink)
}
.theme-v2 .wl-services .svc__desc { max-width:38ch; margin:0 0 26px; font-size:clamp(16px, 1.35vw, 19px); line-height:1.55; color:var(--ink-soft) }
.theme-v2 .wl-services .svc__tags { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 34px; padding:0; list-style:none }
.theme-v2 .wl-services .svc__tags li {
  margin:0;
  padding:7px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  font-size:14px;
  font-weight:500;
  line-height:1.3;
  color:var(--ink);
  background:rgba(255,255,255,.06)
}
.theme-v2 .wl-services .svc__cta {
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:8px 8px 8px 24px;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:16px;
  font-weight:600;
  line-height:1;
  text-decoration:none;
  transition:background-color .3s ease, color .3s ease
}
.theme-v2 .wl-services .svc__cta::after { content:""; position:absolute; inset:-2000px; z-index:3 }
.theme-v2 .wl-services .svc__cta-icon {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--bg);
  color:#fff;
  transition:transform .5s var(--ease)
}
.theme-v2 .wl-services .svc__cta-icon svg { width:16px; height:16px; display:block }
.theme-v2 .wl-services .svc:hover .svc__cta, .theme-v2 .wl-services .svc:focus-within .svc__cta { background:var(--accent); color:var(--bg) }
.theme-v2 .wl-services .svc:hover .svc__cta-icon, .theme-v2 .wl-services .svc:focus-within .svc__cta-icon { transform:rotate(45deg) }
.theme-v2 .wl-services .svc__cta:focus-visible { outline:none }
.theme-v2 .wl-services .svc:has(.svc__cta:focus-visible) { outline:3px solid var(--accent); outline-offset:4px }

/* ilustrația (mai mare decât în macheta inițială) sau imaginea încărcată */
.theme-v2 .wl-services .svc__art { display:flex; align-items:center; justify-content:center; color:var(--accent); pointer-events:none }
.theme-v2 .wl-services .svc__art svg { display:block; width:100%; max-width:440px; height:auto; overflow:visible; transition:transform .8s var(--ease) }
.theme-v2 .wl-services .svc__art img { display:block; width:100%; max-width:460px; aspect-ratio:4 / 3; object-fit:cover; border-radius:20px; transition:transform .8s var(--ease) }
.theme-v2 .wl-services .svc__art .fill-soft { fill:currentColor; fill-opacity:.16 }
.theme-v2 .wl-services .svc__art .fill { fill:currentColor }
.theme-v2 .wl-services .svc__art .stroke { fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; stroke-linejoin:round }
.theme-v2 .wl-services .svc__art .stroke-ink { fill:none; stroke:#fff; stroke-opacity:.55; stroke-width:3; stroke-linecap:round }
.theme-v2 .wl-services .svc__art .hole { fill:var(--bg) }
.theme-v2 .wl-services .svc:hover .svc__art svg, .theme-v2 .wl-services .svc:hover .svc__art img { transform:translateY(-6px) scale(1.03) }

@media (max-width:1100px) {
  .theme-v2 .wl-services .svc { padding:48px; gap:32px }
}
@media (max-width:767px) {
  .theme-v2 .wl-services { --stick-top:92px; --stick-step:12px; --gap:24px; --radius:22px }
  .theme-v2 .wl-services .svc { display:block; padding:30px 22px 28px }
  /* ilustrația trece în fundal, la jumătate de opacitate, în interiorul cardului (nu lipită de margine) */
  .theme-v2 .wl-services .svc__art { position:absolute; top:auto; bottom:22px; right:18px; z-index:0; width:46%; max-width:220px; opacity:.45 }
  .theme-v2 .wl-services .svc__meta { margin-bottom:20px; padding-right:0 }
  .theme-v2 .wl-services .svc__desc { max-width:none }
  .theme-v2 .wl-services .svc__tags { margin-bottom:26px }
  .theme-v2 .wl-services .svc__tags li { font-size:13px; padding:6px 12px }
  /* cu imagine încărcată: imaginea stă deasupra textului, întreagă */
  .theme-v2 .wl-services .svc--photo .svc__art { position:static; bottom:auto; width:100%; max-width:none; opacity:1; margin-bottom:22px }
  .theme-v2 .wl-services .svc--photo .svc__art img { max-width:none; aspect-ratio:16 / 10; border-radius:14px }
}
@media (max-height:600px) {
  .theme-v2 .wl-services .svc { position:relative; top:auto }
}
@media (prefers-reduced-motion:reduce) {
  .theme-v2 .wl-services .svc, .theme-v2 .wl-services .svc * { transition:none !important }
  .theme-v2 .wl-services .svc:hover .svc__art :is(svg, img) { transform:none }
  .theme-v2 .wl-services .svc { scale:none }
  .theme-v2 .wl-services .svc::after { display:none }
}
html.a11y-no-motion .theme-v2 .wl-services .svc { scale:none }
html.a11y-no-motion .theme-v2 .wl-services .svc::after { display:none }
/* până pornește animația de apariție */
html.wl-motion:not(.wl-ready) body.theme-v2 .wl-services .svc, html.wl-motion body.theme-v2 .wl-services .svc.svc-wait { opacity:0 }
html.wl-motion:not(.wl-ready) body.theme-v2 .wl-services .svc { animation:wl-show 0s 3s forwards }
.theme-v2 .wl-services .svc__art svg * { transform-box:fill-box; transform-origin:50% 50% }

/* ── G2u: proiectele din portofoliu — doar imaginea (fără chenar colorat, nume și etichetă în chenar), apoi titlul ── */
.theme-v2 .project-visual.pv-only {
  aspect-ratio:auto;
  padding:0;
  background:none;
  border-radius:0;
  overflow:visible;
  margin:0 0 22px
}
.theme-v2 .pv-only .pv-shot {
  position:relative;
  display:block;
  border-radius:calc(1.6 * var(--u, 10px));
  overflow:hidden;
  box-shadow:0 24px 50px -22px #0006;
  transition:transform 1.2s var(--ease), box-shadow 1.2s var(--ease)
}
.theme-v2 .project-visual.pv-only img {
  position:static;
  display:block;
  width:100%;
  height:auto;
  border-radius:0;
  box-shadow:none;
  transition:transform 1.2s var(--ease)
}
.theme-v2 .project-visual.pv-only video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .4s
}
.theme-v2 .pv-only .pv-shot.is-playing video { opacity:1 }
.theme-v2 .project a:hover .pv-only, .theme-v2 .project a:focus-visible .pv-only { transform:none }
.theme-v2 .project a:hover .pv-only .pv-shot { transform:translateY(-4px); box-shadow:0 30px 60px -22px #0007 }
.theme-v2 .project a:hover .pv-only img { transform:scale(1.03) }

/* „Din portofoliu” (paginile de servicii): la fel, doar imaginea, fără fundal colorat */
.theme-v2 .portfolio-card figure {
  padding:0;
  background:none;
  border-radius:calc(1.6 * var(--u, 10px));
  box-shadow:0 24px 50px -22px #0006
}
.theme-v2 .portfolio-card img { border-radius:0; box-shadow:none }
@media (max-width:767px) {
  .theme-v2 .pv-only .pv-shot, .theme-v2 .portfolio-card figure { border-radius:14px }
}
