/* ==========================================================================
   Bohemian Marine – Legal pages (Booking Terms, Privacy Policy)
   3-column layout inside a single text element
   Wrap the content in: <div class="bm-legal"> … </div>
   ========================================================================== */

.bm-legal {
	--bm-legal-cols: 3;
	--bm-legal-gap: 48px;
	--bm-legal-heading: #13304d;
	--bm-legal-accent: #1a6e9e;
	--bm-legal-text: #3c4852;
	--bm-legal-muted: #55606b;
	--bm-legal-rule: #e3ddd2;

	column-count: var(--bm-legal-cols);
	column-gap: var(--bm-legal-gap);
	column-rule: 1px solid var(--bm-legal-rule);
	color: var(--bm-legal-text);
	font-size: 16px;
	line-height: 1.7;
}

/* Intro block: spans all columns above the text
   ------------------------------------------------------------------------ */
.bm-legal__intro {
	column-span: all;
	max-width: 780px;
	margin: 0 0 48px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--bm-legal-rule);
	font-size: 18px;
	line-height: 1.65;
	color: var(--bm-legal-text);
}

.bm-legal__intro-title {
	margin: 0 0 16px;
	font-size: 32px;
	line-height: 1.2;
	color: var(--bm-legal-heading);
}

.bm-legal__updated {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	color: var(--bm-legal-muted);
}

/* Section headings (1. Booking, 2. Altering a booking …)
   ------------------------------------------------------------------------ */
.bm-legal__title {
	margin: 40px 0 14px;
	padding-top: 16px;
	border-top: 2px solid var(--bm-legal-accent);
	font-size: 22px;
	line-height: 1.3;
	color: var(--bm-legal-heading);
	break-after: avoid;
	page-break-after: avoid;
}

.bm-legal__title:first-child,
.bm-legal__intro + .bm-legal__title {
	margin-top: 0;
}

/* Sub headings (1.1 Day charter, 3.1 Day trips …)
   ------------------------------------------------------------------------ */
.bm-legal__subtitle {
	margin: 24px 0 8px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--bm-legal-accent);
	break-after: avoid;
	page-break-after: avoid;
}

.bm-legal__title + .bm-legal__subtitle {
	margin-top: 8px;
}

/* Body text
   ------------------------------------------------------------------------ */
.bm-legal p {
	margin: 0 0 14px;
	orphans: 3;
	widows: 3;
}

.bm-legal strong {
	color: var(--bm-legal-heading);
}

.bm-legal a {
	color: var(--bm-legal-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.bm-legal a:hover,
.bm-legal a:focus-visible {
	color: var(--bm-legal-heading);
}

/* Lists (cancellation charges)
   ------------------------------------------------------------------------ */
.bm-legal ul {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
	break-inside: avoid;
	page-break-inside: avoid;
}

.bm-legal li {
	position: relative;
	margin: 0 0 8px;
	padding-left: 20px;
}

.bm-legal li::before {
	content: "";
	position: absolute;
	top: 0.7em;
	left: 0;
	width: 8px;
	height: 2px;
	background: var(--bm-legal-accent);
}

/* Sign-off at the end
   ------------------------------------------------------------------------ */
.bm-legal__signoff {
	margin-top: 24px;
	font-weight: 700;
	color: var(--bm-legal-heading);
}

/* Responsive
   ------------------------------------------------------------------------ */
@media (max-width: 1100px) {
	.bm-legal {
		--bm-legal-cols: 2;
		--bm-legal-gap: 40px;
	}
}

@media (max-width: 720px) {
	.bm-legal {
		--bm-legal-cols: 1;
		column-rule: none;
	}

	.bm-legal__intro {
		margin-bottom: 32px;
		padding-bottom: 24px;
		font-size: 17px;
	}

	.bm-legal__intro-title {
		font-size: 26px;
	}

	.bm-legal__title {
		margin-top: 32px;
		font-size: 20px;
	}
}

/* Print: one column, no rules
   ------------------------------------------------------------------------ */
@media print {
	.bm-legal {
		column-count: 1;
		column-rule: none;
		font-size: 11pt;
	}
}

.bm-legal-section {
	padding-block: 4rem;
}