/* Bootstrap-3-compatible grid + button + modal shim
 * Replaces ~150KB bootstrap.min.css with ~7KB layout-only fallback.
 * Cols work both inside .row (flex layout) and standalone (float layout),
 * since several CF7 forms use col-md-* without a wrapping .row. */

.container,
.container-fluid,
.row,
[class*="col-"] {
	box-sizing: border-box;
}

.container,
.container-fluid {
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	padding-right: 15px;
	padding-left: 15px;
}

@media (min-width: 768px) { .container { max-width: 750px; } }
@media (min-width: 992px) { .container { max-width: 970px; } }
@media (min-width: 1200px) { .container { max-width: 1170px; } }

.row {
	display: flex;
	flex-wrap: wrap;
	margin-right: -15px;
	margin-left: -15px;
}
.row::after { content: ""; display: table; clear: both; }

[class*="col-"] {
	position: relative;
	min-height: 1px;
	padding-right: 15px;
	padding-left: 15px;
	float: left;
	width: 100%;
}

/* Default mobile widths (BS4 .col-N syntax, no breakpoint infix) */
.col-12 { width: 100%; }
.col-11 { width: 91.66667%; }
.col-10 { width: 83.33333%; }
.col-9  { width: 75%; }
.col-8  { width: 66.66667%; }
.col-7  { width: 58.33333%; }
.col-6  { width: 50%; }
.col-5  { width: 41.66667%; }
.col-4  { width: 33.33333%; }
.col-3  { width: 25%; }
.col-2  { width: 16.66667%; }
.col-1  { width: 8.33333%; }

@media (min-width: 576px) {
	.col-sm-1  { width: 8.33333%; }   .col-sm-2  { width: 16.66667%; }
	.col-sm-3  { width: 25%; }        .col-sm-4  { width: 33.33333%; }
	.col-sm-5  { width: 41.66667%; }  .col-sm-6  { width: 50%; }
	.col-sm-7  { width: 58.33333%; }  .col-sm-8  { width: 66.66667%; }
	.col-sm-9  { width: 75%; }        .col-sm-10 { width: 83.33333%; }
	.col-sm-11 { width: 91.66667%; }  .col-sm-12 { width: 100%; }
}

@media (min-width: 768px) {
	.col-md-1  { width: 8.33333%; }   .col-md-2  { width: 16.66667%; }
	.col-md-3  { width: 25%; }        .col-md-4  { width: 33.33333%; }
	.col-md-5  { width: 41.66667%; }  .col-md-6  { width: 50%; }
	.col-md-7  { width: 58.33333%; }  .col-md-8  { width: 66.66667%; }
	.col-md-9  { width: 75%; }        .col-md-10 { width: 83.33333%; }
	.col-md-11 { width: 91.66667%; }  .col-md-12 { width: 100%; }
	.col-md-offset-1 { margin-left: 8.33333%; }
	.col-md-offset-2 { margin-left: 16.66667%; }
	.col-md-offset-3 { margin-left: 25%; }
}

@media (min-width: 992px) {
	.col-lg-1  { width: 8.33333%; }   .col-lg-2  { width: 16.66667%; }
	.col-lg-3  { width: 25%; }        .col-lg-4  { width: 33.33333%; }
	.col-lg-5  { width: 41.66667%; }  .col-lg-6  { width: 50%; }
	.col-lg-7  { width: 58.33333%; }  .col-lg-8  { width: 66.66667%; }
	.col-lg-9  { width: 75%; }        .col-lg-10 { width: 83.33333%; }
	.col-lg-11 { width: 91.66667%; }  .col-lg-12 { width: 100%; }
}

/* Clearfix for common containers that hold floated cols outside .row.
 * CF7 forms in particular often use col-md-* without a row wrapper. */
.modal-body::after,
.modal-content::after,
form::after,
.wpcf7-form::after,
.wpcf7 form::after,
.clearfix::after {
	content: "";
	display: table;
	clear: both;
}

/* Submit buttons and other block-level form elements should clear floats. */
.wpcf7-form .wpcf7-submit,
form input[type="submit"],
form button[type="submit"] {
	clear: both;
}

/* Minimal .btn shape */
.btn {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid transparent;
	border-radius: 4px;
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	user-select: none;
	background-color: transparent;
}
.btn:hover, .btn:focus { text-decoration: none; }

/* Utilities */
.align-middle { vertical-align: middle; }
.text-center  { text-align: center; }
.text-left    { text-align: left; }
.text-right   { text-align: right; }

/* Minimal form-control */
.form-control {
	display: block;
	width: 100%;
	padding: 6px 12px;
	font-size: 14px;
	line-height: 1.4;
	color: #555;
	background-color: #fff;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}

/* Modal — display rules + container chrome */
.modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1050;
	overflow: hidden;
	outline: 0;
}
.modal.show {
	display: block;
	overflow-x: hidden;
	overflow-y: auto;
}
.modal-dialog {
	position: relative;
	width: auto;
	margin: 1.75rem auto;
	max-width: 500px;
	pointer-events: none;
}
.modal.show .modal-dialog { pointer-events: auto; }
.modal-content {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	background-color: #fff;
	border: 1px solid rgba(0,0,0,.2);
	border-radius: .3rem;
	outline: 0;
}
.modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 1rem;
	border-bottom: 1px solid #e9ecef;
}
.modal-title { margin: 0; line-height: 1.5; font-size: 1.25rem; }
.modal-body { position: relative; padding: 1rem; flex: 1 1 auto; }
.modal-footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 1rem;
	border-top: 1px solid #e9ecef;
}
.modal-backdrop {
	position: fixed;
	inset: 0;
	z-index: 1040;
	background-color: #000;
}
.modal-backdrop.show { opacity: .5; }
.modal .close {
	float: right;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: #000;
	background: transparent;
	border: 0;
	opacity: .5;
	cursor: pointer;
	padding: 0 .5rem;
}
.modal .close:hover { opacity: .75; }
body.modal-open { overflow: hidden; }
.fade { transition: opacity .15s linear; }

/* Slick-initialized rows: revert flex/float layout so slick can take over. */
.row.slick-initialized,
.row.slick-slider {
	display: block;
	margin-right: 0;
	margin-left: 0;
}
.slick-list,
.slick-track {
	display: block;
}
.slick-slide,
.slick-slide [class*="col-"],
.slick-track > [class*="col-"] {
	float: none;
}
.slick-slide {
	width: auto;
}
