/* ================================================================
   Hotel Alpin - custom.css
   Style WP-specific (margines bloków, animacje, edytor, fallbacki).
   Mobile-first, jeden break: 992px+.
   ================================================================ */

/* ================================================================
   Fonty ladowane lokalnie (self-hosted) - Google Sans i Inter,
   wagi realnie uzywane w motywie. Pobrane z Google Fonts, zapisane
   w assets/fonts/. Fonty Adobe Typekit (the-seasons, gravesend-sans)
   pozostaja bez zmian - inna licencja, nie podlegaja temu zadaniu.
   ================================================================ */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/googlesans-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/googlesans-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/googlesans-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/googlesans-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/googlesans-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/googlesans-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/inter-300-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/inter-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/inter-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/inter-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ----------------------------------------------------------------
   Block spacing utilities (Margines górny / dolny - z ACF settings)
   ---------------------------------------------------------------- */
.has-margin-top    { margin-top: 60px; }
.has-margin-bottom { margin-bottom: 60px; }
@media (min-width: 992px) {
	.has-margin-top    { margin-top: 100px; }
	.has-margin-bottom { margin-bottom: 100px; }
}

/* ----------------------------------------------------------------
   Skip-link (a11y)
   ---------------------------------------------------------------- */
html,
body {
	max-width: 100%;
	overflow-x: clip;
}
@supports not (overflow: clip) {
	html,
	body { overflow-x: hidden; }
}

.skip-link {
	position: absolute; left: -9999px; top: 8px;
	z-index: 100000; padding: 8px 16px;
	background: #000; color: #fff; text-decoration: none;
}
.skip-link:focus { left: 8px; }

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

/* ----------------------------------------------------------------
   Reusable WYSIWYG flow
   ---------------------------------------------------------------- */
.content-flow > * { margin: 0; }
.content-flow > * + * { margin-top: 16px; }
.content-flow h1 {
	font-size: 44px;
	line-height: 50px;
}
.content-flow h2.not(.eyebrow) {
	font-size: 40px;
	line-height: 46px;
}
.content-flow h3.not(.eyebrow) {
	font-size: 32px;
	line-height: 38px;
}
.content-flow h4 {
	font-size: 24px;
	line-height: 30px;
}
.content-flow h5 {
	font-size: 20px;
	line-height: 26px;
}
.content-flow h6 {
	font-family: var(--font-ui);
	font-weight: 500;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gold);
}
.content-flow p, .content-flow li {
    color: var(--text-strong, rgba(0, 0, 0, 0.8));
    line-height: 1.5;
}
.content-flow ul,
.content-flow ol {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-left: 20px;
}
.content-flow ul { list-style: disc; }
.content-flow ol { list-style: decimal; }
.content-flow a {
	color: var(--gold, #be924f);
	text-decoration: underline;
	text-underline-offset: 3px;
}
@media (min-width: 992px) {
	.content-flow > * + * { margin-top: 18px; }
	.content-flow h1.not(.eyebrow) {
		font-size: 64px;
		line-height: 72px;
	}
	.content-flow h2.not(.eyebrow) {
		font-size: 54px;
		line-height: 64px;
	}
	.content-flow h3.not(.eyebrow) {
		font-size: 40px;
		line-height: 48px;
	}
	.content-flow h4.not(.eyebrow) {
		font-size: 28px;
		line-height: 34px;
	}
	.content-flow h5.not(.eyebrow) {
		font-size: 22px;
		line-height: 30px;
	}
}

/* ----------------------------------------------------------------
   Hero left block
   ---------------------------------------------------------------- */
.hero-left-block {
	position: relative;
	min-height: 430px;
	display: flex;
	align-items: stretch;
	padding: 150px 0 54px;
	color: var(--white, #fff);
	overflow: hidden;
	isolation: isolate;
}
.hero-left-block__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	overflow: hidden;
}
.hero-left-block__media img,
.hero-left-block__media video,
.hero-left-block__media iframe {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero-left-block__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.08) 42%, rgba(0,0,0,0.62) 100%),
		linear-gradient(90deg, rgba(76,49,40,0.48) 0%, rgba(76,49,40,0.2) 48%, rgba(0,0,0,0.16) 100%),
		linear-gradient(0deg, rgba(94,89,86,0.42) 0%, rgba(94,89,86,0) 42%);
}
.hero-left-block__inner {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-width: 0;
}
.hero-left-block__content {
	max-width: 760px;
	display: flex;
	flex-direction: column;
	gap: 24px;
	text-align: left;
	width: 100%;
}
.hero-left-block__content > * { margin: 0; }
.hero-left-block h1,
.hero-left-block p,
.hero-left-block .wysiwyg { color: var(--white, #fff); }
.hero-left-block h1 {
	font-family: var(--font-display, Georgia, serif);
	font-weight: 700;
	font-size: 46px;
	line-height: 1.04;
	max-width: 840px;
	text-shadow: 0 4px 18px rgba(0,0,0,0.24);
}
.hero-left-block p {
	font-size: 14px;
	line-height: 20px;
	max-width: 540px;
}
.hero-left-block__cta {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 30px;
	width: 240px;
}
.hero-left-block__cta .btn,
.hero-left-block__cta .btn-outline { width: 100%; min-width: 0; }
.hero-left-block__cta .btn-outline { color: var(--white, #fff); border-color: var(--white, #fff); }
.hero-left-block__cta .btn-outline:hover { background: var(--white, #fff); color: var(--black, #000); border-color: var(--white, #fff); }
.hero-left-block__booking { display: none; }

@media (min-width: 992px) {
	.hero-left-block {
		min-height: 560px;
		padding: 190px 0 78px;
	}
	.hero-left-block__inner {
		padding-left: 60px;
		padding-right: 60px;
	}
	.hero-left-block__content { max-width: 640px; }
	.hero-left-block h1 {
		font-size: 76px;
		line-height: 0.96;
	}
	.hero-left-block__cta {
		flex-direction: row;
		width: auto;
		margin-top: 20px;
		justify-content: flex-start;
	}
	.hero-left-block__cta .btn { width: 240px; min-width: 0; }
	.hero-left-block__cta-mobile { display: none; }
	.hero-left-block__booking {
		display: block;
		margin-top: auto;
		padding-top: 40px;
		width: 100%;
	}
}

/* ----------------------------------------------------------------
   Page title block
   ---------------------------------------------------------------- */
.page-title {
	position: relative;
	min-height: 430px;
	display: flex;
	align-items: flex-end;
	padding: 150px 0 54px;
	color: var(--white, #fff);
	background:
		linear-gradient(135deg, rgba(249,244,236,0.94) 0%, rgba(237,224,205,0.72) 100%),
		var(--cream, #f9f4ec);
	overflow: hidden;
	isolation: isolate;
}
.page-title.is-no-image { color: var(--black, #1a1a1a); }
.page-title__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.page-title__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.page-title__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.08) 42%, rgba(0,0,0,0.62) 100%),
		linear-gradient(90deg, rgba(76,49,40,0.48) 0%, rgba(76,49,40,0.2) 48%, rgba(0,0,0,0.16) 100%),
		linear-gradient(0deg, rgba(94,89,86,0.42) 0%, rgba(94,89,86,0) 42%);
}
.page-title.has-overlay-soft .page-title__overlay {
	background:
		linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.04) 44%, rgba(0,0,0,0.46) 100%),
		linear-gradient(90deg, rgba(76,49,40,0.34) 0%, rgba(76,49,40,0.1) 58%, rgba(0,0,0,0.08) 100%);
}
.page-title.has-overlay-strong .page-title__overlay {
	background:
		linear-gradient(180deg, rgba(0,0,0,0.64) 0%, rgba(0,0,0,0.18) 40%, rgba(0,0,0,0.74) 100%),
		linear-gradient(90deg, rgba(54,35,29,0.66) 0%, rgba(76,49,40,0.35) 52%, rgba(0,0,0,0.26) 100%),
		linear-gradient(0deg, rgba(94,89,86,0.55) 0%, rgba(94,89,86,0) 44%);
}
.page-title__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 24px;
	/*
	max-width: 100%;
	*/
	min-width: 0;
}
.page-title__content {
	max-width: 760px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}
.page-title__intro {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.page-title__intro > * { margin: 0; }
/* Slider w intro zawiera zagnieżdżony .container z własnym paddingiem/max-width –
   neutralizujemy, aby tekst był wyrównany z nagłówkiem h1. */
.page-title__intro .container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	margin-left: 0;
	margin-right: 0;
}
.page-title.has-background .eyebrow {
	color: var(--white, #fff);
	text-shadow: 0 2px 16px rgba(0,0,0,0.34);
}
.page-title h1 {
	font-family: var(--font-display, Georgia, serif);
	font-weight: 700;
	font-size: 46px;
	line-height: 1.04;
	margin: 0;
	max-width: 840px;
	text-shadow: 0 4px 18px rgba(0,0,0,0.24);
}
.page-title.is-no-image h1 { text-shadow: none; }
.page-title__breadcrumbs {
    width: fit-content;
    max-width: 100%;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.13);
    backdrop-filter: blur(12px);
}
.page-title.is-no-image .page-title__breadcrumbs {
	background: rgba(255,255,255,0.58);
	border-color: rgba(0,0,0,0.08);
}
.page-title .breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-family: var(--font-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: inherit;
}
.page-title .breadcrumbs a {
	color: inherit;
	text-decoration: none;
	opacity: 0.72;
}
.page-title .breadcrumbs a:hover {
	color: var(--gold, #be924f);
	opacity: 1;
}
.page-title .breadcrumbs span { opacity: 0.5; }
.page-title .breadcrumbs > span:last-child { opacity: 0.9; }
@media (min-width: 992px) {
	.page-title {
		min-height: 560px;
		padding: 190px 0 78px;
	}
	.page-title::before {
		right: 9vw;
		bottom: -48px;
		opacity: 0.18;
	}
	.page-title__inner { gap: 30px; }
	.page-title__content { gap: 18px; }
	.page-title h1 {
		font-size: 76px;
		line-height: 0.96;
	}
	.page-title__breadcrumbs { padding: 13px 18px; }
	.page-title .breadcrumbs { font-size: 12px; gap: 10px; }
}

/* ----------------------------------------------------------------
   Text block
   ---------------------------------------------------------------- */
.text-block { padding: 50px 0; }
.text-block__content {
	max-width: 1080px;
	position: relative;
}
.text-block.is-narrow .text-block__content {
	max-width: 860px;
	margin: 0 auto;
}
.text-block__content > .eyebrow + * { margin-top: 14px; }
@media (min-width: 992px) {
	.text-block { padding: 80px 0; font-size: 16px; }
}

/* ----------------------------------------------------------------
   Image text block (obraz szeroki + wyśrodkowany tekst)
   ---------------------------------------------------------------- */
.image-text-block { padding: 50px 0; }
.image-text-block__inner {
	display: flex;
	flex-direction: column;
	gap: 30px;
}
.image-text-block__media {
	margin: 0;
	width: 100%;
	line-height: 0;
}
.image-text-block__media img {
	width: 100%;
	height: auto;
	display: block;
}
.image-text-block__content {
	text-align: center;
	max-width: 860px;
	margin: 0 auto;
	font-size: 14px;
	line-height: 1.7;
}
.image-text-block__content > * { margin-top: 0; margin-bottom: 12px; }
.image-text-block__content > *:last-child { margin-bottom: 0; }
@media (min-width: 992px) {
	.image-text-block { padding: 80px 0; }
	.image-text-block__inner { gap: 40px; }
	.image-text-block__content { font-size: 15px; }
}

/* ----------------------------------------------------------------
   FAQ block
   ---------------------------------------------------------------- */
.faq-block {
	padding: 56px 0;
	background: var(--cream, #f9f4ec);
}
.faq-block__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 34px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.faq-block__head {
	max-width: 760px;
	min-width: 0;
}
.faq-block__list {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    border: 1px solid var(--gold, #be924f);
    box-sizing: border-box;
}
.faq-item {
	border-bottom: 1px solid var(--gold, #be924f);
	overflow: hidden;
}
.faq-item:last-child { border-bottom: 0; }
.faq-item__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    min-height: 76px;
    padding: 22px 20px;
    background: transparent;
    border: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    color: inherit;
    transition: color var(--t-base, 0.25s);
}
.faq-item__trigger:hover,
.faq-item__trigger:focus-visible,
.faq-item.is-open .faq-item__trigger { color: var(--gold, #be924f); }
.faq-item__question { flex: 1 1 auto; }
.faq-item__icon {
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	color: var(--gold, #be924f);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.faq-item__icon .select-dropdown__chevron {
    width: 12px;
    height: 8px;
    transform: rotate(0deg);
    transition: transform var(--t-base, 0.25s);
}
.faq-item.is-open .faq-item__icon .select-dropdown__chevron {
	transform: rotate(180deg);
}
.faq-item__panel {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.35s ease;
}
.faq-item__panel-inner {
	max-width: 760px;
	padding: 0 68px 24px 20px;
}
.faq-item.is-open .faq-item__panel { max-height: 1000px; }
@media (min-width: 992px) {
	.faq-block { padding: 96px 0; }
    .faq-block__inner {
        grid-template-columns: minmax(240px, 420px) minmax(0, 1fr);
        align-items: start;
        gap: clamp(40px, 5vw, 100px);
    }
	.faq-block__head {
		position: sticky;
		top: 120px;
		max-width: 420px;
	}
    .faq-item__trigger {
        min-height: 60px;
        padding: 15px 28px;
        font-size: 15px;
    }
	.faq-item__panel-inner {
		padding: 0 88px 30px 28px;
	}
}
@media (min-width: 1600px) {
	.faq-block__inner {
		padding-right: calc((100vw - 1480px) / 2);
	}
}

/* ----------------------------------------------------------------
   Contact block
   ---------------------------------------------------------------- */
.contact-block {
    overflow: hidden;
    background: var(--cream);
}
.contact-block__inner { display: flex; flex-direction: column; gap: 0; }
.contact-block__info {
    display: flex;
    flex-direction: column;
    padding: 40px 0 0;
}
.contact-block__info a {
	display: inline-flex; align-items: center; gap: 12px;
	color: inherit; text-decoration: none;
	transition: color var(--t-fast, 0.15s);
}
.contact-block__info a:hover { color: var(--gold, #c9a96e); }
.contact-block__team {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-top: 34px;
}
.contact-person {
	position: relative;
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	padding: 14px 0;
	border-top: 1px solid rgba(190, 146, 79, 0.35);
}
.contact-person.has-no-photo {
	grid-template-columns: 1fr;
}
.contact-person__photo {
	position: relative;
	overflow: hidden;
	background: var(--cream);
	width: 86px;
	height: 108px;
}
.contact-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--t-base);
}
.contact-person:hover .contact-person__photo img {
	transform: scale(1.04);
}
.contact-person__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
}
.contact-person__role {
	margin: 0;
	font-family: "Gravesend Sans", var(--font-ui);
	font-weight: 500;
	font-size: 11px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gold);
}
.contact-person__name {
	margin: 0;
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 24px;
	line-height: 1.1;
	color: var(--black);
}
.contact-person__links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	margin-top: 2px;
}
.contact-block__info .contact-person__links a {
	display: inline-flex;
	gap: 0;
	max-width: 100%;
	font-size: 13px;
	line-height: 18px;
	color: var(--text-muted);
	word-break: break-word;
}
.contact-block__info .contact-person__links a:hover {
	color: var(--gold);
}
.contact-block__form {
	position: relative;
	z-index: 1;
	padding: 34px 0 0;
}
.contact-block__form::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	bottom: 0;
	left: calc(50% - 50vw);
	right: calc(50% - 50vw);
	background: var(--cream);
}
.contact-block__form .wpcf7 { width: 100%; }
.ha-contact-form {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.ha-contact-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}
.ha-contact-form__field {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 0;
}
.ha-contact-form__label {
	display: inline-block;
	font-family: "Gravesend Sans", var(--font-ui);
	font-weight: 500;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gray);
}
.ha-contact-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}
.ha-contact-form input:not([type="submit"]),
.ha-contact-form textarea {
	width: 100%;
	border: 1px solid rgba(0, 0, 0, 0.18);
	background: var(--white);
	color: var(--black);
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.35;
	padding: 9px 12px;
	transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.ha-contact-form input:not([type="submit"]) {
	height: 40px;
}
.ha-contact-form textarea {
    min-height: 150px;
    resize: vertical;
    height: 150px;
}
.ha-contact-form input:not([type="submit"]):focus,
.ha-contact-form textarea:focus {
	outline: none;
	border-color: var(--gold);
}
.ha-contact-form__consent {
	margin: 0;
	font-size: 11px;
	line-height: 16px;
	color: var(--gray);
}
.ha-contact-form__submit {
	display: flex;
	justify-content: center;
	margin-top: 14px;
}
.ha-contact-form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    height: 52px;
    border: 1px solid var(--gold);
    background: var(--gold);
    color: var(--white);
    font-family: var(--font-ui);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    padding: 0 28px;
    cursor: pointer;
    transition: background-color var(--t-base), border-color var(--t-base), color var(--t-base);
    width: 100%;
}
.ha-contact-form input[type="submit"]:hover,
.ha-contact-form input[type="submit"]:focus-visible {
	background: var(--gold-hover);
	border-color: var(--gold-hover);
	color: var(--white);
}
.ha-contact-form br {
    display: none;
}
@media (min-width: 992px) {
	.contact-block__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: stretch; }
	.contact-block__info, .contact-block__form { flex: 1 1 0; }
	.contact-block__info {
		padding: 80px 0;
		max-width: none;
		margin-left: min(0px, calc((1360px - 100vw) / 2));
	}
	.contact-block__team {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 24px;
		margin-top: 46px;
	}
	.contact-person {
		grid-template-columns: 96px minmax(0, 1fr);
		align-items: start;
		gap: 18px;
		padding: 18px 0;
	}
	.contact-person__photo {
		width: 96px;
		height: 120px;
	}
	.contact-person__name {
		font-size: 28px !important;
	}
	.contact-block__form {
		padding: 80px 0 80px 60px;
	}
	.contact-block__form::before {
		left: 0;
		right: calc(50% - 50vw);
	}
	.ha-contact-form__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px;
	}
}

/* ----------------------------------------------------------------
   Map block
   ---------------------------------------------------------------- */
.map-block {
    padding: 0;
    border-top: 1px solid var(--gold);
    padding-top: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--gold);
}
.map-block__embed {
	width: 100%; aspect-ratio: 16 / 9; min-height: 320px;
	background: rgba(0,0,0,0.05);
	overflow: hidden;
}
.map-block__embed iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (min-width: 992px) {
    .map-block__embed {
        aspect-ratio: 3 / 1;
        min-height: 340px;
    }
}

/* ----------------------------------------------------------------
   Gallery grid
   ---------------------------------------------------------------- */
.gallery-grid {
	padding: 56px 0;
	background: var(--white, #fff);
}
.gallery-grid.is-bg-cream { background: var(--cream, #f9f4ec); }
.gallery-grid__head {
	margin-bottom: 34px;
}
.gallery-grid__head h2,
.gallery-grid__head h3 {
	max-width: 760px;
}

/* Wyśrodkowane nagłówki — akapity zostają wyrównane do lewej i na pełną szerokość */
.gallery-grid.is-head-centered .gallery-grid__head {
	text-align: center; /* potrzebne dla inline-block (eyebrow-decor) */
}
.gallery-grid.is-head-centered .gallery-grid__head h2,
.gallery-grid.is-head-centered .gallery-grid__head h3 {
	margin-left: auto;
	margin-right: auto;
}
.gallery-grid.is-head-centered .gallery-grid__head p,
.gallery-grid.is-head-centered .gallery-grid__head li,
.gallery-grid.is-head-centered .gallery-grid__head ul,
.gallery-grid.is-head-centered .gallery-grid__head ol {
	text-align: left; /* akapity i listy — z powrotem do lewej */
}
.gallery-grid__head h2 {
	margin: 0;
	font-family: var(--font-display, Georgia, serif);
	font-size: 40px;
	font-weight: 400;
	line-height: 46px;
	color: var(--black, #1a1a1a);
}
.gallery-grid__groups {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 100%;
	min-width: 0;
}
.gallery-grid__items {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-auto-rows: 150px;
	gap: 8px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.gallery-grid__item {
	position: relative;
	display: block;
	overflow: hidden;
	width: 100%;
	min-width: 0;
	min-height: 0;
}
.gallery-grid__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--t-base, 0.25s);
    scale: 1.01;
}
.gallery-grid__item:hover img { transform: scale(1.04); }
.gallery-grid__items--count-1 {
	grid-template-columns: 1fr;
	grid-auto-rows: 320px;
	grid-template-areas: "a";
}
.gallery-grid__items--count-2 { grid-template-areas: "a b" "a b"; }
.gallery-grid__items--count-3 { grid-template-areas: "a b" "a c"; }
.gallery-grid__items--count-4 { grid-template-areas: "a b" "c d"; }
.gallery-grid__items--count-5 { grid-template-areas: "a b" "a c" "d e"; }
.gallery-grid__items--count-6 { grid-template-areas: "a b" "c b" "d e" "d f"; }
.gallery-grid__item--1 { grid-area: a; }
.gallery-grid__item--2 { grid-area: b; }
.gallery-grid__item--3 { grid-area: c; }
.gallery-grid__item--4 { grid-area: d; }
.gallery-grid__item--5 { grid-area: e; }
.gallery-grid__item--6 { grid-area: f; }
.gallery-grid__cta {
	display: flex;
	justify-content: center;
	margin-top: 32px;
}
.gallery-grid__more {
	cursor: pointer;
	transition: opacity var(--t-base), background-color var(--t-base), color var(--t-base), border-color var(--t-base);
}
.gallery-grid__more.is-loading {
	opacity: 0.55;
	pointer-events: none;
}
@media (min-width: 992px) {
	.gallery-grid { padding: 96px 0; }
	.gallery-grid__head { margin-bottom: 44px; }
	.gallery-grid__head h2 {
		font-size: 54px;
		line-height: 64px;
	}
	.gallery-grid__groups { gap: 10px; }
	.gallery-grid__items {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		grid-auto-rows: 200px;
		gap: 10px;
	}
	.gallery-grid__items--count-1 {
		grid-template-columns: 1fr;
		grid-auto-rows: 520px;
		grid-template-areas: "a";
	}
	.gallery-grid__items--count-2 { grid-template-areas: "a a a b b b" "a a a b b b"; }
	.gallery-grid__items--count-3 { grid-template-areas: "a a a b b b" "a a a c c c"; }
	.gallery-grid__items--count-4 { grid-template-areas: "a a a b b b" "c c c d d d"; }
	.gallery-grid__items--count-5 { grid-template-areas: "a a a b b b" "c c d d e e"; }
	.gallery-grid__items--count-6 { grid-template-areas: "a b b c c c" "d b b e e f"; }
	.gallery-grid__cta { margin-top: 40px; }
}

/* ----------------------------------------------------------------
   Single image
   ---------------------------------------------------------------- */
.single-image { padding: 30px 0; }
.single-image__inner img {
	width: 100%; height: auto; display: block;
}
.single-image.is-narrow .single-image__inner { max-width: 900px; margin: 0 auto; }
.single-image__caption {
	display: block; margin-top: 8px;
	font-size: 13px; color: var(--gray, #777);
	text-align: center;
}

/* ----------------------------------------------------------------
   Newsletter
   ---------------------------------------------------------------- */
.newsletter-block {
	padding: 50px 0;
	background: var(--cream, #f9f4ec);
}
.newsletter-block__inner {
	display: flex; flex-direction: column; gap: 20px;
	max-width: 600px; margin: 0 auto; text-align: center;
}
.newsletter-block__form {
	display: flex; flex-direction: column; gap: 12px;
}
.newsletter-block__form input[type="email"] {
	padding: 14px 18px;
	border: 1px solid rgba(0,0,0,0.15);
	background: var(--white, #fff);
	font-size: 15px; width: 100%;
}
@media (min-width: 992px) {
	.newsletter-block { padding: 80px 0; }
	.newsletter-block__form { flex-direction: row; }
	.newsletter-block__form input[type="email"] { flex: 1 1 auto; }
	.newsletter-block__form .btn { flex-shrink: 0; }
}

/* ----------------------------------------------------------------
   Restaurant menu (taby + lista dań)
   ---------------------------------------------------------------- */
.restaurant-menu {
	position: relative;
	padding: 64px 0;
	background:
		linear-gradient(135deg, rgba(249,244,236,0.92) 0%, rgba(255,255,255,0.98) 52%, rgba(237,224,205,0.55) 100%),
		var(--cream, #f9f4ec);
	overflow: hidden;
	isolation: isolate;
}
.restaurant-menu.has-background {
	color: var(--white, #fff);
	background: var(--black, #000);
}
.restaurant-menu__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.restaurant-menu__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.restaurant-menu__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.52) 0%, rgba(0,0,0,0.34) 48%, rgba(0,0,0,0.68) 100%),
		linear-gradient(90deg, rgba(76,49,40,0.58) 0%, rgba(76,49,40,0.24) 54%, rgba(0,0,0,0.26) 100%);
}
.restaurant-menu.has-overlay-soft .restaurant-menu__overlay {
	background:
		linear-gradient(180deg, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0.22) 48%, rgba(0,0,0,0.55) 100%),
		linear-gradient(90deg, rgba(76,49,40,0.42) 0%, rgba(76,49,40,0.14) 58%, rgba(0,0,0,0.16) 100%);
}
.restaurant-menu.has-overlay-strong .restaurant-menu__overlay {
	background:
		linear-gradient(180deg, rgba(0,0,0,0.68) 0%, rgba(0,0,0,0.44) 48%, rgba(0,0,0,0.78) 100%),
		linear-gradient(90deg, rgba(54,35,29,0.72) 0%, rgba(76,49,40,0.38) 54%, rgba(0,0,0,0.34) 100%);
}
.restaurant-menu__inner {
	position: relative;
	z-index: 1;
	max-width: 100%;
	min-width: 0;
}
.restaurant-menu__head {
	max-width: 740px;
	margin-bottom: 34px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.restaurant-menu__head > * { margin: 0; }
.restaurant-menu__head h2 {
	font-size: 40px;
	line-height: 46px;
}
.restaurant-menu__head p:not(.eyebrow) {
	max-width: 540px;
	color: var(--text-strong, rgba(0,0,0,0.8));
}
.restaurant-menu.has-background .restaurant-menu__head p:not(.eyebrow) {
	color: rgba(255,255,255,0.78);
}
.restaurant-menu.has-background .restaurant-menu__head .eyebrow {
	color: var(--white, #fff);
}
.restaurant-menu__body {
	background: rgba(255,255,255,0.82);
	border: 1px solid rgba(190,146,79,0.18);
	box-shadow: 0 24px 70px rgba(76,49,40,0.11);
	backdrop-filter: blur(16px);
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow: hidden;
}
.restaurant-menu.has-background .restaurant-menu__body {
	background: rgba(20,16,14,0.68);
	border-color: rgba(255,255,255,0.16);
	box-shadow: 0 28px 80px rgba(0,0,0,0.32);
}
.restaurant-menu__tabs-wrap {
	padding: 14px 14px 0;
	border-bottom: 1px solid rgba(0,0,0,0.08);
	min-width: 0;
}
.restaurant-menu.has-background .restaurant-menu__tabs-wrap {
	border-bottom-color: rgba(255,255,255,0.14);
}
.restaurant-menu__tabs {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 14px;
	scrollbar-width: thin;
	max-width: 100%;
	min-width: 0;
}
.restaurant-menu__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	flex: 0 0 auto;
	min-height: 46px;
	padding: 0 18px;
	border: 1px solid rgba(190,146,79,0.22);
	background: rgba(255,255,255,0.62);
	font-family: var(--font-ui, sans-serif);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--gray-warm, #5e5956);
	cursor: pointer;
	transition: background-color var(--t-base, 0.25s), border-color var(--t-base, 0.25s), color var(--t-base, 0.25s);
	white-space: nowrap;
}
.restaurant-menu.has-background .restaurant-menu__tab {
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,255,255,0.16);
	color: rgba(255,255,255,0.75);
}
.restaurant-menu__tab small {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	background: rgba(190,146,79,0.14);
	color: var(--gold, #be924f);
	font-size: 11px;
	line-height: 1;
}
.restaurant-menu__tab:hover,
.restaurant-menu__tab:focus-visible,
.restaurant-menu__tab.is-active {
	background: var(--gold, #be924f);
	border-color: var(--gold, #be924f);
	color: var(--white, #fff);
}
.restaurant-menu__tab:hover small,
.restaurant-menu__tab:focus-visible small,
.restaurant-menu__tab.is-active small {
	background: rgba(255,255,255,0.18);
	color: var(--white, #fff);
}
.restaurant-menu__panels {
	position: relative;
	padding: 26px 18px 30px;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
	transition: height 0.36s ease;
	will-change: height;
}
.restaurant-menu__panel {
	display: block;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
	pointer-events: none;
}
.restaurant-menu__panel[hidden] {
	display: block;
}
.restaurant-menu__panel:not(.is-active) {
	position: absolute;
	inset: 26px 18px 30px;
}
.restaurant-menu__panel.is-active {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s;
	pointer-events: auto;
}
.restaurant-menu__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}
.restaurant-menu__item {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px 16px;
	align-items: baseline;
	min-width: 0;
	min-height: 94px;
	padding: 18px;
	border: 1px solid rgba(76,49,40,0.13);
	background: rgba(255,255,255,0.46);
}
.restaurant-menu.has-background .restaurant-menu__item {
	background: rgba(255,255,255,0.06);
	border-color: rgba(255,255,255,0.15);
}
.restaurant-menu__item-main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}
.restaurant-menu__item-title {
	display: block;
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.2;
	color: inherit;
}
.restaurant-menu__item-desc {
	max-width: 560px;
	font-size: 14px;
	line-height: 20px;
	color: var(--text-muted, rgba(0,0,0,0.6));
}
.restaurant-menu.has-background .restaurant-menu__item-desc {
	color: rgba(255,255,255,0.68);
}
.restaurant-menu__item-price {
	flex-shrink: 0;
	padding-top: 0;
	font-family: var(--font-ui, sans-serif);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	color: var(--gold, #be924f);
	white-space: nowrap;
	text-align: right;
}
.restaurant-menu.is-compact .restaurant-menu__body {
	box-shadow: none;
}
@media (min-width: 992px) {
	.restaurant-menu { padding: 104px 0; }
	.restaurant-menu__head {
		margin-bottom: 44px;
		gap: 16px;
	}
	.restaurant-menu__head h2 {
		font-size: 54px;
		line-height: 64px;
	}
	.restaurant-menu__body {
		display: block;
	}
	.restaurant-menu.is-compact .restaurant-menu__body {
		min-height: 0;
	}
	.restaurant-menu__tabs-wrap {
		padding: 18px 24px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(0,0,0,0.08);
	}
	.restaurant-menu.has-background .restaurant-menu__tabs-wrap {
		border-right-color: transparent;
		border-bottom-color: rgba(255,255,255,0.14);
	}
	.restaurant-menu__tabs {
		flex-direction: row;
		overflow-x: auto;
		padding-bottom: 18px;
	}
	.restaurant-menu__tab {
		width: auto;
		justify-content: center;
		min-height: 50px;
		padding: 0 20px;
	}
	.restaurant-menu__panels {
		padding: 34px;
	}
	.restaurant-menu__panel:not(.is-active) {
		inset: 34px;
	}
	.restaurant-menu__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 18px;
	}
	.restaurant-menu.is-compact .restaurant-menu__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.restaurant-menu__item {
		min-height: 104px;
		padding: 18px 20px;
	}
	.restaurant-menu__item-title {
		font-size: 25px;
	}
	.restaurant-menu__item-price {
		font-size: 20px;
	}
}

@media (min-width: 1280px) {
	.restaurant-menu__list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
	.restaurant-menu.is-compact .restaurant-menu__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* ----------------------------------------------------------------
   Columns block (kolumny z ikonami)
   ---------------------------------------------------------------- */
.columns-block { padding: 50px 0; }
.columns-block__head {
	max-width: 820px;
	margin: 0 auto 36px;
	text-align: center;
}
.columns-block__list {
	display: grid;
	gap: 34px;
	grid-template-columns: 1fr;
}
.columns-block__col {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
	min-width: 0;
}
.columns-block__icon {
	width: 72px;
	height: 72px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--gold);
}
.columns-block__icon img {
	max-width: 100%;
	max-height: 100%;
	height: auto;
	object-fit: contain;
}
.columns-block__content {
	max-width: 320px;
}
.columns-block__content > * + * {
	margin-top: 8px;
}
.columns-block__content h1,
.columns-block__content h2,
.columns-block__content h3,
.columns-block__content h4,
.columns-block__content h5,
.columns-block__content h6 {
	font-size: 24px;
	line-height: 1.18;
}
.columns-block__content h6 {
	font-family: var(--font-ui);
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gold);
}
.columns-block__content p,
.columns-block__content li {
	font-size: 15px;
	line-height: 22px;
	color: var(--text-muted);
}
.columns-block__content ul,
.columns-block__content ol {
	align-items: center;
	padding-left: 0;
	list-style-position: inside;
}
@media (min-width: 992px) {
	.columns-block { padding: 80px 0; }
	.columns-block__head { margin-bottom: 50px; }
	.columns-block__list { gap: clamp(34px, 5vw, 80px); }
	.columns-block.has-2 .columns-block__list { grid-template-columns: repeat(2, 1fr); }
	.columns-block.has-3 .columns-block__list { grid-template-columns: repeat(3, 1fr); }
	.columns-block.has-4 .columns-block__list { grid-template-columns: repeat(4, 1fr); }
	.columns-block__icon {
		width: 86px;
		height: 86px;
	}
	.columns-block__content h1,
	.columns-block__content h2,
	.columns-block__content h3,
	.columns-block__content h4,
	.columns-block__content h5,
	.columns-block__content h6 {
		font-size: 28px;
	}
	.columns-block__content p,
	.columns-block__content li {
		font-size: 16px;
		line-height: 23px;
	}
}

/* ----------------------------------------------------------------
   Download files
   ---------------------------------------------------------------- */
.download-files { padding: 50px 0; }
.download-files__head {
	max-width: 820px;
	margin: 0 0 34px;
}
.download-files__list {
	display: flex; flex-direction: column; gap: 8px;
}
.download-files__item {
	display: flex; align-items: center; gap: 16px;
	padding: 16px 20px;
	border: 1px solid rgba(0,0,0,0.1);
	background: var(--white, #fff);
	color: inherit; text-decoration: none;
	transition: border-color var(--t-fast, 0.15s), background var(--t-fast, 0.15s);
}
.download-files__item:hover {
	border-color: var(--gold, #c9a96e);
	background: var(--cream, #f9f4ec);
}
.download-files__icon {
	flex-shrink: 0; width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--cream, #f9f4ec); color: var(--gold, #c9a96e);
}
.download-files__title { flex: 1 1 auto; font-weight: 500; }
.download-files__meta { flex-shrink: 0; font-size: 12px; color: var(--gray, #777); }
@media (min-width: 992px) {
	.download-files { padding: 80px 0; }
	.download-files__head { margin-bottom: 44px; }
}

/* ----------------------------------------------------------------
   CPT: room single + archive
   ---------------------------------------------------------------- */
.rooms-archive,
.rooms-single { padding: 50px 0; }
.rooms-archive__grid {
	display: grid; gap: 24px;
	grid-template-columns: 1fr;
}
@media (min-width: 992px) {
	.rooms-archive,
	.rooms-single { padding: 80px 0; }
	.rooms-archive__grid { grid-template-columns: repeat(3, 1fr); }
}
.rooms-single__head { margin-bottom: 30px; }
.rooms-single__gallery { margin-bottom: 30px; }
.rooms-single__features {
	display: flex; flex-wrap: wrap; gap: 8px;
	margin: 16px 0;
}
.rooms-single__feature {
	padding: 6px 14px;
	background: var(--cream, #f9f4ec);
	font-size: 13px;
	border-radius: 999px;
}
.rooms-single__price {
	font-family: var(--font-display, serif);
	font-size: 32px;
	color: var(--gold, #c9a96e);
}
.room-single-hero.page-title {
	margin-bottom: 0;
}
.room-single-overview {
	padding: 58px 0;
	background: var(--white, #fff);
}
.room-single-overview__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 34px;
	align-items: start;
}
.room-single-overview__content {
	max-width: 820px;
}
.room-single-overview__panel {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding: 28px;
    background: var(--white, #fff);
    border: 1px solid var(--gold, #be924f);
}
.room-single-overview__price {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(190,146,79,0.28);
}
.room-single-overview__price span {
	font-family: var(--font-ui, sans-serif);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--label-muted, #89847b);
}
.room-single-overview__price strong {
	font-family: var(--font-ui, sans-serif);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.15;
	color: var(--text-strong, #333333);
}
.room-single-overview__features {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.room-single-overview__features h2 {
	margin: 0;
	font-family: var(--font-ui, sans-serif);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--label-muted, #89847b);
}
.room-single-overview__features ul {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.room-single-overview__features li {
	padding: 3px 7px;
	border-radius: 2px;
	background: var(--cream, #f9f4ec);
	font-family: var(--font-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--gold, #be924f);
}
.room-single-overview__panel .btn {
	width: 100%;
	justify-content: center;
}
.room-single-gallery.gallery-grid {
	padding-top: 64px;
}
.room-single-related {
	background: var(--white, #fff);
}
.room-single-related .room-carousel__head {
	margin-bottom: 28px;
}
.room-card h3 a {
	color: inherit;
	text-decoration: none;
}
.room-card h3 a:hover {
	color: var(--gold, #be924f);
}
@media (min-width: 992px) {
	.room-single-overview {
		padding: 90px 0;
	}
	.room-single-overview__layout {
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: 72px;
	}
	.room-single-overview__panel {
		position: sticky;
		top: 120px;
		padding: 34px;
	}
	.room-single-overview__features li {
		font-size: 12px;
	}
	.room-single-overview__price strong {
		font-size: 38px;
	}
	.room-single-gallery.gallery-grid {
		padding-top: 96px;
	}
	.room-single-related .room-carousel__head {
		margin-bottom: 42px;
	}
}

/* ----------------------------------------------------------------
   CPT: offer single + archive
   ---------------------------------------------------------------- */
.offers-archive,
.offers-single { padding: 50px 0; }
.offers-archive__grid {
	display: grid; gap: 24px;
	grid-template-columns: 1fr;
}
.offer-single-hero.page-title {
	margin-bottom: 0;
}
.offer-single-content.text-block {
	padding-top: 42px;
}
.offer-single-content .text-block__content {
	max-width: 860px;
}
.offer-single-content__summary {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
	margin-top: 34px;
	padding-top: 28px;
	border-top: 1px solid rgba(190,146,79,0.34);
}
.offer-single-content__price {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0;
}
.offer-single-content__price span {
	font-family: var(--font-ui, sans-serif);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--label-muted, #89847b);
}
.offer-single-content__price strong {
	font-family: var(--font-ui, sans-serif);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.15;
	color: var(--text-strong, #333333);
}
.offer-single-related {
	background: var(--cream, #f9f4ec);
}
.offer-single-related .offer-carousel__head {
	margin-bottom: 28px;
}
.offer-card h3 a {
	color: inherit;
	text-decoration: none;
}
.offer-card h3 a:hover {
	color: var(--gold, #be924f);
}
@media (min-width: 992px) {
	.offers-archive,
	.offers-single { padding: 80px 0; }
	.offers-archive__grid { grid-template-columns: repeat(3, 1fr); }
	.offer-single-content.text-block {
		padding-top: 58px;
		padding-bottom: 90px;
	}
	.offer-single-content__summary {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
	.offer-single-content__price strong {
		font-size: 38px;
	}
	.offer-single-related .offer-carousel__head {
		margin-bottom: 42px;
	}
}

/* ----------------------------------------------------------------
   Archive page (default)
   ---------------------------------------------------------------- */
.archive-page { padding: 60px 15px; }
.archive-page__head { margin-bottom: 30px; }
.archive-page__list {
	display: grid; gap: 24px;
	grid-template-columns: 1fr;
}
.blog-archive {
	padding: 58px 0 70px;
	background: var(--white, #fff);
}
.blog-archive-hero.page-title,
.blog-single-hero.page-title {
	margin-bottom: 0;
}
.archive-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	border: 1px solid rgba(190,146,79,0.42);
	background: var(--white, #fff);
}
.archive-card__media {
	display: block;
	aspect-ratio: 420 / 286;
	overflow: hidden;
	background: var(--cream, #f9f4ec);
}
.archive-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--t-base, 0.3s);
}
.archive-card__media:hover img {
	transform: scale(1.04);
}
.archive-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 14px;
	padding: 22px;
}
.archive-card__meta {
    margin: 0;
    font-family: var(--font-ui, sans-serif);
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--label-muted, #89847b);
}
.archive-card h2 {
	margin: 0;
	font-family: var(--font-display, Georgia, serif);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.16;
	color: var(--black, #1a1a1a);
}
.archive-card h2 a {
	color: inherit;
	text-decoration: none;
}
.archive-card h2 a:hover {
	color: var(--gold, #be924f);
}
.archive-card p:not(.archive-card__meta) {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--text-muted, #5f5b55);
}
.archive-card__more {
	width: fit-content;
	margin-top: auto;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--gold, #be924f);
	font-family: var(--font-ui, sans-serif);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gold, #be924f);
	text-decoration: none;
}
.archive-card__more:hover {
	color: var(--gold-hover, #a77b3f);
	border-color: var(--gold-hover, #a77b3f);
}
.navigation.pagination {
	margin-top: 42px;
}
.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.navigation.pagination .page-numbers {
	min-width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 14px;
	border: 1px solid rgba(190,146,79,0.42);
	color: var(--black, #1a1a1a);
	text-decoration: none;
	font-family: var(--font-ui, sans-serif);
	font-size: 13px;
	font-weight: 600;
}
.navigation.pagination .page-numbers.current,
.navigation.pagination a.page-numbers:hover {
	background: var(--gold, #be924f);
	border-color: var(--gold, #be924f);
	color: var(--white, #fff);
}
.blog-archive__empty {
	margin: 0;
	text-align: center;
}
@media (min-width: 992px) {
	.archive-page { padding: 100px 0; }
	.archive-page__list { grid-template-columns: repeat(3, 1fr); }
	.blog-archive {
		padding: 92px 0 110px;
	}
	.archive-card__body {
		padding: 28px;
	}
}

/* ----------------------------------------------------------------
   404
   ---------------------------------------------------------------- */
.error-404 {
	min-height: 60vh;
	display: flex; align-items: center; justify-content: center;
	padding: 60px 0;
	text-align: center;
}
.error-404__inner h1 {
	font-family: var(--font-display, serif);
	font-size: 96px; line-height: 1;
	color: var(--gold, #c9a96e);
	margin: 0 0 16px;
}

/* ----------------------------------------------------------------
   Single post (default blog)
   ---------------------------------------------------------------- */
.blog-single-content.text-block {
	padding-top: 28px;
	padding-bottom: 64px;
}
.blog-single-content .text-block__content {
	max-width: 860px;
}
.blog-post-nav {
	padding: 0 0 64px;
	background: var(--white, #fff);
}
.blog-post-nav__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
.blog-post-nav__item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 118px;
    padding: 22px;
    border: 1px solid rgba(190, 146, 79, 0.42);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--t-fast, 0.15s), background var(--t-fast, 0.15s);
}
.blog-post-nav__item:hover {
	border-color: var(--gold, #be924f);
	background: var(--white, #fff);
}
.blog-post-nav__item span {
	font-family: var(--font-ui, sans-serif);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gold, #be924f);
}
.blog-post-nav__item strong {
	font-family: var(--font-display, Georgia, serif);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.18;
	color: var(--black, #1a1a1a);
}
.blog-post-nav__item--next {
	text-align: right;
	align-items: flex-end;
}
.blog-post-nav__item.is-empty {
	display: none;
}
.blog-read-also {
	padding: 64px 0 76px;
	background: var(--cream, #f9f4ec);
}
.blog-read-also__head {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 30px;
}
.blog-read-also__head h2 {
	margin: 0;
	font-family: var(--font-display, Georgia, serif);
	font-size: 40px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--black, #1a1a1a);
}
@media (min-width: 992px) {
	.blog-single-content.text-block {
		padding-top: 40px;
		padding-bottom: 86px;
	}
	.blog-post-nav {
		padding-bottom: 86px;
	}
	.blog-post-nav__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.blog-post-nav__item {
		padding: 28px;
	}
	.blog-post-nav__item.is-empty {
		display: block;
		visibility: hidden;
	}
	.blog-read-also {
		padding: 92px 0 104px;
	}
	.blog-read-also__head {
		margin-bottom: 42px;
	}
	.blog-read-also__head h2 {
		font-size: 54px;
		line-height: 1.08;
	}
}

/* ----------------------------------------------------------------
   ENTRANCE ANIMATIONS (z global_rules.md)
   ---------------------------------------------------------------- */
.fade-in,
.fade-up,
.fade-left,
.fade-right {
	opacity: 0;
	transition-property: opacity, transform;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	transition-duration: 600ms;
}
.fade-in    { transform: translate3d(0, 0, 0); }
.fade-up    { transform: translate3d(0, 32px, 0); }
.fade-left  { transform: translate3d(-40px, 0, 0); }
.fade-right { transform: translate3d(40px, 0, 0); }

.fade-in.is-animated,
.fade-up.is-animated,
.fade-left.is-animated,
.fade-right.is-animated {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.offer-card.fade-up,
.room-card.fade-up {
	transition:
		opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 600ms cubic-bezier(0.22, 1, 0.36, 1),
		background-color var(--t-base);
}

.fade-in[data-delay],
.fade-up[data-delay],
.fade-left[data-delay],
.fade-right[data-delay] {
	transition-delay: var(--anim-delay, 0ms);
}

@media (prefers-reduced-motion: reduce) {
	.fade-in, .fade-up, .fade-left, .fade-right {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ----------------------------------------------------------------
   Contact Centered block
   ---------------------------------------------------------------- */
.contact-centered {
	overflow: hidden;
	background: var(--cream);
	padding: 60px 0;
}
.contact-centered__header {
	text-align: center;
	max-width: 680px;
	margin: 0 auto 40px;
}
.contact-centered__header > * { margin: 0; }
.contact-centered__header > * + * { margin-top: 16px; }
.contact-centered__header h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 40px;
	line-height: 46px;
	color: var(--black);
}
.contact-centered__header p {
	font-size: 14px;
	line-height: 20px;
	color: var(--text-muted);
}
.contact-centered__form {
	max-width: 760px;
	margin: 0 auto;
}
.contact-centered__form .wpcf7 { width: 100%; }

@media (min-width: 992px) {
	.contact-centered {
		padding: 100px 0;
	}
	.contact-centered__header {
		margin-bottom: 60px;
	}
	.contact-centered__header h2 {
		font-size: 54px;
		line-height: 64px;
	}
	.contact-centered__header p {
		font-size: 16px;
		line-height: 22px;
	}
	.contact-centered__form .ha-contact-form__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px;
	}
}

/* ----------------------------------------------------------------
   Gallery Rows block
   ---------------------------------------------------------------- */
.gallery-rows {
	padding: 56px 0;
	background: var(--white, #fff);
}

/* Nagłówek — identyczny styl jak w gallery-grid */
.gallery-rows__head {
	max-width: 760px;
	margin-bottom: 34px;
}
.gallery-rows__head h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 40px;
	line-height: 46px;
	color: var(--black);
}

/* Wiersze */
.gallery-rows__rows {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Etykieta wiersza */
.gallery-rows__row-label {
	font-family: var(--font-ui);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gray);
	margin: 0 0 10px;
}

/* Siatka w wierszu — auto-kolumny: ile obrazków, tyle kolumn */
.gallery-rows__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr); /* mobile: 2 kolumny */
	gap: 8px;
}

/* Kafelek — brak przycinania, pełen obrazek */
.gallery-rows__item {
	display: block;
	overflow: hidden;
}
.gallery-rows__item img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform var(--t-base, 0.25s);
}
.gallery-rows__item:hover img {
	transform: scale(1.03);
}

@media (min-width: 992px) {
	.gallery-rows {
		padding: 96px 0;
	}
	.gallery-rows__head {
		margin-bottom: 44px;
	}
	.gallery-rows__head h2 {
		font-size: 54px;
		line-height: 64px;
	}
	.gallery-rows__rows {
		gap: 24px;
	}

	/* Desktop: tyle kolumn ile obrazków w wierszu (przez CSS var --row-cols ustawioną w PHP) */
	.gallery-rows__grid {
		grid-template-columns: repeat(var(--row-cols, 4), 1fr);
		gap: 20px;
	}
}

@media (min-width: 1360px) {
	 .features-block__label {
        white-space: nowrap;
    }
}

/* ----------------------------------------------------------------
   Reviews - collapse/expand behavior like SecondHair, Hotel Alpin skin
   ---------------------------------------------------------------- */
.reviews__swiper .swiper-wrapper {
	align-items: flex-start;
}

.reviews,
.reviews__swiper {
	overflow: visible;
}

.reviews__swiper {
	clip-path: inset(-120px 0 -900px 0);
}

.review-card {
	position: relative;
	z-index: 1;
	display: block !important;
	min-height: 0;
	padding: 0;
	overflow: visible;
	background: none;
	transition: transform 260ms ease;
}

.review-card::after {
	display: block;
	height: 258px;
	visibility: hidden;
	content: "";
	pointer-events: none;
}

.review-card__cap {
	position: absolute;
	inset: 0 auto auto 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	min-height: 258px;
	padding: 20px 25px;
	overflow: hidden;
	background: var(--cream);
	transition: box-shadow 260ms ease, transform 260ms ease;
}

.review-card:hover,
.review-card:focus-within,
.review-card.is-open {
	z-index: 20;
	transform: translateY(-6px);
}

.review-card__content {
	--review-collapsed-height: 132px;
	flex: 1;
	position: relative;
	max-height: var(--review-collapsed-height);
	overflow: hidden;
	transition: max-height 350ms ease;
}

.review-card:hover .review-card__content,
.review-card:focus-within .review-card__content,
.review-card.is-open .review-card__content {
	max-height: 620px;
	overflow: visible;
}

.review-card__content p {
	margin: 0;
}

.review-card.is-expandable:not(:hover):not(:focus-within):not(.is-open) .review-card__content p {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
}

.review-card:hover .review-card__content p,
.review-card:focus-within .review-card__content p,
.review-card.is-open .review-card__content p {
	display: block;
}

.review-card__more {
	display: none;
	align-items: center;
	gap: 8px;
	padding: 0;
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	color: var(--gold);
	background: none;
	border: 0;
	cursor: pointer;
}

.review-card__more .review-card__more-text {
	display: inline;
	width: auto;
	height: auto;
	border: 0;
	border-radius: 0;
	font-size: inherit;
	line-height: inherit;
}

.review-card__more:hover,
.review-card__more:focus-visible {
	color: var(--gold-hover);
}

.review-card__more:focus-visible {
	outline: 2px solid var(--gold);
	outline-offset: 4px;
}

.review-card:not(.is-expandable) footer {
	justify-content: flex-end;
}

.review-card__more .review-card__more-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	transition: transform 220ms ease;
}

.review-card.is-open .review-card__more-icon,
.review-card:hover .review-card__more-icon,
.review-card:focus-within .review-card__more-icon {
	transform: rotate(45deg);
}

@media (max-width: 991.98px) {
	.review-card:hover,
	.review-card:focus-within,
	.review-card.is-open {
		transform: none;
	}

	.review-card::after {
		display: none;
	}

	.review-card__cap {
		position: static;
		width: auto;
		min-height: 258px;
	}

	.review-card__content,
	.review-card:hover .review-card__content,
	.review-card:focus-within .review-card__content {
		max-height: var(--review-collapsed-height);
		overflow: hidden;
	}

	.review-card.is-open .review-card__content {
		max-height: 1500px;
		overflow: visible;
	}

	.review-card.is-expandable:not(.is-open) .review-card__content p {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 6;
	}

	.review-card.is-open .review-card__content p {
		display: block;
	}

	.review-card.is-expandable .review-card__more {
		display: inline-flex;
	}
}

@media (min-width: 992px) {
	.review-card__cap {
		gap: 30px;
		padding: 30px;
	}

	.review-card footer {
		justify-content: flex-end;
	}
}

/* ----------------------------------------------------------------
   ACF block preview - drobne adjusty (zeby bloki dobrze wygladaly w edytorze)
   ---------------------------------------------------------------- */
.block-editor-block-list__layout .hero-block,
.block-editor-block-list__layout .cta-wedding,
.block-editor-block-list__layout .cta-booking,
.block-editor-block-list__layout .restaurant-cta {
	min-height: 300px;
}

/* ----------------------------------------------------------------
   Single pokój – eyebrow jako link powrotu (ze strzałką)
   ---------------------------------------------------------------- */
.eyebrow--back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	color: var(--gold);
	transition: opacity var(--t-base, 0.25s);
}
.eyebrow--back:hover,
.eyebrow--back:focus-visible {
	color: var(--gold);
	opacity: 0.75;
}
.eyebrow--back .eyebrow__chevron {
	width: 10px;
	height: auto;
	color: currentColor;
	transform: rotate(90deg);
	flex: 0 0 auto;
}

/* ----------------------------------------------------------------
   Wedding Menu Block
   ---------------------------------------------------------------- */
.wedding-menu-block {
	padding: 50px 0;
}

.wedding-menu-block__top {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	margin-bottom: 40px;
}

.wedding-menu-block__heading {
	flex: 0 1 600px;
	min-width: 0;
	text-align: center;
}

.wedding-menu-block__heading > * {
	margin-bottom: 0;
}

/* Wyeksponuj tytuł w bloku menu weselnego */
.wedding-menu-block__heading h2,
.wedding-menu-block__heading h3 {
	font-size: clamp(22px, 3vw, 36px);
	letter-spacing: 0.04em;
}

.wedding-menu-block__thumb {
	flex: 0 0 auto;
	margin: 0;
	width: 130px;
	height: 130px;
	border-radius: 8px;
	overflow: hidden;
}

.wedding-menu-block__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.wedding-menu-block__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

/* Karta zestawu */
.wedding-menu-card {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(190, 146, 79, 0.3);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}

.wedding-menu-card__header {
	padding: 20px 22px 16px;
	border-bottom: 1px solid rgba(190, 146, 79, 0.2);
}

.wedding-menu-card__title {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--dark, #1a1a1a);
}

.wedding-menu-card__price {
	font-size: 15px;
	font-weight: 700;
	color: var(--gold, #be924f);
	margin: 0 0 4px;
}

.wedding-menu-card__price-note {
	font-size: 12px;
	color: var(--gold, #be924f);
	opacity: 0.8;
	margin: 0;
}

.wedding-menu-card__body {
	padding: 18px 22px;
	overflow-y: auto;
	max-height: 340px;
	font-size: 13px;
	line-height: 1.65;
	/* scrollbar subtelny */
	scrollbar-width: thin;
	scrollbar-color: rgba(190, 146, 79, 0.4) transparent;
}

.wedding-menu-card__body::-webkit-scrollbar {
	width: 4px;
}

.wedding-menu-card__body::-webkit-scrollbar-track {
	background: transparent;
}

.wedding-menu-card__body::-webkit-scrollbar-thumb {
	background: rgba(190, 146, 79, 0.4);
	border-radius: 2px;
}

/* Nagłówki sekcji w treści karty (H6 lub strong w edytorze) */
.wedding-menu-card__body h6,
.wedding-menu-card__body strong {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dark, #1a1a1a);
	margin: 14px 0 4px;
}

.wedding-menu-card__body h6:first-child,
.wedding-menu-card__body p:first-child strong:only-child {
	margin-top: 0;
}

.wedding-menu-card__body p {
	margin: 0 0 4px;
}

@media (min-width: 992px) {
	.wedding-menu-block {
		padding: 80px 0;
	}

	.wedding-menu-block__top {
		margin-bottom: 50px;
		gap: 40px;
	}

	.wedding-menu-block__thumb {
		width: 175px;
		height: 175px;
	}

	.wedding-menu-block__grid {
		grid-template-columns: 1fr 1fr;
		gap: 28px;
	}

	.wedding-menu-card__body {
		max-height: 380px;
	}
}

/* ===========================
   ZAPYTAJ O TERMIN (date-form-block)
   Dyskretny, kompaktowy, dwukrokowy formularz CF7.
   Mobile-first; desktop w jednej media query na końcu pliku.
   =========================== */
.date-form-block {
	margin-top: 20px;
	margin-bottom: 20px;
}
.date-form-block__inner {
	max-width: 560px;
	margin: 0 auto;
	padding: 22px;
	background: var(--cream);
	border: 1px solid var(--gold-light);
	transition: padding-bottom var(--t-base);
}
/* Krok 1 bez przycisku — mniejszy padding dolny */
.date-form-block__inner.is-compact { padding-bottom: 14px; }
.date-form-block__head {
	margin-bottom: 14px;
	text-align: center;
}
.date-form-block__title {
	font-size: 22px;
	line-height: 1.2;
	color: var(--gold);
}
.date-form-block__placeholder {
	margin: 0;
	font-size: 13px;
	color: var(--gray);
	text-align: center;
}

/* Layout kroków (CF7 markup z [data-date-form]) */
.date-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.date-form__step {
	display: flex;
	flex-direction: column;
}
/* Odstępy tylko między polami kroku 2 */
.date-form__step[data-df-step="2"] { gap: 10px; }
.date-form__step[hidden] { display: none; }

/* CF7 owija pola w jeden <p> (rozdzielony <br>), więc gap flexa ich nie dotyka.
   Pola robimy blokowe i dajemy 10px odstępu między kolejnymi polami. */
.date-form .wpcf7-form-control-wrap { display: block; width: 100%; }
.date-form__step[data-df-step="2"] .wpcf7-form-control-wrap ~ .wpcf7-form-control-wrap { margin-top: 10px; }

/* Ikona jest tłem inputa — ukryj ewentualny stary inline SVG z markupu CF7 */
.date-form .date-form__icon { display: none !important; }

/* Ikona kalendarza w polu kroku 1 — jako tło inputa, odporna na markup CF7 (<p>/<br>). */
.date-form__step[data-df-step="1"] input[type="text"],
.date-form__field input:not([type="submit"]) {
	padding-left: 44px;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23be924f%22%3E%3Cpath%20d%3D%22M5.30775%2021.5C4.80258%2021.5%204.375%2021.325%204.025%2020.975C3.675%2020.625%203.5%2020.1974%203.5%2019.6923V6.30777C3.5%205.8026%203.675%205.37502%204.025%205.02502C4.375%204.67502%204.80258%204.50002%205.30775%204.50002H6.69225V2.38477H8.23075V4.50002H15.8077V2.38477H17.3077V4.50002H18.6923C19.1974%204.50002%2019.625%204.67502%2019.975%205.02502C20.325%205.37502%2020.5%205.8026%2020.5%206.30777V11.3078H19V10.3078H5V19.6923C5%2019.7693%205.03208%2019.8398%205.09625%2019.9038C5.16025%2019.9679%205.23075%2020%205.30775%2020H11.923V21.5H5.30775ZM5%208.80777H19V6.30777C19%206.23077%2018.9679%206.16026%2018.9038%206.09626C18.8398%206.0321%2018.7692%206.00002%2018.6923%206.00002H5.30775C5.23075%206.00002%205.16025%206.0321%205.09625%206.09626C5.03208%206.16026%205%206.23077%205%206.30777V8.80777ZM14.1155%2021.5V18.8578L19.5443%2013.4538C19.6686%2013.3294%2019.8032%2013.2419%2019.948%2013.1913C20.0928%2013.1408%2020.2377%2013.1155%2020.3827%2013.1155C20.5378%2013.1155%2020.6893%2013.1449%2020.8375%2013.2038C20.9855%2013.2628%2021.1185%2013.3513%2021.2365%2013.4693L22.1615%2014.4038C22.2692%2014.5283%2022.3525%2014.6629%2022.4115%2014.8078C22.4705%2014.9526%2022.5%2015.0974%2022.5%2015.2423C22.5%2015.3871%2022.4731%2015.5345%2022.4193%2015.6845C22.3654%2015.8345%2022.2795%2015.9717%2022.1615%2016.096L16.7578%2021.5H14.1155ZM15.3077%2020.3078H16.2578L19.5038%2017.046L19.0443%2016.571L18.5788%2016.102L15.3077%2019.3578V20.3078ZM19.0443%2016.571L18.5788%2016.102L19.5038%2017.046L19.0443%2016.571Z%22%2F%3E%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: 14px center;
	background-size: 20px 20px;
}

/* Pola */
.date-form input:not([type="submit"]),
.date-form textarea {
	width: 100%;
	border: 1px solid rgba(0, 0, 0, 0.18);
	background: var(--white);
	color: var(--black);
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.35;
	padding: 11px 14px;
	transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.date-form input:not([type="submit"]) { height: 48px; }
.date-form textarea {
	min-height: 96px;
	height: 96px;
	resize: vertical;
}
.date-form input:not([type="submit"]):focus,
.date-form textarea:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 2px rgba(190, 146, 79, 0.15);
}
.date-form input::placeholder,
.date-form textarea::placeholder { color: var(--gray); opacity: 1; }

/* Przycisk "Dalej" — pojawia się dopiero po wpisaniu treści.
   Domyślnie zwinięty (height:0), więc nie rezerwuje miejsca pod polem. */
.date-form__next {
	align-self: flex-end;
	height: 0;
	min-width: 140px;
	padding: 0 24px;
	margin: 0;
	border-width: 0;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	transition: height var(--t-base), margin var(--t-base), opacity var(--t-base);
}
.date-form__next.is-visible {
	height: 44px;
	margin-top: 12px;
	border-width: 1px;
	opacity: 1;
	pointer-events: auto;
}

/* Akcje kroku 2: Wróć / Wyślij */
.date-form__actions {
	display: flex;
	gap: 12px;
	align-items: stretch;
}
.date-form__actions .date-form__back {
	flex: 0 0 auto;
	height: 44px;
	min-width: 110px;
	padding: 0 20px;
}
.date-form__actions .wpcf7-submit,
.date-form__actions input[type="submit"] {
	flex: 1 1 auto;
	height: 44px;
	min-width: 0;
	padding: 0 24px;
}

/* Komunikaty CF7 — kompaktowo, spójnie z resztą */
.date-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	color: #b3261e;
}
.date-form-block .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 10px 14px;
	font-size: 13px;
	line-height: 1.4;
}
.date-form-block .wpcf7 form.invalid .wpcf7-response-output,
.date-form-block .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #b3261e; }
.date-form-block .wpcf7 form.sent .wpcf7-response-output { border-color: var(--gold); color: var(--gray-warm); }
.date-form-block .wpcf7-spinner { margin: 8px auto 0; }
/* CF7 wstawia <br> i <p> — chowamy, layout robi flex/gap */
.date-form br { display: none; }
.date-form p { margin: 0; }

@media (min-width: 992px) {
	.date-form-block {
		margin-top: 40px;
		margin-bottom: 40px;
	}
	.date-form-block__inner {
		padding: 28px 32px;
	}
	.date-form-block__inner.is-compact { padding-bottom: 18px; }
	.date-form-block__title {
		font-size: 24px;
	}
}
