:root {
  color-scheme: light;
  color: #14243f;
  background: #FFFFFF;
  font-family: 'Open Sans', sans-serif;
}

* {
  box-sizing: border-box;
}

body,
.nav-link,
.hero-text,
.page-footer {
  font-family: 'Open Sans', sans-serif;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  background: #FFFFFF;
  color: #14243f;
}

.page-shell {
  min-height: 100vh;
  display: grid;
  /* Creates 3 rows: header auto-sizes, hero takes remaining space, imaginary footer auto-sizes */
  grid-template-rows: auto 1fr auto; 
  justify-items: center;
  padding: 40px 24px;
}

.top-bar {
  width: min(1100px, 100%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  position: relative; /* Kept from our previous hamburger fix */
}

.brand {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.8rem, 2vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.04em;
}

.nav-links {
  display: flex;
  gap: 28px;
  align-items: center;
}

.nav-link {
  text-decoration: none;
  color: #14243f;
  font-size: 1rem;
  position: relative;
  padding: 4px 0;
}

.hero-section {
  width: min(980px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 26px;
  padding: 20px 0 40px;
  margin: auto 0; /* Centering magic: pushes evenly from top and bottom rows */
}

.hero-card {
  width: min(580px, 100%);
  margin: 0 auto;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(20, 36, 63, 0.12);
  background: #fff;
}

.hero-card img {
  display: block;
  width: 100%;       /* Forces the image to match the container's width */
  max-width: 100%;   /* Prevents the image from bursting out of its box */
  height: auto;      /* Keeps the aspect ratio perfect so it doesn't distort */
  object-fit: cover;
}

.hero-section h1 {
  margin: 0;
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(2.4rem, 3.5vw, 3.8rem);
  line-height: 1.02;
}

.hero-divider {
  width: 64px;
  height: 3px;
  background: #c89a39;
  border-radius: 999px;
}

.hero-text {
  max-width: 760px;
  margin: 0;
  color: #2c3b55;
  font-size: 1.05rem;
  line-height: 1.8;
    text-align: justify;
  text-justify: inter-word;
}

.footer-dot {
  display: inline-block;
  margin: 0 9px;
  color: #c89a39;
}

@media (max-width: 640px) {
  .page-shell {
    padding: 28px 16px;
  }

  /* --- UPDATE THIS BLOCK --- */
  .top-bar {
    flex-direction: row;         /* Forces them to stay side-by-side */
    justify-content: space-between; /* Pushes brand to left, hamburger to right */
    align-items: center;         /* Keeps them perfectly centered vertically */
    width: 100%;
  }

  .hero-text {
    padding: 0 8px;
  }
}

/* Style the 3 lines into a button */
/* Style the 3 lines into a button */
/* Style the 3 lines into a button */
.hamburger {
    width: 32px;
    height: 24px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative; /* Essential for positioning the instant X */
    z-index: 10;
}

/* Base style for the default 3 lines */
.line {
    width: 100%;
    height: 4px;
    background-color: #14243f;
    border-radius: 2px;
}

/* --- THE CLEAN STATIC X SWAP --- */

/* 1. Instantly hide all three original lines when menu is active */
.hamburger.active .line {
    display: none;
}

/* 2. Create the two bars of the X using pseudo-elements */
.hamburger.active::before,
.hamburger.active::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 4px; /* Matches original line thickness */
    background-color: #14243f;
    border-radius: 2px;
    margin-top: -2px; /* Perfectly centers them vertically */
}

/* 3. Drop them into their respective slots instantly without transitions */
.hamburger.active::before {
    transform: rotate(45deg);
}

.hamburger.active::after {
    transform: rotate(-45deg);
}

/* Hide the menu by default and position it relative to the page layout */
.nav-menu {
    display: none;
    position: absolute;
    top: 70px; /* Pushes dropdown down so it doesn't overlap the header */
    right: 24px; /* Matches the page-shell's side padding */
    background-color: #ffffff;
    width: 200px;
    box-shadow: 0 8px 24px rgba(20, 36, 63, 0.15);
    border-radius: 12px;
    overflow: hidden;
    z-index: 9;
}

.nav-menu ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.nav-menu ul li a {
    display: block;
    padding: 14px 20px;
    text-decoration: none;
    color: #14243f;
    font-weight: 200;
    transition: background 0.2s ease;
    font-family: 'Montserrat', sans-serif; 
    font-size: 0.8rem;                    

}

/* Hover effect for mobile menu links */
.nav-menu ul li a:hover {
    background-color: #f4f6f9;
}

/* Show the menu when the active class is added */
.nav-menu.active {
    display: block;
}

/* Ensure the header container acts as the anchor point for the dropdown */
.top-bar {
    position: relative;
}