/**
 * Trimmed Bootstrap 5.3.8 modal CSS.
 *
 * The client-login modal needs Bootstrap's .modal/.fade/.btn-close behavior,
 * but this theme has no other Bootstrap dependency and the full ~150KB
 * bootstrap.min.css would also re-style bare button/table/heading elements
 * sitewide via its reboot. This file keeps only the rules the modal actually
 * uses, pulled verbatim from the real v5.3.8 source (not from memory).
 *
 * Deliberately NOT wrapped in @layer. An earlier version of this file wrapped
 * everything in `@layer bootstrap { ... }` so it could never win a
 * specificity fight against this theme's own unlayered CSS. That backfired:
 * per the Cascade Layers spec, ANY unlayered rule beats EVERY layered rule
 * regardless of specificity — and Divi's parent `style.css` ships a classic
 * Eric Meyer reset (`a, ..., div, ..., { margin:0; padding:0; border:0;
 * ...; background:transparent; }`, unlayered) that targets bare `div` and
 * `h1`-`h6`. `.modal-dialog`, `.modal-content`, `.modal-backdrop`, and
 * `.modal-header` are all `<div>`s, so that reset silently zeroed their
 * margin/padding/border/background here even though these selectors are far
 * more specific — the modal rendered with no backdrop dimming, no card
 * border, and no background. Left unlayered, normal specificity rules apply
 * and these one-class selectors (0,1,0) comfortably beat Divi's bare-tag
 * reset (0,0,1) the same way real Bootstrap CSS already does on any other
 * theme that lacks that reset.
 *
 * A few of Bootstrap's --bs-modal-* custom properties reference global
 * --bs-body-color, --bs-border-* and --bs-box-shadow* tokens that normally
 * live in bootstrap.css's full :root block. Rather than importing that whole block,
 * their real v5.3.8 default values are inlined directly onto .modal below.
 *
 * This is a derived, hand-trimmed adaptation, not a byte-identical vendor
 * copy — a future Bootstrap version bump should be re-derived from the real
 * source, not used to naively overwrite this file.
 */

.fade {
	transition: opacity 0.15s linear;
}
@media (prefers-reduced-motion: reduce) {
	.fade {
		transition: none;
	}
}
.fade:not(.show) {
	opacity: 0;
}

.modal {
	--bs-body-color: #212529;
	--bs-body-bg: #fff;
	--bs-border-width: 1px;
	--bs-border-color: #dee2e6;
	--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
	--bs-border-radius-lg: 0.5rem;
	--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
	--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	--bs-modal-zindex: 1055;
	--bs-modal-width: 500px;
	--bs-modal-padding: 1rem;
	--bs-modal-margin: 0.5rem;
	--bs-modal-color: var(--bs-body-color);
	--bs-modal-bg: var(--bs-body-bg);
	--bs-modal-border-color: var(--bs-border-color-translucent);
	--bs-modal-border-width: var(--bs-border-width);
	--bs-modal-border-radius: var(--bs-border-radius-lg);
	--bs-modal-box-shadow: var(--bs-box-shadow-sm);
	--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
	--bs-modal-header-padding-x: 1rem;
	--bs-modal-header-padding-y: 1rem;
	--bs-modal-header-padding: 1rem 1rem;
	--bs-modal-header-border-color: var(--bs-border-color);
	--bs-modal-header-border-width: var(--bs-border-width);
	--bs-modal-title-line-height: 1.5;
	position: fixed;
	top: 0;
	left: 0;
	z-index: var(--bs-modal-zindex);
	display: none;
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	outline: 0;
}

.modal-dialog {
	position: relative;
	width: auto;
	margin: var(--bs-modal-margin);
	pointer-events: none;
}
.modal.fade .modal-dialog {
	transform: translate(0, -50px);
	transition: transform 0.3s ease-out;
}
@media (prefers-reduced-motion: reduce) {
	.modal.fade .modal-dialog {
		transition: none;
	}
}
.modal.show .modal-dialog {
	transform: none;
}
.modal.modal-static .modal-dialog {
	transform: scale(1.02);
}

.modal-dialog-centered {
	display: flex;
	align-items: center;
	min-height: calc(100% - var(--bs-modal-margin) * 2);
}

.modal-content {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	color: var(--bs-modal-color);
	pointer-events: auto;
	background-color: var(--bs-modal-bg);
	background-clip: padding-box;
	border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
	border-radius: var(--bs-modal-border-radius);
	outline: 0;
}

.modal-backdrop {
	--bs-backdrop-zindex: 1050;
	--bs-backdrop-bg: #000;
	--bs-backdrop-opacity: 0.5;
	position: fixed;
	top: 0;
	left: 0;
	z-index: var(--bs-backdrop-zindex);
	width: 100vw;
	height: 100vh;
	background-color: var(--bs-backdrop-bg);
}
.modal-backdrop.fade {
	opacity: 0;
}
.modal-backdrop.show {
	opacity: var(--bs-backdrop-opacity);
}

.modal-header {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	padding: var(--bs-modal-header-padding);
	border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
	border-top-left-radius: var(--bs-modal-inner-border-radius);
	border-top-right-radius: var(--bs-modal-inner-border-radius);
}
.modal-header .btn-close {
	padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
	margin-top: calc(-0.5 * var(--bs-modal-header-padding-y));
	margin-right: calc(-0.5 * var(--bs-modal-header-padding-x));
	margin-bottom: calc(-0.5 * var(--bs-modal-header-padding-y));
	margin-left: auto;
}

.modal-title {
	margin-bottom: 0;
	line-height: var(--bs-modal-title-line-height);
}

.modal-body {
	position: relative;
	flex: 1 1 auto;
	padding: var(--bs-modal-padding);
}

@media (min-width: 576px) {
	.modal {
		--bs-modal-margin: 1.75rem;
		--bs-modal-box-shadow: var(--bs-box-shadow);
	}
	.modal-dialog {
		max-width: var(--bs-modal-width);
		margin-right: auto;
		margin-left: auto;
	}
}
@media (min-width: 992px) {
	.modal-lg {
		--bs-modal-width: 800px;
	}
}

.btn-close {
	--bs-btn-close-color: #000;
	--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e");
	--bs-btn-close-opacity: 0.5;
	--bs-btn-close-hover-opacity: 0.75;
	--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
	--bs-btn-close-focus-opacity: 1;
	--bs-btn-close-disabled-opacity: 0.25;
	box-sizing: content-box;
	width: 1em;
	height: 1em;
	padding: 0.25em 0.25em;
	color: var(--bs-btn-close-color);
	background: transparent var(--bs-btn-close-bg) center / 1em auto no-repeat;
	filter: var(--bs-btn-close-filter);
	border: 0;
	border-radius: 0.375rem;
	opacity: var(--bs-btn-close-opacity);
}
.btn-close:hover {
	color: var(--bs-btn-close-color);
	text-decoration: none;
	opacity: var(--bs-btn-close-hover-opacity);
}
.btn-close:focus {
	outline: 0;
	box-shadow: var(--bs-btn-close-focus-shadow);
	opacity: var(--bs-btn-close-focus-opacity);
}
.btn-close:disabled,
.btn-close.disabled {
	pointer-events: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	opacity: var(--bs-btn-close-disabled-opacity);
}
