/* Gemensam stil för alla sidor: färger, meny, sidfot och blogginlägg.
   Menyn och sidfoten byggs av site.js — ändra där, så uppdateras alla sidor. */

:root{
  --bg:#0a1422;
  --bg2:#0d1a2c;
  --panel:#10223a;
  --panel2:#132847;
  --line:#1e3a5c;
  --accent:#8ec9ee;
  --accent2:#5fa8d3;
  --gold:#d9b87c;
  --text:#e8eff7;
  --muted:#9db2c7;
  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:150px}
@media(max-width:960px){html{scroll-padding-top:80px}}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-weight:300;
  line-height:1.7;
}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:600;line-height:1.15}
a{color:var(--accent);text-decoration:none}
a:hover{color:#fff}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.sec-kicker{
  display:flex;align-items:center;gap:12px;
  font-size:16px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--accent2);margin-bottom:14px;
}
.sec-kicker::before{content:"";height:1px;width:40px;background:var(--accent2);opacity:.6}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .4s,border-color .4s,box-shadow .4s;
}
nav.scrolled{
  background:rgba(8,17,30,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(30,58,92,.55);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:16px 24px 10px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{
  display:inline-flex;flex-direction:column;color:var(--text);
  border:1.5px solid rgba(232,239,247,.7);padding:10px 30px 13px;
  transition:padding .4s var(--ease),border-color .3s;
}
.brand:hover{color:var(--text);border-color:var(--accent)}
.brand-sail{font-size:.85rem;letter-spacing:.34em;color:var(--accent);text-transform:uppercase}
.brand-name{font-family:'Playfair Display',serif;font-size:2.4rem;letter-spacing:.12em;line-height:1.15;
  transition:font-size .4s var(--ease)}
nav.scrolled .brand{padding:6px 24px 8px}
nav.scrolled .brand-name{font-size:1.7rem}
.nav-right{display:flex;align-items:center;gap:12px}
.social{display:flex;gap:12px}
.social a,.theme-toggle{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(142,201,238,.4);
  display:flex;align-items:center;justify-content:center;color:var(--accent);cursor:pointer;
  background:rgba(8,17,30,.35);transition:border-color .3s,background .3s,transform .3s var(--ease);
}
.social a:hover,.theme-toggle:hover{border-color:var(--accent);background:rgba(16,34,58,.8);transform:translateY(-2px)}
.nav-links{
  max-width:var(--maxw);margin:0 auto;padding:0 24px 12px;
  display:flex;justify-content:center;flex-wrap:wrap;gap:10px;
  font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
}
.nav-links a{
  display:block;
  color:var(--text);background:var(--panel2);border:1px solid var(--accent2);
  border-radius:8px;padding:9px 20px;font-weight:500;
  transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease);
}
.nav-links a.active{background:var(--accent2);color:#08111e}
.nav-links a:hover,.nav-item:hover>a{background:var(--accent2);border-color:var(--accent2);color:#08111e}
.nav-links a:hover{transform:translateY(-2px)}

/* rullgardin under "Båten" */
.nav-item{position:relative}
.nav-item.has-sub>a::after{content:"▾";margin-left:8px;font-size:2.7em;line-height:0;vertical-align:-.2em}
.submenu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:8px;min-width:100%;z-index:5}
.submenu-inner{
  display:flex;flex-direction:column;gap:6px;
  background:rgba(8,17,30,.97);border:1px solid var(--line);border-radius:10px;padding:8px;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
}
.submenu a{white-space:nowrap}
.nav-item:hover .submenu,.nav-item:focus-within .submenu{display:block}

.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--text);
  padding:6px 12px;border-radius:6px;font-size:1rem;cursor:pointer}
@media(max-width:960px){
  .nav-links{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;background:rgba(8,17,30,.97);
    border-bottom:1px solid var(--line);padding:8px 0;
    max-height:calc(100vh - 70px);overflow-y:auto;
  }
  .nav-inner{padding:12px 16px}
  .brand,nav.scrolled .brand{padding:7px 16px 9px}
  .brand-sail{font-size:.64rem;letter-spacing:.26em}
  .brand-name,nav.scrolled .brand-name{font-size:1.45rem}
  .social{gap:8px}
  .social a,.theme-toggle{width:36px;height:36px}
  .nav-links.open{display:flex}
  .nav-links a{padding:13px 24px;background:none;border:0;border-radius:0;transform:none}
  .nav-links a:hover,.nav-item:hover>a{transform:none;background:none;color:var(--accent)}
  .nav-links a.active{background:none;color:var(--accent)}
  .nav-item.has-sub>a::after{display:none}
  .submenu{display:block;position:static;transform:none;padding:0}
  .submenu-inner{background:none;border:0;box-shadow:none;padding:0;gap:0}
  .submenu a{padding:9px 24px 9px 44px;color:var(--muted);font-size:.74rem}
  .nav-toggle{display:block}
}

/* ---------- BLOGGINLÄGG (används på startsidan och på blogg.html) ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.post-grid{grid-template-columns:1fr}}
.post-card{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s;
}
.post-card:hover{transform:translateY(-6px);border-color:var(--accent2);box-shadow:0 24px 50px rgba(0,0,0,.4)}
.post-img{display:block;aspect-ratio:16/10;overflow:hidden}
.post-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.post-card:hover .post-img img{transform:scale(1.05)}
.post-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.post-date{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent2);margin-bottom:6px}
.post-body h3{font-size:1.3rem;margin-bottom:10px}
.post-body h3 a{color:var(--text)}
.post-body h3 a:hover{color:var(--accent)}
.post-text{color:var(--muted);font-size:.95rem}
.post-card.preview .post-text{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.post-text p+p{margin-top:12px}
.post-extra{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.post-extra img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.post-more{margin-top:auto;padding-top:16px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}

/* ---------- FOOTER ---------- */
footer{
  border-top:1px solid var(--line);background:#081120;
  padding:46px 0 38px;font-size:.85rem;color:var(--muted);
}
.foot-grid{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}

/* ---------- FILM, GALLERI OCH BILDVISNING (startsidan och galleri.html) ---------- */
  .film-grid{margin-bottom:16px}
  .film-main{
    position:relative;border-radius:20px;overflow:hidden;
    border:1px solid var(--line);box-shadow:0 40px 90px rgba(0,0,0,.5);
    background:#000;
  }
  .film-main video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
  .film-loops{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
  @media(min-width:820px){
    .film-grid{display:grid;grid-template-columns:2.2fr 1fr;gap:22px;align-items:stretch}
    .film-loops{grid-template-columns:1fr;margin-top:0}
  }
  .loop-card{
    position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);
    background:#000;min-height:0;
  }
  .loop-card video{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
  .loop-card{aspect-ratio:9/12}
  @media(min-width:820px){.loop-card{aspect-ratio:auto;height:100%}}
  .loop-card span{
    position:absolute;left:14px;bottom:12px;z-index:2;
    font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#dcecf8;
    text-shadow:0 2px 8px rgba(0,0,0,.8);
  }
  .loop-card::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 60%,rgba(8,17,30,.65));
  }

  /* ---------- GALLERI ---------- */
  .gallery{
    display:grid;gap:16px;
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:220px;grid-auto-flow:dense;
  }
  @media(max-width:1000px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}}
  .g-item{
    position:relative;border-radius:14px;overflow:hidden;cursor:zoom-in;
    border:1px solid rgba(30,58,92,.6);
  }
  .g-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter 1s var(--ease)}
  .g-item:hover img{transform:scale(1.07)}
  .g-item .g-cap{
    position:absolute;left:0;right:0;bottom:0;padding:34px 16px 12px;
    font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#dcecf8;
    background:linear-gradient(180deg,transparent,rgba(8,17,30,.85));
    opacity:0;transform:translateY(8px);transition:opacity .45s,transform .45s;
  }
  .g-item:hover .g-cap{opacity:1;transform:none}
  .g-tall{grid-row:span 2}
  .g-wide{grid-column:span 2}
  @media(max-width:1000px){.g-wide{grid-column:span 2}}

  /* lightbox */
  .lightbox{
    position:fixed;inset:0;z-index:300;display:none;
    align-items:center;justify-content:center;flex-direction:column;
    background:rgba(5,10,18,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    padding:34px;
  }
  .lightbox.open{display:flex;animation:lbIn .3s ease}
  @keyframes lbIn{from{opacity:0}to{opacity:1}}
  .lightbox img{
    max-width:min(1400px,92vw);max-height:78vh;border-radius:10px;
    box-shadow:0 40px 120px rgba(0,0,0,.7);
  }
  .lb-cap{margin-top:16px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#cfe0ee}
  .lb-btn{
    position:absolute;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.7);color:#fff;
    width:46px;height:46px;border-radius:50%;font-size:1.15rem;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s;
  }
  .lb-btn:hover{background:rgba(255,255,255,.3);border-color:#fff}
  .lb-close{top:22px;right:22px}
  .lb-prev{left:22px;top:50%;transform:translateY(-50%)}
  .lb-next{right:22px;top:50%;transform:translateY(-50%)}

.more-link{margin-top:28px;text-align:center}
.more-link a{display:inline-block;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--accent2);border-radius:8px;padding:12px 28px;color:var(--text);background:var(--panel2);transition:background .25s,color .25s}
.more-link a:hover{background:var(--accent2);color:#08111e}
