/* Pages family: title and text, forms, list of places, grey band, text beside a whole photo, jump-to point,
   privacy policy, page not found. */

/* Title and text */
.page-text { display: flex; flex-direction: column; position: relative; padding: 0 10px; margin: 80px 0 0; }
.page-text--space-below { margin-bottom: 80px; }
.page-text__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	max-width: min(100%, 1140px);
	margin: 0 auto;
	padding: 10px 0;
}
.page-text__inner > * { max-width: 100%; }
.page-text__title,
.page-places__title {
	margin: 0;
	padding: 0;
	font-family: "Prata", Sans-serif;
	font-size: 38px;
	font-weight: 600;
	line-height: 1;
	color: #1F1E1C;
}
.page-text .text__inner,
.page-places .text__inner,
.page-band .text__inner,
.page-photo-text .text__inner { margin-bottom: -15px; }

/* Form */
.page-form { display: flex; flex-direction: column; position: relative; margin: 40px 0 80px; }
.page-form__inner {
	display: flex;
	flex-direction: column;
	gap: 0 30px;
	width: 100%;
	max-width: min(100%, 1140px);
	margin: 0 auto;
}
.page-form__box {
	display: flex;
	flex-direction: column;
	gap: 20px;
	position: relative;
	width: 100%;
	min-width: 0;
	padding: 40px;
	background-color: #F5F5F5;
	transition: background .3s, border .3s, box-shadow .3s, transform .4s;
}
.page-form__box > * { max-width: 100%; }
.page-form__text { font-size: 14px; }

/* List of places */
.page-places { display: flex; flex-direction: column; position: relative; padding: 0 10px; margin: 125px 0; }
.page-places__inner {
	display: flex;
	flex-direction: row;
	gap: 0 20px;
	width: 100%;
	max-width: min(100%, 1140px);
	margin: 0 auto;
	padding: 10px 0;
}
.page-places__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 20px;
	position: relative;
	width: 100%;
	min-width: 0;
	padding: 10px;
}
.page-places__body > * { max-width: 100%; }
.page-places__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(1, 1fr);
	gap: 40px;
	position: relative;
	width: 100%;
	margin-top: 30px;
}
.page-places__column { display: flex; flex-direction: column; gap: 40px; position: relative; min-width: 0; padding: 10px; }
.page-places__place {
	display: flex;
	flex-direction: column;
	gap: 20px;
	position: relative;
	padding: 0 0 40px;
	border-bottom: 1px solid #E4E4E4;
}
.page-places__place:last-child { padding: 0; border-bottom: 0; }
.page-places__name {
	display: flex;
	align-items: center;
	margin: 0;
	font-family: "Inter Tight", Sans-serif;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
	color: #76232F;
}
.page-places__pin { display: flex; position: relative; }
.page-places__pin i { width: 1.25em; font-size: 14px; color: #76232F; transition: color .3s; }
.page-places__label { align-self: center; padding-inline-start: 5px; transition: color .3s; }
/* A link added to a place name (by the automatic internal links) fills the line, as before. */
.page-places__label a { display: flex; align-items: center; font-size: inherit; }

/* Text on a grey band */
.page-band { display: flex; flex-direction: column; position: relative; padding: 10px 10px 0; }
/* Straight under a page header the band sits 10px higher (the old header block had no bottom padding there). */
.page-hero + .page-band { margin-top: -10px; }
.page-band__box {
	display: flex;
	flex-direction: column;
	position: relative;
	padding: 0 30px;
	background-color: #F5F5F5;
	transition: background .3s, border .3s, box-shadow .3s, transform .4s;
}
.page-band__inner {
	display: flex;
	flex-direction: row;
	width: 100%;
	max-width: min(100%, 1140px);
	margin: 0 auto;
	padding: 30px 0;
}
.page-band__text { flex-grow: 1; min-width: 0; }

/* Text beside a whole photo */
.page-photo-text { display: flex; flex-direction: column; position: relative; margin: 50px 0; }
.page-photo-text__inner {
	display: flex;
	flex-direction: row;
	gap: 0 30px;
	width: 100%;
	max-width: min(100%, 1140px);
	margin: 0 auto;
}
.page-photo-text--photo-left .page-photo-text__inner { flex-direction: row-reverse; }
.page-photo-text__body,
.page-photo-text__media { display: flex; flex-direction: column; gap: 20px; position: relative; min-width: 0; }
.page-photo-text__body { justify-content: center; }
.page-photo-text__body > *,
.page-photo-text__media > * { max-width: 100%; }
.page-photo-text__title {
	margin: 0;
	padding: 0;
	font-family: "Prata", Sans-serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 1;
	color: #76232F;
}
.page-photo-text__photo { text-align: center; }
.page-photo-text__photo img { display: inline-block; width: 100%; vertical-align: middle; }

/* Jump-to point: takes no space, but keeps the gaps above and below it apart as before. */
.page-anchor { display: flex; flex-direction: column; position: relative; }

/* Title and code (privacy policy) */
.page-policy { display: flex; flex-direction: column; position: relative; padding: 0 10px; margin: 40px 0; }
.page-policy__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	max-width: min(100%, 1140px);
	margin: 0 auto;
	padding: 10px 0;
}
.page-policy__inner > * { max-width: 100%; }
.page-policy__title { margin: 0; padding: 0; font-family: "Inter Tight", Sans-serif; font-weight: 600; line-height: 1; color: #76232F; }

@media (min-width: 768px) {
	.page-text__inner,
	.page-form__inner { max-width: 877px; }
	.page-places__inner { max-width: 1200px; }
	.page-photo-text__body,
	.page-photo-text__media { width: 50%; }
}
@media (max-width: 767px) {
	.page-text,
	.page-places { margin: 40px 0; }
	.page-text { margin-bottom: 0; }
	.page-text__title,
	.page-places__title { font-size: 30px; line-height: 45px; }
	.page-text__inner, .page-form__inner, .page-form__box, .page-places__inner, .page-places__body, .page-places__column,
	.page-places__place, .page-band, .page-band__box, .page-band__inner, .page-photo-text__body, .page-photo-text__media,
	.page-anchor, .page-policy, .page-policy__inner { flex-wrap: wrap; }
	.page-form__box { padding: 20px; }
	.page-places__grid { grid-template-columns: repeat(1, 1fr); }
	.page-photo-text { padding: 0 15px; }
	.page-photo-text__inner,
	.page-photo-text--photo-left .page-photo-text__inner { flex-direction: row; flex-wrap: wrap; gap: 30px 0; }
	.page-photo-text__body,
	.page-photo-text__media { width: 100%; }
	.page-photo-text__title { line-height: 1.7em; }
}

/*
 * Gravity Forms: the rules the Contribute and Contact pages added to their form blocks, unscoped as before
 * and loaded before Gravity Forms' own stylesheets (see inc/family-pages.php). The submit buttons of both
 * forms are dark red, black on hover.
 */
.gform-body .gfield--no-description .gfield_checkbox {
	flex-direction: row;
}

.gform-body .gfield--no-description .gfield_radio {
	flex-direction: row;
}

.gform-body .gfield input {
	border-radius: 0px;
	border-color: #d3d3d3;
	border-width: 2px;
}

.gform-body .gfield select {
	border-radius: 0px;
	border-color: #d3d3d3;
	border-width: 2px;
}

.gform-body .gfield_no_follows_desc {
	padding-top: 25px;
}

.gform-body .gfield--no-description label.gform-field-label {
	font-weight: 600 !important;
}

.gform-body .gfield--no-description .gform-field-label {
	font-weight: 600 !important;
}

.gform-body .gfield_no_follows_desc b {
	font-size: 18px;
	color: #76232f;
}

#gform_submit_button_1,
#gform_submit_button_2 {
	min-width: 100%;
	background-color: #76232f;
	border: none;
	border-radius: 0px;
	color: #ffffff;
}

#gform_submit_button_1:hover,
#gform_submit_button_2:hover {
	min-width: 100%;
	background-color: #000000;
	border: none;
	border-radius: 0px;
	color: #ffffff;
}

.gform-body .gfield--no-description .gfield_label_before_complex {
	text-transform: uppercase !important;
	font-weight: 600 !important;
}

.gfield_checkbox .gchoice .gform-field-label {
	text-transform: none !important;
	font-weight: 400 !important;
}

.gform-body .form_sublabel_below .gfield--no-description .ginput_container_radio .gfield_radio .gchoice .gform-field-label {
	text-transform: none !important;
	font-weight: 400 !important;
}

.gform-body .form_sublabel_below .gfield--no-description .ginput_container_checkbox .gfield_checkbox .gchoice .gform-field-label {
	text-transform: none !important;
	font-weight: 400 !important;
}

.gfield--datepicker-no-icon input[type=text] {
	min-width: 100%;
}

.gform-body .gfield--no-description textarea {
	border-radius: 0px;
	border-color: #d3d3d3;
	border-width: 2px;
	min-height: 135px !important;
}

.gform-body .gform-field-label .gfield_required_asterisk {
	color: #96bf33;
	font-size: 16px;
}

.gform-body .gfield--no-description .ginput_container_text input[type=text] {
	min-height: 50px;
	padding-top: 3px;
}

.gform-body .gfield--no-description input[type=email] {
	min-height: 50px;
	padding-top: 3px;
}

.gform-body .gfield--no-description input[type=tel] {
	min-height: 50px;
	padding-top: 3px;
}

.gform-body .gfield--no-description input[type=number] {
	min-height: 50px;
	padding-top: 3px;
}

.gform-body .gfield--no-description .gfield_checkbox {
	padding-top: 12.5px;
}

.gform-body .gfield--no-description select {
	min-height: 50px;
	padding-top: 3px;
}

body .gform_wrapper ::placeholder,
body .gform_wrapper ::-webkit-input-placeholder,
body .gform_wrapper input[placeholder] {
	opacity: 0.8;
}

#gform_browse_button_1_17 {
	background-color: #76232f;
}

.gform-theme--framework .gfield:where(.gfield--type-fileupload,.gfield--input-type-fileupload) .gform_drop_area::before {
	color: #76232f;
}
