/* MAIN SHEET */

:root{
	--title-font:  "Lilita One", sans-serif;
	--title-font: "Rubik Dirt", system-ui;
	--title-font: "Chewy", system-ui;
	--paragraph-font:"Red Hat Text", sans-serif;
	--font-awesome:"Font Awesome 7 Pro";
	--leading: 0.15em;
	--body-color:#fff;
	--gold-color:#c69c6d;
	--light-gold-color:#e8c195;
	--red-color:#a01e2e;
	--dark-red-color:#771420;
	--light-red-color:#c84a6e;
	--pink-color:#f9d7e2;
	--grey-color:#8192a0;
	--font-color:#536777;
	--ice-color:#eef5f7;
	
	--snow-shadow:0 -8px 8px rgba(53, 127, 156, 0.1) inset, 0 2px 4px rgba(58, 92, 106, 0.35);
	--snow-shadow-alt:0 8px 8px rgba(53, 127, 156, 0.1) inset, 0 2px 4px rgba(58, 92, 106, 0.35);
	--red-radial-gradient: radial-gradient(ellipse at bottom, #9d0002, #771420);
	--image-overlay-gradient:linear-gradient( 180deg, rgb(255, 255, 255) 50px, rgba(255, 255, 255,0.7) 33%, rgba(255,255,255,0) 50%, rgba(255,255,255,0) 100% );
	--candy:repeating-linear-gradient( 45deg, #c84a6e 0px, #c84a6e 12px, #f9d7e2 12px, #f9d7e2 24px );
	--candy:repeating-linear-gradient( 45deg, var(--light-gold-color) 0px, var(--light-gold-color) 12px, #fff 12px, #fff 24px );
	--complex-gold:radial-gradient(ellipse farthest-corner at right bottom, #fff 0%, #FFE185 8%, #eab33d 30%, #D79910 40%, transparent 80%), radial-gradient(ellipse farthest-corner at left top, #FFF 0%, #FFEEB9 8%, #FFCC40 25%, #ffe5a9 62.5%, #ae904f 100%);
	
}

*{
	margin:0;
	padding:0;
	box-sizing: border-box;
}

body{
	font-family:var(--paragraph-font);
	background:var(--body-color);
	font-size:16px;
	color:var(--font-color);
}

.container-fluid {
	max-width: calc(1320px + 8rem);
	padding: 0 4rem;
}

.container-fluid.medium{
	max-width: calc(1100px + 8rem);
	padding: 0 4rem;
}

.container-fluid.narrow{
	max-width: calc(720px + 8rem);
	padding: 0 4rem;
}



.standard-margin{
	margin:3rem 0;
}

.standard-padding{
	padding:3rem 0;
}

.fluid-row{
	display:flex;
	flex-wrap:wrap;
	gap:4rem;
}

a{
	text-decoration: none;
	color:var(--gold-color);
}

a.biglink{
	display:block;
	position:absolute;
	inset:0;
	z-index:15;
}

h1, h2, h3, h4, h5 {
	font-weight: normal;
	font-family: var(--title-font);
	color: var(--grey-color);
}

.size-l {
	font-size: 3em;
}

@media (max-width: 1000px) {
	.size-l {
		font-size: 2.5em;
	}
}

@media (max-width: 720px) {
	.size-l {
		font-size: 2.25em;
	}
}

h1.gold, h2.gold, h3.gold, h4.gold, h5.gold{
	color: var(--gold-color);
}

p{
	line-height:1.75
}

p strong{
	font-weight:600;
}

p.subtitle{
	text-transform: uppercase;
	letter-spacing: 0.07em;
	font-weight: 500;
	font-size: .875rem;
}

p.red{
	color: var(--red-color);
}

p.gold{
	color: var(--gold-color);
}

p.light-gold{
	color: var(--light-gold-color);
}

.small-print p{
	font-size:.875rem;
}


ul.list{
	list-style:none;
	margin:1rem 0;
	padding:0;
}

ul.list li {
	position: relative;
	padding-left: 1.75rem;
	margin: .75rem 0;
	font-weight: 500;
	font-size: .875rem;
}

ul.list li:before{
	content:'';
	font-family:'Font Awesome 7 Jelly Fill';
	font-weight: 400;
	position:absolute;
	top:0;
	left:0;
	color:var(--gold-color);
}

ul.list.arrows li:before{
	content:'\f061';
}

ul.list.checks li:before{
	content:'\f00c';
}

ul.list.crosses li:before{
	content:'\f00d';
}

ol.styled {
	list-style: none;
	margin: 2rem 0;
	padding: 0;
	counter-reset: styled-counter;
}

ol.styled li {
	position: relative;
	display: block;
	align-items: start;
	margin-bottom: 1rem;
	gap: 1rem;
	line-height: 1.5em;
	padding-left: 3rem;
	font-size: 0.875rem;
}

ol.styled > li {
	counter-increment: styled-counter;
}

ol.styled li:before {
	content: counters(styled-counter, ".") ". ";
	color: var(--gold-color);
	display: block;
	width: 2rem;
	text-align: right;
	position: absolute;
	top: 0;
	left: 0;
	font-weight: 600;
}

ol.styled li strong{
	font-weight:600;
}

ol.styled li ol {
	counter-reset: styled-counter;
}

ol.styled li ol li{
	counter-increment: styled-counter;
}

ol.styled ul{
	
}

ol.styled ul li {
	font-size: 0.875rem !important;
	padding-left: 1rem;
	border-bottom: none !important;
}

ol.styled ul li::before {
	content: '\f111' !important;
	text-align: left;
	width: 1rem;
	top: 6px !important;
}

div.quote{
	max-width:800px;
	margin:0 auto;
}

div.quote p{
	text-align: center;
	font-family: var(--title-font);
	font-size: 1.5rem;

	text-wrap: balance;
}

div.title{
	position:relative;
}

div.title.centered{
	text-align:center;
}


.fa-facebook:before{
	content:'\f39e'!important;
}

header#main-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 800;
	pointer-events:none;

}

.ccm-toolbar-visible header#main-header{
	top:48px;
}

header#main-header .logo {
	width: 160px;
	position: absolute;
	left: 50%;
	top: -30px;
	transform: translateX(-50%);
	transition: opacity 120ms linear;
	will-change: opacity, transform;
	transform-origin: center center;
	pointer-events:auto;

}



header#main-header .logo img{
	width:100%;
	height:auto;
}

header#main-header .top-header {
	padding: .5rem 3rem;
	
	position: relative;
	
	border-bottom: 1px solid #fff;
	pointer-events:auto;

}

header#main-header .top-header .overlay{
	position:absolute;
	inset:0;
	background: rgba(255,255,255,0.75);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

header#main-header .bottom-header{
	padding:.5rem 3rem;
	position:relative;
	z-index:10;

}

header#main-header .bottom-header .wrapper{
	height:90px;

}

header#main-header .top-header .wrapper,
header#main-header .bottom-header .wrapper{
	display:flex;
	justify-content:space-between;
	align-items:center;
	position:relative;
}

header#main-header .bottom-header .socials,
#mobile-burger
{
	pointer-events:auto;
}

header#main-header .logo.is-gone {
  pointer-events: none;
}

header#main-header .contact-details{
	display:flex;
	gap:1rem;
}

header#main-header .contact-details a {
	display: flex;
	gap: .5rem;
	padding: .5rem 0;
	color: var(--font-color);
	font-size: .875rem;
	align-items: center;
}

header#main-header .contact-details a i{
	color:var(--grey-color);
}

header#main-header .contact-details a:hover{
	color:var(--gold-color);
}

@media screen and (max-width:1023px){
	header#main-header .contact-details{
		display:none;
	}
	
	header#main-header .top-header .wrapper{
		justify-content:flex-end;
	}
	
	header#main-header .bottom-header{
		padding:.5rem 0;
	}
	
	header#main-header .top-header{
		padding:.5rem 1rem;
	}
	
}

@media screen and (max-width:1150px){
	.container-fluid,
	.container-fluid.narrow{
		padding: 0 2rem;
	}
}

@media screen and (max-width:640px){
	
	header#main-header .bottom-header .socials{
		display:none;
	}
	
	header#main-header .bottom-header .wrapper{
		justify-content:flex-end;
	}
	
	header#main-header .logo{
		left:2rem;
		transform:translateX(0);
	}
	
	.container-fluid{
		padding: 0 1rem;
	}
	
	header#main-header .logo{
		width:140px;
	}
}

.xmas-pattern{
	position:relative;
	overflow:hidden;
}

.xmas-pattern:after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url(../assets/xmas-pattern.jpg);
	opacity: 0.2;
	background-size: 400px;
	pointer-events: none;
}

.snow-frame{
	position:relative;
}

.snow-frame:after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
	background-image: url(../assets/snow-frame.png);
	background-size: 100% 100%;
	background-position: center;
	filter: brightness(1.15);
}

.snow-border{
	position:relative;
}

.snow-border:after {
	content: '';
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 60px;
	background-image: url(../assets/snow-border.png);
	background-repeat: repeat-x;
	left: 0;
	z-index: 10;
	background-size: auto 60px;
	filter:brightness(1.02);
}

.snow-border.top{
	top:0;
}

.snow-border.top:after{
	bottom:initial;
	top:0;
}

.snow-border.bottom.down:after {
	bottom: 0;
	transform: translateY(90%);
}

.snow-border.bottom.up:after{
	bottom: -1px;
	transform: scaleY(-1);
}

.abs-bottom-border {
	position: absolute;
	inset: 0;
	pointer-events: none;
}


.ice-texture:before {
	content: '';
	position: absolute;
	top: 0;
	left:0;
	width: 100%;
	height: 100%;
	background-image: url(../assets/ice-texture.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	z-index: 20;
	background-position: center;
	opacity: 0.25;
	mix-blend-mode: overlay;
	pointer-events: none;
}

.lights:before {
	content: '';
	position: absolute;
	top: 0;
	left:0;
	width: 100%;
	height: 100%;
	background-image: url(../assets/lights.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	z-index: 5;
	background-position: center;
	mix-blend-mode: overlay;
	pointer-events: none;
}

.starry-bg:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../assets/starry-bg.jpg);
	background-size: 1000px;
	z-index: 20;
	background-position: center;
	opacity: 0.75;
	mix-blend-mode: lighten;
	pointer-events: none;
}

.snowy-bg:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../assets/snowy-bg.jpg);
	background-size: cover;
	background-position: center;
	/* opacity: 0.75; */
	mix-blend-mode: screen;
	pointer-events: none;
}

/* SOCIALS */

.socials .ccm-block-social-links ul.list-inline,
.footer-socials .ccm-block-social-links ul.list-inline{
	display:flex;
	gap:.5rem;
}

.socials .ccm-block-social-links ul.list-inline li,
.footer-socials .ccm-block-social-links ul.list-inline li{
	margin:0;
}

.socials .ccm-block-social-links ul.list-inline li a {
	display: flex;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	color: var(--red-color);
	border-radius: 3px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
	transition:all 0.3s;
}

.socials .ccm-block-social-links ul.list-inline li a:hover{
	color: var(--gold-color);
}

.footer-socials .ccm-block-social-links ul.list-inline li a{
	color:var(--light-gold-color);
	width:36px;
	height:36px;
	border-radius:50%;
	border:1px solid var(--gold-color);
	display:flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	transition:all 0.3s;
}

.footer-socials .ccm-block-social-links ul.list-inline li a:hover{
	transform:scale(1.1);
}



/* FLICKITY NAV BOTTOM */
.flickety-nav-bottom .flickity-button {
	background: var(--red-color);
	transition: all 0.3s;
}

.flickety-nav-bottom .flickity-button:hover{
	background:var(--gold-color);
}

.flickety-nav-bottom .flickity-prev-next-button{
	display:flex;
	align-items:center;
	justify-content:center;
	width:48px;
	height:36px;
}

.flickety-nav-bottom .flickity-prev-next-button .flickity-button-icon{
	fill:#fff;
	position: static;
	left: initial;
	top: initial;
	width: 16px;
	height: 16px;
}

.flickety-nav-bottom .flickity-prev-next-button.previous {
	left: 50%;
	transform: translate(calc(-100%), calc(100% + 10px));
	bottom: 0;
	top: initial;
	border-radius:5px 0 0 5px;
}
.flickety-nav-bottom .flickity-prev-next-button.next{
	left: initial;
	right:50%;
	transform: translate(calc(100% + 1px), calc(100% + 10px));
	bottom: 0;
	top:initial;
	border-radius:0 5px 5px 0;
}

.flickity-button:focus{
	box-shadow:none;
}

/* FOOTER */
footer#site-footer{
	background:var(--red-radial-gradient);
	color:var(--light-gold-color);
	padding-top:90px;
}
 
footer#site-footer h4{
	color:#fff;
}
 
footer#site-footer p{
	font-size:.875rem;
}

footer#site-footer .small-print p{
	opacity:0.7;
	max-width:800px;
	font-size:.75rem;

}

footer#site-footer p.credit{
	font-size:.75rem;
}

nav.footer-nav{
	font-size:.875rem;
}

nav.footer-nav ul{
	list-style:none;
	padding:0;
	margin:0;
}

nav.footer-nav ul li a{
	color:var(--light-gold-color);
	line-height:1.75;
	transition:all 0.3s;
}

nav.footer-nav ul li a:hover{
	color:#fff;
}

.affiliations {
	margin: 1rem 0;
}

.affiliations ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	opacity: 0.7;
	padding:0;
	gap:1.25rem;
}

@media screen and (max-width:800px){
	.affiliations ul {
		justify-content: center;
	}
}

.affiliations ul li {
	margin: 0 20px 0 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.affiliations img {
	width: 100%;
	height: auto;
	display: block;
}

#atol-logo {
	width: 60px;
}

#abta-logo {
	width: 110px;
}

#abta-logo p {
	color: var(--light-gold-color);
	margin: 0;
	font-size: 10px !important;
	text-align: right;
}

#aito-logo {
	width: 77px;
}

#spaa-logo {
	width: 140px;
	filter: brightness(1.2) saturate(0.55);
}

@media screen and (max-width:1280px){
	footer#site-footer .fluid-row{
		flex-direction:column-reverse;
		gap:1.5rem;
		text-align:center;
	}
	.footer-socials .ccm-block-social-links ul.list-inline{
		justify-content:center;
	}
}

/* PILL TABS */

.trip-tabs-nav {
}

/* remove bootstrap tab borders */
.trip-tabs .nav {
	border-bottom: none;
	gap: 1rem;
	justify-content: center;
}

/* tab buttons */
.trip-tabs .nav-link {
	position: relative;
	border: none;
	background: transparent;
	font-weight: 600;
	color: var(--font-color);
	padding: 0.75rem 1.25rem;
	transition: color 0.25s ease;
	border-radius: 15px 15px 0 0;
	white-space: nowrap;
}

/* hover */
.trip-tabs .nav-link:hover {
	color: var(--gold-color);
}

/* active tab */
.trip-tabs .nav-link.active {
	color: var(--gold-color);
	/* background-color: var(--gold-color); */
	box-shadow: var(--snow-shadow);
}

.trip-tabs .nav-link:focus {
	outline: none;
	box-shadow: var(--snow-shadow);
}




/* content spacing */
.trip-tabs-content {
	position: relative;
	margin: 0 auto;
}

/* keep the pane box styling */
.trip-tabs .tab-pane {
	position: absolute;
	inset: 0;
	background: #fff;
	box-shadow: var(--snow-shadow);
	padding: 3rem;
	border-radius: 15px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: none;
	display:block!important;
}

/* active pane becomes the visible one */
.trip-tabs .tab-pane.active {
	position: relative;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

/* inner content animation only */
.trip-tabs .tab-pane .tab-pane-inner {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.trip-tabs .tab-pane.active .tab-pane-inner {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 920px) {
	.trip-tabs .tab-pane {
		border-radius: 0 0 15px 15px;
		padding: 0.75rem;
	}
}

/* MOBILE */
@media (max-width: 920px) {
	.trip-tabs-nav {
		overflow: hidden;
		position:relative;
		z-index:100;
	}

	.trip-tabs .nav {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 0.75rem;
		touch-action: pan-x;
	}

	.trip-tabs .nav::-webkit-scrollbar {
		display: none;
	}

	.trip-tabs .nav-item {
		flex: 0 0 auto;
	}

	.trip-tabs .nav-link {
		flex: 0 0 auto;
		padding: 0.7rem 1rem;
		font-size: 0.95rem;
		border-radius: 12px 12px 0 0;
	}
	
	.trip-tabs .tab-pane{
		border-radius:0 0 15px 15px;
		padding:1.5rem;
	}
}

@media (max-width: 920px) {
	.trip-tabs .tab-pane{
		border-radius:0 0 15px 15px;
		padding:.75rem;
	}
}

/* TRIP PAGE */

.intro-text{
	text-align:center;
}

.intro-text h1{
	color:var(--gold-color);
	
}

/* TRAVELIFY WIDGETS */

tg-tour-origin-calendar{
	position:relative;
	padding:1.5rem;
}

tg-tour-origin-calendar:before {
	content: '';
	inset: 0;
	position: absolute;
	box-shadow: var(--snow-shadow);
	pointer-events: none;
	z-index: 20;
	border-radius: 15px;
}

h3.tg-tour-origin-calendar-origin{
	font-family:var(--title-font);
}

@media screen and (max-width:800px){
	tg-tour-origin-calendar{
		padding:0;
	}

}

/* BOOKING CONDITIONS TABLES */

table.simple {
	width: 100%;
	margin: 2em 0;
	background: #fff;
	border-collapse: collapse;
	border-radius: 5px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
	display: flex;
	flex-direction:column;
	overflow-x: auto;
}

table.simple.width-900{
	max-width:900px;
}

table.simple thead {
	color: #fff;
	border-radius: 5px 5px 0 0;
}

table.simple th {
	font-weight: 600;
	align-self: stretch;
	background: var(--grey-color);
	justify-content: flex-end;
	display: flex;
	font-weight: 600;

}

table.simple thead,
table.simple tbody{
}

table.simple tr{
	min-width:480px;
	display:flex;
}

table.simple.col-4 tr{
	min-width:720px;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
}

table.col-2 td,
table.col-2 th
{
	width:50%;
}


table.simple th, table.simple td {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size:0.875rem;
}

table.simple td strong{
	font-weight:600;
}

table.simple tr:not(:last-child) td {
	border-bottom: 1px solid #f2f2f2;
}