/* eh-priswidget — all rules scoped under .eh-priswidget */
.eh-priswidget {
  --w-green: #1a5c38;
  --w-green2: #3aa76d;
  --w-amber: #e8944a;
  --w-ink: #1d2a22;
  --w-mu: #5f6d64;
  --w-ln: #e3ddd0;
  --w-soft: #eef6f0;
  --w-section: #e3ede9;
  --round: Quicksand, system-ui, -apple-system, "Segoe UI", sans-serif;
  --serif: "Crimson Text", Georgia, "Times New Roman", serif;
  --scale-a: #1a9641;
  --scale-b: #52b151;
  --scale-c: #8fc85a;
  --scale-d: #cdb52a;
  --scale-e: #ef8f45;
  --scale-f: #e5603a;
  --scale-g: #c9181c;
  box-sizing: border-box;
  color: var(--w-ink);
  font-family: var(--round);
  font-size: 16px;
  line-height: 1.5;
  background: var(--w-section);
  padding: 28px clamp(16px, 4vw, 48px) 32px;
}

/* Forside */
.eh-priswidget[data-side="forside"] {
  padding-top: 40px !important;
  margin-top: 30px !important;
}

/* /stromkalkulator/ */
.eh-priswidget[data-side="stromkalkulator"] {
  padding-top: 28px !important;
  padding-bottom: 32px !important;
  margin-top: 20px !important;
}

/* Inner Elementor wrappers: no extra side padding (width). Keep outer section top pad. */
.elementor-element-e7a73fd,
.elementor-element-d1d9baa {
  --padding-left: 0 !important;
  --padding-right: 0 !important;
}

@media (max-width: 1024px) {
  .eh-priswidget {
    padding-left: clamp(14px, 3vw, 28px);
    padding-right: clamp(14px, 3vw, 28px);
  }

  .elementor-element-ed0d48c,
  .elementor-element-24cca2f {
    --padding-left: 16px !important;
    --padding-right: 16px !important;
  }
}

@media (max-width: 767px) {
  body.eh-priswidget-active #content.site-main,
  body:has(.eh-priswidget) #content.site-main {
    padding-top: 56px;
  }

  .eh-priswidget {
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 20px;
  }

  .eh-priswidget .ehw .card {
    padding: 14px;
  }

  .eh-priswidget__title {
    font-size: clamp(26px, 7vw, 34px);
  }

  .elementor-element-ed0d48c,
  .elementor-element-24cca2f {
    --padding-left: 12px !important;
    --padding-right: 12px !important;
  }
}

.eh-priswidget *,
.eh-priswidget *::before,
.eh-priswidget *::after {
  box-sizing: border-box;
}

.eh-priswidget__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  gap: 26px;
}

.eh-priswidget__title {
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(32px, 3.8vw, 44px);
  line-height: 1.1;
  margin: 0;
  color: #283034;
  text-wrap: balance;
}

.eh-priswidget .ehw {
  font-family: var(--round);
  color: var(--w-ink);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

@media (max-width: 880px) {
  .eh-priswidget .ehw {
    grid-template-columns: minmax(0, 1fr);
  }
}

.eh-priswidget .ehw .card {
  background: #fff;
  border: 1px solid var(--w-ln);
  border-radius: 18px;
  padding: clamp(18px, 2.6vw, 26px);
  display: grid;
  gap: 16px;
  min-width: 0;
}

.eh-priswidget .ehw .lbl-step {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--w-green2);
}

.eh-priswidget .ehw h3 {
  font-family: var(--round);
  font-weight: 700;
  font-size: 21px;
  margin: 2px 0 0;
  line-height: 1.2;
}

.eh-priswidget .ehw label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 5px;
}

.eh-priswidget .ehw input[type="number"],
.eh-priswidget .ehw select {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--w-ln);
  border-radius: 10px;
  font: inherit;
  font-size: 16px;
  background: #fff;
  color: var(--w-ink);
}

.eh-priswidget .ehw input[type="number"]:focus-visible,
.eh-priswidget .ehw select:focus-visible,
.eh-priswidget-modal input[type="text"]:focus-visible,
.eh-priswidget-modal input[type="email"]:focus-visible,
.eh-priswidget-modal input[type="tel"]:focus-visible,
.eh-priswidget-modal textarea:focus-visible,
.eh-priswidget-modal select:focus-visible {
  outline: none;
  border-color: var(--w-green2);
  box-shadow: 0 0 0 3px rgba(58, 167, 109, 0.2);
}

.eh-priswidget .ehw input[type="range"]:focus-visible,
.eh-priswidget-modal .check input:focus-visible {
  outline: 3px solid rgba(58, 167, 109, 0.45);
  outline-offset: 2px;
}

.eh-priswidget .ehw button:focus-visible,
.eh-priswidget-modal button:focus-visible {
  outline: 3px solid rgba(58, 167, 109, 0.45);
  outline-offset: 2px;
}

.eh-priswidget .ehw .suffix {
  position: relative;
}

.eh-priswidget .ehw .suffix input {
  padding-right: 52px;
}

.eh-priswidget .ehw .suffix em {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-style: normal;
  color: var(--w-mu);
  font-size: 14px;
  pointer-events: none;
}

.eh-priswidget .ehw .row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}

@media (max-width: 520px) {
  .eh-priswidget .ehw .row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.eh-priswidget .ehw input[type="range"] {
  width: 100%;
  accent-color: var(--w-green2);
  margin: 2px 0 0;
}

.eh-priswidget .ehw .merke {
  background: var(--w-soft);
  border-radius: 14px;
  padding: 16px;
  display: grid;
  gap: 10px;
}

.eh-priswidget .ehw .merke-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

.eh-priswidget .ehw .merke-top strong {
  font-size: 15px;
}

.eh-priswidget .ehw .merke-val {
  font-size: 14px;
  color: var(--w-mu);
}

.eh-priswidget .ehw .merke-save {
  font-size: 15px;
  font-weight: 700;
  color: var(--w-text);
}

.eh-priswidget .ehw .merke-forbehold {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--w-mu);
}

.eh-priswidget .ehw .scale {
  display: flex;
  gap: 5px;
}

.eh-priswidget .ehw .scale span {
  flex: 1;
  text-align: center;
  padding: 9px 0;
  border-radius: 7px;
  font-weight: 700;
  color: #fff;
  opacity: 0.3;
  font-size: 15px;
}

.eh-priswidget .ehw .scale span.on {
  opacity: 1;
  transform: scale(1.1);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.22);
}

.eh-priswidget .ehw .pakke {
  border: 1.5px dashed var(--w-green2);
  border-radius: 14px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px 16px;
  flex-wrap: wrap;
}

.eh-priswidget .ehw .pakke p {
  margin: 0;
  font-size: 14.5px;
  flex: 1 1 260px;
}

.eh-priswidget .ehw .pakke p strong {
  display: block;
  font-size: 15px;
}

.eh-priswidget .ehw .pakke-btn {
  background: none;
  border: 1.5px solid var(--w-green);
  color: var(--w-green);
  border-radius: 10px;
  padding: 10px 16px;
  font: inherit;
  font-size: 14.5px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.eh-priswidget .ehw .pakke-btn:hover {
  background: var(--w-soft);
}

.eh-priswidget .ehw .law {
  font-size: 13px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--w-soft);
  color: var(--w-green);
  justify-self: start;
}

.eh-priswidget .ehw .price {
  position: static !important;
  top: auto !important;
  background: var(--w-green);
  color: #fff;
  border: 0;
}

/*
 * Test-/default-page layout fix (Hello Elementor + mmenu):
 * mmenu wraps only the header into .mm-page with min-height:100vh, which
 * pushes <main> one viewport down and leaves a white gap. Collapse that
 * wrapper and paint the content area with the section green.
 */
body.eh-priswidget-active .mm-page.mm-slideout,
body:has(.eh-priswidget) .mm-page.mm-slideout {
  min-height: 0 !important;
  height: auto !important;
}

body.eh-priswidget-active,
body:has(.eh-priswidget) {
  background-color: #e3ede9;
}

body.eh-priswidget-active #content.site-main,
body.eh-priswidget-active .page-content,
body:has(.eh-priswidget) #content.site-main,
body:has(.eh-priswidget) .page-content {
  background-color: #e3ede9;
}

/* Fixed Elementor header — keep content clear of it */
body.eh-priswidget-active #content.site-main,
body:has(.eh-priswidget) #content.site-main {
  padding-top: 72px;
}

/* Duplicate WP page title not needed next to widget heading */
body.eh-priswidget-active .page-header,
body:has(.eh-priswidget) .page-header {
  display: none;
}

.eh-priswidget .ehw .price .lbl-step {
  color: #a9e3c2;
}

.eh-priswidget .ehw .amount {
  font-size: clamp(40px, 5vw, 54px);
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.eh-priswidget .ehw .sub {
  font-size: 15px;
  opacity: 0.9;
  margin-top: -8px;
}

.eh-priswidget .ehw .breakdown {
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  padding-top: 12px;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  display: grid;
  gap: 3px;
}

.eh-priswidget .ehw .breakdown div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.eh-priswidget .ehw .breakdown .min {
  color: #ffd8b0;
}

.eh-priswidget .ehw .incl {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  display: grid;
  gap: 5px;
}

.eh-priswidget .ehw .incl li {
  padding-left: 22px;
  position: relative;
}

.eh-priswidget .ehw .incl li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 7px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #a9e3c2;
}

.eh-priswidget .ehw .cta,
.eh-priswidget-modal .cta {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--w-amber);
  color: #1d1a14;
  border: 0;
  border-radius: 12px;
  padding: 15px;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

.eh-priswidget .ehw .cta:hover,
.eh-priswidget-modal .cta:hover {
  filter: brightness(1.05);
}

.eh-priswidget .ehw .cta.secondary {
  background: #fff;
  color: var(--w-green);
  margin-top: -6px;
}

.eh-priswidget .ehw .fine {
  font-size: 12.5px;
  opacity: 0.85;
}

/* Modal — uses same token names; fixed overlay outside section padding */
.eh-priswidget-modal {
  --w-green: #1a5c38;
  --w-green2: #3aa76d;
  --w-amber: #e8944a;
  --w-ink: #1d2a22;
  --w-mu: #5f6d64;
  --w-ln: #e3ddd0;
  --w-soft: #eef6f0;
  --round: Quicksand, system-ui, -apple-system, "Segoe UI", sans-serif;
  position: fixed;
  inset: 0;
  background: rgba(20, 30, 24, 0.55);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 32px 16px;
  overflow: auto;
  z-index: 10000000; /* above Elementor sticky header (999999) */
}

.eh-priswidget-modal[hidden] {
  display: none !important;
}

.eh-priswidget-modal__dialog {
  font-family: var(--round);
  color: var(--w-ink);
  background: #fff;
  border-radius: 18px;
  max-width: 560px;
  width: 100%;
  padding: 26px;
  display: grid;
  gap: 12px;
  position: relative;
}

.eh-priswidget-modal__dialog h3 {
  margin: 0;
  font-size: 22px;
  color: var(--w-green);
  font-weight: 700;
}

.eh-priswidget-modal .msum {
  background: var(--w-soft);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 15px 0;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  display: grid;
  gap: 3px;
}

.eh-priswidget-modal .msum div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.eh-priswidget-modal .msum .tot {
  border-top: 1px solid #cfe3d6;
  margin-top: 4px;
  padding-top: 6px;
  font-weight: 700;
}

.eh-priswidget-modal form {
  display: grid;
  gap: 12px;
}

.eh-priswidget-modal label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 5px;
}

.eh-priswidget-modal input[type="text"],
.eh-priswidget-modal input[type="email"],
.eh-priswidget-modal input[type="tel"],
.eh-priswidget-modal textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--w-ln);
  border-radius: 10px;
  font: inherit;
  font-size: 16px;
  color: var(--w-ink);
  background: #fff;
}

.eh-priswidget-modal .row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}

@media (max-width: 520px) {
  .eh-priswidget-modal .row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.eh-priswidget-modal .check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-weight: 500;
  font-size: 14px;
}

.eh-priswidget-modal .check input {
  margin-top: 4px;
  accent-color: var(--w-green2);
}

.eh-priswidget-modal .hint {
  font-size: 13px;
  color: var(--w-mu);
  margin: 0;
}

.eh-priswidget-modal .err {
  font-size: 13.5px;
  color: #a3361b;
}

.eh-priswidget-modal .close {
  justify-self: end;
  background: none;
  border: 0;
  font-size: 26px;
  cursor: pointer;
  color: var(--w-mu);
  line-height: 1;
  margin-bottom: -14px;
}

.eh-priswidget-modal .thanks {
  text-align: center;
  display: grid;
  gap: 8px;
  justify-items: center;
  padding: 10px 0;
}

/* display:grid above would otherwise override the HTML hidden attribute */
.eh-priswidget-modal .thanks[hidden],
.eh-priswidget-modal #eh-pw-form-view[hidden] {
  display: none !important;
}

.eh-priswidget-modal .ok {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--w-green2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 26px;
}

.eh-priswidget-modal .hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .eh-priswidget *,
  .eh-priswidget-modal * {
    transition: none !important;
  }
}
