:root{
  --zelen-tmava:#0C3B2A;
  --zelen-hlbsia:#072319;
  --hlina-tmava:#42301A;
  --zelen:#12945C;
  --zelen-svetla:#54C08B;
  --zlato:#E3B547;
  --sampanske:#F4E5C6;
  --modra:#0F3A63;
  --voda:#63BEE8;
  --poda:#C4823F;
  --papier:#EFEDE1;
  --papier-2:#F8F6ED;
  --atrament:#17231C;
  --atrament-slaby:#4B5A51;
  --linka:#D8D6C6;
  --serif:"Alegreya", Georgia, "Times New Roman", serif;
  --sans:"Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --sirka:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:74px; -webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--papier); color:var(--atrament);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif); font-weight:700; line-height:1.12; letter-spacing:-.005em; margin:0}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
.obal{width:100%; max-width:var(--sirka); margin:0 auto; padding:0 22px}

:focus-visible{outline:3px solid var(--zlato); outline-offset:3px; border-radius:2px}

/* ---------- hlavicka ---------- */
.hlavicka{
  position:sticky; top:0; z-index:50;
  background:rgba(12,59,42,.96); backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.hlavicka .obal{display:flex; align-items:center; gap:16px; min-height:62px}
.znacka{
  font-family:var(--serif); font-weight:800; font-size:1.16rem; color:#fff;
  text-decoration:none; letter-spacing:.01em; white-space:nowrap;
  display:inline-flex; gap:.3em;
}
.znacka-slovo{display:inline-block; transition:transform .32s cubic-bezier(.4,1.5,.5,1)}
.znacka-b{color:var(--zlato)}
@keyframes prehodA{
  0%{transform:translate(0,0)}
  55%{transform:translate(calc(var(--posunA,0px) * .5), -.62em)}
  100%{transform:translate(var(--posunA,0px), 0)}
}
@keyframes prehodB{
  0%{transform:translate(0,0)}
  55%{transform:translate(calc(var(--posunB,0px) * .5), .62em)}
  100%{transform:translate(var(--posunB,0px), 0)}
}
.znacka:hover .znacka-a,.znacka:focus-visible .znacka-a{animation:prehodA .4s cubic-bezier(.5,0,.25,1) forwards}
.znacka:hover .znacka-b,.znacka:focus-visible .znacka-b{animation:prehodB .4s cubic-bezier(.5,0,.25,1) forwards}
.nav{margin-left:auto; display:flex; gap:26px; align-items:center}
.nav a{
  color:rgba(255,255,255,.82); text-decoration:none; font-size:.93rem; font-weight:500;
  padding:6px 0; border-bottom:2px solid transparent;
}
.nav a:hover{color:#fff; border-bottom-color:var(--zlato)}
.prepinac{
  margin-left:auto; display:none; background:none; border:1px solid rgba(255,255,255,.35);
  border-radius:6px; color:#fff; width:42px; height:38px; cursor:pointer; padding:0;
}
.prepinac span{display:block; width:19px; height:2px; background:#fff; margin:4px auto; border-radius:2px}

/* ---------- hero ---------- */
.hero{position:relative; background:var(--zelen-tmava); color:#fff; overflow:hidden}
.hero .obal{
  position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:56px;
  align-items:center; padding-top:64px; padding-bottom:64px;
}
.datum{
  font-size:.87rem; letter-spacing:.02em; color:var(--zlato); font-weight:600; margin-bottom:20px;
}
.hero h1{
  font-size:clamp(2.9rem, 8.5vw, 5.1rem); font-weight:800; color:#fff;
  letter-spacing:-.02em; margin-bottom:14px;
}
.titul{
  display:block; font-family:var(--sans); font-weight:600;
  font-size:clamp(.95rem,1.7vw,1.15rem); letter-spacing:.14em;
  color:var(--zelen-svetla); margin-bottom:6px;
}
.rola{
  font-family:var(--serif); font-size:clamp(1.15rem,2.6vw,1.5rem); font-style:italic;
  color:var(--zelen-svetla); margin-bottom:22px;
}
.hero-lead{font-size:1.08rem; color:rgba(255,255,255,.86); max-width:46ch; margin-bottom:30px}
.temy-uvod{font-size:.9rem; color:rgba(255,255,255,.58); margin:0 0 2px}
.temy{
  position:relative; overflow:hidden; height:1.28em; margin:0 0 34px;
  font-family:var(--serif); font-weight:800; font-size:clamp(2.7rem,7.4vw,4.5rem); line-height:1.28;
}
.tema{position:absolute; left:0; top:0; white-space:nowrap; line-height:1.28;
      transform:translateY(-100%); animation:striedanie 4.8s infinite}
.tema--voda{color:var(--voda)} .tema--poda{color:var(--poda)}
.tema--kultura{color:var(--zlato)}
.tema:nth-child(2){animation-delay:1.6s}
.tema:nth-child(3){animation-delay:3.2s}
@keyframes striedanie{
  0%      {transform:translateY(100%) rotate(-2.5deg)}
  13%     {transform:translateY(0) rotate(0)}
  33%     {transform:translateY(0) rotate(0)}
  46%,100%{transform:translateY(-100%) rotate(2.5deg)}
}
.hero-slova{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 32px; padding:0}
.hero-slova li{
  list-style:none; font-size:.84rem; font-weight:600; padding:5px 13px;
  border:1px solid rgba(255,255,255,.28); border-radius:999px; color:rgba(255,255,255,.9);
}
.tlacidla{display:flex; flex-wrap:wrap; gap:12px}
.btn{
  display:inline-block; text-decoration:none; font-weight:600; font-size:.96rem;
  padding:13px 26px; border-radius:4px; border:2px solid transparent;
}
.btn--plne{background:var(--zlato); color:#20180A}
.btn--plne:hover{background:#F0C662}
.btn--obrys{border-color:rgba(255,255,255,.45); color:#fff}
.btn--obrys:hover{border-color:#fff; background:rgba(255,255,255,.08)}

.portret{position:relative; z-index:0}
.portret img{
  width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 22%;
  border-radius:3px; box-shadow:0 24px 60px rgba(0,0,0,.4);
}
.portret::after{
  content:""; position:absolute; inset:14px -14px -14px 14px; z-index:-1;
  border:2px solid var(--zelen); border-radius:3px;
}

/* ---------- sekcie ---------- */
.sekcia{padding:82px 0}
.sekcia--pas{padding-top:0}
#o-mne{padding-top:112px; background:var(--sampanske); border-bottom:1px solid #E2CFA6}
.nadpis{font-size:clamp(1.9rem,4.4vw,2.9rem); margin-bottom:14px}
.podnadpis{color:var(--atrament-slaby); max-width:62ch; font-size:1.05rem; margin-bottom:44px}

/* o mne */
.o-mne{display:grid; grid-template-columns:1.6fr 252px; gap:52px; align-items:start}
.o-mne p{font-family:var(--serif); font-size:1.19rem; line-height:1.62; max-width:64ch}
.fakty{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0 26px;
  margin:44px 0 0; padding-top:24px; border-top:1px solid #E2CFA6;
}
.fakty > div{border-left:2px solid var(--zelen); padding-left:14px}
.fakty dt{font-weight:700; font-size:.76rem; color:var(--zelen); margin-bottom:3px}
.fakty dd{margin:0; font-size:.94rem; line-height:1.45; color:#41524A}

/* preco */
.preco{background:var(--papier-2); border-top:1px solid var(--linka); border-bottom:1px solid var(--linka)}
.preco-mriezka{display:grid; grid-template-columns:1fr 1.35fr; gap:56px; align-items:start}
.citat{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.5rem,3.4vw,2.15rem);
  line-height:1.32; color:var(--zelen-tmava); margin:0;
}
.citat-autor{margin-top:18px; font-size:.9rem; color:var(--atrament-slaby); font-style:normal; font-family:var(--sans)}

/* program */
.program-hlava{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:36px}
.program-hlava .podnadpis{margin-bottom:0}
.prep-vsetko{
  font-family:var(--sans); font-size:.9rem; font-weight:600; color:var(--zelen-tmava);
  background:none; border:1.5px solid var(--zelen-tmava); border-radius:4px;
  padding:9px 18px; cursor:pointer; white-space:nowrap;
}
.prep-vsetko:hover{background:rgba(12,59,42,.07)}

.program-mriezka{display:grid; grid-template-columns:repeat(auto-fit,minmax(252px,1fr)); gap:14px; align-items:start}
.blok{
  background:var(--papier-2); border:1px solid var(--linka); border-top:4px solid var(--zelen);
  border-radius:3px;
}
.blok summary{
  position:relative; list-style:none; cursor:pointer;
  padding:15px 46px 15px 18px; -webkit-tap-highlight-color:transparent;
}
.blok summary::-webkit-details-marker{display:none}
.blok summary:hover{background:rgba(18,148,92,.055)}
.blok summary::before,.blok summary::after{
  content:""; position:absolute; right:18px; top:50%; margin-top:-1.25px;
  width:15px; height:2.3px; background:var(--zelen); border-radius:2px;
  transition:transform .25s ease;
}
.blok summary::after{transform:rotate(90deg)}
.blok[open] summary::after{transform:rotate(180deg)}
.blok[open] summary{background:rgba(18,148,92,.055)}
.blok h3{font-size:1.05rem; margin:0; color:var(--zelen-tmava); display:inline}
.blok-obsah{padding:0 18px 19px}
.blok[open] .blok-obsah{animation:rozbal .3s cubic-bezier(.2,.7,.3,1)}
@keyframes rozbal{from{opacity:0; transform:translateY(-7px)} to{opacity:1; transform:none}}
.blok-obsah p{margin:0; font-size:.95rem; line-height:1.6; color:#2A382F}

/* ciele */
.ciele{background:var(--zelen-tmava); color:#fff; position:relative; overflow:hidden}
.ciele .nadpis{color:#fff}
.ciele-text{
  font-family:var(--serif); font-size:clamp(1.15rem,2.4vw,1.42rem); line-height:1.58;
  color:rgba(255,255,255,.9); max-width:66ch;
}
.ciele-zoznam{
  margin:38px 0 0; padding:0; list-style:none;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:26px;
}
.ciele-zoznam li{border-top:2px solid var(--zlato); padding-top:14px; font-size:1rem; color:rgba(255,255,255,.88)}
.ciele-zoznam strong{display:block; font-family:var(--serif); font-size:1.2rem; color:#fff; margin-bottom:6px}

/* kontakt */
.kontakt{text-align:center}
.kontakt .podnadpis{margin-left:auto; margin-right:auto}
.kontakt-linky{display:flex; flex-wrap:wrap; gap:12px; justify-content:center}
.btn--zeleny{background:var(--zelen-tmava); color:#fff}
.btn--zeleny:hover{background:#12513a}
.btn--tichy{border-color:var(--zelen-tmava); color:var(--zelen-tmava)}
.btn--tichy:hover{background:rgba(12,59,42,.07)}

/* tim Vajnory spolocne */
.tim-znak{
  display:inline-flex; align-items:center; gap:12px; text-decoration:none;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22);
  border-radius:999px; padding:6px 20px 6px 6px;
  color:#fff; font-size:.9rem; font-weight:600; transition:background .2s ease, border-color .2s ease;
}
.tim-znak:hover{background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.45)}
.tim-znak-obal{margin-bottom:26px}
.plava{will-change:transform}
.tim-znak img{width:38px; height:38px; border-radius:50%; flex:none}

.tim{background:var(--papier-2); border-top:1px solid var(--linka); border-bottom:1px solid var(--linka)}
.tim-hlava{display:grid; grid-template-columns:170px 1fr; gap:44px; align-items:start; margin-bottom:46px}
.tim-logo{width:170px; height:auto}
.tim-hlava p{max-width:64ch; font-size:1.06rem}
.tim-hlava .nadpis{margin-bottom:16px}
.tim-hlava .btn{margin-top:12px}
.tim-foto{margin:0}
.tim-foto img{width:100%; border-radius:3px; border:1px solid var(--linka)}
.tim-foto figcaption{margin-top:12px; font-size:.88rem; color:var(--atrament-slaby)}


/* ---------- Bakchus: stretnime sa ---------- */
.bakchus{background:var(--modra); color:#fff; position:relative; overflow:hidden}
.bakchus .obal{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center}
.peciatka-obal{display:inline-block; margin-bottom:20px; animation:pecatka-posun 4.3s ease-in-out infinite}
.peciatka{
  display:inline-block; border:2.5px solid var(--zlato); color:var(--zlato);
  border-radius:999px; padding:8px 22px; font-weight:700; font-size:.92rem;
  animation:pecatka-dych 5.5s ease-in-out infinite;
}
@keyframes pecatka-posun{0%,100%{transform:translateX(-15px)} 50%{transform:translateX(15px)}}
@keyframes pecatka-dych{
  0%,100%{transform:rotate(-8deg) scale(1) translateY(3px)}
  50%    {transform:rotate(-2deg) scale(1.07) translateY(-5px)}
}
.bakchus .nadpis{color:#fff; margin-bottom:10px}
.bakchus p{color:rgba(255,255,255,.88)}
.cas{
  font-family:var(--serif); font-weight:800; font-size:clamp(2.2rem,6vw,3.4rem);
  color:var(--zlato); line-height:1.06; margin:0 0 14px;
}
.bakchus-kde{font-size:1.06rem; max-width:44ch}
.bakchus-karta{
  border:1px solid rgba(255,255,255,.24); border-radius:6px; padding:26px 28px;
  background:rgba(255,255,255,.06);
}
.bakchus-karta dt{font-size:.78rem; font-weight:700; color:var(--zlato); margin-bottom:3px}
.bakchus-karta dd{margin:0 0 16px; font-size:1rem; color:rgba(255,255,255,.9)}
.bakchus-karta dd:last-child{margin-bottom:0}

/* ---------- pohyb ---------- */
.odhal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1)}
.odhal.videny{opacity:1; transform:none}
.o1{transition-delay:.09s} .o2{transition-delay:.18s} .o3{transition-delay:.27s}

.portret img{transition:transform .45s cubic-bezier(.34,1.4,.5,1)}
.portret:hover img{transform:rotate(-1.8deg) scale(1.025)}
.portret::after{transition:transform .45s cubic-bezier(.34,1.4,.5,1)}
.portret:hover::after{transform:translate(8px,-8px)}

/* polaroid maly Ondro */
.polaroid{
  margin:0; max-width:252px; background:#fff; padding:12px 12px 0;
  box-shadow:0 12px 32px rgba(0,0,0,.17); transform:rotate(-3.2deg);
  transition:transform .45s cubic-bezier(.34,1.4,.5,1);
}
.polaroid:hover{transform:rotate(.5deg) scale(1.04)}
@media (hover:none){
  .polaroid{animation:polaroid-hoj 7s ease-in-out infinite}
  .portret img{animation:portret-hoj 6.5s ease-in-out infinite}
}
@keyframes polaroid-hoj{0%,100%{transform:rotate(-3.2deg)} 50%{transform:rotate(1.5deg)}}
@keyframes portret-hoj{0%,100%{transform:rotate(-1.8deg) scale(1)} 50%{transform:rotate(1.6deg) scale(1.02)}}
.mail-tap:active,.btn:active{transform:scale(.98)}
.polaroid img{width:100%}
.polaroid figcaption{
  font-family:var(--serif); font-style:italic; font-size:1.02rem; text-align:center;
  padding:11px 0 15px; color:var(--atrament-slaby);
}

/* tri hlavne priority */
.hlavne-obal{position:relative; margin:78px 0 62px}
.hlavne{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; position:relative; z-index:1}
.hlavna{
  position:relative; overflow:hidden; background:var(--zelen-tmava); color:#fff;
  border-radius:4px; padding:30px 28px 32px;
  transition:transform .38s cubic-bezier(.34,1.3,.5,1), box-shadow .38s ease;
}
.hlavna:hover{transform:translateY(-7px) rotate(-.7deg); box-shadow:0 22px 46px rgba(12,59,42,.3)}
.hlavna:nth-child(2):hover{transform:translateY(-7px) rotate(.7deg)}
.hlavna{border-top:5px solid var(--akcent,var(--zlato))}
.hlavna::before{
  content:""; position:absolute; right:-52px; top:-52px; width:150px; height:150px;
  border-radius:50%; background:var(--akcent,var(--zlato)); opacity:.13; pointer-events:none;
  transition:transform .45s cubic-bezier(.34,1.3,.5,1);
}
.hlavna:hover::before{transform:scale(1.28)}
.hlavna--voda{--akcent:var(--voda)}
.hlavna--poda{--akcent:var(--poda)}
.hlavna--kultura{--akcent:var(--zlato)}
.hlavna h3{
  font-size:1.9rem; color:var(--akcent,#fff); margin-bottom:14px; position:relative;
  letter-spacing:.01em;
}
.hlavna p{color:rgba(255,255,255,.86); font-size:1rem; line-height:1.62; margin:0; position:relative}

.dalsie-nadpis{
  font-family:var(--sans); font-size:.86rem; font-weight:700; color:var(--atrament-slaby);
  margin:0 0 20px; display:flex; align-items:center; gap:16px;
}
.dalsie-nadpis::after{content:""; flex:1; height:1px; background:var(--linka)}

/* vyskakujuci vyrez */
.peek{position:absolute; pointer-events:none; z-index:0; filter:drop-shadow(0 10px 24px rgba(0,0,0,.22))}
.peek img{display:block; width:100%}
.vyskok img{display:block; width:100%; transform-origin:50% 100%}
.peek--program{
  right:52px; top:0; width:134px;
  transform:translate(0,42%) rotate(3deg); opacity:0;
  transition:transform 1s cubic-bezier(.24,1.15,.4,1) .25s, opacity .45s ease .25s;
}
.hlavne-obal.videny .peek--program{transform:translate(44px,-56%) rotate(13deg); opacity:1}

/* pole / video */
.pole{background:var(--hlina-tmava); color:#fff; text-align:center}
.pole-text{max-width:62ch; margin:0 auto}
.pole .nadpis{
  color:#fff; margin-bottom:20px; position:relative; padding-top:30px;
  font-size:clamp(1.9rem,4.6vw,3rem);
}
.pole .nadpis::before{
  content:""; position:absolute; left:50%; top:0; width:56px; height:3px;
  margin-left:-28px; background:var(--zlato); border-radius:2px;
}
.pole-text p{color:rgba(255,255,255,.87); font-size:1.12rem; margin:0}

/* zaverecna vyzva */
.zaver{background:var(--zelen-tmava); color:#fff; position:relative; overflow:hidden}
.zaver .obal{display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:end}
.zaver h2{font-size:clamp(2.1rem,5.2vw,3.4rem); color:#fff; margin-bottom:20px; line-height:1.08}
.zaver p{font-size:1.1rem; color:rgba(255,255,255,.86); max-width:52ch; margin-bottom:30px}
.vyskok{
  align-self:end; width:100%; max-width:290px; justify-self:end; display:block;
  margin-bottom:-82px; transform:translateY(105%) rotate(6deg); opacity:0;
  transition:transform .95s cubic-bezier(.24,1.12,.4,1) .15s, opacity .5s ease .15s;
  filter:drop-shadow(0 -6px 26px rgba(0,0,0,.35));
}
.zaver.videny .vyskok{transform:translateY(0) rotate(-2deg); opacity:1}

/* pata */
.pata{background:var(--zelen-hlbsia); color:rgba(255,255,255,.72); padding:48px 0 32px; font-size:.92rem}
.pata-mriezka{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px; margin-bottom:34px}
.pata h4{font-family:var(--sans); font-size:.82rem; font-weight:700; color:var(--zlato); margin:0 0 12px}
.pata ul{list-style:none; margin:0; padding:0}
.pata li{margin-bottom:7px}
.pata a{color:rgba(255,255,255,.78); text-decoration:none}
.pata a:hover{color:#fff; text-decoration:underline}
.pata-znacka{font-family:var(--serif); font-size:1.35rem; font-weight:800; color:#fff; margin-bottom:8px}
.pravne{border-top:1px solid rgba(255,255,255,.14); padding-top:20px; font-size:.8rem; color:rgba(255,255,255,.5); line-height:1.55}
.pravne a{color:rgba(255,255,255,.72)}

/* nabeh */
.nabeh{opacity:0; transform:translateY(14px); animation:vstup .7s cubic-bezier(.2,.7,.3,1) forwards}
.hero .datum{animation-delay:.05s}
.hero h1{animation-delay:.14s}
.hero .rola{animation-delay:.22s}
.hero .tim-znak-obal{animation-delay:.27s}
.hero .hero-lead{animation-delay:.3s}
.hero .temy-uvod{animation-delay:.34s}
.hero .temy{animation-delay:.38s}
.hero .tlacidla{animation-delay:.42s}
.hero .portret{animation-delay:.3s}
@keyframes vstup{to{opacity:1; transform:none}}

@media (max-width:900px){
  .hero .obal{grid-template-columns:1fr; padding-top:30px; padding-bottom:52px; gap:30px}
  .hero-text{order:2}
  .portret{order:1; max-width:280px}
  .o-mne,.preco-mriezka,.pata-mriezka{grid-template-columns:1fr; gap:34px}
  .fakty{grid-template-columns:1fr 1fr; gap:20px 22px; margin-top:34px}
  .tim-hlava{grid-template-columns:1fr; gap:26px; margin-bottom:34px}
  .bakchus .obal{grid-template-columns:1fr; gap:28px}
  .temy{font-size:clamp(2.5rem,9vw,3.5rem)}
  .hlavne{grid-template-columns:1fr; gap:14px}
  .hlavne-obal{margin-bottom:44px}
  .peek{display:none}
  .hlavne-obal{margin-top:0}
  .zaver .obal{grid-template-columns:1fr; gap:0}
  .vyskok{max-width:210px; justify-self:center; margin-bottom:-58px}
  .polaroid{max-width:210px}
  .tim-logo{width:118px}
  .nav{
    display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    gap:0; background:var(--zelen-tmava); padding:8px 22px 16px; border-bottom:1px solid rgba(255,255,255,.12);
  }
  .nav.otvorene{display:flex}
  .nav a{padding:11px 0; border-bottom:1px solid rgba(255,255,255,.1); width:100%}
  .prepinac{display:block}
  .sekcia{padding:58px 0}
  #o-mne{padding-top:84px}
}
@media (max-width:520px){
  body{font-size:16px}
  .btn{width:100%; text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important}
  html{scroll-behavior:auto}
  .nabeh,.odhal{opacity:1; transform:none}
  .temy{position:static; height:auto; display:flex; flex-wrap:wrap; gap:.1em .45em; font-size:clamp(1.5rem,5vw,2.2rem)}
  .tema{position:static; transform:none}
  .peek--program{opacity:1; transform:translateY(-44%) rotate(7deg)}
  .vyskok{opacity:1; transform:none}
}
@media print{
  .hlavicka{display:none}
  body{background:#fff}
  .hero,.ciele,.pata{background:#fff; color:#000}
}

/* ============================================================
   MOJE PROJEKTY
   ============================================================ */
.projekty{background:var(--papier-2); border-top:1px solid var(--linka); border-bottom:1px solid var(--linka)}
.projekty-mriezka{display:grid; grid-template-columns:repeat(auto-fit,minmax(420px,1fr)); gap:20px}
.projekt{
  position:relative; display:flex; flex-direction:column; overflow:hidden;
  background:#fff; border:1px solid var(--linka); border-left:5px solid var(--akcent,var(--zelen));
  border-radius:4px; padding:26px 26px 22px; text-decoration:none; color:inherit;
  transition:transform .38s cubic-bezier(.34,1.3,.5,1), box-shadow .38s ease;
}
.projekt:hover{transform:translateY(-6px); box-shadow:0 18px 40px rgba(12,59,42,.15)}
.projekt::before{
  content:""; position:absolute; right:-46px; top:-46px; width:130px; height:130px;
  border-radius:50%; background:var(--akcent,var(--zelen)); opacity:.09; pointer-events:none;
  transition:transform .45s cubic-bezier(.34,1.3,.5,1);
}
.projekt:hover::before{transform:scale(1.3)}
.projekt--voda{--akcent:#2C7FAE}
.projekt--poda{--akcent:var(--poda)}
.projekt--kultura{--akcent:#B8891F}
.projekt-druh{
  position:relative; font-size:.78rem; font-weight:700; color:var(--akcent,var(--zelen));
  margin-bottom:8px;
}
.projekt h3{position:relative; font-size:1.34rem; color:var(--zelen-tmava); margin-bottom:11px; line-height:1.2}
.projekt p{position:relative; font-size:.98rem; line-height:1.58; color:#41524A; margin:0 0 18px}
.projekt-odkaz{
  position:relative; margin-top:auto; font-size:.93rem; font-weight:600;
  color:var(--akcent,var(--zelen)); border-bottom:2px solid currentColor; padding-bottom:2px;
  align-self:flex-start;
}

/* ============================================================
   VIDEO A MÉDIÁ
   ============================================================ */
.video{background:var(--zelen-tmava); color:#fff}
.video .nadpis{color:#fff}
.video .podnadpis{color:rgba(255,255,255,.72)}
.video-mriezka{display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:18px}
.video-karta{
  display:flex; flex-direction:column; overflow:hidden;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2); border-radius:5px;
  transition:background .3s ease, border-color .3s ease, transform .38s cubic-bezier(.34,1.3,.5,1);
}
.video-karta:hover{background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.38)}

/* prehrávač YouTube priamo v karte — náhľad aj tlačidlo kreslí YouTube */
.video-ramik{position:relative; aspect-ratio:16/9; background:#000; overflow:hidden; line-height:0}
.video-ramik iframe{position:absolute; inset:0; width:100%; height:100%; border:0}

.video-telo{padding:20px 22px 22px}
.video-zdroj{display:block; font-size:.78rem; font-weight:700; color:var(--zlato); margin-bottom:7px}
.video-karta h3{font-size:1.18rem; color:#fff; margin:0 0 9px; line-height:1.24}
.video-karta p{font-size:.95rem; line-height:1.55; color:rgba(255,255,255,.78); margin:0}

/* ============================================================
   KONFERENCIA — široká karta s fotkou (Valencia 2024)
   ============================================================ */
.konferencia{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:0;
  margin-top:18px; border:1px solid rgba(255,255,255,.2); border-radius:5px; overflow:hidden;
  background:rgba(255,255,255,.06);
}
.konferencia img{width:100%; height:100%; object-fit:cover; display:block; min-height:230px}
.konferencia-text{padding:28px 30px}
.konferencia-text h3{font-size:1.36rem; color:#fff; margin-bottom:11px; line-height:1.22}
.konferencia-text p{font-size:.97rem; line-height:1.58; color:rgba(255,255,255,.8); margin:0 0 10px}
.konferencia-popis{font-size:.84rem !important; color:rgba(255,255,255,.52) !important; margin:0 !important}

/* ============================================================
   VAJNORSKÉ NOVINKY 2019 — titulka + PDF na stiahnutie
   ============================================================ */
.novinky{
  margin-top:42px;
  display:grid; grid-template-columns:232px 1fr; gap:34px; align-items:center;
  max-width:860px; padding:28px 30px; text-decoration:none; color:inherit;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); border-radius:5px;
  transition:background .3s ease, border-color .3s ease, transform .38s cubic-bezier(.34,1.3,.5,1);
}
.novinky:hover{background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.45); transform:translateY(-5px)}
.novinky-titul{
  width:100%; display:block; border-radius:3px; box-shadow:0 14px 34px rgba(0,0,0,.45);
  transform:rotate(-2deg); transition:transform .45s cubic-bezier(.34,1.4,.5,1);
}
.novinky:hover .novinky-titul{transform:rotate(1.2deg) scale(1.035)}
.novinky-telo{display:block}
.novinky-zdroj{display:block; font-size:.78rem; font-weight:700; color:var(--zlato); margin-bottom:7px}
.novinky-nadpis{
  display:block; font-family:var(--serif); font-weight:700; font-size:1.5rem;
  color:#fff; line-height:1.2; margin-bottom:11px;
}
.novinky-text{display:block; font-size:.96rem; line-height:1.58; color:rgba(255,255,255,.8); margin-bottom:12px}
.novinky-odkaz{
  display:inline-block; font-size:.92rem; font-weight:600; color:var(--zlato);
  border-bottom:2px solid currentColor; padding-bottom:2px; margin-top:4px;
}

@media (max-width:900px){
  .konferencia{grid-template-columns:1fr}
  .konferencia img{min-height:190px; max-height:250px}
  .konferencia-text{padding:24px 22px}
  .novinky{grid-template-columns:1fr; gap:22px; padding:22px}
  .novinky-titul{max-width:210px}
}
@media (hover:none){
  .novinky-titul{animation:titulka-hoj 7s ease-in-out infinite}
}
@keyframes titulka-hoj{0%,100%{transform:rotate(-2deg)} 50%{transform:rotate(1.4deg)}}
