*,
*:before,
*:after {
  /* Chrome 9-, Safari 5-, iOS 4.2-, Android 3-, Blackberry 7- */
  -webkit-box-sizing: border-box;

  /* Firefox (desktop or Android) 28- */
  -moz-box-sizing: border-box;

  /* Firefox 29+, IE 8+, Chrome 10+, Safari 5.1+, Opera 9.5+, iOS 5+, Opera Mini Anything, Blackberry 10+, Android 4+ */
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}
body {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  background-color: #efefef;
  font-family: Montserrat, Verdana, sans-serif;
  font-size: 0.8rem;
  color: #0a3945;
}

.site-header {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: space-between;
  background-color: #1fa9cc;
  color: #0a3945;
  font-size: 0.8rem;
}
h1,
h2,
h3{
  font-family: Merriweather, Georgia, "Times New Roman", Times, serif;
  margin: 10px 0;
}
.wrapper {
  min-height: 100vh;
}
.site-header a {
  max-width: 200px;
}
.site-logo {
  margin: 25px 30px;
  max-width: 150px;
  margin-bottom: 0;
}

.header-content {
  margin: 15px 0 0 0;
}
.header-aside {
  margin: 15px 0 15px 0;
  margin-left: auto;
}
.site-branding {
  margin: 20px 0 5px 25px;
  font-style: italic;
  font-size: 0.7rem;
}
.arrow-up-login {
  display: none;
  width: 0;
  height: 0;
  position: absolute;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 15px solid #fff;
  right: 80px;
  top: 210px;
}
.arrow-up-cart {
  display: none;
  width: 0;
  height: 0;
  position: absolute;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 15px solid #fff;
  right: 24px;
  top: 210px;
}
.login-btn:hover,
.cart-btn:hover,
.menu-icon:hover,
.cta-small:hover {
  cursor: pointer;
}
.login-form {
  display: none;
}
#login-btn {
  display: none;
}

/* #login-btn:checked ~ div {
  display: block;
} */
.visible ~ div{
  display: block;
}
.menu-icon.visible ~ nav ul{
  display: block;
  max-height: 250px;
  padding: 15px 0;
  transition: all 0.5s;
}
.login-form {
  padding: 10px;
  position: absolute;
  width: 220px;
  height: auto;
  background-color: #fffefe;
  right: 40px;
  top: 50px;
  border-radius: 5px;
  font-size: 0.9rem;
}
.login-form a {
  color: #0a3945;
  font-size: 0.9rem;
  text-decoration: none;
}
.login-form a:hover {
  text-decoration: underline;
}
.cart-form {
  display: none;
  padding: 10px;
  position: absolute;
  width: 220px;
  height: auto;
  background-color: #fffefe;
  right: 22px;
  top: 105px;
  border-radius: 5px;
  font-size: 0.9rem;
}
.cart-form p {
  margin: 10px 0;
}
.cart-form a {
  color: #0a3945;
  font-size: 0.9rem;
  text-decoration: none;
}
.cart-form a:hover {
  text-decoration: underline;
}
#cart-label {
  color: #0a3945;
}
#cart-btn {
  display: none;
}
.fa-shopping-cart {
  color: #fffefe;
  margin-left: 2px;
}
/* #cart-btn:checked ~ div {
  display: block;
} */

input[type="text"],
input[type="password"] {
  margin: 4px 0 7px 0;
  height: 25px;
  border: 0;
  outline: none;
  box-shadow: inset 0 0 10px #eee;
  border-radius: 5px;
  font-style: oblique;
  opacity: 0.7;
}
input[type="submit"] {
  /* width: 75px; */
  position: relative;
  right: -75px;
  top: 15px;
  height: 25px;
  color: #401021;
  margin: 10px 0 15px 0;
  border-radius: 5px;
  background-color: #c8bb21;
}
input[type="submit"]:hover {
  background-color: #401021;
  color: #efefef;
}

.checkout-list {
  display: flex;
  flex-direction: column;
  margin: 5px 0;
}
.checkout-list h2{
  flex: 0 0 100%;
  text-align: center;
}
input#city {
  width: 95px;
  margin-right: 5px;
}
input#zip {
  width: 50px;
}
select#country {
  font-size: 1rem;
  border: 0;
  margin-top: 5px;
  width: 150px;
}
.zip {
  margin-left: 75px;
}
.expiration input {
  width: 40px;
  border: none;
}
.menu-wrap {
  height: 70px;
  background-color: #15748c;
  color: #fffefe;
  display: flex;
  grid-template-columns: repeat(2, 1fr);
  grid-column: 1/4;
}
.menu-wrap a:hover {
  text-decoration: underline;
}
.menu-wrap a.active {
  background-color: #fffefe;
  color: #0a3945;
}
.menu-icon {
  font-size: 2.1em;
  color: #ffffff;
  margin: 15px 25px;
}
nav {
  position: absolute;
  background-color: #15748c;
  top: 320px;
  left: 0;
  width: 100%;
  z-index: 100;
}
nav ul {
  list-style-type: none;
  max-height: 0;
  overflow: hidden;
  transition: ease-in-out;
}
nav ul li {
  padding: 0 15px;
}
nav ul li a {
  display: inline-block;
  padding: 12px;
  /* Add your custom styles below to change appearance of links */
  color: #fffefe;
  text-decoration: none;
  letter-spacing: 0.05em;
}
nav ul li a:hover,
nav ul li a:focus {
  color: #401021;
}
nav ul li a:hover,
nav ul li a:focus {
  color: #401021;
}
i {
  margin-right: 7px;
}
::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: #0a3945;
}
::-moz-placeholder {
  /* Firefox 19+ */
  color: #0a3945;
}
:-ms-input-placeholder {
  /* IE 10+ */
  color: #0a3945;
}
:-moz-placeholder {
  /* Firefox 18- */
  color: #0a3945;
}
input:focus::-webkit-input-placeholder {
  color: transparent !important;
}
input:focus::-moz-placeholder {
  color: transparent !important;
}
input:focus:-moz-placeholder {
  color: transparent !important;
}
.search {
  margin-left: auto;
  margin-right: 20px;
  margin-top: 10px;
}
.search ul {
  list-style-type: none;
  display: inline-flex;
  margin-top: 10px;
}
.search-field {
  padding: 2px;
  max-width: 110px;
  font-size: 0.7rem;
}
.search-btn {
  background-color: #0a3945;
  padding: 3px 4px;
  position: relative;
  top: 3px;
  border: 0;
}
.search-btn:hover {
  background-color: #1fa9cc;
}
.fa-search {
  color: #fffefe;
  margin-left: 10px;
  padding: 2px;
}
.secondary-nav {
  margin-right: 10px;
}
.secondary-nav label {
  color: #0a3945;
  font-weight: 500;
}
.secondary-nav ul {
  list-style-type: none;
}
.secondary-nav ul li {
  display: inline-flex;
}
.secondary-nav ul li {
  margin-right: 5px;
  text-decoration: none;
}
.secondary-nav ul li label:hover {
  text-decoration: underline;
  color: #fffefe;
}
.wrapper {
  max-width: 1140px;
  margin: 0 auto;
}
.main-content {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 15px 25px;
}
.main-content h1 {
  align-self: center;
}
.main-content h2 {
  font-weight: 400;
}
.main-content a {
  color: #401021;
  text-decoration: none;
}
.main-content a:hover {
  text-decoration: underline;
}
.main-content .cta-small:hover {
  text-decoration: none;
}
.main-content .cta-sale{
  color: #c8bb21;
}
.learn-more {
  margin-top: 5px;
}
.hero {
  background: url("../images/pexels-vlad-bagacian-2819551_resized.jpg")
    no-repeat center;
  background-size: cover;
  width: 100%;
  height: 500px;
  margin: 15px 0;
}
.register-form {
  animation: newsletter 1s forwards;
  animation-delay: 1s;
  left: -1000px;
  padding: 10px;
  position: relative;
  width: 220px;
  margin: 20px;
  height: auto;
  background-color: #fffefe;
  border-radius: 5px;
  font-size: 0.8rem;
}
@keyframes newsletter {
  0% {
    left: -1000px;
  }
  100% {
    left: 0px;
  }
}
.register-form a {
  color: #0a3945;
  font-size: 0.8rem;
  text-decoration: none;
}
.register-form a:hover {
  text-decoration: underline;
}
.register-form h3 {
  margin-bottom: 10px;
}
.cart {
  border: 1px solid #c8bb21;
  max-width: 600px;
  min-width: 200px;
  padding: 20px;
  position: fixed;
  right: 50px;
  top: 50px;
  background: #fff;
  flex-direction: column;
  display: none;
  z-index: 10;
}
.cart-image{
  max-width: 50px;
}
.cart-page{
  max-width: 400px;
  margin: 0 auto;
  background: #efefef;
  border-radius: 20px 0px;
  padding: 20px;
}
.cart-item{
  padding: 10px 0;
}
.cart-item img{
  max-width: 70px;
}
.fa-trash{
  position: relative;
  right: -90px;
  top: -20px;
  font-size: 1.3em;
}
.checkout-btn.cta-small {
  position: relative;
  top: 5px;
  text-align: center;
  font-weight: bold;
  text-decoration: none;
}
.members-menu {
  list-style-type: none;
  display: inline-flex;
  justify-content: center;
}
.member-hero {
  background: url("../images/pexels-vlad-bagacian-2819546_resized.jpg")
    no-repeat bottom;
  background-size: cover;
  width: 100%;
  height: 500px;
  margin: 15px 0;
}
.member-hero h2 {
  position: relative;
  top: 60px;
  left: 30px;
  color: #0a3945;
}
.members-menu a {
  color: #0a3945;
  text-decoration: none;
  margin-right: 15px;
}
.members-menu a:hover {
  text-decoration: underline;
}
.members-main {
  text-align: center;
}
.perks-item {
  margin: 40px 0;
}
.circular-economy-icon {
  max-width: 50px;
  margin: 20px 0;
}
.member-faq {
  margin: 30px 0;
}
.member-faq h3 {
  text-align: center;
  margin-bottom: 10px;
}
.member-faq-list {
  list-style-type: none;
}
.member-faq-list li {
  text-decoration: none;
}

#faq-item-1 {
  display: none;
}
.fa-plus {
  margin-left: 10px;
}
#faq-item-1 ~ p {
  display: none;
}
#faq-item-1:checked ~ p {
  display: block;
  background-color: #c8bb21;
  color: #401021;
}
#faq-item-2 {
  display: none;
}
#faq-item-2 ~ p {
  display: none;
}
#faq-item-2:checked ~ p {
  display: block;
  background-color: #c8bb21;
  color: #401021;
}
.product-list {
  margin: auto;
}
.product-list-item {
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.product-list-item img {
  max-width: 150px;
}
.product-list-item h3{
  max-width: 50%;
  margin-bottom: 10px;
}
.product-detail {
  padding: 20px;
}
.product-detail-item img {
  max-width: 250px;
  margin: 10px 0;
}
.product-list{
   display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 10px;
}
.product{
  margin-bottom: 20px;
}
.product img{
  width: 100%;
  margin-bottom: 5px;
}
.product-price{
  margin-top: 5px;
}
.icons-aside img {
  margin: 10px 5px 5px 0;
}
.cta-small {
  text-decoration: none;
  padding: 5px 10px;
  font-weight: 600;
  color: #401021;
  background-color: #c8bb21;
  border-radius: 5px;
  border: none;
  position: relative;
  top: 25px;
}
.cta-small:hover {
  background-color: #401021;
  color: #c8bb21;
}
.cta-sale {
  text-decoration: none;
  padding: 5px 10px;
  font-weight: 600;
  color: #c8bb21;
  background-color: #401021;
  border-radius: 5px;
  border: none;
  position: relative;
  top: 15px;
}
.cta-sale:hover {
  background-color: #c8bb21;
  color: #401021;
}
.addcart {
  padding: 16px 20px;
  position: relative;
  top: 10px;
  left: 10px;
}
.detail-counter-aside {
  display: inline-flex;
}
.counter-minus-btn,
.counter-plus-btn {
  background-color: #0a3945;
  color: #fffefe;
  height: 50px;
  width: 50px;
  border-radius: 30px;
  margin: 20px 0;
}
.counter {
  margin: 20px;
  padding-top: 10px;
}
.cancel {
  position: relative;
  left: -100px;
  top: -30px;
  background-color: #1fa9cc;
  color: #fffefe;
  margin: 0 10px 0 0;
}
.checkout-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.checkout-list-item {
  margin: 10px 0;
  margin-right: 30px;
}
.checkout-list-item h3 {
  margin-bottom: 10px;
}
.billing-form div {
  padding: 3px 0 5px 0;
}
.credit-card-form div {
  padding: 3px 0 5px 0;
}
.about-list {
  margin: 40px 0 30px 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.about-item {
  margin: 10px 0;
  max-width: 250px;
}
.about-social {
  margin: 20px 0;
}
.about-social ul {
  display: inline-flex;
}
.about-social li {
  list-style-type: none;
  padding: 0 10px 0 0;
}
.contact-details p {
  font-weight: 600;
  padding: 5px 0;
}
hr {
  border: 1px solid #0a3945;
  margin: 10px 0;
}
.contact-location {
  margin: 20px 0;
}
.confirm-order {
  text-align: center;
  margin-right: 10px;
}
.shipping-content {
  margin: 15px;
}
.shipping-content h1 {
  text-align: center;
}
.shipping-table {
  margin: 10px 0;
  display: grid;
  height: auto;
  background: #fff;
  padding: 10px 0;
  grid-template-columns: repeat(2, 1fr);
}
.shipping-item h3 {
  border-bottom: 2px solid #000;
  margin: 10px 0;
}
.shipping-item {
  line-height: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.shipping-item p:first-of-type {
  background-color: lightgray;
}
.returns-main-content {
  padding: 15px 0;
  margin: 10px;
}
.returns-main-content h3 {
  margin: 10px 0;
}
.privacy-main-content {
  margin: 15px;
}
.privacy-main-content ul {
  list-style-type: none;
}
.flash a {
  /* These are technically the same, but use both */
  overflow-wrap: break-word;
  word-wrap: break-word;

  -ms-word-break: break-all;
  /* This is the dangerous one in WebKit, as it breaks things wherever */
  word-break: break-all;
  /* Instead use this non-standard one: */
  word-break: break-word;

  /* Adds a hyphen where the word breaks, if supported (No Blink) */
  -ms-hyphens: auto;
  -moz-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
}
.testimonials h3 {
  text-align: center;
  margin: 20px 0;
}
.testimonials-content {
  max-width: 600px;
  border: 2px solid #c8bb21;
  margin: auto;
  background: #1fa9cc;
  display: flex;
  place-items: center;
  justify-content: space-between;
  padding: 20px;
  font-style: italic;
  margin-bottom: 10px;
}
.testimonials p:before {
  content: '"';
}
.testimonials p:after {
  content: '"';
}
.testimonials-hero {
  flex: 1 0 50%;
  margin: 10px;
  text-align: center;
}
.footer {
  background-color: #0a3945;
}
.footer p {
  margin: 5px 0;
}
.footer ul {
  margin: 0;
}
.footer-content {
  margin: 0 25px 0 0;
  padding: 25px;
  display: flex;
  flex-direction: column;
  font-size: 0.9rem;
  color: #fff;
}
.footer-category {
  margin: 20px 0 7px 0;
}
.footer-nav {
  margin: 20px 0;
}
.footer-nav ul {
  list-style-type: none;
}
.footer-nav ul li {
  display: inline-flex;
}
.footer-nav ul li a {
  color: #fff;
  margin-right: 5px;
  margin-left: auto;
  text-decoration: none;
}
.footer-nav ul li a:hover {
  text-decoration: underline;
  color: #c8bb21;
}
.footer a {
  color: #fffefe;
  text-decoration: none;
}
.footer a:hover {
  text-decoration: underline;
}
@media screen and (min-width: 400px) and (max-width: 599px) {
  body {
    font-size: 0.9rem;
  }
  .site-logo {
    max-width: 200px;
    margin-bottom: 0;
  }
  .arrow-up-login {
    right: 80px;
    top: 210px;
  }
  .arrow-up-cart {
    right: 24px;
    top: 204px;
  }
  .login-form {
    right: 40px;
    top: 50px;
    border-radius: 5px;
    font-size: 1rem;
  }
  .cart-form {
    right: 22px;
    top: 95px;
    border-radius: 5px;
    font-size: 1rem;
  }
  nav {
    top: 320px;
  }
  .main-content .hero img {
    /* max-width: 350px; */
    margin: 25px 0 25px;
  }
  .register-form {
    margin: 20px;
  }
  .product-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    font-size: 0.9rem;
  }
  .product-list-item img {
    max-width: 150px;
  }
  .product-detail {
    padding: 20px;
  }
  .product-detail-item img {
    max-width: 300px;
    margin: 15px 0 20px 0;
  }
  .icons-aside img {
    width: 26px;
    margin: 10px 7px 10px 0;
  }
  .footer-content {
    flex-direction: column;
    font-size: 0.8rem;
  }
}
@media screen and (min-width: 600px) and (max-width: 799px) {
  body {
    font-size: 1rem;
  }
  .site-logo {
    max-width: 250px;
    margin: 25px 0 10px 40px;
  }
  .site-branding {
    margin: 10px 0 0 25px;
  }
  nav {
    top: 350px;
  }
  .arrow-up-login {
    right: 80px;
    top: 235px;
  }
  .arrow-up-cart {
    right: 24px;
    top: 235px;
  }
  .login-form {
    right: 40px;
    top: 75px;
    border-radius: 5px;
    font-size: 1rem;
  }
  .cart-form {
    right: 22px;
    top: 127px;
    border-radius: 5px;
    font-size: 1rem;
  }
  input#city {
    width: 95px;
    margin-right: 5px;
  }
  input#zip {
    width: 50px;
  }
  .zip {
    margin-left: 70px;
  }
  .login-form a {
    color: #401021;
    font-size: 0.9rem;
    text-decoration: none;
  }
  .login-form a:hover {
    text-decoration: underline;
  }
  .search-field {
    font-size: 0.8rem;
  }
  .search-btn {
    padding: 4px 6px;
    position: relative;
    top: 4px;
  }
  .main-content {
    font-size: 0.9rem;
  }
  .main-content-entry {
    flex-direction: row;
    width: 300px;
  }
  .hero img {
    margin: 25px 0;
    /* max-width: 400px; */
  }
  .register-form {
    margin: 20px;
    font-size: 0.9rem;
  }
  .register-form a {
    font-size: 0.9rem;
  }
  .product-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
  .product-list-item img {
    max-width: 200px;
  }
  .product-detail {
    padding: 20px;
  }
  .product-detail-item img {
    max-width: 350px;
    margin: 15px 0 20px 0;
  }
  .icons-aside img {
    width: 28px;
    margin: 10px 7px 10px 0;
  }
  .checkout-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .checkout-list-buttons {
    flex: 0 0 100%;
    text-align: center;
    margin: 0 0 20px 0;
  }
  input[type="submit"]{
    position: relative;
    left: 0;
  }
  .cancel {
    position: relative;
    left: -180px;
  }
  #embedmap {
    width: 350px !important;
    height: 350px !important;
  }
  .confirm-order button {
    padding: 7px 12px;
    margin-right: 13px;
  }
}
@media screen and (min-width: 800px) {
  body {
    font-size: 1rem;
  }
  .site-logo {
    max-width: 300px;
    margin: 30px 0 25px 40px;
  }
  .site-header {
    display: grid;
    grid-template-columns: 450px repeat(2, 1fr);
    justify-content: space-around;
  }
  .arrow-up-login {
    border-bottom: 15px solid #fff;
    border-top: none;
    right: 90px;
    top: 35px;
  }
  .arrow-up-cart {
    border-bottom: 15px solid #fff;
    border-top: none;
    right: 35px;
    top: 35px;
  }
  .login-form {
    right: 50px;
    top: 49px;
    border-radius: 5px;
    border-bottom: 2px solid #0a3945;
    font-size: 1rem;
  }
  .cart-form {
    right: 35px;
    top: 49px;
    border-radius: 5px;
    border-bottom: 2px solid #0a3945;
  }
  .cart-form p {
    margin: 10px 0;
  }
  .secondary-nav {
    margin-right: 20px;
  }
  .menu-icon{
    display: none;
  }
  nav {
    position: relative;
    top: -5px;
    background-color: transparent;
  }
  nav ul {
    max-height: 80px;
    padding: 15px 0;
    text-align: center;
  }
  nav ul li {
    display: inline-flex;
    padding-left: 10px;
  }
  .search {
    margin-left: auto;
    margin-right: 20px;
    margin-top: 8px;
  }
  .search-field {
    font-size: 0.9rem;
  }
  .search-btn {
    padding: 5px 8px;
    position: relative;
    top: 4px;
    background-color: #0a3945;
    border: 0;
  }
  .search-btn a {
    text-decoration: underline;
  }
  .fa-search {
    color: #fffefe;
    margin-left: 10px;
    padding: 2px;
    margin-top: 1px;
  }
  #h1-home {
    align-self: flex-start;
  }
  .register-form {
    margin: 20px;
    font-size: 1rem;
  }
  .register-form a {
    font-size: 1rem;
  }
  .product-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    font-size: 1rem;
  }
  .product-list-item img {
    max-width: 180px;
  }
  .product-detail {
    padding: 20px;
  }
  .product-detail-item {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
  }
  .detail-aside {
    margin: 20px;
  }
  .addcart {
    top: 15px;
    margin: 10px 0;
    padding: 16px 20px;
  }
  .product-detail-item img {
    max-width: 400px;
    margin: 15px 0 20px 0;
  }
  .icons-aside img {
    width: 28px;
    margin: 10px 7px 10px 0;
  }
  .checkout-list {
    flex-direction: row;
  }
  .checkout-list-buttons {
    flex: 0 0 100%;
    text-align: center;
    margin: 5px 30px 25px 0;
  }
  .checkout {
    margin: 0;
    position: relative;
    top: 15px;
  }
  input[type="submit"]{
    position: relative;
    left: 0;
  }
  .cancel {
    position: relative;
    left: -180px;
  }
  .about-list {
    display: inline-flex;
  }
  .about-item {
    margin: 0 20px;
  }
  #embedmap {
    width: 450px !important;
    height: 450px !important;
  }
  #embedmap-canvas img {
    max-width: none !important;
    background: none !important;
    font-size: inherit;
    font-weight: inherit;
  }
  .confirm-order button {
    margin-right: 20px;
    padding: 10px 15px;
  }
  footer {
    height: 130px;
  }
  .footer-content {
    margin: 10px 25px 15px 0;
    line-height: 1.1rem;
    padding: 25px;
    flex-direction: row;
    justify-content: center;
    font-size: 0.8rem;
  }
  .footer-category {
    margin: 0 15px 0 30px;
  }
  .footer-nav {
    margin: 0 20px;
  }
}
