/* noto-serif-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/noto-serif-v33-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* noto-serif-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/noto-serif-v33-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* noto-serif-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 900;
  src: url('../fonts/noto-serif-v33-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* --- Base Styles & Variables --- */
:root {
  --primary-pink: #d81b60;
  --secondary-grey: #8a9c98;
  --text-dark: #333333;
  --bg-light: #f8f9fa;
  --bg-footer: #3b4d54;
  --font-main: 'Helvetica', Helvetica, Arial, sans-serif;
  --font-serif: 'Noto Serif', serif;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-main);
  color: var(--text-dark);
  line-height: 1.6;
  background-color: #fff;
  background-image:url(../img/background2.avif);
  
}
p { margin-bottom:20px;}
.container {
  max-width: 1560px;
  margin: 0 auto;
  padding: 0 20px;
}

img {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}
h2,h3,h4 {
padding-bottom:10px;
margin-bottom:10px;
}
.sub-page h1 {
margin-bottom:15px;
padding-bottom:10px;
}
.about-col ul {
  margin-top: 1em;      /* Space above the list */
  margin-bottom: 1em;   /* Space below the list */
  padding-left: 20px;   /* Restores the standard bullet indent */
  list-style-type:disc;
}
.about-col ul li {
  margin-bottom: 8px;   /* Standard vertical spacing between items */
  padding-left: 5px;    /* Slight gap between bullet and text */
}
/* --- Hamburger Menu (Hidden by default) --- */
.hamburger-menu {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 100; /* Keeps it above the menu when open */
  margin-left: auto; /* ADD THIS LINE */
}

.hamburger-menu .bar {
  display: block;
  width: 25px;
  height: 3px;
  margin: 5px auto;
  background-color: var(--text-dark);
  transition: all 0.3s ease-in-out;
}

/* --- Buttons --- */
.btn-primary, .btn-secondary {
  appearance: none;
  display: inline-block;
  
    border: none;
  padding: 12px 10px;
  border-radius: 30px;
  font-weight: bold;
  font-size: 16px;
  color: #FFFFFF;
  cursor: pointer;  
  font-weight: 600;
  line-height: 20px;
  padding: 14px 24px;  
  text-align: center;
  text-shadow:1px 1px 1px #000;
    text-decoration: none;
  transition: background 0.3s ease-in-out;
}

.btn-primary {
  background: linear-gradient(45deg, #dc194d, #cf0065);
  position: relative;
}

.btn-primary:hover {
  background: linear-gradient(45deg, #cf0065, #dc194d);
}

.btn-primary:active {
  transform: scale(0.96);
}

.btn-secondary {
  background-color: var(--secondary-grey);
  color: #fff;
}
.btn-secondary:hover {
  background-color:#3b4e58;
  color: #fff;
}
.side-padding {padding:20px;}

/* --- Header & Navigation --- */
.logo-link img { max-height:84px; width:auto; }
.bw-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0px;
  margin-bottom:30px;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: 30px;
  font-weight: 600;
}
.nav-list a {
  font-size:1.4em;
  font-weight:normal;

}
a.linkme {
color:#2183aa;
}
a.linkme:hover {
color:#10a9e6;
}
.nav-list a:hover {
color:#2183aa;
}
/* --- The Dark Overlay --- */
  .menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 30% black */
    z-index: 90; /* Sits below the header elements */
    opacity: 0;
    pointer-events: none; /* Prevents it from blocking clicks when hidden */
    transition: opacity 0.3s ease-in-out;
  }

  /* When JS adds the .active class */
  .menu-overlay.active {
    opacity: 1;
    pointer-events: auto; /* Makes it clickable again */
  }


/* --- Hero Section --- */
.bw-hero {
margin-top:30px;
}
.white-bg {background:#fcfefd; padding:60px;}
.green-bg {background:rgba(210,220,218,0.6); padding:60px; border-radius:50px;}
.hero-content {
  display: flex;
  gap: 50px;
  margin-top: 40px;
}

.hero-text {
  flex: 1 0 53%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hero-text h1 {
  font-family: var(--font-serif);
  font-size: 2.5rem;
  margin-bottom: 20px;
  line-height: 1.2;
}

.hero-text p {
  margin-bottom: 30px;
  font-size: 1.1rem;
}
.green-hr {
  height:0px;
  border-top:2px solid #cbdfd6;
  margin-top:30px;
  margin-bottom:30px;
}
.cta-group {
  display: flex;
  gap: 15px;
  margin-bottom: 40px;
}
.hero-footer {
  display:flex;
  gap:50px;
}
.hero-thumbnails {
  flex:1 0 53%;
  display: flex;
  gap: 15px;
  max-height:116px;
  align-items: stretch;
}

.hero-thumbnails img {

}

.hero-image-col {
  flex: 1 0 43%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  
}

.hero-image img {
  box-shadow: 0 15px 30px rgba(0,0,0,0.15); /* Recreating the drop shadow */
  width: 100%;
}

.hero-reviews-banner {
  flex:1 0 43%;
  display: flex;
  align-items: center;
  background: #fff;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  border: 1px solid #eee;
  max-height:116px;
}
.hero-reviews-banner img {
flex:1 0 25%;
min-width:0px;
}

.review-cta {
  background-color: #3b4e58;
  color: #fff;
  padding: 20px;
  font-weight: bold;
  text-align:center;
  font-family:var(--font-serif);
  font-size:1.5em;
  
}

.review-logos {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex: 1;
  padding: 0 20px;
  gap: 20px;
}

/* --- 30 Years Banner Section --- */
.bw-30-years {
}

.middle-banner-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.banner-text {
  flex: 1;
  text-align: center;
  font-size: 1.3rem;
  font-family: var(--font-serif);
  font-style: italic;
}

.badge-left img, .badge-right img {
  max-width: 250px;
}

/* --- Rooms Section --- */
.bw-rooms {

}

.room-row {
  display: flex;
  gap: 50px;
  margin-bottom: 80px;
  align-items: center;
}

/* Reverses the flex direction for alternating rows 
.room-row.reverse {
  flex-direction: column-reverse;
}
*/
/* Grid layout for the 1 large / 2 small image layout */
.room-gallery {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 15px;
}

.gallery-main {
  grid-column: 1 / -1; /* Spans across both columns */
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius:10px;
}

.gallery-sub {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius:7px;
}

.room-details {
  flex: 1;
}

.room-details h2 {
  font-family: var(--font-serif);
  font-size: 1.8rem;
  margin-bottom: 15px;
}

.room-details p {
  margin-bottom: 25px;
}

/* --- Replace your existing .amenities-grid with this --- */
.amenities-grid {
  /* Remove display: flex */
  column-count: 2;       /* Creates 2 columns */
  column-gap: 40px;      /* Keeps the spacing between your columns */
}

/* --- Add this new rule --- */
.amenity-col {
  break-inside: avoid;   /* Crucial: Prevents a single category from being chopped in half across two columns */
  margin-bottom: 25px;   /* Adds breathing room below each stacked category */
}

.amenity-col h3 {
  font-size: 1rem;
  margin-bottom: 10px;
}

.amenity-col ul {
  font-size: 0.9rem;
  color: #555;
}

/* --- Footer --- */
.bw-footer {
  background-color: var(--bg-footer);
  background-image: url(../img/background2.avif);
  background-blend-mode: multiply;
  color: #fff;
  padding: 40px 0;
}

.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footer-contact p {
  margin-bottom: 5px;
}

.footer-contact a {
  margin-left: 10px;
  text-decoration: underline;
}

.footer-action {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 15px;
}

.footer-logo {
  max-width: 350px;
  filter:invert(100%);
}

/* -- About Page -- */
.about-columns { display:flex; }
.about-col { flex:1 0 33%; padding:10px;}
.about-pic { float:right; margin-bottom:20px; margin-left:20px; border-radius:10px; max-width:40%;}
.about-pictures { display:flex; justify-content:space-between; }
.about-pictures img {flex:1 0 24.5%; max-width:24.5%; border-radius:7px;}

.reserve-columns { display:flex; justify-content:space-between;}
.reserve-room {flex: 0 1 24%; text-align:center; font-weight:bold; }
.reserve-room img {border-radius:10px; margin-bottom:10px; }

@media (max-width: 1280px) {
.hero-text h1 {font-size:1.8rem; }
.logo-link {max-width:350px;}
}
@media (max-width: 1200px) {
.logo-link {max-width:270px;}
.nav-list a {font-size:1.3em;}
}
@media (max-width: 1024px) {
.logo-link {max-width:350px;}
.nav-list a {font-size:1.3em;}
  .bw-header {
    flex-direction: column;
    gap: 20px;
  }
}

/* --- Responsive Adjustments --- */
@media (max-width: 992px) {
.about-pic {max-width:50%; width:50%;}
  .hero-footer { display:block; }
  .hero-thumbnails { display:block; margin-bottom:20px; max-height:initial;}
  .hero-thumbnails img { width:100%;}
   .hero-reviews-banner {max-height:initial;}
  .hero-content, .room-row, .room-row.reverse {
    flex-direction: column;
  }
.reserve-columns {flex-wrap:wrap;}
.reserve-room {flex: 0 1 49%; margin-bottom:15px; }  
  .middle-banner-content {
    flex-direction: column;
    text-align: center;
  }
  
  .bw-header {
    flex-direction: column;
    gap: 20px;
  }
  
  .footer-content {
    flex-direction: column;
    gap: 30px;
    text-align: center;
  }
  
  .footer-action {
    align-items: center;
  }
}

@media (max-width: 768px) {
.hero-reviews-banner {flex-wrap:wrap; padding-bottom:20px;}
.review-cta {flex: 0 1 100%; margin-bottom:15px; padding:8px;}
.review-cta br {display: none;}
.hero-content {gap:10px;}
.white-bg {padding:30px;}
.green-bg {padding:30px;}

/* Override the column flex-direction from the 1024px/992px queries */
  .bw-header {
    flex-direction: row;
    gap:0px;
    justify-content: space-between;
    align-items: center;
    position: relative; /* Allows absolute positioning for the dropdown */
  }
.about-pictures img { max-width:49%; margin-bottom:10px;}
.about-pictures {flex-wrap:wrap; }

  /* Show the hamburger button */
  .hamburger-menu {
    display: block;
  }

  /* Hide the nav list and style it as a dropdown */
  .nav-list {
    display: none; /* Hidden by default on mobile */
    flex-direction: column;
    position: absolute;
    top: 100%; /* Push it just below the header */
    left: 0;
    width: 100%;
    padding: 20px;
    z-index: 99;
    gap: 0px;
    background-color: #e1e6e5;
    border-radius: 5px;
    box-shadow: none;
    margin-top: 10px;    
  }
  .nav-list a {
  padding:10px 10px;
  display:block;
  }
  .nav-list li {
  border-bottom:solid 1px rgba(0,0,0,0.2);
  width:100%;
  text-align:center;
  }
  .nav-list li:last-child {
  margin-top:10px;
  border-bottom:none;
  }
  /* The class that JavaScript will toggle to show the menu */
  .nav-list.active {
    display: flex;
  }

  /* Simple animation to turn the hamburger into an 'X' when open */
  .hamburger-menu.active .bar:nth-child(2) { opacity: 0; }
  .hamburger-menu.active .bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .hamburger-menu.active .bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }



  /* --- Z-Index Updates --- */
  /* We need to pull the logo, hamburger, and menu ABOVE the overlay */
  .logo-link {
    position: relative;
    z-index: 101; 
  }

  .hamburger-menu {
    position: relative; /* Ensure position is set so z-index works */
    z-index: 101; 
  }

  .nav-list {
    z-index: 101; /* Make sure this is higher than the overlay's 90 */
  }

}


@media (max-width:540px) {
.reserve-columns {display:block;}
.reserve-room {width:100%; }  
    .logo-link {
        max-width: 300px;
    }
.about-pic {max-width:100%; width:100%; margin-left:0px;}
.side-padding {padding:0px;}
.bw-hero {margin-top:0px;}
.green-bg {border-radius:0px; padding:30px;}
.white-bg {padding:20px;}
.about-pictures {display:block; }
.about-pictures img { width:100%; max-width:100%; margin-bottom:10px;}
}

@media (max-width:480px) {
.cta-group {display:block;}
.cta-group a.btn-primary, .cta-group a.btn-secondary {display:block; margin-bottom:10px;}
}