/* ==========================================================================
   Recipe Showcase v2.0 — JoyfulCook visual refresh
   Styling-only refresh. All PHP, shortcode, query and JavaScript behaviour
   remain untouched. Every rule is scoped to .rs to protect the host theme.
   ========================================================================== */

.rs {
    --rs-green: #245b43;
    --rs-green-deep: #173e2e;
    --rs-amber: #d98b42;
    --rs-amber-deep: #a85e28;
    --rs-ink: #202b25;
    --rs-body: #59645d;
    --rs-muted: #78827b;
    --rs-line: #e8e8df;
    --rs-soft: #f5f5ee;
    --rs-star: #e7a64a;
    --rs-r-lg: 30px;
    --rs-r-md: 19px;

    display: grid;
    /* desktop columns: intro 2 : featured recipe 5 : the other recipes 3 (adjustable in the settings) */
    grid-template-columns: var(--rs-cols, minmax(180px, 2fr) minmax(0, 5fr) minmax(0, 3fr));
    gap: clamp(20px, 2.2vw, 34px);
    align-items: stretch;
    width: 100%;
    max-width: 1540px;
    margin: 0 auto;
    padding: clamp(10px, 1.2vw, 18px);
    box-sizing: border-box;
    color: var(--rs-ink);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
.rs *, .rs *::before, .rs *::after { box-sizing: border-box; }
.rs a { text-decoration: none; box-shadow: none; }
.rs button { font-family: inherit; text-transform: none; letter-spacing: 0; text-shadow: none; }
.rs :focus-visible { outline: 3px solid var(--rs-amber); outline-offset: 4px; }
.rs .rs-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rs .rs-icon { flex: none; display: block; width: 18px; height: 18px; }
.rs .rs-icon--star { fill: currentColor; stroke: none; }
.rs h2, .rs h3, .rs h4 { text-transform: none; letter-spacing: -.035em; }

/* Ratings */
.rs .rs-rating { display: inline-flex; align-items: center; gap: 7px; }
.rs .rs-stars { position: relative; display: inline-block; font-size: 15px; line-height: 1; letter-spacing: 1px; color: #deded5; white-space: nowrap; }
.rs .rs-stars::before { content: '\2605\2605\2605\2605\2605'; }
.rs .rs-stars > i { position: absolute; left: 0; top: 0; width: calc(var(--r, 0) / 5 * 100%); overflow: hidden; color: var(--rs-star); font-style: normal; white-space: nowrap; }
.rs .rs-stars > i::before { content: '\2605\2605\2605\2605\2605'; }
.rs .rs-rating__count { font-size: .8rem; font-weight: 600; color: var(--rs-muted); }

/* Editorial introduction */
.rs .rs-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-width: 0;
    padding: clamp(18px, 2.2vw, 34px) 0;
}
.rs .rs-title {
    position: relative;
    margin: 0 0 22px;
    padding: 0 0 19px;
    color: var(--rs-ink);
    font-size: clamp(2.25rem, 3.25vw, 3.65rem);
    font-weight: 800;
    line-height: .99;
    letter-spacing: -.065em;
    font-family: inherit !important;
    text-wrap: balance;
}
.rs .rs-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 58px;
    height: 4px;
    border-radius: 9px;
    background: var(--rs-amber);
}
.rs .rs-lede { margin: 0 0 24px; padding: 0; color: var(--rs-body); font-size: .98rem; line-height: 1.8; }
.rs .rs-facts { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 27px; padding: 0; list-style: none; }
.rs .rs-facts > li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 12px;
    border: 1px solid var(--rs-line);
    border-radius: 12px;
    background: #fff;
    color: var(--rs-ink);
    font-size: .83rem;
    font-weight: 650;
    list-style: none;
}
.rs .rs-facts > li::before, .rs .rs-facts > li::marker { content: none; }
.rs .rs-facts .rs-icon { width: 16px; height: 16px; color: var(--rs-amber-deep); }
.rs .rs-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; width: 100%; max-width: 260px; }

/* Buttons */
.rs .rs-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 51px;
    padding: 0 23px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .9rem;
    font-weight: 750;
    line-height: 1;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
}
.rs .rs-btn--primary, .rs .rs-btn--primary:visited {
    background: var(--rs-green);
    box-shadow: 0 9px 20px rgba(36, 91, 67, .18);
    color: #fff;
}
.rs .rs-btn--primary:hover, .rs .rs-btn--primary:focus {
    background: var(--rs-green-deep);
    box-shadow: 0 12px 25px rgba(36, 91, 67, .24);
    color: #fff;
    transform: translateY(-2px);
}
.rs .rs-btn--ghost, .rs .rs-btn--ghost:visited { background: transparent; border-color: #d6ddd4; color: var(--rs-green); }
.rs .rs-btn--ghost:hover, .rs .rs-btn--ghost:focus { background: var(--rs-soft); border-color: var(--rs-green); color: var(--rs-green-deep); transform: translateY(-2px); }
.rs .rs-browse { display: none; }

/* Featured recipe */
.rs .rs-feature {
    position: relative;
    min-height: 590px;
    border: 1px solid rgba(25, 54, 38, .08);
    border-radius: var(--rs-r-lg);
    overflow: hidden;
    background: #d9ded3;
    box-shadow: 0 24px 55px rgba(28, 49, 35, .16);
    isolation: isolate;
    transform: translateZ(0);
}
.rs .rs-feature__link, .rs .rs-feature__link:hover, .rs .rs-feature__link:focus, .rs .rs-feature__link:visited {
    position: absolute; inset: 0; display: block; color: #fff; text-decoration: none;
}
.rs .rs-feature__media { position: absolute; inset: 0; display: block; background: linear-gradient(135deg, #477c5c, #163e2c); }
.rs .rs-feature__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 25, 16, .08) 5%, rgba(8, 25, 16, .02) 34%, rgba(8, 25, 16, .48) 66%, rgba(8, 25, 16, .91) 100%);
    pointer-events: none;
}
.rs .rs-feature__img {
    display: block; position: absolute; inset: 0; width: 100% !important; height: 100% !important;
    max-width: none; object-fit: cover; transition: transform 1s cubic-bezier(.2, .7, .2, 1);
}
.rs .rs-feature__link:hover .rs-feature__img { transform: scale(1.045); }
.rs .rs-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, .4); }
.rs .rs-placeholder .rs-icon { width: 56px; height: 56px; }

.rs .rs-feature__tag {
    position: absolute; top: 22px; left: 22px; z-index: 2;
    display: inline-flex; align-items: center; gap: 8px;
    max-width: calc(100% - 44px);
    padding: 10px 15px 10px 12px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 7px 22px rgba(0,0,0,.12);
    color: var(--rs-green-deep);
    font-size: .77rem; font-weight: 800; line-height: 1.2;
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.rs .rs-feature__tag .rs-icon { width: 14px; height: 14px; color: var(--rs-amber-deep); }

.rs .rs-feature__body {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    display: flex; flex-direction: column; align-items: flex-start; gap: 11px;
    padding: clamp(24px, 3vw, 38px);
}
.rs .rs-feature__cat { color: #f5c98d; font-size: .82rem; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .09em; }
.rs .rs-feature__title {
    margin: 0; padding: 0; color: #fff;
    font-size: clamp(1.9rem, 2.8vw, 3rem); font-weight: 800; line-height: 1.03;
    letter-spacing: -.045em; text-wrap: balance; text-shadow: 0 2px 18px rgba(0,0,0,.25);
}
.rs .rs-feature__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.rs .rs-feature__chip {
    display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px;
    border: 1px solid rgba(255,255,255,.25); border-radius: 999px;
    background: rgba(255,255,255,.15); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: #fff; font-size: .8rem; font-weight: 650; line-height: 1.2;
}
.rs .rs-feature__chip .rs-icon { width: 15px; height: 15px; }
.rs .rs-feature__chip .rs-stars { color: rgba(255,255,255,.38); font-size: 14px; }
.rs .rs-feature__chip .rs-rating__count { color: #fff; }
.rs .rs-feature__cta {
    display: inline-flex; align-items: center; gap: 12px; margin-top: 5px;
    padding: 6px 7px 6px 20px; border-radius: 999px;
    background: #fff; color: var(--rs-green-deep); font-size: .9rem; font-weight: 800; line-height: 1;
    transition: background .2s ease, color .2s ease;
}
.rs .rs-feature__cta .rs-icon {
    width: 37px; height: 37px; padding: 10px; border-radius: 50%;
    background: var(--rs-green); color: #fff; transition: transform .25s ease;
}
.rs .rs-feature__link:hover .rs-feature__cta { background: #f4c98d; color: var(--rs-green-deep); }
.rs .rs-feature__link:hover .rs-feature__cta .rs-icon { transform: translateX(3px); }

/* Recipe picks */
.rs .rs-more { display: flex; flex-direction: column; gap: 19px; min-width: 0; padding: 5px 0; }
.rs .rs-more__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; }
.rs .rs-more__title { margin: 0; padding: 0; color: var(--rs-ink); font-size: 1.22rem; font-weight: 800; line-height: 1.2; letter-spacing: -.04em; }
.rs .rs-shuffle {
    display: inline-flex; align-items: center; gap: 7px; height: 39px; margin: 0; padding: 0 13px;
    border: 1px solid var(--rs-line); border-radius: 999px; background: #fff; color: var(--rs-green);
    font-size: .78rem; font-weight: 750; line-height: 1; cursor: pointer; box-shadow: 0 3px 10px rgba(30,50,35,.04);
    transition: background .2s ease, border-color .2s ease, transform .15s ease, box-shadow .2s ease;
}
.rs .rs-shuffle:hover { background: var(--rs-soft); border-color: #c8d3c8; box-shadow: 0 5px 14px rgba(30,50,35,.08); }
.rs .rs-shuffle:active { transform: scale(.97); }
.rs .rs-shuffle[disabled] { cursor: default; opacity: .7; }
.rs .rs-shuffle .rs-icon { width: 16px; height: 16px; }
.rs .rs-shuffle.is-busy .rs-icon { animation: rs-spin .7s linear infinite; }
@keyframes rs-spin { to { transform: rotate(360deg); } }

.rs .rs-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 17px;
    transition: opacity .25s ease, transform .25s ease;
}
.rs .rs-grid.is-shuffling { opacity: .3; transform: scale(.985); }
.rs .rs-card, .rs .rs-card:hover, .rs .rs-card:focus, .rs .rs-card:visited {
    display: flex; flex-direction: column; gap: 10px; min-width: 0; color: inherit; text-decoration: none;
}
.rs .rs-card__media {
    position: relative; display: block; aspect-ratio: 1 / 1; border-radius: var(--rs-r-md);
    overflow: hidden; background: var(--rs-soft); transform: translateZ(0);
    box-shadow: 0 5px 16px rgba(28,49,35,.07);
}
.rs .rs-card__img {
    display: block; position: absolute; inset: 0; width: 100% !important; height: 100% !important;
    max-width: none; object-fit: cover; transition: transform .65s cubic-bezier(.2, .7, .2, 1), filter .4s ease;
}
.rs .rs-card:hover .rs-card__img { transform: scale(1.065); filter: saturate(1.06); }
.rs .rs-card .rs-placeholder { color: #b7beb9; }
.rs .rs-card .rs-placeholder .rs-icon { width: 40px; height: 40px; }
.rs .rs-card__time, .rs .rs-card__new {
    position: absolute; display: inline-flex; align-items: center; gap: 5px; border-radius: 999px;
    font-size: .7rem; font-weight: 800; line-height: 1.2;
}
.rs .rs-card__time {
    left: 9px; bottom: 9px; padding: 6px 10px 6px 8px;
    background: rgba(255,255,255,.94); color: #344237; box-shadow: 0 3px 10px rgba(0,0,0,.12);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.rs .rs-card__time .rs-icon { width: 12px; height: 12px; }
.rs .rs-card__new { top: 9px; left: 9px; padding: 6px 10px; background: var(--rs-amber); color: #fff; box-shadow: 0 3px 10px rgba(74,46,7,.2); }
.rs .rs-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 0 1px; }
.rs .rs-card__cat { color: var(--rs-amber-deep); font-size: .72rem; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .075em; }
.rs .rs-card__title {
    margin: 0; padding: 0; color: var(--rs-ink); font-family: inherit !important;
    font-size: .98rem; font-weight: 750; line-height: 1.28; letter-spacing: -.025em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    transition: color .15s ease;
}
.rs .rs-card:hover .rs-card__title { color: var(--rs-green); }
.rs .rs-card__body .rs-rating { margin-top: 2px; }
.rs .rs-card__body .rs-stars { font-size: 13px; }
.rs .rs-status { margin: 0; color: var(--rs-muted); font-size: .85rem; }
.rs .rs-status.is-error { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; color: #a33a1a; }

/* Subtle entrance animation (existing JS hook retained) */
.rs-js [data-rs] { transition: opacity .8s cubic-bezier(.22,.8,.24,1) var(--rs-d,0s), transform .8s cubic-bezier(.22,.8,.24,1) var(--rs-d,0s); }
.rs-js [data-rs]:not(.is-in) { opacity: 0; transform: translateY(22px); }

/* Laptop */
@media (max-width: 1200px) and (min-width: 991px) {
    .rs { gap: 22px; grid-template-columns: var(--rs-cols, minmax(180px, 2fr) minmax(0, 5fr) minmax(0, 3fr)); }
    .rs .rs-feature { min-height: 540px; }
    .rs .rs-grid { gap: 20px 13px; }
    .rs .rs-card__title { font-size: .92rem; }
}

/* Tablet */
@media (max-width: 990px) {
    .rs { grid-template-columns: minmax(0,1fr); gap: 25px; max-width: 100%; padding: 8px 0; }
    .rs .rs-intro { padding: 8px 0 0; text-align: center; align-items: center; }
    .rs .rs-title { margin-bottom: 13px; padding-bottom: 15px; font-size: clamp(2.25rem,5vw,3rem); }
    .rs .rs-title::after { left: 50%; transform: translateX(-50%); }
    .rs .rs-lede { max-width: 650px; margin-bottom: 16px; }
    .rs .rs-facts { justify-content: center; margin-bottom: 18px; }
    .rs .rs-actions { display: flex; flex-wrap: wrap; justify-content: center; max-width: none; }
    .rs .rs-btn { min-height: 46px; }
    .rs .rs-feature { min-height: 0; aspect-ratio: 16 / 10; border-radius: 26px; }
    .rs .rs-feature__body { padding: 28px; }
    .rs .rs-more { gap: 17px; }
    .rs .rs-more__title { font-size: 1.35rem; }
    .rs .rs-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px 15px; }
    .rs .rs-card__title { font-size: .92rem; }
    .rs .rs-browse { display: inline-flex; align-self: stretch; margin-top: 4px; }
}

/* Mobile */
@media (max-width: 690px) {
    .rs { padding: 0 14px; gap: 22px; }
    .rs .rs-title { font-size: clamp(2rem,9vw,2.55rem); }
    .rs .rs-lede { font-size: .92rem; line-height: 1.7; }
    .rs .rs-facts { gap: 8px; }
    .rs .rs-facts > li { padding: 8px 10px; font-size: .77rem; }
    .rs .rs-actions { width: 100%; }
    .rs .rs-btn { flex: 1 1 180px; padding: 0 17px; }
    .rs .rs-feature { aspect-ratio: 4 / 5; border-radius: 23px; }
    .rs .rs-feature__tag { top: 14px; left: 14px; max-width: calc(100% - 28px); padding: 8px 11px 8px 9px; font-size: .69rem; }
    .rs .rs-feature__body { padding: 21px; gap: 9px; }
    .rs .rs-feature__title { font-size: clamp(1.7rem,7vw,2.25rem); }
    .rs .rs-feature__cat { font-size: .73rem; }
    .rs .rs-feature__chip { padding: 6px 10px; font-size: .73rem; }
    .rs .rs-feature__cta { font-size: .84rem; }
    .rs .rs-more__head { min-height: 38px; }
    .rs .rs-more__title { font-size: 1.2rem; }
    .rs .rs-shuffle { height: 37px; padding: 0 11px; font-size: .73rem; }
    .rs .rs-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 14px; }
    .rs .rs-card { gap: 9px; }
    .rs .rs-card__media { border-radius: 16px; }
    .rs .rs-card__title { font-size: .94rem; }
    .rs .rs-card__time { left: 7px; bottom: 7px; padding: 5px 8px 5px 6px; font-size: .65rem; }
    .rs .rs-card__new { top: 7px; left: 7px; padding: 5px 8px; font-size: .64rem; }
}
@media (max-width: 380px) {
    .rs { padding: 0 10px; }
    .rs .rs-title { font-size: 1.9rem; }
    .rs .rs-feature__title { font-size: 1.55rem; }
    .rs .rs-shuffle span { display: none; }
    .rs .rs-shuffle { padding: 0 11px; }
    .rs .rs-feature__body { padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
    .rs *, .rs *::before, .rs *::after { animation: none !important; transition: none !important; }
    .rs-js [data-rs]:not(.is-in) { opacity: 1; transform: none; }
}


/* ==========================================================================
   v2.1 ADDITIONS
   1) Featured-tag motion restored from the original plugin (CSS only, no JS)
   2) "Stage" layout:  [recipe_showcase layout="stage"]
   ========================================================================== */

/* ---------- 1) Featured badge: motion + sparkles (Recipe Showcase > Behaviour) ----------
   Each motion lives in --rs-mo and is applied to the badge of every layout.
   --rs-tag-k scales the speed (slow 1.6, normal 1, lively .62). */

.rs.rs-tag--float  { --rs-mo: rs-float calc(4.4s * var(--rs-tag-k, 1)) ease-in-out infinite; }
.rs.rs-tag--glide  { --rs-mo: rs-glide calc(5.6s * var(--rs-tag-k, 1)) ease-in-out infinite; }
.rs.rs-tag--drift  { --rs-mo: rs-drift calc(7.2s * var(--rs-tag-k, 1)) ease-in-out infinite; }
.rs.rs-tag--pulse  { --rs-mo: rs-pulse calc(2.8s * var(--rs-tag-k, 1)) ease-in-out infinite; }
.rs.rs-tag--bounce { --rs-mo: rs-bounce calc(3.8s * var(--rs-tag-k, 1)) ease-in-out infinite; }
.rs.rs-tag--wiggle { --rs-mo: rs-wiggle calc(4.4s * var(--rs-tag-k, 1)) ease-in-out infinite; }
.rs.rs-tag--swing  { --rs-mo: rs-swing calc(4s * var(--rs-tag-k, 1)) infinite; }

.rs .rs-feature__tag,
.rs .rs-tile__tag { animation: var(--rs-mo, none); }

@keyframes rs-float  { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes rs-glide  { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(11px); } 75% { transform: translateX(-11px); } }
@keyframes rs-drift  { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(10px, -5px); } 50% { transform: translate(0, 0); } 75% { transform: translate(-10px, -5px); } }
@keyframes rs-pulse  { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes rs-bounce { 0%, 52%, 100% { transform: translateY(0); } 12% { transform: translateY(-10px); } 24% { transform: translateY(0); } 34% { transform: translateY(-4px); } 44% { transform: translateY(0); } }
@keyframes rs-wiggle { 0%, 22%, 100% { transform: rotate(0); } 4% { transform: rotate(-5deg); } 8% { transform: rotate(5deg); } 12% { transform: rotate(-4deg); } 16% { transform: rotate(3deg); } 20% { transform: rotate(-1.5deg); } }
@keyframes rs-swing  { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-9deg); } 75% { transform: rotate(9deg); } }

/* glow: a soft golden halo (also used by Swing) */
.rs.rs-tag--glow .rs-feature__tag::after,
.rs.rs-tag--glow .rs-slide__tag--feat::after,
.rs.rs-tag--glow .rs-tile__tag::after,
.rs.rs-tag--swing .rs-feature__tag::after,
.rs.rs-tag--swing .rs-slide__tag--feat::after,
.rs.rs-tag--swing .rs-tile__tag::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: 0 0 0 0 rgba(255, 205, 64, .7);
    animation: rs-halo calc(1.9s * var(--rs-tag-k, 1)) ease-out infinite;
}
@keyframes rs-halo {
    0%   { box-shadow: 0 0 0 0 rgba(255, 205, 64, .7); }
    100% { box-shadow: 0 0 0 15px rgba(255, 205, 64, 0); }
}

/* shimmer: a light sweeps across the badge */
.rs.rs-tag--shimmer .rs-feature__tag::after,
.rs.rs-tag--shimmer .rs-slide__tag--feat::after,
.rs.rs-tag--shimmer .rs-tile__tag::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(105deg, transparent 36%, var(--rs-shine, rgba(255, 190, 70, .62)) 50%, transparent 64%) no-repeat;
    background-size: 260% 100%;
    background-position: 160% 0;
    animation: rs-shine calc(3.4s * var(--rs-tag-k, 1)) ease-in-out infinite;
}
@keyframes rs-shine { 0% { background-position: 160% 0; } 55%, 100% { background-position: -60% 0; } }

/* star spin: only the star icon turns */
.rs.rs-tag--starspin .rs-feature__tag .rs-icon,
.rs.rs-tag--starspin .rs-slide__tag--feat .rs-icon,
.rs.rs-tag--starspin .rs-tile__tag .rs-icon { animation: rs-starspin calc(3.6s * var(--rs-tag-k, 1)) ease-in-out infinite; transform-origin: 50% 50%; }
@keyframes rs-starspin { 0%, 55% { transform: rotate(0) scale(1); } 78% { transform: rotate(180deg) scale(1.25); } 100% { transform: rotate(360deg) scale(1); } }

/* sparkles: released around the badge, with any animation (Off / Gold / White / Confetti) */
.rs.rs-spark--gold     { --rs-sp1: #ffd700; --rs-sp2: #ffe27a; --rs-sp3: #fff3b0; --rs-sp4: #ffc94a; }
.rs.rs-spark--white    { --rs-sp1: #ffffff; --rs-sp2: #ffffff; --rs-sp3: #f1f1f1; --rs-sp4: rgba(255, 255, 255, .85); }
.rs.rs-spark--confetti { --rs-sp1: #ff6b6b; --rs-sp2: #ffd166; --rs-sp3: #06d6a0; --rs-sp4: #4cc9f0; }
.rs[class*="rs-spark--"] .rs-feature__tag::before,
.rs[class*="rs-spark--"] .rs-slide__tag--feat::before,
.rs[class*="rs-spark--"] .rs-tile__tag::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--rs-sp1);
    pointer-events: none;
    opacity: 0;
    box-shadow: -38px -5px 0 -1px var(--rs-sp1), 24px -17px 0 0 var(--rs-sp2), 52px 7px 0 -1px var(--rs-sp1),
                -14px 15px 0 0 var(--rs-sp3), 9px -24px 0 -1px var(--rs-sp4), 68px -11px 0 0 var(--rs-sp2),
                -52px 12px 0 -1px var(--rs-sp2), 36px 18px 0 -1px var(--rs-sp3), -24px -22px 0 -1px var(--rs-sp4),
                80px 2px 0 -1px var(--rs-sp3);
    animation: rs-dust calc(2.3s * var(--rs-tag-k, 1)) ease-out infinite;
}
@keyframes rs-dust {
    0%   { opacity: 1; transform: translate(0, 0) scale(1); }
    100% { opacity: 0; transform: translate(26px, -32px) scale(1.5); }
}
.rs--polaroid { --rs-shine: rgba(255, 255, 255, .78); }

/* ---------- 2) STAGE layout ---------- */

.rs.rs--alt { display: block; }
.rs.rs--alt .rs-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: clamp(16px, 2vw, 26px);
}
.rs.rs--alt .rs-title { margin: 0; }
.rs.rs--alt .rs-top__actions { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; }
.rs.rs--alt .rs-nav { display: flex; align-items: center; gap: 8px; }
.rs.rs--alt .rs-nav__btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; margin: 0; padding: 0;
    border: 1px solid var(--rs-line); border-radius: 50%;
    background: #fff; color: var(--rs-green);
    box-shadow: 0 3px 10px rgba(30, 50, 35, .05); cursor: pointer;
    transition: background .2s ease, border-color .2s ease, transform .15s ease, color .2s ease;
}
.rs.rs--alt .rs-nav__btn:hover { background: var(--rs-green); border-color: var(--rs-green); color: #fff; }
.rs.rs--alt .rs-nav__btn:active { transform: scale(.94); }
.rs.rs--alt .rs-nav__btn .rs-icon { width: 18px; height: 18px; }
.rs.rs--alt .rs-nav__prev .rs-icon { transform: scaleX(-1); }
.rs.rs--alt .rs-nav__toggle .rs-icon { width: 16px; height: 16px; }
.rs.rs--stage .rs-nav__pause { display: inline-flex; }
.rs.rs--stage .rs-nav__toggle .rs-nav__play { display: none; }
.rs.rs--stage.is-stopped .rs-nav__toggle .rs-nav__pause { display: none; }
.rs.rs--stage.is-stopped .rs-nav__toggle .rs-nav__play { display: inline-flex; }
.rs.rs--stage .rs-nav__toggle .rs-icon--play { fill: currentColor; stroke: none; }

.rs .rs-stagewrap { position: relative; }
.rs .rs-stage {
    position: relative;
    min-height: clamp(560px, 46vw, 680px);
    border-radius: 34px;
    overflow: hidden;
    background: #143a28;
    box-shadow: 0 28px 60px rgba(28, 49, 35, .22);
    isolation: isolate;
    transform: translateZ(0);
}

/* slides crossfade */
.rs .rs-slide {
    position: absolute; inset: 0;
    opacity: 0; visibility: hidden;
    transition: opacity .9s ease, visibility 0s linear .9s;
}
.rs .rs-slide.is-active { opacity: 1; visibility: visible; transition: opacity .9s ease, visibility 0s; z-index: 1; }
.rs .rs-slide__media { position: absolute; inset: 0; display: block; overflow: hidden; background: linear-gradient(135deg, #477c5c, #163e2c); }
.rs .rs-slide__media::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background:
        linear-gradient(90deg, rgba(8, 25, 16, .86) 0%, rgba(8, 25, 16, .6) 34%, rgba(8, 25, 16, 0) 68%),
        linear-gradient(0deg, rgba(8, 25, 16, .55) 0%, rgba(8, 25, 16, 0) 42%);
}
.rs .rs-slide__img {
    display: block; position: absolute; inset: 0;
    width: 100% !important; height: 100% !important; max-width: none; object-fit: cover;
    transform: scale(1);
}
.rs .rs-slide.is-active .rs-slide__img { animation: rs-kenburns 11s ease-out forwards; }
@keyframes rs-kenburns { from { transform: scale(1); } to { transform: scale(1.07); } }

/* slide copy rises in, one line after another, every time a slide opens */
.rs .rs-slide__content {
    position: absolute; left: 0; bottom: 0; z-index: 2;
    display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
    width: min(calc(100% - 420px), 720px);
    padding: clamp(28px, 4vw, 58px);
    color: #fff;
}
.rs .rs-slide.is-active .rs-slide__content > * {
    animation: rs-rise .75s cubic-bezier(.22, .8, .24, 1) both;
    animation-delay: calc(var(--n, 0) * .08s + .18s);
}
.rs .rs-slide.is-active .rs-slide__content > .rs-slide__tag--feat {
    animation: rs-rise .75s cubic-bezier(.22, .8, .24, 1) .18s both, var(--rs-mo, none);
    animation-delay: .18s, 1s;
}
.rs .rs-slide__content > *:nth-child(1) { --n: 0; }
.rs .rs-slide__content > *:nth-child(2) { --n: 1; }
.rs .rs-slide__content > *:nth-child(3) { --n: 2; }
.rs .rs-slide__content > *:nth-child(4) { --n: 3; }
.rs .rs-slide__content > *:nth-child(5) { --n: 4; }
.rs .rs-slide__content > *:nth-child(6) { --n: 5; }
@keyframes rs-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

.rs .rs-slide__tag {
    position: relative;
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 15px 10px 12px;
    border: 1px solid rgba(255, 255, 255, .24); border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 7px 22px rgba(0, 0, 0, .12);
    color: var(--rs-green-deep);
    font-size: .77rem; font-weight: 800; line-height: 1.2;
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.rs .rs-slide__tag .rs-icon { width: 14px; height: 14px; color: var(--rs-amber-deep); }
.rs .rs-slide__tag .rs-icon--star { fill: currentColor; stroke: none; }
.rs .rs-slide__cat { color: #f5c98d; font-size: .8rem; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .09em; }
.rs .rs-slide__cat:empty { display: none; }
.rs .rs-slide__title {
    margin: 0; padding: 0; color: #fff;
    font-family: inherit;
    font-size: clamp(2.3rem, 4.6vw, 4.7rem); font-weight: 800; line-height: .97; letter-spacing: -.055em;
    text-wrap: balance; text-shadow: 0 2px 24px rgba(0, 0, 0, .3);
}
.rs .rs-slide__lede { margin: 0; max-width: 46ch; color: rgba(255, 255, 255, .88); font-size: 1.02rem; line-height: 1.65; }
.rs .rs-slide__lede:empty { display: none; }
.rs .rs-slide__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.rs .rs-slide__meta:empty { display: none; }
.rs .rs-slide__cta,
.rs .rs-slide__cta:visited {
    display: inline-flex; align-items: center; gap: 12px; margin-top: 6px;
    padding: 6px 7px 6px 22px; border-radius: 999px;
    background: #fff; color: var(--rs-green-deep);
    font-size: .95rem; font-weight: 800; line-height: 1;
    transition: background .2s ease, transform .2s ease;
}
.rs .rs-slide__cta .rs-icon {
    width: 40px; height: 40px; padding: 11px; border-radius: 50%;
    background: var(--rs-green); color: #fff; transition: transform .25s ease;
}
.rs .rs-slide__cta:hover, .rs .rs-slide__cta:focus { background: #f4c98d; color: var(--rs-green-deep); transform: translateY(-2px); }
.rs .rs-slide__cta:hover .rs-icon { transform: translateX(3px); }

/* picks rail: frosted glass panel over the right of the stage */
.rs .rs-rail {
    position: absolute; z-index: 3;
    top: clamp(14px, 1.6vw, 24px); right: clamp(14px, 1.6vw, 24px); bottom: clamp(14px, 1.6vw, 24px);
    width: clamp(290px, 26vw, 360px);
    display: flex; flex-direction: column; gap: 6px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, .18); border-radius: 26px;
    background: rgba(10, 32, 20, .36);
    -webkit-backdrop-filter: blur(18px) saturate(1.25); backdrop-filter: blur(18px) saturate(1.25);
}
.rs .rs-rail__item {
    position: relative; flex: 1 1 0; min-height: 0;
    display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 13px; align-items: center;
    margin: 0; padding: 8px 12px 8px 8px; overflow: hidden;
    border: 1px solid transparent; border-radius: 19px;
    background: transparent; color: #fff; text-align: left; cursor: pointer;
    font-size: 1rem; line-height: 1.3; box-shadow: none;
    transition: background .25s ease, border-color .25s ease;
}
.rs .rs-rail__item:hover { background: rgba(255, 255, 255, .1); }
.rs .rs-rail__item.is-active { background: rgba(255, 255, 255, .18); border-color: rgba(255, 255, 255, .3); }
.rs .rs-rail__thumb { position: relative; display: block; width: 66px; height: 66px; border-radius: 14px; overflow: hidden; background: rgba(255, 255, 255, .15); }
.rs .rs-rail__img { display: block; position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.rs .rs-rail__thumb .rs-placeholder { color: rgba(255, 255, 255, .5); }
.rs .rs-rail__thumb .rs-placeholder .rs-icon { width: 26px; height: 26px; }
.rs .rs-rail__text { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.rs .rs-rail__cat { color: #f5c98d; font-size: .68rem; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .08em; }
.rs .rs-rail__cat:empty { display: none; }
.rs .rs-rail__name {
    color: inherit; font-size: .95rem; font-weight: 750; line-height: 1.22; letter-spacing: -.02em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rs .rs-rail__time { display: inline-flex; align-items: center; gap: 5px; color: rgba(255, 255, 255, .78); font-size: .74rem; font-weight: 600; }
.rs .rs-rail__time .rs-icon { width: 12px; height: 12px; }
/* autoplay progress line on the open item */
.rs .rs-rail__item::after {
    content: ''; position: absolute; left: 10px; right: 10px; bottom: 0; height: 3px; border-radius: 3px;
    background: #f4c98d; transform: scaleX(0); transform-origin: left center; opacity: 0;
}
.rs.is-playing .rs-rail__item.is-active::after {
    opacity: 1;
    animation: rs-progress var(--rs-dur, 7s) linear forwards;
}
.rs.is-paused .rs-rail__item.is-active::after { animation-play-state: paused; }
@keyframes rs-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.rs.rs--alt .rs-browse { display: none; }
.rs.rs--stage .rs-slide__tag--feat { transform-origin: 20% 50%; }

/* ---------- Stage: laptop ---------- */
@media (max-width: 1200px) and (min-width: 991px) {
    .rs .rs-slide__content { width: calc(100% - 340px); }
    .rs .rs-rail { width: 290px; }
    .rs .rs-rail__item { grid-template-columns: 56px minmax(0, 1fr); gap: 11px; }
    .rs .rs-rail__thumb { width: 56px; height: 56px; }
}

/* ---------- Stage: tablet + phone (rail becomes a swipeable strip under the stage) ---------- */
@media (max-width: 990px) {
    .rs.rs--alt { max-width: 100%; }
    .rs.rs--alt .rs-top { flex-direction: column; align-items: center; gap: 0; text-align: center; }
    .rs.rs--alt .rs-top__actions { display: none; }
    .rs.rs--alt .rs-title { text-align: center; }
    .rs.rs--alt .rs-browse { display: inline-flex; align-self: stretch; width: 100%; margin-top: 18px; }

    .rs .rs-stage { min-height: 0; aspect-ratio: 4 / 5; border-radius: 26px; }
    .rs .rs-slide__media::after {
        background:
            linear-gradient(0deg, rgba(8, 25, 16, .94) 0%, rgba(8, 25, 16, .62) 38%, rgba(8, 25, 16, .05) 72%, rgba(8, 25, 16, .25) 100%);
    }
    .rs .rs-slide__content { width: 100%; padding: 22px; gap: 10px; }
    .rs .rs-slide__tag { padding: 8px 12px 8px 10px; font-size: .7rem; }
    .rs .rs-slide__title { font-size: clamp(1.9rem, 8vw, 3rem); }
    .rs .rs-slide__lede { display: none; }

    .rs .rs-rail {
        position: static; width: auto; margin-top: 14px; padding: 4px 2px 10px;
        flex-direction: row; gap: 12px; overflow-x: auto;
        scroll-snap-type: x mandatory; scrollbar-width: none;
        border: 0; border-radius: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none;
    }
    .rs .rs-rail::-webkit-scrollbar { display: none; }
    .rs .rs-rail__item {
        flex: 0 0 min(246px, 72vw); scroll-snap-align: center;
        grid-template-columns: 58px minmax(0, 1fr); padding: 8px 12px 10px 8px;
        border-color: var(--rs-line); background: #fff; color: var(--rs-ink);
        box-shadow: 0 4px 14px rgba(28, 49, 35, .06);
    }
    .rs .rs-rail__item:hover { background: #fff; }
    .rs .rs-rail__item.is-active { background: var(--rs-soft); border-color: var(--rs-green); }
    .rs .rs-rail__thumb { width: 58px; height: 58px; background: var(--rs-soft); }
    .rs .rs-rail__cat { color: var(--rs-amber-deep); }
    .rs .rs-rail__time { color: var(--rs-muted); }
    .rs .rs-rail__item::after { background: var(--rs-amber); }
}
@media (max-width: 690px) {
    .rs .rs-stage { border-radius: 23px; }
    .rs .rs-slide__content { padding: 19px; }
    .rs .rs-slide__cta { font-size: .86rem; padding-left: 18px; }
    .rs .rs-slide__cta .rs-icon { width: 36px; height: 36px; padding: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .rs .rs-slide, .rs .rs-slide.is-active { transition: none !important; }
    .rs .rs-slide.is-active .rs-slide__content > * { animation: none !important; opacity: 1; transform: none; }
}


/* ==========================================================================
   v2.2 ADDITIONS
   A) Mobile fixes for the Classic layout
   B) Board layouts: Spotlight, Mosaic, Magazine, Filmstrip, Polaroid
   ========================================================================== */

/* ---------- A) Mobile fixes ---------- */

/* The stacked "More Recipes" button must never inherit the row-button flex sizing
   (flex: 1 1 180px made it 180px TALL inside the column). */
.rs .rs-browse { flex: 0 0 auto; }

@media (max-width: 690px) {
    /* phone: Taste of the Week, then straight to the featured image */
    .rs .rs-intro .rs-lede,
    .rs .rs-intro .rs-facts,
    .rs .rs-intro .rs-actions { display: none; }
    .rs .rs-intro { padding-bottom: 0; }
    .rs .rs-browse { width: 100%; min-height: 48px; padding: 0 20px; }
    .rs.rs--alt .rs-tile__lede,
    .rs.rs--alt .rs-slide__lede { display: none; }
}

/* ---------- B) Board layouts: shared building blocks ---------- */

.rs .rs-board { min-width: 0; }
.rs .rs-tile { position: relative; min-width: 0; }
.rs .rs-tile__media,
.rs .rs-tile__media:hover,
.rs .rs-tile__media:focus {
    position: relative; display: block; overflow: hidden; text-decoration: none;
    background: linear-gradient(135deg, #477c5c, #163e2c);
}
.rs .rs-tile__img {
    display: block; position: absolute; inset: 0;
    width: 100% !important; height: 100% !important; max-width: none; object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
.rs .rs-tile:hover .rs-tile__img { transform: scale(1.05); }
.rs .rs-tile .rs-placeholder { color: rgba(255, 255, 255, .45); }
.rs .rs-tile .rs-placeholder .rs-icon { width: 44px; height: 44px; }

.rs .rs-tile--pick,
.rs .rs-tile--pick:hover,
.rs .rs-tile--pick:focus,
.rs .rs-tile--pick:visited { display: block; color: inherit; text-decoration: none; }

.rs .rs-tile__tag {
    position: relative; display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 15px 10px 12px;
    border: 1px solid rgba(255, 255, 255, .24); border-radius: 999px;
    background: rgba(255, 255, 255, .94); box-shadow: 0 7px 22px rgba(0, 0, 0, .12);
    color: var(--rs-green-deep); font-size: .77rem; font-weight: 800; line-height: 1.2;
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.rs .rs-tile__tag .rs-icon { width: 14px; height: 14px; color: var(--rs-amber-deep); }
.rs .rs-tile__tag .rs-icon--star { fill: currentColor; stroke: none; }
.rs .rs-tile__cat { color: var(--rs-amber-deep); font-size: .8rem; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .09em; }
.rs .rs-tile__title {
    margin: 0; padding: 0; font-family: inherit; font-weight: 800; letter-spacing: -.045em; line-height: 1.06;
    color: var(--rs-ink); text-wrap: balance;
}
.rs .rs-tile__title a,
.rs .rs-tile__title a:hover,
.rs .rs-tile__title a:focus,
.rs .rs-tile__title a:visited { color: inherit; text-decoration: none; }
.rs .rs-tile--pick .rs-tile__title {
    font-size: 1.05rem; line-height: 1.22; letter-spacing: -.025em; font-weight: 750;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rs .rs-tile__lede { margin: 0; max-width: 46ch; color: var(--rs-body); font-size: 1rem; line-height: 1.65; }
.rs .rs-tile__lede:empty { display: none; }
.rs .rs-tile__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.rs .rs-tile__chip {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px;
    border: 1px solid var(--rs-line); border-radius: 999px; background: #fff; color: var(--rs-ink);
    font-size: .84rem; font-weight: 600; line-height: 1.2;
}
.rs .rs-tile__chip .rs-icon { width: 15px; height: 15px; }
.rs .rs-tile__cta,
.rs .rs-tile__cta:visited {
    display: inline-flex; align-items: center; gap: 12px; margin-top: 6px;
    padding: 6px 7px 6px 22px; border-radius: 999px;
    background: #fff; color: var(--rs-green-deep); font-size: .95rem; font-weight: 800; line-height: 1;
    transition: background .2s ease, transform .2s ease;
}
.rs .rs-tile__cta .rs-icon {
    width: 40px; height: 40px; padding: 11px; border-radius: 50%;
    background: var(--rs-green); color: #fff; transition: transform .25s ease;
}
.rs .rs-tile__cta:hover, .rs .rs-tile__cta:focus { background: #f4c98d; color: var(--rs-green-deep); transform: translateY(-2px); }
.rs .rs-tile__cta:hover .rs-icon { transform: translateX(3px); }
.rs .rs-tile__time,
.rs .rs-tile__new {
    position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 5px;
    border-radius: 999px; font-size: .74rem; font-weight: 700; line-height: 1.2;
}
.rs .rs-tile__time { left: 10px; bottom: 10px; padding: 5px 10px 5px 8px; background: rgba(255, 255, 255, .95); color: #344237; box-shadow: 0 3px 10px rgba(0, 0, 0, .12); }
.rs .rs-tile__time .rs-icon { width: 13px; height: 13px; }
.rs .rs-tile__new { top: 10px; left: 10px; padding: 5px 10px; background: var(--rs-amber); color: #fff; box-shadow: 0 3px 10px rgba(74, 46, 7, .2); }
.rs .rs-tile--pick .rs-rating { margin-top: 2px; }
.rs .rs-tile--pick .rs-stars { font-size: 14px; }
.rs .rs-picks__title { margin: 0; padding: 0; font-family: inherit; color: var(--rs-ink); font-size: 1.25rem; font-weight: 800; line-height: 1.2; letter-spacing: -.03em; }

/* dark photo heroes (Spotlight, Mosaic, Filmstrip): white text over a gradient */
.rs--spotlight .rs-tile--hero .rs-tile__media::after,
.rs--mosaic .rs-tile--hero .rs-tile__media::after,
.rs--filmstrip .rs-tile--hero .rs-tile__media::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(0deg, rgba(8, 25, 16, .92) 0%, rgba(8, 25, 16, .6) 36%, rgba(8, 25, 16, .08) 72%, rgba(8, 25, 16, .28) 100%);
}
.rs--spotlight .rs-tile--hero .rs-tile__title,
.rs--mosaic .rs-tile--hero .rs-tile__title,
.rs--filmstrip .rs-tile--hero .rs-tile__title { color: #fff; text-shadow: 0 2px 22px rgba(0, 0, 0, .32); }
.rs--spotlight .rs-tile--hero .rs-tile__cat,
.rs--mosaic .rs-tile--hero .rs-tile__cat,
.rs--filmstrip .rs-tile--hero .rs-tile__cat { color: #f5c98d; }
.rs--spotlight .rs-tile--hero .rs-tile__lede,
.rs--mosaic .rs-tile--hero .rs-tile__lede,
.rs--filmstrip .rs-tile--hero .rs-tile__lede { color: rgba(255, 255, 255, .88); }
.rs--spotlight .rs-tile--hero .rs-tile__chip,
.rs--mosaic .rs-tile--hero .rs-tile__chip,
.rs--filmstrip .rs-tile--hero .rs-tile__chip {
    border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .16); color: #fff;
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.rs--spotlight .rs-tile--hero .rs-tile__chip .rs-stars,
.rs--mosaic .rs-tile--hero .rs-tile__chip .rs-stars,
.rs--filmstrip .rs-tile--hero .rs-tile__chip .rs-stars { color: rgba(255, 255, 255, .35); }
.rs--spotlight .rs-tile--hero .rs-tile__chip .rs-rating__count,
.rs--mosaic .rs-tile--hero .rs-tile__chip .rs-rating__count,
.rs--filmstrip .rs-tile--hero .rs-tile__chip .rs-rating__count { color: #fff; }

/* ---------- SPOTLIGHT: banner with pick cards floating over its edge ---------- */

.rs--spotlight { --rs-lap: clamp(64px, 8vw, 112px); }
.rs--spotlight .rs-tile--hero {
    display: flex; align-items: flex-end; justify-content: center; text-align: center;
    min-height: clamp(470px, 40vw, 610px);
    padding: clamp(28px, 4vw, 56px) 24px calc(var(--rs-lap) + clamp(26px, 3vw, 44px));
    border-radius: 36px; overflow: hidden; background: #143a28; box-shadow: 0 26px 56px rgba(28, 49, 35, .2);
}
.rs--spotlight .rs-tile--hero .rs-tile__media { position: absolute; inset: 0; }
.rs--spotlight .rs-tile--hero .rs-tile__body { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 14px; max-width: 780px; }
.rs--spotlight .rs-tile--hero .rs-tile__title { font-size: clamp(2.3rem, 4.8vw, 4.6rem); line-height: .98; }
.rs--spotlight .rs-tile--hero .rs-tile__lede { margin-left: auto; margin-right: auto; }
.rs--spotlight .rs-tile--hero .rs-tile__meta { justify-content: center; }
.rs--spotlight .rs-picks { position: relative; z-index: 3; margin: calc(var(--rs-lap) * -1) clamp(12px, 3vw, 44px) 0; }
.rs--spotlight .rs-picks__title { display: none; }
.rs--spotlight .rs-picks__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; }
.rs--spotlight .rs-tile--pick {
    padding: 10px 10px 16px; border: 1px solid rgba(25, 54, 38, .07); border-radius: 26px; background: #fff;
    box-shadow: 0 20px 44px rgba(28, 49, 35, .16); transition: transform .3s ease, box-shadow .3s ease;
}
.rs--spotlight .rs-tile--pick:hover { transform: translateY(-6px); box-shadow: 0 28px 54px rgba(28, 49, 35, .2); }
.rs--spotlight .rs-tile--pick .rs-tile__media { aspect-ratio: 4 / 3; border-radius: 18px; }
.rs--spotlight .rs-tile--pick .rs-tile__body { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; padding: 14px 6px 0; }

/* ---------- MOSAIC: bold photo tiles ---------- */

.rs--mosaic .rs-board {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: clamp(190px, 18vw, 270px); gap: clamp(12px, 1.4vw, 20px);
}
.rs--mosaic .rs-picks,
.rs--mosaic .rs-picks__list { display: contents; }
.rs--mosaic .rs-picks__title { display: none; }
.rs--mosaic .rs-tile--hero { grid-column: span 2; grid-row: span 2; border-radius: 32px; overflow: hidden; background: #143a28; box-shadow: 0 22px 48px rgba(28, 49, 35, .18); }
.rs--mosaic .rs-tile--pick { border-radius: 24px; overflow: hidden; background: #143a28; box-shadow: 0 12px 28px rgba(28, 49, 35, .12); transition: transform .3s ease, box-shadow .3s ease; }
.rs--mosaic .rs-tile--pick:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(28, 49, 35, .2); }
.rs--mosaic .rs-tile .rs-tile__media { position: absolute; inset: 0; }
.rs--mosaic .rs-tile--pick .rs-tile__media::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(0deg, rgba(8, 25, 16, .86) 0%, rgba(8, 25, 16, .35) 46%, rgba(8, 25, 16, 0) 72%);
}
.rs--mosaic .rs-tile__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; padding: clamp(16px, 2vw, 28px); color: #fff; }
.rs--mosaic .rs-tile--hero .rs-tile__title { font-size: clamp(1.9rem, 3.4vw, 3.4rem); line-height: 1; }
.rs--mosaic .rs-tile--hero .rs-tile__lede { display: none; }
.rs--mosaic .rs-tile--pick .rs-tile__title { color: #fff; font-size: clamp(.98rem, 1.25vw, 1.2rem); }
.rs--mosaic .rs-tile--pick .rs-tile__cat { color: #f5c98d; font-size: .68rem; }
.rs--mosaic .rs-tile--pick .rs-stars { color: rgba(255, 255, 255, .35); }
.rs--mosaic .rs-tile--pick .rs-rating__count { color: rgba(255, 255, 255, .9); }
.rs--mosaic .rs-tile--pick .rs-tile__time { top: 12px; right: 12px; left: auto; bottom: auto; }
.rs--mosaic .rs-tile--pick .rs-tile__new { top: 12px; left: 12px; }

/* ---------- MAGAZINE: editorial split + numbered list ---------- */

.rs--magazine .rs-board { display: grid; gap: clamp(30px, 3.4vw, 52px); }
.rs--magazine .rs-tile--hero {
    display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
    min-height: clamp(440px, 38vw, 570px);
    border: 1px solid var(--rs-line); border-radius: 36px; overflow: hidden; background: var(--rs-soft);
}
.rs--magazine .rs-tile--hero .rs-tile__media { min-height: 100%; }
.rs--magazine .rs-tile--hero .rs-tile__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px; padding: clamp(30px, 4.4vw, 72px); }
.rs--magazine .rs-tile--hero .rs-tile__tag { border-color: var(--rs-line); background: #fff; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.rs--magazine .rs-tile--hero .rs-tile__title { font-size: clamp(2.1rem, 3.7vw, 3.8rem); line-height: .98; }
.rs--magazine .rs-tile--hero .rs-tile__cta,
.rs--magazine .rs-tile--hero .rs-tile__cta:visited { background: var(--rs-green); color: #fff; }
.rs--magazine .rs-tile--hero .rs-tile__cta .rs-icon { background: var(--rs-amber); color: #fff; }
.rs--magazine .rs-tile--hero .rs-tile__cta:hover, .rs--magazine .rs-tile--hero .rs-tile__cta:focus { background: var(--rs-green-deep); color: #fff; }
.rs--magazine .rs-picks__title { margin-bottom: 14px; font-size: 1.3rem; }
.rs--magazine .rs-picks__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0 clamp(18px, 2.4vw, 36px); counter-reset: rs-pick; }
.rs--magazine .rs-tile--pick {
    counter-increment: rs-pick; display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 16px; align-items: start;
    padding: 20px 0 6px; border-top: 2px solid var(--rs-ink);
}
.rs--magazine .rs-tile--pick .rs-tile__media { width: 82px; height: 82px; border-radius: 50%; }
.rs--magazine .rs-tile--pick .rs-tile__time,
.rs--magazine .rs-tile--pick .rs-tile__new { display: none; }
.rs--magazine .rs-tile--pick .rs-tile__body { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.rs--magazine .rs-tile--pick .rs-tile__body::before {
    content: counter(rs-pick, decimal-leading-zero); color: var(--rs-amber-deep); font-size: .8rem; font-weight: 800; letter-spacing: .1em;
}
.rs--magazine .rs-tile--pick:hover .rs-tile__title { color: var(--rs-green); }

/* ---------- FILMSTRIP: swipeable carousel ---------- */

.rs--filmstrip .rs-picks,
.rs--filmstrip .rs-picks__list { display: contents; }
.rs--filmstrip .rs-picks__title { display: none; }
.rs--filmstrip .rs-board {
    display: flex; gap: clamp(14px, 1.6vw, 22px); overflow-x: auto; padding: 8px 4px 62px; margin: 0 -4px -32px;
    scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.rs--filmstrip .rs-board::-webkit-scrollbar { display: none; }
.rs--filmstrip .rs-tile { flex: 0 0 auto; scroll-snap-align: start; }
.rs--filmstrip .rs-tile--hero { width: min(88vw, 660px); height: clamp(430px, 36vw, 520px); border-radius: 32px; overflow: hidden; background: #143a28; box-shadow: 0 22px 48px rgba(28, 49, 35, .2); }
.rs--filmstrip .rs-tile--hero .rs-tile__media { position: absolute; inset: 0; }
.rs--filmstrip .rs-tile--hero .rs-tile__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: clamp(22px, 2.6vw, 38px); }
.rs--filmstrip .rs-tile--hero .rs-tile__title { font-size: clamp(1.8rem, 2.9vw, 2.9rem); line-height: 1; }
.rs--filmstrip .rs-tile--hero .rs-tile__lede { display: none; }
.rs--filmstrip .rs-tile--pick {
    width: min(74vw, 280px); display: flex; flex-direction: column;
    border: 1px solid var(--rs-line); border-radius: 28px; overflow: hidden; background: #fff;
    box-shadow: 0 10px 26px rgba(28, 49, 35, .08); transition: transform .3s ease, box-shadow .3s ease;
}
.rs--filmstrip .rs-tile--pick:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(28, 49, 35, .14); }
.rs--filmstrip .rs-tile--pick .rs-tile__media { flex: 1 1 auto; min-height: 220px; }
.rs--filmstrip .rs-tile--pick .rs-tile__body { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; padding: 16px 18px 20px; }
.rs--filmstrip .rs-nav__btn[disabled] { opacity: .35; cursor: default; pointer-events: none; }

/* ---------- POLAROID: playful tilted prints ---------- */

.rs--polaroid .rs-board {
    display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(34px, 4.4vw, 72px); align-items: center;
    padding: clamp(30px, 4.4vw, 64px); border-radius: 36px;
    background: radial-gradient(circle at 14px 14px, rgba(168, 94, 40, .1) 1.5px, transparent 2px) 0 0 / 28px 28px, #f8f2e6;
    box-shadow: inset 0 0 0 1px rgba(168, 94, 40, .08);
}
.rs--polaroid .rs-tile--hero {
    padding: clamp(12px, 1.4vw, 18px) clamp(12px, 1.4vw, 18px) 0; background: #fff; border-radius: 6px;
    box-shadow: 0 24px 50px rgba(60, 40, 15, .22), 0 2px 6px rgba(60, 40, 15, .1);
    transform: rotate(-1.6deg); transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease;
}
.rs--polaroid .rs-tile--hero:hover { transform: rotate(0) translateY(-5px); box-shadow: 0 32px 62px rgba(60, 40, 15, .26), 0 2px 6px rgba(60, 40, 15, .1); }
.rs--polaroid .rs-tile--hero .rs-tile__media { aspect-ratio: 5 / 4; border-radius: 3px; }
.rs--polaroid .rs-tile--hero .rs-tile__body { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 26px 16px 28px; }
.rs--polaroid .rs-tile--hero .rs-tile__tag {
    position: absolute; top: -17px; left: 50%; translate: -50% 0; rotate: -3deg; z-index: 3;
    padding: 9px 22px; border: 0; border-radius: 3px; white-space: nowrap;
    background: rgba(244, 201, 141, .92); color: #5b3a12; box-shadow: 0 3px 8px rgba(60, 40, 15, .18);
    -webkit-backdrop-filter: none; backdrop-filter: none;
}
.rs--polaroid .rs-tile--hero .rs-tile__tag .rs-icon { color: #8a5a1c; }
.rs--polaroid .rs-tile--hero .rs-tile__title { font-size: clamp(1.9rem, 3vw, 3rem); line-height: 1.02; letter-spacing: -.02em; font-family: "Segoe Print", "Bradley Hand", "Chalkboard SE", "Comic Sans MS", cursive; }
.rs--polaroid .rs-tile--hero .rs-tile__cta,
.rs--polaroid .rs-tile--hero .rs-tile__cta:visited { background: var(--rs-green); color: #fff; padding-left: 20px; }
.rs--polaroid .rs-tile--hero .rs-tile__cta .rs-icon { background: var(--rs-amber); width: 36px; height: 36px; padding: 10px; }
.rs--polaroid .rs-tile--hero .rs-tile__cta:hover, .rs--polaroid .rs-tile--hero .rs-tile__cta:focus { background: var(--rs-green-deep); color: #fff; }
.rs--polaroid .rs-picks__title {
    margin: 0 0 20px; color: var(--rs-amber-deep); font-size: clamp(1.5rem, 2vw, 2rem); font-weight: 700; letter-spacing: 0; transform: rotate(-2deg); transform-origin: left center;
    font-family: "Segoe Print", "Bradley Hand", "Chalkboard SE", "Comic Sans MS", cursive;
}
.rs--polaroid .rs-picks__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
.rs--polaroid .rs-tile--pick {
    padding: 10px 10px 14px; border-radius: 4px; background: #fff;
    box-shadow: 0 12px 26px rgba(60, 40, 15, .2), 0 1px 3px rgba(60, 40, 15, .1);
    transform: rotate(var(--rs-rot, 0deg)); transition: transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease;
}
.rs--polaroid .rs-tile--pick:nth-child(4n+1) { --rs-rot: -2.4deg; }
.rs--polaroid .rs-tile--pick:nth-child(4n+2) { --rs-rot: 2deg; }
.rs--polaroid .rs-tile--pick:nth-child(4n+3) { --rs-rot: 1.3deg; }
.rs--polaroid .rs-tile--pick:nth-child(4n+4) { --rs-rot: -1.8deg; }
.rs--polaroid .rs-tile--pick:hover { transform: rotate(0) scale(1.04); z-index: 4; box-shadow: 0 22px 40px rgba(60, 40, 15, .26), 0 1px 3px rgba(60, 40, 15, .1); }
.rs--polaroid .rs-tile--pick .rs-tile__media { aspect-ratio: 1 / 1; border-radius: 2px; }
.rs--polaroid .rs-tile--pick .rs-tile__body { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 12px 4px 0; }
.rs--polaroid .rs-tile--pick .rs-tile__title { font-family: "Segoe Print", "Bradley Hand", "Chalkboard SE", "Comic Sans MS", cursive; font-size: 1.1rem; font-weight: 700; letter-spacing: 0; }

/* ---------- Board layouts: laptop / tablet / phone ---------- */

@media (max-width: 1200px) and (min-width: 991px) {
    .rs--mosaic .rs-board { grid-auto-rows: clamp(170px, 17vw, 220px); }
    .rs--magazine .rs-tile--hero .rs-tile__body { padding: 32px; }
}

@media (max-width: 990px) {
    .rs--spotlight { --rs-lap: 72px; }
    .rs--spotlight .rs-tile--hero { min-height: 520px; border-radius: 28px; }
    .rs--spotlight .rs-picks { margin-left: 12px; margin-right: 12px; }
    .rs--spotlight .rs-picks__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

    .rs--mosaic .rs-board { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 14px; }
    .rs--mosaic .rs-tile--hero { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 4.6; border-radius: 26px; }
    .rs--mosaic .rs-tile--pick { aspect-ratio: 1 / 1; border-radius: 20px; }

    .rs--magazine .rs-tile--hero { grid-template-columns: minmax(0, 1fr); border-radius: 28px; }
    .rs--magazine .rs-tile--hero .rs-tile__media { min-height: 0; aspect-ratio: 4 / 3; }
    .rs--magazine .rs-tile--hero .rs-tile__body { padding: 26px 24px 30px; }
    .rs--magazine .rs-picks__list { grid-template-columns: minmax(0, 1fr); }

    .rs--filmstrip .rs-tile--hero { height: 440px; border-radius: 26px; }

    .rs--polaroid .rs-board { grid-template-columns: minmax(0, 1fr); padding: 38px 22px 30px; border-radius: 28px; gap: 38px; }
    .rs--polaroid .rs-picks__list { gap: 26px 18px; }
}

@media (max-width: 690px) {
    .rs--spotlight { --rs-lap: 52px; }
    .rs--spotlight .rs-tile--hero { min-height: 500px; padding: 24px 18px calc(var(--rs-lap) + 26px); }
    .rs--spotlight .rs-tile--hero .rs-tile__title { font-size: clamp(1.9rem, 8.4vw, 2.8rem); }
    .rs--spotlight .rs-picks { margin-left: 8px; margin-right: 8px; }
    .rs--spotlight .rs-tile--pick { padding: 8px 8px 12px; border-radius: 20px; }
    .rs--spotlight .rs-tile--pick .rs-tile__media { border-radius: 14px; }
    .rs--spotlight .rs-tile--pick .rs-tile__title { font-size: .95rem; }

    .rs--mosaic .rs-tile--hero .rs-tile__title { font-size: clamp(1.7rem, 7.6vw, 2.4rem); }
    .rs--mosaic .rs-tile--pick .rs-tile__title { font-size: .92rem; }
    .rs--mosaic .rs-tile__body { padding: 14px; }
    .rs--mosaic .rs-tile--pick .rs-stars { display: none; }

    .rs--magazine .rs-tile--hero .rs-tile__title { font-size: clamp(1.8rem, 7.6vw, 2.5rem); }

    .rs--filmstrip .rs-tile--hero { width: 86vw; height: 420px; }
    .rs--filmstrip .rs-tile--hero .rs-tile__title { font-size: clamp(1.6rem, 7vw, 2.2rem); }
    .rs--filmstrip .rs-tile--pick { width: 66vw; }
    .rs--filmstrip .rs-board { padding-left: 14px; padding-right: 14px; margin: 0 -14px; scroll-padding-left: 14px; }

    .rs--polaroid .rs-board { padding: 34px 14px 26px; }
    .rs--polaroid .rs-tile--hero .rs-tile__title { font-size: clamp(1.7rem, 7.4vw, 2.3rem); }
    .rs--polaroid .rs-picks__list { gap: 24px 14px; }
    .rs--polaroid .rs-tile--pick { padding: 8px 8px 10px; }
    .rs--polaroid .rs-tile--pick .rs-tile__title { font-size: .98rem; }
}

@media (prefers-reduced-motion: reduce) {
    .rs .rs-tile--pick, .rs--polaroid .rs-tile--hero { transition: none !important; }
}


/* ==========================================================================
   v2.3  A different layout per screen size
   Used only when desktop, tablet and mobile have different layouts. Each layout is rendered once
   inside a slot and shown for its screen sizes.  Desktop 991px+, tablet 691-990px, mobile 690px-.
   ========================================================================== */
.rs-slots { width: 100%; }
.rs-slots > .rs-slot { display: none; }
@media (min-width: 991px) { .rs-slots > .rs-slot--desktop { display: block; } }
@media (min-width: 691px) and (max-width: 990px) { .rs-slots > .rs-slot--tablet { display: block; } }
@media (max-width: 690px) { .rs-slots > .rs-slot--mobile { display: block; } }


/* ==========================================================================
   v2.4
   A) Classic: a CLEAR featured image (no overlay on it), details on hover / below it
   B) Polaroid tilt modes
   C) Text size of "Taste of the Week" and picture height of the picks, per screen
   ========================================================================== */

/* ---------- A) Classic featured image ----------
   Setting "Featured image details":
     hover   (default) the image is clear; details fade in when hovered. Where there is no hover
             (phones, tablets, touch laptops) the details sit below the image instead.
     below   the image is always clear; details always below it.
     overlay the previous look: details always on a dark overlay.
   In every mode the "Featured Recipe of the Week" badge stays on the image, top-left, on all screens. */

/* details below the image: always for "below" */
.rs.rs-reveal--below .rs-feature {
    display: flex; flex-direction: column; background: #fff; box-shadow: 0 18px 44px rgba(28, 49, 35, .13);
}
.rs.rs-reveal--below .rs-feature__link,
.rs.rs-reveal--below .rs-feature__link:hover,
.rs.rs-reveal--below .rs-feature__link:focus,
.rs.rs-reveal--below .rs-feature__link:visited {
    position: relative; inset: auto; display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; color: var(--rs-ink);
}
.rs.rs-reveal--below .rs-feature__media {
    position: relative; inset: auto; flex: 1 1 auto; min-height: clamp(340px, 34vw, 520px);
}
.rs.rs-reveal--below .rs-feature__media::after {
    display: none;
}
.rs.rs-reveal--below .rs-feature__body {
    position: relative; left: auto; right: auto; bottom: auto; padding: 20px 24px 24px; gap: 10px;
}
.rs.rs-reveal--below .rs-feature__cat {
    color: var(--rs-amber-deep);
}
.rs.rs-reveal--below .rs-feature__title {
    color: var(--rs-ink); text-shadow: none;
}
.rs.rs-reveal--below .rs-feature__chip {
    border-color: var(--rs-line); background: var(--rs-soft); color: var(--rs-ink); -webkit-backdrop-filter: none; backdrop-filter: none;
}
.rs.rs-reveal--below .rs-feature__chip .rs-stars {
    color: #d9d9d4;
}
.rs.rs-reveal--below .rs-feature__chip .rs-rating__count {
    color: var(--rs-muted);
}
.rs.rs-reveal--below .rs-feature__cta {
    background: var(--rs-green); color: #fff;
}
.rs.rs-reveal--below .rs-feature__cta .rs-icon {
    background: var(--rs-amber);
}
.rs.rs-reveal--below .rs-feature__link:hover .rs-feature__cta {
    background: var(--rs-green-deep); color: #fff;
}

/* "hover" mode behaves like "below" everywhere except on a desktop with a mouse */
@media not all and (hover: hover) and (pointer: fine) and (min-width: 991px) {
    .rs.rs-reveal--hover .rs-feature {
        display: flex; flex-direction: column; background: #fff; box-shadow: 0 18px 44px rgba(28, 49, 35, .13);
    }
    .rs.rs-reveal--hover .rs-feature__link,
    .rs.rs-reveal--hover .rs-feature__link:hover,
    .rs.rs-reveal--hover .rs-feature__link:focus,
    .rs.rs-reveal--hover .rs-feature__link:visited {
        position: relative; inset: auto; display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; color: var(--rs-ink);
    }
    .rs.rs-reveal--hover .rs-feature__media {
        position: relative; inset: auto; flex: 1 1 auto; min-height: clamp(340px, 34vw, 520px);
    }
    .rs.rs-reveal--hover .rs-feature__media::after {
        display: none;
    }
    .rs.rs-reveal--hover .rs-feature__body {
        position: relative; left: auto; right: auto; bottom: auto; padding: 20px 24px 24px; gap: 10px;
    }
    .rs.rs-reveal--hover .rs-feature__cat {
        color: var(--rs-amber-deep);
    }
    .rs.rs-reveal--hover .rs-feature__title {
        color: var(--rs-ink); text-shadow: none;
    }
    .rs.rs-reveal--hover .rs-feature__chip {
        border-color: var(--rs-line); background: var(--rs-soft); color: var(--rs-ink); -webkit-backdrop-filter: none; backdrop-filter: none;
    }
    .rs.rs-reveal--hover .rs-feature__chip .rs-stars {
        color: #d9d9d4;
    }
    .rs.rs-reveal--hover .rs-feature__chip .rs-rating__count {
        color: var(--rs-muted);
    }
    .rs.rs-reveal--hover .rs-feature__cta {
        background: var(--rs-green); color: #fff;
    }
    .rs.rs-reveal--hover .rs-feature__cta .rs-icon {
        background: var(--rs-amber);
    }
    .rs.rs-reveal--hover .rs-feature__link:hover .rs-feature__cta {
        background: var(--rs-green-deep); color: #fff;
    }
}

@media (max-width: 990px) {
    .rs.rs-reveal--below .rs-feature,
    .rs.rs-reveal--hover .rs-feature {
        aspect-ratio: auto; min-height: 0;
    }
    .rs.rs-reveal--below .rs-feature__media,
    .rs.rs-reveal--hover .rs-feature__media {
        flex: none; min-height: 0; aspect-ratio: 16 / 10;
    }
}
@media (max-width: 690px) {
    .rs.rs-reveal--below .rs-feature__media,
    .rs.rs-reveal--hover .rs-feature__media {
        aspect-ratio: 4 / 4.7;
    }
    .rs.rs-reveal--below .rs-feature__body,
    .rs.rs-reveal--hover .rs-feature__body {
        padding: 16px 18px 20px; gap: 9px;
    }
}

/* "hover" mode on a desktop with a mouse: a clear image; the overlay and details fade in on hover/focus */
@media (hover: hover) and (pointer: fine) and (min-width: 991px) {
    .rs.rs-reveal--hover .rs-feature__media::after { opacity: 0; transition: opacity .5s ease; }
    .rs.rs-reveal--hover .rs-feature__body { opacity: 0; transform: translateY(16px); transition: opacity .4s ease, transform .5s cubic-bezier(.2, .7, .2, 1); }
    .rs.rs-reveal--hover .rs-feature:hover .rs-feature__media::after,
    .rs.rs-reveal--hover .rs-feature:focus-within .rs-feature__media::after { opacity: 1; }
    .rs.rs-reveal--hover .rs-feature:hover .rs-feature__body,
    .rs.rs-reveal--hover .rs-feature:focus-within .rs-feature__body { opacity: 1; transform: translateY(0); }
}

/* ---------- B) Polaroid: tilted (default) / straight / straight + tilt on hover / tilt as you scroll ---------- */

.rs--polaroid.rs-tilt--straight .rs-tile--hero,
.rs--polaroid.rs-tilt--straight .rs-tile--pick { transform: none; }
.rs--polaroid.rs-tilt--straight .rs-tile--hero:hover { transform: translateY(-5px); }
.rs--polaroid.rs-tilt--straight .rs-tile--pick:hover { transform: translateY(-6px) scale(1.03); }

.rs--polaroid.rs-tilt--hover .rs-tile--hero,
.rs--polaroid.rs-tilt--hover .rs-tile--pick { transform: rotate(0); }
.rs--polaroid.rs-tilt--hover .rs-tile--hero:hover { transform: rotate(-1.6deg) translateY(-5px); }
.rs--polaroid.rs-tilt--hover .rs-tile--pick:hover { transform: rotate(var(--rs-rot, 0deg)) scale(1.04); }

/* scroll: --rs-sk (0 = straight in the middle of the screen, 1 = full tilt near the edges) is set by the script */
.rs--polaroid.rs-tilt--scroll .rs-tile--hero { transform: rotate(calc(-1.6deg * var(--rs-sk, 0))); transition: transform .25s linear, box-shadow .45s ease; }
.rs--polaroid.rs-tilt--scroll .rs-tile--pick { transform: rotate(calc(var(--rs-rot, 0deg) * var(--rs-sk, 0))); transition: transform .25s linear, box-shadow .45s ease; }
.rs--polaroid.rs-tilt--scroll .rs-tile--hero:hover { transform: rotate(0) translateY(-5px); }
.rs--polaroid.rs-tilt--scroll .rs-tile--pick:hover { transform: rotate(0) scale(1.04); }

.rs--polaroid.rs-tilt--straight .rs-picks__title,
.rs--polaroid.rs-tilt--hover .rs-picks__title,
.rs--polaroid.rs-tilt--scroll .rs-picks__title { transform: none; }

/* ---------- C) Sizes set on the settings page (only applied when a size was entered) ---------- */

@media (min-width: 991px)                         { .rs[style*="--rs-title-d"] .rs-title { font-size: var(--rs-title-d); } }
@media (min-width: 691px) and (max-width: 990px)  { .rs[style*="--rs-title-t"] .rs-title { font-size: var(--rs-title-t); } }
@media (max-width: 690px)                         { .rs[style*="--rs-title-m"] .rs-title { font-size: var(--rs-title-m); } }

/* picture height of the other recipes: desktop */
@media (min-width: 991px) {
    .rs[style*="--rs-ph-d"] .rs-card__media { aspect-ratio: auto; height: var(--rs-ph-d); }
    .rs[style*="--rs-ph-d"].rs--spotlight .rs-tile--pick .rs-tile__media,
    .rs[style*="--rs-ph-d"].rs--polaroid .rs-tile--pick .rs-tile__media { aspect-ratio: auto; height: var(--rs-ph-d); }
    .rs[style*="--rs-ph-d"].rs--filmstrip .rs-tile--pick .rs-tile__media { flex: 0 0 auto; min-height: 0; height: var(--rs-ph-d); }
    .rs[style*="--rs-ph-d"].rs--magazine .rs-tile--pick { grid-template-columns: min(var(--rs-ph-d), 200px) minmax(0, 1fr); }
    .rs[style*="--rs-ph-d"].rs--magazine .rs-tile--pick .rs-tile__media { width: min(var(--rs-ph-d), 200px); height: min(var(--rs-ph-d), 200px); }
    .rs[style*="--rs-ph-d"].rs--mosaic .rs-board { grid-auto-rows: var(--rs-ph-d); }
}

/* picture height of the other recipes: tablet */
@media (min-width: 691px) and (max-width: 990px) {
    .rs[style*="--rs-ph-t"] .rs-card__media { aspect-ratio: auto; height: var(--rs-ph-t); }
    .rs[style*="--rs-ph-t"].rs--spotlight .rs-tile--pick .rs-tile__media,
    .rs[style*="--rs-ph-t"].rs--polaroid .rs-tile--pick .rs-tile__media { aspect-ratio: auto; height: var(--rs-ph-t); }
    .rs[style*="--rs-ph-t"].rs--filmstrip .rs-tile--pick .rs-tile__media { flex: 0 0 auto; min-height: 0; height: var(--rs-ph-t); }
    .rs[style*="--rs-ph-t"].rs--magazine .rs-tile--pick { grid-template-columns: min(var(--rs-ph-t), 200px) minmax(0, 1fr); }
    .rs[style*="--rs-ph-t"].rs--magazine .rs-tile--pick .rs-tile__media { width: min(var(--rs-ph-t), 200px); height: min(var(--rs-ph-t), 200px); }
    .rs[style*="--rs-ph-t"].rs--mosaic .rs-tile--pick { aspect-ratio: auto; height: var(--rs-ph-t); }
}

/* picture height of the other recipes: mobile */
@media (max-width: 690px) {
    .rs[style*="--rs-ph-m"] .rs-card__media { aspect-ratio: auto; height: var(--rs-ph-m); }
    .rs[style*="--rs-ph-m"].rs--spotlight .rs-tile--pick .rs-tile__media,
    .rs[style*="--rs-ph-m"].rs--polaroid .rs-tile--pick .rs-tile__media { aspect-ratio: auto; height: var(--rs-ph-m); }
    .rs[style*="--rs-ph-m"].rs--filmstrip .rs-tile--pick .rs-tile__media { flex: 0 0 auto; min-height: 0; height: var(--rs-ph-m); }
    .rs[style*="--rs-ph-m"].rs--magazine .rs-tile--pick { grid-template-columns: min(var(--rs-ph-m), 200px) minmax(0, 1fr); }
    .rs[style*="--rs-ph-m"].rs--magazine .rs-tile--pick .rs-tile__media { width: min(var(--rs-ph-m), 200px); height: min(var(--rs-ph-m), 200px); }
    .rs[style*="--rs-ph-m"].rs--mosaic .rs-tile--pick { aspect-ratio: auto; height: var(--rs-ph-m); }
}

/* ======================================================================
   JoyfulCook finish — v2.4.1
   Visual-only refinements. Deliberately no color/background-color changes.
   Existing theme colors, section colors and text colors remain untouched.
   ====================================================================== */
.rs {
    --rs-finish-shadow: 0 16px 38px rgba(24, 42, 30, .10);
    --rs-finish-shadow-hover: 0 22px 46px rgba(24, 42, 30, .16);
    gap: clamp(22px, 2.5vw, 38px);
    line-height: 1.62;
}
.rs .rs-title { line-height: 1.04; letter-spacing: -.055em; }
.rs .rs-lede { max-width: 39ch; line-height: 1.78; }
.rs .rs-facts { gap: 9px 11px; }
.rs .rs-facts > li { border-radius: 14px; padding: 10px 13px; }
.rs .rs-btn { min-height: 52px; padding-inline: 25px; letter-spacing: -.01em; transition-duration: .26s; }
.rs .rs-feature { border-radius: clamp(22px, 2vw, 32px); box-shadow: var(--rs-finish-shadow); }
.rs .rs-feature__body { gap: 13px; padding: clamp(25px, 3.2vw, 42px); }
.rs .rs-feature__title { max-width: 19ch; line-height: 1.06; letter-spacing: -.04em; }
.rs .rs-feature__meta { gap: 9px; }
.rs .rs-feature__chip { padding: 8px 13px; }
.rs .rs-feature__cta { min-height: 48px; padding-left: 21px; }
.rs .rs-feature__cta .rs-icon { width: 39px; height: 39px; }
.rs .rs-more { gap: 20px; }
.rs .rs-more__head { min-height: 46px; }
.rs .rs-more__title { font-size: clamp(1.2rem, 1.55vw, 1.55rem); letter-spacing: -.035em; }
.rs .rs-grid { gap: clamp(18px, 1.7vw, 25px) clamp(13px, 1.3vw, 19px); }
.rs .rs-card { gap: 11px; }
.rs .rs-card__media { border-radius: 20px; box-shadow: 0 7px 20px rgba(28,49,35,.09); }
.rs .rs-card__body { gap: 6px; }
.rs .rs-card__title { font-size: clamp(.96rem, 1.02vw, 1.08rem); line-height: 1.34; letter-spacing: -.018em; }
.rs .rs-card__cat { font-size: .7rem; letter-spacing: .085em; }
.rs .rs-shuffle { min-height: 42px; height: auto; padding-inline: 15px; }
.rs .rs-card__time, .rs .rs-card__new { padding: 7px 10px; }
.rs .rs-rating { gap: 8px; }
.rs .rs-status { line-height: 1.6; }

/* Alternate layouts share the same careful image and type treatment. */
.rs .rs-tile__media { border-radius: 22px; overflow: hidden; }
.rs .rs-tile__title { line-height: 1.12; letter-spacing: -.035em; }
.rs .rs-tile__lede { line-height: 1.72; }
.rs .rs-tile__tag { border-radius: 999px; }
.rs .rs-rail__item { border-radius: 17px; transition: transform .22s ease, box-shadow .22s ease; }
.rs .rs-rail__thumb { border-radius: 15px; }
.rs .rs-rail__name { line-height: 1.3; }
.rs .rs-nav__btn { width: 46px; height: 46px; transition-duration: .24s; }
.rs .rs-stage { border-radius: clamp(24px, 2.5vw, 36px); }
.rs .rs-slide__content { gap: 15px; }
.rs .rs-slide__title { line-height: 1.06; letter-spacing: -.04em; }
.rs .rs-picks__title { letter-spacing: -.035em; }

/* Consistent, restrained interaction polish. */
@media (hover: hover) and (pointer: fine) {
    .rs .rs-card__media, .rs .rs-tile__media, .rs .rs-feature { transition: box-shadow .32s ease, transform .32s ease; }
    .rs .rs-card:hover .rs-card__media { box-shadow: var(--rs-finish-shadow-hover); }
    .rs .rs-tile--pick:hover { filter: none; }
    .rs .rs-rail__item:hover { transform: translateY(-2px); }
    .rs .rs-nav__btn:hover { transform: translateY(-2px); }
}
.rs a, .rs button { -webkit-tap-highlight-color: transparent; }
.rs button:focus-visible, .rs a:focus-visible { outline-offset: 5px; }

@media (max-width: 1200px) {
    .rs .rs-feature { min-height: 540px; }
    .rs .rs-feature__title { font-size: clamp(1.8rem, 3vw, 2.7rem); }
}
@media (max-width: 990px) {
    .rs { gap: 27px; }
    .rs .rs-intro { padding-block: 10px 2px; }
    .rs .rs-lede { max-width: 58ch; }
    .rs .rs-feature { min-height: 0; }
    .rs .rs-feature__body { padding: clamp(22px, 4vw, 34px); }
    .rs .rs-grid { gap: 22px 17px; }
    .rs .rs-card__title { font-size: .98rem; }
    .rs .rs-tile__media { border-radius: 20px; }
}
@media (max-width: 690px) {
    .rs { gap: 23px; }
    .rs .rs-title { line-height: 1.04; letter-spacing: -.05em; }
    .rs .rs-lede { max-width: 44ch; line-height: 1.7; }
    .rs .rs-facts > li { border-radius: 12px; }
    .rs .rs-btn { min-height: 48px; }
    .rs .rs-feature { border-radius: 22px; }
    .rs .rs-feature__body { padding: 21px; gap: 10px; }
    .rs .rs-feature__title { max-width: 17ch; line-height: 1.08; }
    .rs .rs-feature__meta { gap: 7px; }
    .rs .rs-feature__chip { padding: 7px 10px; }
    .rs .rs-more { gap: 15px; }
    .rs .rs-more__title { font-size: 1.22rem; }
    .rs .rs-grid { gap: 20px 13px; }
    .rs .rs-card { gap: 8px; }
    .rs .rs-card__media { border-radius: 16px; }
    .rs .rs-card__title { font-size: .94rem; line-height: 1.32; }
    .rs .rs-card__cat { font-size: .66rem; }
    .rs .rs-tile__media { border-radius: 17px; }
    .rs .rs-nav__btn { width: 41px; height: 41px; }
}
@media (max-width: 380px) {
    .rs .rs-grid { gap: 18px 11px; }
    .rs .rs-card__title { font-size: .9rem; }
    .rs .rs-feature__body { padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
    .rs .rs-card__media, .rs .rs-tile__media, .rs .rs-feature, .rs .rs-rail__item, .rs .rs-nav__btn { transition: none !important; }
}

/* ======================================================================
   v2.4.2 — Mobile-only tweaks for the Classic layout (phones, 690px and below)
   Desktop and tablet are not affected.
   ====================================================================== */
@media (max-width: 690px) {
    /* 1) Hide the time / serves / rating chips between the title and the featured image */
    .rs .rs-intro .rs-facts { display: none !important; }

    /* 2) Smaller "Taste of the Week" heading (a mobile size set on the settings page still wins) */
    .rs .rs-title {
        margin-bottom: 4px;
        padding-bottom: 12px;
        font-size: clamp(1.45rem, 6.2vw, 1.8rem);
        line-height: 1.1;
    }
    .rs .rs-title::after { width: 44px; height: 3px; }
    .rs .rs-intro { padding-top: 0; }

    /* 3) Recipe cards: left-align the category, title and rating */
    .rs .rs-card,
    .rs .rs-card__body,
    .rs .rs-card__cat,
    .rs .rs-card__title,
    .rs .rs-card__body .rs-rating {
        text-align: left !important;
    }
    .rs .rs-card__body { align-items: flex-start; }
    .rs .rs-card__body .rs-rating { justify-content: flex-start; }
}

/* ======================================================================
   v2.4.2 — Recipe card spacing (all screens)
   Even, tight rhythm: image → category → title → stars. High-specificity
   selectors so theme heading/paragraph margins can't push things apart.
   ====================================================================== */
.rs .rs-card { gap: 10px; }
.rs .rs-card .rs-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 0 2px; }
.rs .rs-card .rs-card__body > * { margin: 0 !important; }
.rs .rs-card .rs-card__cat { display: block; padding: 0; line-height: 1.2; margin-bottom: 4px !important; }
.rs .rs-card .rs-card__body .rs-card__title {
    padding: 0 !important;
    line-height: 1.3;
    min-height: 0;
    margin-bottom: 0 !important;
}
.rs .rs-card .rs-card__body .rs-rating {
    margin-top: 7px !important;
    gap: 6px;
    line-height: 1;
}
.rs .rs-card .rs-card__body .rs-stars { font-size: 13px; line-height: 1; }
.rs .rs-card .rs-card__body .rs-rating__count { font-size: .76rem; line-height: 1; }
@media (max-width: 690px) {
    .rs .rs-card { gap: 9px; }
    .rs .rs-card .rs-card__cat { margin-bottom: 3px !important; }
    .rs .rs-card .rs-card__body .rs-card__title { line-height: 1.28; }
    .rs .rs-card .rs-card__body .rs-rating { margin-top: 6px !important; }
}

/* Keep every card's text left-aligned on all screens (the theme's centered-text rule otherwise
   centers only the lines that wrap, which looks uneven). */
.rs .rs-card,
.rs .rs-card .rs-card__body,
.rs .rs-card .rs-card__cat,
.rs .rs-card .rs-card__title { text-align: left !important; }

/* v2.4.3 — Desktop only: a more refined recipe-title size on the cards */
@media (min-width: 991px) {
    .rs .rs-card .rs-card__body .rs-card__title {
        font-size: clamp(.9rem, .88vw, .98rem) !important;
        font-weight: 700;
        line-height: 1.3;
        letter-spacing: -.01em;
    }
    .rs .rs-card .rs-card__cat { font-size: .66rem; }
    .rs .rs-card .rs-card__body .rs-card__cat + .rs-card__title { margin-top: 0; }
    .rs .rs-card .rs-card__body .rs-rating { margin-top: 6px !important; }
}
