
:root{
  --bg:#120d0a;
  --bg-2:#1b120d;
  --panel:#241710;
  --panel-2:#2c1c13;
  --cream:#f6efe5;
  --muted:#cbbcad;
  --bronze:#bf8651;
  --bronze-light:#e5b27c;
  --line:rgba(229,178,124,.24);
  --shadow:0 24px 70px rgba(0,0,0,.38);
  --radius:28px;
  --max:1180px;
  /* Replace this URL with the existing hero photo from Contao /files/... */
  --hero-image:url('files/balkanparty-ibc/hero.jpg');
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--cream);font-family:Manrope,Inter,Arial,sans-serif;line-height:1.65;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.wrap{width:min(calc(100% - 44px),var(--max));margin-inline:auto}
.eyebrow{font-size:.90rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-light);font-weight:800}
h1,h2,h3{margin:0 0 18px;line-height:1.05;letter-spacing:-.035em}
h1{font-size:clamp(3.5rem,9vw,8.4rem);max-width:1050px;text-transform:uppercase}
h2{font-size:clamp(2.3rem,5vw,5.2rem)}
h3{font-size:clamp(1.25rem,2.5vw,2rem)}
p{margin:0 0 1.15em;color:var(--muted)}
strong{color:var(--cream)}
.hero{min-height:92svh;position:relative;display:grid;align-items:end;background:linear-gradient(90deg,rgba(18,13,10,.92) 0%,rgba(18,13,10,.63) 48%,rgba(18,13,10,.28) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 32%),var(--hero-image) center/cover no-repeat}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 22%,rgba(191,134,81,.20),transparent 34%),linear-gradient(180deg,rgba(10,6,4,.18),rgba(10,6,4,.04) 55%,var(--bg) 100%);pointer-events:none}
.hero-inner{position:relative;z-index:1;padding:48px 0 86px}
.brand{font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:clamp(.9rem,1.7vw,1.1rem);margin-bottom:64px}
.brand span{color:var(--bronze-light)}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:28px;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.hero-meta span{display:inline-flex;align-items:center;gap:10px}
.hero-meta span:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--bronze-light);box-shadow:0 0 0 6px rgba(229,178,124,.08)}
.hero-lead{font-size:clamp(1.08rem,2vw,1.38rem);max-width:720px;color:var(--cream);margin-top:22px}
.section{padding:60px 0;border-top:1px solid rgba(255,255,255,.04)}
.section.alt{background:linear-gradient(180deg,var(--bg-2),var(--bg))}
.intro-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}
.copy{font-size:clamp(1rem,1.5vw,1.16rem)}
.copy p:first-child{font-size:1.2em;color:var(--cream)}
.card{background:linear-gradient(145deg,rgba(44,28,19,.98),rgba(29,18,13,.98));border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow)}
.partner{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
.partner .card:first-child{background:linear-gradient(145deg,#3b2618,#24170f)}
.kicker{font-weight:900;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-light);margin-bottom:12px}
.big-number{font-size:clamp(4rem,8vw,7rem);line-height:.9;font-weight:900;letter-spacing:-.06em;color:var(--bronze-light)}
.programme{display:grid;grid-template-columns:320px 1fr;gap:52px;align-items:start}
.timeline{position:relative;padding-left:32px}
.timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:linear-gradient(var(--bronze-light),rgba(229,178,124,.08))}
.slot{position:relative;padding:0 0 42px 28px}
.slot:last-child{padding-bottom:0}
.slot:before{content:"";position:absolute;left:-32px;top:7px;width:11px;height:11px;border-radius:50%;background:var(--bronze-light);box-shadow:0 0 0 6px rgba(229,178,124,.10)}
.time{color:var(--bronze-light);font-weight:900;letter-spacing:.05em}
.who-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}
.who-item{min-height:170px;padding:26px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.025);display:flex;flex-direction:column;justify-content:space-between;transition:.25s ease}
.who-item:hover{transform:translateY(-4px);background:rgba(191,134,81,.08)}
.who-icon{font-size:1.6rem;color:var(--bronze-light)}
.sponsor-intro{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.tiers{display:grid;gap:18px;margin-top:38px}
.tier{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:24px 0;border-top:1px solid var(--line)}
.tier strong{font-size:1.35rem;color:var(--bronze-light)}
.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:44px}
.logo-box{min-height:112px;background:#f4ede5;border-radius:18px;padding:22px;display:grid;place-items:center;color:#3c281b;font-weight:900;text-align:center}
.gallery{display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:260px 260px;gap:16px;margin-top:44px}
.gallery figure{margin:0;border-radius:24px;overflow:hidden;background:#2a1a12;position:relative}
.gallery figure:first-child{grid-row:1/3}
.gallery img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) sepia(.12)}
.gallery figure:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(18,13,10,.62))}
.cta{padding:90px 0 105px}
.cta-box{border:1px solid var(--line);border-radius:34px;padding:clamp(34px,6vw,72px);background:radial-gradient(circle at 80% 20%,rgba(191,134,81,.22),transparent 35%),linear-gradient(145deg,#2b1b12,#1a100c);box-shadow:var(--shadow);display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:end}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:0 26px;border-radius:999px;background:var(--bronze-light);color:#20140d;text-decoration:none;font-weight:900;text-transform:uppercase;letter-spacing:.07em;transition:.2s ease}
.button:hover{transform:translateY(-2px);filter:brightness(1.06)}
.footer{padding:38px 0 52px;border-top:1px solid var(--line);color:#9f8f81;font-size:.9rem}
.footer-grid{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(18px);transition:.6s ease}
.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){
  .intro-grid,.programme,.sponsor-intro,.cta-box{grid-template-columns:1fr}
  .partner{grid-template-columns:1fr}
  .who-grid{grid-template-columns:repeat(2,1fr)}
  .logos{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:1fr;grid-template-rows:330px 220px 220px}
  .gallery figure:first-child{grid-row:auto}
  .section{padding:80px 0}
}
@media(max-width:560px){
  .wrap{width:min(calc(100% - 28px),var(--max))}
  .hero{min-height:84svh;background-position:62% center}
  .hero-inner{padding-bottom:56px}
  .brand{margin-bottom:44px}
  .who-grid,.logos{grid-template-columns:1fr}
  .tier{grid-template-columns:1fr;gap:6px}
  .card{padding:26px}
  .section{padding:64px 0}
}

/* Contao landing-page isolation */
body.bp-page .m-page, body.bp-page .m-main{margin:0;padding:0;max-width:none;width:100%;}
body.bp-page .m-main>.inside{max-width:none;margin:0;padding:0;}
body.bp-page .m-header, body.bp-page .m-footer, body.bp-page #header, body.bp-page #footer{display:none!important;}
.bp-landing{background:var(--bg);color:var(--cream);}
.bp-landing .bp-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.bp-landing .hero{background:linear-gradient(90deg,rgba(18,13,10,.92),rgba(18,13,10,.28));overflow:hidden;isolation:isolate;}
.bp-landing .hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,13,10,.92) 0%,rgba(18,13,10,.63) 28%,rgba(18,13,10,.28) 50%),linear-gradient(0deg,var(--bg) 0%,transparent 20%);z-index:-1;}
.bp-landing .sponsor-logo img{max-height:72px;width:auto;object-fit:contain;}


/* Partner categories */
.sponsors-section .sponsor-intro{grid-template-columns:minmax(0,460px);margin-bottom:28px}
.partner-category{padding-top:44px;padding-bottom:22px;border-top:1px solid var(--line)}
.partner-category+.partner-category{margin-top:38px}
.partner-category__title{font-size:clamp(1.7rem,3vw,2.6rem);color:var(--cream);margin-bottom:26px}
.partner-category--gold .partner-category__title{color:#e5b27c}
.partner-category--silver .partner-category__title{color:#d8d3cd}
.partner-category--bronze .partner-category__title{color:#bf8651}
.partner-logos{display:grid;gap:16px;align-items:stretch}
.partner-logos--gold{grid-template-columns:repeat(2,minmax(0,1fr))}
.partner-logos--silver{grid-template-columns:repeat(3,minmax(0,1fr))}
.partner-logos--bronze{grid-template-columns:repeat(4,minmax(0,1fr))}
.partner-logo{display:grid;place-items:center;background:#f4ede5;border-radius:20px;padding:24px;border:1px solid rgba(255,255,255,.08)}
.partner-logo img{width:auto;max-width:100%;object-fit:contain}
.partner-logo--gold{min-height:180px;box-shadow:0 18px 55px rgba(0,0,0,.24)}
.partner-logo--gold img{max-height:105px}
.partner-logo--silver{min-height:145px}
.partner-logo--silver img{max-height:120px}
.partner-logo--bronze{min-height:120px}
.partner-logo--bronze img{max-height:80px}
@media(max-width:900px){.partner-logos--gold,.partner-logos--silver{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-logos--bronze{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.partner-logos--gold,.partner-logos--silver,.partner-logos--bronze{grid-template-columns:1fr 1fr}.partner-logo--gold{min-height:145px}.partner-logo--silver{min-height:125px}.partner-logo--bronze{min-height:110px}}


/* v3: sponsor order + pictograms */
.who-item{position:relative;overflow:hidden;min-height:190px}
.who-item:after{content:"";position:absolute;right:-28px;bottom:-34px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(229,178,124,.12),transparent 68%);pointer-events:none}
.who-icon{width:54px;height:54px;border:1px solid rgba(229,178,124,.34);border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(229,178,124,.12),rgba(229,178,124,.025));color:var(--bronze-light);margin-bottom:28px}
.who-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.who-item h3{font-size:clamp(1.1rem,1.8vw,1.42rem);margin:0;max-width:15ch}
.sponsors-section{padding-top:26px;background:linear-gradient(180deg,var(--bg),#17100c)}
.sponsors-section .partner-category:first-child{padding-top:0;border-top:0}
.sponsor-callout{margin-top:78px;padding-top:72px;border-top:1px solid var(--line);max-width:1180px}
.sponsor-callout h2{max-width:900px;margin-top:10px}
.sponsor-callout .copy{max-width:860px}
.cta{padding-top:34px;background:linear-gradient(180deg,#17100c,var(--bg))}
@media(max-width:620px){.who-item{min-height:160px}.who-icon{width:48px;height:48px;margin-bottom:20px}.sponsor-callout{margin-top:56px;padding-top:52px}}

/* v4: requested layout refinements */
/* WHO WILL BE THERE category cards ~30% more compact */
.bp-landing .who-item{
  min-height:133px;
  padding:18px;
}
.bp-landing .who-icon{
  width:70px;
  height:70px;
  border-radius:12px;
  margin-bottom:19px;
}
.bp-landing .who-icon svg{width:50px;height:50px}
.bp-landing .who-item h3{font-size:clamp(1.2rem,1.5vw,1.6rem)}
.bp-landing .who-grid{gap:13px;margin-top:30px}

/* Gold partner: center a single featured logo */
.bp-landing .partner-logos--gold{
  display:flex;
  justify-content:center;
  align-items:center;
}
.bp-landing .partner-logo--gold{
  width:min(100%,560px);
}

/* Tighter spacing between Sponsorship and Partnership Opportunities */
.bp-landing .sponsor-callout{margin-bottom:0}
.bp-landing .cta{padding-top:12px}
.bp-landing .cta-box{margin-top:0}

@media(max-width:620px){
  .bp-landing .who-item{min-height:112px;padding:16px}
  .bp-landing .who-icon{width:34px;height:34px;margin-bottom:14px}
  .bp-landing .who-icon svg{width:19px;height:19px}
  .bp-landing .who-grid{gap:10px;margin-top:24px}
  .bp-landing .partner-logo--gold{width:100%}
}


/* =========================================================
   Balkan Party v5 refinements
   ========================================================= */

/* Main hero title: ~30% smaller and constrained to two lines on desktop */
.bp-hero h1,
.bp-hero__title,
.balkanparty h1.bp-hero__title {
  font-size: clamp(2.9rem, 5.52vw, 5.45rem) !important;
  line-height: 0.98 !important;
  max-width: 13ch !important;
  text-wrap: balance;
}

/* WHO WILL BE THERE? — each category ~30% narrower, centered */
.bp-audience-grid,
.bp-who-grid,
.bp-categories {
  grid-template-columns: repeat(auto-fit, minmax(180px, 0.7fr)) !important;
  justify-content: center !important;
  gap: 1rem !important;
}

.bp-audience-card,
.bp-who-card,
.bp-category {
  width: 70% !important;
  max-width: 280px !important;
  min-width: 0 !important;
  justify-self: center !important;
}

/* Larger pictograms */
.bp-audience-card svg,
.bp-who-card svg,
.bp-category svg,
.bp-audience-icon svg,
.bp-who-icon svg {
  width: 3.75rem !important;
  height: 3.75rem !important;
}

.bp-audience-icon,
.bp-who-icon,
.bp-category__icon {
  width: 4.75rem !important;
  height: 4.75rem !important;
}

/* On phones keep cards usable while retaining the smaller visual footprint */
@media (max-width: 700px) {
  .bp-hero h1,
  .bp-hero__title,
  .balkanparty h1.bp-hero__title {
    font-size: clamp(2.35rem, 11vw, 3.4rem) !important;
    max-width: 12ch !important;
  }

  .bp-audience-grid,
  .bp-who-grid,
  .bp-categories {
    grid-template-columns: 1fr !important;
  }

  .bp-audience-card,
  .bp-who-card,
  .bp-category {
    width: 70% !important;
    max-width: 320px !important;
    margin-inline: auto !important;
  }
}

/* v6 – clickable sponsor logos */
.partner-logo > a {
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  border-radius:inherit;
}
.partner-logo > a img {
  transition: transform .2s ease, opacity .2s ease;
}
.partner-logo > a:hover img,
.partner-logo > a:focus-visible img {
  transform: scale(1.04);
  opacity:.9;
}
.partner-logo > a:focus-visible {
  outline:2px solid var(--gold, #b58a55);
  outline-offset:4px;
}
/* =========================================================
   Balkan Party – Gallery Page
   ========================================================= */


/* ---------------------------------------------------------
   PHOTO GALLERY
   --------------------------------------------------------- */

./* =========================================================
   BALKAN PARTY – PHOTO GALLERY
   Editorial / masonry style
   ========================================================= */

.bp-gallery-page .bp-photo-gallery-section {
  background:
    linear-gradient(
      180deg,
      var(--bg-2) 0%,
      var(--bg) 100%
    );

  padding-top: 80px;
  padding-bottom: 90px;
}

.bp-gallery-page .bp-photo-gallery-section h2 {
  max-width: 900px;
  margin-top: 10px;
}


/* ---------------------------------------------------------
   GRID
   --------------------------------------------------------- */

.bp-gallery-page .bp-photo-gallery {
  display: grid;

  grid-template-columns:
    repeat(12, minmax(0, 1fr));

  grid-auto-flow: dense;
  grid-auto-rows: 90px;

  gap: 16px;

  margin-top: 44px;
}


/* ---------------------------------------------------------
   PHOTO
   --------------------------------------------------------- */

.bp-gallery-page .bp-photo-gallery__item {
  position: relative;

  margin: 0;

  overflow: hidden;

  border-radius: 22px;

  background: var(--panel);

  border:
    1px solid
    rgba(255,255,255,.05);

  box-shadow:
    0 16px 45px
    rgba(0,0,0,.22);
}


/* DEFAULT PHOTO */

.bp-gallery-page .bp-photo-gallery__item {
  grid-column: span 4;
  grid-row: span 3;
}


/* ---------------------------------------------------------
   VISUAL RHYTHM
   --------------------------------------------------------- */

/* 1st image – large */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 1) {

  grid-column: span 8;
  grid-row: span 5;

}


/* 2nd image – portrait */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 2) {

  grid-column: span 4;
  grid-row: span 5;

}


/* 3rd image */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 3) {

  grid-column: span 4;
  grid-row: span 3;

}


/* 4th image */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 4) {

  grid-column: span 4;
  grid-row: span 3;

}


/* 5th image – wide */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 5) {

  grid-column: span 8;
  grid-row: span 4;

}


/* 6th image */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 6) {

  grid-column: span 4;
  grid-row: span 4;

}


/* 7th image */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 7) {

  grid-column: span 4;
  grid-row: span 3;

}


/* 8th image */

.bp-gallery-page
.bp-photo-gallery__item:nth-child(8n + 8) {

  grid-column: span 4;
  grid-row: span 3;

}


/* ---------------------------------------------------------
   BUTTON
   --------------------------------------------------------- */

.bp-gallery-page .bp-photo-gallery__button {
  position: relative;

  display: block;

  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  border: 0;

  appearance: none;

  background: transparent;

  cursor: zoom-in;

  overflow: hidden;
}


/* ---------------------------------------------------------
   IMAGE
   --------------------------------------------------------- */

.bp-gallery-page .bp-photo-gallery__item img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  filter:
    saturate(.88)
    sepia(.04);

  transition:
    transform .55s cubic-bezier(.2,.7,.2,1),
    filter .4s ease;
}


/* ---------------------------------------------------------
   OVERLAY
   --------------------------------------------------------- */

.bp-gallery-page
.bp-photo-gallery__item::after {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:
    linear-gradient(
      180deg,
      transparent 55%,
      rgba(18,13,10,.28)
    );

  opacity: .65;

  transition:
    opacity .35s ease;
}


/* ---------------------------------------------------------
   HOVER
   --------------------------------------------------------- */

.bp-gallery-page
.bp-photo-gallery__button:hover img {

  transform: scale(1.045);

  filter:
    saturate(1)
    sepia(0);
}


.bp-gallery-page
.bp-photo-gallery__item:hover::after {

  opacity: .25;
}


/* ---------------------------------------------------------
   KEYBOARD FOCUS
   --------------------------------------------------------- */

.bp-gallery-page
.bp-photo-gallery__button:focus-visible {

  outline:
    2px solid
    var(--bronze-light);

  outline-offset: -4px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

  .bp-gallery-page .bp-photo-gallery {

    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    grid-auto-rows: auto;

    gap: 12px;

  }


  .bp-gallery-page
  .bp-photo-gallery__item,

  .bp-gallery-page
  .bp-photo-gallery__item:nth-child(n) {

    grid-column: auto;
    grid-row: auto;

    aspect-ratio: 4 / 3;

  }


  /* every fifth image wider */

  .bp-gallery-page
  .bp-photo-gallery__item:nth-child(5n + 1) {

    grid-column: 1 / -1;

    aspect-ratio: 16 / 8;

  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 620px) {

  .bp-gallery-page
  .bp-photo-gallery-section {

    padding-top: 58px;
    padding-bottom: 64px;

  }


  .bp-gallery-page
  .bp-photo-gallery {

    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    gap: 7px;

    margin-top: 28px;

  }


  .bp-gallery-page
  .bp-photo-gallery__item,

  .bp-gallery-page
  .bp-photo-gallery__item:nth-child(n) {

    grid-column: auto;

    aspect-ratio: 1 / 1;

    border-radius: 9px;

  }


  /* occasional full-width photo */

  .bp-gallery-page
  .bp-photo-gallery__item:nth-child(5n + 1) {

    grid-column: 1 / -1;

    aspect-ratio: 16 / 9;

  }

}


/* =========================================================
   VERY SMALL PHONE
   ========================================================= */

@media (max-width: 380px) {

  .bp-gallery-page
  .bp-photo-gallery {

    grid-template-columns: 1fr;

    gap: 9px;

  }


  .bp-gallery-page
  .bp-photo-gallery__item,

  .bp-gallery-page
  .bp-photo-gallery__item:nth-child(n) {

    grid-column: auto;

    aspect-ratio: 4 / 3;

  }

}
/* ---------------------------------------------------------
   LIGHTBOX
   --------------------------------------------------------- */

.bp-gallery-page .bp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 45px 90px;

  background: rgba(12,8,6,.96);
  backdrop-filter: blur(5px);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    opacity .25s ease,
    visibility .25s ease;
}

.bp-gallery-page .bp-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.bp-gallery-page .bp-lightbox__content {
  position: relative;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: 100%;
}

.bp-gallery-page .bp-lightbox__image {
  display: block;

  width: auto;
  height: auto;

  max-width: 100%;
  max-height: calc(100vh - 120px);

  object-fit: contain;

  border-radius: 10px;

  box-shadow:
    0 30px 90px rgba(0,0,0,.55);
}

.bp-gallery-page .bp-lightbox__counter {
  margin-top: 15px;

  color: var(--muted);

  font-size: .88rem;
  font-weight: 700;

  letter-spacing: .08em;
}


/* CLOSE */

.bp-gallery-page .bp-lightbox__close {
  position: absolute;
  z-index: 3;

  top: 18px;
  right: 26px;

  display: grid;
  place-items: center;

  width: 52px;
  height: 52px;

  margin: 0;
  padding: 0;

  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;

  color: var(--cream);
  background: rgba(255,255,255,.04);

  font-family: Arial, sans-serif;
  font-size: 38px;
  font-weight: 300;
  line-height: 1;

  cursor: pointer;

  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.bp-gallery-page .bp-lightbox__close:hover {
  background: rgba(229,178,124,.12);
  border-color: rgba(229,178,124,.4);
  transform: scale(1.05);
}


/* PREVIOUS / NEXT */

.bp-gallery-page .bp-lightbox__nav {
  position: absolute;
  z-index: 3;

  top: 50%;
  transform: translateY(-50%);

  display: grid;
  place-items: center;

  width: 58px;
  height: 76px;

  margin: 0;
  padding: 0;

  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;

  color: var(--cream);
  background: rgba(255,255,255,.035);

  font-family: Arial, sans-serif;
  font-size: 52px;
  font-weight: 200;
  line-height: 1;

  cursor: pointer;

  opacity: .8;

  transition:
    opacity .2s ease,
    background .2s ease,
    border-color .2s ease;
}

.bp-gallery-page .bp-lightbox__nav:hover {
  opacity: 1;

  background: rgba(229,178,124,.10);
  border-color: rgba(229,178,124,.30);
}

.bp-gallery-page .bp-lightbox__prev {
  left: 20px;
}

.bp-gallery-page .bp-lightbox__next {
  right: 20px;
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) {

  .bp-gallery-page .bp-photo-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .bp-gallery-page .bp-lightbox {
    padding:
      55px
      70px
      40px;
  }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  .bp-gallery-page .bp-photo-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 28px;
  }

  .bp-gallery-page .bp-photo-gallery__item {
    border-radius: 10px;
  }

  .bp-gallery-page .bp-lightbox {
    padding:
      58px
      10px
      42px;
  }

  .bp-gallery-page .bp-lightbox__image {
    max-height: calc(100vh - 130px);
    border-radius: 6px;
  }

  .bp-gallery-page .bp-lightbox__close {
    top: 7px;
    right: 8px;

    width: 44px;
    height: 44px;

    font-size: 32px;
  }

  .bp-gallery-page .bp-lightbox__nav {
    width: 44px;
    height: 64px;

    border-radius: 12px;

    font-size: 44px;

    background: rgba(18,13,10,.55);
  }

  .bp-gallery-page .bp-lightbox__prev {
    left: 3px;
  }

  .bp-gallery-page .bp-lightbox__next {
    right: 3px;
  }

}


/* ---------------------------------------------------------
   VERY SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 380px) {

  .bp-gallery-page .bp-photo-gallery {
    grid-template-columns: 1fr;
    gap: 10px;
  }

}
/* =========================================================
   BP GALLERY – FINAL GRID OVERRIDE
   MUST BE LAST IN balkanparty.css
   ========================================================= */

.bp-landing.bp-gallery-page .bp-photo-gallery {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
    gap: 16px !important;
    margin-top: 44px !important;
}

.bp-landing.bp-gallery-page .bp-photo-gallery > .bp-photo-gallery__item {
    display: block !important;

    width: auto !important;
    max-width: none !important;

    margin: 0 !important;

    grid-column: auto !important;
    grid-row: auto !important;

    aspect-ratio: 4 / 3 !important;

    overflow: hidden !important;
    border-radius: 20px !important;

    position: relative !important;
}

.bp-landing.bp-gallery-page .bp-photo-gallery__button {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    background: none !important;

    cursor: zoom-in !important;
}

.bp-landing.bp-gallery-page .bp-photo-gallery__item img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: none !important;

    object-fit: cover !important;
}


/* TABLET */

@media (max-width: 900px) {

    .bp-landing.bp-gallery-page .bp-photo-gallery {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

}


/* MOBILE */

@media (max-width: 560px) {

    .bp-landing.bp-gallery-page .bp-photo-gallery {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 8px !important;
    }

    .bp-landing.bp-gallery-page
    .bp-photo-gallery > .bp-photo-gallery__item {

        aspect-ratio: 1 / 1 !important;
        border-radius: 10px !important;
    }

}

/* =========================================================
   GALLERY – LOAD MORE
   ========================================================= */

.bp-gallery-page .bp-gallery-load-more {
    display: flex;
    justify-content: center;
    margin-top: 42px;
}

.bp-gallery-page .bp-gallery-load-more__button {
    border: 0;
    cursor: pointer;
}

.bp-gallery-page .bp-photo-gallery__item[hidden] {
    display: none !important;
}

@media (max-width: 620px) {

    .bp-gallery-page .bp-gallery-load-more {
        margin-top: 28px;
    }

}
/* =========================================================
   GALLERY DEFERRED IMAGES – FIX
   ========================================================= */

.bp-landing.bp-gallery-page
.bp-photo-gallery
.bp-photo-gallery__item.bp-photo-gallery__item--pending {
    display: none !important;
}

.bp-landing.bp-gallery-page
.bp-photo-gallery
.bp-photo-gallery__item[hidden] {
    display: none !important;
}

.bp-gallery-page .bp-gallery-load-more {
    display: flex;
    justify-content: center;
    margin-top: 42px;
    margin-bottom: 20px;
}

.bp-gallery-page .bp-gallery-load-more__button {
    border: 0;
    cursor: pointer;
}

/* =========================================================
   GALLERY – PROGRESSIVE SCROLL LOADING
   ========================================================= */

.bp-landing.bp-gallery-page
.bp-photo-gallery
.bp-photo-gallery__item.bp-photo-gallery__item--pending {
    display: none !important;
}


/* Loader */

.bp-gallery-page .bp-gallery-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 70px;
    margin-top: 20px;
}


/* Animated dots */

.bp-gallery-page .bp-gallery-loader__dot {
    display: block;

    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: var(--bronze-light);

    opacity: .35;

    animation:
        bpGalleryLoading 1.2s
        infinite ease-in-out;
}


.bp-gallery-page
.bp-gallery-loader__dot:nth-child(2) {
    animation-delay: .15s;
}


.bp-gallery-page
.bp-gallery-loader__dot:nth-child(3) {
    animation-delay: .3s;
}


@keyframes bpGalleryLoading {

    0%,
    80%,
    100% {
        opacity: .25;
        transform: scale(.8);
    }

    40% {
        opacity: 1;
        transform: scale(1);
    }

}
/* =========================================================
   GALLERY – DOWNLOAD ALL PHOTOS
   ========================================================= */

.bp-gallery-page .bp-gallery-download {
    display: flex;
    justify-content: center;
    margin-top: 44px;
}

.bp-gallery-page .bp-gallery-download__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
}

@media (max-width: 620px) {

    .bp-gallery-page .bp-gallery-download {
        margin-top: 32px;
    }

    .bp-gallery-page .bp-gallery-download__button {
        width: 100%;
    }

}
/* =========================================================
   BRONZE PARTNERS – CENTER LAST TWO LOGOS
   ========================================================= */

@media (min-width: 901px) {

    .partner-logos--bronze
    .partner-logo:nth-last-child(2):nth-child(4n + 1) {
        grid-column: 2;
    }

    .partner-logos--bronze
    .partner-logo:last-child:nth-child(4n + 2) {
        grid-column: 3;
    }

}