/*
Theme Name: VitaminVape
Theme URI: https://example.invalid/vitaminvape
Author: VitaminVape
Description: Flatsome child theme for VitaminVape parity implementation.
Template: flatsome
Version: 0.3.1
Requires at least: 7.0
Requires PHP: 8.2
Text Domain: vitaminvape
*/

:root {
  --vv-red: #c72e2d;
  --vv-text: #5c5c5c;
  --vv-band: #eeeeee;
  --vv-product-bg: #f8f8f8;
  --vv-footer: #1c1c1c;
  --vv-cart-empty: #9a9a9a;
  --vv-gutter: 48px;
}

html { scroll-behavior: smooth; }
body {
  background: #fff;
  color: var(--vv-text);
  font-family: "Open Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
}

body,
.nav > li > a,
.mobile-sidebar-levels-2 .nav > li > ul > li > a {
  font-family: "Open Sans", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
.heading-font {
  color: inherit;
  font-family: "Open Sans", sans-serif;
  font-weight: 400;
}

.home .section-content > .row,
.home .vv-products > .section-content > .row,
.home .vv-products .row {
  max-width: 1400px;
}

/* Header: transparent over the hero, logo left on desktop. */
.home #header {
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 30;
}
.home .header-wrapper:not(.stuck) .header-main {
  background: transparent;
  box-shadow: none;
}
.home .header-wrapper:not(.stuck) .header-main,
.home .header-wrapper:not(.stuck) .header-main a,
.home .header-wrapper:not(.stuck) .header-main i {
  color: #f4f4f4;
}
.header-main .header-inner {
  max-width: none;
  padding-left: var(--vv-gutter);
  padding-right: var(--vv-gutter);
}
.header-main .nav > li { margin: 0 0 0 20px; }
.header-main .nav > li > a {
  font-size: 16px;
  line-height: 24px;
  min-width: 24px;
  padding: 0;
}
.header-main .icon-user,
.header-main .icon-shopping-bag,
.header-main .icon-shopping-basket,
.header-main .icon-shopping-cart { font-size: 24px; }
#header .cart-item.vv-cart-empty .header-cart-link,
#header .cart-item.vv-cart-empty .header-cart-link:hover,
#header .cart-item.vv-cart-empty .cart-icon strong,
#header .cart-item.vv-cart-empty .cart-icon strong::after {
  border-color: var(--vv-cart-empty);
  color: var(--vv-cart-empty);
}
#header .cart-item.vv-cart-has-items .header-cart-link,
#header .cart-item.vv-cart-has-items .header-cart-link:hover,
#header .cart-item.vv-cart-has-items .cart-icon strong,
#header .cart-item.vv-cart-has-items .cart-icon strong::after {
  border-color: var(--vv-red);
  color: var(--vv-red);
}
#logo > a {
  align-items: center;
  display: inline-flex;
  margin: -8px;
  padding: 8px;
}
.header-main #logo { z-index: 2; }
#logo img { max-height: 23.75px; object-fit: contain; }

/* Hero */
.vv-hero {
  background: url("assets/source/home-hero.jpg") 50% 50% / cover no-repeat;
  color: #fff;
  min-height: 880px;
}
.vv-hero-row { min-height: 880px; }
.vv-hero-copy { margin-top: 0; max-width: 527px; }
.vv-hero-copy h1 {
  color: #fff;
  font-size: 40.078px;
  font-weight: 400;
  letter-spacing: 2.004px;
  line-height: 1.3;
  margin: 20px 0 24px;
  text-transform: uppercase;
}
.vv-hero-kicker {
  color: #fff;
  font-size: 15.6px;
  letter-spacing: 0.78px;
  line-height: 26.52px;
  margin: 0;
}
.home .button {
  border-radius: 0;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.9px;
  line-height: 24.75px;
  min-height: 47.5px;
  padding: 10.4px 28px;
}

/* Repeating 15px merchant-logo separator. */
.vv-logo-strip {
  background-color: #fff;
  background-image: url("assets/source/logo-strip.png");
  background-position: center;
  background-repeat: repeat-x;
  background-size: auto 15px;
  height: 15px;
  min-height: 15px;
}
.vv-hero + .vv-logo-strip,
.vv-newsletter + .vv-logo-strip { display: none; }

/* Alternate upward from the newsletter's Shopify scheme-2 band. */
.vv-products-first,
.vv-testimonials,
.vv-products-second { background: #fff; }
.vv-benefits,
.vv-how,
.vv-usa,
.vv-newsletter { background: var(--vv-band); }

/* Benefits */
.vv-benefits { min-height: 494px; }
.vv-benefits-row {
  align-items: flex-start;
  min-height: 494px;
  padding: 112px 0 64px;
}
.vv-benefits .col-inner { padding: 0 30px; }
.vv-benefit-image { margin: 0 0 20px; }
.vv-benefit-icon {
  display: block;
  height: 148px;
  margin: 0 auto;
  object-fit: contain;
  width: 148px;
}
.vv-benefits h3,
.vv-products .product-title {
  color: var(--vv-red);
  font-size: 15.6px;
  font-weight: 400;
  letter-spacing: 0.78px;
  line-height: 26.52px;
  margin: 0 0 10px;
  text-transform: uppercase;
}
.vv-benefits p { margin: 0 auto; max-width: 300px; }

/* Product bands */
.vv-products-first { min-height: 834px; padding: 112px var(--vv-gutter) 72px !important; }
.vv-products-second { min-height: 834px; padding: 112px var(--vv-gutter) 72px !important; }
.vv-products .row-small > .col { padding: 0 10px 20px; }
.vv-products .box-image { background: var(--vv-product-bg); }
.vv-products .box-text { padding: 22px 20px 0; text-align: center; }
.vv-products .product-title a { color: var(--vv-red); }
.vv-products .price {
  color: var(--vv-text);
  font-size: 16px;
  font-weight: 400;
  line-height: 26.4px;
}
.vv-products .badge-container { margin: 0; }
.vv-products .badge-inner { background: var(--vv-red); }
.vv-products .button { color: var(--vv-red); margin-top: 18px; }
.vv-products > .section-content > .row:last-child > .col { padding-bottom: 0; }

/* How it works */
.vv-how { min-height: 870px; padding: 112px var(--vv-gutter) 0 !important; }
.vv-how h2,
.vv-testimonials h2,
.vv-newsletter h2 {
  font-size: 35.1824px;
  font-weight: 400;
  letter-spacing: 1.759px;
  line-height: 49.2554px;
  margin: 0 0 20px;
  text-transform: uppercase;
}
.vv-how p { margin: 0 auto 20px; max-width: 1280px; }
.vv-how .col { padding-bottom: 0; }
.vv-cutaway-wrap { margin: 0; }
.vv-cutaway {
  display: block;
  height: auto;
  margin: 0 auto;
  max-width: 600px;
  width: 100%;
}

/* Reviews */
.vv-testimonials { min-height: 741px; padding: 72px var(--vv-gutter) 88px !important; }
.vv-testimonials h2 { margin-bottom: 78px; }
.vv-review-row > .col { padding-left: 24px; padding-right: 24px; }
.vv-quote { max-width: 381px; }
.vv-rating {
  color: #e4b23e;
  font-size: 14px;
  line-height: 15.4px;
  margin-bottom: 18px;
}
.vv-rating span { color: var(--vv-text); }
.vv-reviewer {
  color: var(--vv-text);
  font-size: 14px;
  line-height: 15.4px;
  margin-bottom: 18px;
}
.vv-reviewer em { color: #c45500; font-style: normal; }
.vv-quote h3 {
  color: #060e05;
  font-size: 18.72px;
  font-weight: 700;
  line-height: 30.888px;
  margin: 0 0 7.488px;
}
.vv-quote > p:last-child { margin-bottom: 0; }

/* Sourced and mixed in the USA */
.vv-usa { min-height: 580px; padding: 112px var(--vv-gutter) !important; }
.vv-usa h2 {
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1.4px;
  line-height: 39.2px;
  margin: 20px 0 12px;
  text-transform: uppercase;
}
.vv-usa p {
  font-size: 20px;
  line-height: 33px;
  margin: 0 auto;
  max-width: 1280px;
}
.vv-usa .col { padding-bottom: 0; }
.vv-flag-wrap { margin: 0; }
.vv-flag { display: block; height: auto; margin: 0 auto; width: 350px; }

/* Newsletter */
.vv-newsletter {
  color: var(--vv-red);
  min-height: 380px;
  padding: 64px var(--vv-gutter) !important;
}
.vv-newsletter h2,
.vv-newsletter p { color: var(--vv-red); }
.vv-newsletter p { margin: 0 0 26px; }
.vv-email-row { display: flex; flex-wrap: wrap; margin: 0 auto; max-width: 610px; }
.vv-email-row input {
  background: #fff;
  border: 1px solid var(--vv-red);
  border-radius: 0;
  box-shadow: none;
  color: var(--vv-red);
  flex: 1 1 auto;
  height: 49.2px;
  margin: 0;
  min-width: 0;
  padding: 10px 16px;
  width: auto;
}
.vv-email-row input::placeholder { color: var(--vv-red); opacity: 1; }
.vv-email-row button {
  background: var(--vv-red);
  border: 1px solid var(--vv-red);
  border-radius: 0;
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  height: 49.2px;
  letter-spacing: 0.9px;
  padding: 0 28px;
}
.vv-email-row button:disabled { cursor: wait; opacity: .7; }
.vv-email-message {
  flex: 0 0 100%;
  font-size: 14px;
  line-height: 1.5;
  margin-top: 12px;
  min-height: 21px;
  text-align: center;
}
.vv-email-message.is-success { color: #356b37; }
.vv-email-message.is-error { color: #9f2423; }
.vv-newsletter .col { padding-bottom: 0; }

/* Footer */
.vv-legal-footer {
  background: var(--vv-footer);
  color: rgba(255, 255, 255, 0.65);
  min-height: 474px;
  padding: 104px 0 48px var(--vv-gutter) !important;
}
.vv-legal-footer .vv-disclaimer-col {
  flex-basis: 50%;
  margin-left: auto;
  max-width: 50%;
  padding-right: 0;
}
.vv-legal-footer h3 {
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 26.4px;
  margin: 0 0 16px;
}
.vv-legal-footer p,
.vv-legal-footer a {
  color: rgba(255, 255, 255, 0.65);
  font-size: 16px;
  line-height: 26.4px;
}
.vv-disclaimer {
  border: 1px solid #565656;
  box-sizing: border-box;
  margin-left: auto;
  max-width: 560px;
  padding: 12px;
  text-align: left;
}
.vv-disclaimer p {
  font-size: 12.96px;
  line-height: 21.384px;
  margin: 0;
}
.vv-disclaimer a,
.vv-global-footer__disclaimer a {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  text-decoration: underline;
}
.vv-copyright { margin-top: 52px; }
.vv-copyright p {
  font-size: 11px;
  letter-spacing: 0.55px;
  line-height: 18.15px;
  margin: 0;
  text-transform: uppercase;
}
.home #footer { display: none; }

/* Floating CTA mirrors the source behavior: visible only while scrolling down. */
.vv-floating-cta {
  background: var(--vv-red);
  bottom: 16px;
  color: #fff;
  display: block;
  font-size: 15px;
  left: 50%;
  letter-spacing: 0.9px;
  line-height: 47.5px;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  text-align: center;
  text-transform: uppercase;
  transform: translate(-50%, 24px);
  transition: opacity .2s ease, transform .2s ease;
  width: min(334px, calc(100vw - 40px));
  z-index: 99;
}
.vv-floating-cta.is-visible {
  color: #fff;
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

@media (max-width: 849px) {
  :root { --vv-gutter: 20px; }
  .header-main .header-inner { padding-left: 20px; padding-right: 20px; }
  .header-main .nav > li { margin-left: 14px; }
  .header-main .nav > li > a { min-width: 22px; }
  .header-main .icon-shopping-bag,
  .header-main .icon-shopping-basket,
  .header-main .icon-shopping-cart { font-size: 22px; }
  .header-main #logo {
    left: 50%;
    margin: 0;
    position: absolute;
    transform: translateX(-50%);
    width: 125px !important;
  }
  #logo img { max-height: 15px; }

  .vv-hero,
  .vv-hero-row { min-height: 720px; }
  .vv-hero { background-position: 50% 50%; }
  .vv-hero-row { padding-left: 20px; padding-right: 20px; }
  .vv-hero-copy {
    margin: 0 auto;
    max-width: 350px;
    text-align: center;
  }
  .vv-hero-copy h1 {
    font-size: 28.79px;
    letter-spacing: 1.44px;
    line-height: 43.185px;
    margin: 20px 0 24px;
  }

  /* Flatsome renders these 800px min-heights as the verified 802px band at 390px. */
  .vv-benefits { min-height: 800px; }
  .vv-benefits-row { min-height: 800px; padding: 80px 8px 44px; }
  .vv-benefits .col { padding-bottom: 52px; }
  .vv-benefits .col-inner { padding: 0 4px; }
  .vv-benefit-image { margin-bottom: 18px; }
  .vv-benefit-icon { height: 140px; width: 140px; }
  .vv-benefits p { max-width: 163px; }
  .vv-benefits .col:last-child p { max-width: 260px; }

  .vv-products-first { min-height: 1803px; padding: 80px 12px 56px !important; }
  .vv-products-second { min-height: 1803px; padding: 80px 12px 56px !important; }
  .vv-products .row-small > .col { padding: 0 8px 30px; }
  .vv-products .box-text { padding: 18px 8px 0; }

  .vv-how { min-height: 707px; padding: 80px 20px 0 !important; }
  .vv-how h2,
  .vv-testimonials h2,
  .vv-newsletter h2 {
    font-size: 26.152px;
    letter-spacing: 1.308px;
    line-height: 39.228px;
  }
  .vv-how p { margin-bottom: 20px; }
  .vv-cutaway { max-width: 350px; }

  .vv-testimonials { min-height: 1259px; padding: 72px 20px 64px !important; }
  .vv-testimonials h2 { margin-bottom: 58px; }
  .vv-review-row > .col { padding: 0 15px 54px; }
  .vv-quote { margin: 0 auto; max-width: 320px; }

  .vv-usa { min-height: 626px; padding: 112px 20px !important; }
  .vv-usa h2 { font-size: 28px; line-height: 42px; margin-top: 20px; }
  .vv-usa p { font-size: 20px; line-height: 33px; margin-bottom: 0; }
  .vv-flag { width: 200px; }

  .vv-newsletter { min-height: 358px; padding: 32px 20px !important; }
  .vv-newsletter-row { min-height: 294px; }
  .vv-newsletter .col-inner { margin: 0 auto; max-width: 350px; }
  .vv-email-row { display: block; max-width: 350px; }
  .vv-email-row input,
  .vv-email-row button { display: block; height: 49.2px; width: 100%; }
  .vv-email-row button { margin-top: 12px; }

  .vv-legal-footer { min-height: 971px; padding: 104px 20px 48px !important; }
  .vv-legal-footer .col { padding-bottom: 40px; }
  .vv-legal-footer .vv-disclaimer-col {
    flex-basis: 100%;
    margin-left: 0;
    max-width: 100%;
    padding-right: 15px;
  }
  .vv-disclaimer { margin-left: -15px; max-width: none; padding: 12px; width: calc(100% + 30px); }
  .vv-copyright { margin-top: 12px; }
}

@media (min-width: 550px) and (max-width: 849px) {
  .vv-benefits,
  .vv-benefits-row { min-height: 494px; }
  .vv-benefits .col { padding-bottom: 0; }

  .vv-testimonials { min-height: 741px; }
  .vv-review-row > .col { padding-bottom: 0; }
}

/* Source-linked pages, blog, collection, and shared footer. */
body:not(.home) #footer { display: none; }
body:not(.home) .header-main { background: #fff; box-shadow: none; }
body:not(.home) .header-main,
body:not(.home) .header-main a,
body:not(.home) .header-main i { color: #25201d; }
body:not(.home) .header-wrapper { border-bottom: 1px solid #efefef; }

.vv-inner-page { background: #fff; min-height: 470px; padding: 54px 48px 112px; }
.vv-page-container { margin: 0 auto; max-width: 760px; }
.vv-inner-page h1,
.vv-inner-page .shopify-policy__title h1,
.vv-blog-page > .vv-page-container > h1 {
  color: var(--vv-text);
  font-size: 35.1824px;
  font-weight: 400;
  letter-spacing: 1.759px;
  line-height: 49.2554px;
  margin: 0 0 48px;
  text-align: center;
  text-transform: uppercase;
}
.vv-page-content h1,
.vv-page-content h2,
.vv-page-content h3,
.vv-page-content h4 { color: var(--vv-text); font-weight: 400; letter-spacing: .04em; }
.vv-page-content h1 { font-size: 28px; line-height: 1.4; }
.vv-page-content h2 { font-size: 24px; line-height: 1.45; }
.vv-page-content h3 { font-size: 20px; line-height: 1.5; }
.vv-page-content h4 { font-size: 16px; line-height: 1.65; }
.vv-page-content p,
.vv-page-content li { color: var(--vv-text); }
.vv-page-content a { color: var(--vv-red); text-decoration: underline; }
.vv-page-content img { height: auto; margin: 24px auto; max-width: 100%; }

.vv-page-contact .vv-page-container { max-width: 1200px; }
.vv-faq { border-top: 1px solid #dedede; }
.vv-faq details { border-bottom: 1px solid #dedede; }
.vv-faq summary {
  color: var(--vv-text);
  cursor: pointer;
  font-size: 16px;
  list-style: none;
  padding: 22px 52px 22px 28px;
  position: relative;
  text-align: left;
}
.vv-faq summary::-webkit-details-marker { display: none; }
.vv-faq summary::after { content: "+"; font-size: 24px; font-weight: 300; position: absolute; right: 28px; top: 14px; }
.vv-faq details[open] summary::after { content: "−"; }
.vv-faq-answer { padding: 0 28px 24px; text-align: left; }
.vv-faq-answer p:last-child { margin-bottom: 0; }

.vv-blog-page .vv-page-container { max-width: 1400px; }
.vv-blog-grid { display: grid; gap: 56px 30px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vv-blog-card { margin: 0; }
.vv-blog-card:first-child { align-items: center; display: grid; gap: 48px; grid-column: 1 / -1; grid-template-columns: 1.35fr 1fr; }
.vv-blog-card__image { background: var(--vv-product-bg); display: block; overflow: hidden; }
.vv-blog-card__image img { aspect-ratio: 1.45 / 1; display: block; height: 100%; object-fit: cover; transition: transform .35s ease; width: 100%; }
.vv-blog-card__image:hover img { transform: scale(1.03); }
.vv-blog-card h2 { color: var(--vv-text); font-size: 17px; font-weight: 400; letter-spacing: .75px; line-height: 1.55; margin: 22px 0 12px; text-transform: uppercase; }
.vv-blog-card:first-child h2 { font-size: 28px; }
.vv-blog-card h2 a { color: inherit; }
.vv-blog-card p { margin-bottom: 12px; }
.vv-read-more { color: var(--vv-red); font-size: 14px; text-transform: uppercase; }
.vv-pagination { display: flex; gap: 20px; justify-content: center; margin-top: 72px; }
.vv-pagination a,
.vv-pagination span { color: var(--vv-text); padding: 8px; }
.vv-pagination span { color: var(--vv-red); }

.vv-global-footer { background: var(--vv-footer); color: rgba(255, 255, 255, .65); padding: 96px 0 42px 48px; }
.vv-global-footer__inner { display: grid; gap: 34px 60px; grid-template-columns: 4fr 5fr; margin: 0 auto; max-width: 1400px; }
.vv-global-footer__links { display: grid; gap: 50px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vv-global-footer h3 { color: #fff; font-size: 16px; font-weight: 400; line-height: 26.4px; margin: 0 0 16px; }
.vv-global-footer p,
.vv-global-footer a { color: rgba(255, 255, 255, .65); }
.vv-global-footer__disclaimer {
  border: 1px solid #565656;
  box-sizing: border-box;
  justify-self: end;
  max-width: 560px;
  padding: 12px;
  text-align: left;
  width: 100%;
}
.vv-global-footer__disclaimer p { font-size: 12.96px; line-height: 21.384px; margin: 0; }
.vv-global-footer__social { display: flex; gap: 20px; }
.vv-global-footer__copyright { font-size: 11px; grid-column: 1 / -1; letter-spacing: .55px; margin: 20px 0 0; text-transform: uppercase; }

.archive.woocommerce .shop-page-title { background: #fff; padding: 48px 0 30px; }
.archive.woocommerce .shop-page-title .page-title-inner { min-height: 0; }
.archive.woocommerce .shop-page-title .page-title { color: var(--vv-red); font-size: 40.078px; font-weight: 400; letter-spacing: 2.004px; line-height: 52.1015px; text-align: center; text-transform: uppercase; width: 100%; }
.archive.woocommerce .shop-page-title .is-divider,
.archive.woocommerce .woocommerce-breadcrumb { display: none; }
.archive.woocommerce .shop-container { max-width: 1400px; padding: 45px 48px 110px; }
.archive.woocommerce .products { margin-left: -10px; margin-right: -10px; }
.archive.woocommerce .product-small .box-image { background: var(--vv-product-bg); }
.archive.woocommerce .product-small .box-text { padding: 22px 20px 30px; text-align: center; }
.archive.woocommerce .product-small .product-title a { color: var(--vv-red); font-size: 15.6px; font-weight: 400; letter-spacing: .78px; line-height: 26.52px; text-transform: uppercase; }
.archive.woocommerce .product-small .price { color: var(--vv-text); font-size: 16px; }
.archive.woocommerce .product-small .add-to-cart-button a { background: transparent; border: 1px solid var(--vv-red); color: var(--vv-red); font-weight: 400; }
.single-post .article-inner,
.single-post .article-inner .entry-content { margin-left: auto; margin-right: auto; max-width: 800px; }

@media (max-width: 849px) {
  .vv-inner-page { padding: 44px 20px 80px; }
  .vv-inner-page h1,
  .vv-inner-page .shopify-policy__title h1,
  .vv-blog-page > .vv-page-container > h1 { font-size: 26.152px; letter-spacing: 1.308px; line-height: 39.228px; margin-bottom: 36px; }
  .vv-page-content h1 { font-size: 23px; }
  .vv-faq summary { padding-left: 4px; padding-right: 36px; }
  .vv-faq summary::after { right: 4px; }
  .vv-faq-answer { padding-left: 4px; padding-right: 4px; }
  .vv-blog-grid { display: block; }
  .vv-blog-card,
  .vv-blog-card:first-child { display: block; margin-bottom: 54px; }
  .vv-blog-card:first-child h2 { font-size: 20px; }
  .vv-global-footer { padding: 84px 20px 42px; }
  .vv-global-footer__inner,
  .vv-global-footer__links { display: block; }
  .vv-global-footer__links > div { margin-bottom: 38px; }
  .vv-global-footer__disclaimer { margin-top: 20px; }
  .vv-global-footer__social { margin-top: 28px; }
  .archive.woocommerce .shop-page-title { padding-top: 36px; }
  .archive.woocommerce .shop-page-title .page-title { font-size: 28.79px; line-height: 43.185px; }
  .archive.woocommerce .shop-container { padding: 30px 20px 80px; }
}
