:root {
  --c-bg:#121110;
  --c-bg-alt:#1d1a18;
  --c-panel:#272321;
  --c-accent:#d09b3a;
  --c-accent-soft:#f4c567;
  --c-text:#f2eee9;
  --c-muted:#9d948c;
  --c-danger:#d84834;
  --grad-accent:linear-gradient(135deg,#d09b3a,#a56815 55%,#703d00);
  --ff-heading:"Impact","Oswald","Arial Narrow",sans-serif;
  --hero-viewport-height:100svh;
}
html,body {background:var(--c-bg);color:var(--c-text);}
body {font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;}
a {color:var(--c-accent);text-decoration:none;}
a:hover {color:var(--c-accent-soft);}
.navbar {background:rgba(0,0,0,.55);-webkit-backdrop-filter:saturate(1.3) blur(8px);backdrop-filter:saturate(1.3) blur(8px);}
.navbar > .container {
  max-width:none;
  padding-left:clamp(1rem,3vw,2.4rem);
  padding-right:clamp(1rem,3vw,2.4rem);
}
.navbar .nav-link {color:var(--c-text);font-weight:500;letter-spacing:.5px;}
.navbar .nav-link.active,
.navbar .nav-link:hover {color:var(--c-accent);}
.navbar-brand .fw-semibold{
  background:var(--grad-accent);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent!important;
  letter-spacing:.5px;
}
.navbar-brand {
  margin-right:0;
  padding-right:.25rem;
}
.language-switcher {
  display:flex;
  align-items:center;
  position:relative;
}
.language-switcher::after {
  content:"";
  position:absolute;
  right:.62rem;
  top:50%;
  width:.42rem;
  height:.42rem;
  border-right:2px solid var(--c-accent-soft);
  border-bottom:2px solid var(--c-accent-soft);
  transform:translateY(-62%) rotate(45deg);
  pointer-events:none;
  opacity:.9;
}
.language-select {
  appearance:none;
  -webkit-appearance:none;
  min-height:34px;
  min-width:74px;
  padding:.28rem 1.75rem .28rem .7rem;
  border:1px solid rgba(208,155,58,.38);
  border-radius:999px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0)),
    rgba(18,17,16,.82);
  color:var(--c-text);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035), 0 3px 12px rgba(0,0,0,.25);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  cursor:pointer;
  transition:border-color .2s, background .2s, box-shadow .2s, color .2s;
}
.language-select:hover,
.language-select:focus {
  border-color:rgba(244,197,103,.82);
  background:
    linear-gradient(180deg,rgba(244,197,103,.12),rgba(255,255,255,0)),
    rgba(18,17,16,.92);
  color:#fff;
  box-shadow:0 0 0 2px rgba(208,155,58,.16), 0 4px 16px rgba(0,0,0,.35);
}
.language-select:focus {
  outline:0;
}
.language-select::-ms-expand {
  display:none;
}
@media (max-width:420px){
  .language-select {
    min-width:66px;
    padding-left:.6rem;
    padding-right:1.55rem;
    font-size:.68rem;
  }
  .language-switcher::after {
    right:.55rem;
    width:.36rem;
    height:.36rem;
  }
}
.hero {
  position:relative;
  background-image:url("image/main/main_picture_1920.jpg");
  background-image:
    image-set(
      "image/main/main_picture_1920.avif" type("image/avif"),
      "image/main/main_picture_1920.webp" type("image/webp"),
      "image/main/main_picture_1920.jpg" type("image/jpeg"),
      "image/main/main_picture.jpg" type("image/jpeg")
    );
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  min-height:60vh;
  min-height:60svh;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
  overflow:hidden;
}
.hero.hero-full {
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  min-height:var(--hero-viewport-height);
  padding-top:5.5rem;
  padding-bottom:calc(5.4rem + env(safe-area-inset-bottom,0px));
}
.hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(95deg, rgba(0,0,0,.80) 0%, rgba(0,0,0,.58) 40%, rgba(0,0,0,.42) 68%, rgba(0,0,0,.28) 100%);
}
.hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .35s ease;
}
.hero-video.is-playing {
  opacity:1;
}
.hero > .container {
  position:relative;
  z-index:2;
  width:100%;
}
.hero .logo-wrap{display:none;}
.hero h1{
  font-weight:900;
  font-size:clamp(3.75rem,12vw,6.5rem);
  letter-spacing:.08em;
  color:#fff;
  text-shadow:
    2px 0 2px rgba(255,255,255,.55),
    0 0 12px rgba(255,255,255,.35),
    -4px 0 6px rgba(0,0,0,.65),
    -10px 0 16px rgba(0,0,0,.55),
    -18px 0 34px rgba(0,0,0,.5);
  position:relative;
  z-index:2;
}
.hero h1::after{
  content:"";
  display:block;
  width:140px;
  height:7px;
  margin:14px 0 0;
  background:linear-gradient(90deg,#ffc107,#ff8f1f,#ff6000);
  border-radius:4px;
  box-shadow:0 0 10px rgba(255,140,0,.5);
}
.hero-claim {
  max-width:42ch;
  margin:.75rem 0 0;
  color:var(--c-text);
  font-size:clamp(1rem,1.4vw,1.15rem);
  font-weight:700;
  line-height:1.35;
  text-shadow:0 2px 8px rgba(0,0,0,.65);
}
.hero .tagline{
  max-width:48ch;
  font-size:1.07rem;
  line-height:1.42;
  position:relative;
  z-index:2;
  text-shadow:
    1px 0 2px rgba(255,255,255,.4),
    -2px 0 5px rgba(0,0,0,.6);
}
.hero-cta-stack {
  display:grid;
  grid-template-columns:minmax(0,min(680px,100%));
  align-items:stretch;
  justify-content:center;
  gap:.85rem;
}
.post-hero-promos {
  position:relative;
  z-index:1;
  padding:clamp(1.5rem,4vw,2.7rem) 0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.88),rgba(18,17,16,.96)),
    var(--c-bg);
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.post-hero-promos .hero-season-cta {
  width:100%;
  height:100%;
}
.post-hero-promos .hero-season-cta {
  text-align:center;
}
.hero-season-cta {
  padding:1.1rem 1.15rem 1.2rem;
  border:1px solid rgba(208,155,58,.38);
  border-radius:8px;
  background:rgba(18,17,16,.74);
  -webkit-backdrop-filter:saturate(1.15) blur(8px);
  backdrop-filter:saturate(1.15) blur(8px);
  box-shadow:0 14px 38px rgba(0,0,0,.38);
}
.hero-season-cta p {
  margin:0 0 1rem;
  color:var(--c-text);
  font-size:.95rem;
  line-height:1.55;
}
.hero-season-cta .btn-accent {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-inline:auto;
  min-height:44px;
  padding:.72rem 1.15rem;
  border-radius:5px;
}
.floating-banner {
  position:fixed;
  right:clamp(.75rem,2vw,1.25rem);
  bottom:calc(5.8rem + env(safe-area-inset-bottom,0px));
  z-index:1200;
  max-width:min(360px,calc(100vw - 1.5rem));
  padding:.85rem 1rem;
  border:1px solid rgba(208,155,58,.5);
  border-radius:8px;
  background:rgba(18,17,16,.94);
  color:var(--c-text);
  box-shadow:0 14px 40px rgba(0,0,0,.42);
  -webkit-backdrop-filter:saturate(1.15) blur(8px);
  backdrop-filter:saturate(1.15) blur(8px);
  font-size:.9rem;
  line-height:1.4;
}
.floating-banner a {
  color:inherit;
  text-decoration:none;
}
.floating-banner strong {
  color:var(--c-accent-soft);
}
.hero-social-dock {
  position:absolute;
  left:50%;
  bottom:calc(clamp(1rem,3vh,1.7rem) + env(safe-area-inset-bottom,0px));
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.72rem;
  padding:.56rem .8rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(0,0,0,.54);
  -webkit-backdrop-filter:saturate(1.1) blur(8px);
  backdrop-filter:saturate(1.1) blur(8px);
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.hero-social-link {
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  border-radius:50%;
  opacity:.94;
  transition:transform .2s, opacity .2s, background .2s;
}
.hero-social-link svg,
.hero-social-link img {
  width:30px;
  height:30px;
  object-fit:contain;
  fill:currentColor;
}
.hero-social-link:hover,
.hero-social-link:focus-visible {
  opacity:1;
  transform:translateY(-2px);
  background:rgba(255,255,255,.12);
}
@media (max-width:992px){
  .hero{padding-top:6rem;}
  .hero h1{font-size:clamp(3.28rem,13vw,5.25rem);}
}
@media (max-width:900px){
  .hero{
    background-image:url("image/main/main_picture_mobile_900x1600.jpg");
    background-image:
      image-set(
        "image/main/main_picture_mobile_900x1600.avif" type("image/avif"),
        "image/main/main_picture_mobile_900x1600.webp" type("image/webp"),
        "image/main/main_picture_mobile_900x1600.jpg" type("image/jpeg")
      );
    background-position:center center;
  }
}

.section-pad {padding:4.5rem 0 4rem;}
.section-head {display:flex;align-items:center;gap:1.25rem;margin-bottom:2rem;}
.section-head h2 {
  font-family:var(--ff-heading);
  letter-spacing:.04em;
  margin:0;
  font-size:2rem;
  background:var(--grad-accent);
  -webkit-background-clip:text;
  color:transparent;
}
.section-head .bar {
  flex:1;
  height:4px;
  background:linear-gradient(90deg,var(--c-accent),transparent);
  border-radius:2px;
}

.list-simple {list-style:none;padding:0;margin:0;}
.list-simple li {padding:.4rem 0;border-bottom:1px solid #2c2724;}
.event-list li {padding:0;}
.event-list {
  max-width:840px;
  margin-inline:auto;
}
.event-item {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  padding:.55rem 0;
  border-bottom:1px solid #2c2724;
}
.event-link {
  display:flex;
  align-items:center;
  gap:.6rem;
  min-height:44px;
  padding:.15rem 0;
  color:var(--c-text);
  text-decoration:none;
}
.event-link .badge-date {flex:0 0 auto;}
.event-link:hover,
.event-link:focus-visible {color:var(--c-accent-soft);}
.calendar-trigger {
  min-height:38px;
  padding:.45rem .72rem;
  border:1px solid rgba(208,155,58,.58);
  border-radius:5px;
  background:rgba(208,155,58,.08);
  color:var(--c-accent-soft);
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  transition:.2s;
}
.calendar-trigger:hover,
.calendar-trigger:focus-visible {
  color:#000;
  background:var(--grad-accent);
  border-color:var(--c-accent);
}

.badge-date {
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.05em;
  background:var(--c-danger);
  color:#fff;
  padding:.3rem .45rem;
  border-radius:3px;
  margin-right:.6rem;
  vertical-align:middle;
}

.card-minimal {
  background:var(--c-panel);
  border:1px solid #332d2a;
  padding:1.25rem 1.2rem 1.4rem;
  border-radius:.6rem;
  box-shadow:0 4px 18px -6px rgba(0,0,0,.55);
}
.card-minimal h3 {font-size:1.05rem;margin:0 0 .75rem;font-weight:600;color:var(--c-accent);}

.muted {color:var(--c-muted)!important;}

.member-medallion {
  width:200px;
  height:200px;
  object-fit:cover;
  object-position:center center;
}

.archive ul {padding-left:0;list-style:none;margin:0;}
.archive li {padding:.5rem 0;border-bottom:1px dashed #3a332f;}

#kontakt {background:var(--c-bg-alt);}
#kontakt .contact-grid {display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:1.2rem;}
.contact-box {
  background:var(--c-panel);
  border:1px solid #362f2b;
  padding:1rem .95rem 1.05rem;
  border-radius:.55rem;
  font-size:.9rem;
}
.contact-box h3 {font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 .4rem;color:var(--c-accent);}

.btn-accent{
  font-weight:500;
  color:var(--c-accent);
  border:1px solid var(--c-accent);
  background:rgba(208,155,58,.08);
  transition:.25s;
  letter-spacing:.5px;
}
.btn-accent:hover,
.btn-accent:focus{
  color:#000;
  background:var(--grad-accent);
  border-color:var(--c-accent);
  box-shadow:0 0 0 2px rgba(208,155,58,.25);
}
.btn-accent:active{filter:brightness(.9);}
.email-action {
  position:relative;
  display:flex;
  align-items:center;
  min-height:52px;
  border:1px solid var(--c-accent);
  border-radius:5px;
  background:rgba(208,155,58,.08);
  overflow:hidden;
  transition:.25s;
}
.email-action:hover,
.email-action:focus-within {
  border-color:var(--c-accent-soft);
  box-shadow:0 0 0 2px rgba(208,155,58,.2);
}
.email-action-main {
  flex:1 1 auto;
  min-width:0;
  align-self:stretch;
  display:flex;
  align-items:center;
  padding:.72rem 3.65rem .72rem .75rem;
  color:var(--c-accent);
  font-weight:700;
  text-decoration:none;
  letter-spacing:.03em;
}
.email-action-main:hover,
.email-action-main:focus {color:var(--c-accent-soft);}
.email-action-label {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.email-copy-btn {
  position:absolute;
  right:.35rem;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  min-height:36px;
  padding:0;
  border:1px solid rgba(255,255,255,.5);
  border-radius:4px;
  background:rgba(18,17,16,.86);
  color:var(--c-text);
  font-weight:600;
  line-height:1;
  transition:.2s;
}
.email-copy-btn svg {
  width:18px;
  height:18px;
  fill:currentColor;
}
.email-copy-btn:hover,
.email-copy-btn:focus-visible {
  border-color:var(--c-accent-soft);
  color:#000;
  background:var(--grad-accent);
}
.copy-msg{display:inline-block;}

footer {padding:2.5rem 0 3rem;background:#0d0b0a;font-size:.8rem;color:var(--c-muted);}

.btn-top {
  position:fixed;right:1rem;bottom:1rem;
  background:var(--grad-accent);color:#000;
  border:none;border-radius:50%;width:42px;height:42px;
  font-size:1.1rem;cursor:pointer;
  box-shadow:0 4px 14px -4px rgba(0,0,0,.6);
}
.btn-top:hover {filter:brightness(1.15);}

.focus-outline:focus {outline:2px solid var(--c-accent);outline-offset:2px;}

.logo-transparent {background:transparent!important;box-shadow:none;border-radius:0;}

.social-links .social-link{
  --c:var(--c-accent);
  --size:60px;
  width:var(--size);
  height:var(--size);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #2a2a2a;
  border-radius:.8rem;
  background:#181818;
  color:#e0e0e0;
  text-decoration:none;
  position:relative;
  overflow:hidden;
  transition:.35s;
  font-size:0;
}
.social-links .social-link svg,
.social-links .social-link img{
  width:28px;
  height:28px;
  pointer-events:none;
  filter:brightness(.92);
  transition:.35s;
}
.social-links .social-link::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.18),transparent 70%);
  opacity:0;
  transition:.4s;
}
.social-links .social-link:hover,
.social-links .social-link:focus-visible{
  border-color:var(--c);
  background:linear-gradient(145deg,var(--c) 0%,var(--c) 55%,#111 140%);
  color:#fff;
  box-shadow:0 6px 18px -6px var(--c);
}
.social-links .social-link:hover::before,
.social-links .social-link:focus-visible::before{opacity:.35;}
.social-links .social-link:hover svg,
.social-links .social-link:focus-visible svg,
.social-links .social-link:hover img,
.social-links .social-link:focus-visible img{filter:none;}
@media (prefers-reduced-motion:reduce){
  .social-links .social-link,
  .social-links .social-link::before,
  .social-links .social-link svg,
  .social-links .social-link img{transition:none;}
}

/* Base / resets */
*,
*::before,
*::after {box-sizing:border-box;}
html {
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
  font-size:clamp(15px,1.05vw + 12px,18px);
}
/* Improve line length readability */
body {line-height:1.45;}

/* Accessible focus (reuse variable) */
:focus-visible {outline:2px solid var(--c-accent);outline-offset:2px;}

/* Custom navbar toggler icon (so it’s visible on dark bg) */
.navbar-toggler {
  border:1px solid rgba(255,255,255,.35);
  padding:.4rem .55rem;
  line-height:1;
}
.navbar-toggler:focus {box-shadow:0 0 0 2px rgba(208,155,58,.45);}
.navbar-toggler-icon {
  display:inline-block;
  width:1.25rem;
  height:1.1rem;
  position:relative;
}
.navbar-toggler-icon::before,
.navbar-toggler-icon::after,
.navbar-toggler-icon span {
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:var(--c-text);
  transition:.35s;
}
.navbar-toggler-icon span {top:50%;transform:translateY(-50%);}
.navbar-toggler-icon::before {top:0;}
.navbar-toggler-icon::after {bottom:0;}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {transform:translateY(.55rem) rotate(45deg);}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {transform:translateY(-.55rem) rotate(-45deg);}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon span {opacity:0;}

/* Fluid hero adjustments */
.hero .logo-wrap { /* ...existing code... */ max-width:260px; }

/* Content visibility for large sections (progressive rendering) */
#galerie,
#koncerty,
#kontakt,
#archiv {content-visibility:auto;contain-intrinsic-size:600px 800px;}

/* Improve tap targets on touch */
@media (pointer:coarse){
  a, button, .nav-link {min-height:44px;}
  .btn-top {width:54px;height:54px;font-size:1.3rem;}
}

/* Smaller devices */
@media (max-width:768px){
  .section-pad {padding:3.25rem 0 3rem;}
  .tagline {font-size:.98rem;}
  .hero {
    min-height:100vh;
    min-height:100svh;
    min-height:100dvh;
    min-height:var(--hero-viewport-height);
    padding:5.8rem 0 calc(6.2rem + env(safe-area-inset-bottom,0px));
    align-items:center;
  }
  .hero > .container {
    padding-top:1rem;
    padding-bottom:1rem;
  }
  .hero h1 {
    margin-bottom:.45rem;
  }
  .hero h1::after {
    width:clamp(120px,34vw,155px);
    margin-top:12px;
  }
  .hero-claim {
    max-width:min(20rem,calc(100vw - 2rem));
  }
  .post-hero-promos {
    padding:1.15rem 0 1.35rem;
  }
  .hero .logo-wrap {margin-top:1.25rem;max-width:220px;}
  .hero-cta-stack {
    grid-template-columns:1fr;
    gap:.65rem;
  }
  .hero-season-cta {
    padding:.95rem 1rem 1.05rem;
  }
  .hero-season-cta p {font-size:.88rem;line-height:1.48;}
  .hero-social-dock {
    bottom:calc(1.05rem + env(safe-area-inset-bottom,0px));
    max-width:calc(100vw - 2rem);
    gap:.5rem;
    padding:.48rem .62rem;
  }
  .hero-social-link {
    width:37px;
    height:37px;
  }
  .hero-social-link svg,
  .hero-social-link img {
    width:26px;
    height:26px;
  }
  .section-head h2 {font-size:1.65rem;}
}

/* Extra small */
@media (max-width:576px){
  .section-pad {padding:2.85rem 0 2.6rem;}
  .card-minimal {padding:1rem .95rem 1.15rem;}
  .social-links .social-link {--size:54px;border-radius:.7rem;}
  .tagline {max-width:50ch;}
  .event-item {
    grid-template-columns:1fr;
    gap:.45rem;
    padding:.7rem 0;
  }
  .event-link {
    align-items:flex-start;
  }
  .calendar-trigger {
    justify-self:start;
    width:100%;
  }
}

/* Large screens refinements */
@media (min-width:1200px){
  .hero {min-height:68vh;}
  .hero.hero-full {
    min-height:100vh;
    min-height:100svh;
    min-height:100dvh;
    min-height:var(--hero-viewport-height);
  }
  .hero .logo-wrap {max-width:320px;}
}

/* Reduced motion – broaden scope */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after {animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important;}
  .hero-video {display:none;}
}

/* Minor accessibility state */
.navbar .nav-link:focus-visible {
  color:var(--c-accent);
  text-decoration:underline;
}

/* Utility: responsive image smoothing off for pixel-art (if needed) */
img {image-rendering:auto;}

/* Progressive fade-in for loaded gallery thumbs */
.g-thumb img {opacity:0;transition:opacity .6s;}
.g-thumb.loaded img {opacity:1;}

/* High contrast safety if forced-colors */
@media (forced-colors:active){
  .navbar,
  .card-minimal,
  .contact-box {forced-color-adjust:none;border:1px solid CanvasText;}
}

.navbar-nav.primary-links .nav-link {
  position:relative;
  padding:.65rem 0;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--c-text);
}
.navbar-nav.primary-links .nav-link.active,
.navbar-nav.primary-links .nav-link:hover {color:var(--c-accent);}
.navbar-nav.primary-links .nav-link::after {
  content:"";
  position:absolute;
  left:.62rem;
  right:.62rem;
  bottom:.34rem;
  height:2px;
  border-radius:999px;
  background:var(--c-accent);
  opacity:0;
  transform:scaleX(.65);
  transition:opacity .2s, transform .2s;
}
.navbar-nav.primary-links .nav-link.active::after,
.navbar-nav.primary-links .nav-link:hover::after,
.navbar-nav.primary-links .nav-link:focus-visible::after {
  opacity:.75;
  transform:scaleX(1);
}
.navbar-nav.primary-links .nav-item + .nav-item {
  border-top:1px solid #2d2825;
}

/* Mobile collapse nav (primary section links) */
@media (max-width:991.98px){
  .navbar-nav.primary-links .nav-link::after {
    left:0;
    right:auto;
    bottom:.34rem;
    width:2.4rem;
  }
  .navbar .navbar-collapse {
    flex-basis:100%;
    background:rgba(18,17,16,.96);
    -webkit-backdrop-filter:saturate(1.2) blur(8px);
    backdrop-filter:saturate(1.2) blur(8px);
    padding:.75rem .9rem .95rem;
    border:1px solid #2c2724;
    border-radius:.75rem;
    box-shadow:0 8px 28px -10px rgba(0,0,0,.65);
    margin-top:.65rem;
  }
}
@media (min-width:992px){
  #mainNav {display:flex!important;}
  .navbar .navbar-collapse {
    flex:0 1 auto;
    margin-left:auto;
    background:transparent;
    backdrop-filter:none;
    padding:0;
    border:0;
    border-radius:0;
    box-shadow:none;
    margin-top:0;
  }
  .navbar-nav.primary-links {
    align-items:center;
    gap:.38rem;
  }
  .navbar-nav.primary-links .nav-link {
    padding:.52rem .72rem;
    font-size:.86rem;
    white-space:nowrap;
  }
  .navbar-nav.primary-links .nav-item + .nav-item {
    border-top:0;
  }
}

/* Ensure toggler above collapsing panel edge cases */
.navbar {z-index:1040;}

/* === Gallery & Lightbox (moved from galery.html) === */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); /* větší čtverce */
  gap: 0;                      /* žádné mezery mezi fotkami */
  margin: 0;
  padding: 0;
  list-style: none;
}

.g-item {
  margin: 0;
  position: relative;
}

.g-thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  display: block;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

.g-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .45s ease, filter .45s ease;
  filter:blur(6px) saturate(.8);
}
.g-thumb.loaded img {filter:blur(0) saturate(1);}
.g-thumb:hover img {transform:scale(1.06);}
.gallery-status {
  color:var(--c-muted,#9d948c);
  font-size:.8rem;
  margin:.85rem 0 0;
  text-align:right;
  letter-spacing:.04em;
  opacity:.85;
}

/* Lightbox overlay */
.lightbox {
  position:fixed;
  inset:0;
  width:100vw;
  height:100dvh;
  background:rgba(0,0,0,.9);
  backdrop-filter:blur(2px);
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  z-index:1300;
  padding:clamp(10px,3vw,40px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  cursor:pointer; /* click outside image to close */
}
.lightbox.open {display:flex;}
.lightbox figure {
  margin:0;
  max-width:100%;
  max-height:100%;
  position:relative;
}
.lightbox img {
  max-width:min(96vw,1400px);
  max-height:calc(100dvh - 6rem);
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
  opacity:0;
  transition:opacity .35s ease;
  cursor:default; /* do not imply close on image */
}
.lightbox img.lb-show {opacity:1;}

.lb-close,
.lb-nav {
  position:absolute;
  background:rgba(0,0,0,.55);
  color:#fff;
  border:1px solid rgba(255,255,255,.25);
  padding:.55rem .8rem;
  font-size:.85rem;
  line-height:1;
  cursor:pointer;
  border-radius:4px;
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  gap:.4rem;
  transition:.25s;
}
.lb-close:hover,
.lb-nav:hover {background:rgba(255,255,255,.15);}
.lb-close {top:12px;right:12px;}
.lb-nav.prev {top:50%;left:14px;transform:translateY(-50%);}
.lb-nav.next {top:50%;right:14px;transform:translateY(-50%);}
.lb-count {
  position:absolute;
  bottom:10px;
  left:50%;
  transform:translateX(-50%);
  font-size:.7rem;
  letter-spacing:.15em;
  color:#bbb;
  text-shadow:0 0 6px #000;
}
.lb-spinner {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.lb-spinner::after {
  content:"";
  width:42px;
  height:42px;
  border:4px solid rgba(255,255,255,.15);
  border-top-color:var(--c-accent,#d09b3a);
  border-radius:50%;
  animation:spin 1s linear infinite;
}
@keyframes spin {to{transform:rotate(360deg);} }

/* Hide (filename) caption */
#lbCaption {display:none!important;}

@media (min-width:1100px){
  .gallery-grid {grid-template-columns:repeat(auto-fill,minmax(190px,1fr));}
}

/* Galerie – load more */
.g-item[hidden] {
  display: none;
}

.gallery-more-wrap {
  margin-top: 1.5rem;
  text-align: center;
}

.gallery-more-btn {
  padding: 0.5rem 1.7rem;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* === Úprava lightboxu – fotka přes celou stránku === */

.lightbox {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  padding: 0;                 /* žádné extra paddingy kolem */
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;              /* jistota, že je úplně nahoře */
}

.lightbox.open {
  display: flex;
}

.lightbox figure {
  margin: 0;
  max-width: 100vw;
  max-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox img {
  max-width: 100vw;
  max-height: 100vh;
  width: auto;
  height: auto;
  object-fit: contain;        /* zobrazí celou fotku, nic neusekne */
}

/* === Lightbox přes celou stránku === */
.lightbox {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  padding: 0;
  background: rgba(0,0,0,.9);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.lightbox.open {
  display: flex;
}

.lightbox figure {
  margin: 0;
  max-width: 100vw;
  max-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox img {
  max-width: 100vw;
  max-height: 100vh;
  width: auto;
  height: auto;
  object-fit: contain; /* vždy celá fotka, nic se neusekne */
}

.lb-close {
  position: fixed;
  top: 12px;
  right: 12px;
  background: rgba(0,0,0,.6);
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  padding: .4rem .7rem;
  cursor: pointer;
}

/* === Galerie – přepsání, aby lightbox byl opravdu přes celou stránku === */

#galerie {
  /* vypnout content-visibility, aby se overlay nikdy neusekával */
  content-visibility: visible;
  contain-intrinsic-size: auto;
  position: relative;
  overflow: visible;
}

.lightbox {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0,0,0,0.9);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 0;
  cursor: pointer; /* klik mimo fotku = zavřít */
}

.lightbox.open {
  display: flex;
}

.lightbox figure {
  margin: 0;
  max-width: 100vw;
  max-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox img {
  max-width: 100vw;
  max-height: 100vh;
  width: auto;
  height: auto;
  object-fit: contain; /* vždy celá fotka */
  cursor: default;     /* na fotce samotné nechceme "hand" */
}

.lb-close {
  position: fixed;
  top: 12px;
  right: 12px;
  background: rgba(0,0,0,0.6);
  border: 1px solid rgba(255,255,255,0.3);
  color: #fff;
  padding: .4rem .7rem;
  cursor: pointer;
  z-index: 10000;
}

/* === Galerie – větší náhledy bez mezer === */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); /* velikost náhledů */
  gap: 0; /* žádné mezery mezi fotkami */
}

.g-item {
  aspect-ratio: 1 / 1; /* čtvercový tvar */
  margin: 0;
}

.g-thumb,
.g-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* vyplní čtverec bez deformace */
}


/* === VĚTŠÍ TLAČÍTKA SOCIÁLNÍCH SÍTÍ === */
.social-link {
  width: 100px;           /* původně kolem 55–60px */
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--c);
  border-radius: 12px;   /* můžeš zvýšit pro více zaoblení */
  transition: transform .25s, filter .25s;
  color: #fff;
}

.social-link svg,
.social-link img {
  width: 45px !important;   /* původně 28px */
  height: 45px !important;
}
.social-link:hover {
  transform: translateY(-4px);
  filter: brightness(1.15);
}

.social-link:hover {
  transform: translateY(-4px);
  filter: brightness(1.15);
  box-shadow: 0 0 18px var(--c);
}

/* větší rozestupy mezi tlačítky sociálních sítí */
.social-links {
  gap: 2.2rem !important; /* původně cca 1rem */
  margin-top: 3rem;       /* více prostoru nad ikonami */
}

/* velikost ikon uvnitř */
.social-link svg,
.social-link img {
  width: 50px !important;
  height: 50px !important;
}

/* velikost samotného tlačítka */
.social-link {
  width: 90px;
  height: 90px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--c);
  border-radius: 14px;
  transition: transform .25s, filter .25s;
}

.social-links .social-link {
  width:72px;
  height:72px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:rgba(18,18,18,.95);
  color:var(--c);
  box-shadow:none;
  filter:none;
}
.social-links .social-link svg,
.social-links .social-link img {
  width:38px !important;
  height:38px !important;
  object-fit:contain;
  filter:none;
}
.social-links .social-link:hover,
.social-links .social-link:focus-visible {
  transform:translateY(-3px);
  filter:none;
  border-color:var(--c);
  box-shadow:0 12px 28px -14px var(--c);
}
.social-links .social-link:hover svg,
.social-links .social-link:focus-visible svg,
.social-links .social-link:hover img,
.social-links .social-link:focus-visible img {
  transform:scale(1.04);
}
.social-links .social-link-imusician,
.social-links .social-link-imusician:hover,
.social-links .social-link-imusician:focus-visible {
  background:rgba(18,18,18,.98);
  color:#f2eee9;
}


/* === INSTAGRAM WIDGET === */

#instagram {
  position: relative;
  z-index: 1;
}

.insta-frame {
  position: relative;
  max-width: 1100px;
  margin: 2.5rem auto 0 auto;
  border-radius: 18px;
  overflow: hidden;
  /* 🔥 pozadí sladěné se stylem celé stránky */
  background: radial-gradient(circle at top, #3a3a3a 0, #111 55%, #000 85%);
  box-shadow: 0 0 32px rgba(0, 0, 0, .85);
}

/* samotný iframe → přizpůsobený bez okrajů */
.insta-iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* jemná animace na desktopu */
@media (hover: hover) {
  .insta-frame:hover {
    box-shadow: 0 0 32px rgba(255, 255, 255, .16);
    transform: translateY(-3px);
    transition: transform .25s, box-shadow .25s;
  }
}

/* rám instagram slideru v sekci sociálních sítí */
.insta-frame {
  max-width: 1100px;
  margin: 3rem auto 0 auto;
  border-radius: 18px;
  overflow: hidden;
  background: radial-gradient(circle at top, #3a3a3a 0, #111 55%, #000 85%);
  box-shadow: 0 0 32px rgba(0, 0, 0, .85);
}

.insta-frame iframe {
  width: 100%;
  border: 0;
}

.card-minimal {
  background: rgba(0,0,0,0.25);
  border-radius: 8px;
}

/* jistota – ať kolem stránky nejsou zbytečné mezery */
html, body {
  margin: 0;
  padding: 0;
}

.fade-section {
  opacity: 1;
  transform: none;
  transition: opacity 0.9s ease, transform 0.9s ease;
}

/* POUŽIJE SE JEN KDYŽ JS PŘIDÁ .js-fade NA <html> */
.js-fade .fade-section {
  opacity: 0;
  transform: translateY(25px);
}

.js-fade .fade-section.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive video block for the music section */
.video-frame {
  position: relative;
  width: min(960px, 92vw);
  margin: 2.5rem auto 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}

.video-frame::before {
  content: "";
  display: block;
  padding-top: 56.25%; /* 16:9 aspect ratio */
}

.video-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 600px) {
  .video-frame {
    width: 100%;
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.3);
  }
}
