:root{--cream:#f2ece3;--cream-2:#e8ded2;--cream-3:#fbf7f1;--brown:#655044;--brown-deep:#4b392f;--brown-soft:#806a5b;--ink:#302923;--muted:#756a62;--line:rgba(74,57,47,.18);--white:#fffdf9}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,sans-serif;overflow-x:hidden}a{color:inherit}img{display:block;max-width:100%}
.topbar{position:fixed;z-index:50;top:0;left:0;right:0;height:88px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4.5vw;color:#fff;background:transparent;border:1px solid transparent;transition:all .48s cubic-bezier(.2,.72,.2,1)}.topbar.scrolled{top:16px;left:2.2vw;right:2.2vw;height:72px;padding:0 2.2vw;background:rgba(247,242,235,.96);color:var(--ink);border-color:rgba(90,72,59,.12);border-radius:999px;box-shadow:0 14px 42px rgba(43,31,24,.12);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;justify-self:start;letter-spacing:.23em;font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600}.brand img{width:48px;height:48px;object-fit:contain}.topbar:not(.scrolled) .brand img{filter:brightness(0) invert(1)}nav{display:flex;gap:34px;justify-content:center}nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;font-weight:500;position:relative}nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:currentColor;transition:right .25s ease}nav a:hover:after{right:0}.contact-pill{justify-self:end;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.67rem;border:1px solid currentColor;border-radius:999px;padding:13px 25px}
.hero{height:100svh;min-height:650px;position:relative;overflow:hidden;background:#2f2925}.hero-image{position:absolute;inset:-3%;background:url('assets/hero.jpg') center 43%/cover no-repeat;transform:scale(1);will-change:transform;transition:transform .08s linear}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,22,18,.12),rgba(26,20,16,.05) 45%,rgba(31,23,18,.35))}.hero-caption{position:absolute;left:5vw;bottom:7.5vw;color:white}.hero-caption p{margin:0 0 8px;font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,5.7rem);letter-spacing:.08em}.hero-caption span{text-transform:uppercase;letter-spacing:.23em;font-size:.64rem}
.section{max-width:1320px;margin:auto;padding:118px 5vw}.section-kicker{text-transform:uppercase;letter-spacing:.24em;font-size:.65rem;font-weight:600;color:#9b826e;margin-bottom:20px}.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:start}.about h1,.section-heading h2{font-family:'Cormorant Garamond',serif;font-size:clamp(3.2rem,6.3vw,6.5rem);font-weight:500;line-height:.94;margin:0}.about-box{background:var(--cream-3);border:1px solid var(--line);padding:42px;border-radius:26px;box-shadow:0 20px 45px rgba(63,45,34,.06);height:auto;min-height:0}.about-box p{margin:0;color:#5f554e;line-height:1.9;font-size:.98rem}.about-box p+p{margin-top:22px}.about-more{opacity:.78}.section-heading{margin-bottom:54px;max-width:820px}.section-heading>p:last-child{color:var(--muted);line-height:1.7;margin-top:18px}
.member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.member-featured{grid-column:1/-1}.flip-card{height:360px;perspective:1600px;cursor:pointer}.member-featured{height:420px}.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .82s cubic-bezier(.18,.78,.24,1)}.flip-card:hover .flip-inner,.flip-card:focus-within .flip-inner,.flip-card.is-flipped .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:24px;overflow:hidden;border:0}.flip-front{background:#d8d0c6}.flip-front img{width:100%;height:100%;object-fit:cover}.member-featured .flip-front img{object-position:center 35%}.flip-front:after{content:"";position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(29,21,17,.82))}.member-title{position:absolute;z-index:2;bottom:26px;left:28px;right:28px;color:white}.member-title h3,.flip-back h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,2.4vw,2.65rem);font-weight:600;margin:0}.member-title p{margin:6px 0 0;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}.flip-back{transform:rotateY(180deg);background:var(--brown);color:#fff;padding:36px;display:flex}.bio-scroll{width:100%;max-height:100%;overflow:auto;padding-right:8px;align-self:center;scrollbar-width:thin;scrollbar-color:#bca794 transparent}.flip-back .role{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:#ddcdbc;margin:10px 0 24px}.flip-back p{line-height:1.78;font-size:.88rem;color:#f4ece5}.flip-back .bio-extra{color:#ddcfc5;font-size:.8rem;margin-top:18px}
.repertoire{background:var(--brown-deep);color:white;padding:88px 5vw}.rep-shell{max-width:1320px;margin:auto}.light .section-kicker{color:#cdb9a6}.light>p:last-child{color:#d6c9bf}.repertoire .section-heading{margin-bottom:32px}.rep-cards{display:flex;gap:14px;height:236px}.rep-card{flex:1;min-width:0;border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:25px 28px;display:flex;flex-direction:column;justify-content:flex-start;background:rgba(255,255,255,.02);overflow:hidden;transition:flex 1.15s cubic-bezier(.18,.76,.18,1),background .95s ease,transform .95s ease,opacity .95s ease}.rep-cards:hover .rep-card{flex:.84;opacity:.58}.rep-cards .rep-card:hover,.rep-card.active,.rep-card:focus{flex:1.5;opacity:1;background:#6f584a;transform:translateY(-2px);outline:none}.rep-head span{font-size:.62rem;letter-spacing:.2em;color:#ccb6a4}.rep-head h3{font-family:'Cormorant Garamond',serif;font-size:clamp(1.85rem,2.7vw,3.15rem);font-weight:500;line-height:.98;margin:9px 0 4px}.rep-details{max-height:0;opacity:0;transform:translateY(12px);transition:max-height .95s ease,opacity .8s ease,transform .95s ease;overflow:hidden}.rep-card:hover .rep-details,.rep-card.active .rep-details,.rep-card:focus .rep-details{max-height:150px;opacity:1;transform:translateY(0);margin-top:9px}.rep-details p{color:#eee2d8;line-height:1.42;font-size:.76rem;margin:0}.rep-details ul{padding-left:17px;margin:8px 0 0;color:#f5eee8;line-height:1.42;font-size:.7rem}
.concerts{padding-top:96px;padding-bottom:96px}.concerts .section-heading{margin-bottom:34px}.concert-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.concert-card{position:relative;height:270px;background:var(--cream-3);border-radius:26px;padding:30px;overflow:hidden;outline:none;box-shadow:0 16px 38px rgba(63,45,34,.05);transition:transform .65s cubic-bezier(.2,.72,.2,1),background .65s ease,color .65s ease}.concert-card:hover,.concert-card:focus,.concert-card.active{transform:translateY(-5px);background:var(--brown);color:#fff}.concert-card-head{display:grid;grid-template-columns:1fr auto;align-items:start;position:relative;z-index:2}.concert-card-head span{grid-column:1/-1;text-transform:uppercase;letter-spacing:.22em;font-size:.61rem;color:#9b826e;margin-bottom:10px}.concert-card:hover .concert-card-head span,.concert-card:focus .concert-card-head span,.concert-card.active .concert-card-head span{color:#dbcabb}.concert-card-head h3{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.4vw,3.55rem);font-weight:500;line-height:.95;margin:0}.concert-card-head b{font-size:1.35rem;font-weight:400;transition:transform .65s ease}.concert-card:hover .concert-card-head b,.concert-card:focus .concert-card-head b,.concert-card.active .concert-card-head b{transform:rotate(180deg)}.concert-details{position:absolute;left:30px;right:30px;top:118px;bottom:24px;opacity:0;transform:translateY(14px);overflow:auto;transition:opacity .55s ease,transform .7s ease;scrollbar-width:thin}.concert-card:hover .concert-details,.concert-card:focus .concert-details,.concert-card.active .concert-details{opacity:1;transform:translateY(0)}.concert-item{display:grid;grid-template-columns:95px 1fr;gap:14px;padding:9px 0;border-top:1px solid rgba(83,63,51,.14)}.concert-card:hover .concert-item,.concert-card:focus .concert-item,.concert-card.active .concert-item{border-color:rgba(255,255,255,.18)}.concert-item time{font-size:.62rem;letter-spacing:.05em}.concert-item strong{font-family:'Cormorant Garamond',serif;font-size:1.08rem;font-weight:600}.concert-item p{margin:2px 0 0;font-size:.66rem;opacity:.72}
.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:start}.social-box,.review-box{background:var(--cream-3);border:1px solid var(--line);border-radius:28px;overflow:hidden}.social-box{padding:6px 28px;height:auto;align-self:start}.social-box a{display:grid;grid-template-columns:105px 1fr auto;gap:18px;align-items:center;text-decoration:none;padding:20px 0;border-bottom:1px solid var(--line);transition:padding .25s ease}.social-box a:last-child{border-bottom:0}.social-box a:hover{padding-left:8px}.social-box span{text-transform:uppercase;letter-spacing:.19em;font-size:.59rem;color:#9a806d}.social-box strong{font-family:'Cormorant Garamond',serif;font-size:clamp(1.15rem,2vw,1.75rem);font-weight:600}.social-box b{font-size:1.2rem;font-weight:400}.review-box{padding:34px}.review-copy span{text-transform:uppercase;letter-spacing:.19em;font-size:.6rem;color:#9a806d}.review-copy h3{font-family:'Cormorant Garamond',serif;font-size:2.8rem;margin:8px 0 5px}.review-copy p{color:var(--muted);font-size:.82rem;line-height:1.6}.form-row{display:grid;grid-template-columns:1fr 145px;gap:12px;margin-top:24px}input,select,textarea{width:100%;border:1px solid #d9cbbc;background:#fffdf9;color:var(--ink);padding:15px 16px;border-radius:13px;font:inherit;font-size:.82rem;outline:none}textarea{resize:vertical;margin-top:12px}input:focus,select:focus,textarea:focus{border-color:#9c806b;box-shadow:0 0 0 3px rgba(156,128,107,.08)}button{margin-top:12px;border:0;background:var(--brown-deep);color:white;padding:14px 20px;border-radius:999px;text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;cursor:pointer}.review-carousel{display:grid;grid-template-columns:34px 1fr 34px;gap:10px;align-items:center;margin-top:24px}.review-list{min-height:118px}.review-item{background:#f0e8df;border:1px solid var(--line);padding:17px;border-radius:16px;animation:reviewIn .45s ease both}.review-item-top{display:flex;justify-content:space-between;gap:12px}.review-item strong{font-family:'Cormorant Garamond',serif;font-size:1.2rem}.review-stars{letter-spacing:.08em;color:#8f715d}.review-item p{margin:8px 0 0;color:#605750;line-height:1.6;font-size:.8rem}.review-nav{width:34px;height:34px;margin:0;padding:0;border-radius:50%;display:grid;place-items:center;font-size:1rem;letter-spacing:0;background:#e9ddd0;color:var(--ink);transition:transform .2s ease,background .2s ease}.review-nav:hover{transform:scale(1.06);background:#dbcbbb}.review-dots{display:flex;justify-content:center;gap:6px;margin-top:12px}.review-dot{width:6px;height:6px;border-radius:50%;background:#cbbbab}.review-dot.active{background:var(--brown-deep);transform:scale(1.35)}@keyframes reviewIn{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.site-footer{max-width:1320px;margin:auto;padding:34px 5vw 42px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;font-size:.7rem;color:#6f655e}.site-footer p{margin:0}.site-footer p:nth-child(2){text-align:center}.site-footer a{text-align:right;text-decoration:none}.reveal{opacity:0;transform:translateY(34px);transition:opacity .82s ease,transform .82s cubic-bezier(.2,.72,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:1050px){.contact-layout{grid-template-columns:1fr}.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.contact-pill{grid-column:2}.hero-caption{bottom:12vw}.member-featured{height:380px}}
@media(max-width:760px){.topbar{height:72px;padding:0 18px}.topbar.scrolled{top:10px;left:12px;right:12px;height:62px;padding:0 14px}.brand img{width:40px;height:40px}.brand span{display:none}.contact-pill{padding:10px 17px}.hero-image{background-position:50% 38%}.hero-caption{left:20px;bottom:70px}.hero-caption p{font-size:2.5rem}.hero-caption span{font-size:.54rem;letter-spacing:.16em}.section{padding:88px 20px}.about-grid{grid-template-columns:1fr;gap:35px}.about-box{padding:26px;border-radius:20px}.member-grid{grid-template-columns:1fr}.member-featured{grid-column:auto}.flip-card,.member-featured{height:500px}.repertoire{padding:78px 20px}.rep-cards{display:grid;height:auto}.rep-cards:hover .rep-card{opacity:1}.rep-card,.rep-cards:hover .rep-card,.rep-cards .rep-card:hover,.rep-card.active,.rep-card:focus{flex:none;transform:none;opacity:1}.rep-card{min-height:128px}.rep-card.active{background:#6f584a}.rep-card .rep-details{max-height:0}.rep-card.active .rep-details{max-height:230px;opacity:1;transform:none}.concert-grid{grid-template-columns:1fr}.concert-card{height:260px}.form-row{grid-template-columns:1fr}.social-box{padding:4px 20px}.social-box a{grid-template-columns:80px 1fr auto;gap:10px;padding:18px 0}.social-box strong{font-size:1.12rem}.site-footer{grid-template-columns:1fr;gap:12px;text-align:left}.site-footer p:nth-child(2),.site-footer a{text-align:left}}

/* ===== V5 dorade ===== */
/* Repertoar: kompaktnije kartice, veći naslov i sporiji, mekši prelaz. */
.repertoire{padding-top:78px;padding-bottom:78px}
.repertoire .section-heading{margin-bottom:24px}
.rep-cards{height:190px;gap:14px}
.rep-card{position:relative;padding:22px 26px;justify-content:center;transition:flex 1.55s cubic-bezier(.16,.72,.18,1),background 1.25s ease,transform 1.25s ease,opacity 1.25s ease}
.rep-head{transition:transform 1.25s cubic-bezier(.16,.72,.18,1)}
.rep-head h3{font-size:clamp(2.3rem,3.2vw,3.85rem);margin:7px 0 0;line-height:.92}
.rep-details{position:absolute;left:26px;right:26px;bottom:18px;max-height:none;margin:0!important;opacity:0;transform:translateY(18px);transition:opacity 1.1s ease .12s,transform 1.25s cubic-bezier(.16,.72,.18,1);overflow:hidden}
.rep-card:hover .rep-head,.rep-card.active .rep-head,.rep-card:focus .rep-head{transform:translateY(-35px)}
.rep-card:hover .rep-details,.rep-card.active .rep-details,.rep-card:focus .rep-details{max-height:none;opacity:1;transform:translateY(0)}
.rep-details p{font-size:.72rem;line-height:1.35}.rep-details ul{font-size:.67rem;line-height:1.35;margin-top:6px}

/* Koncerti: bez hover otvaranja, svaki boks raste samostalno i bez scrollbara. */
.concerts{padding-top:78px;padding-bottom:44px}
.concerts .section-heading{margin-bottom:24px}
.concert-grid{align-items:start;gap:24px}
.concert-card{height:auto;min-height:142px;padding:26px 30px;overflow:visible;cursor:pointer;transition:transform .65s cubic-bezier(.2,.72,.2,1),background .65s ease,color .65s ease,padding .65s ease}
.concert-card:hover{transform:translateY(-2px)}
.concert-card:hover:not(.active){background:var(--cream-3);color:var(--ink)}
.concert-card:hover:not(.active) .concert-card-head span{color:#9b826e}
.concert-card:hover:not(.active) .concert-card-head b{transform:none}
.concert-card.active{transform:translateY(-3px);background:var(--brown);color:#fff;padding-bottom:26px}
.concert-card-head h3{font-size:clamp(2.35rem,3.7vw,4rem)}
.concert-details{position:static;max-height:0;opacity:0;transform:translateY(10px);overflow:hidden;margin-top:0;transition:max-height .8s cubic-bezier(.2,.72,.2,1),opacity .5s ease,transform .7s ease,margin-top .7s ease}
.concert-card:hover .concert-details,.concert-card:focus .concert-details{opacity:0;transform:translateY(10px);max-height:0;margin-top:0}
.concert-card.active .concert-details{max-height:650px;opacity:1;transform:translateY(0);margin-top:22px;overflow:visible}
.concert-card.active .concert-card-head span{color:#dbcabb}
.concert-card.active .concert-card-head b{transform:rotate(180deg)}
.concert-item{padding:12px 0}
.concert-item strong{font-size:1.18rem}

/* Kontakt počinje odmah posle koncerata, bez praznog međuprostora. */
.contact{padding-top:58px}

/* Recenzije: jedna po jedna, strelice i tačkice. */
.review-carousel{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:10px;align-items:center;margin-top:24px}
.review-list{min-height:112px}
.review-nav{width:36px;height:36px;margin:0;padding:0;border-radius:50%;display:grid;place-items:center;font-size:1rem;letter-spacing:0;background:#e9ddd0;color:var(--ink);transition:transform .25s ease,background .25s ease,opacity .25s ease}
.review-nav:hover:not(:disabled){transform:scale(1.06);background:#dbcbbb}.review-nav:disabled{opacity:.3;cursor:default}
.review-dots{display:flex;justify-content:center;gap:7px;margin-top:12px}
.review-dot{display:block;width:7px;height:7px;min-width:7px;padding:0;margin:0;border:0;border-radius:50%;background:#cbbbab;transition:transform .25s ease,background .25s ease}
.review-dot.active{background:var(--brown-deep);transform:scale(1.35)}

@media(max-width:760px){
  .rep-cards{height:auto}.rep-card{min-height:145px;justify-content:center}.rep-head h3{font-size:2.55rem}.rep-details{position:static;max-height:0;opacity:0;transform:translateY(10px);margin-top:0!important}.rep-card.active{padding-bottom:22px}.rep-card.active .rep-head{transform:none}.rep-card.active .rep-details{max-height:300px;margin-top:16px!important;opacity:1;transform:none}
  .concerts{padding-top:72px;padding-bottom:34px}.concert-card{min-height:132px}.concert-card-head h3{font-size:2.65rem}.concert-card.active .concert-details{margin-top:18px}.concert-item{grid-template-columns:82px 1fr}
  .contact{padding-top:48px}
}


/* ===== V6 dorade ===== */
/* O nama -> Ansambl: uklonjena velika praznina između sekcija. */
.about{padding-bottom:58px}
.members{padding-top:54px}

/* Repertoar: malo veći naslovi i sadržaj, bez vraćanja praznog prostora. */
.rep-head h3{font-size:clamp(2.55rem,3.55vw,4.15rem)}
.rep-details p{font-size:.79rem;line-height:1.4}
.rep-details ul{font-size:.73rem;line-height:1.4}

/* Koncerti: oba boksa su malo veća; budući koncerti imaju braon osnovu. */
.concert-card{min-height:174px;padding:31px 34px}
.concert-card-head h3{font-size:clamp(2.6rem,4vw,4.35rem)}
.concert-card-head span{font-size:.66rem}
.concert-card.future{background:#765f50;color:#fff}
.concert-card.future .concert-card-head span{color:#ddcbbb}
.concert-card.future .concert-card-head b{color:#fff}
.concert-card.future:hover:not(.active){background:#765f50;color:#fff}
.concert-card.future:hover:not(.active) .concert-card-head span{color:#ddcbbb}
.concert-card.future.active{background:var(--brown-deep)}
.concert-card.active .concert-details{margin-top:24px}
.concert-item{padding:13px 0}
.concert-item strong{font-size:1.28rem}
.concert-item p{font-size:.71rem}

/* Kontakt: Facebook uklonjen. Boksovi iste visine, ali prostor u levom boksu
   raspoređen je između stvarnih kontakt-redova umesto kao prazna površina. */
.contact-layout{align-items:stretch}
.social-box{height:auto;align-self:stretch;display:flex;flex-direction:column;padding:6px 28px}
.social-box a{flex:1;min-height:78px;padding:18px 0}
.review-box{height:100%}

@media(max-width:760px){
  .about{padding-bottom:36px}.members{padding-top:42px}
  .rep-head h3{font-size:2.75rem}.rep-details p{font-size:.78rem}.rep-details ul{font-size:.72rem}
  .concert-card{min-height:155px;padding:27px 28px}.concert-card-head h3{font-size:2.85rem}
  .contact-layout{align-items:start}.social-box,.review-box{height:auto}.social-box a{min-height:0;flex:none}
}

/* ===== V7 dorade: repertoar + koncertna galerija ===== */
/* Repertoar: stabilan raspored bez preklapanja teksta; svi nazivi po dva reda. */
.rep-cards{height:212px}
.rep-card{padding:22px 26px;justify-content:flex-start;transition:flex 1.85s cubic-bezier(.16,.72,.18,1),background 1.45s ease,transform 1.45s ease,opacity 1.45s ease}
.rep-head{min-height:104px;display:flex;flex-direction:column;justify-content:center;transition:transform 1.35s cubic-bezier(.16,.72,.18,1)}
.rep-head h3{font-size:clamp(2.55rem,3.7vw,4.25rem);line-height:.82;margin:8px 0 0}
.rep-details{position:static;max-height:0;margin:0!important;opacity:0;transform:translateY(14px);transition:max-height 1.15s cubic-bezier(.16,.72,.18,1),opacity 1s ease .2s,transform 1.25s cubic-bezier(.16,.72,.18,1);overflow:hidden}
.rep-card:hover .rep-head,.rep-card.active .rep-head,.rep-card:focus .rep-head{transform:translateY(-6px)}
.rep-card:hover .rep-details,.rep-card.active .rep-details,.rep-card:focus .rep-details{max-height:104px;opacity:1;transform:translateY(0);margin-top:4px!important}
.rep-details p{font-size:.76rem;line-height:1.35}.rep-details ul{font-size:.7rem;line-height:1.32;margin-top:5px}

/* Koncerti: početno stanje je već otvoreno; levi svetao, desni braon. */
.concerts{padding-bottom:58px}
.concert-grid{align-items:stretch}
.concert-card{height:auto;min-height:330px;padding:30px 34px;overflow:hidden;cursor:default;transform:none!important;transition:box-shadow .45s ease}
.concert-card:hover,.concert-card:focus,.concert-card.active{transform:none;background:var(--cream-3);color:var(--ink)}
.concert-card.future,.concert-card.future:hover,.concert-card.future:focus,.concert-card.future.active{background:#765f50;color:#fff}
.concert-card-head{display:block;margin-bottom:18px}
.concert-card-head h3{font-size:clamp(2.7rem,4.1vw,4.45rem);line-height:.92}
.concert-card-head span{display:block;margin-bottom:10px}
.concert-details,.concert-card:hover .concert-details,.concert-card:focus .concert-details,.concert-card.active .concert-details{position:static;max-height:none;opacity:1;transform:none;overflow:visible;margin-top:0}
.concert-item{width:100%;margin:0;padding:13px 0;background:transparent;color:inherit;border:0;border-top:1px solid rgba(83,63,51,.16);border-radius:0;display:grid;grid-template-columns:96px 1fr auto;gap:14px;align-items:center;text-align:left;letter-spacing:0;text-transform:none;transition:padding .45s ease,opacity .45s ease,transform .45s ease}
.concert-card.future .concert-item{border-color:rgba(255,255,255,.18)}
.concert-item:hover{padding-left:8px;padding-right:4px;transform:translateX(2px);opacity:.9}
.concert-item time{font:600 .63rem Montserrat,sans-serif;letter-spacing:.04em}
.concert-item span{display:block}
.concert-item strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1.28rem;font-weight:600;line-height:1.05}
.concert-item small{display:block;margin-top:3px;font:400 .7rem Montserrat,sans-serif;opacity:.72}
.concert-item b{font-size:1rem;font-weight:400}

/* Smooth lightbox / slideshow za svaki koncert. */
.concert-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:32px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s ease}
.concert-modal.open{opacity:1;visibility:visible;pointer-events:auto}
.concert-modal-backdrop{position:absolute;inset:0;background:rgba(32,24,20,.68);backdrop-filter:blur(12px);opacity:0;transition:opacity .45s ease}
.concert-modal.open .concert-modal-backdrop{opacity:1}
.concert-modal-panel{position:relative;z-index:1;width:min(100%,960px);max-height:90vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);background:#f5efe7;border-radius:28px;overflow:hidden;box-shadow:0 30px 100px rgba(20,14,11,.35);transform:translateY(24px) scale(.97);opacity:0;transition:transform .6s cubic-bezier(.18,.78,.2,1),opacity .45s ease}
.concert-modal.open .concert-modal-panel{transform:translateY(0) scale(1);opacity:1}
.concert-modal-close{position:absolute;top:18px;right:18px;z-index:4;width:42px;height:42px;margin:0;padding:0;border-radius:50%;display:grid;place-items:center;background:rgba(247,242,235,.88);color:var(--ink);font-size:1.55rem;line-height:1;letter-spacing:0;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.concert-slideshow{position:relative;min-height:560px;background:#1d1916;overflow:hidden}
.concert-slides,.concert-slide{position:absolute;inset:0;margin:0}
.concert-slide{opacity:0;transform:scale(1.025);transition:opacity .65s ease,transform .85s cubic-bezier(.18,.78,.2,1)}
.concert-slide.active{opacity:1;transform:scale(1)}
.concert-slide img{width:100%;height:100%;object-fit:contain;}
.concert-slide-nav{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:44px;height:44px;margin:0;padding:0;border-radius:50%;background:rgba(246,240,232,.82);color:var(--ink);display:grid;place-items:center;font-size:1rem;letter-spacing:0;backdrop-filter:blur(8px)}
.concert-slide-prev{left:18px}.concert-slide-next{right:18px}
.concert-slide-dots{position:absolute;z-index:3;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:7px}
.concert-slide-dot{width:7px;height:7px;min-width:7px;margin:0;padding:0;border-radius:50%;background:rgba(255,255,255,.45);border:0}
.concert-slide-dot.active{background:#fff;transform:scale(1.35)}
.concert-modal-copy{padding:54px 40px;display:flex;flex-direction:column;justify-content:flex-end}
.concert-modal-copy>span{text-transform:uppercase;letter-spacing:.22em;font-size:.62rem;color:#957b68}
.concert-modal-copy h3{font-family:'Cormorant Garamond',serif;font-size:clamp(2.8rem,4.8vw,5rem);font-weight:500;line-height:.9;margin:12px 0 26px}
.concert-modal-copy p{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin:0;color:#6d625b;font-size:.77rem;line-height:1.5}
.concert-modal-copy em{font-style:normal;opacity:.4}.concert-modal-copy strong{font-weight:500}
body.modal-open{overflow:hidden}

@media(max-width:760px){
  .rep-cards{height:auto}.rep-card{min-height:150px}.rep-head{min-height:90px}.rep-head h3{font-size:2.75rem;line-height:.84}.rep-card.active .rep-details{max-height:220px;margin-top:8px!important}.rep-card.active .rep-head{transform:none}
  .concert-card{min-height:0;padding:26px 25px}.concert-card-head h3{font-size:3rem}.concert-item{grid-template-columns:82px 1fr auto}
  .concert-modal{padding:14px}.concert-modal-panel{grid-template-columns:1fr;max-height:94vh;overflow:auto}.concert-slideshow{min-height:58vh}.concert-modal-copy{padding:30px 26px 34px}.concert-modal-copy h3{font-size:3.1rem;margin-bottom:18px}
}

/* ===== V8 izmene ===== */
.hero-image{background-image:url('assets/hero.jpg');background-position:center 48%}
.about-box{padding:38px 42px}
.about-box p{line-height:1.72;font-size:.94rem}

/* Aleksa široko i nešto viši; ostali članovi u kompaktnim kvadratima 3 u redu. */
.member-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.member-featured{grid-column:1/-1;height:520px}
.member-grid>.flip-card:not(.member-featured){height:auto;aspect-ratio:1/1}
.member-featured .flip-front img{object-position:center 38%}
.member-featured .flip-back{padding:44px 48px}
.member-featured .bio-scroll{max-width:980px;margin:auto}
.member-featured .flip-back p{font-size:.9rem;line-height:1.7}

/* Repertoar: dovoljno prostora za detalje bez odsecanja. */
.rep-cards{height:320px}
.rep-card{padding:24px 27px}
.rep-head{min-height:112px}
.rep-head h3{font-size:clamp(2.25rem,3.4vw,4rem);line-height:.84}
.rep-card:hover .rep-details,.rep-card.active .rep-details,.rep-card:focus .rep-details{max-height:185px;margin-top:5px!important}
.rep-details p{font-size:.77rem;line-height:1.38}
.rep-details ul{font-size:.72rem;line-height:1.38;margin-top:8px}

/* Arhiva: vide se približno tri stavke, ostale se listaju. */
.concert-scroll-list{max-height:250px!important;overflow-y:auto!important;padding-right:8px;scrollbar-width:thin;scrollbar-color:#bda897 transparent}
.concert-scroll-list::-webkit-scrollbar{width:6px}
.concert-scroll-list::-webkit-scrollbar-thumb{background:#bda897;border-radius:10px}
.concert-item{grid-template-columns:112px 1fr auto;align-items:center}
.concert-item b{font-weight:400}
.concert-card{min-height:355px}

/* Modal: fotografije/plakati mogu da imaju i prazna mesta za kasniju zamenu. */
.concert-modal-copy{justify-content:center;transform:none}
.concert-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#5f493d,#2f241f);color:#fff;text-align:center;padding:40px}
.concert-placeholder div{max-width:360px}
.concert-placeholder span{font-family:'Cormorant Garamond',serif;font-size:3rem;letter-spacing:.12em}
.concert-placeholder small{display:none!important}
.concert-placeholder small{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;opacity:.72}

/* Kontakt bez recenzija. */
.contact-layout-single{grid-template-columns:1fr;max-width:920px}
.contact-layout-single .social-box{width:100%}

@media(max-width:1050px){
  .member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .member-featured{height:470px}
}
@media(max-width:760px){
  .member-grid{grid-template-columns:1fr;gap:18px}
  .member-featured{height:430px}
  .member-grid>.flip-card:not(.member-featured){aspect-ratio:1/1.05}
  .rep-cards{height:auto}
  .rep-card{min-height:180px}
  .rep-card.active{min-height:340px}
  .rep-card.active .rep-details{max-height:230px}
  .concert-scroll-list{max-height:210px!important}
  .concert-item{grid-template-columns:88px 1fr auto}
}
.contact-layout{grid-template-columns:.9fr 1.1fr}
@media(max-width:1050px){.contact-layout{grid-template-columns:1fr}}


/* ===== V9: duži istorijat i biografije ===== */

/* O nama: vraćena ranija dimenzija i uveden unutrašnji scroll umesto rasta sekcije. */
.about-box {
  height: 390px;
  min-height: 390px;
  max-height: 390px;
  overflow: hidden;
  padding: 42px;
}

.about-scroll {
  height: 100%;
  overflow-y: auto;
  padding-right: 15px;
  margin-right: -30px;
  scrollbar-width: thin;
  scrollbar-color: #bda897 transparent;
}

.about-scroll::-webkit-scrollbar {
  width: 6px;
}

.about-scroll::-webkit-scrollbar-thumb {
  background: #bda897;
  border-radius: 999px;
}

/* Poleđine svih kartica imaju svoj diskretan scroll za duže biografije. */
.flip-back{overflow:hidden}
.bio-scroll{
  max-height:100%;
  overflow-y:auto;
  margin-right: 0;
  padding-right:10px;
  scrollbar-width:thin;
  scrollbar-color:#bca794 transparent;
}
.bio-scroll::-webkit-scrollbar{width:5px}
.bio-scroll::-webkit-scrollbar-track{background:transparent}
.bio-scroll::-webkit-scrollbar-thumb{background:#bca794;border-radius:999px}
.flip-back .bio-scroll p{margin-bottom:14px}

/* Aleksina velika kartica ostaje iste spoljne dimenzije, ali prima mnogo duži tekst. */
.member-featured .bio-scroll{height:100%;max-height:100%}
.member-featured .flip-back{overflow:hidden}

/* Arhiva koncerata: zadržano listanje sa najnovijim događajem na vrhu. */
.concert-scroll-list{scrollbar-gutter:stable}
/* Scrollbar bliže desnoj ivici kartica muzičara */

.flip-back {
  padding-right: 15px;
}

.member-featured .flip-back {
  padding-right: 15px;
}

.bio-scroll {
  margin-right: 0;
  padding-right: 10px;
}
/* Aleksina kartica – scrollbar bliže desnoj ivici */
.member-featured .bio-scroll {
  max-width: none;
  width: 100%;
  margin-right: 0;
}
/* Održani koncerti – scrollbar bliže desnoj ivici */
.concert-card:not(.future) {
  padding-right: 15px;
}

.concert-scroll-list {
  padding-right: 10px;

}
/* Galerija koncerata – bez praznih traka */

.concert-slideshow {
  min-height: 0;
  height: 100%;
}

.concert-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* ŠABAC – plakat 4:3, bez odsecanja */

.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) {
  width: min(94vw, 1050px);
  max-height: 90vh;
  grid-template-columns: minmax(0, 4fr) minmax(0, 1.65fr);
}

.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slideshow {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
  background: transparent;
}

.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-modal-copy {
  padding: 24px 22px;
  min-width: 0;
}

.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-modal-copy h3 {
  font-size: clamp(1.8rem, 3vw, 3rem);
  overflow-wrap: break-word;
}

/* Telefon */
@media (max-width: 760px) {
  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) {
    width: 100%;
    grid-template-columns: 1fr;
    max-height: 94vh;
  }

  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slideshow {
    aspect-ratio: 4 / 3;
    height: auto;
  }

  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-modal-copy {
    padding: 24px;
  }
}/* Veći naslov samo za koncert u Šapcu */
.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-modal-copy h3 {
  font-size: 3.8rem;
  line-height: 0.95;
}
/* Mobile-only refinements. Desktop rules remain unchanged. */
@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: clip; }
  .concert-modal { padding: 12px; }
  .concert-modal-panel {
    width: 100%; max-height: calc(100dvh - 24px);
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: minmax(250px, 58dvh) auto;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .concert-slideshow { min-height: 250px; height: 58dvh; }
  .concert-slides, .concert-slide { inset: 0; }
  .concert-slide img { width: 100%; height: 100%; object-fit: contain; }
  .concert-modal-copy { padding: 22px 22px 28px; }
  .concert-modal-copy h3 { font-size: clamp(2rem, 9vw, 3.1rem); line-height: 1; overflow-wrap: anywhere; }
  .concert-item { grid-template-columns: minmax(68px, 82px) minmax(0,1fr) auto; gap: 8px; }
  .concert-item strong { overflow-wrap: anywhere; }
  .concert-card { min-width: 0; }
  .concert-slide-nav { width: 38px; height: 38px; }
  .concert-slide-prev { left: 8px; }
  .concert-slide-next { right: 8px; }
}
@media (max-width: 390px) {
  .concert-card { padding-left: 16px; padding-right: 16px; }
  .concert-card-head h3 { font-size: 2.5rem; }
  .concert-item time { font-size: .58rem; }
  .concert-item strong { font-size: 1.08rem; }
}

@media(max-width:760px){.concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-modal-copy h3{font-size:clamp(2rem,9vw,3.1rem)}}

/* Mobilna dorada 19.10.2026 — desktop ostaje netaknut */
@media (max-width: 760px) and (orientation: portrait) {
  /* Kada dodate assets/hero-mob.jpg, telefon koristi uspravnu fotografiju. */
  .hero-image { background-image: url('assets/hero-mob.jpg'), url('assets/hero.jpg'); background-position: center center; }
}
@media (max-width: 760px) {
  .section-heading > p:last-child { font-size: .79rem; line-height: 1.55; }
  .about-box p { font-size: .85rem; line-height: 1.65; }
  .social-box a { grid-template-columns: 74px minmax(0,1fr) 14px; gap: 7px; }
  .social-box span { font-size: .51rem; letter-spacing: .12em; }
  .social-box strong { min-width: 0; font-size: clamp(.75rem, 3.35vw, 1.05rem); overflow-wrap: anywhere; }
  .social-box a[href^='mailto:'] strong { font-size: clamp(.67rem, 2.75vw, .92rem); overflow-wrap: normal; letter-spacing: -.02em; }
  .social-box a[href^='tel:'] strong { font-size: clamp(.85rem, 3.2vw, 1rem); white-space: nowrap; }
  .social-box b { font-size: .95rem; }
  /* Fotografije iz arhive su prve u mobilnom prozoru, tekst ispod njih. */
  .concert-modal-panel { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); overflow-y: auto; }
  .concert-slideshow { flex: 0 0 auto; height: min(56dvh, 460px); min-height: 220px; }
  .concert-modal-copy { flex: 0 0 auto; }
}
@media screen and (max-width: 767px) and (orientation: portrait) {
  .hero-image {
    inset: 0 !important;
    background: url("assets/hero-mob.jpg") center center / contain no-repeat !important;
    transform: none !important;
  }
}
@media screen and (max-width: 767px) {
  .hero-image {
    background-image: url("assets/hero-mob.jpg") !important;
    background-position: center center !important;
    background-size: cover !important;
  }
}
/* FINAL: pouzdan prikaz naslovne slike i galerija na svim ekranima */
.concert-modal-panel { min-height: min(600px, 85vh); }
.concert-slideshow { position:relative; height: min(72vh, 650px); min-height: 420px; }
.concert-slides, .concert-slide { position:absolute; inset:0; }
.concert-slide img { width:100%; height:100%; object-fit:contain; object-position:center; }
.concert-slide.concert-placeholder { position:absolute; inset:0; }
@media (max-width:767px) {
  .hero { height:100svh; min-height:0; background:#25211e; }
  .hero-image { inset:0!important; background-image:url('assets/hero-mob.jpg')!important; background-size:contain!important; background-position:center center!important; background-repeat:no-repeat!important; transform:none!important; }
  .concert-modal-panel { min-height:0; display:flex; flex-direction:column; max-height:calc(100dvh - 24px); overflow-y:auto; }
  .concert-slideshow { flex:0 0 auto; height:min(56dvh,460px)!important; min-height:240px!important; width:100%; }
  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slideshow { height:auto!important; min-height:0!important; aspect-ratio:4/3; }
}

/* V11 – naslovna bez praznih traka; galerija bez crnih margina */
@media (max-width: 767px) {
  .hero { background: #302923; }
  .hero-image {
    inset: 0 !important;
    background-image: url('assets/hero-mob.jpg') !important;
    background-size: cover !important;
    background-position: center 53% !important;
    background-repeat: no-repeat !important;
    transform: none !important;
  }
  .concert-slideshow {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 3 / 2;
    background: #f5efe7;
  }
  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slideshow {
    aspect-ratio: 4 / 3;
  }
  .concert-slide img { object-fit: cover !important; }
  .concert-slide.portrait-photo img { object-fit: contain !important; }
}
/* Fotografski okvir prati fotografiju; portreti imaju nežnu pozadinu umesto crnih traka */
.concert-slide { background-color: #f5efe7; background-position: center; background-size: cover; }
.concert-slide.portrait-photo::before {
  content: ''; position: absolute; inset: -16px;
  background-image: inherit; background-size: cover; background-position: center;
  filter: blur(18px) brightness(.75);
}
.concert-slide img { position: relative; z-index: 1; }
/* GALERIJA – SAMO LAPTOP I RAČUNAR */
@media screen and (min-width: 761px) {

  .concert-modal-panel {
    width: min(94vw, 1050px);
    height: 560px;
    max-height: 85vh;
    grid-template-columns: 65% 35%;
    overflow: hidden;
  }

  .concert-slideshow {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    background: transparent;
  }

  .concert-slides,
  .concert-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .concert-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .concert-modal-copy {
    height: 100%;
    padding: 35px;
    background: #f5efe7;
  }

  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) {
    width: min(94vw, 1050px);
    height: 560px;
    max-height: 85vh;
    grid-template-columns: 65% 35%;
  }

  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slideshow {
    height: 100%;
    aspect-ratio: auto;
  }

  .concert-modal-panel:has(img[src*="sabac-koncert-okt.jpg"]) .concert-slide img {
    object-fit: cover;
  }
}



/* Koncerti: manji boksovi, tri cela koncerta vidljiva na prvi pogled. */
@media (min-width: 761px) {
  .concert-grid {
    align-items: stretch;
  }

  .concert-card {
    height: 330px;
    min-height: 330px;
  }

  .concert-card .concert-details {
    overflow: hidden;
  }

  .concert-card .concert-details.concert-scroll-list {
    height: 195px;
    max-height: 195px !important;
    overflow-y: auto !important;
  }

  .concert-card.future .concert-details {
    height: auto;
    max-height: 195px;
    overflow-y: hidden;
  }
}

  .concert-card.future .concert-details {
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    width: 100%;
    box-sizing: border-box;
  }

  .concert-card.future .concert-details * {
    max-width: 100%;
    box-sizing: border-box;
  }


/* Mobile repair: reliable two-face cards without iOS 3D rendering artifacts */
@media (max-width: 760px) {
  .flip-card, .member-featured { position:relative; height: min(520px, 125vw) !important; min-height: 390px; aspect-ratio:auto !important; perspective:none !important; isolation:isolate; }
  .flip-inner { transform:none !important; transform-style:flat !important; transition:none !important; position:relative; }
  .flip-front, .flip-back { backface-visibility:visible !important; -webkit-backface-visibility:visible !important; transform:none !important; -webkit-transform:none !important; inset:0; border-radius:24px; }
  .flip-front { display:block; visibility:visible; z-index:2; }
  .flip-back { display:none; visibility:hidden; z-index:1; padding:26px 24px !important; align-items:stretch; }
  .flip-card.is-flipped .flip-front { display:none; visibility:hidden; }
  .flip-card.is-flipped .flip-back { display:flex; visibility:visible; z-index:3; }
  .flip-back .bio-scroll { align-self:stretch; margin:0 !important; max-width:none !important; width:100%; height:100%; max-height:100%; min-height:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding-right:6px; }
  .flip-back h3 { position:relative; text-align:left; font-size:clamp(1.85rem,7vw,2.6rem); line-height:1.1; }
  .flip-back .role { margin:8px 0 18px; }
  .flip-back p { font-size:.88rem !important; line-height:1.7 !important; }
  .social-box b { display:grid; place-items:center; width:20px; height:20px; font-size:0 !important; line-height:0; color:var(--brown-deep); }
  .social-box b::after { content:'↗'; font-family:Arial,sans-serif; font-size:20px; font-weight:300; line-height:1; }
  .social-box a { grid-template-columns:74px minmax(0,1fr) 20px !important; }
  .social-box strong { overflow-wrap:anywhere; }
}
/* Minimal arrows across desktop and mobile, without emoji rendering */
.social-box b { font-size:0; font-weight:400; font-family:Arial,sans-serif; }
.social-box b::after { content:'↗'; font-family:Arial,sans-serif; font-size:20px; font-weight:300; line-height:1; color:var(--brown-deep); }
/* Ukloni strelice iz kontakt sekcije */
.social-box a::before,
.social-box a::after,
.social-box a > b,
.social-box a > span:last-child {
    display: none !important;
    content: none !important;
}