.btb-add-to-itinerary {
	background: transparent;
	border: none;
	color: #d9a441;
	text-decoration: underline;
	letter-spacing: .05em;
	font-size: 13px;
	cursor: pointer;
	padding: 0;
}
.btb-add-to-itinerary:disabled { opacity: .6; cursor: default; }

.btb-itinerary-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	color: #111;
	font-size: 12px;
	margin-left: 6px;
}

.btb-itinerary-wrap {
	max-width: 900px;
	margin: 0 auto;
	background: #fff;
	border-radius: 10px;
	padding: 30px;
	box-shadow: 0 6px 24px rgba(0,0,0,.08);
	font-family: sans-serif;
}
.btb-itinerary-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid #eee;
	padding-bottom: 16px;
	margin-bottom: 16px;
}
.btb-itinerary-header h2 { letter-spacing: .1em; font-size: 18px; margin: 0; color: #555; }
.btb-itinerary-header-actions { display: flex; gap: 8px; }
.btb-btn-secondary {
	border: 1px solid #ccc;
	background: #fff;
	border-radius: 20px;
	padding: 6px 16px;
	cursor: pointer;
}
.btb-btn-link { color: #d9a441; align-self: center; }

.btb-item-row {
	display: grid;
	grid-template-columns: 90px 1fr auto auto auto;
	gap: 16px;
	align-items: center;
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 12px;
	margin-bottom: 12px;
}
.btb-item-thumb img { width: 90px; height: 70px; object-fit: cover; border-radius: 6px; }
.btb-item-title { font-weight: 600; color: #d9a441; text-decoration: underline; }
.btb-item-sub { color: #777; font-size: 13px; }
.btb-item-qty { display: flex; align-items: center; gap: 6px; }
.btb-item-qty button {
	width: 28px; height: 28px; border-radius: 50%; border: 1px solid #ccc; background: #fff; cursor: pointer;
}
.btb-item-qty input { width: 40px; text-align: center; border: none; }
.btb-item-price { text-align: right; display: flex; flex-direction: column; }
.btb-unit-price { color: #999; font-size: 12px; text-decoration: line-through; }
.btb-remove-item { background: #fff; border: 1px solid #ccc; border-radius: 16px; padding: 4px 12px; cursor: pointer; }

.btb-total-row { text-align: right; font-size: 16px; margin: 16px 0; }
.btb-itinerary-footer { text-align: right; }
.btb-btn-dark {
	background: #111; color: #fff; border: none; border-radius: 20px; padding: 12px 28px; cursor: pointer; letter-spacing: .05em;
}
.btb-btn-dark:disabled { opacity: .4; cursor: default; }

#btb-checkout-form { margin-top: 24px; border-top: 1px solid #eee; padding-top: 24px; }
#btb-checkout-form label { display: block; font-size: 13px; margin-bottom: 4px; color: #555; }
#btb-checkout-form input, #btb-checkout-form textarea {
	width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; margin-bottom: 12px;
}
.btb-form-message { margin-top: 12px; padding: 10px; border-radius: 6px; }
.btb-form-message.btb-success { background: #e6f4ea; color: #1e7a34; }
.btb-form-message.btb-error { background: #fdecea; color: #b3261e; }
.btb-empty { color: #777; text-align: center; padding: 30px 0; }

@media (max-width: 640px) {
	.btb-item-row { grid-template-columns: 60px 1fr; grid-auto-rows: auto; }
	.btb-item-thumb img { width: 60px; height: 50px; }
}

/* Elementor itinerary listing component */
.btb-listing-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.btb-listing-card {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,.06);
	display: flex;
	flex-direction: column;
}
.btb-listing-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 180px;
	background: linear-gradient(135deg, #f8f1df, #eef7fb);
	color: #9b7425;
	font-weight: 700;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}
.btb-listing-image img {
	width: 100%;
	height: 210px;
	object-fit: cover;
	display: block;
}
.btb-listing-body {
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.btb-listing-type {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #d9a441;
}
.btb-listing-body h3 {
	font-size: 20px;
	line-height: 1.25;
	margin: 0;
}
.btb-listing-body h3 a {
	color: #111;
	text-decoration: none;
}
.btb-listing-meta,
.btb-listing-excerpt {
	margin: 0;
	color: #666;
	font-size: 14px;
	line-height: 1.5;
}
.btb-listing-footer {
	margin-top: auto;
	padding-top: 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-top: 1px solid #eee;
}
.btb-listing-footer strong {
	font-size: 16px;
	color: #111;
}

@media (max-width: 900px) {
	.btb-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.btb-listing-grid { grid-template-columns: 1fr; }
	.btb-listing-footer { align-items: flex-start; flex-direction: column; }
}


/* Single listing and resort room options */
.btb-single-action,
.btb-resort-rooms {
	margin: 32px 0;
	padding: 24px;
	border: 1px solid #e6e8ec;
	border-radius: 14px;
	background: #fff;
}
.btb-single-action h3,
.btb-resort-rooms h2 { margin-top: 0; }
.btb-section-intro,
.btb-single-price { color: #6b7280; }
.btb-room-grid { margin-top: 18px; }

/* Broadlight CPT templates */
.btb-template-page { background:#f7f7f7; padding:40px 0; }
.btb-template-container { max-width:1180px; margin:0 auto; padding:0 20px; }
.btb-template-hero { min-height:330px; display:flex; align-items:flex-end; background:#303842 center/cover no-repeat; color:#fff; padding:70px 0 45px; }
.btb-template-kicker { display:inline-block; letter-spacing:.14em; text-transform:uppercase; color:#d9a441; font-weight:700; font-size:13px; margin-bottom:10px; }
.btb-template-hero h1 { color:#fff; font-size:52px; line-height:1.05; margin:0; }
.btb-template-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:28px; align-items:start; }
.btb-template-main { display:flex; flex-direction:column; gap:24px; }
.btb-template-card, .btb-template-booking-box { background:#fff; border:1px solid #e6e8ec; border-radius:16px; padding:26px; box-shadow:0 8px 24px rgba(0,0,0,.05); }
.btb-template-card h2, .btb-template-booking-box h3 { margin-top:0; }
.btb-template-content { color:#555; line-height:1.7; }
.btb-template-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.btb-template-gallery img { width:100%; height:210px; object-fit:cover; border-radius:14px; }
.btb-template-details { list-style:none; padding:0; margin:22px 0 0; border-top:1px solid #eee; }
.btb-template-details li { display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-bottom:1px solid #eee; }
.btb-template-details span { color:#777; }
.btb-template-details strong { color:#111; text-align:right; }
.btb-template-booking-box { position:sticky; top:30px; }
.btb-template-price { color:#666; font-size:16px; }
.btb-template-price strong { color:#111; font-size:24px; }
.btb-template-help { color:#777; font-size:13px; margin-top:16px; }
.btb-template-archive-head { padding:30px 0 20px; }
.btb-template-archive-head h1 { margin:0 0 8px; }
.btb-template-archive-head p { margin:0; color:#666; }
@media (max-width:900px){ .btb-template-layout{ grid-template-columns:1fr; } .btb-template-booking-box{ position:static; } .btb-template-hero h1{ font-size:38px; } .btb-template-gallery{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .btb-template-gallery{ grid-template-columns:1fr; } .btb-template-gallery img{ height:230px; } }
