/* Pluskredit calculator widget */

.calc{
  background:var(--paper, #fff);
  border:1px solid var(--line, #d8dee8);
  border-radius:var(--radius-lg, 12px);
  padding:32px;
  box-shadow:0 1px 3px rgba(11,27,61,.04), 0 12px 40px -12px rgba(11,27,61,.08);
  font-family:var(--sans, "Instrument Sans", system-ui, sans-serif);
  transition:box-shadow .25s ease, border-color .25s ease;
}
/* Subtle pulse when quiz prefills the calculator */
.calc.is-prefilled{
  border-color:var(--coral, #FF6B57);
  box-shadow:0 0 0 4px color-mix(in oklab, var(--coral,#FF6B57) 18%, transparent), 0 12px 40px -12px rgba(255,107,87,.3);
}
.calc-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--line,#d8dee8);}
.calc-head .title{ font-family:var(--serif, "Newsreader", Georgia, serif); font-size:22px; font-weight:400; letter-spacing:-.01em; color:var(--ink,#0B1B3D);}
.calc-head .badge{ font-family:var(--mono, "Inter Tight", system-ui, sans-serif); font-size:10px; padding:5px 10px; background:var(--paper-2,#ECE9E2); border-radius:999px; color:var(--ink-2,#243E66); letter-spacing:.06em;}

.calc form .field{ margin-bottom:24px;}
.calc .field-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px;}
.calc .field-label{ font-family:var(--mono); font-size:11px; color:var(--muted,#6B7A91); letter-spacing:.04em; text-transform:uppercase;}
.calc .field-value{ font-family:var(--serif); font-size:32px; font-weight:300; letter-spacing:-.02em; color:var(--ink,#0B1B3D);}
.calc .field-value em{ font-style:italic; color:var(--coral,#FF6B57); font-size:14px; font-family:var(--mono); letter-spacing:.1em; margin-left:8px;}

.calc input[type="range"]{
  -webkit-appearance:none; appearance:none;
  width:100%; height:24px;            /* taller hit-area; visible track is drawn separately */
  background:transparent;
  outline:none;
  cursor:grab; padding:0; margin:0;
  touch-action:pan-y;                  /* allow vertical scroll, but capture horizontal touch */
}
.calc input[type="range"]:active{ cursor:grabbing;}

/* WebKit track */
.calc input[type="range"]::-webkit-slider-runnable-track{
  height:4px; background:var(--line,#d8dee8); border-radius:2px; border:none;
}
/* Firefox track */
.calc input[type="range"]::-moz-range-track{
  height:4px; background:var(--line,#d8dee8); border-radius:2px; border:none;
}

/* WebKit thumb */
.calc input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:32px; height:32px; margin-top:-14px;   /* center on 4px track */
  background:var(--ink,#0B1B3D);
  border:4px solid var(--paper,#fff);
  box-shadow:0 0 0 1px var(--ink,#0B1B3D), 0 4px 14px rgba(11,27,61,.28);
  border-radius:50%;
  cursor:pointer;
  transition:transform .12s ease, background .15s, box-shadow .15s;
}
.calc input[type="range"]::-webkit-slider-thumb:hover{ background:var(--coral,#FF6B57); box-shadow:0 0 0 1px var(--coral,#FF6B57), 0 4px 14px rgba(255,107,87,.4);}
.calc input[type="range"]:active::-webkit-slider-thumb{ transform:scale(1.08);}
/* Firefox thumb */
.calc input[type="range"]::-moz-range-thumb{
  width:32px; height:32px; background:var(--ink,#0B1B3D);
  border:4px solid var(--paper,#fff); border-radius:50%; cursor:pointer;
  box-shadow:0 0 0 1px var(--ink,#0B1B3D), 0 4px 14px rgba(11,27,61,.28);
}
.calc input[type="range"]::-moz-range-thumb:hover{ background:var(--coral,#FF6B57);}

/* Touch devices: appropriately sized thumb (28px visual, ~44px hit area via input height) */
@media (hover: none) and (pointer: coarse){
  .calc input[type="range"]{ height:44px;}                                  /* generous hit area */
  .calc input[type="range"]::-webkit-slider-runnable-track{ height:6px; border-radius:3px; background:var(--line,#d8dee8);}
  .calc input[type="range"]::-moz-range-track{ height:6px; border-radius:3px;}

  .calc input[type="range"]::-webkit-slider-thumb{
    width:28px; height:28px;
    margin-top:-11px;             /* center on 6px track */
    background:var(--coral,#FF6B57);
    border:4px solid var(--paper,#fff);
    box-shadow:0 0 0 1px var(--coral,#FF6B57), 0 3px 10px rgba(255,107,87,.4);
  }
  .calc input[type="range"]:active::-webkit-slider-thumb{
    transform:scale(1.15);
    background:var(--coral-deep,#E84E37);
    box-shadow:0 0 0 1px var(--coral-deep,#E84E37), 0 4px 14px rgba(255,107,87,.5), 0 0 0 12px rgba(255,107,87,.18);
  }
  .calc input[type="range"]::-moz-range-thumb{
    width:28px; height:28px; background:var(--coral,#FF6B57);
    border:4px solid var(--paper,#fff); border-radius:50%;
    box-shadow:0 0 0 1px var(--coral,#FF6B57), 0 3px 10px rgba(255,107,87,.4);
  }
  .calc .field-foot{ margin-top:6px;}
}

.calc .field-foot{ display:flex; justify-content:space-between; margin-top:6px; font-family:var(--mono); font-size:10px; color:var(--muted,#6B7A91);}

.calc .summary{ margin-top:8px; padding:20px; background:color-mix(in oklab, var(--coral,#FF6B57) 6%, transparent); border:1px solid color-mix(in oklab, var(--coral,#FF6B57) 18%, transparent); border-radius:var(--radius,6px); display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.calc .summary-item .lbl{ font-family:var(--mono); font-size:10px; color:var(--ink-2,#243E66); margin-bottom:4px;}
.calc .summary-item .lbl em{ font-style:italic; color:var(--coral,#FF6B57); margin-left:2px;}
.calc .summary-item .val{ font-family:var(--serif); font-size:24px; font-weight:400; letter-spacing:-.01em; color:var(--ink,#0B1B3D);}

.calc .cta{
  display:flex; align-items:center; justify-content:center;
  width:100%; margin-top:24px;
  padding:18px 24px;
  background:var(--ink,#0B1B3D); color:var(--paper,#fff);
  border:none; border-radius:var(--radius,6px);
  font-family:var(--sans); font-size:16px; font-weight:600;
  letter-spacing:.01em; cursor:pointer; transition:.15s;
  position:relative; overflow:hidden;
}
.calc .cta:hover:not([disabled]){ background:var(--coral,#FF6B57);}
.calc .cta::after{ content:" →"; transition:transform .2s; display:inline-block; margin-left:.4em;}
.calc .cta:hover:not([disabled])::after{ transform:translateX(4px);}
.calc .cta[disabled]{ opacity:.7; cursor:wait;}
.calc .cta.is-loading::after{ content:""; width:14px; height:14px; margin-left:10px; border:2px solid currentColor; border-top-color:transparent; border-radius:50%; animation:pk-spin .7s linear infinite;}
.calc .cta:focus-visible{ outline:3px solid var(--coral,#FF6B57); outline-offset:3px;}
.calc input:focus-visible, .calc button:focus-visible, .calc input[type="range"]:focus-visible{ outline:3px solid var(--coral,#FF6B57); outline-offset:2px;}
@keyframes pk-spin{ to{ transform:rotate(360deg);}}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .calc .cta::after, .calc .cta:hover::after { transition: none !important; transform: none !important; }
  .calc input[type="range"]::-webkit-slider-thumb { transition: none !important; }
  .calc .cta.is-loading::after { animation: none !important; border-top-color: currentColor; }
}

.calc .calc-foot{ margin-top:16px; text-align:center; font-size:12px; color:var(--muted,#6B7A91);}
.calc .calc-foot strong{ color:var(--moss,#2E7D5B); font-weight:600;}

/* Trustpilot mini in calculator */
.calc .calc-tp{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:14px; padding-top:14px;
  border-top:1px solid var(--line,#d8dee8);
  text-decoration:none; color:var(--ink-2,#243E66);
  font-size:12px;
  transition:opacity .15s;
}
.calc .calc-tp:hover{ opacity:.7;}
.calc .calc-tp-stars{ flex:0 0 auto; line-height:0;}
.calc .calc-tp-text strong{ color:var(--ink,#0B1B3D); font-weight:600;}

.calc .rate-example{
  margin-top:14px; padding-top:14px;
  border-top:1px dashed var(--line,#d8dee8);
  font-size:11px; line-height:1.55; color:var(--muted,#6B7A91);
  text-align:left;
}
.calc .rate-example strong{ color:var(--ink-2,#243E66); font-weight:600;}

/* Step 2 — lead capture */
.calc input[type="email"], .calc input[type="tel"]{ width:100%; padding:14px 16px; border:1px solid var(--line,#d8dee8); border-radius:var(--radius,6px); font-family:var(--sans); font-size:16px; color:var(--ink,#0B1B3D); background:var(--paper,#fff); transition:.15s;}
.calc input[type="email"]:focus, .calc input[type="tel"]:focus{ outline:none; border-color:var(--coral,#FF6B57); box-shadow:0 0 0 3px color-mix(in oklab, var(--coral,#FF6B57) 18%, transparent);}
.calc label.field-label{ display:block; margin-bottom:8px; font-family:var(--mono); font-size:11px; color:var(--muted,#6B7A91); letter-spacing:.04em; text-transform:uppercase;}
.calc .step-back{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--line,#d8dee8); font-family:var(--mono); font-size:11px; color:var(--muted,#6B7A91);}
.calc .step-back button{ background:none; border:0; padding:0; font:inherit; color:var(--ink-2,#243E66); cursor:pointer;}
.calc .step-back button:hover{ color:var(--coral,#FF6B57);}
/* ============================================================
 * CONSENT BLOCK — mobile-first, CRO-optimized.
 *
 * Why everything in here:
 *   - 90%+ traffic is mobile, so base styles target mobile and desktop adds.
 *   - iOS Safari renders native <input type="checkbox"> with weird sizing/positioning
 *     that escapes the flex container. We use `appearance: none` + custom styling
 *     to fully control rendering and keep the checkbox INSIDE the card frame.
 *   - Visual feedback when checked (background tint + coral border) confirms
 *     the user's action — critical for consent CRO; uncertainty kills clicks.
 *   - Whole label is the tap target — easy thumb reach.
 * ============================================================ */
.calc label.consent{
	display:flex;
	align-items:flex-start;
	gap:12px;
	margin:18px 0 12px;
	padding:14px;
	background:var(--linen, #F6F4F1);
	border:1.5px solid var(--line, #D8DEE8);
	border-radius:12px;
	font-size:13px;
	color:var(--ink-2,#243E66);
	line-height:1.5;
	cursor:pointer;
	transition:border-color .15s ease, background-color .15s ease;
	-webkit-tap-highlight-color:transparent;  /* removes ugly blue iOS tap flash */
	user-select:none;
}
.calc label.consent:hover,
.calc label.consent:focus-within{
	border-color:var(--coral, #FF6B57);
}

/* Custom checkbox — appearance:none to bypass iOS native styling that breaks flex layout. */
.calc label.consent input[type="checkbox"]{
	-webkit-appearance:none;
	appearance:none;
	width:24px;
	height:24px;
	min-width:24px;  /* prevents shrinking on tight layouts */
	margin:0;
	flex:0 0 24px;
	background:#FFFFFF;
	border:2px solid var(--line-2, #BEC8D6);
	border-radius:6px;
	cursor:pointer;
	position:relative;
	transition:border-color .15s ease, background-color .15s ease;
}
.calc label.consent input[type="checkbox"]:hover{
	border-color:var(--coral, #FF6B57);
}
.calc label.consent input[type="checkbox"]:checked{
	background:var(--coral, #FF6B57);
	border-color:var(--coral, #FF6B57);
}
.calc label.consent input[type="checkbox"]:checked::after{
	content:'';
	position:absolute;
	top:50%;
	left:50%;
	width:6px;
	height:11px;
	margin-top:-7px;
	margin-left:-3px;
	border:solid #FFFFFF;
	border-width:0 2.5px 2.5px 0;
	transform:rotate(45deg);
}
.calc label.consent input[type="checkbox"]:focus-visible{
	outline:2px solid var(--coral, #FF6B57);
	outline-offset:2px;
}

/* Checked-state feedback on the whole card — subtle coral tint + accent border. */
.calc label.consent:has(input:checked){
	background:#FFFFFF;
	border-color:var(--coral, #FF6B57);
}

.calc label.consent a{ color:var(--coral, #FF6B57); font-weight:500; }

/* Desktop — slightly more breathing room */
@media (min-width:640px){
	.calc label.consent{
		padding:16px 18px;
		gap:14px;
		font-size:13.5px;
	}
}

/* "partnere" button-as-inline-link inside consent text.
 * Use `all: revert` first to nuke ALL browser-defaults on the <button> element
 * (some browsers + iOS Safari add grey backgrounds, borders, fonts that survive
 * normal CSS overrides). Then redeclare the link styling we actually want.
 * `!important` on the resets guarantees no parent rule wins. */
.calc button.consent-partners-link,
.calc .consent-partners-link{
	-webkit-appearance:none !important;
	appearance:none !important;
	background:transparent !important;
	background-color:transparent !important;
	background-image:none !important;
	border:0 !important;
	border-radius:0 !important;
	padding:0 !important;
	margin:0 !important;
	box-shadow:none !important;
	font:inherit !important;
	color:var(--coral, #FF6B57) !important;
	text-decoration:underline !important;
	text-underline-offset:2px;
	cursor:pointer;
	font-weight:500 !important;
	display:inline;
	line-height:inherit;
	vertical-align:baseline;
	-webkit-tap-highlight-color:transparent;
}
.calc .consent-partners-link:hover{ text-decoration-thickness:2px !important; }
.calc .consent-partners-link:focus-visible{
	outline:2px solid var(--coral, #FF6B57) !important;
	outline-offset:2px;
	border-radius:2px !important;
}

/* Terms line below CTA — styling lives in INLINE STYLE on the <div> element
   (see class-calculator.php). The inline style is the single source of truth
   so changes in PHP propagate directly without CSS conflicts. We only define
   link-styling here (which can't be inlined cleanly via PHP). */
.calc .calc-terms a{
	color:var(--muted, #5C6B83);
	text-decoration:underline;
	font-size:inherit;
}
.calc .calc-terms a:hover{ color:var(--ink-2, #243E66); }

/* Partners Lightbox (modal). Renders inside calculator but positioned fixed. */
.pk-lightbox-overlay{
	position:fixed; inset:0;
	background:rgba(11, 27, 61, .55);
	display:none;
	align-items:center; justify-content:center;
	z-index:99999;
	padding:20px;
	animation:pk-lb-fadein .15s ease;
}
.pk-lightbox-overlay.is-open{ display:flex; }
@keyframes pk-lb-fadein{ from{ opacity:0 } to{ opacity:1 } }

.pk-lightbox{
	background:#fff;
	border-radius:12px;
	padding:28px 28px 22px;
	max-width:480px; width:100%;
	max-height:80vh; overflow-y:auto;
	box-shadow:0 12px 40px rgba(0,0,0,.18);
	animation:pk-lb-slidein .2s ease;
}
@keyframes pk-lb-slidein{
	from{ transform:translateY(12px); opacity:0 }
	to{ transform:translateY(0); opacity:1 }
}
.pk-lightbox-title{
	margin:0 0 10px;
	font-size:20px; font-weight:600;
	color:var(--ink-2, #243E66);
}
.pk-lightbox-intro{
	margin:0 0 16px;
	font-size:14px;
	color:var(--muted, #5C6B83);
	line-height:1.5;
}
.pk-lightbox-list{
	margin:0 0 20px;
	padding-left:22px;
	color:var(--ink-2, #243E66);
	font-size:14.5px; line-height:1.7;
}
.pk-lightbox-list li{ margin-bottom:2px; }
.pk-lightbox-close{
	display:block; width:100%;
	background:var(--ink-2, #243E66);
	color:#fff; border:0;
	padding:12px 20px;
	border-radius:8px;
	font-size:14px; font-weight:500;
	cursor:pointer;
	transition:background .15s ease;
}
.pk-lightbox-close:hover{ background:var(--ink, #0B1B3D); }
.pk-lightbox-close:focus-visible{ outline:2px solid var(--coral, #FF6B57); outline-offset:2px; }

/* Error */
.calc [data-pk-error]{ color:#A33D26; font-size:13px; text-align:center; padding-top:12px;}

/* Step 3 — success (legacy; bevares for fallback hvis loading-flow ikke virker) */
.calc .success{ text-align:center; padding:32px 16px;}
.calc .success-icon{ width:56px; height:56px; margin:0 auto 16px; border-radius:50%; background:var(--moss,#2E7D5B); color:white; display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:600;}
.calc .success-title{ font-family:var(--serif); font-size:24px; font-weight:400; letter-spacing:-.01em; margin:0 0 12px; color:var(--ink,#0B1B3D);}
.calc .success p{ color:var(--ink-2,#243E66); font-size:15px; margin-bottom:24px; line-height:1.55;}

/* ============================================================
   Per-field validation (inline error + valid states)
   ============================================================ */
.calc .field { position: relative; margin-bottom: 18px; }
.calc .field.is-valid input[type="email"],
.calc .field.is-valid input[type="tel"]{
  border-color: var(--moss, #2E7D5B);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232E7D5B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5L20 7'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px;
  padding-right: 44px;
}
.calc .field.is-invalid input[type="email"],
.calc .field.is-invalid input[type="tel"]{
  border-color: #C13E2A;
  background: #FEF6F4;
  animation: pk-shake .25s ease-out;
}
.calc .field-error{
  display: block;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.4;
  color: #C13E2A;
  font-family: var(--sans);
}
.calc .field-error a{
  color: var(--coral, #FF6B57);
  font-weight: 600;
  text-decoration: underline;
}
.calc .field-error[hidden]{ display: none; }

@keyframes pk-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(2px); }
}

/* ============================================================
   Loading-progression (step 3, erstatter success card)
   ============================================================ */
.calc-loading{ padding: 28px 16px 16px; text-align: center; }
.calc-loading-header{
  font-family: var(--serif, "Newsreader", serif);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.25;
  margin: 0 0 8px;
  color: var(--ink, #0B1B3D);
}
.calc-loading-subhead{
  color: var(--muted, #6B7A91);
  font-size: 14px;
  margin: 0 0 28px;
}

.calc-loading-steps{
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.calc-loading-step{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  background: var(--linen, #F6F4F1);
  border-radius: var(--radius, 6px);
  font-size: 14px;
  color: var(--muted, #6B7A91);
  opacity: 0.55;
  transition: opacity .3s ease, background .3s ease, color .3s ease;
  text-align: left;
}
.calc-loading-step.is-active{
  opacity: 1;
  background: color-mix(in oklab, var(--coral, #FF6B57) 8%, var(--linen, #F6F4F1));
  color: var(--ink, #0B1B3D);
  font-weight: 500;
}
.calc-loading-step.is-done{
  opacity: 1;
  color: var(--ink, #0B1B3D);
}

.calc-loading-icon{
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--paper-2, #ECE9E2);
  position: relative;
  display: inline-block;
}
/* Spinner state (default for active) */
.calc-loading-step.is-active .calc-loading-icon{
  background: transparent;
  border: 2.5px solid var(--paper-2, #ECE9E2);
  border-top-color: var(--coral, #FF6B57);
  animation: pk-spin .8s linear infinite;
}
/* Check state (when done) */
.calc-loading-step.is-done .calc-loading-icon{
  background: var(--moss, #2E7D5B);
  border-color: var(--moss, #2E7D5B);
}
.calc-loading-step.is-done .calc-loading-icon::after{
  content: '';
  position: absolute;
  left: 7px;
  top: 3px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

.calc-loading-trust{
  list-style: none;
  margin: 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--line, #D8DEE8);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  font-family: var(--mono, "Inter Tight", sans-serif);
  font-size: 12px;
  color: var(--muted, #6B7A91);
}
.calc-loading-trust li{ white-space: nowrap; }

.calc-loading-fallback{
  display: inline-block;
  margin-top: 18px;
  font-size: 13px;
  color: var(--coral, #FF6B57);
  text-decoration: underline;
  font-family: var(--sans);
}
.calc-loading-fallback[hidden]{ display: none; }

@media (max-width: 480px){
  .calc-loading-step{ font-size: 13px; padding: 10px 12px; }
  .calc-loading-trust{ gap: 10px; font-size: 11px; }
}

/* ============================================================
 * BØLGE 2 — CRO-additions:
 *   - Progress-dots (1 af 2 step-indicator)
 *   - Social-proof badge under summary
 *   - Submit trust-micro under CTA
 *   - Mobile padding-tightening on .calc card
 *   - Sticky "Tilbage"-knap på step 2 mobile
 * ============================================================ */

/* Progress dots — subtle horizontal indicator above form. */
.calc-progress{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin:-8px 0 20px;
}
.calc-progress-dot{
  width:8px; height:8px; border-radius:999px;
  background:var(--line, #D8DEE8);
  transition:background .25s ease, transform .25s ease, width .25s ease;
}
.calc-progress-dot.is-active{
  background:var(--coral, #FF6B57);
  width:24px;            /* current step gets pill-shape for clearer "you are here" */
}
.calc-progress-dot.is-complete{
  background:var(--moss, #2E7D5B);
}

/* Social proof line — small green check + statement. */
.calc-social-proof{
  display:flex; align-items:center; justify-content:center;
  margin:14px 0 18px;
  font-family:var(--sans);
  font-size:13px;
  color:var(--ink-2, #243E66);
  letter-spacing:.005em;
}

/* Submit trust line — micro-copy under step 2 CTA. */
.calc-submit-trust{
  margin:10px 0 0;
  text-align:center;
  font-family:var(--mono, "Inter Tight", system-ui, sans-serif);
  font-size:11px;
  color:var(--muted, #6B7A91);
  letter-spacing:.02em;
  opacity:.85;
}

/* Mobile-specific tweaks. */
@media (max-width: 480px){
  /* Tighter padding på .calc-kortet — frigør indholds-bredde på små skærme. */
  .calc{ padding:20px; }

  /* Header: title is now longer ("Se dine lånetilbud på 2 minutter") so badge
   * needs to wrap below cleanly on small screens. align-items:center keeps
   * everything in a clean visual rhythm. */
  .calc-head{
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:18px;
    padding-bottom:16px;
  }
  .calc-head .title{ font-size:20px; line-height:1.15; flex:1 1 100%; }
  .calc-head .badge{
    font-size:9.5px;
    padding:5px 9px;
    letter-spacing:.08em;
    line-height:1;
  }

  /* Progress dots: lidt mindre på smalle skærme. */
  .calc-progress{ margin:-4px 0 16px; gap:6px; }
  .calc-progress-dot{ width:7px; height:7px; }
  .calc-progress-dot.is-active{ width:20px; }

  /* Summary-box (Estimeret månedlig betaling + ÅOP) — tightere padding + ensretning
   * af label/value vertical-rhythm. */
  .calc .summary{
    padding:14px 16px;
    gap:12px;
    align-items:end;            /* values bottom-aligned for cleaner visual baseline */
  }
  .calc .summary-item .lbl{ font-size:9.5px; line-height:1.3; margin-bottom:6px; letter-spacing:.04em; text-transform:uppercase; }
  .calc .summary-item .val{ font-size:20px; line-height:1.1; }

  /* Social proof: skal ALTID stå på én linje på mobile.
   * Reduce font + tightere letter-spacing + no-wrap så det ikke wrapper til 2 linjer. */
  .calc-social-proof{
    font-size:11.5px;
    line-height:1.2;
    margin:10px 0 14px;
    white-space:nowrap;
    letter-spacing:0;
  }

  /* Submit trust: bryd til 2 linjer hvis pladsen er trang. */
  .calc-submit-trust{ font-size:10.5px; line-height:1.5; }

  /* Consent label: ensure checkbox+text alignment is clean on small screens.
   * Larger checkbox (28px > 24px) for easier thumb-tap. align-items:flex-start
   * keeps box top-aligned with the first line of text. */
  .calc label.consent{
    padding:12px 14px;
    gap:10px;
    font-size:12.5px;
    line-height:1.5;
    align-items:flex-start;
  }
  .calc label.consent input[type="checkbox"]{
    width:22px;
    height:22px;
    min-width:22px;
    flex:0 0 22px;
    margin-top:1px;                   /* nudge to align with first text line */
  }
  .calc label.consent input[type="checkbox"]:checked::after{
    width:5px;
    height:10px;
    margin-top:-6px;
    margin-left:-2.5px;
  }

  /* Sticky "Tilbage"-knap på step 2 — sikrer at brugeren altid har vej tilbage uden at
   * scrolle. Kun på mobile fordi desktop har plads nok. */
  .calc form[data-pk-step="2"] .step-back{
    position:sticky; top:0; z-index:5;
    margin:-20px -20px 16px;            /* udvider til card-edge */
    padding:12px 20px;
    background:var(--paper, #fff);
    border-bottom:1px solid var(--line, #D8DEE8);
  }
}

/* Extra-small phones (iPhone SE / 360px) — social proof might still wrap.
 * Fall back to even smaller font + still single-line. */
@media (max-width: 380px){
  .calc-social-proof{ font-size:11px; letter-spacing:-.005em; }
  .calc-head .title{ font-size:19px; }
  .calc .summary-item .val{ font-size:18px; }
}
