:root {
	--hb-ink: #102f31;
	--hb-ink-deep: #092225;
	--hb-pine: #123b3b;
	--hb-teal: #1e6662;
	--hb-teal-light: #dceae6;
	--hb-sand: #ead9bd;
	--hb-sand-light: #f6efe4;
	--hb-cream: #fbf8f2;
	--hb-white: #ffffff;
	--hb-text: #203437;
	--hb-muted: #607174;
	--hb-line: rgba(16, 47, 49, 0.14);
	--hb-success: #286c4a;
	--hb-error: #a64534;
	--hb-shadow: 0 24px 70px rgba(9, 34, 37, 0.13);
	--hb-shadow-soft: 0 12px 40px rgba(9, 34, 37, 0.08);
	--hb-serif: Baskerville, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--hb-sans: Aptos, "Segoe UI", "Helvetica Neue", sans-serif;
	--hb-radius-sm: 10px;
	--hb-radius: 20px;
	--hb-radius-lg: 34px;
	--hb-container: 1240px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body {
	margin: 0;
	background: var(--hb-cream);
	color: var(--hb-text);
	font-family: var(--hb-sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

body.nav-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
[type="button"],
[type="submit"] {
	cursor: pointer;
}

::selection {
	background: var(--hb-sand);
	color: var(--hb-ink);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 9999;
	width: auto;
	height: auto;
	padding: 10px 16px;
	margin: 0;
	clip: auto;
	background: var(--hb-white);
	color: var(--hb-ink);
	border-radius: 6px;
}

.container {
	width: min(calc(100% - 40px), var(--hb-container));
	margin-inline: auto;
}

.narrow {
	width: min(calc(100% - 40px), 820px);
	margin-inline: auto;
}

.section {
	padding: clamp(76px, 9vw, 132px) 0;
}

.section--tight {
	padding: clamp(54px, 6vw, 88px) 0;
}

.section--ink {
	background: var(--hb-ink);
	color: var(--hb-white);
}

.section--sand {
	background: var(--hb-sand-light);
}

.section--white {
	background: var(--hb-white);
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
	color: var(--hb-teal);
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
}

.eyebrow::before {
	width: 32px;
	height: 1px;
	background: currentColor;
	content: "";
}

.section--ink .eyebrow,
.hero .eyebrow,
.cta-panel .eyebrow {
	color: var(--hb-sand);
}

h1,
h2,
h3,
h4 {
	margin: 0;
	color: var(--hb-ink);
	font-family: var(--hb-serif);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.08;
}

h1 {
	font-size: clamp(3.1rem, 7.2vw, 6.9rem);
}

h2 {
	font-size: clamp(2.4rem, 5vw, 4.7rem);
}

h3 {
	font-size: clamp(1.45rem, 2.4vw, 2rem);
}

.section--ink h2,
.section--ink h3,
.hero h1,
.cta-panel h2 {
	color: var(--hb-white);
}

.lead {
	max-width: 760px;
	margin: 22px 0 0;
	color: var(--hb-muted);
	font-size: clamp(1.08rem, 1.8vw, 1.32rem);
	line-height: 1.62;
}

.section--ink .lead,
.cta-panel .lead {
	color: rgba(255, 255, 255, 0.74);
}

.icon {
	display: inline-flex;
	flex: 0 0 auto;
	width: 1.15em;
	height: 1.15em;
}

.icon svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.button {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 13px 21px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--hb-sand);
	color: var(--hb-ink);
	font-size: 0.94rem;
	font-weight: 750;
	line-height: 1;
	text-decoration: none;
	transition: transform 180ms ease, background 180ms ease, border-color 180ms ease;
}

.button:hover {
	transform: translateY(-2px);
	background: #f2e3ca;
}

.button--dark {
	background: var(--hb-ink);
	color: var(--hb-white);
}

.button--dark:hover {
	background: var(--hb-teal);
}

.button--outline {
	border-color: rgba(255, 255, 255, 0.34);
	background: transparent;
	color: var(--hb-white);
}

.button--outline:hover {
	border-color: var(--hb-white);
	background: rgba(255, 255, 255, 0.08);
}

.button--light-outline {
	border-color: var(--hb-line);
	background: transparent;
	color: var(--hb-ink);
}

.button--light-outline:hover {
	border-color: var(--hb-teal);
	background: var(--hb-white);
}

.button .icon {
	width: 18px;
	height: 18px;
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--hb-teal);
	font-weight: 750;
	text-decoration: none;
}

.text-link:hover {
	text-decoration: underline;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(9, 34, 37, 0.96);
	color: var(--hb-white);
	backdrop-filter: blur(18px);
}

.header-inner {
	display: grid;
	min-height: 84px;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 30px;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--hb-white);
	text-decoration: none;
}

.brand img {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	object-fit: cover;
}

.brand__text {
	display: grid;
	gap: 1px;
	line-height: 1;
}

.brand__name {
	font-family: var(--hb-serif);
	font-size: 1.3rem;
	letter-spacing: -0.02em;
}

.brand__sub {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.primary-nav {
	justify-self: center;
}

.primary-nav ul {
	display: flex;
	align-items: center;
	gap: clamp(18px, 2.8vw, 38px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-nav a {
	position: relative;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.88rem;
	font-weight: 650;
	text-decoration: none;
}

.primary-nav a::after {
	position: absolute;
	right: 0;
	bottom: -8px;
	left: 0;
	height: 1px;
	background: var(--hb-sand);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 180ms ease;
}

.primary-nav a:hover {
	color: var(--hb-white);
}

.primary-nav a:hover::after {
	transform: scaleX(1);
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.header-phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.84rem;
	font-weight: 650;
	text-decoration: none;
}

.menu-toggle {
	display: none;
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: transparent;
	color: var(--hb-white);
}

.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
	display: block;
	width: 20px;
	height: 1.5px;
	background: currentColor;
	content: "";
	transition: transform 180ms ease;
}

.menu-toggle {
	flex-direction: column;
	gap: 5px;
}

.mobile-nav {
	display: none;
}

.hero {
	position: relative;
	min-height: calc(100vh - 84px);
	overflow: hidden;
	background: var(--hb-ink-deep);
	color: var(--hb-white);
}

.hero__image {
	position: absolute;
	inset: 0;
}

.hero__image::after {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(7, 28, 30, 0.96) 0%, rgba(7, 28, 30, 0.79) 42%, rgba(7, 28, 30, 0.24) 75%, rgba(7, 28, 30, 0.12) 100%),
		linear-gradient(0deg, rgba(7, 28, 30, 0.62) 0%, transparent 45%);
	content: "";
}

.hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(0.88) contrast(1.02);
}

.hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	min-height: calc(100vh - 84px);
	align-items: end;
	padding-top: clamp(76px, 10vh, 130px);
	padding-bottom: clamp(70px, 10vh, 120px);
}

.hero__content {
	max-width: 950px;
}

.hero h1 {
	max-width: 900px;
}

.hero h1 em {
	color: var(--hb-sand);
	font-style: italic;
	font-weight: 500;
}

.hero__lead {
	max-width: 660px;
	margin: 26px 0 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	line-height: 1.55;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	margin-top: 34px;
}

.hero__note {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 40px;
	color: rgba(255, 255, 255, 0.64);
	font-size: 0.84rem;
}

.hero__note span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.hero__note .icon {
	color: var(--hb-sand);
}

.stats-bar {
	position: relative;
	z-index: 3;
	margin-top: -34px;
}

.stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	overflow: hidden;
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-white);
	box-shadow: var(--hb-shadow);
}

.stat {
	padding: 28px clamp(20px, 3vw, 42px);
	border-right: 1px solid var(--hb-line);
}

.stat:last-child {
	border-right: 0;
}

.stat strong {
	display: block;
	color: var(--hb-ink);
	font-family: var(--hb-serif);
	font-size: clamp(2rem, 3.4vw, 3.1rem);
	font-weight: 600;
	line-height: 1;
}

.stat span {
	display: block;
	margin-top: 8px;
	color: var(--hb-muted);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: start;
	gap: clamp(50px, 9vw, 130px);
}

.intro-copy {
	position: sticky;
	top: 130px;
}

.feature-stack {
	border-top: 1px solid var(--hb-line);
}

.feature-row {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 22px;
	padding: 28px 0;
	border-bottom: 1px solid var(--hb-line);
}

.feature-row__number {
	color: var(--hb-teal);
	font-family: var(--hb-serif);
	font-size: 1.6rem;
	font-style: italic;
}

.feature-row h3 {
	margin-bottom: 8px;
	font-family: var(--hb-sans);
	font-size: 1.13rem;
	font-weight: 760;
	letter-spacing: -0.01em;
}

.feature-row p {
	margin: 0;
	color: var(--hb-muted);
	font-size: 0.96rem;
}

.section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 48px;
}

.section-heading__copy {
	max-width: 760px;
}

.units-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 24px;
}

.unit-card {
	position: relative;
	grid-column: span 4;
	overflow: hidden;
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-white);
	box-shadow: var(--hb-shadow-soft);
}

.unit-card--wide {
	grid-column: span 6;
}

.unit-card__image {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--hb-teal-light);
}

.unit-card__image::after {
	position: absolute;
	inset: auto 0 0;
	height: 40%;
	background: linear-gradient(transparent, rgba(9, 34, 37, 0.3));
	content: "";
}

.unit-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(.2,.8,.2,1);
}

.unit-card:hover .unit-card__image img {
	transform: scale(1.035);
}

.unit-card__badge {
	position: absolute;
	z-index: 1;
	top: 18px;
	left: 18px;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(251, 248, 242, 0.93);
	color: var(--hb-ink);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	backdrop-filter: blur(8px);
}

.unit-card__body {
	padding: 26px;
}

.unit-card__top {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 16px;
}

.unit-card h3 {
	font-size: 1.7rem;
}

.unit-card__price {
	flex: 0 0 auto;
	text-align: right;
}

.unit-card__price strong {
	display: block;
	color: var(--hb-ink);
	font-family: var(--hb-serif);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1;
}

.unit-card__price small {
	color: var(--hb-muted);
	font-size: 0.7rem;
}

.unit-card p {
	margin: 16px 0 0;
	color: var(--hb-muted);
	font-size: 0.94rem;
}

.unit-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 20px;
	padding: 0;
	list-style: none;
}

.unit-card__meta li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 10px;
	border-radius: 999px;
	background: var(--hb-sand-light);
	color: var(--hb-ink);
	font-size: 0.75rem;
	font-weight: 700;
}

.split {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: stretch;
}

.split__image {
	min-height: 680px;
}

.split__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.split__content {
	display: flex;
	align-items: center;
	padding: clamp(58px, 8vw, 120px);
	background: var(--hb-ink);
	color: var(--hb-white);
}

.split__content-inner {
	max-width: 570px;
}

.split__content p {
	color: rgba(255, 255, 255, 0.72);
}

.check-list {
	display: grid;
	gap: 15px;
	margin: 30px 0 36px;
	padding: 0;
	list-style: none;
}

.check-list li {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 12px;
	align-items: start;
}

.check-list .icon {
	width: 22px;
	height: 22px;
	color: var(--hb-sand);
}

.process-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: 48px;
}

.process-step {
	position: relative;
	min-height: 250px;
	padding: 28px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--hb-radius);
	background: rgba(255, 255, 255, 0.035);
}

.process-step__number {
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	margin-bottom: 42px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
	color: var(--hb-sand);
	font-family: var(--hb-serif);
	font-size: 1.2rem;
	font-style: italic;
}

.process-step h3 {
	font-family: var(--hb-sans);
	font-size: 1.05rem;
	font-weight: 750;
	letter-spacing: 0;
}

.process-step p {
	margin: 12px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.88rem;
}

.amenities-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	margin-top: 48px;
	overflow: hidden;
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-line);
}

.amenity {
	min-height: 190px;
	padding: 30px;
	background: var(--hb-white);
}

.amenity .icon {
	width: 30px;
	height: 30px;
	margin-bottom: 28px;
	color: var(--hb-teal);
}

.amenity h3 {
	font-family: var(--hb-sans);
	font-size: 1.03rem;
	font-weight: 750;
	letter-spacing: 0;
}

.amenity p {
	margin: 10px 0 0;
	color: var(--hb-muted);
	font-size: 0.9rem;
}

.audience-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.audience-card {
	padding: clamp(34px, 5vw, 64px);
	border-radius: var(--hb-radius-lg);
}

.audience-card--primary {
	background: var(--hb-ink);
	color: var(--hb-white);
}

.audience-card--secondary {
	border: 1px solid var(--hb-line);
	background: var(--hb-white);
}

.audience-card__label {
	margin: 0 0 44px;
	font-size: 0.73rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.audience-card--primary .audience-card__label {
	color: var(--hb-sand);
}

.audience-card h3 {
	font-size: clamp(2rem, 3.6vw, 3.4rem);
}

.audience-card--primary h3 {
	color: var(--hb-white);
}

.audience-card p {
	margin: 20px 0 0;
	color: var(--hb-muted);
}

.audience-card--primary p {
	color: rgba(255, 255, 255, 0.7);
}

.audience-card .button {
	margin-top: 30px;
}

.location-grid {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	align-items: center;
	gap: clamp(40px, 8vw, 110px);
}

.location-visual {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	border-radius: var(--hb-radius-lg);
	background: var(--hb-teal-light);
}

.location-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.location-card {
	position: absolute;
	right: 20px;
	bottom: 20px;
	left: 20px;
	padding: 22px;
	border-radius: 16px;
	background: rgba(251, 248, 242, 0.94);
	color: var(--hb-ink);
	backdrop-filter: blur(12px);
}

.location-card strong {
	display: block;
	font-family: var(--hb-serif);
	font-size: 1.45rem;
}

.location-card span {
	color: var(--hb-muted);
	font-size: 0.85rem;
}

.location-copy .lead {
	margin-bottom: 30px;
}

.location-facts {
	display: grid;
	gap: 0;
	margin: 34px 0 0;
	border-top: 1px solid var(--hb-line);
}

.location-fact {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 18px 0;
	border-bottom: 1px solid var(--hb-line);
}

.location-fact strong {
	color: var(--hb-ink);
	font-size: 0.94rem;
}

.location-fact span {
	color: var(--hb-muted);
	font-size: 0.9rem;
	text-align: right;
}

.cta-wrap {
	padding: 0 0 clamp(70px, 8vw, 110px);
	background: var(--hb-cream);
}

.cta-panel {
	position: relative;
	overflow: hidden;
	padding: clamp(48px, 8vw, 96px);
	border-radius: var(--hb-radius-lg);
	background: var(--hb-ink);
	color: var(--hb-white);
}

.cta-panel::after {
	position: absolute;
	right: -120px;
	bottom: -180px;
	width: 450px;
	height: 450px;
	border: 1px solid rgba(234, 217, 189, 0.18);
	border-radius: 50%;
	content: "";
	box-shadow: 0 0 0 70px rgba(234, 217, 189, 0.035), 0 0 0 140px rgba(234, 217, 189, 0.025);
}

.cta-panel__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 40px;
}

.cta-panel__copy {
	max-width: 760px;
}

.cta-panel__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.site-footer {
	background: var(--hb-ink-deep);
	color: var(--hb-white);
}

.footer-main {
	display: grid;
	grid-template-columns: 1.4fr 0.8fr 0.8fr;
	gap: 60px;
	padding: 72px 0 54px;
}

.footer-brand p {
	max-width: 430px;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.9rem;
}

.footer-heading {
	margin: 3px 0 20px;
	color: var(--hb-sand);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.footer-links {
	display: grid;
	gap: 11px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links a,
.footer-contact a,
.footer-contact span {
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.9rem;
	text-decoration: none;
}

.footer-links a:hover,
.footer-contact a:hover {
	color: var(--hb-white);
}

.footer-contact {
	display: grid;
	gap: 12px;
}

.footer-contact a,
.footer-contact span {
	display: flex;
	gap: 10px;
	align-items: start;
}

.footer-contact .icon {
	width: 17px;
	height: 17px;
	margin-top: 4px;
	color: var(--hb-sand);
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.42);
	font-size: 0.76rem;
}

.page-hero {
	padding: clamp(80px, 11vw, 150px) 0 clamp(58px, 8vw, 100px);
	background: var(--hb-ink);
	color: var(--hb-white);
}

.page-hero h1 {
	max-width: 980px;
	color: var(--hb-white);
	font-size: clamp(3rem, 7vw, 6rem);
}

.page-hero .lead {
	color: rgba(255, 255, 255, 0.7);
}

.breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 34px;
	color: rgba(255, 255, 255, 0.54);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.breadcrumb a {
	color: var(--hb-sand);
	text-decoration: none;
}

.content-panel {
	padding: clamp(38px, 6vw, 72px);
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-white);
	box-shadow: var(--hb-shadow-soft);
}

.prose {
	color: var(--hb-text);
}

.prose h2 {
	margin: 2.1em 0 0.65em;
	font-size: clamp(1.9rem, 4vw, 3rem);
}

.prose h3 {
	margin: 1.8em 0 0.6em;
	font-family: var(--hb-sans);
	font-size: 1.15rem;
	font-weight: 780;
	letter-spacing: 0;
}

.prose p,
.prose ul,
.prose ol {
	margin: 0 0 1.15em;
}

.prose ul,
.prose ol {
	padding-left: 1.25em;
}

.prose a {
	color: var(--hb-teal);
}

.prose > :first-child {
	margin-top: 0;
}

.legal-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	margin-bottom: 36px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--hb-line);
	color: var(--hb-muted);
	font-size: 0.85rem;
}

.price-table {
	width: 100%;
	margin: 28px 0 42px;
	border-collapse: collapse;
}

.price-table th,
.price-table td {
	padding: 17px 14px;
	border-bottom: 1px solid var(--hb-line);
	text-align: left;
	vertical-align: top;
}

.price-table th {
	color: var(--hb-muted);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.price-table td:last-child,
.price-table th:last-child {
	text-align: right;
}

.notice {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 14px;
	padding: 18px 20px;
	border-radius: var(--hb-radius-sm);
	background: var(--hb-sand-light);
	color: var(--hb-ink);
	font-size: 0.9rem;
}

.notice .icon {
	color: var(--hb-teal);
}

.inquiry-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	align-items: start;
	gap: 30px;
}

.inquiry-form {
	overflow: hidden;
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-white);
	box-shadow: var(--hb-shadow-soft);
}

.form-progress {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-bottom: 1px solid var(--hb-line);
	background: var(--hb-sand-light);
}

.form-progress__item {
	position: relative;
	padding: 17px 14px;
	color: var(--hb-muted);
	font-size: 0.73rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-align: center;
	text-transform: uppercase;
}

.form-progress__item.is-active {
	background: var(--hb-white);
	color: var(--hb-teal);
}

.form-progress__item.is-active::after {
	position: absolute;
	right: 18px;
	bottom: -1px;
	left: 18px;
	height: 2px;
	background: var(--hb-teal);
	content: "";
}

.form-body {
	padding: clamp(26px, 5vw, 48px);
}

.form-step[hidden] {
	display: none;
}

.form-step h2 {
	font-size: clamp(1.9rem, 4vw, 3rem);
}

.form-step__intro {
	margin: 12px 0 30px;
	color: var(--hb-muted);
	font-size: 0.92rem;
}

.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.field {
	display: grid;
	gap: 8px;
}

.field--full {
	grid-column: 1 / -1;
}

.field label,
.field legend {
	color: var(--hb-ink);
	font-size: 0.82rem;
	font-weight: 750;
}

.field input,
.field select,
.field textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 1px solid rgba(16, 47, 49, 0.22);
	border-radius: 9px;
	outline: none;
	background: var(--hb-white);
	color: var(--hb-text);
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.field textarea {
	min-height: 116px;
	resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
	border-color: var(--hb-teal);
	box-shadow: 0 0 0 3px rgba(30, 102, 98, 0.11);
}

.choice-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.choice-card {
	position: relative;
}

.choice-card input {
	position: absolute;
	opacity: 0;
}

.choice-card label {
	display: grid;
	min-height: 118px;
	align-content: center;
	gap: 6px;
	padding: 20px;
	border: 1px solid var(--hb-line);
	border-radius: 12px;
	background: var(--hb-white);
	cursor: pointer;
}

.choice-card label strong {
	color: var(--hb-ink);
}

.choice-card label span {
	color: var(--hb-muted);
	font-size: 0.82rem;
}

.choice-card input:checked + label {
	border-color: var(--hb-teal);
	background: var(--hb-teal-light);
	box-shadow: inset 0 0 0 1px var(--hb-teal);
}

.form-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 32px;
}

.form-error {
	margin: 0 0 22px;
	padding: 14px 16px;
	border-left: 3px solid var(--hb-error);
	background: #fff2ef;
	color: #7c3024;
	font-size: 0.88rem;
}

.form-success {
	padding: clamp(38px, 6vw, 64px);
	border: 1px solid rgba(40, 108, 74, 0.28);
	border-radius: var(--hb-radius);
	background: #edf8f1;
	color: var(--hb-ink);
}

.form-success h2 {
	font-size: clamp(2rem, 4vw, 3.4rem);
}

.option-list {
	display: grid;
	gap: 14px;
}

.option-card {
	position: relative;
}

.option-card input {
	position: absolute;
	opacity: 0;
}

.option-card label {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 16px;
	padding: 20px;
	border: 1px solid var(--hb-line);
	border-radius: 12px;
	cursor: pointer;
}

.option-card input:checked + label {
	border-color: var(--hb-teal);
	background: var(--hb-teal-light);
	box-shadow: inset 0 0 0 1px var(--hb-teal);
}

.option-card__title {
	color: var(--hb-ink);
	font-weight: 780;
}

.option-card__detail {
	display: block;
	margin-top: 4px;
	color: var(--hb-muted);
	font-size: 0.82rem;
}

.option-card__price {
	color: var(--hb-ink);
	font-family: var(--hb-serif);
	font-size: 1.55rem;
	font-weight: 600;
	text-align: right;
}

.option-card__price small {
	display: block;
	color: var(--hb-muted);
	font-family: var(--hb-sans);
	font-size: 0.68rem;
}

.checkbox {
	display: grid;
	grid-template-columns: 20px 1fr;
	gap: 10px;
	align-items: start;
	margin-top: 20px;
}

.checkbox input {
	width: 18px;
	height: 18px;
	margin-top: 3px;
	accent-color: var(--hb-teal);
}

.checkbox label {
	color: var(--hb-muted);
	font-size: 0.84rem;
}

.checkbox a {
	color: var(--hb-teal);
}

.form-honeypot {
	position: absolute;
	left: -9999px;
}

.inquiry-aside {
	position: sticky;
	top: 110px;
	display: grid;
	gap: 18px;
}

.aside-card {
	padding: 26px;
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-white);
}

.aside-card--ink {
	border-color: transparent;
	background: var(--hb-ink);
	color: var(--hb-white);
}

.aside-card h3 {
	font-family: var(--hb-sans);
	font-size: 1rem;
	font-weight: 780;
	letter-spacing: 0;
}

.aside-card--ink h3 {
	color: var(--hb-white);
}

.aside-card p,
.aside-card li {
	color: var(--hb-muted);
	font-size: 0.86rem;
}

.aside-card--ink p,
.aside-card--ink li {
	color: rgba(255, 255, 255, 0.66);
}

.aside-card ul {
	display: grid;
	gap: 10px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.aside-card li {
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: 8px;
}

.aside-card .icon {
	color: var(--hb-teal);
}

.aside-card--ink .icon {
	color: var(--hb-sand);
}

.status-banner {
	margin-bottom: 24px;
	padding: 16px 18px;
	border-radius: 10px;
	background: #fff2ef;
	color: #7c3024;
	font-size: 0.9rem;
}

.error-page {
	display: grid;
	min-height: 70vh;
	align-items: center;
	text-align: center;
}

.error-page__code {
	display: block;
	color: var(--hb-sand);
	font-family: var(--hb-serif);
	font-size: clamp(6rem, 18vw, 14rem);
	font-style: italic;
	line-height: 0.85;
}

.error-page h1 {
	margin-top: 25px;
	font-size: clamp(2.2rem, 5vw, 4.2rem);
}

.error-page p {
	max-width: 580px;
	margin: 18px auto 30px;
	color: var(--hb-muted);
}

@media (max-width: 1100px) {
	.primary-nav,
	.header-phone {
		display: none;
	}

	.header-inner {
		grid-template-columns: 1fr auto;
	}

	.header-actions .button {
		display: none;
	}

	.menu-toggle {
		display: flex;
	}

	.mobile-nav {
		position: fixed;
		z-index: 999;
		top: 84px;
		right: 0;
		bottom: 0;
		left: 0;
		display: grid;
		align-content: start;
		padding: 38px 20px;
		background: var(--hb-ink-deep);
		opacity: 0;
		pointer-events: none;
		transform: translateY(-8px);
		transition: opacity 180ms ease, transform 180ms ease;
	}

	.mobile-nav.is-open {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
	}

	.mobile-nav ul {
		display: grid;
		gap: 0;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.mobile-nav a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 18px 2px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		color: var(--hb-white);
		font-family: var(--hb-serif);
		font-size: 1.65rem;
		text-decoration: none;
	}

	.mobile-nav__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
		margin-top: 28px;
	}

	.intro-grid {
		grid-template-columns: 1fr;
	}

	.intro-copy {
		position: static;
	}

	.process-grid {
		grid-template-columns: 1fr 1fr;
	}

	.unit-card,
	.unit-card--wide {
		grid-column: span 6;
	}

	.split {
		grid-template-columns: 1fr;
	}

	.split__image {
		min-height: 520px;
	}

	.inquiry-layout {
		grid-template-columns: 1fr;
	}

	.inquiry-aside {
		position: static;
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 760px) {
	:root {
		--hb-radius-lg: 24px;
	}

	body {
		font-size: 16px;
	}

	.container,
	.narrow {
		width: min(calc(100% - 28px), var(--hb-container));
	}

	.header-inner {
		min-height: 72px;
	}

	.brand img {
		width: 44px;
		height: 44px;
	}

	.brand__name {
		font-size: 1.1rem;
	}

	.brand__sub {
		font-size: 0.58rem;
	}

	.mobile-nav {
		top: 72px;
	}

	.hero,
	.hero__inner {
		min-height: calc(100svh - 72px);
	}

	.hero__image::after {
		background:
			linear-gradient(90deg, rgba(7, 28, 30, 0.9), rgba(7, 28, 30, 0.48)),
			linear-gradient(0deg, rgba(7, 28, 30, 0.86), transparent 65%);
	}

	.hero h1 {
		font-size: clamp(2.9rem, 14vw, 4.7rem);
	}

	.hero__actions,
	.hero__actions .button {
		width: 100%;
	}

	.hero__note {
		display: grid;
		gap: 10px;
	}

	.stats-grid {
		grid-template-columns: 1fr 1fr;
	}

	.stat {
		padding: 22px;
	}

	.stat:nth-child(2) {
		border-right: 0;
	}

	.stat:nth-child(-n+2) {
		border-bottom: 1px solid var(--hb-line);
	}

	.section-heading {
		display: block;
	}

	.section-heading .button {
		margin-top: 22px;
	}

	.unit-card,
	.unit-card--wide {
		grid-column: 1 / -1;
	}

	.unit-card__top {
		display: block;
	}

	.unit-card__price {
		margin-top: 14px;
		text-align: left;
	}

	.split__image {
		min-height: 380px;
	}

	.split__content {
		padding: 54px 24px;
	}

	.process-grid,
	.amenities-grid,
	.audience-grid,
	.location-grid,
	.footer-main,
	.inquiry-aside {
		grid-template-columns: 1fr;
	}

	.amenities-grid {
		gap: 1px;
	}

	.location-visual {
		min-height: 430px;
	}

	.cta-panel__inner {
		grid-template-columns: 1fr;
	}

	.cta-panel__actions {
		width: 100%;
	}

	.footer-main {
		gap: 38px;
	}

	.footer-bottom {
		display: grid;
	}

	.form-grid,
	.choice-grid {
		grid-template-columns: 1fr;
	}

	.form-progress__item {
		padding: 14px 6px;
		font-size: 0.62rem;
	}

	.form-actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}

	.form-actions .button {
		width: 100%;
	}

	.option-card label {
		grid-template-columns: 1fr;
	}

	.option-card__price {
		text-align: left;
	}

	.price-table {
		font-size: 0.84rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
/* Haus Burgkeller 2026 completion styles */
.notice--spaced {
	margin-top: 34px;
}

.notice--compact {
	margin-top: 24px;
}

.visually-balanced {
	max-width: 900px;
}

.audience-grid--spaced {
	margin-top: 48px;
}

.footer-bottom nav {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.footer-bottom a {
	color: inherit;
	text-decoration: none;
}

.footer-bottom a:hover {
	color: var(--hb-white);
}

.hb-page-preise .narrow {
	width: min(calc(100% - 40px), 1080px);
	max-width: none;
}

.table-scroll {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.table-scroll .price-table {
	min-width: 620px;
}

.cancellation-table {
	min-width: 760px !important;
}

.legal-copy h2 {
	padding-top: 0.15em;
	font-size: clamp(1.65rem, 3.2vw, 2.45rem);
}

.legal-copy ol li,
.legal-copy ul li {
	margin-bottom: 0.55em;
}

.page-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 42px;
	padding-top: 28px;
	border-top: 1px solid var(--hb-line);
}

.inquiry-form a,
.inquiry-aside a {
	color: inherit;
}

.form-step fieldset {
	min-width: 0;
	padding: 0;
	border: 0;
}

.form-step[hidden],
.field[hidden] {
	display: none;
}

.option-card input:disabled + label {
	opacity: 0.58;
	cursor: not-allowed;
}

.option-card__price {
	min-width: 170px;
}

.option-card__price small {
	max-width: 190px;
	margin-top: 6px;
	line-height: 1.35;
}

.form-error[hidden] {
	display: none;
}

.form-success p {
	max-width: 720px;
}

.aside-card a {
	text-decoration: none;
}

.aside-card a:hover {
	text-decoration: underline;
}

.field-help {
	color: var(--hb-muted);
	font-size: 0.76rem;
	line-height: 1.45;
}

.date-input-shell {
	position: relative;
}

.date-input-shell input {
	padding-right: 58px;
	cursor: pointer;
}

.date-input-shell input::-webkit-calendar-picker-indicator {
	position: absolute;
	right: 0;
	width: 54px;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}

.date-picker-trigger {
	position: absolute;
	top: 5px;
	right: 5px;
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 8px;
	background: var(--hb-teal-light);
	color: var(--hb-teal);
}

.date-picker-trigger:hover,
.date-picker-trigger:focus-visible {
	background: var(--hb-sand);
	color: var(--hb-ink);
}

.home-availability {
	padding: clamp(38px, 6vw, 70px) 0;
}

.home-availability__panel {
	display: grid;
	grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
	gap: clamp(28px, 5vw, 64px);
	align-items: center;
	padding: clamp(26px, 5vw, 52px);
	border: 1px solid var(--hb-line);
	border-radius: var(--hb-radius);
	background: var(--hb-white);
	box-shadow: var(--hb-shadow-soft);
}

.home-availability__copy h2 {
	margin-top: 8px;
	font-size: clamp(2rem, 4vw, 3.35rem);
}

.home-availability__copy > p:last-child {
	margin: 16px 0 0;
	color: var(--hb-muted);
	line-height: 1.65;
}

.home-availability__fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	align-items: end;
}

.home-availability__fields .button {
	grid-column: 1 / -1;
	justify-content: center;
	min-height: 52px;
}

.home-availability__form .form-error {
	margin-top: 16px;
}

.home-availability__form .availability-result {
	margin: 18px 0 0;
}

.availability-result__action {
	justify-self: start;
	margin-top: 5px;
}

@media (max-width: 920px) {
	.home-availability__panel {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.home-availability__fields {
		grid-template-columns: 1fr;
	}

	.availability-result__action {
		width: 100%;
		justify-content: center;
	}
}

.availability-check {
	display: grid;
	gap: 8px;
	margin: 0 0 24px;
	padding: 18px 20px;
	border: 1px solid rgba(155, 109, 24, 0.28);
	border-radius: 12px;
	background: #fff9e9;
}

.availability-check > strong {
	color: var(--hb-ink);
	font-size: 1rem;
}

.availability-check p {
	margin: 0;
	color: var(--hb-text);
	font-size: 0.9rem;
}

.availability-check--control {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 18px;
	align-items: center;
	border-color: rgba(30, 102, 98, 0.28);
	background: #eef6f3;
}

.availability-check--control .button {
	min-width: 210px;
	justify-content: center;
}

.availability-result {
	display: grid;
	gap: 9px;
	margin: -8px 0 24px;
	padding: 18px 20px;
	border: 1px solid var(--hb-line);
	border-radius: 12px;
	background: var(--hb-cream);
}

.availability-result[hidden] {
	display: none;
}

.availability-result__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
}

.availability-result__header strong {
	color: var(--hb-ink);
	font-size: 1rem;
	line-height: 1.45;
}

.availability-result__header span {
	flex: 0 0 auto;
	color: var(--hb-muted);
	font-size: 0.75rem;
	line-height: 1.45;
	text-align: right;
}

.availability-result p {
	margin: 0;
	color: var(--hb-text);
	font-size: 0.88rem;
	line-height: 1.55;
}

.availability-result--success {
	border-color: rgba(30, 102, 98, 0.32);
	background: #eef6f3;
}

.availability-result--partial {
	border-color: rgba(155, 109, 24, 0.32);
	background: #fff9e9;
}

.availability-result--unavailable {
	border-color: rgba(160, 54, 42, 0.28);
	background: #fff3f0;
}

.inquiry-form button:disabled {
	cursor: not-allowed;
	opacity: 0.5;
	transform: none;
}

@media (max-width: 680px) {
	.availability-check--control {
		grid-template-columns: 1fr;
	}

	.availability-check--control .button {
		width: 100%;
		min-width: 0;
	}

	.availability-result__header {
		display: grid;
		gap: 5px;
	}

	.availability-result__header span {
		text-align: left;
	}
}

.availability-check__basis,
.option-card__allocation {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.availability-check__basis span,
.option-card__allocation span {
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(30, 102, 98, 0.1);
	color: var(--hb-teal);
	font-size: 0.75rem;
	font-weight: 750;
}

.option-list {
	gap: 18px;
}

.option-card label {
	display: block;
	padding: 24px;
}

.option-card__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

.option-card__marker {
	display: block;
	margin-bottom: 5px;
	color: var(--hb-teal);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.option-card__title {
	display: block;
	font-size: 1.15rem;
	line-height: 1.3;
}

.option-card__total {
	flex: 0 0 auto;
	color: var(--hb-ink);
	font-family: var(--hb-serif);
	font-size: 1.65rem;
	font-weight: 650;
	line-height: 1.05;
	text-align: right;
}

.option-card__total small {
	display: block;
	margin-top: 4px;
	color: var(--hb-muted);
	font-family: var(--hb-sans);
	font-size: 0.7rem;
	font-weight: 650;
}

.option-card__description {
	display: block;
	margin-top: 12px;
	color: var(--hb-text);
	font-size: 0.96rem;
	line-height: 1.55;
}

.option-card__allocation {
	margin-top: 16px;
}

.cost-breakdown {
	display: grid;
	gap: 0;
	margin-top: 20px;
	padding-top: 10px;
	border-top: 1px solid var(--hb-line);
}

.cost-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	padding: 8px 0;
	color: var(--hb-muted);
	font-size: 0.84rem;
	line-height: 1.4;
}

.cost-row strong {
	flex: 0 0 auto;
	color: var(--hb-ink);
	font-size: 0.86rem;
	text-align: right;
}

.cost-row--discount,
.cost-row--discount strong {
	color: var(--hb-success);
}

.cost-row--summary {
	margin-top: 5px;
	padding-top: 13px;
	border-top: 1px solid var(--hb-line);
}

.cost-row--total,
.cost-row--total strong {
	color: var(--hb-ink);
	font-size: 1rem;
}

.option-card__metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-top: 16px;
}

.option-card__metrics .cost-row {
	display: grid;
	align-content: space-between;
	gap: 4px;
	min-height: 78px;
	padding: 11px 12px;
	border-radius: 9px;
	background: var(--hb-sand-light);
}

.option-card__metrics .cost-row strong {
	text-align: left;
}

.form-step .address-fields {
	gap: 16px;
	margin-top: 8px;
	padding: 20px;
	border: 1px solid var(--hb-line);
	border-radius: 12px;
	background: var(--hb-sand-light);
}

.address-fields > legend {
	padding: 0 7px;
	font-size: 0.9rem;
}

.address-fields > legend span {
	color: var(--hb-muted);
	font-weight: 500;
}

.address-autofill-note {
	display: grid;
	gap: 3px;
	padding: 13px 15px;
	border-radius: 9px;
	background: var(--hb-white);
	color: var(--hb-muted);
	font-size: 0.8rem;
}

.address-autofill-note strong {
	color: var(--hb-ink);
	font-size: 0.84rem;
}

.address-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 16px;
}

.address-grid > .field:nth-child(1) { grid-column: span 9; }
.address-grid > .field:nth-child(2) { grid-column: span 3; }
.address-grid > .field:nth-child(3) { grid-column: span 3; }
.address-grid > .field:nth-child(4) { grid-column: span 9; }
.address-grid > .field:nth-child(5),
.address-grid > .field:nth-child(6) { grid-column: span 6; }

.inquiry-form .checkbox a {
	color: var(--hb-teal);
	font-weight: 780;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

@media (max-width: 760px) {
	.page-actions {
		display: grid;
	}

	.page-actions .button {
		width: 100%;
	}

	.option-card__price {
		min-width: 0;
	}

	.option-card__header {
		display: grid;
	}

	.option-card__total {
		text-align: left;
	}

	.option-card__metrics,
	.address-grid {
		grid-template-columns: 1fr;
	}

	.address-grid > .field:nth-child(n) {
		grid-column: 1;
	}

	.cost-row {
		align-items: flex-start;
	}
}

@media print {
	.site-header,
	.site-footer,
	.page-actions,
	.page-hero .breadcrumb,
	.page-hero .eyebrow {
		display: none !important;
	}

	body {
		background: #fff;
		color: #111;
		font-size: 11pt;
	}

	.page-hero {
		padding: 0 0 20px;
		background: #fff;
		color: #111;
	}

	.page-hero h1,
	.page-hero .lead,
	.prose h2,
	.prose h3 {
		color: #111;
	}

	.section,
	.section--tight {
		padding: 0;
	}

	.content-panel {
		width: 100%;
		padding: 0;
		border: 0;
		box-shadow: none;
	}

	.table-scroll {
		overflow: visible;
	}

	.table-scroll .price-table,
	.cancellation-table {
		min-width: 0 !important;
	}

	a {
		text-decoration: none;
	}
}

.button--whatsapp {
	border-color: #25d366;
	background: #25d366;
	color: #08271a;
}

.button--whatsapp:hover {
	border-color: #20bd5a;
	background: #20bd5a;
	color: #061f14;
}

.form-actions__group {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 12px;
}

.whatsapp-data-note {
	max-width: 760px;
	margin: 14px 0 0;
	color: var(--hb-muted);
	font-size: 0.76rem;
	line-height: 1.55;
}

@media (max-width: 760px) {
	.form-actions,
	.form-actions__group {
		display: grid;
		width: 100%;
	}

	.form-actions .button {
		width: 100%;
	}
}

/* HB_GALLERY_STYLES */
.section-heading__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-end}
.accommodation-hero em{color:var(--hb-sand);font-style:italic}
.accommodations-list{display:grid;gap:30px}
.accommodation-card{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);overflow:hidden;border:1px solid var(--hb-line);border-radius:var(--hb-radius);background:var(--hb-white);box-shadow:var(--hb-shadow-soft)}
.accommodation-card__gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(150px,1fr));gap:4px;min-height:410px;background:var(--hb-ink)}
.accommodation-card__gallery-item{position:relative;display:block;overflow:hidden;background:var(--hb-teal-light)}
.accommodation-card__gallery-item:first-child{grid-row:1/3}
.accommodation-card__gallery--count-3{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}
.accommodation-card__gallery--count-4 .accommodation-card__gallery-item:nth-child(4){grid-column:2/4}
.accommodation-card__gallery-item--extra{display:none}
.accommodation-card__gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 500ms cubic-bezier(.2,.8,.2,1),filter 300ms ease}
.accommodation-card__gallery-item:hover img,.accommodation-card__gallery-item:focus-visible img{transform:scale(1.035);filter:brightness(.9)}
.accommodation-card__more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(9,34,37,.58);color:var(--hb-white);font-weight:800;letter-spacing:.04em}
.accommodation-card__content{display:flex;flex-direction:column;justify-content:space-between;gap:34px;padding:clamp(30px,4vw,52px)}
.accommodation-card__content h2{margin-top:5px;font-size:clamp(2rem,3vw,3.25rem)}
.accommodation-card__content p:not(.accommodation-card__type){margin:18px 0 0;color:var(--hb-muted)}
.accommodation-card__type{margin:0;color:var(--hb-teal);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.accommodation-card__facts{display:flex;flex-wrap:wrap;gap:9px}
.accommodation-card__facts span{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:var(--hb-sand-light);color:var(--hb-ink);font-size:.76rem;font-weight:750}
.accommodation-card__facts .icon{width:17px;height:17px}
.gallery-open{overflow:hidden}.gallery-lightbox[hidden]{display:none}
.gallery-lightbox{position:fixed;z-index:99999;inset:0;display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center;padding:40px;background:rgba(4,20,22,.96);backdrop-filter:blur(16px)}
.gallery-lightbox figure{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:16px;width:100%;height:min(88vh,920px);margin:0}
.gallery-lightbox__image{width:100%;height:100%;min-height:0;object-fit:contain}
.gallery-lightbox figcaption{display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.74);font-size:.82rem;letter-spacing:.04em}
.gallery-lightbox__unit{color:var(--hb-sand);font-weight:800}
.gallery-lightbox button{border:0;color:var(--hb-white);background:transparent;cursor:pointer}
.gallery-lightbox__close{position:absolute;top:18px;right:24px;width:48px;height:48px;font-size:2.3rem;line-height:1}
.gallery-lightbox__nav{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.18)!important;border-radius:50%}
.gallery-lightbox__nav .icon{width:22px;height:22px}.gallery-lightbox__nav--prev .icon{transform:rotate(180deg)}.gallery-lightbox__nav:disabled{opacity:.28;cursor:default}
@media(max-width:920px){.accommodation-card{grid-template-columns:1fr}.accommodation-card__gallery{min-height:360px}}
@media(max-width:620px){.section-heading__actions{justify-content:stretch}.section-heading__actions .button{width:100%}.accommodation-card__gallery{grid-template-columns:1.45fr 1fr;grid-template-rows:repeat(2,minmax(120px,1fr));min-height:300px}.accommodation-card__gallery-item:nth-child(n+4):not(.accommodation-card__gallery-item--extra){display:none}.accommodation-card__content{padding:28px 22px}.gallery-lightbox{grid-template-columns:44px minmax(0,1fr) 44px;padding:56px 8px 20px}.gallery-lightbox__nav{width:40px;height:40px}}

body.legal-modal-open{overflow:hidden}
.legal-modal[hidden]{display:none}
.legal-modal{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;padding:24px;background:rgba(9,34,37,.72);backdrop-filter:blur(8px)}
.legal-modal__panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(960px,100%);height:min(88vh,900px);overflow:hidden;border-radius:var(--hb-radius);background:var(--hb-cream);box-shadow:var(--hb-shadow)}
.legal-modal__header,.legal-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;background:var(--hb-white)}
.legal-modal__header{border-bottom:1px solid var(--hb-line)}
.legal-modal__header h2{margin:0;color:var(--hb-ink);font-family:var(--hb-serif);font-size:clamp(1.45rem,3vw,2rem);line-height:1.1}
.legal-modal__eyebrow{display:block;margin-bottom:4px;color:var(--hb-teal);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.legal-modal__close{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border:1px solid var(--hb-line);border-radius:50%;color:var(--hb-ink);background:var(--hb-cream);font-size:2rem;line-height:1}
.legal-modal__frame{width:100%;height:100%;border:0;background:var(--hb-cream)}
.legal-modal__footer{justify-content:flex-end;border-top:1px solid var(--hb-line)}
@media(max-width:620px){.legal-modal{padding:0}.legal-modal__panel{width:100%;height:100dvh;border-radius:0}.legal-modal__header,.legal-modal__footer{padding:14px 16px}.legal-modal__footer .button{width:100%}}


