/**
 * Lillebælt Tryghedsaftale – form (matches existing inner-page tokens).
 */

.lb-tf {
	--lb-tf-marine: var(--lb-marine, #0b1724);
	--lb-tf-orange: var(--lb-orange, #f59e0b);
	--lb-tf-orange-deep: var(--lb-orange-deep, #d97706);
	--lb-tf-blue: var(--lb-blue, #38bdf8);
	--lb-tf-surface: #f4f7fb;
	--lb-tf-line: #e2e8f0;
	--lb-tf-text: #111827;
	--lb-tf-muted: #64748b;
	margin: 2rem 0 3rem;
	max-width: 44rem;
	color: var(--lb-tf-text);
}

.lb-tf__hp {
	position: absolute;
	left: -10000px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.lb-tf__banner {
	margin: 0 0 1.25rem;
	padding: 0.95rem 1.1rem;
	background: #fff7ed;
	border: 1px solid #fdba74;
	border-left: 3px solid var(--lb-tf-orange);
	color: #9a3412;
}

.lb-tf__banner p { margin: 0; }

.lb-tf__section {
	margin: 0 0 1.25rem;
	padding: 1.35rem 1.2rem 1.45rem;
	background: #fff;
	border: 1px solid var(--lb-tf-line);
	border-top: 3px solid var(--lb-tf-orange);
	box-shadow: 0 10px 30px rgba(13, 27, 42, 0.06);
}

.lb-tf__section--summary {
	background: var(--lb-tf-surface);
	border-top-color: var(--lb-tf-blue);
}

.lb-tf__kicker {
	margin: 0 0 0.35rem;
	color: var(--lb-tf-orange);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.lb-tf__title {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 1.1rem;
	color: var(--lb-tf-marine);
	font-size: 1.35rem;
	letter-spacing: -0.02em;
}

.lb-tf__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.9rem 1rem;
}

.lb-tf__field {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.lb-tf__field--full { grid-column: 1 / -1; }

.lb-tf label,
.lb-tf legend {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--lb-tf-marine);
}

.lb-tf__req { color: var(--lb-tf-orange-deep); }

.lb-tf__hint {
	color: var(--lb-tf-muted);
	font-size: 0.82rem;
	font-weight: 500;
}

.lb-tf__helpwrap {
	position: relative;
	display: inline-flex;
	flex-shrink: 0;
}

.lb-tf__help {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	padding: 0;
	border: 1px solid var(--lb-tf-orange);
	border-radius: 50%;
	background: #fffbeb;
	color: var(--lb-tf-orange-deep);
	font: inherit;
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1;
	cursor: help;
}

.lb-tf__tip {
	display: none;
	position: absolute;
	z-index: 5;
	top: calc(100% + 0.45rem);
	left: 50%;
	width: min(22rem, calc(100vw - 2.5rem));
	transform: translateX(-70%);
	padding: 0.85rem 0.95rem;
	border: 1px solid var(--lb-tf-line);
	border-radius: 4px;
	background: #0b1724;
	color: #e2e8f0;
	font-size: 0.84rem;
	font-weight: 500;
	line-height: 1.5;
	box-shadow: 0 12px 28px rgba(11, 23, 36, 0.28);
}

.lb-tf__helpwrap:hover .lb-tf__tip,
.lb-tf__helpwrap:focus-within .lb-tf__tip { display: block; }

.lb-tf__included {
	margin: 0 0 1.25rem;
	padding: 1.35rem 1.2rem 1.45rem;
	background: var(--lb-tf-surface);
	border: 1px solid var(--lb-tf-line);
	border-top: 3px solid var(--lb-tf-blue);
}

.lb-tf__included-price {
	margin: 0 0 0.85rem;
	color: var(--lb-tf-marine);
	font-weight: 700;
}

.lb-tf__included-list {
	margin: 0;
	padding: 0 0 0 1.15rem;
	color: #334155;
	line-height: 1.55;
}

.lb-tf__included-list li { margin: 0 0 0.4rem; }

.lb-tf__business { display: none; }
.lb-tf__form:has(input[name="customer_type"][value="business"]:checked) .lb-tf__business {
	display: grid;
	margin-bottom: 1rem;
}

.lb-tf__pay-note {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	background: var(--lb-tf-surface);
	border-left: 3px solid var(--lb-tf-orange);
	font-weight: 600;
	color: var(--lb-tf-marine);
}

.lb-tf__disclaimer--soft {
	margin-top: 0.75rem;
	font-weight: 500;
}

.lb-tf input[type="text"],
.lb-tf input[type="email"],
.lb-tf input[type="tel"],
.lb-tf select,
.lb-tf textarea {
	width: 100%;
	min-height: 2.85rem;
	padding: 0.65rem 0.8rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	background: #fff;
	color: var(--lb-tf-text);
	font: inherit;
}

.lb-tf textarea { min-height: 6.5rem; resize: vertical; }

.lb-tf input:focus,
.lb-tf select:focus,
.lb-tf textarea:focus {
	outline: 2px solid var(--lb-tf-orange);
	outline-offset: 1px;
	border-color: var(--lb-tf-orange);
}

.lb-tf input[aria-invalid="true"] {
	border-color: #c2410c;
	background: #fff7ed;
}

.lb-tf__error {
	margin: 0.15rem 0 0;
	color: #c2410c;
	font-size: 0.82rem;
	font-weight: 600;
}

.lb-tf__fieldset {
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
}

.lb-tf__choices {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.65rem;
	margin-top: 0.55rem;
}

.lb-tf__choices--inline { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 22rem; }

.lb-tf__choice {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 3rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
	font-weight: 600;
}

.lb-tf__choice:has(input:checked) {
	border-color: var(--lb-tf-orange);
	box-shadow: inset 3px 0 0 var(--lb-tf-orange);
	background: #fffbeb;
}

.lb-tf__choice input { width: 1.1rem; height: 1.1rem; accent-color: var(--lb-tf-orange); }

.lb-tf__extras { margin-top: 0.75rem; display: none; }
.lb-tf__form:has(input[name="has_extras"][value="yes"]:checked) .lb-tf__extras { display: block; }
.lb-tf__extras-list { display: grid; gap: 0.85rem; }

.lb-tf__extra {
	position: relative;
	margin: 0;
	padding: 1rem 1rem 0.35rem;
	border: 1px dashed #cbd5e1;
	border-radius: 6px;
	background: #fff;
}

.lb-tf__extra-legend {
	padding: 0 0.35rem;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lb-tf-muted);
}

.lb-tf__remove {
	position: absolute;
	top: 0.65rem;
	right: 0.65rem;
	padding: 0.3rem 0.55rem;
	border: 0;
	background: transparent;
	color: var(--lb-tf-muted);
	font: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
}

.lb-tf__remove:hover { color: #c2410c; }

.lb-tf__add {
	margin-top: 0.35rem;
	padding: 0.55rem 0.85rem;
	border: 1px solid var(--lb-tf-marine);
	border-radius: 4px;
	background: transparent;
	color: var(--lb-tf-marine);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.lb-tf__add:hover { background: var(--lb-tf-marine); color: #fff; }

.lb-tf__summary dl {
	display: grid;
	gap: 0.85rem;
	margin: 0 0 1rem;
}

.lb-tf__summary dl > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--lb-tf-line);
}

.lb-tf__summary dl > div[hidden] { display: none; }

.lb-tf__summary dt {
	margin: 0;
	color: var(--lb-tf-muted);
	font-size: 0.88rem;
	font-weight: 500;
}

.lb-tf__summary dd {
	margin: 0;
	font-weight: 700;
	color: var(--lb-tf-marine);
	text-align: right;
}

.lb-tf__disclaimer {
	margin: 0;
	padding: 0.9rem 1rem;
	background: #fff;
	border-left: 3px solid var(--lb-tf-orange);
	color: #334155;
	font-size: 0.95rem;
	line-height: 1.55;
}

.lb-tf__check { margin: 0 0 0.85rem; }
.lb-tf__check label {
	display: flex;
	gap: 0.65rem;
	align-items: flex-start;
	font-weight: 500;
	line-height: 1.45;
}
.lb-tf__check input { margin-top: 0.2rem; accent-color: var(--lb-tf-orange); }
.lb-tf__check a { color: var(--lb-tf-blue); }

.lb-tf__submit-wrap { margin: 1.35rem 0 0; }

.lb-tf__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 3.1rem;
	padding: 0.9rem 1.45rem;
	border: 0;
	border-radius: 4px;
	background: var(--lb-tf-orange);
	color: #fff;
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
}

.lb-tf__submit:hover { background: var(--lb-tf-orange-deep); }
.lb-tf__submit:disabled { opacity: 0.7; cursor: wait; }

@media (max-width: 700px) {
	.lb-tf__grid,
	.lb-tf__choices { grid-template-columns: 1fr; }
	.lb-tf__section { padding: 1.1rem 0.95rem 1.2rem; }
	.lb-tf { margin-bottom: calc(3rem + var(--lb-mobile-bar-h, 4rem)); }
}

@media (prefers-reduced-motion: reduce) {
	.lb-tf__submit,
	.lb-tf__add,
	.lb-tf__choice { transition: none; }
}
