/* Make collapsed mobile menu sticky */
@media (max-width: 991px) {
	#header {
		position: sticky !important;
		top: 0 !important;
		z-index: 1000 !important;
		margin-top: 0 !important;
	}

	.header-body {
		background: #fff !important;
		box-shadow: 0 2px 5px rgba(0,0,0,0.1);
		padding-top: 0 !important;
		margin-top: 0 !important;
		height: auto !important;
	}

	.header-nav-main nav {
		max-height: calc(100vh - 70px);
		overflow-y: auto;
	}

	body,
	.body,
	.header-container {
		padding-top: 0 !important;
		margin-top: 0 !important;
	}

	.header-body.border-top-0 {
		border-top: 0 !important;
	}

	/* Show scroll-to-top button on mobile */
	html .scroll-to-top.hidden-mobile {
		display: block !important;
	}

	/* Remove gap between FAQ columns */
	#faqs .row > .col-lg-6 {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	#faqs .toggle-primary {
		margin-bottom: 0;
	}
}

/* Nav items fit on one line at tablet/small desktop (992-1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
	#header .nav-pills > li > a {
		font-size: 0.75rem !important;
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
}

/* Report sidebar sticky - override any Porto JS interference */
#sidebar {
	position: -webkit-sticky;
	position: sticky !important;
	top: 110px !important;
}


/* Print-only logo - hidden on screen, shown in print */
.print-logo {
	display: none;
}

/* Contract results – hide header, footer, buttons and sidebar; content full width when printing */
/* Adjust margins by changing the values below (e.g. 10mm, 15mm, 20px, 1in) */
@media print {
	:root {
		--print-margin-top: 30mm;
	}
	@page {
		margin-top: var(--print-margin-top);
	}
	body.contract-results-report {
		--print-margin-left: 15mm;
		--print-margin-right: 15mm;
	}
	
	/* Print-only logo - appears on every printed page */
	.print-logo {
		display: block !important;
		position: fixed;  /* Fixed = appears on every page when printing */
		top: 0px;  /* Adjust this value to move logo up/down (in pixels) */
		right: 50px;  /* Adjust this value to move logo left/right (in pixels) */
		width: 100px;  /* Logo width */
		height: auto;
		z-index: 9999;
	}
	
	/* Print-only watermark - diagonal text on every page */
	body.contract-results-report::after {
		content: 'reviewmycontract.ac.uk';
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%) rotate(-45deg);
		font-size: 72px;
		font-weight: 300;
		color: #fafafa;
		opacity: 0.12;
		white-space: nowrap;
		z-index: 1;
		pointer-events: none;
	}
	
	body.contract-results-report #header,
	body.contract-results-report #footer,
	body.contract-results-report .no-print {
		display: none !important;
	}
	body.contract-results-report .report-nav-col {
		display: none !important;
	}
	body.contract-results-report .report-row {
		display: block !important;
	}
	body.contract-results-report .report-content-col {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		flex: none !important;
	}
	body.contract-results-report .report-container {
		max-width: 100% !important;
		padding-left: var(--print-margin-left) !important;
		padding-right: var(--print-margin-right) !important;
	}
	/* Risk Score Justification starts on the second page when printing */
	body.contract-results-report #risk-score-justification {
		page-break-before: always;
		break-before: page;
	}
	/* High Importance Clauses starts on the third page when printing */
	body.contract-results-report #high-importance-clauses {
		page-break-before: always;
		break-before: page;
	}
	/* Missing Important Clauses starts on the next page when printing */
	body.contract-results-report #missing-clauses {
		page-break-before: always;
		break-before: page;
	}
	/* Clause-by-Clause Analysis starts on the next page when printing */
	body.contract-results-report #clause-analysis {
		page-break-before: always;
		break-before: page;
	}
	/* Example Discussion Points starts on the next page when printing */
	body.contract-results-report #discussion-points {
		page-break-before: always;
		break-before: page;
	}
	/* Final Recommendation starts on the next page when printing */
	body.contract-results-report #final-recommendation {
		page-break-before: always;
		break-before: page;
	}
}

/* Example Review section */
.example-review-panel {
	border: 1px solid #ddd;
	background: #f5f5f5;
	padding: 10px;
	border-radius: 4px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

#pdfContainer {
	flex: 1;
	overflow-y: auto;
	border: 1px solid #ccc;
	background: #fff;
}

#pdfCanvas {
	width: 100%;
}

#reportFrame {
	width: 100%;
	flex: 1;
	border: 1px solid #ccc;
	background: #fff;
	display: block;
}

@media (max-width: 991px) {
	#reportFrame {
		min-height: 550px;
	}
}

/* Report sidebar active link - Porto blue */
#sidebar .nav-list .nav-link.active {
	color: #0088CC !important;
	font-weight: 600;
}

/* Global: letter-spacing for all text (theme overrides body, so target content wrapper) */
.body,
.body * {
	letter-spacing: 0.0em !important;
}

/* Header bottom shadow - separates header from content */
#header .header-body {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Hero section: background image (optional) */
/* .hero-section {
	position: relative;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-image: url('https://cdn.pixabay.com/photo/2017/07/31/21/27/penmanship-2561217_1280.jpg');
}
.hero-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.9);
	pointer-events: none;
}
.hero-section .container {
	position: relative;
	z-index: 1;
} */

/* ==========================================
   Analyzing Contract page (Porto layout)
   ========================================== */
.analyzing-card .analyzing-spinner-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
}
.analyzing-spinner {
	width: 56px;
	height: 56px;
	border: 4px solid var(--grey-200, #eee);
	border-top-color: var(--primary, #0088CC);
	border-radius: 50%;
	animation: analyzing-spin 0.9s linear infinite;
}
@keyframes analyzing-spin {
	to { transform: rotate(360deg); }
}
.analyzing-status-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.analyzing-status-item {
	padding: 0.6rem 0.9rem;
	margin-bottom: 0.5rem;
	background: var(--grey-100, #f5f5f5);
	border-radius: 6px;
	font-size: 0.95rem;
	color: var(--grey-600, #666);
	transition: background 0.2s, color 0.2s;
}
.analyzing-status-item.active {
	background: var(--primary, #0088CC);
	color: #fff;
}
.analyzing-status-item.completed {
	background: var(--success, #28a745);
	color: #fff;
}
.analyzing-status-item:last-child {
	margin-bottom: 0;
}

/* ==========================================
   Payment / Checkout page (two-card layout)
   ========================================== */
.payment-page .main {
	background: #f5f5f5;
}
.payment-page .checkout-header {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 24px;
}
.payment-page .checkout-header .checkout-header-icon {
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	color: #6c757d;
}
.payment-page .checkout-header h1 {
	font-size: 1.5rem;
	font-weight: 700;
	color: #212529;
	margin: 0 0 4px 0;
	letter-spacing: 0;
}
.payment-page .checkout-header .checkout-header-sub {
	font-size: 0.9375rem;
	color: #6c757d;
	margin: 0;
}
.payment-page .checkout-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	border: 1px solid #e9ecef;
	height: 100%;
}
.payment-page .checkout-card .card-body {
	padding: 24px;
}
@media (min-width: 768px) {
	.payment-page .checkout-card .card-body {
		padding: 28px;
	}
}
.payment-page .checkout-card-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: #212529;
	margin: 0 0 20px 0;
	letter-spacing: 0;
}
.payment-page .order-summary-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 0.9375rem;
	color: #212529;
	margin-bottom: 8px;
}
.payment-page .order-summary-row:last-of-type {
	margin-bottom: 0;
}
.payment-page .order-summary-doc {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9375rem;
	color: #212529;
	margin-bottom: 12px;
}
.payment-page .order-summary-doc .doc-label {
	flex-shrink: 0;
	color: #212529;
}
.payment-page .order-summary-doc .doc-name {
	flex: 1;
	min-width: 0;
	word-break: break-all;
	text-align: right;
}
.payment-page .order-summary-doc .doc-icon {
	color: #6c757d;
	font-size: 1rem;
	flex-shrink: 0;
}
.payment-page .order-summary-doc .order-summary-price {
	flex-shrink: 0;
	margin-left: auto;
}
.payment-page .order-summary-price {
	font-weight: 700;
}
.payment-page .order-summary-list {
	list-style: none;
	padding: 0;
	margin: 20px 0 0 0;
	border-top: 1px solid #e9ecef;
	padding-top: 16px;
}
.payment-page .order-summary-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.9375rem;
	color: #212529;
	margin-bottom: 10px;
}
.payment-page .order-summary-list li:last-child {
	margin-bottom: 0;
}
.payment-page .order-summary-list .check-icon {
	color: #28a745;
	font-size: 1rem;
	flex-shrink: 0;
}
.payment-page .order-summary-disclaimer {
	font-size: 0.8125rem;
	color: #6c757d;
	margin: 16px 0 0 0;
	line-height: 1.4;
}
.payment-page #checkout-loading {
	font-size: 0.9375rem;
	color: #6c757d;
	padding: 16px 0;
}
.payment-page .payment-note {
	font-size: 0.8125rem;
	color: #6c757d;
	margin: 16px 0 0 0;
	line-height: 1.4;
}
.payment-page .payment-secure {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	margin-top: 16px;
	font-size: 0.8125rem;
	color: #6c757d;
}
.payment-page .payment-secure svg {
	flex-shrink: 0;
}
.payment-page .checkout-error {
	text-align: left;
	padding: 20px;
	font-size: 0.9375rem;
	color: #212529;
	background: #fff5f5;
	border: 1px solid #f8d7da;
	border-radius: 6px;
}
.payment-page .checkout-error p {
	margin: 0 0 6px 0;
}
.payment-page .checkout-error p:last-child {
	margin-bottom: 0;
}
.payment-page .checkout-error .error-msg {
	font-size: 0.8125rem;
	color: #721c24;
}

/* ==========================================
   Payment Status page (success / failed)
   ========================================== */
.payment-status-page .main {
	background: #f5f5f5;
}
.payment-status-page .status-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	border: 1px solid #e9ecef;
}
.payment-status-page .status-icon {
	font-size: 4rem;
	line-height: 1;
}
.payment-status-page .status-icon.text-color-success {
	color: var(--success, #28a745) !important;
}
.payment-status-page .status-icon.text-color-danger {
	color: var(--danger, #dc3545) !important;
}
.payment-status-page .status-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #212529;
	margin: 0;
	letter-spacing: 0;
}
.payment-status-page .status-message {
	font-size: 1rem;
	color: #495057;
	line-height: 1.5;
	margin: 0;
}
.payment-status-page .payment-details-box {
	background: #f8f9fa;
	border: 1px solid #e9ecef;
	border-radius: 6px;
	padding: 1.25rem 1.5rem;
}
.payment-status-page .payment-detail-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.5rem;
	font-size: 0.9375rem;
	color: #212529;
	margin-bottom: 0.5rem;
}
.payment-status-page .payment-detail-row:last-of-type {
	margin-bottom: 0;
}
.payment-status-page .payment-detail-row code.transaction-id {
	display: inline-block;
	padding: 0.35rem 0.65rem;
	background: #e9ecef;
	border-radius: 4px;
	font-size: 0.8125rem;
	word-break: break-all;
}
.payment-status-page .payment-detail-row-transaction .transaction-id-wrap {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.25rem;
	justify-content: flex-end;
	min-width: 0;
}
.payment-status-page .btn-copy-transaction {
	cursor: pointer;
	flex-shrink: 0;
	opacity: 0.8;
	transition: opacity 0.2s;
	background: transparent !important;
	border-color: transparent !important;
	color: #6c757d;
}
.payment-status-page .btn-copy-transaction:hover {
	opacity: 1;
	color: #212529;
}
.payment-status-page .btn-copy-transaction.copied {
	background: transparent !important;
	border-color: transparent !important;
}
.payment-status-page .btn-copy-transaction.copied .text-color-success {
	color: var(--success, #28a745) !important;
}
.payment-status-page .payment-detail-note {
	font-size: 0.8125rem;
	color: #6c757d;
	line-height: 1.4;
	margin: 0;
}

/* File uploaded modal – make checkbox clearly visible */
#uploadConfirmModal .form-check-input {
	width: 1.25rem;
	height: 1.25rem;
	border: 2px solid #6c757d;
	background-color: #fff;
	cursor: pointer;
	flex-shrink: 0;
}
#uploadConfirmModal .form-check-input:checked {
	background-color: var(--bs-primary, #0088cc);
	border-color: var(--bs-primary, #0088cc);
}
#uploadConfirmModal .form-check-label {
	line-height: 1.5;
	padding-top: 0.125rem;
}
#uploadConfirmModal .form-check-label a {
	text-decoration: underline;
}

/* Prevent background scroll when upload modal is open */
html.upload-modal-open,
body.upload-modal-open {
	overflow: hidden !important;
	height: 100%;
}
body.upload-modal-open .body {
	overflow: hidden !important;
}

