/*------------------------------------*\
    LAYOUT - HERO BOOKING WIDGET
\*------------------------------------*/
label.with-placeholder {
	background-color: #ffffff;
	color: #304866;
	letter-spacing: 0.5px;
	overflow: hidden;
	position: relative;
}

label .screen-reader {
	position: absolute;
	left: -10000px;
	font-size: 20px;
}

label > .placeholder {
	bottom: 0;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
}

label.with-placeholder > input[type="date"] {
	color: #304866;
	text-transform: uppercase;
}

label.with-placeholder > input[type="date"] ~ .placeholder {
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	font-family: 'LTC-CaslonPro', serif;
	font-size: 12px;
	outline: none;
	width: 100%;
}
label.with-placeholder > input[type="date"] ~ .icon {
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	background-color: #ffffff;
	background-image: url('../images/calendar-icon-noelle.png') !important;
	background-origin: content-box;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	height: 17px;
	right: 5px;
	outline: none;
	pointer-events: none;
	position: absolute;
	top: calc(50% - 9px);
	width: 17px;
}

label.with-placeholder input {
	position: relative;
}

label.with-placeholder input:-moz-placeholder-shown ~ .placeholder {
	display: none;
}

label.with-placeholder input:-ms-input-placeholder ~ .placeholder {
	display: none;
}

label.with-placeholder input:is(:valid, :focus) ~ .placeholder,
label.with-placeholder input:placeholder-shown ~ .placeholder {
	display: none;
}

@media only screen and (min-width:951px) {
	div.banner .callout-area.with-booking-widget div.callout-area {
		bottom: 100px;
	}
}

div.banner .callout-area .booking-widget {
	background-color: #304866;
	margin-top: 10px;
	max-width: 500px;
	overflow: hidden;
	padding: 15px;
}

div.banner .callout-area.with-booking-widget form {
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: 20px;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	margin-inline: auto;
	max-width: calc(100% - 450px);
	padding: 0;
	width: 100%;
}

div.banner .callout-area.with-booking-widget form .top {
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
	gap: 20px;
	min-width: 265px;
}

label.with-placeholder > input[type="date"] {
	background-color: #ffffff;
	border: none;
	border-radius: 4px;
	color: #304866;
	font-family: 'LTC-CaslonPro', serif;
	font-size: 16px;
	height: 29px;
	margin: 0;
	max-width: 100%;
	padding: 1px 5px;
	text-align: left;
	text-transform: none;
	width: 100%;
}

@media not all and (min-resolution:.001dpcm) { @media { /* Safari <16 only override */
	label.with-placeholder > input[type="date"] {
		padding: 5px;
	}
}}
@supports selector(:user-invalid) { /* Safari 16+ and Firefox only for now override */
	label.with-placeholder > input[type="date"] {
		padding: 5px;
	}
}
@-moz-document url-prefix() { /* Firefox only */
	label.with-placeholder > input[type="date"] {
		padding: 1px 5px;
	}
}

html:not(.using-keyboard-navigation) div.banner .callout-area.with-booking-widget input[type="date"]:focus-visible {
	outline: none;
}

div.banner .callout-area.with-booking-widget .placeholder {
	background-color: #ffffff;
	font-size: 16px;
	padding: 6px 5px 4px;
}

input:not(:focus, :valid)::-webkit-datetime-edit {
	opacity: 0;
}

div.banner .callout-area.with-booking-widget input[type="image"],
div.banner .callout-area.with-booking-widget input[type="submit"] {
	appearance: none;
	background-color: rgba(56,81,113,0.9);
	border: 1px solid #fff;
	color: #ffffff;
	cursor: pointer;
	font-family: 'benton-sans', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2.5px;
	margin: 0;
	max-width: -webkit-min-content;
	max-width: -moz-min-content;
	max-width: min-content;
	padding: 8px 15px 6px; /* firefox does this better when fonts have larger descenders */
	text-transform: uppercase;
}
@-moz-document url-prefix() { /* Firefox only */
	label.with-placeholder > input[type="date"] {
		width: 100%;
		margin-inline: 0 7px;
	}
}

/* done this way for older Safari browsers that don't support :is() */
div.banner .callout-area.with-booking-widget input[type="image"]:hover,
div.banner .callout-area.with-booking-widget input[type="image"]:focus-visible,
div.banner .callout-area.with-booking-widget input[type="submit"]:hover,
div.banner .callout-area.with-booking-widget input[type="submit"]:focus-visible {
	background-color: #ffffff;
	color: #304866;
}

@media not all and (min-resolution:.001dpcm) { @media { /* Safari <16 only override */
}}
@supports selector(:user-invalid) { /* Safari 16+ and Firefox only for now override */
}
@-moz-document url-prefix() { /* Firefox only */
	label.with-placeholder > input[type="date"] {
		padding-right: 2px;
	}
}

@media only screen and (min-width:785px) {
	div.banner .callout-area form {
		min-width: 100%;
	}
}

@media only screen and (max-width:784px) {
	div.banner .callout-area .booking-widget {
		bottom: revert;
		left: revert;
		margin-inline: 3px;
		margin-top: 0;
		max-width: revert;
		padding: 15px 20px 20px;
		position: relative;
		width: auto;
	}
	div.banner .callout-area.with-booking-widget form {
		max-width: 100%;
	}
	@supports (-webkit-touch-callout: none) {
		/* CSS specific to iOS devices */
		label.with-placeholder > input[type="date"] {
			height: 34px;
		}
	}
	div.banner .callout-area.with-booking-widget input[type="image"],
	div.banner .callout-area.with-booking-widget input[type="submit"] {
		max-width: 100%;
		width: auto;
	}
}