/* Theme Name: There Is Hope
Theme URI: https://vizou.com
Author: Dana Whittle
Author URI: https://vizou.com
Description: Custom theme for There Is Hope
Version: 3.0 
Requires at least: 6.0 
Tested up to: 6.7.2 
Requires PHP: 8 
License: GNU General Public License v2 or later 
License URI: https: //www.gnu.org/licenses/gpl-2.0.html
Text Domain: thereishope
*/

/*- - - - - - - - - - - - - - - - - - - - TYPOGRAPHY */

/* GOOGLEFONTS (Variable)
Raleway 400,400i,500,600,800
*/

em {
  font-family: Raleway !important;
  font-style: 400i;
}

.wp-caption {
  font-family: Raleway !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

.footer,
.copyright,
.featured-item-text,
.frm_form,
.content a,
.footer a,
h1 {
  font-family: Raleway !important;
  font-style: normal !important;
  font-weight: 500 !important;
}

strong,
ul.tabs li a,
.headline h1,
.meta,
.meta a,
label.frm_primary_label,
label,
form h3,
h3,
h6,
.pagination {
  font-family: Raleway !important;
  font-style: normal !important;
  font-weight: 650 !important;
}

.footer strong,
.featured-item-title,
.featured-item-number,
nav ul li a,
.headline h1,
h2,
h4,
h6 {
  font-family: Raleway !important;
  font-style: normal !important;
  font-weight: 750 !important;
}

/*- - - - - - - - - - - - - - - - - - - - VARIABLES */
:root {
  --background-white: rgb(255, 255, 255, 0.95);
  --background-black: rgb(0, 0, 0, 0.3);
  --background-overlay: rgb(217, 220, 210, 0.95);
  --white: #ffffff;
  --links: #c52d09;
  --hover: #d9dcd2;
  --gray: #d9dcd2;
  --darkgray: #a9b097;
  --black: #555;
  --red: #c52d09;
  --brown: #9e4500;
  --dark: #0f6633;
  --medium: #5e8e36;
  --light: #e7f1c3;
  --pale: #f0f2ed;
  --border: 1px solid var(--gray);
}

/*- - - - - - - - - - - - - - - - - - - - BASICS */

html {
  font-size: min(max(18px, calc(1.125rem + (22 - 18) * ((100vw - 320px) / (1920 - 320)))), 22px);
  min-height: 0vw;
  width: 100%;
  height: 100%;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

*,
*:after,
*:before {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  font: normal 100% Raleway, Helvetica, sans-serif;
  font-weight: 400;
  line-height: 1.4em;
  background: var(--white);
  color: var(--black);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0 auto !important;
  width: 100%;
  display: grid;
}

p {
  margin: 20 0 10px 0;
}

ul {
  list-style: none;
}

ol {
  list-style-type: decimal;
  padding-left: 20px;
}

small {
  font-size: 0.8em;
  color: #50640d;
}

img {
  border: 0;
  max-width: 100%;
  height: auto;
}

iframe {
  max-width: 100%;
}

a {
  color: var(--links);
  text-decoration: none;
}

a:hover {
  color: var(--hover);
  text-decoration: none;
}

.screen-reader-text {
  margin-left: -10000;
}

.which-template {
  display: none;
  color: red;
  width: 100%;
}

.grecaptcha-badge {
  display: none !important;
}

/*- - - - - - - - - - - - - - - - - - - - NAVIGATION */

nav.main {
  width: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1000;
}

.scrolled nav.main {
  position: fixed;
  top: 0;
  -webkit-filter: drop-shadow(0 -6px 8px #555);
  filter: drop-shadow(0 -6px 8px #555);
}

a.toggle-nav {
  font-size: 48px;
  color: var(--white);
  background: var(--darkgray);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

a.toggle-nav:hover,
a.toggle-nav.active {
  color: var(--black);
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}

a.toggle-nav span {
  font-size: 48px;
  padding: 18px 0 0 0;
}

.toggle-nav .open {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

img.logo {
  width: 320px;
  height: auto;
  padding: 0;
  margin: 15px 20px 0 20px;
}

nav.main .toggle-nav.nav-active .open,
nav.main.nav-active .toggle-nav .close {
  display: none;
}

.toggle-nav .close:hover {
  color: var(--black);
}

nav.main.nav-active ul {
  margin-top: -5000px;
}

nav.main ul {
  list-style: none;
  margin: 0;
  padding: 1em 1em 3em 1em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  height: auto;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  background: var(--gray);
}

nav.main ul li {
  padding: 0;
  list-style: none;
  margin: 10px 0;
  text-align: center;
}

nav.main ul li a {
  font-size: 1.4em;
  color: var(--dark);
  padding: 0;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  white-space: nowrap;
}

nav.main ul li a:hover,
nav.main ul li.current-menu-item a {
  color: var(--darkgray) !important;
}

/*- - - - - - - - - - - - - - - - - - - - LAYOUT */

.content {
  grid-area: content;
}

.left {
  grid-area: left;
}

.right {
  grid-area: right;
}

.center {
  grid-area: center;
}

.headline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  height: 100vh;
  padding: 0 10%;
  text-align: center;
}

.header {
  width: 100%;
  height: 50vh;
  position: relative;
}

.single .header {
  display: none;
}

.header img {
  display: block;
  width: 100%;
  height: 50vh;
  overlow: hidden;
  -o-object-fit: cover;
  object-fit: cover;
}

.header .headline {
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-align: center;
}

.container {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  position: relative;
  background: var(--white);
}

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-areas: '. . content content content content content content content content . .';
  padding: 2em 0 3em 0;
  margin: 0 auto;
}

.woocommerce .grid,
.category h1,
.single .grid {
  padding-top: 15vh;
}

/*- - - - - - - - - - - - - - - - - - - - FEATURED */

.featured {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-line-pack: center;
  align-content: center;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  text-align: center;
  font-size: 0.8em;
  line-height: 1.4em;
  padding: 2em;
  margin-top: 2em;
  background: var(--gray);
  border-top: var(--border-green);
  border-bottom: var(--border-green);
}

.page-template-default .featured {
  background: var(--gray);
  border: var(--border);
}

.featured>* {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 33%;
  flex: 1 1 33%;
}

.featured-item {
  padding: 10px;
  margin: 10px;
}

.featured.about {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: space-evenly;
  -ms-flex-pack: space-evenly;
  justify-content: space-evenly;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.featured.about .featured-item {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 calc(25% - 10px);
  flex: 0 0 calc(25% - 10px);
}

.featured-item p {
  margin: 0 0 5px 0;
}

.featured-item a:hover {
  color: var(--dark);
}

img.featured-item-image {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: var(--white);
  padding: 8px;
  border: 4px solid var(--medium);
  margin: -130px 0 10px 0;
}

.featured-item i {
  font-size: 40px;
  color: var(--dark);
  margin-bottom: 10px;
}

.featured-item-number {
  font-size: 1.7em;
  color: var(--red);
  margin: 10px 0;
}

.featured-item-title {
  font-size: 1.2em;
  text-transform: uppercase;
  color: var(--red);
}

.featured-item-text {
  font-size: 1.1em;
}

/*- - - - - - - - - - - - - - - - - - - - ORNAMENTS */

.ornament {
  position: absolute;
  bottom: -40px;
  right: 0;
  left: 0;
  width: 100px;
  margin: 0 auto;
}

.ornament img {
  display: inline-block;
  width: 100px;
  height: 100px;
  border-radius: 50%;
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - HORIZ POSTS*/

.grid-horiz {
  display: grid;
  grid-template-columns: 50% auto;
  grid-template-areas: 'left right';
  grid-column-gap: 1.5em;
  padding: 1em 0;
  margin-bottom: 1em 0;
  border-bottom: var(--border);
}

.grid-horiz:last-of-type {
  border: 0;
}

.grid-horiz .left img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 4px;
}

.grid-horiz .left img:hover {
  -webkit-filter: sepia(100%);
  filter: sepia(100%);
}

.grid-horiz .right {
  font-size: 0.9em;
  line-height: 1.3em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
}

.post-edit-link,
.grid-horiz .meta {
  font-size: 14px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - TABS*/

ul.tabs {
  margin: 0 0 2em 0;
  padding: 0 !important;
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-line-pack: center;
  align-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

ul.tabs li {
  list-style: none;
  border-right: var(--border);
}

ul.tabs li a {
  display: block;
  font-size: 0.9em;
  line-height: 1.2em;
  padding: 0 8px;
  color: var(--black);
}

ul.tabs li:last-of-type {
  border: 0;
}

ul.tabs li a:hover,
ul.tabs li.active a {
  color: var(--medium);
}

.tab-container {
  overflow: hidden;
  clear: both;
  width: 100%;
}

/* pagination */

.pagination {
  position: relative;
  font-size: 1em;
  text-align: center;
  display: block;
  width: 100%;
  margin: 1.5em auto;
}

.nav-links:before {
  content: 'PAGES';
  padding-right: 5px;
  letter-spacing: 1px;
}

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

.pagination a {
  color: var(--dark);
}

.page-numbers.current,
.pagination a:hover {
  color: var(--hover);
}

.page-numbers {
  padding: 0 10px;
}

.page-numbers i {
  color: var(--medium);
}

/*- - - - - - - - - - - - - - - - - - - - PARTNERS */

.partners {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.partners p img {
  margin: 0 0.5em;
}

/*- - - - - - - - - - - - - - - - - - - - FOOTER */

.footer {
  display: grid;
  grid-gap: 4em;
  grid-template-columns: 33% auto;
  grid-template-areas: 'left right';
  font-size: 0.9em;
  line-height: 1.2em;
  background: var(--gray);
  padding: 1em 4em;
  border-top: var(--border-green);
}

.footer .left,
.footer .center,
.footer .right {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
}

.footer p {
  margin: 0 0 15px 0;
}

nav.social ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  margin: 10px 0 0 0;
  padding: 0;
}

nav.social ul li {
  margin-right: 15px;
}

.testimonial {
  font-size: 1.2em;
  line-height: 1.4em;
}

.social i {
  font-size: 24px;
}

.copyright {
  font-size: 14px;
  text-transform: uppercase;
  background: var(--gray);
  margin: 0;
  padding: 2em 0 1em 0;
}

.at-share-btn {
  margin-top: -1px !important;
}

/*- - - - - - - - - - - - - - - - - - - - HEADERS */

h1,
h2,
h3,
h4 {
  line-height: 1em;
  margin: 0;
  color: var(--dark);
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  -moz-column-break-inside: avoid;
  break-inside: avoid;
}

h1 {
  font-size: 2.7em;
  margin: 20px 0;
  color: var(--black);
}

.category h1 {
  text-align: center;
}

.headline h1 {
  color: var(--white);
  font-size: 3.5em;
  line-height: 1em;
  text-align: center;
  -webkit-filter: drop-shadow(0 3px 5px #949494);
  filter: drop-shadow(0 3px 5px #949494);
}

h2 {
  font-size: 2em;
  margin: 1.5em 0 0.5em 0;
}

h2 a {
  color: var(--dark);
}

.grid-horiz h2 {
  margin: 0.5em 0 0 0;
}

h3 {
  font-size: 1.3em;
  line-height: 1.2em;
  text-transform: uppercase;
  margin: 1em 0 0 0;
  color: var(--red);
}

.grid-horiz h3 {
  margin: 0;
}

h3 a {
  color: var(--red);
}

form h3 {
  font-size: 2em !important;
  margin-bottom: 10px !important;
}

h4 {
  font-size: 1.2em;
  line-height: 1.4em;
  margin: 20px 0;
  color: var(--black);
}

h5 {
  font-size: 1em;
  color: var(--black);
}

h6 {
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--red);
}

/*- - - - - - - - - - - - - - - - - - - - CONTENT */

blockquote {
  margin: 30px 0;
  font-size: 1.2em;
  padding: 20px 30px;
  background: var(--pale);
  border-radius: 4px;
}

.single blockquote {
  margin-left: 0;
}

blockquote p {
  margin: 5px 0;
}

blockquote strong {
  display: block;
  font-size: 14px;
  line-height: 18px;
  margin-top: 10px;
  text-transform: uppercase;
  color: var(--darkgray);
}

/*lists*/

ul {
  padding: 0 0 10px 20px;
  margin: 0 0 10px 10px;
  overflow: hidden;
}

ol li {
  padding: 3px 0;
}

.content ul {
  list-style-type: disc;
  padding-left: 20px;
  list-style-position: outside;
  margin: 10px 0 20px 0;
}

/*images, alignment*/

img.alignleft,
.alignleft {
  float: left !important;
  margin: 0.5em 1.5em 1em 0 !important;
}

img.alignright,
.alignright {
  float: right !important;
  margin: 0.5em 0 1.5em 1em !important;
}

.aligncenter {
  text-align: center !important;
  margin: 0 auto !important;
}

img.alignnone,
.alignnone {
  float: none !important;
  margin: 1em 0 0.5em 0;
  max-width: 100%;
  height: auto;
}

/* Target all YouTube iframes in your content */
.entry-content iframe[src*="youtube.com/embed/"],
.post-content iframe[src*="youtube.com/embed/"],
.content-area iframe[src*="youtube.com/embed/"],
iframe[src*="youtube.com/embed/"] {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16/9;
  max-width: 100%;
}

/* Fallback for browsers that don't support aspect-ratio */
.video-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 ratio */
  height: 0;
  overflow: hidden;
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.rl-gallery,
.gallery {
  margin: 0.5em 0 !important;
  -webkit-column-break-inside: avoid !important;
  page-break-inside: avoid !important;
  -moz-column-break-inside: avoid !important;
  break-inside: avoid !important;
}

.wp-caption {
  max-width: 96%;
}

.rl-gallery-caption,
.gallery-caption,
.wp-caption-text {
  color: var(--black);
  font-size: 14px;
  line-height: 1.1em;
  display: block;
  padding: 10px;
  border-bottom: var(--border);
}

/*- - - - - - - - - - - - - - - - - - - - FORMS */

.grid .frm_fields_container {
  width: 100%;
}

.accept label {
  font-size: 0.9em !important;
}

.frm_repeat_sec {
  background: var(--pale);
  padding: 20px;
}

button.frm_final_submit,
.frm_submit button,
.button {
  font-size: 0.9em !important;
  text-transform: uppercase;
  color: var(--white) !important;
  border: 0 !important;
  background: var(--red) !important;
  padding: 5px 12px !important;
  border-radius: 3px;
}

.frm_submit button:hover,
.button:hover {
  background: var(--darkgray) !important;
  color: var(--white) !important;
}

.footer .frm_submit button,
.footer .frm_top_container {
  margin: 0 0 10px 0 !important;
}

/*- - - - - - - - - - - - - - - - - - - - WOO */

/*hide stuff*/
.woocommerce .wc-tab h2:first-of-type,
.woocommerce ul.wc-tabs,
.woocommerce .posted_in,
.woocommerce .related.products,
.woocommerce .woocommerce-result-count,
.woocommerce select.orderby {
  display: none;
}

.product {
  border: 0 !important;
  padding: 0 !important;
}

/*- - - - - - - - - - - - - - - - - - - - BREAKPOINTS */

@media only screen and (max-width: 767px) {

  body {
    display: block;
  }

  .container,
  .grid,
  .featured,
  .grid-horiz,
  .footer,
  .left,
  .right,
  .center {
    display: block;
  }

  .grid {
    padding: 2em;
  }

  .footer {
    padding: 1em 2em 2em 2em;
  }

  .bg {
    background-size: 800px auto !important;
    background-position: top center;
  }

  img.logo {
    width: 280px;
    margin: 10px 10px 0 10px;
  }

  a.toggle-nav span {
    font-size: 40px;
    padding-top: 15px;
    color: var(--white);
  }

  nav.main ul {
    height: 100vh;
  }

  nav.main ul li a {
    font-size: 1.5em;
  }

  .headline {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  .partners img {
    max-width: 80%;
  }

  img.featured-item-image,
  .featured-item {
    display: block;
    margin: 20px auto;
  }

  .meta {
    margin: 1em 0;
  }

  ul.tabs {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  ul.tabs li {
    border: 0;
    padding: 10px;
  }

  .headline h1 {
    font-size: 2.5em;
  }

  h1 {
    font-size: 2.2em;
  }

  h2 {
    font-size: 1.5em;
  }

  .navigation.pagination {
    padding: 10px;
  }

  .pagination a {
    padding: 5px;
  }

  .aligncenter,
  .alignleft,
  .alignright {
    display: block !important;
    float: none !important;
    margin: 10px 0;
  }
}