:root {
	--color-primary: #1F1A17;
	--color-secondary: #2D2520;
	--color-cream: #F7F1E8;
	--color-beige: #E8D9C6;
	--color-gold: #B58B4A;
	--color-terracotta: #A85D3B;
	--color-text: #241F1B;
	--color-muted: #746C65;
	--color-white: #FFFFFF;
	--font-heading: "Playfair Display", Georgia, serif;
	--font-body: "Inter", Arial, sans-serif;
	--header-height: 82px;
	--shadow-soft: 0 24px 70px rgba(31, 26, 23, 0.14);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-cream);
	color: var(--color-text);
	font-family: var(--font-body);
	line-height: 1.6;
}

a {
	color: inherit;
	text-decoration-color: rgba(181, 139, 74, 0.55);
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--color-terracotta);
}

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

button,
a {
	-webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 3px solid var(--color-gold);
	outline-offset: 4px;
}

.rec-skip-link {
	background: var(--color-gold);
	color: var(--color-primary);
	left: 1rem;
	padding: 0.75rem 1rem;
	position: fixed;
	top: -100px;
	z-index: 10000;
}

.rec-skip-link:focus {
	top: 1rem;
}

.rec-site-header {
	color: var(--color-white);
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	transition: background 180ms ease, box-shadow 180ms ease, color 180ms ease;
	z-index: 999;
}

.rec-site-header.is-scrolled,
body:not(.home) .rec-site-header {
	background: rgba(31, 26, 23, 0.96);
	box-shadow: 0 10px 32px rgba(0, 0, 0, 0.18);
}

.rec-header-inner {
	align-items: center;
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 1180px;
	min-height: var(--header-height);
	padding: 0 1.25rem;
}

.rec-site-title {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 1.45rem;
	font-weight: 700;
	text-decoration: none;
}

.rec-primary-nav {
	align-items: center;
	display: flex;
	gap: 1.5rem;
}

.rec-primary-nav ul {
	align-items: center;
	display: flex;
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rec-primary-nav a {
	color: var(--color-white);
	font-size: 0.93rem;
	font-weight: 600;
	text-decoration: none;
}

.rec-header-cta,
.rec-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1;
	min-height: 46px;
	padding: 0.9rem 1.25rem;
	text-decoration: none;
}

.rec-header-cta,
.rec-button-primary {
	background: var(--color-gold);
	color: var(--color-primary) !important;
}

.rec-button-secondary {
	border: 1px solid rgba(255, 255, 255, 0.7);
	color: var(--color-white);
}

.rec-menu-toggle,
.rec-menu-close,
.rec-back-to-top {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	color: currentColor;
	cursor: pointer;
	display: none;
	height: 46px;
	justify-content: center;
	width: 46px;
}

.rec-menu-toggle svg,
.rec-menu-close svg,
.rec-back-to-top svg {
	fill: none;
	height: 22px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 22px;
}

.rec-hero {
	align-items: center;
	background:
		linear-gradient(120deg, rgba(31, 26, 23, 0.82), rgba(45, 37, 32, 0.38)),
		url("../images/hero-placeholder.svg") center/cover no-repeat;
	color: var(--color-white);
	display: flex;
	min-height: 88vh;
	overflow: hidden;
	padding: calc(var(--header-height) + 5rem) 1.25rem 5rem;
	position: relative;
}

.rec-hero-content {
	margin: 0 auto;
	max-width: 1180px;
	position: relative;
	width: 100%;
}

.rec-eyebrow {
	color: var(--color-gold);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.rec-hero h1 {
	font-family: var(--font-heading);
	font-size: clamp(3rem, 7vw, 6.7rem);
	letter-spacing: 0;
	line-height: 0.98;
	margin: 0 0 1.25rem;
	max-width: 820px;
}

.rec-hero p:not(.rec-eyebrow) {
	font-size: 1.15rem;
	max-width: 620px;
}

.rec-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	margin-top: 2rem;
}

.rec-page-shell {
	margin: 0 auto;
	max-width: 1180px;
	padding: calc(var(--header-height) + 3rem) 1.25rem 4rem;
}

.rec-content-card,
.rec-post-card {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: 8px;
	box-shadow: var(--shadow-soft);
	padding: clamp(1.25rem, 4vw, 3rem);
}

.rec-content-card h1,
.rec-archive-header h1 {
	font-family: var(--font-heading);
	font-size: clamp(2.4rem, 6vw, 4.5rem);
	line-height: 1;
}

.rec-post-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rec-post-card a {
	text-decoration: none;
}

.rec-post-card h2 {
	font-family: var(--font-heading);
	line-height: 1.1;
}

.rec-site-footer {
	background: var(--color-primary);
	color: var(--color-cream);
	padding: 4rem 1.25rem 1.5rem;
}

.rec-footer-grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	margin: 0 auto;
	max-width: 1180px;
}

.rec-site-footer h2 {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 1.25rem;
}

.rec-site-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rec-footer-bottom {
	align-items: center;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	justify-content: space-between;
	margin: 2rem auto 0;
	max-width: 1180px;
	padding-top: 1.25rem;
}

.rec-back-to-top {
	background: var(--color-gold);
	border: 0;
	color: var(--color-primary);
	display: inline-flex;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}


.restaurant-menu-section {
	padding: calc(var(--header-height) + 3rem) 1.25rem 5rem;
}

.restaurant-container {
	margin: 0 auto;
	max-width: 1180px;
	width: 100%;
}

.restaurant-menu-header {
	margin-bottom: 2rem;
	max-width: 760px;
}

.restaurant-eyebrow {
	color: var(--color-gold);
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	margin-bottom: 0.75rem;
	text-transform: uppercase;
}

.restaurant-menu-header h1 {
	font-family: var(--font-heading);
	font-size: clamp(2.5rem, 6vw, 4.8rem);
	line-height: 1;
	margin: 0 0 1rem;
}

.restaurant-menu-header p {
	color: var(--color-muted);
	font-size: 1.05rem;
	margin: 0;
}

.restaurant-menu-intro {
	margin-top: 1.25rem;
}

.restaurant-menu-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 3rem;
}

.restaurant-menu-filters a {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.28);
	border-radius: 999px;
	color: var(--color-text);
	font-size: 0.9rem;
	font-weight: 700;
	padding: 0.65rem 1rem;
	text-decoration: none;
}

.restaurant-menu-filters a:hover {
	background: var(--color-gold);
	color: var(--color-primary);
}

.restaurant-menu-category {
	margin-top: 3.5rem;
	scroll-margin-top: calc(var(--header-height) + 1.5rem);
}

.restaurant-menu-category:first-child {
	margin-top: 0;
}

.restaurant-menu-category__heading {
	align-items: end;
	border-bottom: 1px solid rgba(181, 139, 74, 0.24);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	padding-bottom: 0.9rem;
}

.restaurant-menu-category__heading h2 {
	font-family: var(--font-heading);
	font-size: clamp(1.9rem, 4vw, 3rem);
	line-height: 1;
	margin: 0;
}

.restaurant-menu-category__heading p {
	color: var(--color-muted);
	margin: 0;
	max-width: 420px;
}

.restaurant-menu-grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.restaurant-menu-card {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: 8px;
	box-shadow: 0 18px 48px rgba(31, 26, 23, 0.1);
	overflow: hidden;
}

.restaurant-menu-card__image {
	aspect-ratio: 4 / 3;
	background: var(--color-beige);
	display: block;
	position: relative;
	text-decoration: none;
}

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

.restaurant-menu-card__badge {
	background: var(--color-gold);
	border-radius: 999px;
	color: var(--color-primary);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1;
	padding: 0.5rem 0.65rem;
	position: absolute;
	right: 0.85rem;
	text-transform: uppercase;
	top: 0.85rem;
}

.restaurant-menu-card__content {
	padding: 1.15rem;
}

.restaurant-menu-card__heading {
	align-items: start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.restaurant-menu-card__heading h3 {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	line-height: 1.15;
	margin: 0;
}

.restaurant-menu-card__heading a {
	text-decoration: none;
}

.restaurant-menu-card__price {
	color: var(--color-terracotta);
	flex: 0 0 auto;
	font-weight: 800;
	white-space: nowrap;
}

.restaurant-menu-card__price--empty {
	color: var(--color-muted);
	font-size: 0.85rem;
	font-weight: 700;
	white-space: normal;
}

.restaurant-menu-card__description {
	color: var(--color-muted);
	margin: 0.85rem 0 0;
}

.restaurant-menu-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 1rem;
}

.restaurant-menu-card__meta span {
	background: rgba(181, 139, 74, 0.12);
	border-radius: 999px;
	color: var(--color-secondary);
	font-size: 0.78rem;
	font-weight: 700;
	padding: 0.35rem 0.55rem;
}

.restaurant-menu-card__availability {
	color: var(--color-muted);
	font-size: 0.85rem;
	font-weight: 700;
	margin: 1rem 0 0;
}

.restaurant-menu-card__availability--available {
	color: #3F7C52;
}

.restaurant-menu-card__availability--sold_out,
.restaurant-menu-card__availability--unavailable {
	color: var(--color-terracotta);
}

.restaurant-menu-empty {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: 8px;
	padding: 2rem;
}

.restaurant-menu-empty h2 {
	font-family: var(--font-heading);
	margin: 0 0 0.5rem;
}

.restaurant-menu-empty p {
	color: var(--color-muted);
	margin: 0;
}

/* Tahap 3 design system and homepage */
:root {
	--container-width: 1240px;
	--radius-sm: 8px;
	--radius-md: 16px;
	--radius-lg: 28px;
	--shadow-sm: 0 8px 24px rgba(31, 26, 23, 0.08);
	--shadow-md: 0 18px 48px rgba(31, 26, 23, 0.14);
	--transition: 220ms ease;
}

body.mobile-menu-open {
	overflow: hidden;
}

.skip-link:focus {
	clip: auto;
	background: var(--color-gold);
	color: var(--color-primary);
	height: auto;
	left: 1rem;
	padding: 0.75rem 1rem;
	top: 1rem;
	width: auto;
	z-index: 10000;
}

.restaurant-container {
	margin: 0 auto;
	max-width: var(--container-width);
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	width: 100%;
}

.section-spacing {
	padding: 6rem 0;
}

.section-eyebrow {
	color: var(--color-gold);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

.section-heading {
	font-family: var(--font-heading);
	font-size: clamp(2.1rem, 5vw, 4.1rem);
	line-height: 1;
	margin: 0 0 1rem;
}

.section-header {
	margin-bottom: 2rem;
	max-width: 720px;
}

.section-header--center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.section-header p:not(.section-eyebrow),
.split-layout__content p,
.section-empty {
	color: var(--color-muted);
}

.restaurant-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	line-height: 1;
	min-height: 46px;
	padding: 0.9rem 1.2rem;
	text-decoration: none;
	transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}

.restaurant-button:hover {
	transform: translateY(-1px);
}

.restaurant-button--primary {
	background: var(--color-gold);
	color: var(--color-primary) !important;
}

.restaurant-button--secondary {
	border: 1px solid rgba(181, 139, 74, 0.55);
	color: var(--color-primary);
}

.restaurant-button--light {
	background: var(--color-white);
	color: var(--color-primary) !important;
}

.restaurant-card {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

.site-header {
	color: var(--color-white);
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	transition: background var(--transition), box-shadow var(--transition), color var(--transition);
	z-index: 999;
}

body.admin-bar .site-header,
body.admin-bar .mobile-navigation {
	top: 32px;
}

.site-header.is-scrolled,
body:not(.has-transparent-header) .site-header {
	background: rgba(31, 26, 23, 0.97);
	box-shadow: 0 10px 32px rgba(0, 0, 0, 0.16);
	color: var(--color-white);
}

.site-header__inner {
	align-items: center;
	display: grid;
	gap: 1rem;
	grid-template-columns: auto 1fr auto auto;
	min-height: var(--header-height);
}

.site-branding {
	align-items: center;
	display: flex;
	gap: 0.8rem;
}

.site-branding img {
	max-height: 54px;
	width: auto;
}

.site-branding__name {
	color: currentColor;
	font-family: var(--font-heading);
	font-size: 1.35rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.primary-navigation ul,
.mobile-navigation ul,
.site-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.primary-navigation ul {
	align-items: center;
	display: flex;
	gap: 1.25rem;
	justify-content: center;
}

.primary-navigation a,
.site-header__phone {
	color: currentColor;
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none;
}

.site-header__actions {
	align-items: center;
	display: flex;
	gap: 0.9rem;
}

.site-header__phone {
	align-items: center;
	display: inline-flex;
	gap: 0.4rem;
}

.site-header__phone svg,
.mobile-menu-toggle svg,
.mobile-menu-close svg,
.back-to-top svg,
.benefit-card__icon svg,
.site-footer__socials svg {
	fill: none;
	height: 20px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 20px;
}

.mobile-menu-toggle,
.mobile-menu-close {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	color: currentColor;
	cursor: pointer;
	display: none;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.mobile-menu-overlay {
	background: rgba(0, 0, 0, 0.48);
	inset: 0;
	opacity: 0;
	position: fixed;
	transition: opacity var(--transition);
	z-index: 998;
}

.mobile-menu-overlay.is-visible {
	opacity: 1;
}

.mobile-navigation {
	background: var(--color-primary);
	bottom: 0;
	box-shadow: -24px 0 70px rgba(0, 0, 0, 0.28);
	color: var(--color-white);
	max-width: 420px;
	padding: 1.25rem;
	position: fixed;
	right: 0;
	top: 0;
	transform: translateX(100%);
	transition: transform var(--transition);
	width: min(88vw, 420px);
	z-index: 1000;
}

.mobile-navigation.is-open {
	transform: translateX(0);
}

.mobile-navigation__header {
	align-items: center;
	display: flex;
	font-family: var(--font-heading);
	font-size: 1.3rem;
	font-weight: 700;
	justify-content: space-between;
}

.mobile-navigation__links {
	margin-top: 2rem;
}

.mobile-navigation__links a {
	color: var(--color-white);
	display: block;
	font-size: 1.15rem;
	font-weight: 700;
	padding: 0.75rem 0;
	text-decoration: none;
}

.mobile-navigation__cta {
	display: grid;
	gap: 0.8rem;
	margin-top: 2rem;
}

.mobile-navigation__contact {
	color: var(--color-cream);
	font-weight: 700;
	text-decoration: none;
}

.home-hero {
	align-items: center;
	background-position: center;
	background-size: cover;
	color: var(--color-white);
	display: flex;
	min-height: 90vh;
	padding: calc(var(--header-height) + 4rem) 0 5rem;
}

.home-hero__content {
	max-width: var(--container-width);
}

.home-hero h1 {
	font-family: var(--font-heading);
	font-size: clamp(3.2rem, 8vw, 7.2rem);
	line-height: 0.96;
	margin: 0 0 1.2rem;
	max-width: 860px;
}

.home-hero p:not(.section-eyebrow) {
	font-size: 1.15rem;
	max-width: 650px;
}

.home-hero__actions,
.section-actions,
.location-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: 1.5rem;
}

.home-hero__hours {
	color: var(--color-beige);
	font-weight: 800;
	margin-top: 1.6rem;
}

.split-layout {
	align-items: center;
	display: grid;
	gap: 4rem;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.split-layout--reversed .split-layout__media {
	order: 2;
}

.split-layout__media img {
	aspect-ratio: 4 / 3;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-md);
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.featured-menu-section,
.dining-experience,
.testimonials-section,
.latest-posts {
	background: rgba(232, 217, 198, 0.34);
}

.featured-menu-grid,
.blog-card-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.featured-menu-card__image,
.blog-card__image {
	aspect-ratio: 4 / 3;
	display: block;
	overflow: hidden;
}

.featured-menu-card__image img,
.blog-card__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition);
	width: 100%;
}

.featured-menu-card:hover img,
.blog-card:hover img {
	transform: scale(1.04);
}

.featured-menu-card__content,
.blog-card__content {
	padding: 1.1rem;
}

.featured-menu-card__title {
	align-items: start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.featured-menu-card h3,
.blog-card h3,
.benefit-card h3 {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	line-height: 1.15;
	margin: 0;
}

.featured-menu-card a,
.blog-card a {
	text-decoration: none;
}

.featured-menu-card__title span {
	color: var(--color-terracotta);
	font-weight: 800;
	white-space: nowrap;
}

.pill-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.9rem;
}

.pill-row span {
	background: rgba(181, 139, 74, 0.12);
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 800;
	padding: 0.35rem 0.55rem;
}

.benefit-grid {
	display: grid;
	gap: 1.2rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.benefit-card {
	padding: 1.4rem;
}

.benefit-card__icon {
	align-items: center;
	background: rgba(181, 139, 74, 0.16);
	border-radius: 999px;
	color: var(--color-terracotta);
	display: inline-flex;
	height: 48px;
	justify-content: center;
	margin-bottom: 1rem;
	width: 48px;
}

.chef-story blockquote {
	border-left: 4px solid var(--color-gold);
	font-family: var(--font-heading);
	font-size: 1.55rem;
	line-height: 1.25;
	margin: 1.5rem 0;
	padding-left: 1.25rem;
}

.chef-story__role {
	font-weight: 800;
}

.gallery-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(6, 1fr);
}

.gallery-grid__item {
	aspect-ratio: 1;
	border-radius: var(--radius-sm);
	color: var(--color-white);
	display: block;
	overflow: hidden;
	position: relative;
}

.gallery-grid__item:nth-child(1),
.gallery-grid__item:nth-child(4) {
	grid-column: span 2;
	grid-row: span 2;
}

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

.gallery-grid__item span {
	background: rgba(31, 26, 23, 0.62);
	bottom: 0;
	font-weight: 800;
	left: 0;
	padding: 0.8rem;
	position: absolute;
	right: 0;
}

.testimonial-track {
	display: grid;
	gap: 1rem;
	grid-auto-columns: minmax(280px, 1fr);
	grid-auto-flow: column;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
}

.testimonial-card {
	padding: 1.4rem;
	scroll-snap-align: start;
}

.testimonial-card__rating {
	color: var(--color-gold);
	letter-spacing: 0.08em;
}

.testimonial-card strong,
.testimonial-card span {
	display: block;
}

.testimonial-card span {
	color: var(--color-muted);
}

.reservation-cta {
	background-position: center;
	background-size: cover;
	color: var(--color-white);
	padding: 6rem 0;
	text-align: center;
}

.reservation-cta__content {
	max-width: 760px;
}

.reservation-cta h2 {
	font-family: var(--font-heading);
	font-size: clamp(2.4rem, 5vw, 4.6rem);
	line-height: 1;
	margin: 0 0 1rem;
}

.location-hours__grid {
	display: grid;
	gap: 1.2rem;
	grid-template-columns: 1.1fr 0.9fr;
}

.location-card,
.hours-card,
.map-card {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
	padding: 1.5rem;
}

.map-card {
	grid-column: 1 / -1;
	min-height: 320px;
	padding: 0;
	overflow: hidden;
}

.map-card iframe,
.map-card__placeholder {
	border: 0;
	height: 100%;
	min-height: 320px;
	width: 100%;
}

.map-card__placeholder {
	align-items: center;
	background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
	color: var(--color-white);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2rem;
	text-align: center;
}

.hours-card ul,
.footer-hours {
	display: grid;
	gap: 0.55rem;
}

.hours-card li,
.footer-hours li {
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.hours-card li.is-today {
	color: var(--color-terracotta);
	font-weight: 800;
}

.site-footer {
	background: var(--color-primary);
	color: var(--color-cream);
	padding: 4.5rem 0 1.5rem;
}

.site-footer__grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.35fr 0.85fr 1fr 1fr;
}

.site-footer h2 {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 1.25rem;
	margin: 0 0 1rem;
}

.site-footer a {
	color: var(--color-cream);
	text-decoration: none;
}

.site-footer li + li,
.site-footer p {
	margin-top: 0.55rem;
}

.site-footer__socials {
	display: flex;
	gap: 0.6rem;
	margin-top: 1rem;
}

.site-footer__socials a {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	display: inline-flex;
	height: 38px;
	justify-content: center;
	width: 38px;
}

.site-footer__bottom {
	align-items: center;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-top: 2rem;
	padding-top: 1.25rem;
}

.site-footer__bottom ul {
	display: flex;
	gap: 1rem;
}

.back-to-top {
	align-items: center;
	background: var(--color-gold);
	border: 0;
	border-radius: 999px;
	bottom: 1.25rem;
	box-shadow: var(--shadow-md);
	color: var(--color-primary);
	cursor: pointer;
	display: inline-flex;
	height: 46px;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 1.25rem;
	transform: translateY(12px);
	transition: opacity var(--transition), transform var(--transition);
	width: 46px;
	z-index: 900;
}

.back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

/* Tahap 4 menu UX */
.restaurant-menu-hero,
.menu-detail-hero {
	background: linear-gradient(135deg, var(--color-cream), var(--color-beige));
	padding: calc(var(--header-height) + 3rem) 0 3rem;
}

.restaurant-menu-hero h1,
.menu-detail-layout h1 {
	font-family: var(--font-heading);
	font-size: clamp(2.8rem, 6vw, 5.5rem);
	line-height: 1;
	margin: 0 0 1rem;
}

.restaurant-menu-hero p:not(.section-eyebrow),
.menu-detail-short {
	color: var(--color-muted);
	font-size: 1.1rem;
	max-width: 720px;
}

.restaurant-breadcrumb {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	font-size: 0.88rem;
	font-weight: 800;
	margin-bottom: 1.4rem;
}

.restaurant-breadcrumb a {
	color: var(--color-terracotta);
	text-decoration: none;
}

.restaurant-menu-page-section {
	padding: 3rem 0 5rem;
}

.restaurant-menu-filter-shell {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
	margin-bottom: 1.25rem;
	padding: 1rem;
	position: sticky;
	top: calc(var(--header-height) + 1rem);
	z-index: 20;
}

body.admin-bar .restaurant-menu-filter-shell {
	top: calc(var(--header-height) + 33px);
}

.restaurant-menu-filter-toggle {
	display: none;
}

.restaurant-menu-filter-form {
	display: grid;
	gap: 1rem;
}

.restaurant-menu-search-field input,
.restaurant-menu-sort-label select {
	border: 1px solid rgba(31, 26, 23, 0.18);
	border-radius: var(--radius-sm);
	font: inherit;
	min-height: 48px;
	padding: 0.75rem 0.9rem;
	width: 100%;
}

.restaurant-menu-category-filter {
	display: flex;
	gap: 0.55rem;
	overflow-x: auto;
	padding-bottom: 0.2rem;
	scroll-snap-type: x proximity;
}

.restaurant-menu-category-filter label {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

.restaurant-menu-category-filter input {
	position: absolute;
	opacity: 0;
}

.restaurant-menu-category-filter span,
.restaurant-menu-checkbox-grid span,
.restaurant-menu-sold-out-toggle span {
	border: 1px solid rgba(181, 139, 74, 0.3);
	border-radius: 999px;
	display: inline-flex;
	font-weight: 800;
	padding: 0.55rem 0.8rem;
}

.restaurant-menu-category-filter input:checked + span,
.restaurant-menu-checkbox-grid input:checked + span,
.restaurant-menu-sold-out-toggle input:checked + span {
	background: var(--color-gold);
	color: var(--color-primary);
}

.restaurant-menu-category-filter input:focus-visible + span,
.restaurant-menu-checkbox-grid input:focus-visible + span,
.restaurant-menu-sold-out-toggle input:focus-visible + span {
	outline: 3px solid var(--color-gold);
	outline-offset: 3px;
}

.restaurant-menu-filter-row {
	align-items: end;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr minmax(210px, 0.35fr) auto;
}

.restaurant-menu-filter-row fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.restaurant-menu-filter-row legend,
.restaurant-menu-sort-label {
	font-weight: 800;
}

.restaurant-menu-checkbox-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.restaurant-menu-checkbox-grid input,
.restaurant-menu-sold-out-toggle input {
	position: absolute;
	opacity: 0;
}

.restaurant-menu-sold-out-toggle {
	align-self: center;
}

.restaurant-menu-filter-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.restaurant-menu-results-bar {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin: 1.5rem 0;
}

.restaurant-menu-result-count {
	font-weight: 900;
	margin: 0;
}

.restaurant-menu-active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.restaurant-menu-chip {
	background: rgba(168, 93, 59, 0.12);
	border-radius: 999px;
	color: var(--color-terracotta);
	font-size: 0.85rem;
	font-weight: 900;
	padding: 0.45rem 0.65rem;
	text-decoration: none;
}

.restaurant-menu-disclaimer {
	background: rgba(181, 139, 74, 0.12);
	border-radius: var(--radius-sm);
	color: var(--color-muted);
	font-size: 0.92rem;
	margin: 0 0 1.5rem;
	padding: 0.85rem 1rem;
}

.restaurant-menu-card__media {
	aspect-ratio: 4 / 3;
	background: var(--color-beige);
	display: block;
	overflow: hidden;
	position: relative;
	text-decoration: none;
}

.restaurant-menu-card__media img {
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition);
	width: 100%;
}

.restaurant-menu-card:hover .restaurant-menu-card__media img {
	transform: scale(1.04);
}

.restaurant-menu-card.is-sold_out,
.restaurant-menu-card.is-unavailable {
	opacity: 0.72;
}

.restaurant-menu-card__availability {
	border-radius: 999px;
	bottom: 0.85rem;
	font-size: 0.72rem;
	font-weight: 900;
	left: 0.85rem;
	line-height: 1;
	padding: 0.5rem 0.65rem;
	position: absolute;
	text-transform: uppercase;
}

.restaurant-menu-card__availability.is-seasonal {
	background: var(--color-cream);
	color: var(--color-terracotta);
}

.restaurant-menu-card__availability.is-sold-out,
.restaurant-menu-card__availability.is-unavailable {
	background: var(--color-terracotta);
	color: var(--color-white);
}

.restaurant-menu-card__body {
	padding: 1.15rem;
}

.restaurant-menu-card__terms {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 1rem;
}

.restaurant-menu-card__terms span,
.pill-row a {
	background: rgba(181, 139, 74, 0.12);
	border-radius: 999px;
	color: var(--color-secondary);
	font-size: 0.78rem;
	font-weight: 800;
	padding: 0.35rem 0.55rem;
	text-decoration: none;
}

.restaurant-menu-pagination {
	margin-top: 2rem;
	text-align: center;
}

.restaurant-menu-pagination .page-numbers {
	align-items: center;
	border: 1px solid rgba(181, 139, 74, 0.28);
	border-radius: 999px;
	display: inline-flex;
	font-weight: 900;
	justify-content: center;
	margin: 0.2rem;
	min-height: 42px;
	min-width: 42px;
	padding: 0.55rem 0.8rem;
	text-decoration: none;
}

.restaurant-menu-pagination .current {
	background: var(--color-gold);
	color: var(--color-primary);
}

.restaurant-menu-empty-state {
	background: var(--color-white);
	border: 1px solid rgba(181, 139, 74, 0.18);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
	padding: 2rem;
	text-align: center;
}

.restaurant-menu-empty-state__icon svg {
	fill: none;
	height: 44px;
	stroke: var(--color-gold);
	stroke-width: 2;
	width: 44px;
}

.menu-reservation-strip,
.menu-detail-cta {
	background: var(--color-primary);
	color: var(--color-white);
	padding: 3rem 0;
	text-align: center;
}

.menu-reservation-strip h2,
.menu-detail-cta h2 {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4vw, 3.5rem);
	margin: 0 0 0.5rem;
}

.menu-detail-layout {
	padding: 4rem 0;
}

.menu-detail-layout__grid {
	display: grid;
	gap: 3rem;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.menu-detail-layout__image img {
	aspect-ratio: 4 / 3;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-md);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.menu-detail-price {
	color: var(--color-terracotta);
	font-size: 1.6rem;
	font-weight: 900;
	margin: 0 0 1rem;
}

.menu-detail-content {
	margin-top: 1.5rem;
}

.menu-detail-meta {
	display: grid;
	gap: 1rem;
	margin-top: 2rem;
}

.menu-detail-meta section {
	border-top: 1px solid rgba(181, 139, 74, 0.22);
	padding-top: 1rem;
}

.menu-detail-meta h2 {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	margin: 0 0 0.7rem;
}

.menu-detail-meta ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.menu-detail-meta li {
	display: flex;
	justify-content: space-between;
	padding: 0.4rem 0;
}

.menu-detail-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.related-menu-section {
	background: rgba(232, 217, 198, 0.34);
}

/* Tahap 5 reservation system */
.reservation-hero { background: linear-gradient(135deg, var(--color-cream), var(--color-beige)); padding: calc(var(--header-height) + 3rem) 0 3rem; }
.reservation-hero h1 { font-family: var(--font-heading); font-size: clamp(2.8rem, 6vw, 5.5rem); line-height: 1; margin: 0 0 1rem; }
.reservation-hero p:not(.section-eyebrow) { color: var(--color-muted); font-size: 1.1rem; max-width: 720px; }
.restaurant-reservation__grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr); align-items: start; }
.restaurant-reservation__main, .reservation-info-card, .reservation-policy, .reservation-summary-card, .reservation-status-message { background: var(--color-white); border: 1px solid rgba(181,139,74,.18); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); padding: 1.4rem; }
.reservation-form__grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.reservation-field { margin: 0; }
.reservation-field--full { grid-column: 1 / -1; }
.reservation-field__label { display: block; font-weight: 900; margin-bottom: .4rem; }
.reservation-field__input { border: 1px solid rgba(31,26,23,.18); border-radius: var(--radius-sm); font: inherit; min-height: 48px; padding: .75rem .9rem; width: 100%; }
textarea.reservation-field__input { min-height: 110px; }
.reservation-field__help { color: var(--color-muted); display: block; font-size: .86rem; margin-top: .35rem; }
.reservation-honeypot { left: -9999px; position: absolute; }
.reservation-summary-card { margin: 1.2rem 0; }
.reservation-summary-card dl, .reservation-status-message dl { display: grid; gap: .55rem; margin: 0; }
.reservation-summary-card div, .reservation-status-message div { display: flex; justify-content: space-between; gap: 1rem; }
.reservation-summary-card dt, .reservation-status-message dt { color: var(--color-muted); font-weight: 800; }
.reservation-summary-card dd, .reservation-status-message dd { font-weight: 900; margin: 0; }
.reservation-status-message--error { border-color: rgba(168,93,59,.45); }
.reservation-status-message--success { border-color: rgba(63,124,82,.45); }
.reservation-submit { width: 100%; }
.restaurant-reservation__side { display: grid; gap: 1rem; }
.reservation-info-card h2, .reservation-policy h2, .reservation-summary-card h2, .reservation-status-message h2 { font-family: var(--font-heading); margin: 0 0 1rem; }
.reservation-info-card ul, .reservation-policy ul { margin: 0; padding-left: 1.1rem; }
.reservation-info-card li { display: flex; gap: 1rem; justify-content: space-between; padding: .3rem 0; }
.reservation-policy li + li { margin-top: .45rem; }
.reservation-status-pending { color: #9a6a1f; font-weight: 900; }
.reservation-status-confirmed { color: #3f7c52; font-weight: 900; }
.reservation-status-cancelled, .reservation-status-rejected, .reservation-status-no_show { color: var(--color-terracotta); font-weight: 900; }

/* Tahap 6 pages */
.stage6-hero{background:#201712 center/cover no-repeat;color:#fff;min-height:340px;display:flex;align-items:end}.stage6-hero .page-hero__inner{padding:80px 0 56px}.stage6-hero h1{max-width:820px;margin:.25rem 0;font-size:clamp(2.25rem,5vw,4.75rem);line-height:1}.stage6-hero p{max-width:720px}.breadcrumb{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.9rem}.breadcrumb a{color:inherit}.section{padding:72px 0}.section--compact{padding-top:0}.split-layout{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.split-layout--reverse>div:first-child{order:2}.split-layout img,.article-featured-image{width:100%;border-radius:8px;aspect-ratio:4/3;object-fit:cover}.prose{line-height:1.78}.prose>*{max-width:780px}.prose blockquote,blockquote{border-left:4px solid currentColor;padding-left:1rem;font-size:1.2rem}.value-grid,.post-grid,.gallery-grid{display:grid;gap:24px}.value-grid{grid-template-columns:repeat(4,1fr)}.post-grid{grid-template-columns:repeat(3,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.value-card,.post-card,.search-result-card,.contact-success{border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:22px;background:#fff}.gallery-card a{display:block;position:relative;color:inherit;text-decoration:none}.gallery-card img,.post-card__image img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.gallery-card--portrait img{aspect-ratio:3/4}.gallery-card--square img{aspect-ratio:1}.gallery-card span{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.68);color:#fff;padding:6px 10px;border-radius:4px}.filter-pills{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 28px}.filter-pills a{border:1px solid rgba(0,0,0,.16);border-radius:999px;padding:8px 14px;text-decoration:none}.filter-pills .is-active{background:#1f1712;color:#fff}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid__full{grid-column:1/-1}.contact-form input,.contact-form select,.contact-form textarea,.search-form input{width:100%;padding:12px;border:1px solid rgba(0,0,0,.2);border-radius:6px}.contact-form [aria-invalid="true"]{border-color:#b42318}.hp-field{position:absolute;left:-10000px}.form-alert--error{border-left:4px solid #b42318;background:#fff1f0;padding:12px}.contact-map iframe,.map-placeholder{width:100%;min-height:360px;border:0;border-radius:8px}.map-placeholder{display:grid;place-items:center;background:#f4f1ed;text-align:center}.gallery-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);display:grid;place-items:center;color:#fff;padding:24px}.gallery-lightbox[hidden]{display:none}.gallery-lightbox img{max-width:min(92vw,1100px);max-height:72vh;object-fit:contain}.lightbox-close,.lightbox-prev,.lightbox-next{position:fixed;background:#fff;color:#111;border:0;border-radius:999px;width:44px;height:44px;font-size:28px}.lightbox-close{right:24px;top:24px}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-open{overflow:hidden}.article-container{max-width:860px}.article-content{font-size:1.08rem}.share-links,.button-row,.popular-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.type-badge,.post-card__cat{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.error-illustration{font-size:7rem;font-weight:800;line-height:1;color:#7b4b2a}.empty-state{text-align:center;padding:48px;border:1px dashed rgba(0,0,0,.18);border-radius:8px}.about-cta{background:center/cover no-repeat;color:#fff}.about-cta .container{padding:56px 0}.screen-reader-text{position:absolute;left:-10000px}.pagination{margin-top:32px}

/* Contact page layout fix */
html,body{max-width:100%}.contact-page-main{overflow-x:clip}.contact-page-section{background:#f7f3ee;padding:clamp(56px,7vw,96px) 0}.contact-page .restaurant-container{width:min(100% - 40px,1240px);margin-inline:auto}.contact-page .contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:clamp(32px,5vw,72px);align-items:start}.contact-layout__sidebar,.contact-layout__form,.contact-info-card,.contact-hours-card,.contact-form-card{min-width:0}.contact-layout__sidebar{display:grid;gap:24px}.contact-info-card,.contact-hours-card{background:#fff;border:1px solid rgba(31,26,23,.10);border-radius:20px;padding:clamp(24px,3vw,36px);box-shadow:0 14px 40px rgba(31,26,23,.06)}.contact-form-card{background:#fff;border:1px solid rgba(31,26,23,.10);border-radius:24px;padding:clamp(26px,4vw,48px);box-shadow:0 18px 50px rgba(31,26,23,.08);min-width:0}.contact-info-card .section-heading{font-size:clamp(2.4rem,4vw,4.5rem);line-height:.98;max-width:10ch;overflow-wrap:normal;word-break:normal}.contact-details-list{list-style:none;display:grid;gap:16px;margin:28px 0 0;padding:0}.contact-detail{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start}.contact-detail a,.contact-detail span{overflow-wrap:anywhere}.contact-detail__icon{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#f1e6dc;color:#7b4b2a;font-weight:700}.contact-social-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.contact-hours-card h2,.contact-form-card h2{margin-top:0}.opening-hours-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.opening-hours-list__item{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(150px,1.3fr);gap:20px;align-items:baseline;padding:13px 0;border-bottom:1px solid rgba(31,26,23,.10)}.opening-hours-list__item:last-child{border-bottom:0}.opening-hours-list__day{font-weight:500}.opening-hours-list__time{text-align:right;font-weight:700;white-space:nowrap}.opening-hours-list__item.is-today{color:#a55332}.contact-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.contact-field{display:grid;gap:8px;margin:0;min-width:0}.contact-field--full{grid-column:1/-1}.contact-field label{display:block;margin:0;font-weight:600;line-height:1.4}.contact-form input,.contact-form select,.contact-form textarea{width:100%;max-width:100%;box-sizing:border-box;border:1px solid rgba(31,26,23,.22);border-radius:12px;background:#fff;color:var(--color-text,#201a17);font:inherit}.contact-form input,.contact-form select{min-height:52px;padding:0 16px}.contact-form textarea{min-height:180px;padding:14px 16px;resize:vertical}.contact-form__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:24px}.contact-form__privacy{flex:1 1 300px;margin:0;color:var(--color-muted,#6f625b);font-size:.95rem;line-height:1.6}.contact-form__submit{flex:0 0 auto;margin:0}.contact-map-section{background:#f7f3ee;padding:0 0 clamp(56px,7vw,96px)}.contact-map-card{overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 14px 40px rgba(31,26,23,.06)}.contact-map-card iframe,.contact-map-card .map-placeholder{width:100%;height:420px;min-height:420px;border:0;display:grid;place-items:center}.contact-map-card .contact-map__actions{margin:0;padding:18px 24px;background:#fff}.contact-page .hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media (max-width:1280px){.contact-info-card .section-heading{font-size:clamp(2.3rem,4vw,3.8rem)}.contact-page .contact-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:32px}}
@media (max-width:900px){.contact-page .contact-layout{grid-template-columns:1fr}.contact-layout__form{order:1}.contact-layout__sidebar{order:2}.contact-info-card .section-heading{font-size:clamp(2.2rem,10vw,3.4rem);max-width:none}}
@media (max-width:768px){.contact-form__grid{grid-template-columns:1fr}.contact-field,.contact-field--full{grid-column:auto}.contact-page .restaurant-container{width:min(100% - 32px,1240px)}}
@media (max-width:640px){.contact-info-card,.contact-hours-card,.contact-form-card{padding:22px}.contact-form__footer{align-items:stretch;flex-direction:column}.contact-form__submit,.contact-form__submit .restaurant-button{width:100%}.opening-hours-list__item{grid-template-columns:1fr;gap:5px}.opening-hours-list__time{text-align:left;white-space:normal}.contact-map-card iframe,.contact-map-card .map-placeholder{height:300px;min-height:300px}}

/* Homepage hero/header layer fix */
.site-header,
.site-header.is-scrolled {
	z-index: 1000;
}

.mobile-menu-overlay {
	z-index: 1090;
}

.mobile-navigation {
	z-index: 1100;
}

.home-hero {
	isolation: isolate;
	overflow: hidden;
	position: relative;
	z-index: 0;
}

.home-hero::before,
.home-hero::after,
.home-hero .hero-circle,
.home-hero .hero-shape,
.home-hero .hero-decoration,
.home-hero .hero-decoration-circle,
.home-hero .hero-orb,
.home-hero .hero-visual,
.home-hero .hero-art,
.home-hero .hero-background-shape {
	pointer-events: none;
	user-select: none;
	z-index: 1;
}

.home-hero__content {
	position: relative;
	z-index: 2;
}

@media (max-width: 768px) {
	.home-hero::before,
	.home-hero::after,
	.home-hero .hero-circle,
	.home-hero .hero-shape,
	.home-hero .hero-decoration,
	.home-hero .hero-decoration-circle,
	.home-hero .hero-orb,
	.home-hero .hero-visual,
	.home-hero .hero-art,
	.home-hero .hero-background-shape {
		max-width: min(72vw, 420px);
		max-height: min(72vw, 420px);
	}
}

/* Header readability while transparent over hero artwork */
.site-header {
	isolation: isolate;
}

.site-header::before {
	background: linear-gradient(180deg, rgba(31, 26, 23, 0.42), rgba(31, 26, 23, 0));
	content: "";
	inset: 0;
	opacity: 1;
	pointer-events: none;
	position: absolute;
	transition: opacity var(--transition), background var(--transition);
	z-index: -1;
}

.site-header.is-scrolled::before,
body:not(.has-transparent-header) .site-header::before {
	opacity: 0;
}

.site-header__inner {
	position: relative;
	z-index: 1;
}

/* Back-to-top button visual fix */
.back-to-top {
	align-items: center;
	background: var(--color-gold);
	border: 0;
	border-radius: 999px;
	bottom: 24px;
	box-shadow: 0 16px 30px rgba(0, 0, 0, 0.18);
	color: #1f1a17;
	cursor: pointer;
	display: inline-flex;
	height: 56px;
	justify-content: center;
	opacity: 0;
	padding: 0;
	pointer-events: none;
	position: fixed;
	right: 24px;
	transform: translateY(10px);
	transition: transform 180ms ease, opacity 180ms ease, visibility 180ms ease, box-shadow 180ms ease, background 180ms ease;
	visibility: hidden;
	width: 56px;
	z-index: 1200;
}

.back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

.back-to-top:hover {
	box-shadow: 0 18px 34px rgba(0, 0, 0, 0.22);
	transform: translateY(-2px);
}

.back-to-top:active {
	transform: translateY(0);
}

.back-to-top:focus-visible {
	outline: 3px solid rgba(13, 110, 253, 0.35);
	outline-offset: 4px;
}

.back-to-top__icon {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	line-height: 1;
}

.back-to-top__icon svg,
.back-to-top svg {
	display: block;
	fill: currentColor;
	height: 22px;
	stroke: none;
	width: 22px;
}

@media (max-width: 640px) {
	.back-to-top {
		bottom: 16px;
		height: 52px;
		right: 16px;
		width: 52px;
	}
}

/* Stronger hero artwork separation for transparent homepage header */
.site-header {
	background: rgba(31, 26, 23, 0.90);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: 2000;
}

body.has-transparent-header.home .site-header:not(.is-scrolled) {
	background: rgba(31, 26, 23, 0.86);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
}

.site-header::before {
	background: linear-gradient(180deg, rgba(31, 26, 23, 0.96), rgba(31, 26, 23, 0.72));
	inset: 0;
	opacity: 1;
	z-index: 0;
}

.site-header.is-scrolled::before,
body:not(.has-transparent-header) .site-header::before {
	opacity: 1;
}

.site-header__inner {
	position: relative;
	z-index: 2;
}

.home-hero,
.home-hero::before,
.home-hero::after {
	z-index: 0;
}

.mobile-menu-overlay {
	z-index: 2090;
}

.mobile-navigation {
	z-index: 2100;
}
