/* New Nine restyle layer for Afterburner */

:root {
	--nn-primary: #432004;
	--nn-accent: #c9962a;
	--nn-accent-hover: #ab7e20;
	--nn-white: #ffffff;
	--nn-on-dark: #f5efe6;
	--nn-on-dark-muted: #e0d4c4;
	--nn-content: 640px;
	--nn-wide: 990px;
	--nn-font-body: Inter, sans-serif;
	--nn-font-heading: "Playfair Display", serif;
	/* Kept in sync with real header height via JS; fallbacks match sample */
	--nn-header-h: 68px;
	--nn-section-gap: 6rem;
	--nn-section-gap-xl: 8rem;
}

@media (min-width: 960px) {
	:root {
		--nn-header-h: 92px;
	}
}

body.is-scrolled {
	--nn-header-h: 52px;
}

@media (min-width: 960px) {
	body.is-scrolled {
		--nn-header-h: 76px;
	}
}

/* ---- Reset conflicting Afterburner chrome ---- */
body.nn-restyle {
	background: #fff !important;
	background-image: none !important;
	color: var(--nn-primary);
	font-family: var(--nn-font-body);
	font-size: 16px;
	line-height: 1.5;
	padding-top: var(--nn-header-h) !important;
	max-width: none !important;
	margin: 0;
}

body.nn-restyle.admin-bar {
	padding-top: calc(var(--nn-header-h) + 32px) !important;
}

@media screen and (max-width: 782px) {
	body.nn-restyle.admin-bar {
		padding-top: calc(var(--nn-header-h) + 46px) !important;
	}
}

body.nn-restyle #page,
body.nn-restyle .hfeed {
	max-width: none;
	box-shadow: none;
	background: #fff;
	margin: 0;
	padding: 0;
	width: 100%;
}

body.nn-restyle #abrn_resmenu_bar,
body.nn-restyle header#branding,
body.nn-restyle .topbar,
body.nn-restyle .badges,
body.nn-restyle .footer .footer_container,
body.nn-restyle .line,
body.nn-restyle #pull,
body.nn-restyle .abrn_menu_sub,
body.nn-restyle .abrn_home_menu,
body.nn-restyle #centeredmenu,
body.nn-restyle nav[role="navigation"]:not(.nn-nav),
body.nn-restyle #slider,
body.nn-restyle #slider_nivo,
body.nn-restyle .nivoSlider,
body.nn-restyle #daughter_header,
body.nn-restyle .site_desc {
	display: none !important;
}

body.nn-restyle .wrapper {
	margin: 0 !important;
	max-width: none !important;
	width: 100% !important;
	padding: 0 !important;
	background: transparent !important;
}

body.nn-restyle #primary,
body.nn-restyle #content {
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	float: none !important;
	margin: 0 !important;
}

body.nn-restyle .entry-title,
body.nn-restyle .page-title {
	font-family: var(--nn-font-heading);
	color: var(--nn-primary);
	font-weight: 300;
}

body.nn-restyle h1,
body.nn-restyle h2,
body.nn-restyle h3,
body.nn-restyle h4,
body.nn-restyle h5,
body.nn-restyle h6 {
	font-family: var(--nn-font-heading);
	font-weight: 400;
	color: var(--nn-primary);
}

body.nn-restyle p {
	font-family: var(--nn-font-body);
	color: var(--nn-primary);
}

/* Site content only — never target #wpadminbar (leave WP core admin bar alone) */
body.nn-restyle .wrapper li,
body.nn-restyle .nn-site-header li,
body.nn-restyle .nn-front-main li,
body.nn-restyle main li,
body.nn-restyle #primary li,
body.nn-restyle #content li,
body.nn-restyle .nn-booking-cta li,
body.nn-restyle footer li {
	font-family: var(--nn-font-body);
	color: var(--nn-primary);
}

body.nn-restyle .wrapper a,
body.nn-restyle .nn-site-header a,
body.nn-restyle .nn-front-main a,
body.nn-restyle main a,
body.nn-restyle #primary a,
body.nn-restyle #content a,
body.nn-restyle .nn-booking-cta a,
body.nn-restyle footer a {
	color: var(--nn-accent);
	transition: color 200ms linear;
}

body.nn-restyle .wrapper a:hover,
body.nn-restyle .nn-site-header a:hover,
body.nn-restyle .nn-front-main a:hover,
body.nn-restyle main a:hover,
body.nn-restyle #primary a:hover,
body.nn-restyle #content a:hover,
body.nn-restyle .nn-booking-cta a:hover,
body.nn-restyle footer a:hover {
	color: var(--nn-primary);
}

/* Header keeps dark text on white */
body.nn-restyle .nn-site-header,
body.nn-restyle .nn-site-header h1,
body.nn-restyle .nn-site-header h2 {
	color: var(--nn-primary);
}

/*
 * Afterburner .wrapper { z-index: 500 } stacks page content ABOVE a normal header.
 * Keep chrome above that, and keep the bar compact.
 */
body.nn-restyle .wrapper,
body.nn-restyle .nn-front-main,
body.nn-restyle #primary,
body.nn-restyle #content {
	z-index: 1 !important;
	position: relative;
}

/* ---- Site header ---- */
body.nn-restyle .nn-site-header,
.nn-site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	z-index: 10050 !important;
	background: #fff !important;
	background-image: none !important;
	box-shadow: none;
	overflow: visible;
	transition: box-shadow 200ms linear;
}

body.admin-bar .nn-site-header {
	top: 32px !important;
}

@media screen and (max-width: 782px) {
	body.admin-bar .nn-site-header {
		top: 46px !important;
	}
}

body.is-scrolled .nn-site-header {
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.nn-site-header__inner {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: nowrap !important;
	gap: 1rem;
	width: 100%;
	max-width: none;
	margin: 0;
	/* Sample default: 1rem padding + 60px logo ≈ 92px total */
	padding: 1rem !important;
	min-height: 0;
	box-sizing: border-box;
	transition: padding-block 200ms linear;
}

body.is-scrolled .nn-site-header__inner {
	padding-block: 0.5rem !important;
}

.nn-site-header__left {
	display: flex !important;
	align-items: center !important;
	gap: 0;
	min-width: 0;
	flex: 1 1 auto;
}

@media (min-width: 960px) {
	.nn-site-header__left {
		gap: 2.5rem;
	}
}

.nn-logo {
	display: block !important;
	width: 120px !important;
	flex-shrink: 0 !important;
	position: static !important;
	left: auto !important;
	top: auto !important;
	float: none !important;
	transition: width 200ms linear;
}

@media (min-width: 960px) {
	/* Sample default logo renders ~200×60 */
	.nn-logo {
		width: 200px !important;
	}

	body.is-scrolled .nn-logo {
		width: 140px !important;
	}
}

.nn-logo img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
}

/* Mobile drawer nav */
.nn-nav {
	background: var(--nn-accent);
	box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
	bottom: 0;
	padding: 2rem;
	position: fixed !important;
	left: 0;
	width: 100%;
	z-index: 10060 !important;
	transform: translateY(100%);
	transition: transform 200ms linear;
}

body.nav-open .nn-nav {
	transform: translateY(0);
}

@media (min-width: 960px) {
	.nn-nav {
		background: transparent !important;
		box-shadow: none !important;
		padding: 0 !important;
		position: static !important;
		transform: none !important;
		width: auto !important;
		bottom: auto !important;
		left: auto !important;
	}

	.nn-menu-toggle {
		display: none !important;
	}
}

/* Kill Afterburner ul li { list-style: disc } bullets on the header nav */
body.nn-restyle .nn-site-header ul,
body.nn-restyle .nn-site-header ul li,
body.nn-restyle .nn-nav__list,
body.nn-restyle .nn-nav__item {
	list-style: none !important;
	list-style-type: none !important;
	list-style-image: none !important;
	list-style-position: outside !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	background: none !important;
}

.nn-nav__list {
	display: block;
	font-size: 1.25rem;
	max-width: var(--nn-wide);
	margin: 0 auto !important;
}

@media (min-width: 960px) {
	.nn-nav__list {
		display: flex !important;
		align-items: center !important;
		flex-wrap: nowrap !important;
		gap: 0.25rem 0.75rem;
		font-size: 0.95rem;
		max-width: none;
		margin: 0 !important;
	}
}

.nn-nav__item a {
	display: block !important;
	padding: 0.4rem 0.55rem !important;
	color: #fff !important;
	text-decoration: none !important;
	font-family: var(--nn-font-body) !important;
	font-weight: 400 !important;
	font-size: inherit !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	line-height: 1.2 !important;
	border: 0 !important;
	background: transparent !important;
	transition: background-color 200ms linear, color 300ms linear;
}

@media (min-width: 960px) {
	.nn-nav__item a {
		color: var(--nn-primary) !important;
	}
}

.nn-nav__item a:hover {
	background: var(--nn-accent) !important;
	color: #fff !important;
}

.nn-nav__item.is-current > a {
	background: var(--nn-primary) !important;
	color: #fff !important;
}

.nn-site-header__right,
.nn-buttons {
	display: flex !important;
	align-items: center !important;
	gap: 0.75rem;
	flex-shrink: 0 !important;
}

.nn-btn {
	display: inline-block;
	font-family: var(--nn-font-body);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.2;
	text-decoration: none !important;
	border-radius: 0;
	border: 1px solid var(--nn-accent);
	padding: 8px 16px;
	cursor: pointer;
	transition: color 200ms linear, background-color 200ms linear, border-color 200ms linear;
	white-space: nowrap;
	background: transparent;
	appearance: none;
	-webkit-appearance: none;
}

@media (min-width: 960px) {
	.nn-btn {
		font-size: 1rem;
		padding: 12px 23px;
	}
}

.nn-btn--solid {
	background: var(--nn-accent);
	color: #fff !important;
	border-color: var(--nn-accent);
}

.nn-btn--solid:hover {
	background: var(--nn-accent-hover);
	border-color: var(--nn-accent-hover);
	color: #fff !important;
}

.nn-btn--outline {
	background: transparent;
	color: var(--nn-accent) !important;
}

.nn-btn--outline:hover {
	background: var(--nn-accent);
	color: #fff !important;
}

.nn-btn--on-accent {
	background: transparent !important;
	border: 2px solid #fff !important;
	color: #fff !important;
	box-shadow: none;
}

.nn-btn--on-accent:hover {
	background: #fff !important;
	border-color: #fff !important;
	color: var(--nn-accent) !important;
}

.nn-btn--on-dark {
	border-color: #fff;
	color: #fff !important;
}

.nn-btn--on-dark:hover {
	background: #fff;
	color: var(--nn-accent) !important;
}

/* ---- Homepage sections ---- */
.nn-front-main {
	background: #fff;
	color: var(--nn-primary);
}

.nn-hero-image {
	margin-bottom: 1rem;
}

.nn-hero-image__figure {
	margin: 0;
	aspect-ratio: 3 / 2;
}

@media (min-width: 960px) {
	.nn-hero-image__figure {
		aspect-ratio: auto;
		height: calc(100dvh - 192px);
	}
}

.nn-hero-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nn-airbnb-callout {
	margin: 0 auto 2rem;
	max-width: var(--nn-content);
	padding-inline: 1rem;
}

.nn-airbnb-callout img {
	display: block;
	width: 100%;
	height: auto;
}

.nn-offset-callout {
	margin: var(--nn-section-gap) auto;
	max-width: var(--nn-wide);
	padding-inline: 1rem;
}

@media (min-width: 760px) {
	.nn-offset-callout {
		margin: var(--nn-section-gap-xl) auto;
	}
}

.nn-offset-callout h2 {
	font-weight: 300;
	font-size: 2.5rem;
	margin: 0 auto 2rem;
	text-wrap: balance;
	width: 90%;
	text-align: center;
	color: var(--nn-primary);
	background: transparent;
}

@media (min-width: 760px) {
	.nn-offset-callout h2 {
		font-size: 4rem;
	}
}

.nn-offset-callout p {
	font-size: 1.25rem;
	margin: 0 auto;
	text-wrap: pretty;
	width: 80%;
	text-align: center;
	color: var(--nn-primary);
}

.nn-offset-callout p + p {
	margin-top: 1rem;
}

@media (min-width: 960px) {
	.nn-offset-callout p {
		padding-inline: 8rem;
	}
}

.nn-video-callout {
	display: flex;
	flex-direction: column;
	padding-inline: 1rem;
	gap: 2rem;
	margin: var(--nn-section-gap-xl) auto;
	max-width: var(--nn-wide);
	width: 100%;
}

@media (min-width: 960px) {
	.nn-video-callout {
		flex-direction: row;
		gap: 4rem;
		align-items: stretch;
	}
}

.nn-video-callout__media {
	flex: 1 0 70%;
	position: relative;
	min-height: 240px;
	background: #111;
	overflow: hidden;
}

.nn-video-callout__media img,
.nn-video-callout__video {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 280px;
	object-fit: cover;
	border: 0;
}

.nn-video-callout__embed {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.nn-video-callout__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.nn-video-callout__text {
	background-color: var(--nn-accent);
	color: #fff !important;
	flex: 1 0 30%;
	padding: 4rem 2rem;
	display: flex;
	align-items: center;
}

body.nn-restyle .nn-video-callout__text,
body.nn-restyle .nn-video-callout__text p,
body.nn-restyle .nn-video-callout__text a,
.nn-video-callout__text p,
.nn-video-callout__text a {
	color: #fff !important;
	margin: 0;
	font-size: 1.125rem;
}

.nn-video-callout__text a {
	text-decoration: underline;
}

.nn-video-callout__text a:hover {
	color: #fff !important;
	opacity: 0.85;
}

.nn-amenities-callout {
	margin: var(--nn-section-gap-xl) auto;
	max-width: var(--nn-wide);
	padding-inline: 1rem;
}

.nn-amenities-callout__top {
	text-align: center;
}

.nn-amenities-callout__top h2 {
	margin: 0 0 2rem;
	font-size: 2.5rem;
	font-weight: 300;
	text-wrap: balance;
	text-align: center;
}

@media (min-width: 760px) {
	.nn-amenities-callout__top h2 {
		font-size: 4rem;
	}
}

body.nn-restyle .nn-amenities-callout__top h3,
.nn-amenities-callout__top h3 {
	color: var(--nn-accent) !important;
	font-family: var(--nn-font-heading) !important;
	font-size: 2rem !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	text-align: center !important;
	margin: 0 0 2rem !important;
	letter-spacing: 0.02em;
}

.nn-amenities-callout__top p {
	font-size: 1.25rem;
	text-wrap: pretty;
	max-width: var(--nn-content);
	margin: 0 auto 3rem;
	text-align: center;
	color: var(--nn-primary) !important;
}

.nn-amenities-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem 2rem;
	margin: 0 auto 3rem;
	max-width: var(--nn-wide);
}

@media (min-width: 760px) {
	.nn-amenities-list {
		grid-template-columns: 1fr 1fr;
	}
}

.nn-amenities-list__item {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 1rem !important;
	text-align: left !important;
}

.nn-amenities-list__icon {
	display: inline-flex !important;
	flex-shrink: 0 !important;
	width: 24px;
	height: 24px;
	color: var(--nn-primary) !important;
}

.nn-amenities-list__icon svg {
	display: block;
	width: 24px;
	height: 24px;
	stroke: currentColor;
}

body.nn-restyle .nn-amenities-list__item p,
.nn-amenities-list__item p {
	margin: 0 !important;
	font-size: 1.125rem !important;
	font-family: var(--nn-font-body) !important;
	color: var(--nn-primary) !important;
	text-align: left !important;
	line-height: 1.4 !important;
}

.nn-amenities-callout__cta {
	justify-content: center;
}

.nn-expandable-gallery {
	margin: var(--nn-section-gap-xl) auto;
	width: 90%;
}

.nn-expandable-gallery__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.nn-expandable-gallery__item {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	flex: 1 1 100%;
	min-width: 0;
	overflow: hidden;
}

@media (min-width: 760px) {
	.nn-expandable-gallery__item {
		flex: 1 1 calc(33.333% - 0.34rem);
		max-width: calc(33.333% - 0.34rem);
	}
}

.nn-expandable-gallery__item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	cursor: zoom-in;
}

.nn-lightbox-trigger {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	padding: 0;
	border: none;
	border-radius: 4px;
	background: rgba(90, 90, 90, 0.25);
	backdrop-filter: blur(16px) saturate(180%);
	-webkit-backdrop-filter: blur(16px) saturate(180%);
	cursor: zoom-in;
	opacity: 0;
	transition: opacity 0.15s ease;
}

.nn-expandable-gallery__item:hover .nn-lightbox-trigger,
.nn-lightbox-trigger:focus,
.nn-lightbox-trigger:focus-visible {
	opacity: 1;
}

.nn-lightbox-trigger:focus-visible {
	outline: 2px solid var(--nn-accent);
	outline-offset: 2px;
}

.nn-expandable-gallery__ctas {
	gap: 2rem;
	margin-top: 2rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* Gallery lightbox (matches sample WP core lightbox look) */
.nn-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	box-sizing: border-box;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	cursor: zoom-out;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}

.nn-lightbox.is-open {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.nn-lightbox[hidden] {
	display: block !important;
}

.nn-lightbox__scrim {
	position: absolute;
	inset: 0;
	background: #fff;
	opacity: 0.92;
	z-index: 1;
}

.nn-lightbox__close {
	position: absolute;
	top: calc(env(safe-area-inset-top, 0px) + 16px);
	right: calc(env(safe-area-inset-right, 0px) + 16px);
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--nn-primary);
	cursor: pointer;
}

.nn-lightbox__nav {
	position: absolute;
	top: 50%;
	z-index: 5;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--nn-primary);
	cursor: pointer;
	opacity: 0.7;
}

.nn-lightbox__nav:hover,
.nn-lightbox__nav:focus-visible {
	opacity: 1;
}

.nn-lightbox__nav--prev {
	left: 8px;
}

.nn-lightbox__nav--next {
	right: 8px;
}

.nn-lightbox__stage {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	padding: 4rem 3.5rem;
	pointer-events: none;
}

.nn-lightbox__figure {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: min(90vw, 1100px);
	max-height: calc(100vh - 6rem);
	pointer-events: none;
}

.nn-lightbox__figure img {
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 6rem);
	width: auto;
	height: auto;
	object-fit: contain;
	pointer-events: auto;
	cursor: default;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12);
}

.nn-lightbox__figure--prev,
.nn-lightbox__figure--next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	max-width: 18vw;
	opacity: 0.35;
	filter: blur(1px);
	pointer-events: none;
}

.nn-lightbox__figure--prev {
	left: 2%;
}

.nn-lightbox__figure--next {
	right: 2%;
}

.nn-lightbox__figure--prev img,
.nn-lightbox__figure--next img {
	max-height: 55vh;
	box-shadow: none;
}

.nn-lightbox__figure--current {
	position: relative;
	z-index: 3;
}

@media (max-width: 759px) {
	.nn-lightbox__figure--prev,
	.nn-lightbox__figure--next {
		display: none;
	}

	.nn-lightbox__stage {
		padding: 4rem 1rem;
	}

	.nn-lightbox__nav--prev {
		left: 0;
	}

	.nn-lightbox__nav--next {
		right: 0;
	}
}

body.nn-lightbox-open {
	overflow: hidden;
}

.nn-latest-posts {
	padding: 3rem 1rem;
	background: var(--nn-primary);
	color: #fff;
}

body.nn-restyle .nn-latest-posts h4,
.nn-latest-posts h4 {
	font-family: var(--nn-font-heading) !important;
	font-size: 2rem !important;
	font-weight: 300 !important;
	margin: 0 0 2rem !important;
	text-align: center !important;
	color: #fff !important;
}

@media (min-width: 760px) {
	body.nn-restyle .nn-latest-posts h4,
	.nn-latest-posts h4 {
		font-size: 2.5rem !important;
	}
}

.nn-latest-posts__grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	margin: 0 auto 4rem;
	max-width: var(--nn-wide);
}

.nn-latest-posts__thumb {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin-bottom: 0.75rem;
}

/* Homepage callout uses square thumbs like sample */
.nn-latest-posts .nn-latest-posts__thumb {
	aspect-ratio: 1 / 1;
}

.nn-latest-posts__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

body.nn-restyle .nn-latest-posts__title,
.nn-latest-posts__title {
	font-family: var(--nn-font-heading) !important;
	font-size: 1.25rem !important;
	font-weight: 300 !important;
	margin: 0 0 0.5rem !important;
	color: #fff !important;
}

.nn-latest-posts__title a {
	color: #fff !important;
	text-decoration: none;
}

.nn-latest-posts__date,
.nn-latest-posts time {
	font-size: 1rem;
	opacity: 0.75;
	color: #fff;
}

.nn-latest-posts__cta {
	justify-content: center;
}

.nn-latest-posts__cta .nn-btn--on-dark {
	border-width: 2px;
}

.nn-latest-posts__empty {
	color: #fff;
	text-align: center;
	grid-column: 1 / -1;
}

/* ---- Booking CTA (gold band — matches sample) ---- */
.nn-booking-cta {
	background: var(--nn-accent) !important;
	color: #fff !important;
	padding: 8rem 1rem !important;
	text-align: center;
}

.nn-booking-cta__inner {
	max-width: var(--nn-wide);
	margin: 0 auto;
}

body.nn-restyle .nn-booking-cta h2,
.nn-booking-cta h2 {
	font-family: var(--nn-font-heading) !important;
	font-size: 2.5rem !important;
	font-weight: 400 !important;
	margin: 0 auto 1rem !important;
	text-wrap: balance;
	text-align: center !important;
	color: #fff !important;
	background: transparent !important;
}

body.nn-restyle .nn-booking-cta p,
.nn-booking-cta p {
	font-family: var(--nn-font-body) !important;
	font-size: 1.25rem !important;
	margin: 0 auto 2rem !important;
	text-wrap: pretty;
	color: #fff !important;
	max-width: 40rem;
	text-align: center !important;
	background: transparent !important;
}

.nn-booking-cta .nn-buttons {
	justify-content: center;
}

.nn-booking-cta .nn-btn {
	font-size: 1rem !important;
	padding: 0.67rem 1.33rem !important;
	border-width: 2px !important;
}

/* ---- Inner page content ---- */
body.nn-restyle:not(.nn-front) .wrapper {
	background: #fff !important;
}

body.nn-restyle:not(.nn-front) #content,
body.nn-restyle:not(.nn-front) .entry-content {
	max-width: var(--nn-wide);
	margin: 0 auto;
	padding: 3rem 1rem 4rem;
	color: var(--nn-primary);
}

body.nn-restyle:not(.nn-front) .entry-content h1,
body.nn-restyle:not(.nn-front) .entry-content h2 {
	font-weight: 300;
	font-size: 2.5rem;
	text-align: center;
	margin: 0 auto 2rem;
}

@media (min-width: 760px) {
	body.nn-restyle:not(.nn-front) .entry-content h1,
	body.nn-restyle:not(.nn-front) .entry-content h2 {
		font-size: 3.5rem;
	}
}

body.nn-restyle:not(.nn-front) .entry-content p {
	font-size: 1.125rem;
	max-width: var(--nn-content);
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

body.nn-restyle:not(.nn-front) .entry-content ul {
	max-width: var(--nn-content);
	margin: 0 auto 2rem;
	padding-left: 1.25rem;
}

body.nn-restyle:not(.nn-front) .entry-content li {
	margin-bottom: 0.5rem;
	text-align: left;
}

body.nn-restyle:not(.nn-front) .entry-content img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 2rem auto;
}

/* Location / Area page */
.nn-offset-callout--start h2,
.nn-offset-callout--start p {
	text-align: left !important;
	margin-left: auto;
	margin-right: auto;
}

/* Penthouse page */
.nn-penthouse-page,
.nn-penthouse-details {
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: none;
	overflow: visible;
}

.nn-penthouse-details {
	max-width: var(--nn-wide);
	margin: 0 auto 3rem;
	padding: 0 1rem 2rem;
	/* Contain Afterburner page-id floats (e.g. .page-id-XXXX ul { float:left }) */
	overflow: auto;
}

/* Kill legacy Afterburner per-page "ul { float:left }" — page content only (never #wpadminbar) */
body.nn-restyle .nn-penthouse-page ul,
body.nn-restyle .nn-location-page ul,
body.nn-restyle .nn-penthouse-details__list {
	float: none !important;
	clear: both !important;
	position: static !important;
	width: auto !important;
	max-width: 640px !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
}

body.nn-restyle.nn-penthouse h2,
body.nn-restyle .nn-penthouse-details__heading {
	float: none !important;
	clear: both !important;
	width: auto !important;
	max-width: 640px !important;
	position: static !important;
}

.nn-penthouse-details__feature {
	position: relative;
	display: block !important;
	float: none !important;
	clear: both !important;
	max-width: 640px;
	margin: 0 auto 1.5rem;
	overflow: hidden;
}

.nn-penthouse-details__feature img {
	display: block;
	width: 100%;
	height: auto;
	float: none !important;
	cursor: zoom-in;
}

.nn-penthouse-details__feature:hover .nn-lightbox-trigger,
.nn-penthouse-details__feature .nn-lightbox-trigger:focus {
	opacity: 1;
}

body.nn-restyle .nn-penthouse-details__heading,
.nn-penthouse-details__heading {
	font-family: var(--nn-font-heading) !important;
	font-size: 1.5rem !important;
	font-weight: 400 !important;
	color: var(--nn-primary) !important;
	margin: 1.5rem auto 0.75rem !important;
	max-width: 640px;
	text-align: left !important;
	display: block !important;
}

.nn-penthouse-details__list {
	display: block !important;
	max-width: 640px;
	margin: 0 auto 1.25rem !important;
	padding: 0 0 0 2.5rem !important;
	list-style: disc !important;
	color: var(--nn-primary);
}

body.nn-restyle .nn-penthouse-details__list li,
.nn-penthouse-details__list li {
	display: list-item !important;
	float: none !important;
	list-style: disc !important;
	margin: 0 0 0.25rem !important;
	padding: 0 !important;
	font-size: 1rem !important;
	font-family: var(--nn-font-body) !important;
	color: var(--nn-primary) !important;
	line-height: 1.5;
	width: auto !important;
}

/* Keep booking CTA below floated legacy content */
body.nn-restyle.nn-penthouse .nn-booking-cta,
body.nn-restyle.nn-location .nn-booking-cta {
	clear: both !important;
	float: none !important;
	position: relative !important;
	z-index: 1;
}

.nn-penthouse .nn-offset-callout.nn-scroll-vis p {
	opacity: 0;
	transform: translateY(50%);
	transition: opacity 300ms ease-out, transform 600ms ease-out;
}

.nn-penthouse .nn-offset-callout.nn-scroll-vis.is-vis p {
	opacity: 1;
	transform: translateY(0);
}

body.nn-restyle .nn-location-page .nn-offset-callout--start h2 {
	color: var(--nn-primary) !important;
	font-weight: 300 !important;
}

.nn-inline-link {
	color: var(--nn-accent) !important;
	text-decoration: none !important;
}

.nn-inline-link:hover {
	text-decoration: underline !important;
}

.nn-location-photos {
	max-width: 640px;
	margin: 0 auto 3rem;
	padding: 0 1rem;
}

.nn-location-photos__feature {
	margin: 0 0 1rem;
}

.nn-location-photos__feature img {
	display: block;
	width: 100%;
	height: auto;
}

/* Match sample WP gallery: 4-across, last row of 3 grows to full width */
.nn-location-photos__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: stretch;
}

.nn-location-photos__item {
	position: relative;
	margin: 0;
	overflow: hidden;
	box-sizing: border-box;
	flex: 1 1 calc(50% - 4px);
	min-width: 0;
}

@media (min-width: 600px) {
	.nn-location-photos__item {
		/* 4-across; incomplete last row grows to fill (3 larger photos) */
		flex: 1 1 calc(25% - 6px);
	}
}

.nn-location-photos__item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	cursor: zoom-in;
}

.nn-location-photos__item:hover .nn-lightbox-trigger,
.nn-location-photos__item .nn-lightbox-trigger:focus {
	opacity: 1;
}

body.nn-restyle .nn-page-hero {
	margin: 0 0 1rem;
}

body.nn-restyle .nn-page-hero img,
body.nn-restyle .nn-location-page__hero img {
	display: block;
	width: 100%;
	height: calc(50vh);
	min-height: 280px;
	max-height: 560px;
	object-fit: cover;
}

/* Reserve page */
.nn-reserve-page {
	background: #fff;
	padding: 3rem 1rem 5rem;
	color: var(--nn-primary);
}

.nn-reserve-page__inner {
	max-width: var(--nn-wide);
	margin: 0 auto;
	text-align: center;
}

.nn-reserve-page h1 {
	font-family: var(--nn-font-heading);
	font-weight: 300;
	font-size: 2.5rem;
	margin: 0 auto 1.5rem;
	color: var(--nn-primary);
}

@media (min-width: 760px) {
	.nn-reserve-page h1 {
		font-size: 3.5rem;
	}
}

.nn-reserve-page__intro {
	font-size: 1.25rem;
	max-width: 40rem;
	margin: 0 auto 1rem;
	text-align: center;
}

.nn-reserve-page__note {
	margin: 0 auto 2rem;
	max-width: 40rem;
	text-align: center;
}

.nn-reserve-page__calendar {
	background: #fff;
	border-radius: 8px;
	padding: 1.5rem;
	max-width: 920px;
	margin: 0 auto;
	text-align: left;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

/*
 * Booking Calendar: pending days are yellow (.date2approve), approved are red (.date_approved).
 * Guests only need “unavailable” — show pending as red on the public Reserve page.
 * Admin Booking Calendar screens keep the default yellow/red distinction.
 */
.nn-reserve-page .datepick-inline .date2approve .wpbc-cell-box,
.nn-reserve-page .block_hints .date2approve.block_check_in_out,
.nn-reserve-page .block_hints .block_pending {
	background-color: #c60b0b !important;
}

.nn-reserve-page .datepick-inline .date2approve .wpbc-cell-box,
.nn-reserve-page .datepick-inline .date2approve a,
.nn-reserve-page .block_hints .date2approve.block_check_in_out,
.nn-reserve-page .block_hints .block_pending,
.nn-reserve-page .block_hints .block_pending a {
	color: #5f0000 !important;
	font-weight: 600 !important;
	text-shadow: 0 1px 0 #dd0000 !important;
}

.nn-reserve-page .datepick-inline .date2approve.timespartly.check_in_time div.check-in-div {
	border-right-color: #c60b0b !important;
}

.nn-reserve-page .datepick-inline .date2approve.timespartly.check_out_time div.check-out-div {
	border-left-color: #c60b0b !important;
}

.nn-reserve-page td.timespartly.check_in_time.check_out_time.check_in_time_date_approved.check_out_time_date2approve div.check-in-div,
.nn-reserve-page td.timespartly.check_in_time.check_out_time.check_out_time_date_approved.check_in_time_date2approve div.check-out-div,
.nn-reserve-page td.timespartly.check_in_time.check_out_time.check_in_time_date2approve.check_out_time_date_approved div.check-in-div,
.nn-reserve-page td.timespartly.check_in_time.check_out_time.check_out_time_date2approve.check_in_time_date_approved div.check-out-div {
	background-color: #c60b0b !important;
}

/* Footer */
body.nn-restyle .footer,
body.nn-restyle .nn-site-footer {
	background: #fff !important;
	background-image: none !important;
	min-height: 0 !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	position: relative !important;
	z-index: 2 !important;
	clear: both !important;
	width: 100% !important;
	max-width: none !important;
	box-shadow: none !important;
}

body.nn-restyle .copyright-back,
body.nn-restyle .nn-site-footer__inner {
	background: transparent !important;
	background-image: none !important;
	padding: 2rem 1rem !important;
	margin: 0 !important;
	text-align: center !important;
	opacity: 0.65;
	width: 100% !important;
	max-width: none !important;
	left: auto !important;
	top: auto !important;
	position: static !important;
}

body.nn-restyle .copyright,
body.nn-restyle .copyright-back .copyright,
body.nn-restyle .nn-site-footer__copy {
	color: var(--nn-primary) !important;
	font-family: var(--nn-font-body) !important;
	font-size: 0.875rem !important;
	font-weight: 400 !important;
	display: block !important;
	text-align: center !important;
	float: none !important;
	width: auto !important;
	margin: 0 auto !important;
}

/* Scroll reveal */
.nn-scroll-vis {
	/* marker class */
}

.nn-front .nn-offset-callout.nn-scroll-vis p,
.nn-location .nn-offset-callout.nn-scroll-vis p,
.nn-front .nn-amenities-callout .nn-scroll-vis .nn-amenities-list__item,
.nn-front .nn-amenities-callout__top.nn-scroll-vis > * {
	opacity: 0;
	transform: translateY(50%);
	transition: opacity 300ms ease-out, transform 600ms ease-out;
}

.nn-front .nn-offset-callout.nn-scroll-vis.is-vis p,
.nn-location .nn-offset-callout.nn-scroll-vis.is-vis p,
.nn-front .nn-amenities-callout .nn-scroll-vis.is-vis .nn-amenities-list__item,
.nn-front .nn-amenities-callout__top.nn-scroll-vis.is-vis > * {
	opacity: 1;
	transform: translateY(0);
}

.nn-front .nn-video-callout.nn-scroll-vis .nn-video-callout__text {
	transform: translate(0, 10%);
	transition: transform 600ms ease-out;
}

@media (min-width: 960px) {
	.nn-front .nn-video-callout.nn-scroll-vis .nn-video-callout__text {
		transform: translate(10%, 0);
	}
}

.nn-front .nn-video-callout.nn-scroll-vis.is-vis .nn-video-callout__text {
	transform: translate(0, 0);
}

/* Blog index / archive / single */
body.nn-restyle.blog #content,
body.nn-restyle.archive #content,
body.nn-restyle.search #content,
body.nn-restyle.single #content {
	max-width: var(--nn-wide);
	margin: 0 auto;
	padding: 2rem 1rem 4rem;
}

body.nn-restyle.blog #content,
body.nn-restyle.blog .nn-blog-index {
	color: var(--nn-primary);
}

body.nn-restyle.blog .nn-blog-index .entry-title {
	text-align: center;
	font-weight: 300;
	font-size: 2.5rem;
	color: var(--nn-primary);
}

body.nn-restyle.blog .nn-blog-index .nn-latest-posts__grid {
	gap: 1.25rem;
}

body.nn-restyle.blog .nn-blog-index .nn-latest-posts__thumb {
	aspect-ratio: 3 / 2;
	margin-bottom: 0.5rem;
}

body.nn-restyle.blog .storytitle,
body.nn-restyle.archive .storytitle {
	font-size: 1.5rem;
	font-weight: 300;
	margin: 0;
	line-height: 1.25;
}

body.nn-restyle.blog .storytitle a,
body.nn-restyle.archive .storytitle a {
	color: var(--nn-primary) !important;
	font-family: var(--nn-font-heading);
	font-weight: 300;
	text-decoration: none;
}

body.nn-restyle.blog .nn-latest-posts__item time {
	display: block;
	color: var(--nn-primary);
	opacity: 0.75;
	font-size: 0.875rem;
	margin: 0.25rem 0 0.75rem;
}

body.nn-restyle.blog .nn-blog-excerpt {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--nn-primary);
}

body.nn-restyle.blog .nn-blog-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	padding: 2rem 0 1rem;
}

body.nn-restyle.blog .nn-blog-pagination a,
body.nn-restyle.blog .nn-blog-pagination span {
	color: var(--nn-primary);
	text-decoration: none;
	font-size: 1rem;
}

body.nn-restyle.blog .nn-blog-pagination .current {
	color: var(--nn-accent);
	font-weight: 500;
}

body.nn-restyle.single .nn-post-date {
	text-align: center;
	opacity: 0.75;
	margin-bottom: 2rem;
}

body.nn-restyle .nn-reserve-page__calendar .wpbc_container,
body.nn-restyle .nn-reserve-page__calendar .booking_form {
	max-width: 100%;
}

/* Hide legacy Afterburner invoice/sidebars on modern pages */
body.nn-restyle #secondary,
body.nn-restyle #supplementary {
	display: none !important;
}

/* Pictures page — matches koolina.newnine.com/pictures/ */
.nn-pictures-page {
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: none;
	overflow: visible;
	padding-bottom: 2rem;
}

.nn-pictures-page__intro {
	max-width: 640px;
	margin: 2rem auto 0;
	padding: 0 1rem;
	text-align: left;
}

.nn-pictures-page__intro h1 {
	margin: 0 0 1rem !important;
	font-family: var(--nn-font-display) !important;
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	color: var(--nn-primary) !important;
	text-align: left !important;
}

.nn-pictures-page__intro p {
	margin: 0 !important;
	font-family: var(--nn-font-body) !important;
	font-size: 1rem !important;
	line-height: 1.6 !important;
	color: var(--nn-primary) !important;
	text-align: left !important;
}

.nn-pictures-page__gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: stretch;
	width: 90%;
	max-width: var(--nn-wide);
	margin: var(--nn-section-gap-xl) auto 3rem;
	padding: 0;
}

.nn-pictures-page__item {
	position: relative;
	display: block;
	margin: 0;
	overflow: hidden;
	box-sizing: border-box;
	flex: 1 1 100%;
	min-width: 0;
}

@media (min-width: 760px) {
	.nn-pictures-page__item {
		/* 3-across; incomplete last row grows to fill */
		flex: 1 1 calc(33.333% - 0.34rem);
	}
}

.nn-pictures-page__item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	cursor: zoom-in;
}

.nn-pictures-page__item:hover .nn-lightbox-trigger,
.nn-pictures-page__item .nn-lightbox-trigger:focus {
	opacity: 1;
}

body.nn-restyle .nn-pictures-page ul {
	float: none !important;
	clear: both !important;
	position: static !important;
	width: auto !important;
}

/* Rates page — matches koolina.newnine.com/rates/ */
.nn-rates-page {
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: none;
	overflow: visible;
	padding-bottom: 2rem;
}

.nn-rates-page__body {
	max-width: 640px;
	margin: 2rem auto 3rem;
	padding: 0 1rem;
	text-align: left;
}

.nn-rates-page__body h1 {
	margin: 0 0 1rem !important;
	font-family: var(--nn-font-display) !important;
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	color: var(--nn-primary) !important;
	text-align: left !important;
}

.nn-rates-page__body h2 {
	margin: 2rem 0 1rem !important;
	font-family: var(--nn-font-display) !important;
	font-size: 1.5rem !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	color: var(--nn-primary) !important;
	text-align: left !important;
}

.nn-rates-page__body p {
	margin: 0 0 1rem !important;
	font-family: var(--nn-font-body) !important;
	font-size: 1rem !important;
	line-height: 1.6 !important;
	color: var(--nn-primary) !important;
	text-align: left !important;
}

.nn-rates-page__list {
	float: none !important;
	clear: both !important;
	position: static !important;
	width: auto !important;
	max-width: 640px !important;
	margin: 0 0 1rem !important;
	padding: 0 0 0 1.25rem !important;
	list-style: disc !important;
	color: var(--nn-primary) !important;
	font-family: var(--nn-font-body) !important;
	font-size: 1rem !important;
	line-height: 1.6 !important;
	text-align: left !important;
}

.nn-rates-page__list li {
	float: none !important;
	clear: both !important;
	margin: 0 0 0.35rem !important;
	padding: 0 !important;
	width: auto !important;
	list-style: disc !important;
}

body.nn-restyle .nn-rates-page ul,
body.nn-restyle .nn-rates-page__list {
	float: none !important;
	clear: both !important;
	position: static !important;
	width: auto !important;
	max-width: 640px !important;
}
