:root{--bg:#0a0a0a;--fg:#fafafa;--muted:#cfcfcf;--card:#111;--border:#222;--accent:#fff;--maxw:1200px;--radius:1.25rem;--header-h:64px}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block}
a{color:var(--fg);text-decoration:none}a:hover{opacity:.9}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.site-header{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(10,10,10,.75);backdrop-filter:blur(6px);border-bottom:1px solid var(--border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);gap:1rem}
.branding{display:flex;align-items:center;gap:.5rem}.branding .custom-logo{height:56px;width:auto;border-radius:.5rem}
.site-title{font-weight:700;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer}
.nav-toggle .bar{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:transform .3s ease,top .3s ease,opacity .3s ease}
.nav-toggle .bar:nth-child(2){top:14px}.nav-toggle .bar:nth-child(3){top:22px}.nav-toggle .bar:nth-child(4){top:30px}
.primary-nav .menu{display:flex;list-style:none;gap:1rem;margin:0;padding:0}
.primary-nav .menu a{padding:.5rem .75rem;border-radius:.75rem;transition:background .2s ease, transform .2s ease}
.primary-nav .menu a:hover{background:#1a1a1a;transform:translateY(-1px)}
.bw-section{padding:clamp(3rem,5vw,5rem) 0;border-bottom:1px solid var(--border)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.section-head h2{margin:0}.link-arrow{opacity:.8}.link-arrow::after{content:'→';margin-left:.5ch}
.hero-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(1rem,3vw,2rem);align-items:center}
.hero-copy h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:0 0 1rem}
.hero-copy p{color:var(--muted);max-width:60ch}
.hero-ctas{display:flex;gap:.75rem;margin:1.25rem 0}.badges{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1rem 0 0}
.badges li{border:1px solid var(--border);border-radius:999px;padding:.35rem .65rem;font-size:.9rem;color:var(--muted)}
.hero-media{position:relative;min-height:320px}.hero-frame{position:absolute;inset:0;border-radius:1rem;border:2px solid #fff;opacity:.12}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border-radius:.9rem;font-weight:600;border:1px solid var(--fg)}
.btn-primary{background:#fff;color:#000}.btn-outline{background:transparent;color:#fff}.btn:active{transform:translateY(1px)}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.75rem,2vw,1rem)}
.card{background:var(--card);border:1px solid var(--border);border-radius:1rem;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.card-media{aspect-ratio:4/3;background:#0f0f0f;display:flex;align-items:center;justify-content:center}
.card-media img{width:100%;height:100%;object-fit:cover}.card-media .placeholder{width:100%;height:100%;background:linear-gradient(135deg,#161616,#0f0f0f)}
.card-body{padding:1rem}.card-title{margin:.25rem 0 .5rem}
.masonry-grid{columns:1;column-gap:1rem}@media (min-width:700px){.masonry-grid{columns:2}}@media (min-width:1000px){.masonry-grid{columns:3}}
.masonry-item{break-inside:avoid;margin-bottom:1rem;border-radius:1rem;overflow:hidden;border:1px solid var(--border);background:var(--card)}
.masonry-item .placeholder{aspect-ratio:4/3;background:linear-gradient(135deg,#161616,#0f0f0f)}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact-list{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.25rem}
.map-embed{position:relative;border-radius:1rem;overflow:hidden;border:1px solid var(--border)}
.map-embed.tall{min-height:420px}.map-embed iframe{width:100%;height:100%;min-height:320px;border:0}
.site-footer{background:#0b0b0b}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.footer-menu{list-style:none;padding:0;margin:0;display:grid;gap:.25rem}
.footer-bottom{border-top:1px solid var(--border);padding-top:.75rem;margin-top:1rem;color:var(--muted)}
h1,h2,h3{line-height:1.15}.page-title{margin-top:0}.narrow{max-width:800px}
.feature-media{border-radius:1rem;overflow:hidden;border:1px solid var(--border);margin:1rem 0}
/* Mobile: under-header overlay nav */
@media (max-width:900px){
  body{ padding-top: calc(var(--header-h) + env(safe-area-inset-top,0px)) }
  .nav-toggle{display:block}
  .hero-inner{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.contact-layout{grid-template-columns:1fr}
  .primary-nav{
    position:fixed; left:0; right:0;
    top: calc(var(--header-h) + env(safe-area-inset-top,0px));
    background:#0d0d0d;
    border-bottom:1px solid var(--border);
    box-shadow:0 12px 40px rgba(0,0,0,.45);
    display:none;
    z-index:10002;
    padding:.5rem 1.25rem 1rem;
    max-height:70vh; overflow:auto; -webkit-overflow-scrolling:touch;
  }
  .site-header.menu-open .primary-nav{ display:block }
  .primary-nav .menu{ display:flex; flex-direction:column; gap:0; padding:0; margin:0 }
  .primary-nav .menu li{ list-style:none; border-bottom:1px solid #151515 }
  .primary-nav .menu a{ display:block; padding:1rem 0; white-space:normal }
}
/* Footer Instagram icon baked in (encoded SVG) */
.footer-menu a[href*="instagram.com"]{ display:inline-flex; align-items:center; gap:.45em }
.footer-menu a[href*="instagram.com"]::before{
  content:""; display:inline-block; width:1.05em; height:1.05em; line-height:1;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23ffffff' d='M398 80a86 86 0 0 0-61-61C307 8 224 8 224 8s-83 0-113 11a86 86 0 0 0-61 61C39 110 39 193 39 193s0 83 11 113a86 86 0 0 0 61 61c30 11 113 11 113 11s83 0 113-11a86 86 0 0 0 61-61c11-30 11-113 11-113s0-83-11-113ZM224 338a84 84 0 1 1 84-84 84 84 0 0 1-84 84Zm124-177a26 26 0 1 1 26-26 26 26 0 0 1-26 26Z'/%3E%3C/svg%3E");
}
