/*
Theme Name: Pyro och Party
Theme URI: https://pyroparty.ax/
Author: Pyro och Party
Description: Ett skräddarsytt blocktema för Pyro och Party – mörkt, bilddrivet och byggt för evenemang, partnerskap och företagsuppdrag.
Version: 1.6.9
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: pyro-och-party
*/

:root {
  --pyro-black: #090909;
  --pyro-charcoal: #151515;
  --pyro-white: #ffffff;
  --pyro-warm: #f5f1ea;
  --pyro-muted: #a8a8a8;
  --pyro-line: rgba(255,255,255,.16);
  --pyro-radius: 0px;
  --pyro-shadow: 0 24px 70px rgba(0,0,0,.22);
}

html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a { text-underline-offset: .18em; }

.wp-site-blocks { overflow: clip; }

/* Header */
.pyro-header {
  background: var(--pyro-black);
  border-bottom: 1px solid rgba(255,255,255,.12);
  position: relative;
  z-index: 30;
}
.home .pyro-header {
  position: absolute;
  inset: 0 0 auto 0;
  background: linear-gradient(180deg, rgba(0,0,0,.78), rgba(0,0,0,0));
  border-bottom: 0;
}
.pyro-header .wp-block-navigation a { text-decoration: none; }
.pyro-header .wp-block-navigation-item__content { padding: .55rem 0; }
.pyro-header .pyro-nav-ticket > a,
.pyro-header .pyro-nav-ticket .wp-block-navigation-item__content {
  border: 1px solid rgba(255,255,255,.72);
  padding: .7rem 1rem !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 800;
}
.pyro-header .pyro-nav-ticket > a:hover,
.pyro-header .pyro-nav-ticket .wp-block-navigation-item__content:hover {
  background: var(--pyro-white);
  color: var(--pyro-black) !important;
}
.pyro-brand-logo img { width: 84px; height: auto; display:block; }

/* Hero */
.pyro-hero { min-height: 88svh; }
.pyro-hero .wp-block-cover__inner-container { width: 100%; }
.pyro-kicker {
  font-family: Montserrat, Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .78rem;
  font-weight: 800;
}
.pyro-hero-title {
  max-width: 900px;
  line-height: 1.10 !important;
  text-wrap: balance;
}
.pyro-lead { max-width: 760px; font-size: clamp(1.08rem,2vw,1.42rem); }

/* Buttons */
.wp-block-button__link {
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.wp-block-button__link:hover { transform: translateY(-2px); }
.pyro-button-outline .wp-block-button__link {
  background: rgba(0,0,0,.22) !important;
  color: var(--pyro-white) !important;
  border: 1px solid rgba(255,255,255,.92) !important;
}
.pyro-button-outline .wp-block-button__link:hover {
  background: var(--pyro-white) !important;
  color: var(--pyro-black) !important;
  border-color: var(--pyro-white) !important;
}

/* Sections */
.pyro-section { position: relative; }
.pyro-section-title { line-height: 1.10 !important; text-wrap: balance; }
.pyro-overline {
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .75rem;
  font-weight: 800;
}
.pyro-rule { border-top: 1px solid rgba(0,0,0,.18); }
.pyro-dark-rule { border-top: 1px solid rgba(255,255,255,.16); }

/* Cards */
.pyro-event-card,
.pyro-concept-card {
  min-height: 430px;
  overflow: hidden;
  position: relative;
  box-shadow: var(--pyro-shadow);
}
.pyro-event-card .wp-block-cover__inner-container,
.pyro-concept-card .wp-block-cover__inner-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
}
.pyro-card-label {
  font-family: Montserrat, Arial, sans-serif;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .08em;
  font-size: .72rem;
}
.pyro-card-title { line-height: 1.02 !important; }
.pyro-card-link a { color: inherit; font-weight: 800; text-decoration: none; }
.pyro-card-link a::after { content: '  →'; }

/* Proof / statements */
.pyro-proof-item { border-top: 1px solid rgba(255,255,255,.2); padding-top: 1rem; }
.pyro-proof-item strong {
  display:block;
  font-family: Anton, Impact, sans-serif;
  font-size: clamp(1.6rem,3vw,2.6rem);
  font-weight: 400;
  letter-spacing: .01em;
}

/* Business split */
.pyro-business-card { min-height: 340px; border: 1px solid rgba(0,0,0,.18); }
.pyro-business-card.dark { background: var(--pyro-black); color: white; border-color: var(--pyro-black); }

/* Image strip */
.pyro-image-strip img { aspect-ratio: 4/3; object-fit: cover; width:100%; }

/* Inner pages */
.pyro-page-hero { background: var(--pyro-black); color: white; }
.pyro-page-content { max-width: 820px; }
.pyro-page-content > * + * { margin-block-start: 1.2em; }
.pyro-page-content h2,
.pyro-page-content h3 { margin-block-start: 1.6em; }

/* Footer */
.pyro-footer { background: var(--pyro-black); color: white; border-top:1px solid rgba(255,255,255,.15); }
.pyro-footer a { color: inherit; }
.pyro-footer-logo img { width: 110px; height:auto; }


/* Multi-line display headings */
.pyro-intro-title { line-height: 1.12 !important; }
.pyro-final-title { line-height: 1.10 !important; }

/* Stable custom grids */
.pyro-event-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin-top:var(--wp--preset--spacing--40);
}
.pyro-event-tile,
.pyro-concept-tile {
  color:#fff;
  text-decoration:none;
  background-size:cover;
  background-position:center;
  box-shadow:var(--pyro-shadow);
  overflow:hidden;
}
.pyro-event-tile {
  min-height:460px;
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
}
.pyro-event-tile:hover, .pyro-concept-tile:hover {
  transform:translateY(-2px);
}
.pyro-tile-title {
  display:block;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.3rem,4vw,4rem);
  line-height:1.08;
  letter-spacing:.01em;
  margin:.35rem 0 .55rem;
}
.pyro-tile-link { font-weight:800; margin-top:.45rem; }

.pyro-concept-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1rem;
  margin-top:var(--wp--preset--spacing--40);
}
.pyro-concept-tile {
  grid-column:span 2;
  min-height:390px;
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.pyro-concept-tile.pyro-concept-featured {
  grid-column:span 3;
  min-height:500px;
}
.pyro-concept-tile .pyro-tile-copy {
  display:block;
  font-size:1rem;
  line-height:1.5;
  max-width:36rem;
}

.pyro-proof-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.5rem;
}
.pyro-proof-item { border-top:1px solid rgba(255,255,255,.2); padding-top:1rem; }
.pyro-proof-item span { display:block; margin-bottom:.8rem; }
.pyro-proof-item strong {
  display:block;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(1.6rem,3vw,2.6rem);
  line-height:1.08;
  font-weight:400;
}

.pyro-business-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:var(--wp--preset--spacing--40);
}
.pyro-business-tile {
  min-height:340px;
  border:1px solid rgba(0,0,0,.18);
  padding:clamp(1.5rem,4vw,3rem);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.pyro-business-tile-dark { background:var(--pyro-black); color:#fff; border-color:var(--pyro-black); }
.pyro-business-tile h3 {
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1.08;
  font-weight:400;
  margin:0 0 1rem;
}
.pyro-business-tile p { line-height:1.55; }
.pyro-business-tile a { color:inherit; font-weight:800; margin-top:.5rem; }

.pyro-image-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.pyro-image-strip img { aspect-ratio:4/3; object-fit:cover; width:100%; height:100%; display:block; }

/* Mobile */
@media (max-width: 781px) {
  .pyro-brand-logo img { width: 68px; }
  .pyro-hero { min-height: 82svh; }
  .pyro-hero-title { font-size: clamp(3.4rem,19vw,6.4rem) !important; }
  .pyro-hero-title { line-height: 1.12 !important; }
  .pyro-intro-title,
  .pyro-final-title { line-height: 1.13 !important; }
  .pyro-event-grid,
  .pyro-business-grid { grid-template-columns:1fr; }
  .pyro-concept-grid { grid-template-columns:1fr; }
  .pyro-concept-tile,
  .pyro-concept-tile.pyro-concept-featured { grid-column:auto; min-height:360px; }
  .pyro-event-tile { min-height:380px; }
  .pyro-proof-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pyro-image-strip { grid-template-columns:1fr; }
  .pyro-header .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--pyro-black) !important;
    color: white !important;
    padding: 2rem;
  }
}


/* v1.2.0 — robust front page built from Custom HTML blocks */
.pyro-home-section { box-sizing:border-box; }
.pyro-home-inner { width:min(1280px, calc(100% - 2.5rem)); margin:0 auto; }
.pyro-home-inner-narrow { width:min(1120px, calc(100% - 2.5rem)); margin:0 auto; }
.pyro-home-overline {
  margin:0 0 .9rem;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.78rem;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.pyro-home-heading {
  margin:0;
  font-family:Anton,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  font-weight:400;
  line-height:1.16;
  text-transform:uppercase;
}

/* Hero */
.pyro-home-hero {
  min-height:88svh;
  display:flex;
  align-items:flex-end;
  color:#fff;
  background:
    linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.22) 35%, rgba(0,0,0,.82) 100%),
    url('assets/images/hero.jpg') center center / cover no-repeat;
  padding:10rem 0 clamp(3.5rem,7vw,6rem);
}
.pyro-home-hero .pyro-home-inner { width:min(1280px, calc(100% - 3rem)); }
.pyro-home-hero h1 {
  max-width:980px;
  margin:.45rem 0 1.4rem;
  font-family:Anton,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  font-size:clamp(4.2rem,9.5vw,9rem);
  font-weight:400;
  line-height:1.18;
  letter-spacing:-.015em;
  text-transform:uppercase;
}
.pyro-home-hero p.pyro-home-lead {
  max-width:820px;
  margin:0;
  font-size:clamp(1.08rem,1.9vw,1.45rem);
  line-height:1.55;
}
.pyro-home-actions { display:flex; flex-wrap:wrap; gap:.85rem; margin-top:1.7rem; }
.pyro-home-btn {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:52px; padding:.9rem 1.35rem;
  border:1px solid #fff;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.8rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  text-decoration:none;
}
.pyro-home-btn-primary { background:#fff; color:#090909 !important; }
.pyro-home-btn-secondary { background:rgba(0,0,0,.24); color:#fff !important; }
.pyro-home-btn:hover { transform:translateY(-2px); }

/* Events */
.pyro-home-events { background:#f5f1ea; color:#111; padding:clamp(4rem,8vw,7rem) 0; }
.pyro-home-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.pyro-home-section-head h2 { font-size:clamp(2.6rem,5vw,4.8rem); }
.pyro-home-section-link { font-weight:800; white-space:nowrap; }
.pyro-home-event-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.pyro-home-event-card {
  min-height:520px;
  padding:1.45rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  color:#fff !important;
  text-decoration:none;
  background-position:center;
  background-size:cover;
  box-shadow:0 18px 45px rgba(0,0,0,.10);
}
.pyro-home-event-card.disco { background-image:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.88)),url('assets/images/event-party.jpg'); }
.pyro-home-event-card.metal { background-image:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.88)),url('assets/images/event-metal.jpg'); }
.pyro-home-event-card.nitti { background-image:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.88)),url('assets/images/event-nitti.jpg'); background-position:center 28%; }
.pyro-home-card-label { font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.pyro-home-card-title { margin:.4rem 0 .8rem; font-family:Anton,Impact,sans-serif; font-size:clamp(2.3rem,4vw,4rem); line-height:1.08; }
.pyro-home-card-link { font-weight:800; }

/* Event logos */
.pyro-visually-hidden {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.pyro-home-card-logo {
  display:block;
  width:min(88%, 360px);
  height:150px;
  margin:.55rem 0 .85rem;
  background-repeat:no-repeat;
  background-position:left center;
  background-size:contain;
  filter:drop-shadow(0 5px 20px rgba(0,0,0,.32));
}
.pyro-home-card-logo.logo-disco { background-image:url('assets/images/logo-disco.png'); height:135px; }
.pyro-home-card-logo.logo-metal { background-image:url('assets/images/logo-metal.png'); width:min(74%, 300px); height:175px; }
.pyro-home-card-logo.logo-nitti { background-image:url('assets/images/logo-nitti-v2.png'); height:135px; }


/* Intro */
.pyro-home-intro { background:#fff; color:#111; padding:clamp(4.5rem,9vw,8rem) 0; }
.pyro-home-intro-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(3rem,6vw,5rem);
  align-items:center;
}
.pyro-home-intro-grid > div { min-width:0; }
.pyro-home-intro h2 {
  margin:0;
  font-size:clamp(3rem,4.4vw,4.8rem);
  line-height:1.08;
  letter-spacing:-.01em;
  word-break:normal;
  overflow-wrap:normal;
  hyphens:none;
}
.pyro-intro-line { display:block; white-space:nowrap; }
.pyro-home-intro-copy {
  margin-top:0;
  max-width:28ch;
  font-size:clamp(1.45rem,2.2vw,2.2rem);
  line-height:1.5;
}
.pyro-home-text-link { font-weight:800; }

/* Concepts */
.pyro-home-concepts { background:#090909; color:#fff; padding:clamp(4.5rem,9vw,8rem) 0; }
.pyro-home-concepts .pyro-home-section-head { justify-content:center; text-align:center; margin-bottom:2.3rem; }
.pyro-home-concepts .pyro-home-section-head h2 { font-size:clamp(3rem,5.5vw,5.4rem); }
.pyro-home-concept-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; }
.pyro-home-concept-card {
  min-height:390px; grid-column:span 2;
  padding:1.35rem; display:flex; flex-direction:column; justify-content:flex-end;
  color:#fff !important; text-decoration:none; background-position:center; background-size:cover;
}
.pyro-home-concept-card.featured { grid-column:span 3; min-height:480px; }
.pyro-home-concept-card.nitti { background-image:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.88)),url('assets/images/concept-nitti.jpg'); background-position:center 22%; }
.pyro-home-concept-card.sjodagarna { background-image:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.88)),url('assets/images/concept-sjodagarna.jpg'); background-position:center 48%; }
.pyro-home-concept-card.disco { background-image:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.88)),url('assets/images/event-party.jpg'); }
.pyro-home-concept-card.metal { background-image:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.88)),url('assets/images/event-metal.jpg'); }
.pyro-home-concept-card.kidz { background-image:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.86)),url('assets/images/concept-kidz.jpg'); background-position:center 20%; }
.pyro-home-concept-card h3 { margin:0 0 .5rem; font-family:Anton,Impact,sans-serif; font-size:clamp(2rem,3.3vw,3.8rem); line-height:1.12; font-weight:400; }
.pyro-home-concept-card p { margin:0; max-width:38rem; line-height:1.5; }
.pyro-home-concept-footer { display:flex; justify-content:space-between; gap:2rem; align-items:flex-end; margin-top:2rem; }
.pyro-home-concept-footer p:first-child { max-width:800px; font-size:clamp(1.35rem,2.4vw,2.2rem); line-height:1.45; }

/* Proof */
.pyro-home-proof { background:#151515; color:#fff; padding:clamp(3.5rem,7vw,5.5rem) 0; }
.pyro-home-proof-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; }
.pyro-home-proof-item { border-top:1px solid rgba(255,255,255,.22); padding-top:1rem; }
.pyro-home-proof-item span { display:block; margin-bottom:.75rem; }
.pyro-home-proof-item strong { display:block; font-family:Anton,Impact,sans-serif; font-size:clamp(2rem,3vw,3.2rem); line-height:1.16; font-weight:400; }

/* Business */
.pyro-home-business { background:#f5f1ea; color:#111; padding:clamp(4.5rem,9vw,8rem) 0; }
.pyro-home-business h2 { font-size:clamp(3rem,5.5vw,5.2rem); line-height:1.16; margin-bottom:2rem; }
.pyro-home-business-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.pyro-home-business-card { min-height:350px; padding:2rem; border:1px solid rgba(0,0,0,.18); display:flex; flex-direction:column; justify-content:flex-end; }
.pyro-home-business-card.dark { background:#090909; color:#fff; border-color:#090909; }
.pyro-home-business-card h3 { margin:0 0 1rem; font-family:Anton,Impact,sans-serif; font-size:clamp(2.6rem,4vw,4.2rem); line-height:1.15; font-weight:400; }
.pyro-home-business-card p { max-width:640px; line-height:1.6; }
.pyro-home-business-card a { font-weight:800; }

/* Gallery strip */
.pyro-home-gallery { display:grid; grid-template-columns:repeat(3,1fr); background:#090909; }
.pyro-home-gallery div { min-height:360px; background-position:center; background-size:cover; }
.pyro-home-gallery .one { background-image:url('assets/images/event-party.jpg'); }
.pyro-home-gallery .two { background-image:url('assets/images/supe.jpg'); background-position:center 54%; }
.pyro-home-gallery .three { background-image:url('assets/images/crowd.jpg'); }

/* Final CTA */
.pyro-home-final { background:#fff; color:#111; padding:clamp(5rem,10vw,9rem) 0; text-align:center; }
.pyro-home-final h2 { max-width:1050px; margin:.5rem auto 2rem; font-size:clamp(4rem,9vw,8.5rem); line-height:1.2; }
.pyro-home-final .pyro-home-btn { background:#090909; color:#fff !important; border-color:#090909; }

@media (max-width: 900px) {
  .pyro-home-event-grid,
  .pyro-home-business-grid { grid-template-columns:1fr; }
  .pyro-home-event-card { min-height:420px; }

  .pyro-home-card-logo { height:125px; }
  .pyro-home-card-logo.logo-metal { height:150px; }

  .pyro-home-intro-grid { grid-template-columns:1fr; gap:2rem; }
  .pyro-home-intro-copy { max-width:none; }
  .pyro-intro-line { white-space:normal; }
  .pyro-home-concept-grid { grid-template-columns:1fr; }
  .pyro-home-concept-card,
  .pyro-home-concept-card.featured { grid-column:auto; min-height:380px; }
  .pyro-home-proof-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pyro-home-gallery { grid-template-columns:1fr; }
  .pyro-home-gallery div { min-height:300px; }
}
@media (max-width: 620px) {
  .pyro-home-inner,
  .pyro-home-inner-narrow,
  .pyro-home-hero .pyro-home-inner { width:min(100% - 2rem,1280px); }
  .pyro-home-hero { min-height:82svh; padding-top:8rem; }
  .pyro-home-hero h1 { font-size:clamp(3.6rem,18vw,6rem); line-height:1.2; }
  .pyro-home-section-head,
  .pyro-home-concept-footer { align-items:flex-start; flex-direction:column; }
  .pyro-home-proof-grid { grid-template-columns:1fr; }
  .pyro-home-final h2 { font-size:clamp(3.5rem,17vw,6rem); line-height:1.2; }
}


/* v1.4.0 — dynamic upcoming events */
.pyro-home-event-card-dynamic {
  background-position:center;
  background-size:cover;
}
.pyro-home-card-logo-img {
  display:block;
  width:auto;
  max-width:min(88%,360px);
  max-height:170px;
  height:auto;
  object-fit:contain;
  object-position:left center;
  margin:.55rem 0 .85rem;
  filter:drop-shadow(0 5px 20px rgba(0,0,0,.32));
}
.pyro-events-empty {
  margin:1rem 0 0;
  font-size:1.1rem;
}
@media (max-width:620px) {
  .pyro-home-card-logo-img { max-height:145px; }
}


/* v1.4.1 — keep dynamic upcoming-events section full width */
.pyro-home-events {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
}
.pyro-home-events .pyro-home-inner {
  width: min(1280px, calc(100% - 3rem));
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 620px) {
  .pyro-home-events .pyro-home-inner {
    width: min(100% - 2rem, 1280px);
  }
}


/* v1.4.2 — robust dynamic events layout */
.pyro-events-host {
  width:100%;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
.pyro-events-host > .wp-block-shortcode,
.pyro-events-host .wp-block-shortcode {
  width:100%;
  max-width:none !important;
  margin:0 !important;
}
.pyro-events-host .pyro-home-events,
.pyro-home-events {
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.pyro-events-host .pyro-home-events .pyro-home-inner,
.pyro-home-events .pyro-home-inner {
  width:min(1280px, calc(100% - 3rem));
  max-width:1280px;
  margin-left:auto;
  margin-right:auto;
}
.pyro-events-host .pyro-home-event-grid,
.pyro-home-events .pyro-home-event-grid {
  display:flex !important;
  flex-flow:row nowrap !important;
  align-items:stretch;
  gap:1rem;
  width:100%;
}
.pyro-events-host .pyro-home-event-card-dynamic,
.pyro-home-events .pyro-home-event-card-dynamic {
  flex:1 1 0 !important;
  width:0 !important;
  min-width:0 !important;
  max-width:none !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
@media (max-width:900px) {
  .pyro-events-host .pyro-home-event-grid,
  .pyro-home-events .pyro-home-event-grid {
    flex-direction:column !important;
  }
  .pyro-events-host .pyro-home-event-card-dynamic,
  .pyro-home-events .pyro-home-event-card-dynamic {
    width:100% !important;
    flex-basis:auto !important;
  }
}
@media (max-width:620px) {
  .pyro-events-host .pyro-home-events .pyro-home-inner,
  .pyro-home-events .pyro-home-inner {
    width:min(100% - 2rem,1280px);
  }
}


/* v1.4.3 — dedicated Evenemang archive */
.pyro-event-archive-hero {
  background:#090909;
  color:#fff;
  padding:clamp(7rem,12vw,11rem) 0 clamp(3.5rem,7vw,5.5rem);
}
.pyro-event-archive-hero-inner,
.pyro-event-archive-inner {
  width:min(1280px, calc(100% - 3rem));
  margin:0 auto;
}
.pyro-event-archive-hero .pyro-home-overline {
  margin-bottom:1rem;
}
.pyro-event-archive-hero h1 {
  margin:0;
  font-family:Anton,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  font-size:clamp(4rem,9vw,8.5rem);
  line-height:1.02;
  font-weight:400;
  text-transform:uppercase;
}
.pyro-event-archive-lead {
  max-width:760px;
  margin:1.25rem 0 0;
  font-size:clamp(1.1rem,2vw,1.45rem);
  line-height:1.55;
}
.pyro-event-archive-list {
  background:#f5f1ea;
  color:#111;
  padding:clamp(4rem,8vw,7rem) 0 clamp(5rem,10vw,9rem);
}
.pyro-event-archive-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
}
.pyro-event-archive-card {
  min-height:540px;
  padding:1.45rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  color:#fff !important;
  text-decoration:none !important;
  background:#151515 center/cover no-repeat;
  box-shadow:0 20px 55px rgba(0,0,0,.12);
  transition:transform .18s ease, box-shadow .18s ease;
  overflow:hidden;
}
.pyro-event-archive-card:hover {
  transform:translateY(-3px);
  box-shadow:0 25px 65px rgba(0,0,0,.18);
}
.pyro-event-archive-meta {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem .8rem;
  align-items:center;
  margin-bottom:.45rem;
  font-family:Montserrat,Arial,sans-serif;
  font-size:.74rem;
  line-height:1.35;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.pyro-event-archive-date::after {
  content:'•';
  margin-left:.8rem;
  opacity:.65;
}
.pyro-event-archive-logo {
  display:block;
  width:min(88%,360px);
  max-height:180px;
  height:auto;
  object-fit:contain;
  object-position:left center;
  margin:.65rem 0 .9rem;
  filter:drop-shadow(0 5px 20px rgba(0,0,0,.35));
}
.pyro-event-archive-title {
  display:block;
  margin:.5rem 0 .85rem;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.5rem,4vw,4rem);
  line-height:1.05;
  text-transform:uppercase;
}
.pyro-event-archive-link {
  font-weight:800;
  margin-top:.4rem;
}
.pyro-event-archive-empty {
  font-size:1.2rem;
  padding:2rem 0;
}
@media (max-width: 980px) {
  .pyro-event-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .pyro-event-archive-hero-inner,
  .pyro-event-archive-inner { width:min(100% - 2rem,1280px); }
  .pyro-event-archive-hero { padding-top:6.5rem; }
  .pyro-event-archive-grid { grid-template-columns:1fr; }
  .pyro-event-archive-card { min-height:440px; }
  .pyro-event-archive-logo { max-height:150px; }
}


/* v1.4.4 — archive width and grid placement fix only */
body.post-type-archive-pyro_event .wp-block-shortcode {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
body.post-type-archive-pyro_event .wp-block-shortcode > .pyro-event-archive-list {
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
body.post-type-archive-pyro_event .pyro-event-archive-inner {
  width:min(1280px, calc(100% - 3rem));
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}
body.post-type-archive-pyro_event .pyro-event-archive-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  grid-auto-flow:row !important;
  align-items:stretch;
  gap:1.5rem !important;
}
body.post-type-archive-pyro_event .pyro-event-archive-card {
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  grid-column:auto !important;
  grid-row:auto !important;
  box-sizing:border-box;
}
@media (max-width: 980px) {
  body.post-type-archive-pyro_event .pyro-event-archive-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width: 680px) {
  body.post-type-archive-pyro_event .pyro-event-archive-inner {
    width:min(100% - 2rem,1280px);
  }
  body.post-type-archive-pyro_event .pyro-event-archive-grid {
    grid-template-columns:1fr !important;
  }
}


/* v1.4.5 — definitive Evenemang archive layout fix.
   Direct class selectors, no dependency on body classes or block width. */
.pyro-event-archive-list {
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  box-sizing:border-box !important;
}
.pyro-event-archive-list > .pyro-event-archive-inner,
.pyro-event-archive-inner {
  width:min(1280px, calc(100vw - 3rem)) !important;
  max-width:1280px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
.pyro-event-archive-grid {
  display:flex !important;
  flex-flow:row wrap !important;
  justify-content:flex-start !important;
  align-items:stretch !important;
  gap:1.5rem !important;
  width:100% !important;
}
.pyro-event-archive-grid > .pyro-event-archive-card {
  flex:0 0 calc((100% - 3rem) / 3) !important;
  width:calc((100% - 3rem) / 3) !important;
  max-width:calc((100% - 3rem) / 3) !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  margin:0 !important;
}
@media (max-width: 980px) {
  .pyro-event-archive-grid > .pyro-event-archive-card {
    flex-basis:calc((100% - 1.5rem) / 2) !important;
    width:calc((100% - 1.5rem) / 2) !important;
    max-width:calc((100% - 1.5rem) / 2) !important;
  }
}
@media (max-width: 680px) {
  .pyro-event-archive-list > .pyro-event-archive-inner,
  .pyro-event-archive-inner {
    width:min(100vw - 2rem, 1280px) !important;
  }
  .pyro-event-archive-grid > .pyro-event-archive-card {
    flex-basis:100% !important;
    width:100% !important;
    max-width:100% !important;
  }
}


/* v1.4.6 — Evenemang archive: explicit row wrappers.
   Each set of three events is a real row, preventing mosaic placement. */
.pyro-event-archive-rows {
  display:flex !important;
  flex-direction:column !important;
  gap:1.5rem !important;
  width:100% !important;
}
.pyro-event-archive-row {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:1.5rem !important;
  width:100% !important;
  align-items:stretch !important;
}
.pyro-event-archive-row > .pyro-event-archive-card {
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}
@media (max-width:980px) {
  .pyro-event-archive-row {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:680px) {
  .pyro-event-archive-row {
    grid-template-columns:1fr !important;
  }
}


/* v1.4.7 — flatten archive row wrappers into one predictable grid.
   This deliberately ignores the row wrappers generated by the plugin so
   event 1–3 always occupy row one and event 4 starts at column one of row two. */
.pyro-event-archive-rows {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  grid-auto-flow:row !important;
  gap:1.5rem !important;
  width:100% !important;
  align-items:stretch !important;
}
.pyro-event-archive-row {
  display:contents !important;
}
.pyro-event-archive-rows .pyro-event-archive-card {
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
@media (max-width:980px) {
  .pyro-event-archive-rows {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:680px) {
  .pyro-event-archive-rows {
    grid-template-columns:1fr !important;
  }
}


/* v1.5.1 — extra vertical air for Swedish diacritics on homepage display headings */
.pyro-home-intro .pyro-home-overline {
  margin-bottom: 1.1rem;
}
.pyro-home-intro h2 {
  line-height: 1.18;
}
.pyro-home-business .pyro-home-overline {
  margin-bottom: 1.15rem;
}
.pyro-home-business h2 {
  line-height: 1.22;
}
@media (max-width: 620px) {
  .pyro-home-intro h2 { line-height: 1.16; }
  .pyro-home-business h2 { line-height: 1.18; }
}


/* v1.6.0 — core content pages */
.pyro-page-wide {
  width:min(1280px, calc(100vw - 3rem));
  max-width:1280px;
  margin-left:50%;
  transform:translateX(-50%);
  box-sizing:border-box;
}
.pyro-page-kicker {
  margin:0 0 .8rem;
  font-size:.78rem;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.pyro-page-lead {
  max-width:900px;
  margin:0 0 1.35rem;
  font-size:clamp(1.35rem,2.5vw,2.15rem);
  line-height:1.48;
}
.pyro-page-copy {
  max-width:900px;
  font-size:1.06rem;
  line-height:1.7;
}
.pyro-page-display {
  margin:0 0 1.3rem;
  font-family:Anton,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  font-size:clamp(3.4rem,7vw,7rem);
  font-weight:400;
  line-height:1.12;
  text-transform:uppercase;
}
.pyro-page-section {
  padding:clamp(2.5rem,6vw,5rem) 0;
}
.pyro-page-section + .pyro-page-section {
  border-top:1px solid rgba(0,0,0,.14);
}
.pyro-page-cta {
  margin-top:clamp(3rem,7vw,6rem);
  padding:clamp(2.5rem,6vw,5rem);
  background:#090909;
  color:#fff;
}
.pyro-page-cta h2 {
  margin:0 0 1rem;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.8rem,5vw,5rem);
  line-height:1.14;
  font-weight:400;
  text-transform:uppercase;
}
.pyro-page-cta p { max-width:760px; line-height:1.65; }
.pyro-page-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:1rem;
  min-height:52px;
  padding:.9rem 1.35rem;
  background:#fff;
  color:#090909 !important;
  border:1px solid #fff;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none !important;
}
.pyro-page-action:hover { transform:translateY(-2px); }

/* Concept portfolio */
.pyro-concept-detail-list {
  width:min(1280px, calc(100vw - 3rem));
  margin:clamp(3rem,7vw,6rem) 0 0 50%;
  transform:translateX(-50%);
  display:grid;
  gap:1.25rem;
}
.pyro-concept-detail {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  min-height:430px;
  background:#090909;
  color:#fff;
  overflow:hidden;
}
.pyro-concept-detail:nth-child(even) { grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr); }
.pyro-concept-detail:nth-child(even) .pyro-concept-detail-media { order:2; }
.pyro-concept-detail-media {
  min-height:430px;
  position:relative;
  background-position:center;
  background-size:cover;
}
.pyro-concept-detail-media::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.45));
}
.pyro-concept-detail-logo {
  position:absolute;
  z-index:2;
  left:clamp(1.25rem,3vw,2.25rem);
  bottom:clamp(1.25rem,3vw,2.25rem);
  max-width:min(62%,340px);
  max-height:150px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 5px 20px rgba(0,0,0,.4));
}
.pyro-concept-detail-body {
  padding:clamp(2rem,5vw,4.5rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.pyro-concept-detail-body h2 {
  margin:0 0 1rem;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.8rem,5vw,5rem);
  line-height:1.1;
  font-weight:400;
  text-transform:uppercase;
}
.pyro-concept-detail-body p { margin:0; font-size:1.08rem; line-height:1.65; }
.pyro-concept-nitti { background-image:url('assets/images/concept-nitti.jpg'); background-position:center 22%; }
.pyro-concept-sjodagarna { background-image:url('assets/images/concept-sjodagarna.jpg'); background-position:center 48%; }
.pyro-concept-disco { background-image:url('assets/images/event-party.jpg'); }
.pyro-concept-metal { background-image:url('assets/images/event-metal.jpg'); }
.pyro-concept-kidz { background-image:url('assets/images/concept-kidz.jpg'); background-position:center 20%; }

/* Service pages */
.pyro-service-split {
  width:min(1280px, calc(100vw - 3rem));
  margin:clamp(2.5rem,6vw,5rem) 0 0 50%;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.pyro-service-card {
  min-height:330px;
  padding:clamp(2rem,5vw,4rem);
  border:1px solid rgba(0,0,0,.16);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.pyro-service-card.dark { background:#090909; color:#fff; border-color:#090909; }
.pyro-service-card h2,
.pyro-service-card h3 {
  margin:0 0 1rem;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.4rem,4vw,4.2rem);
  line-height:1.13;
  font-weight:400;
  text-transform:uppercase;
}
.pyro-service-card p { margin:.35rem 0; line-height:1.65; }
.pyro-service-visual {
  width:min(1280px, calc(100vw - 3rem));
  margin:clamp(2.5rem,6vw,5rem) 0 0 50%;
  transform:translateX(-50%);
  min-height:430px;
  background:center/cover no-repeat;
  box-shadow:var(--pyro-shadow);
}
.pyro-private-visual { background-image:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.25)),url('assets/images/crowd.jpg'); }
.pyro-rental-list {
  width:min(1080px, calc(100vw - 3rem));
  margin:clamp(2.5rem,6vw,4.5rem) 0 0 50%;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.pyro-rental-item {
  min-height:150px;
  padding:1.6rem;
  border-top:4px solid #090909;
  background:#fff;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(1.7rem,2.8vw,2.7rem);
  line-height:1.15;
  text-transform:uppercase;
}

/* Contact */
.pyro-contact-grid {
  width:min(1080px, calc(100vw - 3rem));
  margin:clamp(2.5rem,6vw,5rem) 0 0 50%;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.pyro-contact-card {
  min-height:240px;
  padding:clamp(2rem,5vw,3.5rem);
  border:1px solid rgba(0,0,0,.16);
}
.pyro-contact-card.dark { background:#090909; color:#fff; border-color:#090909; }
.pyro-contact-card h2 {
  margin:0 0 1rem;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.4rem,4vw,4rem);
  line-height:1.12;
  font-weight:400;
  text-transform:uppercase;
}
.pyro-contact-card p { margin:.4rem 0; font-size:1.08rem; line-height:1.6; }
.pyro-contact-card a { color:inherit; font-weight:800; }
.pyro-contact-company {
  width:min(1080px, calc(100vw - 3rem));
  margin:1rem 0 0 50%;
  transform:translateX(-50%);
  padding:clamp(2rem,5vw,3.5rem);
  background:#f5f1ea;
  border:1px solid rgba(0,0,0,.12);
}
.pyro-contact-company h2 {
  margin:0 0 1rem;
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(2.3rem,4vw,3.8rem);
  line-height:1.12;
  font-weight:400;
  text-transform:uppercase;
}

@media (max-width: 900px) {
  .pyro-concept-detail,
  .pyro-concept-detail:nth-child(even) { grid-template-columns:1fr; }
  .pyro-concept-detail:nth-child(even) .pyro-concept-detail-media { order:0; }
  .pyro-concept-detail-media { min-height:360px; }
  .pyro-service-split,
  .pyro-contact-grid { grid-template-columns:1fr; }
  .pyro-rental-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .pyro-page-wide,
  .pyro-concept-detail-list,
  .pyro-service-split,
  .pyro-service-visual,
  .pyro-rental-list,
  .pyro-contact-grid,
  .pyro-contact-company { width:min(100vw - 2rem,1280px); }
  .pyro-page-display { font-size:clamp(3rem,15vw,5.2rem); }
  .pyro-page-cta { padding:2rem 1.35rem; }
  .pyro-concept-detail-media { min-height:300px; }
  .pyro-rental-list { grid-template-columns:1fr; }
}


/* v1.6.1 — robust inner-page layout
   No viewport-width breakout tricks: all page content uses normal centered containers,
   so browser zoom and narrower desktop viewports cannot push copy off-screen. */
.pyro-page-main {
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
.pyro-page-main .wp-block-post-content,
.pyro-page-content {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box;
}

/* Page hero */
.pyro-page-hero {
  padding:clamp(5.5rem,9vw,8.5rem) 0 clamp(2.75rem,5vw,4.5rem) !important;
}
.pyro-page-hero > .wp-block-post-title,
.pyro-page-title {
  width:min(1180px, calc(100% - 3rem));
  max-width:1180px;
  margin:0 auto !important;
  font-family:Anton,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;
  font-size:clamp(3.4rem,8vw,7.8rem) !important;
  line-height:1.08 !important;
  letter-spacing:-.01em;
  text-transform:uppercase;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  box-sizing:border-box;
}

/* Shared centered containers */
.pyro-page-wide,
.pyro-concept-detail-list,
.pyro-service-split,
.pyro-service-visual,
.pyro-rental-list,
.pyro-contact-grid,
.pyro-contact-company {
  width:min(1180px, calc(100% - 3rem)) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  transform:none !important;
  box-sizing:border-box !important;
}

.pyro-page-section {
  padding:clamp(3.25rem,6vw,5.75rem) 0;
}
.pyro-page-kicker {
  margin-bottom:1rem;
}
.pyro-page-display {
  max-width:16ch;
  margin:0 0 1.5rem;
  font-size:clamp(3rem,6vw,6.2rem);
  line-height:1.16;
  letter-spacing:-.005em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.pyro-page-lead {
  max-width:780px;
  font-size:clamp(1.3rem,2.15vw,2rem);
  line-height:1.5;
}
.pyro-page-copy {
  max-width:760px;
  font-size:1.05rem;
  line-height:1.72;
}
.pyro-page-copy p,
.pyro-page-lead,
.pyro-page-cta p,
.pyro-concept-detail-body p,
.pyro-service-card p,
.pyro-contact-card p,
.pyro-contact-company p {
  overflow-wrap:break-word;
}

/* Keep CTA blocks aligned with page content, without horizontal breakout. */
.pyro-page-cta {
  margin-top:clamp(2.75rem,6vw,5rem);
  padding:clamp(2rem,5vw,4rem);
}
.pyro-page-cta h2 {
  max-width:18ch;
  font-size:clamp(2.5rem,4.5vw,4.7rem);
  line-height:1.16;
  text-wrap:balance;
}

/* Portfolio/detail cards */
.pyro-concept-detail-list {
  margin-top:clamp(2rem,5vw,4.5rem) !important;
}
.pyro-concept-detail {
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  min-width:0;
}
.pyro-concept-detail:nth-child(even) {
  grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);
}
.pyro-concept-detail-body,
.pyro-concept-detail-media {
  min-width:0;
}
.pyro-concept-detail-body h2 {
  font-size:clamp(2.5rem,4.5vw,4.6rem);
  line-height:1.14;
  text-wrap:balance;
}

/* Service / rental / contact pages */
.pyro-service-split,
.pyro-service-visual,
.pyro-rental-list,
.pyro-contact-grid {
  margin-top:clamp(2rem,5vw,4rem) !important;
}
.pyro-service-card h2,
.pyro-service-card h3,
.pyro-contact-card h2,
.pyro-contact-company h2 {
  line-height:1.16;
  text-wrap:balance;
}
.pyro-rental-list {
  width:min(1080px, calc(100% - 3rem)) !important;
  max-width:1080px !important;
}
.pyro-contact-grid,
.pyro-contact-company {
  width:min(1080px, calc(100% - 3rem)) !important;
  max-width:1080px !important;
}

/* Zoom-safe breakpoints. At browser zoom these trigger naturally as CSS viewport shrinks. */
@media (max-width: 1050px) {
  .pyro-page-hero > .wp-block-post-title,
  .pyro-page-title,
  .pyro-page-wide,
  .pyro-concept-detail-list,
  .pyro-service-split,
  .pyro-service-visual,
  .pyro-rental-list,
  .pyro-contact-grid,
  .pyro-contact-company {
    width:min(100% - 2.5rem, 1180px) !important;
  }
  .pyro-page-title {
    font-size:clamp(3.2rem,9vw,6.5rem) !important;
  }
  .pyro-concept-detail,
  .pyro-concept-detail:nth-child(even) {
    grid-template-columns:1fr;
  }
  .pyro-concept-detail:nth-child(even) .pyro-concept-detail-media {
    order:0;
  }
  .pyro-service-split,
  .pyro-contact-grid {
    grid-template-columns:1fr;
  }
}
@media (max-width: 760px) {
  .pyro-page-hero {
    padding-top:5.75rem !important;
    padding-bottom:2.5rem !important;
  }
  .pyro-page-hero > .wp-block-post-title,
  .pyro-page-title,
  .pyro-page-wide,
  .pyro-concept-detail-list,
  .pyro-service-split,
  .pyro-service-visual,
  .pyro-rental-list,
  .pyro-contact-grid,
  .pyro-contact-company {
    width:calc(100% - 2rem) !important;
  }
  .pyro-page-title {
    font-size:clamp(3rem,15vw,5.2rem) !important;
    line-height:1.07 !important;
  }
  .pyro-page-display {
    max-width:none;
    font-size:clamp(2.8rem,12vw,4.7rem);
    line-height:1.12;
  }
  .pyro-page-section {
    padding:3rem 0;
  }
  .pyro-page-lead {
    font-size:clamp(1.2rem,5vw,1.55rem);
  }
  .pyro-rental-list {
    grid-template-columns:1fr;
  }
  .pyro-concept-detail-media,
  .pyro-service-visual {
    min-height:280px;
  }
}


/* v1.6.3 — mobile service-card spacing only */
@media (max-width: 760px) {
  .pyro-service-split .pyro-service-card {
    min-height: 0 !important;
    padding: 1.75rem 1.5rem !important;
    justify-content: flex-start !important;
  }
  .pyro-service-split .pyro-service-card h2,
  .pyro-service-split .pyro-service-card h3 {
    margin-bottom: .9rem;
  }
  .pyro-service-split .pyro-service-card p:last-child {
    margin-bottom: 0;
  }
}


/* v1.6.4 — mobile company service cards: content-height cards, no vertical centering */
@media (max-width: 760px) {
  .pyro-service-split {
    align-items: start !important;
    grid-auto-rows: auto !important;
  }
  .pyro-service-split > .pyro-service-card,
  .pyro-service-split > section.pyro-service-card,
  .pyro-service-card,
  .pyro-service-card.dark {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    align-self: start !important;
    padding: 1.5rem !important;
    box-sizing: border-box !important;
  }
  .pyro-service-card h2,
  .pyro-service-card h3 {
    margin: 0 0 .85rem !important;
  }
  .pyro-service-card p {
    margin: 0 !important;
  }
}


/* v1.6.5 — upcoming events moved near page end and visually de-emphasized */
.pyro-home-events {
  background:#f5f1ea;
  color:#111;
  padding:clamp(3rem,5vw,4.5rem) 0 !important;
  border-top:1px solid rgba(0,0,0,.08);
}
.pyro-home-events .pyro-home-section-head {
  margin-bottom:1.4rem;
  align-items:flex-end;
}
.pyro-home-events .pyro-home-section-head h2 {
  font-size:clamp(2.35rem,3.8vw,3.9rem) !important;
  line-height:1.08 !important;
}
.pyro-home-events .pyro-home-overline {
  margin-bottom:.55rem;
}
.pyro-home-events .pyro-home-section-link {
  font-size:.9rem;
  font-weight:800;
}
.pyro-home-events .pyro-home-event-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:1rem !important;
  width:100% !important;
}
.pyro-home-events .pyro-home-event-card,
.pyro-home-events .pyro-home-event-card-dynamic {
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:360px !important;
  height:auto !important;
  flex:none !important;
  padding:1.2rem !important;
  box-shadow:0 12px 32px rgba(0,0,0,.10) !important;
}
.pyro-home-events .pyro-home-card-logo-img {
  max-width:min(78%,300px);
  max-height:120px;
  margin:.45rem 0 .65rem;
}
.pyro-home-events .pyro-home-card-label {
  font-size:.68rem;
}
.pyro-home-events .pyro-home-card-link {
  font-size:.9rem;
}

@media (max-width:900px) {
  .pyro-home-events .pyro-home-event-grid {
    grid-template-columns:1fr !important;
    gap:.9rem !important;
  }
  .pyro-home-events .pyro-home-event-card,
  .pyro-home-events .pyro-home-event-card-dynamic {
    min-height:330px !important;
  }
}

@media (max-width:620px) {
  /* Headline keeps normal page margin; image cards deliberately run edge to edge. */
  .pyro-events-host,
  .pyro-events-host > .wp-block-shortcode,
  .pyro-events-host .wp-block-shortcode,
  .pyro-home-events {
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .pyro-home-events .pyro-home-inner,
  .pyro-events-host .pyro-home-events .pyro-home-inner {
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
  }
  .pyro-home-events .pyro-home-section-head {
    width:calc(100% - 2rem) !important;
    margin:0 auto 1.2rem !important;
    align-items:flex-start !important;
    gap:.75rem !important;
  }
  .pyro-home-events .pyro-home-section-head h2 {
    font-size:clamp(2.3rem,11vw,3.5rem) !important;
    line-height:1.08 !important;
  }
  .pyro-home-events .pyro-home-event-grid {
    width:100% !important;
    margin:0 !important;
    gap:.65rem !important;
  }
  .pyro-home-events .pyro-home-event-card,
  .pyro-home-events .pyro-home-event-card-dynamic {
    width:100% !important;
    min-height:340px !important;
    margin:0 !important;
    padding:1.15rem 1rem !important;
    box-shadow:none !important;
    background-position:center center !important;
  }
  .pyro-home-events .pyro-home-card-logo-img {
    max-width:min(78%,280px);
    max-height:115px;
  }
}


/* v1.6.6 — homepage cleanup and concept logos */
.pyro-home-concept-card,
.pyro-concept-tile {
  position: relative;
  isolation: isolate;
}

.pyro-home-concept-card {
  padding-top: 4.6rem;
}
.pyro-home-concept-logo,
.pyro-concept-tile-logo {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  display: block;
  width: auto;
  height: auto;
  max-width: 150px;
  max-height: 62px;
  object-fit: contain;
  object-position: left top;
  filter: drop-shadow(0 4px 16px rgba(0,0,0,.35));
}
.pyro-home-concept-logo-sjodagarna,
.pyro-concept-tile-logo-sjodagarna {
  max-width: 165px;
  max-height: 54px;
}
.pyro-home-concept-logo-metal,
.pyro-concept-tile-logo-metal {
  max-width: 138px;
  max-height: 70px;
}
.pyro-home-concept-logo-kidz,
.pyro-concept-tile-logo-kidz {
  max-width: 142px;
  max-height: 66px;
}

.pyro-concept-tile {
  padding-top: 4.4rem;
}
.pyro-concept-tile.pyro-concept-featured {
  padding-top: 4.8rem;
}

/* Existing concept detail page: move logos to the upper-left corner and reduce size */
.pyro-concept-detail-logo {
  top: clamp(1rem, 2.2vw, 1.6rem);
  left: clamp(1rem, 2.2vw, 1.6rem);
  bottom: auto;
  max-width: min(42%, 180px);
  max-height: 78px;
}

@media (max-width: 900px) {
  .pyro-home-concept-logo,
  .pyro-concept-tile-logo {
    max-width: 140px;
    max-height: 58px;
  }
  .pyro-home-concept-logo-sjodagarna,
  .pyro-concept-tile-logo-sjodagarna {
    max-width: 150px;
    max-height: 50px;
  }
  .pyro-home-concept-card,
  .pyro-concept-tile,
  .pyro-concept-tile.pyro-concept-featured {
    padding-top: 4.2rem;
  }
}

@media (max-width: 620px) {
  .pyro-home-concept-logo,
  .pyro-concept-tile-logo {
    top: .9rem;
    left: .9rem;
    max-width: 132px;
    max-height: 52px;
  }
  .pyro-home-concept-logo-sjodagarna,
  .pyro-concept-tile-logo-sjodagarna {
    max-width: 140px;
    max-height: 46px;
  }
  .pyro-home-concept-logo-metal,
  .pyro-concept-tile-logo-metal {
    max-width: 126px;
    max-height: 60px;
  }
  .pyro-home-concept-logo-kidz,
  .pyro-concept-tile-logo-kidz {
    max-width: 128px;
    max-height: 58px;
  }
  .pyro-home-concept-card,
  .pyro-concept-tile,
  .pyro-concept-tile.pyro-concept-featured {
    padding-top: 4rem;
  }
  .pyro-concept-detail-logo {
    max-width: min(46%, 150px);
    max-height: 64px;
  }
}
