@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,700&display=swap');

/* Homepage recipe sections: grid layout for Protein Packed Snacks & Back-to-School Lunchbox Ideas */
#basil-homepage-widgets {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 30px 24px;
  align-items: start;
  padding: 40px 6% 0;
}
#basil-homepage-widgets > .widget_block,
#basil-homepage-widgets > .basil-blog-posts-widget {
  grid-column: 1 / -1;
}
#basil-homepage-widgets .cooked_widget_recipe_card {
  display: flex;
  justify-content: center;
}
#basil-homepage-widgets .cooked-recipe-card-modern-centered {
  width: 100% !important;
  max-width: 340px !important;
  margin: 0 !important;
}
#basil-homepage-widgets .cooked-recipe-card-title {
  margin-top: 18px !important;
}
@media (max-width: 782px) {
  #basil-homepage-widgets {
    grid-template-columns: 1fr;
  }
}

/* Section title bands (Protein Packed Snacks / Back-to-School Lunchbox Ideas / Our eCookbooks).
   The first two headings carry inline font-size + font-weight from the block editor,
   so these declarations need !important to win. The -6.8182% margin cancels the grid's
   6% side padding (6 / 88) so the band runs edge to edge; the padding then lives on the
   link inside, which makes the whole band clickable. */
#basil-homepage-widgets > .widget_block .wp-block-heading.has-text-align-center,
#basil-homepage-widgets > .widget_block .wp-block-heading.has-x-large-font-size {
  display: block;
  margin: 26px -6.8182% 10px;
  padding: 0;
  background: #d3808e;
  color: #ffffff !important;
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif !important;
  font-size: 38px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
  line-height: 1.2;
  text-align: center;
}
#basil-homepage-widgets > .widget_block .wp-block-heading a {
  display: block;
  padding: 34px 6% 30px;
  color: inherit !important;
  text-decoration: none;
}
#basil-homepage-widgets > .widget_block .wp-block-heading a:hover,
#basil-homepage-widgets > .widget_block .wp-block-heading a:focus {
  color: #ffffff !important;
  text-decoration: underline;
  text-underline-offset: 8px;
  text-decoration-thickness: 2px;
}
@media (max-width: 782px) {
  #basil-homepage-widgets > .widget_block .wp-block-heading.has-text-align-center,
  #basil-homepage-widgets > .widget_block .wp-block-heading.has-x-large-font-size {
    font-size: 28px !important;
  }
  #basil-homepage-widgets > .widget_block .wp-block-heading a {
    padding: 24px 6% 22px;
  }
}

/* Move the email signup block below the eCookbooks section */
#basil-homepage-widgets > .widget_block:has(.wp-block-jetpack-subscriptions__container) {
  order: 1;
}

/* Keep recipe card mini-descriptions a consistent height */
#basil-homepage-widgets .cooked-recipe-card-excerpt {
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------------- Travel page (/travel/) ---------------- */
.page-id-12306 .basil-main-template { width: 100% !important; max-width: 100% !important; }
.page-id-12306 .entry-title { display: none; }
.llc-travel-hero {
  background: #FBEFF1;
  padding: 54px 8% 46px;
  margin: 0 0 8px;
  border-radius: 6px;
}
.llc-travel-hero__title {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif !important;
  font-size: 44px !important;
  font-weight: 700 !important;
  color: #9C5568 !important;
  line-height: 1.15;
  margin: 0 0 20px !important;
}
.llc-travel-hero__intro {
  max-width: 720px; margin: 0 auto !important;
  font-size: 18px; line-height: 1.7; color: #5C4A42;
}
.llc-travel-section-title {
  background: #d3808e; color: #ffffff !important;
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif !important;
  font-size: 34px !important; font-weight: 700 !important;
  padding: 26px 6% !important; margin: 40px 0 34px !important; border-radius: 6px;
}
.llc-travel-posts {
  list-style: none !important; padding: 0 !important; margin: 0 0 10px !important;
  display: grid !important; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px 24px;
}
.llc-travel-posts > li { width: auto !important; background: #fff; border: 1px solid #EFE4DA; border-radius: 14px; overflow: hidden; padding: 0 0 20px; margin: 0 !important; }
.llc-travel-posts .wp-block-latest-posts__featured-image { margin: 0 0 16px; }
.llc-travel-posts .wp-block-latest-posts__featured-image img { width: 100%; height: auto; display: block; }
.llc-travel-posts > li > a { display: block; padding: 20px 20px 0; font-family: 'Fraunces', Georgia, serif !important; font-size: 20px; font-weight: 700; color: #6B4A3A !important; text-decoration: none; line-height: 1.3; }
.llc-travel-posts > li > a:hover { color: #d3808e !important; }
.llc-travel-posts .wp-block-latest-posts__post-date { display: block; padding: 8px 20px 0; font-size: 13px; color: #9C8C82; }
.llc-travel-posts .wp-block-latest-posts__post-excerpt { padding: 10px 20px 0; font-size: 15px; line-height: 1.6; color: #5C4A42; margin: 0; }
.llc-travel-magnet {
  background: #FBF4EC; border: 2px solid #E8D3BE; border-radius: 20px;
  padding: 44px 34px 34px; margin: 52px auto !important; max-width: 760px;
}
.llc-travel-magnet__title {
  font-family: 'Fraunces', Georgia, serif !important; font-size: 32px !important;
  font-weight: 700 !important; color: #8A5A3B !important; margin: 0 0 14px !important;
}
.llc-travel-magnet__sub { max-width: 560px; margin: 0 auto 26px !important; font-size: 17px; line-height: 1.6; color: #5C4A42; }
.llc-travel-magnet .wp-block-button__link { white-space: nowrap; }
.llc-travel-magnet__dl { margin: 24px 0 0 !important; }
.llc-travel-magnet__dl a {
  display: inline-block; background: #8A5A3B; color: #ffffff !important;
  padding: 15px 32px; border-radius: 999px; text-decoration: none;
  font-weight: 700; font-size: 16px; letter-spacing: .3px;
}
.llc-travel-magnet__dl a:hover { background: #6B4A3A; color: #ffffff !important; }
.llc-travel-magnet__note { font-size: 14px; color: #9C8C82; margin: 12px 0 0 !important; }
.llc-travel-footnote { margin: 44px auto 56px !important; font-size: 17px; color: #5C4A42; }
@media (max-width: 782px) {
  .llc-travel-hero { padding: 38px 6% 32px; }
  .llc-travel-hero__title { font-size: 32px !important; }
  .llc-travel-section-title { font-size: 26px !important; padding: 20px 6% !important; }
  .llc-travel-magnet { padding: 32px 20px 26px; }
  .llc-travel-magnet__title { font-size: 26px !important; }
}