.lv-p-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:clamp(14px,2vw,26px);
}

.lv-p-grid .lv-p-card{
  display:block;
  text-decoration:none;
  color:inherit;
  outline:none;
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease, transform .8s var(--lvt-weich);
}
.lv-p-grid.is-in .lv-p-card{ opacity:1; transform:none; }

.lv-p-grid .lv-p-stage{
  display:block;
  padding:1px;
  background:linear-gradient(150deg, rgba(212,175,55,.55), rgba(212,175,55,.12) 45%, rgba(212,175,55,.42));
  clip-path:polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);
  transition:background .4s ease;
}
@media (hover:hover){
  .lv-p-grid .lv-p-card:hover .lv-p-stage{
    background:linear-gradient(150deg, rgba(212,175,55,1), rgba(240,216,121,.5) 45%, rgba(212,175,55,.9));
    filter:drop-shadow(0 16px 34px rgba(0,0,0,.55));
  }
}

.lv-p-grid .lv-p-frame{
  position:relative;
  display:block;
  aspect-ratio:1/1;
  overflow:hidden;
  background:var(--lvt-karte);
  clip-path:polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);
}

.lv-p-grid .lv-p-frame img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transform:scale(1.01);
  transition:filter .6s ease, transform .9s var(--lvt-weich);
}
@media (hover:hover){
  .lv-p-grid .lv-p-frame img{ filter:grayscale(.45) brightness(.72) contrast(1.06); }
  .lv-p-grid .lv-p-card:hover .lv-p-frame img{ filter:grayscale(0) brightness(1) contrast(1); transform:scale(1.07); }
}

.lv-p-grid .lv-p-frame::before{
  content:''; position:absolute; top:-30%; left:0; width:38%; height:160%;
  background:linear-gradient(90deg, transparent, rgba(255,246,220,.28), transparent);
  transform:translateX(-190%) skewX(-18deg);
  z-index:3; pointer-events:none;
}
@media (hover:hover){
  .lv-p-grid .lv-p-frame::before{ transition:transform .95s var(--lvt-weich); }
  .lv-p-grid .lv-p-card:hover .lv-p-frame::before{ transform:translateX(330%) skewX(-18deg); }
}

.lv-p-grid .lv-p-vignette{
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(6,6,6,.85) 100%);
}

.lv-p-grid .lv-p-text{
  position:absolute; left:0; right:0; bottom:0; z-index:4;
  padding:18px 20px 16px;
}

.lv-p-grid .lv-p-name{
  display:block;
  font:600 15px/1.25 var(--lvt-schrift-titel);
  letter-spacing:.01em;
  text-transform:uppercase;
  color:var(--lvt-weiss);
  background-image:linear-gradient(100deg,var(--lvt-gold-tief) 0%,var(--lvt-gold-licht) 22%,var(--lvt-gold-mittel) 46%,var(--lvt-gold-weiss) 68%,var(--lvt-gold-tief) 100%);
  background-size:230% 100%; background-position:100% 0;
  -webkit-background-clip:text; background-clip:text;
}
@media (hover:hover){
  .lv-p-grid .lv-p-name{ transition:background-position .85s ease, color .3s ease; }
  .lv-p-grid .lv-p-card:hover .lv-p-name{ color:transparent; background-position:0 0; }
}

.lv-p-grid .lv-p-sub{
  display:block;
  margin-top:5px;
  font:500 10px/1.4 var(--lvt-schrift-titel);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--lvt-grau);
}

.lv-p-grid .lv-p-card:focus-visible .lv-p-stage{
  outline:2px solid var(--lvt-gold-hell);
  outline-offset:3px;
}

.lv-p-head{ margin-bottom:34px; }
.lv-p-kicker{
  display:block;
  font:600 11px/1 var(--lvt-schrift-titel);
  letter-spacing:.28em;
  color:var(--lvt-gold);
  margin-bottom:14px;
}
.lv-p-title{
  margin:0 0 18px;
  font:600 clamp(1.9rem,4.6vw,3.2rem)/1.04 var(--lvt-schrift-titel);
  letter-spacing:-.015em;
  text-transform:uppercase;
  color:var(--lvt-weiss);
}
.lv-p-hr{
  border:0;
  border-top:1px solid rgba(212,175,55,.28);
  margin:0 0 8px;
}

@media (prefers-reduced-motion: reduce){
  .lv-p-grid .lv-p-card{ opacity:1; transform:none; transition:none; }
}


/* == Nachtrag: bewusste Auslese == */

/* Hinweis ueber dem Raster - erklaert, warum es nur acht Projekte sind. */
.lv-p-note{
	max-width:820px;
	margin:0 auto clamp(22px,3vw,34px);
	padding:0 clamp(16px,1.6vw,28px);
	text-align:center;
	color:#ab9c98;
	font:400 clamp(.94rem,1.32vw,1.01rem)/1.68 'Inter',sans-serif;
}

/* Die hinteren vier Kacheln bleiben zunaechst weg. Ohne JS sind sie da -
   dann sieht man eben alle acht, was kein Schaden ist. */
.lv-p-grid.is-klappbar .lv-p-extra{ display:none; }
.lv-p-grid.is-klappbar.is-offen .lv-p-extra{ display:block; }

.lv-p-morewrap{ display:flex; justify-content:center; margin:clamp(6px,1vw,14px) 0 clamp(30px,4vw,52px); }

.lv-p-more{
	--cut:9px;
	position:relative; z-index:0; isolation:isolate;
	display:inline-flex; align-items:center; gap:11px;
	padding:13px 26px; border:0; cursor:pointer;
	font:600 10px/1 'Space Grotesk',sans-serif; letter-spacing:.2em;
	text-transform:uppercase; color:#f5f0e8;
	background:linear-gradient(135deg, rgba(212,175,55,.85), rgba(212,175,55,.22) 55%, rgba(212,175,55,.7));
	clip-path:polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
	transition:transform .4s cubic-bezier(.16,1,.3,1), color .35s ease;
}
.lv-p-more::before{
	content:''; position:absolute; inset:1px; z-index:-1; background:rgba(8,8,8,.9);
	clip-path:polygon(calc(var(--cut) - 1px) 0, 100% 0, 100% calc(100% - var(--cut) + 1px), calc(100% - var(--cut) + 1px) 100%, 0 100%, 0 calc(var(--cut) - 1px));
	transition:background .35s ease;
}
.lv-p-more:hover{ transform:translateY(-2px); color:#d4af37; }
.lv-p-more:hover::before{ background:rgba(14,12,6,.92); }
.lv-p-more:focus{ outline:none; }
.lv-p-more:focus-visible{ outline:1px dashed rgba(212,175,55,.75); outline-offset:5px; }

/* Pfeil als reine CSS-Form, dreht sich beim Aufklappen */
.lv-p-more i{
	width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
	transform:rotate(45deg) translate(-2px,-2px);
	transition:transform .35s cubic-bezier(.7,0,.2,1);
}
.lv-p-more[aria-expanded="true"] i{ transform:rotate(-135deg) translate(-2px,-2px); }

/* Beschriftung wechselt mit dem Zustand */
.lv-p-more .lv-p-more-zu{ display:none; }
.lv-p-more[aria-expanded="true"] .lv-p-more-auf{ display:none; }
.lv-p-more[aria-expanded="true"] .lv-p-more-zu{ display:inline; }

@media (hover: none){ .lv-p-more:hover{ transform:none; } }


/* == Nachtrag: Ueberschriften nach Regelwerk ==
   Ein hervorgehobenes Wort im Gold-Verlauf, wie auf allen anderen
   Seiten. Vorher trug die Portfolio-Seite als einzige gar keines. */
.lv-p-title span,
.lv-p-h3 span{
	background-image:linear-gradient(120deg,
		var(--lvt-gold-tief) 0%, var(--lvt-gold-licht) 22%,
		var(--lvt-gold-mittel) 48%, var(--lvt-gold-weiss) 72%,
		var(--lvt-gold-tief) 100%);
	-webkit-background-clip:text; background-clip:text; color:transparent;
}

/* Zweite Ueberschrift, ueber dem Kachelraster - eine Stufe kleiner als
   der Seitentitel, sonst identisch gesetzt. */
.lv-p-h3{
	margin:0;
	font:600 clamp(1.45rem,3.4vw,2.4rem)/1.06 var(--lvt-schrift-titel);
	letter-spacing:-.015em;
	text-transform:uppercase;
	color:var(--lvt-weiss);
}
.lv-p-head-gal{
	/* Innenabstand statt Aussenabstand: das Markup setzt inline
	   margin-bottom:0, damit waere jeder margin-Wert wirkungslos. */
	margin-top:0;
	margin-bottom:0;
	padding-top:clamp(34px,4.6vw,64px);
	padding-bottom:clamp(26px,3.6vw,46px);
}

/* Luft ueber dem oberen Portfolio-Kopf */
.lv-p-head:not(.lv-p-head-gal){
	padding-top:clamp(26px,3.1vw,44px);
}
