/* Font of choice at the very top */
@font-face {
  font-family: 'Helvetica Neue Roman'; /* This is the name you'll use in your CSS */
  src: url('./fonts/HelveticaNeue-Roman.otf') format('opentype');
  font-weight: normal; /* Adjust if your font file is specifically bold/light etc. */
  font-style: normal;
}

:root {
  --outline: #834e28; /* Outline color */
  --text-fill: white; /* Main text color */
  --primary-color: #8b4513;
  --secondary-color: #d2691e;
  --text-color: #ffffff;
  --text-color-rusticgold: rgba(182, 143, 71, 0.8);
  --dark-overlay: rgba(0, 0, 0, 0.5); /* This variable is now unused, but kept if other elements still need it */
  /* --light-overlay: rgb(255, 255, 255); */
  --dark-text-on-light: #333333;
  --medium-dark-text-on-light: rgba(0, 0, 0, 0.7);
  /* Define nav height as a variable for consistency */
  --nav-height: 40px; /* Adjust this value if your nav bar is taller/shorter */
  --mobile-menu-width: 70%;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Helvetica Neue Roman', sans-serif; /* Applied your new font here */
  color: var(--dark-text-on-light);
  /* padding-top: var(--nav-height); */
  margin-top: 0;
}

body.no-scroll {
  overflow: hidden;
}

.main-content {
  position: relative;
  z-index: 1;
}

/*! ---------------------------------------------------------------------------------- */
/* Navigation */
nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 5%;
  position: fixed;
  width: 100%;
  z-index: 10;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.7); /* This is the ONLY allowed overlay on scroll */
  box-sizing: border-box; /* FIX: Include padding in width to prevent overflow */
}

.logo img {
  height: 50px; /* Adjust as needed for your logo size */
}

.nav-links {
  display: flex;
  list-style: none;
  gap: 2rem;
  margin: 0; /* Remove default ul margin */
  padding: 0; /* Remove default ul padding */
  align-items: center;
  flex: 1;
  justify-content: center;
  /* Removed base overflow:visible and flex-wrap:nowrap from here */
  /* These will be applied via media queries */
}

.nav-links li {
  margin: 0; /* Ensure no extra margins on list items */
}

.nav-links a {
  color: var(--text-color);
  text-decoration: none;
  font-weight: normal;
  padding: 0.5rem 0; /* Add some padding for clickability */
  display: block; /* Make the whole padding area clickable */
}

.nav-links a:hover {
  color: var(--secondary-color); /* Example hover effect */
}

/* Hamburger menu icon styles */
.hamburger {
  display: none; /* Hidden by default on larger screens */
  flex-direction: column;
  justify-content: space-around; /* Distribute bars evenly */
  width: 30px; /* Width of the hamburger icon */
  height: 25px; /* Height of the hamburger icon */
  cursor: pointer;
  z-index: 20; /* Ensure it's above the mobile nav-links */
  padding: 5px; /* Add some padding for easier clicking */
  background-color: transparent; /* Explicit: No background to avoid hiding bars */
  position: relative; /* Ensure bars are positioned relative to this */
  -webkit-appearance: none; /* iOS/Safari fix for any native styling */
}

/* NEW: Change color on active */
.hamburger.active .bar {
  background-color: var(--secondary-color); /* Rustic color when clicked */
}

.hamburger .bar {
  width: 100%; /* Bars fill the hamburger width */
  height: 3px;
  background-color: var(--text-color); /* Color of the bars */
  transition: all 0.3s ease-in-out; /* Smooth transition for X animation */
}

/* --- Media Query for Mobile Responsiveness --- */
/* @media (max-width: 768px) { */
@media (max-width: 908px) {
  /* Ensure the main nav (and thus hamburger) is on top */
  nav {
    z-index: 20;
  }

  .logo {
    flex-shrink: 1; /* Allow the logo to shrink in flex if needed */
    max-width: 50%; /* Limit to half the nav width on mobile */
  }

  /* Hide the main nav-links by default on mobile, and slide them in */
  .nav-links {
    position: fixed; /* Crucial for positioning it off-screen */
    top: var(--nav-height); /* Use the --nav-height variable */
    right: 0;
    width: var(--mobile-menu-width); /* Use the --mobile-menu-width variable */
    height: calc(100vh - var(--nav-height)); /* Calculate height dynamically */
    background-color: #333; /* Make sure this is a solid, non-transparent color. */
    color: #fff; /* Set a contrasting text color for the links */
    flex-direction: column; /* Stack links vertically */
    justify-content: flex-start; /* Align items from the top */
    align-items: center; /* Center the links horizontally */
    transform: translateX(100%); /* Initially hide it off-screen to the right */
    transition: transform 0.3s ease-in-out; /* Smooth slide animation */
    z-index: 15; /* Ensure it's above other page content, but below hamburger icon */
    padding: 20px 20px 20px
      30px; /* ADJUSTED: Add left padding for indentation */
    box-shadow: -2px 0 5px
      rgba(0, 0, 0, 0.2); /* Optional: subtle shadow */
    overflow-y: auto; /* Allow scrolling within the menu */
    gap: 0; /* Reset gap, use margins/padding on li instead */
  }

  /* Ensure flex-wrap is NOT nowrap on mobile, let it stack naturally */
  .nav-links {
    flex-wrap: wrap; /* Allow wrapping on mobile, but it will be column anyway */
    /* If you prefer explicit control, you could set it to 'wrap' or remove it,
       as flex-direction: column; handles stacking. */
  }

  /* When the 'active' class is added (by JS), bring it into view */
  .nav-links.active {
    transform: translateX(0); /* Slide into view */
  }

  /* Style individual list items and links within the mobile menu */
  .nav-links li {
    width: 100%; /* Make list items take full width for easier tapping */
    text-align: left; /* Align text left within list item */
    margin: 0; /* Spacing between links handled by padding */
    padding: 10px 0; /* Space between items */
    border-bottom: 1px solid
      rgba(255, 255, 255, 0.3); /* Divider */
  }

  /* REMOVE divider from the last item (cleaner look) */
  .nav-links li:last-child {
    border-bottom: none;
  }

  .nav-links a {
    color: inherit; /* Inherit the color from the .nav-links parent */
    text-decoration: none;
    font-weight: 100;
    font-size: 18px;
    padding: 3px 0;
    display: block; /* Keeps it tappable */
    transition: color 0.28s ease; /* OPTIONAL: Smooth hover/tap effect */
  }

  .nav-links a:hover,
  .nav-links a:focus {
    color: var(--secondary-color); /* Example hover color for mobile links */
  }

  /* Display the hamburger icon on mobile */
  .hamburger {
    display: flex;
    z-index: 20; /* Ensure hamburger is above the sliding menu */
  }

  /* Styles for when the hamburger is clicked (to become an 'X') */
  .hamburger.active .bar:nth-child(2) {
    opacity: 0; /* Hide middle bar */
  }

  .hamburger.active .bar:nth-child(1) {
    transform: translateY(4px) rotate(45deg);
  }

  .hamburger.active .bar:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }
}

/* --- Desktop Navigation: Ensure nowrap for overflow detection --- */
/* Apply flex-wrap: nowrap only when the screen is WIDER than mobile breakpoint */
@media (min-width: 769px) {
  /* Use 'min-width' to target screens LARGER than mobile */
  .nav-links {
    flex-wrap: nowrap !important; /* Force overflow for JS detection */
  }
}

/* --- Crucial Rule for Progressive Hiding --- */
/* This rule hides items ONLY when they are in the main nav bar (not mobile menu) */
.nav-links li.hidden {
  display: none;
}

/* --- ADDED RULE: Make hidden items visible again within the ACTIVE mobile menu --- */
/* This rule targets list items that are BOTH inside an active mobile menu */
/* AND have the 'hidden' class, overriding the 'display: none'. */
.nav-links.active li.hidden {
  display: list-item !important; /* Show as a list item */
  /* If your li items are styled as flex or block, you might use that instead */
  /* For example: display: flex !important; */
  /* Check the computed styles of .nav-links.active li to see the base display */
}

/* Minor adjustment for general list item display within active mobile menu */
/* This helps ensure elements that weren't initially hidden are also displayed correctly */
.nav-links.active li {
  display: list-item; /* Ensure base display is list-item */
}

/* Ensure the base .nav-links allows children to show */
.nav-links {
  overflow: visible !important;
}

/* === HERO SECTION: The 16:9 Header Image Container === */
.hero.header-image-section {
  position: relative;
  width: 100%;
  padding-top: 42.25%;
  /*padding-top: 56.25%; /* 16:9 Aspect Ratio (9/16 = 0.5625) */
  height: 0;
  overflow: hidden;

  margin: 0;

  display: block; /* Ensures it's a block-level container */
  align-items: unset;
  justify-content: unset;
  min-height: unset;
}

/* Style for the <img> tag inside the hero section */
.hero-background-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

/* Content (text, button) within the hero section */
.hero-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  padding: 0 2rem;
  z-index: 5; /* Ensure content is above the carousel */
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  color: var(--text-color); /* Maintain white text for readability */
  text-shadow: 2px 2px 4px
    rgba(0, 0, 0, 0.7); /* Stronger shadow for readability without overlay */
}

/* Ensure h1/h2 color is explicitly white */
.hero h1,
.hero h2 {
  color: var(--text-color);
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

/* === HERO CAROUSEL STYLES === */

.carousel-slides {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Individual slides are stacked on top of each other */
.carousel-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0; /* Hidden by default */
  transition: opacity 1s ease-in-out; /* Smooth fade transition */
  z-index: 1; /* Slides are at the bottom of the stack */
}

/* The active slide is visible */
.carousel-slide.active {
  opacity: 1;
}

/* Styling for the Prev/Next navigation buttons */
.carousel-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.3);
  color: white;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 20px;
  cursor: pointer;
  z-index: 10; /* Highest z-index to be on top of everything */
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color 0.3s ease;
}

.carousel-nav-btn:hover {
  background-color: rgba(0, 0, 0, 0.6);
}

.carousel-nav-btn.prev {
  left: 2%;
}

.carousel-nav-btn.next {
  right: 2%;
}

/* Styling for the dot indicators at the bottom */
.carousel-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}

.dot {
  width: 12px;
  height: 12px;
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.dot.active {
  background-color: white;
}

/* ======================================================================= */

/* === MAIN BODY CONTENT AREA === */
.body-content-section {
  background-color: #f8f8f8;
  padding: 4rem 5%;
}

/* === CABIN EXPERIENCES AREA === */
.cabin-experiences-area {
  padding: 2rem 0;
  text-align: center;
}

.cabin-experiences-area h2 {
  color: var(--primary-color);
  font-size: 2.5em;
  text-shadow: 1px 1px 3px rgba(97, 68, 15, 0.911);
  margin-bottom: 2rem;
}

/** --- START OF BUTTON STYLES ------------------------------------------------- */
/* Buttons */
/* Shared styles for the buttons/links */
.submit-btn,
.list-property-btn,
.view-more-btn {
  display: inline-block; /* Makes it behave like a button while keeping it inline */
  padding: 0.8rem 2rem; /* Padding for size */
  background-color: var(--primary-color); /* Use your primary color variable */
  color: var(--text-color); /* Use your text color variable */
  text-decoration: none !important; /* Remove underline (with !important to override conflicts) */
  font-size: 14px; /* Adjust font size as needed */
  font-weight: normal; /* Make text bolder */
  border: none; /* No border by default */
  border-radius: 4px; /* Rounded corners for a button-like feel */
  cursor: pointer; /* Pointer cursor on hover */
  transition: background-color 0.3s,
    transform 0.2s ease; /* Smooth hover effects */
}

/* Specific styles for .submit-btn */
.submit-btn {
  align-self: flex-end; /* Integrated: Align to the end in a flex container */
  margin-bottom: 0.5rem; /* Integrated: Bottom margin */
}

/* Shared hover state for interactivity */
.submit-btn:hover,
.list-property-btn:hover,
.view-more-btn:hover {
  background-color: var(
    --secondary-color
  ); /* Integrated: Use secondary color on hover */
  transform: translateY(-2px); /* Slight lift effect */
  text-decoration: none !important; /* Ensure no underline on hover */
}

/* Shared active state (when clicked) */
.submit-btn:active,
.list-property-btn:active,
.view-more-btn:active {
  /* Example: Darken more for press effect (kept as-is; adjust if needed to use a variable) */
  background-color: var(
    --primary-color
  ); /* Or update to var(--secondary-dark) etc. */
  transform: translateY(0); /* Reset lift */
  text-decoration: none !important; /* Ensure no underline when active */
}

/* Shared focus state for accessibility (e.g., keyboard navigation) */
.submit-btn:focus,
.list-property-btn:focus,
.view-more-btn:focus {
  outline: 2px solid var(--primary-color); /* Visible focus ring using primary color */
  outline-offset: 2px;
  text-decoration: none !important; /* Ensure no underline on focus */
}

@media (max-width: 768px) {
  .submit-btn,
  .list-property-btn,
  .view-more-btn {
    display: inline-block; /* Makes it behave like a button while keeping it inline */
    padding: 0.8rem 2rem; /* Padding for size */
    background-color: var(
      --primary-color
    ); /* Use your primary color variable */
    color: var(--text-color); /* Use your text color variable */
    text-decoration: none !important; /* Remove underline (with !important to override conflicts) */
    font-size: 10px; /* Adjust font size as needed */
    font-weight: normal; /* Make text bolder */
    border: none; /* No border by default */
    border-radius: 4px; /* Rounded corners for a button-like feel */
    cursor: pointer; /* Pointer cursor on hover */
    transition: background-color 0.3s,
      transform 0.2s ease; /* Smooth hover effects */
  }
}
/**--- END OF BUTTON STYLES ------------------------------------------------- */

.cabin-experiences-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  margin-top: 2rem;
  padding: 0 1rem;
  justify-content: center;
}

/* Individual Cabin Card Styling: Make the entire card 1:1 (Square) */
.cabin-card {
  position: relative; /* Crucial for absolute positioning of children */
  border-radius: 0px;
  overflow: hidden; /* Hide anything outside the card, like overflow from image or shadows */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  background-color: #fff; /* Ensure card background is white */
  color: var(--dark-text-on-light);
  /* Ensure text is readable on cards by default (though overlay changes it) */

  /* Make the entire card square (1:1 aspect ratio) */
  width: 100%; /* Take full width of its grid cell */
  padding-top: 100%; /* Creates the 1:1 aspect ratio based on its width */
  height: 0; /* Important: collapse height so padding-top defines it */
}

/* Container for the image, positioned to fill the square .cabin-card */
.cabin-card-image-container {
  position: absolute; /* Position to fill the .cabin-card */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; /* Fill the 1:1 card */
  overflow: hidden; /* Ensure image overflow is hidden */
}

/* Image Styling */
.cabin-card-image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Scales the image to cover the container */
  object-position: center; /* Centers the image content */
}

/* Cabin Info (Text content as overlay) */
.cabin-info {
  position: absolute; /* Position on top of the image */
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 1rem;
  background: var(
    --dark-overlay
  ); /* Semi-transparent background for readability */
  color: var(--text-color); /* White text for contrast on dark overlay */
  text-align: center;
  z-index: 2; /* Ensure it's above the image */
  transition: background 0.3s ease; /* Smooth transition for hover effects */
  /* If you want the info box to be a fixed height, you could add: */
  height: 22%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* Optional: Darker overlay on hover */
.cabin-card:hover .cabin-info {
  background: rgba(0, 0, 0, 0.7); /* Slightly darker on hover */
}

.cabin-info h3 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  color: var(--text-color); /* Keep white text for heading on overlay */
  font-size: 1.5em;
  /* text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); */
}

.cabin-info p {
  margin-bottom: 0;
  font-size: 1.2em;
  font-weight: bold;
  color: var(--text-color); /* Keep white text for paragraph on overlay */
}

/* --- New Section: Content with Picture and Text (e.g., about us, features) --- */
/* Common styles for both .content-pic-text and .content-text-pic */
.content-pic-text,
.content-text-pic {
  background-color: #f8f8f8; /* Changed from 'white' to '#f8f8f8' */
  height: 624px; /* Fixed height for the entire container */
  display: flex; /* Use Flexbox to arrange image and text side-by-side */
  align-items: center; /* Vertically center the image and text within the container */
  overflow: hidden; /* Ensure content doesn't overflow the fixed height */
  margin: 4rem 0;
  padding: 0 2%; /* Changed from '0 5%' to '0 2%' */
}

/* Common image box styles for both blocks */
.content-pic-text .image-box,
.content-text-pic .image-box {
  width: 1057px; /* Fixed width for the image container */
  height: 100%; /* Take full height of the parent .content-text-pic */
  flex-shrink: 0; /* Prevent the image box from shrinking */
  position: relative; /* For absolute positioning of the image inside */
  overflow: hidden; /* Crop image if it exceeds container */
}

.content-pic-text .image-box img,
.content-text-pic .image-box img {
  position: absolute; /* Position to fill the image-box */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* Ensure image covers the area without distortion */
  object-position: center; /* Center the image within its box */
}

/* Common text box styles for both blocks */
.content-pic-text .text-box,
.content-text-pic .text-box {
  flex-grow: 1; /* Allow the text box to take up the remaining space */
  padding: 2rem 3rem; /* Padding inside the text box */
  display: flex; /* Use flexbox to organize internal text content */
  flex-direction: column; /* Stack text content vertically */
  justify-content: center; /* Vertically center content if there's extra space */
  color: var(--dark-text-on-light); /* Default text color */
}

/* h2 styling for content-pic-text AND content-text-pic (reverted to solid fill) */
.content-pic-text .text-box h2,
.content-text-pic .text-box h2 {
  color: var(--text-fill); /* Main text color */
  text-shadow: -1px -1px 0 var(--outline), 1px -1px 0 var(--outline),
    -1px 1px 0 var(--outline),
    1px 1px 0 var(--outline); /* Creates a 1px outline effect */
  font-family: 'Helvetica Neue Roman', sans-serif; /* Applied your new font here */
  font-size: 3em;
  letter-spacing: 0.08em; /* Adds spacing between letters */
  padding: 1px;
}

/* Common paragraph styles for both blocks */
.content-pic-text .text-box p,
.content-text-pic .text-box p {
  font-size: 1.1em;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

/* Common button styles for both blocks */
.content-pic-text .text-box .learn-more-btn,
.content-text-pic .text-box .learn-more-btn {
  /* Reusing existing button styles for consistency */
  padding: 0.8rem 2rem;
  background-color: var(--primary-color);
  color: var(--text-color);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s;
  align-self: flex-start; /* Align button to the start (left) */
}

.content-pic-text .text-box .learn-more-btn:hover,
.content-text-pic .text-box .learn-more-btn:hover {
  background-color: var(--secondary-color);
}

/* Footer */
.main-footer {
  background-color: #000;
  padding: 2rem 5%;
  text-align: center;
  color: var(--text-color);
}

.promotional-content-area {
  margin-top: 2rem;
  padding: 1.5rem;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
}

.promotional-content-area h3 {
  color: var(--text-color-rusticgold);
  margin-bottom: 1rem;
  font-size: 1.8em;
}

.promotional-content-area p {
  margin-bottom: 1rem;
  line-height: 1.5;
}

.promotional-content-area .call-to-action-btn {
  background-color: var(--secondary-color);
  color: white;
  padding: 0.8rem 1.5rem;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-size: 1.1em;
  transition: background-color 0.3s ease;
  margin-top: 1rem;
}

.promotional-content-area .call-to-action-btn:hover {
  background-color: var(--primary-color);
}

.social-links {
  margin-top: 1rem;
  display: flex;
  justify-content: center;
  gap: 15px;
}

.social-links img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
}

/* Responsive Design */
@media (min-width: 992px) {
  /* Starting desktop layout at 992px */
  .cabin-experiences-gallery {
    /* EXACTLY 3 columns, each taking an equal fraction of the available space */
    grid-template-columns: repeat(3, 1fr);
    /* Control the overall width of the gallery to make cards "huge" but not too wide */
    max-width: 1800px; /* Adjust this value to control how large the cards become */
    margin: 2rem auto; /* Center the entire gallery */
    padding: 0; /* Remove padding if max-width and margin auto are used */
    /* ensure there are only 3 columns, no wrapping */
    flex-wrap: nowrap; /* although grid typically handles this, helps conceptualize */
  }
}

/* ========================================================== */
/* ========================================================== */
/** NEW MEDIA QUERY FOR LARGE LAPTOPS / SMALLER DESKTOPS */
/* ========================================================== */
@media (max-width: 1707px) {
  /* --- Styles for screens 1707px and narrower --- */
  nav {
    padding: 1rem 0; /* Remove all side padding */
    /* your other properties stay the same */
  }

  nav > *:first-child {
    /* Logo - flush left */
    margin-left: 1.5rem; /* Small buffer from wall */
  }

  nav > *:last-child {
    /* Menu - control right spacing */
    margin-right: 3rem; /* Adjust this value */
  }

  .logo img {
    /* flex-shrink: 1; /*Allow the logo to shrink in flex if needed */
    height: 25px; /* Limit to half the nav width on mobile */
    width: 150px; /* Limit to half the nav width on mobile */
  }

  .nav-links a {
    font-size: 12px;
  }

  /** CONTENT PIC & TEXT QUERY FOR LARGE LAPTOPS / SMALLER DESKTOPS */
  .content-pic-text,
  .content-text-pic {
    background-color: #f8f8f8; /* Changed from 'white' to '#f8f8f8' */
    height: 424px; /* Fixed height for the entire container */
    display: flex; /* Use Flexbox to arrange image and text side-by-side */
    align-items: center; /* Vertically center the image and text within the container */
    overflow: hidden; /* Ensure content doesn't overflow the fixed height */
    margin: 3rem 0;
    padding: 0 1%; /* Changed from '0 5%' to '0 2%' */
  }

  /* Common image box styles for both blocks */
  .content-pic-text .image-box,
  .content-text-pic .image-box {
    /*width: 1057px; /* Fixed width for the image container */
    width: 734px; /* Fixed width for the image container */
    height: 100%; /* Take full height of the parent .content-text-pic */
    flex-shrink: 0; /* Prevent the image box from shrinking */
    position: relative; /* For absolute positioning of the image inside */
    overflow: hidden; /* Crop image if it exceeds container */
  }

  .content-pic-text .image-box img,
  .content-text-pic .image-box img {
    position: absolute; /* Position to fill the image-box */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensure image covers the area without distortion */
    object-position: center; /* Center the image within its box */
  }

  /* Common text box styles for both blocks */
  .content-pic-text .text-box,
  .content-text-pic .text-box {
    flex-grow: 1; /* Allow the text box to take up the remaining space */
    padding: 1rem 1rem; /* Padding inside the text box */
    display: flex; /* Use flexbox to organize internal text content */
    flex-direction: column; /* Stack text content vertically */
    justify-content: center; /* Vertically center content if there's extra space */
    color: var(--dark-text-on-light); /* Default text color */
  }

  /* h2 styling for content-pic-text AND content-text-pic (reverted to solid fill) */
  .content-pic-text .text-box h2,
  .content-text-pic .text-box h2 {
    color: var(--text-fill); /* Main text color */
    text-shadow: -1px -1px 0 var(--outline), 1px -1px 0 var(--outline),
      -1px 1px 0 var(--outline),
      1px 1px 0 var(--outline); /* Creates a 1px outline effect */
    font-family: 'Helvetica Neue Roman', sans-serif; /* Applied your new font here */
    font-size: 2em;
    letter-spacing: 0.08em; /* Adds spacing between letters */
    padding: 1px;
  }

  /* Common paragraph styles for both blocks */
  .content-pic-text .text-box p,
  .content-text-pic .text-box p {
    font-size: 1em;
    line-height: 1.2;
    margin-bottom: 1.5rem;
  }

  /* Common button styles for both blocks */
  .content-pic-text .text-box .learn-more-btn,
  .content-text-pic .text-box .learn-more-btn {
    /* Reusing existing button styles for consistency */
    font-size: 0.8em;
    padding: 0.8rem 2rem;
    background-color: var(--primary-color);
    color: var(--text-color);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s;
    align-self: flex-start; /* Align button to the start (left) */
  }

  .content-pic-text .text-box .learn-more-btn:hover,
  .content-text-pic .text-box .learn-more-btn:hover {
    background-color: var(--secondary-color);
  }
  /** CONTENT PIC & TEXT QUERY FOR LARGE LAPTOPS / SMALLER DESKTOPS */

  /* This nested query ensures this only applies on screens that
     are also desktop-sized (wider than 991px). */
  @media (min-width: 992px) {
    .cabin-experiences-gallery {
      max-width: 95%; /* Use a percentage to keep it responsive */
    }

    .content-pic-text .text-box h2,
    .content-text-pic .text-box h2 {
      font-size: 2em;
    }
  }
}

/* ========================================================== */
/** END  OF NEW MEDIA QUERY FOR LARGE LAPTOPS / SMALLER DESKTOPS 1707px */
/* ========================================================== */
/* ========================================================== */

@media (max-width: 1200px) {
  /* @media (max-width: 1700px) { */
  .content-pic-text .image-box,
  .content-text-pic .image-box {
    width: 600px; /* Adjust image box width for smaller desktops */
  }
}

@media (max-width: 991px) {
  body {
    padding-top: var(--nav-height);
  }

  .hero.header-image-section {
    padding-top: 75%;
  }

  .body-content-section {
    padding: 2rem 3%;
  }

  .cabin-experiences-area h2 {
    font-size: 2em;
  }

  .cabin-experiences-gallery {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    max-width: 100%;
    margin: 2rem auto;
    padding: 0 5%;
  }

  /* Responsive adjustments for content-pic-text and content-text-pic */
  .content-pic-text,
  .content-text-pic {
    flex-direction: column; /* Stack image and text vertically */
    height: auto; /* Allow height to adjust based on content */
    padding: 2rem 5%; /* Adjust padding */
    margin: 3rem 0;
  }

  .content-pic-text .image-box,
  .content-text-pic .image-box {
    width: 100%; /* Image takes full width */
    height: 400px; /* Fixed height for image on smaller screens */
    margin-bottom: 2rem; /* Space between image and text */
  }

  .content-pic-text .text-box,
  .content-text-pic .text-box {
    padding: 0; /* Remove internal padding if parent already has it */
    text-align: center; /* Center text for stacked layout */
  }

  .content-pic-text .text-box .learn-more-btn,
  .content-text-pic .text-box .learn-more-btn {
    align-self: center; /* Center button when stacked */
  }

  /* Specific order for stacked .content-text-pic to ensure text is first */
  .content-text-pic .text-box {
    order: 1; /* Text first (default order when column) */
    margin-bottom: 2rem; /* Ensure space between text and image */
  }
  .content-text-pic .image-box {
    order: 2; /* Image second */
  }
}

/* @media (max-width: 768px) { */
@media (max-width: 908px) {
  .content-pic-text .image-box,
  .content-text-pic .image-box {
    height: 300px; /* Smaller image height on tablets */
  }

  .content-pic-text .text-box h2,
  .content-text-pic .text-box h2 {
    font-size: 2.2em;
  }

  .content-pic-text .text-box p,
  .content-text-pic .text-box p {
    font-size: 1em;
    text-align: justify;
  }
}

@media (max-width: 480px) {
  .hero h1 {
    font-size: 1.8em;
  }
  .hero h2 {
    font-size: 1em;
  }

  .cabin-experiences-area h2 {
    font-size: 1.8em;
  }

  .content-pic-text .image-box,
  .content-text-pic .image-box {
    height: 200px; /* Even smaller image height on mobile */
  }

  .content-pic-text .text-box h2,
  .content-text-pic .text-box h2 {
    font-size: 1.8em;
  }
}