/**
 * T-Shirt Cocktails - Template Styles
 *
 * Styles for archive-product, single-product, page-panier,
 * archive-recette, single-recette, home (journal), and single (article).
 *
 * @package TShirtCocktails
 * @version 1.0.0
 */

/* ========================================
   SHOP / ARCHIVE-PRODUCT
======================================== */

/* Hero */
.shop-hero {
  background-color: var(--color-icon-bg);
  border-bottom: 1px solid var(--color-footer-border);
  padding: 48px 0 44px;
}

.shop-hero__inner {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.shop-hero__pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--color-white);
  border-radius: 12px;
  padding: 10px 16px;
  font-family: var(--font-geist);
  font-size: 13px;
  font-weight: 400;
  color: var(--color-heading);
  margin-bottom: 8px;
  height: 40.8px;
}

.shop-hero__pill svg {
  flex-shrink: 0;
}

.shop-hero__title {
  margin-top: 0;
  font-family: var(--font-geist);
  font-size: 56px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -2.8px;
  line-height: 56px;
  margin-bottom: 16px;
}

.shop-hero__subtitle {
  font-family: var(--font-geist);
  font-size: 18px;
  font-weight: 400;
  color: var(--color-nav);
  max-width: 600px;
  margin: 0 auto;
  line-height: 28.8px;
}

/* Filter Bar */
.shop-filters {
    background-color: var(--color-bg);
  border-bottom: 1px solid var(--color-footer-border);
}

.shop-filters__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  gap: 16px;
}

.shop-filters__left,
.shop-filters__right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.shop-filters__count {
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-secondary);
  margin-right: 8px;
}

.filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-nav);
  border: 1px solid var(--color-footer-border);
  border-radius: 12px;
  padding: 10.5px 17px;
  background: var(--color-white);
  transition: all var(--transition);
  cursor: pointer;
  white-space: nowrap;
}

.filter-pill:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.filter-pill.active {
  background-color: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

.filter-pill--dropdown {
  gap: 8px;
}

/* Dropdown */
.filter-dropdown {
  position: relative;
}

.filter-dropdown__menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 160px;
  background: var(--color-white);
  border: 1px solid var(--color-footer-border);
  border-radius: 12px;
  padding: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  z-index: 100;
}

.filter-dropdown:hover .filter-dropdown__menu,
.filter-dropdown__menu:hover {
  display: block;
}

.filter-dropdown__menu a {
  display: block;
  padding: 10px 14px;
  font-family: var(--font-geist);
  font-size: 14px;
  color: var(--color-nav);
  border-radius: 8px;
  transition: background var(--transition);
}

.filter-dropdown__menu a:hover {
  background: var(--color-icon-bg);
  color: var(--color-primary);
}

/* Product Grid */
.shop-products {
  padding: 60px 0 100px;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 24px;
}

.product-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

/* Product Card */
.product-card {
  background: var(--color-white);
  border-radius: 22px;
  overflow: hidden;
  transition: box-shadow var(--transition);
}

.product-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

.product-card__image {
  position: relative;
  background: #f3f6f8;
  height: 480px;
  overflow: hidden;
}

.product-card__image a {
  display: block;
  height: 100%;
}

.product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-secondary);
  font-size: 14px;
  background: #f3f6f8;
}


.product-card__wishlist {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 40px;
  height: 40px;
  background: var(--color-white);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: all var(--transition);
  z-index: 2;
  color: var(--color-heading);
}
.product-card__wishlist:hover {
  transform: scale(1.1);
  color: #e74c3c;
}
.product-card__badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: rgba(255, 255, 255, 0.94);
  border-radius: 999px;
  padding: 9px 12px;
  font-family: var(--font-geist);
  font-size: 12px;
  font-weight: 400;
  color: var(--color-heading);
  z-index: 2;
}

.product-card__actions {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  transition: opacity var(--transition);
}

.product-card:hover .product-card__actions {
  opacity: 1;
}

.product-card__action-btn {
  width: 34px;
  height: 34px;
  background: var(--color-icon-bg);
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  color: var(--color-nav);
  transition: all var(--transition);
}

.product-card__action-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.product-card__info {
  padding: 20px;
}

.product-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.product-card__name {
  font-family: var(--font-geist);
  font-size: 22px;
  font-weight: 600;
  color: var(--color-heading);
  line-height: 1.3;
}

.product-card__name a {
  color: inherit;
}

.product-card__name a:hover {
  color: var(--color-primary);
}

.product-card__price {
  font-family: var(--font-geist);
  font-size: 18px;
  font-weight: 400;
  color: var(--color-heading);
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}

.product-card__variant {
  font-family: var(--font-geist);
  font-size: 13px;
  font-weight: 400;
  color: var(--color-secondary);
  margin-bottom: 4px;
}

.product-card__desc {
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-secondary);
  line-height: 1.5;
}

.product-card__desc {
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-nav);
  line-height: 1.6;
  margin: 0;
  padding: 4px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-card__emojis {
  display: flex;
  gap: 8px;
  padding: 8px 0;
}

.product-card__emoji {
  width: 32px;
  height: 32px;
  background: #eef5f8;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  line-height: 1;
}

.product-card__buttons {
  display: flex;
  gap: 8px;
  padding-top: 4px;
}

.product-card__btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 500;
  transition: all var(--transition);
  white-space: nowrap;
}

.product-card__btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
}

.product-card__btn--primary:hover {
  background: #166a7d;
  color: var(--color-white);
}

.product-card__btn--outline {
  background: var(--color-white);
  color: var(--color-heading);
  border: 1px solid var(--color-footer-border);
}

.product-card__btn--outline:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.product-card__actions-bottom {
  display: flex;
  gap: 10px;
  padding-top: 4px;
}

.product-card__action-icon {
  width: 34px;
  height: 34px;
  background: #eef5f8;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  transition: all var(--transition);
}

.product-card__action-icon:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.product-card__quick-add {
  padding-top: 4px;
}

.product-card__cart-btn {
  width: 34px;
  height: 34px;
  background: var(--color-icon-bg);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  transition: all var(--transition);
}

.product-card__cart-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* Pagination */
.shop-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-top: 48px;
}

.pagination-num {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  font-family: var(--font-geist);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-nav);
  transition: all var(--transition);
}

.pagination-num:hover {
  background: var(--color-icon-bg);
  color: var(--color-primary);
}

.pagination-num.active {
  background: var(--color-heading);
  color: var(--color-white);
}

.pagination-next {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10.5px 17px;
  border: 1px solid var(--color-footer-border);
  border-radius: 12px;
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-nav);
  margin-left: 8px;
  transition: all var(--transition);
}

.pagination-next:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* SEO Section */
.shop-seo {
  background: var(--color-icon-bg);
  padding: 60px 0 40px;
}

.shop-seo__inner {
  text-align: center;
  max-width: 680px;
  margin: 0 auto;
}

.shop-seo__title {
  font-family: var(--font-geist);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.72px;
  color: var(--color-heading);
  margin-bottom: 16px;
}

.shop-seo__text {
  font-family: var(--font-geist);
  font-size: 15px;
  font-weight: 400;
  color: var(--color-nav);
  line-height: 1.7;
}


/* ========================================
   SINGLE PRODUCT
======================================== */

.single-product-page {
  padding-top: 0;
  padding-bottom: 100px;
}


.single-product-page > .container {
  padding-left: 40px;
  padding-right: 40px;
  max-width: 1400px;
}
.sp-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
  margin-bottom: 80px;
}

/* Gallery */
.sp-gallery {
  position: relative;
}

.sp-gallery__main {
  border-radius: 22px;
  overflow: hidden;
  background: #f3f6f8;
  margin-bottom: 16px;
}

.sp-gallery__main {
  max-height: 670px;
  overflow: hidden;
}
.sp-gallery__main img {
  width: 100%;
  height: auto;
  display: block;
}

.sp-gallery__thumbs {
  display: flex;
  gap: 12px;
}

.sp-thumb {
  width: 80px;
  height: 80px;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  transition: border-color var(--transition);
  background: #f3f6f8;
  padding: 0;
}

.sp-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-thumb:hover,
.sp-thumb.active {
  border-color: var(--color-primary);
}

/* Product Info */
.sp-info {
  position: relative;
  padding-top: 20px;
}


.sp-info__wishlist {
  position: absolute;
  top: 0;
  right: 0;
  width: 44px;
  height: 44px;
  background: var(--color-white);
  border: 1px solid var(--color-footer-border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--transition);
  color: var(--color-heading);
}
.sp-info__wishlist:hover {
  transform: scale(1.1);
  color: #e74c3c;
}
.sp-info__collection {
  display: block;
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-secondary);
  text-transform: uppercase;
  letter-spacing: 1.3px;
  margin-bottom: 12px;
}

.sp-info__title {
  font-family: var(--font-inter);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.92px;
  line-height: 1.05;
  margin-bottom: 12px;
}

.sp-info__price {
  font-family: var(--font-inter);
  font-size: 18px;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 16px;
}

.sp-info__meta-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.sp-info__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-secondary);
}

.sp-info__meta-item svg {
  flex-shrink: 0;
}

.sp-info__rating {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.sp-stars {
  display: flex;
  gap: 2px;
}

.sp-info__rating-link {
  font-family: var(--font-geist);
  font-size: 14px;
  color: var(--color-secondary);
}

.sp-info__rating-link:hover {
  color: var(--color-primary);
}

.sp-info__desc {
  margin-bottom: 24px;
}

.sp-info__desc p {
  font-family: var(--font-geist);
  font-size: 15px;
  color: var(--color-nav);
  line-height: 1.7;
}

/* Size Selector */
.sp-sizes {
  margin-bottom: 24px;
}

.sp-sizes__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.sp-sizes__label {
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-heading);
}

.sp-sizes__pills {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}

.sp-size-pill {
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 500;
  color: var(--color-heading);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: all var(--transition);
}

.sp-size-pill:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.sp-size-pill.active {
  background: var(--color-heading);
  color: var(--color-white);
  border-color: var(--color-heading);
}

.sp-sizes__guide {
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 400;
  color: var(--color-primary);
  text-decoration: underline;
}

/* Add to Cart */
.sp-add-to-cart {
  margin-bottom: 24px;
}

.sp-atc-btn {
  font-family: var(--font-inter);
  font-size: 16px;
  font-weight: 600;
  height: 67px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

/* Trust Checks */
.sp-trust-checks {
  display: flex;
  flex-direction: column;
  gap: 11.5px;
  padding-top: 25px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.sp-trust-checks li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 400;
  color: var(--color-nav);
}

/* Inspiration Section */
.sp-inspiration {
  background: var(--color-icon-bg);
  padding: 60px 0 60px;
}

.sp-inspiration__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.sp-inspiration__image {
  border-radius: 24px;
  overflow: hidden;
}

.sp-inspiration__img {
  width: 100%;
  height: auto;
  display: block;
}

.sp-inspiration__label {
  display: block;
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-secondary);
  text-transform: uppercase;
  letter-spacing: 1.3px;
  margin-bottom: 12px;
}

.sp-inspiration__title {
  font-family: var(--font-inter);
  font-size: 40px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.6px;
  line-height: 1.05;
  margin-bottom: 24px;
}

.sp-inspiration__text {
  margin-bottom: 24px;
}

.sp-inspiration__text p {
  font-family: var(--font-inter);
  font-size: 16px;
  color: var(--color-heading);
  line-height: 1.7;
}

/* Tags */
.sp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}

.sp-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--color-white);
  border-radius: 12px;
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 400;
  color: var(--color-heading);
}

.sp-tag svg {
  flex-shrink: 0;
  color: var(--color-heading);
}

/* CTA Box */
.sp-cta-box {
  background: var(--color-primary);
  border-radius: 32px;
  padding: 79px 60px 80px;
  margin: 100px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.sp-cta-box__title {
  font-family: var(--font-inter);
  font-size: 36px;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: -1.44px;
  margin-bottom: 15px;
}

.sp-cta-box__text {
  font-family: var(--font-inter);
  font-size: 18px;
  color: var(--color-white);
  opacity: 0.9;
  margin-bottom: 32px;
  line-height: 1.6;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.sp-cta-box__btn {
  background: var(--color-heading);
  color: var(--color-bg);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15.5px 24px;
  border-radius: 12px;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
}

.sp-cta-box__btn:hover {
  background: rgba(23, 48, 66, 0.9);
  color: var(--color-bg);
}

/* Related Products */
.sp-related {
  padding: 61px 0 120px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.sp-related__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 48px;
}

.sp-related__title {
  font-family: var(--font-inter);
  font-size: 40px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.6px;
}

.sp-related__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 17px 25px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-heading);
  transition: all var(--transition);
}

.sp-related__link:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}


/* ========================================
   CART / PANIER
======================================== */

.cart-header {
  margin-bottom: 40px;
}

.cart-header__title {
  font-family: var(--font-geist);
  font-size: 40px;
  font-weight: 800;
  color: var(--color-heading);
  letter-spacing: -0.8px;
  line-height: 1.6;
  margin-bottom: 0;
}

.cart-header__subtitle {
  font-family: var(--font-geist);
  font-size: 18px;
  font-weight: 500;
  color: var(--color-secondary);
}

.cart-layout {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 64px;
  align-items: start;
}

/* Cart Items */
.cart-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cart-item {
  display: flex;
  gap: 32px;
  padding-bottom: 33px;
  border-bottom: 1px solid var(--color-footer-border);
}

.cart-item__image {
  width: 140px;
  height: 180px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--color-footer-border);
}

.cart-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-item__details {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.cart-item__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}

.cart-item__name {
  font-family: var(--font-geist);
  font-size: 20px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -0.2px;
  margin-bottom: 8px;
}

.cart-item__name a {
  color: inherit;
}

.cart-item__name a:hover {
  color: var(--color-primary);
}

.cart-item__variant {
  font-family: var(--font-geist);
  font-size: 15px;
  font-weight: 500;
  color: var(--color-secondary);
}

.cart-item__price {
  font-family: var(--font-geist);
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  white-space: nowrap;
}

.cart-item__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 24px;
}

.cart-item__quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--color-footer-border);
  border-radius: 12px;
  overflow: hidden;
  height: 44px;
}

.qty-btn {
  width: 44px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-heading);
  transition: all var(--transition);
}

.qty-btn:hover {
  background: var(--color-icon-bg);
  color: var(--color-primary);
}

.qty-input {
  width: 40px;
  height: 100%;
  text-align: center;
  font-family: var(--font-geist);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-heading);
  border-left: none;
  border-right: none;
  -moz-appearance: textfield;
}

.qty-input::-webkit-inner-spin-button,
.qty-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.cart-item__remove {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-geist);
  font-size: 15px;
  font-weight: 500;
  color: var(--color-secondary);
  text-decoration: underline;
  transition: color var(--transition);
}

.cart-item__remove:hover {
  color: #dc3545;
}

.cart-update-btn {
  align-self: flex-start;
  margin-top: 8px;
}

/* Cart Summary */
.cart-summary__card {
  background: var(--color-white);
  border: 1px solid var(--color-footer-border);
  border-radius: 12px;
  padding: 40px;
  position: sticky;
  top: 120px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.cart-summary__title {
  font-family: var(--font-geist);
  font-size: 22px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -0.22px;
  margin-bottom: 28px;
}

.cart-summary__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  font-family: var(--font-geist);
  font-size: 16px;
  font-weight: 500;
  color: var(--color-heading);
}

.cart-summary__value {
  font-weight: 500;
  color: var(--color-heading);
}

.cart-summary__shipping {
  color: var(--color-primary);
  font-weight: 600;
}

.cart-summary__promo {
  margin: 20px 0;
}

.promo-input-group {
  display: flex;
  gap: 8px;
}

.promo-input {
  flex: 1;
  padding: 12px 14px;
  border: 1px solid var(--color-footer-border);
  border-radius: 8px;
  font-family: var(--font-geist);
  font-size: 14px;
  color: var(--color-heading);
  background: var(--color-white);
}

.promo-input:focus {
  border-color: var(--color-primary);
  outline: none;
}

.promo-apply-btn {
  padding: 12px 16px;
  background: var(--color-heading);
  color: var(--color-white);
  border-radius: 8px;
  font-family: var(--font-geist);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--transition);
}

.promo-apply-btn:hover {
  background: var(--color-primary);
}

.cart-summary__coupon {
  font-size: 13px;
  color: var(--color-primary);
}

.cart-summary__remove-coupon {
  color: var(--color-secondary);
  font-size: 18px;
}

.cart-summary__remove-coupon:hover {
  color: #dc3545;
}

.cart-summary__divider {
  height: 1px;
  background: var(--color-footer-border);
  margin: 20px 0;
}

.cart-summary__total span:first-child {
  font-family: var(--font-geist);
  font-size: 24px;
  font-weight: 800;
  color: var(--color-primary);
}

.cart-summary__total-value {
  font-family: var(--font-geist);
  font-size: 24px;
  font-weight: 800;
  color: var(--color-primary) !important;
}

.cart-checkout-btn {
  margin-top: 24px;
  font-family: var(--font-geist);
  font-size: 18px;
  font-weight: 700;
  height: 56px;
  letter-spacing: -0.18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.cart-summary__payments {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 16px;
}

.payment-icon {
  font-family: var(--font-geist);
  font-size: 12px;
  font-weight: 600;
  color: var(--color-secondary);
  background: var(--color-icon-bg);
  padding: 6px 12px;
  border-radius: 6px;
}

.cart-summary__continue {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
  font-family: var(--font-geist);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  transition: color var(--transition);
}

.cart-summary__continue:hover {
  color: var(--color-heading);
}

/* Trust Badges */
.cart-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  padding: 49px 0;
  border-top: 1px solid var(--color-footer-border);
  border-bottom: 1px solid var(--color-footer-border);
  margin-top: 48px;
}

.cart-trust__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.cart-trust__icon {
  width: 56px;
  height: 56px;
  background: var(--color-icon-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-primary);
}

.cart-trust__item h4 {
  font-family: var(--font-geist);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-heading);
  margin-bottom: 0;
}

.cart-trust__item p {
  display: none;
}

/* Cross Sell */
.cart-cross-sell {
  padding-top: 32px;
  margin-top: 0;
}

.cart-cross-sell__title {
  font-family: var(--font-geist);
  font-size: 32px;
  font-weight: 800;
  color: var(--color-heading);
  letter-spacing: -0.64px;
  text-align: center;
  margin-bottom: 48px;
}

/* Empty Cart */
.cart-empty {
  text-align: center;
  padding: 80px 0;
}

.cart-empty__icon {
  margin-bottom: 24px;
}

.cart-empty h2 {
  margin-bottom: 12px;
}

.cart-empty p {
  margin-bottom: 24px;
  font-size: 16px;
}


/* ========================================
   RECIPES ARCHIVE
======================================== */

.recipes-hero {
  padding: 79px 0 0;
  text-align: center;
}

.recipes-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 680px;
  margin: 0 auto;
}

.recipes-hero__title {
  font-family: var(--font-inter);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.92px;
  margin-bottom: 22px;
}

.recipes-hero__subtitle {
  font-family: var(--font-inter);
  font-size: 18px;
  font-weight: 400;
  color: #405d72;
  max-width: 668px;
  margin: 0 auto;
  line-height: 1.6;
}

.recipes-listing {
  padding: 60px 0 120px;
}

.recipes-listing > .container {
  max-width: 1280px;
  padding-left: 40px;
  padding-right: 40px;
}

.recipe-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 30px;
}

/* Card = image + content (fixed height 244px) */
.recipe-card {
  background: var(--color-white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 24px;
  overflow: hidden;
}

.recipe-card:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

.recipe-card__image a {
  display: block;
}

.recipe-card__image img {
  width: 100%;
  height: 472px;
  object-fit: cover;
  display: block;
}

.recipe-card__placeholder {
  width: 100%;
  height: 472px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f6f8;
  color: #758694;
  font-size: 14px;
}

/* Content = fixed 244px, position relative for absolute footer */
.recipe-card__content {
  position: relative;
  height: 244px;
}

/* Body = top section with name, tags, desc */
.recipe-card__body {
  padding: 23px 24px 0;
}

.recipe-card__name {
  font-family: var(--font-inter);
  font-size: 24px;
  font-weight: 600;
  color: var(--color-heading);
  margin: 0 0 16px;
  line-height: 1.2;
}

.recipe-card__name a {
  color: inherit;
}

.recipe-card__name a:hover {
  color: var(--color-primary);
}

.recipe-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 15px;
  height: 33px;
  overflow: hidden;
}

.recipe-card__tag {
  display: inline-block;
  padding: 6px 12px;
  background: #eef5f8;
  border-radius: 6px;
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 400;
  color: #405d72;
  white-space: nowrap;
}

p.recipe-card__desc {
  font-family: var(--font-inter) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: #758694 !important;
  line-height: 22.5px !important;
  height: 45px !important;
  max-height: 45px !important;
  margin: 0 !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  text-overflow: ellipsis;
}

/* Footer = absolute bottom 24px */
.recipe-card__footer {
  position: absolute;
  bottom: 0;
  left: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  padding: 17px 0 24px;
}

.recipe-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
}

.recipe-card__product-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 400;
  color: #758694;
  white-space: nowrap;
}

@media (max-width: 1024px) {
  .recipe-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px 20px;
  }
  .recipes-hero__title {
    font-size: 36px;
  }
}

@media (max-width: 768px) {
  .recipe-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .recipes-hero {
    padding: 48px 0 0;
  }
  .recipes-hero__title {
    font-size: 32px;
  }
  .recipe-card__image img,
  .recipe-card__placeholder {
    height: 320px;
  }
}

/* ========================================
   JOURNAL PAGE
======================================== */

.journal-page .container.journal-container {
  max-width: 1280px !important;
  padding: 80px 40px 0 !important;
  position: relative;
  z-index: 1;
  background: #fcfbf8;
}

.page-content.journal-page {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  background: #fcfbf8;
  position: relative;
  z-index: 1;
}

.journal-header {
  text-align: center;
  margin-bottom: 60px;
}

.journal-title {
  font-family: var(--font-inter);
  font-size: 56px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -2.24px;
  margin-bottom: 12px;
}

.journal-subtitle {
  font-family: var(--font-inter);
  font-size: 18px;
  color: #758694;
  line-height: 1.6;
  max-width: 720px;
  margin: 0 auto;
}

/* Filters */
.journal-filters {
  margin-bottom: 60px;
}

.journal-filters__inner {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

.journal-filter {
  padding: 10px 21px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: #eef5f8;
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 600;
  color: #405d72;
  cursor: pointer;
  transition: all var(--transition);
}

.journal-filter:hover {
  background: var(--color-primary);
  color: white;
}

.journal-filter.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: white;
}

/* Featured Article */
.journal-featured {
  display: flex;
  background: white;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 80px;
}

.journal-featured__image {
  width: 50%;
  min-height: 450px;
  background: #f3f6f8;
  flex-shrink: 0;
}

.journal-featured__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.journal-featured__placeholder {
  width: 100%;
  height: 100%;
  min-height: 450px;
  background: #f3f6f8;
}

.journal-featured__content {
  display: flex;
  flex-direction: column;
  gap: 22px;
  justify-content: center;
  padding: 56px 48px;
  width: 50%;
}

.journal-featured__title {
  font-family: var(--font-inter);
  font-size: 36px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.08px;
  line-height: 1.1;
  margin: 0;
}

.journal-featured__desc {
  font-family: var(--font-inter);
  font-size: 16px;
  color: #758694;
  line-height: 1.7;
  margin: 0;
}

.journal-featured__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: white;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
  padding: 16px 24px;
  border-radius: 12px;
  align-self: flex-start;
}

.journal-featured__btn:hover {
  opacity: 0.9;
  color: white;
}

/* Journal Meta */
.journal-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}

.journal-cat {
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  letter-spacing: 0.65px;
  text-transform: uppercase;
}

.journal-dot {
  font-size: 13px;
  font-weight: 600;
  color: #758694;
}

.journal-date {
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 600;
  color: #758694;
}

/* Article Grid */
.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  padding-top: 20px;
}

/* Article Card */
.journal-card {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.journal-card__image {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.08);
  background: #f3f6f8;
}

.journal-card__image img {
  width: 100%;
  height: 278px;
  object-fit: cover;
  display: block;
}

.journal-card__placeholder {
  height: 278px;
  background: #f3f6f8;
}

.journal-card__content {
  display: flex;
  flex-direction: column;
  position: relative;
  min-height: 206px;
}

.journal-card__title {
  font-family: var(--font-inter);
  font-size: 22px;
  font-weight: 600;
  color: var(--color-heading);
  line-height: 1.25;
  margin: 11px 0 12px;
}

.journal-card__desc {
  font-family: var(--font-inter);
  font-size: 15px;
  color: #758694;
  line-height: 1.6;
  margin: 0;
  height: 72px;
  overflow: hidden;
}

.journal-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary);
  margin-top: auto;
  padding-top: 12px;
}

/* Pagination */
.journal-pagination {
  display: flex;
  gap: 8px;
  justify-content: center;
  padding: 40px 0 80px;
}

.journal-page {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,0.08);
  background: white;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-heading);
  cursor: pointer;
}

.journal-page.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: white;
}

.journal-page--next {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Responsive */
@media (max-width: 1024px) {
  .journal-featured { flex-direction: column; }
  .journal-featured__image { width: 100%; min-height: 300px; }
  .journal-featured__content { width: 100%; padding: 32px; }
  .journal-grid { grid-template-columns: repeat(2, 1fr); }
  .journal-title { font-size: 40px; }
}

@media (max-width: 768px) {
  .journal-container { padding: 40px 20px 0; }
  .journal-grid { grid-template-columns: 1fr; gap: 32px; }
  .journal-title { font-size: 32px; }
  .journal-featured__title { font-size: 24px; }
}

/* ========================================
   SINGLE ARTICLE (single.php)
======================================== */

.single-article-page {
  padding-bottom: 64px;
}

/* Article Header */
.article-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 40px;
}

.article-header__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-geist);
  font-size: 13px;
  margin-bottom: 16px;
}

.article-header__cat {
  color: var(--color-primary);
  text-transform: uppercase;
  font-weight: 500;
  letter-spacing: 0.5px;
}

.article-header__meta time,
.article-header__meta span {
  color: var(--color-secondary);
}

.article-header__title {
  font-family: var(--font-geist);
  font-size: 40px;
  font-weight: 700;
  color: var(--color-heading);
  line-height: 1.2;
  max-width: 800px;
  margin: 0 auto;
}

/* Featured Image */
.article-featured-image {
  max-width: 800px;
  margin: 0 auto 48px;
  border-radius: 16px;
  overflow: hidden;
}

.article-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* Article Content */
.article-content {
  max-width: 800px;
  margin: 0 auto;
  font-family: var(--font-geist);
  font-size: 16px;
  color: var(--color-nav);
  line-height: 1.8;
}

.article-content h2 {
  font-family: var(--font-geist);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-heading);
  margin: 48px 0 16px;
}

.article-content h3 {
  font-family: var(--font-geist);
  font-size: 22px;
  font-weight: 600;
  color: var(--color-heading);
  margin: 36px 0 12px;
}

.article-content p {
  font-family: var(--font-geist);
  font-size: 16px;
  color: var(--color-nav);
  line-height: 1.8;
  margin-bottom: 20px;
}

.article-content ul,
.article-content ol {
  margin: 20px 0;
  padding-left: 0;
}

.article-content ol {
  counter-reset: article-counter;
}

.article-content ol li {
  counter-increment: article-counter;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
}

.article-content ol li::before {
  content: counter(article-counter);
  width: 28px;
  height: 28px;
  min-width: 28px;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  margin-top: 2px;
}

.article-content ul li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
}

.article-content ul li::before {
  content: '';
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: var(--color-primary);
  border-radius: 50%;
  margin-top: 10px;
}

.article-content blockquote {
  border-left: 4px solid var(--color-primary);
  background: var(--color-icon-bg);
  padding: 24px;
  margin: 32px 0;
  border-radius: 0 8px 8px 0;
}

.article-content blockquote p {
  font-style: italic;
  font-size: 17px;
  color: var(--color-heading);
  margin-bottom: 0;
}

.article-content img {
  border-radius: 12px;
  margin: 24px 0;
}

.article-content .wp-block-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 32px 0;
}

.article-content .wp-block-gallery img {
  border-radius: 12px;
  margin: 0;
}

/* Inline CTA Box in article */
.article-content .wp-block-group.is-style-tsc-cta {
  background: var(--color-primary);
  border-radius: 16px;
  padding: 32px;
  margin: 40px 0;
  color: var(--color-white);
}

.article-content .wp-block-group.is-style-tsc-cta p {
  color: rgba(255, 255, 255, 0.85);
}

.article-content .wp-block-group.is-style-tsc-cta h3,
.article-content .wp-block-group.is-style-tsc-cta h2 {
  color: var(--color-white);
  margin-top: 0;
}

/* FAQ accordion in articles */
.article-content .faq-list {
  margin: 32px 0;
}

/* Tags */
.article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 800px;
  margin: 40px auto 0;
  padding-top: 24px;
  border-top: 1px solid var(--color-footer-border);
}

.article-tag {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--color-footer-border);
  border-radius: 999px;
  font-family: var(--font-geist);
  font-size: 13px;
  font-weight: 400;
  color: var(--color-nav);
  transition: all var(--transition);
}

.article-tag:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* Author Box */
.article-author {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 800px;
  margin: 40px auto 0;
  padding: 32px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 12px;
}

.article-author__avatar {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  background: var(--color-icon-bg);
}

.article-author__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.article-author__name {
  display: block;
  font-family: var(--font-geist);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-heading);
  margin-bottom: 4px;
}

.article-author__bio {
  font-family: var(--font-geist);
  font-size: 14px;
  color: var(--color-secondary);
  line-height: 1.5;
}

/* Related Articles */
.article-related {
  padding: 80px 0 100px;
  background: var(--color-icon-bg);
  border-top: 1px solid var(--color-footer-border);
}

.article-related__title {
  font-family: var(--font-geist);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-heading);
  margin-bottom: 32px;
  text-align: center;
}


/* ========================================
   RESPONSIVE
======================================== */

@media (max-width: 1024px) {
  .shop-hero__title,
  .recipes-hero__title,
  .journal-hero__title {
    font-size: 40px;
    letter-spacing: -1.6px;
  }

  .product-grid,
  .recipe-grid,
  .journal-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .product-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .sp-layout,
  .sr-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .cart-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .cart-summary__card {
    position: static;
  }

  .sr-sidebar-boxes {
    grid-template-columns: 1fr;
  }

  .journal-featured__card {
    grid-template-columns: 1fr;
  }

  .journal-featured__image {
    height: 280px;
  }

  .cart-trust {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .shop-filters__inner {
    flex-wrap: wrap;
  }
}

@media (max-width: 768px) {
  .shop-hero__title,
  .recipes-hero__title,
  .journal-hero__title {
    font-size: 32px;
    letter-spacing: -1.28px;
  }

  .shop-hero__subtitle,
  .recipes-hero__subtitle,
  .journal-hero__subtitle {
    font-size: 16px;
  }

  .product-grid,
  .product-grid--4,
  .recipe-grid,
  .journal-grid {
    grid-template-columns: 1fr;
  }

  .product-card__image {
    height: 320px;
  }

  .shop-filters {
    top: 64px;
  }

  .shop-filters__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .shop-filters__left,
  .shop-filters__right {
    flex-wrap: wrap;
  }

  .sp-info__title {
    font-size: 26px;
  }

  .sp-info__price {
    font-size: 20px;
  }

  .sr-info__title {
    font-size: 28px;
  }

  .article-header__title {
    font-size: 28px;
  }

  .cart-header__title {
    font-size: 26px;
  }

  .cart-item {
    flex-direction: column;
  }

  .cart-item__image {
    width: 100%;
    height: 200px;
  }

  .journal-featured__content {
    padding: 28px;
  }

  .journal-featured__title {
    font-size: 22px;
  }

  .article-author {
    flex-direction: column;
    text-align: center;
  }

  .journal-filters__inner {
    justify-content: flex-start;
  }
}

/* ========================================
   SINGLE ARTICLE PAGE
======================================== */

.sa-page {
  background: #fcfbf8;
}
.sa-hero-image {
  max-width: 720px;
  margin: 0 auto 40px;
}

.sa-hero-image img {
  width: 100%;
  height: 308px;
  object-fit: cover;
  object-position: center 65%;
  border-radius: 8px;
  display: block;
}


.sa-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 39px 0 20px;
}

.sa-breadcrumb a,
.sa-breadcrumb span {
  font-family: var(--font-inter);
  font-size: 14px;
  color: #758694;
}

.sa-breadcrumb__current {
  font-weight: 500;
  color: var(--color-heading);
}

.sa-header {
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
  padding: 20px 0 40px;
}

.sa-header__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 22px;
}

.sa-cat-pill {
  display: inline-block;
  background: var(--color-primary);
  color: white;
  font-family: var(--font-inter);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 5.5px 14px;
  border-radius: 12px;
}

.sa-date {
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 500;
  color: #758694;
}

.sa-title {
  font-family: var(--font-inter);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.44px;
  line-height: 1.1;
  margin: 0;
}

.sa-hero {
  max-width: 720px;
  margin: 0 auto 31px;
  border-radius: 8px;
  overflow: hidden;
  background: #f3f6f8;
}

.sa-hero img {
  width: 100%;
  height: 308px;
  display: block;
  object-fit: cover;
}

.sa-content {
  max-width: 720px;
  margin: 0 auto;
  padding-bottom: 80px;
}

.sa-content h2 {
  font-family: var(--font-inter);
  font-size: 32px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -0.64px;
  margin: 46px 0 24px;
  line-height: 1.2;
}

.sa-content > p {
  font-family: var(--font-inter);
  font-size: 17px;
  color: var(--color-heading);
  line-height: 1.7;
  margin: 0 0 16px;
}

.sa-content div p {
  margin: 0 0 12px;
}

.sa-content div p:last-child {
  margin-bottom: 0;
}

.sa-content h3 {
  font-family: var(--font-inter);
  font-weight: 600;
}

.article-related {
  background: #f1f6f8;
  padding: 56px 0 80px;
}

.article-related__title {
  font-family: var(--font-inter);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-heading);
  margin-bottom: 32px;
}

@media (max-width: 768px) {
  .sa-title { font-size: 28px; }
  .sa-header { padding: 12px 0 24px; }
  .sa-content { padding-bottom: 40px; }
}

/* ========================================
   SINGLE RECIPE PAGE
======================================== */

.sr-container {
  max-width: 1280px;
  padding: 40px 40px 80px;
}

.sr-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}

/* Left column */
.sr-left {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.sr-photo {
  border-radius: 12px;
  overflow: hidden;
  background: #f3f6f8;
}

.sr-photo img {
  width: 100%;
  height: 700px;
  object-fit: cover;
  display: block;
}

.sr-photo__placeholder {
  height: 700px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #758694;
}

/* Spirit card */
.sr-spirit {
  background: white;
  border: 1px solid #e8edf0;
  border-radius: 16px;
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.sr-spirit__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sr-spirit__title {
  font-family: var(--font-inter);
  font-size: 18px;
  font-weight: 600;
  color: var(--color-heading);
}

.sr-spirit__badge {
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
}

.sr-spirit__text {
  font-family: var(--font-inter);
  font-size: 14px;
  color: #758694;
  line-height: 1.7;
  margin: 0;
}

/* T-shirt block */
.sr-tshirt {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  background: #eef5f8;
  border-radius: 16px;
  padding: 20px;
}

.sr-tshirt__photo {
  background: white;
  border-radius: 6px;
  overflow: hidden;
}

.sr-tshirt__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sr-tshirt__info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 5px 0 6px;
}

.sr-tshirt__label {
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary);
}

.sr-tshirt__name {
  font-family: var(--font-inter);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-heading);
  margin: 0;
  line-height: 1.08;
}

.sr-tshirt__desc {
  font-family: var(--font-inter);
  font-size: 15px;
  color: #405d72;
  line-height: 1.65;
  margin: 0;
}

.sr-tshirt__features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sr-tshirt__features li {
  font-family: var(--font-inter);
  font-size: 14px;
  color: #405d72;
}

.sr-tshirt__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: white;
  font-family: var(--font-inter);
  font-size: 15px;
  font-weight: 600;
  padding: 11px 20px;
  border-radius: 12px;
  align-self: flex-start;
}

.sr-tshirt__btn:hover {
  opacity: 0.9;
  color: white;
}

/* Right column */
.sr-right {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 20px;
}

.sr-meta {
  display: flex;
  gap: 16px;
}

.sr-meta__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 500;
  color: #758694;
}

.sr-meta__item svg {
  flex-shrink: 0;
}

.sr-title {
  font-family: var(--font-inter);
  font-size: 48px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -1.92px;
  margin: -25px 0 0;
}

.sr-desc {
  font-family: var(--font-inter);
  font-size: 16px;
  color: #758694;
  line-height: 1.6;
  margin: -25px 0 0;
}

/* Author */
.sr-author {
  background: white;
  border: 1px solid #e8edf0;
  border-radius: 16px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  gap: 16px;
}

img.sr-author__avatar {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.sr-author__label {
  display: block;
  font-family: var(--font-inter);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-primary);
}

.sr-author__name {
  display: block;
  font-family: var(--font-inter);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-heading);
}

/* Ingredients */
.sr-heading {
  font-family: var(--font-inter);
  font-size: 24px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -0.5px;
  margin: 0;
}

.sr-ingredients {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sr-ingredient {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.sr-ingredient__name {
  font-family: var(--font-inter);
  font-size: 16px;
  color: var(--color-heading);
}

.sr-ingredient__qty {
  font-family: var(--font-inter);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
}

/* Steps */
.sr-steps {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sr-step {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.sr-step__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  background: var(--color-primary);
  color: white;
  border-radius: 16px;
  font-family: var(--font-inter);
  font-size: 16px;
  font-weight: 600;
}

.sr-step__text {
  font-family: var(--font-inter);
  font-size: 16px;
  color: var(--color-heading);
  line-height: 1.6;
  margin: 4px 0 0;
}

/* History section */
.sr-history {
  background: #f1f6f8;
  border-radius: 16px;
  padding: 40px 44px;
  margin-top: 56px;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 64px;
}

.sr-history__label {
  display: block;
  font-family: var(--font-inter);
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 16px;
}

.sr-history__title {
  font-family: var(--font-inter);
  font-size: 32px;
  font-weight: 700;
  color: var(--color-heading);
  letter-spacing: -0.96px;
  margin: 0 0 16px;
}

.sr-history__text {
  font-family: var(--font-inter);
  font-size: 15px;
  color: #758694;
  line-height: 1.75;
  margin: 0 0 16px;
  max-width: 980px;
}

.sr-history__text:last-child {
  margin-bottom: 0;
}

/* Responsive */
@media (max-width: 1024px) {
  .sr-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .sr-photo img { height: 500px; }
  .sr-title { font-size: 36px; }
}

@media (max-width: 768px) {
  .sr-container { padding: 40px 20px 80px; }
  .sr-photo img { height: 400px; }
  .sr-tshirt { grid-template-columns: 1fr; }
  .sr-title { font-size: 28px; }
  .sr-heading { font-size: 24px; }
  .sr-history { padding: 24px; }
  .sr-history__title { font-size: 24px; }
}


/* Hide badges until JS verifies */
.cart-count, .wishlist-count { display: none !important; }


/* ===== SINGLE RECIPE — LAYOUT EN COLONNE UNIQUE ===== */
.sr-single-col {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 760px;
  margin: 0 auto;
  padding-top: 32px;
  padding-bottom: 48px;
}

/* Titre */
.sr-single-col .sr-title {
  font-size: 48px;
  font-weight: 700;
  letter-spacing: -2px;
  line-height: 1.1;
  color: #173042;
  margin-bottom: 0;
}

/* Photo */
.sr-single-col .sr-photo {
  border-radius: 16px;
  overflow: hidden;
  width: 100%;
  height: 480px;
  object-fit: cover;
  background: #f3f6f8;
}

.sr-single-col .sr-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Meta (5 min / Facile / Verre) */
.sr-single-col .sr-meta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  background: #f3f6f8;
  border-radius: 16px;
  padding: 20px 24px;
}

.sr-single-col .sr-meta .sr-meta__item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #44697c;
  font-size: 14px;
  font-weight: 500;
}

/* Auteur */
.sr-single-col .sr-author {
  background: #fff;
  border-radius: 16px;
  padding: 24px 28px;
  border: 1px solid #e8edf0;
}

/* Description */
.sr-single-col .sr-desc {
  font-size: 17px;
  color: #44697c;
  line-height: 1.7;
}

/* Headings ingredients / steps */
.sr-single-col .sr-heading {
  font-size: 24px;
  font-weight: 700;
  color: #173042;
  margin-bottom: 4px;
}

/* Ingredients */
.sr-single-col .sr-ingredients {
  border-left: 3px solid #e3e8ec;
  padding-left: 20px;
}

/* Steps */
.sr-single-col .sr-steps {
  /* default spacing from parent gap */
}

/* Spirit block */
.sr-single-col .sr-spirit {
  background: #fff;
  border-radius: 16px;
  padding: 32px 36px;
  border: 1px solid #e8edf0;
}

/* T-shirt block */
.sr-single-col .sr-tshirt {
  background: #eef5f8;
  border-radius: 16px;
  padding: 28px 32px;
}

/* History block (outside single-col) */
.sr-history {
  background: #f1f6f8;
  border-radius: 16px;
  padding: 40px 44px;
  max-width: 760px;
  margin: 0 auto 64px;
}

/* Responsive */
@media (max-width: 640px) {
  .sr-single-col {
    gap: 28px;
    padding-top: 20px;
  }
  .sr-single-col .sr-title {
    font-size: 32px;
  }
  .sr-single-col .sr-photo {
    height: 260px;
    border-radius: 12px;
  }
  .sr-single-col .sr-meta {
    border-radius: 12px;
  }
  .sr-single-col .sr-author {
    border-radius: 12px;
  }
  .sr-single-col .sr-spirit {
    padding: 24px 20px;
    border-radius: 12px;
  }
  .sr-single-col .sr-tshirt {
    padding: 20px 16px;
    border-radius: 12px;
  }
  .sr-history {
    border-radius: 12px;
    padding: 28px 20px;
  }
}

/* ===TSC-RECIPE-MOBILE-GAP-START=== */
@media (max-width: 1024px) {
  .sr-recipe { gap: 28px !important; }
  .sr-recipe .sr-spirit { margin-top: 4px; }
}
/* ===TSC-RECIPE-MOBILE-GAP-END=== */

/* ===TSC-RECIPE-DESKTOP-SPACING-START=== */
/* 1. Plus d'air entre card auteur et description */
.sr-desc { margin-top: 16px !important; }

/* 2. Espace entre titre "Préparation" / "Ingrédients" et leurs items */
.sr-steps-block .sr-heading,
.sr-steps-block h2,
.sr-ingredients-block .sr-heading,
.sr-ingredients-block h2 { margin-bottom: 20px !important; }

/* 3. Espace entre eyebrow "Le t-shirt associé" et titre "T-Shirt Spritz" */
.sr-tshirt__label { margin-bottom: 8px !important; display: block; }
.sr-tshirt__name { margin-top: 0 !important; }
.sr-tshirt__desc { margin-top: 10px !important; }
/* ===TSC-RECIPE-DESKTOP-SPACING-END=== */

/* ===TSC-RECIPE-MOBILE-5PTS-START=== */
@media (max-width: 768px) {
  /* 1. Espace entre header et photo */
  .sr-container { padding-top: 24px !important; }

  /* 2. Espace entre photo et titre Aperol Spritz (annuler le -25px) */
  .sr-title { margin-top: 16px !important; }

  /* 3. Réduire écart card auteur ↔ desc "Le symbole..." */
  .sr-author { margin-bottom: 8px !important; }
  .sr-desc { margin-top: 8px !important; }

  /* 4. Ingrédients pleine largeur mobile */
  .sr-ingredients-block,
  .sr-ingredients,
  .sr-ingredients-block .sr-ingredients { width: 100% !important; max-width: 100% !important; }

  /* 5. Card Esprit du cocktail : annuler le grid 52px+1fr (pas d'icône) */
  .sr-spirit {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    padding: 24px !important;
    gap: 12px !important;
  }
  .sr-spirit__icon { display: none !important; }
}
/* ===TSC-RECIPE-MOBILE-5PTS-END=== */

/* ===TSC-RECIPE-E6-TITLE-ONLY-START=== */
/* E6 — descendre le titre Aperol Spritz (8px) */
.sr-title { margin-top: 8px !important; }
/* ===TSC-RECIPE-E6-TITLE-ONLY-END=== */

/* ===TSC-RECIPE-E7-DESC30-START=== */
/* E7 — gap auteur↔desc 30px desktop (24 flex gap + 6 mt) */
.sr-desc { margin-top: 6px !important; }

@media (max-width: 1024px) {
  /* Mobile/tablet : flex gap 28px sur .sr-recipe → mt = 2px pour total 30px */
  .sr-desc { margin-top: 2px !important; }
}
/* ===TSC-RECIPE-E7-DESC30-END=== */

/* ===TSC-RECIPE-E8B-CARD-START=== */
/* E8b — .sr-recipe-card : white card unifiée mobile pour Ingrédients + Préparation */
@media (max-width: 768px) {
  .sr-recipe .sr-recipe-card {
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 16px !important;
    padding: 24px 20px !important;
    box-sizing: border-box !important;
  }
  /* Les 2 blocs internes sans background, ils héritent de la card parent */
  .sr-recipe .sr-recipe-card .sr-ingredients-block,
  .sr-recipe .sr-recipe-card .sr-steps-block {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* Séparation visuelle légère entre les 2 blocs */
  .sr-recipe .sr-recipe-card .sr-steps-block {
    margin-top: 24px !important;
  }
  /* Cacher le badge "À connaître" sur mobile */
  .sr-spirit__badge { display: none !important; }
}

/* Desktop : .sr-recipe-card transparent (laisse les 2 blocs comme avant) */
@media (min-width: 769px) {
  .sr-recipe .sr-recipe-card {
    background: transparent;
    border: none;
    padding: 0;
    display: contents;
  }
}
/* ===TSC-RECIPE-E8B-CARD-END=== */

/* ===TSC-RECIPE-E8C-HISTORY-BADGE-START=== */
/* E8c — Espacement histoire ↔ footer mobile (était 0px = collé) */
@media (max-width: 768px) {
  .sr-history { margin-bottom: 48px !important; }

  /* Cacher le badge "À connaître" sur mobile (sélecteur fort) */
  body .sr-spirit__badge,
  .sr-recipe .sr-spirit__badge,
  .sr-spirit .sr-spirit__badge { display: none !important; }
}
/* ===TSC-RECIPE-E8C-HISTORY-BADGE-END=== */

/* ===TSC-RECIPE-E8D-HEADING-GAP-START=== */
/* E8d — Mobile : 8px d'air entre titre Ingrédients/Préparation et leurs items */
@media (max-width: 768px) {
  .sr-recipe .sr-recipe-card .sr-ingredients-block .sr-heading,
  .sr-recipe .sr-recipe-card .sr-ingredients-block h2,
  .sr-recipe .sr-recipe-card .sr-steps-block .sr-heading,
  .sr-recipe .sr-recipe-card .sr-steps-block h2 {
    margin-bottom: 16px !important;
  }
}
/* ===TSC-RECIPE-E8D-HEADING-GAP-END=== */

/* ===TSC-RECIPE-E9-TSHIRT-MOBILE-CARD-START=== */
/* Desktop : nouvelle card cachée (on garde .sr-tshirt original) */
@media (min-width: 769px) {
  .sr-tshirt-mobile-card { display: none !important; }
}

/* Mobile : cacher .sr-tshirt original, montrer la card compacte */
@media (max-width: 768px) {
  .sr-tshirt { display: none !important; }

  .sr-tshirt-mobile-card {
    margin: 32px 0 16px;
    text-align: center;
  }
  .sr-tshirt-mobile-card__eyebrow {
    display: block;
    font-family: var(--font-inter, system-ui);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: rgb(117, 134, 148);
    text-transform: uppercase;
    margin-bottom: 16px;
  }
  .sr-tshirt-mobile-card__inner {
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 12px;
    text-decoration: none;
    gap: 16px;
    transition: box-shadow 0.2s ease;
  }
  .sr-tshirt-mobile-card__inner:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  }
  .sr-tshirt-mobile-card__photo {
    flex: 0 0 88px;
    width: 88px;
    height: 88px;
    background: rgb(238, 245, 248);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .sr-tshirt-mobile-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .sr-tshirt-mobile-card__info {
    flex: 1 1 auto;
    text-align: left;
    min-width: 0;
  }
  .sr-tshirt-mobile-card__name {
    font-family: var(--font-inter, system-ui);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-heading, #173042);
    margin: 0 0 4px;
    line-height: 1.2;
  }
  .sr-tshirt-mobile-card__sub {
    font-family: var(--font-inter, system-ui);
    font-size: 13px;
    color: rgb(117, 134, 148);
    margin: 0 0 6px;
    line-height: 1.4;
  }
  .sr-tshirt-mobile-card__price {
    display: block;
    font-family: var(--font-inter, system-ui);
    font-size: 17px;
    font-weight: 700;
    color: var(--color-primary, #1f8ca5);
  }
  .sr-tshirt-mobile-card__price .woocommerce-Price-amount {
    color: var(--color-primary, #1f8ca5);
    font-weight: 700;
  }
  .sr-tshirt-mobile-card__arrow {
    flex: 0 0 24px;
    font-size: 18px;
    color: var(--color-heading, #173042);
    text-align: right;
  }
}
/* ===TSC-RECIPE-E9-TSHIRT-MOBILE-CARD-END=== */

/* ===TSC-RECIPE-E9B-CARD-POLISH-START=== */
/* E9b — Polish card t-shirt mobile : photo +grande, fleche turquoise +grande +bas */
@media (max-width: 768px) {
  /* Card inner : align items en stretch pour permettre fleche en bas */
  .sr-tshirt-mobile-card__inner {
    align-items: stretch !important;
    padding: 14px !important;
  }
  /* Photo plus grande */
  .sr-tshirt-mobile-card__photo {
    flex: 0 0 112px !important;
    width: 112px !important;
    height: 112px !important;
    border-radius: 10px !important;
  }
  /* Info : align en column avec space-between → titre+desc en haut, prix en bas */
  .sr-tshirt-mobile-card__info {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding: 4px 0 !important;
  }
  /* Fleche turquoise, plus grande, alignée en bas (au niveau du prix) */
  .sr-tshirt-mobile-card__arrow {
    flex: 0 0 32px !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    color: var(--color-primary, #1f8ca5) !important;
    text-align: right !important;
    align-self: flex-end !important;
    line-height: 1 !important;
    padding-right: 4px !important;
    padding-bottom: 4px !important;
  }
}
/* ===TSC-RECIPE-E10-SPIRIT-REORDER-START=== */
/* Cacher le spirit desktop dans la colonne gauche sur mobile */
@media (max-width: 768px) {
  .sr-recipe__left .sr-spirit { display: none !important; }
  
  /* Afficher la version mobile placée après la recette */
  .sr-spirit-mobile {
    display: block !important;
    margin-top: 24px !important;
  }
}

/* Desktop : cacher la version mobile */
@media (min-width: 769px) {
  .sr-spirit-mobile { display: none !important; }
}
/* ===TSC-RECIPE-E10-SPIRIT-REORDER-END=== */

/* ===TSC-RECIPE-CARD-FIGMA-EXACT-START=== */
/* Card Ingredients/Preparation : valeurs Figma exactes (KTVE7vwf node 87:5984) */
@media (max-width: 768px) {
  .sr-recipe .sr-recipe-card {
    background: #ffffff !important;
    border: 1px solid #d9e2e8 !important;
    border-radius: 20px !important;
    padding: 25px !important;
  }
}
/* ===TSC-RECIPE-CARD-FIGMA-EXACT-END=== */
