/* ==========================================================================
   Aluver & Co Events - base.css
   Shared by EVERY page: design tokens, reset, header, announcement bar, footer.
   Page-specific styles live in assets/css/<page>.css.
   Markup for the header/footer lives in includes/header.php + includes/footer.php.
   ========================================================================== */

:root{
  --brand:#282626; --brand-dark:#3f3b3b;
  --ink:#1c1c1c; --body:#565656; --muted:#8a8a8a;
  --line:#e7e7e7; --bg:#fff; --bg-alt:#fafaf8;
  --radius:10px; --maxw:1180px; --header-h:78px;
  --font-display:"Playfair Display", Georgia, "Times New Roman", serif;
  --font-body:Helvetica,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
    margin:0;
    background:var(--bg);
    color:var(--body);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.65;
  }
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
.announce{
    background:var(--brand);
    color:#fff;
    text-align:center;
    padding:9px 22px;
    font-size:.8125rem;
    letter-spacing:.02em;
  }
.announce p{margin:0;}
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line)}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:0 22px;position:relative}
.nav{display:flex;align-items:center;justify-content:center;gap:clamp(18px,3vw,40px)}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:clamp(14px,2.2vw,30px)}
.nav .sub{display:block;list-style:none}
.nav-left{flex:1;justify-content:flex-end}
.nav-right{flex:1;justify-content:flex-start}
.brand{display:block;flex:0 0 auto;padding:14px 0}
.header-inner>.brand{display:none}
.brand img{height:84px;width:auto;display:block}
.nav a{text-decoration:none;font-size:.8125rem;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--ink);padding:8px 0;display:inline-block;border-bottom:2px solid transparent;transition:border-color .2s ease;white-space:nowrap}
.nav a:hover{border-bottom-color:var(--brand)}
.nav a[aria-current="page"]{border-bottom-color:var(--brand)}
.nav-toggle{display:none;position:absolute;right:22px;top:50%;transform:translateY(-50%);background:none;border:1px solid var(--line);border-radius:6px;padding:9px 12px;cursor:pointer;font-size:.8125rem;font-weight:700;letter-spacing:.04em;color:var(--ink)}
.has-sub{position:relative}
.has-sub>a::after{content:"";display:inline-block;margin-left:7px;border:4px solid transparent;border-top-color:var(--ink);transform:translateY(2px)}
.sub{list-style:none;margin:0;padding:10px 0;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:280px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 34px rgba(0,0,0,.10);opacity:0;visibility:hidden;transition:opacity .18s ease;z-index:5;display:block}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible}
.sub li{display:block}
.sub a{display:block;padding:9px 20px;font-size:.75rem;letter-spacing:.06em;border-bottom:none;text-align:left;white-space:normal}
.sub a:hover{background:var(--bg-alt);border-bottom:none}
@media(max-width:1100px){
.brand img{height:66px}
}
@media(max-width:980px){
.header-inner{height:var(--header-h);display:flex;align-items:center;justify-content:center;padding:0 22px}
.nav-toggle{display:block}
.brand{padding:0}
.brand img{height:52px}
.nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 14px 30px rgba(0,0,0,.08);padding:12px 22px 22px;max-height:calc(100vh - var(--header-h));overflow-y:auto;flex-direction:column;align-items:stretch;gap:0}
.nav.open{display:flex}
.header-inner>.brand{display:block}
.nav .brand{display:none}
.nav>ul{flex-direction:column;align-items:stretch;gap:0;flex:none}
.nav-left,.nav-right{justify-content:flex-start}
.nav>ul>li{border-bottom:1px solid var(--line)}
.nav-right>li:last-child{border-bottom:none}
.nav a{padding:14px 0}
.has-sub>a::after{display:none}
.sub{position:static;transform:none;opacity:1;visibility:visible;border:none;box-shadow:none;border-radius:0;padding:0 0 10px 14px;min-width:0}
.sub a{padding:9px 0;text-transform:none;letter-spacing:.02em;font-size:.8125rem;color:var(--body)}
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.site-footer{background:var(--brand);color:rgba(255,255,255,.76);padding:64px 0 0;font-size:.9375rem;}
.footer-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:44px;
    padding-bottom:52px;
  }
@media(max-width:900px){
.footer-grid{grid-template-columns:1fr 1fr;gap:36px;}
}
@media(max-width:560px){
.footer-grid{grid-template-columns:1fr;gap:32px;}
}
.footer-brand img{height:78px;width:auto;margin-bottom:18px;filter:brightness(0) invert(1);}
.footer-brand p{margin:0 0 6px;font-size:.875rem;line-height:1.6;}
.site-footer h3{
    margin:0 0 16px;
    font-family:var(--font-display);
    font-size:1.0625rem;
    font-weight:600;
    color:#fff;
  }
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;}
.site-footer a{text-decoration:none;transition:color .2s ease;}
.site-footer a:hover{color:#fff;}
.footer-bottom{
    border-top:1px solid rgba(255,255,255,.16);
    padding:22px 0 26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
    font-size:.8125rem;
  }
.footer-bottom p{margin:0;}
.footer-social{display:flex;gap:18px;}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto;}
*{transition:none !important;animation:none !important;}
}
