.ts-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(255, 252, 248, 0.94);
	box-shadow: 0 8px 24px rgba(60, 30, 10, 0.04);
}

body.admin-bar .ts-header {
	top: 32px;
}

.ts-nav__list a {
	font-size: 14px;
	letter-spacing: 0.03em;
}

.ts-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.85fr);
	gap: 36px;
	align-items: center;
	padding: 28px 0 12px;
}

.ts-hero__copy {
	position: relative;
	padding-top: 6px;
}

.ts-hero__eyebrow {
	margin: 0;
	padding-left: 36px;
	color: var(--ts-button);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

body[class*="elementor-kit-"] {
	--e-global-typography-primary-font-family: var(--ts-font-display);
	--e-global-typography-secondary-font-family: var(--ts-font-display);
	--e-global-typography-text-font-family: var(--ts-font-body);
	--e-global-typography-accent-font-family: var(--ts-font-display);
}

.elementor-widget-heading .elementor-heading-title {
	color: var(--ts-ink);
	font-family: var(--ts-font-display);
}

.elementor-widget-text-editor {
	font-family: var(--ts-font-body);
	color: var(--ts-ink);
}

.ts-hero__title {
	margin: 8px 0 12px;
	color: var(--ts-ink);
	font-family: var(--ts-font-display);
	font-size: clamp(2.6rem, 6vw, 4.6rem);
	font-weight: 560;
	line-height: 1.02;
}

.ts-hero__text {
	max-width: 38rem;
	margin: 0;
	font-size: 1.08rem;
}

.ts-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 22px;
}

.ts-hero__media {
	position: relative;
	min-height: 280px;
}

.ts-deco {
	position: absolute;
	display: block;
	pointer-events: none;
}

.ts-deco__svg {
	display: block;
	width: 100%;
	height: auto;
}

.ts-deco--heart {
	top: -12px;
	right: 8%;
	z-index: 2;
	width: 42px;
	color: #a84b4b;
}

.ts-deco--leaf {
	top: 2px;
	left: 0;
	width: 28px;
	color: #6d8f62;
}

.ts-polaroid {
	margin: 0;
	padding: 12px 12px 18px;
	background: #fff;
	border-radius: 4px;
	box-shadow: var(--ts-shadow);
}

.ts-polaroid--left {
	transform: rotate(-2.5deg);
}

.ts-polaroid--right {
	transform: rotate(2.5deg);
}

.ts-polaroid img,
.ts-polaroid__placeholder {
	display: block;
	width: 100%;
	height: 320px;
	object-fit: cover;
	background: var(--ts-beige);
}

.ts-polaroid__placeholder {
	display: flex;
	align-items: flex-end;
	padding: 16px;
	color: var(--ts-coffee);
	font-family: var(--ts-font-display);
	font-size: 2rem;
}

.ts-polaroid figcaption {
	margin-top: 10px;
	text-align: center;
	font-family: var(--ts-font-display);
}

.ts-brush {
	width: min(240px, 55%);
	margin: 8px 0 20px;
	color: var(--ts-button);
}

.ts-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ts-info-card {
	position: relative;
	padding: 22px 20px 18px;
	background: var(--ts-card);
	border-radius: var(--ts-radius);
	box-shadow: var(--ts-shadow);
}

.ts-info-card h3 {
	margin: 8px 0;
	color: var(--ts-coffee);
	font-family: var(--ts-font-display);
	font-size: 1.5rem;
}

.ts-info-card p {
	margin: 0;
}

.ts-info-card__mark {
	display: block;
	width: 22px;
	color: #a84b4b;
}

.ts-gallery figure {
	padding: 10px 10px 16px;
	transform: rotate(-1.5deg);
}

.ts-gallery figure:nth-child(even) {
	transform: rotate(1.5deg);
}

.ts-product {
	border-radius: 18px;
}

.ts-product__allergens {
	color: var(--ts-coffee);
	font-size: 0.92rem;
}

.ts-contact__address {
	display: grid;
	gap: 4px;
	font-style: normal;
	margin-bottom: 16px;
}

.ts-zones {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ts-search {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin: 8px 0 20px;
}

.ts-search input[type="search"] {
	min-width: min(100%, 320px);
	padding: 12px 16px;
	border: 1px solid var(--ts-line);
	border-radius: var(--ts-radius-pill);
	background: var(--ts-white);
	color: var(--ts-ink);
	font: inherit;
}

.ts-search__results ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ts-search__results li {
	padding: 10px 0;
	border-bottom: 1px solid var(--ts-line);
}

.ts-search__results a {
	color: var(--ts-ink);
	font-family: var(--ts-font-display);
	font-size: 1.3rem;
	text-decoration: none;
}

@media (max-width: 782px) {
	body.admin-bar .ts-header {
		top: 46px;
	}
}

@media (max-width: 900px) {
	.ts-hero,
	.ts-cards,
	.ts-zones {
		grid-template-columns: 1fr;
	}

	.ts-polaroid--left,
	.ts-polaroid--right,
	.ts-gallery figure,
	.ts-gallery figure:nth-child(even) {
		transform: none;
	}

	.ts-polaroid img,
	.ts-polaroid__placeholder {
		height: 240px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ts-polaroid--left,
	.ts-polaroid--right,
	.ts-gallery figure {
		transform: none;
	}
}
