/*
Theme Name:  Moma Hotel Cannigione
Theme URI:   https://momahotelcannigione.it
Author:      Moma Hotel
Author URI:  https://momahotelcannigione.it
Description: Custom boutique hotel theme for Moma Hotel Cannigione. Warm Mediterranean palette inspired by local granite, macchia and the Gallura coastline.
Version:     1.0.0
License:     GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: moma-hotel
Tags:        boutique, hotel, responsive, bootstrap
*/

/* ============================================================
	 0. CSS CUSTOM PROPERTIES
	 ============================================================ */
:root {
	--tc:            #C4703A;
	--tc-deep:       #8B4A1E;
	--tc-light:      #E8C4A0;
	--tc-pale:       #F5EDE3;
	--sand:          #D4B896;
	--sand-light:    #F0E4D4;
	--basalt:        #3A3530;
	--basalt-mid:    #5C5248;
	--stone:         #7A6E64;
	--maquis:        #5C6B45;
	--maquis-light:  #8A9B6A;
	--sea:           #7BA3B8;
	--cream:         #FAF5EF;
	--gold:          #C49A3C;

	--font-heading:  'Cormorant Garamond', 'Georgia', serif;
	--font-body:     'Inter', system-ui, -apple-system, sans-serif;

	--transition:    all 0.3s ease;
	--radius:        2px;
	--shadow:        0 4px 24px rgba(58,53,48,0.12);
	--shadow-lg:     0 12px 48px rgba(58,53,48,0.2);
}

/* ============================================================
	 1. RESET & BASE
	 ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
	font-family: var(--font-body);
	background-color: var(--cream);
	color: var(--basalt);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

a {
	color: var(--tc);
	text-decoration: none;
	transition: var(--transition);
}
a:hover, a:focus { color: var(--tc-deep); text-decoration: none; }

::selection { background: var(--tc); color: var(--cream); }

/* ============================================================
	 2. TYPOGRAPHY
	 ============================================================ */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--font-heading);
	font-weight: 400;
	line-height: 1.15;
	color: var(--basalt);
	margin-top: 0;
}

h1, .h1 { font-size: clamp(36px, 5vw, 64px); }
h2, .h2 { font-size: clamp(28px, 3.5vw, 46px); }
h3, .h3 { font-size: clamp(22px, 2.5vw, 32px); }
h4, .h4 { font-size: 20px; }
h5, .h5 { font-size: 16px; }

.eyebrow {
	font-family: var(--font-body);
	font-size: 10px;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--tc);
	display: block;
	margin-bottom: 12px;
}

.section-title {
	font-family: var(--font-heading);
	font-weight: 400;
	color: var(--basalt);
	margin-bottom: 20px;
}

.section-title--light { color: var(--cream); }

p { margin-bottom: 1rem; }

.lead {
	font-size: 15px;
	line-height: 1.8;
	color: var(--stone);
}

blockquote {
	border-left: 3px solid var(--tc);
	padding: 16px 24px;
	margin: 2rem 0;
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-style: italic;
	color: var(--tc-deep);
}

/* ============================================================
	 3. BOOTSTRAP 3 OVERRIDES
	 ============================================================ */
.container { max-width: 1200px; }

/* Grid gutters tightened for boutique feel */
.row { margin-left: -15px; margin-right: -15px; }
[class*="col-"] { padding-left: 15px; padding-right: 15px; }

/* ============================================================
	 4. BUTTONS
	 ============================================================ */
.btn {
	font-family: var(--font-body);
	font-size: 10px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	padding: 14px 32px;
	border-radius: var(--radius);
	border: 1px solid transparent;
	transition: var(--transition);
	cursor: pointer;
	display: inline-block;
	line-height: 1;
}

.btn-primary {
	background: var(--tc);
	border-color: var(--tc);
	color: var(--cream) !important;
}
.btn-primary:hover, .btn-primary:focus {
	background: var(--tc-deep);
	border-color: var(--tc-deep);
	color: var(--cream) !important;
}

.btn-outline {
	background: transparent;
	border-color: var(--tc);
	color: var(--tc) !important;
}
.btn-outline:hover, .btn-outline:focus {
	background: var(--tc);
	color: var(--cream) !important;
}

.btn-ghost {
	background: transparent;
	border-color: rgba(212,184,150,0.6);
	color: var(--sand) !important;
}
.btn-ghost:hover, .btn-ghost:focus {
	border-color: var(--sand);
	color: var(--cream) !important;
}

.btn-light-outline {
	background: transparent;
	border-color: var(--tc-light);
	color: var(--tc-light) !important;
}
.btn-light-outline:hover {
	background: rgba(232,196,160,0.1);
	color: var(--cream) !important;
}

.btn-block { display: block; width: 100%; text-align: center; }

/* ============================================================
	 5. NAVIGATION
	 ============================================================ */
#masthead {
	background: var(--basalt);
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	transition: var(--transition);
}

#masthead.scrolled {
	box-shadow: 0 2px 20px rgba(0,0,0,0.3);
}

.navbar-moma {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 40px;
	min-height: 70px;
}

/* Logo */
.site-logo {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}
.site-logo__bug {
	width: 36px;
	height: 36px;
	object-fit: contain;
	flex-shrink: 0;
}
.site-logo__text {
	display: flex;
	flex-direction: column;
}
.site-logo__name {
	font-family: var(--font-heading);
	font-size: 22px;
	letter-spacing: 5px;
	color: var(--tc-light);
	line-height: 1;
	font-weight: 400;
}
.site-logo__tagline {
	font-size: 8px;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--sand);
	opacity: 0.7;
	margin-top: 3px;
}
.site-logo:hover .site-logo__name { color: var(--cream); }

/* Desktop nav links */
.nav-primary {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 32px;
	border: none;
	border-bottom: none;
	box-shadow: none;
	background: none;
}

.nav-primary li a {
	font-size: 10px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--sand);
	opacity: 0.8;
	padding: 4px 0;
	position: relative;
}
.nav-primary li a::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--tc);
	transition: width 0.3s ease;
}
.nav-primary li a:hover,
.nav-primary li.current-menu-item a {
	opacity: 1;
	color: var(--cream);
}
.nav-primary li a:hover::after,
.nav-primary li.current-menu-item a::after {
	width: 100%;
}

/* Nav CTA */
.nav-cta {
	margin-left: 16px;
}

/* Nav right container */
.nav-right {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-left: 24px;
}

/* Language switcher in nav */
.nav-lang-switcher {
	display: flex;
	align-items: center;
	gap: 2px;
}
.nav-lang-link {
	font-size: 9px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--stone);
	text-decoration: none;
	padding: 4px 7px;
	border: 1px solid transparent;
	transition: all 0.2s;
}
.nav-lang-link:hover {
	color: var(--cream);
	text-decoration: none;
}
.nav-lang-link.is-active {
	color: var(--tc-light);
	border-color: rgba(196,112,58,0.3);
}

/* Legacy — keep hidden */
.nav-lang { display: none; }

/* Mobile hamburger */
.nav-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	flex-direction: column;
	gap: 5px;
}
.nav-toggle span {
	display: block;
	width: 24px;
	height: 1.5px;
	background: var(--sand);
	transition: var(--transition);
}
.nav-toggle span:last-child { width: 16px; }
.nav-toggle.active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-toggle.active span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); width: 24px; }

/* Mobile menu drawer */
.nav-drawer {
	display: none;
	background: var(--basalt);
	padding: 0;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease, padding 0.3s ease;
}
.nav-drawer.open {
	max-height: 100vh;
	padding: 48px 0 40px;
	min-height: calc(100vh - 70px);
}
.nav-drawer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.nav-drawer ul li a {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 10px 32px;
	font-family: var(--font-heading);
	font-size: clamp(28px, 7vw, 40px);
	font-weight: 400;
	font-style: italic;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sand);
	border: none;
	outline: none;
	line-height: 1.2;
}
.nav-drawer ul li a::after {
	content: '→';
	font-family: var(--font-body);
	font-style: normal;
	font-size: 28px;
	color: var(--tc);
	opacity: 0.8;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.nav-drawer ul li a:hover { color: var(--cream); }
.nav-drawer ul li a:hover::after { opacity: 1; transform: translateX(4px); }
.nav-drawer ul li a:focus { outline: none; }

.nav-drawer__lang {
	padding: 24px 40px 8px;
	border-top: 1px solid rgba(212,184,150,0.1);
	margin-top: 8px;
}
.nav-drawer__lang-list {
	display: flex;
	gap: 16px;
}
.nav-drawer__lang-link {
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--stone);
	text-decoration: none;
	transition: color 0.2s;
}
.nav-drawer__lang-link:hover { color: var(--cream); }
.nav-drawer__lang-link.is-active {
	color: var(--tc-light);
	font-weight: 500;
}

/* Push content below fixed nav */
body { padding-top: 70px; }

/* ============================================================
	 6. HERO SECTION
	 ============================================================ */
.hero {
	position: relative;
	min-height: calc(100vh - 70px);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	background: var(--basalt);
}

.hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.hero__bg img,
.hero__bg video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Gradient overlay */
.hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
	to top,
	rgba(42,34,28,0.92) 0%,
	rgba(42,34,28,0.5) 40%,
	rgba(42,34,28,0.15) 70%,
	transparent 100%
	);
}

.hero__content {
	position: relative;
	z-index: 2;
	padding: 80px 0 100px;
	max-width: 620px;
}

.hero__title {
	font-family: var(--font-heading);
	font-size: clamp(48px, 7vw, 88px);
	color: var(--cream);
	font-weight: 400;
	line-height: 1.0;
	margin-bottom: 20px;
}

.hero__subtitle {
	font-size: 14px;
	color: var(--sand);
	line-height: 1.75;
	margin-bottom: 36px;
	max-width: 420px;
}

.hero__btns { display: flex; gap: 14px; flex-wrap: wrap; }

/* Scroll indicator */
.hero__scroll {
	position: absolute;
	bottom: 32px;
	right: 48px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: var(--sand);
	font-size: 8px;
	letter-spacing: 3px;
	text-transform: uppercase;
	opacity: 0.6;
}
.hero__scroll::before {
	content: '';
	display: block;
	width: 1px;
	height: 48px;
	background: var(--sand);
	animation: scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine {
	0%, 100% { opacity: 0.3; transform: scaleY(0.6); }
	50%        { opacity: 1;   transform: scaleY(1); }
}

/* ============================================================
	 7. STAT STRIP
	 ============================================================ */
.stat-strip {
	background: var(--tc);
	padding: 0;
}
.stat-strip__inner {
	display: flex;
	align-items: stretch;
}
.stat-item {
	flex: 1;
	text-align: center;
	padding: 36px 16px;
	color: var(--cream);
	border-right: 1px solid rgba(255,255,255,0.1);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
}
.stat-item:last-child { border-right: none; }
.stat-item__number {
	font-family: var(--font-heading);
	font-size: 48px;
	line-height: 1;
	display: block;
	color: var(--cream);
}
.stat-item__label {
	font-size: 8px;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: rgba(255,255,255,0.6);
	display: block;
}

/* ============================================================
	 8. SECTION LAYOUTS
	 ============================================================ */
.section { padding: 80px 0; }
.section--lg { padding: 120px 0; }
.section--sm { padding: 48px 0; }

.section--sand  { background: var(--sand-light); }
.section--stone { background: var(--basalt); }
.section--pale  { background: var(--tc-pale); }
.section--cream { background: var(--cream); }

/* Divider line */
.section__divider {
	width: 40px;
	height: 1px;
	background: var(--tc);
	margin: 20px 0 28px;
}
.section__divider--center { margin-left: auto; margin-right: auto; }

/* ============================================================
	 9. ROOM CARDS
	 ============================================================ */
.room-card {
	background: var(--sand-light);
	overflow: hidden;
	transition: var(--transition);
	height: 100%;
	display: flex;
	flex-direction: column;
}
.room-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.room-card__img {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.room-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}
.room-card:hover .room-card__img img { transform: scale(1.04); }

.room-card__badge {
	position: absolute;
	top: 16px;
	right: 16px;
	background: var(--tc);
	color: var(--cream);
	font-size: 9px;
	letter-spacing: 2px;
	text-transform: uppercase;
	padding: 5px 12px;
	z-index: 1;
}

.room-card__body {
	padding: 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.room-card__name {
	font-family: var(--font-heading);
	font-size: 22px;
	color: var(--basalt);
	margin-bottom: 8px;
}
.room-card__desc {
	font-size: 13px;
	line-height: 1.65;
	color: var(--stone);
	flex: 1;
	margin-bottom: 16px;
}
.room-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-top: 1px solid rgba(122,110,100,0.15);
	padding-top: 16px;
	margin-top: auto;
}
.room-card__price {
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--tc);
}
.room-card__amenities {
	display: flex;
	gap: 10px;
	font-size: 14px;
	color: var(--stone);
}
.room-card__amenities i { opacity: 0.7; }

/* Equal height card rows — Bootstrap 3 flex fix */
.row.row--cards {
	display: flex;
	flex-wrap: wrap;
}
.row.row--cards > [class*="col-"] {
	display: flex;
	flex-direction: column;
}
.feature-block { padding: 80px 0; }
.feature-block--reverse .feature-block__img { order: 2; }
.feature-block--reverse .feature-block__text { order: 1; }

.feature-block__img {
	position: relative;
	overflow: hidden;
}
.feature-block__img img {
	width: 100%;
	height: 100%;
	min-height: 480px;
	object-fit: cover;
}
.feature-block__img-overlay {
	position: absolute;
	inset: 0;
	background: rgba(58,53,48,0.1);
}

.feature-block__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px;
}

.feature-list {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
}
.feature-list li {
	padding: 10px 0;
	border-bottom: 1px solid rgba(122,110,100,0.12);
	font-size: 13px;
	color: var(--stone);
	display: flex;
	align-items: center;
	gap: 12px;
}
.feature-list li i {
	color: var(--tc);
	font-size: 16px;
	width: 20px;
	flex-shrink: 0;
}

/* ============================================================
	 11. GALLERY
	 ============================================================ */
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: auto;
	gap: 8px;
}
.gallery-grid__item {
	overflow: hidden;
	position: relative;
}
.gallery-grid__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.gallery-grid__item:hover img { transform: scale(1.05); }

/* Mosaic layout — count-based */

/* 1 photo */
.gallery-grid--count-1 .gallery-grid__item:nth-child(1) { grid-column: span 12; min-height: 480px; }

/* 2 photos */
.gallery-grid--count-2 .gallery-grid__item:nth-child(1) { grid-column: span 7; min-height: 400px; }
.gallery-grid--count-2 .gallery-grid__item:nth-child(2) { grid-column: span 5; min-height: 400px; }

/* 3 photos */
.gallery-grid--count-3 .gallery-grid__item:nth-child(1) { grid-column: span 7; grid-row: span 2; min-height: 400px; }
.gallery-grid--count-3 .gallery-grid__item:nth-child(2) { grid-column: span 5; }
.gallery-grid--count-3 .gallery-grid__item:nth-child(3) { grid-column: span 5; }

/* 4 photos */
.gallery-grid--count-4 .gallery-grid__item:nth-child(1) { grid-column: span 7; grid-row: span 2; min-height: 400px; }
.gallery-grid--count-4 .gallery-grid__item:nth-child(2) { grid-column: span 5; }
.gallery-grid--count-4 .gallery-grid__item:nth-child(3) { grid-column: span 5; }
.gallery-grid--count-4 .gallery-grid__item:nth-child(4) { grid-column: span 12; min-height: 260px; }

/* 5 photos */
.gallery-grid--count-5 .gallery-grid__item:nth-child(1) { grid-column: span 7; grid-row: span 2; min-height: 400px; }
.gallery-grid--count-5 .gallery-grid__item:nth-child(2) { grid-column: span 5; }
.gallery-grid--count-5 .gallery-grid__item:nth-child(3) { grid-column: span 5; }
.gallery-grid--count-5 .gallery-grid__item:nth-child(4) { grid-column: span 6; }
.gallery-grid--count-5 .gallery-grid__item:nth-child(5) { grid-column: span 6; }

/* 6+ photos — original layout */
.gallery-grid--count-6 .gallery-grid__item:nth-child(1),
.gallery-grid--count-many .gallery-grid__item:nth-child(1) { grid-column: span 7; grid-row: span 2; min-height: 400px; }
.gallery-grid--count-6 .gallery-grid__item:nth-child(2),
.gallery-grid--count-many .gallery-grid__item:nth-child(2) { grid-column: span 5; }
.gallery-grid--count-6 .gallery-grid__item:nth-child(3),
.gallery-grid--count-many .gallery-grid__item:nth-child(3) { grid-column: span 5; }
.gallery-grid--count-6 .gallery-grid__item:nth-child(4),
.gallery-grid--count-many .gallery-grid__item:nth-child(4) { grid-column: span 4; }
.gallery-grid--count-6 .gallery-grid__item:nth-child(5),
.gallery-grid--count-many .gallery-grid__item:nth-child(5) { grid-column: span 4; }
.gallery-grid--count-6 .gallery-grid__item:nth-child(6),
.gallery-grid--count-many .gallery-grid__item:nth-child(6) { grid-column: span 4; }
.gallery-grid--count-many .gallery-grid__item:nth-child(n+7) { grid-column: span 4; }

.gallery-grid__overlay {
	position: absolute;
	inset: 0;
	background: rgba(58,53,48,0);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: var(--transition);
}
.gallery-grid__item:hover .gallery-grid__overlay {
	background: rgba(58,53,48,0.4);
}
.gallery-grid__overlay i {
	color: var(--cream);
	font-size: 28px;
	opacity: 0;
	transition: var(--transition);
}
.gallery-grid__item:hover .gallery-grid__overlay i { opacity: 1; }

/* ============================================================
	 12. TESTIMONIAL / QUOTE
	 ============================================================ */
.quote-block {
	text-align: center;
	padding: 80px 0;
	background: var(--tc-pale);
}
.quote-block__mark {
	font-family: var(--font-heading);
	font-size: 96px;
	color: var(--tc-light);
	line-height: 0.5;
	display: block;
	margin-bottom: 24px;
}
.quote-block__text {
	font-family: var(--font-heading);
	font-size: clamp(18px, 2.5vw, 26px);
	font-style: italic;
	color: var(--tc-deep);
	line-height: 1.55;
	max-width: 640px;
	margin: 0 auto 20px;
}
.quote-block__author {
	font-size: 10px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--stone);
}

/* ============================================================
	 13. BOOKING BAR
	 ============================================================ */
.booking-bar {
	background: var(--basalt-mid);
	padding: 28px 0;
	border-bottom: 1px solid rgba(196,112,58,0.15);
}
.booking-bar__form {
	display: flex;
	align-items: stretch;
	gap: 1px;
	background: rgba(212,184,150,0.12);
	border: 1px solid rgba(212,184,150,0.12);
}
.booking-bar__field {
	flex: 1;
	background: var(--basalt-mid);
	padding: 14px 20px;
	position: relative;
}
.booking-bar__field + .booking-bar__field {
	border-left: 1px solid rgba(212,184,150,0.12);
}
.booking-bar__field label {
	display: block;
	font-size: 8px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--tc-light);
	margin-bottom: 6px;
}
.booking-bar__field input,
.booking-bar__field select {
	width: 100%;
	background: transparent;
	border: none;
	color: var(--cream);
	padding: 0;
	font-size: 14px;
	font-family: var(--font-body);
	letter-spacing: 0.5px;
	outline: none;
	transition: var(--transition);
}
.booking-bar__field input:focus,
.booking-bar__field select:focus {
	outline: none;
	color: var(--sand-light);
}
.booking-bar__field select option { background: var(--basalt); }
.booking-bar__field input[type="date"]::-webkit-calendar-picker-indicator {
	filter: invert(0.6) sepia(0.3);
	cursor: pointer;
}
.booking-bar__field input[type="date"] {
	color-scheme: dark;
}
.booking-bar__field--cta {
	flex: 0 0 auto;
	padding: 0;
	border-left: none !important;
}
.booking-bar__field--cta .btn {
	height: 100%;
	padding: 0 32px;
	font-size: 9px;
	letter-spacing: 3px;
	white-space: nowrap;
	border-radius: 0;
}

/* Sticky booking bar on mobile */
.booking-bar--sticky {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 999;
	padding: 12px 20px;
	display: none;
	background: var(--basalt);
	border-bottom: none;
}
.booking-bar--sticky .booking-bar__inner {
	display: flex;
	align-items: center;
	gap: 12px;
}
.booking-bar--sticky .booking-bar__info {
	flex: 1;
}
.booking-bar--sticky .booking-bar__info strong {
	display: block;
	font-size: 12px;
	color: var(--cream);
}
.booking-bar--sticky .booking-bar__info span {
	font-size: 11px;
	color: var(--stone);
}

/* ============================================================
	 14. TERRACE BAR PAGE
	 ============================================================ */
.terrace-hero {
	position: relative;
	min-height: 80vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--basalt);
}
.terrace-hero__bg {
	position: absolute;
	inset: 0;
}
.terrace-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.terrace-hero__bg--placeholder {
	background: radial-gradient(ellipse at 60% 40%, #5C4838 0%, #2E2520 50%, #1A1410 100%);
}
.terrace-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(20,16,12,0.92) 0%,
		rgba(20,16,12,0.4) 50%,
		transparent 100%
	);
}
.terrace-hero__content {
	position: relative;
	z-index: 2;
	padding-bottom: 72px;
}
.terrace-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(40px, 6vw, 80px);
	color: var(--cream);
	font-weight: 400;
	line-height: 1.05;
	margin-bottom: 16px;
}
.terrace-hero__sub {
	font-size: 14px;
	color: var(--sand);
	margin-bottom: 28px;
	opacity: 0.85;
}
.terrace-hours-pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: rgba(196,112,58,0.15);
	border: 1px solid rgba(196,112,58,0.35);
	padding: 10px 20px;
	font-size: 13px;
	color: var(--tc-light);
}
.terrace-hours-pill i { font-size: 16px; color: var(--tc); }
.terrace-hours-pill__note {
	font-size: 11px;
	color: var(--stone);
	padding-left: 8px;
	border-left: 1px solid rgba(196,112,58,0.3);
}

.terrace-info-box {
	background: var(--basalt);
	padding: 32px;
	border-left: 3px solid var(--tc);
	height: 100%;
}
.terrace-info-box__label {
	display: block;
	font-size: 9px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--tc);
	margin-bottom: 10px;
}
.terrace-info-box__value {
	font-family: var(--font-heading);
	font-size: 22px;
	color: var(--cream);
	line-height: 1.4;
	margin-bottom: 6px;
}
.terrace-info-box__note {
	font-size: 12px;
	color: var(--stone);
	margin: 0;
}

.menu-card {
	background: var(--sand-light);
	padding: 32px;
	border-left: 3px solid var(--tc);
	margin-bottom: 24px;
	height: 100%;
}
.menu-card__category {
	font-size: 9px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--tc);
	margin-bottom: 20px;
	display: block;
}
.menu-card .menu-item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 12px 0;
	border-bottom: 1px solid rgba(122,110,100,0.1);
}
.menu-card .menu-item:last-child { border-bottom: none; }
.menu-card .menu-item__name { font-family: var(--font-heading); font-size: 18px; }
.menu-card .menu-item__desc { font-size: 12px; color: var(--stone); margin-top: 2px; }
.menu-card .menu-item__price { font-size: 13px; color: var(--tc); white-space: nowrap; margin-left: 16px; flex-shrink: 0; }

@media (max-width: 767px) {
	.terrace-hero { min-height: 70vh; }
	.terrace-hero__content { padding-bottom: 48px; }
	.terrace-info-box { margin-top: 32px; }
	.terrace-hours-pill { flex-wrap: wrap; }
}

/* ============================================================
	 15. PAGE TEMPLATES
	 ============================================================ */

/* Interior pages */
.page-hero {
	background: var(--basalt);
	padding: 80px 0 60px;
	position: relative;
	overflow: hidden;
}
.page-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(196,112,58,0.12) 0%, transparent 60%);
}
.page-hero__content { position: relative; z-index: 1; }
.page-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(36px, 5vw, 64px);
	color: var(--cream);
	font-weight: 400;
	margin-bottom: 12px;
}
.page-hero__subtitle {
	font-size: 13px;
	color: var(--sand);
	letter-spacing: 1px;
}

/* Breadcrumb */
.breadcrumb {
	background: none;
	padding: 0;
	margin-bottom: 16px;
	font-size: 11px;
	letter-spacing: 1px;
}
.breadcrumb > li + li::before { color: var(--stone); content: "·  "; }
.breadcrumb a { color: var(--stone); }
.breadcrumb a:hover { color: var(--tc-light); }
.breadcrumb .active { color: var(--tc-light); }

/* Contact page */
.contact-info-item {
	display: flex;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid rgba(122,110,100,0.12);
}
.contact-info-item i {
	color: var(--tc);
	font-size: 20px;
	margin-top: 2px;
	width: 24px;
	flex-shrink: 0;
}
.contact-info-item__label {
	font-size: 9px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--stone);
	display: block;
	margin-bottom: 4px;
}
.contact-info-item__value {
	font-size: 14px;
	color: var(--basalt);
}

/* Contact form */
.contact-form label {
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--stone);
	display: block;
	margin-bottom: 6px;
}
.contact-form input,
.contact-form textarea,
.contact-form select {
	width: 100%;
	background: var(--cream);
	border: 1px solid rgba(122,110,100,0.25);
	color: var(--basalt);
	padding: 12px 16px;
	font-size: 14px;
	border-radius: var(--radius);
	transition: var(--transition);
	margin-bottom: 20px;
	font-family: var(--font-body);
}
.contact-form input:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--tc);
	box-shadow: 0 0 0 3px rgba(196,112,58,0.1);
}
.contact-form textarea { min-height: 140px; resize: vertical; }

/* ============================================================
	 16. FOOTER
	 ============================================================ */
#colophon {
	background: #2A2520;
	padding: 72px 0 0;
}
.footer-logo__name {
	font-family: var(--font-heading);
	font-size: 28px;
	letter-spacing: 5px;
	color: var(--tc-light);
	display: block;
	line-height: 1;
	margin-bottom: 0;
}
.footer-logo__sub {
	font-size: 9px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--stone);
}
.footer-logo {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	margin-bottom: 16px;
}
.footer-logo > div { line-height: 1; }
.footer-logo__bug {
	width: 42px;
	height: 42px;
	object-fit: contain;
	flex-shrink: 0;
}
.footer-about {
	font-size: 12px;
	color: var(--stone);
	line-height: 1.8;
	margin-top: 20px;
	max-width: 260px;
}
.footer-col__title {
	font-size: 9px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--tc-light);
	margin-bottom: 20px;
	display: block;
	height: auto;
	line-height: 1.2;
	pointer-events: none;
}
@media (max-width: 991px) {
	#colophon .col-md-4.col-sm-12 { clear: both; }
}
.footer-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.footer-col ul li { margin-bottom: 10px; }
.footer-col ul li a {
	font-size: 12px;
	color: var(--stone);
	transition: var(--transition);
}
.footer-col ul li a:hover { color: var(--tc-light); padding-left: 4px; }

.footer-social {
	display: flex;
	gap: 14px;
	margin-top: 20px;
	margin-bottom: 40px;
}
.footer-social a {
	width: 36px;
	height: 36px;
	border: 1px solid rgba(212,184,150,0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--stone);
	font-size: 16px;
	transition: var(--transition);
	border-radius: var(--radius);
}
.footer-social a:hover {
	border-color: var(--tc);
	color: var(--tc-light);
}

.footer-bottom {
	border-top: 1px solid rgba(255,255,255,0.06);
	padding: 20px 0;
	margin-top: 48px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
}
.footer-bottom p {
	font-size: 10px;
	color: var(--stone);
	opacity: 0.5;
	margin: 0;
}
.footer-bottom a { color: var(--stone); opacity: 0.5; font-size: 10px; }
.footer-bottom a:hover { opacity: 0.8; }

.footer-credit {
	background: #221E1A;
	border-top: 1px solid rgba(255,255,255,0.05);
	text-align: center;
	padding: 10px 16px;
	font-size: 10px;
	letter-spacing: 1px;
	color: rgba(255,255,255,0.25);
}
.footer-credit a {
	color: rgba(255,255,255,0.4);
	text-decoration: none;
}
.footer-credit a:hover { color: var(--tc-light); }

/* ============================================================
	 17. UTILITY CLASSES
	 ============================================================ */
.text-tc     { color: var(--tc) !important; }
.text-sand   { color: var(--sand) !important; }
.text-cream  { color: var(--cream) !important; }
.text-stone  { color: var(--stone) !important; }
.text-basalt { color: var(--basalt) !important; }

.bg-basalt   { background-color: var(--basalt) !important; }
.bg-tc       { background-color: var(--tc) !important; }
.bg-sand     { background-color: var(--sand-light) !important; }
.bg-cream    { background-color: var(--cream) !important; }
.bg-pale     { background-color: var(--tc-pale) !important; }

.letter-space-sm { letter-spacing: 2px; }
.letter-space-md { letter-spacing: 4px; }
.letter-space-lg { letter-spacing: 6px; }

.font-heading { font-family: var(--font-heading) !important; }

.border-tc { border-color: var(--tc) !important; }
.border-left-tc { border-left: 3px solid var(--tc) !important; }

.ratio-4-3  { aspect-ratio: 4/3; }
.ratio-16-9 { aspect-ratio: 16/9; }
.ratio-1-1  { aspect-ratio: 1/1; }

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

/* Lazy load fade-in */
img.lazyload { opacity: 0; transition: opacity 0.4s ease; }
img.lazyloaded { opacity: 1; }

/* ============================================================
	 18. RESPONSIVE — TABLET (< 992px)
	 ============================================================ */
@media (max-width: 991px) {
	.navbar-moma { padding: 16px 24px; }
	.nav-primary,
	.nav-right   { display: none; }
	.nav-toggle  { display: flex; }
	.nav-drawer  { display: block; }

	.feature-block__text { padding: 36px 24px; }
	.feature-block__img img { min-height: 320px; }
	.feature-block--reverse .feature-block__img { order: unset; }
	.feature-block--reverse .feature-block__text { order: unset; }

	.booking-bar--sticky { display: block; }
	body { padding-bottom: 64px; }

	/* Gallery — all count variants stack on tablet */
	.gallery-grid [class*="gallery-grid__item"] { grid-column: span 12 !important; grid-row: span 1 !important; min-height: 260px !important; }
	.gallery-grid [class*="gallery-grid__item"]:not(:first-child) { grid-column: span 6 !important; }
}

/* ============================================================
	 19. RESPONSIVE — MOBILE (< 768px)
	 ============================================================ */
@media (max-width: 767px) {
	.hero__content { padding: 60px 0 80px; }
	.hero__scroll  { display: none; }
	.hero__btns    { flex-direction: column; }
	.hero__btns .btn { width: 100%; text-align: center; }

	.stat-strip__inner { flex-wrap: wrap; }
	.stat-item { flex: 0 0 50%; border-bottom: 1px solid rgba(255,255,255,0.1); }
	.stat-item:nth-child(2) { border-right: none; }

	.section { padding: 56px 0; }
	.section--lg { padding: 72px 0; }

	.feature-block__text { padding: 32px 24px; }
	.feature-block__img img { min-height: 260px; }

	/* Gallery — full width on mobile */
	.gallery-grid [class*="gallery-grid__item"] { grid-column: span 12 !important; grid-row: span 1 !important; min-height: 220px !important; }

	.booking-bar__form { flex-direction: column; }
	.booking-bar__field { min-width: 100%; }

	.footer-bottom { flex-direction: column; text-align: center; }
	#colophon      { padding-top: 48px; }

	.quote-block__mark { font-size: 64px; }

	.room-card:hover { transform: none; box-shadow: none; }
	.room-card:hover .room-card__img img { transform: none; }
}

/* ============================================================
	 20. PRINT
	 ============================================================ */
@media print {
	#masthead,
	.booking-bar,
	.booking-bar--sticky,
	.hero__scroll { display: none !important; }
	body { padding-top: 0; background: white; color: black; }
}

/* ============================================================
	 21. QUICK ACTION BOTTOM SHEET
	 ============================================================ */

/* Backdrop */
.quick-sheet__backdrop {
	position: fixed;
	inset: 0;
	z-index: 1998;
	background: rgba(10,8,6,0);
	pointer-events: none;
	transition: background 0.35s ease;
}
.quick-sheet__backdrop.is-visible {
	background: rgba(10,8,6,0.6);
	pointer-events: all;
	touch-action: none;
}

/* Sheet */
.quick-sheet {
	position: fixed;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%) translateY(100%);
	width: 100%;
	max-width: 480px;
	z-index: 1999;
	background: var(--basalt);
	border-radius: 16px 16px 0 0;
	padding: 12px 0 40px;
	transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1);
	will-change: transform;
}
.quick-sheet.is-open {
	transform: translateX(-50%) translateY(0);
}

/* Drag handle */
.quick-sheet__handle {
	width: 36px;
	height: 4px;
	background: rgba(212,184,150,0.25);
	border-radius: 2px;
	margin: 0 auto 24px;
}

/* Links */
.quick-sheet__links {
	display: flex;
	flex-direction: column;
}
.quick-sheet__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 28px;
	color: var(--sand);
	font-family: var(--font-heading);
	font-size: 22px;
	font-style: italic;
	font-weight: 400;
	text-decoration: none;
	transition: color 0.2s ease, padding-left 0.2s ease;
	border: none;
}
.quick-sheet__item:hover,
.quick-sheet__item:focus {
	color: var(--cream);
	padding-left: 34px;
	outline: none;
}
.quick-sheet__item-text {
	display: flex;
	align-items: center;
	gap: 14px;
}
.quick-sheet__item-text i {
	font-size: 18px;
	color: var(--tc);
	font-style: normal;
	width: 22px;
	flex-shrink: 0;
}
.quick-sheet__arrow {
	font-size: 16px;
	color: var(--tc);
	opacity: 0.5;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.quick-sheet__item:hover .quick-sheet__arrow {
	opacity: 1;
	transform: translateX(4px);
}

/* Close button */
.quick-sheet__close {
	display: block;
	width: calc(100% - 56px);
	margin: 20px 28px 0;
	background: transparent;
	border: 1px solid rgba(212,184,150,0.2);
	color: var(--stone);
	font-family: var(--font-body);
	font-size: 10px;
	letter-spacing: 3px;
	text-transform: uppercase;
	padding: 14px;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.quick-sheet__close:hover {
	border-color: var(--tc);
	color: var(--tc-light);
}

/* ============================================================
	22. FANCYBOX THEME OVERRIDES
	============================================================ */
:root {
	--fancybox-accent-color: #C4703A;
	--fancybox-bg: rgba(42, 34, 28, 0.97);
}