/* ============================================================
   URBAN GRND — site.css
   Gedeelde chrome: header, navigatie, mega-menu's, mobiel drawer,
   footer. Deze stijlen horen bij de header.js/footer.js partials.
   ============================================================ */

/* ===================== HEADER ===================== */
.site-header{position:sticky;top:0;z-index:1000;background:var(--ug-violet-800);color:var(--on-dark)}
.nav-bar{height:var(--header-h);max-width:var(--maxw);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:12px}
.brand{display:flex;align-items:center;flex:0 0 auto;margin-right:8px}
.brand img{height:44px;width:auto}

.nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav-item{position:relative}
.nav-trigger{
  display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;
  color:var(--on-dark);font-weight:700;font-size:.95rem;letter-spacing:.01em;text-transform:uppercase;
  padding:10px 14px;border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease;
}
.nav-trigger:hover,.nav-item.is-open>.nav-trigger,.nav-item:focus-within>.nav-trigger{color:var(--ug-amber-300)}
.nav-trigger .caret{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease;opacity:.85}
.nav-item.is-open>.nav-trigger .caret{transform:rotate(-135deg) translateY(-2px)}

.nav-link{position:relative}
.nav-link::after{content:"";position:absolute;left:14px;right:calc(100% - 14px);bottom:6px;height:2px;background:var(--ug-amber-500);transition:right .2s ease}
.nav-link:hover::after{right:14px}

/* ---- dropdown panelen ---- */
.menu{
  position:absolute;top:calc(100% + 10px);left:0;background:var(--ug-violet-900);color:var(--on-dark);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;z-index:1001;
}
.menu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px} /* hover-brug */
.nav-item:hover>.menu,.nav-item.is-open>.menu,.nav-item:focus-within>.menu{opacity:1;visibility:visible;transform:translateY(0)}

.menu-link{display:block;padding:9px 14px;border-radius:var(--radius-sm);color:var(--on-dark-muted);font-weight:600;font-size:.95rem;white-space:nowrap;transition:background .13s ease,color .13s ease}
.menu-link:hover,.menu-link:focus-visible{background:rgba(255,255,255,.07);color:var(--on-dark);outline:none}

.menu--simple{min-width:220px}
.menu--mega{padding:22px}
.mega-grid{display:grid;gap:6px 26px}
.menu--activiteiten .mega-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}
.menu--groepen{min-width:520px}
.menu--groepen .mega-grid{grid-template-columns:1fr 1fr;gap:6px 32px}
.mega-col{display:flex;flex-direction:column}
.mega-col-head{font-family:var(--font-body);font-weight:800;font-size:.72rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ug-amber-500);padding:4px 14px 10px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:6px}
.mega-col-head a{color:inherit}

/* ---- CTA ---- */
.nav-cta{
  margin-left:10px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--ug-amber-500);color:var(--ug-white);font-weight:700;text-transform:uppercase;letter-spacing:.02em;
  font-size:.95rem;padding:.7rem 1.5rem;border-radius:var(--radius-pill);box-shadow:var(--glow-amber);
  border:2px solid transparent;transition:background .18s ease,transform .12s ease;
}
.nav-cta:hover{background:var(--ug-amber-700);transform:translateY(-2px)}
.nav-cta:active{transform:translateY(0)}

/* ---- hamburger ---- */
.nav-toggle{display:none;margin-left:auto;width:46px;height:46px;border:0;background:none;cursor:pointer;border-radius:var(--radius-sm)}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:"";display:block;position:relative;width:24px;height:2.5px;background:var(--on-dark);border-radius:2px;margin:0 auto;transition:.22s ease}
.nav-toggle span::before{position:absolute;top:-7px}
.nav-toggle span::after{position:absolute;top:7px}
body.menu-open .nav-toggle span{background:transparent}
body.menu-open .nav-toggle span::before{top:0;transform:rotate(45deg)}
body.menu-open .nav-toggle span::after{top:0;transform:rotate(-45deg)}

/* ---- scrim ---- */
.scrim{position:fixed;inset:0;background:rgba(11,2,40,.55);opacity:0;visibility:hidden;transition:opacity .25s ease;z-index:998}
body.menu-open .scrim{opacity:1;visibility:visible}

/* ===================== MOBIEL DRAWER ===================== */
.drawer{
  position:fixed;top:0;right:0;z-index:999;width:min(88vw,400px);height:100dvh;
  background:var(--ug-violet-900);color:var(--on-dark);
  transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.35);
}
body.menu-open .drawer{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 6px}
.drawer-head img{height:40px;width:auto}
.drawer-body{flex:1;overflow-y:auto;padding:10px 12px 24px;-webkit-overflow-scrolling:touch}

.acc-item{border-bottom:1px solid rgba(255,255,255,.08)}
.acc-head{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;cursor:pointer;color:var(--on-dark);font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.01em;padding:16px 10px;text-align:left}
.acc-head .caret{width:9px;height:9px;border-right:2px solid var(--ug-amber-300);border-bottom:2px solid var(--ug-amber-300);transform:rotate(45deg);transition:transform .2s ease;flex:0 0 auto;margin-left:12px}
.acc-item.open>.acc-head .caret{transform:rotate(-135deg)}
.acc-panel{display:none;padding:0 10px 12px}
.acc-item.open>.acc-panel{display:block}
.acc-panel a{display:block;padding:10px 12px;border-radius:var(--radius-sm);color:var(--on-dark-muted);font-weight:600;font-size:.98rem}
.acc-panel a:hover,.acc-panel a:focus-visible{background:rgba(255,255,255,.06);color:var(--on-dark);outline:none}
.acc-subhead{font-size:.7rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ug-amber-500);font-weight:800;padding:14px 12px 4px}
.drawer-cta{margin:8px 12px 4px;display:flex;align-items:center;justify-content:center;background:var(--ug-amber-500);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:1rem;border-radius:var(--radius-pill);box-shadow:var(--glow-amber)}
.drawer-cta:hover{background:var(--ug-amber-700)}

/* ===================== FOOTER ===================== */
.site-footer{background:var(--ug-violet-900);color:var(--on-dark)}

/* CTA-band bovenaan */
.footer-cta{background:var(--ug-violet-700);border-bottom:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}
.footer-cta__inner{max-width:var(--maxw);margin:0 auto;padding:var(--space-7) 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.footer-cta__text{font-family:var(--font-display);text-transform:uppercase;font-weight:900;line-height:1.06;font-size:clamp(1.4rem,2.6vw,2.1rem);color:var(--on-dark);max-width:640px;margin:0}
.footer-cta__actions{display:flex;flex-wrap:wrap;gap:12px}

/* 4 kolommen */
.footer-top{max-width:var(--maxw);margin:0 auto;padding:var(--space-8) 24px var(--space-6);display:grid;gap:40px;grid-template-columns:1.5fr 1fr 1fr 1.15fr}
.footer-brand img{height:56px;width:auto;margin-bottom:18px}
.footer-brand p{color:var(--on-dark-muted);font-size:.95rem;max-width:300px;line-height:1.6}
.footer-follow{margin-top:22px}
.footer-follow__label{display:block;font-size:.72rem;letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:800;color:var(--ug-amber-500);margin-bottom:12px}
.footer-col h4{font-size:.75rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ug-amber-500);margin:0 0 16px}
.footer-col a{display:block;color:var(--on-dark-muted);font-weight:600;font-size:.95rem;padding:5px 0;transition:color .13s}
.footer-col a:hover{color:var(--on-dark)}

/* contact-kolom */
.footer-contact-line{display:flex;flex-direction:column;gap:2px;margin:0 0 14px;color:var(--on-dark-muted);font-size:.95rem;line-height:1.4}
.footer-contact-line span{font-size:.68rem;letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:800;color:var(--ug-lavender-dim)}
.footer-contact-line a{color:var(--on-dark-muted);font-weight:600;transition:color .13s}
.footer-contact-line a:hover{color:var(--ug-amber-300)}

/* socials */
.socials{display:flex;gap:10px}
.socials a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:background .15s}
.socials a:hover{background:var(--ug-amber-500)}
.socials svg{width:18px;height:18px;fill:#fff}

/* bottom bar */
.footer-bottom{max-width:var(--maxw);margin:0 auto;padding:20px 24px 32px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:12px 18px;justify-content:space-between;align-items:center;color:var(--ug-lavender-dim);font-size:.85rem}
.footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.footer-legal a{color:var(--ug-lavender-dim);font-weight:600;transition:color .13s}
.footer-legal a:hover{color:var(--ug-amber-300)}
.footer-legal .sep{color:rgba(255,255,255,.25)}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1080px){
  .nav,.nav-cta{display:none}
  .nav-toggle{display:block}
}
@media (max-width:900px){
  .footer-cta__inner{flex-direction:column;align-items:flex-start}
}
@media (max-width:760px){
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1 / -1}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
@media (max-width:480px){
  .footer-top{grid-template-columns:1fr}
  .footer-cta__actions{width:100%}
  .footer-cta__actions .ug-btn{flex:1}
}
