/*
 Theme Name:   iqosterea Child
 Theme URI:    https://iqosterea.com/
 Description:  Astra child theme for the iqosterea store.
 Author:       iqosterea
 Template:     astra
 Version:     1.1.29
 Text Domain:  iqosterea-child
*/

/* Design tokens */
:root {
  --ev-dark: #06392b;
  --ev-dark-2: #0b5138;
  --ev-primary: #06392b;
  --ev-primary-dark: #0b5f44;
  --ev-accent: #0d7a55;
  --ev-text: #354b42;
  --ev-muted: #5f7a6f;
  --ev-bg-soft: #f1f7f3;
  --ev-whatsapp: #25d366;
  --ev-line: #d9ece2;
  --ev-tint: #e9f4ee;
}

/*
 * Astra's global palette.
 * Astra still ships its factory blue (#04d286) as --ast-global-color-0/1 and
 * prints it on :root in its per-request customizer CSS. That block is emitted
 * before this stylesheet, so re-declaring the same variables here wins at
 * equal specificity and repaints every link, button and block colour that
 * still points at the stock palette. Elementor mirrors the same palette into
 * --e-global-color-astglobalcolorN, so those are overridden too.
 */
:root {
  --ast-global-color-0: #06392b; /* links, primary actions */
  --ast-global-color-1: #0b5f44; /* link hover */
  --ast-global-color-2: #06392b; /* headings */
  --ast-global-color-3: #354b42; /* body text */
  --ast-global-color-4: #ffffff; /* white */
  --ast-global-color-5: #eff5f1; /* soft background */
  --ast-global-color-6: #04120d; /* dark surface */
  --ast-global-color-7: #d1dbd8; /* light border */
  --ast-global-color-8: #04120d; /* dark surface */
}

/*
 * Scroll-to-top button.
 * Astra paints #ast-scroll-top with --ast-global-color-0; the token above
 * already repaints it, and the !important is kept as a belt-and-braces
 * override in case Astra emits a later rule for this element.
 */
#ast-scroll-top {
  background-color: var(--ev-primary) !important;
  /* Astra ships a 2px square corner; the floating action buttons on this site
     are circles. Width and height are both 2.1em, so 50% gives a true circle. */
  border-radius: 50% !important;
}
#ast-scroll-top:hover,
#ast-scroll-top:focus {
  background-color: var(--ev-primary-dark) !important;
}

/*
 * Safety net: unbreakable strings (email addresses, URLs) inside icon-list
 * rows have a large min-content width and are the one thing that can push a
 * narrow footer/header column past the viewport, causing a horizontal scrollbar.
 * Letting them break only when they genuinely don't fit keeps the page flush
 * at every width without changing anything visually where there is room.
 */
.elementor-icon-list-items .elementor-icon-list-text {
  overflow-wrap: anywhere;
  min-width: 0;
}

/* ==========================================================================
   CONTENT DESIGN LAYER
   --------------------------------------------------------------------------
   Cascade order on this site, front to back:
     1. this stylesheet          (wp_print_styles, wp_head priority 8)
     2. Astra customizer CSS     (wp_head priority 10, generated per request)
     3. ev-child-styles block    (functions.php, wp_head priority 20)
   Everything below therefore lands FIRST, so a declaration that replaces an
   existing theme or child-theme rule carries both `!important` and an extra
   context prefix (`body`, `body.single-post`, `:has(...)`) so it wins on
   cascade order AND specificity. Selectors that nothing else in the theme
   touches are left plain on purpose.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. SINGLE POST — full-width shell
   Astra pins single posts inside a narrow centred column on
   `.ast-narrow-container` sites (inc/modules/posts-structures/css/
   single-dynamic.css.php), which on a desktop screen leaves the article
   floating in a wide gutter. Single posts are meant to run full screen.
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  body.single-post .site-content > .ast-container {
    max-width: 100% !important;
    padding-left: clamp(16px, 3vw, 56px) !important;
    padding-right: clamp(16px, 3vw, 56px) !important;
  }
}

/* The article now spans the viewport, so the gutter colour would otherwise
   show as thin bands top/left/right of a full-bleed white page. */
body.single-post .site-content {
  background: #ffffff !important;
}

body.single-post .site-content #primary {
  padding-top: clamp(22px, 2.4vw, 40px) !important;
  padding-bottom: clamp(34px, 4vw, 64px) !important;
}

body.single-post article.post {
  padding: clamp(20px, 2.6vw, 46px) clamp(16px, 3vw, 52px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Full-bleed shell, readable measure: the box is the screen, the column is
   the article. 920px keeps lines near 78 characters at the body size below. */
body.single-post .ast-post-format- {
  max-width: 920px;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.single-post .entry-header,
body.single-post .entry-content,
body.single-post .comments-area {
  max-width: 920px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --------------------------------------------------------------------------
   2. SINGLE POST — masthead, byline, breadcrumb
   -------------------------------------------------------------------------- */
body.single-post .entry-header .entry-title {
  font-size: clamp(30px, 3.4vw, 50px) !important;
  line-height: 1.14 !important;
  letter-spacing: -0.022em !important;
  font-weight: 800 !important;
  color: var(--ev-dark) !important;
  margin: 0 0 clamp(16px, 1.8vw, 26px) !important;
}

/* Astra renders its own "By … / date" row while the child theme renders the
   richer .ev-byline card (avatar, author, publish date, category) directly
   below it. Same information, two styles, stacked: drop the plain one. */
body.single-post .site-content header.entry-header > .entry-meta {
  display: none !important;
}

/* Breadcrumb trail (Yoast SEO, printed by the child theme — see functions.php).
   Its trailing item repeats the H1 verbatim, so it is dropped in PHP before
   Yoast joins the crumbs and the trail resolves to "Home › Blog › Category".
   Yoast wraps every crumb in a span; the separators are the spans added by
   the wpseo_breadcrumb_separator filter. */
body .ev-crumbs {
  display: block !important;
  font-size: 12.5px !important;
  line-height: 1.7 !important;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ev-muted) !important;
  margin: 0 0 18px !important;
}
body .ev-crumbs a {
  color: var(--ev-muted) !important;
  text-decoration: none !important;
}
body .ev-crumbs a:hover {
  color: var(--ev-primary) !important;
}
body .ev-crumbs .ev-crumbs-sep {
  color: #c9dcd2 !important;
  margin: 0 4px !important;
}
body .ev-crumbs > span:first-child {
  display: inline !important;
}

/* Both live in the priority-20 ev-child-styles block, which prints after this
   stylesheet, so they need the extra context to win. */
body.single-post .ev-byline {
  margin-bottom: 20px !important;
}
body.single-post .ev-author-box {
  margin-top: 32px !important;
}

/*
 * Featured-image hero. Injected at the_content priority 3, so it sits between
 * the byline and the first paragraph, inside the article column and aligned
 * with the text and the table of contents.
 */
body.single-post .entry-content > .ev-hero {
  margin: 2px 0 26px !important;
  max-width: 100% !important;
  width: 100% !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  border: 1px solid var(--ev-line) !important;
  background: #ffffff !important;
}
body.single-post .entry-content > .ev-hero img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;
}

/* --------------------------------------------------------------------------
   3. SINGLE POST — article typography
   -------------------------------------------------------------------------- */
body.single-post .entry-content {
  font-size: 17.5px !important;
  line-height: 1.78 !important;
  color: var(--ev-text) !important;
}

body.single-post .entry-content > p {
  margin: 0 0 16px !important;
}

/* The opening paragraph carries the direct answer; make it the deck. */
body.single-post .entry-content > p:first-of-type {
  font-size: clamp(18px, 1.4vw, 20px) !important;
  line-height: 1.7 !important;
  color: var(--ev-dark-2) !important;
}

body.single-post .entry-content strong,
body.single-post .entry-content b {
  color: var(--ev-dark) !important;
  font-weight: 700 !important;
}
body.single-post .entry-content em,
body.single-post .entry-content i {
  color: #4a5f56;
}

body.single-post .entry-content h2 {
  font-size: clamp(23px, 2vw, 30px) !important;
  line-height: 1.28 !important;
  letter-spacing: -0.015em !important;
  font-weight: 800 !important;
  color: var(--ev-dark) !important;
  margin: 40px 0 14px !important;
}

/* Section rule above every H2: the cheapest way to give a long guide a
   visible structure without adding markup to the published posts. */
body.single-post .entry-content > h2::before {
  content: "";
  display: block;
  width: 38px;
  height: 4px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--ev-primary), var(--ev-accent));
  margin-bottom: 16px;
}

body.single-post .entry-content h3 {
  font-size: clamp(18px, 1.5vw, 21px) !important;
  line-height: 1.42 !important;
  font-weight: 700 !important;
  color: var(--ev-dark-2) !important;
  margin: 28px 0 10px !important;
}

/* FAQ questions and other H3s get a slim gradient marker in place of a rule. */
body.single-post .entry-content > h3 {
  position: relative;
  padding-left: 18px;
}
body.single-post .entry-content > h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3em;
  bottom: 0.2em;
  width: 4px;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--ev-primary), var(--ev-accent));
}

body.single-post .entry-content h4,
body.single-post .entry-content h5 {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--ev-dark-2) !important;
  margin: 22px 0 8px !important;
}

/* Scoped to direct content children so the .ev-byline and .ev-author-box
   links keep their own (underline-free) styling. */
body.single-post .entry-content > p a,
body.single-post .entry-content > ul a,
body.single-post .entry-content > ol a,
body.single-post .entry-content > table a,
body.single-post .entry-content li a,
body.single-post .entry-content > h2 a,
body.single-post .entry-content > h3 a {
  color: var(--ev-primary-dark) !important;
  text-decoration: underline !important;
  text-decoration-color: #74dcb4 !important;
  text-decoration-thickness: 1.5px !important;
  text-underline-offset: 3px !important;
}
body.single-post .entry-content > p a:hover,
body.single-post .entry-content li a:hover,
body.single-post .entry-content > ul a:hover,
body.single-post .entry-content > ol a:hover {
  color: var(--ev-primary) !important;
  text-decoration-color: var(--ev-primary) !important;
}

/* --------------------------------------------------------------------------
   4. SINGLE POST — lists, tables, quotes
   -------------------------------------------------------------------------- */
body.single-post .entry-content ul,
body.single-post .entry-content ol {
  margin: 0 0 18px !important;
  padding-left: 0 !important;
  list-style: none !important;
}
body.single-post .entry-content ol {
  counter-reset: ev-item;
}
body.single-post .entry-content li {
  position: relative;
  padding-left: 34px;
  margin-bottom: 10px !important;
  line-height: 1.72;
}
body.single-post .entry-content > ul > li::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 0.72em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ev-primary);
}
body.single-post .entry-content > ol > li {
  counter-increment: ev-item;
}
body.single-post .entry-content > ol > li::before {
  content: counter(ev-item);
  position: absolute;
  left: 0;
  top: 0.2em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: var(--ev-tint);
  color: var(--ev-primary-dark);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1;
}

body.single-post .entry-content > table,
body.single-post .entry-content table {
  width: 100% !important;
  max-width: 100%;
  border-collapse: separate !important;
  border-spacing: 0;
  margin: 24px 0 10px !important;
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  background: #ffffff;
  border: 1px solid var(--ev-line);
  border-radius: 16px;
}
body.single-post .entry-content thead th {
  background: var(--ev-dark) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  text-align: left !important;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-size: 12.5px !important;
  padding: 13px 18px !important;
}
body.single-post .entry-content tbody th,
body.single-post .entry-content tbody td {
  padding: 13px 18px !important;
  border-top: 1px solid #e9f3ee;
  color: var(--ev-text) !important;
  vertical-align: top;
}
body.single-post .entry-content tbody tr:nth-child(even) td {
  background: #f7faf8;
}
/* `overflow` does not clip a table box, so the corners are rounded on the
   end cells instead of relying on the table element itself. */
body.single-post .entry-content thead th:first-child {
  border-top-left-radius: 15px;
}
body.single-post .entry-content thead th:last-child {
  border-top-right-radius: 15px;
}
body.single-post .entry-content tbody tr:last-child td:first-child {
  border-bottom-left-radius: 15px;
}
body.single-post .entry-content tbody tr:last-child td:last-child {
  border-bottom-right-radius: 15px;
}

/* Phones: a four-column comparison table cannot fit, so the table becomes
   its own horizontal scroller instead of widening the page. */
@media (max-width: 640px) {
  body.single-post .entry-content > table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

body.single-post .entry-content blockquote {
  margin: 24px 0 !important;
  padding: 2px 0 2px 24px !important;
  border-left: 4px solid var(--ev-primary) !important;
  color: #4a5f56 !important;
  font-size: 18px !important;
  line-height: 1.72 !important;
  font-style: normal !important;
}
body.single-post .entry-content blockquote p:last-child {
  margin-bottom: 0 !important;
}

/* --------------------------------------------------------------------------
   5. ARCHIVE CARDS (/guides/ and category archives)
   Astra's blog-layout-4 renders one full-width block per post with the
   category as a bare link, no thumb and no affordance. The posts have no
   featured images yet, so the card is carried by type and colour instead.
   :has() degrades to Astra's original single column in browsers without it.
   -------------------------------------------------------------------------- */
.ast-row:has(> article.post) {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 26px;
  align-items: stretch;
}
@media (min-width: 760px) {
  .ast-row:has(> article.post) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ast-row:has(> article.post) > article.post {
  width: auto !important;
  max-width: none !important;
  float: none !important;
  margin: 0 !important;
}
.ast-row:has(> article.post) > article.post .post-content {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}
/* Astra reserves a thumb slot even when no image is set, leaving a dead
   band above the category chip. */
.ast-row:has(> article.post) .ast-blog-featured-section:empty {
  display: none !important;
}

.ast-row:has(> article.post) > article.post .ast-article-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 26px 28px 24px !important;
  background: #ffffff !important;
  border: 1px solid var(--ev-line) !important;
  border-radius: 18px !important;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.ast-row:has(> article.post) > article.post .ast-article-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ev-primary), var(--ev-accent));
}
.ast-row:has(> article.post) > article.post .ast-article-inner:hover {
  transform: translateY(-4px);
  border-color: #c2e6d6 !important;
  box-shadow: 0 20px 40px -24px rgba(15, 42, 38,  0.5);
}

.ast-row:has(> article.post) .cat-links {
  display: inline-flex !important;
  align-items: center;
  align-self: flex-start;
  padding: 6px 13px !important;
  background: var(--ev-tint) !important;
  border-radius: 999px;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.07em;
  line-height: 1.5;
  text-transform: uppercase;
}
.ast-row:has(> article.post) .cat-links a {
  color: var(--ev-primary-dark) !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  text-decoration: none !important;
}

.ast-row:has(> article.post) .entry-title {
  margin: 16px 0 12px !important;
}
.ast-row:has(> article.post) .entry-title,
.ast-row:has(> article.post) .entry-title a {
  font-size: 21px !important;
  line-height: 1.4 !important;
  letter-spacing: -0.01em !important;
  font-weight: 700 !important;
}
.ast-row:has(> article.post) .entry-title a {
  color: var(--ev-dark) !important;
  text-decoration: none !important;
  transition: color 0.18s ease;
}
.ast-row:has(> article.post) .entry-title a::after {
  content: " \2192";
  display: inline-block;
  color: var(--ev-primary);
  opacity: 0;
  transform: translateX(-5px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.ast-row:has(> article.post) > article.post .ast-article-inner:hover .entry-title a {
  color: var(--ev-primary) !important;
}
.ast-row:has(> article.post) > article.post .ast-article-inner:hover .entry-title a::after {
  opacity: 1;
  transform: none;
}

.ast-row:has(> article.post) .entry-header {
  margin: 0 !important;
}
.ast-row:has(> article.post) .entry-meta {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: var(--ev-muted) !important;
}
.ast-row:has(> article.post) .entry-meta a {
  color: #4a5f56 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.ast-row:has(> article.post) .entry-meta a:hover {
  color: var(--ev-primary) !important;
}

.ast-row:has(> article.post) .ast-excerpt-container {
  margin: 14px 0 0 !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: #4a5f56 !important;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ast-row:has(> article.post) .ast-excerpt-container p {
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   6. SEARCH
   Markup comes from the [ev_search] shortcode: a .ev-search-form wrapper, one
   .ev-search capsule holding the field and a circular submit button with a
   magnifier glyph. The live product suggestions are appended to the wrapper
   by functions.php, so the wrapper is the positioning context. The grey band
   is the Elementor container that owns the widget, matched structurally so
   re-saving the header template cannot orphan it.
   -------------------------------------------------------------------------- */
.e-con:has(> .elementor-widget .ev-search-form) {
  background: linear-gradient(180deg, #f6fbf8 0%, #eaf4ef 100%) !important;
  border-bottom: 1px solid #e3f0e9;
}

body .ev-search-form {
  position: relative;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
}

/* One joined capsule at every width. */
body .ev-search-form .ev-search {
  display: flex;
  align-items: center;
  gap: 0;
  background: #ffffff;
  border: 1px solid var(--ev-line);
  border-radius: 999px;
  padding: 5px 5px 5px 20px;
  box-shadow: 0 2px 10px rgba(6, 57, 43, 0.06);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
body .ev-search-form .ev-search:focus-within {
  border-color: #7fd6b2;
  box-shadow: 0 6px 22px rgba(6, 57, 43, 0.14), 0 0 0 4px rgba(6, 57, 43, 0.06);
}

body .ev-search-form input[type="search"],
body .ev-search-form input.ev-search-field {
  flex: 1 1 auto;
  min-width: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 11px 12px 11px 0 !important;
  font-size: 15px !important;
  line-height: 1.45;
  color: var(--ev-dark) !important;
  outline: none;
}
body .ev-search-form input::placeholder {
  color: #8aa59b !important;
  opacity: 1;
}
body .ev-search-form input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

body .ev-search-form button,
body .ev-search-form button[type="submit"],
body .ev-search-form .ev-search-submit {
  flex: 0 0 42px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: var(--ev-dark) !important;
  color: #ffffff !important;
  border: 0;
  border-radius: 50% !important;
  padding: 0 !important;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(6, 57, 43, 0.18);
  transition: background 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
}
body .ev-search-form .ev-search-submit-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
body .ev-search-form .ev-search-submit::before {
  content: "";
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20.5 20.5-4.2-4.2'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20.5 20.5-4.2-4.2'/></svg>") center / contain no-repeat;
}
body .ev-search-form button:hover,
body .ev-search-form button[type="submit"]:hover {
  background: var(--ev-primary-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(6, 57, 43, 0.22);
}
body .ev-search-form button:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(6, 57, 43, 0.18);
}
body .ev-search-form button:focus-visible {
  outline: 2px solid #7fd6b2;
  outline-offset: 3px;
}

/* Small phones: tighten the capsule and the circle a little more. */
@media (max-width: 560px) {
  body .ev-search-form .ev-search {
    padding: 4px 4px 4px 16px;
  }
  body .ev-search-form input[type="search"],
  body .ev-search-form input.ev-search-field {
    font-size: 14.5px !important;
    padding: 10px 8px 10px 0 !important;
  }
  body .ev-search-form .ev-search-submit {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
  body .ev-search-form .ev-search-submit::before {
    flex-basis: 16px;
    width: 16px;
    height: 16px;
  }
}

/* Search results heading (printed by woocommerce_archive_description). */
.ev-search-hero {
  margin: 4px 0 26px;
}
.ev-search-hero-kicker {
  display: inline-block;
  margin-bottom: 10px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #e7f4ee;
  color: #0b7a55;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.ev-search-hero-title {
  margin: 0 0 10px;
  color: var(--ev-dark);
  font-size: clamp(24px, 3.2vw, 34px);
  font-weight: 700;
  line-height: 1.15;
}
.ev-search-hero-title em {
  font-style: normal;
  color: #0b7a55;
}
.ev-search-hero-sub {
  margin: 0;
  color: #5b746c;
  font-size: 15px;
  line-height: 1.6;
}

/* --------------------------------------------------------------------------
   7. POSTS HUB HEADER (/guides/)
   -------------------------------------------------------------------------- */
body .ev-hub-header {
  margin: 0 0 36px !important;
}
body .ev-hub-title {
  margin: 0 0 16px !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
  font-weight: 800 !important;
}
body .ev-hub-intro {
  max-width: 78ch !important;
  font-size: 17px !important;
  line-height: 1.8 !important;
}
body .ev-hub-cats a {
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body .ev-hub-cats a:hover {
  background: var(--ev-tint) !important;
}

/* --------------------------------------------------------------------------
   8. AGE GATE PROMPT
   --------------------------------------------------------------------------
   The overlay and the card shell belong to the dispensary-age-verification
   plugin. The prompt inside them is an Elementor template
   (elementor_library, slug age-gate-prompt) injected through the plugin's
   avwp_before_popup_content hook, so this block is only plumbing: soften the
   backdrop, round the card, and hide the plugin's stock title / copy / buttons
   while the designed prompt is on screen.

   The hide rules stop matching the moment the plugin swaps the card's contents
   for its success or under-age message, so those two states still render.

   Button styling lives with the design itself, in the Elementor HTML widget. */

body .avwp-av-overlay {
  background: rgba(15, 42, 38,  0.93) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  cursor: default !important;
}
body .avwp-av {
  width: 440px !important;
  border-radius: 24px !important;
  box-shadow: 0 32px 80px rgba(2, 23, 22,  0.55) !important;
  text-align: center !important;
  border: 1px solid rgba(230, 242, 239,  0.9) !important;
}

/* Primary: only while the Elementor prompt is inside the card. */
body .avwp-av:has(.ev-ag-card) > h2,
body .avwp-av:has(.ev-ag-card) > p {
  display: none !important;
}
/* Fallback for engines without :has() — the injected wrapper is a sibling. */
body .avwp-av > .elementor ~ h2,
body .avwp-av > .elementor ~ p {
  display: none !important;
}

/*
 * The plugin's .avwp-av p / h2 rules are generic enough to out-rank Elementor's
 * generated selectors. Hand the values back rather than hard-coding them, so
 * the typography stays editable in Elementor.
 */
body .avwp-av .elementor-widget-text-editor p {
  color: inherit !important;
  line-height: inherit !important;
}
body .avwp-av .elementor-widget-heading h2 {
  padding-bottom: 0;
}
/* .e-con-full pins the badge to full width; a pill needs to shrink-wrap. */
body .avwp-av .ev-ag-badge {
  width: auto;
  max-width: 100%;
}

@media (max-width: 500px) {
  body .avwp-av {
    width: calc(100vw - 24px) !important;
    margin: 0 !important;
    padding: 26px 20px !important;
  }
}

/*
 * Homepage hero CTA.
 * The hero panel uses the dark brand artwork as its background, so a
 * --ev-primary (navy) button would disappear into it. Step the fill up to the
 * lighter brand blue for anything placed on that panel.
 */
.elementor-element-ev1002257 .elementor-button {
  background-color: #0b5f44 !important;
  border-color: #0b5f44 !important;
}
.elementor-element-ev1002257 .elementor-button:hover,
.elementor-element-ev1002257 .elementor-button:focus {
  background-color: #0d7a55 !important;
  border-color: #0d7a55 !important;
}

/*
 * IQOS TEREA rebrand additions
 */

/* Hide the retired demo brand tiles in the homepage brand strip. */
.ev-hide {
  display: none !important;
}

/* Secondary hero CTA: glass/outline button so the two CTAs read differently. */
.elementor-element-ev1002257 .elementor-element-ev1002183 .elementor-button {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
.elementor-element-ev1002257 .elementor-element-ev1002183 .elementor-button:hover,
.elementor-element-ev1002257 .elementor-element-ev1002183 .elementor-button:focus {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  color: #06392b !important;
}

/* Brand wordmark in header + footer */
.elementor-element-hv2000371 .elementor-heading-title,
.elementor-element-ev1001184 .elementor-heading-title {
  letter-spacing: -0.02em;
}

/* Dropdown menus: brand-blue hover rail */
ul.ev-nav-menu ul.sub-menu a {
  border-radius: 7px;
}
ul.ev-nav-menu ul.sub-menu a:hover {
  background: #e9f4ee;
  color: #06392b;
}

/*
 * Brand strip — navy gradient brand cards, rebuilt in Elementor
 * (kicker + wordmark + line list + pill). The card surface and glow
 * overlays live here; text colors and sizes come from the widget data.
 */
.elementor-70 .ev-brand-strip > .e-con {
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 18px 38px -26px rgba(2, 40, 35,  0.55);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.elementor-70 .ev-brand-strip > .e-con::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(640px 360px at 88% -12%, rgba(78, 207, 164,  0.4), transparent 65%),
    radial-gradient(520px 320px at 0% 115%, rgba(13, 122, 85,  0.5), transparent 60%);
  pointer-events: none;
}
.elementor-70 .ev-brand-strip > .e-con:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 48px -26px rgba(2, 40, 35,  0.6);
}
.elementor-70 .ev-brand-strip .elementor-widget-heading .elementor-heading-title {
  margin: 0;
  position: relative;
}
.elementor-70 .ev-brand-strip .elementor-widget-text-editor {
  position: relative;
  margin: 0;
  padding: 4px 16px 0;
}
.elementor-70 .ev-brand-strip .elementor-widget-text-editor p {
  margin: 0;
}
.elementor-70 .ev-brand-strip .evb-sub {
  margin-bottom: 6px !important;
  font-size: 17px;
  font-weight: 600;
  color: #d5ebe1;
}
.elementor-70 .ev-brand-strip .evb-lines {
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #93e8d2;
}
.elementor-70 .ev-brand-strip .elementor-widget-button {
  position: relative;
  margin-top: auto;
  padding: 24px 0 0;
}
.elementor-70 .ev-brand-strip .elementor-button {
  background: linear-gradient(160deg, #4ecfa4 0%, #0d9f70 100%);
  border-radius: 999px;
  padding: 15px 40px;
  min-width: 62%;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 26px -12px rgba(13, 159, 112,  0.65);
  transition: filter 0.18s ease, transform 0.18s ease;
}
.elementor-70 .ev-brand-strip .elementor-button:hover,
.elementor-70 .ev-brand-strip .elementor-button:focus {
  filter: brightness(1.07);
  transform: translateY(-1px);
}
@media (max-width: 767px) {
  .elementor-70 .ev-brand-strip .elementor-widget-button {
    padding-top: 18px;
  }
  .elementor-70 .ev-brand-strip .elementor-button {
    min-width: 70%;
    padding: 13px 26px;
    font-size: 16px;
    white-space: nowrap;
  }
  .elementor-70 .ev-brand-strip .evb-sub {
    font-size: 15px;
  }
  .elementor-70 .ev-brand-strip .evb-lines {
    font-size: 11.5px;
  }
}

/*
 * Legacy device grid — white product cards.
 * The data layer owns content (names, links, pill geometry); the card chrome,
 * gradient fills and spacing live here. Tile flex gap is 0, so every gap in
 * this block is the single source of truth for spacing.
 */
.elementor-70 .ev-terea-grid .elementor-widget-image,
.elementor-70 .ev-terea-grid .elementor-widget-image > a {
  width: 100% !important;
  display: block !important;
}
.elementor-70 .ev-terea-grid .elementor-widget-image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

.elementor-70 .ev-terea-grid > .e-con {
  background: #ffffff;
  border: 1px solid #ddeee6;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 38px -26px rgba(2, 40, 35,  0.4);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.elementor-70 .ev-terea-grid > .e-con:hover {
  transform: translateY(-4px);
  border-color: #c2e6d6;
  box-shadow: 0 26px 48px -26px rgba(2, 40, 35,  0.45);
}

.elementor-70 .ev-terea-grid .elementor-widget-heading {
  padding: 20px 14px 0;
}
.elementor-70 .ev-terea-grid .elementor-widget-heading .elementor-heading-title {
  margin: 0;
}

/* margin-top: auto pins the CTA to the card foot on stretched grid rows. */
.elementor-70 .ev-terea-grid .elementor-widget-button {
  margin-top: auto;
  padding: 16px 14px 24px;
}
.elementor-70 .ev-terea-grid .elementor-button {
  background: linear-gradient(160deg, #4ecfa4 0%, #0d9f70 100%);
  border-radius: 999px;
  padding: 16px 32px;
  min-width: 76%;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 26px -12px rgba(13, 159, 112,  0.55);
  transition: filter 0.18s ease, transform 0.18s ease;
}
.elementor-70 .ev-terea-grid .ev-accent-pink .elementor-button {
  background: linear-gradient(160deg, #ff6b93 0%, #e42a5f 100%);
  box-shadow: 0 14px 26px -12px rgba(228, 42, 95, 0.5);
}
.elementor-70 .ev-terea-grid .elementor-button:hover,
.elementor-70 .ev-terea-grid .elementor-button:focus {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

/* Two-column mobile grid: ~165px cards, so the pill tightens up. */
@media (max-width: 767px) {
  .elementor-70 .ev-terea-grid .elementor-widget-heading {
    padding-top: 14px;
  }
  .elementor-70 .ev-terea-grid .elementor-widget-button {
    padding: 12px 10px 18px;
  }
  .elementor-70 .ev-terea-grid .elementor-button {
    min-width: 82%;
    padding: 12px 12px;
    font-size: 15px;
    white-space: nowrap;
  }
}

/*
 * Legacy device grid variant — the same white-card language, applied
 * to the two flex rows that hold the eight line cards. The composited line
 * tiles carry their own soft background, so the artwork is contained rather
 * than full-bleed.
 */
.elementor-70 .ev-flavors-grid .elementor-widget-image,
.elementor-70 .ev-flavors-grid .elementor-widget-image > a {
  width: 100% !important;
  display: block !important;
}
.elementor-70 .ev-flavors-grid .elementor-widget-image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

.elementor-70 .ev-flavors-grid > .e-con {
  background: #ffffff;
  border: 1px solid #ddeee6;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 38px -26px rgba(2, 40, 35,  0.4);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.elementor-70 .ev-flavors-grid > .e-con:hover {
  transform: translateY(-4px);
  border-color: #c2e6d6;
  box-shadow: 0 26px 48px -26px rgba(2, 40, 35,  0.45);
}

.elementor-70 .ev-flavors-grid .elementor-widget-heading {
  padding: 18px 14px 0;
}
.elementor-70 .ev-flavors-grid .elementor-widget-heading .elementor-heading-title {
  margin: 0;
}

.elementor-70 .ev-flavors-grid .elementor-widget-text-editor {
  margin: 0;
  padding: 6px 18px 0;
}
.elementor-70 .ev-flavors-grid .elementor-widget-text-editor p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: #5f7a6f;
}

.elementor-70 .ev-flavors-grid .elementor-widget-button {
  margin-top: auto;
  padding: 14px 14px 22px;
}
.elementor-70 .ev-flavors-grid .elementor-button {
  background: linear-gradient(160deg, #4ecfa4 0%, #0d9f70 100%);
  border-radius: 999px;
  padding: 13px 26px;
  min-width: 74%;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 26px -12px rgba(13, 159, 112,  0.55);
  transition: filter 0.18s ease, transform 0.18s ease;
}
.elementor-70 .ev-flavors-grid .elementor-button:hover,
.elementor-70 .ev-flavors-grid .elementor-button:focus {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

/*
 * Footer icon lists. The Astra global-palette override above repaints the
 * Elementor global colors in brand navy, and the footer's icon-list glyphs
 * (chevrons, pin, phone, envelope, clock) reference that palette — so they
 * render navy-on-navy and vanish. Scope a muted blue to the footer only;
 * hover lifts to near-white. !important mirrors the belt-and-braces pattern
 * used for every palette override in this file.
 */
footer .elementor-widget-icon-list .elementor-icon-list-icon svg,
footer .elementor-widget-icon-list .elementor-icon-list-icon i {
  fill: #94cbb9 !important;
  color: #94cbb9 !important;
}
footer .elementor-widget-icon-list .elementor-icon-list-item:hover .elementor-icon-list-icon svg,
footer .elementor-widget-icon-list .elementor-icon-list-item:hover .elementor-icon-list-icon i {
  fill: #ffffff !important;
  color: #ffffff !important;
}

/*
 * Header announcement bar — slim variant. The bar is the container holding
 * the .ev-promo-msg ticker plus prev/next arrows; it is matched structurally
 * (not by Elementor id) so re-saving the header template cannot orphan it.
 * Default render was 58px (11px padding + 15px text + 22px arrows); this
 * trims it to roughly 32px.
 */
.e-con:has(> .elementor-widget .ev-promo-msg) {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
  gap: 14px !important;
}
.e-con:has(> .elementor-widget .ev-promo-msg) .ev-promo-msg {
  font-size: 13px !important;
  line-height: 1.5 !important;
}
/* The two arrow widgets flank the ticker; their glyph size follows font-size. */
.e-con:has(> .elementor-widget .ev-promo-msg) > .elementor-widget:not(:has(.ev-promo-msg)) {
  font-size: 15px;
  line-height: 1;
}
@media (max-width: 767px) {
  .e-con:has(> .elementor-widget .ev-promo-msg) {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    gap: 10px !important;
  }
  .e-con:has(> .elementor-widget .ev-promo-msg) .ev-promo-msg {
    font-size: 12px !important;
  }
  .e-con:has(> .elementor-widget .ev-promo-msg) > .elementor-widget:not(:has(.ev-promo-msg)) {
    font-size: 13px;
  }
}

/*
 * CART PAGE — the cart/checkout pages use the WooCommerce block cart, whose
 * defaults render flat grey boxes. Restyled to the site language: two white
 * cards (items + totals), navy type, pill quantity stepper, gradient CTA.
 */
body.woocommerce-cart .wc-block-components-sidebar-layout {
  gap: 26px;
  align-items: start;
}
body.woocommerce-cart .wc-block-cart__main {
  background: #ffffff;
  border: 1px solid #ddeee6;
  border-radius: 20px;
  padding: 4px 26px 10px;
  box-shadow: 0 18px 38px -26px rgba(2, 40, 35,  0.35);
}
body.woocommerce-cart .wc-block-cart__sidebar {
  background: #ffffff;
  border: 1px solid #ddeee6;
  border-radius: 20px;
  padding: 6px 22px 18px;
  box-shadow: 0 18px 38px -26px rgba(2, 40, 35,  0.35);
}

/* Items table */
body.woocommerce-cart .wc-block-cart-items {
  border: 0;
}
body.woocommerce-cart .wc-block-cart-items__header {
  border-bottom: 1px solid #ddeee6;
  padding: 16px 4px 10px;
}
body.woocommerce-cart .wc-block-cart-items__header th .wc-block-components-table__header,
body.woocommerce-cart .wc-block-cart-items__header th span {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #91a89e;
}
body.woocommerce-cart .wc-block-cart-items__row {
  padding: 22px 4px;
  border-bottom: 1px solid #e9f3ee;
}
body.woocommerce-cart .wc-block-cart-items__row:last-child {
  border-bottom: 0;
}
body.woocommerce-cart .wc-block-cart-item__image img {
  border: 1px solid #ddeee6;
  border-radius: 12px;
  background: #ffffff;
}
body.woocommerce-cart .wc-block-cart-item__product-name a,
body.woocommerce-cart .wc-block-cart-item__product-name {
  color: #06392b;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.4;
}
body.woocommerce-cart .wc-block-cart-item__product-name a:hover {
  color: #0b5f44;
}
body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-cart .wc-block-components-product-metadata__description {
  color: #5f7a6f;
  font-size: 13.5px;
  line-height: 1.55;
}
body.woocommerce-cart .wc-block-components-product-price {
  color: #06392b;
  font-weight: 700;
}

/* Quantity stepper: pill instead of the grey box */
body.woocommerce-cart .wc-block-components-quantity-selector {
  border: 1px solid #d9ece2;
  border-radius: 999px;
  background: #f7faf8;
  overflow: hidden;
}
body.woocommerce-cart .wc-block-components-quantity-selector__input {
  font-weight: 700;
  color: #06392b;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button {
  color: #0b5f44;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button:hover,
body.woocommerce-cart .wc-block-components-quantity-selector__button:focus {
  color: #0d9f70;
}
body.woocommerce-cart .wc-block-cart-item__remove-link {
  color: #91a89e !important;
  font-size: 12.5px;
  letter-spacing: 0.02em;
  transition: color 0.15s ease;
}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
  color: #e11d48 !important;
}

/* Totals sidebar */
body.woocommerce-cart .wc-block-cart__totals-title {
  font-size: 18px;
  font-weight: 800;
  color: #06392b;
}
body.woocommerce-cart .wc-block-components-totals-coupon {
  border-bottom: 1px dashed #ddeee6;
  padding-bottom: 10px;
}
body.woocommerce-cart .wc-block-components-panel__button,
body.woocommerce-cart .wc-block-components-panel__button:hover {
  color: #0b5f44;
  font-weight: 600;
}
body.woocommerce-cart .wc-block-components-totals-coupon__input input {
  border: 1px solid #d9ece2;
  border-radius: 10px;
  padding: 10px 12px;
  background: #f7faf8;
}
body.woocommerce-cart .wc-block-components-totals-coupon__input input:focus {
  border-color: #74dcb4;
}
body.woocommerce-cart .wc-block-components-totals-coupon button.wc-block-components-button {
  background: #06392b;
  color: #ffffff;
  border-radius: 10px;
}
body.woocommerce-cart .wc-block-components-totals-item {
  padding: 5px 0;
}
body.woocommerce-cart .wc-block-components-totals-item__label {
  color: #354b42;
}
body.woocommerce-cart .wc-block-components-totals-item__value {
  color: #06392b;
  font-weight: 700;
}
/* Estimated total: a tinted receipt strip */
body.woocommerce-cart .wc-block-components-totals-footer-item {
  background: #f2f8f4;
  border: 1px solid #ddeee6;
  border-radius: 14px;
  padding: 14px 16px !important;
  margin-top: 8px;
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-size: 16px;
  font-weight: 700;
  color: #06392b;
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 24px;
  font-weight: 800;
}

/* Proceed to Checkout: the gradient pill used across the store */
body.woocommerce-cart .wc-block-cart__submit-button {
  background: linear-gradient(160deg, #4ecfa4 0%, #0d9f70 100%) !important;
  color: #ffffff !important;
  border-radius: 999px !important;
  min-height: 56px;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 26px -12px rgba(13, 159, 112,  0.55) !important;
  transition: filter 0.18s ease, transform 0.18s ease !important;
}
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:focus {
  filter: brightness(1.07);
  transform: translateY(-1px);
  color: #ffffff !important;
}

/* Keep the totals card alongside the items while scrolling on desktop */
@media (min-width: 1024px) {
  body.woocommerce-cart .wc-block-cart__sidebar {
    position: sticky;
    top: 250px;
  }
}

@media (max-width: 767px) {
  body.woocommerce-cart .wc-block-cart__main {
    padding: 0 14px 6px;
    border-radius: 18px;
  }
  body.woocommerce-cart .wc-block-cart__sidebar {
    padding: 4px 14px 14px;
    border-radius: 18px;
  }
  body.woocommerce-cart .wc-block-cart-items__row {
    padding: 16px 2px;
  }
  body.woocommerce-cart .wc-block-cart-item__product-name a,
  body.woocommerce-cart .wc-block-cart-item__product-name {
    font-size: 14.5px;
  }
  body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 20px;
  }
}

/* Empty cart: the block shows the message + "New in store" grid; the hero
   panel (message, helper line, CTA) is wrapped in by functions.php. */
.ev-cart-empty-hero {
  background: linear-gradient(180deg, #f2f8f4 0%, #e3f0ea 100%);
  border: 1px solid #ddeee6;
  border-radius: 24px;
  padding: 44px 28px 42px;
  text-align: center;
  max-width: 760px;
  margin: 8px auto 10px;
}
.ev-cart-empty-hero .wc-block-cart__empty-cart__title {
  font-size: 26px;
  font-weight: 800;
  color: #06392b;
  line-height: 1.3;
  margin: 0 0 10px;
}
/* The block paints its empty-cart glyph as a plain navy square via ::before.
   Replace it with a cart badge: white circle, navy cart line-icon. */
.ev-cart-empty-hero .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  display: block;
  width: 84px;
  height: 84px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background-color: #ffffff;
  border: 1px solid #d5ebe1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23011540' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E");
  background-size: 38px 38px;
  background-position: center;
  background-repeat: no-repeat;
}
.ev-cart-empty-sub {
  margin: 0 auto 24px !important;
  max-width: 46ch;
  font-size: 15px;
  line-height: 1.65;
  color: #5f7a6f;
}
.ev-cart-empty-cta {
  text-align: center;
  margin: 0;
}
.ev-cart-empty-btn {
  display: inline-block;
  background: linear-gradient(160deg, #4ecfa4 0%, #0d9f70 100%);
  color: #ffffff !important;
  border-radius: 999px;
  padding: 14px 38px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  box-shadow: 0 14px 26px -12px rgba(13, 159, 112,  0.55);
  transition: filter 0.18s ease, transform 0.18s ease;
}
.ev-cart-empty-btn:hover {
  filter: brightness(1.07);
  transform: translateY(-1px);
  color: #ffffff;
}
/* The dotted <hr> between the hero and the grid reads as stray dots. */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-separator {
  display: none !important;
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-heading.has-text-align-center {
  text-align: center;
  color: #06392b;
  margin-bottom: 20px;
}

/* New-in-store grid: the block grid misses the products-loop card styles. */
body.woocommerce-cart .wc-block-grid .wc-block-grid__products {
  margin: 0;
}
body.woocommerce-cart .wc-block-grid .wc-block-grid__product {
  background: #ffffff;
  border: 1px solid #ddeee6;
  border-radius: 18px;
  padding: 14px 14px 16px;
  margin: 0;
  box-shadow: 0 14px 30px -24px rgba(2, 40, 35,  0.35);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
body.woocommerce-cart .wc-block-grid .wc-block-grid__product:hover {
  transform: translateY(-3px);
  border-color: #c2e6d6;
  box-shadow: 0 22px 40px -24px rgba(2, 40, 35,  0.4);
}
body.woocommerce-cart .wc-block-grid__product-image img {
  border: 1px solid #e9f3ee;
  border-radius: 12px;
  background: #ffffff;
  width: 100% !important;
}
body.woocommerce-cart .wc-block-grid__product-title,
body.woocommerce-cart .wc-block-grid__product-title a,
body.woocommerce-cart .wc-block-grid__product-link {
  color: #06392b !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  font-size: 15px;
  line-height: 1.4;
}
body.woocommerce-cart .wc-block-grid__product-link:hover,
body.woocommerce-cart .wc-block-grid__product-title a:hover {
  color: #0b5f44 !important;
}
body.woocommerce-cart .wc-block-grid__product-price {
  color: #06392b;
  font-weight: 700;
}
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link.add_to_cart_button {
  background: #06392b !important;
  color: #ffffff !important;
  border-radius: 999px !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  padding: 9px 16px !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background 0.18s ease !important;
}
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link.add_to_cart_button:hover {
  background: #0b5f44 !important;
}
/* "Out of stock" tiles render the same navy button without ajax_add_to_cart;
   mute it so it reads as unavailable, not as a CTA. */
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link.add_to_cart_button:not(.ajax_add_to_cart) {
  background: #e9f3ee !important;
  color: #91a89e !important;
  cursor: default;
}
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link.add_to_cart_button:disabled,
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link.add_to_cart_button[aria-disabled="true"] {
  background: #e9f3ee !important;
  color: #91a89e !important;
  box-shadow: none !important;
  cursor: not-allowed;
}
@media (max-width: 767px) {
  .ev-cart-empty-hero {
    padding: 32px 18px 30px;
    border-radius: 18px;
  }
  .ev-cart-empty-hero .wc-block-cart__empty-cart__title {
    font-size: 21px;
  }
  .ev-cart-empty-hero .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    width: 68px;
    height: 68px;
    background-size: 32px 32px;
    margin-bottom: 14px;
  }
  .ev-cart-empty-sub {
    font-size: 14px;
  }
  .ev-cart-empty-btn {
    padding: 12px 30px;
    font-size: 15px;
  }
}

/*
 * Per-category text zones rendered through the Elementor templates
 * ("Category — Top/Bottom Text"). Default typography matches the archive
 * header copy; every part of it can be restyled per-template in Elementor.
 */
body.tax-product_cat .ev-cat-text-zone{width:100%}
.ev-cat-text-template{font-size:15.5px;line-height:1.8;color:#4a5f56;text-align:center;max-width:860px;margin:0 auto;padding:0 24px}
.ev-cat-text-template p{margin:0 0 12px}
.ev-cat-text-template p:last-child{margin-bottom:0}
.ev-cat-text-template a{color:#0b5f44;text-decoration:underline;text-decoration-color:#74dcb4}
.ev-cat-text-template .ev-cat-text-sample{color:#91a89e;font-style:italic}
.ev-cat-text-template--top{padding-top:20px;padding-bottom:6px}
.ev-cat-text-template--bottom{padding-top:8px;padding-bottom:44px}
@media (max-width:600px){.ev-cat-text-template{font-size:14.5px;padding:0 16px}}

/*
 * Elementor service pages — design layer. The shell (ev-svc-shell) carries
 * a tinted hero band, optional stats grid (About), the readable content
 * column, and a navy closing CTA card. Scoped, so plain conversions of
 * other pages inherit it automatically.
 */
.ev-svc-shell{width:100%;max-width:100%}
.ev-svc-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(900px 440px at 14% -32%,rgba(78, 207, 164, .18),transparent 62%),
    radial-gradient(780px 420px at 88% -24%,rgba(13, 159, 112, .13),transparent 60%),
    linear-gradient(180deg,#f6fefc 0%,#eafdf8 55%,#f7fbf9 100%);
  border-bottom:1px solid #ddeee6;
  padding:clamp(50px,6vw,80px) 24px clamp(42px,5vw,60px) !important;
  text-align:center;
}
/* Faint dot-grid texture, faded out toward the bottom edge. */
.ev-svc-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(11, 95, 68, .11) 1px,transparent 1.5px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(180deg,#000000 8%,transparent 76%);
          mask-image:linear-gradient(180deg,#000000 8%,transparent 76%);
}
.ev-svc-hero > .elementor-widget{position:relative}
/* Kicker = the hero's non-h1 heading (Elementor renders it as a div). */
.ev-svc-hero > .elementor-widget-heading:first-child{margin-bottom:18px !important}
.ev-svc-hero div.elementor-heading-title{
  display:inline-block;
  font-size:12.5px !important;
  font-weight:700 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:#0d9f70 !important;
  background:rgba(255,255,255,.82) !important;
  border:1px solid #c8e6d9 !important;
  border-radius:999px !important;
  padding:7px 18px !important;
  box-shadow:0 10px 24px -16px rgba(2, 40, 35, .4) !important;
  margin:0 !important;
}
.ev-svc-hero div.elementor-heading-title::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:linear-gradient(120deg,#4ecfa4,#0d9f70);
  margin:-2px 9px 0 0;vertical-align:middle;
}
.ev-svc-hero h1.elementor-heading-title{
  max-width:840px;
  margin:0 auto !important;
  font-size:clamp(30px,4.2vw,46px) !important;
  line-height:1.12 !important;
  font-weight:800 !important;
  letter-spacing:-.8px !important;
  color:#06392b !important;
}
.ev-svc-hero h1.elementor-heading-title::after{
  content:"";display:block;width:64px;height:4px;border-radius:999px;
  margin:18px auto 0;
  background:linear-gradient(90deg,#4ecfa4,#0d9f70);
}
.ev-svc-hero-sub{position:relative;max-width:62ch;margin:14px auto 0;font-size:16.5px;line-height:1.7;color:#4f675d}
/* Stats grid (About page) */
.ev-svc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:960px;margin:0 auto;padding:34px 24px 6px}
.ev-svc-stat{background:#ffffff;border:1px solid #ddeee6;border-radius:18px;padding:22px 16px;text-align:center;box-shadow:0 14px 30px -24px rgba(2, 40, 35, .35);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.ev-svc-stat:hover{transform:translateY(-3px);border-color:#c2e6d6;box-shadow:0 22px 40px -24px rgba(2, 40, 35, .4)}
.ev-svc-stat-num{font-size:30px;font-weight:800;letter-spacing:-.4px;color:#06392b;line-height:1.1;margin:0 0 4px}
.ev-svc-stat-label{font-size:13px;line-height:1.5;color:#5f7a6f;margin:0}
@media (max-width:860px){.ev-svc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.ev-svc-stats{grid-template-columns:1fr}}
/* Closing CTA card — slim variant */
.ev-svc-cta{
  position:relative;
  background:linear-gradient(150deg,#0b5f44 0%,#06392b 100%);
  border-radius:18px;
  max-width:1000px;
  margin:28px auto 0;
  padding:18px 26px !important;
  overflow:hidden;
  text-align:center;
}
.ev-svc-cta::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(640px 360px at 88% -12%,rgba(78, 207, 164, .4),transparent 65%),
    radial-gradient(520px 320px at 0% 115%,rgba(13, 122, 85, .5),transparent 60%);
}
.ev-svc-cta > .e-con-inner,.ev-svc-cta .elementor-widget{position:relative}
/* Slim overrides: kill container gap and widget margins that stack height.
   Elementor renders typography one level inside the widget wrapper
   (.elementor-heading-title / inner <p>), so those are targeted directly. */
.ev-svc-cta{gap:2px !important}
.ev-svc-cta > .e-con-inner{gap:2px !important}
.ev-svc-cta .elementor-widget{margin:0 !important;padding:0 !important}
.ev-svc-cta .ev-svc-cta-btns{padding:0 !important;margin-top:8px !important;gap:10px !important;justify-content:center !important}
.ev-svc-cta .ev-svc-cta-btns > .e-con-inner{gap:10px !important;padding:0 !important;justify-content:center !important}
.ev-svc-cta .elementor-heading-title,
.ev-svc-cta .elementor-widget-heading .elementor-heading-title{
  font-size:clamp(17px,1.8vw,21px) !important;
  line-height:1.25 !important;
  font-weight:800 !important;
  letter-spacing:-.3px !important;
  color:#ffffff !important;
  margin:0 !important;
}
.ev-svc-cta .elementor-widget-text-editor,
.ev-svc-cta .elementor-widget-text-editor p{
  font-size:13px !important;
  line-height:1.45 !important;
  color:#d5ebe1 !important;
  margin:0 !important;
  padding:0 !important;
}
.ev-svc-cta .elementor-button{
  border-radius:999px !important;
  padding:9px 26px !important;
  font-size:14px !important;
  font-weight:700 !important;
  letter-spacing:.01em;
  transition:filter .18s ease,transform .18s ease;
}
.ev-svc-cta .ev-cta-primary .elementor-button,
.ev-svc-cta .elementor-button.ev-cta-primary{background:linear-gradient(160deg,#4ecfa4 0%,#0d9f70 100%);color:#ffffff !important;box-shadow:0 14px 26px -12px rgba(13, 159, 112, .65)}
.ev-svc-cta .ev-cta-ghost .elementor-button,
.ev-svc-cta .elementor-button.ev-cta-ghost{background:rgba(255,255,255,.08) !important;border:1px solid rgba(255,255,255,.55) !important;color:#ffffff !important;box-shadow:none}
.ev-svc-cta .elementor-button:hover{filter:brightness(1.07);transform:translateY(-1px)}

/*
 * Elementor service pages (About, Terms, Refunds, Disclaimer, Privacy,
 * Editorial Policy, FAQ, Delivery, COD, Age Verification) — converted from
 * plain pages: readable measure, navy headings with the site's gradient
 * rule, guide-style text typography. Scoped to .ev-svc-page.
 */
.ev-svc-page{max-width:960px;margin:0 auto;padding:0 24px}
.ev-svc-title{font-size:clamp(30px,3.4vw,44px);line-height:1.15;font-weight:800;letter-spacing:-0.02em;color:#06392b;margin:0 0 10px}
.ev-svc-kicker{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0d7a55;background:#d5ebe1;border-radius:999px;padding:6px 14px;margin:0 0 14px}
.ev-svc-page .elementor-widget-text-editor{font-size:16.5px;line-height:1.8;color:#354b42}
.ev-svc-page .elementor-widget-text-editor p{margin:0 0 16px}
.ev-svc-page .elementor-widget-text-editor h2{font-size:clamp(23px,2vw,30px);line-height:1.28;font-weight:800;color:#06392b;margin:34px 0 14px}
.ev-svc-page .elementor-widget-text-editor h2::before{content:"";display:block;width:38px;height:4px;border-radius:3px;background:linear-gradient(90deg,#06392b,#0d7a55);margin-bottom:12px}
.ev-svc-page .elementor-widget-text-editor h3{font-size:20px;font-weight:700;color:#0b5138;margin:24px 0 10px}
.ev-svc-page .elementor-widget-text-editor ul,
.ev-svc-page .elementor-widget-text-editor ol{margin:0 0 18px;padding-left:0;list-style:none}
.ev-svc-page .elementor-widget-text-editor li{position:relative;padding-left:28px;margin-bottom:10px;line-height:1.7}
.ev-svc-page .elementor-widget-text-editor ul>li::before{content:"";position:absolute;left:8px;top:0.72em;width:7px;height:7px;border-radius:50%;background:#06392b}
.ev-svc-page .elementor-widget-text-editor ol{counter-reset:evsvc}
.ev-svc-page .elementor-widget-text-editor ol>li{counter-increment:evsvc}
.ev-svc-page .elementor-widget-text-editor ol>li::before{content:counter(evsvc);position:absolute;left:0;top:0.2em;display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;background:#e9f4ee;color:#0b5f44;font-size:12.5px;font-weight:700}
.ev-svc-page .elementor-widget-text-editor a{color:#0b5f44;text-decoration:underline;text-decoration-color:#74dcb4;text-underline-offset:3px}
.ev-svc-page .elementor-widget-text-editor a:hover{color:#06392b}
.ev-svc-page .elementor-widget-text-editor strong{color:#06392b}
.ev-svc-page .elementor-widget-text-editor blockquote{margin:24px 0;padding:2px 0 2px 24px;border-left:4px solid #06392b;color:#4a5f56;font-size:18px;font-style:normal}
.ev-svc-page .elementor-widget-text-editor table{width:100%;max-width:100%;border-collapse:separate;border-spacing:0;margin:24px 0 10px;font-size:15.5px;line-height:1.6;background:#ffffff;border:1px solid #d9ece2;border-radius:16px}
.ev-svc-page .elementor-widget-text-editor thead th{background:#06392b;color:#ffffff;font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.07em;font-size:12.5px;padding:13px 18px}
.ev-svc-page .elementor-widget-text-editor tbody th,
.ev-svc-page .elementor-widget-text-editor tbody td{padding:13px 18px;border-top:1px solid #e9f3ee;color:#354b42;vertical-align:top}
.ev-svc-page .elementor-widget-text-editor tbody tr:nth-child(even) td{background:#f7faf8}
.ev-svc-page .elementor-widget-text-editor thead th:first-child{border-top-left-radius:15px}
.ev-svc-page .elementor-widget-text-editor thead th:last-child{border-top-right-radius:15px}
.ev-svc-page .elementor-widget-text-editor tbody tr:last-child td:first-child{border-bottom-left-radius:15px}
.ev-svc-page .elementor-widget-text-editor tbody tr:last-child td:last-child{border-bottom-right-radius:15px}
@media (max-width:600px){
  .ev-svc-page .elementor-widget-text-editor{font-size:15.5px}
  .ev-svc-page .elementor-widget-text-editor table{display:block;overflow-x:auto}
}

/*
 * Elementor category pages — the built-in archive is replaced by the
 * "Category Page" template (canvas in templates/elementor-category.php).
 * The grid itself keeps the .woocommerce ul.products card design; this block
 * styles the canvas shell, header, toolbar and pagination.
 */
body.tax-product_cat .ev-catpage-canvas .ast-container,
body.tax-product_tag .ev-catpage-canvas .ast-container {
  max-width: 100%;
  padding: 0;
  margin: 0;
}
body.tax-product_cat .ev-catpage-canvas #primary,
body.tax-product_tag .ev-catpage-canvas #primary {
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.ev-catpage {
  width: 100%;
}
.ev-catpage .ev-catpage-head .ev-archive-title {
  font-size: 38px;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.6px;
  color: #06392b;
  text-align: center;
  margin: 0 0 6px;
}
.ev-catpage .ev-catpage-head p {
  font-size: 15.5px;
  line-height: 1.8;
  color: #4a5f56;
  text-align: center;
  max-width: 860px;
  margin: 0 auto;
}
.ev-catpage .ev-catpage-top,
.ev-catpage .ev-catpage-bottom {
  font-size: 15.5px;
  line-height: 1.8;
  color: #4a5f56;
  text-align: center;
  max-width: 860px !important;
  margin: 0 auto;
  padding: 0 24px;
}
.ev-catpage .ev-catpage-top p,
.ev-catpage .ev-catpage-bottom p {
  margin: 0 0 12px;
}
.ev-catpage .ev-catpage-top p:last-child,
.ev-catpage .ev-catpage-bottom p:last-child {
  margin-bottom: 0;
}
.ev-catpage .ev-catpage-top {
  padding: 20px 24px 6px;
}
.ev-catpage .ev-catpage-bottom {
  padding: 8px 24px 44px;
}
/* Grid toolbar + pagination (mirrors the native archive look) */
.ev-catpage .ev-cat-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
}
.ev-catpage .ev-cat-tools .woocommerce-result-count {
  font-size: 14px;
  color: #5f7a6f;
  margin: 0;
}
.ev-catpage .ev-cat-tools form.woocommerce-ordering {
  margin: 0;
}
.ev-catpage .ev-cat-tools form.woocommerce-ordering select {
  padding: 10px 34px 10px 14px;
  border: 1.5px solid #dcebe4;
  border-radius: 12px;
  font-size: 14px;
  color: #354b42;
  background-color: #ffffff;
}
.ev-catpage .woocommerce-pagination {
  margin: 26px 0 0;
}
.ev-catpage .woocommerce-pagination ul.page-numbers {
  display: flex;
  justify-content: center;
  gap: 8px;
  border: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ev-catpage .woocommerce-pagination ul.page-numbers li {
  border: 0;
  margin: 0;
}
.ev-catpage .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  padding: 0 15px;
  border-radius: 12px;
  background: #ffffff;
  border: 1.5px solid #dcebe4;
  color: #354b42;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}
.ev-catpage .woocommerce-pagination .page-numbers.current {
  background: #06392b;
  border-color: #06392b;
  color: #ffffff;
}
.ev-catpage .woocommerce-pagination a.page-numbers:hover {
  background: #d5ebe1;
  border-color: #74dcb4;
  color: #0b5f44;
}
.ev-catpage .ev-cat-text-sample {
  color: #91a89e;
  font-style: italic;
}
@media (max-width: 600px) {
  .ev-catpage .ev-catpage-head .ev-archive-title {
    font-size: 27px;
  }
  .ev-catpage .ev-cat-tools {
    flex-direction: column;
    align-items: flex-start;
  }
}

/*
 * COD gateway notice (checkout + cart payment methods): the "notify us"
 * warning appended to the Cash on delivery description in WooCommerce
 * settings. Red is required by the store owner so it is not skimmed over.
 * The Store API strips the class attribute off the <strong>, so the COD
 * accordion content is targeted by its deterministic id instead.
 */
.ev-cod-notice,
#radio-control-wc-payment-method-options-cod__content strong,
.wc-block-components-radio-control-accordion-content strong {
  color: #d63031 !important;
  font-weight: 600;
}

/*
 * Trust stats — tinted stat cards. The tiles already carried white surfaces
 * that vanished against the page, so the card look is re-established here:
 * soft brand-blue fill, border, larger numbers with a gradient accent bar.
 */
.elementor-70 .ev-stats-grid > .e-con {
  background: linear-gradient(180deg, #f2f8f4 0%, #e3f0ea 100%);
  border: 1px solid #ddeee6;
  border-radius: 20px;
  box-shadow: 0 14px 30px -22px rgba(2, 40, 35,  0.35);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.elementor-70 .ev-stats-grid > .e-con:hover {
  transform: translateY(-3px);
  border-color: #c2e6d6;
  background: #ffffff;
  box-shadow: 0 22px 40px -22px rgba(2, 40, 35,  0.4);
}

.elementor-70 .ev-stats-grid .elementor-widget-heading {
  position: relative;
  padding-bottom: 12px;
}
.elementor-70 .ev-stats-grid .elementor-widget-heading .elementor-heading-title {
  margin: 0;
  font-size: 34px !important;
  font-weight: 800 !important;
  letter-spacing: -0.4px;
  line-height: 1.1;
  color: #06392b;
}
.elementor-70 .ev-stats-grid .elementor-widget-heading::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 30px;
  height: 4px;
  border-radius: 3px;
  background: linear-gradient(90deg, #0d9f70, #4ecfa4);
}

.elementor-70 .ev-stats-grid .elementor-widget-text-editor {
  margin: 0;
  padding: 2px 8px 0;
}
.elementor-70 .ev-stats-grid .elementor-widget-text-editor p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #5f7a6f;
}

@media (max-width: 767px) {
  /* Dissolve the two row containers so all six tiles flow through one grid
     (otherwise each row wraps 2+1 and orphans a card). The boxed section
     renders an .e-con-inner wrapper — that wrapper becomes the grid, and its
     heading spans both columns. */
  .elementor-70 .ev-stats-grid {
    display: contents !important;
  }
  .elementor-70 .elementor-element-es3002255 .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .elementor-70 .elementor-element-es3002255 .e-con-inner > .elementor-widget-heading {
    grid-column: 1 / -1;
  }
  .elementor-70 .ev-stats-grid > .e-con {
    width: auto !important;
    padding: 22px 12px 20px !important;
  }
  .elementor-70 .ev-stats-grid .elementor-widget-heading .elementor-heading-title {
    font-size: 22px !important;
  }
  .elementor-70 .ev-stats-grid .elementor-widget-heading {
    padding-bottom: 10px;
  }
  .elementor-70 .ev-stats-grid .elementor-widget-heading::after {
    width: 24px;
    height: 3px;
  }
  .elementor-70 .ev-stats-grid .elementor-widget-text-editor p {
    font-size: 12.5px;
  }
}

/* Mobile: force the two flex rows into a 2x2 card grid. */
@media (max-width: 767px) {
  .elementor-70 .ev-flavors-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .elementor-70 .ev-flavors-grid > .e-con {
    width: auto !important;
  }
  .elementor-70 .ev-flavors-grid .elementor-widget-heading {
    padding-top: 12px;
  }
  .elementor-70 .ev-flavors-grid .elementor-widget-text-editor {
    padding-top: 4px;
  }
  .elementor-70 .ev-flavors-grid .elementor-widget-button {
    padding: 10px 8px 16px;
  }
  .elementor-70 .ev-flavors-grid .elementor-button {
    min-width: 84%;
    padding: 10px 10px;
    font-size: 14px;
    white-space: nowrap;
  }
}

/* Empty brand-range state (shown until the catalogue is imported). */
.ev-range-empty {
  background: #e9f4ee;
  border: 1px dashed #abd2c3;
  border-radius: 16px;
  padding: 34px 26px;
  text-align: center;
  max-width: 620px;
  margin: 10px auto 0;
}
.ev-range-empty-kicker {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #0d7a55;
  background: #d5ebe1;
  border-radius: 999px;
  padding: 5px 12px;
  margin-bottom: 12px;
}
.ev-range-empty h3 {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 700;
  color: #06392b;
}
.ev-range-empty p {
  margin: 0 auto 18px;
  max-width: 460px;
  font-size: 14.5px;
  line-height: 1.65;
  color: #4a5f56;
}
.ev-range-empty-btn {
  display: inline-block;
  background: #06392b;
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 22px;
  border-radius: 10px;
  text-decoration: none;
}
.ev-range-empty-btn:hover {
  background: #0b5f44;
}

/*
 * Products imported without a price yet: a WhatsApp order route stands in
 * for the buy button until a price is added in WooCommerce.
 */
.ev-price-request {
  margin: 0 0 20px;
  padding: 16px 18px;
  border: 1px solid #d5ebe1;
  border-radius: 14px;
  background: #e9f4ee;
}
.ev-price-request-label {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 700;
  color: #06392b;
}
.ev-price-request-note {
  margin: 0 0 12px;
  font-size: 14px;
  color: #4a5f56;
}
.ev-price-request-btn {
  display: inline-block;
  background: #25d366;
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 22px;
  border-radius: 10px;
  text-decoration: none;
}
.ev-price-request-btn:hover {
  background: #1eb457;
}
.ev-loop-price-request {
  display: inline-block;
  color: #0b5f44;
  font-weight: 700;
}
.woocommerce ul.products li.product .ev-loop-price-request {
  font-size: 15px;
  letter-spacing: 0.02em;
}

/*
 * Product sections collapse while their range has no products, so the
 * homepage has no empty grids. They reappear automatically on import.
 */
.elementor-70 .ev-product-section:has(.ev-range-empty),
.elementor-70 .ev-product-section:has(.woocommerce:empty) {
  display: none !important;
}

/* Fix: on Elementor full-width templates (e.g. /guides/page/2/) the ast-container
   renders full-bleed with zero padding, so the breadcrumb trail touches the
   viewport edge while the page content stays boxed. Align the trail with the
   Elementor boxed container (1140px) instead. */
body .ev-crumbs {
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;
}

/* Boxed alignment only where the template is a full-bleed Elementor page;
   classic pages keep their natural container width. */
body.page-template-elementor_header_footer .ev-crumbs,
body.elementor-page .ev-crumbs {
  max-width: 1140px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ---- Desktop search bar restyle (height down, joined premium pill) ---- */
@media (min-width: 922px) {
  /* slimmer grey strip around the search bar */
  .elementor-element-hv2000848 {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  /* one joined pill: input + button share a bordered capsule */
  body .ev-el-ev-search form.woocommerce-product-search, body .ev-search-form form.woocommerce-product-search, body form.ev-search-form.woocommerce-product-search {
    display: flex !important;
    align-items: center;
    max-width: 900px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid #d9ece2;
    border-radius: 999px;
    box-shadow: 0 2px 10px rgba(6, 57, 43,  0.06);
    padding: 4px;
    gap: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
  }
  body .ev-el-ev-search form.woocommerce-product-search:focus-within, body .ev-search-form form.woocommerce-product-search:focus-within {
    border-color: #06392b;
    box-shadow: 0 4px 18px rgba(6, 57, 43,  0.13);
  }

  /* input: transparent inside the capsule */
  body .ev-el-ev-search .search-field, body .ev-search-form .search-field, body .ev-search-form input[type="search"] {
    height: 36px !important;
    padding: 0 14px 0 18px !important;
    border: 0 !important;
    background: transparent !important;
    border-radius: 999px 0 0 999px !important;
    box-shadow: none !important;
    font-size: 14.5px !important;
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
  }
  body .ev-el-ev-search .search-field::placeholder, body .ev-search-form .search-field::placeholder { color: #91a89e; }

  /* button: compact navy pill with a magnifier icon */
  body .ev-el-ev-search form.woocommerce-product-search button, body .ev-search-form button, body .ev-search-form button[type="submit"] {
    height: 36px !important;
    padding: 0 24px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    background: #06392b !important;
    color: #ffffff !important;
    font-size: 13.5px !important;
    font-weight: 600;
    letter-spacing: 0.04em;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background 0.2s ease, transform 0.15s ease;
  }
  body .ev-el-ev-search form.woocommerce-product-search button:hover, body .ev-search-form button:hover {
    background: #0a4a36 !important;
    transform: translateY(-1px);
  }
  body .ev-el-ev-search form.woocommerce-product-search button::before, body .ev-search-form button::before {
    content: "";
    display: inline-block;
    width: 13px;
    height: 13px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20.5 20.5-4.2-4.2'/></svg>") center / contain no-repeat;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20.5 20.5-4.2-4.2'/></svg>") center / contain no-repeat;
  }
}


/* ---- Fix: mobile header not sticking on real devices ----
   Astra sets body{overflow:hidden} (overflow-x:hidden), which turns <body> into
   a scroll container on iOS/Android. position:sticky on the header then anchors
   to the body's scrollport instead of the viewport, so the header scrolls away.
   overflow-x:clip clips the same sideways overflow WITHOUT creating a scroll
   container, restoring viewport-anchored sticky on mobile. Desktop untouched. */
@media (max-width: 921px) {
  html { overflow-x: clip; }
  body {
    overflow: visible !important;
    overflow-x: clip !important;
  }
}

/* ---- Fix: admin-bar gap on mobile ----
   The HFE header CSS offsets the sticky header by 46px under body.admin-bar at
   <=782px, assuming the admin bar is fixed. On phones the admin bar is
   position:absolute — it scrolls away immediately, leaving a permanent 46px
   gap above the pinned header. Stick flush to the top once it does. */
@media (max-width: 782px) {
  html body.admin-bar #masthead { top: 0 !important; }
}



/* Shrink-on-scroll: fold the 2 top strips, keep nav row pinned */
.ev-header-outer .elementor-element-hv2000106,
.ev-header-outer .elementor-element-hv2000318 {
  max-height: 90px;
  opacity: 1;
  overflow: hidden;
  transition: max-height .28s ease, opacity .22s ease, padding .28s ease;
}
body.ev-shrink .ev-header-outer .elementor-element-hv2000106,
body.ev-shrink .ev-header-outer .elementor-element-hv2000318 {
  max-height: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  opacity: 0;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border: 0 !important;
  pointer-events: none;
  visibility: hidden;
}

/* ---- Age gate — brand styling ---- */
body .avwp-av-overlay {
  background: radial-gradient(circle at 50% 35%, #10241b 0%, #0a1812 75%) !important;
  background-attachment: fixed !important;
}
body .avwp-av {
  border-radius: 24px !important;
  padding: 42px 38px !important;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .55) !important;
  font-family: Poppins, "Segoe UI", sans-serif !important;
}
body .avwp-av h2.elementor-heading-title {
  color: #06392b !important;
  font-family: Poppins, sans-serif !important;
}
body .avwp-av .elementor-widget-button .elementor-button {
  border-radius: 999px !important;
  border: 0 !important;
  font-family: Poppins, sans-serif !important;
  letter-spacing: .02em;
}
/* Age gate card: center via CSS — the plugin's JS reCenter mispositions it */
body .avwp-av {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

/* ============================================================
   Mobile product cards (shop, archives and homepage grids, <=600px)
   Phone cards are ~160px wide; the block above keeps desktop
   type sizes there, so the title wraps to 4 lines and the
   "Out of stock" label breaks in two. Scale type down, let the
   image use the full card width, keep the button on one line.
   `body:is(...)` keeps the weight of `body.woocommerce` so these
   rules still outrank the inline card CSS, while `.home` picks up
   the [products] grids rendered inside Elementor on the front page.
   ============================================================ */
@media (max-width: 600px) {
  body:is(.woocommerce,.home) ul.products { gap: 14px !important; }
  body:is(.woocommerce,.home) ul.products li.product.product {
    padding: 0 0 10px !important;
    align-items: stretch !important;
    border-radius: 16px !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .astra-shop-thumbnail-wrap { margin: 0 0 8px !important; }
  body:is(.woocommerce,.home) ul.products li.product .astra-shop-thumbnail-wrap img,
  body:is(.woocommerce,.home) ul.products li.product img {
    width: 100% !important;
    border-radius: 0 !important;
    margin: 0 !important;
    display: block !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .astra-shop-summary-wrap { padding: 0 9px !important; }

  /* Category chip */
  body:is(.woocommerce,.home) ul.products li.product .ast-woo-product-category,
  body:is(.woocommerce,.home) ul.products li.product .ast-woo-product-category a {
    font-size: 9.5px !important;
    line-height: 1 !important;
    padding: 3px 8px !important;
    margin: 0 0 5px !important;
  }

  /* Rating row: drop the empty placeholder, shrink the real one */
  body:is(.woocommerce,.home) ul.products li.product .review-rating:not(:has(.star-rating)) { display: none !important; }
  body:is(.woocommerce,.home) ul.products li.product .review-rating { min-height: 0 !important; margin: 0 0 5px !important; gap: 4px !important; }
  body:is(.woocommerce,.home) ul.products li.product .star-rating { font-size: 10px !important; }
  body:is(.woocommerce,.home) ul.products li.product .ev-rating-meta { font-size: 10px !important; }

  /* Title */
  body:is(.woocommerce,.home) ul.products li.product .woocommerce-loop-product__title {
    font-size: 12.5px !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
    margin: 0 0 5px !important;
    padding: 0 !important;
  }

  /* Price */
  body:is(.woocommerce,.home) ul.products li.product .price {
    font-size: 13px !important;
    gap: 4px !important;
    margin: 0 0 8px !important;
    line-height: 1.25 !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .price del { font-size: 10.5px !important; }
  body:is(.woocommerce,.home) ul.products li.product .ev-off-badge {
    font-size: 9px !important;
    padding: 3px 5px !important;
    border-radius: 6px !important;
  }

  /* Button: one line, never two */
  body:is(.woocommerce,.home) ul.products li.product .button,
  body:is(.woocommerce,.home) ul.products li.product .add_to_cart_button {
    min-height: 34px !important;
    height: 34px !important;
    font-size: 11.5px !important;
    line-height: 1 !important;
    padding: 0 30px !important;
    gap: 5px !important;
    white-space: nowrap !important;
    box-shadow: 0 8px 18px rgba(6, 57, 43, .22) !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .button::before { width: 13px !important; height: 13px !important; left: 11px !important; }
  body:is(.woocommerce,.home) ul.products li.product .button::after  { width: 12px !important; height: 12px !important; right: 11px !important; }
  body:is(.woocommerce,.home) ul.products li.product .added_to_cart { font-size: 11px !important; margin-top: 6px !important; }

  /* Sale badge + bag button */
  body:is(.woocommerce,.home) ul.products li.product .ast-onsale-card,
  body:is(.woocommerce,.home) ul.products li.product span.onsale {
    top: 8px !important;
    left: 8px !important;
    padding: 4px 8px !important;
    font-size: 9.5px !important;
    gap: 4px !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .ast-onsale-card::before,
  body:is(.woocommerce,.home) ul.products li.product span.onsale::before { width: 9px !important; height: 10px !important; flex: 0 0 9px !important; }
  body:is(.woocommerce,.home) ul.products li.product .ast-select-options-trigger {
    width: 26px !important;
    height: 26px !important;
    top: 8px !important;
    right: 8px !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .ast-select-options-trigger svg { width: 13px !important; height: 13px !important; }

  /* "Out of stock" overlay on the image */
  body:is(.woocommerce-page,.home) ul.products li.product .ast-shop-product-out-of-stock,
  body:is(.woocommerce,.home) ul.products li.product .ast-shop-product-out-of-stock {
    left: 6px !important;
    right: 6px !important;
    bottom: 6px !important;
    padding: 3px 0 4px !important;
    font-size: 9.5px !important;
    line-height: 1.2 !important;
  }
}

/* Very narrow phones (320-360px): keep the label on one line */
@media (max-width: 360px) {
  body:is(.woocommerce,.home) ul.products { gap: 10px !important; }
  body:is(.woocommerce,.home) ul.products li.product .woocommerce-loop-product__title { font-size: 11.5px !important; }
  body:is(.woocommerce,.home) ul.products li.product .button,
  body:is(.woocommerce,.home) ul.products li.product .add_to_cart_button {
    font-size: 10px !important;
    padding: 0 20px !important;
  }
  body:is(.woocommerce,.home) ul.products li.product .button::before { width: 11px !important; height: 11px !important; left: 7px !important; }
  body:is(.woocommerce,.home) ul.products li.product .button::after  { width: 10px !important; height: 10px !important; right: 7px !important; }
}
/* --------------------------------------------------------------------------
   HEADER NAV — keep every item on one desktop row
   The ev-menu widget prints a global var-based rule (font-size, side padding)
   that lands AFTER ev-child-styles and outweighs the compact sizing there, so
   the eighth menu item pushed IQOS TEREA Blog onto a second line. These are
   the compact metrics the header was designed with, re-asserted with the
   extra body prefix + !important per this file's cascade convention, and
   desktop-only so the mobile drawer keeps its own paddings.
   -------------------------------------------------------------------------- */
@media (min-width:1101px){
  body .elementor-element-hv2000477 ul.ev-nav-menu > li > a{
    font-size:11.5px !important;
    letter-spacing:.05px !important;
    padding:9px 6px !important;
  }
}
