:root {
	--accent: #b88c2a;
	--accent-deep: #8f6a19;
	--accent-soft: #fff3db;
	--bg: #fffdfa;
	--container: 1160px;
	--dark: #2b2b2b;
	--line: #eadfca;
	--muted: #6e6559;
	--radius: 20px;
	--shadow-card: 0 10px 25px #0000000d;
	--shadow-soft: 0 16px 40px #71581d14;
	--space-1: .5rem;
	--space-2: 1rem;
	--space-3: 1.5rem;
	--space-4: 2rem;
	--space-5: 3rem;
	--space-6: 4rem;
	--surface: #ffffff;
	--surface-soft: #fff8ed;
}
:root body {
	transition: opacity 300ms;
}
:root.waiting body {
	opacity: .2;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
a {
	color: inherit;
	text-decoration: none;
}
body {
	background: linear-gradient(180deg, #fbf7f0 0%, var(--bg) 100%);
	color: var(--dark);
	font-family: Georgia, 'Times New Roman', serif;
	line-height: 1.65;
	margin: 0;
}
body.no-scroll {
	overflow: hidden;
}
button {
	background: none;
	border: none;
	font: inherit;
}
h1,
h2,
h3,
p,
ul {
	margin: 0;
}
html {
	scroll-behavior: smooth;
}
img,
svg {
	display: block;
	max-width: 100%;
}
input,
textarea {
	background: #fffdfa;
	border: 1px solid var(--line);
	border-radius: 14px;
	color: var(--dark);
	padding: .9rem 1rem;
	width: 100%;
}
label {
	display: block;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .06em;
	margin-bottom: .35rem;
	text-transform: uppercase;
}
textarea {
	min-height: 12rem;
	resize: vertical;
}
ul {
	padding: 0;
}
.btn {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .9rem;
	font-weight: 700;
	gap: .5rem;
	justify-content: center;
	min-height: 48px;
	padding: 0 1.25rem;
}
.btn--ghost {
	background: #ffffffc7;
	border: 1px solid var(--line);
}
.btn--primary {
	background: var(--accent);
	color: #ffffff;
}
.card h3,
.panel h3 {
	color: var(--accent-deep);
	font-size: 1.2rem;
	margin-bottom: .7rem;
}
.card p + p,
.panel p + p {
	margin-top: .8rem;
}
.card,
.panel {
	padding: 1.4rem;
}
.card-stack,
.feature-grid {
	display: grid;
	gap: 1rem;
}
.contact-card {
	align-items: center;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
	padding: clamp(1.5rem, 3vw, 2.5rem);
}
.contact-card__actions {
	display: grid;
	gap: 1rem;
	justify-items: start;
}
.contact-layout {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
}
.contact-panel,
.form-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 1.5rem;
}
.container {
	margin: 0 auto;
	max-width: var(--container);
	padding: 0 var(--space-3);
}
.cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: .9rem;
}
.error-page {
	min-height: 70vh;
	padding: 5rem 0;
}
.error-page__inner {
	display: grid;
	gap: 1rem;
	max-width: 40rem;
}
.feature-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.form-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-bottom: 1rem;
}
.form-grid__full {
	grid-column: 1 / -1;
}
.gallery-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 1rem;
}
.gallery-grid img {
	border-radius: 16px;
	height: 220px;
	object-fit: cover;
	width: 100%;
}
.gallery-grid--wide {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 1.5rem;
}
.hero {
	padding: 4.5rem 0 3rem;
}
.hero h1 {
	font-size: clamp(2.5rem, 6vw, 5rem);
	line-height: .95;
}
.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .9rem;
}
.hero__card {
	align-self: end;
	padding: 1.5rem;
}
.hero__card h2 {
	font-size: 1.2rem;
	margin-bottom: 1rem;
}
.hero__card li,
.check-list li {
	padding-left: 1.6rem;
	position: relative;
}
.hero__card li::before,
.check-list li::before {
	color: var(--accent);
	content: '•';
	font-size: 1.2rem;
	left: 0;
	position: absolute;
	top: -.1rem;
}
.hero__card ul,
.check-list {
	display: grid;
	gap: .8rem;
	list-style: none;
}
.hero__card,
.card,
.panel,
.contact-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
}
.hero__copy {
	display: grid;
	gap: 1.15rem;
}
.hero__inner {
	background: radial-gradient(circle at top left, #fff3db 0%, #f5ead5 38%, #fffdfa 100%);
	border: 1px solid var(--line);
	border-radius: 32px;
	box-shadow: var(--shadow-soft);
	display: grid;
	gap: var(--space-4);
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, .9fr);
	padding: clamp(1.5rem, 3vw, 3rem);
}
.hero__lead {
	color: var(--muted);
	font-size: 1.08rem;
	max-width: 40rem;
}
.hero__media img {
	border-radius: 24px;
	box-shadow: var(--shadow-card);
	height: 100%;
	object-fit: cover;
	width: 100%;
}
.lang-switch {
	display: flex;
	gap: .35rem;
}
.lang-switch a {
	border: 1px solid var(--line);
	border-radius: 999px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .08em;
	padding: .45rem .7rem;
	text-transform: uppercase;
}
.lang-switch a.active {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}
.lead {
	color: var(--muted);
	font-size: 1.08rem;
}
.media-card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}
.media-card img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}
.mobile-nav {
	background: #fffdfb;
	border-bottom: 1px solid var(--line);
	display: none;
}
.mobile-nav.is-open {
	display: block;
}
.mobile-nav__inner {
	padding: 0 var(--space-3) var(--space-3);
}
.mobile-nav__inner ul {
	align-items: flex-start;
	flex-direction: column;
	gap: .3rem;
}
.mobile-nav__lang {
	padding: 1rem 0 .8rem;
}
.narrow {
	max-width: 860px;
}
.page-hero {
	padding: 3.5rem 0 2rem;
}
.profile-grid {
	grid-template-columns: 1fr;
}
.prose-pre {
	white-space: pre-wrap;
}
.section {
	padding: var(--space-6) 0;
}
.section--contact {
	padding-bottom: 5rem;
}
.section--soft {
	background: linear-gradient(180deg, #fffaf2 0%, #fffdf8 100%);
}
.section-grid {
	align-items: start;
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.section-heading {
	display: grid;
	gap: .6rem;
	margin-bottom: 1.5rem;
	max-width: 42rem;
}
.section-heading h2,
.section-grid h2,
.contact-card h2,
.error-page h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1;
}
.section__eyebrow,
.hero__eyebrow {
	color: var(--accent-deep);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
}
.site-brand {
	align-items: center;
	display: inline-flex;
	gap: var(--space-2);
}
.site-brand__logo {
	border-radius: 14px;
	box-shadow: inset 0 0 0 1px #eadfca;
	display: inline-flex;
	padding: .25rem;
}
.site-brand__logo svg {
	height: 56px;
	width: 56px;
}
.site-brand__text {
	display: grid;
	gap: .15rem;
}
.site-brand__text small {
	color: var(--muted);
	font-size: .82rem;
}
.site-brand__text strong {
	font-size: 1.2rem;
	font-weight: 700;
}
.site-footer {
	border-top: 1px solid var(--line);
	padding: 1.5rem 0 2rem;
}
.site-footer__inner {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
}
.site-footer__meta {
	color: var(--muted);
	display: grid;
	gap: .35rem;
	justify-items: end;
	text-align: right;
}
.site-header {
	backdrop-filter: blur(14px);
	background: #fffffff0;
	border-bottom: 1px solid #f1e6d4;
	position: sticky;
	top: 0;
	z-index: 20;
}
.site-header__actions {
	align-items: center;
	display: flex;
	gap: .75rem;
}
.site-nav a,
.mobile-nav__inner a {
	font-family: Arial, Helvetica, sans-serif;
	font-size: .83rem;
	font-weight: 700;
	letter-spacing: .08em;
	padding: .45rem 0;
	text-transform: uppercase;
}
.site-nav a.active,
.site-nav a:hover,
.mobile-nav__inner a:hover {
	color: var(--accent);
}
.site-nav ul,
.mobile-nav__inner ul {
	align-items: center;
	display: flex;
	gap: 1rem;
	list-style: none;
}
.site-nav__toggle {
	display: none;
	height: 48px;
	padding: .4rem;
	width: 48px;
}
.site-nav__toggle span {
	background: var(--dark);
	border-radius: 999px;
	display: block;
	height: 2px;
	margin: 7px 0;
	width: 24px;
}
.teaser-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.teaser-grid,
.profile-grid,
.gallery-grid {
	display: grid;
	gap: 1rem;
}
.topbar {
	align-items: center;
	display: flex;
	gap: var(--space-2);
	justify-content: space-between;
	min-height: 88px;
}
@media (max-width: 720px){
	.btn {
		width: 100%;
	}
	.contact-card__actions {
		justify-items: stretch;
	}
	.container {
		padding: 0 1rem;
	}
	.hero {
		padding-top: 2.5rem;
	}
	.site-brand__text small {
		display: none;
	}
	.site-footer__meta {
		justify-items: start;
		text-align: left;
	}
	.topbar {
		min-height: 76px;
	}
}
@media (max-width: 980px){
	.contact-layout,
	.teaser-grid,
	.gallery-grid,
	.gallery-grid--wide,
	.form-grid {
		grid-template-columns: 1fr;
	}
	.hero__inner,
	.section-grid,
	.feature-grid,
	.contact-card {
		grid-template-columns: 1fr;
	}
	.site-nav {
		display: none;
	}
	.site-nav__toggle {
		display: inline-block;
	}
}