:root {
  --bg: #f6f4ef;
  --surface: #ffffff;
  --surface-2: #f3f3f3;
  --text: #1f1f1f;
  --muted: #4a4a4a;
  --line: rgba(74, 74, 74, 0.14);
  --accent: #e5bd21;
  --accent-dark: #4a4a4a;
  --shadow: 0 18px 40px rgba(31, 31, 31, 0.08);
  --radius: 22px;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, #fbfaf7 0%, var(--bg) 100%);
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
main { min-height: 70vh; }
.container { max-width: 1180px; }
.site-header {
  position: sticky; top: 0; z-index: 20;
  backdrop-filter: blur(12px);
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid var(--line);
}
.navbar { padding: 0.9rem 0; }
.navbar-brand img { width: 300px; max-width: 52vw; }
.nav-link { font-weight: 500; color: var(--muted); }
.nav-link.active, .nav-link:hover { color: var(--text); }
.lang-switch { display: flex; gap: 0.35rem; }
.lang-switch a {
  border: 1px solid var(--line);
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  font-size: 0.85rem;
  color: var(--muted);
  background: rgba(255,255,255,.6);
}
.lang-switch a.active { background: var(--text); color: white; border-color: var(--text); }
.kicker { background: rgba(229,189,33,.14); }
.hero { padding: 4.5rem 0 2rem; }
.kicker {
  display: inline-block;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  background: rgba(127,95,71,.1);
  color: var(--accent-dark);
  font-weight: 600;
  font-size: 0.9rem;
}
.hero h1, .section-title, .page-title, .card-room h3 {
  font-family: 'Cormorant Garamond', serif;
  letter-spacing: -0.02em;
}
.hero h1 { font-size: clamp(2.6rem, 6vw, 5.1rem); line-height: 0.95; margin: 1rem 0 1.5rem; }
.hero p { font-size: 1.05rem; color: var(--muted); max-width: 41rem; }
.hero-copy { margin-top: 1.1rem; }
.page-intro .container, .container.container-wide { max-width: 1280px; }
.page-intro p { max-width: none; font-size: 1.06rem; line-height: 1.8; }
.page-intro-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 2rem 2.2rem; }
.page-intro-card .page-title { margin-bottom: .8rem; }
.page-intro-card p { margin-bottom: 0; }
.hero-actions { display: flex; gap: 0.85rem; flex-wrap: wrap; margin-top: 1.5rem; }
.btn-main, .btn-soft {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.95rem 1.35rem; border-radius: 999px; font-weight: 600;
}
.btn-main { background: var(--text); color: white; }
.btn-main:hover { background: var(--accent); color: var(--text); }
.btn-soft { background: white; border: 1px solid var(--line); color: var(--text); }
.btn-soft:hover { border-color: var(--accent); color: var(--text); background: #fffbea; }
.hero-media {
  background: var(--surface); border-radius: calc(var(--radius) + 6px);
  padding: 0.8rem; box-shadow: var(--shadow); border: 1px solid rgba(255,255,255,0.65);
}
.hero-media img { border-radius: var(--radius); aspect-ratio: 4 / 3; object-fit: cover; }
.badges-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem;
}
.badge-card, .feature-card, .info-card, .card-room, .table-wrap, .calendar-wrap, .legal-box, .rules-box {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.badge-card { padding: 1rem 1.1rem; font-weight: 600; }
.section { padding: 2rem 0; }
.section-title { font-size: clamp(2rem, 4vw, 3.4rem); margin-bottom: 0.75rem; line-height: 1.05; }
.section-subtitle { color: var(--muted); max-width: 46rem; }
.features-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem;
}
.feature-card { padding: 1.4rem; }
.feature-card h3 { font-size: 1.1rem; margin-bottom: 0.5rem; }
.feature-card p { color: var(--muted); margin: 0; }
.gallery-grid {
  display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 1rem; margin-top: 1.5rem;
}
.gallery-grid img, .story-grid img, .room-gallery img {
  width: 100%; height: 100%; object-fit: cover; border-radius: 18px;
}
.gallery-grid .large { grid-row: span 2; min-height: 440px; }
.story-block {
  display: grid; grid-template-columns: 1.05fr 1.2fr; gap: 2rem; align-items: stretch; margin-top: 1.5rem;
}
.story-block.story-wide { grid-template-columns: 1fr 1.35fr; }
.story-block.story-wide .info-card { padding: 2.4rem 2.6rem; }
.story-block.story-wide .section-title { margin-bottom: 1.4rem; }
.story-block.story-wide .info-card p { font-size: 1.06rem; line-height: 1.8; max-width: 52rem; }
.story-block.story-wide .btn-soft { margin-top: .8rem; }
.story-block > div { min-width: 0; }
.story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.story-main { margin-bottom: .8rem; height: 470px; }
.info-card { padding: 2.2rem; }
.info-card p { color: var(--muted); }
.map-card { overflow: hidden; }
#map, #calendar { min-height: 420px; border-radius: var(--radius); }
.rooms-grid { display: grid; gap: 1.5rem; }
.card-room { padding: 1rem; }
.room-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1rem; }
.room-gallery img { height: 210px; }
.card-room h3 { font-size: 2.2rem; margin-bottom: .2rem; }
.card-room p { color: var(--muted); }
.amenities { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem 1.25rem; padding-left: 1.1rem; margin: 1rem 0 0; }
.amenities li { color: var(--text); }
.two-col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.table-wrap { padding: 1rem; }
.table-wrap table { width: 100%; margin: 0; }
.table-wrap th, .table-wrap td { padding: .8rem .45rem; border-bottom: 1px dashed var(--line); }
.table-wrap th { color: var(--muted); font-size: .92rem; font-weight: 600; }
.calendar-wrap { padding: 1rem; }
.site-footer {
  margin-top: 3rem; padding: 2.5rem 0; background: #4a4a4a; color: #ffffff;
}
.footer-brand { font-family: 'Cormorant Garamond', serif; font-size: 2rem; margin-bottom: .5rem; }
.site-footer h3 { font-size: .95rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.72); }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.footer-links a { color: rgba(255,255,255,.92); }
.page-intro { padding: 3rem 0 1rem; }
.page-title { font-size: clamp(2.4rem, 5vw, 4rem); margin-bottom: 0.75rem; }
.page-intro p { color: var(--muted); max-width: 44rem; }
.legal-box, .rules-box { padding: 1.5rem; }
.legal-box ul, .rules-box ul { margin: 1rem 0 0; }
.note { color: var(--accent-dark); font-weight: 600; }
@media (max-width: 991px) {
  .badges-grid, .features-grid, .gallery-grid, .story-block, .two-col { grid-template-columns: 1fr; }
  .gallery-grid .large { min-height: 320px; }
  .navbar-brand img { width: 180px; }
}
@media (max-width: 767px) {
  .hero { padding-top: 2.5rem; }
  .room-gallery, .amenities { grid-template-columns: 1fr; }
  .story-grid { grid-template-columns: 1fr; }
  .story-main { height: 250px; }
  #map, #calendar { min-height: 320px; }
}

.hero-media img { aspect-ratio: 1 / 1; }
.gallery-grid-home img { min-height: 210px; }
.feature-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.feature-pill { background: rgba(255,255,255,.7); border:1px solid var(--line); border-radius:999px; padding:1rem 1.1rem; text-align:center; font-weight:600; box-shadow: var(--shadow); }
.video-section { display:grid; grid-template-columns: .9fr 1.1fr; gap:1.5rem; align-items:center; }
.video-card { background: var(--surface); border:1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: .8rem; }
.video-card video { width:100%; display:block; border-radius: 18px; max-height: 560px; object-fit: cover; background:#000; }
.video-copy { height:100%; display:flex; flex-direction:column; justify-content:center; }
.page-intro, .section { scroll-margin-top: 100px; }
@media (max-width: 991px) {
  .feature-strip, .video-section { grid-template-columns:1fr; }
}

.booking-grid { align-items: start; }
.booking-form-card .section-title { font-size: clamp(2rem, 4vw, 3rem); }
.booking-form { display: grid; gap: 1rem; margin-top: 1.2rem; }
.form-row { display: grid; gap: 1rem; }
.form-row.two { grid-template-columns: repeat(2, 1fr); }
.booking-form label { display:block; font-weight: 600; margin-bottom: .45rem; }
.booking-form input,
.booking-form select,
.booking-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: .9rem 1rem;
  background: #fff;
  color: var(--text);
}
.booking-form textarea { resize: vertical; min-height: 120px; }
.checkbox-line { display:flex; gap:.8rem; align-items:flex-start; font-weight:500; color:var(--muted); }
.checkbox-line input { width:auto; margin-top:.25rem; }
.form-alert { margin-top:1rem; padding: .95rem 1rem; border-radius: 16px; font-weight:600; }
.form-alert.success { background: rgba(39, 123, 74, .12); color: #1e6a40; border:1px solid rgba(39,123,74,.22); }
.form-alert.error { background: rgba(163, 54, 40, .12); color: #8a2f23; border:1px solid rgba(163,54,40,.22); }
.booking-privacy-note, .booking-privacy-mini { color: var(--muted); margin-top: 1rem; }
.booking-privacy-mini { font-size: .92rem; }
.booking-side-stack { display:grid; gap: 1.5rem; }
@media (max-width: 767px) {
  .form-row.two { grid-template-columns: 1fr; }
}

.video-card video{min-height:360px;}
@media (max-width: 991px) { .story-block.story-wide { grid-template-columns:1fr; } }


.story-card-horizontal { padding: 2.4rem 2.8rem; width: 100%; }
.story-card-horizontal .section-title { margin-bottom: 1.2rem; }
.story-card-horizontal p { max-width: none; font-size: 1.08rem; line-height: 1.85; margin-bottom: 1.1rem; }
.story-card-copy { width: 100%; max-width: none; }
@media (max-width: 767px) {
  .story-card-horizontal { padding: 1.6rem; }
}

.container-wide{max-width:1400px;}
.section-story-wide .container-wide{max-width:1500px;}
.story-card-full{padding:2.5rem 3rem; width:100%; min-height:auto;}
.story-card-full .story-card-copy{max-width:none;}
.story-card-full .section-title{max-width:none; font-size:clamp(2.2rem,3.2vw,4.2rem);}
.story-card-full p{max-width:none; column-count:1;}


/* v12 title harmony + side-by-side cards */
.hero h1, .section-title, .page-title, .card-room h3, .footer-brand { font-family: 'Cormorant Infant', serif; }
.hero h1, .section-title, .page-title { font-weight: 600; }
.section-title { letter-spacing: -0.015em; }
.intro-cards-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; }
.intro-cards-grid .info-card { height: 100%; }
.intro-card-story { display:flex; flex-direction:column; justify-content:space-between; padding: 2.3rem 2.3rem; }
.intro-card-story p { max-width: none; font-size: 1.05rem; line-height: 1.8; }
.intro-card-location { display:flex; flex-direction:column; justify-content:space-between; padding: 2.3rem 2.3rem; }
.intro-card-location p { font-size: 1.02rem; line-height: 1.75; }
.map-card-full { overflow:hidden; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: .7rem; }
.map-card-full #map { border-radius: 18px; min-height: 430px; }
@media (max-width: 991px) { .intro-cards-grid { grid-template-columns: 1fr; } }


/* v14 video section cleanup */
.video-section { align-items: start; }
.video-copy { justify-content: flex-start; }
.video-copy .section-title { font-family: "Cormorant Infant", serif; font-weight: 600; margin-top: .65rem; }
.video-card { align-self: start; }
.video-card.is-hidden { display: none; }
.video-section.video-no-media { grid-template-columns: 1fr; }
@media (max-width: 991px) {
  .video-copy { padding-top: 1.8rem; }
}


/* v16 alignment + nearby events */
.container, .container-wide { max-width: 1280px; }
.video-section,
.intro-cards-grid,
.two-col,
.events-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
}
.video-section > *,
.intro-cards-grid > *,
.two-col > *,
.events-grid > * { min-width: 0; }

.video-copy,
.video-card,
.intro-cards-grid .info-card,
.two-col > .table-wrap,
.event-source-card { height: 100%; }

.video-copy,
.video-card,
.intro-cards-grid .info-card,
.two-col > .table-wrap,
.event-source-card { padding: 2rem; }

.video-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.video-card video {
  min-height: 320px;
  max-height: 420px;
}

.info-card p,
.table-wrap p,
.event-source-card p { line-height: 1.75; }

.table-wrap h3,
.event-source-card h3 {
  font-family: 'Cormorant Infant', serif;
  font-size: clamp(1.8rem, 2.2vw, 2.5rem);
  line-height: 1.05;
  margin: .9rem 0 .75rem;
}

.table-wrap {
  display: flex;
  flex-direction: column;
}
.table-wrap table { flex: 1; }

.events-panel {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
.events-panel-head { margin-bottom: 1rem; }

.event-source-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.event-source-card .btn-soft { margin-top: auto; }

.map-card-full { margin-top: 0; }

@media (max-width: 991px) {
  .video-section,
  .intro-cards-grid,
  .two-col,
  .events-grid { grid-template-columns: 1fr; }
}


/* v17 brand palette + aligned cards */
.info-card, .table-wrap, .event-source-card, .video-card, .map-card-full, .calendar-wrap, .booking-form-card, .booking-side-stack > * , .legal-box, .rules-box, .card-room { background: var(--surface); }
.intro-cards-grid, .video-section, .two-col, .events-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.intro-cards-grid .info-card, .video-section > .info-card, .video-section > .video-card, .two-col > *, .events-grid > * { height: 100%; }
.intro-card-story, .intro-card-location { padding: 2.2rem; }
.intro-card-story .section-title, .intro-card-location .section-title, .video-copy .section-title, .page-title, .card-room h3, .table-wrap h3, .event-source-card h3 { color: var(--text); }
.video-copy { padding: 2.2rem; }
.video-card { padding: 1rem; }
.video-card .video-note { display:none !important; }
.table-wrap, .event-source-card, .legal-box, .rules-box, .booking-form-card { padding: 1.6rem; }
.page-intro { padding: 2.4rem 0 1rem; }
.page-title { color: var(--text); }
.table-wrap h3, .event-source-card h3 { font-family: "Cormorant Infant", serif; font-size: 2rem; margin-bottom: .8rem; }
.fc .fc-button-primary, .fc .fc-button-primary:disabled { background: var(--text); border-color: var(--text); }
.fc .fc-button-primary:hover { background: var(--accent); border-color: var(--accent); color: var(--text); }
@media (max-width: 991px) {
  .page-intro-card { padding: 1.5rem; }
  .video-copy, .intro-card-story, .intro-card-location { padding: 1.6rem; }
}


/* v18 full-width intro text + warmer footer */
.page-intro-card {
  padding: 2.2rem 2.4rem;
}
.page-intro-card .page-title,
.page-intro-card .section-title {
  max-width: none;
}
.page-intro-card p,
.page-intro-card .section-subtitle,
.page-intro-card .story-card-copy,
.page-intro-card .story-card-copy p {
  max-width: none !important;
  width: 100%;
  display: block;
}
.page-intro-card p {
  font-size: 1.08rem;
  line-height: 1.9;
}

.site-footer {
  margin-top: 3rem;
  padding: 2.6rem 0;
  background: #4a4a4a;
  color: #ffffff;
  border-top: 1px solid rgba(229,189,33,.22);
}
.site-footer h3 {
  color: rgba(255,255,255,.72);
}
.site-footer p,
.site-footer a,
.site-footer .footer-brand {
  color: #ffffff;
}
.site-footer .footer-brand {
  font-weight: 600;
}
.site-footer .footer-links a:hover {
  color: #e5bd21;
}
@media (max-width: 991px) {
  .page-intro-card {
    padding: 1.7rem;
  }
}


/* v20 anti-spam + stronger mobile stacking + reservation calendar */
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cf-turnstile { margin-top: .35rem; }
.fc .fc-bg-event.reserved-range { opacity: 0.88; }
.fc .fc-highlight { background: rgba(229, 189, 33, 0.18); }
.fc .fc-daygrid-day.fc-day-today { background: rgba(229, 189, 33, 0.1); }
.fc-theme-standard td, .fc-theme-standard th { border-color: rgba(74,74,74,.12); }
.fc .fc-toolbar { gap: .8rem; }
.fc .fc-toolbar-title { font-family: 'Cormorant Infant', serif; font-size: clamp(1.35rem, 3vw, 2rem); }
.fc .fc-col-header-cell-cushion, .fc .fc-daygrid-day-number { color: var(--text); }
.calendar-wrap h3 { font-family: 'Cormorant Infant', serif; font-size: clamp(1.8rem, 2.4vw, 2.4rem); margin: .25rem 0 1rem; }
@media (max-width: 767px) {
  .video-section,
  .intro-cards-grid,
  .two-col,
  .events-grid,
  .booking-grid,
  .features-grid,
  .badges-grid { grid-template-columns: 1fr !important; }
  .table-wrap, .calendar-wrap, .booking-form-card, .booking-side-stack > *, .info-card, .event-source-card { padding: 1.15rem; }
  .table-wrap { overflow-x: auto; }
  .table-wrap table { min-width: 520px; }
  #calendar { min-height: 0; }
  .fc .fc-toolbar { flex-direction: column; align-items: stretch; }
  .fc .fc-toolbar-chunk { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem; }
  .fc .fc-button { padding: .45rem .7rem; font-size: .9rem; }
  .fc .fc-daygrid-day-number { font-size: .88rem; padding: .25rem; }
}


/* v21 real fixes */
.site-footer{background:#4a4a4a !important;color:#fff !important;border-top:1px solid rgba(229,189,33,.18)}
.site-footer p,.site-footer a,.site-footer .footer-brand{color:#fff !important}
.site-footer .footer-links a:hover{color:#e5bd21 !important}

.two-col,.intro-cards-grid,.video-section,.events-grid,.booking-grid,.features-grid,.badges-grid,.form-row.two{display:grid}
@media (max-width: 1024px){
  .two-col,.intro-cards-grid,.video-section,.events-grid,.booking-grid,.features-grid,.badges-grid,.form-row.two{grid-template-columns:1fr !important}
  .two-col > *, .intro-cards-grid > *, .video-section > *, .events-grid > *, .booking-grid > *, .features-grid > *, .badges-grid > *{width:100% !important}
  .booking-side-stack{grid-template-columns:1fr !important}
}
@media (max-width: 768px){
  .table-wrap table{min-width:0 !important;width:100% !important}
  .fc .fc-view-harness{min-height:340px}
}

.calendar-wrap{padding:1.4rem !important}
.fc .fc-bg-event.reserved-range{background:#c92a2a !important;border-color:#c92a2a !important;opacity:.95 !important}
.fc .fc-daygrid-bg-harness .fc-bg-event.reserved-range{background:#c92a2a !important}
.fc .fc-event,.fc .fc-event-main{background:#c92a2a !important;border-color:#c92a2a !important;color:#fff !important}
.fc .fc-button-primary,.fc .fc-button-primary:disabled{background:#4a4a4a !important;border-color:#4a4a4a !important}
.fc .fc-button-primary:hover{background:#e5bd21 !important;border-color:#e5bd21 !important;color:#1f1f1f !important}
.fc .fc-day-today{background:rgba(229,189,33,.12) !important}
.cf-turnstile{display:block;min-height:65px;margin-top:.35rem}
