/*
Theme Name: Shabbos Villas
Theme URI: https://shabbosvillas.com
Description: Premium editorial theme for Shabbos Villas — private family estate in Monsey, NY.
Version: 2.1
Author: Shabbos Villas
License: GNU General Public License v2 or later
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500&family=Outfit:wght@200;300;400;500;600&display=swap');

:root {
  --bg: #f7f4f0;
  --fg: #1e1b17;
  --muted: #7a7570;
  --accent: #a0714a;
  --accent-fg: #f7f4f0;
  --border: #e0dbd5;
  --card: #edebe7;
  --card-dark: hsl(25,15%,14%);
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Outfit', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); background: var(--bg); color: var(--fg); -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
::selection { background: rgba(160,113,74,0.2); }

.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.container-lg { max-width: 1200px; margin: 0 auto; padding: 0 48px; }

/* ===== HEADER ===== */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; padding: 0; transition: all 0.7s; background: linear-gradient(to bottom, rgba(30,27,23,0.5), transparent); }
.site-header.scrolled { background: rgba(247,244,240,0.98); backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 80px; }
.site-logo { font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; color: #fff; letter-spacing: 0.02em; transition: color 0.5s; }
.site-logo small { display: block; font-family: var(--font-body); font-size: 9px; letter-spacing: 0.4em; text-transform: uppercase; opacity: 0.4; }
.scrolled .site-logo, .scrolled .nav-link { color: var(--fg); }
.nav-link { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.9); transition: all 0.3s; }
.nav-link:hover { opacity: 0.6; }
nav.main-nav { display: flex; gap: 40px; align-items: center; }
.reserve-btn { font-family: var(--font-body); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; padding: 10px 28px; background: rgba(255,255,255,0.1); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.2); color: #fff; transition: all 0.5s; cursor: pointer; }
.scrolled .reserve-btn { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); box-shadow: 0 4px 16px rgba(160,113,74,0.15); }

/* ===== HERO ===== */
.hero { position: relative; height: 100vh; min-height: 750px; display: flex; align-items: flex-end; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(30,27,23,0.8), rgba(30,27,23,0.35) 50%, rgba(30,27,23,0.15)); }
.hero-overlay-side { position: absolute; inset: 0; background: linear-gradient(to right, rgba(30,27,23,0.4), transparent); }
.hero-content { position: relative; z-index: 2; padding-bottom: 64px; }
.hero-badge { display: inline-block; font-family: var(--font-body); font-size: 10px; letter-spacing: 0.5em; text-transform: uppercase; color: rgba(255,255,255,0.5); border: 1px solid rgba(255,255,255,0.2); padding: 8px 16px; margin-bottom: 24px; }
.hero h1 { font-family: var(--font-display); font-size: clamp(3.2rem, 6vw, 6.5rem); font-weight: 300; color: #fff; line-height: 0.95; margin-bottom: 32px; }
.hero h1 em { font-weight: 400; color: var(--accent); }
.hero-desc { font-family: var(--font-body); font-size: 17px; color: rgba(255,255,255,0.6); max-width: 500px; line-height: 1.8; margin-bottom: 48px; }
.hero-cta { display: flex; gap: 20px; flex-wrap: wrap; }
.hero-cta a { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; padding: 16px 40px; transition: all 0.3s; }
.cta-primary { background: var(--accent); color: #fff; box-shadow: 0 8px 24px rgba(160,113,74,0.2); }
.cta-primary:hover { background: #b8834f; }
.cta-secondary { border: 1px solid rgba(255,255,255,0.3); color: #fff; backdrop-filter: blur(4px); }
.cta-secondary:hover { background: rgba(255,255,255,0.1); }
.hero-stats { display: flex; gap: 12px; margin-top: 64px; background: rgba(255,255,255,0.05); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.1); padding: 24px 40px; width: fit-content; }
.stat-item { display: flex; align-items: baseline; gap: 12px; }
.stat-val { font-family: var(--font-display); font-size: 2.5rem; font-weight: 300; color: #fff; }
.stat-label { font-family: var(--font-body); font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(255,255,255,0.4); }
.stat-divider { width: 1px; height: 32px; background: rgba(255,255,255,0.1); margin: 0 24px; align-self: center; }

/* ===== SECTION COMMON ===== */
.section { padding: 112px 0; position: relative; }
.section-alt { background: var(--card); }
.section-dark { background: var(--fg); color: #fff; }
.section-label { display: inline-block; font-family: var(--font-body); font-size: 10px; letter-spacing: 0.5em; text-transform: uppercase; color: var(--accent); border-bottom: 2px solid rgba(160,113,74,0.3); padding-bottom: 4px; margin-bottom: 24px; }
.section-dark .section-label { color: var(--accent); }
.section-title { font-family: var(--font-display); font-size: clamp(2.5rem, 4vw, 3.8rem); font-weight: 300; line-height: 1.05; }
.section-title em { color: var(--accent); font-style: italic; }
.section-dark .section-title { color: #fff; }

/* ===== ABOUT ===== */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.about-images { position: relative; height: 640px; }
.about-img-main { position: absolute; top: 0; left: 0; width: 65%; height: 75%; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.1); }
.about-img-main img, .about-img-sm img { width: 100%; height: 100%; object-fit: cover; }
.about-img-sm:nth-child(2) { position: absolute; top: 32px; right: 0; width: 40%; height: 45%; overflow: hidden; box-shadow: 0 12px 40px rgba(0,0,0,0.08); }
.about-img-sm:nth-child(3) { position: absolute; bottom: 0; right: 16px; width: 48%; height: 42%; overflow: hidden; box-shadow: 0 12px 40px rgba(0,0,0,0.08); border: 4px solid var(--bg); }
.about-decor { position: absolute; bottom: -16px; left: -16px; width: 96px; height: 96px; border: 1px solid rgba(160,113,74,0.3); }
.about-text p { font-size: 15px; color: var(--muted); line-height: 1.9; margin-bottom: 20px; }
.about-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--border); align-items: start; }
.about-stat-item { min-width: 0; }
.about-stat-val { font-family: var(--font-display); font-size: 3.2rem; font-weight: 300; color: var(--accent); }
.about-stat-label { font-family: var(--font-body); font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }

/* ===== CINEMATIC DIVIDER ===== */
.divider-image { position: relative; height: 50vh; overflow: hidden; }
.divider-image img { width: 100%; height: 100%; object-fit: cover; }
.divider-gradient-down { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--bg), transparent, var(--card)); }
.divider-gradient-dark { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--bg), transparent, var(--fg)); }
.divider-quote { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.divider-quote p { font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 3.2rem); font-weight: 300; color: #fff; text-align: center; font-style: italic; }

/* ===== GALLERY ===== */
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gallery-item { overflow: hidden; cursor: pointer; position: relative; box-shadow: 0 4px 20px rgba(0,0,0,0.05); }
.gallery-item.large { grid-column: span 2; grid-row: span 2; }
.gallery-item:not(.large) { aspect-ratio: 1; }
.gallery-item.large { aspect-ratio: 4/3; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease-out; }
.gallery-item:hover img { transform: scale(1.1); }
.gallery-item .overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(30,27,23,0.4), transparent); opacity: 0; transition: opacity 0.5s; }
.gallery-item:hover .overlay { opacity: 1; }
.gallery-item .cat-label { position: absolute; bottom: 16px; left: 16px; font-family: var(--font-body); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.8); transform: translateY(20px); opacity: 0; transition: all 0.5s; }
.gallery-item:hover .cat-label { transform: translateY(0); opacity: 1; }
.view-all-btn { display: inline-flex; align-items: center; gap: 16px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; background: var(--fg); color: #fff; padding: 16px 40px; border: none; cursor: pointer; margin-top: 48px; transition: all 0.3s; box-shadow: 0 4px 20px rgba(30,27,23,0.1); }
.view-all-btn:hover { background: var(--accent); }

/* ===== AMENITIES ===== */
.amenity-tabs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 56px; }
.amenity-tab { font-family: var(--font-body); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; padding: 12px 24px; background: var(--card); color: var(--muted); border: none; cursor: pointer; transition: all 0.3s; }
.amenity-tab.active { background: var(--accent); color: #fff; box-shadow: 0 4px 16px rgba(160,113,74,0.2); }
.amenity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.amenity-item { display: flex; align-items: center; gap: 16px; padding: 20px; background: rgba(237,235,231,0.8); border: 1px solid rgba(224,219,213,0.6); transition: all 0.3s; }
.amenity-item:hover { border-color: rgba(160,113,74,0.4); box-shadow: 0 4px 16px rgba(160,113,74,0.05); }
.amenity-icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: rgba(160,113,74,0.1); flex-shrink: 0; font-size: 14px; }
.amenity-item span { font-family: var(--font-body); font-size: 13px; }

/* ===== TESTIMONIALS ===== */
.testimonial-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.testimonial-card { background: var(--card-dark); padding: 40px; border: 1px solid rgba(255,255,255,0.08); transition: border-color 0.5s; }
.testimonial-card:hover { border-color: rgba(160,113,74,0.3); }
.testimonial-card .quote-icon { font-family: var(--font-display); font-size: 3rem; color: rgba(160,113,74,0.2); line-height: 1; margin-bottom: 20px; }
.testimonial-card .stars { color: var(--accent); font-size: 12px; letter-spacing: 2px; margin-bottom: 20px; }
.testimonial-card blockquote { font-family: var(--font-body); font-size: 14px; color: rgba(255,255,255,0.7); line-height: 1.9; margin-bottom: 32px; }
.testimonial-card .author { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; }
.testimonial-card .author-name { font-family: var(--font-display); font-size: 1.1rem; font-weight: 500; color: #fff; }
.testimonial-card .author-detail { font-family: var(--font-body); font-size: 11px; letter-spacing: 0.15em; color: rgba(255,255,255,0.4); margin-top: 4px; }

/* ===== CONTACT ===== */
.contact-grid { display: grid; grid-template-columns: 2fr 3fr; gap: 112px; max-width: 1100px; margin: 0 auto; }
.contact-info-item { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 32px; }
.contact-icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: rgba(160,113,74,0.1); font-size: 14px; flex-shrink: 0; }
.contact-info-label { font-family: var(--font-body); font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.contact-info-value { font-family: var(--font-body); font-size: 15px; transition: color 0.3s; }
.contact-info-item:hover .contact-info-value { color: var(--accent); }
.contact-input { width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--border); padding: 16px 0; font-family: var(--font-body); font-size: 14px; color: var(--fg); outline: none; transition: border-color 0.3s; }
.contact-input:focus { border-color: var(--accent); }
.contact-input::placeholder { color: rgba(122,117,112,0.5); }
.submit-btn { display: inline-flex; align-items: center; gap: 16px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; background: var(--accent); color: #fff; padding: 16px 48px; border: none; cursor: pointer; margin-top: 32px; transition: all 0.3s; box-shadow: 0 8px 24px rgba(160,113,74,0.2); }
.submit-btn:hover { background: var(--fg); }

/* ===== FOOTER ===== */
.site-footer { background: var(--fg); color: #fff; padding: 64px 0 0; }
.footer-top { display: flex; justify-content: space-between; align-items: center; }
.footer-logo { font-family: var(--font-display); font-size: 1.8rem; font-weight: 300; letter-spacing: 0.02em; }
.footer-logo small { display: block; font-family: var(--font-body); font-size: 11px; letter-spacing: 0.3em; color: rgba(255,255,255,0.3); text-transform: uppercase; margin-top: 8px; }
.footer-contact { display: flex; gap: 24px; align-items: center; }
.footer-contact a { font-family: var(--font-body); font-size: 13px; color: rgba(255,255,255,0.5); transition: color 0.3s; }
.footer-contact a:hover { color: var(--accent); }
.footer-contact .sep { color: rgba(255,255,255,0.15); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); margin-top: 40px; padding: 32px 0; display: flex; justify-content: space-between; align-items: center; }
.footer-bottom p { font-family: var(--font-body); font-size: 11px; color: rgba(255,255,255,0.25); }
.footer-nav { display: flex; gap: 32px; }
.footer-nav a { font-family: var(--font-body); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.25); transition: color 0.3s; }
.footer-nav a:hover { color: var(--accent); }

/* ===== LIGHTBOX ===== */
.lightbox { position: fixed; inset: 0; z-index: 100; background: hsl(25,15%,6%); display: none; flex-direction: column; }
.lightbox.active { display: flex; }
.lightbox-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; border-bottom: 1px solid rgba(255,255,255,0.08); background: hsl(25,15%,8%); }
.lightbox-filters { display: flex; gap: 8px; overflow-x: auto; }
.lightbox-filter { font-family: var(--font-body); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; padding: 8px 16px; background: none; border: none; color: rgba(255,255,255,0.4); cursor: pointer; white-space: nowrap; transition: all 0.2s; }
.lightbox-filter.active { background: var(--accent); color: #fff; }
.lightbox-close { background: none; border: none; color: rgba(255,255,255,0.4); font-size: 24px; cursor: pointer; transition: color 0.3s; }
.lightbox-close:hover { color: #fff; }
.lightbox-main { flex: 1; display: flex; align-items: center; justify-content: center; position: relative; padding: 16px; }
.lightbox-main img { max-width: 88vw; max-height: 68vh; object-fit: contain; filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4)); }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.05); backdrop-filter: blur(8px); border: none; border-radius: 50%; color: rgba(255,255,255,0.5); font-size: 24px; cursor: pointer; transition: all 0.3s; }
.lightbox-nav:hover { color: #fff; background: rgba(255,255,255,0.1); }
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }
.lightbox-thumbs { padding: 12px 16px; border-top: 1px solid rgba(255,255,255,0.08); background: hsl(25,15%,8%); }
.thumb-strip { display: flex; gap: 6px; overflow-x: auto; justify-content: center; }
.thumb-strip button { flex-shrink: 0; width: 56px; height: 40px; overflow: hidden; border: 2px solid transparent; padding: 0; opacity: 0.3; cursor: pointer; transition: all 0.2s; background: none; }
.thumb-strip button.active { opacity: 1; border-color: var(--accent); transform: scale(1.05); }
.thumb-strip button:hover { opacity: 0.6; }
.thumb-strip button img { width: 100%; height: 100%; object-fit: cover; }
.lightbox-counter { text-align: center; font-family: var(--font-body); font-size: 10px; letter-spacing: 0.15em; color: rgba(255,255,255,0.3); margin-top: 8px; }

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .container-lg { padding: 0 24px; }
  .about-grid { grid-template-columns: 1fr; gap: 48px; }
  .about-images { height: 400px; }
  .contact-grid { grid-template-columns: 1fr; gap: 48px; }
}
@media (max-width: 768px) {
  nav.main-nav, .reserve-btn, .hero-stats { display: none; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-item.large { grid-column: span 2; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .footer-top { flex-direction: column; text-align: center; gap: 24px; }
  .footer-bottom { flex-direction: column; gap: 16px; text-align: center; }
  .footer-nav { flex-wrap: wrap; justify-content: center; }
}


/* MOBILE REBUILD */
.mobile-toggle{display:none;font-size:26px;cursor:pointer}
@media(max-width:768px){
  .mobile-toggle{display:block}
  .main-nav{display:none;flex-direction:column;background:#fff;position:absolute;top:70px;right:0;width:100%;padding:20px}
  .main-nav.active{display:flex}
  .hero{min-height:auto!important;padding:100px 20px 60px}
  .hero h1{font-size:34px;line-height:1.2}
  .hero p{font-size:16px}
  section{padding:50px 20px}
  .grid,.row{grid-template-columns:1fr!important}
  form{grid-template-columns:1fr!important}
}
img{max-width:100%;height:auto;display:block}



/* Contact section rebuild */
.contact-section { text-align:left; }
.contact-shell {
  display:grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(320px, 1.05fr);
  gap: 34px;
  max-width: 1120px;
  margin: 0 auto;
  align-items: stretch;
}
.contact-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 34px 30px;
  box-shadow: 0 20px 45px rgba(34, 24, 18, 0.06);
}
.contact-panel-info {
  background: linear-gradient(180deg, #fbf8f4 0%, #f7f4f0 100%);
}
.contact-lead {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  margin: 24px 0 34px;
  max-width: 36ch;
}
.contact-info-list { display:grid; gap: 14px; }
.contact-info-item {
  display:flex;
  gap: 16px;
  align-items:flex-start;
  margin-bottom: 0;
  padding: 16px 18px;
  border: 1px solid rgba(160,113,74,0.14);
  border-radius: 16px;
  background: rgba(255,255,255,0.75);
}
.contact-icon {
  width: 42px;
  height: 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(160,113,74,0.10);
  border-radius: 999px;
  font-size: 15px;
  flex-shrink: 0;
}
.contact-info-label { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.contact-info-value { font-size: 16px; line-height: 1.5; transition: color 0.3s; }
.contact-form { display:block; }
.contact-form-grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 24px;
}
.contact-field { display:flex; flex-direction:column; }
.contact-field-full { grid-column: 1 / -1; }
.contact-field label {
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 10px;
}
.contact-input {
  width: 100%;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 15px 16px;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--fg);
  outline: none;
  transition: border-color 0.25s, box-shadow 0.25s, background-color 0.25s;
}
.contact-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px rgba(160,113,74,0.10);
}
.contact-input::placeholder { color: rgba(122,117,112,0.65); }
.contact-textarea {
  resize: vertical;
  min-height: 150px;
}
.contact-alert {
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 18px;
  font-size: 14px;
  line-height: 1.55;
}
.contact-alert-success { background: #eef8f0; border: 1px solid #b7ddbf; color: #295b33; }
.contact-alert-error { background: #fff2f2; border: 1px solid #e4b9b9; color: #8d2d2d; }
.sv-hp { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 900px) {
  .contact-shell { grid-template-columns: 1fr; gap: 22px; }
}

@media (max-width: 768px) {
  .contact-panel { padding: 26px 20px; border-radius: 18px; }
  .contact-form-grid { grid-template-columns: 1fr; gap: 16px; }
  .contact-field-full { grid-column: auto; }
  .contact-lead { max-width: 100%; margin-bottom: 24px; }
  .contact-info-item { padding: 14px 14px; border-radius: 14px; }
  .contact-input { font-size: 16px; }
  .submit-btn { width: 100%; text-align: center; }
}


/* v8 contact and mobile fixes */
.header-inner { position: relative; }
.mobile-toggle {
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,0.28);
  background: rgba(255,255,255,0.08);
  color:#fff;
  cursor:pointer;
  z-index:70;
  border-radius:12px;
}
.site-header.scrolled .mobile-toggle { color: var(--fg); border-color: var(--border); background:#fff; }
.contact-section .section-label { margin-bottom: 14px; }
.contact-panel-info .section-title { margin-bottom: 18px; }
.contact-lead { margin-bottom: 28px; }
.sv-hp-wrap, .sv-hp { display:none !important; visibility:hidden !important; height:0 !important; width:0 !important; overflow:hidden !important; }
.submit-btn[disabled] { opacity: 0.7; cursor: wait; }
@media (max-width: 768px) {
  .site-header { background: linear-gradient(to bottom, rgba(30,27,23,0.75), rgba(30,27,23,0.12)); }
  .header-inner { height: 80px; }
  .mobile-toggle { display:inline-flex !important; }
  .reserve-btn { display:none !important; }
  nav.main-nav {
    position: absolute;
    top: calc(100% + 8px);
    left: 24px;
    right: 24px;
    display: none;
    flex-direction: column;
    gap: 0;
    padding: 10px 0;
    background: rgba(255,255,255,0.98);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(30,27,23,0.12);
    z-index: 65;
  }
  nav.main-nav.active { display: flex !important; }
  nav.main-nav .nav-link {
    color: var(--fg) !important;
    padding: 14px 18px;
    letter-spacing: 0.14em;
    font-size: 12px;
  }
  .hero { height: auto !important; min-height: 0 !important; padding: 120px 0 64px !important; }
  .hero-content { padding-bottom: 0 !important; }
  .hero h1 { font-size: 42px !important; line-height: 1.05 !important; }
  .hero-desc { max-width: 100% !important; margin-bottom: 28px !important; }
}


/* v11 unified buttons + card vibe */
:root {
  --ui-radius: 18px;
  --ui-radius-sm: 14px;
  --ui-shadow: 0 18px 40px rgba(34,24,18,0.08);
  --ui-shadow-soft: 0 10px 24px rgba(34,24,18,0.05);
}

.reserve-btn,
.hero-cta a,
.view-all-btn,
.submit-btn,
.amenity-tab,
.back-to-top.reserve-btn {
  border-radius: var(--ui-radius) !important;
  min-height: 52px;
  padding: 15px 24px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: var(--font-body);
  font-size: 12px !important;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: transform 0.22s ease, box-shadow 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}

.reserve-btn,
.cta-secondary,
.view-all-btn,
.amenity-tab,
.back-to-top.reserve-btn {
  background: rgba(255,255,255,0.92);
  color: var(--fg);
  border: 1px solid rgba(160,113,74,0.16);
  box-shadow: var(--ui-shadow-soft);
  backdrop-filter: blur(10px);
}

.site-header.scrolled .reserve-btn,
.cta-primary,
.submit-btn,
.amenity-tab.active {
  background: linear-gradient(180deg, #b07c52 0%, #9a6944 100%);
  color: #fff;
  border: 1px solid rgba(160,113,74,0.35);
  box-shadow: 0 14px 32px rgba(160,113,74,0.22);
}

.reserve-btn:hover,
.hero-cta a:hover,
.view-all-btn:hover,
.submit-btn:hover,
.amenity-tab:hover,
.back-to-top.reserve-btn:hover {
  transform: translateY(-1px);
}

.cta-secondary:hover,
.view-all-btn:hover,
.amenity-tab:hover,
.back-to-top.reserve-btn:hover {
  background: #fff;
  border-color: rgba(160,113,74,0.3);
  box-shadow: 0 16px 32px rgba(34,24,18,0.09);
}

.cta-primary:hover,
.submit-btn:hover,
.amenity-tab.active:hover,
.site-header.scrolled .reserve-btn:hover {
  background: linear-gradient(180deg, #b8865c 0%, #a06c46 100%);
  box-shadow: 0 18px 34px rgba(160,113,74,0.26);
}

.contact-info-item,
.amenity-item,
.testimonial-card {
  border-radius: var(--ui-radius);
  box-shadow: var(--ui-shadow-soft);
}

.amenity-item {
  padding: 18px 18px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(160,113,74,0.14);
}

.amenity-item:hover {
  border-color: rgba(160,113,74,0.28);
  box-shadow: 0 16px 32px rgba(34,24,18,0.08);
}

.amenity-icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(160,113,74,0.1);
}

.testimonial-card {
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 18px 40px rgba(0,0,0,0.18);
}

@media (max-width: 768px) {
  .reserve-btn,
  .hero-cta a,
  .view-all-btn,
  .submit-btn,
  .amenity-tab,
  .back-to-top.reserve-btn {
    width: 100%;
    padding: 15px 18px !important;
  }

  .hero-cta {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .amenity-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}

.about-decor, .decor-box { display:none !important; }


/* TESTIMONIAL SLIDER */
.testimonial-grid {
  display: flex !important;
  overflow: hidden;
  gap: 20px;
}

.testimonial-card {
  min-width: 320px;
  flex-shrink: 0;
}


/* REMOVE EMPTY BOX */
.about-decor, .decor-box {
  display: none !important;
}

/* CLEAN CARD STYLE */
.testimonial-card,
.amenity-card,
.contact-card {
  background: #FBFAF8 !important;
  border: 1px solid #E4DDD3 !important;
  border-radius: 12px !important;
  padding: 24px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03) !important;
}


/* TESTIMONIALS: 4 FIXED BOXES, NO MOVEMENT */
.testimonial-grid{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
  gap:24px !important;
  overflow:visible !important;
}
.testimonial-card{
  min-width:0 !important;
  width:100% !important;
  flex-shrink:1 !important;
}
@media (max-width: 1024px){
  .testimonial-grid{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
}
@media (max-width: 767px){
  .testimonial-grid{
    grid-template-columns:1fr !important;
  }
}


/* TESTIMONIAL VISIBILITY FIX */
.testimonial-card{
  background:#F2EEE9 !important;
  border:1px solid #D8D0C5 !important;
  color:#2B2622 !important;
}
.testimonial-card p{
  color:#2B2622 !important;
}


/* TESTIMONIAL TEXT DARK FIX */
.testimonial-card{
  color:#2B2622 !important;
}
.testimonial-card p{
  color:#2B2622 !important;
}
.testimonial-card h3,
.testimonial-card h4,
.testimonial-card strong{
  color:#1F1A17 !important;
}
.testimonial-card span,
.testimonial-card small{
  color:#6B625A !important;
}


/* FORCE DARK TEXT INSIDE TESTIMONIALS */
.testimonial-card,
.testimonial-card * {
  color: #2B2622 !important;
}

.testimonial-card h3,
.testimonial-card strong {
  color: #1F1A17 !important;
}

.testimonial-card span,
.testimonial-card small {
  color: #6B625A !important;
}

.testimonial-card .stars {
  color: #C69C53 !important;
}


/* TESTIMONIAL SECTION REDESIGN */
.testimonials-section,
section.testimonials,
#testimonials {
  padding-top: 90px !important;
  padding-bottom: 90px !important;
}

.testimonial-grid {
  align-items: stretch !important;
  gap: 22px !important;
}

.testimonial-card {
  background: #F3EEE8 !important;
  border: 1px solid #D8D0C5 !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.05) !important;
  padding: 26px 24px 22px !important;
  min-height: 360px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

.testimonial-card .stars,
.testimonial-card .rating,
.testimonial-card .testimonial-stars {
  margin-bottom: 14px !important;
  letter-spacing: 2px !important;
}

.testimonial-card p {
  color: #2B2622 !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  margin-bottom: 18px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 6 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.testimonial-card h3,
.testimonial-card h4,
.testimonial-card strong {
  color: #1F1A17 !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  margin-top: auto !important;
  margin-bottom: 4px !important;
}

.testimonial-card span,
.testimonial-card small {
  color: #6B625A !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  display: block !important;
}

@media (max-width: 1024px) {
  .testimonial-card {
    min-height: 320px !important;
  }
}

@media (max-width: 767px) {
  .testimonials-section,
  section.testimonials,
  #testimonials {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }

  .testimonial-card {
    min-height: auto !important;
    padding: 22px 18px 20px !important;
  }

  .testimonial-card p {
    -webkit-line-clamp: 5 !important;
    font-size: 15px !important;
  }
}


/* ===== TESTIMONIALS FULL REDESIGN ===== */
.testimonials-redesign{
  background:
    radial-gradient(circle at top left, rgba(198,156,83,0.10), transparent 30%),
    linear-gradient(180deg, #17120f 0%, #120f0d 100%) !important;
}

.reviews-head{
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.reviews-head .section-title{
  margin-bottom: 18px !important;
}

.reviews-intro{
  max-width: 640px;
  margin: 0 auto;
  color: rgba(255,255,255,0.72) !important;
  font-size: 17px !important;
  line-height: 1.75 !important;
}

.reviews-feature-bar{
  margin: 42px auto 0;
  max-width: 980px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
}

.review-stat{
  padding: 18px 20px;
  border: 1px solid rgba(198,156,83,0.18);
  border-radius: 16px;
  background: rgba(255,255,255,0.03);
  backdrop-filter: blur(6px);
  text-align: center;
}

.review-stat strong{
  display: block;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  margin-bottom: 6px;
  letter-spacing: 0.02em;
}

.review-stat span{
  display: block;
  color: rgba(255,255,255,0.58);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.reviews-grid-redesign{
  margin-top: 26px !important;
  max-width: 1080px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 22px !important;
}

.reviews-grid-redesign .testimonial-card{
  background: linear-gradient(180deg, #f5efe8 0%, #efe7dd 100%) !important;
  border: 1px solid #d8cdbf !important;
  border-radius: 22px !important;
  padding: 28px !important;
  min-height: 0 !important;
  box-shadow: 0 14px 30px rgba(0,0,0,0.12) !important;
  position: relative;
  overflow: hidden;
}

.reviews-grid-redesign .testimonial-card::before{
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #c69c53 0%, #a0714a 100%);
}

.reviews-grid-redesign .testimonial-card.featured{
  transform: translateY(-6px);
  box-shadow: 0 18px 38px rgba(0,0,0,0.18) !important;
}

.review-topline{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.reviews-grid-redesign .stars{
  color: #b67c41 !important;
  letter-spacing: 2px !important;
  font-size: 13px !important;
  margin: 0 !important;
}

.review-tag{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(182,124,65,0.10);
  color: #7d5734 !important;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.reviews-grid-redesign blockquote{
  margin: 0 0 22px !important;
  color: #2a241f !important;
  font-size: 17px !important;
  line-height: 1.75 !important;
  font-family: var(--font-body);
}

.reviews-grid-redesign .author{
  margin-top: auto;
  border-top: 1px solid rgba(42,36,31,0.08) !important;
  padding-top: 18px !important;
}

.reviews-grid-redesign .author-name{
  color: #1f1a17 !important;
  font-size: 20px !important;
  line-height: 1.25 !important;
}

.reviews-grid-redesign .author-detail{
  color: #6d6359 !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  margin-top: 6px !important;
}

@media (max-width: 1024px){
  .reviews-feature-bar{
    grid-template-columns: 1fr;
    max-width: 620px;
  }

  .reviews-grid-redesign{
    grid-template-columns: 1fr !important;
    max-width: 720px !important;
  }

  .reviews-grid-redesign .testimonial-card.featured{
    transform: none;
  }
}

@media (max-width: 767px){
  .testimonials-redesign{
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }

  .reviews-intro{
    font-size: 15px !important;
    line-height: 1.7 !important;
  }

  .reviews-feature-bar{
    margin-top: 28px;
    gap: 12px;
  }

  .review-stat{
    padding: 15px 16px;
    border-radius: 14px;
  }

  .reviews-grid-redesign{
    margin-top: 18px !important;
    gap: 16px !important;
  }

  .reviews-grid-redesign .testimonial-card{
    padding: 22px !important;
    border-radius: 18px !important;
  }

  .review-topline{
    flex-direction: column;
    align-items: flex-start;
  }

  .reviews-grid-redesign blockquote{
    font-size: 15px !important;
    line-height: 1.7 !important;
  }

  .reviews-grid-redesign .author-name{
    font-size: 18px !important;
  }
}


/* REMOVE GOLD TOP BAR FROM TESTIMONIAL CARDS */
.reviews-grid-redesign .testimonial-card::before {
  display: none !important;
}


/* FIX TESTIMONIAL BOX ALIGNMENT */
.reviews-grid-redesign{
  align-items: stretch !important;
}

.reviews-grid-redesign .testimonial-card{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.reviews-grid-redesign .testimonial-card blockquote{
  flex-grow: 1 !important;
}


/* FORCE ALL TESTIMONIAL CARDS TO SAME LEVEL */
.reviews-grid-redesign .testimonial-card,
.reviews-grid-redesign .testimonial-card.featured {
  transform: none !important;
  margin-top: 0 !important;
  top: auto !important;
  translate: none !important;
  align-self: stretch !important;
}

.reviews-grid-redesign {
  align-items: stretch !important;
}

.reviews-grid-redesign > * {
  align-self: stretch !important;
}


/* ===== MOBILE MENU FIX ===== */
.header-inner{
  position: relative;
}

.mobile-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.22);
  background:rgba(255,255,255,0.12);
  backdrop-filter:blur(10px);
  color:#fff;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  z-index:1002;
}

@media (max-width: 768px){
  .site-header{
    background:rgba(247,244,240,0.96) !important;
    backdrop-filter:blur(14px);
  }

  .header-inner{
    height:auto !important;
    min-height:80px;
    gap:14px;
  }

  .site-logo{
    color:var(--fg) !important;
    padding-right:10px;
  }

  .site-logo small{
    opacity:0.6;
  }

  .mobile-toggle{
    display:flex !important;
    margin-left:auto;
    color:var(--fg) !important;
    border-color:rgba(60,48,42,0.12);
    background:#fff;
    box-shadow:0 8px 22px rgba(34,24,18,0.08);
  }

  .reserve-btn{
    display:none !important;
  }

  nav.main-nav,
  .main-nav{
    display:none !important;
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0 !important;
    padding:10px;
    background:#fff;
    border:1px solid rgba(60,48,42,0.08);
    border-radius:18px;
    box-shadow:0 18px 45px rgba(24,19,16,0.12);
    z-index:1001;
  }

  nav.main-nav.active,
  .main-nav.active{
    display:flex !important;
  }

  .main-nav .nav-link,
  nav.main-nav .nav-link{
    display:block;
    width:100%;
    padding:14px 16px;
    border-radius:12px;
    color:var(--fg) !important;
    background:transparent;
    font-size:13px !important;
    letter-spacing:0.12em !important;
    line-height:1.2;
  }

  .main-nav .nav-link:hover,
  .main-nav .nav-link:focus{
    background:#f7f4f0;
    opacity:1 !important;
  }

  .hero{
    padding-top:120px !important;
  }
}


/* ===== FINAL MOBILE MENU + LIGHTBOX FIX ===== */
.site-header{z-index:1200;}
.lightbox{z-index:3000;}
.lightbox-main{overflow:hidden;touch-action:pan-y;}
.lightbox-main img{user-select:none;-webkit-user-drag:none;touch-action:pan-y;}
.lightbox-nav{z-index:4;}
.lightbox-prev,.lightbox-next{display:flex;}

@media (max-width:768px){
  .header-inner{position:relative;z-index:1201;}
  .mobile-toggle{display:inline-flex !important; position:relative; z-index:1203; -webkit-appearance:none; appearance:none;}
  nav.main-nav,.main-nav{z-index:1202 !important;}
  body.mobile-menu-open nav.main-nav,
  body.mobile-menu-open .main-nav{display:flex !important;}
  .lightbox-header{padding:12px 14px;}
  .lightbox-main{padding:12px 8px 20px;}
  .lightbox-main img{max-width:100%;max-height:62vh;}
  .lightbox-nav{width:42px;height:42px;font-size:28px;background:rgba(20,20,20,0.42);color:#fff;}
  .lightbox-prev{left:8px;}
  .lightbox-next{right:8px;}
  .thumb-strip{justify-content:flex-start;}
}
