/* ================================
   pacific.css */

/* GLOBAL RESETS & DEFAULTS */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    background-color: #EAEAEA;
    text-align: center; /* For narrow screens */
}

h1, h2, h3 {
    margin: 0; 
    padding: 0;
}

/* WRAPPER - MOBILE FIRST */
#wrapper {
    background-color: #90C7E3;
    padding-bottom: 20px;
}

/* HEADER */
header {
    background-color: #000033; 
    color: #ffffff;
    text-align: center;
    padding: 0.5em 0;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: bold;
}

header a {
    color: #ffffff;
    text-decoration: none;
}
header a:hover {
    color: #90C7E3;
}

h1 {
    padding: 0.5em 0;
    margin: 0;
    font-size: 2em;
}

/* NAVIGATION - MOBILE */
nav {
    background-color: #e3e3e3;
    text-align: center;
    padding: 0; 
}

nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

nav ul li {
    border-bottom: 1px solid #003366;
    padding: 0.5em 0;
}

nav a {
    color: #003366;
    text-decoration: none;
    font-weight: bold;
}
nav a:visited {
    color: #003366;
}
nav a:hover {
    color: #A52A2A;
}

/* HERO IMAGES */
#homehero, #yurthero, #trailhero {
    width: 100%;
    height: 320px;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

#homehero {
    background-image: url('coast2.jpg');
}
#yurthero {
    background-image: url('yurt.jpg');
}
#trailhero {
    background-image: url('trail.jpg');
}

/* MAIN CONTENT */
main {
    background-color: #ffffff;
    padding: 1em;
    text-align: left;
    overflow: auto;
}

/* HEADINGS */
h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8em;
    color: #003366;
    text-align: center;
    font-weight: bold;
    margin-bottom: 0.5em;
}

h3 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2em;
    color: #000033;
    font-weight: bold;
}

/* PARAGRAPHS */
p {
    font-size: 1em;
    line-height: 1.5;
    margin: 0 0 1em 0;
    font-family: Georgia, "Times New Roman", serif;
}

/* UL INSIDE MAIN */
main ul {
    list-style-position: inside;
    list-style-image: url('marker.gif');
    padding-left: 1em;
}
main ul li {
    margin-bottom: 0.5em;
}

/* FOOTER */
footer {
    background-color: #ffffff;
    padding: 1em;
    font-size: 0.9em;
    font-style: italic;
    text-align: center;
    border-top: 1px solid #000033;
    margin-top: 1em;
}

footer a {
    color: #0000EE;
    text-decoration: underline;
}

/* Table Styles for Yurts Page */
table {
    border: 2px solid #3399CC;
    border-collapse: collapse;
    width: 100%;
    max-width: 100%;
}

th, td {
    border: 2px solid #3399CC;
    padding: 0.5em;
}

td {
    text-align: center;
}

.text {
    text-align: left;
}

tr:nth-of-type(odd) {
    background-color: #F5FAFC;
}

/* Responsive Table Container */
.table-responsive {
  overflow-x: auto;
}

/* Force #special to span all grid columns */
.content #special {
  grid-column: 1 / -1;
}

/* --- NEW: Form Styles for Reservations Page --- */
/* Default: Single-column layout (flexbox) for narrow viewports */
form {
  display: flex;
  flex-flow: column nowrap;
}

input, textarea {
  margin-bottom: 0.5em;
}

/* =========================================
   MEDIUM LAYOUT: MIN-WIDTH: 600px 
========================================= */
@media screen and (min-width: 600px) {
    /* Navigation styling for other pages */
    nav ul {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-around;
    }
    nav ul li {
        border-bottom: none;
    }
    section {
        padding: 0 2em;
    }
    /* 3-column grid layout for pages with class "content" */
    .content main {
        display: grid;
        grid-template-rows: auto;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 1em;
    }
    .content h2 {
        grid-row: 1 / 2;
        grid-column: 1 / 4;
    }
    .content section {
        grid-row: 2 / 3;
        grid-column: auto;
        text-align: center;
    }
    .content footer {
        grid-row: auto;
        grid-column: 1 / 4;
    }

    /* Updated Form Layout for non-Reservations pages */
    form {
        width: 60%;
        display: grid;
        grid-template-columns: 6em 1fr;
        grid-template-rows: repeat(8, auto);
        gap: 0.5em 1em;
        align-items: center;
        margin: auto;
    }

    form label {
        grid-column: 1 / 2;
        text-align: right;
        padding-right: 0.5em;
    }

    form input[type="text"],
    form input[type="email"],
    form input[type="tel"],
    form input[type="date"],
    form input[type="number"] {
        grid-column: 2 / 3;
        width: 100%;
    }

    form textarea {
        grid-column: 1 / 3;
        width: 100%;
        height: 100px;
    }

    form input[type="submit"] {
        grid-column: 2 / 3;
        justify-self: start;
        width: 9em;
    }
}

/* =========================================
   LARGE LAYOUT: MIN-WIDTH: 800px 
========================================= */
@media screen and (min-width: 800px) {
  #wrapper {
    margin: 0 auto;
    width: 80%;
    border: 1px solid #003366;
    box-shadow: 3px 3px 10px #333;
    display: grid;
    grid-template-columns: 180px 1fr;
    grid-template-rows: auto auto auto auto;
  }

  header {
    grid-column: 1 / 3;
    grid-row: 1 / 2;
  }

  nav {
    grid-column: 1 / 2;
    grid-row: 2 / 4; 
    background: #FFFFFF;
    background: linear-gradient(180deg, #FFFFFF, #90C7E3);
  }
  /* Ensure nav list displays vertically */
  nav ul {
    flex-direction: column;
    padding-top: 1em;
  }

  #homehero, #yurthero, #trailhero {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    width: 100%;
  }

  main {
    grid-column: 2 / 3;
    grid-row: 3 / 4;
    padding: 1em;
  }

  footer {
    grid-column: 1 / 3;
    grid-row: 4 / 5;
  }

  /* --- Reservations Page Overrides --- */
  body.reservations #wrapper {
    grid-template-rows: auto auto auto;
  }
  body.reservations nav {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
  }
  body.reservations main {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    padding: 1em;
  }
  body.reservations footer {
    grid-column: 1 / 3;
    grid-row: 3 / 4;
  }
}

/* --- NEW: Custom Reservation Form Styles --- */
/* These rules override the grid form layout for the Reservations page
   so that the form appears as a centered, single-column block */
body.reservations form.reservation-form {
  display: grid;
  grid-template-columns: 150px 1fr; /* Label column + input column */
  gap: 0.75em 1em; /* row gap, column gap */
  max-width: 600px;
  margin: 1em auto;
  align-items: center;
}

body.reservations form.reservation-form label {
  text-align: right;
  font-weight: bold;
}

body.reservations form.reservation-form input,
body.reservations form.reservation-form textarea {
  width: 100%;
  padding: 0.5em;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-family: inherit;
}

body.reservations form.reservation-form textarea {
  resize: vertical;
  min-height: 80px;
  grid-column: 2 / 3; /* make sure it aligns under input column */
}

body.reservations form.reservation-form input[type="submit"] {
  grid-column: 2 / 3;
  width: auto;
  background-color: #003366;
  color: white;
  padding: 0.5em 1em;
  border: none;
  border-radius: 3px;
  cursor: pointer;
}

body.reservations form.reservation-form input[type="submit"]:hover {
  background-color: #90C7E3;
  color: black;
}

