/* v49 cleaned (no !important) */

:root{
  --ink:#e7ebf4; --muted:#c8d0dd; --line:#263047; --accent:#d8b870; --red:#a64b4b; --max:1120px;
  --warm:#f8f5ef;
}
@font-face{ font-family:'Recoleta'; src:url('fonts/Recoleta-Regular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Recoleta'; src:url('fonts/Recoleta-Bold.otf') format('opentype'); font-weight:800; font-style:normal; font-display:swap; }
@font-face{ font-family:'Recoleta'; src:url('fonts/Recoleta-Light.otf') format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
*{box-sizing:border-box}
html,body{height:100%}
body{ margin:0; background:#0b1020; color:var(--ink); font-family:'Recoleta', ui-serif, Georgia, serif; line-height:1.6; min-height:100dvh; }
header{position:sticky; top:0; z-index:20; background:rgba(7,10,18,.55); backdrop-filter:blur(6px) saturate(140%); border-bottom:1px solid var(--line)}
.wrap{max-width:var(--max); margin:auto; padding:16px 24px}
.nav{display:flex; align-items:center; gap:16px}
.brand{font-weight:800; letter-spacing:.02em; font-size:18px}
.brand a{color:#fff; text-decoration:none}
.spacer{flex:1}
nav ul{display:flex; gap:18px; list-style:none; margin:0; padding:0}
nav a{padding:8px 10px; border-radius:10px; letter-spacing:.06em; text-transform:uppercase; font-size:.82rem; color:var(--muted); text-decoration:none}
nav a:hover, nav a[aria-current="page"]{color:#fff}
a:focus-visible, button:focus-visible{outline:3px solid #99b2ff; outline-offset:2px; border-radius:10px}

/* Screen reader only */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border-width:0}

.menu-btn{display:none; appearance:none; background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2); padding:10px 12px; border-radius:12px; font-family:inherit}
@media (max-width: 960px){
  .menu-btn{display:inline-flex; align-items:center; gap:8px}
  nav{position:fixed; top:64px; right:16px; background:rgba(7,10,18,.9); border:1px solid rgba(255,255,255,.18); border-radius:14px; padding:12px; display:none;}
  nav.open{display:block}
  nav ul{flex-direction:column; gap:8px}
}

.cta{display:inline-flex; align-items:center; gap:.6ch; padding:12px 18px; border-radius:999px; font-weight:800; box-shadow:0 6px 18px rgba(0,0,0,.22)}
.cta.gold{background:var(--accent); color:#1a1a1a}
.cta.teal{background:#7fd0d8; color:#06262b}
.cta.low{background:var(--red); color:#fff}
.cta.secondary{background:transparent; border:1px solid #e8dfcd; color:#fff}
.cta.disabled{opacity:.6; pointer-events:none}

.hero{min-height:100dvh; display:grid; place-items:center; position:relative; isolation:isolate;}
.hero::before{ content:""; position:fixed; inset:0; z-index:-2; background:60% center / cover no-repeat url('hero.jpg'); filter:grayscale(100%) contrast(98%) brightness(90%); }
.hero::after{ content:""; position:fixed; inset:0; z-index:-1; background:radial-gradient(1200px 800px at 20% 20%, rgba(68,97,150,.18), rgba(7,10,18,.6) 60%), linear-gradient(180deg, rgba(12,18,32,.55), rgba(7,10,18,.55)); }
.title{ text-align:center; padding:20px; margin-top:-64px; transform: translateY(-10vh); }
.logo-top{ display:block; font-weight:400; letter-spacing:0.10em; font-size:clamp(58px, 10vw, 148px); line-height:0.9; color:var(--warm); text-transform:none; white-space:nowrap; opacity:.88; }
.logo-sub{ display:block; margin-top:0.45rem; font-weight:300; letter-spacing:0.02em; font-size:clamp(18px, 2.1vw, 36px); color:var(--warm); white-space:nowrap; transform: translateX(-2px); }

.decor{position:absolute; inset:0; pointer-events:none; z-index:1}
.dot, .pill{position:absolute; background:rgba(248,245,239,0.85)}
.dot{ width:14px; height:14px; border-radius:50% }
.pill{ height:14px; width:64px; border-radius:999px }
.decor .dot.dot1{ left:6%; top:30% }
.decor .dot.dot2{ left:6%; top:38% }
.decor .pill.right{ right:6%; top:36% }
@media (max-width: 960px){
  .dot{ width:12px; height:12px }
  .pill{ height:12px; width:48px }
  .decor .dot.dot1{ left:26px; top:20vh }
  .decor .dot.dot2{ left:26px; top:27vh }
  .decor .pill.right{ right:18px; top:24vh }
  .title{ transform: translateY(-6vh); }
}

.main{padding-block:40px}
h1{font:800 42px/1.1 'Recoleta', ui-serif, Georgia, serif; letter-spacing:.01em; margin:0 0 16px}
.section{background:#fffefb; color:#0c1424; border:1px solid #e8dfcd; border-radius:18px; padding:18px; box-shadow:0 10px 24px rgba(0,0,0,.22)}

.events{display:grid; grid-template-columns:1fr; gap:14px}
.event{background:#fffefb; border:1px solid #e8dfcd; border-radius:16px}
.event .row{display:grid; grid-template-columns:160px 1fr 220px; gap:22px; align-items:center; padding:18px 24px; min-height:118px}
.date{font-weight:800; font-size:20px; color:#111827; white-space:nowrap}
.info{display:flex; flex-direction:column; gap:8px}
.venue>span{font-weight:800; font-size:22px; color:#0c1424; line-height:1.25; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden}
.map-link{text-decoration:none; color:var(--muted); transition:color 0.2s}
.map-link:hover{color:#fff; text-decoration:underline; text-underline-offset:3px}
.map-line .map-link{text-decoration:underline; text-underline-offset:3px; color:#163072; font-weight:600}
.actions{display:flex; justify-content:flex-end}

@media (max-width: 960px){
  .event .row{grid-template-columns:1fr; gap:8px; padding:14px; min-height:auto}
  .date{font-weight:800; font-size:18px; color:#0c1424; opacity:.95; margin-bottom:4px; order:-1}
  .actions{justify-content:center}
  .cta{max-width:280px; width:90%; text-align:center}
  .venue>span{-webkit-line-clamp:unset}
}
footer{border-top:1px solid var(--line); background:rgba(7,10,18,.55); color:#c8d0dd}


/* v4.7.1 – finjuster mobil-prikker */
@media (max-width: 960px){
  .hero .decor .dot.dot1{ left:30px; top:26vh; }
  .hero .decor .dot.dot2{ left:30px; top:33vh; }
  .hero .decor .pill.right{ right:18px; top:28vh; }
}

/* v4.7.1 – Om Emil split card */
.about-card{
  display:grid; grid-template-columns: 1.1fr 1.4fr; gap:28px; align-items:stretch;
  background:#fffefb; color:#0c1424; border:1px solid #e8dfcd; border-radius:22px; 
  padding:18px; box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.about-media{
  position:relative; border-radius:18px; overflow:hidden; background:#0b1020;
}
.about-media img{
  display:block; width:100%; height:100%; object-fit:cover; filter:contrast(96%) saturate(96%);
  transform:scale(1.02);
}
.about-body{display:flex; flex-direction:column; gap:12px; justify-content:center}
.about-body p{margin:0 0 8px}
.about-body details{margin-top:6px}
@media (max-width: 960px){
  .about-card{ grid-template-columns: 1fr; }
  .about-media{ height: 48vh; }
}


/* === Booking info styling (light, modern mailto) === */
.booking-info{ color:#f3f4ff; font-size:1.1rem; opacity:1; margin:8px 0 18px; }
.booking-info a{ color:#f3f4ff; text-decoration:none; font-weight:600; }
.booking-info a:hover{ text-decoration:underline; text-decoration-thickness:2px; }


/* === Booking contrast hotfix (v49b) ===
   Ensures booking info is clearly visible on white .section cards */
.section .booking-info{ 
  color:#0c1424;        /* dark ink on white card */
  opacity:1;
}
.section .booking-info a{
  color:#0c1424;
  text-decoration:none;
  font-weight:700;
}
.section .booking-info a:hover{ text-decoration:underline; text-decoration-thickness:2px; }

/* Neutralize any global low-opacity paragraph rules inside .section */
.section p{ opacity:1; }


/* === v50: page-scoped rules === */
/* Booking page: white card + dark text */
.page-booking .section{ background:#ffffff; color:#0c1424; }
.page-booking .booking-info{ color:#0c1424; opacity:1; }
.page-booking .booking-info a{ color:#0c1424; text-decoration:none; font-weight:700; }
.page-booking .booking-info a:hover{ text-decoration:underline; text-decoration-thickness:2px; }
/* Avoid global paragraph dimming on booking card */
.page-booking .section p{ opacity:1; }

/* Om page: restore blue/glass look */
.page-about .section{ background:none; box-shadow:none; border:none; }
.page-about .about-card{
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  color:#eaf2ff;
  border:1px solid rgba(170,200,255,.18);
  border-radius:22px;
  box-shadow:0 10px 30px rgba(10,25,60,.35), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(12px) saturate(135%);
}
.page-about .about-body, .page-about .about-body p, .page-about .about-body strong{ color:#eaf2ff; opacity:0.92; }
.page-about .about-media{ border:1px solid rgba(170,200,255,.18); box-shadow:0 12px 30px rgba(8,15,30,.45); }



/* Midnatt teaser – liten kortseksjon over konsertene (spesielt for mobil) */
.midnatt-teaser{
  padding:12px;
}

.midnatt-teaser-button{
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  width:100%;
  text-align:left;
  cursor:pointer;
  display:flex;
  gap:12px;
  align-items:center;
}

.midnatt-teaser-media{
  flex:0 0 120px;
}

.midnatt-teaser-media img{
  width:100%;
  height:auto;
  border-radius:14px;
  display:block;
}

.midnatt-teaser-text{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.midnatt-teaser-text h2{
  font:800 18px/1.3 'Recoleta', ui-serif, Georgia, serif;
  margin:0;
  color:#0c1424;
}

.midnatt-teaser-text p{
  margin:0;
  font-size:14px;
  line-height:1.4;
  color:#374151;
}

/* Full Midnatt-seksjon */
.midnatt-full{
  display:block;
}

.midnatt-full-media img{
  width:100%;
  height:auto;
  border-radius:18px;
  display:block;
  margin-bottom:12px;
}

.midnatt-full-body h2{
  margin:0 0 8px;
  font:800 24px/1.2 'Recoleta', ui-serif, Georgia, serif;
  color:#0c1424;
}

.midnatt-full-body p{
  margin:0 0 10px;
  line-height:1.55;
}

/* Standard: stack seksjonene (mobil-first) */
.concerts-layout{
  display:block;
}

/* Desktop: skjul teaser og legg konserter + Midnatt ved siden av hverandre */
@media (min-width: 961px){
  .midnatt-teaser{
    display:none;
  }

  .concerts-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.6fr) minmax(0, 1.2fr);
    gap:24px;
    align-items:flex-start;
    margin-top:18px;
  }

  .concerts-section{
    margin-top:0;
  }

  .midnatt-full{
    margin-top:0;
  }
}

@media (min-width: 961px){
  .concerts-section{
    margin-right: 24px;
  }
}


/* Desktop-override: gjør billettkolonnen smalere og trekker inn kortene */
@media (min-width: 961px){
  .event .row{
    grid-template-columns:160px 1fr 190px;
    padding:18px 20px;
  }
}

/* Desktop: widen left column even more (Option C: 2.2fr / 1fr) */
@media (min-width: 961px){
  .concerts-layout{
    grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) !important;
    gap: 40px !important;
  }
}


/* --- Privacy Policy quick-link (subtle, bottom corner) --- */
.privacy-fab{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:60;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border:1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius:999px;
  background:rgba(7,10,18,.55);
  backdrop-filter:blur(8px) saturate(140%);
  color:var(--muted);
  text-decoration:none;
  font-size:12px;
  letter-spacing:.01em;
  opacity:.65;
  transition:opacity .15s ease, transform .15s ease, border-color .15s ease;
}
.privacy-fab:hover{
  opacity:1;
  transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--accent) 55%, var(--line));
  color:var(--ink);
}
.privacy-fab:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 65%, transparent);
  outline-offset:3px;
}

/* --- Legal / policy page --- */
.legal{
  max-width: 860px;
}
.legal h1{ margin-top:10px; }
.legal h2{
  margin-top:28px;
  font-size:20px;
}
.legal p, .legal li{ color:var(--muted); }
.legal a{ color:var(--ink); }
.legal .card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px 18px;
  background:rgba(7,10,18,.35);
}

/* Cookie consent (minimal, site-styled) */
.cookie-consent{
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 9999;
  display: none;
}
.cookie-consent__inner{
  max-width: 720px;
  margin: 0 auto;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(12,12,12,.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}
.cookie-consent__text{
  min-width: 0;
  color: rgba(255,255,255,.92);
  font-size: 0.95rem;
  line-height: 1.25;
}
.cookie-consent__text strong{
  display: inline-block;
  margin-right: 8px;
}
.cookie-consent__desc{
  color: rgba(255,255,255,.78);
  font-size: 0.9rem;
  margin-top: 4px;
}
.cookie-consent__link{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  opacity: .9;
}
.cookie-consent__actions{
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
@media (max-width: 520px){
  .cookie-consent__inner{ flex-direction: column; align-items: stretch; }
  .cookie-consent__actions{ width: 100%; }
  .cookie-consent__actions .btn{ width: 100%; }
}


/* === Concerts page refresh (hero + glass cards) === */

.page-concerts{ background:#0b1425; color:var(--ink); }
.page-concerts .main{ padding-top:34px; }
.page-concerts .section{ background:transparent; color:var(--ink); border:0; box-shadow:none; padding:0; }

.concerts-hero{
  padding:96px 0 44px;
  background-image:
    radial-gradient(1200px 800px at 18% 22%, rgba(68,97,150,.20), rgba(7,10,18,.70) 60%),
    linear-gradient(180deg, rgba(7,10,18,.58), rgba(7,10,18,.82)),
    url('concerts-hero.jpg');
  background-repeat:no-repeat;
  background-size:cover;
  /* move photo slightly UP so it doesn't "sink" under the header */
  background-position:center, center, 18% 12%;
}
.concerts-hero-inner h1{ color:#fff; margin:0 0 10px; font:800 clamp(32px,7vw,44px)/1.06 'Recoleta', ui-serif, Georgia, serif; }
.concerts-lede{ margin:0; max-width:60ch; font-size:1.15rem; color:rgba(231,235,244,.88); }

.page-concerts .events{ margin-top:8px; }

.page-concerts .event{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 40px rgba(0,0,0,.25);
}
.page-concerts .event .row{ min-height:112px; }
.page-concerts .date{ color:#fff; opacity:.92; }
.page-concerts .venue>span{ color:#fff; }
.page-concerts .map-link{ color:rgba(231,235,244,.75); }
.page-concerts .map-link:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }

.page-concerts .cta{ transition: transform .15s ease, box-shadow .15s ease, filter .15s ease; }
.page-concerts .cta:hover{ transform: translateY(-1px); filter: brightness(1.04); box-shadow:0 10px 26px rgba(0,0,0,.28); }

@media (max-width: 820px){
  .concerts-hero{ padding:76px 0 34px; background-position: 24% center; }
}


@media (max-width: 720px){
  .concerts-hero{ background-position:center, center, 22% 6%; padding:82px 0 34px; }
}

/* === Newsletter popup modal === */
.nl-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  transition:opacity .18s ease;
}
.nl-modal[hidden]{ display:none; }
.nl-modal.nl-modal--show{ opacity:1; }
.nl-modal__backdrop{
  position:absolute; inset:0;
  background:rgba(7,10,18,.72);
  backdrop-filter: blur(4px) saturate(120%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
}
.nl-modal__card{
  position:relative;
  width:100%;
  max-width:460px;
  background:#fffefb;
  color:#0c1424;
  border:1px solid #e8dfcd;
  border-radius:20px;
  padding:28px 26px 22px;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  transform:translateY(10px) scale(.98);
  transition:transform .2s ease;
}
.nl-modal--show .nl-modal__card{ transform:translateY(0) scale(1); }
.nl-modal__close{
  position:absolute;
  top:10px; right:12px;
  width:36px; height:36px;
  border-radius:50%;
  border:0;
  background:transparent;
  font-size:24px;
  line-height:1;
  color:#0c1424;
  cursor:pointer;
}
.nl-modal__close:hover{ background:rgba(12,20,36,.06); }
.nl-modal__title{
  font:800 26px/1.15 'Recoleta', ui-serif, Georgia, serif;
  margin:0 0 8px;
  color:#0c1424;
}
.nl-modal__desc{
  margin:0 0 18px;
  color:#374151;
  font-size:15px;
  line-height:1.5;
}
.nl-modal__prize{
  margin:0 0 18px;
  padding:12px 14px;
  background:linear-gradient(135deg, rgba(216,184,112,.18), rgba(216,184,112,.06));
  border:1px solid rgba(216,184,112,.55);
  border-radius:12px;
  color:#0c1424;
  font-size:14px;
  line-height:1.5;
}
.nl-modal__prize strong{ color:#0c1424; }
.nl-modal__hp{ position:absolute; left:-9999px; top:-9999px; }
.nl-modal__form{ display:flex; flex-direction:column; gap:12px; }
.nl-modal__field{ display:flex; flex-direction:column; gap:6px; font-size:14px; color:#374151; }
.nl-modal__field span{ font-weight:600; }
.nl-modal__optional{ font-weight:400; color:#6b7280; }
.nl-modal__field input{
  font:inherit;
  padding:11px 12px;
  border-radius:10px;
  border:1px solid #d8cfb8;
  background:#fff;
  color:#0c1424;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.nl-modal__field input:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(216,184,112,.25);
}
.nl-modal__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 14px;
  margin-top:6px;
}
.nl-modal__submit{ border:0; cursor:pointer; font:inherit; }
.nl-modal__submit[disabled]{ opacity:.65; cursor:wait; }
.nl-modal__later{
  background:transparent;
  border:0;
  color:#374151;
  font:inherit;
  font-size:14px;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
  padding:6px 4px;
}
.nl-modal__later:hover{ color:#0c1424; }
.nl-modal__note{
  margin:10px 0 0;
  font-size:12px;
  color:#6b7280;
  line-height:1.45;
}
.nl-modal__error{
  margin:10px 0 0;
  font-size:14px;
  color:var(--red);
}
.nl-modal__success{ text-align:center; padding:4px 0; }
.nl-modal__success h3{
  font:800 22px/1.2 'Recoleta', ui-serif, Georgia, serif;
  margin:0 0 8px;
  color:#0c1424;
}
.nl-modal__success p{ margin:0 0 16px; color:#374151; }

@media (max-width: 520px){
  .nl-modal__card{ padding:24px 20px 18px; border-radius:18px; }
  .nl-modal__title{ font-size:22px; }
}


/* === v51: Sesonginndelte konserter (sommer + jul) === */

/* Hopp-til-sesong lenker i hero */
.season-jump{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.season-jump a{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 16px; border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.06);
  color:#fff; text-decoration:none;
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; font-weight:700;
  transition:background .15s ease, border-color .15s ease, transform .15s ease;
}
.season-jump a:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.4); transform:translateY(-1px); }

/* Stabel av sesonger */
.concert-seasons{ display:flex; flex-direction:column; gap:60px; margin-top:8px; }
.season{ scroll-margin-top:96px; }

/* Sesong-overskrift */
.season-head{ margin:0 0 22px; }
.season-kicker{
  display:inline-flex; align-items:center; gap:10px;
  margin:0 0 12px;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; font-weight:700;
  color:var(--accent);
}
.season-kicker::before{ content:""; width:30px; height:1px; background:currentColor; opacity:.8; }
.season--summer .season-kicker{ color:#7fd0d8; }
.season-head h2{
  margin:0 0 10px;
  font:800 clamp(28px,4.6vw,42px)/1.06 'Recoleta', ui-serif, Georgia, serif;
  color:#fff; letter-spacing:.01em;
}
.season-head p{
  margin:0; max-width:58ch;
  color:rgba(231,235,244,.84); font-size:1.08rem; line-height:1.55;
}

/* Bildebanner for sommersesongen */
.season-feature{
  position:relative; margin:0 0 26px;
  border-radius:22px; overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 22px 50px rgba(0,0,0,.32);
  aspect-ratio:16/7;
}
.season-feature img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 26%;
}
.season-feature__veil{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(6,11,22,.82) 0%, rgba(6,11,22,.42) 46%, rgba(6,11,22,0) 74%);
}
.season-feature__copy{
  position:absolute; left:0; bottom:0;
  padding:clamp(18px,3.2vw,34px); max-width:70%;
  display:flex; flex-direction:column; gap:8px;
}
.season-feature__copy .tag{
  font:800 clamp(20px,3vw,30px)/1.1 'Recoleta', ui-serif, Georgia, serif;
  color:#fff;
}
.season-feature__copy .line{
  font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:#7fd0d8;
}

/* Bildebanner for julesesongen – samme innramming, slør og tekstoverlegg
   som sommeren, men med gull-aksent på linjen og et motiv som viser
   selve forestillingen i levende lys. */
.season-feature--winter img{
  object-position:center 48%;
}
.season--winter .season-feature__copy .line{
  color:var(--accent);
}

/* "Billetter kommer" – nøytral status, ikke en aktiv kjøp-knapp */
.ticket-soon{
  display:inline-flex; align-items:center; gap:.55ch;
  padding:11px 18px; border-radius:999px;
  border:1px dashed rgba(255,255,255,.32);
  background:rgba(255,255,255,.05);
  color:rgba(231,235,244,.9);
  font-weight:700; font-size:.92rem; white-space:nowrap;
}
.ticket-soon::before{ content:""; width:8px; height:8px; border-radius:50%; background:#7fd0d8; box-shadow:0 0 0 4px rgba(127,208,216,.18); }

@media (max-width: 960px){
  .season-feature{ aspect-ratio:4/3; }
  .season-feature__veil{ background:linear-gradient(0deg, rgba(6,11,22,.9) 0%, rgba(6,11,22,.35) 55%, rgba(6,11,22,.1) 100%); }
  .season-feature__copy{ max-width:100%; }
  .ticket-soon{ max-width:280px; width:90%; justify-content:center; }
}


/* === v52b: Konserter – mobil-polish (≤960px) ===
   Gjør mobilen like forseggjort som desktop: luftigere hero,
   tettere sesongstabel og ryddige konsertkort med full-bredde knapp. */
@media (max-width: 960px){
  /* Hero: mindre toppluft, mer behagelig ingress */
  .page-concerts .concerts-hero{ padding:72px 0 30px; }
  .page-concerts .concerts-lede{ font-size:1.05rem; }
  .page-concerts .season-jump{ margin-top:18px; }

  /* Mindre luft mellom sesongene på liten skjerm */
  .concert-seasons{ gap:42px; }
  .season-head{ margin-bottom:18px; }
  .season-head p{ font-size:1rem; }

  /* Konsertkort: jevn høyde + luft, tydelig dato over stedet */
  .page-concerts .event{ border-radius:18px; }
  .page-concerts .event .row{ min-height:auto; gap:10px; padding:18px 18px 20px; }
  .page-concerts .date{ font-size:.95rem; letter-spacing:.05em; opacity:.82; }
  .page-concerts .venue>span{ font-size:21px; line-height:1.2; }
  .page-concerts .info{ gap:6px; }

  /* Kjøp-knapp: full bredde gir en tydelig, lett trykkbar CTA */
  .page-concerts .actions{ justify-content:stretch; margin-top:6px; }
  .page-concerts .cta{ width:100%; max-width:none; justify-content:center; padding:15px 20px; font-size:1rem; }
}

/* Ekstra finpuss på smale telefoner */
@media (max-width: 420px){
  .page-concerts .concerts-hero{ padding:64px 0 26px; }
  .season-head p, .page-concerts .concerts-lede{ font-size:.98rem; }
  .page-concerts .venue>span{ font-size:20px; }
}
