/* Lively theme */
:root{--primary:#6A4CC3;--accent:#F5C242;--dark:#0F1222;--light:#F7F7FA;}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;color:var(--dark);background:linear-gradient(180deg,#fbfbff,#f4f4ff)}
.container{max-width:1120px;margin:0 auto;padding:0 1rem}

.glass{backdrop-filter:saturate(1.2) blur(8px);background-color:rgba(255,255,255,.65)}

.nav{position:sticky;top:0;border-bottom:1px solid #e9e9f2;z-index:50}
.nav .container{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--dark);font-weight:800;letter-spacing:.2px}
.brand img{height:28px;width:auto}
#menu{display:flex;gap:1rem;align-items:center}
#menu a{text-decoration:none;color:var(--dark);padding:.5rem .75rem;border-radius:.6rem;transition:.2s}
#menu a:hover{background:#efeefe}
#menu .cta{background:var(--primary);color:#fff}
.nav-toggle{display:none;border:none;background:transparent;font-size:1.5rem}

.hero{position:relative;min-height:82vh;overflow:hidden}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05)}
.hero .tint{position:absolute;inset:0;background:radial-gradient(60% 60% at 30% 30%, rgba(106,76,195,.55), transparent 60%),linear-gradient(180deg,rgba(10,10,20,.55),rgba(10,10,20,.25))}
.hero-inner{position:relative;padding:18vh 0;color:#fff}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900;letter-spacing:.3px;line-height:1.05}
.hero .dim{opacity:.95}
.hero .accent{color:var(--accent)}
.hero p{margin:.9rem 0 1.25rem;opacity:.95;max-width:55ch}
.hero-cta{display:flex;gap:.75rem;flex-wrap:wrap}
.btn{display:inline-block;padding:.85rem 1.05rem;border-radius:.7rem;text-decoration:none;font-weight:800;letter-spacing:.2px}
.btn.gold{background:var(--accent);color:#111}
.btn.ghost{border:2px solid rgba(255,255,255,.8);color:#fff}
.badge{display:inline-block;background:rgba(255,255,255,.2);padding:.35rem .6rem;border-radius:.6rem;margin-bottom:.6rem;font-weight:700}

.stats{display:flex;gap:1rem;margin-top:1.1rem;opacity:.96}
.stats>div{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);padding:.6rem .8rem;border-radius:.6rem;text-align:center}
.stats strong{font-size:1.1rem;display:block}
.wave{position:absolute;bottom:-1px;left:0;right:0;height:60px;background:linear-gradient(180deg,transparent, #fbfbff)}

section.container{padding:3rem 1rem}
h2{font-size:2.1rem;margin-bottom:.6rem;letter-spacing:.2px}
.lede{color:#5b5b75;margin-bottom:1rem}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}
.card{background:#fff;border:1px solid #eee;border-radius:1rem;padding:1rem;box-shadow:0 10px 24px rgba(10,10,20,.06)}
.card .icon{font-size:1.5rem}
.card.pop{transition:transform .15s ease, box-shadow .15s}
.card.pop:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(10,10,20,.1)}
.card ul{margin-left:1rem;margin-top:.5rem;line-height:1.6}

.cta-banner{margin-top:1.2rem;border:1px dashed #d8d8f2;border-radius:.9rem;padding:.9rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.btn.small{padding:.55rem .8rem;font-weight:800;border-radius:.6rem}

.masonry{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;gap:10px}
.tile{background:linear-gradient(180deg,#fff,#f6f6ff);border:1px solid #eee;border-radius:.8rem;display:flex;align-items:center;justify-content:center;color:#62627a;font-weight:700}
.tile.a{grid-column:span 3;grid-row:span 2}
.tile.b{grid-column:span 2}
.tile.c{grid-column:span 1}
.tile.d{grid-column:span 2}
.tile.e{grid-column:span 2}
.tile.f{grid-column:span 2}

.carousel{position:relative;background:#fff;border:1px solid #eee;border-radius:1rem;padding:1.2rem;box-shadow:0 10px 24px rgba(10,10,20,.06)}
.slide{display:none;text-align:center}
.slide.show{display:block}
blockquote{font-size:1.1rem;color:#333;margin-bottom:.35rem}
.dots{display:flex;justify-content:center;gap:.35rem;margin-top:.5rem}
.dot{width:10px;height:10px;border-radius:20px;border:none;background:#d7d7ef;cursor:pointer}
.dot.active{background:var(--primary)}

details{background:#fff;border:1px solid #eee;border-radius:.7rem;padding:.7rem;margin:.45rem 0}
details>summary{font-weight:800;cursor:pointer}

.contact form{background:#fff;border:1px solid #eee;border-radius:1rem;padding:1rem;margin-top:1rem;display:grid;gap:.75rem;box-shadow:0 10px 24px rgba(10,10,20,.06)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
input,select,textarea{border:1px solid #dcdcef;border-radius:.6rem;padding:.7rem;background:#fff}

.sticky-cta{position:fixed;right:16px;bottom:16px;display:flex;gap:.5rem;z-index:60}
.sticky-cta a{background:var(--primary);color:#fff;text-decoration:none;padding:.6rem .8rem;border-radius:.7rem;box-shadow:0 10px 24px rgba(10,10,20,.15)}
.sticky-cta a:last-child{background:var(--accent);color:#111}

footer{background:#0e0e18;color:#cfd0ff;margin-top:2rem}
.foot{display:flex;align-items:center;justify-content:space-between;height:64px}
.social a{color:#cfd0ff;text-decoration:none;margin-left:.5rem}

@media (max-width:960px){
  .cards{grid-template-columns:1fr}
  .masonry{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .tile.a{grid-column:span 2}
  .sticky-cta{right:12px;bottom:12px}
  .grid2{grid-template-columns:1fr}
  .nav-toggle{display:block}
  #menu{display:none;position:absolute;right:1rem;top:64px;background:#fff;border:1px solid #eee;border-radius:.6rem;flex-direction:column;padding:.5rem;box-shadow:0 6px 24px rgba(10,10,20,.12)}
  #menu a{padding:.6rem .9rem}
  #menu.show{display:flex}
}



/* === Enhanced hero visuals: animated gradient + blobs + noise overlay === */
.hero{
  position:relative;min-height:86vh;overflow:hidden;
  background: radial-gradient(60% 80% at 20% 10%, rgba(106,76,195,.55), transparent 60%),
              radial-gradient(70% 70% at 80% 20%, rgba(245,194,66,.35), transparent 65%),
              radial-gradient(60% 70% at 50% 110%, rgba(106,76,195,.55), transparent 60%);
  animation: gradientShift 18s ease-in-out infinite alternate;
}
.hero .bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:.28;mix-blend-mode:soft-light;transform:scale(1.08);
}
.hero::before, .hero::after{
  content:"";position:absolute;border-radius:50%;filter:blur(40px);opacity:.18;z-index:0;
}
.hero::before{width:520px;height:520px;background:#6A4CC3;left:-120px;top:-120px;animation: float1 16s ease-in-out infinite;}
.hero::after{width:420px;height:420px;background:#F5C242;right:-60px;bottom:-80px;animation: float2 20s ease-in-out infinite;}
.hero .noise{
  position:absolute;inset:0;background-image:url('assets/noise.png');background-size:128px 128px;opacity:.18;pointer-events:none;
}
@keyframes gradientShift{
  0%{background-position:0% 0%, 100% 0%, 50% 100%}
  100%{background-position:20% 10%, 80% 20%, 55% 90%}
}
@keyframes float1{0%{transform:translateY(0)}100%{transform:translateY(22px)}}
@keyframes float2{0%{transform:translateY(0)}100%{transform:translateY(-18px)}}

/* Diagonal section separators for more energy */
section.container::before{
  content:"";display:block;height:24px;margin:-24px 0 24px 0;
  background: linear-gradient(90deg, rgba(106,76,195,.06), rgba(245,194,66,.06));
  border-radius: 0 0 18px 18px;
}

/* Slight gradient borders on cards */
.card{border:1px solid rgba(106,76,195,.25);background:
  linear-gradient(180deg,#ffffff,#fbfbff) padding-box,
  radial-gradient(120% 120% at 0% 0%, rgba(106,76,195,.25), rgba(245,194,66,.18)) border-box;
}

/* Masonry tiles: add subtle hover and shadow */
.tile{box-shadow:0 8px 18px rgba(10,10,20,.06); transition: transform .15s ease, box-shadow .15s ease;}
.tile:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(10,10,20,.12);}

/* Footer top divider */
footer{position:relative}
footer::before{
  content:"";position:absolute;left:0;right:0;top:-24px;height:24px;
  background:linear-gradient(180deg,transparent,#0e0e18);
  border-radius:18px 18px 0 0;
}


/* --- Photo masonry and lightbox --- */
.masonry.photos{grid-template-columns:repeat(6,1fr);grid-auto-rows:10px}
.masonry.photos .photo{grid-column:span 3;grid-row:span 20;position:relative;overflow:hidden;padding:0;background:#fff}
.masonry.photos .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}
.masonry.photos .photo:hover img{transform:scale(1.02)}
.masonry.photos .photo figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.6));color:#fff;font-size:.9rem;padding:.5rem .6rem;opacity:0;transition:opacity .2s}
.masonry.photos .photo:hover figcaption{opacity:1}
@media (max-width:960px){.masonry.photos{grid-template-columns:repeat(2,1fr);grid-auto-rows:8px}.masonry.photos .photo{grid-column:span 2;grid-row:span 24}}

.lightbox-overlay{position:fixed;inset:0;background:rgba(10,10,20,.85);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;z-index:100}
.lightbox-overlay.show{opacity:1;pointer-events:auto}
.lightbox-overlay img{max-width:92vw;max-height:78vh;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.lightbox-overlay p{color:#cfd0ff;margin-top:.6rem;text-align:center}


/* === Paper hero override === */
.hero{
  min-height:78vh;
  background:none;
}
.hero .bg{
  opacity:1;
  mix-blend-mode:normal;
  transform:none;
}
.hero .tint.light{background:linear-gradient(180deg, rgba(245,245,240,.20), rgba(10,10,20,.08));}
/* soften wave divider against paper */
.wave{background:linear-gradient(180deg, transparent, #f2eee6);}
