/* Файл собран tools/build-css.py из design/catering2.css — правьте там. */
/* ——— Общие отступы сайта: сброс ———
   В globals.css у section свои поля (clamp 56–96px) и разделительная линия
   между соседями — внутри раздела они складываются с его собственными и
   рвут ритм. Сброс стоит в начале файла намеренно: правила пакета идут
   ниже, а :where() снимает вес класса раздела — поэтому любое собственное
   правило пакета сильнее этого сброса и свои отступы секций сохраняет. */
.ct-module :where(section) { padding: 0; }
.ct-module :where(section + section) { border-top: 0; }

/* КЕЙТЕРИНГ · CATERING-02 (пакет от 9 сентября 2026).
   Заменяет CATERING-01: к меню и вариантам сервиса добавлены свой кабинет
   с кухней и заказами, версии предложения и серверная проверка запроса. */

/* Shared interaction primitives; composition lives in 01-catering. */
.ct-module * {
  box-sizing: border-box;
}
.ct-module a {
  color: inherit;
  text-decoration: none;
}
.ct-module a.ct-button {
  color: #fff;
}
.ct-module a.ct-button.ct-secondary {
  color: var(--wine);
}
.ct-module [hidden] {
  display: none !important;
}
.ct-module button,
.ct-module a {
  -webkit-tap-highlight-color: transparent;
}
.ct-module em {
  font-family: inherit;
}
.ct-module .ct-eyebrow {
  display: block;
  margin: 0;
}
.ct-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background: var(--wine);
  color: var(--accent-ink, #fff);
  border: 1px solid var(--wine);
  padding: 13px 22px;
  font-weight: 500;
  text-align: center;
  transition: background 0.2s;
}
.ct-button:hover {
  background: #51212e;
}
.ct-button.ct-secondary {
  background: transparent;
  color: var(--wine);
  border-color: #cdbac0;
}
.ct-button.ct-secondary:hover {
  background: #f5edef;
}
.ct-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  margin-bottom: 18px;
}
.ct-field > span {
  font-size: 0.875rem;
  font-weight: 500;
}
.ct-field input,
.ct-field select,
.ct-field textarea {
  width: 100%;
  background: #fff;
  color: var(--ink);
  border: 1px solid #d8cfd4;
  border-radius: 4px;
  padding: 12px 13px;
  min-height: 47px;
  font-size: 1rem;
}
.ct-field textarea {
  resize: vertical;
  line-height: 1.5;
}
.ct-field small {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.45;
}
.ct-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.ct-check input {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin: 3px 0;
  accent-color: var(--wine);
}
.ct-feedback {
  padding: 14px 16px;
  border-left: 3px solid #973b4d;
  background: #fcf0f2;
  color: #782536;
  font-size: 0.875rem;
}
.ct-empty {
  padding: 30px;
  background: #f7f3f5;
  color: var(--muted);
  border: 1px solid var(--line);
}
.ct-file-label {
  position: relative;
  display: inline-flex;
  gap: 30px;
  align-items: center;
  min-height: 50px;
  padding: 12px 20px;
  border: 1px solid #cdbac0;
  border-radius: 4px;
  cursor: pointer;
  color: var(--wine);
  overflow: hidden;
}
.ct-file-label input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.ct-file-label:focus-within {
  outline: 3px solid #ac6077;
  outline-offset: 3px;
}
.ct-dialog {
  width: min(1000px, calc(100% - 32px));
  max-height: 90dvh;
  overflow: auto;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: white;
  color: #30292c;
  font:
    400 1rem/1.55 Onest,
    Arial,
    sans-serif;
  box-shadow: 0 25px 100px #20131f55;
}
.ct-dialog::backdrop {
  background: #1b111bc4;
}
.ct-dialog > header {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 24px;
  border-bottom: 1px solid #e5dfe2;
}
.ct-dialog > header h2 {
  font-size: 1.5rem;
  margin: 0;
  line-height: 1.2;
  font-weight: 500;
}
.ct-dialog > header button {
  flex-shrink: 0;
  white-space: nowrap;
  font: inherit;
  background: #f7f2f4;
  color: #682c3b;
  border: 1px solid #d8cfd4;
  border-radius: 4px;
  padding: 10px 15px;
  cursor: pointer;
}
.ct-dialog-body {
  padding: 24px;
}
.ct-calendar {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
}
.ct-calendar-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.ct-calendar-top strong {
  font-weight: 500;
  font-size: 1rem;
  text-transform: capitalize;
}
.ct-calendar-top button {
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: #fff;
  color: var(--wine);
}
.ct-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
  text-align: center;
}
.ct-days > span {
  font-size: 0.75rem;
  color: var(--muted);
  padding-block: 5px;
}
.ct-days button {
  min-width: 0;
  min-height: 38px;
  padding: 7px 0;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: #fff;
  color: var(--ink);
  font-size: 0.875rem;
}
.ct-days button.unknown {
  border-style: dashed;
  color: var(--muted);
}
.ct-days button.busy {
  text-decoration: line-through;
  background: #f0edef;
}
.ct-days button[aria-pressed="true"] {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--accent-ink, #fff);
}
.ct-calendar-key {
  display: flex;
  gap: 13px;
  flex-wrap: wrap;
  margin-top: 16px;
  font-size: 0.75rem;
  color: var(--muted);
}
.ct-calendar > small {
  display: block;
  font-size: 0.75rem;
  margin-top: 10px;
  color: var(--muted);
}
@media (max-width: 560px) {
  .ct-dialog-body {
    padding: 16px;
  }
  .ct-dialog > header {
    padding: 14px 16px;
  }
  .ct-dialog > header h2 {
    font-size: 1.2rem;
  }
  .ct-dialog > header button {
    font-size: 0.875rem;
  }
  .ct-calendar {
    padding: 15px;
  }
  .ct-days {
    gap: 4px;
  }
}

.ct-module {
  --wine: #682c3b; --accent-ink: #fff;
  --ink: #2f292c;
  --muted: #756a70;
  --line: #e2dade;
  font:
    400 1rem/1.55 Onest,
    Arial,
    sans-serif;
  color: var(--ink);
  background: #fff;--bg:#FFFFFF;--surface:#FFFFFF;--surface-2:#F5F3F1;--surface-3:#F1EDEB;--line-strong:#968C88;--accent:#682C3B;--accent-fill:var(--accent);--accent-fill-hover:var(--accent-hover);--accent-soft:#F3E9EC;--accent-hover:#4B1C29;--ok:#2E6B45;--warn:#A8561A;--danger:#8C2F2F;--ph-a:#CFCAC0;--ph-b:#8A8378;--shadow-float:0 1px 2px rgba(36,34,35,.06), 0 12px 32px rgba(36,34,35,.10);}
.ct-module h1,
.ct-module h2,
.ct-module h3,
.ct-module p {
  margin-top: 0;
}
.ct-module h1,
.ct-module h2,
.ct-module h3 {
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.1;
}
.ct-module h1 {
  font-size: clamp(3rem, 6.4vw, 5.8rem);
  margin-bottom: 0;
}
.ct-module h2 {
  font-size: clamp(2rem, 3.8vw, 3.4rem);
  margin-bottom: 23px;
}
.ct-module h3 {
  font-size: 1.5rem;
}
.ct-module em {
  font-style: normal;
  color: var(--wine);
}
.ct-module button,
.ct-module input,
.ct-module textarea,
.ct-module select {
  font-family: inherit;
}
.ct-module button {
  cursor: pointer;
}
.ct-module button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.ct-module :focus-visible {
  outline: 3px solid #a16980;
  outline-offset: 4px;
}
.ct-module img {
  display: block;
  max-width: 100%;
  object-fit: cover;
}
.ct-wrap {
  width: min(1320px, calc(100% - 80px));
  margin-inline: auto;
}
.ct-eyebrow {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: var(--wine);
  margin-bottom: 21px !important;
}
.ct-plain-fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
.ct-text {
  background: none;
  border: 0;
  padding: 10px 0;
  font-size: 0.875rem;
  color: var(--wine);
  text-align: left;
}
.ct-help {
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.6;
}
.ct-preview-nav {
  padding: 9px max(20px, calc((100% - 1320px) / 2));
  background: #f4eff2;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 5px;
  align-items: center;
  flex-wrap: wrap;
}
.ct-preview-nav > span,
.ct-preview-nav small {
  font-size: 0.75rem;
  color: var(--muted);
}
.ct-preview-nav > span {
  margin-right: 10px;
}
.ct-preview-nav small {
  margin-left: auto;
}
.ct-preview-nav button {
  padding: 8px 13px;
  border: 1px solid transparent;
  background: none;
  color: var(--wine);
  font-size: 0.8rem;
  border-radius: 3px;
}
.ct-preview-nav button[aria-pressed="true"] {
  background: #fff;
  border-color: #d2bcc5;
}
.ct-intro {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 80px;
  padding-block: 40px 35px;
}
.ct-intro h1 br {
  display: none;
}
.ct-intro h1 em {
  white-space: nowrap;
}
.ct-intro-side {
  display: flex;
  align-items: end;
  gap: 35px;
}
.ct-intro-side p {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
  white-space: nowrap;
}
.ct-intro-side > a {
  display: flex;
  gap: 28px;
  align-items: center;
  font-size: 0.875rem;
  color: var(--wine);
  white-space: nowrap;
  border-bottom: 1px solid var(--wine);
  padding-bottom: 7px;
}
.ct-format-stage {
  margin-bottom: 58px;
}
.ct-format-photo {
  position: relative;
  overflow: hidden;
  border-radius: 5px 5px 0 0;
}
.ct-format-photo > img {
  width: 100%;
  height: 380px;
  object-position: center 54%;
  animation: ct-fade 0.45s both;
}
.ct-format-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #29192480, transparent 55%);
  pointer-events: none;
}
.ct-format-caption {
  position: absolute;
  bottom: 27px;
  left: 30px;
  color: white;
  z-index: 1;
}
.ct-format-caption > span {
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ct-format-caption p {
  font-size: 1.75rem;
  letter-spacing: -0.035em;
  margin: 10px 0 0;
  line-height: 1.3;
}
.ct-format-selector {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-top: 0;
}
.ct-format-selector button {
  padding: 22px 25px;
  border: 0;
  border-right: 1px solid var(--line);
  background: #fff;
  display: flex;
  align-items: start;
  gap: 20px;
  text-align: left;
  color: var(--ink);
}
.ct-format-selector button:last-child {
  border-right: 0;
}
.ct-format-selector button[aria-pressed="true"] {
  background: var(--wine);
  color: var(--accent-ink, #fff);
}
.ct-format-index {
  font-size: 0.75rem;
  opacity: 0.65;
  margin-top: 6px;
}
.ct-format-selector button > div {
  flex: 1;
}
.ct-format-selector strong {
  display: block;
  font-weight: 500;
  font-size: 1.45rem;
  letter-spacing: -0.035em;
  margin-bottom: 6px;
  line-height: 1.25;
}
.ct-format-selector small {
  font-size: 0.8rem;
  display: block;
  line-height: 1.5;
  opacity: 0.8;
}
.ct-format-selector button > span:last-child {
  font-size: 1.1rem;
  margin-top: 4px;
}
.ct-photo-empty {
  height: 380px;
  background: #f5f0f3;
  display: grid;
  place-items: center;
  color: var(--wine);
  font-size: 2rem;
}
.ct-find {
  scroll-margin-top: 24px;
  margin-bottom: 75px;
}
.ct-find-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
}
.ct-find-heading .ct-eyebrow {
  order: 2;
  align-self: end;
  margin-bottom: 8px !important;
}
.ct-find-heading h2 {
  margin-bottom: 0;
}
.ct-find-heading h2 br {
  /* Перенос строки в заголовке скрыт, но тогда «Что поставим» и «на стол?»
     склеиваются: br не даёт пробела. Заменяем его пробелом. */
  display: none;
}
.ct-find-heading h2 br::after {
  content: ' ';
  display: inline;
  white-space: pre;
}
.ct-find-heading h2 em::before {
  content: ' ';
}
.ct-search {
  border: 1px solid #cdaeba;
  border-radius: 5px;
  padding: 25px;
  background: #faf8f9;
}
.ct-search-inputs {
  display: grid;
  grid-template-columns: 0.55fr 0.9fr 1fr 1.35fr;
  gap: 20px;
}
.ct-search-inputs .ct-field {
  margin-bottom: 0;
}
.ct-service-choice {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 24px;
  border-top: 1px solid var(--line);
  padding-top: 24px;
}
.ct-service-choice button,
.ct-order-services button {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  display: flex;
  align-items: start;
  gap: 13px;
  padding: 17px 18px;
  text-align: left;
  border-radius: 4px;
}
.ct-service-choice button[aria-pressed="true"],
.ct-order-services button[aria-pressed="true"] {
  border-color: #aa748b;
  background: #f5edf1;
}
.ct-radio {
  width: 18px;
  height: 18px;
  border: 1px solid #b896a4;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 3px;
  position: relative;
}
.ct-module [aria-pressed="true"] > .ct-radio {
  border: 5px solid var(--wine);
  background: #fff;
}
.ct-service-choice strong,
.ct-order-services strong {
  font-size: 0.95rem;
  font-weight: 500;
  display: block;
  margin-bottom: 5px;
}
.ct-service-choice small,
.ct-order-services small {
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--muted);
  display: block;
}
.ct-search-bottom {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 24px;
}
.ct-search-bottom > .ct-field {
  margin-bottom: 0;
  flex-basis: 210px;
}
.ct-search-bottom > .ct-field:nth-child(2) {
  margin-left: auto;
}
.ct-search-bottom > .ct-check {
  font-size: 0.875rem;
}
.ct-search-note {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 16px 0 0;
}
.ct-venue-context {
  display: grid;
  grid-template-columns: 100px 1fr 1.4fr;
  gap: 25px;
  align-items: center;
  padding: 19px 4px;
  border-bottom: 1px solid var(--line);
  font-size: 0.875rem;
}
.ct-venue-context > span {
  color: var(--muted);
}
.ct-venue-context > strong {
  font-weight: 500;
}
.ct-venue-context p {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0;
}
.ct-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 26px 0;
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-menu-list {
  display: grid;
  gap: 35px;
}
.ct-menu-card {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 40px;
  padding-bottom: 35px;
  border-bottom: 1px solid var(--line);
}
.ct-menu-photo {
  padding: 0;
  border: 0;
  background: #eee;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  min-height: 410px;
}
.ct-menu-photo img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  transition: transform 0.5s;
}
.ct-menu-photo:hover img {
  transform: scale(1.03);
}
.ct-menu-photo > span {
  position: absolute;
  left: 20px;
  bottom: 20px;
  background: white;
  padding: 8px 13px;
  color: var(--wine);
  font-size: 0.8rem;
}
.ct-menu-info {
  padding: 10px 0;
}
.ct-menu-info .ct-eyebrow {
  margin-bottom: 15px !important;
}
.ct-menu-info h3 {
  font-size: 2.6rem;
  margin-bottom: 13px;
}
.ct-menu-info h3 button {
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  border: 0;
  background: none;
  padding: 0;
  color: inherit;
  text-align: left;
}
.ct-menu-info > p {
  color: var(--muted);
  font-size: 0.95rem;
}
.ct-menu-stats {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  font-size: 0.8rem;
  color: var(--muted);
  padding: 15px 0;
  border-block: 1px solid var(--line);
}
.ct-menu-stats strong {
  color: var(--ink);
  font-weight: 500;
  font-size: 1rem;
}
.ct-menu-info ul {
  list-style: none;
  margin: 18px 0;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: 0.875rem;
  color: var(--muted);
}
.ct-menu-info ul > li {
  padding-left: 16px;
  position: relative;
}
.ct-menu-info ul > li:before {
  content: "·";
  position: absolute;
  left: 1px;
  color: var(--wine);
}
.ct-menu-price {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 25px;
  padding-top: 12px;
}
.ct-menu-price > div > span {
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-menu-price strong {
  display: block;
  font-size: 1.75rem;
  font-weight: 500;
  letter-spacing: -0.045em;
  color: var(--wine);
  line-height: 1.4;
  margin: 5px 0;
}
.ct-menu-price small {
  display: block;
  font-size: 0.75rem;
  color: var(--muted);
}
.ct-card-actions {
  display: flex;
  align-items: center;
  gap: 23px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.ct-card-actions > .ct-check {
  font-size: 0.875rem;
}
.ct-menu-info .ct-card-warning {
  padding-left: 12px;
  border-left: 2px solid #b3788c;
  color: var(--wine);
  font-size: 0.875rem;
  margin-top: 17px;
}
.ct-compare {
  margin-bottom: 70px;
  scroll-margin-top: 25px;
}
.ct-compare h2 {
  font-size: 2.5rem;
}
.ct-table-scroll {
  overflow: auto;
  overscroll-behavior-x: contain;
}
.ct-compare table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.875rem;
}
.ct-compare caption {
  text-align: left;
  color: var(--muted);
  font-size: 0.8rem;
  padding: 12px 0 20px;
}
.ct-compare th,
.ct-compare td {
  border-bottom: 1px solid var(--line);
  padding: 17px 20px;
  vertical-align: top;
}
.ct-compare th {
  font-weight: 500;
}
.ct-compare thead th {
  background: #f7f2f5;
  color: var(--wine);
  font-size: 1rem;
}
.ct-compare thead button {
  background: none;
  border: 0;
  color: var(--wine);
  font-size: 1.2rem;
  margin-left: 14px;
}
.ct-compare tbody th {
  color: var(--muted);
  white-space: nowrap;
}
.ct-service-story {
  padding-block: 65px;
  background: #f7f4f6;
}
.ct-service-story > .ct-wrap {
  display: grid;
  grid-template-columns: 0.7fr 1.8fr;
  gap: 65px;
}
.ct-story-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.ct-story-columns article > span {
  color: var(--muted);
  font-size: 0.8rem;
  display: block;
  margin-bottom: 30px;
}
.ct-story-columns h3 {
  font-size: 1.45rem;
  letter-spacing: -0.035em;
}
.ct-story-columns p {
  font-size: 0.9rem;
  color: var(--muted);
  margin: 0;
}
.ct-partner {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  align-items: center;
  gap: 80px;
  padding-block: 75px;
}
.ct-partner h2 {
  font-size: 2.6rem;
  margin: 0;
}
.ct-partner p {
  color: var(--muted);
  font-size: 0.95rem;
  max-width: 490px;
}
.ct-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  border-top: 1px solid var(--line);
  padding-block: 25px;
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-footer button {
  background: none;
  border: 0;
  color: var(--wine);
  font: inherit;
  padding: 0;
  text-align: left;
}
.ct-footer > a {
  white-space: nowrap;
}
.ct-profile {
  padding-top: 18px;
  padding-bottom: 70px;
}
.ct-profile-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  margin-bottom: 35px;
}
.ct-profile-nav > span {
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-company-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  padding-bottom: 35px;
}
.ct-company-heading h1 {
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  margin-bottom: 15px;
}
.ct-company-heading p {
  font-size: 1.125rem;
  color: var(--muted);
  margin: 0;
}
.ct-company-heading > .ct-button {
  margin-bottom: 6px;
  white-space: nowrap;
}
.ct-menu-book-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin-bottom: 28px;
}
.ct-menu-book-nav button {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 17px 20px;
  text-align: left;
  color: var(--muted);
}
.ct-menu-book-nav button[aria-pressed="true"] {
  border-color: var(--wine);
  color: var(--wine);
  background: #faf6f8;
}
.ct-menu-book-nav button > span {
  display: block;
  font-size: 0.75rem;
  margin-bottom: 8px;
}
.ct-menu-book-nav button > strong {
  font-size: 1rem;
  letter-spacing: -0.02em;
  font-weight: 500;
}
.ct-menu-feature {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  border: 1px solid var(--line);
  border-radius: 5px;
  overflow: hidden;
  margin-bottom: 45px;
}
.ct-feature-photo {
  border: 0;
  background: #eee;
  padding: 0;
  position: relative;
  min-height: 430px;
}
.ct-feature-photo img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-position: center;
}
.ct-feature-photo > span {
  position: absolute;
  bottom: 20px;
  left: 20px;
  padding: 10px 17px;
  background: white;
  color: var(--wine);
  font-size: 0.875rem;
}
.ct-feature-copy {
  padding: 40px 38px;
  background: #faf7f9;
}
.ct-feature-copy > p {
  color: var(--muted);
  font-size: 0.95rem;
}
.ct-feature-copy h2 {
  font-size: 2.8rem;
}
.ct-feature-copy .ct-menu-stats {
  gap: 18px;
}
.ct-food-price {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 24px;
}
.ct-food-price strong {
  font-size: 2.2rem;
  font-weight: 500;
  color: var(--wine);
  letter-spacing: -0.04em;
  line-height: 1;
}
.ct-food-price > span {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.5;
}
.ct-profile-body {
  display: grid;
  grid-template-columns: 395px minmax(0, 1fr);
  gap: 65px;
  align-items: start;
}
.ct-order {
  padding: 25px;
  border: 1px solid #d1b4c1;
  border-radius: 4px;
  scroll-margin-top: 24px;
  background: white;
}
.ct-order h2 {
  font-size: 2rem;
  margin-bottom: 24px;
}
.ct-order header .ct-eyebrow {
  margin-bottom: 14px !important;
}
.ct-form-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 13px;
}
.ct-form-pair .ct-field > span {
  font-size: 0.875rem;
}
.ct-order-services {
  display: grid;
  gap: 10px;
  margin-bottom: 20px;
}
.ct-order-services button {
  padding: 14px;
}
.ct-order-services strong {
  font-size: 0.875rem;
}
.ct-order-services small {
  font-size: 0.8rem;
}
.ct-staff {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 16px;
  background: #f6f1f4;
  margin-bottom: 18px;
}
.ct-staff > strong {
  font-size: 2.7rem;
  line-height: 1;
  color: var(--wine);
  font-weight: 400;
}
.ct-staff > div {
  font-size: 0.95rem;
}
.ct-staff small {
  display: block;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.5;
  margin-top: 4px;
}
.ct-order details > summary {
  font-size: 0.875rem;
  padding: 14px 0;
  cursor: pointer;
}
.ct-calendar-details {
  border-top: 1px solid var(--line);
}
.ct-availability {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 5px 0 22px;
}
.ct-availability.ct-free {
  color: #426456;
}
.ct-availability.ct-busy {
  color: #96384e;
}
.ct-order .ct-calendar {
  padding: 12px;
}
.ct-extra {
  border-top: 1px solid var(--line);
}
.ct-extra .ct-check {
  font-size: 0.875rem;
  margin-bottom: 18px;
}
.ct-total {
  padding-block: 20px 5px;
  border-top: 1px solid var(--line);
}
.ct-total > span {
  font-size: 0.875rem;
}
.ct-total > strong {
  display: block;
  color: var(--wine);
  font-size: 2.55rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.3;
  margin: 6px 0 10px;
}
.ct-total small {
  display: block;
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-breakdown > div {
  display: flex;
  gap: 20px;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding: 12px 0;
  font-size: 0.8rem;
}
.ct-breakdown > div > span {
  flex: 1;
}
.ct-breakdown small {
  display: block;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.5;
  margin-top: 4px;
}
.ct-breakdown > div > strong {
  font-weight: 500;
  min-width: 80px;
  text-align: right;
}
.ct-breakdown > .ct-fee {
  background: #f8f3f6;
  padding: 13px 10px;
  border: 0;
  margin-top: 7px;
}
.ct-pending {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.6;
  background: #f8f5f7;
  padding: 12px 15px;
  margin: 15px 0;
}
.ct-order > .ct-button {
  width: 100%;
  margin-top: 16px;
}
.ct-order > .ct-button.ct-secondary {
  margin-top: 10px;
}
.ct-order-note {
  display: block;
  color: var(--muted);
  font-size: 0.75rem;
  text-align: center;
  line-height: 1.6;
  margin-top: 14px;
}
.ct-menu-paper > header {
  padding-top: 15px;
}
.ct-menu-paper > header h2 {
  font-size: 2.7rem;
}
.ct-menu-paper > header p {
  font-size: 0.95rem;
  color: var(--muted);
  max-width: 600px;
}
.ct-course-nav {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.ct-course-nav button {
  padding: 9px 0;
  border: 0;
  background: none;
  color: var(--wine);
  font-size: 0.875rem;
}
.ct-course {
  padding-top: 32px;
  scroll-margin-top: 20px;
}
.ct-course > header {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 15px;
}
.ct-course > header > span {
  font-size: 0.8rem;
  color: var(--wine);
}
.ct-course h3 {
  font-size: 1.8rem;
  letter-spacing: -0.04em;
  margin: 0;
}
.ct-dish {
  display: grid;
  grid-template-columns: 1fr 150px;
  gap: 30px;
  padding: 21px 0;
  border-bottom: 1px solid var(--line);
}
.ct-dish h4 {
  font-size: 1.1rem;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
}
.ct-dish p {
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: 9px;
}
.ct-dish details {
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-dish summary {
  padding: 4px 0;
  font-size: 0.8rem;
  cursor: pointer;
  color: var(--wine);
}
.ct-dish details p {
  font-size: 0.8rem;
  padding: 10px 0 0;
}
.ct-dish details small {
  font-size: 0.75rem;
}
.ct-dish-quantity {
  text-align: right;
}
.ct-dish-quantity > strong {
  font-size: 1.1rem;
  font-weight: 500;
}
.ct-dish-quantity > span {
  display: block;
  color: var(--muted);
  font-size: 0.75rem;
  margin-top: 3px;
}
.ct-dish-quantity > small {
  display: block;
  margin-top: 14px;
  font-size: 0.75rem;
  color: var(--muted);
  line-height: 1.5;
}
.ct-menu-bottom {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  padding: 25px 0;
  margin-top: 10px;
  border-bottom: 1px solid var(--line);
}
.ct-menu-bottom > div > span {
  display: block;
  font-size: 0.875rem;
  color: var(--muted);
}
.ct-menu-bottom strong {
  display: block;
  font-size: 2rem;
  color: var(--wine);
  font-weight: 400;
  letter-spacing: -0.035em;
  margin-top: 8px;
}
.ct-menu-bottom > div:last-child {
  text-align: right;
}
.ct-weight-note {
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 16px;
}
.ct-hospitality {
  margin-top: 35px;
  padding: 28px;
  background: #f7f3f6;
  border-radius: 4px;
}
.ct-hospitality h3 {
  font-size: 1.6rem;
}
.ct-hospitality p {
  color: var(--muted);
  font-size: 0.875rem;
}
.ct-hospitality > p:last-child {
  margin-bottom: 0;
}
.ct-hospitality-times {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
  border-block: 1px solid #ded0d8;
  padding: 18px 0;
  margin: 20px 0;
}
.ct-hospitality-times span {
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-hospitality-times strong {
  display: block;
  color: var(--wine);
  font-size: 1.3rem;
  line-height: 1.3;
  margin-bottom: 9px;
  font-weight: 500;
}
.ct-about {
  padding-top: 35px;
}
.ct-about h3 {
  font-size: 1.8rem;
}
.ct-about p {
  font-size: 0.95rem;
  color: var(--muted);
}
.ct-about small {
  font-size: 0.8rem;
  color: var(--muted);
}
.ct-gallery {
  display: grid;
  gap: 22px;
}
.ct-gallery img {
  width: 100%;
  height: auto;
}
.ct-mobile-total {
  display: none;
}
@keyframes ct-fade {
  from {
    opacity: 0.6;
    transform: scale(1.015);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@media (max-width: 1250px) {
  .ct-intro h1 {
    font-size: 4.6rem;
  }
  .ct-intro-side p {
    display: none;
  }
  .ct-intro {
    gap: 40px;
  }
  .ct-service-story > .ct-wrap {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .ct-service-story h2 br {
    display: none;
  }
  .ct-profile-body {
    gap: 35px;
    grid-template-columns: 365px minmax(0, 1fr);
  }
  .ct-feature-copy {
    padding: 30px;
  }
  .ct-menu-card {
    gap: 30px;
  }
  .ct-menu-info h3 {
    font-size: 2.25rem;
  }
  .ct-format-selector button {
    gap: 15px;
    padding: 20px;
  }
  .ct-preview-nav small {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-top: 5px;
  }
}
@media (max-width: 1000px) {
  .ct-wrap {
    width: calc(100% - 48px);
  }
  .ct-intro h1 {
    font-size: 4rem;
  }
  .ct-intro h1 br {
    display: block;
  }
  .ct-format-photo > img {
    height: 330px;
  }
  .ct-format-selector button {
    padding: 18px 15px;
    gap: 12px;
  }
  .ct-format-index {
    display: none;
  }
  .ct-format-selector strong {
    font-size: 1.25rem;
  }
  .ct-search-inputs {
    gap: 15px;
    grid-template-columns: 1fr 1fr;
  }
  .ct-menu-card {
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .ct-menu-info h3 {
    font-size: 1.9rem;
  }
  .ct-menu-price {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .ct-menu-stats {
    gap: 12px;
  }
  .ct-menu-photo {
    min-height: 490px;
  }
  .ct-menu-price strong {
    font-size: 1.6rem;
  }
  .ct-card-actions {
    gap: 15px;
  }
  .ct-card-actions .ct-button {
    font-size: 0.875rem;
    padding-inline: 17px;
  }
  .ct-feature-copy h2 {
    font-size: 2.3rem;
  }
  .ct-feature-photo {
    min-height: 400px;
  }
  .ct-feature-copy {
    padding: 27px;
  }
  .ct-food-price {
    display: block;
  }
  .ct-food-price > span {
    display: block;
    margin-top: 12px;
  }
  .ct-profile-body {
    grid-template-columns: 330px 1fr;
    gap: 28px;
  }
  .ct-order {
    padding: 20px;
  }
  .ct-dish {
    grid-template-columns: 1fr 110px;
    gap: 20px;
  }
  .ct-menu-paper > header h2 {
    font-size: 2.3rem;
  }
  .ct-hospitality {
    padding: 22px;
  }
  .ct-company-heading {
    gap: 20px;
  }
  .ct-company-heading h1 {
    font-size: 3.6rem;
  }
  .ct-company-heading > .ct-button {
    font-size: 0.875rem;
  }
  .ct-find-heading .ct-eyebrow {
    display: none;
  }
}
@media (max-width: 800px) {
  .ct-intro {
    padding-top: 30px;
  }
  .ct-intro h1 {
    font-size: 3.6rem;
  }
  .ct-intro-side {
    align-self: end;
    margin-bottom: 7px;
  }
  .ct-format-selector small {
    font-size: 0.75rem;
  }
  .ct-service-choice {
    grid-template-columns: 1fr;
  }
  .ct-search-bottom {
    flex-wrap: wrap;
    gap: 18px;
  }
  .ct-search-bottom > .ct-field {
    flex: 1;
  }
  .ct-search-bottom > .ct-check {
    width: 100%;
  }
  .ct-venue-context {
    grid-template-columns: 1fr 2fr;
    gap: 12px;
  }
  .ct-venue-context p {
    grid-column: 1/-1;
  }
  .ct-menu-card {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .ct-menu-photo {
    min-height: 0;
    height: 350px;
  }
  .ct-menu-info {
    padding: 0;
  }
  .ct-menu-info h3 {
    font-size: 2.5rem;
  }
  .ct-menu-price {
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .ct-story-columns {
    gap: 25px;
  }
  .ct-story-columns h3 {
    font-size: 1.25rem;
  }
  .ct-partner {
    gap: 35px;
    grid-template-columns: 1fr 1fr;
  }
  .ct-partner h2 {
    font-size: 2rem;
  }
  .ct-company-heading {
    align-items: start;
    flex-direction: column;
    gap: 24px;
  }
  .ct-company-heading h1 {
    font-size: 3.5rem;
  }
  .ct-menu-feature {
    grid-template-columns: 1fr;
  }
  .ct-feature-photo {
    min-height: 0;
    height: 360px;
  }
  .ct-feature-copy h2 {
    font-size: 2.5rem;
  }
  .ct-food-price {
    display: flex;
  }
  .ct-food-price > span {
    margin: 0;
  }
  .ct-profile-body {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .ct-menu-paper {
    order: 0;
  }
  .ct-order {
    order: 1;
    max-width: 620px;
    width: 100%;
    margin-inline: auto;
    padding: 26px;
  }
  .ct-dish {
    grid-template-columns: 1fr 150px;
  }
  .ct-course h3 {
    font-size: 1.9rem;
  }
  .ct-menu-paper > header h2 {
    font-size: 2.7rem;
  }
  .ct-mobile-total {
    display: flex;
    position: fixed;
    z-index: 5;
    bottom: 0;
    left: 0;
    right: 0;
    gap: 18px;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    border-top: 1px solid var(--line);
    padding: 13px 24px calc(13px + env(safe-area-inset-bottom));
    box-shadow: 0 -5px 25px #38202f0c;
  }
  .ct-mobile-total small {
    display: block;
    font-size: 0.75rem;
    color: var(--muted);
  }
  .ct-mobile-total strong {
    display: block;
    color: var(--wine);
    font-size: 1.1rem;
    font-weight: 500;
  }
  .ct-mobile-total > .ct-button {
    padding: 12px 18px;
    font-size: 0.875rem;
  }
  .ct-footer {
    padding-bottom: 100px;
    flex-wrap: wrap;
  }
  .ct-profile {
    padding-bottom: 110px;
  }
}
@media (max-width: 600px) {
  .ct-wrap {
    width: calc(100% - 36px);
  }
  .ct-intro {
    display: block;
    padding-block: 28px 22px;
  }
  .ct-intro h1 {
    font-size: 3.5rem;
  }
  .ct-intro h1 br {
    display: none;
  }
  .ct-intro h1 em {
    display: block;
  }
  .ct-intro-side {
    margin-top: 20px;
    display: block;
  }
  .ct-intro-side > a {
    width: fit-content;
    font-size: 1rem;
    gap: 45px;
    padding-block: 4px 8px;
  }
  .ct-eyebrow {
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    margin-bottom: 17px !important;
  }
  .ct-format-photo > img {
    height: 295px;
    object-position: center;
  }
  .ct-format-caption {
    left: 18px;
    bottom: 20px;
    right: 18px;
  }
  .ct-format-caption > span {
    font-size: 0.75rem;
  }
  .ct-format-caption p {
    font-size: 1.4rem;
    max-width: 300px;
    margin-top: 8px;
  }
  .ct-format-selector button {
    padding: 14px 11px;
    display: block;
  }
  .ct-format-selector button > span:last-child {
    display: none;
  }
  .ct-format-selector strong {
    font-size: 1rem;
    margin-bottom: 0;
  }
  .ct-format-selector small {
    display: none;
  }
  .ct-format-stage {
    margin-bottom: 40px;
  }
  .ct-find-heading h2 {
    font-size: 2.2rem;
  }
  .ct-find-heading h2 br {
    display: block;
  }
  .ct-search {
    padding: 18px;
  }
  .ct-search-inputs {
    gap: 0 12px;
  }
  .ct-search-inputs .ct-field {
    margin-bottom: 15px;
  }
  .ct-search .ct-field > span {
    font-size: 0.875rem;
  }
  .ct-search-inputs > .ct-field:last-child {
    grid-column: 1/-1;
  }
  .ct-search-inputs > .ct-field:nth-child(3) {
    grid-column: 1/-1;
  }
  .ct-service-choice {
    margin-top: 5px;
    padding-top: 20px;
    gap: 10px;
  }
  .ct-service-choice button {
    padding: 14px 13px;
  }
  .ct-service-choice strong {
    font-size: 0.875rem;
  }
  .ct-search-bottom {
    margin-top: 19px;
    gap: 16px;
  }
  .ct-search-bottom > .ct-field {
    flex-basis: 130px;
  }
  .ct-search-note {
    font-size: 0.75rem;
  }
  .ct-venue-context {
    padding-block: 16px;
    gap: 10px;
    font-size: 0.8rem;
  }
  .ct-menu-photo {
    height: 290px;
  }
  .ct-menu-info h3 {
    font-size: 2.1rem;
  }
  .ct-menu-stats {
    gap: 15px;
    font-size: 0.8rem;
  }
  .ct-menu-stats strong {
    font-size: 0.95rem;
  }
  .ct-menu-price {
    gap: 15px;
    grid-template-columns: 0.8fr 1.2fr;
  }
  .ct-menu-price > div > span {
    font-size: 0.75rem;
  }
  .ct-menu-price strong {
    font-size: 1.5rem;
  }
  .ct-card-actions > .ct-button {
    flex: 1;
    min-width: 100%;
    font-size: 0.95rem;
  }
  .ct-card-actions {
    gap: 18px;
  }
  .ct-menu-card {
    padding-bottom: 30px;
  }
  .ct-find {
    margin-bottom: 45px;
  }
  .ct-list-head {
    margin-block: 22px;
    align-items: start;
    gap: 15px;
    flex-direction: column;
  }
  .ct-service-story {
    padding-block: 45px;
  }
  .ct-service-story h2 {
    font-size: 2.2rem;
  }
  .ct-service-story h2 br {
    display: block;
  }
  .ct-story-columns {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .ct-story-columns article {
    border-top: 1px solid #e1d5dc;
    padding-top: 22px;
  }
  .ct-story-columns article > span {
    margin-bottom: 15px;
  }
  .ct-story-columns h3 {
    font-size: 1.5rem;
    margin-bottom: 13px;
  }
  .ct-story-columns h3 br {
    display: none;
  }
  .ct-story-columns p {
    font-size: 0.95rem;
  }
  .ct-partner {
    grid-template-columns: 1fr;
    padding-block: 48px;
    gap: 22px;
  }
  .ct-partner h2 {
    font-size: 2rem;
  }
  .ct-partner p {
    font-size: 0.95rem;
  }
  .ct-partner .ct-button {
    width: 100%;
    font-size: 0.875rem;
  }
  .ct-footer {
    font-size: 0.75rem;
    gap: 16px;
  }
  .ct-footer > span {
    order: 3;
    width: 100%;
  }
  .ct-footer > a {
    margin-left: auto;
  }
  .ct-preview-nav {
    padding: 9px 15px;
    gap: 3px;
  }
  .ct-preview-nav > span {
    display: none;
  }
  .ct-preview-nav button {
    font-size: 0.75rem;
    padding: 7px 10px;
  }
  .ct-preview-nav small {
    font-size: 0.75rem;
  }
  .ct-company-heading h1 {
    font-size: 2.8rem;
  }
  .ct-profile-nav {
    margin-bottom: 24px;
    align-items: start;
    gap: 20px;
  }
  .ct-profile-nav > span {
    max-width: 130px;
    text-align: right;
    font-size: 0.75rem;
  }
  .ct-profile-nav > .ct-text {
    font-size: 0.8rem;
  }
  .ct-company-heading p {
    font-size: 1rem;
  }
  .ct-menu-book-nav {
    grid-template-columns: 1fr;
    margin-bottom: 20px;
  }
  .ct-menu-book-nav button {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--line);
  }
  .ct-menu-book-nav button > span {
    margin: 0;
    font-size: 0.75rem;
    width: 85px;
    flex-shrink: 0;
  }
  .ct-menu-book-nav button > strong {
    font-size: 0.875rem;
  }
  .ct-menu-book-nav button[aria-pressed="true"] {
    border-left: 3px solid var(--wine);
  }
  .ct-feature-photo {
    height: 290px;
  }
  .ct-feature-copy {
    padding: 24px 20px;
  }
  .ct-feature-copy h2 {
    font-size: 2.3rem;
  }
  .ct-feature-copy > p {
    font-size: 0.95rem;
  }
  .ct-food-price {
    gap: 18px;
  }
  .ct-food-price strong {
    font-size: 1.9rem;
  }
  .ct-menu-feature {
    margin-bottom: 30px;
  }
  .ct-menu-paper > header h2 {
    font-size: 2.2rem;
  }
  .ct-course-nav {
    gap: 18px;
  }
  .ct-course-nav button {
    font-size: 0.875rem;
  }
  .ct-course {
    padding-top: 27px;
  }
  .ct-course h3 {
    font-size: 1.65rem;
  }
  .ct-course > header {
    gap: 16px;
  }
  .ct-dish {
    grid-template-columns: 1fr 88px;
    gap: 15px;
    padding: 19px 0;
  }
  .ct-dish h4 {
    font-size: 1rem;
  }
  .ct-dish p {
    font-size: 0.875rem;
  }
  .ct-dish-quantity > strong {
    font-size: 1rem;
  }
  .ct-dish-quantity > small {
    font-size: 0.75rem;
    margin-top: 12px;
  }
  .ct-menu-bottom {
    gap: 20px;
  }
  .ct-menu-bottom > div > span {
    font-size: 0.8rem;
  }
  .ct-menu-bottom strong {
    font-size: 1.8rem;
  }
  .ct-hospitality {
    padding: 22px 18px;
  }
  .ct-hospitality h3 {
    font-size: 1.4rem;
  }
  .ct-order {
    padding: 20px;
  }
  .ct-total > strong {
    font-size: 2.5rem;
  }
  .ct-mobile-total {
    padding-inline: 18px;
  }
  .ct-mobile-total strong {
    font-size: 1rem;
  }
  .ct-mobile-total > .ct-button {
    padding-inline: 17px;
  }
  .ct-compare h2 {
    font-size: 2rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ct-module * {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}
.ct-card-availability {
  font-size: 13px;
  color: var(--wine);
  line-height: 1.5;
  margin: 18px 0 0;
}
.ct-intro > div:first-child {
  min-width: 0;
}
.ct-intro-side {
  flex-shrink: 0;
}
.ct-intro {
  gap: 40px;
}
.ct-intro h1 {
  font-size: clamp(3rem, 5.7vw, 5.1rem);
}
@media (min-width: 1001px) and (max-width: 1350px) {
  .ct-intro-side p {
    display: none;
  }
}
@media (max-width: 1000px) {
  .ct-intro h1 {
    font-size: 4rem;
  }
}
@media (max-width: 600px) {
  .ct-intro h1 {
    font-size: clamp(2.6rem, 10.5vw, 3.8rem);
  }
}

/* Operational workspace: dispatch ledger, kitchen production, equipment return. */
.ct-work,
.ct-settings {
  padding-top: 46px;
  padding-bottom: 76px;
}
.ct-work-heading,
.ct-settings-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding-bottom: 38px;
}
.ct-work-heading h1,
.ct-settings-top h1 {
  font-size: clamp(38px, 4.3vw, 62px);
  letter-spacing: -0.055em;
  line-height: 1.03;
  margin: 18px 0;
}
.ct-work-heading p,
.ct-settings-top p {
  color: var(--muted);
  max-width: 580px;
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
}
.ct-work-heading > div:last-child,
.ct-settings-top > div:last-child {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.ct-work-status {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-block: 1px solid var(--line);
  padding: 24px 0;
}
.ct-work-status > span {
  display: flex;
  align-items: center;
  gap: 15px;
  padding-inline: 24px;
  border-right: 1px solid var(--line);
  font-size: 14px;
  color: var(--muted);
}
.ct-work-status > span:first-child {
  padding-left: 0;
}
.ct-work-status > span:last-child {
  border: 0;
}
.ct-work-status strong {
  font-size: 36px;
  line-height: 1;
  font-weight: 400;
  color: var(--wine);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.04em;
}
.ct-work-tabs,
.ct-desk-tabs {
  display: flex;
  gap: 32px;
  border-bottom: 1px solid var(--line);
  margin: 26px 0 32px;
  overflow: auto;
}
.ct-work-tabs button,
.ct-desk-tabs button {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  padding: 15px 0;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  border-radius: 0;
}
.ct-work-tabs button[aria-pressed="true"],
.ct-desk-tabs button[aria-pressed="true"] {
  color: var(--wine);
  border-color: var(--wine);
}
.ct-inbox {
  background: #f5edef;
  border: 1px solid #e6d8dc;
  padding: 30px;
  margin-bottom: 44px;
}
.ct-work h2 {
  font-size: 30px;
  letter-spacing: -0.04em;
  line-height: 1.15;
  margin: 10px 0 24px;
}
.ct-work h3 {
  font-size: 21px;
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 7px 0 10px;
}
.ct-inbox article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  border-top: 1px solid #ddcbd0;
  padding-top: 22px;
  margin-top: 22px;
}
.ct-inbox article > div:first-child > span {
  font-size: 13px;
  color: var(--wine);
}
.ct-inbox p {
  font-size: 14px;
  color: var(--muted);
  margin: 8px 0;
}
.ct-inbox article > div:last-child {
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 30px;
  align-items: center;
}
.ct-inbox strong {
  font-size: 24px;
  font-weight: 400;
}
.ct-inbox small {
  font-size: 12px;
  color: var(--muted);
  grid-column: 1;
  grid-row: 2;
}
.ct-inbox .ct-button {
  grid-column: 2;
  grid-row: 1 / span 2;
}
.ct-inbox article .ct-text {
  grid-column: 2;
  margin-top: 5px;
}
.ct-dispatch-list {
  border-top: 1px solid var(--line);
}
.ct-dispatch-list article {
  display: grid;
  grid-template-columns: 90px 1fr 145px 200px;
  align-items: center;
  gap: 26px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.ct-dispatch-time {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  color: var(--wine);
}
.ct-dispatch-time strong {
  font-size: 44px;
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.1;
}
.ct-dispatch-time span {
  font-size: 13px;
}
.ct-dispatch-time small {
  font-size: 12px;
  color: var(--muted);
  margin-top: 8px;
}
.ct-work-badge {
  font-size: 12px;
  display: inline-block;
  padding: 4px 8px;
  background: #eef1e9;
  color: #43513b;
  border-radius: 3px;
}
.ct-dispatch-main p,
.ct-dispatch-main > span:last-child {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 6px;
}
.ct-dispatch-progress {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ct-dispatch-progress > span,
.ct-dispatch-progress small {
  font-size: 12px;
  color: var(--muted);
}
.ct-dispatch-progress strong {
  font-size: 22px;
  font-weight: 400;
}
.ct-dispatch-progress progress {
  width: 100%;
  height: 5px;
  accent-color: var(--wine);
  margin-top: 8px;
}
.ct-dispatch-action {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-end;
}
.ct-dispatch-action strong {
  font-size: 23px;
  font-weight: 400;
  white-space: nowrap;
}
.ct-dispatch-action .ct-button {
  font-size: 14px;
  width: 100%;
  padding: 12px;
}
.ct-completed {
  margin-top: 28px;
}
.ct-completed summary {
  color: var(--muted);
  cursor: pointer;
  min-height: 44px;
}
.ct-completed > button {
  display: block;
}
.ct-kitchen > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
}
.ct-kitchen > header p {
  color: var(--muted);
  margin: -10px 0 24px;
}
.ct-kitchen > header .ct-field {
  min-width: 220px;
}
.ct-kitchen-banner {
  display: flex;
  gap: 40px;
  padding: 18px 24px;
  background: var(--wine);
  color: var(--accent-ink, #fff);
  font-size: 15px;
}
.ct-table-scroll {
  overflow-x: auto;
}
.ct-kitchen-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 650px;
  text-align: left;
  font-size: 15px;
}
.ct-kitchen-table th {
  padding: 15px 20px;
  font-weight: 400;
  font-size: 12px;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
}
.ct-kitchen-table td {
  padding: 20px;
  border-bottom: 1px solid var(--line);
  font-variant-numeric: tabular-nums;
}
.ct-kitchen-table td:first-child {
  width: 48%;
}
.ct-kitchen-table strong {
  font-weight: 500;
}
.ct-kitchen-table small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 5px;
}
.ct-kitchen-orders {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 28px;
}
.ct-order-desk {
  margin-top: 22px;
  border: 1px solid var(--line);
  background: white;
}
.ct-order-desk > header {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  padding: 30px;
  background: #f7f3ef;
}
.ct-order-desk > header h2 {
  margin: 8px 0;
}
.ct-order-desk > header p {
  font-size: 14px;
  color: var(--muted);
  margin: 0;
}
.ct-order-desk > header > div:last-child {
  display: flex;
  flex-direction: column;
  max-width: 280px;
  gap: 8px;
  align-self: center;
  font-size: 14px;
}
.ct-order-desk > header strong {
  font-size: 22px;
  font-weight: 400;
}
.ct-order-desk > header span {
  color: var(--muted);
}
.ct-desk-route {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.3fr;
  padding: 24px 30px;
  gap: 25px;
  border-bottom: 1px solid var(--line);
}
.ct-desk-route > div {
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.ct-desk-route span {
  color: var(--muted);
  font-size: 12px;
}
.ct-desk-route strong {
  font-size: 20px;
  font-weight: 400;
}
.ct-desk-route .ct-field {
  margin-bottom: 0;
}
.ct-desk-tabs {
  margin: 0 30px;
}
.ct-desk-content {
  padding: 30px;
}
.ct-plain-fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
.ct-desk-intro {
  max-width: 750px;
  margin-bottom: 25px;
}
.ct-desk-intro p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
}
.ct-production-list > div,
.ct-packing-list > div {
  display: grid;
  grid-template-columns: 24px minmax(min(100%, 160px), 1fr) 115px 115px 100px;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}
.ct-production-list > div > span,
.ct-packing-list > div > span {
  color: var(--muted);
  font-size: 12px;
  align-self: center;
}
.ct-production-list strong,
.ct-packing-list strong {
  font-weight: 500;
  font-size: 15px;
}
.ct-production-list small,
.ct-packing-list small {
  display: block;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
  margin-top: 4px;
}
.ct-production-list .ct-field,
.ct-packing-list .ct-field {
  margin: 0;
}
.ct-production-list .ct-field > span,
.ct-packing-list .ct-field > span {
  font-size: 12px;
}
.ct-production-list .ct-check,
.ct-packing-list .ct-check {
  font-size: 13px;
}
.ct-quantity-needed strong {
  font-size: 23px;
}
.ct-team-desk {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.ct-work-checks {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 14px;
  margin: 24px 0;
}
.ct-brief-note {
  padding: 20px;
  background: #f7f3ef;
  font-size: 14px;
}
.ct-brief-note strong {
  font-weight: 500;
}
.ct-brief-note p {
  color: var(--muted);
  line-height: 1.6;
  white-space: pre-wrap;
}
.ct-agreed {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 55px;
}
.ct-agreed > div > h3 {
  font-size: 44px;
  line-height: 1.1;
  letter-spacing: -0.06em;
  margin: 14px 0 22px;
}
.ct-agreed p {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
}
.ct-agreed summary {
  font-size: 14px;
  cursor: pointer;
  min-height: 44px;
  margin-top: 24px;
}
.ct-agreed dl {
  margin: 0;
}
.ct-agreed dl > div {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  border-bottom: 1px solid var(--line);
  padding: 14px 0;
  font-size: 14px;
}
.ct-agreed dd {
  margin: 0;
  white-space: nowrap;
}
.ct-agreed dt small {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.ct-desk-save {
  border-top: 1px solid var(--line);
  padding-top: 24px;
  margin-top: 25px;
  display: flex;
  gap: 22px;
  align-items: center;
}
.ct-desk-save p {
  font-size: 14px;
  color: var(--wine);
}
.ct-calendar-work {
  max-width: 940px;
}
.ct-calendar-work > header h2 {
  font-size: 38px;
}
.ct-calendar-work > header p {
  color: var(--muted);
  max-width: 630px;
}
.ct-calendar-work > fieldset > .ct-edit-grid {
  margin-top: 28px;
}
.ct-calendar-work fieldset > h3 {
  margin-top: 28px;
}
.ct-block-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 15px;
  align-items: end;
  border-top: 1px solid var(--line);
  padding: 18px 0;
}
.ct-block-row .ct-field {
  margin: 0;
}
.ct-block-row .ct-text {
  align-self: center;
}
.ct-reservations {
  padding: 24px;
  background: #f7f3ef;
  margin-top: 32px;
}
.ct-reservations p {
  font-size: 14px;
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
}
.ct-settings-top h1 {
  max-width: 650px;
}
.ct-settings-top em {
  font-style: normal;
  color: var(--wine);
}
.ct-settings-layout {
  display: grid;
  grid-template-columns: 215px minmax(0, 1fr);
  gap: 65px;
  border-top: 1px solid var(--line);
  padding-top: 36px;
}
.ct-settings-layout > nav {
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 20px;
  align-self: start;
}
.ct-settings-layout > nav > a {
  display: flex;
  gap: 15px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  min-height: 56px;
}
.ct-settings-layout > nav > a span {
  color: #97868b;
  font-size: 12px;
}
.ct-edit-section {
  scroll-margin-top: 24px;
  border-bottom: 1px solid var(--line);
  padding: 0 0 42px;
  margin-bottom: 44px;
}
.ct-edit-section > header {
  margin-bottom: 28px;
}
.ct-edit-section h2 {
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1.15;
  margin: 12px 0;
}
.ct-edit-section h2 em {
  color: var(--wine);
  font-style: normal;
}
.ct-edit-section h3 {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.03em;
  margin: 28px 0 22px;
}
.ct-edit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 24px;
}
.ct-checkbox-grid {
  display: flex;
  gap: 15px 24px;
  flex-wrap: wrap;
  font-size: 14px;
  margin: 20px 0 28px;
}
.ct-edit-check {
  display: flex;
  align-items: center;
  margin-bottom: 18px;
  font-size: 14px;
}
.ct-editor-menu-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 30px;
}
.ct-editor-menu-list > button:not(.ct-button) {
  text-align: left;
  padding: 17px 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
}
.ct-editor-menu-list > button[aria-pressed="true"] {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--accent-ink, #fff);
}
.ct-editor-menu-list span {
  display: block;
  font-size: 11px;
  margin-bottom: 8px;
  opacity: 0.75;
}
.ct-editor-menu-list strong {
  font-size: 14px;
  font-weight: 500;
}
.ct-editor-menu-list .ct-button {
  grid-column: 1 / -1;
  font-size: 14px;
  background: transparent;
}
.ct-menu-editor > .ct-check {
  margin-bottom: 26px;
  font-size: 14px;
}
.ct-edit-media {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 24px;
  margin: 16px 0 36px;
}
.ct-edit-media > div > img {
  width: 100%;
  aspect-ratio: 1.5;
  object-fit: cover;
  border-radius: 4px;
  margin-bottom: 12px;
}
.ct-edit-media h3 {
  margin-top: 0;
}
.ct-edit-gallery {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.ct-edit-gallery figure {
  position: relative;
  margin: 0;
  width: 84px;
  height: 68px;
}
.ct-edit-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 3px;
}
.ct-edit-gallery button {
  position: absolute;
  right: -4px;
  top: -8px;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--wine);
}
.ct-media-empty {
  aspect-ratio: 1.5;
  background: #f7f3ef;
  display: grid;
  place-items: center;
  font-size: 14px;
  margin-bottom: 12px;
}
.ct-editor-details {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 0 22px;
  margin-top: 18px;
  background: #fff;
}
.ct-editor-details > summary {
  cursor: pointer;
  font-size: 16px;
  padding: 20px 0;
  min-height: 60px;
}
.ct-editor-details[open] {
  padding-bottom: 24px;
}
.ct-dish-editor,
.ct-equipment-editor {
  border-top: 1px solid var(--line);
  padding: 22px 0 10px;
}
.ct-editor-row-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  margin-bottom: 18px;
  color: var(--wine);
  font-size: 13px;
}
.ct-editor-row-head button {
  background: #f7f3f5;
  color: var(--wine);
  border: 1px solid var(--line);
  padding: 10px 12px;
  min-height: 42px;
  border-radius: 4px;
}
.ct-editor-row-head > div {
  display: flex;
  gap: 8px;
}
.ct-settings-save {
  padding: 24px;
  background: #f7f3ef;
  border: 1px solid var(--line);
}
.ct-settings-save .ct-feedback {
  margin-bottom: 18px;
}
.ct-settings-save > p {
  font-size: 14px;
  color: var(--wine);
}
@media (max-width: 1050px) {
  .ct-work-heading,
  .ct-settings-top {
    align-items: flex-start;
  }
  .ct-dispatch-list article {
    grid-template-columns: 75px 1fr 175px;
    gap: 20px;
  }
  .ct-dispatch-progress {
    display: none;
  }
  .ct-settings-layout {
    grid-template-columns: 170px 1fr;
    gap: 30px;
  }
  .ct-production-list > div,
  .ct-packing-list > div {
    grid-template-columns: 20px minmax(min(100%, 120px), 1fr) 95px 95px 80px;
    gap: 12px;
  }
  .ct-inbox article > div:last-child {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .ct-inbox .ct-button,
  .ct-inbox article .ct-text {
    grid-column: 1;
    grid-row: auto;
  }
  .ct-inbox small {
    grid-row: auto;
  }
  .ct-inbox .ct-button {
    margin-top: 6px;
  }
  .ct-team-desk {
    gap: 30px;
  }
  .ct-desk-route {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  .ct-desk-route > .ct-field {
    grid-column: 1 / -1;
    max-width: 300px;
  }
  .ct-work-status > span {
    padding-inline: 16px;
    font-size: 12px;
  }
  .ct-edit-media {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 760px) {
  .ct-work,
  .ct-settings {
    padding-top: 30px;
    padding-bottom: 45px;
  }
  .ct-work-heading,
  .ct-settings-top {
    flex-direction: column;
    gap: 24px;
  }
  .ct-work-heading h1,
  .ct-settings-top h1 {
    font-size: 44px;
  }
  .ct-work-heading p,
  .ct-settings-top p {
    font-size: 14px;
  }
  .ct-work-heading > div:last-child,
  .ct-settings-top > div:last-child {
    width: 100%;
    align-items: stretch;
  }
  .ct-work-status {
    padding: 18px 0;
    gap: 12px;
  }
  .ct-work-status > span {
    padding: 0 12px 0 0;
    gap: 9px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-size: 11px;
    line-height: 1.5;
  }
  .ct-work-status strong {
    font-size: 28px;
  }
  .ct-work-tabs {
    gap: 22px;
    margin-top: 15px;
  }
  .ct-work-tabs button {
    font-size: 14px;
  }
  .ct-inbox {
    padding: 22px;
  }
  .ct-inbox article {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .ct-inbox article > div:last-child {
    width: 100%;
    grid-template-columns: 1fr 1fr;
    column-gap: 15px;
  }
  .ct-inbox small {
    grid-row: 2;
  }
  .ct-inbox .ct-button {
    grid-column: 2;
    grid-row: 1 / span 2;
    font-size: 13px;
    padding: 12px;
  }
  .ct-inbox article .ct-text {
    grid-column: 2;
    font-size: 12px;
  }
  .ct-dispatch-list article {
    grid-template-columns: 62px 1fr;
    gap: 15px;
  }
  .ct-dispatch-time strong {
    font-size: 37px;
  }
  .ct-dispatch-action {
    grid-column: 2;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .ct-dispatch-action .ct-button {
    width: auto;
  }
  .ct-dispatch-action strong {
    font-size: 20px;
  }
  .ct-work h2 {
    font-size: 27px;
  }
  .ct-kitchen > header {
    flex-direction: column;
    gap: 0;
  }
  .ct-kitchen > header .ct-field {
    width: 100%;
  }
  .ct-kitchen-banner {
    gap: 20px;
    padding: 16px;
    font-size: 13px;
  }
  .ct-kitchen-table td,
  .ct-kitchen-table th {
    padding: 16px 12px;
  }
  .ct-order-desk > header {
    flex-direction: column;
    gap: 18px;
    padding: 22px;
  }
  .ct-order-desk > header > div:last-child {
    align-self: flex-start;
    max-width: none;
  }
  .ct-desk-route {
    padding: 22px;
    grid-template-columns: 1fr 1fr;
  }
  .ct-desk-route > .ct-field {
    grid-column: auto;
  }
  .ct-desk-route strong {
    font-size: 17px;
  }
  .ct-desk-tabs {
    margin: 0 22px;
    gap: 24px;
    font-size: 14px;
  }
  .ct-desk-content {
    padding: 22px;
  }
  .ct-production-list > div,
  .ct-packing-list > div {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
  }
  .ct-production-list > div > span,
  .ct-packing-list > div > span {
    display: none;
  }
  .ct-production-list > div > div:nth-child(2),
  .ct-packing-list > div > div:nth-child(2) {
    grid-column: 1 / -1;
  }
  .ct-production-list .ct-check,
  .ct-packing-list .ct-check {
    align-self: end;
    min-height: 47px;
    align-items: center;
  }
  .ct-team-desk,
  .ct-agreed {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ct-desk-save {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }
  .ct-desk-save .ct-button {
    width: 100%;
  }
  .ct-block-row {
    grid-template-columns: 1fr 1fr;
  }
  .ct-reservations {
    padding: 18px;
  }
  .ct-settings-layout {
    grid-template-columns: 1fr;
    gap: 28px;
    padding-top: 15px;
  }
  .ct-settings-layout > nav {
    position: static;
    flex-direction: row;
    overflow-x: auto;
    gap: 24px;
  }
  .ct-settings-layout > nav > a {
    flex-shrink: 0;
    gap: 8px;
    font-size: 13px;
  }
  .ct-edit-section h2 {
    font-size: 29px;
  }
  .ct-edit-grid {
    gap: 0 16px;
  }
  .ct-edit-section {
    padding-bottom: 32px;
    margin-bottom: 32px;
  }
  .ct-editor-menu-list {
    grid-template-columns: 1fr;
  }
  .ct-editor-menu-list > button:not(.ct-button) {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .ct-editor-menu-list span {
    margin: 0;
    min-width: 90px;
  }
  .ct-edit-media {
    gap: 20px;
    grid-template-columns: 1fr;
  }
  .ct-edit-media > div > img {
    max-height: 280px;
  }
  .ct-editor-details {
    padding: 0 16px;
  }
  .ct-editor-details > summary {
    font-size: 15px;
  }
  .ct-editor-row-head {
    align-items: flex-start;
  }
  .ct-editor-row-head > div {
    gap: 5px;
  }
  .ct-settings-save {
    padding: 20px;
  }
  .ct-settings-save > .ct-button {
    width: 100%;
  }
}
@media (max-width: 400px) {
  .ct-work-heading h1,
  .ct-settings-top h1 {
    font-size: 38px;
  }
  .ct-inbox article > div:last-child {
    grid-template-columns: 1fr;
  }
  .ct-inbox .ct-button,
  .ct-inbox article .ct-text {
    grid-column: 1;
    grid-row: auto;
  }
  .ct-inbox .ct-button {
    margin-top: 10px;
  }
  .ct-dispatch-action {
    align-items: flex-start;
    flex-direction: column;
  }
  .ct-desk-content,
  .ct-order-desk > header,
  .ct-desk-route {
    padding: 16px;
  }
  .ct-desk-tabs {
    margin-inline: 16px;
  }
  .ct-edit-grid {
    grid-template-columns: 1fr;
  }
  .ct-kitchen-banner {
    gap: 12px;
    font-size: 12px;
  }
  .ct-production-list > div,
  .ct-packing-list > div {
    gap: 10px;
  }
  .ct-production-list .ct-field > span,
  .ct-packing-list .ct-field > span {
    font-size: 11px;
  }
  .ct-editor-menu-list > button:not(.ct-button) {
    gap: 10px;
  }
  .ct-editor-menu-list strong {
    font-size: 13px;
  }
}
.ct-calendar-block {
  border-top: 1px solid var(--line);
  padding: 22px 0;
  margin-bottom: 12px;
}
.ct-calendar-block > .ct-field {
  max-width: 420px;
}
.ct-reservation {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 1px solid var(--line);
  padding: 18px 0;
  font-size: 14px;
}
.ct-reservation span {
  color: var(--muted);
}
.ct-reservation strong {
  font-weight: 500;
}


/* Две обёртки пакета остались без правил: сама секция «Подтверждено» и
   строка подсказки под формой. Задаём им минимум, чтобы колонка не
   схлопывалась, а подсказка читалась приглушённой. */
.ct-module .ct-dispatch {
  min-width: 0;
}
.ct-module .ct-form-note {
  color: var(--muted);
  font-size: 0.9rem;
  margin-top: 10px;
}

/* Переходы к меню стали ссылками (требование самого пакета: такие переходы
   должны быть индексируемыми). Стили пакета написаны на button — повторяем
   их для ссылки, чтобы вид не изменился. */
.ct-module a.ct-menu-photo {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  position: relative;
  cursor: pointer;
}
.ct-module .ct-menu-info h3 a {
  cursor: pointer;
  text-decoration: none;
}

/* Подпись формата лежит поверх фотографии белым по прозрачному: на светлом
   снимке она пропадает, и контраст держится на самой картинке. Ставим
   непрозрачную плашку — читаемость перестаёт зависеть от фото. */
.ct-module .ct-format-caption {
  background: #2c2523;
  border-radius: 10px;
  padding: 14px 18px;
  right: 30px;
  max-width: 520px;
}

/* ——— Наши правки поверх пакета ———
   Шрифт берём общий: своего @font-face раздел не заводит. */
.ct-module { min-width: 0; max-width: 100%; font-family: var(--font-ui, Onest), Arial, sans-serif; }

/* Наша обёртка полей настроек: fieldset нужен, чтобы на время сохранения
   разом выключить ввод, но собственных отступов у него быть не должно. */
.ct-module .ct-settings-fields {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.ct-module .ct-settings-fields:disabled { opacity: 0.6; }

/* Цвет текста на кнопках. В общем наборе направлений у ссылок
   `color: inherit`, и он весит больше правил пакета в один класс — белая
   надпись на винной кнопке становилась тёмной. Возвращаем явно. */
.ct-module .ct-button,
.ct-module a.ct-button { color: #fff; }
.ct-module .ct-button.ct-secondary,
.ct-module a.ct-button.ct-secondary { color: var(--wine); }

/* Блоки «Кому отвечать?» и «Собираете мероприятие целиком?» приходят из
   общего файла направлений и там прижаты к краям экрана (padding 4%).
   Композиция раздела стоит в своей колонке, и контакты уезжали левее
   остального — как чужая вставка. Ставим их в ту же колонку. */
.ct-module .vu-contacts {
  width: min(1400px, calc(100% - 112px));
  margin-inline: auto;
  padding-inline: 0;
}
@media (max-width: 900px) {
  .ct-module .vu-contacts { width: min(1400px, calc(100% - 40px)); }
}
/* Название меню вводит сам исполнитель: одно длинное слово без пробелов раздвигало
   карточку и всю страницу шире экрана телефона. Переносим внутри слова. */
.ct-menu-info h3 { overflow-wrap: anywhere; }

/* Shared label/control/hint rows keep multiline captions aligned. */
@supports (grid-template-rows: subgrid) {
.ct-edit-grid > label.ct-field {
  display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 8px; align-content: start;
}
.ct-edit-grid > label.ct-field > :is(input, select, textarea) { align-self: start; }
}

/* Flexible catering menu: packages, a dish catalogue, private source review. */
.ct-menu-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:16px 0 24px; }
.ct-catalog-tools { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:20px; margin-bottom:28px; }
.ct-catalog-tools .ct-field { margin:0; }
.ct-catalog-edit { border-top:1px solid var(--line); padding-top:12px; }
.ct-catalog-photo { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin:24px 0; }
.ct-catalog-photo img { width:180px; height:135px; object-fit:cover; border-radius:6px; }
.ct-source-privacy { background:#f6f2ee; border-left:3px solid var(--wine); padding:16px 20px; font-size:14px; line-height:1.6; }
.ct-source-list { margin-top:28px; }
.ct-source-list > article { display:flex; align-items:start; justify-content:space-between; flex-wrap:wrap; gap:16px; border-top:1px solid var(--line); padding:22px 0; }
.ct-source-list > article > div { min-width:0; }
.ct-source-list strong, .ct-source-list a, .ct-admin-menus h2 { overflow-wrap:anywhere; }
.ct-source-list p { font-size:13px; color:#665a60; margin:6px 0; }
.ct-source-list .ct-menu-actions { margin:0; }
.ct-source-list a, .ct-custom-request a { text-decoration:underline; text-underline-offset:4px; }
.ct-source-list .ct-button { min-height:44px; }
.ct-public-catalog, .ct-custom-request, .ct-catalog-providers { padding-top:70px; padding-bottom:70px; border-top:1px solid var(--line); }
.ct-public-catalog > header, .ct-custom-request > header { max-width:750px; margin-bottom:32px; }
.ct-public-catalog h2, .ct-custom-request h2, .ct-catalog-providers h2 { font-size:clamp(28px,3.5vw,46px); font-weight:400; letter-spacing:-.035em; line-height:1.15; margin:14px 0 20px; }
.ct-public-catalog p, .ct-custom-request p { line-height:1.6; color:#63585d; }
.ct-course-nav a { padding:12px 0; min-height:44px; display:inline-flex; align-items:center; }
.ct-catalog-category { margin:40px 0; scroll-margin-top:24px; }
.ct-catalog-category h3 { font-size:26px; font-weight:500; margin:0 0 22px; }
.ct-catalog-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 36px; }
.ct-catalog-card { display:grid; grid-template-columns:120px minmax(0,1fr); gap:22px; border-top:1px solid var(--line); padding:24px 0; }
.ct-catalog-card.ct-no-photo { grid-template-columns:1fr; }
.ct-catalog-card img { width:120px; height:120px; object-fit:cover; border-radius:6px; }
.ct-catalog-card h4 { font-size:20px; font-weight:500; line-height:1.3; margin:0 0 8px; overflow-wrap:anywhere; }
.ct-catalog-card p { margin:0 0 12px; font-size:14px; overflow-wrap:anywhere; white-space:pre-line; }
.ct-catalog-card small { font-size:12px; color:#63585d; }
.ct-catalog-price { display:flex; flex-direction:column; gap:5px; margin-top:16px; }
.ct-catalog-price strong { font-size:20px; color:var(--wine); font-weight:500; }
.ct-catalog-price span { font-size:13px; color:#63585d; }
.ct-custom-request form { max-width:800px; }
.ct-custom-request .ct-check { margin-bottom:24px; }
.ct-catalog-company { display:grid; grid-template-columns:minmax(0,760px) minmax(0,300px); align-items:start; justify-content:space-between; gap:36px; padding:32px 0 0; }
.ct-catalog-company > div { min-width:0; }
.ct-catalog-company h1 { font-size:clamp(30px,3.5vw,46px); line-height:1.12; letter-spacing:-.035em; margin:14px 0 12px; }
/* Обложка компании — кадр, а не миниатюра в серой рамке: вертикальное фото
   в contain-блоке 225 px превращалось в узкую полоску. */
.ct-catalog-company > .ct-catalog-company-photo { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; background:#f7f5f2; }
.ct-catalog-company .public-prose { margin-top:20px; }
.ct-catalog-company > div > .ct-text { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; }
.ct-profile.ct-catalog-only { padding-bottom:32px; }
.ct-catalog-only + .ct-public-catalog { padding-top:32px; }
@media(max-width:650px) {
  .ct-catalog-company { grid-template-columns:1fr; gap:24px; padding-top:24px; }
  .ct-catalog-company > .ct-catalog-company-photo { aspect-ratio:3/2; }
}
.ct-catalog-provider-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:30px; }
.ct-catalog-provider-list article { border-top:1px solid var(--line); padding-top:20px; }
.ct-catalog-provider-list h3 { font-size:24px; font-weight:400; }
.ct-catalog-provider-list p { font-size:14px; line-height:1.6; }
.ct-catalog-provider-list span { font-size:13px; color:var(--wine); }
.ct-admin-menus .ct-edit-section { margin-top:40px; }
.ct-admin-menus .ct-public-catalog { width:100%; padding:24px 0; }
.ct-admin-menus .ct-public-catalog > header, .ct-admin-menus .ct-public-catalog > nav { display:none; }
.ct-import-package { border-top:1px solid var(--line); padding:20px 0; }
.ct-import-package h4 { font-size:22px; margin:0 0 12px; font-weight:500; }
.ct-import-package p { white-space:pre-line; }
.ct-module input[type=file] { max-width:100%; font-size:14px; padding:12px; }
.ct-module input[type=file]::file-selector-button { border:1px solid var(--line); background:#f6f2ee; padding:10px; margin-right:12px; cursor:pointer; }
.ct-module .ct-catalog-tools select { width:100%; text-overflow:ellipsis; }
@media (max-width:1000px) {
  .ct-catalog-list { grid-template-columns:1fr; }
  .ct-catalog-provider-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .ct-catalog-tools, .ct-catalog-provider-list { grid-template-columns:1fr; }
  .ct-catalog-card { grid-template-columns:88px minmax(0,1fr); gap:16px; }
  .ct-catalog-card img { width:88px; height:100px; }
  .ct-public-catalog, .ct-custom-request, .ct-catalog-providers { padding-top:42px; padding-bottom:42px; }
  .ct-menu-actions .ct-button { font-size:13px; padding:12px 14px; }
  .ct-source-list .ct-menu-actions { width:100%; }
  .ct-catalog-company h1 { font-size:34px; }
}
.ct-menu-catalog-link { margin:0 0 24px; }
.ct-menu-catalog-link a { display:inline-flex; align-items:center; min-height:44px; color:var(--wine); text-decoration:underline; text-underline-offset:5px; }
/* Native controls must be allowed to shrink inside the label subgrid. */
.ct-field :is(input, select, textarea) { min-width:0; max-width:100%; }
.ct-settings-layout > div { min-width:0; }
/* User-authored menu names can contain a single long word. */
.ct-editor-menu-list > button { min-width:0; }
.ct-editor-menu-list strong { min-width:0; overflow-wrap:anywhere; }

/* Price editing: the paired cabinet switch is above this screen; reach menus quickly. */
.ct-settings-top { gap: 24px; margin-bottom: 24px; }
.ct-settings-top h1 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; }
.ct-settings-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 20px; }
.ct-settings-nav summary { cursor: pointer; font-size: 14px; padding: 12px 0; }
.ct-settings-nav nav { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 8px 0; }
.ct-settings-nav nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
.ct-settings [aria-label="Форматы цен"] button[aria-pressed="true"] small { color: inherit; opacity: 1; }
@media (max-width: 760px) {
  .ct-settings-top { gap: 16px; }
  .ct-settings-top > div:last-child { gap: 12px; }
  .ct-settings-layout { gap: 16px; }
  .ct-settings-nav nav { flex-direction: column; gap: 0; }
}

/* A menu can be compared without oversized headings or empty introductory space. */
.ct-profile .ct-company-heading { margin-block:24px; padding-block:0; gap:24px; }
.ct-profile .ct-company-heading h1 { font-size:clamp(30px,3.5vw,46px); line-height:1.12; letter-spacing:-1px; }
.ct-profile .ct-company-heading p:empty { display:none; }
.ct-profile .ct-menu-feature { margin-top:20px; }
.ct-profile .ct-feature-copy h2 { font-size:28px; }
.ct-profile .ct-profile-nav { margin-bottom:24px; }
@media(max-width:650px) { .ct-profile .ct-company-heading { margin-block:16px 24px; gap:18px; }.ct-profile .ct-feature-copy h2 { font-size:24px; } }

/* r87: за секцией цен сразу идут свёрнутые «Дополнительные возможности» со
   своей верхней линией — вторая линия и 120 px пустоты между ними убраны. */
.ct-edit-section:has(+ details) { border-bottom: 0; padding-bottom: 12px; margin-bottom: 0; }

/* Верхняя строка страницы компании на телефоне: город и подпись — отдельной
   строкой под «← Кейтеринг и меню», без переноса «·» в конец строки (аудит 01.10). */
@media (max-width: 620px) {
  .ct-profile .ct-profile-nav { flex-direction: column; align-items: flex-start; gap: 6px; }
  .ct-profile .ct-profile-nav > span { text-align: left; font-size: 13px; }
}

/* Catering search: our editorial cover, separate from provider portfolios. */
.ct-search-intro.ct-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: 40px; }
.ct-search-intro h1 { font-size: clamp(2.6rem, 4.7vw, 4.6rem); }
.ct-search-intro h1 br { display: block; }
.ct-search-intro .ct-search-cover { position: relative; display: flex; align-items: end; min-width: 0; height: clamp(240px, 23vw, 320px); overflow: hidden; border-radius: 4px; margin: 0; padding: 26px; background: #30241f; }
.ct-search-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ct-search-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, rgba(24, 17, 14, .25) 45%, rgba(24, 17, 14, .9) 100%); }
.ct-search-intro .ct-search-cover p { position: relative; z-index: 1; display: block; color: #fff; white-space: normal; font-size: 14px; line-height: 1.65; margin: 0; }
@media (max-width: 900px) {
  .ct-search-intro.ct-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ct-search-intro .ct-search-cover { height: 240px; }
}
@media (max-width: 600px) {
  .ct-search-intro .ct-search-cover { height: 210px; padding: 20px; }
  .ct-search-intro h1 { font-size: clamp(2.3rem, 9vw, 3.4rem); }
}

/* Keep the amount readable when the adjacent pricing explanation wraps. */
.ct-food-price { flex-wrap: wrap; }
.ct-food-price strong { white-space: nowrap; flex-shrink: 0; }

/* Native date/time values need the full column on narrow phones. */
@media (max-width: 360px) {
  .ct-form-pair:has(input[type="date"]) {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* System night palette. Light layout and photographic artwork stay unchanged. */
@media (prefers-color-scheme: dark) {
.ct-button{background:var(--theme-fill)}
.ct-button.ct-secondary{border-color:var(--theme-line-strong)}
.ct-button.ct-secondary:hover{background:var(--theme-surface-2)}
.ct-field input,
.ct-field select,
.ct-field textarea{background:var(--theme-surface);border:1px solid var(--theme-line-strong)}
.ct-feedback{background:var(--theme-surface);color:var(--theme-accent)}
.ct-empty{background:var(--theme-surface)}
.ct-file-label{border:1px solid var(--theme-line-strong)}
.ct-file-label:focus-within{outline:3px solid var(--theme-line-strong)}
.ct-dialog{background:var(--theme-surface);color:var(--theme-ink)}
.ct-dialog > header{background:var(--theme-surface);border-bottom:1px solid var(--theme-line-strong)}
.ct-dialog > header button{background:var(--theme-surface-2);color:var(--theme-accent);border:1px solid var(--theme-line-strong)}
.ct-calendar{background:var(--theme-surface)}
.ct-calendar-top button{background:var(--theme-surface)}
.ct-days button{background:var(--theme-surface)}
.ct-days button.busy{background:var(--theme-surface-2)}
.ct-days button[aria-pressed="true"]{background:var(--theme-fill)}
.ct-module{--wine:var(--theme-accent);--ink:var(--theme-ink);--muted:var(--theme-muted);--line:var(--theme-line);background:var(--theme-surface);--bg:var(--theme-surface);--surface:var(--theme-surface);--surface-2:var(--theme-surface-2);--surface-3:var(--theme-surface-3);--line-strong:var(--theme-line-strong);--accent:var(--theme-accent);--accent-fill:var(--theme-fill);--accent-fill-hover:var(--theme-fill-hover);--accent-soft:var(--theme-tint);--accent-hover:var(--theme-accent-hover);--ok:var(--theme-ok);--warn:var(--theme-warn);--danger:var(--theme-danger)}
.ct-module :focus-visible{outline:3px solid var(--theme-line-strong)}
.ct-preview-nav{background:var(--theme-surface-2)}
.ct-preview-nav button[aria-pressed="true"]{background:var(--theme-surface);border-color:var(--theme-line-strong)}
.ct-format-selector button{background:var(--theme-surface)}
.ct-format-selector button[aria-pressed="true"]{background:var(--theme-fill)}
.ct-photo-empty{background:var(--theme-surface-2)}
.ct-search{border:1px solid var(--theme-line-strong);background:var(--theme-surface)}
.ct-service-choice button,
.ct-order-services button{background:var(--theme-surface)}
.ct-service-choice button[aria-pressed="true"],
.ct-order-services button[aria-pressed="true"]{border-color:var(--theme-line-strong);background:var(--theme-surface-2)}
.ct-radio{border:1px solid var(--theme-line-strong)}
.ct-module [aria-pressed="true"] > .ct-radio{background:var(--theme-surface)}
.ct-menu-photo{background:var(--theme-surface-2)}
.ct-menu-photo > span{background:var(--theme-surface)}
.ct-menu-info .ct-card-warning{border-left:2px solid var(--theme-line-strong)}
.ct-compare thead th{background:var(--theme-surface-2)}
.ct-service-story{background:var(--theme-surface)}
.ct-menu-book-nav button[aria-pressed="true"]{background:var(--theme-surface)}
.ct-feature-photo{background:var(--theme-surface-2)}
.ct-feature-photo > span{background:var(--theme-surface)}
.ct-feature-copy{background:var(--theme-surface)}
.ct-order{border:1px solid var(--theme-line-strong);background:var(--theme-surface)}
.ct-staff{background:var(--theme-surface-2)}
.ct-availability.ct-free{color:var(--theme-ink)}
.ct-availability.ct-busy{color:var(--theme-accent)}
.ct-breakdown > .ct-fee{background:var(--theme-surface)}
.ct-pending{background:var(--theme-surface)}
.ct-hospitality{background:var(--theme-surface)}
.ct-hospitality-times{border-block:1px solid var(--theme-line-strong)}
@media (max-width: 800px){.ct-mobile-total{background:var(--theme-surface)}}
@media (max-width: 600px){.ct-story-columns article{border-top:1px solid var(--theme-line-strong)}}
.ct-inbox{background:var(--theme-surface-2);border:1px solid var(--theme-line-strong)}
.ct-inbox article{border-top:1px solid var(--theme-line-strong)}
.ct-work-badge{background:var(--theme-surface-2);color:var(--theme-ink)}
.ct-kitchen-banner{background:var(--theme-fill)}
.ct-order-desk{background:var(--theme-surface)}
.ct-order-desk > header{background:var(--theme-surface-2)}
.ct-brief-note{background:var(--theme-surface-2)}
.ct-reservations{background:var(--theme-surface-2)}
.ct-settings-layout > nav > a span{color:var(--theme-muted)}
.ct-editor-menu-list > button:not(.ct-button){background:var(--theme-surface)}
.ct-editor-menu-list > button[aria-pressed="true"]{background:var(--theme-fill)}
.ct-edit-gallery button{background:var(--theme-surface)}
.ct-media-empty{background:var(--theme-surface-2)}
.ct-editor-details{background:var(--theme-surface)}
.ct-editor-row-head button{background:var(--theme-surface)}
.ct-settings-save{background:var(--theme-surface-2)}
.ct-source-privacy{background:var(--theme-surface-2)}
.ct-source-list p{color:var(--theme-muted)}
.ct-public-catalog p, .ct-custom-request p{color:var(--theme-muted)}
.ct-catalog-card small{color:var(--theme-muted)}
.ct-catalog-price span{color:var(--theme-muted)}
.ct-catalog-company > .ct-catalog-company-photo{background:var(--theme-surface-2)}
.ct-module input[type=file]::file-selector-button{background:var(--theme-surface-2)}
}
