:root {
  --color-text: #24352c;
  --color-background: #f7f5ee;
  --color-surface: #fffdfa;
  --color-accent: #3e5d45;
  --color-text-secondary: #667169;
  --content-width: 1180px;
  --section-width: 1180px;
  --page-gutter: 20px;
  --section-gap: 48px;
  --surface-radius: 20px;
  --surface-border: #dfe4dc;
  --surface-shadow: 0 8px 24px rgb(36 53 44 / 7%);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-background);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.site-header,
main {
  width: min(100% - 32px, var(--content-width));
  margin-inline: auto;
}

.site-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-block: 20px;
}

a {
  color: var(--color-accent);
}

.site-logo {
  font-weight: 700;
  text-decoration: none;
}

.cover-page {
  padding: 24px 0 16px;
}

.cover-page .cover {
  width: 100%;
  max-width: none;
  margin: 0;
}

.hero-banner {
  width: min(780px, calc(100% - 32px));
  margin: 0 auto;
}

.hero-banner__image {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #ece9e2;
  border-radius: 12px;
}

.cover__content {
  width: min(780px, 100%);
  margin: 28px auto 0;
  text-align: left;
}

.cover__content > * {
  margin: 0;
}

.cover__content > * + * {
  margin-top: 20px;
}

.cover__content h1 {
  margin: 0;
  font-size: clamp(1.75rem, 6vw, 2rem);
  line-height: 1.25;
}

/* Персональная настройка меню. */
.calculator-section {
  margin-top: 28px;
}

.calculator-card {
  padding: 24px 26px;
  background: linear-gradient(145deg, #ffffff 0%, #fafcf8 100%);
  border: 1px solid var(--surface-border);
  border-radius: var(--surface-radius);
  box-shadow: var(--surface-shadow);
}

.calculator-card__intro h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #31483b;
  font-size: clamp(1.2rem, 3vw, 1.45rem);
  line-height: 1.3;
}

.calculator-card__title-icon {
  flex: 0 0 auto;
  width: 1.12em;
  height: 1.12em;
  color: #4f755d;
  stroke: currentcolor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.calculator-card__intro p {
  margin: 8px 0 0;
  color: #647267;
  font-size: 0.94rem;
}

.calculator-card__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.calculator-field {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: #526258;
  font-size: 0.82rem;
  font-weight: 700;
}

.calculator-field__control {
  display: flex;
  align-items: center;
  min-height: 45px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #d9e5d6;
  border-radius: 12px;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}

.calculator-field__control:focus-within {
  border-color: #9bc19d;
  box-shadow: 0 0 0 3px rgb(157 195 157 / 16%);
}

.calculator-field input {
  width: 100%;
  min-width: 0;
  padding: 10px 0 10px 12px;
  color: var(--color-text);
  background: transparent;
  border: 0;
  font: inherit;
  font-size: 1rem;
  outline: 0;
}

.calculator-field input[aria-invalid="true"] {
  color: #9a5348;
}

.calculator-field__control small {
  flex: 0 0 auto;
  padding: 0 11px 0 7px;
  color: #748178;
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
}

.calculator-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 17px;
}

.calculator-card__summary {
  margin: 0;
  color: #365845;
  font-size: 0.92rem;
  font-weight: 700;
}

.calculator-card__hint {
  max-width: 64ch;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.5;
}

.calculator-card__reset {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 8px 12px;
  color: #52705a;
  background: #f4f8f2;
  border: 1px solid #d6e4d3;
  border-radius: 10px;
  cursor: pointer;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  transition: transform 200ms ease, background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}

.calculator-card__reset:hover {
  background: #eaf5e8;
  border-color: #bdd4bb;
  box-shadow: 0 5px 10px rgb(74 114 79 / 8%);
  transform: translateY(-1px);
}

.calculator-card__reset:focus-visible {
  outline: 2px solid #75a27d;
  outline-offset: 2px;
}

.calculator-card__status {
  min-height: 1.3em;
  margin: 7px 0 0;
  color: #9a5348;
  font-size: 0.82rem;
}

.cover__checks {
  padding: 0;
  list-style: none;
}

.cover__checks li + li {
  margin-top: 4px;
}

.cover__nutrition h2,
.cover__nutrition p {
  margin: 0;
}

.cover__nutrition h2 {
  font-size: 1rem;
  line-height: 1.4;
}

.cover__nutrition p {
  margin-top: 10px;
}

.cover__tip {
  padding: 10px 12px;
  background: #fff7cc;
}

.menu-info {
  padding: 26px;
  background: linear-gradient(145deg, #ffffff 0%, #fafcf8 100%);
  border: 1px solid #e1e8df;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgb(47 72 56 / 8%), 0 2px 7px rgb(47 72 56 / 4%);
}

.menu-info > * {
  margin: 0;
}

.menu-info > * + * {
  margin-top: 18px;
}

.menu-info__source,
.menu-info__audience,
.menu-info__summary,
.menu-info__footer,
.menu-info__calories-note {
  color: #5c6a61;
}

.menu-info__source {
  font-size: 0.9rem;
  line-height: 1.5;
}

.menu-info__description {
  max-width: 860px;
  color: #5c6a61;
  font-size: 0.9375rem;
  line-height: 1.65;
}

.menu-info__description p {
  margin: 0;
}

.menu-info__description p + p {
  margin-top: 10px;
}

.menu-info__important {
  padding: 12px 14px;
  margin: 0;
  background: #fbfcf8;
  border: 1px solid #e2e7df;
  border-left: 3px solid #91b598;
  border-radius: 8px;
  color: #4d5d53;
  font-size: 0.9rem;
  line-height: 1.55;
}

.menu-info__checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.menu-info__checks li + li {
  margin-top: 0;
}

.menu-info__checks li {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  background: #f3f8f2;
  border: 1px solid #dce9da;
  border-radius: 10px;
  font-size: 0.9rem;
}

.menu-info__check-mark {
  color: #477f56;
  font-size: 1rem;
  font-weight: 700;
}

.menu-info__audience {
  font-size: 0.92rem;
}

.menu-info__nutrition h2 {
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}

.menu-info__nutrients {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.menu-info__nutrient {
  min-width: 0;
  min-height: 96px;
  padding: 14px 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  box-shadow: 0 3px 8px rgb(47 72 56 / 5%);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.menu-info__nutrient:nth-child(1) {
  background: #eaf6eb;
  border-color: #d5e8d7;
}

.menu-info__nutrient:nth-child(2) {
  background: #eaf4fb;
  border-color: #d6e7f1;
}

.menu-info__nutrient:nth-child(3) {
  background: #fff7df;
  border-color: #f1e5bd;
}

.menu-info__nutrient:nth-child(4) {
  background: #fff0e7;
  border-color: #f1dbca;
}

.menu-info__nutrient:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgb(47 72 56 / 10%), 0 0 0 3px rgb(181 205 183 / 16%);
}

.menu-info__nutrient span {
  display: block;
  color: #627067;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.menu-info__nutrient strong {
  display: block;
  margin-top: 8px;
  color: #294235;
  font-size: clamp(1rem, 2.3vw, 1.2rem);
  line-height: 1.2;
}

.menu-info__summary {
  font-size: 0.92rem;
}

.menu-info__calories {
  display: grid;
  gap: 3px;
  padding: 13px 15px;
  background: #f4f8f3;
  border: 1px solid #dce8da;
  border-radius: 12px;
}

.menu-info__calories-value {
  color: #314d3a;
  font-size: 1rem;
  font-weight: 700;
}

.menu-info__calories-note {
  font-size: 0.84rem;
}

.menu-info .cover__tip {
  padding: 11px 13px;
  background: #fff8d9;
  border: 1px solid #f0e4b7;
  border-radius: 10px;
  color: #5e5634;
  font-size: 0.9rem;
}

.menu-info__footer {
  font-size: 0.9rem;
}

.menu-adaptation-note {
  padding: 15px 17px;
  background: #f8fbf7;
  border: 1px solid #dde8da;
  border-radius: 12px;
  color: #516157;
  font-size: 0.9rem;
  line-height: 1.55;
}

.menu-adaptation-note h2,
.menu-adaptation-note p {
  margin: 0;
}

.menu-adaptation-note h2 {
  color: #385443;
  font-size: 1rem;
  line-height: 1.35;
}

.menu-adaptation-note p + p,
.menu-adaptation-note h2 + p {
  margin-top: 9px;
}

.week-menu {
  width: min(780px, 100%);
  padding: 26px;
  margin: 24px auto 0;
  background: linear-gradient(145deg, #ffffff 0%, #fafcf8 100%);
  border: 1px solid #e1e8df;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgb(47 72 56 / 8%), 0 2px 7px rgb(47 72 56 / 4%);
  text-align: left;
}

.week-menu__title {
  margin: 0 0 16px;
  font-size: 1.35rem;
  line-height: 1.3;
}

.week-menu__tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.week-menu__tab {
  --tab-glow: rgb(109 150 122 / 24%);
  min-width: 0;
  min-height: 44px;
  padding: 9px 4px;
  color: var(--color-text);
  border: 1px solid transparent;
  border-radius: 11px;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 3px 7px rgb(47 72 56 / 8%);
  transition: transform 230ms ease, border-color 230ms ease, box-shadow 230ms ease, background 230ms ease, color 230ms ease;
}

.week-menu__tab.is-active {
  color: #233229;
  font-weight: 700;
  transform: scale(1.03);
  box-shadow: 0 7px 15px rgb(47 72 56 / 16%), 0 0 0 3px var(--tab-glow);
}

.week-menu__tab:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgb(47 72 56 / 15%), 0 0 0 3px var(--tab-glow);
}

.week-menu__tab.is-active:hover {
  transform: translateY(-2px) scale(1.03);
}

.week-menu__tab:focus-visible {
  outline: 2px solid #51755e;
  outline-offset: 2px;
}

.week-menu__tab--monday {
  --tab-glow: rgb(97 166 112 / 24%);
  background: linear-gradient(145deg, #eef8ef 0%, #dcefe0 100%);
  border-color: #c5dfca;
}

.week-menu__tab--monday.is-active {
  background: linear-gradient(145deg, #d4efd9 0%, #b6ddbf 100%);
  border-color: #8cb998;
}

.week-menu__tab--tuesday {
  --tab-glow: rgb(90 151 193 / 23%);
  background: linear-gradient(145deg, #eff8fd 0%, #dbeef8 100%);
  border-color: #c5ddeb;
}

.week-menu__tab--tuesday.is-active {
  background: linear-gradient(145deg, #d9effb 0%, #b7d8ec 100%);
  border-color: #89b9d6;
}

.week-menu__tab--wednesday {
  --tab-glow: rgb(208 167 70 / 23%);
  background: linear-gradient(145deg, #fff9e4 0%, #ffefbf 100%);
  border-color: #f0dfaa;
}

.week-menu__tab--wednesday.is-active {
  background: linear-gradient(145deg, #fff0be 0%, #f1db92 100%);
  border-color: #d5ba62;
}

.week-menu__tab--thursday {
  --tab-glow: rgb(150 124 205 / 22%);
  background: linear-gradient(145deg, #f5f1fc 0%, #e8e0f8 100%);
  border-color: #d9d0ee;
}

.week-menu__tab--thursday.is-active {
  background: linear-gradient(145deg, #e7def9 0%, #d2c3ed 100%);
  border-color: #ae9bd8;
}

.week-menu__tab--friday {
  --tab-glow: rgb(202 135 91 / 22%);
  background: linear-gradient(145deg, #fff2e9 0%, #f9e2d2 100%);
  border-color: #f0d1bd;
}

.week-menu__tab--friday.is-active {
  background: linear-gradient(145deg, #f9e0cc 0%, #efc4a8 100%);
  border-color: #d9a07e;
}

.week-menu__tab--saturday {
  --tab-glow: rgb(84 166 155 / 22%);
  background: linear-gradient(145deg, #ebfaf8 0%, #d4efeb 100%);
  border-color: #bce3de;
}

.week-menu__tab--saturday.is-active {
  background: linear-gradient(145deg, #d2f0eb 0%, #addbd3 100%);
  border-color: #7bbeb4;
}

.week-menu__tab--sunday {
  --tab-glow: rgb(205 126 151 / 21%);
  background: linear-gradient(145deg, #fff1f4 0%, #f7dce4 100%);
  border-color: #edcbd4;
}

.week-menu__tab--sunday.is-active {
  background: linear-gradient(145deg, #f8dfe7 0%, #ecc1d0 100%);
  border-color: #d895a8;
}

.week-menu__panel {
  margin-top: 26px;
}

.week-menu__day-title {
  margin: 0 0 12px;
  font-size: 1.05rem;
  line-height: 1.4;
}

.week-menu__empty {
  margin: 0;
}

.meal-card {
  overflow: hidden;
  background: linear-gradient(135deg, #fffefd 0%, #fafcf8 100%);
  border: 1px solid #e2e7df;
  border-radius: 14px;
  box-shadow: 0 2px 5px rgb(47 72 56 / 4%);
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}

.meal-card + .meal-card {
  margin-top: 12px;
}

.meal-card:hover {
  transform: translateY(-2px);
  border-color: #c8d5c5;
  box-shadow: 0 8px 18px rgb(47 72 56 / 10%);
}

.meal-card.is-open {
  background: linear-gradient(135deg, #ffffff 0%, #f5faf4 100%);
  border-color: #c6d8c3;
  box-shadow: 0 9px 20px rgb(47 72 56 / 11%);
}

.meal-card__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 58px;
  padding: 14px 18px;
  color: var(--color-text);
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.meal-card__icon {
  display: grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  margin-left: 16px;
  color: #486654;
  background: #eef5ec;
  border: 1px solid #d5e3d2;
  border-radius: 50%;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1;
  place-items: center;
  transition: transform 220ms ease, background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.meal-card:hover .meal-card__icon,
.meal-card.is-open .meal-card__icon {
  background: #e2f0df;
  border-color: #bdd2ba;
  box-shadow: 0 3px 8px rgb(72 102 84 / 13%);
}

.meal-card.is-open .meal-card__icon {
  transform: rotate(180deg);
}

.meal-card__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 230ms ease;
}

.meal-card.is-open .meal-card__body {
  grid-template-rows: 1fr;
}

.meal-card__body-inner {
  min-height: 0;
  overflow: hidden;
  padding: 0 18px;
  opacity: 0;
  transition: padding 230ms ease, opacity 160ms ease;
}

.meal-card.is-open .meal-card__body-inner {
  padding-bottom: 18px;
  opacity: 1;
}

.meal-card__summary {
  width: fit-content;
  max-width: 100%;
  margin: 4px 0 10px;
  padding: 7px 10px;
  color: #5f7066;
  background: #f7f9f5;
  border: 1px solid #e2e8df;
  border-radius: 9px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
}

.meal-card__dishes {
  padding: 0;
  margin: 0;
  list-style: none;
}

.meal-card__dishes li + li {
  margin-top: 8px;
}

.menu-dish {
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e3ebe1;
  border-radius: 17px;
  box-shadow: 0 4px 12px rgb(47 72 56 / 6%);
  transition: border-color 230ms ease, box-shadow 230ms ease, background-color 230ms ease;
}

.menu-dish + .menu-dish {
  margin-top: 10px;
}

.menu-dish__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 50px;
  padding: 12px 15px;
  color: var(--color-text);
  background: #fbfdf9;
  border: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.menu-dish__title {
  font-weight: 600;
}

.menu-dish__icon {
  display: grid;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  margin-left: 12px;
  color: #4c6955;
  background: #edf5eb;
  border: 1px solid #d5e4d2;
  border-radius: 50%;
  font-size: 1rem;
  line-height: 1;
  place-items: center;
  transition: transform 230ms ease, background-color 230ms ease;
}

.menu-dish__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 260ms ease;
}

.menu-dish.is-open .menu-dish__body {
  grid-template-rows: 1fr;
}

.menu-dish.is-open {
  border-color: #cddfc9;
  box-shadow: 0 12px 26px rgb(47 72 56 / 11%);
}

.menu-dish.is-open .menu-dish__trigger {
  background: #f7fbf5;
  border-bottom: 1px solid #e5ede3;
}

.menu-dish.is-open .menu-dish__icon {
  background: #deeedb;
  transform: rotate(180deg);
}

.menu-markdown {
  min-height: 0;
  overflow: hidden;
  padding: 0 12px;
  color: var(--color-text);
  line-height: 1.55;
}

.menu-dish.is-open .menu-markdown {
  padding: 20px;
  opacity: 1;
  transform: translateY(0);
}

.meal-card__body-inner > .menu-markdown {
  padding: 0;
}

.meal-card.is-open .meal-card__body-inner > .menu-markdown {
  padding-top: 4px;
}

.expandable-card__markdown {
  padding: 0;
}

.menu-markdown > :first-child {
  margin-top: 0;
}

.menu-markdown > :last-child {
  margin-bottom: 0;
}

.menu-markdown h1,
.menu-markdown h2,
.menu-markdown h3,
.menu-markdown h4,
.menu-markdown h5,
.menu-markdown h6 {
  margin: 20px 0 10px;
  line-height: 1.3;
}

.menu-markdown h1 {
  font-size: 1.25rem;
}

.menu-markdown h2 {
  font-size: 1.1rem;
}

.menu-markdown h3 {
  font-size: 1rem;
}

.menu-markdown p,
.menu-markdown ul,
.menu-markdown ol {
  margin: 10px 0;
}

.menu-markdown ul,
.menu-markdown ol {
  padding-left: 22px;
}

.menu-markdown li + li {
  margin-top: 4px;
}

.menu-markdown hr {
  margin: 18px 0;
  border: 0;
  border-top: 1px solid #e0e5dd;
}

.menu-markdown blockquote {
  margin: 12px 0;
  padding: 8px 12px;
  border-left: 3px solid #b7cbb9;
  background: #fafcf9;
}

.menu-markdown__image {
  display: block;
  width: 100%;
  max-width: 480px;
  height: auto;
  margin: 0 auto 14px;
  border-radius: 6px;
}

.menu-dish .menu-markdown {
  padding: 0 20px;
  opacity: 0;
  transform: translateY(-5px);
  transition: padding 260ms ease, opacity 210ms ease, transform 260ms ease;
}

.menu-dish .menu-markdown__image {
  width: min(82%, 560px);
  max-width: none;
  margin: 0 auto 20px;
  border: 1px solid #edf1eb;
  border-radius: 16px;
  box-shadow: 0 10px 22px rgb(47 72 56 / 13%);
}

.recipe-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 20px;
}

.recipe-macros {
  grid-column: 1 / -1;
  padding: 8px 11px;
  color: #5f7066;
  background: #f7f9f5;
  border: 1px solid #e2e8df;
  border-radius: 10px;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}

.menu-dish .recipe-meta {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr) minmax(0, 1.35fr);
}

.menu-dish .recipe-macros {
  grid-column: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

@media (max-width: 700px) {
  .menu-dish .recipe-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-dish .recipe-meta__item--portion {
    grid-column: 1 / -1;
  }

  .menu-dish .recipe-macros {
    grid-column: auto;
  }
}

.recipe-meta__item {
  min-width: 0;
  padding: 12px 13px;
  margin: 0 !important;
  background: #edf6ec;
  border: 1px solid #d9e8d6;
  border-radius: 12px;
}

.recipe-meta__item:nth-child(2) {
  background: #edf5fa;
  border-color: #d9e7ef;
}

.recipe-meta__label,
.recipe-meta__value {
  display: block;
}

.recipe-meta__label {
  align-items: center;
  gap: 6px;
  color: #607067;
  display: flex;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.recipe-meta__value {
  margin-top: 5px;
  color: #284133;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
}

.recipe-description {
  max-width: 72ch;
  margin: 0 0 16px !important;
  color: #637168;
  font-size: clamp(0.94rem, 1.45vw, 1rem);
  line-height: 1.58;
}

.recipe-detail-card > .recipe-description {
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}

.recipe-why {
  overflow: hidden;
  margin: 0 0 22px;
  color: #3e5145;
  background: #f5f8f0;
  border: 1px solid #dfe8d8;
  border-radius: 14px;
  box-shadow: 0 2px 7px rgb(55 83 60 / 4%);
  transition: border-color 220ms ease, background-color 220ms ease;
}

.recipe-why:hover,
.recipe-why:focus-within {
  background: #f2f7ed;
  border-color: #cfdfc8;
}

.recipe-why__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 54px;
  padding: 11px 15px 11px 18px;
  color: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.recipe-why__title,
.menu-dish .menu-markdown .recipe-why__title,
.recipe-detail__markdown .recipe-why__title {
  min-width: 0;
  padding: 0;
  margin: 0;
  color: #36513f;
  background: transparent;
  border: 0;
  font-size: clamp(0.98rem, 1.8vw, 1.08rem);
  font-weight: 700;
  line-height: 1.3;
}

.recipe-why__icon {
  display: grid;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  margin-left: 14px;
  color: #53715a;
  background: #eaf3e6;
  border: 1px solid #d2e1cc;
  border-radius: 50%;
  font-size: 1rem;
  line-height: 1;
  place-items: center;
  transition: transform 240ms ease, background-color 220ms ease;
}

.recipe-why.is-open .recipe-why__icon {
  background: #dfeedd;
  transform: rotate(180deg);
}

.recipe-why__body {
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  transition: max-height 280ms ease, opacity 200ms ease, visibility 0s linear 280ms;
}

.recipe-why.is-open .recipe-why__body {
  max-height: 1200px;
  visibility: visible;
  opacity: 1;
  transition: max-height 320ms ease, opacity 220ms ease, visibility 0s linear 0s;
}

.recipe-why__body-inner {
  padding: 0 18px 17px;
  border-top: 1px solid #e3ebde;
}

.recipe-why__text {
  padding-top: 13px;
  font-size: clamp(0.94rem, 1.45vw, 1.01rem);
  line-height: 1.68;
}

.recipe-why__text p {
  margin: 0;
}

.recipe-why__text p + p {
  margin-top: 9px;
}

.recipe-why__benefits {
  margin-top: 15px;
}

.recipe-why__benefits-title,
.menu-dish .menu-markdown .recipe-why__benefits-title,
.recipe-detail__markdown .recipe-why__benefits-title {
  padding: 0;
  margin: 0 0 9px;
  color: #526857;
  background: transparent;
  border: 0;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.025em;
}

.recipe-why__chips,
.menu-dish .menu-markdown .recipe-why__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.recipe-why__chips li {
  max-width: 100%;
  padding: 6px 10px;
  color: #4f6856;
  background: #fbfcf8;
  border: 1px solid #d8e4d3;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.recipe-ingredients {
  padding: 16px;
  margin: 22px 0;
  background: #fff8e5;
  border: 1px solid #f1e4bd;
  border-radius: 14px;
}

.recipe-ingredients h1,
.recipe-ingredients h2,
.recipe-ingredients h3,
.recipe-ingredients h4,
.recipe-ingredients h5,
.recipe-ingredients h6 {
  margin-top: 0;
  color: #5c5030;
}

.menu-dish .menu-markdown .recipe-ingredients h1,
.menu-dish .menu-markdown .recipe-ingredients h2,
.menu-dish .menu-markdown .recipe-ingredients h3,
.menu-dish .menu-markdown .recipe-ingredients h4,
.menu-dish .menu-markdown .recipe-ingredients h5,
.menu-dish .menu-markdown .recipe-ingredients h6 {
  padding: 0;
  background: transparent;
  border-left: 0;
}

.recipe-ingredients ul {
  padding-left: 20px;
  margin-bottom: 0;
}

.recipe-ingredients__list {
  display: grid;
  gap: 8px;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none;
}

.recipe-heading--icon,
.recipe-title--icon,
.recipe-inline-label--icon {
  display: flex;
  align-items: center;
  gap: 0.48em;
}

.recipe-inline-label--icon {
  align-items: flex-start;
}

.recipe-heading__icon,
.recipe-title__icon,
.recipe-inline-label__icon {
  --recipe-icon-color: #5f8067;
  --recipe-icon-bg: #eef6ec;
  --recipe-icon-border: #d9e8d6;
  display: grid;
  flex: 0 0 auto;
  width: 1.55em;
  height: 1.55em;
  color: var(--recipe-icon-color);
  background: var(--recipe-icon-bg);
  border: 1px solid var(--recipe-icon-border);
  border-radius: 6px;
  place-items: center;
}

.recipe-heading__icon::before,
.recipe-title__icon::before,
.recipe-inline-label__icon::before,
.recipe-meta__label::before,
.recipe-detail__meta-label::before {
  display: block;
  width: 1em;
  height: 1em;
  background: currentColor;
  content: "";
  -webkit-mask: var(--recipe-icon) center / contain no-repeat;
  mask: var(--recipe-icon) center / contain no-repeat;
}

.recipe-heading__content,
.recipe-title__content,
.recipe-inline-label__content {
  min-width: 0;
}

.recipe-icon--ingredients,
.recipe-icon--pin {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6l-1 6 3 3v1H7v-1l3-3-1-6Z'/%3E%3Cpath d='M12 13v8'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #7b7041;
  --recipe-icon-bg: #fff8e5;
  --recipe-icon-border: #ecdfb9;
}

.recipe-icon--cooking {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10a4 4 0 0 1 1-7 5 5 0 0 1 10 0 4 4 0 0 1 1 7v3H6v-3Z'/%3E%3Cpath d='M8 13v7h8v-7M9 17h6'/%3E%3C/g%3E%3C/svg%3E");
}

.recipe-icon--calories,
.recipe-meta__item--calories .recipe-meta__label,
.recipe-detail__meta-item--calories .recipe-detail__meta-label {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 19V9M12 19V5M19 19v-7'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #57788c;
  --recipe-icon-bg: #eef6fa;
  --recipe-icon-border: #d7e6ee;
}

.recipe-icon--tips {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 22h4M8.5 15.5A7 7 0 1 1 15.5 15.5C14.5 16.2 14 17 14 18h-4c0-1-.5-1.8-1.5-2.5Z'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #8c7136;
  --recipe-icon-bg: #fff7df;
  --recipe-icon-border: #eedfaf;
}

.recipe-icon--warning {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2.5 20h19L12 3Z'/%3E%3Cpath d='M12 9v5M12 17.5h.01'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #9a6957;
  --recipe-icon-bg: #fff1eb;
  --recipe-icon-border: #efd8cf;
}

.recipe-icon--meat {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4a5 5 0 0 1 5 5c0 4-4 7-7 7-2 0-5-3-5-5 0-3 3-7 7-7Z'/%3E%3Cpath d='m9 15-4 4M5 16l3 3M3 18l3 3'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #99685f;
  --recipe-icon-bg: #fff0ec;
  --recipe-icon-border: #eed6cf;
}

.recipe-icon--soup {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11h16c0 5-3 8-8 8s-8-3-8-8ZM7 21h10M8 3c2 1 0 3 2 4M14 3c2 1 0 3 2 4'/%3E%3C/g%3E%3C/svg%3E");
}

.recipe-icon--garnish {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11h16c0 5-3 8-8 8s-8-3-8-8ZM7 21h10'/%3E%3Cpath d='M8 8h.01M12 7h.01M16 8h.01'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #8c7543;
  --recipe-icon-bg: #fff8e8;
  --recipe-icon-border: #ecdfbd;
}

.recipe-icon--drink {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 5h12l-1 16H7L6 5ZM8 10h8M14 5l3-3'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #557f87;
  --recipe-icon-bg: #eaf6f5;
  --recipe-icon-border: #d3e7e4;
}

.recipe-icon--time {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='13' r='8'/%3E%3Cpath d='M12 9v4l3 2M9 2h6'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #60767c;
  --recipe-icon-bg: #eef3f3;
  --recipe-icon-border: #d9e2e3;
}

.recipe-icon--portion {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/g%3E%3C/svg%3E");
}

.recipe-icon--result {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.5 2.5L16 9'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #5f8067;
  --recipe-icon-bg: #eef6ec;
  --recipe-icon-border: #d9e8d6;
}

.recipe-icon--alternative {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 3l4 4-4 4M3 7h18M7 21l-4-4 4-4M21 17H3'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #68758f;
  --recipe-icon-bg: #f0f1f8;
  --recipe-icon-border: #dcdeeb;
}

.recipe-icon--fruit {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7c-4-3-8 0-8 5 0 5 3 9 6 9 1 0 1.5-.5 2-.5s1 .5 2 .5c3 0 6-4 6-9 0-5-4-8-8-5ZM12 7c0-3 2-5 5-5M13 4c-2-2-4-2-5-1'/%3E%3C/g%3E%3C/svg%3E");
  --recipe-icon-color: #8d6c5d;
  --recipe-icon-bg: #fff1eb;
  --recipe-icon-border: #eed8d0;
}

.recipe-icon--dish {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14h18M5 14a7 7 0 0 1 14 0M8 18h8M12 7V5'/%3E%3C/g%3E%3C/svg%3E");
}

.recipe-meta__label::before,
.recipe-detail__meta-label::before {
  flex: 0 0 auto;
  color: var(--recipe-icon-color, #607067);
}

.recipe-meta__item--portion .recipe-meta__label,
.recipe-detail__meta-item--portion .recipe-detail__meta-label {
  --recipe-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/g%3E%3C/svg%3E");
}

.recipe-ingredients__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding-bottom: 7px;
  border-bottom: 1px solid rgb(181 155 91 / 18%);
}

.recipe-ingredients__item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.recipe-ingredients__name {
  min-width: 0;
}

.recipe-ingredients__amount {
  flex: 0 0 auto;
  color: #68562e;
  font-weight: 700;
  text-align: right;
}

.recipe-ingredients li::marker,
.menu-dish .menu-markdown ul li::marker {
  color: #739e75;
}

.menu-dish .menu-markdown h2 {
  padding: 10px 12px;
  margin-top: 26px;
  color: #385444;
  background: #f2f7f0;
  border-left: 3px solid #acc6a9;
  border-radius: 8px;
  font-size: 1.04rem;
}

.menu-dish .menu-markdown h3 {
  padding-left: 10px;
  margin-top: 22px;
  color: #475d4c;
  border-left: 2px solid #d0e0cd;
}

.menu-dish .menu-markdown ol {
  padding: 0;
  margin: 14px 0;
  list-style: none;
  counter-reset: recipe-step;
}

.menu-dish .menu-markdown ol li {
  position: relative;
  display: block;
  min-height: 25px;
  padding-left: 38px;
  counter-increment: recipe-step;
}

.menu-dish .menu-markdown ol li::before {
  display: grid;
  position: absolute;
  top: 0;
  left: 0;
  width: 25px;
  height: 25px;
  color: #4d6e55;
  background: #e7f1e5;
  border: 1px solid #cfe0cc;
  border-radius: 50%;
  content: counter(recipe-step);
  font-size: 0.77rem;
  font-weight: 700;
  line-height: 1;
  place-items: center;
}

.menu-dish .menu-markdown ol li + li {
  margin-top: 10px;
}

.menu-dish .menu-markdown hr {
  margin: 22px 6px;
  border-top-color: #edf1eb;
}

.recipe-ingredients hr {
  display: none;
}

.menu-dish .menu-markdown blockquote,
.menu-dish .menu-markdown .recipe-note {
  padding: 10px 12px;
  background: #f3f8f2;
  border: 1px solid #dce9d9;
  border-left: 3px solid #aac6a7;
  border-radius: 9px;
}

.menu-dish .menu-markdown .recipe-note {
  color: #4c5c51;
  font-size: 0.95rem;
}

@media (max-width: 480px) {
  .menu-dish.is-open .menu-markdown {
    padding: 16px;
  }

  .menu-dish .menu-markdown__image {
    width: 100%;
  }

  .recipe-meta {
    grid-template-columns: 1fr;
  }

  .recipe-why {
    width: 100%;
  }

  .recipe-why__trigger {
    min-height: 52px;
    padding: 10px 12px 10px 14px;
  }

  .recipe-why__body-inner {
    padding: 0 14px 15px;
  }

  .recipe-why__chips {
    gap: 6px;
  }
}

/* «Полный набор» и «10 полезных привычек»: общая desktop-композиция. */
.resource-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

.resource-sections > .supply-card,
.resource-sections > .habits-section {
  min-width: 0;
  width: 100%;
  height: 100%;
  margin-top: 0;
}

.resource-sections > .supply-card > .supply-card__title,
.resource-sections > .habits-section > .habits-section__title {
  min-height: 2.4em;
}

.resource-sections > .supply-card > .resource-image,
.resource-sections > .habits-section > .resource-image {
  width: 100%;
  height: clamp(220px, 24vw, 320px);
  object-fit: contain;
  background: #f7f5ee;
}

@media (max-width: 860px) {
  .resource-sections {
    grid-template-columns: 1fr;
    gap: var(--section-gap);
    align-items: start;
  }

  .resource-sections > .supply-card,
  .resource-sections > .habits-section {
    height: auto;
  }

  .resource-sections > .supply-card > .supply-card__title,
  .resource-sections > .habits-section > .habits-section__title {
    min-height: 0;
  }

  .resource-sections > .supply-card > .resource-image,
  .resource-sections > .habits-section > .resource-image {
    height: auto;
    object-fit: initial;
    background: transparent;
  }
}

.resource-sections {
  width: min(780px, 100%);
  margin: 40px auto 0;
  text-align: left;
}

.supply-card {
  padding: 28px;
  background: linear-gradient(145deg, #ffffff 0%, #f9fcf7 100%);
  border: 1px solid #e0e9dd;
  border-radius: 20px;
  box-shadow: 0 12px 30px rgb(47 72 56 / 8%), 0 2px 7px rgb(47 72 56 / 4%);
}

.supply-card__title,
.habits-section__title {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.3;
}

.supply-card__title {
  font-size: clamp(1.3rem, 3vw, 1.55rem);
}

.supply-card__title,
.habits-section__title,
.faq-section__title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.section-title-icon {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border: 1px solid transparent;
  border-radius: 12px;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 68%);
  place-items: center;
}

.section-title-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.section-title-icon--green {
  color: #52765b;
  background: #eaf5e9;
  border-color: #d1e4cf;
}

.section-title-icon--yellow {
  color: #80672e;
  background: #fff5d9;
  border-color: #efdfad;
}

.section-title-icon--blue {
  color: #4f7589;
  background: #eaf4f9;
  border-color: #d0e2eb;
}

.resource-image {
  display: block;
  width: 100%;
  max-width: 780px;
  height: auto;
  margin: 16px auto 0;
  border-radius: 8px;
}

.supply-card .resource-image {
  margin-top: 20px;
  margin-bottom: 22px;
  border: 1px solid #edf1eb;
  border-radius: 16px;
  box-shadow: 0 10px 22px rgb(47 72 56 / 11%);
}

.supply-card .resource-list {
  margin-top: 0;
}

#supply-list .expandable-card {
  background: #ffffff;
  border-color: #e0e9dd;
  border-radius: 14px;
  box-shadow: 0 3px 9px rgb(47 72 56 / 5%);
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
}

#supply-list .expandable-card + .expandable-card {
  margin-top: 12px;
}

#supply-list .expandable-card:hover {
  transform: translateY(-1px);
  border-color: #cbdcc7;
  box-shadow: 0 8px 18px rgb(47 72 56 / 9%);
}

#supply-list .expandable-card.is-open {
  background: #fcfefb;
  border-color: #c8dbc5;
  box-shadow: 0 10px 22px rgb(47 72 56 / 10%);
}

#supply-list .expandable-card__trigger {
  min-height: 58px;
  padding: 14px 17px;
}

#supply-list .expandable-card__label {
  font-size: 1rem;
}

#supply-list .resource-accordion-card__visual {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  margin-right: 11px;
  color: #547462;
  background: #edf5f2;
  border: 1px solid #d5e5df;
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 70%);
  place-items: center;
}

#supply-list .resource-accordion-card__visual--pot {
  color: #53778a;
  background: #ebf4f8;
  border-color: #d4e4eb;
}

#supply-list .resource-accordion-card__visual--basket {
  color: #53765b;
  background: #ebf5ea;
  border-color: #d4e5d2;
}

#supply-list .resource-accordion-card__line-icon {
  width: 19px;
  height: 19px;
}

#supply-list .expandable-card__icon {
  display: grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  margin-left: 14px;
  color: #4a6853;
  background: #edf5eb;
  border: 1px solid #d4e3d1;
  border-radius: 50%;
  font-size: 1.1rem;
  line-height: 1;
  place-items: center;
  transition: transform 230ms ease, background-color 230ms ease, box-shadow 230ms ease;
}

#supply-list .expandable-card.is-open .expandable-card__icon {
  background: #ddedda;
  box-shadow: 0 3px 8px rgb(72 102 84 / 13%);
  transform: rotate(180deg);
}

#supply-list .expandable-card__body {
  transition: grid-template-rows 260ms ease;
}

#supply-list .expandable-card__body-inner {
  padding: 0 17px;
  opacity: 0;
  transform: translateY(-5px);
  transition: padding 260ms ease, opacity 200ms ease, transform 260ms ease;
}

#supply-list .expandable-card.is-open .expandable-card__body-inner {
  padding-bottom: 20px;
  opacity: 1;
  transform: translateY(0);
}

.equipment-markdown {
  color: #3f5144;
  line-height: 1.62;
}

.equipment-markdown > blockquote {
  padding: 13px 15px;
  margin: 2px 0 18px;
  background: #eef7ed;
  border: 1px solid #d6e7d4;
  border-left: 3px solid #94bd91;
  border-radius: 11px;
  color: #465b4a;
}

.equipment-markdown > blockquote p {
  margin: 0;
}

.equipment-category {
  padding: 17px;
  margin: 16px 0;
  background: #ffffff;
  border: 1px solid #e2ebe0;
  border-radius: 15px;
  box-shadow: 0 4px 11px rgb(47 72 56 / 5%);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.equipment-category:hover {
  border-color: #d0dfcc;
  box-shadow: 0 8px 17px rgb(47 72 56 / 8%);
  transform: translateY(-1px);
}

.equipment-category > h1 {
  padding-bottom: 11px;
  margin: 0 0 14px;
  color: #385542;
  border-bottom: 1px solid #e6eee4;
  font-size: 1.08rem;
}

.equipment-subcategory {
  padding: 13px 14px;
  margin: 12px 0;
  background: #f7faf6;
  border: 1px solid #e4ede2;
  border-radius: 12px;
}

.equipment-subcategory > h2 {
  margin: 0 0 9px;
  color: #506654;
  font-size: 0.96rem;
}

.equipment-category h3 {
  margin: 16px 0 8px;
  color: #5a6c5d;
  font-size: 0.92rem;
}

.equipment-category p,
.equipment-category ul,
.equipment-category ol {
  margin: 10px 0;
}

.equipment-category ul,
.equipment-category ol {
  padding-left: 22px;
}

.equipment-category li {
  padding-left: 2px;
}

.equipment-category li + li {
  margin-top: 6px;
}

.equipment-category li::marker {
  color: #78a17b;
}

.shopping-basket__description {
  color: #536458;
  font-size: 0.91rem;
}

.shopping-basket__parameters {
  display: inline-flex;
  width: fit-content;
  padding: 5px 10px;
  color: #45634e;
  background: #edf6eb;
  border: 1px solid #d1e4ce;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.25;
}

.shopping-basket__list {
  display: grid;
  gap: 8px;
  padding: 0;
  list-style: none;
}

.shopping-basket__list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 10px;
  margin: 0;
  background: #f8faf7;
  border: 1px solid #e6eee3;
  border-radius: 9px;
}

.shopping-basket__product {
  min-width: 0;
}

.shopping-basket__amount {
  flex: 0 0 auto;
  color: #365845;
  white-space: nowrap;
}

.shopping-basket__unmeasured {
  color: #59685e;
  font-size: 0.9rem;
}

.equipment-category hr {
  margin: 16px 4px;
  border-top-color: #e9f0e7;
}

.equipment-category > hr:last-child,
.equipment-subcategory > hr:last-child {
  display: none;
}

.equipment-markdown--tools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  line-height: 1.5;
}

.equipment-markdown--tools > .equipment-info-card {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  gap: 13px;
  padding: 15px 17px;
  margin: 2px 0 4px;
  color: #3e5a47;
  background: linear-gradient(135deg, #eff8ee 0%, #f4faf8 100%);
  border: 1px solid #d3e7d2;
  border-left: 1px solid #d3e7d2;
  border-radius: 14px;
  box-shadow: 0 5px 14px rgb(47 72 56 / 5%);
}

.equipment-info-card__icon,
.equipment-category__heading__icon,
.equipment-subcategory__heading__icon,
.equipment-item-row__icon {
  display: grid;
  flex: 0 0 auto;
  color: #4d7559;
  background: rgb(255 255 255 / 72%);
  border: 1px solid rgb(128 168 136 / 28%);
  place-items: center;
}

.equipment-info-card__icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
}

.equipment-info-card__svg {
  width: 22px;
  height: 22px;
}

.equipment-markdown--tools > .equipment-category {
  min-width: 0;
  padding: 17px;
  margin: 0;
  background: linear-gradient(145deg, #ffffff 0%, #fbfdfb 100%);
  border-color: #dee9dc;
  border-radius: 16px;
  box-shadow: 0 5px 14px rgb(47 72 56 / 5%);
}

.equipment-markdown--tools > .equipment-category:nth-of-type(3n + 2) {
  background: linear-gradient(145deg, #ffffff 0%, #f8fbfd 100%);
  border-color: #dce8ed;
}

.equipment-markdown--tools .equipment-category > h1,
.equipment-markdown--tools .equipment-subcategory > h2 {
  display: flex;
  align-items: center;
  gap: 10px;
}

.equipment-markdown--tools .equipment-category > h1 {
  min-height: 39px;
  padding-bottom: 12px;
  margin-bottom: 13px;
  border-bottom-color: #e5eee3;
  font-size: 1rem;
  line-height: 1.28;
}

.equipment-category__heading__icon {
  width: 34px;
  height: 34px;
  color: #476d52;
  background: #edf6ec;
  border-color: #d8e8d5;
  border-radius: 10px;
}

.equipment-category__heading__svg {
  width: 19px;
  height: 19px;
}

.equipment-markdown--tools .equipment-subcategory {
  padding: 12px;
  margin: 10px 0;
  background: rgb(246 250 246 / 86%);
  border-color: #e5ede2;
  border-radius: 12px;
}

.equipment-markdown--tools .equipment-subcategory > h2 {
  margin-bottom: 9px;
  color: #4b6552;
  font-size: 0.9rem;
}

.equipment-subcategory__heading__icon {
  width: 27px;
  height: 27px;
  color: #5b7d64;
  background: #ffffff;
  border-radius: 8px;
}

.equipment-subcategory__heading__svg {
  width: 15px;
  height: 15px;
}

.equipment-markdown--tools .equipment-item-list {
  display: grid;
  gap: 7px;
  padding: 0;
  margin: 9px 0;
  list-style: none;
}

.equipment-markdown--tools .equipment-item-row {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  column-gap: 9px;
  padding: 8px 9px;
  margin: 0;
  background: rgb(255 255 255 / 72%);
  border: 1px solid #e6eee4;
  border-radius: 10px;
}

.equipment-item-row__icon {
  width: 24px;
  height: 24px;
  color: #64856b;
  background: #eff7ee;
  border-color: #dbe9d8;
  border-radius: 8px;
}

.equipment-item-row__svg {
  width: 14px;
  height: 14px;
}

.equipment-item-row__copy {
  display: grid;
  align-content: center;
  gap: 2px;
  min-width: 0;
}

.equipment-item-row__title {
  color: #3f5646;
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.35;
}

.equipment-item-row__meta,
.equipment-markdown--tools .equipment-item-row__details {
  color: #718077;
  font-size: 0.79rem;
  line-height: 1.45;
}

.equipment-markdown--tools .equipment-item-row__details {
  grid-column: 2;
  padding-left: 15px;
  margin: 5px 0 0;
}

.equipment-markdown--tools .equipment-item-row__details li + li {
  margin-top: 2px;
}

.equipment-markdown--tools .equipment-note {
  padding: 8px 10px;
  margin: 9px 0;
  color: #66756b;
  background: #f8faf7;
  border-radius: 9px;
  font-size: 0.82rem;
}

.equipment-markdown--tools hr {
  display: none;
}

@media (max-width: 760px) {
  .equipment-markdown--tools {
    grid-template-columns: 1fr;
  }

  .equipment-markdown--tools > .equipment-info-card {
    grid-column: 1;
  }
}

.resource-list {
  margin-top: 16px;
}

.habits-section {
  padding: 28px;
  margin-top: 28px;
  background: linear-gradient(145deg, #ffffff 0%, #fbfcf8 100%);
  border: 1px solid #e1e8df;
  border-radius: 20px;
  box-shadow: 0 12px 30px rgb(47 72 56 / 8%), 0 2px 7px rgb(47 72 56 / 4%);
}

.habits-section__title {
  font-size: clamp(1.3rem, 3vw, 1.55rem);
}

.habits-section .resource-image {
  margin-top: 20px;
  margin-bottom: 24px;
  border: 1px solid #edf1eb;
  border-radius: 16px;
  box-shadow: 0 10px 22px rgb(47 72 56 / 11%);
}

#habits-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 0;
  align-items: start;
}

#habits-list .expandable-card + .expandable-card {
  margin-top: 0;
}

#habits-list .habit-card {
  align-self: start;
  background: #ffffff;
  border-color: #e0e9dd;
  border-radius: 15px;
  box-shadow: 0 3px 9px rgb(47 72 56 / 5%);
  transition: transform 230ms ease, border-color 230ms ease, box-shadow 230ms ease, background-color 230ms ease;
}

#habits-list .habit-card:hover {
  border-color: #cadcc7;
  box-shadow: 0 9px 18px rgb(47 72 56 / 10%), 0 0 0 3px rgb(181 205 183 / 12%);
  transform: translateY(-2px);
}

#habits-list .habit-card.is-open {
  background: #fcfefb;
  border-color: #c6d9c3;
  box-shadow: 0 10px 22px rgb(47 72 56 / 11%);
}

#habits-list .habit-card__trigger {
  display: flex;
  min-height: 68px;
  padding: 12px 13px;
}

.habit-card__visual {
  display: grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  margin-right: 11px;
  color: #4a7254;
  background: #eaf5e9;
  border: 1px solid #d3e5d0;
  border-radius: 10px;
  place-items: center;
}

#habits-list .habit-card:nth-child(4n + 2) .habit-card__visual {
  color: #47738d;
  background: #eaf4fb;
  border-color: #d3e5f0;
}

#habits-list .habit-card:nth-child(4n + 3) .habit-card__visual {
  color: #80672e;
  background: #fff6dc;
  border-color: #f1e2b4;
}

#habits-list .habit-card:nth-child(4n) .habit-card__visual {
  color: #946245;
  background: #fff0e8;
  border-color: #f0d9c9;
}

.habit-card__line-icon {
  width: 20px;
  height: 20px;
}

#habits-list .expandable-card__label {
  min-width: 0;
  font-size: 0.95rem;
  line-height: 1.3;
}

#habits-list .expandable-card__icon {
  display: grid;
  flex: 0 0 27px;
  width: 27px;
  height: 27px;
  margin-left: 10px;
  color: #4b6954;
  background: #edf5eb;
  border: 1px solid #d4e3d1;
  border-radius: 50%;
  font-size: 1.05rem;
  line-height: 1;
  place-items: center;
  transition: transform 230ms ease, background-color 230ms ease, box-shadow 230ms ease;
}

#habits-list .habit-card.is-open .expandable-card__icon {
  background: #dfeedd;
  box-shadow: 0 3px 8px rgb(72 102 84 / 13%);
  transform: rotate(180deg);
}

#habits-list .expandable-card__body {
  transition: grid-template-rows 260ms ease;
}

#habits-list .expandable-card__body-inner {
  padding: 0 15px;
  opacity: 0;
  transform: translateY(-5px);
  transition: padding 260ms ease, opacity 200ms ease, transform 260ms ease;
}

#habits-list .habit-card.is-open .expandable-card__body-inner {
  padding-bottom: 16px;
  opacity: 1;
  transform: translateY(0);
}

#habits-list .expandable-card__question {
  display: inline-block;
  padding: 4px 8px;
  margin: 0 0 10px;
  color: #537158;
  background: #edf6eb;
  border: 1px solid #d9e8d6;
  border-radius: 7px;
  font-size: 0.76rem;
}

#habits-list .menu-markdown {
  color: #46594b;
  font-size: 0.93rem;
  line-height: 1.6;
}

#habits-list .menu-markdown p,
#habits-list .menu-markdown ul,
#habits-list .menu-markdown ol {
  margin: 10px 0;
}

#habits-list .menu-markdown ul,
#habits-list .menu-markdown ol {
  padding-left: 20px;
}

#habits-list .menu-markdown li + li {
  margin-top: 6px;
}

#habits-list .menu-markdown li::marker {
  color: #78a17b;
}

.expandable-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #e0e5dd;
  border-radius: 8px;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.expandable-card + .expandable-card {
  margin-top: 10px;
}

.expandable-card:hover {
  border-color: #cbd6c8;
  box-shadow: 0 2px 7px rgb(36 49 41 / 7%);
}

.expandable-card__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 13px 16px;
  color: var(--color-text);
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.expandable-card__label {
  flex: 1 1 auto;
}

.expandable-card__icon {
  flex: 0 0 auto;
  margin-left: 16px;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1;
}

.expandable-card__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 200ms ease;
}

.expandable-card.is-open .expandable-card__body {
  grid-template-rows: 1fr;
}

.expandable-card__body-inner {
  min-height: 0;
  overflow: hidden;
  padding: 0 16px;
  transition: padding 200ms ease;
}

.expandable-card.is-open .expandable-card__body-inner {
  padding-bottom: 16px;
}

.expandable-card__question,
.expandable-card__text {
  display: block;
  margin: 0;
}

.expandable-card__text {
  color: #526158;
}

.expandable-card__question + .expandable-card__text {
  margin-top: 6px;
}

.faq-section {
  width: min(780px, 100%);
  margin: 40px auto 0;
  text-align: left;
}

.faq-section__title {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.3;
}

.faq-card__question-mark {
  flex: 0 0 auto;
  width: 20px;
  margin-right: 10px;
  color: #c4575c;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.faq-section__note {
  padding: 12px 14px;
  margin: 20px 0 0;
  color: #304b3b;
  background: #f1f8f0;
  border: 1px solid #d5e6d3;
  border-left: 3px solid #6f9878;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgb(49 83 59 / 4%);
}

/* FAQ: лёгкие интерактивные карточки, использующие существующую разметку. */
.faq-section {
  padding: 28px;
  background: linear-gradient(145deg, #fffefa 0%, #f8fbf6 100%);
  border: 1px solid #e1e9df;
  border-radius: 20px;
  box-shadow: 0 14px 34px rgba(62, 83, 63, 0.08);
}

.faq-section__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(1.35rem, 2.4vw, 1.6rem);
  color: #31483b;
}

#faq-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

#faq-list .faq-card,
#faq-list .faq-card + .faq-card {
  align-self: start;
  margin-top: 0;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e2e9df;
  border-radius: 15px;
  box-shadow: 0 4px 12px rgba(61, 79, 62, 0.045);
  transition: transform 230ms ease, border-color 230ms ease, box-shadow 230ms ease, background-color 230ms ease;
}

#faq-list .faq-card:hover {
  border-color: #cbdcc9;
  box-shadow: 0 10px 20px rgba(79, 116, 85, 0.1), 0 0 0 3px rgba(174, 205, 177, 0.12);
  transform: translateY(-2px);
}

#faq-list .faq-card.is-open {
  background: #fcfdf9;
  border-color: #c9ddc6;
  box-shadow: 0 10px 23px rgba(67, 96, 70, 0.095);
}

#faq-list .faq-card__trigger {
  min-height: 62px;
  padding: 14px 16px;
  column-gap: 12px;
  color: #34493b;
  line-height: 1.42;
}

#faq-list .faq-card__trigger:focus:not(:focus-visible) {
  outline: 0;
}

#faq-list .faq-card__trigger:focus-visible {
  outline: 2px solid #91b797;
  outline-offset: -2px;
  border-radius: 14px;
}

#faq-list .expandable-card__label {
  min-width: 0;
  font-size: 0.97rem;
  font-weight: 650;
}

#faq-list .faq-card__question-mark {
  display: flex;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  padding: 0;
  margin: 0;
  color: #9b6f56;
  font-size: 1rem;
  font-weight: 750;
  background: #fae9dc;
  border: 1px solid #f0d8c7;
  border-radius: 50%;
  place-items: center;
}

#faq-list .expandable-card__icon {
  display: grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  padding: 0;
  margin-left: 5px;
  color: #66866d;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1;
  background: #f6faf5;
  border: 1px solid #d7e4d5;
  border-radius: 50%;
  transition: transform 230ms ease, background-color 230ms ease, border-color 230ms ease;
  place-items: center;
}

#faq-list .faq-card.is-open .expandable-card__icon {
  color: #537a5b;
  background: #eaf4e8;
  border-color: #bfd5bc;
  transform: rotate(180deg);
}

#faq-list .expandable-card__body {
  transition: grid-template-rows 260ms ease;
}

#faq-list .expandable-card__body-inner {
  padding: 0 16px;
  opacity: 0;
  transform: translateY(-5px);
  transition: padding 260ms ease, opacity 200ms ease, transform 260ms ease;
}

#faq-list .faq-card.is-open .expandable-card__body-inner {
  padding-bottom: 16px;
  opacity: 1;
  transform: translateY(0);
}

#faq-list .expandable-card__markdown {
  padding: 16px;
  color: #46564a;
  font-size: 0.94rem;
  line-height: 1.65;
  background: #f7faf6;
  border: 1px solid #e4ede2;
  border-radius: 12px;
}

#faq-list .expandable-card__markdown > :first-child {
  margin-top: 0;
}

#faq-list .expandable-card__markdown > :last-child {
  margin-bottom: 0;
}

#faq-list .expandable-card__markdown h1,
#faq-list .expandable-card__markdown h2,
#faq-list .expandable-card__markdown h3,
#faq-list .expandable-card__markdown h4 {
  color: #3c6245;
  line-height: 1.35;
}

#faq-list .expandable-card__markdown h2 {
  padding: 9px 11px;
  margin: 16px 0 10px;
  font-size: 1rem;
  background: #edf5eb;
  border-left: 3px solid #a9c7a5;
  border-radius: 8px;
}

#faq-list .expandable-card__markdown h3,
#faq-list .expandable-card__markdown h4 {
  margin: 15px 0 8px;
  font-size: 0.97rem;
}

#faq-list .expandable-card__markdown p {
  margin: 10px 0;
}

#faq-list .expandable-card__markdown ul,
#faq-list .expandable-card__markdown ol {
  padding-left: 22px;
  margin: 10px 0;
}

#faq-list .expandable-card__markdown li + li {
  margin-top: 6px;
}

#faq-list .expandable-card__markdown li::marker {
  color: #719776;
}

#faq-list .expandable-card__markdown blockquote {
  padding: 10px 12px;
  margin: 12px 0;
  background: #fffdf4;
  border-left: 3px solid #d8c78d;
  border-radius: 8px;
}

#faq-list .expandable-card__markdown hr {
  height: 1px;
  margin: 16px 0;
  background: #dfe8dc;
  border: 0;
}

/* Физическое продолжение недельного меню. */
.magnet-promo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: stretch;
  gap: clamp(26px, 3.5vw, 46px);
  width: min(var(--section-width), calc(100% - (var(--page-gutter) * 2)));
  padding: clamp(22px, 2.6vw, 34px);
  margin: var(--section-gap) auto 0;
  overflow: hidden;
  background: #fbf8f0;
  border: 1px solid #e4e5d9;
  border-radius: 28px;
  box-shadow: 0 14px 34px rgb(58 75 61 / 8%);
}

.magnet-promo__visual {
  min-width: 0;
  overflow: hidden;
  background: #eef4eb;
  border: 1px solid #dde6d9;
  border-radius: 21px;
}

.magnet-promo__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 390px;
  object-fit: cover;
  object-position: center;
}

.magnet-promo__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 4px 0;
}

.magnet-promo__eyebrow {
  order: 1;
  margin: 0 0 11px;
  color: #52705a;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.35;
}

.magnet-promo__title {
  order: 2;
  max-width: 640px;
  margin: 0;
  color: #2f4939;
  font-size: clamp(1.65rem, 2.25vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.15;
}

.magnet-promo__text {
  order: 3;
  max-width: 650px;
  margin: 17px 0 0;
  color: #526359;
  font-size: clamp(0.96rem, 1.1vw, 1.03rem);
  line-height: 1.68;
}

.magnet-promo__gift {
  order: 4;
  padding-left: 13px;
  margin: 17px 0 0;
  color: #395747;
  border-left: 3px solid #93b397;
  font-size: 0.96rem;
  font-weight: 650;
  line-height: 1.55;
}

.magnet-promo__features {
  display: flex;
  flex-wrap: wrap;
  order: 5;
  gap: 7px;
  margin: 19px 0 0;
}

.magnet-promo__features span {
  padding: 6px 10px;
  color: #4d6655;
  background: #f0f5eb;
  border: 1px solid #dbe6d6;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.25;
}

.magnet-promo__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  order: 6;
  min-height: 54px;
  padding: 13px 23px;
  margin-top: 22px;
  color: #ffffff;
  background: #4f7559;
  border: 1px solid #466b50;
  border-radius: 16px;
  box-shadow: 0 8px 18px rgb(58 97 68 / 17%);
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.magnet-promo__button:hover {
  color: #ffffff;
  background: #456a4f;
  border-color: #3f6248;
  box-shadow: 0 11px 22px rgb(58 97 68 / 21%);
  transform: translateY(-2px);
}

.magnet-promo__button:focus-visible {
  outline: 2px solid #51755e;
  outline-offset: 3px;
}

@media (max-width: 800px) {
  .magnet-promo {
    grid-template-columns: 1fr;
  }

  .magnet-promo__image {
    height: auto;
    min-height: 0;
    aspect-ratio: auto;
  }

  .magnet-promo__features {
    order: 4;
  }

  .magnet-promo__gift {
    order: 5;
  }
}

@media (max-width: 600px) {
  .magnet-promo {
    gap: 22px;
    padding: 18px;
    border-radius: 22px;
  }

  .magnet-promo__visual {
    border-radius: 16px;
  }

  .magnet-promo__title {
    font-size: clamp(1.5rem, 7vw, 1.8rem);
    line-height: 1.18;
  }

  .magnet-promo__button {
    align-self: stretch;
    min-height: 56px;
  }
}

.final-section.contact-card {
  width: min(var(--section-width), 100%);
  padding: clamp(26px, 3vw, 38px);
  margin: 40px auto 0;
  overflow: hidden;
  background: #fbf8f0;
  border: 1px solid #e5e4d8;
  border-radius: 28px;
  box-shadow: 0 16px 38px rgb(58 75 61 / 8%);
  text-align: left;
}

.contact-card__content {
  min-width: 0;
}

.contact-card__top {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.9fr);
  align-items: center;
  gap: clamp(24px, 4vw, 52px);
}

.contact-card__title {
  margin: 0;
  color: #31483b;
  font-size: clamp(1.8rem, 2.2vw, 2.45rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.12;
}

.contact-card__text {
  max-width: 620px;
  margin: 18px 0 0;
  color: #526359;
  font-size: clamp(0.98rem, 1.2vw, 1.06rem);
  line-height: 1.7;
}

.contact-card__text strong {
  color: #31483b;
  font-weight: 700;
}

.contact-card__form {
  display: grid;
  gap: 12px;
  max-width: 650px;
  margin-top: 24px;
}

.contact-card__field {
  display: block;
}

.contact-card__field textarea {
  display: block;
  width: 100%;
  min-height: 166px;
  padding: 16px 17px;
  resize: vertical;
  color: #31483b;
  background: #fffdfa;
  border: 1px solid #d7e0d3;
  border-radius: 16px;
  box-shadow: inset 0 1px 2px rgb(47 72 56 / 3%);
  font: inherit;
  font-size: 1rem;
  line-height: 1.55;
  outline: 0;
  transition: border-color 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

.contact-card__field textarea::placeholder {
  color: #8a958d;
}

.contact-card__field textarea:focus {
  background: #ffffff;
  border-color: #9fbd9b;
  box-shadow: 0 0 0 3px rgb(143 176 138 / 15%);
}

.contact-card__field textarea[aria-invalid="true"] {
  border-color: #c9877c;
  box-shadow: 0 0 0 3px rgb(191 111 99 / 11%);
}

.contact-card__submit {
  min-height: 54px;
  padding: 12px 22px;
  color: #ffffff;
  background: #4f7559;
  border: 1px solid #466b50;
  border-radius: 16px;
  box-shadow: 0 7px 16px rgb(58 97 68 / 16%);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.contact-card__submit:hover:not(:disabled) {
  background: #456a4f;
  border-color: #3f6248;
  box-shadow: 0 10px 20px rgb(58 97 68 / 21%);
  transform: translateY(-2px);
}

.contact-card__submit:focus-visible {
  outline: 2px solid #51755e;
  outline-offset: 2px;
}

.contact-card__submit:disabled {
  cursor: wait;
  opacity: 0.72;
}

.contact-card__status {
  min-height: 1.45em;
  margin: 0;
  color: #647269;
  font-size: 0.86rem;
  line-height: 1.45;
}

.contact-card__status.is-success {
  color: #3f704d;
}

.contact-card__status.is-error {
  color: #965449;
}

.contact-card__honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-card__note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  max-width: 650px;
  padding: 15px 17px;
  margin-top: 10px;
  color: #48604f;
  background: #f0f6eb;
  border: 1px solid #dce9d6;
  border-radius: 15px;
}

.contact-card__note p {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.55;
}

.contact-card__heart {
  flex: 0 0 auto;
  color: #7e9f7a;
  font-size: 1.25rem;
  line-height: 1.25;
}

.contact-card__visual {
  display: flex;
  align-self: stretch;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.contact-card__illustration {
  display: block;
  width: 100%;
  max-width: 480px;
  height: auto;
  max-height: 420px;
  object-fit: contain;
  border-radius: 24px;
}

.contact-card__community {
  padding-top: clamp(24px, 3vw, 32px);
  margin-top: clamp(24px, 3vw, 34px);
  border-top: 1px solid #e1e5da;
  text-align: center;
}

.contact-card__community-title {
  margin: 0;
  color: #31483b;
  font-size: clamp(1.3rem, 1.8vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
}

.contact-card__community-text {
  max-width: 620px;
  margin: 9px auto 0;
  color: #607067;
  font-size: 0.96rem;
  line-height: 1.55;
}

.contact-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  width: min(620px, 100%);
  margin: 18px auto 0;
}

.contact-card__button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 14px 20px;
  color: #315163;
  background: #eff8fc;
  border: 1px solid #cfe1e8;
  border-radius: 20px;
  box-shadow: 0 6px 15px rgb(67 101 113 / 8%);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.contact-card__button::before {
  margin-right: 8px;
  font-size: 1rem;
  line-height: 1;
  content: "✈";
}

.contact-card__button--max {
  color: #376760;
  background: #eff8f4;
  border-color: #cce3dc;
  box-shadow: 0 6px 15px rgb(58 113 100 / 8%);
}

.contact-card__button--max::before {
  content: "✦";
}

.contact-card__button:hover {
  background: #e8f5fa;
  border-color: #b5d3df;
  box-shadow: 0 10px 20px rgb(75 129 148 / 13%), 0 0 0 3px rgb(163 208 223 / 10%);
  transform: translateY(-2px);
}

.contact-card__button--max:hover {
  background: #e7f5ef;
  border-color: #b5d9cc;
  box-shadow: 0 10px 20px rgb(71 130 113 / 13%), 0 0 0 3px rgb(166 210 194 / 10%);
}

.contact-card__button:focus-visible {
  outline: 2px solid #51755e;
  outline-offset: 2px;
}

@media (max-width: 600px) {
  .menu-info__nutrients {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #habits-list {
    grid-template-columns: 1fr;
  }

  .final-section.contact-card {
    padding: 22px 18px;
    border-radius: 22px;
  }

  .contact-card__top {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .contact-card__visual {
    width: 100%;
  }

  .contact-card__illustration {
    width: min(100%, 520px);
    max-height: none;
  }

  .contact-card__submit {
    width: 100%;
  }

  .contact-card__actions {
    grid-template-columns: 1fr;
  }

  .faq-section {
    padding: 22px 18px;
  }

  #faq-list .faq-card__trigger {
    padding: 13px;
    column-gap: 12px;
  }

  #faq-list .expandable-card__label {
    font-size: 0.93rem;
  }

  #faq-list .expandable-card__body-inner {
    padding-right: 13px;
    padding-left: 13px;
  }

  #faq-list .expandable-card__markdown {
    padding: 14px;
  }
}

/* FAQ: последовательная нумерация и компактная двухколоночная сетка. */
#faq-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 16px;
  align-items: start;
  counter-reset: faq-item;
}

#faq-list .faq-card {
  min-width: 0;
  counter-increment: faq-item;
}

#faq-list .faq-card.is-open {
  grid-column: 1 / -1;
}

#faq-list .faq-card__question-mark {
  display: flex;
  flex: 0 0 30px;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  margin: 0 10px 0 0;
  color: #4a7254;
  font-size: 0;
  line-height: 1;
  background: #edf6eb;
  border: 1px solid #d6e6d3;
  border-radius: 9px;
  align-items: center;
  justify-content: center;
}

#faq-list .faq-card__question-mark::before {
  display: block;
  content: counter(faq-item, decimal-leading-zero);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: normal;
}

#faq-list .faq-card:nth-child(4n + 2) .faq-card__question-mark {
  color: #47738d;
  background: #eaf4fb;
  border-color: #d3e5f0;
}

#faq-list .faq-card:nth-child(4n + 3) .faq-card__question-mark {
  color: #80672e;
  background: #fff6dc;
  border-color: #f1e2b4;
}

#faq-list .faq-card:nth-child(4n) .faq-card__question-mark {
  color: #946245;
  background: #fff0e8;
  border-color: #f0d9c9;
}

@media (max-width: 700px) {
  #faq-list {
    grid-template-columns: 1fr;
  }

  #faq-list .faq-card.is-open {
    grid-column: auto;
  }
}

#faq-list .faq-list__additional {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  counter-reset: faq-item 10;
  transition: max-height 380ms ease, opacity 240ms ease, transform 300ms ease, visibility 0s linear 380ms;
}

#faq-list .faq-list__additional[hidden] {
  display: none;
}

#faq-list .faq-list__additional.is-visible {
  max-height: var(--faq-extra-height, 4000px);
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}

#faq-list .faq-list__additional .faq-card:nth-child(4n + 1) .faq-card__question-mark {
  color: #80672e;
  background: #fff6dc;
  border-color: #f1e2b4;
}

#faq-list .faq-list__additional .faq-card:nth-child(4n + 2) .faq-card__question-mark {
  color: #946245;
  background: #fff0e8;
  border-color: #f0d9c9;
}

#faq-list .faq-list__additional .faq-card:nth-child(4n + 3) .faq-card__question-mark {
  color: #4a7254;
  background: #edf6eb;
  border-color: #d6e6d3;
}

#faq-list .faq-list__additional .faq-card:nth-child(4n) .faq-card__question-mark {
  color: #47738d;
  background: #eaf4fb;
  border-color: #d3e5f0;
}

.faq-more-button {
  display: inline-flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  min-height: 50px;
  padding: 12px 18px;
  color: #466451;
  background: #f3f8f2;
  border: 1px solid #d5e3d3;
  border-radius: 13px;
  box-shadow: 0 4px 10px rgb(47 72 56 / 5%);
  font: inherit;
  font-size: 0.92rem;
  font-weight: 650;
  cursor: pointer;
  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.faq-more-button:hover {
  background: #edf6ec;
  border-color: #c2d7bf;
  box-shadow: 0 7px 14px rgb(47 72 56 / 8%);
  transform: translateY(-1px);
}

.faq-more-button:focus-visible {
  outline: 2px solid #73957b;
  outline-offset: 2px;
}

.faq-more-button__icon {
  width: 18px;
  height: 18px;
  transition: transform 220ms ease;
}

.faq-more-button[aria-expanded="true"] .faq-more-button__icon {
  transform: rotate(180deg);
}

@media (max-width: 700px) {
  #faq-list .faq-list__additional {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  #faq-list .faq-list__additional,
  .faq-more-button,
  .faq-more-button__icon {
    transition: none;
  }
}

/* Пять приёмов пищи: номер и короткая интерфейсная подпись. */
.week-menu__panel > .meal-card > .meal-card__trigger {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) max-content 30px;
  gap: 14px;
  min-height: 72px;
  padding: 12px 16px;
}

.week-menu__panel > .meal-card > .meal-card__trigger::before {
  display: grid;
  width: 42px;
  height: 42px;
  color: #3e5d45;
  background: #f0f5ee;
  border: 1px solid #d9e5d6;
  border-radius: 11px;
  content: "";
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  place-items: center;
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
}

.week-menu__panel > .meal-card:nth-of-type(1) > .meal-card__trigger::before {
  content: "01";
}

.week-menu__panel > .meal-card:nth-of-type(2) > .meal-card__trigger::before {
  content: "02";
}

.week-menu__panel > .meal-card:nth-of-type(3) > .meal-card__trigger::before {
  content: "03";
}

.week-menu__panel > .meal-card:nth-of-type(4) > .meal-card__trigger::before {
  content: "04";
}

.week-menu__panel > .meal-card:nth-of-type(5) > .meal-card__trigger::before {
  content: "05";
}

.week-menu__panel > .meal-card > .meal-card__trigger > span:first-child {
  display: grid;
  gap: 3px;
  min-width: 0;
  color: #2f4337;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.week-menu__panel > .meal-card > .meal-card__trigger > span:first-child::after {
  color: #6b776f;
  content: "";
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.35;
}

.meal-card__calories {
  grid-column: 3;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  color: #6a786f;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.35;
  white-space: nowrap;
}

.week-menu__panel > .meal-card:nth-of-type(1) > .meal-card__trigger > span:first-child::after {
  content: "Начало дня";
}

.week-menu__panel > .meal-card:nth-of-type(2) > .meal-card__trigger > span:first-child::after {
  content: "Лёгкий перекус";
}

.week-menu__panel > .meal-card:nth-of-type(3) > .meal-card__trigger > span:first-child::after {
  content: "Основной приём пищи";
}

.week-menu__panel > .meal-card:nth-of-type(4) > .meal-card__trigger > span:first-child::after {
  content: "Небольшая пауза";
}

.week-menu__panel > .meal-card:nth-of-type(5) > .meal-card__trigger > span:first-child::after {
  content: "Спокойное завершение дня";
}

.week-menu__panel > .meal-card > .meal-card__trigger > .meal-card__icon {
  grid-column: 4;
  grid-row: 1 / span 2;
  align-self: center;
  width: 30px;
  height: 30px;
  margin-left: 0;
}

@media (max-width: 480px) {
  .week-menu__panel > .meal-card > .meal-card__trigger {
    grid-template-columns: 38px minmax(0, 1fr) max-content 30px;
    gap: 8px;
    min-height: 68px;
    padding: 11px 12px;
  }

  .week-menu__panel > .meal-card > .meal-card__trigger::before {
    width: 38px;
    height: 38px;
    border-radius: 10px;
  }

  .week-menu__panel > .meal-card > .meal-card__trigger > span:first-child {
    font-size: 0.95rem;
  }

  .week-menu__panel > .meal-card > .meal-card__trigger > span:first-child::after {
    font-size: 0.78rem;
  }

  .meal-card__calories {
    font-size: 0.72rem;
  }
}

@media (max-width: 360px) {
  .week-menu {
    padding: 16px;
  }

  .menu-info {
    padding: 20px;
  }

  .supply-card {
    padding: 16px;
  }

  .habits-section {
    padding: 20px;
  }

  .week-menu__tabs {
    gap: 4px;
  }

  .week-menu__tab {
    padding: 7px 2px;
    font-size: 0.75rem;
  }
}

@media (max-width: 480px) {
  .contact-card__button {
    min-height: 62px;
  }
}

/* Финальная визуальная полировка: общая геометрия и ритм главных секций. */
.hero-banner,
.cover__content,
.week-menu,
.resource-sections,
.faq-section,
.final-section {
  width: min(var(--section-width), 100%);
}

.hero-banner__image {
  overflow: hidden;
  border-radius: 16px;
}

.cover__content {
  margin-top: 32px;
}

.week-menu,
.menu-info,
.supply-card,
.habits-section,
.faq-section,
.final-section {
  padding: 28px;
  border-color: var(--surface-border);
  border-radius: var(--surface-radius);
  box-shadow: var(--surface-shadow);
}

.week-menu {
  margin-top: 16px;
}

.menu-info {
  width: min(var(--section-width), 100%);
  margin: var(--section-gap) auto 0;
}

.resource-sections,
.faq-section,
.final-section {
  margin-top: var(--section-gap);
}

.habits-section {
  margin-top: var(--section-gap);
}

.cover__content h1,
.supply-card__title,
.habits-section__title,
.faq-section__title,
.gentleness-card__title {
  margin: 0;
  color: #31483b;
  font-size: clamp(1.3rem, 3vw, 1.55rem);
  font-weight: 700;
  line-height: 1.3;
}

.week-menu__tabs,
.menu-info__nutrients,
#habits-list,
#faq-list {
  row-gap: 12px;
}

#supply-list .expandable-card,
#habits-list .habit-card,
#faq-list .faq-card {
  border-radius: 15px;
  box-shadow: 0 4px 12px rgb(47 72 56 / 5%);
}

.resource-image,
.menu-markdown__image {
  max-width: 100%;
}

@media (max-width: 600px) {
  .cover__content {
    margin-top: 28px;
  }

  .week-menu,
  .menu-info,
  .supply-card,
  .habits-section,
  .faq-section,
  .final-section {
    padding: 22px 18px;
  }

  .week-menu {
    margin-top: 14px;
  }

  .menu-info,
  .resource-sections,
  .faq-section,
  .final-section,
  .habits-section {
    margin-top: 28px;
  }
}

/* Верхняя навигация и возврат к началу страницы. */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 82px;
}

.cover-page {
  padding: 0 0 16px;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  align-items: center;
  width: min(var(--section-width), calc(100% - 32px));
  min-height: 58px;
  padding: 3px 12px;
  margin: 0 auto;
  background: rgb(247 245 238 / 88%);
  border: 1px solid rgb(225 232 223 / 88%);
  border-top: 0;
  border-radius: 0 0 15px 15px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: box-shadow 220ms ease, border-color 220ms ease;
}

.site-header.is-scrolled {
  border-color: #dce6d9;
  box-shadow: 0 7px 18px rgb(47 72 56 / 9%);
}

.site-logo {
  color: #31483b;
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: 0.01em;
}

.site-logo:hover {
  color: #3d7558;
}

.site-logo--image {
  display: flex;
  flex: 0 0 175px;
  width: 175px;
  height: 52px;
  align-items: center;
  overflow: visible;
  cursor: pointer;
  line-height: 0;
  transform-origin: left center;
  transition: transform 0.2s ease;
}

.site-logo__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: scale(1.35);
}

.site-logo--image:hover {
  transform: scale(1.025);
}

.site-logo--image:focus-visible {
  outline: 2px solid #75a27d;
  outline-offset: 2px;
}

@media (max-width: 960px) and (min-width: 641px) {
  .site-logo--image {
    flex-basis: 145px;
    width: 145px;
    height: 48px;
  }
}

.site-navigation {
  display: flex;
  align-items: center;
  gap: 4px;
}

.site-navigation a {
  padding: 8px 10px;
  color: #526158;
  border-radius: 9px;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 200ms ease, background-color 200ms ease, transform 200ms ease;
}

.site-navigation a:hover {
  color: #3d7558;
  background: #edf6eb;
  transform: translateY(-1px);
}

.site-navigation .site-navigation__calculate {
  color: #365f43;
  background: #eef6ec;
  border: 1px solid #dce9d9;
}

.site-navigation .site-navigation__calculate:hover {
  color: #2f5a3d;
  background: #e7f2e5;
  border-color: #cfdfcc;
}

.site-navigation a:focus-visible,
.site-header__toggle:focus-visible,
.back-to-top:focus-visible {
  outline: 2px solid #75a27d;
  outline-offset: 2px;
}

.site-header__toggle {
  display: none;
  width: 36px;
  height: 36px;
  padding: 8px;
  color: #486654;
  background: #f4f8f2;
  border: 1px solid #dce8d9;
  border-radius: 10px;
  cursor: pointer;
}

.site-header__toggle span {
  display: block;
  width: 18px;
  height: 2px;
  margin: 3px auto;
  background: currentcolor;
  border-radius: 2px;
  transition: transform 200ms ease, opacity 200ms ease;
}

.site-header.is-menu-open .site-header__toggle span:nth-child(1) {
  transform: translateY(5px) rotate(45deg);
}

.site-header.is-menu-open .site-header__toggle span:nth-child(2) {
  opacity: 0;
}

.site-header.is-menu-open .site-header__toggle span:nth-child(3) {
  transform: translateY(-5px) rotate(-45deg);
}

#calculator,
#menu,
#equipment,
#habits,
#faq {
  scroll-margin-top: 78px;
}

.back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 30;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  color: #42634a;
  background: rgb(255 255 253 / 94%);
  border: 1px solid #d7e4d4;
  border-radius: 50%;
  box-shadow: 0 7px 17px rgb(47 72 56 / 13%);
  cursor: pointer;
  font: inherit;
  font-size: 1.35rem;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: transform 220ms ease, opacity 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
  place-items: center;
}

.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.back-to-top:hover {
  background: #edf6eb;
  box-shadow: 0 10px 20px rgb(47 72 56 / 16%), 0 0 0 3px rgb(174 205 177 / 12%);
  transform: translateY(-2px);
}

.back-to-menu {
  position: fixed;
  right: 22px;
  bottom: 76px;
  z-index: 60;
  min-height: 40px;
  padding: 9px 13px;
  color: #42634a;
  background: rgb(255 255 253 / 94%);
  border: 1px solid #d7e4d4;
  border-radius: 10px;
  box-shadow: 0 6px 15px rgb(47 72 56 / 11%);
  cursor: pointer;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: transform 220ms ease, opacity 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
}

.back-to-menu.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.back-to-menu:hover {
  background: #edf6eb;
  box-shadow: 0 8px 18px rgb(47 72 56 / 14%);
  transform: translateY(-1px);
}

.back-to-menu:focus-visible {
  outline: 2px solid #75a27d;
  outline-offset: 2px;
}

@media (max-width: 640px) {
  .site-header {
    min-height: 60px;
    padding: 8px 10px;
    flex-wrap: wrap;
  }

  .site-header__toggle {
    display: block;
    width: 40px;
    height: 40px;
  }

  .site-logo--image {
    flex-basis: 125px;
    width: 125px;
    height: 40px;
  }

  .site-navigation {
    position: static;
    flex-basis: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-height: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
    background: rgb(255 255 253 / 96%);
    border: 0;
    border-radius: 13px;
    box-shadow: none;
    opacity: 0;
    pointer-events: none;
    transform: none;
    transition: max-height 220ms ease, padding 220ms ease, margin 220ms ease, opacity 200ms ease, border-color 200ms ease;
  }

  .site-header.is-menu-open .site-navigation {
    max-height: 240px;
    padding: 7px;
    margin-top: 6px;
    border: 1px solid #dfe9dc;
    box-shadow: 0 8px 18px rgb(47 72 56 / 8%);
    opacity: 1;
    pointer-events: auto;
  }

  .site-navigation a {
    min-height: 42px;
    padding: 10px 11px;
  }

  .site-navigation a:last-child {
    grid-column: span 2;
  }

  .back-to-top {
    right: 16px;
    bottom: 16px;
    width: 40px;
    height: 40px;
  }

  .back-to-menu {
    right: 16px;
    bottom: 68px;
  }
}

/* Каталог и отдельная страница рецепта. */
.catalog-page,
.recipe-detail-page__content {
  width: min(var(--section-width), 100%);
  margin: 32px auto 0;
}

.catalog-hero {
  margin-bottom: 20px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.catalog-hero h1 {
  margin: 0;
  color: #31483b;
  font-size: clamp(1.55rem, 4vw, 2rem);
  line-height: 1.25;
}

.catalog-hero p {
  margin: 8px 0 0;
  color: #637167;
}

.catalog-controls {
  padding: 18px;
  background: linear-gradient(145deg, #ffffff 0%, #fafcf8 100%);
  border: 1px solid var(--surface-border);
  border-radius: 16px;
  box-shadow: 0 7px 17px rgb(47 72 56 / 6%);
}

.recipe-search {
  display: block;
}

.recipe-search input {
  width: 100%;
  min-height: 46px;
  padding: 11px 14px;
  color: var(--color-text);
  background: #ffffff;
  border: 1px solid #d9e5d6;
  border-radius: 12px;
  font: inherit;
  outline: 0;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}

.recipe-search input::placeholder {
  color: #8a988d;
}

.recipe-search input:focus {
  border-color: #9bc19d;
  box-shadow: 0 0 0 3px rgb(157 195 157 / 16%);
}

.recipe-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}

.recipe-filter {
  min-height: 40px;
  padding: 7px 12px;
  color: #536359;
  background: #f7faf5;
  border: 1px solid #dce8d9;
  border-radius: 10px;
  cursor: pointer;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  transition: color 210ms ease, border-color 210ms ease, background-color 210ms ease, box-shadow 210ms ease, transform 210ms ease;
}

.recipe-filter:hover {
  border-color: #bdd7bd;
  background: #eef7ec;
  box-shadow: 0 5px 10px rgb(74 114 79 / 8%);
  transform: translateY(-1px);
}

.recipe-filter.is-active {
  color: #315e40;
  background: #e2f1df;
  border-color: #a9caa8;
  box-shadow: 0 5px 12px rgb(67 116 75 / 14%), 0 0 0 3px rgb(160 204 160 / 14%);
}

.recipes-count {
  margin: 20px 0 12px;
  color: #65736a;
  font-size: 0.9rem;
}

.recipe-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.recipe-catalog-card {
  display: block;
  overflow: hidden;
  min-width: 0;
  color: inherit;
  background: #ffffff;
  border: 1px solid #e0e9dd;
  border-radius: 17px;
  box-shadow: 0 5px 14px rgb(47 72 56 / 6%);
  text-decoration: none;
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.recipe-catalog-card:hover {
  border-color: #c7dbc4;
  box-shadow: 0 11px 21px rgb(47 72 56 / 11%), 0 0 0 3px rgb(180 208 181 / 10%);
  transform: translateY(-2px);
}

.recipe-catalog-card:focus-visible {
  outline: 2px solid #75a27d;
  outline-offset: 3px;
}

.recipe-catalog-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #f3f6f1;
}

.recipe-catalog-card__content {
  display: grid;
  gap: 9px;
  padding: 14px 15px 15px;
}

.recipe-catalog-card__title {
  display: -webkit-box;
  min-height: 2.7em;
  margin: 0;
  overflow: hidden;
  color: #34493b;
  font-size: 0.98rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.recipe-catalog-card__meal {
  width: fit-content;
  padding: 4px 8px;
  color: #52705a;
  background: #eef6ec;
  border: 1px solid #d9e8d6;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.2;
}

.recipe-catalog-card__meta {
  display: grid;
  gap: 5px;
  color: #66746b;
  font-size: 0.8rem;
  line-height: 1.35;
}

.recipe-catalog-card__macros {
  color: #5f7066;
  font-weight: 600;
}

.recipes-empty {
  grid-column: 1 / -1;
  padding: 28px;
  margin: 0;
  color: #617065;
  text-align: center;
  background: #ffffff;
  border: 1px dashed #d3e0d0;
  border-radius: 16px;
}

.recipe-back-link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 11px;
  margin-bottom: 14px;
  color: #42634a;
  background: #f4f8f2;
  border: 1px solid #dce8d9;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease;
}

.recipe-back-link:hover {
  background: #eaf5e8;
  border-color: #bfd5bd;
  transform: translateY(-1px);
}

.recipe-detail-card,
.recipe-not-found {
  padding: 28px;
  background: linear-gradient(145deg, #ffffff 0%, #fafcf8 100%);
  border: 1px solid var(--surface-border);
  border-radius: var(--surface-radius);
  box-shadow: var(--surface-shadow);
}

.recipe-detail-card__title,
.recipe-not-found h1 {
  margin: 0;
  color: #31483b;
  font-size: clamp(1.4rem, 3.5vw, 1.8rem);
  line-height: 1.3;
}

.recipe-detail-card__image {
  display: block;
  width: min(100%, 620px);
  height: auto;
  max-height: 460px;
  margin: 20px auto 16px;
  object-fit: cover;
  border: 1px solid #edf1eb;
  border-radius: 16px;
  box-shadow: 0 10px 22px rgb(47 72 56 / 13%);
}

.recipe-detail-card__meal {
  display: block;
  width: fit-content;
  padding: 5px 9px;
  margin: 0 auto;
  color: #52705a;
  background: #eef6ec;
  border: 1px solid #d9e8d6;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
}

.recipe-detail__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 22px;
}

.recipe-detail__meta-item {
  min-width: 0;
  padding: 12px 13px;
  background: #edf6ec;
  border: 1px solid #d9e8d6;
  border-radius: 12px;
}

.recipe-detail__meta-item:nth-child(2) {
  background: #edf5fa;
  border-color: #d9e7ef;
}

.recipe-detail__meta-label,
.recipe-detail__meta-value {
  display: block;
}

.recipe-detail__meta-label {
  align-items: center;
  gap: 6px;
  color: #607067;
  display: flex;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.recipe-detail__meta-value {
  margin-top: 5px;
  color: #284133;
  font-size: 0.98rem;
  line-height: 1.3;
}

.recipe-detail__markdown {
  color: #405145;
  line-height: 1.62;
}

.recipe-detail__markdown h2 {
  padding: 10px 12px;
  margin-top: 26px;
  color: #385444;
  background: #f2f7f0;
  border-left: 3px solid #acc6a9;
  border-radius: 8px;
  font-size: 1.04rem;
}

.recipe-detail__markdown h3 {
  padding-left: 10px;
  margin-top: 22px;
  color: #475d4c;
  border-left: 2px solid #d0e0cd;
}

.recipe-detail__markdown ol {
  padding: 0;
  margin: 14px 0;
  list-style: none;
  counter-reset: recipe-step;
}

.recipe-detail__markdown ol li {
  position: relative;
  display: block;
  min-height: 25px;
  padding-left: 38px;
  counter-increment: recipe-step;
}

.recipe-detail__markdown ol li::before {
  display: grid;
  position: absolute;
  top: 0;
  left: 0;
  width: 25px;
  height: 25px;
  color: #4d6e55;
  background: #e7f1e5;
  border: 1px solid #cfe0cc;
  border-radius: 50%;
  content: counter(recipe-step);
  font-size: 0.77rem;
  font-weight: 700;
  line-height: 1;
  place-items: center;
}

.recipe-detail__markdown ol li + li {
  margin-top: 10px;
}

.recipe-detail__markdown hr {
  margin: 22px 6px;
  border-top-color: #edf1eb;
}

.recipe-detail__markdown blockquote,
.recipe-detail__markdown .recipe-note {
  padding: 10px 12px;
  background: #f3f8f2;
  border: 1px solid #dce9d9;
  border-left: 3px solid #aac6a7;
  border-radius: 9px;
}

.recipe-detail__markdown .recipe-note {
  color: #4c5c51;
  font-size: 0.95rem;
}

.recipe-detail__markdown .recipe-ingredients h1,
.recipe-detail__markdown .recipe-ingredients h2,
.recipe-detail__markdown .recipe-ingredients h3,
.recipe-detail__markdown .recipe-ingredients h4,
.recipe-detail__markdown .recipe-ingredients h5,
.recipe-detail__markdown .recipe-ingredients h6 {
  padding: 0;
  margin-top: 0;
  background: transparent;
  border-left: 0;
}

.recipe-not-found {
  display: grid;
  gap: 18px;
  text-align: center;
}

.recipe-not-found .recipe-back-link {
  justify-self: center;
  margin: 0;
}

@media (max-width: 800px) {
  .recipe-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .calculator-card {
    padding: 21px 18px;
  }

  .calculator-card__fields {
    grid-template-columns: 1fr;
  }

  .calculator-card__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .calculator-card__reset {
    width: 100%;
  }

  .shopping-basket__list li {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .recipe-ingredients__item {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .recipe-ingredients__amount {
    text-align: left;
  }

  .catalog-page,
  .recipe-detail-page__content {
    margin-top: 28px;
  }

  .recipe-detail-card,
  .recipe-not-found {
    padding: 22px 18px;
  }

  .recipe-grid {
    grid-template-columns: 1fr;
  }

  .recipe-detail__meta {
    grid-template-columns: 1fr;
  }
}

/* Этап 1 редизайна: единая ширина, сетка, ритм и типографика. */
.site-header,
.hero-banner,
.cover__content,
.resource-sections,
.faq-section,
.final-section,
.catalog-page,
.recipe-detail-page__content {
  width: min(var(--section-width), calc(100% - (var(--page-gutter) * 2)));
}

.week-menu,
.menu-info {
  width: 100%;
}

.hero-banner {
  margin-top: 24px;
}

.calculator-section.cover__content {
  margin-top: 24px;
}

#menu.cover__content {
  margin-top: var(--section-gap);
}

.cover__content,
.resource-sections,
.faq-section,
.final-section,
.habits-section,
.menu-info,
.catalog-page,
.recipe-detail-page__content {
  margin-top: var(--section-gap);
}

.week-menu {
  margin-top: 18px;
}

.week-menu,
.menu-info,
.supply-card,
.habits-section,
.faq-section,
.final-section {
  padding: clamp(26px, 2.5vw, 34px);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  letter-spacing: -0.015em;
}

.cover__content h1,
.supply-card__title,
.habits-section__title,
.faq-section__title,
.gentleness-card__title {
  color: var(--color-text);
  font-size: clamp(1.75rem, 1.5rem + 0.95vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.12;
}

.catalog-hero h1 {
  color: var(--color-text);
  font-size: clamp(2rem, 1.65rem + 1.35vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.04em;
}

.eyebrow,
.section-eyebrow {
  margin: 0 0 12px;
  color: var(--color-accent);
  font-size: 0.77rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.calculator-card__intro h2,
.week-menu__title {
  font-size: clamp(1.3rem, 1.18rem + 0.45vw, 1.55rem);
  font-weight: 700;
  letter-spacing: -0.015em;
}

.week-menu__day-title,
.equipment-category > h1,
.recipe-detail-card__title,
.recipe-catalog-card__title {
  font-weight: 600;
}

.menu-info__source,
.menu-info__audience,
.menu-info__summary,
.menu-info__footer,
.menu-info__calories-note,
.calculator-card__intro p,
.catalog-hero p,
.social-links__text,
.recipes-count {
  color: var(--color-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.6;
}

.menu-info {
  margin-top: 32px;
}

.site-logo,
#faq-list .expandable-card__label {
  font-weight: 700;
}

.menu-info__source,
.menu-info__audience,
.menu-info__summary,
.menu-info__footer,
.final-section__thought,
.social-links__text,
.faq-section__note,
.equipment-markdown > blockquote,
.catalog-hero p {
  max-width: 860px;
}

.menu-dish .menu-markdown,
.recipe-detail__markdown {
  max-width: 900px;
  margin-inline: auto;
}

.recipe-detail__meta {
  max-width: 900px;
  margin-right: auto;
  margin-left: auto;
}

.menu-info__checks,
.menu-info__nutrients,
#habits-list,
.calculator-card__fields,
.recipe-grid {
  min-width: 0;
}

img,
svg,
video {
  max-width: 100%;
}

p,
li,
h1,
h2,
h3,
h4,
h5,
h6,
.expandable-card__label,
.menu-dish__title {
  overflow-wrap: break-word;
}

@media (max-width: 1100px) {
  :root {
    --page-gutter: 20px;
    --section-gap: 40px;
  }
}

@media (max-width: 600px) {
  :root {
    --page-gutter: 12px;
    --section-gap: 28px;
  }

  .hero-banner {
    margin-top: 12px;
  }

  .calculator-section.cover__content,
  #menu.cover__content,
  .cover__content,
  .resource-sections,
  .faq-section,
  .final-section,
  .habits-section,
  .menu-info,
  .catalog-page,
  .recipe-detail-page__content {
    margin-top: var(--section-gap);
  }

  .week-menu,
  .menu-info,
  .supply-card,
  .habits-section,
  .faq-section,
  .final-section {
    padding: 22px 18px;
  }

  .cover__content h1,
  .supply-card__title,
  .habits-section__title,
  .faq-section__title,
  .gentleness-card__title {
    font-size: clamp(1.55rem, 7vw, 1.8rem);
    line-height: 1.18;
  }
}

/* Недельное меню: вводный блок, единая панель дней и спокойные карточки. */
.week-menu-intro {
  max-width: 820px;
}

.week-menu-intro .section-eyebrow {
  margin-bottom: 10px;
}

.week-menu-intro__subtitle {
  max-width: 760px;
  margin: 12px 0 0;
  color: var(--color-text-secondary);
  font-size: 1rem;
  line-height: 1.6;
}

.menu-info__title {
  margin: 0;
  color: var(--color-text);
  font-size: clamp(1.75rem, 1.5rem + 0.95vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.12;
}

@media (max-width: 600px) {
  .menu-info__title {
    font-size: clamp(1.55rem, 7vw, 1.8rem);
    line-height: 1.18;
  }
}

.week-menu__tabs {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  padding: 5px;
  background: #f4f6f2;
  border: 1px solid #e1e6de;
  border-radius: 14px;
  box-shadow: none;
}

.week-menu__tab {
  display: grid;
  grid-template-rows: auto auto;
  gap: 3px;
  min-height: 50px;
  padding: 7px 4px;
  color: #324b3a;
  background: var(--day-background, #fafbf9);
  border-color: var(--day-border, #e5e9e3);
  border-radius: 10px;
  box-shadow: none;
  transform: none;
  transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
  cursor: pointer;
  place-items: center;
}

.week-menu__tab-day {
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
}

.week-menu__tab-date {
  color: #748078;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1;
}

.week-menu__tab.is-active .week-menu__tab-date {
  color: #53645a;
}

.week-menu__tab:hover {
  background: var(--day-hover-background, #f5f7f4);
  border-color: var(--day-hover-border, #d8dfd5);
  box-shadow: none;
  transform: none;
}

.week-menu__tab:focus-visible {
  outline: 2px solid var(--day-focus, #5e8768);
  outline-offset: 2px;
  box-shadow: none;
}

.week-menu__tab.is-active,
.week-menu__tab.is-active:hover {
  color: #263d2e;
  background: var(--active-day-background, #f1f7f1);
  border-color: var(--active-day-border, #cfdccf);
  box-shadow: 0 4px 10px var(--active-day-shadow, rgb(30 60 45 / 12%));
  font-weight: 750;
  transform: none;
}

.week-menu__tab--monday {
  --day-background: #f4faf2;
  --day-border: #dcebd9;
  --day-hover-background: #e5f2e0;
  --day-hover-border: #d2e5ce;
  --active-day-background: #c8e5c2;
  --active-day-border: #a7cda2;
  --active-day-shadow: rgb(86 149 91 / 24%);
  --day-focus: #5e8768;
}

.week-menu__tab--tuesday {
  --day-background: #f4f9fc;
  --day-border: #dce9f4;
  --day-hover-background: #e5f1f8;
  --day-hover-border: #d2e3f0;
  --active-day-background: #c7e3f1;
  --active-day-border: #9bc3da;
  --active-day-shadow: rgb(77 143 183 / 23%);
  --day-focus: #5b8295;
}

.week-menu__tab--wednesday {
  --day-background: #fffaf0;
  --day-border: #f1e7c6;
  --day-hover-background: #faf0cf;
  --day-hover-border: #ebdfb9;
  --active-day-background: #f2d980;
  --active-day-border: #d4b75a;
  --active-day-shadow: rgb(192 150 43 / 24%);
  --day-focus: #9a792e;
}

.week-menu__tab--thursday {
  --day-background: #faf7fc;
  --day-border: #e7deef;
  --day-hover-background: #eee6f6;
  --day-hover-border: #ded2e9;
  --active-day-background: #d9c6ed;
  --active-day-border: #b09ad1;
  --active-day-shadow: rgb(130 99 175 / 22%);
  --day-focus: #75608f;
}

.week-menu__tab--friday {
  --day-background: #fdf7f4;
  --day-border: #efdcd2;
  --day-hover-background: #f7e6de;
  --day-hover-border: #e8d3c8;
  --active-day-background: #edc7b3;
  --active-day-border: #d39a79;
  --active-day-shadow: rgb(190 116 75 / 22%);
  --day-focus: #9a684d;
}

.week-menu__tab--saturday {
  --day-background: #f4faf9;
  --day-border: #d9ebe7;
  --day-hover-background: #e5f3f0;
  --day-hover-border: #cfe4df;
  --active-day-background: #bce3dc;
  --active-day-border: #82c3b8;
  --active-day-shadow: rgb(63 149 136 / 22%);
  --day-focus: #4f897f;
}

.week-menu__tab--sunday {
  --day-background: #fdf7fa;
  --day-border: #eedde7;
  --day-hover-background: #f7e6ed;
  --day-hover-border: #e7d3df;
  --active-day-background: #ebc4d3;
  --active-day-border: #d78aa4;
  --active-day-shadow: rgb(189 94 130 / 21%);
  --day-focus: #966179;
}

.week-menu__panel {
  margin-top: 22px;
}

.week-menu {
  border-color: var(--active-menu-border, var(--surface-border));
  box-shadow: var(--surface-shadow), 0 0 0 3px var(--active-menu-glow, transparent);
  transition: border-color 240ms ease, box-shadow 240ms ease;
}

.week-menu--monday {
  --active-menu-border: #d5e6d5;
  --active-menu-glow: rgb(105 154 113 / 8%);
}

.week-menu--tuesday {
  --active-menu-border: #d2e4ed;
  --active-menu-glow: rgb(90 147 181 / 8%);
}

.week-menu--wednesday {
  --active-menu-border: #e9dfbf;
  --active-menu-glow: rgb(190 153 73 / 8%);
}

.week-menu--thursday {
  --active-menu-border: #ead8cc;
  --active-menu-glow: rgb(186 123 84 / 8%);
}

.week-menu--friday {
  --active-menu-border: #ead7dd;
  --active-menu-glow: rgb(188 112 137 / 8%);
}

.week-menu--saturday {
  --active-menu-border: #dfd6eb;
  --active-menu-glow: rgb(142 113 188 / 8%);
}

.week-menu--sunday {
  --active-menu-border: #d1e6e2;
  --active-menu-glow: rgb(74 151 142 / 8%);
}

.week-menu__day-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.week-menu__day-title {
  margin: 0;
  color: #334d3b;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  line-height: 1.4;
}

.week-menu__day-note {
  margin: 0;
  color: #6a776e;
  font-size: 0.86rem;
  line-height: 1.45;
  text-align: right;
}

.week-menu__panel > .meal-card {
  background: #ffffff;
  border-color: #dde4da;
  box-shadow: 0 3px 10px rgb(47 72 56 / 5%);
  transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

.week-menu__panel > .meal-card + .meal-card {
  margin-top: 10px;
}

.week-menu__panel > .meal-card:hover {
  background: #ffffff;
  border-color: #c9d4c6;
  box-shadow: 0 6px 14px rgb(47 72 56 / 8%);
  transform: translateY(-1px);
}

.week-menu__panel > .meal-card.is-open,
.week-menu__panel > .meal-card.is-open:hover {
  background: #fbfdf9;
  border-color: #bfcfbc;
  box-shadow: 0 6px 16px rgb(47 72 56 / 7%);
  transform: none;
}

@media (max-width: 560px) {
  .week-menu-intro__subtitle {
    font-size: 0.96rem;
  }

  .week-menu__tabs {
    gap: 2px;
    padding: 4px;
    border-radius: 12px;
  }

  .week-menu__tab {
    min-height: 46px;
    padding: 6px 1px;
  }

  .week-menu__tab-day {
    font-size: 0.75rem;
  }

  .week-menu__tab-date {
    font-size: 0.61rem;
  }

  .week-menu__day-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }

  .week-menu__day-note {
    font-size: 0.81rem;
    text-align: left;
  }
}
