/*
 * Restaurant — WordPress layer: menus as lists, Customizer toggles, blog, comments, widgets,
 * block-editor content and Elementor integration. Design tokens come from restaurant.css.
 */

/* ---------- Base & accessibility ---------- */
.site-main,
.rfoot {
	position: relative;
	z-index: 1;
}

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

.skip-link:focus {
	position: fixed !important;
	top: 1rem;
	left: 1rem;
	z-index: 1000;
	width: auto;
	height: auto;
	padding: 0.8rem 1.2rem;
	clip: auto;
	clip-path: none;
	border-radius: var(--r-sm);
	background: var(--c-accent);
	color: var(--c-night);
	font-weight: 700;
}

/* ---------- Entrance & curtain states ---------- */
.no-js .rpl,
.rpl-seen .rpl {
	display: none;
}

.ptr-in .ptr {
	visibility: visible;
}

.ptr-in .ptr__panel {
	transform: none;
}

/* ---------- Customizer toggles ---------- */
.no-ambient .ambient {
	display: none;
}

.no-pattern.royal .ambient {
	background:
		radial-gradient(60vmax 50vmax at 8% -5%, rgb(var(--c-primary-rgb) / calc(0.16 * var(--glow))), transparent 70%),
		radial-gradient(55vmax 45vmax at 100% 105%, rgb(var(--c-accent-rgb) / calc(0.09 * var(--glow))), transparent 70%),
		radial-gradient(120% 80% at 50% 0%, var(--c-surface), var(--c-bg) 60%);
}

.no-pattern .rmenu__bg {
	background:
		radial-gradient(50vmax 40vmax at 100% 0%, rgb(var(--c-primary-rgb) / calc(0.2 * var(--glow))), transparent 70%),
		radial-gradient(45vmax 40vmax at 0% 100%, rgb(var(--c-accent-rgb) / calc(0.1 * var(--glow))), transparent 70%),
		var(--night);
}

.no-anim .rmenu__word {
	translate: 0 0;
}

.header-static .rh {
	position: absolute;
}

/* Logged-in users: keep the header and full-screen menu below the WordPress toolbar. */
.admin-bar .rh,
.admin-bar .rmenu {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .rh,
	.admin-bar .rmenu {
		top: 46px;
	}
}

.phero__shade {
	opacity: min(1, calc(var(--hero-overlay, 0.55) * 1.82));
}

.rfoot__bg::after {
	opacity: min(1, calc(var(--footer-overlay, 0.82) / 0.82));
}

.rfoot__bg img {
	opacity: clamp(0, calc((1 - var(--footer-overlay, 0.82)) / 0.18), 1);
}

/* ---------- Header: menus rendered as lists ---------- */
.rh__nav ul {
	display: flex;
	gap: 1.6rem;
}

.rh__nav li {
	position: relative;
}

.rh__link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}

.rh__caret {
	width: 0.85rem;
	height: 0.85rem;
	color: var(--gold);
}

.rh__nav .sub-menu {
	position: absolute;
	top: calc(100% + 0.9rem);
	left: -1rem;
	z-index: 5;
	display: grid;
	gap: 0;
	min-width: 13rem;
	padding: 0.6rem;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: rgb(var(--c-night-rgb) / 0.96);
	box-shadow: 0 24px 50px -20px rgb(0 0 0 / calc(0.8 * var(--shadow))), 0 0 40px -16px rgb(var(--c-primary-rgb) / calc(0.4 * var(--glow)));
	opacity: 0;
	visibility: hidden;
	translate: 0 8px;
	transition: opacity 0.25s, translate 0.35s var(--ease), visibility 0s 0.35s;
}

.rh__nav .sub-menu::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -1rem;
	height: 1rem;
}

.rh__nav li:hover > .sub-menu,
.rh__nav li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	translate: 0 0;
	transition: opacity 0.25s, translate 0.35s var(--ease), visibility 0s;
}

.rh__sublink {
	display: block;
	padding: 0.55rem 0.8rem;
	border-radius: var(--r-sm);
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	color: var(--muted);
	transition: background-color 0.25s, color 0.25s;
}

.rh__sublink:hover,
.rh__sublink[aria-current='page'] {
	background: rgb(var(--c-accent-rgb) / 0.08);
	color: var(--gold-2);
}

/* Long site names: one line, smaller, never pushing the header apart. */
.rh__word strong {
	display: block;
	max-width: min(30vw, 24rem);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rh__word--long strong {
	font-size: 1.25rem;
	letter-spacing: 0.08em;
}

.rh__word small {
	max-width: min(30vw, 24rem);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rpl__word {
	flex-wrap: wrap;
	justify-content: center;
	max-width: 92vw;
	font-size: calc(clamp(2.4rem, 1.5rem + 3vw, 4rem) * var(--word-scale, 1));
}

.rfoot__word {
	font-size: calc(11.5vw * var(--word-scale, 1));
}

.rh__brand--image img {
	width: var(--logo-w, 150px);
	max-width: 42vw;
	height: auto;
}

/* ---------- Full-screen menu: list markup ---------- */
.rmenu__list {
	display: grid;
}

.rmenu__list .rmenu__link {
	border-top: 0;
}

.rmenu__item:first-child > .rmenu__link {
	border-top: 1px solid var(--line-soft);
}

.rmenu__sub {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.2rem;
	padding: 0.6rem 0 0.9rem 3.4rem;
	border-bottom: 1px solid var(--line-soft);
}

.rmenu__sub a {
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
	transition: color 0.25s;
}

.rmenu__sub a:hover,
.rmenu__sub a[aria-current='page'] {
	color: var(--gold-2);
}

.rmenu__inner--no-visual {
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.8fr);
}

@media (max-width: 899px) {
	.rmenu__inner--no-visual {
		grid-template-columns: 1fr;
	}

	.rmenu__sub {
		padding-left: 2.75rem;
	}
}

/* ---------- Per-widget overrides ----------
   Derived tokens are re-declared on each widget root so colour / glow / border / radius set
   in a widget's Style tab (as variables on the widget) flow into every gradient and line. */
.rw {
	--em-0: var(--c-bg);
	--em-1: var(--c-surface);
	--gold: var(--c-accent);
	--gold-2: var(--c-accent-2);
	--ivory: var(--c-text);
	--chili: var(--c-primary);
	--ember: var(--c-primary);
	--text: var(--c-text);
	--muted: rgb(var(--c-text-rgb) / 0.66);
	--faint: rgb(var(--c-text-rgb) / 0.38);
	--line: rgb(var(--c-accent-rgb) / calc(0.18 * var(--border)));
	--line-soft: rgb(var(--c-text-rgb) / calc(0.1 * var(--border)));
	--metal: linear-gradient(110deg, var(--c-primary-deep) 0%, var(--c-primary) 32%, var(--c-primary-2) 62%, var(--c-accent) 100%);
	--gilt: linear-gradient(110deg, var(--c-primary) 0%, var(--c-primary-2) 35%, var(--c-accent) 65%, var(--c-primary) 100%);
	--r-sm: calc(12px * var(--radius));
	--r: calc(20px * var(--radius));
	--r-lg: calc(clamp(22px, 1rem + 1.2vw, 34px) * var(--radius));
	color: var(--c-text);
}

/* ---------- Elementor ---------- */
.elementor-widget[class*='elementor-widget-restaurant-'] {
	width: 100%;
}

.elementor-widget[class*='elementor-widget-restaurant-'] > .elementor-widget-container {
	margin: 0;
	padding: 0;
}

.elementor-editor-active .rmenu,
.elementor-editor-active .ptr {
	display: none;
}

/* ---------- Pages & posts ---------- */
.page-wrap,
.blog-wrap {
	position: relative;
	padding-block: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
}

.blog-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2rem, 1rem + 3vw, 4.5rem);
}

.has-sidebar .blog-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem);
	align-items: start;
}

.sidebar-left .blog-wrap .blog-sidebar {
	order: -1;
}

.has-sidebar.sidebar-left .blog-wrap {
	grid-template-columns: minmax(16rem, 21rem) minmax(0, 1fr);
}

.page-wrap .entry,
.single .blog-main .entry {
	max-width: 50rem;
	margin-inline: auto;
}

.has-sidebar .blog-main .entry {
	max-width: none;
}

.entry__title {
	margin-bottom: 1.5rem;
	font-family: var(--f-display);
	font-size: clamp(2.4rem, 1.6rem + 3vw, 4.2rem);
	line-height: 1.05;
}

.post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.4rem;
	margin: 0 0 1.4rem;
	padding: 0;
	list-style: none;
	font-size: 0.82rem;
	color: var(--muted);
}

.post-meta li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.post-meta .icon {
	width: 0.95rem;
	height: 0.95rem;
	color: var(--gold);
}

.post-meta a:hover {
	color: var(--gold-2);
}

/* Post cards */
.post-list--grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
	gap: clamp(1.25rem, 0.8rem + 1.5vw, 2rem);
}

.post-list--list {
	display: grid;
	gap: 1.5rem;
}

.post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.2 * var(--border)));
	border-radius: var(--r-lg);
	background:
		radial-gradient(80% 50% at 100% 100%, rgb(var(--c-primary-rgb) / calc(0.12 * var(--glow))), transparent 60%),
		linear-gradient(170deg, var(--c-surface-2), var(--c-surface) 70%);
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / 0.1), 0 30px 70px -36px rgb(0 0 0 / calc(0.9 * var(--shadow)));
	transition: translate 0.6s var(--ease), border-color 0.4s, box-shadow 0.5s var(--ease);
}

.post-card:hover {
	translate: 0 -6px;
	border-color: rgb(var(--c-accent-rgb) / calc(0.5 * var(--border)));
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / 0.2), 0 30px 70px -30px rgb(var(--c-primary-rgb) / calc(0.5 * var(--glow))), 0 0 48px -12px rgb(var(--c-accent-rgb) / calc(0.28 * var(--glow)));
}

.post-list--list .post-card {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.post-card__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale 1s var(--ease);
}

.post-card:hover .post-card__media img {
	scale: 1.06;
}

.post-card__body {
	display: grid;
	align-content: start;
	gap: 0.75rem;
	padding: clamp(1.25rem, 1rem + 1vw, 1.8rem);
}

.post-card__cat {
	justify-self: start;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.post-card__title {
	font-family: var(--f-display);
	font-size: clamp(1.6rem, 1.3rem + 0.8vw, 2.1rem);
	line-height: 1.1;
}

.post-card__title a:hover {
	color: var(--gold-2);
}

.post-card .post-meta {
	margin: 0;
}

.post-card__excerpt {
	color: var(--muted);
}

.post-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	justify-self: start;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold-2);
}

.post-card__more .icon {
	transition: translate 0.4s var(--ease);
}

.post-card__more:hover .icon {
	translate: 4px 0;
}

.sticky .post-card__cat::after {
	content: ' · ★';
}

/* Pagination & post navigation */
.pagination,
.post-navigation,
.comments-pagination {
	margin-top: 3rem;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
}

.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 2.9rem;
	height: 2.9rem;
	padding-inline: 0.8rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.pagination .page-numbers.current,
.pagination a.page-numbers:hover {
	border-color: transparent;
	background: var(--metal);
	color: var(--on-metal);
}

.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.post-navigation a {
	display: grid;
	gap: 0.3rem;
	height: 100%;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--r);
	transition: border-color 0.3s, background-color 0.3s;
}

.post-navigation a:hover {
	border-color: var(--gold);
	background: rgb(var(--c-accent-rgb) / 0.05);
}

.post-navigation .nav-next {
	text-align: right;
}

.post-navigation small {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.post-navigation span {
	font-family: var(--f-display);
	font-size: 1.35rem;
	line-height: 1.2;
}

/* Entry footer */
.entry__footer {
	display: grid;
	gap: 2rem;
	margin-top: 3rem;
}

.entry__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.entry__tags .icon {
	color: var(--gold);
}

.entry__tags a {
	padding: 0.35rem 0.9rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	font-size: 0.78rem;
	color: var(--muted);
}

.entry__tags a:hover {
	border-color: var(--gold);
	color: var(--gold-2);
}

.author-box {
	display: flex;
	gap: 1.25rem;
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: linear-gradient(160deg, var(--c-surface-2), var(--c-surface));
}

.author-box img {
	flex: none;
	border-radius: 50%;
}

.author-box small {
	display: block;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.author-box strong {
	font-family: var(--f-display);
	font-size: 1.5rem;
	font-weight: 400;
}

.author-box p {
	margin-top: 0.4rem;
	color: var(--muted);
}

/* ---------- Content (block editor output) ---------- */
.entry-content {
	font-size: 1.06rem;
	line-height: 1.8;
	color: rgb(var(--c-text-rgb) / 0.86);
}

.entry-content::after {
	content: '';
	display: table;
	clear: both;
}

.entry-content > * + * {
	margin-top: 1.4em;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	margin-top: 2em;
	font-family: var(--f-display);
	line-height: 1.12;
	color: var(--c-text);
}

.entry-content h2 {
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.8rem);
}

.entry-content h3 {
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem);
}

.entry-content h4 {
	font-size: 1.4rem;
}

.entry-content a {
	color: var(--gold-2);
	text-decoration: underline;
	text-decoration-color: rgb(var(--c-accent-rgb) / 0.4);
	text-underline-offset: 0.2em;
}

.entry-content a:hover {
	text-decoration-color: currentColor;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.4em;
	list-style: revert;
}

.entry-content li + li {
	margin-top: 0.4em;
}

.entry-content li::marker {
	color: var(--gold);
}

.entry-content blockquote,
.entry-content .wp-block-quote {
	position: relative;
	padding: 1.5rem 1.8rem;
	border-left: 2px solid var(--gold);
	border-radius: 0 var(--r) var(--r) 0;
	background: linear-gradient(90deg, rgb(var(--c-accent-rgb) / 0.08), transparent);
	font-family: var(--f-display);
	font-size: 1.5rem;
	font-style: italic;
	line-height: 1.4;
	color: var(--c-text);
}

.entry-content blockquote cite,
.entry-content .wp-block-quote cite {
	display: block;
	margin-top: 0.8rem;
	font-family: var(--f-sans);
	font-size: 0.8rem;
	font-style: normal;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold);
}

.entry-content .wp-block-pullquote {
	padding: 2rem 0;
	border-block: 1px solid var(--line);
	text-align: center;
}

.entry-content .wp-block-pullquote blockquote {
	border: 0;
	background: none;
}

.entry-content img,
.entry-content video {
	height: auto;
	border-radius: var(--r);
}

.entry-content figcaption,
.wp-caption-text {
	margin-top: 0.6rem;
	font-size: 0.85rem;
	text-align: center;
	color: var(--faint);
}

.entry-content hr,
.wp-block-separator {
	height: 1px;
	border: 0;
	background: linear-gradient(90deg, transparent, var(--gold), transparent);
	opacity: 0.6;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.entry-content th,
.entry-content td {
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--line-soft);
	text-align: left;
}

.entry-content th {
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold);
}

.entry-content pre,
.entry-content code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
}

.entry-content pre {
	overflow-x: auto;
	padding: 1.2rem 1.4rem;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: var(--c-night);
}

.entry-content :not(pre) > code {
	padding: 0.15em 0.4em;
	border-radius: 6px;
	background: rgb(var(--c-accent-rgb) / 0.1);
}

.entry-content .wp-block-button__link,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 3.2rem;
	padding: 0 1.6rem;
	border-radius: var(--btn-r);
	background: var(--metal);
	color: var(--on-metal);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-decoration: none;
	text-transform: uppercase;
	box-shadow: 0 12px 30px -12px rgb(var(--c-primary-rgb) / calc(0.55 * var(--glow)));
}

.entry-content .is-style-outline .wp-block-button__link {
	border: 1px solid var(--gold);
	background: transparent;
	color: var(--c-text);
}

.entry-content .wp-block-image,
.entry-content .wp-block-gallery {
	margin-block: 2em;
}

.alignleft {
	float: left;
	margin: 0.4em 1.6em 1em 0;
}

.alignright {
	float: right;
	margin: 0.4em 0 1em 1.6em;
}

.aligncenter {
	margin-inline: auto;
	text-align: center;
}

.page-wrap .alignwide {
	margin-inline: calc(min(0px, (50rem - 70rem) / 2));
	max-width: 70rem;
}

.page-wrap .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}

.page-links {
	display: flex;
	gap: 0.5rem;
	margin-top: 2rem;
}

.has-primary-color { color: var(--c-primary); }
.has-accent-color { color: var(--c-accent); }
.has-text-color.has-text-color { color: var(--c-text); }
.has-primary-background-color { background-color: var(--c-primary); }
.has-accent-background-color { background-color: var(--c-accent); }
.has-background-background-color { background-color: var(--c-bg); }
.has-surface-background-color { background-color: var(--c-surface); }

/* ---------- Forms (search, comments, widgets) ---------- */
.search-form {
	position: relative;
	display: flex;
	max-width: 32rem;
}

.search-form__input,
.comment-form input[type='text'],
.comment-form input[type='email'],
.comment-form input[type='url'],
.comment-form textarea,
.widget select {
	width: 100%;
	min-height: 3.2rem;
	padding: 0.8rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	background: rgb(var(--c-night-rgb) / 0.6);
	color: var(--c-text);
	transition: border-color 0.3s, box-shadow 0.3s;
}

.search-form__input {
	padding-right: 3.4rem;
	border-radius: var(--btn-r);
}

.search-form__input:focus,
.comment-form input:focus,
.comment-form textarea:focus {
	border-color: var(--gold);
	outline: none;
	box-shadow: 0 0 0 3px rgb(var(--c-accent-rgb) / 0.18), 0 0 24px -6px rgb(var(--c-primary-rgb) / calc(0.5 * var(--glow)));
}

.search-form__btn {
	position: absolute;
	top: 0.35rem;
	right: 0.35rem;
	bottom: 0.35rem;
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--metal);
	color: var(--on-metal);
}

/* ---------- Comments ---------- */
.comments {
	max-width: 50rem;
	margin: 4rem auto 0;
}

.comments__title,
.comment-reply-title {
	margin-bottom: 1.5rem;
	font-family: var(--f-display);
	font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.4rem);
}

.comment-list {
	display: grid;
	gap: 1rem;
	margin: 0 0 3rem;
	padding: 0;
	list-style: none;
}

.comment-list .children {
	display: grid;
	gap: 1rem;
	margin-top: 1rem;
	padding-left: clamp(1rem, 4vw, 3rem);
	list-style: none;
}

.comment-body {
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--line-soft);
	border-radius: var(--r);
	background: rgb(var(--c-text-rgb) / 0.025);
}

.comment-author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.comment-author img {
	border-radius: 50%;
}

.comment-author .fn {
	font-family: var(--f-display);
	font-size: 1.25rem;
	font-style: normal;
}

.comment-metadata {
	margin: 0.3rem 0 0.8rem;
	font-size: 0.78rem;
	color: var(--faint);
}

.comment-content {
	color: var(--muted);
}

.reply a {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold-2);
}

.comment-form {
	display: grid;
	gap: 1rem;
}

.comment-form label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold);
}

.comment-form .form-submit .btn {
	padding-inline: 1.8rem;
	border: 0;
}

.comment-form-cookies-consent {
	display: flex;
	gap: 0.6rem;
	font-size: 0.85rem;
	color: var(--muted);
}

.comment-form-cookies-consent label {
	margin: 0;
	font-size: inherit;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: inherit;
}

/* ---------- Sidebar widgets ---------- */
.blog-sidebar {
	position: sticky;
	top: 7rem;
	display: grid;
	gap: 1.25rem;
}

.widget {
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: linear-gradient(160deg, var(--c-surface-2), var(--c-surface) 75%);
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / 0.1);
}

.widget-title,
.widget .wp-block-heading {
	margin-bottom: 1rem;
	font-family: var(--f-display);
	font-size: 1.5rem;
}

.widget ul {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.widget li {
	color: var(--muted);
}

.widget a:hover {
	color: var(--gold-2);
}

/* Core blocks used as widgets (search, latest posts/comments, categories). */
.wp-block-search__label {
	display: block;
	margin-bottom: 0.8rem;
	font-family: var(--f-display);
	font-size: 1.5rem;
	font-weight: 400;
}

.wp-block-search__inside-wrapper {
	position: relative;
	display: flex;
	gap: 0.4rem;
	padding: 0.3rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	background: rgb(var(--c-night-rgb) / 0.6);
	transition: border-color 0.3s, box-shadow 0.3s;
}

.wp-block-search__inside-wrapper:focus-within {
	border-color: var(--gold);
	box-shadow: 0 0 0 3px rgb(var(--c-accent-rgb) / 0.18), 0 0 24px -6px rgb(var(--c-primary-rgb) / calc(0.5 * var(--glow)));
}

.wp-block-search__input {
	flex: 1;
	min-width: 0;
	min-height: 2.8rem;
	padding: 0 1rem;
	border: 0;
	background: transparent;
	color: var(--c-text);
	outline: none;
}

.wp-block-search__button {
	min-height: 2.8rem;
	margin: 0;
	padding: 0 1.2rem;
	border: 0;
	border-radius: var(--btn-r);
	background: var(--metal);
	color: var(--on-metal);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
}

.wp-block-latest-posts,
.wp-block-latest-comments,
.wp-block-categories,
.wp-block-archives {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wp-block-latest-comments__comment {
	margin: 0;
	color: var(--muted);
}

.widget .wp-block-group__inner-container > * + * {
	margin-top: 0.8rem;
}

/* ---------- 404 ---------- */
.notfound {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 100svh;
	padding: 8rem 0 5rem;
	overflow: hidden;
	text-align: center;
}

.notfound__inner {
	position: relative;
	z-index: 1;
	display: grid;
	justify-items: center;
	gap: 1.4rem;
}

.notfound__code {
	font-family: var(--f-display);
	font-size: clamp(7rem, 4rem + 14vw, 16rem);
	line-height: 0.85;
	background: linear-gradient(180deg, rgb(var(--c-accent-2-rgb) / 0.7), rgb(var(--c-accent-rgb) / 0.08));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.notfound__text {
	max-width: 34rem;
	color: var(--muted);
}

.no-results {
	display: grid;
	gap: 1.2rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
	.has-sidebar .blog-wrap,
	.has-sidebar.sidebar-left .blog-wrap {
		grid-template-columns: minmax(0, 1fr);
	}

	.sidebar-left .blog-wrap .blog-sidebar {
		order: 0;
	}

	.blog-sidebar {
		position: static;
	}
}

@media (max-width: 699px) {
	.post-list--list .post-card {
		grid-template-columns: 1fr;
	}

	.post-navigation .nav-links {
		grid-template-columns: 1fr;
	}

	.post-navigation .nav-next {
		text-align: left;
	}

	.alignleft,
	.alignright {
		float: none;
		margin: 1em 0;
	}
}

/* ================= Mobile polish ================= */
@media (max-width: 699px) {
	/* Logo: whole name visible next to the menu button and the booking button. */
	.royal .rh__bar {
		gap: 0.5rem;
		padding-inline: 1rem;
	}

	.royal .rh__word strong {
		max-width: 44vw;
		font-size: 1.08rem;
		letter-spacing: 0.12em;
	}

	.royal .rh__word--long strong {
		font-size: 0.95rem;
		letter-spacing: 0.05em;
	}

	.royal .rh__brand {
		gap: 0.45rem;
	}

	.royal .rh__brand .crest {
		width: 28px;
		height: 28px;
	}

	.royal .rh__right .btn--sm {
		min-height: 2.5rem;
		padding-inline: 0.95rem;
		font-size: 0.62rem;
		letter-spacing: 0.1em;
	}

	.royal .reyebrow,
	.royal .eyebrow {
		letter-spacing: 0.2em;
	}

	/* Signature wheel: bigger plate, no empty screen below it. */
	.royal .wheel {
		--plate: min(54vw, 230px);
		--wheel-r: calc(var(--plate) * 1.55);
		height: auto;
		min-height: 0;
		padding-bottom: 3.2rem;
	}

	.royal .wheel__stage {
		flex: none;
		height: calc(var(--plate) + 13rem);
		overflow: hidden;
	}

	.royal .wheel__name {
		font-size: clamp(1.6rem, 7vw, 2.1rem);
	}

	/* Timeline: line and dots on the left, cards full width. */
	.royal .tl__line,
	.royal .tl__dot {
		left: 1rem;
	}

	.royal .tl__dot {
		top: 1.6rem;
	}

	.royal .tl__item {
		padding-left: 2.6rem;
	}

	/* Footer: shorter, links in two columns. */
	.royal .rfoot__brand p {
		max-width: none;
		font-size: 1.35rem;
	}

	.royal .rfoot__links {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem 1rem;
	}

	.royal .rfoot__grid {
		gap: 2rem;
	}

	.royal .rfoot__actions {
		flex-direction: column;
		align-items: center;
	}

	/* Section titles never overflow. */
	.royal .title,
	.royal .phero__title,
	.royal .rhero__title {
		overflow-wrap: break-word;
	}

	/* Menu lists: price never squeezes the dish name. */
	.royal .mitem__head,
	.royal .mboard__item {
		gap: 0.6rem;
	}
}

@media (max-width: 380px) {
	.royal .rh__menu {
		gap: 0;
	}

	.royal .rh__right .btn--sm {
		padding-inline: 0.75rem;
		font-size: 0.58rem;
	}

	.royal .rh__word strong {
		max-width: 40vw;
		font-size: 0.98rem;
	}
}

/* Blog: sidebar and widgets stay inside the screen. */
.blog-wrap > *,
.blog-sidebar,
.widget {
	min-width: 0;
	max-width: 100%;
}

.widget {
	overflow-wrap: anywhere;
}

.wp-block-search__inside-wrapper,
.wp-block-search__input {
	min-width: 0;
}

/* Tablet: headings with buttons stack, so the title keeps its full width. */
@media (max-width: 1023px) {
	.royal .section-head--split {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
	}
}
