/* stav-AT úpravy – realizácie (mosaic rows), vlastný softvér, prihlásenie */
:root{ --stu-accent:#FFD400; --stu-ink:#F2F2EF; --stu-muted:#A6A6A0; --stu-text:#C8C8C2; --stu-line:rgba(255,255,255,.09); --stu-card:#141416; --stu-bg:#0C0C0D; }

/* ---------- Úvodný nadpis na mobile ----------
   The theme sizes it at 14vw on phones, so the longest word ("CONSTRUCTION" in EN,
   "BAUPROJEKTE" in DE, "A REALIZUJEME" in SK) ran past the screen edge.
   Size it to the space between the page margins instead (about 9.2 letters' width). */
@media (max-width: 640px){
	#top .hero-title{ font-size: max(26px, min(14vw, calc((100vw - 2 * max(20px, 4vw)) / 9.2))); }
}

/* ---------- Realizácie ---------- */
.stu-list{ display:flex; flex-direction:column; gap:28px; }
.stu-row{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); background:var(--stu-card); border:1px solid var(--stu-line); }
.stu-mosaic{ display:grid; gap:4px; aspect-ratio:4/3; background:var(--stu-bg); min-width:0; }
.stu-n1{ grid-template-columns:1fr; }
.stu-n2{ grid-template-columns:1fr 1fr; }
.stu-n3{ grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,minmax(0,1fr)); }
.stu-n3 .stu-ph:first-child{ grid-row:1 / 3; }
.stu-n4{ grid-template-columns:2fr 1fr; grid-template-rows:repeat(3,minmax(0,1fr)); }
.stu-n4 .stu-ph:first-child{ grid-row:1 / 4; }
.stu-n5{ grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); }
.stu-n5 .stu-ph:first-child{ grid-column:1 / 3; grid-row:1 / 3; }

.stu-ph{ position:relative; display:block; width:100%; height:100%; min-height:0; padding:0; margin:0; border:0; background:#1B1B1E; overflow:hidden; cursor:zoom-in; }
.stu-ph img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease, filter .3s ease; }
.stu-ph:hover img{ transform:scale(1.05); }
.stu-ph:focus-visible{ outline:2px solid var(--stu-accent); outline-offset:-2px; }
.stu-more{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(12,12,13,.6); color:var(--stu-ink); font-size:20px; }

.stu-meta{ display:flex; flex-direction:column; justify-content:center; gap:12px; padding:40px 44px; min-width:0; }
.stu-meta .gal-tag{ color:var(--stu-accent); font-size:13px; letter-spacing:.1em; }
.stu-meta .gal-loc{ color:var(--stu-muted); font-size:13px; }
.stu-badge{ align-self:flex-start; padding:5px 9px; background:var(--stu-accent); color:var(--stu-bg); font-size:11px; letter-spacing:.1em; }
.stu-title{ margin:0; font-family:Archivo, system-ui, sans-serif; font-weight:800; font-size:clamp(22px, 2.3vw, 30px); line-height:1.12; text-transform:uppercase; color:var(--stu-ink); }
.stu-desc{ margin:6px 0 0; font-size:16px; line-height:1.65; color:var(--stu-text); }
.stu-count{ margin-top:6px; font-size:12px; color:#8E8E88; letter-spacing:.04em; }

@media (max-width: 860px){
	.stu-row{ grid-template-columns:1fr; }
	.stu-meta{ padding:22px 20px 26px; gap:10px; }
	.stu-list{ gap:20px; }
}

/* ---------- Lightbox ---------- */
.stu-lb{ position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; background:rgba(6,6,7,.95); padding:24px; }
.stu-lb[hidden]{ display:none; }
.stu-lb-figure{ margin:0; display:flex; flex-direction:column; gap:14px; max-width:min(1200px, 100%); }
.stu-lb-img{ display:block; max-width:100%; max-height:calc(100vh - 140px); object-fit:contain; margin:0 auto; }
.stu-lb-cap{ display:flex; flex-wrap:wrap; gap:8px 20px; align-items:baseline; color:var(--stu-ink); }
.stu-lb-tag{ color:var(--stu-accent); font-size:12px; letter-spacing:.1em; }
.stu-lb-title{ flex:1 1 auto; font-family:Archivo, system-ui, sans-serif; font-weight:700; font-size:18px; }
.stu-lb-counter{ color:var(--stu-muted); font-size:13px; }
.stu-lb-close, .stu-lb-nav{ position:absolute; width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:rgba(12,12,13,.7); color:var(--stu-ink); border:1px solid #3A3A3F; font-size:28px; line-height:1; cursor:pointer; }
.stu-lb-close:hover, .stu-lb-nav:hover{ border-color:var(--stu-accent); color:var(--stu-accent); }
.stu-lb-close{ top:20px; right:20px; }
.stu-lb-prev{ left:20px; top:50%; transform:translateY(-50%); }
.stu-lb-next{ right:20px; top:50%; transform:translateY(-50%); }
@media (max-width: 600px){
	.stu-lb{ padding:12px; }
	.stu-lb-prev, .stu-lb-next{ top:auto; bottom:16px; transform:none; }
	.stu-lb-img{ max-height:calc(100vh - 170px); }
}

/* ---------- Vlastný softvér ---------- */
.services.stu-services-3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); }
@media (max-width: 1024px){ .services.stu-services-3{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px){ .services.stu-services-3{ grid-template-columns:1fr; } }

/* ---------- Prihlásenie v hlavičke ---------- */
.stu-login{ display:inline-flex; align-items:center; gap:8px; margin-right:14px; padding:9px 14px; border:1px solid var(--stu-accent); color:var(--stu-accent) !important; font-size:12px; letter-spacing:.06em; text-decoration:none; white-space:nowrap; transition:background .2s, color .2s; }
.stu-login:hover{ background:var(--stu-accent); color:var(--stu-bg) !important; }
.stu-login svg{ flex:0 0 auto; width:15px; height:15px; }
.stu-login-m{ display:none !important; }
@media (max-width: 1200px){
	.stu-login{ padding:8px 10px; }
	.stu-login span{ display:none; }
}
/* From 1024 px down the theme shows the burger menu: the link moves into it. */
@media (max-width: 1024px){
	.stu-login{ display:none !important; }
	.nav-links .stu-login-m{ display:block !important; color:var(--stu-accent) !important; }
}
