/* Global */
*, *::after, *::before {
	box-sizing: border-box;
	margin: 0;
	padding: 0
}
:root {
	--faint: rgba(15, 25, 45, 0.1);
	--muted: rgba(15, 25, 45, 0.75);
	--navy-mid: #192837;
	--navy: #0F1E2D;
	--sand-dark: #E6D7AF;
	--sand-faint: #FAF5E6;
	--sand: #F5EBD7;
	--sea-light: #3C8CAA;
	--sea: #2D6E8C;
	--terra-faint: rgba(200, 100, 45, 0.1);
	--terra-light: #D77846;
	--terra: #C36428;
	--white: #FAFAFA
}
body {
	background: var(--white);
	color: var(--navy);
	font-family: "Jost", sans-serif;
	font-weight: 300;
	overflow-x: hidden
}
html {scroll-behavior: smooth}

/* Language select */
.lang-select {
	-webkit-appearance: none;
	appearance: none;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='rgba(250%2C250%2C250%2C0.35)'/%3E%3C/svg%3E");
	background-position: right .55rem center;
	background-repeat: no-repeat;
	border: 1px solid rgba(250, 250, 250, 0.15);
	color: rgba(250, 250, 250, 0.6);
	cursor: pointer;
	font-family: "Jost", sans-serif;
	font-size: .68rem;
	font-weight: 400;
	letter-spacing: .12em;
	outline: none;
	padding: .3rem 1.6rem .3rem .6rem;
	text-transform: uppercase;
	transition: color .2s, border-color .2s
}
.lang-select:hover {
	border-color: rgba(250, 250, 250, 0.35);
	color: rgba(250, 250, 250, 0.9)
}
.lang-select option {
	background: var(--navy);
	color: var(--white);
	letter-spacing: 0
}
.lang-select-mobile {display: none}

/* Navigator */
nav {
	align-items: center;
	background: linear-gradient(to bottom, rgba(15, 30, 45, 0.85), transparent);
	display: flex;
	height: 70px;
	justify-content: space-between;
	left: 0;
	padding: 0 3rem;
	position: fixed;
	right: 0;
	top: 0;
	transition: background .4s;
	z-index: 200
}
nav.solid {
	background: rgba(13, 27, 42, .97);
	box-shadow: 0 2px 24px rgba(0, 0, 0, .25)
}
.nav-brand {
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-decoration: none
}
.nav-brand-name {
	color: var(--white);
	font-family: "Playfair Display", serif;
	font-size: 1.5rem;
	letter-spacing: .04em;
	line-height: 1
}
.nav-brand-sub {
	color: rgba(250, 250, 250, 0.45);
	font-size: .7rem;
	letter-spacing: .2em;
	text-transform: uppercase
}
.nav-cta {
	background: var(--terra);
	color: var(--white) !important;
	padding: .5rem 1.4rem;
	transition: background .3s !important
}
.nav-cta:hover {background: var(--terra-light) !important}
.nav-links {
	display: flex;
	gap: 2.2rem;
	list-style: none
}
.nav-links a {
	color: rgba(250, 250, 250, 0.6);
	font-size: .75rem;
	font-weight: 400;
	letter-spacing: .16em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color .25s;
	white-space: nowrap
}
.nav-links a:hover {color: var(--white)}


/* Main */
.btn-ghost {
	border: 1px solid rgba(245, 237, 214, .35);
	color: var(--sand);
	display: inline-block;
	font-size: .74rem;
	font-weight: 400;
	letter-spacing: .2em;
	padding: .88rem 2.3rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: all .3s;
	white-space: nowrap
}
.btn-ghost:hover {
	border-color: var(--sand);
	background: rgba(245, 237, 214, .07)
}
.btn-primary {
	background: var(--terra);
	color: var(--white);
	display: inline-block;
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: .2em;
	padding: .9rem 2.4rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: background .3s;
	white-space: nowrap
}
.btn-primary:hover {background: var(--terra-light)}
.main {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow: hidden;
	position: relative
}
.main-bg {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: 0
}
.main-btns {
	animation: FadeUP .9s .65s forwards;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	opacity: 0
}
.main-content {
	max-width: 820px;
	/* padding-top: 70px; */
	/* padding: 0 3rem 4.5rem; */
	padding: 100px 3rem 4.5rem;
	position: relative;
	z-index: 2
}
.main-eyebrow {
	align-items: center;
	animation: FadeUP .8s .2s forwards;
	color: var(--white);
	display: flex;
	font-size: .7rem;
	font-weight: 400;
	gap: .8rem;
	letter-spacing: .3em;
	margin-bottom: 1.75rem;
	opacity: 0;
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.7), 0 0 30px rgba(0, 0, 0, 0.4);
	text-transform: uppercase
}
.main-eyebrow::before {
	background: var(--terra-light);
	content: "";
	height: 1px;
	opacity: .85;
	width: 30px
}
.main-h1 {
	animation: FadeUP .9s .35s forwards;
	color: var(--white);
	font-family: "Playfair Display", serif;
	font-size: clamp(3.2rem, 7vw, 6.2rem);
	font-weight: 400;
	letter-spacing: .02em;
	line-height: 1.04;
	margin-bottom: .8rem;
	opacity: 0
}
.main-h1 em {
	color: var(--sand);
	display: block;
	font-style: italic
}
.main-score {
	animation: FadeIN 1s 1s forwards;
	bottom: 4.5rem;
	opacity: 0;
	position: absolute;
	right: 3rem;
	text-align: right;
	z-index: 2
}
.main-strip {
	background: var(--sand-faint);
	font-weight: bold;
	padding: 1.1rem 3rem;
	text-align: center
}
.main-strip p {
	color: var(--terra);
	font-family: "Playfair Display", serif;
	font-size: 1.1rem;
	font-style: italic;
	margin: 0
}
.main-tagline {
	animation: FadeUP .9s .5s forwards;
	color: rgba(245, 235, 215, 0.7);
	font-size: 1.05rem;
	font-weight: 300;
	letter-spacing: .07em;
	line-height: 1.65;
	margin-bottom: 2.75rem;
	opacity: 0
}
.main-visual {
	align-items: center;
	background: #0F1E2D;
	display: flex;
	flex: 1;
	min-height: 80vh;
	position: relative
}
.main-visual::after {
	background: linear-gradient(to top, rgba(15, 30, 45, 0.95), transparent);
	bottom: 0;
	content: "";
	height: 45%;
	left: 0;
	position: absolute;
	right: 0;
	z-index: 1
}
.main-visual::before {
	background: linear-gradient(to bottom right, rgba(15, 30, 45, 0.15) 0%, rgba(15, 30, 45, 0.6) 65%, rgba(15, 30, 45, 0.9) 100%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1
}
.score-n {
	color: var(--sand);
	font-family: "Playfair Display", serif;
	font-size: 4.2rem;
	font-weight: 400;
	line-height: 1
}
.score-label {
	color: rgba(245, 235, 215, 0.45);
	font-size: .6rem;
	letter-spacing: .14em;
	text-transform: uppercase
}
.score-stars {
	color: var(--terra-light);
	font-size: .88rem;
	letter-spacing: .1em;
	margin: .2rem 0
}

/* Sections */
h2 {
	color: var(--navy);
	font-family: "Playfair Display", serif;
	font-size: clamp(2.2rem, 4.5vw, 3.4rem);
	font-weight: 400;
	letter-spacing: .02em;
	line-height: 1.1;
	margin-bottom: 1.5rem
}
h2 em {
	color: var(--terra);
	font-style: italic
}
section {padding: 6rem 3rem}
.s-tag {
	align-items: center;
	color: var(--terra);
	display: flex;
	font-size: .85rem;
	font-weight: 500;
	gap: .8rem;
	letter-spacing: .25em;
	margin-bottom: 1.4rem;
	text-transform: uppercase
}
.s-tag::before {
	content: "―";
	opacity: 0.7
}

/* Carta */
.carta-arrow {
	color: #D2A573;
	font-size: 1.75rem;
	line-height: 1;
	position: absolute;
	right: 1.4rem;
	top: 50%;
	transform: translateY(-50%);
	transition: transform .4s ease
}
.carta-body {
	background: #FFFFFF;
	max-height: 0;
	overflow-anchor: none;
	overflow: hidden;
	transition: max-height .8s ease
}
.carta-card {
	border-radius: 8px;
	border: 1px solid #E1D7C8;
	cursor: pointer;
	margin-bottom: 1.5rem;
	overflow-anchor: none;
	overflow: hidden;
	transition: border-color .3s
}
.carta-card:hover {border-color: #D2A573}
.carta-card-header {
	background: #FFFFFF;
	padding: 2rem 3.5rem 1.75rem 1.75rem;
	position: relative;
	user-select: none
}
.carta-card.open {border-color: #C89169}
.carta-card.open .carta-arrow {transform: translateY(-50%) rotate(180deg)}
.carta-card.open .carta-body {
	max-height: 6000px;
	padding-bottom: 2rem
}
.carta-cdesc {
	color: var(--muted);
	font-size: .9rem;
	line-height: 1.8
}
.carta-cname {
	color: var(--navy);
	font-family: "Playfair Display", serif;
	font-size: 1.3rem;
	font-weight: bold;
	margin-bottom: .6rem
}
.carta-grid {
	align-items: start;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr 1fr
}
.carta-header-block {
	align-items: end;
	display: grid;
	gap: 3rem;
	grid-template-columns: 1fr 1fr;
	margin-bottom: 2.5rem
}
.carta-intro {
	color: var(--muted);
	font-size: .95rem;
	line-height: 1.9
}
.carta-num {
	color: #D2A573;
	font-family: "Playfair Display", serif;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1;
	margin-bottom: .5rem
}
.carta-section {background: var(--white)}

/* Comida */
.food-category {
	background: #FAFAFA;
	border-radius: 6px;
	min-width: 0;
	padding: 1.25rem
}
.food-category.full-width {grid-column: 1 / -1}
.food-category.full-width .items-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, 1fr)
}
.food-cat-title {
	border-bottom: 1px solid #E1D7C8;
	color: #d4a574;
	font-size: .58rem;
	font-weight: 500;
	letter-spacing: .18em;
	margin-bottom: .6rem;
	padding-bottom: .5rem;
	text-transform: uppercase
}
.food-cat-title + .food-item {border-top: none}
.food-dish {
	color: var(--navy);
	font-weight: 300;
	line-height: 1.4;
	min-width: 0
}
.food-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, 1fr);
	padding: 1.75rem 1.75rem 0
}
.food-item {
	align-items: baseline;
	border-top: 1px dotted rgba(0,0,0,.12);
	column-gap: .75rem;
	display: grid;
	font-size: .86rem;
	grid-template-columns: 1fr auto;
	padding: .45rem 0
}
.food-price {
	align-self: end;
	color: #D2A573;
	font-size: .86rem;
	font-weight: 500;
	text-align: right;
	white-space: nowrap
}

/* Bebidas */
.drinks-col {
	background: #FAFAFA;
	border-radius: 6px;
	min-width: 0;
	padding: 1rem 1.1rem
}
.drinks-col:nth-child(1) {grid-column: 1; grid-row: 1}
.drinks-col:nth-child(2) {grid-column: 2; grid-row: 1 / 3}
.drinks-col:nth-child(3) {grid-column: 1; grid-row: 2}
.drinks-col:nth-child(4) {grid-column: 3; grid-row: 1}
.drinks-col:nth-child(5) {grid-column: 3; grid-row: 2}
.drinks-col-title {
	border-bottom: 1px solid #E1D7C8;
	color: #D7A573;
	font-size: .58rem;
	font-weight: 500;
	letter-spacing: .18em;
	margin-bottom: .5rem;
	padding-bottom: .5rem;
	text-transform: uppercase
}
.drinks-col-title + .drinks-item {border-top: none}
.drinks-collapsible {
	align-items: start;
	border-top: 1px solid #E1D7C8;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, 1fr);
	padding: 0 1.75rem
}
.drinks-dish {
	color: var(--navy);
	font-weight: 300;
	line-height: 1.4;
	min-width: 0
}
.drinks-item {
	align-items: baseline;
	border-top: 1px dotted rgba(0, 0, 0, 0.15);
	column-gap: .6rem;
	display: grid;
	font-size: .8rem;
	grid-template-columns: 1fr auto;
	padding: .32rem 0
}
.drinks-price {
	align-self: end;
	color: #D2A573;
	font-size: .8rem;
	font-weight: 500;
	text-align: right;
	white-space: nowrap
}
.drinks-simple {
	align-items: start;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1.6fr 1fr;
	grid-template-rows: auto auto;
	padding: 1.75rem 1.75rem .75rem
}
.sub-arrow {
	color: #D2A573;
	font-size: 1.25rem;
	line-height: 1;
	position: absolute;
	right: .7rem;
	top: 50%;
	transform: translateY(-50%);
	transition: transform .4s ease
}
.sub-body {
	background: #FAFAF5;
	max-height: 0;
	overflow-anchor: none;
	overflow: hidden;
	padding: 0 1rem;
	transition: max-height .6s ease
}
.sub-card {
	cursor: pointer;
	overflow-anchor: none;
	overflow: hidden
}
.sub-card.open .sub-arrow {transform: translateY(-50%) rotate(180deg)}
.sub-card.open .sub-body {
	max-height: 5000px;
	padding: .75rem 1rem 1rem
}
.sub-cat-title {
	border-top: 1px solid #E1D7C8;
	color: #D2A573;
	font-size: .58rem;
	font-weight: 500;
	letter-spacing: .18em;
	margin-top: 0.7rem;
	padding-top: 0.5rem;
	text-transform: uppercase
}
.sub-cat-title:first-child {
	border-top: none;
	margin-top: 0;
	padding-top: 0
}
.sub-cat-title + .sub-item {border-top: none}
.sub-dish {
	color: var(--navy);
	font-weight: 300;
	line-height: 1.4;
	min-width: 0
}
.sub-header {
	background: #EBE6E1;
	padding: .9rem 2.5rem .9rem 1rem;
	position: relative;
	transition: background .2s;
	user-select: none
}
.sub-header:hover {background: #E1DCD2}
.sub-item {
	align-items: baseline;
	border-top: 1px dotted rgba(0, 0, 0, 0.15);
	column-gap: 0.6rem;
	display: grid;
	font-size: 0.8rem;
	grid-template-columns: 1fr auto;
	padding: 0.35rem 0
}
.sub-name {
	color: var(--navy);
	font-family: "Playfair Display", serif;
	font-size: .95rem;
	font-weight: bold
}
.sub-price {
	align-self: end;
	color: #D2A573;
	font-size: .8rem;
	font-weight: 500;
	text-align: right;
	white-space: nowrap
}

/* Carta Book Flip */
.books-wrapper {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1fr 1fr
}

.lb-btn {
	align-items: center;
	background: none;
	border: 1px solid #E1D7C8;
	color: var(--navy);
	cursor: pointer;
	display: flex;
	font-family: serif;
	font-size: 1.3rem;
	height: 2.2rem;
	justify-content: center;
	line-height: 1;
	transition: background .15s, color .15s, border-color .15s;
	width: 2.2rem
}
.lb-btn:disabled {
	cursor: default;
	opacity: 0.25
}
.lb-btn:hover:not(:disabled) {
	background: #D2A573;
	border-color: #D2A573;
	color: #FFFFFF
}
.lb-cat {
	border-bottom: 1px solid #E6E1D2;
	color: #D2A573;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	margin: 0.85rem 0 0.4rem;
	padding-bottom: 0.4rem;
	text-transform: uppercase
}
.lb-cat:first-child {margin-top: 0}
.lb-cat + .lb-row {border-top: none}
.lb-cover {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	padding: 0.5rem 0
}
.lb-cover-desc {
	color: var(--muted);
	font-size: .75rem;
	line-height: 1.75
}
.lb-cover-num {
	color: rgba(195, 165, 110, 0.2);
	font-family: "Playfair Display", serif;
	font-size: 5rem;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 0.4rem
}
.lb-cover-line {
	background: #D2A573;
	height: 1px;
	margin-bottom: 0.8rem;
	width: 2rem
}
.lb-cover-title {
	color: var(--navy);
	font-family: "Playfair Display", serif;
	font-size: 1.5rem;
	font-style: italic;
	margin-bottom: 0.8rem
}
.lb-dish {
	color: var(--navy);
	font-weight: 300;
	min-width: 0
}
.lb-fb {transform: rotateY(180deg)}
.lb-ff, .lb-fb {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	background: #FAF5F0;
	inset: 0;
	overflow: hidden;
	padding: 1.4rem 1.1rem 2rem;
	position: absolute
}
.lb-flipper {
	display: none;
	height: 100%;
	pointer-events: none;
	position: absolute;
	top: 0;
	transform-style: preserve-3d;
	width: calc(50% - 2px);
	z-index: 10
}
.lb-flipper.lbbwd {
	animation: LibroBWD .85s cubic-bezier(0.25, 0.45, 0.45, 0.95) forwards;
	display: block;
	left: 0; right: auto;
	transform-origin: right center
}
.lb-flipper.lbbwd .lb-ff {box-shadow: 6px 0 20px rgba(0, 0, 0, 0.15)}
.lb-flipper.lbfwd {
	animation: LibroFWD 0.85s cubic-bezier(0.25, 0.45, 0.45, 0.95) forwards;
	display: block;
	right: 0; left: auto;
	transform-origin: left center;
}
.lb-flipper.lbfwd .lb-ff {box-shadow: -6px 0 20px rgba(0, 0, 0, 0.15)}
.lb-gutter {
	background: linear-gradient(to right, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.05) 60%, rgba(0, 0, 0, 0.15) 100%);
	flex-shrink: 0;
	width: 4px
}
.lb-label {
	color: #D2A573;
	font-size: 0.6rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase
}
.lb-mob-indicator {
	color: var(--muted);
	display: inline;
	font-size: 0.6rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	margin-left: 0.6rem;
	text-transform: none
}
.lb-nav {display: none}
.lb-num {
	color: var(--muted);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	min-width: 5rem;
	text-align: center
}
.lb-row {
	align-items: baseline;
	border-top: 1px dotted rgba(0, 0, 0, 0.1);
	column-gap: 0.5rem;
	display: grid;
	font-size: 0.85rem;
	grid-template-columns: 1fr auto;
	line-height: 1.4;
	padding: 0.2rem 0
}
.lb-page {
	background: #FAF5F0;
	cursor: pointer;
	flex: 1;
	min-width: 0;
	overflow: hidden;
	padding: 1.4rem 1.1rem 2rem;
	position: relative
}
.lb-page.lb-left {box-shadow: inset -4px 0 8px rgba(0, 0, 0, 0.05)}
.lb-page.lb-right {box-shadow: inset 4px 0 8px rgba(0, 0, 0, 0.05)}
.lb-page::-webkit-scrollbar {display: none}
.lb-pgnum {
	bottom: 0.65rem;
	color: rgba(0, 0, 0, 0.25);
	font-size: 0.55rem;
	left: 0; right: 0;
	letter-spacing: 0.15em;
	position: absolute;
	text-align: center
}
.lb-price {
	align-self: end;
	color: #D2A573;
	font-size: 0.8rem;
	font-weight: 500;
	text-align: right;
	white-space: nowrap
}
.lb-scene {
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1), 0 1px 4px rgba(0, 0, 0, 0.1);
	height: 500px;
	perspective: 3000px;
	position: relative
}
.lb-spread {
	display: flex;
	height: 100%;
	position: relative;
	width: 100%
}
.libro {
	display: flex;
	flex-direction: column;
	gap: .9rem
}
@keyframes LibroBWD {
	from {transform: rotateY(0deg)}
	to {transform: rotateY(180deg)}
}
@keyframes LibroFWD {
	from {transform: rotateY(0deg)}
	to {transform: rotateY(-180deg)}
}
@media(max-width: 900px) {
	.books-wrapper {grid-template-columns: 1fr}
	.lb-cat {font-size: .52rem; margin: 0.75rem 0 0.35rem}
	.lb-cover-num {font-size: 3.2rem}
	.lb-cover-title {font-size: 1.1rem}
	.lb-mob-indicator {font-size: 0.65rem}
	.lb-page {padding: 1.2rem 1rem 1.8rem}
	.lb-row {font-size: 0.75rem; line-height: 1.45; padding: 0.25rem 0}
	.lb-scene {height: 560px}
	/* Show nav buttons on mobile (swipe + tap still work, buttons are extra) */
	.lb-nav {
		align-items: center;
		display: flex;
		gap: .6rem;
		justify-content: center;
		margin-top: .4rem
	}
}

/* Sobre Nosotros */
.about-body {
	color: var(--muted);
	font-size: 1.1rem;
	font-weight: 350;
	line-height: 1.7;
	margin-top: 2.75rem
}
.about-grid {
	align-items: center;
	display: grid;
	gap: 5rem;
	grid-template-columns: 1fr 1fr
}
.about-photos {
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr 1fr
}
.about-photos .g-item {
	aspect-ratio: 1;
	width: 100%
}
.about-section {background: var(--sand)}
.g-inner {
	align-items: center;
	background: var(--navy);
	display: flex;
	font-size: 3rem;
	height: 100%;
	justify-content: center;
	overflow: hidden;
	width: 100%
}
.g-inner img {
	display: block;
	filter: contrast(1.05) saturate(1.15);
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease, filter 0.5s ease;
	width: 100%
}
.g-item {
	cursor: pointer;
	overflow: hidden;
	position: relative
}
.g-item:hover .g-inner img {
	filter: contrast(1.05) saturate(1.15) brightness(1.1);
	transform: scale(1.05);
}
.g-label {display: none}

/* Reseñas */
.review-card {
	background: var(--white);
	border-top: 2px solid var(--terra);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.75rem 1.75rem 1.5rem
}
.review-date {
	color: var(--muted);
	font-size: 0.65rem;
	letter-spacing: 0.05em
}
.review-google {
	color: var(--muted);
	font-size: 0.5rem;
	letter-spacing: 0.15em;
	opacity: 1;
	text-transform: uppercase
}
.review-header {
	align-items: flex-start;
	display: flex;
	gap: 0.5rem;
	justify-content: space-between
}
.review-meta {
	color: var(--muted);
	font-size: .62rem;
	font-weight: 300;
	margin-top: .2rem
}
.review-name {
	color: var(--navy);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.3
}
.review-stars {
	color: #F5A623;
	flex-shrink: 0;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
}
.review-text {
	color: rgba(15, 30, 45, 0.75);
	flex: 1;
	font-size: .84rem;
	font-weight: 300;
	line-height: 1.8
}
.reviews-header {
	margin-bottom: 2.5rem;
	text-align: center
}
.reviews-header .s-tag {justify-content: center}
.reviews-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, 1fr)
}
.reviews-section {background: var(--sand-faint)}

/* Reservas */
.f-country {
	flex-shrink: 0;
	width: auto;
	min-width: 100px
}
.f-errors {
	color: rgba(255, 120, 80, 0.9);
	font-size: .78rem;
	font-weight: 400;
	letter-spacing: .03em;
	line-height: 1.6;
	min-height: 0
}
.f-errors:not(:empty) {
	background: rgba(255, 100, 60, 0.08);
	border-left: 2px solid rgba(255, 100, 60, 0.5);
	padding: .5rem .75rem
}
.f-flag-btn {
	align-items: center;
	border-right: 1px solid rgba(255,255,255,.15);
	bottom: 0;
	cursor: pointer;
	display: flex;
	font-size: 0.9rem;
	gap: 0.35rem;
	justify-content: center;
	left: 0;
	position: absolute;
	top: 0;
	user-select: none;
	width: 5.2rem
}
.f-flag-code {
	font-size: 0.8rem;
	opacity: 0.8
}
.f-flag-dropdown {
	background: #191919;
	border-radius: 4px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
	display: none;
	left: 0;
	max-height: 220px;
	min-width: 220px;
	overflow-y: auto;
	position: absolute;
	top: 100%;
	z-index: 999
}
.f-input {
	-webkit-appearance: none;
	appearance: none;
	background: rgba(245, 237, 214, .07);
	border: 1px solid rgba(245, 237, 214, .12);
	color: var(--white);
	font-family: "Jost", sans-serif;
	font-size: .84rem;
	font-weight: 300;
	letter-spacing: .04em;
	outline: none;
	padding: .82rem 1.1rem;
	transition: border-color .3s;
	width: 100%
}
.f-input option {background: var(--navy)}
.f-input::placeholder {color: rgba(245, 237, 214, .28)}
.f-input:focus {border-color: rgba(196, 98, 42, .55)}
.f-input.invalid {border-color: rgba(255, 100, 60, 0.6) !important}
.f-note {
	color: rgba(245, 240, 215, 0.3);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	margin-top: 0.25rem
}
.f-phone-wrap {
	display: flex;
	gap: .75rem;
	position: relative
}
.f-phone-num {flex: 1; padding-left: 5.5rem !important}
.f-submit {
	align-self: flex-start;
	background: var(--terra);
	border: none;
	color: var(--white);
	cursor: pointer;
	font-family: "Jost", sans-serif;
	font-size: .74rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	margin-top: 0.4rem;
	padding: 0.95rem 2.5rem;
	text-transform: uppercase;
	transition: background 0.3s
}
.f-submit:hover:not(:disabled) {background: var(--terra-light)}
.f-submit:disabled {
	cursor: default;
	opacity: 0.6
}
.form-row {
	display: grid;
	gap: .75rem;
	grid-template-columns: 1fr 1fr
}
.res-contact {
	display: flex;
	gap: 0.85rem;
	flex-direction: column
}
.res-contact-icon {
	flex-shrink: 0;
	font-size: 1.1rem
}
.res-contact-item {
	align-items: center;
	display: flex;
	gap: 0.85rem
}
.res-contact-text {
	color: rgba(245, 240, 215, 0.7);
	font-size: 0.85rem
}
.res-contact-text a {
	color: var(--sand);
	text-decoration: none;
	transition: color 0.2s
}
.res-contact-text a:hover {color: var(--terra-light)}
.res-form {
	display: flex;
	flex-direction: column;
	gap: 0.85rem
}
.res-left p {
	color: rgba(245, 240, 215, 0.6);
	font-size: 0.9rem;
	font-weight: 300;
	line-height: 1.95;
	margin-bottom: 2rem
}
.res-grid {
	align-items: start;
	display: grid;
	gap: 5rem;
	grid-template-columns: 1fr 1.1fr;
	margin-top: 3rem
}
.reservas-section {
	background: var(--navy);
	color: var(--white)
}
.reservas-section h2 {color: var(--white)}
.reservas-section h2 em {color: var(--sand)}
.reservas-section .s-tag {color: var(--terra-light)}
.reservas-section .s-tag::before {color: var(--terra-light)}

/* Info */
.info-block a {
	color: var(--sea);
	transition: color 0.2s;
	text-decoration: none
}
.info-block a:hover {color: var(--sea-light)}
.info-block h3 {
	border-bottom: 1px solid rgba(195, 100, 45, 0.2);
	color: var(--terra);
	font-size: .7rem;
	font-weight: 400;
	letter-spacing: .22em;
	margin-bottom: 1.25rem;
	padding-bottom: .75rem;
	text-transform: uppercase
}
.info-block p, .info-block li {
	color: var(--muted);
	font-size: .9rem;
	font-weight: 300;
	line-height: 2;
	list-style: none
}
.info-block strong {
	color: var(--navy);
	font-weight: 400
}
.info-grid {
	display: grid;
	gap: 3rem;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 3rem
}
.info-section {
	background: var(--sand-faint);
	border-top: 1px solid rgba(195, 100, 40, 0.15)
}

/* Footer */
footer {
	align-items: center;
	background: var(--navy);
	border-top: 1px solid rgba(245, 237, 214, 0.05);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
	padding: 2.25rem 3rem
}
footer small {
	color: rgba(245, 240, 215, 0.75);
	font-size: .75rem;
	letter-spacing: 0.1em;
}
.footer-brand {
	color: var(--terra-light);
	font-family: "Playfair Display", serif;
	font-size: 1.1rem
}

/* Reveal */
.reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .75s ease, transform .75s ease
}
.reveal-d1 {transition-delay: .1s}
.reveal-d2 {transition-delay: .2s}
.reveal-d3 {transition-delay: .3s}
.reveal-d4 {transition-delay: .4s}
.reveal.visible {opacity: 1; transform: none}

@keyframes FadeUP {
	from {opacity: 0; transform: translateY(18px)}
	to {opacity: 1; transform: none}
}

@keyframes FadeIN {
	from {opacity: 0}
	to {opacity: 1}
}
/* BANNER promo berbena */

/* 
#banner-overlay {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(10, 20, 30, 0.82);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem
}

#banner-overlay.hidden {display: none}

.banner-inner {
	position: relative;
	max-width: 520px;
	width: 100%;
	max-height: 90vh
}

.banner-img {
	width: 100%;
	max-height: 85vh;
	object-fit: contain;
	display: block;
	border-radius: 2px;
	box-shadow: 0 8px 48px rgba(0, 0, 0, 0.6)
}

.banner-close {
	position: absolute;
	top: -1rem;
	right: -1rem;
	z-index: 2;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 50%;
	background: var(--terra);
	border: none;
	color: var(--white);
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s
}

.banner-close:hover {background: var(--terra-light)} */

/* ══════════════════════════════
RESPONSIVE
══════════════════════════════ */

/* ── 1400px ── */
@media (max-width: 1400px) {
	nav { padding: 0 2.25rem }
	section { padding: 5.5rem 2.5rem }
	.about-grid, .res-grid { gap: 3.5rem }
}

/* ── 1200px ── */
@media (max-width: 1200px) {
	nav { padding: 0 1.75rem }
	section { padding: 5rem 2rem }
	.main-content { padding: 95px 2rem 4rem }
	.main-score { bottom: 3rem; right: 2rem }
	.about-grid { gap: 3rem }
	.carta-header-block { gap: 2rem }
	.info-grid { gap: 2rem }
	.lb-scene { height: 460px }
	.res-grid { gap: 3rem }
	.reviews-grid { grid-template-columns: repeat(2, 1fr) }
}

/* ── 900px: tablet ── */
@media (max-width: 900px) {

	/* Nav */
	nav { padding: 0 1.25rem }
	.nav-links { display: none }
	.lang-select-mobile { display: block; margin-left: auto; margin-right: .6rem }

	/* Sections */
	section { padding: 3.5rem 1.25rem }

	/* Main hero */
	.main-content { padding: 90px 1.25rem 3.5rem }
	.main-h1 { font-size: clamp(2rem, 9vw, 3rem) }
	.main-tagline { font-size: .95rem; margin-bottom: 2rem }
	.main-btns { gap: .75rem }
	.main-score { display: none }
	.main-strip { padding: .8rem 1.25rem }

	/* Grids → 1 columna */
	.about-grid,
	.res-grid,
	.info-grid,
	.carta-header-block { grid-template-columns: 1fr }

	/* Reviews: 1 col en tablet */
	.reviews-grid { grid-template-columns: 1fr }

	/* About */
	.about-photos .g-item { aspect-ratio: 1 }
	.about-body { font-size: 1rem; margin-top: 2rem }

	/* Carta acordeón */
	.carta-header-block { gap: 1.5rem; margin-bottom: 1.75rem }
	.carta-grid { grid-template-columns: 1fr }
	.carta-card-header { padding: 1.4rem 3rem 1.25rem 1.25rem }

	/* Comida / Bebidas */
	.food-grid { grid-template-columns: 1fr; padding: 1.25rem 1.25rem 0 }
	.food-category.full-width .items-grid { grid-template-columns: 1fr }
	.drinks-simple { grid-template-columns: 1fr; padding: 1.25rem 1.25rem .5rem }
	.drinks-collapsible { grid-template-columns: 1fr; padding: 0 1.25rem }
	.drinks-col:nth-child(1), .drinks-col:nth-child(2),
	.drinks-col:nth-child(3), .drinks-col:nth-child(4),
	.drinks-col:nth-child(5) { grid-column: 1; grid-row: auto }

	/* Libro (carta book-flip) */
	.books-wrapper { grid-template-columns: 1fr }
	.lb-cat { font-size: .52rem; margin: .75rem 0 .35rem }
	.lb-cover-num { font-size: 3.2rem }
	.lb-cover-title { font-size: 1.1rem }
	.lb-mob-indicator { font-size: .65rem }
	.lb-row { font-size: .75rem; line-height: 1.45; padding: .25rem 0 }

	.lb-scene {
		height: auto;
		max-height: 65vh;
		overflow-y: auto;
		overflow-x: hidden;
		perspective: none;
		-webkit-overflow-scrolling: touch
	}
	.lb-spread { flex-direction: column; height: auto }
	.lb-gutter { height: 4px; width: 100% }
	.lb-page {
		box-shadow: none;
		height: auto;
		min-height: 0;
		overflow: visible;
		padding: 1.2rem 1rem 1.4rem
	}
	.lb-page.lb-left, .lb-page.lb-right { box-shadow: none }
	.lb-flipper { display: none !important }
	.lb-pgnum { display: none }
	.lb-nav {
		align-items: center;
		display: flex;
		gap: .6rem;
		justify-content: center;
		margin-top: .4rem
	}

	/* Reviews */
	.reviews-header { margin-bottom: 1.75rem }

	/* Reservas */
	.res-grid { gap: 2.5rem; margin-top: 2rem }
	.form-row { grid-template-columns: 1fr }
	.f-phone-wrap { flex-direction: row; gap: .5rem }
	.f-flag-dropdown { max-width: 90vw }

	/* Info */
	.info-grid { gap: 2rem; margin-top: 2rem }

	/* Footer */
	footer { flex-direction: column; gap: .75rem; text-align: center }
}

/* ── 600px: móvil ── */
@media (max-width: 600px) {

	/* Nav */
	nav { height: 60px }
	.nav-brand-name { font-size: 1.3rem }
	.nav-brand-sub { font-size: .6rem; letter-spacing: .14em }

	/* Sections */
	section { padding: 3rem 1rem }

	/* Hero */
	.main-content { padding: 75px 1rem 2.5rem }
	.main-eyebrow { font-size: .62rem; gap: .6rem; margin-bottom: 1.25rem }
	.main-h1 { font-size: clamp(1.9rem, 10vw, 2.6rem); margin-bottom: .6rem }
	.main-tagline { font-size: .88rem; margin-bottom: 1.5rem }
	.main-strip p { font-size: .95rem }
	.btn-primary { font-size: .74rem; padding: .8rem 1.8rem }
	.btn-ghost { font-size: .72rem; padding: .8rem 1.6rem }

	/* Títulos de sección */
	h2 { font-size: clamp(1.9rem, 7vw, 2.6rem); margin-bottom: 1.2rem }
	.s-tag { font-size: .75rem }

	/* About */
	.about-photos { gap: 5px }
	.about-body { font-size: .92rem; line-height: 1.75 }

	/* Libro */
	.lb-scene { max-height: 70vh }
	.lb-row { font-size: .72rem }
	.lb-btn { height: 2rem; width: 2rem; font-size: 1.1rem }

	/* Reviews */
	.review-card { padding: 1.3rem 1.1rem 1.1rem }
	.review-text { font-size: .82rem }
	.reviews-grid { gap: 1rem }

	/* Reservas form */
	.f-input { font-size: .82rem; padding: .78rem .9rem }
	.f-submit { align-self: stretch; text-align: center; width: 100% }
	.res-left p { font-size: .85rem; line-height: 1.85; margin-bottom: 1.5rem }

	/* Info */
	.info-block p, .info-block li { font-size: .85rem }
	.info-block h3 { font-size: .65rem }

	/* Footer */
	footer { padding: 1.5rem 1rem }
	footer small { font-size: .7rem }

	/* banner */
	#banner-overlay {padding: 0.75rem}
	.banner-inner {max-width: 100%}
	.banner-img {max-height: 80vh}
	.banner-close {
		font-size: 1.1rem;
		height: 2rem;
		right: -0.75rem;
		top: -0.75rem;
		width: 2rem
	}
}

/* ── 400px: móvil pequeño ── */
@media (max-width: 400px) {
	#banner-overlay {padding: 0.5rem}
	.banner-img {max-height: 75vh}
	.nav-brand-sub { display: none }
	.main-h1 { font-size: clamp(1.7rem, 11vw, 2rem) }
	.btn-primary, .btn-ghost { font-size: .68rem; padding: .75rem 1.3rem }
	.lb-row { font-size: .68rem }
	.lb-cat { letter-spacing: .1em }
	.f-flag-dropdown { min-width: 180px }
	.carta-card-header { padding: 1.2rem 2.8rem 1.1rem 1rem }
}