/* Reset styles */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Font definitions */
@font-face {
  font-family: "Thirsty Rough Bold";
  src: url("/assets/thirstyroughblackthree-webfont-907f48d8.eot");
  src:
    url("/assets/thirstyroughblackthree-webfont-907f48d8.eot?#iefix") format("embedded-opentype"),
    url("/assets/thirstyroughblackthree-webfont-a2b60dbf.woff") format("woff"),
    url("/assets/thirstyroughblackthree-webfont-742a3868.ttf") format("truetype"),
    url("/assets/thirstyroughblackthree-webfont-d050d91c.svg#webfont") format("svg");
}

@font-face {
  font-family: "Thirsty Rough";
  src: url("/assets/thirstyroughregularthree-webfont-0b335870.eot");
  src:
    url("/assets/thirstyroughregularthree-webfont-0b335870.eot?#iefix")
      format("embedded-opentype"),
    url("/assets/thirstyroughregularthree-webfont-97b85700.woff") format("woff"),
    url("/assets/thirstyroughregularthree-webfont-6d8b72a6.ttf") format("truetype"),
    url("/assets/thirstyroughregularthree-webfont-af761a92.svg#webfont") format("svg");
}

/* Main styles */
body {
  font-family: "Courier Prime", "Courier New", monospace;
  font-size: 16px;
  line-height: 1.5em;
  color: #555;
  background: #fdfff6 url("/assets/bg-eb36a92a.jpg") repeat;
}

section.main-content {
  padding: 1rem;
}

ol {
  list-style: decimal;
}

ol li {
  list-style-position: inside;
}

ul {
  list-style: square;
}

ul li {
  list-style-position: inside;
}

ul.recipes-list,
ul.measurements-list {
  list-style: none;
}

/* New navbar styles */
.navbar {
  background: #fff;
  border-bottom: 1px solid #ccc;
  padding: 0.5em 1em;
  z-index: 1000;
  position: sticky;
  top: 0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.navbar .navbar-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.navbar .logo {
  font-family: "Thirsty Rough Bold", Serif;
  font-size: 24px;
  font-weight: normal;
  text-transform: none;
  text-shadow:
    2px 1px 0px #fff,
    4px 4px 0px rgba(0, 0, 0, 0.15);
  margin-bottom: 0;
}

.navbar .logo a {
  text-decoration: none;
  color: #555;
}

.navbar .nav-links {
  display: flex;
  gap: 1em;
  align-items: center;
}

.navbar .nav-links a {
  padding: 0.5em;
  text-decoration: none;
  font-weight: normal;
}

.navbar .nav-links a:hover {
  cursor: pointer;
  text-decoration: underline;
}

/* Legacy logo styles for other pages */
.logo {
  font-family: "Thirsty Rough Bold", Serif;
  font-size: 48px;
  font-weight: normal;
  text-transform: none;
  text-align: center;
  text-shadow:
    2px 1px 0px #fff,
    4px 4px 0px rgba(0, 0, 0, 0.15);
  margin-bottom: 2rem;
}

.logo a {
  text-decoration: none;
  color: #555;
}

header.navbar-container,
footer,
.main-content {
  max-width: 1200px;
  margin: 0 auto;
}

.main-content {
  padding-top: 1em;
}

/* Mobile menu styles */
.hamburger-menu {
  display: none;
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 30px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 1001;
}

.hamburger-line {
  width: 100%;
  height: 3px;
  background-color: #555;
  transition: 0.3s;
  transform-origin: center;
}

.hamburger-menu.active .hamburger-line:nth-child(1) {
  transform: rotate(45deg) translate(7px, 7px);
}

.hamburger-menu.active .hamburger-line:nth-child(2) {
  opacity: 0;
}

.hamburger-menu.active .hamburger-line:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -7px);
}

.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(255, 255, 255, 0.98);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

.mobile-nav {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  text-align: center;
}

.mobile-nav-link {
  font-size: 1.5rem;
  text-decoration: none;
  color: #555;
  padding: 1rem;
  transition: color 0.3s ease;
}

.mobile-nav-link:hover {
  color: #333;
  text-decoration: underline;
}

body.menu-open {
  overflow: hidden;
}

/* Responsive styles */
@media (max-width: 768px) {
  .navbar .nav-links.desktop-nav {
    display: none !important;
  }

  .hamburger-menu {
    display: flex;
  }
}

section.search {
  margin: 2em 0 4em 0;
  text-align: center;

  border: 1px solid #ccc;
  padding: 1rem 2rem;
  background-color: #fff;
}

section.search form {
  max-width: 1200px;
  display: flex;
  margin: 0 auto;
}

section.search #keywords {
  flex-grow: 1;
  margin-right: 10px;
}

section.search .btn.search {
  width: 48px;
}

nav.account {
  position: absolute;
  top: 1em;
  right: 1em;
}

nav.account a {
  padding: 0.5em;
  text-decoration: none;
  font-weight: normal;
}

nav.account a:hover {
  cursor: pointer;
  text-decoration: underline;
}

h1,
h2,
h3,
h4,
h5 {
  margin-top: 1em;
  margin-bottom: 0.5em;
  font-weight: normal;
  text-transform: uppercase;
  font-family: "Open Sans Condensed", "Helvetica Neue", helvetica, sans-serif;
  line-height: 1.25em;
}

h1 {
  font-size: 32px;
}

h2 {
  font-size: 24px;
}

h1.title,
h2.title,
input#recipe_name {
  font-family: "Thirsty Rough", Serif;
  font-size: 24px;
  line-height: 1.25em;
  text-transform: none;
  text-shadow:
    2px 1px 0px #fff,
    4px 4px 0px rgba(0, 0, 0, 0.15);
  text-align: center;
}

h2.title {
  font-size: 22px;
}

a {
  color: #555;
  text-decoration: underline;
}

a:hover {
  color: #555;
}

p {
  margin-bottom: 1em;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

ol li,
ul li {
  line-height: 1.25em;
  margin-bottom: 0.5em;
}

.recipe-details h1,
.recipe h1 {
  font-size: 24px;
}

.recipe-details {
  margin-top: 1em;
}

.recipe-details .media,
.recipe-details .meta {
  text-align: center;
}

.recipe-details .thumbnail {
  border: 1px solid #ccc;
  box-shadow: 0 2px 1px 3px hsla(0, 0%, 0%, 0.05);
  width: 100%;
}

.recipe-details .preparation {
  box-shadow: 0 2px 1px 3px hsla(0, 0%, 0%, 0.05);
  border: 1px solid #ccc;
  min-height: 40em;
}

.recipe-details .preparation .content {
  position: relative;
  padding: 0 1em 0.5em 1em;
}

.recipe-details .preparation .favorite {
  position: absolute;
  right: 10px;
  top: 10px;
  opacity: 0.25;
  text-decoration: none;
}

.recipe-details .preparation .favorite.yes {
  opacity: 1;
}

.recipe-details .measurements-list {
  font-size: 18px;
}

.recipe > a {
  text-decoration: none;
  font-weight: normal;
}

.recipes {
  display: flex;
  flex-flow: row wrap;
  margin: 0 -0.1rem;
}

.recipes .recipe-wrapper {
  flex-basis: 20rem;
  flex-grow: 1;
  flex-shrink: 0;
  overflow: hidden;
  padding: 0 0.1rem 0.2rem;
  display: table-cell;
}

.recipes .recipe {
  padding: 0 1em 0.5em 1em;
  margin: 1em;
  position: relative;
  border: 1px solid transparent;
  text-align: center;
  overflow: hidden;
}

.recipes .recipe:hover {
  box-shadow: 0 2px 1px 3px hsla(0, 0%, 0%, 0.05);
  border: 1px solid #ccc;
  cursor: pointer;
}

.recipes .recipe .favorite {
  position: absolute;
  right: 10px;
  top: 10px;
  opacity: 0.25;
}

.recipes .recipe .favorite.yes {
  opacity: 1;
}

.recipes .browse {
  flex-grow: 1;
  height: 100px;
  text-align: center;
}

.recipes .browse ul {
  list-style: none;
}

.recipes .browse + .browse {
  margin-left: 2%;
}

label {
  padding: 0.25em;
  font-size: 1em;
  line-height: 1.25em;
  margin: 0.5em 0;
  display: block;
  float: left;
  width: 100%;
}

input[type="text"],
input[type="password"],
input[type="email"] {
  border: 0;
  background: transparent;
  padding: 0.25em;
  border-bottom: 1px solid #ccc;
  text-transform: lowercase;
  font-family: "Courier Prime", "Courier New", monospace;
  font-size: 1em;
  line-height: 1.25em;
  margin: 0.5em 0;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus {
  outline: none;
  border-bottom: 1px solid #666;
}

input[type="submit"],
button,
.btn {
  background-color: #000;
  opacity: 0.75;
  color: #fff;
  border: 0;
  padding: 0.5em;
  font-family: "Courier Prime", "Courier New", monospace;
  font-size: 1em;
  text-decoration: none;
}

input[type="submit"]:hover,
button:hover,
.btn:hover {
  cursor: pointer;
  opacity: 0.9;
  color: #fff;
}

form .measurements-list a.delete {
  margin-top: 0.5em;
}

hr.embellished {
  height: 26px;
  margin: 1em 0;
  border: 0;
  opacity: 0.6;
  background: transparent url("/assets/swash-small-2e8c1e71.png") center center no-repeat;
}

.search input[type="submit"],
.search button {
  font-size: 16px;
  line-height: 1.125em;
}

.pagination {
  margin: 1em 0;
  text-align: center;
}

.pagination .page,
.pagination .next,
.pagination .prev,
.pagination .first,
.pagination .last {
  margin: 0 0.25em;
}

footer {
  margin-top: 1em;
  padding: 2em 0;
  text-align: center;
}

form input {
  margin: 0.5em 0;
}

form .actions {
  margin-top: 1em;
  text-align: center;
}

/* ACCESSIBILITY */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* LOGIN */
section.login,
section.signup,
section.account {
  box-shadow: 0 2px 1px 3px hsla(0, 0%, 0%, 0.05);
  border: 1px solid #ccc;
  width: 100%;
}

section.login input[type="text"],
section.login input[type="email"],
section.login input[type="password"],
section.signup input[type="text"],
section.signup input[type="email"],
section.signup input[type="password"],
section.account input[type="text"],
section.account input[type="email"],
section.account input[type="password"] {
  width: 100%;
}

section.login .content,
section.signup .content,
section.account .content {
  padding: 0 1em 0.5em 1em;
}

.signup.favorites {
  text-align: center;
}

.facebook-signup,
.or {
  text-align: center;
}

input#recipe_name {
  width: 100%;
}

.recipe-details .media,
.recipe-details .meta,
.recipe-details .preparation {
  width: 100%;
}

@media only screen and (min-width: 720px) {
  .recipe-details {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .recipe-details .media,
  .recipe-details .meta {
    width: 22%;
    overflow-x: hidden;
  }

  .recipe-details .preparation {
    width: 48%;
    overflow-x: hidden;
  }

  .recipe-details .preparation.edit {
    width: 74%;
  }

  section.login,
  section.signup,
  section.account {
    width: 500px;
    margin: 0 auto;
  }
}
