:root{
  --seat-w:60px;
  --seat-h:42px;
  --g:12px;
  --carriage-bg:#f6f7f9;
  --seat-bg:#d9eef8;
  --seat-border:#b6d6ea;
  --locomotive:#333;
}

a {
	color: #ff5a5a;
}

a:hover,
a:active,
a:focus {
	color: #287cda;
}

.btn-ib {
	display:inline-block;
	width:auto;
	padding-left:30px;
	padding-right:30px;
	border:0px none;
	color:#FFF;
}

.btn-ib.active {
	background:#FFF;
	color: #ff5a5a;
}

.text-center {
	text-align: center;
}

h2.simple::after {
	display:none;
}

.ms15 {
	margin-left:15px;
	margin-right: 15px;
}

.mb15 {
	margin-bottom:15px;
}

.event-time-list {
	display:block;
	margin-top: 10px;
	margin-bottom: 10px;
}

.event-time-list .item-container {
	text-align: center;
	margin-bottom: 10px;
}

.event-time-list button {
	padding: 8px 50px;
	border: 1px solid #ddd;
	text-align: center;
	line-height: 31px;
	font-family: "Arimo";
	font-weight: 400;
	margin: 10px 12px 0 0;
	font-size: 14px;
	color: #444;
	outline: 0;
	transition: border 0.2s, color 0.2s;
	background:#FFF;
	cursor: pointer;
}

.event-time-list button.inactive {
	opacity: 0.5;
	cursor: default;
}

.event-time-list button:not([disabled]):hover {
	border: 1px solid #ff5a5a;
	color: #ff5a5a;
	background:#FFF;
}

.location-info {
	background-color: #f1f1f1;
	padding: 26px 20px 26px 30px;
	font-family: "Arimo";
	font-style: italic;
	color: #222;
	font-size: 14px;
	margin: 10px 0 5px;
	border-left: 3px solid #ff5a5a;
}

.blog-detail-inner p {
	padding-left:0;
}

/* train area */
.train{display:flex;gap:18px;align-items: center;justify-content: center;}
.carriage{background:var(--carriage-bg);padding:12px 27px;border-radius:8px;border:1px solid #e0e6ef;box-shadow:0 4px 12px rgba(20,30,50,0.04)}
.carriage h2{font-size:14px;margin:0 0 10px;text-align:center;font-weight:bold;}

/* rows: each row is horizontal, seats aligned from left to right with side boarding (no central aisle) */
.trows{display:flex;flex-direction:column;gap:10px}
.trow{display:flex;gap:12px;align-items:center}

/* seat box */
.seat{width:var(--seat-w);height:var(--seat-h);display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:6px;background:var(--seat-bg);border:1px solid var(--seat-border);font-weight:700; cursor:pointer;}
.seat .pos{font-size:12px;opacity:0.9}
.seat .label{font-size:11px;color:#113f57}

/* different seat types (you can extend) */
.available{background:#d6f5d6;border-color:#b8e6b8}
.reserved{background:#ffdede;border-color:#f0bebe}
.sold{background:#EDEDED;border-color:#CCC; cursor: default;}

/* seat groups for ABC / ABCD ordering */
.group{display:flex;gap:8px;  margin-left: auto;margin-right: auto;}
.spacer{width:20px}

.seat.santa {
	border-color:#ff5a5a;
}

.santa-icon {
	background-image:url(/images/santa-claus_6366297.png);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	width:30px;
	height: 30px;
	display:block;
	margin:5px auto;
}

/* responsive */
@media (max-width:720px){:root{--seat-w:48px;--seat-h:36px} .train{flex-direction:column;gap:12px} }

a.white-button, button.white-button {
	display:inline-block;
	font-family: 'Arimo';
	font-size: 16px;
	color: #ff5a5a !important;
	background:#FFF !important;
	cursor: pointer;
	box-shadow: 0px 0px 40px 1px rgba(0, 0, 0, 0.15);
	transition: all ease 0.6s;
	-webkit-transition: all ease 0.6s;
	-moz-transition: all ease 0.6s;
	-ms-transition: all ease 0.6s;
	-o-transition: all ease 0.6s;
	line-height: 24px;
	border-radius: 35px;
	padding: 14px 29px;
}

a.white-button:hover, button.white-button:hover {
	background: #ff5a5a !important;
	color:#FFF !important;
}

.next-btn {
	text-align: center;
	padding:30px 0;
}

.next-btn a, .next-btn button {
	display:inline-block;
}

.nav-buttons a:first-child {
	margin-right: 40px;
}

.order-form {
  background: #fafafa;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.ticket-item {
  margin-bottom: 1.5rem;
}

.order-form label {
  display: block;
  margin-top: 1rem;
  font-weight: 600;
}

.order-form select,
.order-form input,
.order-form textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ccc;
  margin-top: 0.5rem;
  font-size: 1rem;
    background: #FFF;
}

.order-form textarea {
  resize: vertical;
  min-height: 130px;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.checkboxes {
  margin: 1.5rem 0;
}

.checkboxes label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.95rem;
}

h3.order-section-title {
	font-size: 20px;
	font-weight: 600;
	margin-top:20px;
}

input[type="checkbox"],
input[type="radio"] {
	display: inline-block;
	width: auto;
	margin-right: 5px;
}

.ticket-title {
	font-size: 20px;
	font-weight: 600;
}

.payment-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1rem 0;
}

.radio-option {
  display: flex;
  align-items: center;
  background: #fff;
  border: 2px solid #ddd;
  padding: 0.75rem 1rem;
  cursor: pointer;
  flex: 1 1 45%;
  transition: all 0.3s ease;
}

.radio-option:hover {
  border-color: #ff5a5a;
}

.radio-option input[type="radio"] {
  margin-right: 10px;
  accent-color: #ff5a5a;
}

.time-left-text {
	font-size:18px;
}

.time-left-text span {
	color: #ff5a5a;
	font-weight: 600;
	font-size:22px;
}

.hidden {
	display:none;
}

@media screen and (min-width: 768px) {
	.hidden-desktop {
		display:none;
	}
}

.final-price {
	font-size:20px;
}

.final-price span {
	color:#ff5a5a;
	font-size:24px;
}

.error-content-detail {
	text-align: center;
	margin-bottom: 30px;
	width:100%;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	border:2px solid #ff5a5a;
	background:#ffebeb;
}

.error {
	border-color:#ff5a5a !important;
}

.email1 {
	display:none !important;
}

.menu_area {
	display:flex;
}

.menu_area .logo_container {
	display:block;
	width: auto;
}

.menu_area .main_menu {
	display: block;
	width: 100%;
}

.menu_wrapper {
	display: block;
	vertical-align: middle;
	position: relative;
	width: 100%;
}

.desktop-menu {
	
}

.desktop-menu ul {
	display:block;
	text-align: right;
}

.desktop-menu ul li {
	display:inline-block;
}

.desktop-menu ul li a {
	display:block;
	padding:42px 20px;
	color:#FFF;
	font-size: 18px;
	transform: translateX(0px);
	line-height: 24px;
	font-family: 'Arimo';
	text-transform: uppercase;
	font-weight: 600;
	text-decoration: none;
	text-shadow: 0px 0px 6px #000;
}

.desktop-menu ul li a:hover {
	color:#EEE;
}

.nav_area.navcss .desktop-menu ul li a {
	padding:22px 20px;
}

.footer-payment {
	max-height: 70px;
}

.order-payment {
	max-width:100%;
	max-height: 50px;
}

.cart-continue {
	display:block;
	right:auto;
	left:20px;
	min-width: 50px;
	width: auto;
	padding-left:16px;
	padding-right:16px;
}

.cart-continue span {
	max-width:0;
	transition: max-width 0.3s;
	overflow: hidden;
	display:inline-block;
	vertical-align: top;
	white-space: nowrap;
}

.cart-continue:hover span {
	max-width:200px;
	color:#FFF;
}

@media (min-width:768px){
	#blog-details {
		min-height: 500px;
	}
}

.home-gallery-item {
	display:block;
	position: relative;
	width:100;
	padding-bottom: 100%;
	height: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.home-gallery-item img {
	width:0;
	height: 0;
	opacity: 0.0;
}

.video-slider img {
	margin-left:auto;
	margin-right:auto;
}

.video-gallery-image {
	display:block;
	margin-left: auto;
	margin-right:auto;
	text-align: center;
}

.video-gallery-image img {
	width:100%;
	max-width: 600px;
	margin-left:auto;
	margin-right:auto;
}

.slidprev4,
.slidNext4 {
	bottom:-90px;
}

.footer-menu {
	display: block !important;
	margin: 0;
	padding: 16px 0 0 0;
	color: #FFF;
	float:none !important;
}

.footer-menu li {
	display: block;
	float:none !important;
	padding-bottom: 10px;
}

.footer-menu li a {
	display: block;
	color:#FFF;
}

.gallery-more-button {
	margin: 140px auto 0;
	text-align: center;
}

.party-img-det {
	padding-bottom:40px;
}

.grid-item {
	margin-bottom:30px;
}

.video-more-item {
	margin-bottom: 30px;
}

.video-more-item .blog_title {
	margin:10px 0;
}

.partner-list {
	padding-top:10px;
	padding-bottom: 60px;
}

.partner-item {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}

.partner-item a {
	text-align: center;
	display:block;
	font-size:22px;
}

.partner-item a img {
	display:block;
	max-width: 100%;
	max-height: 170px;
}

.partner-image {
	display:block;
	max-width: 300px;
	max-height: 170px;
	margin:10px auto;
}

.partner-website {
	margin:30px auto;
	text-align: center;
	display:inline-block;
	font-weight: bold;
	font-size: 18px;
}

.partner-text {
	margin-top: 30px;
}

.logo_container a {
	width: 330px;
	margin-top: 7px;
}

.logo_container a {
	width: 330px;
	margin-top: 7px;
}

.navcss .logo_container a {
	width: 330px;
	transition: all ease .3s;
	background-image:url(/images/FullLogo_Transparent_NoBuffer_white.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center center;
}

.navcss .logo_container a img {
	opacity:0.0;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
	.desktop-menu ul li a {
		padding-left:15px;
		padding-right:15px;
		font-size: 14px;
	}
}

@media only screen and (max-width: 767px) {
	.order-buttons {
		display: flex;
		flex-flow: wrap;
		align-items: center;
		justify-content: center;
	}

	.order-buttons #next_button {
		order:1;
		margin-bottom: 20px;
		margin-left:0 !important;
		margin-right:0 !important;
		width:100%;
	}

	.order-buttons .white-button {
		order:2;
		margin-bottom: 20px;
		margin-left:0 !important;
		margin-right:0 !important;
		width:100%;
	}
	
	.logo img {
		height: auto;
		max-width: 200px;
		margin-top: 9px;
	}
}

