/*NEW CSS*/

/* Remove Elementor Theme Margins */
.elementor-widget-text-editor p:last-child {
    margin-block-end: 0;
}
.elementor-widget-icon-box .elementor-icon-box-title {
    margin-block-start: 0;
}
/* Review submit button */
#submit.submit {
    background-color: var(--e-global-color-f036822);
    color: var(--e-global-color-97b0f12);
    border: 1px solid var(--e-global-color-f036822);
    border-radius: 10px;
    padding: 12px 24px;
    transition: all 0.3s ease;
}

/*+++++ GENERAL STUFF+++++*/
	
/* Stop Edge-to-Edge Wiggle on Mobile */
@media (max-width: 767px) {
  /* Stop Mobile "wiggle" */
  html, body { overflow-x: hidden; }

	
/* Stops Extreme Edge to Edge on Mobile */
  .elementor-section > .elementor-container {
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }
  .e-con > .e-con-inner {
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }
  .elementor-section .elementor-section > .elementor-container,
  .e-con .e-con > .e-con-inner {
    padding-left: 0;
    padding-right: 0;
  }
}

/* Stop mobile browsers from auto-scaling text sizes */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
/* Create gaps between accordian sections */
.e-n-accordion details.e-n-accordion-item:not(:last-child) {
    margin-bottom: 6px;
}
/* Size of Category button boxes */
.category-button-box {
    width: 170px !important;
    max-width: 170px !important;
    flex: 0 0 170px !important;
    --width: 170px !important;
}
@media (max-width: 767px) {
    .category-button-box {
        width: 150px !important;
        max-width: 150px !important;
        flex: 0 0 150px !important;
        --width: 150px !important;
    }
}
.dietary-button-box {
    width: 200px !important;
    max-width: 200px !important;
    flex: 0 0 200px !important;
    --width: 200px !important;
}
@media (max-width: 767px) {
    .dietary-button-box {
        width: 150px !important;
        max-width: 150px !important;
        flex: 0 0 150px !important;
        --width: 150px !important;
    }
}
/* Size of Menu button boxes */
.menu-button-box {
    width: 210px !important;
    max-width: 210px !important;
    flex: 0 0 210px !important;
    --width: 210px !important;
}
@media (max-width: 767px) {
    .menu-button-box {
        width: 150px !important;
        max-width: 150px !important;
        flex: 0 0 150px !important;
        --width: 150px !important;
    }
}


/* Scroll to Anchor Offset (for Non-Recipe Pages) */
:target {
  scroll-margin-top: 100px;
}
html {
  scroll-behavior: smooth;
}

/* Keep metadata terms together on recipe cards (ie don't break lines mid metadata term) */
.recipe-keys-row a,
.recipe-dietaries-row a,
.recipe-courses-row a {
    white-space: nowrap;
}
/* Reserve the carousel area but hide uninitialized slides */
.k4v-stable-carousel .swiper:not(.swiper-initialized) {
	visibility: hidden;
}

/* Reveal after Swiper has calculated the layout */
.k4v-stable-carousel .swiper.swiper-initialized {
	visibility: visible;
}

/* ADVANCED SEARCH FORMATTING */

/* Padding on Sort by box to match height of other boxes */
.search-filter-component-combobox-base.search-filter-component-combobox-base--listbox-attached.search-filter-component-combobox.search-filter-field__input.search-filter-component-combobox--mode-single.search-filter-component-combobox--search-enabled {
	padding: 4.5px;
}

/* To Middle & Centre text selected in Sort by and Calorie/Macro range boxes */
.search-filter-component-combobox__actions .search-filter-component-combobox__selection {
  display: flex !important;           
  align-items: center !important;     
  justify-content: center !important; 
  text-align: center !important;
}
.search-filter-component-combobox__actions input.search-filter-input-combobox-1 {
  text-align: center !important;     
}

/* Make selected combobox value visible */
.search-filter-component-combobox__selection {
    z-index: 1;
    flex-grow: 1;
}

/* Bottom Margin of Comboboxes (but not other listed things)*/
input:not([type=checkbox],[type=submit],[type=search],[type=radio],#dr-recipe-timer,[type=file],.wc-block-price-filter__range-input) { 
	/* the element was input#search-filter-input-combobox-12 */
  margin-bottom: 0px;
}

/* ++++ CHANGES TO RECIPE PAGE ++++*/

/* Let WP Delicious featured image use its natural aspect ratio */
.single-recipe .dr-post-summary.layout-7 .dr-image-wrapper {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

.single-recipe .dr-post-summary.layout-7 .dr-image.full {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.single-recipe .dr-post-summary.layout-7 .dr-image.full img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
}

/* Old CSS - Check if needed*/

.single-recipe .dr-tags .dr-meta-title{
font-weight: normal;
font-size: 16px;
	}

/* Centre recipe instruction images and video thumbnails */
.single-recipe .additional-images .dr-lg-media-popup img,
.single-recipe .dr-instructions-video .dr-vdo-thumbnail {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Limit both to 50% width on tablet and desktop */
@media (min-width: 768px) {
  .single-recipe .additional-images .dr-lg-media-popup img,
  .single-recipe .dr-instructions-video .dr-vdo-thumbnail {
    width: 50%;
  }
}

/* Let them use full available width on mobile */
@media (max-width: 767px) {
  .single-recipe .additional-images .dr-lg-media-popup img,
  .single-recipe .dr-instructions-video .dr-vdo-thumbnail {
    width: 100%;
  }
}

/* Make the thumbnail image fill its resized wrapper */
.single-recipe .dr-instructions-video .dr-vdo-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

/* Hide Banner Pieces, Nutrition Box, and CTA */
body.single-recipe .dr-cta-image,
body.single-recipe .dr-nutrition-collapse-section-content,
body.single-recipe .wpdelicious-recipe-banner {
  display: none !important;
}
@media (max-width: 767px) {
  .elementor-element.elementor-element-1ec54b8 {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    align-content: center !important;
    gap: 4px !important;
  }

  .elementor-element.elementor-element-1ec54b8 > .elementor-widget {
    width: auto !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  .elementor-element.elementor-element-1ec54b8 .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-element.elementor-element-1ec54b8 p {
    margin: 0 !important;
  }
}

/* Bold & Italics on Subtitle */
.dr-info {
  font-weight: bold;
  font-style: italic;
}
/* Space above the recipe title */
.dr-title-wrap {
  display: flex;
  flex-direction: column;
  padding-top: 30px;
}
/* Size of Font in Recipe Card Boxes */
span.dr-sim-metaa.dr-cook-time {
  font-size: 1rem;
}
span.dr-meta-title {
  font-size: 1rem;
}
.dr-entry-meta {
  font-size: 1.2rem;
}
.dr-entry-meta > span {
  line-height: normal;
}
/*Hide Recipe Card Boxes*/
.dr-byline {
    display:none !important;
}
.dr-method {
    display:none !important;
}
.dr-recipe-keys {
    display:none !important;
}
.dr-cuisine {
    display:none !important;
}
.dr-category .dr-meta-title {
    display:none !important;
}
.dr-entry-meta {
    margin-top: 0 !important;
	  margin-bottom: 0 !important;
	  border:solid 1.111px rgba(55, 71, 87, 0.1);
	border-bottom:none 
}
.dr-category {
    margin-top: 10px !important;
	  margin-bottom: 5px !important;
	  margin-right: 0px !important;
}
.post-pinit-button a {
    margin-bottom: 4px !important;
}
.dr-sim-metaa.dr-cook-time {
    display:none !important;
}
.dr-sim-metaa.dr-lavel {
    display:none !important;
}
.dr-sim-metaa.dr-yields {
    display:none !important;
}
.dr-sim-metaa.dr-calorie {
    display:none !important;
}
.dr-sim-metaa.dr-season {
    display:none !important;
}
.dr-dietary {
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
}

.dr-dietary .d-flex {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    margin: 0 !important;
    flex-wrap: nowrap;
    width: auto !important;
    max-width: none !important;
}
.dr-extra-meta {
    display: flex;
    justify-content: center !important;
}
@media (max-width: 768px) {
    .dr-extra-meta {
        text-align: center !important;
    }

    .dr-extra-meta .dr-dietary {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
    }

    .dr-extra-meta .dr-dietary .d-flex {
        display: inline-flex !important;
        justify-content: center !important;
        margin: 0 auto !important;
    }
}
.dr-extra-meta {
    margin-top: 0 !important;
	  padding-bottom: 10px !important;
	  border-top: none !important; 
}
.dr-dietary {
	  border-bottom: none !important; 
}

/* Remove Backround from Recipe Icons*/
.single-recipe .dr-category a img {
    background: none;
}


/*Size of Subheadings in Ingredients*/
.recipe-ingredients h3.dr-title {
  font-size: 1.2em;
  font-weight: normal;
  margin-top: 1.15em;
  margin-bottom: 0.5em;
}
/*Ingredient List Spacing*/
li.recipe-ingredient,
li.recipe-ingredient label {
    line-height: 1.5 !important;
}

/* Size of Ingredients font */
.dr-summary-holder .dr-ingredients-list li label {
    font-size: 1.1rem; 
}
/* Bold ingredients */
li.recipe-ingredient label {
  font-weight: bold !important;
}

/* Unbold other spans */
li.recipe-ingredient label span {
  font-weight: normal !important;
}

/* Re-bold the quantity */
li.recipe-ingredient label span.ingredient_quantity {
  font-weight: 600 !important;
}
/* Add space after the quantity */
li.recipe-ingredient .ingredient_quantity {
    margin-right: 0.3rem;
}
/* Don't underline ingredient links */
.single-recipe .ingredient-link{
    text-decoration: none !important;
}
/* Ingredient Link Color */
.single-recipe .ingredient-link:hover {
  color: var(--e-global-color-76fd0f8) !important;
}
/* Color ingredients notes text*/
span.ingredient-notes {
  color: inherit;
}

/*Size of Subheadings in Instructions*/
.dr-instructions h3 {
  font-size: 1.2em;
  font-weight: normal;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
/* Shape of Instructions Bullets & Text Size */
.dr-summary-holder .dr-ordered-list>li::before {
  border-radius: 4px !important;
	font-size: 12px
}
/* reduce padding around instruction notes */
    .dr-summary-holder .dr-list-tips {
        padding-top: 3px;
        padding-bottom: 3px;
        padding-left: 8px;
}
/*Removed Border Around Equipment Text & Button*/
.dr-equipment-title-wrap {
  border: none !important;
}
/*Equipment Button Formatting*/
a.dr-btn {
  background-color: var(--e-global-color-f036822) !important;
  color: var(--e-global-color-97b0f12) !important;
	border-color: var(--e-global-color-f036822) !important; 
	border-radius: 8px !important;
}
a.dr-btn:hover {
  background-color: var(--e-global-color-1ed7afc) !important; 
  color: var(--e-global-color-1ce8281) !important;
	border-color: var(--e-global-color-1ed7afc) !important;
}
 /* Removes Arrow Icon Button & Centers Text on Equipment Buttons*/
.dr-equipment-title-wrap a.dr-btn i svg {
  display: none !important;
}
a.dr-btn i {
  margin: 0 !important;
}
 /* Equipment Title */
span.dr-equipment-title a {
  font-size: 1rem !important;
	font-weight: 600 !important;
}
/* Color of Equipment Badges */
.wpd-tag, .dr-equipment-slider .dr-es-item-wrap .wpd-equipment-tags,
.dr-equipment-slider .dr-es-item-wrap .wpd-equipment-tags:after, .dr-equipment-slider .dr-es-item-wrap .wpd-equipment-tags:before,
.wpd-tag:after, .wpd-tag:before{
background-color: var(--e-global-color-primary);
}
 /* Space Between Equipment & Button */
span.dr-equipment-title {
  margin-bottom: 1.5rem !important;
}
/*Size of Equipment Affiliate Disclosure Text*/
.dr-affiliate-disclosure p {
  font-size: 0.9rem !important;
	line-height: 1.4rem
}
 /* More space below "Notes" */
.dr-note h2.dr-title {
  margin-bottom: 20px;
}
/*Reduce Space under Tags*/
.single-recipe .dr-tags{
    margin-bottom: 20px;
}
/*Tag Hover Color*/
.dr-tags a:hover {
  color: var(--e-global-color-1ce8281);
	background-color: var(--e-global-color-1ed7afc);
	border-color: var(--e-global-color-c725e75);
}
/* Space above Exapand All in FAQ */
@media (max-width: 768px) {
  .dr-faqs-section .dr-section-title-wrap {
    margin-top: 1.5rem !important;
  }
}
/*Expand All FAQ Toggle Colors*/
button.dr-switch-btn,
button.dr-switch-btn:hover,
button.dr-switch-btn:focus,
button.dr-switch-btn:active {
	background:var(--e-global-color-primary);
	border-radius: 14px;
}
/* Size of FAQ titles */
.dr-faqs-section .dr-faq-title-wrap h3.dr-title {
  font-size: 1.125rem !important;
}
/* Spacing of FAQ  */
.dr-faqs-section .dr-faq-title-wrap {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.dr-faqs-section .dr-faq-item {
  margin-bottom: 10px !important; 
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.dr-faqs-section .dr-faq-title-wrap h3.dr-title {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.dr-faqs-section .dr-faq-content-wrap p:first-of-type {
  display: none !important;
}
/* Size of Frequently Asked Questions */
.dr-faqs-section .dr-section-title-wrap h2.dr-title {
  font-size: 27px !important;
}
/* Spacing around star rating in review box */
.dr-pro-comment-container .comment-form .dr-comment-rating{
    padding: 15px;
}
/* Space before stars in comment box */
.single-recipe .site-content .dr-pro-comment-section .comment-form .comment-form-rating>span{
    display: none;
}

/* =========================================
   Make disabled "Book" recipe cards look non-clickable - Elementor cards only
   ========================================= */

/* Remove pointer cursor */
[class*="recipe-sources-book"] a {
    cursor: default !important;
}

/* Remove link hover underline/color change */
[class*="recipe-sources-book"] a:hover {
    text-decoration: none !important;
    color: inherit !important;
}

/* Stop image hover transitions */
[class*="recipe-sources-book"] img {
    transition: none !important;
}

/* Disable Elementor thumbnail hover animation */
[class*="recipe-sources-book"] .elementor-post__thumbnail:hover img {
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
}

/* Establish positioning for book cards */
[class*="recipe-sources-book"] {
    position: relative;
}

/* Target the image wrapper inside Elementor Posts cards */
[class*="recipe-sources-book"] .elementor-post__thumbnail {
    position: relative;
    overflow: hidden;
}

/* Overlay on the image only */
[class*="recipe-sources-book"] .elementor-post__thumbnail::after {
    content: "This recipe appears in the Keto for Vegans book mentioned in the title and is not published online.";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    color: white;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.35;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 14px;
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
}

/* Show overlay on hover */
[class*="recipe-sources-book"]:hover .elementor-post__thumbnail::after,
[class*="recipe-sources-book"].k4v-card-hover .elementor-post__thumbnail::after {
    opacity: 1;
}

/* Scroll stop points for anchors in recipe card */
body.single-recipe #recipe-description,
body.single-recipe #recipe-ingredients,
body.single-recipe #recipe-instructions,
body.single-recipe #recipe-equipment,
body.single-recipe #recipe-notes,
body.single-recipe #recipe-nutrition,
body.single-recipe #recipe-faq {
  scroll-margin-top: 150px;
}
body.single-recipe #jump-recipe {
  scroll-margin-top: 130px;
}
/* underlining of links in recipe jump to sticky bar */
.recipe-jump-nav a,
.recipe-jump-nav a:link,
.recipe-jump-nav a:visited,
.recipe-jump-nav a:hover,
.recipe-jump-nav a:active {
  text-decoration: none !important;
}

/* Limit Number of Lines on Recipe Cards */
/* 1) Recipe card titles → 2 lines */
.e-loop-item .recipe-card-title .elementor-heading-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 2) Recipe card excerpts → 3 lines */
.e-loop-item .recipe-excerpts-row {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 3) Courses → 1 line */
.e-loop-item .loop-courses {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 4) Dietaries → 2 lines */
.e-loop-item .loop-dietaries {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Change Hover Text Color & Background Color for Search & Filter Combo Boxes */
.search-filter-component-combobox-base__listbox-list li {
  transition: background-color 0.3s ease, color 0.3s ease;
}
.search-filter-component-combobox-base__listbox-list li:hover,
.search-filter-component-combobox-base__listbox-list li.search-filter-component-combobox-base__listbox-option--selected {
  background-color: var(--e-global-color-1ed7afc); /* Use your desired hover/selected background color */
  color: var(--your-hover-text-color, white); /* Use your desired hover/selected text color */
  cursor: pointer; /* Indicates interactivity */
}

/* Ensure that if a list item is selected and also hovered, the styles are consistent */
.search-filter-component-combobox-base__listbox-list li.search-filter-component-combobox-base__listbox-option--selected:hover {
  background-color: var(--e-global-color-1ed7afc);
  color: var(--your-hover-text-color, white);
}

/*+++++++++ SEARCH & FILTER +++++++++*/

/*RANGE SLIDERS*/
/* Fix 1 & 2: Style for the draggable slider inputs (min and max) */
.search-filter-component-range-slider__range-input--min,
.search-filter-component-range-slider__range-input--max {
  position: absolute; /* Keep original positioning */
  z-index: 9999 !important; /* Ensure inputs are on top */
  background-color: transparent !important; /* Make their background invisible */
  height: 6px !important; /* Match the track's height for correct alignment */
  border: none !important; /* Remove any default input borders */
}

/* Fix 3: Make the track background (the ::before pseudo-element) visible with its intended opacity */
#search-filter-component-range-slider-0::before {
  /* Restore the desired less opaque version of rgb(17, 81, 43) */
  opacity: 0.3 !important; 
  display: block !important; /* Ensure it is displayed */
  /* The background-color: rgb(17, 81, 43) should already be present from original styles */
}

/* Fix 4: Ensure the base track container itself is transparent */
/* This allows the opacity of the ::before pseudo-element to be visible */
#search-filter-component-range-slider-0 {
  background-color: transparent !important; /* Ensure the container is transparent */
  position: relative; /* Keep original positioning, essential for children's absolute positioning */
}
/* Prevent right edge of range sliders being clipped on mobile view */
.search-filter-component-range-slider__range-input-wrapper {
  position: relative;
  z-index: 1;
}
/* Align handles/sliders to middle of bar */
.search-filter-component-range-slider__range-input{
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  margin: 0 !important;
}
.search-filter-component-range-slider__range-input::-webkit-slider-runnable-track{
  position: relative;
  top: -2.25px;
}
/* Firefox equivalent */
.search-filter-component-range-slider__range-input::-moz-range-track{
  position: relative;
  top: -2.25px;
}
/* Fixed issue of open menu arrows becoming giant on comboboxes on mobile */
@media (max-width: 767px) {
  .search-filter-icon__svg {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
    display: block !important;
    flex: 0 0 22px !important;
  }
}
body.archive .site-content .container,
body.blog .site-content .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
