/* Hideaway Tickets – front end. Dark theme to match the Christmas landing page. */
.hdt-async, .hdt-booking, .hdt-reschedule, .hdt-extras, .hdt-visit, .hdt-box {
	--hdt-bg: #0a1410;
	--hdt-card: rgba(255, 255, 255, .06);
	--hdt-card-hover: rgba(255, 255, 255, .12);
	--hdt-line: rgba(255, 255, 255, .25);
	--hdt-text: #ffffff;
	--hdt-muted: rgba(255, 255, 255, .7);
	--hdt-accent: #f6ad01;
	--hdt-danger: #ff8a80;
	color: var(--hdt-text);
	box-sizing: border-box;
}
.hdt-booking *, .hdt-reschedule *, .hdt-extras *, .hdt-visit * { box-sizing: border-box; }

/* ---------- Boxes / notices ---------- */
.hdt-box {
	border: 1px solid var(--hdt-line);
	background: var(--hdt-card);
	padding: 16px 18px;
	margin: 0 0 20px;
	line-height: 1.5;
}
.hdt-notice--error { border-color: var(--hdt-danger); color: var(--hdt-danger); }
.hdt-notice--success { border-color: #8be28b; }
.hdt-notice--admin { border-style: dashed; color: var(--hdt-accent); border-color: var(--hdt-accent); font-size: 14px; }
.hdt-booking .woocommerce-error, .hdt-booking .woocommerce-message, .hdt-booking .woocommerce-info { margin-bottom: 20px; }

.hdt-async { min-height: 140px; }
.hdt-loading { opacity: .7; text-align: center; }

/* ---------- Steps ---------- */
.hdt-step { margin: 0 0 34px; }
.hdt-step__title {
	display: flex; align-items: center; gap: 12px;
	margin: 0 0 6px; font-size: 24px; line-height: 1.3; font-weight: 700; color: var(--hdt-text);
}
.hdt-step__title span {
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid var(--hdt-text); border-radius: 50%; font-size: 16px;
}
.hdt-step__hint { margin: 0 0 18px; color: var(--hdt-muted); }
.hdt-month {
	margin: 22px 0 10px; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: var(--hdt-accent); font-weight: 700;
}

/* ---------- Date cards ---------- */
.hdt-dates { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.hdt-date { position: relative; display: block; margin: 0; cursor: pointer; }
.hdt-date input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.hdt-date__card {
	display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; min-height: 96px;
	border: 1px solid var(--hdt-line); background: var(--hdt-card);
	backdrop-filter: blur(4px); transition: background .15s, border-color .15s, color .15s;
}
.hdt-date:hover .hdt-date__card { background: var(--hdt-card-hover); }
.hdt-date__dow { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--hdt-muted); }
.hdt-date__day { font-size: 24px; font-weight: 700; line-height: 1.2; }
.hdt-date__status { font-size: 13px; margin-top: auto; color: var(--hdt-muted); }
.hdt-date.is-low .hdt-date__status { color: var(--hdt-accent); font-weight: 700; }
.hdt-date input:focus-visible + .hdt-date__card { outline: 2px solid var(--hdt-accent); outline-offset: 2px; }
.hdt-date input:checked + .hdt-date__card { background: #ffffff; border-color: #ffffff; color: #000000; }
.hdt-date input:checked + .hdt-date__card .hdt-date__dow,
.hdt-date input:checked + .hdt-date__card .hdt-date__status { color: #333333; }
.hdt-date.is-soldout { cursor: not-allowed; }
.hdt-date.is-soldout .hdt-date__card { opacity: .4; }
.hdt-date.is-soldout .hdt-date__day { text-decoration: line-through; }
.hdt-date.is-soldout input { cursor: not-allowed; }

/* ---------- Stepper / price ---------- */
.hdt-qtyrow { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.hdt-stepper { display: inline-flex; align-items: stretch; border: 1px solid var(--hdt-line); }
.hdt-stepper__btn {
	width: 46px; min-height: 46px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--hdt-text);
	font-size: 22px; line-height: 1; cursor: pointer;
}
.hdt-stepper__btn:hover, .hdt-stepper__btn:focus { background: var(--hdt-card-hover); color: var(--hdt-text); }
.hdt-stepper input[type="number"] {
	width: 58px; min-height: 46px; padding: 0; border: 0; border-left: 1px solid var(--hdt-line); border-right: 1px solid var(--hdt-line);
	border-radius: 0; background: transparent; color: var(--hdt-text); text-align: center; font-size: 18px; font-weight: 700;
	-moz-appearance: textfield; appearance: textfield;
}
.hdt-stepper input::-webkit-outer-spin-button, .hdt-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hdt-price { display: flex; flex-direction: column; gap: 2px; }
.hdt-price__unit { color: var(--hdt-muted); }
.hdt-price__unit del { opacity: .6; }
.hdt-price__total { font-size: 22px; }
.hdt-price__tax { font-size: 14px; color: var(--hdt-muted); font-weight: 400; }

/* ---------- Buttons ---------- */
.hdt-btn {
	display: inline-block; padding: 14px 32px; border: 1px solid #ffffff; border-radius: 0; background: #ffffff; color: #000000;
	font-size: 16px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; cursor: pointer;
	transition: background .15s, color .15s;
}
.hdt-btn:hover, .hdt-btn:focus { background: transparent; color: #ffffff; }
.hdt-btn--small { padding: 10px 18px; font-size: 13px; }
.hdt-btn.is-busy, .hdt-btn:disabled { opacity: .6; cursor: progress; }
.hdt-link { padding: 0; border: 0; background: none; color: var(--hdt-muted); text-decoration: underline; cursor: pointer; font-size: 14px; }
.hdt-link:hover, .hdt-link:focus { background: none; color: var(--hdt-text); }
.hdt-fineprint { margin: 18px 0 0; font-size: 14px; color: var(--hdt-muted); max-width: 640px; }

/* ---------- Visit summary ---------- */
.hdt-visit {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px;
	padding: 18px 20px; margin: 0 0 28px; border: 1px solid var(--hdt-line); background: var(--hdt-card); backdrop-filter: blur(4px);
}
.hdt-visit__main { display: flex; flex-direction: column; gap: 2px; }
.hdt-visit__label { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--hdt-accent); font-weight: 700; }
.hdt-visit__date { font-size: 24px; line-height: 1.25; }
.hdt-visit__meta { color: var(--hdt-muted); }
.hdt-visit__change { color: var(--hdt-text); text-decoration: underline; }

/* ---------- Extras ---------- */
.hdt-extras { margin: 0 0 36px; transition: opacity .15s; }
.hdt-extras.is-loading { opacity: .55; pointer-events: none; }
.hdt-extras__title { margin: 0 0 6px; font-size: 26px; font-weight: 700; color: var(--hdt-text); }
.hdt-extras__intro { margin: 0 0 18px; color: var(--hdt-muted); }
.hdt-extras__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.hdt-extra { display: flex; flex-direction: column; border: 1px solid var(--hdt-line); background: var(--hdt-card); }
.hdt-extra.is-added { border-color: var(--hdt-accent); }
.hdt-extra__photo { position: relative; aspect-ratio: 4 / 3; background: rgba(255, 255, 255, .08); overflow: hidden; }
.hdt-extra__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hdt-extra__badge {
	position: absolute; top: 10px; left: 10px; padding: 4px 10px; background: var(--hdt-accent); color: #000; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .06em;
}
.hdt-extra__badge--private { top: auto; bottom: 10px; background: #000; color: #fff; }
.hdt-extra__body { display: flex; flex-direction: column; gap: 8px; padding: 16px; flex: 1; }
.hdt-extra__name { margin: 0; font-size: 19px; font-weight: 700; color: var(--hdt-text); }
.hdt-extra__price { font-size: 17px; font-weight: 700; color: var(--hdt-accent); }
.hdt-extra__price del { opacity: .6; font-weight: 400; }
.hdt-extra__price ins { text-decoration: none; }
.hdt-extra__desc { font-size: 14px; line-height: 1.5; color: var(--hdt-muted); }
.hdt-extra__desc p { margin: 0 0 6px; }
.hdt-extra__out { margin: auto 0 0; font-weight: 700; color: var(--hdt-danger); }
.hdt-extra__variable { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.hdt-extra__attr { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--hdt-muted); margin: 0; }
.hdt-extra__attr select {
	width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid var(--hdt-line); border-radius: 0; background: #0a1410; color: #fff; font-size: 15px;
}
.hdt-extra__attr select.is-missing { border-color: var(--hdt-danger); }
.hdt-extra__addrow { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.hdt-extra__variable .hdt-extra__addrow { margin-top: 0; }
.hdt-extra__lines { list-style: none; margin: 6px 0 0; padding: 10px 0 0; border-top: 1px solid var(--hdt-line); font-size: 14px; }
.hdt-extra__lines li { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; }

/* ---------- Checkout fields added by the plugin ---------- */
.hdt-heard { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
.hdt-heard legend { padding: 0; margin: 0 0 8px; font-weight: 700; font-size: inherit; color: inherit; border: 0; }
.hdt-heard__options { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 16px; }
.hdt-check { display: flex !important; align-items: flex-start; gap: 10px; margin: 0; cursor: pointer; line-height: 1.4; font-weight: 400; }
.hdt-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #f6ad01; }

/* ---------- Lookup form ---------- */
.hdt-lookup { max-width: 460px; margin: 0 auto; }
.hdt-lookup label { display: block; color: var(--hdt-muted); font-size: 14px; }
.hdt-lookup input[type="text"], .hdt-lookup input[type="email"] {
	width: 100%; min-height: 46px; margin-top: 4px; padding: 10px 12px; border: 1px solid var(--hdt-line); border-radius: 0; background: transparent; color: #fff; font-size: 16px;
}

/* =========================================================================
 * WooCommerce checkout + order received on the dark page
 * ===================================================================== */
.hdt-page .woocommerce, .hdt-page .woocommerce h3, .hdt-page .woocommerce h2, .hdt-page .woocommerce label,
.hdt-page .woocommerce legend, .hdt-page .woocommerce table, .hdt-page .woocommerce th, .hdt-page .woocommerce td,
.hdt-page .woocommerce address, .hdt-page .woocommerce p, .hdt-page .woocommerce li { color: #ffffff; }
.hdt-page .woocommerce a { color: #ffffff; text-decoration: underline; }
.hdt-page .woocommerce .optional, .hdt-page .woocommerce .description, .hdt-page .woocommerce small { color: rgba(255, 255, 255, .7); }
.hdt-page .woocommerce h3, .hdt-page .woocommerce h2 { font-weight: 700; }

.hdt-page .woocommerce form .form-row input.input-text,
.hdt-page .woocommerce form .form-row textarea,
.hdt-page .woocommerce form .form-row select,
.hdt-page .woocommerce .select2-container .select2-selection {
	min-height: 48px; padding: 10px 12px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 0; background: rgba(255, 255, 255, .06);
	color: #ffffff; font-size: 16px;
}
.hdt-page .woocommerce form .form-row input.input-text:focus { border-color: #f6ad01; outline: 0; }
.hdt-page .woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #ff8a80; }
.hdt-page .woocommerce form .form-row .required { color: #f6ad01; }

.hdt-page .woocommerce table.shop_table {
	border: 1px solid rgba(255, 255, 255, .25); border-radius: 0; background: rgba(255, 255, 255, .06); border-collapse: collapse;
}
.hdt-page .woocommerce table.shop_table th, .hdt-page .woocommerce table.shop_table td {
	border-top: 1px solid rgba(255, 255, 255, .15); padding: 12px 14px; background: transparent;
}
.hdt-page .woocommerce table.shop_table thead th { border-top: 0; text-transform: uppercase; font-size: 13px; letter-spacing: .08em; }
.hdt-page .woocommerce table.shop_table tbody tr:nth-child(odd) td, .hdt-page .woocommerce table.shop_table tbody tr:hover td { background: transparent; }
.hdt-page .woocommerce table.shop_table dl.variation, .hdt-page .woocommerce table.shop_table .wc-item-meta { color: rgba(255, 255, 255, .7); font-size: 14px; margin: 4px 0 0; padding: 0; list-style: none; }
.hdt-page .woocommerce table.shop_table dl.variation dt, .hdt-page .woocommerce table.shop_table dl.variation dd,
.hdt-page .woocommerce table.shop_table dl.variation dd p, .hdt-page .woocommerce table.shop_table .wc-item-meta li,
.hdt-page .woocommerce table.shop_table .wc-item-meta p { color: rgba(255, 255, 255, .7); margin: 0; }
.hdt-page .woocommerce table.shop_table .order-total td, .hdt-page .woocommerce table.shop_table .order-total th { font-size: 20px; }

.hdt-page .woocommerce-checkout #payment { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .25); border-radius: 0; }
.hdt-page .woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid rgba(255, 255, 255, .15); }
.hdt-page .woocommerce-checkout #payment div.payment_box { background: rgba(255, 255, 255, .1); color: #ffffff; border-radius: 0; }
.hdt-page .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: rgba(255, 255, 255, .1); }
.hdt-page .woocommerce-checkout #payment div.payment_box p, .hdt-page .woocommerce-checkout #payment label { color: #ffffff; }
.hdt-page .woocommerce-checkout #payment .woocommerce-privacy-policy-text p { color: rgba(255, 255, 255, .7); font-size: 14px; }

.hdt-page .woocommerce #payment #place_order, .hdt-page .woocommerce button.button, .hdt-page .woocommerce a.button {
	padding: 16px 32px; border: 1px solid #ffffff; border-radius: 0; background: #ffffff; color: #000000; font-size: 16px; font-weight: 700;
	letter-spacing: .04em; text-transform: uppercase; text-decoration: none;
}
.hdt-page .woocommerce #payment #place_order { width: 100%; float: none; }
.hdt-page .woocommerce #payment #place_order:hover, .hdt-page .woocommerce button.button:hover, .hdt-page .woocommerce a.button:hover { background: transparent; color: #ffffff; }

.hdt-page .woocommerce-info, .hdt-page .woocommerce-message, .hdt-page .woocommerce-error, .hdt-page .woocommerce-NoticeGroup .woocommerce-error {
	background: rgba(255, 255, 255, .06); color: #ffffff; border: 1px solid rgba(255, 255, 255, .25); border-top: 3px solid #f6ad01; border-radius: 0;
}
.hdt-page .woocommerce-error { border-top-color: #ff8a80; }
.hdt-page .woocommerce-info::before, .hdt-page .woocommerce-message::before { color: #f6ad01; }
.hdt-page .woocommerce-error::before { color: #ff8a80; }
.hdt-page .woocommerce-error li, .hdt-page .woocommerce-error a, .hdt-page .woocommerce-info a { color: #ffffff; }

.hdt-page .woocommerce form.checkout_coupon, .hdt-page .woocommerce form.login { border: 1px solid rgba(255, 255, 255, .25); border-radius: 0; }
.hdt-page .woocommerce .blockUI.blockOverlay { background: #0a1410 !important; opacity: .6 !important; }

.hdt-page .woocommerce .select2-container--default .select2-selection--single { height: 48px; display: flex; align-items: center; }
.hdt-page .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { color: #ffffff; padding-left: 0; line-height: 1.4; }
.hdt-page .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.hdt-page .woocommerce form .form-row select { color: #ffffff; background-color: #0a1410; }

/* Order received */
.hdt-page .woocommerce ul.order_details { padding: 0; margin: 0 0 24px; }
.hdt-page .woocommerce ul.order_details li { border-right-color: rgba(255, 255, 255, .25); color: rgba(255, 255, 255, .7); }
.hdt-page .woocommerce ul.order_details li strong { color: #ffffff; }
.hdt-page .woocommerce .woocommerce-customer-details address { border: 1px solid rgba(255, 255, 255, .25); border-radius: 0; }
.hdt-page .woocommerce .woocommerce-thankyou-order-received { font-size: 20px; margin-bottom: 20px; }

/* The confirmation card is light on purpose (it is also what gets printed / shown at the gate). */
.hdt-page .woocommerce .hdt-confirm, .hdt-page .woocommerce .hdt-confirm p, .hdt-page .woocommerce .hdt-confirm th,
.hdt-page .woocommerce .hdt-confirm td { color: #1b1b1b; }
.hdt-page .woocommerce .hdt-confirm h2, .hdt-page .woocommerce .hdt-confirm a { color: #1f4d3a; }
.hdt-page .woocommerce .hdt-confirm table { background: transparent; border: 0; }
.hdt-page .woocommerce .hdt-confirm th, .hdt-page .woocommerce .hdt-confirm td { border: 0; padding: 6px 14px 6px 0; }

@media (max-width: 767px) {
	.hdt-dates { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.hdt-date__card { min-height: 88px; padding: 12px; }
	.hdt-date__day { font-size: 21px; }
	.hdt-step__title { font-size: 21px; }
	.hdt-btn--primary { width: 100%; text-align: center; }
	.hdt-extras__grid { grid-template-columns: 1fr; }
	.hdt-visit__date { font-size: 20px; }
	.hdt-page .woocommerce .col2-set .col-1, .hdt-page .woocommerce .col2-set .col-2 { width: 100%; float: none; }
}

@media print {
	.hdt-visit__change, .hdt-btn { display: none; }
}
