/* EventKoi – Single · komplett stilark. Bygget for Elementor Atomic Elements.
   Klassenavn er byggerverktoy-uavhengige (BEM) og kan gjenbrukes i Bricks. */

.ek-single,
.ek-details {
  --ek-ink: #22201d;
  --ek-body: #33302c;
  --ek-muted: #6d675f;
  --ek-faint: #8b857c;
  --ek-line: #e0dbd4;
  --ek-paper: #fbfaf8;
  --ek-tint: #f2efe9;
  --ek-accent: #8a5a4e;
  --ek-alert: #b4603f;
  --ek-invert: #f0e7df;
  --ek-font-head: "Jost", system-ui, sans-serif;
  --ek-font-body: "Karla", system-ui, sans-serif;
  --ek-gutter: 56px;
  --ek-max: 1168px;
  --ek-aside: 380px;
}

.ek-single {
  font-family: var(--ek-font-body);
  color: var(--ek-body);
  background: var(--ek-paper);
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* Hero */
.ek-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--ek-ink);
  min-height: 420px;
}

.ek-hero__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
  padding: 64px var(--ek-gutter);
}

.ek-hero__chips { display: flex; flex-wrap: wrap; gap: 8px; }

.ek-chip {
  font-family: var(--ek-font-body);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #e6d9cf;
  border: 1px solid #55504a;
  border-radius: 999px;
  padding: 5px 12px;
  margin: 0;
}

.ek-hero__title {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: clamp(30px, 3.4vw, 42px);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--ek-paper);
  max-width: 18ch;
  margin: 0;
}

.ek-hero__datetime {
  font-family: var(--ek-font-head);
  font-size: 20px;
  color: var(--ek-invert);
  margin: 0;
}

.ek-hero__sub { font-size: 14px; color: #a49c92; margin: 0; }

.ek-hero__media { position: relative; overflow: hidden; min-height: 320px; }
.ek-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Hovedoppsett */
.ek-main {
  display: grid;
  grid-template-columns: 1fr var(--ek-aside);
  gap: 64px;
  max-width: var(--ek-max);
  width: 100%;
  margin: 0 auto;
  padding: 64px var(--ek-gutter) 72px;
  box-sizing: border-box;
}

.ek-content { min-width: 0; }

.ek-aside {
  display: flex;
  flex-direction: column;
  gap: 28px;
  align-self: start;
  position: sticky;
  top: 88px;
}

/* Paameldingskort */
.ek-card {
  border: 1px solid #ddd7cf;
  background: #fff;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.ek-card__head { display: flex; align-items: center; gap: 16px; }

.ek-card__date {
  width: 64px;
  height: 64px;
  flex: none;
  border: 1px solid #ddd7cf;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.ek-card__day { font-family: var(--ek-font-head); font-size: 24px; line-height: 1; color: var(--ek-ink); margin: 0; }
.ek-card__month { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ek-faint); margin: 0; }
.ek-card__when { font-family: var(--ek-font-head); font-size: 17px; color: var(--ek-ink); margin: 0; }
.ek-card__tz { font-size: 13px; color: var(--ek-faint); margin: 0; }
.ek-card__rule { border: 0; border-top: 1px solid #eeebe5; margin: 0; width: 100%; }
.ek-card__price { font-family: var(--ek-font-head); font-size: 32px; line-height: 1.1; color: var(--ek-ink); margin: 0; }
.ek-card__price-note { font-size: 14px; color: var(--ek-faint); margin: 0; }

.ek-card__stock { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ek-accent); margin: 0; }
.ek-card__stock-count::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 999px; background: var(--ek-alert); margin-right: 7px; vertical-align: middle; }

.ek-card__actions { display: flex; flex-direction: column; gap: 10px; }
.ek-card__fineprint { font-size: 13px; line-height: 1.6; color: var(--ek-faint); margin: 0; }

/* Knapper */
.ek-btn {
  display: block;
  width: 100%;
  text-align: center;
  font-family: var(--ek-font-head);
  letter-spacing: 0.06em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ek-btn--primary { background: var(--ek-ink); color: var(--ek-paper); padding: 17px 20px; font-size: 16px; border: 1px solid var(--ek-ink); }
.ek-btn--primary:hover { background: #3b3630; border-color: #3b3630; color: #fff; }

.ek-btn--ghost { background: transparent; border: 1px solid #ddd7cf; color: var(--ek-body); padding: 15px 20px; font-size: 15px; letter-spacing: 0.04em; }
.ek-btn--ghost:hover { border-color: var(--ek-ink); color: var(--ek-ink); }

.ek-btn--outline { background: transparent; border: 1px solid var(--ek-ink); color: var(--ek-ink); padding: 14px 26px; font-size: 15px; letter-spacing: 0.04em; white-space: nowrap; width: auto; }
.ek-btn--outline:hover { background: var(--ek-ink); color: var(--ek-paper); }

/* Blokker i sidekolonnen */
.ek-block {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 28px;
  border-top: 1px solid #e7e3dd;
}

.ek-block__label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ek-faint); margin: 0; }

.ek-place__name { font-family: var(--ek-font-head); font-size: 22px; color: var(--ek-ink); margin: 0; }
.ek-place__address { font-size: 15px; line-height: 1.6; color: #5f5a53; margin: 0; }

.ek-map { position: relative; min-height: 190px; background: var(--ek-tint); overflow: hidden; }
.ek-map iframe, .ek-map img { width: 100%; height: 190px; border: 0; display: block; }

/* Flere datoer i serien */
.ek-dates { display: flex; flex-direction: column; gap: 8px; }

.ek-dates__item {
  border: 1px solid var(--ek-line);
  background: #fff;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-decoration: none;
}

.ek-dates__item:hover { border-color: var(--ek-ink); }
.ek-dates__date { font-family: var(--ek-font-head); font-size: 15px; letter-spacing: 0.04em; color: var(--ek-ink); margin: 0; }
.ek-dates__time { font-size: 13px; color: var(--ek-muted); margin: 0; }
.ek-dates__stock { font-size: 12px; color: var(--ek-accent); white-space: nowrap; margin: 0; }

/* Serie-banner */
.ek-series {
  background: var(--ek-tint);
  padding: 36px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: var(--ek-max);
  width: 100%;
  margin: 0 auto 64px;
  box-sizing: border-box;
}

.ek-series__title { font-family: var(--ek-font-head); font-size: 22px; color: var(--ek-ink); margin: 0 0 6px; }
.ek-series__meta { font-size: 15px; color: #5f5a53; margin: 0; }

/* Event Details */
.ek-details {
  font-family: var(--ek-font-body);
  font-size: 18px;
  line-height: 1.75;
  color: var(--ek-body);
  max-width: 68ch;
  text-wrap: pretty;
}

.ek-details .ek-h2,
.ek-details h2 {
  font-family: var(--ek-font-head);
  font-weight: 500;
  font-size: clamp(22px, 1.9vw, 27px);
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--ek-ink);
  margin: 2.6em 0 0.7em;
}

.ek-details > :first-child { margin-top: 0; }

.ek-details .ek-h3,
.ek-details h3 {
  font-family: var(--ek-font-head);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.35;
  color: var(--ek-ink);
  margin: 2em 0 0.6em;
}

.ek-details .ek-h4,
.ek-details h4 {
  font-family: var(--ek-font-head);
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.02em;
  color: var(--ek-ink);
  margin: 1.6em 0 0.4em;
}

.ek-details .ek-p,
.ek-details p { margin: 0 0 1.15em; }

.ek-details .ek-lede {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: 21px;
  line-height: 1.55;
  color: var(--ek-ink);
  margin: 0 0 1.6em;
}

.ek-details a { color: var(--ek-accent); text-decoration: underline; text-underline-offset: 3px; }
.ek-details a:hover { color: #5c3a31; }
.ek-details strong { font-weight: 600; color: var(--ek-ink); }

.ek-details .ek-list,
.ek-details ul {
  list-style: none;
  padding: 0;
  margin: 1.2em 0 1.6em;
  display: grid;
  gap: 0.5em;
}

.ek-details .ek-list li,
.ek-details ul li { position: relative; padding-left: 1.7em; }

.ek-details .ek-list li::before,
.ek-details ul li::before {
  content: "";
  position: absolute;
  left: 0.1em;
  top: 0.85em;
  width: 0.7em;
  height: 1px;
  background: var(--ek-accent);
}

.ek-details .ek-list--check li::before {
  content: "\2713";
  top: 0;
  width: auto;
  height: auto;
  background: none;
  color: var(--ek-accent);
  font-size: 0.95em;
  line-height: 1.75;
}


.ek-details ol { padding-left: 1.4em; margin: 1.2em 0 1.6em; display: grid; gap: 0.4em; }

.ek-details .ek-callout { background: var(--ek-tint); padding: 34px 38px; margin: 2.4em 0; }

.ek-details .ek-callout__title,
.ek-details .ek-callout h2,
.ek-details .ek-callout h3 { margin-top: 0; font-size: 22px; }

.ek-details .ek-callout .ek-list,
.ek-details .ek-callout ul { margin-bottom: 0; }

.ek-details .ek-facts { margin: 1.4em 0 0; border-top: 1px solid var(--ek-line); }

.ek-details .ek-facts__row {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid var(--ek-line);
}

.ek-details .ek-facts__label {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ek-muted);
  line-height: 2.2;
}

.ek-details .ek-facts__value { margin: 0; color: var(--ek-body); }

.ek-details .ek-ask {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: 21px;
  line-height: 1.45;
  color: var(--ek-ink);
  border-top: 1px solid var(--ek-line);
  border-bottom: 1px solid var(--ek-line);
  padding: 30px 0;
  margin: 2.2em 0;
}

.ek-details .ek-close {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.55;
  color: var(--ek-ink);
  margin: 0;
}

.ek-details img { max-width: 100%; height: auto; display: block; margin: 1.6em 0; }

.ek-details blockquote {
  margin: 2em 0;
  padding: 24px 0;
  border-top: 1px solid var(--ek-line);
  border-bottom: 1px solid var(--ek-line);
  font-family: var(--ek-font-head);
  font-size: 21px;
  line-height: 1.45;
  color: var(--ek-ink);
}

/* Nettbrett og mobil */
@media (max-width: 1024px) {
  .ek-single, .ek-details { --ek-gutter: 40px; --ek-aside: 320px; }
  .ek-main { gap: 44px; }
}

@media (max-width: 880px) {
  .ek-hero { grid-template-columns: 1fr; }
  .ek-hero__media { min-height: 260px; order: -1; }
  .ek-hero__body { padding: 40px var(--ek-gutter); }
  .ek-main { grid-template-columns: 1fr; padding-top: 40px; }

  /* Losner opp sidekolonnen: paameldingsboksen foer teksten,
     resten av sidekolonnen (Sted, Kontakt, Andre datoer) etter. */
  .ek-aside { position: static; order: -1 !important; }
}

@media (max-width: 767px) {
  .ek-single, .ek-details { --ek-gutter: 24px; }
  .ek-details { font-size: 17px; max-width: none; }
  .ek-details .ek-lede { font-size: 19px; }
  .ek-details .ek-callout { padding: 26px 22px; }
  .ek-details .ek-facts__row { grid-template-columns: 1fr; gap: 2px; padding: 13px 0; }
  .ek-details .ek-facts__label { line-height: 1.8; }
  .ek-details .ek-ask { font-size: 20px; padding: 24px 0; }
  .ek-details .ek-close { font-size: 18px; }
  .ek-hero__datetime { font-size: 18px; }
  .ek-card { padding: 22px; }
  .ek-card__price { font-size: 28px; }
  .ek-series { flex-direction: column; align-items: flex-start; padding: 28px 24px; margin-bottom: 40px; }
}

@media print {
  .ek-aside, .ek-series, .ek-hero__media { display: none; }
  .ek-main { display: block; padding: 0; }
  .ek-hero { background: none; }
  .ek-hero__title, .ek-hero__datetime, .ek-hero__sub { color: #000; }
}

/* Elementor-wrappere rundt dynamisk HTML gjores gjennomsiktige */
.ek-content .elementor-widget-text-editor > .elementor-widget-container,
.ek-content .eventkoi-dynamic-tag,
.ek-map > .elementor-widget-container,
.ek-map .eventkoi-dynamic-tag { display: contents; }

/* Skjul tomme felter (kart av, ingen salgsfrist, ingen kapasitet) */
.ek-card__fineprint:empty,
.ek-card__stock:empty,
.ek-place__address:empty { display: none; }
.ek-map:not(:has(iframe)):not(:has(img)) { display: none; }
.ek-map iframe { width: 100%; height: 190px; border: 0; display: block; }

/* Shortcode-wrapperen i sidekolonnen gjores gjennomsiktig */
.ek-aside > .elementor-widget-shortcode,
.ek-aside .elementor-widget-shortcode > .elementor-widget-container,
.ek-aside .elementor-shortcode { display: contents; }


/* === ELEMENTOR-BRO ==========================================================
   Elementor v4 legger base-styles pa .elementor .e-div-block-base /
   .e-flexbox-base / .e-button-base / .e-divider-base (spesifisitet 0-2-0) som
   setter display, padding, min-width og flex-direction. Klassene under er
   doblet (.ek-x.ek-x) for a komme opp i 0-3-0 og vinne uavhengig av
   lasterekkefolge - Elementor laster base-arket senere inne i editoren enn pa
   frontend. Hele blokken er Elementor-kompensasjon og slettes ved overgang
   til Bricks.
   ========================================================================== */

.elementor .ek-single.e-flexbox-base,
.elementor .ek-single .e-div-block-base,
.elementor .ek-single .e-flexbox-base {
  padding: 0;
  min-width: 0;
}

.elementor .ek-single.ek-single { display: flex; flex-direction: column; }

.elementor .ek-hero.ek-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
}

.elementor .ek-hero__body.ek-hero__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px var(--ek-gutter);
}

.elementor .ek-hero__chips.ek-hero__chips { display: flex; flex-direction: row; flex-wrap: wrap; }
.elementor .ek-hero__when.ek-hero__when { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; }
.elementor .ek-hero__media.ek-hero__media { display: block; min-height: 320px; }

.elementor .ek-main.ek-main {
  display: grid;
  grid-template-columns: 1fr var(--ek-aside);
  padding: 64px var(--ek-gutter) 72px;
}

.elementor .ek-content.ek-content { display: block; min-width: 0; }

.elementor .ek-aside.ek-aside,
.elementor .ek-card__actions.ek-card__actions,
.elementor .ek-block.ek-block,
.elementor .ek-card__when-wrap.ek-card__when-wrap,
.elementor .ek-card__price-wrap.ek-card__price-wrap,
.elementor .ek-series__text.ek-series__text {
  display: flex;
  flex-direction: column;
}

.elementor .ek-card.ek-card {
  display: flex;
  flex-direction: column;
  padding: 28px;
}

.elementor .ek-card__head.ek-card__head { display: flex; flex-direction: row; align-items: center; }
.elementor .ek-card__date.ek-card__date { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.elementor .ek-block.ek-block { padding-top: 28px; }

.elementor .ek-card__whenrow.ek-card__whenrow,
.elementor .ek-card__price-row.ek-card__price-row,
.elementor .ek-card__stock.ek-card__stock {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  flex-wrap: wrap;
}

.elementor .ek-series.ek-series {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 36px 40px;
}

/* Knapper - overstyrer .e-button-base (bla bakgrunn, egne paddings) */
.elementor .ek-btn.ek-btn {
  display: block;
  width: 100%;
  border-radius: 0;
  border-width: 1px;
  border-style: solid;
  text-align: center;
}

.elementor .ek-btn--primary.ek-btn--primary {
  background-color: var(--ek-ink);
  border-color: var(--ek-ink);
  color: var(--ek-paper);
  padding: 17px 20px;
}

.elementor .ek-btn--primary.ek-btn--primary:hover {
  background-color: #3b3630;
  border-color: #3b3630;
}

.elementor .ek-btn--ghost.ek-btn--ghost {
  background-color: transparent;
  border-color: #ddd7cf;
  color: var(--ek-body);
  padding: 15px 20px;
}

.elementor .ek-btn--outline.ek-btn--outline {
  width: auto;
  background-color: transparent;
  border-color: var(--ek-ink);
  color: var(--ek-ink);
  padding: 14px 26px;
}

/* Skillelinje - .e-divider-base gir svart bakgrunn */
.elementor .ek-card__rule.ek-card__rule {
  height: 1px;
  background-color: #eeebe5;
  border: 0;
}

@media (max-width: 1024px) {
  .elementor .ek-single.ek-single { --ek-gutter: 40px; --ek-aside: 320px; }
}

@media (max-width: 880px) {
  .elementor .ek-hero.ek-hero { grid-template-columns: 1fr; }
  .elementor .ek-hero__body.ek-hero__body { padding: 40px var(--ek-gutter); }
  .elementor .ek-main.ek-main { grid-template-columns: 1fr; padding-top: 40px; }

  .elementor .ek-main .ek-aside.ek-aside { order: -1 !important; }
}

@media (max-width: 767px) {
  .elementor .ek-single.ek-single { --ek-gutter: 24px; }
  .elementor .ek-card.ek-card { padding: 22px; }
  .elementor .ek-series.ek-series { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
}
/* === BRO: GAP OG TYPOGRAFI =================================================
   Elementor setter gap pa .e-con-containere med hoyere spesifisitet enn
   klassene mine. Alle avstander mellom sosken settes derfor her, med doblet
   klassenavn. Slettes ved overgang til Bricks. Verdiene er de samme som i
   hoveddelen av arket.
   ========================================================================== */

.elementor .ek-single.ek-single { gap: 0; }
.elementor .ek-hero.ek-hero { gap: 0; }
.elementor .ek-hero__body.ek-hero__body { gap: 22px; }
.elementor .ek-hero__chips.ek-hero__chips { gap: 8px; }
.elementor .ek-hero__when.ek-hero__when { gap: 10px; }
.elementor .ek-main.ek-main { gap: 64px; }
.elementor .ek-aside.ek-aside { gap: 28px; }
.elementor .ek-card.ek-card { gap: 22px; }
.elementor .ek-card__head.ek-card__head { gap: 16px; }
.elementor .ek-card__date.ek-card__date { gap: 0; }
.elementor .ek-card__when-wrap.ek-card__when-wrap { gap: 3px; }
.elementor .ek-card__whenrow.ek-card__whenrow { gap: 7px; }
.elementor .ek-card__price-wrap.ek-card__price-wrap { gap: 8px; }
.elementor .ek-card__price-row.ek-card__price-row { gap: 8px; }
.elementor .ek-card__stock.ek-card__stock { gap: 5px; align-items: baseline; flex-wrap: nowrap; }
.elementor .ek-card__actions.ek-card__actions { gap: 10px; }
.elementor .ek-block.ek-block { gap: 14px; }
.elementor .ek-series.ek-series { gap: 32px; }
.elementor .ek-series__text.ek-series__text { gap: 6px; }

/* Ukedag i hero - skal se ut som datoen ved siden av */
.elementor .ek-hero__dayname.ek-hero__dayname {
  font-family: var(--ek-font-head);
  font-size: 20px;
  line-height: 1.4;
  font-weight: 400;
  color: var(--ek-invert);
  text-transform: capitalize;
  margin: 0;
  flex: none;
}

.elementor .ek-hero__datetime.ek-hero__datetime { line-height: 1.4; }

/* Ukedag i kortet */
.elementor .ek-card__whenrow.ek-card__whenrow .ek-card__when { line-height: 1.4; }

/* Plasser igjen - prikk og tall pa linje */
.elementor .ek-card__stock.ek-card__stock > p { margin: 0; }
.elementor .ek-card__stock-label.ek-card__stock-label { font-size: 14px; color: var(--ek-accent); }
.elementor .ek-card__stock-count.ek-card__stock-count { font-size: 14px; color: var(--ek-accent); margin: 0; }
/* === EVENT DETAILS UTEN KLASSER ============================================
   Alt under styles pa ren HTML-tag, slik at innhold limt inn i editoren uten
   klasser far riktig utseende. Klassene (.ek-h2, .ek-p, .ek-list ...) virker
   fortsatt og overstyrer der de finnes - de er valgfrie.

   Automatisk utledet:
     - forste avsnitt etter forste overskrift blir ingress
     - lister inne i en tonet boks far hake i stedet for strek
     - dl blir definisjonstabell (kursinformasjon)
     - siste avsnitt blir avslutning, nest siste blir uthevet sporsmal
   ========================================================================== */

.ek-details h2 {
  font-family: var(--ek-font-head);
  font-weight: 500;
  font-size: clamp(22px, 1.9vw, 27px);
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--ek-ink);
  margin: 2.6em 0 0.7em;
}

.ek-details h3 {
  font-family: var(--ek-font-head);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.35;
  color: var(--ek-ink);
  margin: 2em 0 0.6em;
}

.ek-details h4 {
  font-family: var(--ek-font-head);
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.02em;
  color: var(--ek-ink);
  margin: 1.6em 0 0.4em;
}

.ek-details h2:first-child,
.ek-details h3:first-child,
.ek-details > *:first-child { margin-top: 0; }

.ek-details p { margin: 0 0 1.15em; }

/* Ingress: forste avsnitt rett etter forste overskrift */
.ek-details h2:first-child + p,
.ek-details h3:first-child + p {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: 21px;
  line-height: 1.55;
  color: var(--ek-ink);
  margin-bottom: 1.6em;
}

/* Punktlister */
.ek-details ul {
  list-style: none;
  padding: 0;
  margin: 1.2em 0 1.6em;
  display: grid;
  gap: 0.5em;
}

.ek-details ul li { position: relative; padding-left: 1.7em; }

.ek-details ul li::before {
  content: "";
  position: absolute;
  left: 0.1em;
  top: 0.85em;
  width: 0.7em;
  height: 1px;
  background: var(--ek-accent);
}

.ek-details ol { padding-left: 1.4em; margin: 1.2em 0 1.6em; display: grid; gap: 0.4em; }

/* Tonet boks: en div med egen bakgrunn inne i innholdet */
.ek-details .ek-callout,
.ek-details > div:not([class]) {
  background: var(--ek-tint);
  padding: 34px 38px;
  margin: 2.4em 0;
}

.ek-details .ek-callout > :first-child,
.ek-details > div:not([class]) > :first-child { margin-top: 0; font-size: 22px; }

.ek-details .ek-callout > :last-child,
.ek-details > div:not([class]) > :last-child { margin-bottom: 0; }

/* Lister i den tonede boksen far hake */
.ek-details .ek-callout ul li::before,
.ek-details > div:not([class]) ul li::before {
  content: "\2713";
  top: 0;
  width: auto;
  height: auto;
  background: none;
  color: var(--ek-accent);
  font-size: 0.95em;
  line-height: 1.75;
}

/* Definisjonsliste: kursinformasjon */
.ek-details dl { margin: 1.4em 0 0; border-top: 1px solid var(--ek-line); }

.ek-details dl > div {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid var(--ek-line);
}

.ek-details dt {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ek-muted);
  line-height: 2.2;
}

.ek-details dd { margin: 0; color: var(--ek-body); }

/* Avslutning: nest siste avsnitt uthevet, siste i overskriftsfonten */
.ek-details p:nth-last-of-type(2) {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: 21px;
  line-height: 1.45;
  color: var(--ek-ink);
  border-top: 1px solid var(--ek-line);
  border-bottom: 1px solid var(--ek-line);
  padding: 30px 0;
  margin: 2.2em 0;
}

.ek-details p:last-of-type {
  font-family: var(--ek-font-head);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.55;
  color: var(--ek-ink);
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .ek-details h2:first-child + p { font-size: 19px; }
  .ek-details .ek-callout,
  .ek-details > div:not([class]) { padding: 26px 22px; }
  .ek-details dl > div { grid-template-columns: 1fr; gap: 2px; padding: 13px 0; }
  .ek-details dt { line-height: 1.8; }
  .ek-details p:nth-last-of-type(2) { font-size: 20px; padding: 24px 0; }
  .ek-details p:last-of-type { font-size: 18px; }
}
/* Postnummer og sted pa samme linje */
.ek-place__cityrow { display: flex; gap: 6px; }
.elementor .ek-place__cityrow.ek-place__cityrow { display: flex; flex-direction: row; gap: 6px; flex-wrap: wrap; }
.ek-place__cityrow > p:empty { display: none; }

/* Adresselinjene tettere sammen */
.elementor .ek-block.ek-block .ek-place__address { margin: 0; }
.elementor .ek-block.ek-block > .ek-place__address + .ek-place__cityrow { margin-top: -10px; }

/* Billettmodulen fra EventKoi */
.ek-rsvp > .elementor-widget-container,
.ek-rsvp .eventkoi-dynamic-tag { display: contents; }
.ek-card__actions .ek-rsvp:not(:has(.eventkoi-tickets > *)) { display: none; }


/* === BILLETTMODULEN ========================================================
   EventKoi rendrer billettvalg og kjopsknapp i #eventkoi-tickets-<id>.
   Merk: deres Tailwind-bygg bruker important: true, sa hver utility-regel har
   !important. Spesifisitet holder ikke - overstyringene under ma derfor ogsa
   ha !important. Det er ikke pynt, det er eneste vei rundt.

   Stabile navn er bare .eventkoi-tickets og .eventkoi-tickets__sale-window.
   Resten treffes pa struktur. Sjekk blokken etter EventKoi-oppdateringer.
   ========================================================================== */

/* Modulens egen kortflate fjernes - den ligger allerede inne i .ek-card.
   Varselbokser (amber) beholder sin farge. */
.ek-card .eventkoi-tickets div:not([class*="amber"]) {
  background-color: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border-width: 0 !important;
}

.ek-card .eventkoi-tickets > div,
.ek-card .eventkoi-tickets > div > div:not([class*="amber"]) {
  padding: 0 !important;
}

.ek-card .eventkoi-tickets > div > div { gap: 14px !important; }

/* "TICKETS"-etiketten */
.ek-card .eventkoi-tickets .flex.items-center.justify-between > div:first-child {
  font-family: var(--ek-font-body) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ek-faint) !important;
}

/* Prisen */
.ek-card .eventkoi-tickets .flex.items-center.justify-between > div:last-child {
  font-family: var(--ek-font-head) !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  color: var(--ek-ink) !important;
}

/* "2 tickets left" */
.ek-card .eventkoi-tickets .text-muted-foreground {
  font-family: var(--ek-font-body) !important;
  font-size: 14px !important;
  color: var(--ek-accent) !important;
}

.ek-card .eventkoi-tickets .text-muted-foreground:not(.eventkoi-tickets__sale-window) {
  display: inline-flex;
  align-items: center;
}

.ek-card .eventkoi-tickets .text-muted-foreground:not(.eventkoi-tickets__sale-window)::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--ek-alert);
  margin-right: 7px;
  flex: none;
}

.ek-card .eventkoi-tickets .eventkoi-tickets__sale-window {
  font-size: 13px !important;
  color: var(--ek-faint) !important;
}

/* Kjopsknappen far samme uttrykk som .ek-btn--primary.
   Avvisningsknappene i varselboksene har aria-label og holdes utenfor. */
.ek-card .eventkoi-tickets button:not([aria-label]) {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  padding: 17px 20px !important;
  border: 1px solid var(--ek-ink) !important;
  border-radius: 0 !important;
  background-color: var(--ek-ink) !important;
  color: var(--ek-paper) !important;
  font-family: var(--ek-font-head) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.ek-card .eventkoi-tickets button:not([aria-label]):hover:not(:disabled) {
  background-color: #3b3630 !important;
  border-color: #3b3630 !important;
}

.ek-card .eventkoi-tickets button:not([aria-label]):disabled {
  background-color: transparent !important;
  border-color: var(--ek-line) !important;
  color: var(--ek-faint) !important;
}

/* Ikonet i knappen fjernes - malen bruker ikke ikoner */
.ek-card .eventkoi-tickets button:not([aria-label]) svg { display: none !important; }

/* Skjul beholderen sa lenge modulen er tom */
.ek-card__actions .ek-rsvp:not(:has(.eventkoi-tickets > *)) { display: none; }
/* Kalenderknappen ligger i en shortcode - wrapperne gjores gjennomsiktige */
.ek-card__actions .elementor-widget-shortcode,
.ek-card__actions .elementor-widget-shortcode > .elementor-widget-container,
.ek-card__actions .elementor-shortcode { display: contents; }

/* Datoliste: dato og klokkeslett til venstre, ledige plasser til hoyre */
.ek-dates__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ek-dates__stock--full { color: var(--ek-faint); }

/* "Legg til i kalender" - skjult inntil videre.
   Fjern denne regelen for a vise den igjen. Elementet er beholdt i malen
   (shortcode-widget ek-card-cta2 med [ek_calendar_button]). */
.ek-card__actions .elementor-element-ek-card-cta2 { display: none !important; }

/* "Se alle kurs i serien" - banneret hadde ingen lenke eller liste, bare en
   overskrift og kalendernavnet. Det er skjult inntil det far et formal.
   Elementet star fortsatt i malen (ek-series). Slett regelen for a vise det. */
.elementor .ek-series.ek-series { display: none !important; }


/* Plasser igjen - hero (pille i samme stil som .ek-chip) */
.ek-hero__stock {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ek-font-body);
  font-size: 13px;
  letter-spacing: 0.03em;
  color: #e0c4b3;
  border: 1px solid #55504a;
  border-radius: 999px;
  padding: 6px 14px;
  margin: 0;
  width: fit-content;
}

.ek-hero__stock::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #d97a52;
  flex: none;
}

.ek-hero__stock:empty { display: none; }
.ek-hero__stock::after { content: " plasser igjen"; }


/* Kort introduksjon i hero (excerpt) */
.ek-hero__excerpt {
  font-family: var(--ek-font-body);
  font-size: 16px;
  line-height: 1.6;
  color: #beb6ab;
  max-width: 42ch;
  margin: 0;
}

.ek-hero__excerpt:empty { display: none; }

@media (max-width: 767px) {
  .ek-hero__excerpt { font-size: 15px; }
}


/* Datoliste i påmeldingskortet (erstatter dag/mnd-boksen for flerdagers-kurs) */
.ek-card__dates {
  font-family: var(--ek-font-head);
  font-size: 16px;
  line-height: 1.4;
  color: var(--ek-ink);
  margin: 0;
  display: flex;
  flex-direction: column;
}

.ek-card__dates br { display: none; }

.ek-card__dates .ek-datetime {
  display: block;
  padding: 9px 0;
}

.ek-card__dates .ek-datetime:first-child {
  padding-top: 0;
}

.ek-card__dates .ek-datetime:last-child {
  padding-bottom: 0;
}

.ek-card__dates .ek-datetime ~ .ek-datetime {
  border-top: 1px solid #eeebe5;
}


/* Kontakt-blokk i sidekolonnen */
.ek-contact__link {
  font-size: 15px;
  color: var(--ek-body);
  margin: 0;
  text-decoration: none;
}

.ek-contact__link strong {
  display: inline-block;
  min-width: 4.5em;
  font-family: var(--ek-font-body);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ek-faint);
  margin-right: 8px;
}

.ek-contact__link:hover {
  color: var(--ek-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* Merknad i kontaktblokken: hvordan man bestiller kurs i egen salong. */
.ek-block__note {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ek-muted);
  margin: 0 0 4px;
}

/* Sted/Kontakt: original i sidekolonnen kun paa desktop, mobil-kopi
   etter kursteksten kun paa mobil. Se WPCB2-snippet "Sted/Kontakt for
   mobil" (id 54) for [ek_sted_kontakt_mobil]. */
.ek-callout--mobile-sted-kontakt,
.elementor-element-ek-sted-kontakt-mobil { display: none !important; }

@media (max-width: 880px) {
  .elementor-element-ek-block-place,
  .elementor-element-ek-block-contact { display: none !important; }
  .ek-callout--mobile-sted-kontakt { display: block !important; }

  .elementor-element-ek-sted-kontakt-mobil {
    background: var(--ek-tint) !important;
    padding: 20px 20px !important;
    margin: 2em 0 0 !important;
  }
  .ek-callout--mobile-sted-kontakt {
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .elementor-element-ek-sted-kontakt-mobil { display: block !important; }
}

/* Sted i Hero, under dato/klokkeslett */
.ek-hero__when {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: flex-start !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f0e7df' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 16 14'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left 3px;
  background-size: 16px 16px;
  padding-left: 24px !important;
}

.ek-hero__time {
  display: flex !important;
  align-items: center;
  gap: 8px;
  font-family: var(--ek-font-head);
  font-size: 20px;
  color: var(--ek-invert);
  margin: -16px 0 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f0e7df' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 16 14'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 16px 16px;
  padding-left: 24px !important;
}



.ek-hero__location {
  display: flex !important;
  align-items: center;
  gap: 8px;
  font-family: var(--ek-font-head);
  font-size: 20px;
  color: var(--ek-invert);
  margin: -16px 0 0;
}

.ek-hero__location::before {
  content: "";
  width: 16px;
  height: 16px;
  flex: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f0e7df' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21c-4 -4.5 -7 -8.4 -7 -11.5a7 7 0 0 1 14 0c0 3.1 -3 7 -7 11.5z'/%3E%3Ccircle cx='12' cy='9.5' r='2.2'/%3E%3C/svg%3E");
}

.ek-hero__location:empty { display: none; }

@media (max-width: 767px) {
  .ek-hero__dayname,
  .ek-hero__datetime,
  .ek-hero__time,
  .ek-hero__location {
    font-size: 17px !important;
  }
}

/* Ny gruppe: Dato/Tid/Sted samlet med egen, tett avstand */
.ek-hero__meta {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

/* Skjuler tidssone-linjen i paameldingsboksen - EventKoi sin egen
   "Display timezone"-bryter styrer ikke dette elementet. */
.ek-card__tz { display: none !important; }

/* "Andre datoer for dette kurset": plasser-tekst + pil-ikon samlet til
   hoyre, samme pil-monster som paa kursarkivets kort. */
.ek-dates__meta { display: flex; align-items: center; gap: 8px; flex: none; }

.ek-dates__chevron {
  width: 14px;
  height: 14px;
  flex: none;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238b857c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'/%3E%3C/svg%3E");
}

/* Trustpilot-linje (kurs-omtaler) i bestillingskortet, mellom knappene og finprinten */
.ek-card .b-om-linje { margin: 14px 0 2px; }
