:root {
  --primary-color: rgba(4,99,7,1);
  --primary-color-transparent: rgba(4,99,7,0.2);
}

body {
	font-family: Cormorant, Garamond, Roboto;
	font-weight:200;
	color: black;
	background-color: #fafafa;
	margin:0;
	box-sizing:border-box;
}

a {
	text-decoration: none;
	color: black;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

form {
  display: flex;
  flex-direction: column;
}

label {
  margin: 15px 0 5px;
  font-weight: 600;
}

input, textarea {
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: 1em;
  transition: border-color 0.3s;
  font-family: Cormorant, Garamond, Roboto;
}

input:focus, textarea:focus {
  border-color: var(--primary-color);
  outline: none;
}

textarea {
  resize: vertical;
  min-height: 120px;
}

.title {
	color: #2e4b36;
	font-size: 1.9rem;
	font-weight: 400;
}

.header {
	position: relative;
    z-index: 1;
    width: 100%;
    box-sizing: border-box;
    padding-top: 4.3vw;
    padding-bottom: 4.3vw;
    padding-left: 5vw;
    padding-right: 5vw;
    pointer-events: auto;
}

.header-inner {
	position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    width: 100%;
    height: inherit;
    padding: 0;
}

.header-display-desktop {
	position: relative;
    display: flex;
    width: 100%;
    box-sizing: border-box;
    justify-content: flex-start;
    align-items: center;
}

.header-title-nav-wrapper {
	display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    flex: 0 0 100%;
    justify-content: center;
    align-content: center;
    margin-left: auto;
    box-sizing: border-box;
}

.header-nav-list {
	justify-content: center;
	display: inline-flex;
	flex-wrap: wrap;
	text-align: center;
    flex: 0 0 100%;
    margin: 2.5vw 0 0;
}

.nav-item {
	margin-left: .7vw;
    margin-right: .7vw;
}

.nav-item a:hover {
	color: #5f725d;
}

.nav-toggle {
  background: none;
  border: none;
  cursor: pointer;
  display: none; /* Hidden on large screens */
  z-index: 1001;
}

.icon {
  display: none;
}

.icon-hamburger {
  display: block;
}

.content-wrapper{
	padding-right: 5vw;
    padding-left: 5vw;
    padding-bottom: 3.3vmax;
    justify-content: center;
    margin: 0 auto;
    box-sizing: border-box;
    display: flex;
    position: relative;
    width:100%;
}

.content {
	width: 100%;
}

.front-page-images {
  display: flex;
  flex-direction: row;
  gap: 3em;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .front-page-images {
    flex-direction: column;
  }
}

.content-grid {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.content-grid .bio {
	font-size: x-large;
	align-content: center;
	padding: 8px;
	max-width: 100%;
	flex:1;
	order:1;
}

.content-grid .bio .bio-wrapper {
	max-width:300px;
	justify-self:right;
}

.photo-wrapper {
  display: flex;
  flex-direction:column;
    flex:1;
  order:2;
  align-items: flex-start;
  justify-content: left;
  text-align:center;
  padding: 8px;
}

.author-photo {
	display:flex;
	flex-direction: row;
	align-items: center;
}

.author-photo-wrapper {
	width:fit-content;
}

.author-photo img {
	box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.3)
}

.photo-credit {
  order: 3;
  font-size: 0.9em;
  color: #888;
  margin-top: 4px;
  text-align: right; /* or 'left' if preferred */
}

.photo-credit-name {
  color: black;
}

.footer-inner {
	box-sizing: border-box;
    padding: 25px 61px;
}

@media screen and (max-width: 960px) {
	.footer-inner {
		padding-left: 48px;
		padding-right: 48px;
	}
}

.break-line {
	padding-top: 0;
	padding-left: 34px;
    padding-right: 34px;
}

.break-line hr {
	height: 1px;
	color: #bbb;
	border: none;
	background-color: #dcd7d4;
}

.socials-list {
	position: relative;
    height: auto;
    padding-top: 17px;
    padding-bottom: 17px;
    padding-left: 17px;
    padding-right: 17px;
}

.socials-list nav {
	justify-content: center;
	display: flex;
    align-items: center;
}

.copyright {
	display: flex;
	justify-content:center;
}

/* style.css */

@media (max-width: 768px) {
  nav {
    flex-direction: column;
    align-items: center;
  }

  main {
    flex-direction: column;
  }

  .sidebar {
    max-width: 100%;
  }

  .content-grid {
    flex-direction: column;
  }

  .content-grid .author-photo {
    order: 1;
  }

  .content-grid .bio {
    order: 2;
  }
}

/* meow */
/*
@media (min-width: 769px) {
  .nav-toggle {
    display: none;
  }
  .nav-links {
    position: static;
    transform: none !important;
    height: auto;
    width: auto;
    background: none;
    flex-direction: row;
    padding: 0;
  }
  .nav-links a {
    font-size: 1rem;
    padding: 0;
    border: none;
  }
}
*/

@media (max-width: 768px) {
  .nav-toggle {
    display: block;
  }

  .icon-hamburger {
    display: block;
  }

  .icon-close {
    display: none;
  }

  .nav-toggle.open .icon-hamburger {
    display: none;
  }

  .nav-toggle.open .icon-close {
    display: block;
  }

  .title {
    font-size: 1.3rem; /* smaller title */
  }

  .header-title-nav-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between; /* title left, button right */
    padding: 1rem;
    position: relative;
  }

  /* Hide the menu off screen initially */
	.nav-links {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100svh; /* full viewport height (use 100vh as fallback if needed) */
  background-color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  opacity: 0;
  transform: translateY(-100%);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
  z-index: 1000;
}

.nav-links.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

	/* Make links bigger and spaced out */
	.nav-links a {
	  color: black;
	  font-size: 2rem;
	  padding: 1rem 0;
	  text-decoration: none;
	  width: 100%;
	  text-align: center;
	  border-bottom: 1px solid rgba(255,255,255,0.2);
	}

	.header-title-nav-wrapper {
	  position: relative;
	  z-index: 10000; /* higher than nav-links */
	  display: flex;
	  justify-content: space-between;
	  align-items: center;
	  padding: 1rem;
	}

	.nav-toggle {
	  z-index: 10001; /* above nav-links so clickable */
	}
	.nav-links {
	  opacity: 0;
	  transition: transform 0.4s ease, opacity 0.4s ease;
	}

	.nav-links.open {
	  opacity: 1;
	}

}

.section {
    padding-bottom: 3.6vw;
}
.section-header {
  position: relative;
    width: 100%;
    box-sizing: border-box;
    padding-bottom: 3.6vw;
    padding-left: 5vw;
    padding-right: 5vw;
    pointer-events: auto;
    text-align: center;
    font-size: 1.5rem;
    font-weight:400;
    color: var(--primary-color);
}

@media (max-width: 768px) {
  .section-header {
    padding-top: 6vw;
    padding-bottom:6vw;
    font-weight:500;
  }
}

.section-content {
  display:flex;
  flex-direction:column;
  gap: 1rem;
  font-size:1.2rem;
}

.section-item {
  display:flex;
  flex-direction: row;
  justify-content: center;
  gap:4px;
  flex-wrap: wrap;
}

.section-item-title {
  color: var(--primary-color);
  text-decoration:underline;
  text-underline-offset: 5px;
  text-decoration-color: var(--primary-color-transparent);
}

.section-item-title-no-link {
  color: var(--primary-color);
}

.section-item-title:hover {
  opacity: 0.7;
}

.section-item-place{

}

.contact-header {
  font-size: 1.6rem;
  font-weight: 400;
}

.name-group {
  margin: 15px 0;
  display: flex;
  flex-direction: column;
}

.name-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.name-field {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.sub-label {
  font-size: 0.85em;
  font-weight: 500;
  margin-bottom: 4px;
  color: #666;
}

.form-button {
  margin-top: 20px;
  padding: 12px;
  background: transparent;
  color: #333;
  border: 1px solid #333;
  border-radius: 3px;
  font-size: 1.2em;
  cursor: pointer;
  transition: all 0.3s ease;
  width: auto;
  align-self: flex-start;
  font-family: Cormorant, Garamond, Roboto;
}

.form-button:hover {
  background: #333;
  color: white;
}

.required-tag {
  font-size: 0.85em;
  color: #888;
  font-weight: normal;
}

.copyright {
  font-size: 0.7em;
  color: #aaa;
  text-align: center;
  padding: 20px 0;
}