/*
Theme Name: Pecado Capital
Theme URI: https://blisq.pt
Author: Blisq Creative
Author URI: https://blisq.pt
Description: Tema WordPress Pecado Capital, com base modular Blisq.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: blisq
*/

@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&display=swap');

:root {
	--color-background: #f2eadf;
	--color-cream: #f5efe6;
	--color-text: #4e4633;
	--color-sage: #a3ad95;
	--color-gold: #b0996f;
	--color-muted: #a1947f;
	--color-border: #e8dfd3;
	--font-body: 'Libre Caslon Text', Georgia, serif;
	--font-label: 'Instrument Sans', sans-serif;
	--section-space: clamp(3.5rem, 5.21vw, 6.25rem);
	--container-width: 1750px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 1.5rem;
}

body {
	margin: 0;
	background: var(--color-background);
	color: var(--color-text);
	font: 1rem/1.7 var(--font-body);
	letter-spacing: -.02em;
}

h1,
h2,
h3,
h4,
p,
figure {
	margin: 0;
}

h1,
h2,
h3,
h4 {
	font-weight: 400;
}

img,
video,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
[type="button"],
[type="submit"] {
	cursor: pointer;
}

button {
	color: inherit;
}

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

a,
button {
	touch-action: manipulation;
}

:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

[hidden] {
	display: none !important;
}

.container {
	width: 100%;
	max-width: var(--container-width);
	margin-inline: auto;
	padding-inline: 20px;
}

.container-wide {
	max-width: 1920px;
	padding-inline: 40px;
}

.container-narrow {
	max-width: 1443px;
}

.section {
	padding-block-start: var(--section-space);
}

.section-heading {
	margin-block-end: 60px;
}

.section-heading-split {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
}

.eyebrow {
	margin-block-end: 18px;
	color: var(--color-gold);
	font: 700 .875rem/1.2 var(--font-label);
	letter-spacing: 0;
	text-transform: uppercase;
}

.section-title,
.display-title,
.hero-title {
	font-weight: 500;
	font-family: var(--font-body);
	font-style: italic;
	letter-spacing: -.03em;
}

.section-title {
	font-size: clamp(2.3rem, 3.44vw, 4.125rem);
	line-height: 1;
}

.section-title-small {
	font-size: clamp(2rem, 2.09vw, 2.5rem);
}

.section-description {
	max-width: 550px;
}

.prose p+p {
	margin-block-start: 14px;
}

.text-lines,
.prose p {
	white-space: pre-line;
}

.text-line {
	display: block;
}

.small-print {
	font: 400 .625rem/1.6 var(--font-label);
	text-transform: uppercase;
	letter-spacing: 0;
}

.text-link,
.instagram-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1.3;
}

.text-link::after {
	display: inline-block;
	transition: transform .2s ease;
}

.text-link:not(.text-link-external)::after {
	content: '';
	flex: 0 0 9px;
	width: 9px;
	aspect-ratio: 9 / 6;
	background: currentColor;
	mask: url('assets/images/icon-arrow.svg') center / contain no-repeat;
}

.text-link:hover::after,
.text-link:focus-visible::after {
	transform: translateX(4px);
}

.text-link-external::after {
	content: '↗';
}

.text-link-external:hover::after {
	transform: translate(3px, -3px);
}

.instagram-link {
	gap: 10px;
	font-size: 1.125rem;
	font-style: italic;
	line-height: 1.7;
}

.instagram-icon {
	width: 24px;
	aspect-ratio: 1;
	background: currentColor;
	mask: url('assets/images/pecado/instagram.svg') center / contain no-repeat;
	transition: transform .2s ease;
}

.instagram-link:hover .instagram-icon {
	transform: rotate(-8deg);
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: #98a18b;
	color: var(--color-cream);
	line-height: 1.3;
	transition: background-color .2s ease, color .2s ease;
}

.button:hover,
.button:focus-visible {
	background: var(--color-text);
}

.menu {
	display: flex;
	padding: 0;
	margin: 0;
	list-style: none;
}

/* Cabeçalho: o filtro insere o logótipo entre os itens do menu WordPress. */
.site-header {
	padding-block: 30px 41px;
}

.header-inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
}

.header-navigation {
	grid-column: 2;
}

.header-brand {
	display: none;
}

.menu-primary {
	align-items: center;
	gap: 40px;
}

.menu-primary>li:not(.menu-brand) {
	font: 400 .625rem/1.2 var(--font-label);
	letter-spacing: 0;
	text-transform: uppercase;
}

.menu-primary>li:not(.menu-brand)>a {
	display: inline-block;
	position: relative;
	padding-block: 10px;
}

.menu-primary>li:not(.menu-brand)>a::after {
	content: '';
	position: absolute;
	inset: auto 0 5px;
	border-bottom: 1px solid;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s ease;
}

.menu-primary>li>a:hover::after,
.menu-primary>li>a:focus-visible::after {
	transform: scaleX(1);
}

.menu-brand {
	margin-inline: 14px;
}

.menu-brand img {
	width: 150px;
	height: auto;
}

.header-reservation {
	justify-self: end;
	white-space: nowrap;
}

.menu-toggle {
	display: none;
}

/* As duas imagens do Figma preservam o primeiro plano por cima do título. */
.hero {
	position: relative;
	padding-block-end: clamp(3rem, 6.67vw, 8rem);
	isolation: isolate;
}

.hero::before {
	content: '';
	position: absolute;
	inset: auto 0 0;
	height: 59%;
	background: url('assets/images/pecado/hero-texture.webp') center bottom / 100% 100% no-repeat;
	z-index: -1;
}

.hero-stage {
	position: relative;
}

.hero-visual {
	position: relative;
	display: grid;
	max-width: 1636px;
	margin-inline: auto;
	isolation: isolate;
	overflow: hidden;
}

.hero-visual>* {
	grid-area: 1 / 1;
	min-width: 0;
}

.hero-background,
.hero-foreground {
	width: 100%;
	aspect-ratio: 1636 / 775;
	object-fit: cover;
}

.hero-background {
	z-index: 0;
}

.hero-title {
	z-index: 1;
	align-self: start;
	justify-self: start;
	display: flex;
	margin-block-start: 8.07%;
	margin-inline-start: 17.8%;
	font-size: clamp(5rem, 11.93vw, 14.3125rem);
	line-height: .82;
	white-space: nowrap;
}

.hero-title span+span {
	transform: translateY(.297em);
	margin-inline-start: -.09em;
}

.hero-foreground {
	position: absolute;
	inset: -5.935% 0 auto;
	width: 100%;
	height: 116.39%;
	object-fit: fill;
	pointer-events: none;
	z-index: 2;
}

.hero-caption {
	z-index: 3;
	align-self: stretch;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 20px 20px 40px;
	background: linear-gradient(transparent 72%, #160c06);
	color: #fff;
}

.hero-caption p {
	max-width: 581px;
	text-align: center;
	line-height: 1.6;
}

.hero-aside {
	position: absolute;
	inset: 53.5% 60px auto auto;
	text-align: right;
	z-index: 4;
}

.hero-aside p {
	font-size: clamp(1rem, 1.31vw, 1.5625rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.5;
}

.highlights {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	max-width: 2560px;
	margin-inline: auto;
}

.highlight {
	display: grid;
	overflow: hidden;
	isolation: isolate;
}

.highlight>* {
	grid-area: 1 / 1;
}

.highlight img {
	width: 100%;
	height: 100%;
	aspect-ratio: 481 / 453;
	object-fit: cover;
	z-index: -1;
}

.highlight:first-child img {
	object-position: 45% 55%;
}

.highlight h2 {
	font-weight: 500;
	align-self: center;
	justify-self: center;
	max-width: 90%;
	padding: 20px;
	color: var(--color-cream);
	text-align: center;
	font-size: clamp(1.125rem, 1.46vw, 1.75rem);
	font-style: italic;
	line-height: .98;
}

/* Ementa. */
#ementa .section-heading {
	max-width: 1394px;
	justify-content: flex-start;
	gap: clamp(40px, 7.35vw, 141px);
}

#ementa .section-heading>div {
	flex: 0 1 699px;
}

#ementa .section-description {
	flex: 0 1 550px;
}

.menu-categories {
	display: flex;
	scrollbar-width: none;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-block-end: 30px;
	font-size: .875rem;
	line-height: 1.5;
}

.menu-categories a {
	padding: 6px 10px;
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease;
}

.menu-categories a:hover,
.menu-categories a[aria-selected="true"] {
	border-color: currentColor;
}

.menu-panel+.menu-panel {
	margin-block-start: 30px;
}

.menu-panel[role="tabpanel"] {
	margin-block-start: 0;
}

.menu-category-description {
	margin-block-start: 0;
	margin-block-end: 30px;
	color: var(--color-muted);
	font-size: .875rem;
	line-height: 1.5;
}

.menu-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 9px 10px;
}

.menu-dish {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 16px 20px 20px;
	border-bottom: 1px solid var(--color-border);
	transition: border-color .2s ease;
}

.menu-dish::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--color-sage);
	transform: translateY(102%);
	transition: transform .2s ease-out;
	z-index: -1;
}

@media (min-width: 601px) {
	.menu-dish:hover {
		border-color: var(--color-sage);
	}

	.menu-dish:hover::before {
		transform: translateY(0);
	}

	.menu-dish:hover .dish-price,
	.menu-dish:hover p {
		color: #e9e8de;
	}
}

.dish-heading {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.dish-heading h4 {
	flex: 1;
	min-width: 0;
	font-size: 1.375rem;
	font-style: italic;
	font-weight: 700;
	line-height: 1.1;
}

.dish-price {
	font-weight: 600;
	flex-shrink: 0;
	color: var(--color-sage);
	font-size: 1.1875rem;
	line-height: 1.5;
}

.menu-dish p {
	margin-block-start: 8px;
	color: var(--color-muted);
	font-size: .875rem;
	line-height: 1.5;
}

.menu-note {
	max-width: 581px;
	margin: 30px auto 0;
	color: var(--color-muted);
	text-align: center;
}

.menu-empty {
	padding-block: 30px;
	color: var(--color-muted);
}

/* Imagens e vídeos partilham o mesmo componente e proporção. */
.media {
	display: grid;
	overflow: hidden;
}

.media img,
.media video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.executive {
	padding-block-end: var(--section-space);
}

.executive-composition {
	display: grid;
	max-width: 1726px;
}

.executive-composition>* {
	grid-area: 1 / 1;
}

.executive-content {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 88.67%;
	margin: 8.24% 0 5.4% 6.46%;
	padding: clamp(40px, 4.12vw, 79px) 20px clamp(35px, 2.76vw, 53px);
	background: #e5ddd1;
	text-align: center;
}

.executive-content::before,
.gallery-section::before,
.table-note:nth-child(3)::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url('assets/images/pecado/paper-texture.webp') center / cover;
	mix-blend-mode: multiply;
	opacity: .36;
	pointer-events: none;
	z-index: -1;
}

.executive-content .eyebrow {
	margin-block-end: 20px;
}

.display-title {
	font-size: clamp(4rem, 9.17vw, 11rem);
	line-height: .76;
	color: var(--color-cream);
}

.executive-content .section-description {
	max-width: 461px;
	margin-block-start: 12px;
	color: #706e6a;
}

.executive-content .instagram-link {
	margin-block-start: 18px;
}

.executive-media {
	z-index: 1;
	align-self: start;
	aspect-ratio: 237 / 213;
}

.executive-media-1 {
	width: 14.05%;
	margin-inline-start: 27.58%;
}

.executive-media-2 {
	width: 14.12%;
	margin: 5.93% 0 0 85.88%;
	aspect-ratio: 238 / 343;
}

.executive-media-3 {
	width: 15.13%;
	margin-block-start: 17.56%;
	aspect-ratio: 255 / 342;
}

.executive-media-4 {
	align-self: end;
	width: 14.59%;
	margin: 0 0 0 68.56%;
	aspect-ratio: 246 / 226;
}

.executive-media-4 img {
	object-position: center;
}

/* As folhas entram uma vez no ecrã; o cartão ativo fica à frente. */
.table-section {
	background: var(--color-sage);
	overflow: clip;
}

.table-layout {
	display: grid;
	grid-template-columns: 43.85% minmax(0, 1fr);
	gap: clamp(40px, 6.35vw, 122px);
	padding-inline: 0;
}

.table-media {
	display: grid;
	grid-template-columns: minmax(0, 397fr) minmax(0, 445fr);
	min-width: 0;
}

.table-media .media {
	width: 100%;
	min-width: 0;
	height: 100%;
}

.table-media .media:first-child {
	aspect-ratio: 397 / 757;
}

.table-media .media:last-child {
	aspect-ratio: 445 / 757;
}

.table-content {
	position: relative;
	min-width: 0;
	padding: clamp(60px, 10.73vw, 206px) 74px 0 0;
}

.table-content .eyebrow {
	color: #6f7c5d;
	margin-block-end: 16px;
}

.table-content .section-title {
	color: var(--color-text);
}

.table-notes {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	isolation: isolate;
	margin: clamp(40px, 2.344vw, 45px) 0 -100px -4px;
}

.table-note {
	--note-offset: 0px;
	--note-rotation: -8.286deg;
	--note-start-x: 21.25%;
	--note-start-y: 126.07%;
	--note-start-rotation: -8.286deg;
	grid-area: 1 / 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	width: 400px;
	max-width: 55%;
	aspect-ratio: 400 / 349;
	padding: 60px 35px;
	background: var(--color-gold);
	color: #5e3a14;
	transform: translateY(var(--note-offset)) translateY(var(--note-lift, 0px)) rotate(var(--note-rotation));
	transition: transform .6s cubic-bezier(.34, 1.56, .64, 1), opacity .25s ease-out;
	transition-delay: var(--note-entry-delay, 0s);
}

.has-js .table-notes:not(.is-visible) .table-note {
	opacity: 0;
	pointer-events: none;
	transition: none;
	transform: translate(var(--note-start-x), var(--note-start-y)) translateY(var(--note-offset)) rotate(var(--note-start-rotation));
}

.has-js .table-notes.is-visible:not(.is-ready) .table-note {
	pointer-events: none;
}

.table-notes.is-ready .table-note {
	transition: transform .2s ease-out;
}

.table-note[role="button"] {
	cursor: pointer;
}

.table-notes.is-ready .table-note.is-active {
	--note-lift: -12px;
	z-index: 4;
	transition-delay: 0s;
}

.table-note:focus-visible {
	outline: 2px solid var(--color-text);
	outline-offset: 4px;
}

.table-note h4,
.table-note p {
	width: 100%;
	max-width: 266px;
	margin-inline: 0;
}

.table-note h4 {
	font-size: 1.5rem;
	font-style: italic;
	font-weight: 500;
	line-height: 1.3;
	color: var(--color-cream);
}

.table-note p {
	margin-block-start: 10px;
	font-size: .875rem;
}

.table-note:nth-child(2) {
	--note-offset: 35px;
	--note-rotation: 0deg;
	--note-start-x: 4.87%;
	--note-start-y: 112.61%;
	--note-start-rotation: 11.369deg;
	margin-inline-start: 22.5%;
	background: var(--color-text);
	color: #f5efe699;
}

.table-note:nth-child(3) {
	--note-offset: 88px;
	--note-rotation: 8.789deg;
	--note-start-x: 18.24%;
	--note-start-y: 103.15%;
	--note-start-rotation: 19.934deg;
	position: relative;
	isolation: isolate;
	margin-inline-start: 42%;
	background: #e6ded1;
}

.table-note:nth-child(3) h4 {
	color: var(--color-text);
}

.table-note:nth-child(3) p {
	color: #160c064d;
}

.table-note.is-active:nth-child(3) p {
	color: #160c06;
}

/* Espaço e contactos. */
.space-layout {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: 699fr 555fr;
	align-items: center;
	gap: clamp(40px, 7.76vw, 149px);
}

.space-layout::before {
	content: '';
	position: absolute;
	left: -119px;
	top: -50px;
	width: 493px;
	aspect-ratio: 493 / 792;
	background: url('assets/images/pecado/espaco-watermark.png') center / contain no-repeat;
	mix-blend-mode: multiply;
	z-index: -1;
}

.space-content {
	padding-block-start: 68px;
	padding-inline-start: clamp(0px, 2.92vw, 56px);
}

.space-content .section-title {
	margin-block-end: 18px;
}

.space-content>.text-link {
	margin-block-start: 30px;
}

.space-content .section-description {
	max-width: 499px;
}

.space-media {
	aspect-ratio: 555 / 672;
	align-self: start;
}

.contact-grid {
	display: grid;
	grid-template-columns: 209fr 301fr;
	gap: 40px;
	max-width: 550px;
	margin-block-start: 30px;
}

.contact-grid .eyebrow {
	margin-block-end: 7px;
}

.contact-grid address {
	font-style: normal;
}

.contact-phone {
	line-height: 1.7;
	margin-block-end: 7px;
}

.contact-phone small {
	font-size: .625rem;
}

.contact-phone .small-print {
	display: block;
	color: #afa897;
	font-family: 'Poppins', sans-serif;
}

.contact-email {
	overflow-wrap: anywhere;
}

.contact-phone a,
.contact-email {
	transition: color .2s ease;
}

.contact-phone a:hover,
.contact-phone a:focus-visible,
.contact-email:hover,
.contact-email:focus-visible {
	color: #8d6033;
}

/* Galeria horizontal nativa, sem dependência de uma biblioteca de sliders. */
.gallery-section {
	position: relative;
	isolation: isolate;
}

.gallery-section::before {
	inset: 40% 0 -200px;
	background-color: #ebe2d5;
}

.gallery-section .section-heading {
	margin-block-end: 40px;
}

.gallery-track {
	display: flex;
	max-width: 2560px;
	margin-inline: auto;
	gap: 10px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	cursor: grab;
	touch-action: pan-x pan-y;
}

.gallery-track::-webkit-scrollbar {
	display: none;
}

.gallery-track.is-dragging {
	cursor: grabbing;
	user-select: none;
}

.gallery-track.is-dragging,
.gallery-track.is-settling {
	scroll-snap-type: none;
}

.gallery-item {
	flex: 0 0 20.21%;
	max-width: 388px;
	aspect-ratio: 388 / 512;
	overflow: hidden;
	scroll-snap-align: start;
}

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

.gallery-item:nth-child(3) img {
	object-position: center 75%;
}

.cta-section {
	position: relative;
	padding-block: 86px var(--section-space);
}

.cta-card {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	max-width: 1037px;
	padding: 46px 70px 48px 91px;
	overflow: hidden;
	background: #8d9580 url('assets/images/pecado/cta-texture.webp') center / cover;
}

.cta-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url('assets/images/pecado/cta-decoration.svg') -792px -607px / 1514px 2308px no-repeat;
	z-index: -1;
	pointer-events: none;
}

.cta-card .section-title {
	max-width: 480px;
}

.cta-card p {
	margin-block-start: 10px;
	color: var(--color-cream);
	font-size: 1.25rem;
}

.cta-card .button {
	flex-shrink: 0;
	align-self: flex-end;
	margin-block-end: 0;
}

/* Rodapé. */
.site-footer {
	position: relative;
	isolation: isolate;
	padding-block: 70px 40px;
	color: var(--color-cream);
	background: var(--color-text);
	font-size: .875rem;
}

.site-footer::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url('assets/images/pecado/footer-pattern.webp') center / cover;
	z-index: -1;
	pointer-events: none;
}

.footer-columns {
	display: flex;
	align-items: flex-start;
	gap: 80px;
}

.site-footer .eyebrow {
	margin-block-end: 12px;
	color: #98a18b;
}

.footer-social,
.menu-footer {
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	line-height: 1.2;
}

.footer-cookie {
	display: block;
	border: 0;
	background: none;
	padding: 0;
	margin-block-end: 12px;
	font-size: inherit;
	line-height: 1.2;
}

.menu-footer a:hover,
.footer-cookie:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.footer-bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-block-start: clamp(80px, 12.5vw, 240px);
}

.footer-brand {
	display: block;
	width: 69%;
	max-width: 1266px;
}

.footer-brand img {
	width: 100%;
	height: auto;
}

.footer-wordmark {
	display: grid;
	grid-template-columns: 556fr 665fr;
	gap: 3.56%;
}

.creator-credit {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	gap: 8px;
	font: 400 .8125rem/1.39 'Red Hat Display', sans-serif;
	letter-spacing: 0;
}

/* Conteúdo editorial partilhado por páginas interiores e artigos. */
.section-common {
	padding-block: clamp(2rem, 5vw, 5rem) clamp(4rem, 8vw, 7rem);
}

.container-common {
	width: 100%;
	max-width: 52rem;
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 2rem);
}

.header-common {
	margin-block-end: clamp(1rem, 2.5vw, 1.5rem);
	padding-block-end: clamp(1rem, 2vw, 1.5rem);
	border-bottom: 1px solid var(--color-border);
}

.title-common {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(1.625rem, 1.25rem + 1.25vw, 2.25rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.12;
	letter-spacing: -.04em;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.content-common {
	display: flow-root;
	font-family: var(--font-label);
	font-size: clamp(.875rem, .825rem + .25vw, 1rem);
	line-height: 1.7;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}

.content-common > * + * {
	margin-block-start: 1em;
}

.content-common :is(h1, h2, h3, h4, h5, h6) {
	margin-block: 1em .45em;
	font-family: var(--font-body);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: -.025em;
	text-wrap: balance;
}

.content-common h1 {
	font-size: clamp(1.625rem, 1.25rem + 1.25vw, 2.25rem);
}

.content-common h2 {
	font-size: clamp(1.375rem, 1.125rem + .75vw, 1.75rem);
	font-style: italic;
}

.content-common h3 {
	font-size: clamp(1.1875rem, 1.0625rem + .5vw, 1.4375rem);
}

.content-common h4 {
	font-size: clamp(1.0625rem, 1rem + .25vw, 1.25rem);
}

.content-common :is(h5, h6) {
	font-family: var(--font-label);
	font-size: 1em;
	font-weight: 600;
}

.content-common :is(h1, h2, h3, h4, h5, h6) + * {
	margin-block-start: 0;
}

.content-common > :first-child {
	margin-block-start: 0;
}

.content-common > :last-child {
	margin-block-end: 0;
}

.content-common a:where(:not(.button, .wp-block-button__link)) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
	transition: color .2s ease;
}

.content-common a:where(:not(.button, .wp-block-button__link)):hover {
	color: #8d6033;
}

.content-common :is(strong, b, dt) {
	font-weight: 600;
}

.content-common :is(ul, ol) {
	padding-inline-start: 1.5em;
}

.content-common li + li {
	margin-block-start: .45em;
}

.content-common li > :is(ul, ol, p) {
	margin-block: .5em 0;
}

.content-common li::marker {
	color: #8d6033;
}

.content-common :is(ul, ol, dl, blockquote, pre, figure) {
	margin-inline: 0;
	margin-block-end: 0;
}

.content-common dt:not(:first-child) {
	margin-block-start: 1em;
}

.content-common dd {
	margin-inline-start: 1.25em;
}

.content-common blockquote {
	padding: clamp(1rem, 2.5vw, 1.5rem);
	border-inline-start: 3px solid var(--color-gold);
	background: #ece4d8;
	font-family: var(--font-body);
	font-size: clamp(1rem, .9375rem + .25vw, 1.125rem);
	font-style: italic;
	line-height: 1.65;
}

.content-common blockquote p + p {
	margin-block-start: 1em;
}

.content-common :is(cite, figcaption, .wp-caption-text) {
	display: block;
	margin-block-start: .75rem;
	color: #756b5a;
	font-family: var(--font-label);
	font-size: clamp(.8125rem, .75rem + .2vw, .875rem);
	font-style: normal;
	line-height: 1.6;
}

.content-common :is(figure, .wp-caption) {
	max-width: 100%;
}

.content-common :is(img, video, iframe) {
	max-width: 100%;
}

.content-common :is(img, video) {
	height: auto;
}

.content-common .aligncenter {
	margin-inline: auto;
}

.content-common :is(small, sub, sup) {
	font-size: .8em;
}

.content-common small {
	font-size: clamp(.8125rem, .75rem + .2vw, .875rem);
}

.content-common mark {
	padding-inline: .2em;
	background: #e8dfd1;
	color: inherit;
}

.content-common details {
	padding: 1rem 1.25rem;
	border: 1px solid var(--color-border);
}

.content-common summary {
	font-weight: 600;
	cursor: pointer;
}

.content-common details[open] > summary {
	margin-block-end: 1rem;
}

.content-common .content-table-wrapper {
	max-width: 100%;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	border: 1px solid var(--color-border);
}

.content-common table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: clamp(.875rem, .825rem + .2vw, .9375rem);
	line-height: 1.6;
}

.content-common :is(th, td) {
	min-width: 9rem;
	padding: clamp(.625rem, 1.5vw, .875rem);
	border: 1px solid var(--color-border);
	text-align: start;
	vertical-align: top;
}

.content-common th {
	background: #e8dfd1;
	font-weight: 600;
}

.content-common tbody tr:nth-child(even) {
	background: rgb(255 255 255 / 22%);
}

.content-common caption {
	padding: .75rem 1rem;
	font-weight: 600;
	text-align: start;
}

.content-common hr {
	margin-block: clamp(1.25rem, 3vw, 2rem);
	border: 0;
	border-top: 1px solid var(--color-border);
}

.content-common :is(code, kbd, samp, pre) {
	font-family: ui-monospace, Consolas, monospace;
	font-size: .875em;
	background: #e8dfd1;
}

.content-common :is(code, kbd, samp) {
	padding: .15em .35em;
}

.content-common pre {
	max-width: 100%;
	overflow-x: auto;
	padding: 1.25rem;
	line-height: 1.65;
}

.content-common pre code {
	padding: 0;
	font-size: inherit;
}

.content-common .post-nav-links {
	margin-block-start: 2.5rem;
	padding-block-start: 1.5rem;
	border-top: 1px solid var(--color-border);
}

/* Conteúdo legado e acessibilidade. */
.site-main>article:not(.section-common),
.site-main>.entry-content,
.site-main>.comments-area {
	max-width: 1200px;
	margin-inline: auto;
	padding: var(--section-space) 20px;
}

.entry-content:where(:not(.content-common))>*+* {
	margin-block-start: 1.5rem;
}

.entry-thumbnail img {
	width: 100%;
}

.blisq-table-wrapper {
	overflow-x: auto;
}

.blisq-table {
	width: 100%;
	border-collapse: collapse;
}

.blisq-table td,
.blisq-table th {
	padding: .6rem .75rem;
	border: 1px solid var(--color-border);
	text-align: start;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	border: 0;
}

.screen-reader-text:focus {
	clip-path: none;
	width: auto;
	height: auto;
	left: 10px;
	top: 10px;
	padding: 12px 20px;
	background: var(--color-background);
	z-index: 10;
}

@media (max-width: 1680px) {
	:root {
		--container-width: 1540px;
	}

	.container-narrow {
		max-width: 1280px;
	}

	.hero-visual {
		max-width: 1430px;
	}

	.executive-composition {
		max-width: 1510px;
	}

	.dish-heading h4{
		font-size: 1.25rem;
	}
}

@media (max-width: 1440px) {
	:root {
		--container-width: 1320px;
	}

	.container-wide {
		padding-inline: 30px;
	}

	.container-narrow {
		max-width: 1100px;
	}

	.hero-visual {
		max-width: 1227px;
	}

	.executive-composition {
		max-width: 1300px;
	}

	.menu-primary {
		gap: 30px;
	}

	.menu-brand {
		margin-inline: 10px;
	}

	.table-layout {
		padding-inline: 0;
		gap: 90px;
	}

	.table-content {
		padding-top: clamp(60px, 8vw, 206px);
		padding-inline-end: 55px;
	}

	.table-notes {
		margin-block-end: 0;
	}

	.section-title:where(:not(.section-title-small)) {
		font-size: clamp(2.3rem, 3.2vw, 4.125rem);
	}

}

@media (max-width: 1280px) {
	:root {
		--container-width: 1180px;
	}

	.container-narrow {
		max-width: 1000px;
	}

	.hero-visual {
		max-width: 1090px;
	}

	.executive-composition {
		max-width: 1160px;
	}

	.container-wide {
		padding-inline: 24px;
	}

	.menu-primary {
		gap: 24px;
	}

	.menu-brand {
		margin-inline: 0;
	}

	.menu-brand img {
		width: 135px;
	}

	.hero-aside {
		right: 32px;
	}

	.hero-aside p {
		font-size: 1rem;
	}

	.hero-caption {
		padding-block-end: 24px;
	}

	.hero-caption p {
		font-size: .8125rem;
		max-width: 490px;
	}

	.menu-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.dish-heading h4 {
		font-size: 1rem;
	}

	.table-layout {
		padding-inline: 0;
		gap: 40px;
	}

	.table-content {
		padding-block-start: 90px;
		padding-inline-end: 40px;
	}

	.table-note {
		padding: 30px 24px;
	}

	.space-layout {
		gap: 50px;
	}

	.space-content {
		padding-block-start: 0;
		padding-inline-start: 0;
	}

	.contact-grid {
		gap: 20px;
	}

	.space-layout::before {
		left: -40px;
		width: 35%;
	}
}

@media (max-width: 1080px) {
	:root {
		--container-width: 1000px;
	}

	.header-inner {
		gap: 16px;
	}

	.menu-primary {
		gap: 22px;
	}

	.menu-brand img {
		width: 125px;
	}

	.hero-visual {
		max-width: 920px;
	}

	.hero-title {
		font-size: clamp(4rem, 11.9vw, 8rem);
	}

	.space-layout {
		gap: 40px;
	}

	.table-content {
		padding-block-start: 70px;
		padding-inline-end: 30px;
	}

	.table-note {
		max-width: 70%;
		padding: 30px 24px;
	}

	.table-note:nth-child(2) {
		margin-inline-start: 15%;
	}

	.table-note:nth-child(3) {
		--note-offset: 60px;
		margin-inline-start: 29%;
	}

	.footer-columns {
		gap: 60px;
	}

	.cta-card {
		max-width: 90%;
		padding: 35px;
		gap: 24px;
	}

	.cta-card p {
		font-size: 1rem;
	}

	.contact-grid,
	.section-description,
	.cta-card .button {
		font-size: .875rem;
	}
}

@media (max-width: 820px) {
	:root {
		--container-width: 100%;
	}

	.site-header {
		padding-block: 14px 16px;
	}

	.site-header .header-inner {
		padding-inline: 14px;
	}

	.header-inner {
		grid-template-columns: 1fr auto;
		gap: 16px;
	}

	.header-navigation {
		grid-column: 1;
	}

	.menu-primary {
		gap: 16px;
	}

	.menu-brand {
		order: -1;
	}

	.menu-primary>li:not(.menu-brand) {
		font-size: .5625rem;
	}

	.menu-brand img {
		width: 110px;
	}

	.header-reservation {
		font-size: .8125rem;
	}

	.hero-title {
		font-size: clamp(4rem, 12vw, 6.15rem);
	}

	.hero-caption p {
		max-width: 430px;
		font-size: .75rem;
	}

	.hero-aside {
		position: static;
		margin-block-start: 18px;
		text-align: center;
	}

	.hero::before {
		height: 65%;
	}

	.section-heading-split {
		align-items: flex-start;
		gap: 28px;
	}

	#ementa .section-heading {
		gap: 35px;
	}

	.menu-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.executive-content {
		padding-block: 50px;
	}

	.display-title {
		font-size: clamp(3.5rem, 10vw, 5.125rem);
	}

	.executive-media-4 {
		align-self: end;
		margin-block-start: 0;
	}

	.executive-content .section-description {
		max-width: 350px;
	}

	.table-layout {
		grid-template-columns: 1fr;
		padding: 0;
		gap: 0;
	}

	.table-content {
		padding: 40px 24px 0;
	}

	.table-content .section-title {
		font-size: 2rem;
	}

	.table-notes {
		width: 100%;
		max-width: 650px;
		margin-inline: auto;
		padding-inline: 16px;
		padding-block: 18px 0;
	}

	.table-note,
	.table-note:nth-child(2),
	.table-note:nth-child(3) {
		--note-start-y: 180%;
	}

	.space-layout {
		grid-template-columns: 1fr;
		gap: 40px;
		max-width: 650px;
	}

	.space-content .section-description {
		max-width: none;
	}

	.space-media {
		max-width: 480px;
		width: 100%;
		justify-self: center;
	}

	.space-layout::before {
		top: 0;
		left: 0;
		width: 60%;
	}

	.gallery-item {
		flex-basis: 32%;
	}

	.footer-columns {
		gap: 45px;
	}
}

@media (max-width: 768px) {
	.container-wide {
		padding-inline: 20px;
	}

	.table-layout {
		padding-inline: 0;
	}

	.section-heading {
		margin-block-end: 40px;
	}

	.gallery-item {
		flex-basis: 40%;
	}

	.footer-columns {
		gap: 35px;
	}

	.footer-brand {
		width: 78%;
	}
}

@media (max-width: 600px) {

	.container,
	.container-wide {
		padding-inline: 20px;
	}

	.table-note {
		max-width: 84%;
		padding: 24px 20px;
	}

	.table-note:nth-child(2) {
		margin-inline-start: 8%;
	}

	.table-note:nth-child(3) {
		margin-inline-start: 16%;
	}

	.site-header {
		position: relative;
		z-index: 10;
		padding-block: 18px;
		background: var(--color-background);
	}

	.header-inner {
		grid-template-columns: 28px minmax(0, 1fr) auto;
		min-height: 44px;
		gap: 22px;
	}

	.site-header .header-inner {
		padding-inline: 12px;
	}

	.header-brand {
		display: block;
		grid-column: 2;
		grid-row: 1;
		justify-self: start;
	}

	.header-brand img {
		width: 125px;
		height: auto;
	}

	.header-navigation {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.menu-primary {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.menu-primary>.menu-brand,
	.hero-foreground {
		display: none;
	}

	.header-reservation {
		grid-column: 3;
		grid-row: 1;
		font-size: .875rem;
	}

	.header-navigation {
		position: absolute;
		inset: 100% 0 auto;
		max-height: calc(100dvh - 90px);
		overflow-y: auto;
		padding: 8px 24px 24px;
		background: var(--color-background);
		border-top: 1px solid var(--color-border);
		box-shadow: 0 18px 24px -20px rgb(78 70 51 / 24%);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-8px);
		transition: opacity .25s ease, transform .3s ease, visibility .3s;
	}

	.site-header.is-open .header-navigation {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
	}

	.menu-primary>li:not(.menu-brand) {
		font-size: .75rem;
		letter-spacing: .1em;
		border-bottom: 1px solid var(--color-border);
	}

	.menu-primary>li:not(.menu-brand)>a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 56px;
		padding-block: 18px;
		transition: color .2s ease, padding-inline .2s ease;
	}

	.menu-primary>li:not(.menu-brand)>a::after {
		content: '↗';
		position: static;
		border: 0;
		font-size: 1rem;
		color: var(--color-muted);
		transform: none;
	}

	.menu-primary>li:not(.menu-brand)>a:hover,
	.menu-primary>li:not(.menu-brand)>a:focus-visible {
		padding-inline: 6px;
		color: #8d6033;
	}

	.menu-toggle:not([hidden]) {
		display: grid;
		grid-column: 1;
		grid-row: 1;
		place-items: center;
		padding: 0;
		width: 28px;
		height: 44px;
		border: 0;
		background: none;
	}

	.menu-toggle>span:first-child {
		position: relative;
		width: 22px;
		height: 12px;
	}

	.menu-toggle>span:first-child::before,
	.menu-toggle>span:first-child::after {
		content: '';
		position: absolute;
		inset: 0 0 auto;
		height: 1px;
		background: currentColor;
		transition: transform .3s ease;
	}

	.menu-toggle>span:first-child::after {
		transform: translateY(11px);
	}

	.is-open .menu-toggle>span:first-child::before {
		transform: translateY(5.5px) rotate(45deg);
	}

	.is-open .menu-toggle>span:first-child::after {
		transform: translateY(5.5px) rotate(-45deg);
	}

	.hero-visual {
		aspect-ratio: 4 / 5;
	}

	.hero-background,
	.hero-foreground {
		height: 100%;
		aspect-ratio: auto;
		object-position: center;
	}

	.hero-title {
		font-size: clamp(3rem, 16.8vw, 6.3rem);
		margin-inline-start: 3%;
		margin-block-start: 22%;
	}

	.hero-title span+span {
		margin-inline-start: -.08em;
	}

	.hero-caption {
		padding: 20px 18px 24px;
		background: linear-gradient(transparent 55%, #160c06);
	}

	.hero-caption p {
		font-size: .8125rem;
	}

	.hero-aside p {
		font-size: 1.25rem;
	}

	.hero-aside .text-link {
		font-size: .875rem;
	}

	.highlights {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.highlight img {
		filter: brightness(.75);
	}

	.highlight h2 {
		padding: 14px;
		font-size: 1.125rem;
	}

	.section-heading {
		margin-block-end: 30px;
	}

	.section-heading-split,
	#ementa .section-heading {
		flex-direction: column;
		align-items: stretch;
		gap: 22px;
	}

	#ementa .section-heading>div,
	#ementa .section-description {
		flex-basis: auto;
	}

	.section-title,
	.table-content .section-title {
		font-size: 2.5rem;
	}

	.section-title-small {
		font-size: 2rem;
	}

	.menu-categories {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-inline-end: -20px;
		padding-inline-end: 20px;
		font-size: .8125rem;
	}

	.menu-categories a {
		flex-shrink: 0;
	}

	.menu-grid {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.menu-dish {
		padding: 15px 0;
	}

	.menu-note {
		margin-block-start: 25px;
	}

	.executive-content {
		width: 100%;
		margin: 12% 0;
		padding: clamp(100px, 21.7vw, 130px) 18px 115px;
	}

	.executive-content .eyebrow {
		font-size: .6875rem;
	}

	.display-title {
		font-size: clamp(3rem, 14.5vw, 5.4rem);
	}

	.executive-content .section-description {
		max-width: 270px;
		margin-block-start: 20px;
	}

	.executive-content .instagram-link {
		font-size: 1rem;
	}

	.executive-media-1 {
		width: 24%;
		margin-inline-start: 8%;
	}

	.executive-media-2 {
		width: 20%;
		margin: 7% 0 0 80%;
	}

	.executive-media-3 {
		align-self: end;
		width: 22%;
		margin: 0 0 0 -2%;
	}

	.executive-media-4 {
		align-self: end;
		width: 25%;
		margin: 0 0 0 71%;
	}

	.table-layout {
		padding-inline: 0;
		grid-template-columns: 1fr;
	}

	.table-media {
		max-width: 100%;
	}

	.table-content {
		padding: 45px 20px 0;
	}

	.contact-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.space-layout::before {
		width: 85%;
	}

	.gallery-section .section-heading {
		gap: 20px;
		margin-block-end: 28px;
	}

	.gallery-section .instagram-link {
		align-self: flex-end;
		font-size: 1rem;
	}

	.gallery-item {
		flex-basis: 72%;
	}

	.cta-section {
		padding-block-start: 45px;
	}

	.cta-card {
		max-width: 90%;
		padding: 30px 24px;
		flex-direction: column;
		align-items: flex-start;
	}

	.cta-card .button {
		align-self: flex-start;
		margin: 0;
	}

	.footer-columns {
		flex-wrap: wrap;
		gap: 35px 40px;
	}

	.site-footer {
		padding-block: 45px 25px;
	}

	.footer-columns>div:first-child {
		flex-basis: 100%;
	}

	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		margin-block-start: 70px;
		gap: 30px;
	}

	.footer-brand {
		width: 100%;
	}

	.creator-credit {
		align-self: flex-end;
	}
}

@media (max-width: 450px) {
	.table-note h4 {
		font-size: 1.125rem;
	}

	.table-note p {
		font-size: .8125rem;
	}

	.header-inner {
		gap: 12px;
	}

	.menu-brand img,
	.header-brand img {
		width: clamp(100px, 30vw, 125px);
	}

	.header-reservation {
		font-size: clamp(.75rem, 3.3vw, .8125rem);
	}

	.section-title,
	.table-content .section-title {
		font-size: clamp(2rem, 8.9vw, 2.5rem);
	}

	.section-title-small {
		font-size: clamp(1.75rem, 7.1vw, 2rem);
	}

	.highlight h2 {
		font-size: clamp(1rem, 4.1vw, 1.125rem);
	}

	.cta-card {
		padding: 28px 22px;
	}
}

@media (max-width: 378px) {
	.display-title {
		font-size: 3rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

@view-transition {
	navigation: auto;
}
