/* prostata.css - Prostatabroderna (form 8). ASCII only.
   Loaded by index.php after form.css for resForm == 8 and overrides its
   body/input/h1/td rules. Palette from the logo: blue #104bab, light blue
   #63c2ee, white. Mobile first, no fixed widths (the form lives in an iframe). */
:root {
	--pb-blue: #104bab;
	--pb-blue-dark: #0b3a8c;
	--pb-light: #63c2ee;
	--pb-ink: #1b2a41;
	--pb-muted: #5a6b82;
	--pb-bg: #f3f8fd;
	--pb-line: #c9d6e8;
	--pb-red: #c62828;
}
html { background: #f3f8fd; background: var(--pb-bg); }
body {
	margin: 0;
	padding: 0 0 48px;
	background: #f3f8fd;
	background: var(--pb-bg);
	color: #1b2a41;
	color: var(--pb-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
}
body td { padding-right: 0; }

/* Hero */
.pb-hero {
	background: #104bab;
	background: var(--pb-blue);
	color: #fff;
	text-align: center;
	padding: 28px 16px 24px;
}
.pb-hero .pb-logo {
	display: inline-block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 0 auto 14px;
	padding: 12px 18px;
	background: #fff;
	border-radius: 10px;
	box-sizing: border-box;
}
.pb-hero h1 { margin: 0; color: #fff; font-size: 1.9em; font-weight: 700; line-height: 1.2; }
.pb-hero .pb-date { margin: 6px 0 0; color: #63c2ee; color: var(--pb-light); font-weight: 600; }
.pb-wrap { max-width: 860px; margin: 0 auto; padding: 0 16px; }
.pb-intro {
	background: #fff;
	border-left: 4px solid #63c2ee;
	border-left-color: var(--pb-light);
	border-radius: 0 12px 12px 0;
	padding: 16px 20px;
	margin: 20px 0 0;
}
.pb-intro p:first-child { margin-top: 0; }
.pb-intro p:last-child { margin-bottom: 0; }

/* Cards */
.pb-card {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(16, 75, 171, 0.08);
	padding: 20px;
	margin: 20px 0;
}
.pb-card h2 { margin: 0 0 12px; color: #104bab; color: var(--pb-blue); font-size: 1.2em; font-weight: 700; }
.pb-dish { margin: 0 0 10px; }
.pb-dish strong { color: #104bab; color: var(--pb-blue); }
.pb-prices {
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid #c9d6e8;
	border-top-color: var(--pb-line);
	color: #5a6b82;
	color: var(--pb-muted);
	font-weight: 600;
}
.pb-hint { margin: 0 0 12px; color: #5a6b82; color: var(--pb-muted); font-size: 0.95em; }
.pb-allergi { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid #c9d6e8; border-top-color: var(--pb-line); font-weight: 600; }
.pb-allergi a { color: #104bab; color: var(--pb-blue); white-space: nowrap; }

/* Guest table */
.pb-table { width: 100%; border-collapse: collapse; }
.pb-table th, .pb-table td {
	padding: 8px 6px;
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid #c9d6e8;
	border-bottom-color: var(--pb-line);
}
.pb-table thead th { background: #104bab; background: var(--pb-blue); color: #fff; font-weight: 600; font-size: 0.9em; }
.pb-table thead th:first-child { border-radius: 8px 0 0 0; }
.pb-table thead th:last-child { border-radius: 0 8px 0 0; }
.pb-table .pb-num { text-align: right; white-space: nowrap; }
.pb-table .pb-nr { color: #5a6b82; color: var(--pb-muted); font-weight: 700; width: 2.5em; text-align: center; }
.pb-table tfoot th { border-bottom: 0; font-size: 1.15em; padding-top: 14px; }
.pb-table .pb-sum-label { text-align: right; }
.pb-row-active .pb-radpris { font-weight: 700; color: #104bab; color: var(--pb-blue); }
.pb-radpris { min-width: 4em; }

/* Fields */
.pb-form input[type=text], .pb-form input[type=tel], .pb-form input[type=email], .pb-form select {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	font: inherit;
	font-size: 16px;
	color: #1b2a41;
	color: var(--pb-ink);
	background: #fff;
	border: 1px solid #c9d6e8;
	border-color: var(--pb-line);
	border-radius: 8px;
}
.pb-form input:focus, .pb-form select:focus {
	outline: none;
	border-color: #104bab;
	border-color: var(--pb-blue);
	box-shadow: 0 0 0 3px rgba(99, 194, 238, 0.45);
}
.pb-form .pb-invalid, .pb-form .pb-invalid:focus {
	border-color: #c62828;
	border-color: var(--pb-red);
	box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.15);
}
.pb-field { margin: 0 0 14px; }
.pb-field label { display: block; margin: 0 0 4px; font-weight: 600; }
.pb-err { display: block; color: #c62828; color: var(--pb-red); font-size: 0.9em; margin-top: 6px; }
.pb-err:empty { display: none; }

/* Payment note, errors, button */
.pb-pay {
	background: #fff;
	border: 2px solid #63c2ee;
	border-color: var(--pb-light);
	border-radius: 12px;
	padding: 16px 20px;
	margin: 20px 0;
	font-weight: 600;
}
.pb-alert {
	background: #fdecec;
	border-left: 4px solid #c62828;
	border-left-color: var(--pb-red);
	color: #7a1c1c;
	border-radius: 0 12px 12px 0;
	padding: 14px 20px;
	margin: 20px 0;
}
.pb-alert h2 { color: #c62828; color: var(--pb-red); }
.pb-alert ul { margin: 6px 0 0; padding-left: 20px; }
.pb-actions { margin: 20px 0; text-align: center; }
.pb-btn {
	display: inline-block;
	box-sizing: border-box;
	width: 100%;
	max-width: 420px;
	padding: 14px 28px;
	background: #104bab;
	background: var(--pb-blue);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font: inherit;
	font-size: 1.1em;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
}
.pb-btn:hover { background: #0b3a8c; background: var(--pb-blue-dark); color: #fff; }
.pb-btn[disabled] { opacity: 0.6; cursor: default; }

/* Confirmation */
.pb-receipt .pb-boknnr { font-size: 1.15em; }
.pb-receipt .pb-mailtext { margin: 14px 0; }
.pb-receipt-table { margin: 10px 0; width: 100%; max-width: 640px; }
.pb-notice {
	background: #fff8e1;
	border-left: 4px solid #f6b73c;
	padding: 10px 14px;
	border-radius: 0 8px 8px 0;
}
.pb-muted { color: #5a6b82; color: var(--pb-muted); font-size: 0.9em; }

/* Mobile: stack the guest table rows as cards */
@media (max-width: 640px) {
	.pb-hero { padding: 20px 12px 18px; }
	.pb-hero h1 { font-size: 1.5em; }
	.pb-hero .pb-logo { padding: 10px 12px; }
	.pb-card { padding: 16px; }
	.pb-table thead { display: none; }
	.pb-table, .pb-table tbody, .pb-table tfoot, .pb-table tr, .pb-table td { display: block; width: 100%; box-sizing: border-box; }
	.pb-table tr.pb-row {
		border: 1px solid #c9d6e8;
		border-color: var(--pb-line);
		border-radius: 10px;
		padding: 8px 10px;
		margin: 0 0 10px;
	}
	.pb-table tr.pb-row-active { border-color: #63c2ee; border-color: var(--pb-light); }
	.pb-table td { border: 0; padding: 6px 0; text-align: left; }
	.pb-table td::before {
		content: attr(data-label);
		display: block;
		font-size: 0.8em;
		color: #5a6b82;
		color: var(--pb-muted);
		font-weight: 600;
	}
	.pb-table .pb-nr { text-align: left; width: auto; }
	.pb-table .pb-num { text-align: left; }
	.pb-table tfoot tr { display: block; text-align: right; padding: 6px 10px; }
	.pb-table tfoot th { display: inline-block; width: auto; padding: 4px 6px; border: 0; }
}
