.spooky-hotel-single-page{
	max-width:1180px;
	margin:0 auto;
	padding:24px 20px 48px;
}

.spooky-hotel-back-link{
	margin:0 0 20px;
	font-weight:700;
}

.spooky-hotel-back-link a,
.spooky-hotel-read-more a{
	color:#05590d;
	text-decoration:none;
}

.spooky-hotel-back-link a:hover,
.spooky-hotel-read-more a:hover{
	text-decoration:underline;
}

.spooky-hotel-single-layout{
	display:grid;
	grid-template-columns:minmax(260px,340px) minmax(0,1fr);
	gap:42px;
	align-items:start;
}

.spooky-hotel-image img{
	display:block;
	width:100%;
	height:auto;
	border-radius:8px;
}

.spooky-hotel-at-a-glance{
	margin-top:18px;
	background:#f2f6f2;
	border:1px solid #dce7dc;
	border-radius:8px;
	padding:18px;
}

.spooky-hotel-at-a-glance h2{
	margin:0 0 14px;
	font-size:22px;
}

.spooky-hotel-facts{
	display:grid;
	gap:10px;
}

.spooky-hotel-facts div{
	display:grid;
	grid-template-columns:105px 1fr;
	gap:10px;
	padding-bottom:9px;
	border-bottom:1px solid #d9e1d9;
}

.spooky-hotel-facts div:last-child{
	border-bottom:0;
	padding-bottom:0;
}

.spooky-hotel-facts span{
	color:#687068;
}

.spooky-hotel-kicker{
	margin-bottom:7px;
	color:#05590d;
	font-size:13px;
	font-weight:800;
	letter-spacing:.06em;
	text-transform:uppercase;
}

.spooky-hotel-single-main h1{
	margin:0 0 9px;
	font-size:42px;
	line-height:1.08;
}

.spooky-hotel-location{
	margin:0 0 28px;
	color:#5e665e;
	font-size:18px;
}

.spooky-hotel-section{
	margin:0 0 30px;
}

.spooky-hotel-section h2,
.spooky-hotel-address h2{
	margin:0 0 12px;
	font-size:27px;
}

.spooky-hotel-read-more a{
	font-weight:800;
}

.spooky-hotel-booking-panel{
	display:grid;
	grid-template-columns:1fr auto;
	gap:22px;
	align-items:center;
	margin:32px 0;
	padding:24px;
	border-radius:9px;
	background:#172017;
	color:#fff;
}

.spooky-hotel-booking-panel h2{
	margin:0 0 6px;
	color:#fff;
	font-size:26px;
}

.spooky-hotel-booking-panel p{
	margin:0;
	color:#d9e4d9;
}

.spooky-hotel-booking-action{
	text-align:right;
}

.spooky-hotel-booking-button{
	display:inline-block;
	padding:13px 18px;
	border-radius:6px;
	background:#b0d9b4;
	color:#07350b !important;
	font-weight:900;
	text-decoration:none !important;
}

.spooky-hotel-booking-button:hover{
	filter:brightness(.96);
}

.spooky-hotel-booking-action small{
	display:block;
	max-width:280px;
	margin-top:8px;
	color:#c9d4c9;
}

.spooky-hotel-address{
	margin-top:30px;
}

.spooky-hotel-back-link--bottom{
	margin:34px 0 0;
}

@media (max-width:760px){
	.spooky-hotel-single-page{
		padding:14px 0 34px;
	}

	.spooky-hotel-single-layout{
		grid-template-columns:1fr;
		gap:22px;
	}

	.spooky-hotel-single-main h1{
		font-size:32px;
	}

	.spooky-hotel-booking-panel{
		grid-template-columns:1fr;
	}

	.spooky-hotel-booking-action{
		text-align:left;
	}

	.spooky-hotel-booking-action small{
		max-width:none;
	}
}

/* Haunted Hotels catalogue */
.spooky-hotel-directory{
	max-width:1200px;
	margin:0 auto;
	padding:0 0 28px;
}

.spooky-hotel-directory-tools{
	margin:0 0 14px;
	padding:16px;
	border:1px solid #dfe4de;
	border-radius:10px;
	background:#fff;
	box-shadow:0 2px 10px rgba(0,0,0,.035);
}

.spooky-hotel-directory-search label{
	display:block;
	margin-bottom:7px;
	font-weight:800;
}

.spooky-hotel-directory-search-row{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	gap:8px;
}

.spooky-hotel-directory input,
.spooky-hotel-directory select,
.spooky-hotel-directory button{
	min-height:44px;
	border-radius:6px;
}

.spooky-hotel-directory input,
.spooky-hotel-directory select{
	width:100%;
	border:1px solid #cfd6cf;
	background:#fff;
	padding:9px 11px;
}

.spooky-hotel-directory button{
	border:1px solid #05590d;
	background:#05590d;
	color:#fff;
	padding:9px 15px;
	font-weight:800;
	cursor:pointer;
}

.spooky-hotel-directory-filters{
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:9px;
	margin-top:12px;
}

.spooky-hotel-directory-filters label span{
	display:block;
	margin:0 0 5px;
	color:#4d554d;
	font-size:12px;
	font-weight:800;
}

.spooky-hotel-directory-actions{
	display:flex;
	align-items:center;
	gap:12px;
	margin-top:12px;
}

.spooky-hotel-directory-actions a{
	color:#05590d;
	font-weight:800;
	text-decoration:none;
}

.spooky-hotel-directory-head{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:12px;
	margin:0 0 12px;
	padding:11px 13px;
	border:1px solid #dfe4de;
	border-radius:10px;
	background:#fff;
}

.spooky-hotel-directory-head strong{
	font-size:18px;
}

.spooky-hotel-directory-head span{
	color:#667066;
	font-size:14px;
}

.spooky-hotel-directory-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:16px;
}

.spooky-hotel-directory-card{
	overflow:hidden;
	border:1px solid #dde2dc;
	border-radius:9px;
	background:#fff;
	box-shadow:0 2px 8px rgba(0,0,0,.025);
}

.spooky-hotel-directory-image{
	display:flex;
	aspect-ratio:8/5;
	align-items:center;
	justify-content:center;
	overflow:hidden;
	background:#e8eee8;
	text-decoration:none;
}

.spooky-hotel-directory-image img{
	width:100%;
	height:100%;
	object-fit:cover;
}

.spooky-hotel-directory-placeholder{
	color:#05590d;
	font-size:20px;
	font-weight:900;
}

.spooky-hotel-directory-card-body{
	padding:15px;
}

.spooky-hotel-directory-card-meta{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:8px;
}

.spooky-hotel-directory-badge,
.spooky-hotel-directory-bookable{
	display:inline-block;
	padding:4px 7px;
	border-radius:999px;
	font-size:11px;
	font-weight:800;
}

.spooky-hotel-directory-badge{
	border:1px solid #cfdccf;
	background:#eef5ee;
	color:#05590d;
}

.spooky-hotel-directory-bookable{
	border:1px solid #e4d9b6;
	background:#fff7df;
	color:#6b5100;
}

.spooky-hotel-directory-card h2{
	margin:0 0 6px;
	font-size:20px;
	line-height:1.18;
}

.spooky-hotel-directory-card h2 a{
	color:#171917;
	text-decoration:none;
}

.spooky-hotel-directory-card h2 a:hover{
	color:#05590d;
}

.spooky-hotel-directory-location{
	margin:0 0 9px;
	color:#687068;
	font-size:13px;
	font-weight:700;
}

.spooky-hotel-directory-summary{
	margin:0 0 12px;
	color:#353a35;
	font-size:14px;
	line-height:1.48;
}

.spooky-hotel-directory-read{
	color:#05590d;
	font-weight:900;
	text-decoration:none;
}

.spooky-hotel-directory-pagination{
	margin:22px 0 0;
}

.spooky-hotel-directory-pagination ul{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin:0;
	padding:0;
	list-style:none;
}

.spooky-hotel-directory-pagination a,
.spooky-hotel-directory-pagination span{
	display:block;
	min-width:38px;
	padding:8px 10px;
	border:1px solid #d9dfd8;
	border-radius:6px;
	background:#fff;
	text-align:center;
	text-decoration:none;
}

.spooky-hotel-directory-pagination .current{
	border-color:#05590d;
	background:#05590d;
	color:#fff;
	font-weight:800;
}

.spooky-hotel-directory-empty{
	padding:28px;
	border:1px solid #dfe4de;
	border-radius:10px;
	background:#fff;
	text-align:center;
}

@media(max-width:900px){
	.spooky-hotel-directory-filters{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.spooky-hotel-directory-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media(max-width:650px){
	.spooky-hotel-directory-tools{
		padding:13px;
	}

	.spooky-hotel-directory-search-row{
		grid-template-columns:1fr;
	}

	.spooky-hotel-directory-filters{
		grid-template-columns:1fr;
	}

	.spooky-hotel-directory-head{
		display:block;
	}

	.spooky-hotel-directory-head span{
		display:block;
		margin-top:3px;
	}

	.spooky-hotel-directory-grid{
		grid-template-columns:1fr;
		gap:9px;
	}

	.spooky-hotel-directory-card-body{
		padding:13px;
	}
}

/* Draft populated preview — deliberately echoes the Books directory. */
.spooky-hotel-preview-panel{
	margin:0 0 11px;
	padding:15px;
	border:1px solid #dfe4de;
	border-radius:10px;
	background:#fff;
	box-shadow:0 2px 10px rgba(0,0,0,.035);
}

.spooky-hotel-preview-label{
	margin-bottom:8px;
	color:#05590d;
	font-size:12px;
	font-weight:900;
	letter-spacing:.05em;
}

.spooky-hotel-preview-label--browse{
	margin-top:16px;
}

.spooky-hotel-preview-search{
	display:grid;
	grid-template-columns:minmax(0,1fr) 90px;
	gap:8px;
}

.spooky-hotel-preview-search input{
	min-height:46px;
	padding:10px 12px;
	border:1px solid #cfd6cf;
	border-radius:6px;
	background:#fff;
	font-size:15px;
}

.spooky-hotel-preview-search button{
	min-height:46px;
	border:1px solid #05590d;
	border-radius:6px;
	background:#05590d;
	color:#fff;
	font-weight:900;
}

.spooky-hotel-preview-pills{
	display:flex;
	flex-wrap:wrap;
	gap:7px;
}

.spooky-hotel-preview-pills span,
.spooky-hotel-preview-more span:not(:first-child){
	display:inline-block;
	padding:8px 12px;
	border:1px solid #dfe4de;
	border-radius:999px;
	background:#f8faf8;
	color:#293029;
	font-size:13px;
	font-weight:800;
}

.spooky-hotel-preview-pills span.is-active{
	border-color:#05590d;
	background:#05590d;
	color:#fff;
}

.spooky-hotel-preview-more{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:7px;
	margin-top:12px;
}

.spooky-hotel-preview-more span:first-child{
	margin-right:2px;
	color:#687068;
	font-size:12px;
	font-weight:800;
}

.spooky-hotel-directory--preview .spooky-hotel-directory-card h2{
	color:#171917;
}

.spooky-hotel-directory--preview .spooky-hotel-directory-read{
	cursor:default;
}

@media(max-width:650px){
	.spooky-hotel-preview-panel{
		padding:13px;
	}

	.spooky-hotel-preview-search{
		grid-template-columns:1fr 74px;
	}

	.spooky-hotel-preview-more{
		display:none;
	}
}


/* Restore the original Haunted Hotels card grid for the new hotel catalogue. */
.page-id-104257 .sipv21-grid{
	display:grid !important;
	grid-template-columns:repeat(4,minmax(0,1fr)) !important;
	gap:16px !important;
	align-items:stretch;
}

.page-id-104257 .sipv21-card{
	display:flex !important;
	flex-direction:column;
	min-width:0;
	background:#fff !important;
	border:1px solid #dde2dc !important;
	border-radius:9px !important;
	overflow:hidden !important;
	box-shadow:0 2px 8px rgba(0,0,0,.025);
}

.page-id-104257 .sipv21-card-image{
	display:block !important;
	width:100%;
	aspect-ratio:16/10 !important;
	overflow:hidden;
	background:#ecece8;
}

.page-id-104257 .sipv21-card-image img{
	display:block;
	width:100% !important;
	height:100% !important;
	object-fit:cover !important;
}

.page-id-104257 .sipv21-card-body{
	display:flex;
	flex:1;
	flex-direction:column;
	padding:14px !important;
}

.page-id-104257 .sipv21-card h3{
	margin:3px 0 8px !important;
	font-size:18px !important;
	line-height:1.2;
}

.page-id-104257 .sipv21-address{
	margin:0 0 8px !important;
	font-size:13px !important;
	line-height:1.4;
}

.page-id-104257 .sipv21-summary{
	margin:0 0 11px !important;
	font-size:14px !important;
	line-height:1.45;
}

.page-id-104257 .sipv21-card-actions{
	display:flex;
	flex-direction:column;
	gap:7px;
	margin-top:auto;
	padding-top:4px;
}

.page-id-104257 .sipv21-card-actions .sipv21-read,
.page-id-104257 .sipv21-card-actions .sipv21-book{
	display:block;
	width:100%;
	padding:9px 10px;
	border-radius:5px;
	text-align:center;
	font-weight:800;
	line-height:1.3;
	box-sizing:border-box;
}

.page-id-104257 .sipv21-card-actions .sipv21-read{
	border:1px solid #b7d5ba;
	background:#e8f3e9;
	color:#05590d !important;
}

.page-id-104257 .sipv21-card-actions .sipv21-book{
	border:1px solid #05590d;
	background:#05590d;
	color:#fff !important;
}

@media(max-width:1100px){
	.page-id-104257 .sipv21-grid{
		grid-template-columns:repeat(3,minmax(0,1fr)) !important;
	}
}

@media(max-width:800px){
	.page-id-104257 .sipv21-grid{
		grid-template-columns:repeat(2,minmax(0,1fr)) !important;
	}
}

@media(max-width:600px){
	.page-id-104257 .sipv21-grid{
		grid-template-columns:1fr !important;
	}
}

/* Rich hotel story modules — draft template proof */
.spooky-hotel-rich-content{margin-top:30px}
.spooky-hotel-rich-content h2{margin:0 0 12px;font-size:27px}
.spooky-hotel-rich-content h3{margin:0 0 8px;font-size:20px}
.spooky-hotel-rich-content p{line-height:1.62}
.spooky-hotel-story-panel{margin:0 0 28px;padding:22px;border:1px solid #dce7dc;border-radius:10px;background:#f5f8f5}
.spooky-hotel-story-panel--lead{border-left:5px solid #05590d;background:#f1f7f1}
.spooky-hotel-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 30px}
.spooky-hotel-story-card{padding:18px;border:1px solid #dfe4de;border-radius:9px;background:#fff}
.spooky-hotel-story-card p:last-child{margin-bottom:0}
.spooky-hotel-photo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 30px}
.spooky-hotel-photo-strip figure{margin:0;overflow:hidden;border-radius:9px;background:#edf2ed}
.spooky-hotel-photo-strip img{display:block;width:100%;height:180px;object-fit:cover}
.spooky-hotel-related{margin:32px 0}
.spooky-hotel-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.spooky-hotel-related-card{overflow:hidden;border:1px solid #dfe4de;border-radius:9px;background:#fff}
.spooky-hotel-related-card img{display:block;width:100%;height:145px;object-fit:cover}
.spooky-hotel-related-card div{padding:14px}
.spooky-hotel-related-card a{color:#05590d;font-weight:800;text-decoration:none}
.spooky-hotel-guest-callout{margin:32px 0;padding:22px;border-radius:10px;background:#eef5ee;border:1px solid #cfe0cf}
.spooky-hotel-closing-panel{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center;margin:34px 0;padding:18px;border-radius:10px;background:#172017;color:#fff}
.spooky-hotel-closing-panel img{display:block;width:100%;height:135px;object-fit:cover;border-radius:7px}
.spooky-hotel-closing-panel h2{color:#fff;margin:0 0 7px}
.spooky-hotel-closing-panel p{color:#d9e4d9;margin:0 0 12px}
.spooky-hotel-closing-panel a{display:inline-block;padding:11px 16px;border-radius:6px;background:#b0d9b4;color:#07350b!important;font-weight:900;text-decoration:none}
.spooky-hotel-single-sidebar{position:sticky;top:28px}
@media(max-width:760px){
	.spooky-hotel-single-sidebar{position:static}
	.spooky-hotel-story-grid,.spooky-hotel-related-grid,.spooky-hotel-photo-strip,.spooky-hotel-closing-panel{grid-template-columns:1fr}
	.spooky-hotel-photo-strip img,.spooky-hotel-related-card img{height:auto}
}
