/*
Start: Theme
*/
/*
.button.button-text {
	border-color: transparent !important;
	background: transparent !important;
	color: var( --itinerary-color_accent1, #204f66 );
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.button.button-text:hover {
	color: var( --itinerary-color_accent2, #966228 );
}
*/

/* add 100px scroll top offset for anchor links */
html {
	scroll-padding-top: 110px;
}

html:has(body.admin-bar) {
	scroll-padding-top: 140px;
}

pre, dl, table, ul, ol, li, form {
	margin: 0 0 10px;
}

@media ( max-width: 767.9px ) {
	.container .content-block.container {
		padding: 0 !important;
	}
}
/*
End: Theme
*/

/* Start: Generated body classes */
body.logged-in  .hide-if-logged-in  { display: none; }
body.logged-out .hide-if-logged-out { display: none; }
body.is-admin   .hide-if-admin      { display: none; }
body.logged-in  .show-if-logged-in  { display: block; }
body.logged-out .show-if-logged-out { display: block; }
body.is-admin   .show-if-admin      { display: block; }
/* End: Generated body classes */

/*
Start: Gravity Forms
*/
body.account-page .gform_wrapper {
	max-width: none !important;
	margin: 0 !important;
}
/*
End: Gravity Forms
*/

/*
Start: Account Pages
*/
body.single-ah_account_page .content-block .content {
	max-width: 600px !important;
}
.account-page .page-header h2 {
	margin-top: 20px;
}

.account-page .page-header a {
	text-decoration: underline;
	color: var( --itinerary-color_accent1, #204f66 );
}

.account-page .page-header a:hover,
.account-page .page-header a:focus-visible {
	text-decoration: underline;
	color: var( --itinerary-color_accent2, #966228 );
}
/*
End: Account Pages
*/

/*
Start: Account Menus
*/
.account-columns {
	margin: 40px 0;
}

.account-content > .flex-section:first-child {
	margin-top: 0;
}

.account-content > .flex-section:last-child {
	margin-bottom: 0;
}

@media ( min-width: 980.1px ) {
	.account-columns {
		display: grid;
		grid-template-columns: 1fr 4fr;
		grid-gap: 0 40px;
	}

	/* Sticky account sidebar */
	.account-sidebar {
		position: relative;
	}

	.ah-mobile-account-nav {
		position: sticky;
		top: 50px;
		overflow: auto;
		max-height: calc( 100vh - 50px );
	}
	/* End sticky account sidebar */

}

@media ( max-width: 980px ) {
	.account-sidebar {
		margin-bottom: 15px;
	}

	.account-content .content-block {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Fixed (sticky) account menu navigation */
@media ( max-width: 980px ) {
	body .account-sidebar {
		position: relative;
		z-index: 1000;
	}

	body.scrolled-past-account-sidebar .account-sidebar {
		position: sticky;
		top: 0;
	}

	body.admin-bar.scrolled-past-account-sidebar  .account-sidebar {
		top: 32px;
	}

	.ah-account-menu-nav {
		max-height: calc(100vh - 46px);
		overflow-y: auto;
	}

	/* Scroll to hide/show the navigation */
	.account-sidebar {
		transform: translateY(0%);
		transition: transform 0.2s linear;
		margin-top: -1px;
	}

	body.scrolled-past-account-sidebar .ah-account-menu-nav {
		padding: 20px 32px;
	}

	body.scrolled-past-account-sidebar #ah-mobile-nav-label {
		padding-left: 32px;
		padding-right: 50px;
	}
	body.scrolled-past-account-sidebar #ah-mobile-nav-label::after {
		right: 32px;
	}

	body.scrolled-past-account-sidebar.scrolled-down .account-sidebar {
		transform: translateY(-110%);
	}
}

@media ( max-width: 782px ) {
	/* At 782px, the admin bar becomes 46px tall */
	body.admin-bar.scrolled-past-account-sidebar .account-sidebar {
		top: 46px;
	}
}

@media ( max-width: 600px ) {
	/* At 600px, the admin bar is no longer fixed */
	body.admin-bar.scrolled-past-account-sidebar .account-sidebar {
		top: 0;
	}
}

/* Adjust to margins of the page */
@media ( max-width: 980px ) {
	body.scrolled-past-account-sidebar .account-sidebar {
		margin-left: -20px;
		margin-right: -20px;
	}
}
@media ( max-width: 980px ) and ( min-width: 767px ) {
	body.scrolled-past-account-sidebar .account-sidebar {
		margin-left: -32px;
		margin-right: -32px;
	}
}

/*
End: Account Menus
*/


/* Start: Account sidebar - user details */
.ah-account-user {
	margin: 0 0 15px;
	padding-bottom: 15px;
	border-bottom: 1px solid #bebebe;
}

.ah-account-user-name {
	font-size: 14px;
	font-weight: 600;
	text-transform: none;
}

.ah-account-email {
	font-size: 12px;
	font-weight: 400;
	text-transform: none;
}
/* End: Account sidebar - user details */




/*
Start: Custom buttons
*/
html .ah-button.button {
	font-size: 14px;
	padding: 10px 20px;

	background: #aa4a3a;
	color: #fff;
	border: 1px solid #aa4a3a;
}

@media ( min-width: 1200px ) {
	html .ah-button.button:not(.button-small) {
		font-size: 16px;
		padding: 15px 25px;
	}
}

html .ah-button.button:hover,
html .ah-button.button:active {
	background: var( --itinerary-color_accent1, #204f66 );
	color: #fff;
	border: 1px solid var( --itinerary-color_accent1, #204f66 );
}

html .ah-button.button-secondary {
	background: transparent;
	color: #aa4a3a;
	border: 1px solid #aa4a3a;
}
html .ah-button.button-secondary:hover,
html .ah-button.button-secondary:active {
	background: #dee5e8;
	color: var( --itinerary-color_accent1, #204f66 );
	border: 1px solid var( --itinerary-color_accent1, #204f66 );
}

/*
End: Custom buttons
*/

/*
Start: Account Sidebar
*/
.ah-account-menu-nav {
	background: #f1f1f1;
	padding: 40px 30px 25px;
}

nav.ah-account-menu-nav ul,
nav.ah-account-menu-nav li {
	display: block;
	list-style: none;
	margin: 0;
	padding: 0;
}

nav.ah-account-menu-nav {
	font-size: 14px;
	text-transform: uppercase;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
	font-weight: 500;
	line-height: 1.35;
}

nav.ah-account-menu-nav ul {
}

nav.ah-account-menu-nav li {
	margin: 5px 0 10px;
}

nav.ah-account-menu-nav li a {
	display: inline-block;
	padding: 4px 0;
}

.account-sidebar .chevron {
	display: none;
}

nav.ah-account-menu-nav ul.sub-menu {
}

nav.ah-account-menu-nav ul.sub-menu li {
	margin: 0 0 5px 10px;
}

nav.ah-account-menu-nav ul.sub-menu li > a::before {
	content: '\2022';
	margin-right: 5px;
}

nav.ah-account-menu-nav ul.sub-menu li a {
	font-size: 11px;
	padding: 2px 0;
}

nav.ah-account-menu-nav li.current-menu-item > a {
	font-weight: 700;
}

nav.ah-account-menu-nav li.separator {
	margin: 20px 0;
	height: 1px;
	background: #b3b3b3;
}

/* Sidebar font colors */
nav.ah-account-menu-nav li a {
	text-decoration: none;
	color: var( --itinerary-color_accent2, #966228 );
}

nav.ah-account-menu-nav li a:hover,
nav.ah-account-menu-nav li a:active {
	text-decoration: none;
	color: var( --itinerary-color_accent1, #204f66 );
}

nav.ah-account-menu-nav ul.sub-menu li a {
	text-decoration: none;
	color: var( --itinerary-color_dark-grey, #303333 );
}

nav.ah-account-menu-nav ul.sub-menu li a:hover,
nav.ah-account-menu-nav ul.sub-menu li a:active {
	text-decoration: none;
	color: var( --itinerary-color_brick, #AA4A3B );
}

/*
End: Account Sidebar
*/

/*
Start: Account Sidebar (Mobile)
*/
/* Hide checkbox */
#ah-mobile-nav-toggle {
	position: absolute;
	z-index: -1;
	visibility: hidden;
	top: -1000px;
}

/* Hide mobile features on desktop */
@media ( min-width: 980.1px ) {
	#ah-mobile-nav-toggle,
	#ah-mobile-nav-label {
		display: none;
	}
}

/* Show mobile menu toggle */
@media ( max-width: 980px ) {
	.ah-account-menu-nav {
		padding: 25px 20px 10px;
	}

	#ah-mobile-nav-label {
		margin: 0;
		padding: 10px 44px 10px 20px;

		background: #054f68;
		color: #fff;
		font-size: 16px;
		font-weight: 600;
		font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;

		position: relative;
	}

	#ah-mobile-nav-label::after {
		content: '';
		display: block;
		width: 10px;
		height: 10px;

		border-left: 1px solid #fff;
		border-bottom: 1px solid #fff;
		border-top: 1px solid transparent;
		border-right: 1px solid transparent;

		position: absolute;
		top: 50%;
		right: 20px;
		margin-top: -7px;
		transform: rotate(-45deg);
		transform-origin: center;

		transition: transform 0.15s linear, margin-top 0.15s linear;
	}

	input:checked + .ah-mobile-account-nav #ah-mobile-nav-label::after {
		margin-top: -3px;
		transform: rotate(135deg);
	}

	.ah-mobile-account-nav {
		position: relative;
	}

	.ah-mobile-account-nav nav {
		position: absolute;
		z-index: 100;
		left: 0;
		width: 100%;

		display: none;
		transform: rotateX(90deg);
		transform-origin: top;
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
	}

	input:checked + .ah-mobile-account-nav nav {
		display: block;
		transform: rotateX(0deg);
		animation: expandDown 0.3s ease-out;
	}
}

@keyframes expandDown {
	0% { transform: rotateX(90deg); }
	100% { transform: rotateX(0deg); }
}
/*
End: Account Sidebar (Mobile)
*/

/*
Start: Stylized Table <table class="ah-table"></table>
*/
table.ah-table thead th,
table.ah-table-responsive th[data-mobile-label]::before,
table.ah-table-responsive td[data-mobile-label]::before {
	font-size: 12px;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
	color: var( --itinerary-color_accent1, #204f66 );
	font-weight: 600;
}

table.ah-table th,
table.ah-table td {
	padding: 20px 30px 20px 0;
	border-bottom: 1px solid #bfc9c8;
}

table.ah-table thead th {
	padding-top: 5px;
	padding-bottom: 10px;
}

table.ah-table :last-child > tr:last-child > th,
table.ah-table :last-child > tr:last-child > td {
	border-bottom: none;
}

html .ah-table .col-actions .button {
	margin: 0 5px 0 0 !important;
}
/*
End: Stylized Table
*/

/*
Start: Responsive Table <table class="ah-table ah-table-responsive"></table>
       I suggest having a label on each: <td data-mobile-label="First Name">Radley</td>
*/
@media ( max-width: 724px ) { /* 980 - 256 */
	table.ah-table-responsive tbody,
	table.ah-table-responsive tr,
	table.ah-table-responsive th,
	table.ah-table-responsive td {
		display: block;
		padding: 0;
		border-bottom: none;
	}

	table.ah-table-responsive thead,
	table.ah-table-responsive tfoot {
		display: none;
	}

	table.ah-table-responsive {
		display: block;
	}

	table.ah-table-responsive th[data-mobile-label],
	table.ah-table-responsive td[data-mobile-label] {
		text-align: center;
		margin: 0 0 20px;
	}

	table.ah-table-responsive th[data-mobile-label]::before,
	table.ah-table-responsive td[data-mobile-label]::before {
		content: attr(data-mobile-label);
		display: block;
	}

	table.ah-table-responsive tr {
		margin: 0 0 20px;
		padding-bottom: 20px;
		border-bottom: 1px solid #bfc9c8;
	}

	table.ah-table-responsive tr:last-child {
		border-bottom: none;
		padding-bottom: 0;
	}

	/* Buttons on one row for invoice table */
	html .ah-table-responsive .col-actions .button {
		display: block;
		width: fit-content;
		margin: 0 auto 15px !important;
	}

	html .ah-table-responsive .col-actions .button:last-child {
		margin-bottom: 0 !important;
	}
}
/*
End: Stylized Table
*/

/*
Start: Theme Notices
*/
.ah-theme-notice {
	display: grid;
	grid-template-columns: 1fr auto;
	background: #f1f1f1;
	padding: 15px 20px;
	margin: 10px auto;
	border-left: 5px solid #808080;

	max-width: 1120px;
	gap: 20px;
}

.ah-theme-notice.notice-success { border-left-color: #4eaa23; }
.ah-theme-notice.notice-error { border-left-color: #b72222; }
.ah-theme-notice.notice-warning { border-left-color: #eeee46; }
.ah-theme-notice.notice-info,
.ah-theme-notice.notice-message { border-left-color: #287094; }

.ah-theme-notice .ah-theme-dismiss {
	grid-area: 1 / 2;
	font-size: 28px;
	line-height: 18px;
}

.account-content .ah-theme-notice {
	margin-left: 0;
}
/*
End: Theme Notices
*/


/*
Start: Grid content layout
*/
.row {
	display: grid;
	grid-gap: 20px 40px;
}

.row .column {
	grid-area: 1;
}

.clear {
	display: table;
	clear: both;
}
/*
End: Grid content layout
*/

/* Start: [ah_itinerary] shortcode */
.ah-itineraries:not(:first-child) {
	margin-top: 40px;
}

.itinerary-list .title {
	margin-bottom: 10px;
	font-weight: 700;
}

.itinerary-list .title a {
	color: var( --itinerary-color_accent1, #204f66 );
}

.itinerary-list .title a:hover,
.itinerary-list .title a:active {
	color: var( --itinerary-color_accent2, #966228 );
}

.itinerary-list .subtitle {
	color: inherit;
	line-height: 1.5;
	margin-bottom: 10px;
}

.flex-section .content-wrapper .button-row .button {
	margin-top: 0 !important;
}

.itinerary-list .itinerary-item:not(:last-child) {
	margin-bottom: 60px;
}

/* Updated itinerary list style for cover images */
.itinerary-list .itinerary-item {
	display: grid;
	align-content: center;
	align-items: center;
	text-align: center;
	aspect-ratio: 1.88;
}

@media ( max-width: 768px ) {
	.itinerary-list .itinerary-item {
		aspect-ratio: auto;
		padding: 65px 20px;
	}
}

.itinerary-list .itinerary-item .button-row {
	justify-content: center;
}

.itinerary-list .itinerary-item h3.title a {
	/*color: #fff;*/
}

.itinerary-list .itinerary-item .button-row .button {
	border-width: 2px;
}

.itinerary-list .itinerary-item .button-row p {
	margin: 0;
	padding: 0;
}

.itinerary-list .itinerary-item .subtitle {
	font-size: 16px;
	line-height: 1.3;
	font-weight: 700;
	text-transform: none;
}

/* - Badges */
.ah-itinerary-badge {
	position: absolute;
	top: 1em;
	left: 0;
	display: block;
	padding: 8px 16px;

	color: #fff;
	font-size: 16px;
	font-weight: 600;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
	text-transform: uppercase;

	background: var( --itinerary-color_accent3, #9aa6a7 );
	border-radius: 0;
}
/* End: [ah_itinerary] shortcode */

/* Start: Cover image styles */
.cover-image-background {
	background-color: #f1f1f1;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.cover-image-background.has-image,
.cover-image-background.has-image a {
	color: #fff;
}

.cover-image-background.has-image a:hover,
.cover-image-background.has-image a:focus-visible {
	color: #fff;
}

.cover-image-background.has-image a:not(.button):hover,
.cover-image-background.has-image a:not(.button):focus-visible {
	text-decoration: underline;
}

.cover-image-background.has-image h1,
.cover-image-background.has-image h2,
.cover-image-background.has-image h3,
.cover-image-background.has-image h4,
.cover-image-background.has-image h5,
.cover-image-background.has-image p {
	text-shadow: 0 1px 2px rgba(0,0,0,0.75);
}
/* End: Cover image styles */

/* Start: Itinerary list menu in sidebar */
#slideout-menu ul.ah-itinerary-list-menu {
	border-bottom: 1px solid #fff;
	padding-bottom: 22px;
}
/* End: Itinerary list menu in sidebar */

/* Start: button row (used in ah_itinerary shortcode) */
.button-row {
	margin: 10px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	vertical-align: middle;
}

.button-row a.button {
	margin: 0;
	font-size: 14px;
	padding: 12px 16px;

	line-height: 1.2 !important;
	display: flex;
	align-items: center;
}

.button-row .button.button-primary {
	background-color: var( --itinerary-color_accent1, #204f66 );
	border-color: transparent;
	color: #fff;
}

.button-row .button.button-primary:hover {
	background-color: var( --itinerary-color_accent2, #966228 );
	border-color: transparent;
	color: #fff;
}
/* End: button row */

/* Start: Outline Buttons */
.button.button-outline {
	background-color: transparent;
	border-color: var( --itinerary-color_accent1, #204f66 );
	color: var( --itinerary-color_accent1, #204f66 );
}

.button.button-outline:hover,
.button.button-outline:focus-visible {
	background-color: transparent;
	border-color: var( --itinerary-color_accent2, #966228 );
	color: var( --itinerary-color_accent2, #966228 );
}
/* End: Outline Buttons */

/* Start: White Buttons */
.button.button-primary.button-white {
	background-color: #fff;
	border-color: #fff;
	color: var( --itinerary-color_accent1, #204f66 );
}

.button.button-primary.button-white:hover,
.button.button-primary.button-white:focus-visible {
	background-color: rgba(255,255,255,0.75);
	border-color: #fff;
	color: var( --itinerary-color_accent1, #204f66 );
}

.button.button-secondary.button-white {
	background-color: rgba(255,255,255,0.5);
	border-color: #fff;
	color: var( --itinerary-color_accent1, #204f66 );
}

.button.button-secondary.button-white:hover,
.button.button-secondary.button-white:focus-visible {
	background-color: rgba(255,255,255,0.75);
	border-color: #fff;
	color: var( --itinerary-color_accent1, #204f66 );
}

.button.button-outline.button-white {
	background-color: transparent;
	border-color: #fff;
	color: #fff;
}

.button.button-outline.button-white:hover,
.button.button-outline.button-white:focus-visible {
	background-color: rgba(255,255,255,0.75);
	border-color: #fff;
	color: var( --itinerary-color_accent1, #204f66 );
}
/* End: White Buttons */

/* Start: Profile form shortcode [ah_profile] */
.ah-profile-form h3 {
	font-size: 24px;
	line-height: 1.1;
	margin: 30px 0 20px;
}

.ah-profile-form h3:first-child {
	margin-top: 0;
}

.ah-field {
	max-width: 600px;
	margin: 10px 0 20px;
}

.ah-field .ah-label {
	font-size: 16px;
	line-height: 1.1;
	font-weight: 700;
	margin: 0 0 3px;
}

.ah-field .ah-input input[type="text"],
.ah-field .ah-input input[type="password"],
.ah-field .ah-input select,
.ah-field .ah-input textarea {
	margin: 0;
	width: 100%;
}

.ah-field.ah-field--name .ah-input {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.ah-validation-error-message p {
	font-size: 16px;
	color: #b72222;
}

.ah-field.ah-submit input[type="submit"] {
	margin-top: 0 !important;
}
/* End: Profile form shortcode [ah_profile] */

/* Start: Itinerary menu */
.scroll-tracking-menu .menu-item > a {
	position: relative;
}

#slideout-menu ul.sub-menu li a {
	color: #cec7c1;
}

#slideout-menu a:hover,
#slideout-menu ul.sub-menu li a:hover {
	text-decoration: underline;
	color: #fff;
}

#slideout-menu ul li {
	border-bottom: none;
}

.scroll-tracking-menu .menu-item a:hover,
.scroll-tracking-menu .menu-item a:focus-visible,
.scroll-tracking-menu .menu-item a {
	text-underline-offset: 4px;
	text-decoration: underline solid transparent 1.5px;
}

.scroll-tracking-menu .menu-item.scroll-target > a,
.scroll-tracking-menu li.menu-item:has(.menu-item.scroll-target) > a {
	text-decoration: underline solid currentColor 1.5px;
}

.scroll-tracking-menu ul.sub-menu .menu-item > a {
	text-decoration: none;
}

.scroll-tracking-menu ul.sub-menu .menu-item.scroll-target > a {
	font-weight: 700;
}

.scroll-tracking-menu .menu-item.scroll-target > a::before {
	display: block;
}
/* End: Itinerary menu */

/* Start: Adjust menu buttons */
#slideout-menu #nav-close,
#linkbar a#slideout-trigger {
	top: 15px;
	right: 32px;
	height: 36px;
	width: 36px;
}

#slideout-menu #nav-close {
	margin-top: 22px;
}

#slideout-menu .close-lines1 { top: 16px; left: 8px; }
#slideout-menu .close-lines2 { top: 14px; left: 8px; }

@media (max-width: 575px) {
	#slideout-menu #nav-close {
		margin-top: 16px;
	}

	#slideout-menu #nav-close,
	#linkbar a#slideout-trigger {
		top: 9px;
	}
}
/* End: Adjust menu buttons */

/* Start: Itinerary Dots menu */
ul.menu-dots,
ul.menu-dots li {
	list-style: none;
	margin: 0;
	padding: 0;
}

ul.menu-dots {
	position: fixed;
	top: 50%;
	left: 6px;
	transform: translateY(-50%);
}

ul.menu-dots li {
	display: block;
}

ul.menu-dots a {
	position: relative;
	display: block;
	margin: 10px 0;
}

ul.menu-dots a::before {
	content: '';
	display: block;
	width: 8px;
	height: 8px;
	border-radius: 100%;
	background: var( --itinerary-color_white, #ffffff );
	border: 1px solid var( --itinerary-color_dark-grey, #303333 );
	/*border: 1px solid var( --itinerary-color_accent2, #966228 );*/
}

ul.menu-dots li.scroll-target a::before {
	background: var( --itinerary-color_dark-grey, #303333 );
	/*background: var( --itinerary-color_accent2, #966228 );*/
}

ul.menu-dots span {
	display: none;
}

body.menu-dots-added .account-content {
	width: 100%;
	max-width: 850px; /* match image width: itinerary-web */
	margin-left: auto;
}

ul.menu-dots {
	display: none;
}

@media ( max-width: 980px ) {
	ul.menu-dots {
		display: block;
	}
}

/* Dot menu - show section name when activated */
li.menu-dot a {
	display: block;
	position: relative;
}

li.menu-dot a span {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 16px;
	padding: 3px;
	font-size: 15px;
	line-height: 1;
	font-weight: 700;
	/*color: var( --itinerary-color_accent1, #204f66 );*/
	color: #333;
	border-radius: 3px;
}

/*
li.menu-dot.scroll-target a span {
	display: block;
}

li.menu-dot.scroll-target a span {
	clip: rect(1px, 1px, 1px, 1px);
	opacity: 0;
	animation: fadeInDotText 1.25s linear;
}
*/

@keyframes fadeInDotText {
	0% {
		clip: rect(1px, 1px, 1px, 1px);
		opacity: 0;
	}
	1% {
		clip: auto;
	}
	20% {
		opacity: 1;
	}

	90% {
		opacity: 1;
	}
	99% {
		clip: auto;
	}
	100% {
		clip: rect(1px, 1px, 1px, 1px);
		opacity: 0;
	}
}
/* End: Itinerary Dots menu */




/*
Start: Invoices
*/
.invoice-list {
	display: grid;
	gap: 30px;
}

.invoice-title {
	margin: 0 0 10px;
}
/*
End: Invoices
*/

/*
Start: Scaled images
*/
.ah-image-scale {
	position: relative;
	text-align: left;
}

.ah-image-scale img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
/*
End: Scaled images
*/

/* Alert on front end */
.notice {
	margin: 20px auto 30px;
	padding: 15px;
	background: #f7f7f7;
	width: fit-content;
}

/* Start: Create account shortcode */
.ah-create-account {
	text-align: center;
	max-width: 850px;
	margin: 0 auto;
}

.ah-create-account .invite-details {
	margin: 30px 0;
	text-align: center;
}

.ah-create-account .ah-submit {
	text-align: center;
}
/* End: Create account shortcode */


/* Start: Create account form, generic form styling */
.ah-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 30px 0;
}

.ah-fields label {
	cursor: pointer;
}

.ah-fields input[type="text"],
.ah-fields input[type="email"],
.ah-fields input[type="password"] {
	width: 100%;
	margin: 0;
}

.ah-fields .ah-field-group.full-width {
	grid-column: 1 / 3;
}

.ah-fields .ah-field-group.half-width {

}

.ah-validation-errors {
	background: var( --itinerary-color_accent1, #204f66 );
	color: #fff;
	padding: 20px;
	margin: 30px 0;
}

.ah-validation-errors ul {
	margin: 0;
}

.ah-validation-errors ul li:last-child {
	margin-bottom: 0;
}
/* End: Create account form, generic form styling */

/* Start: User switching */
#user_switching_switch_on {
	padding: 0 !important;
	left: 10px !important;
	bottom: 10px !important;
}

#user_switching_switch_on a {
	display: block;
	background: #fff;
	border-radius: 5px;
	padding: 15px 20px !important;
	font-size: 18px !important;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif !important;
	letter-spacing: -0.02em !important;
	box-shadow: 0 1px 15px rgba(0,0,0,0.05);
	cursor: pointer;
}
/* End: User switching */

/* Start: Menu - General styles */
#slideout-menu ul li:last-child {
	border-bottom: none;
}

#slideout-nav li.menu-item-has-children #submenu-link {
	position: static !important;
	display: inline-block;
	vertical-align: top;
}

html #slideout-menu li {
	cursor: default;
}

.ah-section-menu li.menu-title {
	color: #fff;
	font-weight: 400;
}

.ah-submenu-nav .ah-section-menu li.menu-title {
	display: none;
}

#slideout-menu .ah-section-menu li.menu-title {
	font-size: 22px;
	border-bottom: none;
}

@media ( min-width: 768px ) {
	body.admin-bar #slideout-menu {
		margin-top: 32px;
	}
}

@media ( max-width: 767.9px ) and ( min-width: 601px ) {
	body.admin-bar #slideout-menu {
		margin-top: 46px;
	}
}
/* End: Menu - General styles */

/* Start: Primary menu */
#linkbar .nav-menu  {

}

#linkbar .nav-menu  li {
	display: block;
	margin: 0;
	padding: 0;
}

#linkbar .nav-menu  li {
	display: block;
}

#linkbar .nav-menu  a {
	display: block;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
	font-size: 14px;
	line-height: 1;
	font-weight: 500;
	text-transform: none;
	color: var( --itinerary-color_accent2, #966228 );
}

#linkbar .nav-menu  a:hover {
	color: var( --itinerary-color_accent1, #204f66 );
}

#linkbar .nav-menu  > ul > li > a {
	margin: 0 25px 0 0 !important;
}

#linkbar .nav-menu  li.menu-item-has-children {
	position: relative;
}

#linkbar .nav-menu  li.menu-item-has-children > .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	transform: none;
	text-align: left;
	background: none;
	margin: 5px 0 0;
	padding: 8px 12px;

	background: #fff;
	box-shadow: 0 1px 3px #000;
	border-radius: 3px;
}

#linkbar .nav-menu  li.menu-item-has-children > .sub-menu a {
	display: block;
	white-space: nowrap;
}

#linkbar .nav-menu li.menu-item-has-children > .sub-menu {
	transition: none !important;
}

#linkbar .nav-menu li.menu-item-has-children > .sub-menu > li:not(:last-child) {
	margin-bottom: 15px;
}

#linkbar .nav-menu li.menu-item-has-children > .sub-menu a {
	margin: 0;
	padding: 6px 22px;
	font-size: 14px;
	font-weight: 400;
}
/* End: Primary menu */

/* Start: Linkbar with submenu */
#linkbar .menu {
	display: flex;
	flex-direction: row;
}

#linkbar li.menu-item.menu-item-has-children {
	display: grid;
	grid-template-columns: auto auto;
}

#linkbar li.menu-item.menu-item-has-children .sub-menu {
	grid-row: 2;
	grid-column: 1 / 4;
}


#linkbar li.menu-item.menu-item-has-children > a:first-child {
	padding-right: 0 !important;
	margin-right: 0 !important;
}
/* End: Linkbar with submenu */

/* Start: Bottom menu */
.ah-submenu-nav {
	padding: 10px 0;
	background: var( --itinerary-color_accent1, #204F66 );
	color: #fff;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
}

.ah-submenu-nav ul.menu li {
	display: block;
	margin: 0;
}

.ah-submenu-nav ul.menu > li {
	position: relative;
	display: inline-block;
	list-style: none;
	margin-right: 25px;
}

.ah-submenu-nav ul.menu > li > a {
	display: inline-block;
	font-size: 14px;
	line-height: 42px;
}

.ah-submenu-nav ul.menu ul.sub-menu li a {
	font-size: 14px;
	line-height: 32px;
	white-space: nowrap;
}

.ah-submenu-nav ul.menu {
	display: block;
	margin: 0;
	padding: 0;
}

.ah-submenu-nav a {
	color: inherit;
	text-decoration: none;
}

.ah-submenu-nav a:hover,
.ah-submenu-nav a:focus-visible {
	color: #bfcfd0;
	text-decoration: none;
}

.ah-submenu-nav li.wpmm_mega_menu .chevron:after,
.ah-submenu-nav li.menu-item-has-children .chevron:after {
	background: #fff !important;
}

.ah-submenu-nav ul.sub-menu {
	display: none;
	position: absolute;
	top: calc( 100% - 1px );
	left: -20px;
	background: var( --itinerary-color_accent1, #204F66 );
	padding: 22px 20px 15px;
	margin: 0;
}

.ah-submenu-nav li.menu-item-has-children:hover ul.sub-menu,
.ah-submenu-nav li.menu-item-has-children:focus-within ul.sub-menu {
	display: block;
}

.ah-submenu-nav .scroll-tracking-menu .menu-item.scroll-target > a::before {
	display: none;
}

@supports ( position: sticky ) {
	.ah-submenu-nav {
		position: sticky;
		top: 0;
		z-index: 90;
	}

	body.admin-bar .ah-submenu-nav {
		top: 32px;
	}

	@media ( max-width: 781.9px ) {
		body.admin-bar .ah-submenu-nav {
			top: 46px;
		}
	}

	@media ( max-width: 600px ) {
		body.admin-bar .ah-submenu-nav {
			top: 0;
		}
	}
}
/* End: Bottom menu */

/* Start: Sticky main menu and sub nav */
body {
	--admin-bar-height: 0; /* #wpadminbar */
	--main-nav-height: 95px; /* #header-wrapper */
	--sub-nav-height: 62px; /* .ah-submenu-nav */

	--main-nav-top: -1px;
	--sub-nav-top: var( --main-nav-height );
}

body.admin-bar {
	--admin-bar-height: 32px;
	--sub-nav-top: calc( var( --main-nav-top ) + var( --main-nav-height ) );
}

@media ( max-width: 782px ) {
	body.admin-bar {
		--admin-bar-height: 46px;
	}
}

@media ( min-width: 782.1px ) {
}

@media ( max-width: 782px ) and ( min-width: 601px ) {
}

@media ( min-width: 600px ) {
	body {
		--main-nav-top: var( --admin-bar-height );
	}
}

@media ( min-width: 575px ) {
	--main-nav-height: 82px; /* #header-wrapper */
}

@supports ( position: sticky ) {
	header.site-header {
		position: sticky;
		z-index: 100;
		background: #fff;
	}

	header.site-header,
	body.admin-bar header.site-header {
		top: var( --main-nav-top );
	}

	.ah-submenu-nav,
	body.admin-bar .ah-submenu-nav {
		top: var( --sub-nav-top );
	}

	#slideout-menu,
	body.admin-bar #slideout-menu {
		margin-top: var( --main-nav-top );
	}
}

/* End: Sticky main menu and sub nav */


/* Start: Navigation title in side menu for itinerary */
h3.ah-nav-title {
	color: #fff;
	font-weight: 300;
	font-size: 24px;
}
/* End:   Navigation title in side menu for itinerary */


/* Start: Hide side menus when they are shown on desktop */
@media ( min-width: 980.1px ) {
	#linkbar .nav-menu,
	.ah-submenu-nav {
		display: block;
	}
}

@media ( max-width: 980px ) {
	#linkbar .nav-menu,
	.ah-submenu-nav {
		display: none;
	}
}
/* End: Hide side menus when they are shown on desktop */


/* Start: Itinerary mobile menu */
@media ( min-width: 981px ) {
	.itinerary-mobile-nav {
		display: none !important;
	}
}

@media ( max-width: 981px ) {
	.site-header #header-wrapper .header-inner .left {
		flex-grow: 0;
		flex-basis: 120px;
	}

	.site-header #header-wrapper .header-inner .right {
		flex-grow: 0;
		flex-basis: 0;
	}

	.site-header #header-wrapper .header-inner .itinerary-mobile-nav {
		flex-grow: 1;
	}
}

.itinerary-mobile-nav {
	position: relative;
	margin: 0 28px;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
	font-size: 15px;
	line-height: 1.5;
}

.itinerary-mobile-nav a {
	color: #fff;
}

.itinerary-mobile-nav a:hover,
.itinerary-mobile-nav a:focus-visible {
	color: #bfcfd0;
}

.itinerary-mobile-nav li.menu-item-has-children:hover .chevron:after {
	transform: none !important;
}

.itinerary-mobile-nav .nav-current {
}

.itinerary-mobile-nav .nav-current a {
	display: block;
	padding: 10px 15px;

	background: var( --itinerary-color_accent1, #204F66 );
	color: #fff;
	border-radius: 4px;
}

.itinerary-mobile-nav .nav-list {
	display: none;

	position: absolute;
	left: 4px;
	right: 4px;
	border-radius: 0px 0px 4px 4px;

	background: var( --itinerary-color_accent1, #204F66 );
	color: #fff;
}

.itinerary-mobile-nav.active .nav-list {
	display: block;
}

.itinerary-mobile-nav .nav-list ul.menu,
.itinerary-mobile-nav .nav-list ul.menu li {
	list-style: none;
	display: block;
	margin: 0;
	padding: 0;
}

.itinerary-mobile-nav .nav-list ul.menu {
	padding: 0 0 10px;
}

.itinerary-mobile-nav .nav-list ul.menu li {

}

.itinerary-mobile-nav .nav-list ul.menu li a {
	display: block;
	padding: 8px 24px;
}

.itinerary-mobile-nav .nav-list ul.menu li.menu-title {
	display: none;
}

.itinerary-mobile-nav .nav-list ul.menu ul.sub-menu {
	padding: 0;
	margin: 0;
}

.itinerary-mobile-nav .nav-list ul.menu li:not(:last-child) ul.sub-menu {
	margin-bottom: 10px;
}

.itinerary-mobile-nav .nav-list ul.menu ul.sub-menu li a {
	padding: 8px 10px 8px 42px;
}

.itinerary-mobile-nav li.menu-item-has-children .chevron:after {
	background-color: #fff;
}

.itinerary-mobile-nav .nav-list {
	max-height: calc( 100vh - var( --main-nav-top ) - var( --main-nav-height ) );
	overflow: auto;
}

#itinerary-mobile-nav-button {
	position: relative;
}

#itinerary-mobile-nav-button::after {
	display: block;
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12.759' height='8.102' viewBox='0 0 12.759 8.102'%3E%3Cpath d='M0,0,6.263,7,12,0' transform='translate(0.373 0.333)' fill='none' stroke='%23ffffff' stroke-miterlimit='10' stroke-width='1'/%3E%3C/svg%3E");
}

.container.header-inner::after {
	content: none;
}

@media ( max-width: 980px ) and ( min-width: 540.1px ) {
	.site-header #header-wrapper .header-inner {
		padding-right: 70px !important;
	}
}

@media ( max-width: 540px ) {
	.site-header #header-wrapper .header-inner .left,
	.site-header #header-wrapper .header-inner .itinerary-mobile-nav {
		flex-basis: auto;
		width: 100%;
	}

	.site-header #header-wrapper .header-inner {
		flex-direction: column;
		gap: 10px;
	}

	.itinerary-mobile-nav {
		margin: 0 !important;
	}

	#slideout-menu #nav-close,
	#linkbar a#slideout-trigger {
		right: 20px;
	}

	.site-header #header-wrapper .header-inner {
		padding-right: 20px !important;
	}
}

/* End: Itinerary mobile menu */

/*
Start: [Old] Resource Table [ah_resources]
*/
.ah-resource-table .col-preview img {
	display: block;
	max-width: 150px;
	max-height: 150px;
	width: auto;
	height: auto;
	margin: 0 auto;
	border-radius: 3px;
}

.ah-resource-table .category-name {
	font-size: 14px;
}
/*
End: [Old] Resource Table
*/

/*
Start: Resource list [ah_resources]
*/
.ah-resources {
	margin-top: 40px;
}

.ah-resources .category-subtitle {
	margin: 0 0 20px;
}

.ah-resources .resource-list > .resource:not(:last-child) {
	margin-bottom: 60px;
}

.resource .resource-title,
.resource .resource-image {
	margin: 0 0 20px;
}
/*
End: Resource list
*/

/*
Start: Itinerary card list for [ah_itineraries] shortcode
*/
.itinerary-cards .itinerary-item {
	border-radius: 5px;
	overflow: hidden;
	border: 1.5px solid #eaeaea;
}

.itinerary-cards .itinerary-item:not(:last-child) {
	margin-bottom: 60px;
}

.itinerary-cards .cover {
	position: relative;
}

.itinerary-cards .cover .location {
	position: absolute;
	z-index: 2;
	top: 30px;
	left: 30px;
	background: #fff;
	border-radius: 100px;
	font-size: 12px;
	font-family: var( --itinerary-font_headings-secondary, 'Montserrat' ), sans-serif;
	font-weight: 500;
	padding: 3px 13px 3px 10px;
}

.itinerary-cards .location .fa,
.itinerary-cards .location svg,
.itinerary-cards .button-row .fa,
.itinerary-cards .button-row svg {
	margin-right: 7px;
}

.itinerary-cards .frame {
	padding: 30px;
}

.itinerary-cards .title,
.itinerary-cards .subtitle,
.itinerary-cards .description {
	margin: 0 0 15px;
}

.itinerary-cards .title a {
	color: var( --itinerary-color_accent1, #204f66 );
	text-decoration-color: transparent;
}

.itinerary-cards .title a:hover,
.itinerary-cards .title a:focus-visible {
	color: var( --itinerary-color_accent2, #966228 );
	text-decoration: underline;
	text-decoration-color: currentColor;
	/*text-decoration-color: var( --itinerary-color_accent2, #966228 );*/
}

.itinerary-cards .subtitle {
	font-size: 18px;
	text-transform: none;
	color: var( --itinerary-color_accent1, #204f66 );
}

.itinerary-cards .frame > :first-child {
	margin-top: 0;
}

.itinerary-cards .frame > :last-child {
	margin-bottom: 0;
}

@media ( max-width: 767.9px ) {
	.itinerary-cards .frame {
		padding: 20px;
	}

	.itinerary-cards .cover .location {
		top: 20px;
		left: 20px;
	}
}

/*
End: Itinerary card list for [ah_itineraries] shortcode
*/


/* Start: Itinerary download page */
.itinerary-download-page h2 {
	margin: 40px 0 20px;
}

.itinerary-download-page {
	max-width: 800px;
	margin: 40px auto 100px;
}

.itinerary-download-page .download-summary {
	margin: 40px 0;
}

.download-list .download-item {
	margin: 20px 0;
}

.download-list h3 {
	margin-bottom: 20px;
}

.download-list .button {
	margin: 20px 0;
}

.button.go-back {
	padding: 10px 15px;
	font-size: 14px;
	margin-top: 20px;
}
/* End: Itinerary download page */

/* Start: Archived itinerary */
.archived-itineraries-toggle {
	padding: 20px;
	margin: 30px 0;
	background: #204f6610;
	text-align: center;
}

li.menu-item.archived-itinerary-link a {
	font-weight: 300 !important;
	opacity: 0.7;
}
/* End: Archived itinerary */

/* Start: Resource Category Filters */
.ah-resources-filters {
	margin: 20px 0;
}

@media ( min-width: 1200px ) {
	.ah-resources-filters {
		width: calc(100vw - 30px);
		margin-left: calc(50% - 50vw + 15px);
	}

	.ah-resources-filters .filter-list {
		max-width: 1200px;
		margin: 0 auto;
	}
}

.ah-resources-filters .filter-label {
	font-family: var( --itinerary-font_headings-primary, Georgia ), serif;
	font-weight: 700;
	margin: 0 0 5px;
}

.ah-resources-filters .filter-list {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 10px;
}

.ah-resources-filters .filter-list:not(:has(.filter-item:not(.selected):where(:hover, :focus-visible))) .filter-item.selected {
	background: var( --itinerary-color_navy, #5F82BD );
	color: var( --itinerary-color_white, #ffffff );
	border-color: var( --itinerary-color_navy, #5F82BD );
}

/* Centered */
.ah-resources-filters.align-center {
	text-align: center;
}

.ah-resources-filters.align-center .filter-list {
	justify-content: center;
}

/* End: Resource Category Filters */

.resource-back {
	margin: 40px 0 0;
}

.resource-list .resource-title a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}