/*  ---------------------------------------------------------------------- */
/*  
    Name: www.gorilla-cooks.ch
    Date: October 2023
    Version: 1.0
    Author: Daniel Baumgartner
*/
/*  ---------------------------------------------------------------------- */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
    font-family: sans-serif;
    /* 1 */
    -ms-text-size-adjust: 100%;
    /* 2 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
}

/**
 * Remove default margin.
 */
body {
    margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
    display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
    display: inline-block;
    /* 1 */
    vertical-align: baseline;
    /* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
    display: none;
    height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
    display: none;
}

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
    background-color: transparent;
}

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
    outline: 0;
}

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
    border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
    font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
    font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9.
 */
mark {
    background: #ff0;
    color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
    border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
    overflow: hidden;
}

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
    margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */
hr {
    box-sizing: content-box;
    height: 0;
}

/**
 * Contain overflow in all browsers.
 */
pre {
    overflow: auto;
}

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
    font-family: monospace, monospace;
    font-size: 1em;
}

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
    color: inherit;
    /* 1 */
    font: inherit;
    /* 2 */
    margin: 0;
    /* 3 */
}

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
    overflow: visible;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
    text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    /* 2 */
    cursor: pointer;
    /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
    cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
    line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box;
    /* 1 */
    padding: 0;
    /* 2 */
}

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
    -webkit-appearance: textfield;
    /* 1 */
    box-sizing: content-box;
    /* 2 */
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
    border: 0;
    /* 1 */
    padding: 0;
    /* 2 */
}

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
    overflow: auto;
}

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
    font-weight: bold;
}

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

td,
th {
    padding: 0;
}

/**
* SassFlexbox
* Manage Flexbox in Sass easily.
*
* @author     Samuel Marchal (zessx)
* @version    0.1
*/
/* Display */
button, a.btn, .header-container .row, .topZutaten-container, .topZutaten-container .topZutaten-item, .deineAuswahl-container, .deineAuswahl-container a.deineAuswahl-item, .deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete, .anzahlPersonen-container, .anzahlPersonen-container .minus, .anzahlPersonen-container .plus, .zutaten-table .zutatenTable-row, ol.cookSteps-list li, ol.cookSteps-list li:before, .ratingBtn-container, .ratingBtn-container button {
    display: -webkit-box;
    display: -moz-box;
    display: -webkit-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
}

/* Flex direction */
/* Flex wrap */
button, a.btn, .topZutaten-container .topZutaten-item, .deineAuswahl-container a.deineAuswahl-item, .anzahlPersonen-container, .zutaten-table .zutatenTable-row, ol.cookSteps-list li {
    -webkit-flex-wrap: nowrap;
    -moz-flex-wrap: nowrap;
    -ms-flex-wrap: none;
    flex-wrap: nowrap;
}

.topZutaten-container, .deineAuswahl-container {
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

/* Flex flow */
/* Order */
/* Flex grow */
/* Flex shrink */
/* Flex basis */
/* Flex */
/* Justify content */
button, a.btn, .topZutaten-container .topZutaten-item, .deineAuswahl-container a.deineAuswahl-item, .deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete, .anzahlPersonen-container .minus, .anzahlPersonen-container .plus, ol.cookSteps-list li:before, .ratingBtn-container button {
    -webkit-box-pack: center;
    -moz-box-pack: center;
    -webkit-flex-pack: center;
    -ms-flex-pack: center;
    -moz-justify-content: center;
    -webkit-justify-content: center;
    justify-content: center;
}

/* Align items */
button, a.btn, .header-container .row, .topZutaten-container .topZutaten-item, .deineAuswahl-container a.deineAuswahl-item, .deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete, .anzahlPersonen-container .minus, .anzahlPersonen-container .plus, .zutaten-table .zutatenTable-row, ol.cookSteps-list li:before, .ratingBtn-container, .ratingBtn-container button {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    align-items: center;
}

/* Align self */
/* Align content */
/*  ---------------------------------------------------------------------- */
/*  settings */
/*  ---------------------------------------------------------------------- */
/*	---------------------------------------------------------------------- */
/*	
	Icontel Custom Mixins & Helpers
	Date: January 2017
	Version: 1.1
	Author: Daniel Baumgartner
	Autor URI: icontel.com
*/
/*	---------------------------------------------------------------------- */
/*  ---------------------------------------------------------------------- */
/*  grid */
/*  ---------------------------------------------------------------------- */
.wrapper {
    width: 90%;
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
}

.row {
    margin: 1em -2.5%;
}

[class*='column-'] {
    display: block;
    float: left;
    min-height: 1px;
    margin: 0 2.5%;
    padding: 0;
    width: 100%;
}

[class*='column-'].center {
    text-align: center;
}

[class*='column-'].right {
    text-align: right;
}

.column-1 {
    width: 3.33333%;
}

.column-2 {
    width: 11.66667%;
}

.column-3 {
    width: 20%;
}

.column-4 {
    width: 28.33333%;
}

.column-5 {
    width: 36.66667%;
}

.column-6 {
    width: 45%;
}

.column-7 {
    width: 53.33333%;
}

.column-8 {
    width: 61.66667%;
}

.column-9 {
    width: 70%;
}

.column-10 {
    width: 78.33333%;
}

.column-11 {
    width: 86.66667%;
}

.column-12 {
    width: 95%;
}

.offset-1 {
    margin-left: 10.83333%;
}

.offset-2 {
    margin-left: 19.16667%;
}

.offset-3 {
    margin-left: 27.5%;
}

.offset-4 {
    margin-left: 35.83333%;
}

.offset-5 {
    margin-left: 44.16667%;
}

.offset-6 {
    margin-left: 52.5%;
}

.offset-7 {
    margin-left: 60.83333%;
}

.offset-8 {
    margin-left: 69.16667%;
}

.offset-9 {
    margin-left: 77.5%;
}

.offset-10 {
    margin-left: 85.83333%;
}

.offset-11 {
    margin-left: 94.16667%;
}

.offset-12 {
    margin-left: 102.5%;
}

.row {
    *zoom: 1;
}

.row:before, .row:after {
    content: " ";
    display: table;
}

.row:after {
    clear: both;
}

/*  ---------------------------------------------------------------------- */
/*  typography */
/*  ---------------------------------------------------------------------- */
*:focus {
    outline: none;
}

/*  ---------------------------------------------------------------------- */
/*  layout */
/*  ---------------------------------------------------------------------- */
/*  ---------------------------------------------------------------------- */
/*  triangle */
/*  ---------------------------------------------------------------------- */
/*  ---------------------------------------------------------------------- */
/*  transitions */
/*  ---------------------------------------------------------------------- */
a, a:visited, a img, a img:visited, input, textarea, button, a.btn, .searchGroup-container .searchGroup-input input, .searchGroup-container .searchGroup-btn .svg, .topZutaten-container .topZutaten-item, .topZutaten-container .topZutaten-item:before, .deineAuswahl-container a.deineAuswahl-item, .deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete, .deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete .svg, .anzahlPersonen-container .minus, .anzahlPersonen-container .plus, .anzahlPersonen-container .minus .svg, .anzahlPersonen-container .plus .svg, .ratingBtn-container button, .ratingBtn-container button .svg path {
    -webkit-transition: all 200ms ease-in-out;
    -moz-transition: all 200ms ease-in-out;
    -ms-transition: all 200ms ease-in-out;
    -o-transition: all 200ms ease-in-out;
    transition: all 200ms ease-in-out;
}

/*  ---------------------------------------------------------------------- */
/*  input */
/*  ---------------------------------------------------------------------- */
/*  ---------------------------------------------------------------------- */
/*  functions */
/*  ---------------------------------------------------------------------- */
.focuspoint {
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    perspective: 1000px;
}

.focuspoint img {
    margin: 0;
    display: block;
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    max-height: none;
    max-width: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

/*  ---------------------------------------------------------------------- */
/*  gradient */
/*  ---------------------------------------------------------------------- */
/*  ---------------------------------------------------------------------- */
/*  global */
/*  ---------------------------------------------------------------------- */
html, button, input, select, textarea {
    color: #000000;
}

body {
    background: #F0F0F0;
    color: #000000;
    font-family: "rubik", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35em;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body, html {
    margin: 0;
    padding: 0;
}

/*  ---------------------------------------------------------------------- */
/*  typography */
/*  ---------------------------------------------------------------------- */
h1, h2, h3, h4, h5 {
    font-weight: 700;
    padding: 0;
}

h1 {
    font-size: 2.5em;
    line-height: 1.2em;
    letter-spacing: -0.01em;
    margin: 0 0 0.5em 0;
}

h2 {
    font-size: 1.75em;
    line-height: 1.25em;
    letter-spacing: -0.01em;
    margin: 0 0 0.75em 0;
}

h3 {
    font-size: 1.2em;
    line-height: 1.3em;
    margin: 0 0 1em 0;
}

h4 {
    font-size: 1em;
    line-height: 1.35em;
    margin: 0 0 0.1em 0;
}

h1.white, h2.white, h3.white, h4.white, p.white, span.white, ul.white, li.white, a.white, i.white {
    color: #FFFFFF;
}

h1.black, h2.black, h3.black, h4.black, p.black, span.black, ul.black, li.black, a.black, i.black {
    color: #000000;
}

h1.yellow, h2.yellow, h3.yellow, h4.yellow, p.yellow, span.yellow, ul.yellow, li.yellow, a.yellow, i.yellow {
    color: #E8E012;
}

h1.green, h2.green, h3.green, h4.green, p.green, span.green, ul.green, li.green, a.green, i.green {
    color: #76B82A;
}

h1.grey-light, h2.grey-light, h3.grey-light, h4.grey-light, p.grey-light, span.grey-light, ul.grey-light, li.grey-light, a.grey-light, i.grey-light {
    color: #F0F0F0;
}

h1.grey-dark, h2.grey-dark, h3.grey-dark, h4.grey-dark, p.grey-dark, span.grey-dark, ul.grey-dark, li.grey-dark, a.grey-dark, i.grey-dark {
    color: #C8C8C8;
}

h1.smallmargin, h2.smallmargin, h3.smallmargin, h4.smallmargin, p.smallmargin, span.smallmargin, ul.smallmargin, li.smallmargin, a.smallmargin, i.smallmargin {
    margin-bottom: 0.5em;
}

h1.nomargin, h2.nomargin, h3.nomargin, h4.nomargin, p.nomargin, span.nomargin, ul.nomargin, li.nomargin, a.nomargin, i.nomargin {
    margin-bottom: 0;
}

b,
strong {
    font-weight: 600;
}

p, pre {
    margin: 0 0 1.5em 0;
}

p:last-of-type, pre:last-of-type {
    margin-bottom: 0;
}

p:last-of-type.extraMargin-bottom, pre:last-of-type.extraMargin-bottom {
    margin: 0 0 1.5em 0;
}

em, i {
    font-style: normal;
}

a, a:visited, a img, a img:visited {
    color: #E8E012;
    cursor: pointer;
    text-decoration: none;
    font-style: normal;
}

a.underline, a:visited.underline, a img.underline, a img:visited.underline {
    text-decoration: underline;
}

a:hover, a:active, a:visited:hover, a:visited:active, a img:hover, a img:active, a img:visited:hover, a img:visited:active {
    color: #76B82A;
}

img {
    height: auto;
    max-width: 100%;
}

input.placeholder, textarea.placeholder {
    color: #000000;
    opacity: 1;
    filter: alpha(opacity=100);
}

input:-moz-placeholder, textarea:-moz-placeholder {
    color: #000000;
    opacity: 1;
    filter: alpha(opacity=100);
}

input::-moz-placeholder, textarea::-moz-placeholder {
    color: #000000;
    opacity: 1;
    filter: alpha(opacity=100);
}

input:-ms-input-placeholder, textarea:-ms-input-placeholder {
    color: #000000;
    opacity: 1;
    filter: alpha(opacity=100);
}

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: #000000;
    opacity: 1;
    filter: alpha(opacity=100);
}

::-moz-selection {
    color: #E8E012;
    background: #000000;
}

::selection {
    color: #E8E012;
    background: #000000;
}

.pulsate:active, button:active, a.btn:active, .searchGroup-container .searchGroup-input input:active, .topZutaten-container .topZutaten-item:active, .deineAuswahl-container a.deineAuswahl-item:active, .anzahlPersonen-container .minus:active, .anzahlPersonen-container .plus:active {
    animation: pulsate 400ms ease-in-out;
}

@keyframes pulsate {
    25% {
        -webkit-box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
        -moz-box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
        -ms-box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
        -o-box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
        box-shadow: 0 0 1em rgba(0, 0, 0, 0.5);
    }
    100% {
        -webkit-box-shadow: 0 0 0.25em rgba(0, 0, 0, 0);
        -moz-box-shadow: 0 0 0.25em rgba(0, 0, 0, 0);
        -ms-box-shadow: 0 0 0.25em rgba(0, 0, 0, 0);
        -o-box-shadow: 0 0 0.25em rgba(0, 0, 0, 0);
        box-shadow: 0 0 0.25em rgba(0, 0, 0, 0);
    }
}

/*  elements styling */
button, a.btn {
    box-sizing: border-box;
    font-family: "rubik", sans-serif;
    margin: 0;
    overflow: hidden;
    -webkit-appearance: auto;
    -webkit-border-radius: 5em;
    -moz-border-radius: 5em;
    -ms-border-radius: 5em;
    -o-border-radius: 5em;
    border-radius: 5em;
}

button.primary, button.secondary, a.btn.primary, a.btn.secondary {
    border: none;
    font-size: 1.2em;
    line-height: 1.3em;
    min-height: 3.2em;
    padding: 0.5em 2.5em;
    position: relative;
}

button.primary, a.btn.primary {
    font-weight: 600;
    text-transform: uppercase;
}

button.secondary, a.btn.secondary {
    font-weight: 400;
}

button.black-bg, a.btn.black-bg {
    background: #000000;
    color: #FFFFFF;
}

button.black-bg:hover, a.btn.black-bg:hover {
    background: #E8E012;
    color: #000000;
}

button.grey-bg, a.btn.grey-bg {
    background: #F0F0F0;
    color: #000000;
}

button.grey-bg:hover, a.btn.grey-bg:hover {
    background: #C8C8C8;
}

button.full-width, a.btn.full-width {
    width: 100%;
}

button.margin-bottom, a.btn.margin-bottom {
    margin-bottom: 0.75em;
}

/*  ---------------------------------------------------------------------- */
/*  layout */
/*  ---------------------------------------------------------------------- */
.header-container {
    background: #000000;
    padding: 0;
    width: 100%;
}

.header-container .row {
    margin-top: 0;
    margin-bottom: 0;
}

.header-container .logo-container {
    margin-top: 1em;
    margin-bottom: 1em;
    max-width: 170px;
}

.footer-container {
    color: #FFFFFF;
    padding: 1em 0;
    background: #000000;
}

.footer-container .logo-container {
    max-width: 170px;
}

.footer-container .copyright {
    color: #FFFFFF;
    display: block;
}

/*  ---------------------------------------------------------------------- */
/*  design */
/*  ---------------------------------------------------------------------- */
section {
    box-sizing: border-box;
    padding: 1em 0;
    position: relative;
}

section.yellow-background {
    background: #E8E012;
}

section.green-background {
    background: #76B82A;
}

section.greengreen-background {
    background: #76B82A;
}

section.white-background {
    background: #FFFFFF;
}

section.grey-background {
    background: #F0F0F0;
}

.searchGroup-container {
    margin: 2em 0 0.25em 0;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75em;
}

.searchGroup-container .searchGroup-input {
    position: relative;
    flex: 1 1 auto;
}

.searchGroup-container .searchGroup-input input {
    background: #FFFFFF;
    border: 2px solid #FFFFFF;
    box-sizing: border-box;
    color: #000000;
    font-size: 1.2em;
    font-weight: 600;
    line-height: 1.3em;
    min-height: 3.2em;
    padding: 0.5em 2.5em 0.5em 1em;
    text-align: left;
    width: 100%;
    -webkit-border-radius: 0.5em;
    -moz-border-radius: 0.5em;
    -ms-border-radius: 0.5em;
    -o-border-radius: 0.5em;
    border-radius: 0.5em;
}

.suggestions-box {

    background: #FFFFFF;
    border: 2px solid #FFFFFF;
    box-sizing: border-box;
    color: #000000;
    font-size: 1.2em;
    font-weight: 600;
    line-height: 1.3em;
    min-height: 3.2em;
    padding: 0.5em 2.5em 0.5em 1em;
    text-align: left;
    width: 100%;
}

.searchGroup-container .searchGroup-input input:focus {
    border-color: #000000;
}

/* Suggestions dropdown styling (matches updated markup using #suggestions-box) */
#suggestions-box {
    background: #FFFFFF;
    border: 2px solid #FFFFFF;
    box-sizing: border-box;
    color: #000000;
    font-size: 1.2em;
    font-weight: 600;
    line-height: 1.3em;
    padding: 0.25em 0;
    text-align: left;
    width: 100%;
    border-radius: 0.5em;
    margin-top: 0.5em;
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    z-index: 50;
    display: none;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.suggestion-item {
    background: #FFFFFF;
    border-top: 1px solid #F0F0F0;
    color: #000000;
    font-size: 1.1em;
    font-weight: 500;
    line-height: 2em;
    padding: 0.2em 0.75em 0.2em 1.0em;
    width: 100%;
    cursor: pointer;
}

.suggestion-item:hover {
    background: #F7F7F7;
}

.searchGroup-container .searchGroup-btn {
    pointer-events: none;
    position: absolute;
    top: 50%;
    right: 1em;
    transform: translateY(-50%);
}

.searchGroup-container .searchGroup-btn .svg {
    display: block;
    overflow: visible;
    stroke: #000000;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    height: 1.4em; /* slightly smaller so it sits nicely inside the field */
    width: 1.4em;
}

/* Meat toggle button next to the search field */
.meat-toggle {
    background: #FFFFFF;
    border: 2px solid #FFFFFF;
    color: #000000;
    font-weight: 600;
    line-height: 1;
    min-height: 3.2em;
    padding: 0.5em 1em;
    border-radius: 0.5em;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    white-space: nowrap;
}

.meat-toggle:hover {
    border-color: #000000;
}

.meat-toggle .icon {
    font-size: 1.25em;
    line-height: 1;
}

.meat-toggle.active {
    background: #E8E012;
    border-color: #E8E012;
}

/* Seasonal ingredients styling like chips */
.seasonal-ingredients-container {
    display: flex;
    flex-wrap: wrap;
}

.seasonal-ingredient-item {
    background: #000000;
    color: #FFFFFF;
    border: 2px solid #000000;
    height: 2.6em;
    padding: 0 1.25em;
    margin: 0 0.65em 0.65em 0;
    border-radius: 3em;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}

.seasonal-ingredient-item:hover {
    background: #C8C8C8;
    color: #000000;
}

.seasonal-ingredient-item.active {
    background: #E8E012;
    color: #000000;
}

.topZutaten-container .topZutaten-item {
    background: #000000;
    box-sizing: border-box;
    color: #FFFFFF;
    cursor: pointer;
    height: 2.6em;
    margin: 0 0.65em 0.65em 0;
    min-width: 4em;
    padding: 0 1.25em;
    position: relative;
    -webkit-border-radius: 3em;
    -moz-border-radius: 3em;
    -ms-border-radius: 3em;
    -o-border-radius: 3em;
    border-radius: 3em;
}

.topZutaten-container .topZutaten-item:before {
    background: #000000;
    display: block;
    content: "";
    background-image: url("../content/icons/check-mark.2d437cdc2273.svg");
    background-size: 0.6em;
    background-repeat: no-repeat;
    background-position: center;
    height: 1.2em;
    width: 1.2em;
    -webkit-border-radius: 2em;
    -moz-border-radius: 2em;
    -ms-border-radius: 2em;
    -o-border-radius: 2em;
    border-radius: 2em;
    position: absolute;
    top: 0.75em;
    right: -0.25em;
    opacity: 0;
    filter: alpha(opacity=0);
}

.topZutaten-container .topZutaten-item:hover {
    background: #C8C8C8;
    color: #000000;
}

.topZutaten-container .topZutaten-item.active {
    background: #E8E012;
    color: #000000;
}

.topZutaten-container .topZutaten-item.active:before {
    position: absolute;
    top: -0.25em;
    right: -0.25em;
    opacity: 1;
    filter: alpha(opacity=100);
}

.topZutaten-container .topZutaten-item:last-of-type {
    margin-right: 0;
}

.deineAuswahl-container a.deineAuswahl-item {
    background: #FFFFFF;
    border: 2px solid #FFFFFF;
    box-sizing: border-box;
    color: #000000;
    cursor: pointer;
    height: 2.6em;
    margin: 0 0.65em 0.65em 0;
    min-width: 4em;
    padding: 0 0 0 1.25em;
    position: relative;
    -webkit-border-radius: 3em;
    -moz-border-radius: 3em;
    -ms-border-radius: 3em;
    -o-border-radius: 3em;
    border-radius: 3em;
}

.deineAuswahl-container a.deineAuswahl-item:last-of-type {
    margin-right: 0;
}

.deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete {
    background: #FF2E00;
    height: calc(2.6em - 4px);
    margin-left: 0.75em;
    width: calc(2.6em - 4px);
    -webkit-border-radius: 3em;
    -moz-border-radius: 3em;
    -ms-border-radius: 3em;
    -o-border-radius: 3em;
    border-radius: 3em;
}

.deineAuswahl-container a.deineAuswahl-item .deineAuswahl-delete .svg {
    display: block;
    overflow: visible;
    stroke: #FFFFFF;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    height: 1.2em;
    width: 1.2em;
}

.deineAuswahl-container a.deineAuswahl-item:hover {
    background: #FF2E00;
    border-color: #FF2E00;
    color: #FFFFFF;
}

.deineAuswahl-container a.deineAuswahl-item:hover .deineAuswahl-delete {
    background: #FFFFFF;
}

.deineAuswahl-container a.deineAuswahl-item:hover .deineAuswahl-delete .svg {
    stroke: #000000;
}

.anzahlPersonen-container {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
}

.anzahlPersonen-container .minus, .anzahlPersonen-container .plus {
    background: #000000;
    color: #FFFFFF;
    border: 2px solid #000000;
    box-sizing: border-box;
    height: 1.8em; /* smaller buttons */
    position: relative;
    width: 1.8em; /* smaller buttons */
    font-size: 1em; /* balanced symbol size */
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    -webkit-border-radius: 0.5em;
    -moz-border-radius: 0.5em;
    -ms-border-radius: 0.5em;
    -o-border-radius: 0.5em;
    border-radius: 0.5em;
}

.anzahlPersonen-container .minus:hover, .anzahlPersonen-container .plus:hover {
    background: #C8C8C8;
    border-color: #C8C8C8;
    color: #000000;
}

.anzahlPersonen-container #current-persons {
    display: inline-block;
    min-width: 2.5em;
    text-align: center;
    font-size: 1.1em;
}

.anzahlPersonen-container input {
    background: #F0F0F0;
    border: 2px solid #F0F0F0;
    box-sizing: border-box;
    color: #000000;
    height: 2.6em;
    margin: 0 0.65em;
    text-align: center;
    width: 6em;
    -webkit-border-radius: 0.5em;
    -moz-border-radius: 0.5em;
    -ms-border-radius: 0.5em;
    -o-border-radius: 0.5em;
    border-radius: 0.5em;
}

.anzahlPersonen-container input:focus {
    background: #FFFFFF;
    border-color: #000000;
}

.zutaten-table .zutatenTable-row {
    border-bottom: 1px solid #C8C8C8;
    padding: 0.6em;
}

.zutaten-table .zutatenTable-row .zutatenTable-item {
    width: 70%;
}

.zutaten-table .zutatenTable-row .zutatenTable-value {
    font-weight: 600;
    text-align: right;
    width: 30%;
}

.zutaten-table .zutatenTable-row:nth-child(odd) {
    background: #FFFFFF;
}

.zutaten-table .zutatenTable-row:nth-child(even) {
    background: rgba(255, 255, 255, 0.5);
}

.zutaten-table .zutatenTable-row:first-of-type {
    border-top: 1px solid #C8C8C8;
}

ol.cookSteps-list {
    counter-reset: item;
    list-style-type: none;
    margin: 0;
    padding: 0;
}

ol.cookSteps-list li {
    margin: 0 0 1.5em 0;
}

ol.cookSteps-list li:before {
    background: #E8E012;
    content: counter(item) "";
    counter-increment: item;
    font-weight: 600;
    height: 2em;
    margin: -0.3em 1em 0 0;
    width: 2em;
    -webkit-border-radius: 2em;
    -moz-border-radius: 2em;
    -ms-border-radius: 2em;
    -o-border-radius: 2em;
    border-radius: 2em;
    -webkit-flex-shrink: 0;
    -webkit-box-flex: 0;
    -moz-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}

.ratingBtn-container button {
    box-sizing: border-box;
    border: 2px solid;
    color: #FFFFFF;
    height: 2.6em;
    padding: 0 1em;
    position: relative;
    -webkit-border-radius: 0.5em;
    -moz-border-radius: 0.5em;
    -ms-border-radius: 0.5em;
    -o-border-radius: 0.5em;
    border-radius: 0.5em;
}

.ratingBtn-container button .svg {
    display: block;
    overflow: visible;
    height: 1.7em;
    margin-right: 0.5em;
    width: 1.7em;
}

.ratingBtn-container button .svg path {
    fill: #FFFFFF;
}

.ratingBtn-container button.yes {
    background: #76B82A;
    border-color: #76B82A;
    margin: 0 0.65em 0 0;
}

.ratingBtn-container button.yes:hover {
    background: #FFFFFF;
    border-color: #76B82A;
    color: #000000;
}

.ratingBtn-container button.yes:hover .svg path {
    fill: #76B82A;
}

.ratingBtn-container button.no {
    background: #FF2E00;
    border-color: #FF2E00;
}

.ratingBtn-container button.no:hover {
    background: #FFFFFF;
    border-color: #FF2E00;
    color: #000000;
}

.ratingBtn-container button.no:hover .svg path {
    fill: #FF2E00;
}

/* Loading state for Generate button */
#generate-recipe.loading {
    position: relative;
    background-color: #C8C8C8;
    color: #999999;
}

#generate-recipe.loading:after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    border: 3px solid #fff;
    border-top: 3px solid #76B82A;
    border-radius: 50%;
    animation: gorilla-spin 1s linear infinite;
}

@keyframes gorilla-spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

/*  -------------------------------------------------------------------------------------------------------------------------------------------- */
/*  responsive styling */
/*  -------------------------------------------------------------------------------------------------------------------------------------------- */
/*  -------------------------------------------------------------------------------------------------------------------------------------------- */
/*  -------------------------------------------------------------------------------------------------------------------------------------------- */
/*  -------------------------------------------------------------------------------------------------------------------------------------------- */
