/*
Theme Name: Thors Hammer
Theme URI: https://a-lias.dk
Author: Thors Hammer Laug
Description: Ét-sides tema til den lukkede forening Thors Hammer, a.k.a. Taberklubben. Vin, spiritus, restaurant og selvironi for herrer i blå skjorte.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: thors-hammer
*/

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700;900&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --iron: #14161c;
  --iron-deep: #0a0b0e;
  --steel: #2a2e38;
  --brass: #b8863f;
  --brass-bright: #e0aa5e;
  --ash: #cfd0d6;
  --ash-dim: #8b8d97;
  --blue: #3d6a94;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background: var(--iron);
  color: var(--ash);
  font-family: 'Cormorant Garamond', serif;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

h1,h2,h3, .display{
  font-family:'Cinzel', serif;
  letter-spacing:0.04em;
  color:var(--ash);
}

.eyebrow{
  font-family:'JetBrains Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--brass);
}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--brass); color:var(--iron-deep);}

/* ---------- texture ---------- */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:50;
  opacity:0.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- nav ---------- */
nav.thors-nav{
  position:fixed; top:0; left:0; right:0; z-index:40;
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem 6vw;
  background:linear-gradient(to bottom, rgba(10,11,14,0.9), transparent);
}
.nav-mark{
  font-family:'Cinzel', serif; font-weight:700; font-size:1rem;
  letter-spacing:0.15em; display:flex; align-items:center; gap:0.6rem;
}
.nav-mark svg{width:22px; height:22px;}
nav.thors-nav ul{list-style:none; display:flex; gap:2.4rem;}
nav.thors-nav a{
  font-family:'JetBrains Mono', monospace; font-size:0.7rem;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--ash-dim); transition:color 0.3s;
  border-bottom:1px solid transparent;
}
nav.thors-nav a:hover, nav.thors-nav a:focus-visible{color:var(--brass-bright); border-color:var(--brass);}
@media (max-width:720px){ nav.thors-nav ul{display:none;} }

/* ---------- hero ---------- */
.hero{
  min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; position:relative;
  padding:2rem 6vw;
  background:
    linear-gradient(180deg, rgba(10,11,14,0.55) 0%, rgba(10,11,14,0.85) 70%, var(--iron) 100%),
    var(--hero-img, radial-gradient(ellipse 80% 60% at 50% 20%, rgba(184,134,63,0.12), transparent 60%)) center/cover no-repeat,
    linear-gradient(180deg, var(--iron-deep) 0%, var(--iron) 60%);
}

.hammer-wrap{
  width:min(140px, 22vw); margin-bottom:2rem;
  animation: settle 1.4s cubic-bezier(.2,.9,.2,1) both;
}
@keyframes settle{
  0%{ transform: translateY(-40px) rotate(-8deg); opacity:0; }
  60%{ transform: translateY(4px) rotate(1deg); opacity:1; }
  100%{ transform: translateY(0) rotate(0deg); filter:drop-shadow(0 0 22px rgba(224,170,94,0.35)); }
}
.hammer-wrap.struck{ animation: strike 0.5s ease-out; }
@keyframes strike{
  0%{ transform: translateY(0) scale(1);}
  30%{ transform: translateY(6px) scale(1.04);}
  100%{ transform: translateY(0) scale(1);}
}

.hero .eyebrow{margin-bottom:1.1rem;}
.hero h1{
  font-size:clamp(2.6rem, 8vw, 6rem);
  font-weight:900; line-height:0.95;
  text-transform:uppercase;
}
.hero h1 span{ color:var(--brass-bright); display:block; font-size:0.5em; font-weight:500; letter-spacing:0.08em; margin-top:0.6em; font-family:'Cormorant Garamond', serif; font-style:italic; text-transform:none;}

.hero-sub{
  max-width:36ch; margin:1.8rem auto 0; font-size:1.2rem; line-height:1.5;
  color:var(--ash-dim);
}

.hero-cta{
  margin-top:2.4rem; display:inline-block;
  padding:0.9rem 2.2rem; border:1px solid var(--brass);
  font-family:'JetBrains Mono', monospace; font-size:0.72rem;
  letter-spacing:0.18em; text-transform:uppercase; color:var(--brass-bright);
  transition:background 0.3s, color 0.3s;
}
.hero-cta:hover{ background:var(--brass); color:var(--iron-deep); }

.lightning{
  position:absolute; inset:0; pointer-events:none; opacity:0;
  background:radial-gradient(ellipse 60% 40% at 50% 0%, rgba(224,170,94,0.5), transparent 70%);
  animation: flash 1.4s ease-out 0.2s 1;
}
@keyframes flash{
  0%{opacity:0;} 4%{opacity:0.9;} 8%{opacity:0.1;} 12%{opacity:0.6;} 18%{opacity:0;}
  100%{opacity:0;}
}

.scroll-cue{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
  font-family:'JetBrains Mono', monospace; font-size:0.65rem; letter-spacing:0.2em;
  color:var(--ash-dim); text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:0.5rem;
}
.scroll-cue::after{
  content:''; width:1px; height:34px; background:linear-gradient(var(--brass), transparent);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:0.3;} 50%{opacity:1;}}

/* ---------- section shell ---------- */
section{padding:8rem 6vw; position:relative;}
.section-head{max-width:640px; margin:0 auto 4rem;}
.section-head h2{font-size:clamp(1.9rem,4vw,2.8rem); margin-top:0.6rem;}
.rule{
  width:56px; height:2px; margin:1.6rem auto 0;
  background:linear-gradient(90deg, var(--brass), transparent);
}
.center{text-align:center;}

/* ---------- om ---------- */
.om{background:var(--iron);}
.om-grid{
  max-width:960px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:3rem;
  align-items:center;
}
.om-text{font-size:1.15rem; line-height:1.65; color:var(--ash-dim);}
.om-text strong{color:var(--brass-bright); font-weight:500;}
.om-image{
  aspect-ratio:4/5; background:var(--om-img, linear-gradient(160deg, var(--steel), var(--iron-deep))) center/cover no-repeat;
  border:1px solid var(--steel); position:relative;
}
.om-image::after{
  content:'FOTO'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono', monospace; font-size:0.65rem; letter-spacing:0.2em; color:var(--ash-dim);
  opacity:var(--om-img-placeholder, 1);
}
@media (max-width:760px){ .om-grid{grid-template-columns:1fr;} }

/* ---------- laug / events ---------- */
.laug{ background:var(--iron-deep); border-top:1px solid var(--steel); border-bottom:1px solid var(--steel);}
.laug-list{max-width:960px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;}
@media (max-width:820px){ .laug-list{grid-template-columns:1fr;} }
.laug-item{
  border:1px solid var(--steel);
  display:flex; flex-direction:column;
}
.laug-image{
  aspect-ratio:4/3; background-size:cover; background-position:center; position:relative;
  border-bottom:1px solid var(--steel);
}
.laug-image::after{
  content:attr(data-placeholder); position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono', monospace; font-size:0.6rem; letter-spacing:0.15em; color:var(--ash-dim);
}
.laug-body{padding:1.8rem;}
.laug-item h3{font-size:1.4rem; margin-bottom:0.6rem; font-weight:700;}
.laug-item p{color:var(--ash-dim); font-size:1.02rem; line-height:1.5;}

/* ---------- kritisk / ikke for alle ---------- */
.kritisk{background:var(--iron);}
.kritisk-inner{max-width:760px; margin:0 auto;}
.kritisk ul{list-style:none; margin-top:1.8rem; display:flex; flex-direction:column; gap:1.2rem;}
.kritisk li{
  display:flex; gap:1rem; align-items:baseline; font-size:1.1rem; color:var(--ash-dim);
  border-left:2px solid var(--steel); padding-left:1.2rem;
}
.kritisk li b{color:var(--ash); font-weight:600; display:block; margin-bottom:0.2rem;}

/* ---------- optagelse / krav ---------- */
.krav{background:var(--iron-deep); border-top:1px solid var(--steel);}
.krav-inner{
  max-width:760px; margin:0 auto;
  border:1px solid var(--steel);
  padding:3.5rem clamp(1.6rem, 5vw, 4rem);
  position:relative;
  background:linear-gradient(180deg, rgba(184,134,63,0.04), transparent 40%);
}
.krav-inner::before, .krav-inner::after{
  content:''; position:absolute; width:14px; height:14px;
  border:1px solid var(--brass);
}
.krav-inner::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.krav-inner::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}
.krav ul{list-style:none; margin-top:1.8rem; display:flex; flex-direction:column; gap:1.1rem;}
.krav li{
  display:flex; gap:1rem; align-items:baseline; font-size:1.15rem; color:var(--ash-dim);
}
.krav li::before{content:'⚡'; color:var(--brass); font-size:0.9rem; flex:none;}
.krav li b{color:var(--ash); font-weight:600;}
.blue-note{
  margin-top:2rem; padding-top:1.6rem; border-top:1px dashed var(--steel);
  font-family:'JetBrains Mono', monospace; font-size:0.8rem; color:var(--blue);
  letter-spacing:0.03em; line-height:1.6;
}

/* ---------- oegenavn ---------- */
.kaldenavn{
  background:var(--iron);
  text-align:center;
  border-top:1px solid var(--steel);
}
.kaldenavn h2{
  font-size:clamp(2.2rem, 6vw, 3.6rem);
  color:var(--brass-bright);
  text-shadow:0 0 30px rgba(224,170,94,0.25);
}
.kaldenavn p{max-width:52ch; margin:1.6rem auto 0; font-size:1.15rem; color:var(--ash-dim); line-height:1.6;}

/* ---------- kontakt ---------- */
.kontakt{background:var(--iron-deep); border-top:1px solid var(--steel); text-align:center;}
.kontakt-inner{max-width:520px; margin:0 auto;}
.kontakt p{color:var(--ash-dim); font-size:1.1rem; line-height:1.6; margin-bottom:1.8rem;}

/* ---------- footer ---------- */
footer{
  padding:4rem 6vw 3rem; text-align:center;
  border-top:1px solid var(--steel); background:var(--iron);
}
footer .nav-mark{justify-content:center; margin-bottom:1rem;}
footer p{font-family:'JetBrains Mono', monospace; font-size:0.7rem; letter-spacing:0.1em; color:var(--ash-dim);}
.closed-tag{
  display:inline-block; margin-top:1.4rem; padding:0.4rem 1rem;
  border:1px solid var(--steel); font-family:'JetBrains Mono', monospace;
  font-size:0.65rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ash-dim);
}

/* reveal on scroll */
.reveal{opacity:0; transform:translateY(24px); transition:opacity 0.8s ease, transform 0.8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- ticker: kommende arrangementer ---------- */
.thors-ticker{
  position:fixed; left:0; right:0; bottom:0; z-index:45;
  display:flex; align-items:center;
  height:42px;
  background:var(--iron-deep);
  border-top:1px solid var(--brass);
  overflow:hidden;
}
.thors-ticker-label{
  flex:none;
  height:100%; display:flex; align-items:center;
  padding:0 1.1rem;
  background:var(--brass);
  color:var(--iron-deep);
  font-family:'JetBrains Mono', monospace;
  font-size:0.65rem; letter-spacing:0.18em; text-transform:uppercase; font-weight:700;
}
.thors-ticker-track{
  flex:1; overflow:hidden; white-space:nowrap; position:relative;
}
.thors-ticker-content{
  display:inline-flex; align-items:center;
  animation: thors-scroll 28s linear infinite;
  padding-left:100%;
}
.thors-ticker:hover .thors-ticker-content{ animation-play-state:paused; }
.thors-ticker-item{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  font-size:1rem; color:var(--ash); padding:0 0.9rem;
}
.thors-ticker-sep{ color:var(--brass); font-size:0.8rem; }
@keyframes thors-scroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .thors-ticker-content{ animation:none; padding-left:1rem; }
}
body.thors-has-ticker{ padding-bottom:42px; }
