/* ===========================================================
   «carte» — шаблон-меню ресторанной карты (LIGHT)
   Парадигма: страница = разворот меню. Подачи по разделам
   (римская нумерация), строки блюд с лидер-точками до цены,
   каллиграфический заголовок, панель-вкладка «винная карта».
   Namespace: .ct*   |   Шрифты: Sedan (display) + Instrument Sans
   Палитра задаётся токенами :root (--acc / --acc2) на сайт.
   =========================================================== */

:root{
  --acc:#0f5f8e;          /* основной акцент, hue задаётся сайтом */
  --acc-d:#0a4468;
  --acc-soft:#e4eff7;
  --acc2:#b32236;         /* второй акцент (сплит-комплементарный) */
  --acc2-soft:#f8e6e8;
  --paper:#ece5d7;        /* сукно стола */
  --card:#fbf8f2;         /* бумага карты */
  --card2:#f4efe4;        /* вложенная плашка */
  --ink:#17242c;
  --ink2:#5c6a72;
  --rule:#cabfa9;         /* лидер-точки, рамки */
  --rule2:#e3dbc9;
  --disp:"Sedan",Georgia,"Times New Roman",serif;
  --ui:"Instrument Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --w:1180px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  background-image:
    repeating-linear-gradient(45deg,rgba(23,36,44,.022) 0 2px,transparent 2px 7px),
    radial-gradient(120% 60% at 50% -10%,rgba(15,95,142,.10),transparent 60%);
  color:var(--ink);
  font-family:var(--ui);
  font-size:17px;
  line-height:1.62;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--acc)}
p{margin:0 0 14px}

.ct-skip{position:absolute;left:-9999px;top:0;z-index:80;background:var(--ink);color:#fff;padding:9px 15px}
.ct-skip:focus{left:8px;top:8px}

/* ---------- 1. верхняя планка (maître) ---------- */
.ct-bar{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;gap:14px;
  padding:8px clamp(12px,3.2vw,26px);
  background:rgba(23,36,44,.96);
  color:#f4efe4;
  border-bottom:2px solid var(--acc2);
}
.ct-mark{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;flex:none}
.ct-mark__mono{
  width:38px;height:38px;flex:none;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid rgba(244,239,228,.55);
  background:var(--acc);
  font-family:var(--disp);font-size:20px;line-height:1;padding-bottom:2px;
}
.ct-mark .ct-wm{display:block;font-family:var(--disp);font-weight:400;font-size:19px;letter-spacing:.02em}
.ct-mark small{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#b9c6cd}
.ct-nav{display:flex;gap:16px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.ct-nav a{color:#e6ded0;text-decoration:none;font-size:14px;letter-spacing:.03em;padding:6px 2px;border-bottom:1px solid transparent}
.ct-nav a:hover{border-bottom-color:var(--acc2)}
.ct-bar .ct-btn{margin-left:6px}

/* ---------- 2. кнопки-штампы ---------- */
.ct-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:11px 24px;
  font-family:var(--ui);font-size:15px;font-weight:600;letter-spacing:.02em;
  text-decoration:none;border-radius:2px;cursor:pointer;
  border:1px solid var(--acc2);background:var(--acc2);color:#fff;
  box-shadow:3px 3px 0 rgba(23,36,44,.18);
  transition:transform .12s ease,box-shadow .12s ease;
}
.ct-btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 rgba(23,36,44,.2)}
.ct-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 rgba(23,36,44,.2)}
.ct-btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule);box-shadow:none}
.ct-btn--ghost:hover{border-color:var(--acc);color:var(--acc);box-shadow:none;transform:none}
.ct-bar .ct-btn{min-height:40px;padding:8px 17px;font-size:14px;box-shadow:none}

/* ---------- 3. папка-карта ---------- */
.ct-folder{
  max-width:var(--w);margin:clamp(14px,3vw,34px) auto clamp(24px,5vw,58px);
  background:var(--card);
  border:1px solid var(--rule);
  outline:1px solid var(--rule);outline-offset:6px;   /* двойная рамка меню */
  padding:clamp(20px,4.4vw,54px) clamp(15px,4vw,58px);
  box-shadow:0 22px 48px -30px rgba(23,36,44,.55);
}

/* ---------- 4. первая подача (hero) ---------- */
.ct-head{text-align:center;padding-bottom:6px}
.ct-eyebrow{
  font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink2);
  margin:0 0 12px;
}
.ct-title{
  font-family:var(--disp);font-weight:400;
  font-size:clamp(29px,5.4vw,56px);line-height:1.1;letter-spacing:-.01em;
  margin:0 0 6px;
}
.ct-title em{font-style:italic;color:var(--acc)}
.ct-orn{
  display:flex;align-items:center;gap:13px;color:var(--rule);
  max-width:340px;margin:14px auto 16px;
}
.ct-orn::before,.ct-orn::after{content:"";flex:1;border-top:1px solid currentColor}
.ct-orn span{font-family:var(--disp);color:var(--acc2);font-size:15px;line-height:1}
.ct-lede{
  max-width:64ch;margin:0 auto 20px;font-size:clamp(16px,1.6vw,18.5px);color:#2c3b44;
}
.ct-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:26px}

/* KPI-строка «суточная сводка» */
.ct-facts{
  list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--rule2);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.ct-facts li{padding:6px 14px;border-left:1px solid var(--rule2)}
.ct-facts li:first-child{border-left:0}
.ct-facts .ct-fig{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(20px,2.4vw,27px);color:var(--acc)}
.ct-facts span{display:block;font-size:12.5px;color:var(--ink2);line-height:1.4}

/* ---------- 5. подача = секция ---------- */
.ct-course{margin-top:clamp(30px,4.6vw,56px);scroll-margin-top:78px}
.ct-course__head{display:flex;align-items:flex-start;gap:clamp(12px,2vw,22px);margin-bottom:12px}
.ct-num{
  flex:none;width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid var(--rule);background:var(--card2);
  font-family:var(--disp);font-size:19px;color:var(--acc2);letter-spacing:.04em;
}
.ct-kicker{margin:0;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink2)}
.ct-course h2{
  font-family:var(--disp);font-weight:400;
  font-size:clamp(23px,3.1vw,35px);line-height:1.18;margin:2px 0 0;letter-spacing:-.005em;
}
.ct-say{max-width:74ch;color:#33424b}
.ct-course h3{
  font-family:var(--disp);font-weight:400;font-size:clamp(19px,2.1vw,23px);
  margin:24px 0 8px;color:var(--acc-d);
}
.ct-hair{border:0;border-top:1px solid var(--rule2);margin:22px 0}

/* ---------- 6. строка подачи с лидер-точками ---------- */
.ct-serve{margin:14px 0 4px}
.ct-dish{
  display:flex;align-items:baseline;gap:8px;
  padding:9px 0;border-bottom:1px solid rgba(202,191,169,.34);
}
.ct-dish:last-child{border-bottom:0}
.ct-dish__name{flex:0 1 auto;min-width:0}
.ct-dish__name i{
  display:block;font-style:normal;font-size:13.5px;color:var(--ink2);line-height:1.45;margin-top:1px;
}
.ct-dish__name span{font-weight:600}
.ct-dots{flex:1 1 26px;min-width:22px;border-bottom:1px dotted var(--rule);transform:translateY(-5px)}
.ct-val{
  flex:none;font-family:var(--disp);font-size:clamp(16px,1.8vw,20px);color:var(--acc2);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.ct-val--calm{color:var(--acc)}

/* разворот в две колонки с линией сгиба */
.ct-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(26px,4.6vw,58px)}
.ct-spread::before{
  content:"";position:absolute;left:50%;top:4px;bottom:4px;border-left:1px solid var(--rule2);
}
.ct-spread>div{min-width:0}

/* ---------- 7. вкладка «винная карта» ---------- */
.ct-cellar{
  position:relative;margin:44px 0 0;padding:clamp(18px,3vw,30px);
  background:var(--card2);border:1px solid var(--rule);
}
.ct-cellar::before{
  content:attr(data-tab);
  position:absolute;left:clamp(14px,3vw,34px);top:-31px;
  padding:6px 20px 5px;
  background:var(--card2);border:1px solid var(--rule);border-bottom:none;
  border-radius:9px 9px 0 0;
  font-family:var(--disp);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc-d);
}
.ct-cellar--acc{background:var(--acc-soft);border-color:#bcd6e6}
.ct-cellar--acc::before{background:var(--acc-soft);border-color:#bcd6e6}
.ct-cellar--warm{background:var(--acc2-soft);border-color:#e9c6cb}
.ct-cellar--warm::before{background:var(--acc2-soft);border-color:#e9c6cb}
.ct-cellar h3:first-of-type{margin-top:0}

/* ---------- 8. ступени (VIP) ---------- */
.ct-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.ct-tier{background:var(--card);border:1px solid var(--rule2);padding:14px 16px 16px;position:relative}
.ct-tier__no{display:block;font-size:11px;letter-spacing:.2em;color:var(--ink2);text-transform:uppercase}
.ct-tier .ct-tier__nm{display:block;font-family:var(--disp);font-weight:400;font-size:22px;margin:2px 0 6px}
.ct-tier__bar{display:block;height:6px;background:var(--rule2);margin:9px 0 8px;overflow:hidden}
.ct-tier__bar i{display:block;height:100%;background:var(--acc)}
.ct-tier p{margin:0;font-size:14px;color:var(--ink2);line-height:1.5}

/* ---------- 9. таблица кассы ---------- */
.ct-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:14px}
.ct-table{width:100%;border-collapse:collapse;min-width:560px;font-size:15px}
.ct-table th,.ct-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--rule2)}
.ct-table th{
  font-family:var(--ui);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink2);border-bottom:1px solid var(--rule);
}
.ct-table td:last-child,.ct-table th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.ct-table tr:last-child td{border-bottom:0}

/* ---------- 10. отзывы гостей ---------- */
.ct-guests{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px}
.ct-guest{padding:16px 18px;background:var(--card2);border-left:2px solid var(--acc2)}
.ct-guest p{margin:0 0 10px;font-size:15.4px}
.ct-guest footer{font-size:12.5px;color:var(--ink2);letter-spacing:.04em}
.ct-guest footer .ct-who{font-weight:600;color:var(--ink)}

/* ---------- 11. вопросы у стойки ---------- */
.ct-ask{border-top:1px solid var(--rule2);padding:14px 0}
.ct-ask:last-of-type{border-bottom:1px solid var(--rule2)}
.ct-ask h3{margin:0 0 6px;font-size:19px;color:var(--ink)}
.ct-ask p{margin:0;color:#3b4a53;font-size:15.6px}

/* ---------- 12. заметка и подвал ---------- */
.ct-note{margin-top:46px;padding:clamp(18px,3vw,28px);border:1px dashed var(--rule);background:var(--card2)}
.ct-note h3{margin:0 0 8px;font-family:var(--disp);font-weight:400;font-size:23px}
.ct-note .ct-sign{font-size:13.5px;color:var(--ink2);margin:0}
.ct-foot{
  background:#17242c;color:#c8d3d9;padding:clamp(22px,4vw,40px) clamp(15px,4vw,40px);
  font-size:14.4px;
}
.ct-foot__in{max-width:var(--w);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:22px}
.ct-foot h4{font-family:var(--disp);font-weight:400;font-size:20px;color:#f4efe4;margin:0 0 8px}
.ct-foot a{color:#9dc4dd}
.ct-age{
  display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--acc2);color:#fff;background:var(--acc2);
  font-family:var(--disp);font-size:15px;margin-bottom:8px;
}
.ct-foot__legal{border-top:1px solid rgba(244,239,228,.16);margin-top:18px;padding-top:14px;font-size:12.8px;color:#93a4ac}

/* ---------- 13. адаптив ---------- */
@media (max-width:960px){
  .ct-facts{grid-template-columns:repeat(2,1fr);gap:10px 0}
  .ct-facts li:nth-child(3){border-left:0}
  .ct-tiers{grid-template-columns:repeat(2,1fr)}
  .ct-foot__in{grid-template-columns:1fr}
}
@media (max-width:760px){
  body{font-size:16.4px}
  .ct-nav{display:none}
  .ct-spread{grid-template-columns:1fr}
  .ct-spread::before{display:none}
  .ct-guests{grid-template-columns:1fr}
  .ct-folder{outline-offset:3px}
  .ct-course__head{gap:12px}
  .ct-num{width:42px;height:42px;font-size:16px}
  .ct-actions .ct-btn{flex:1 1 100%}
}
@media (max-width:430px){
  .ct-facts{grid-template-columns:1fr;padding-top:12px}
  .ct-facts li{border-left:0;border-top:1px solid var(--rule2);padding:8px 0}
  .ct-facts li:first-child{border-top:0}
  .ct-tiers{grid-template-columns:1fr}
  .ct-mark small{display:none}
}
@media (prefers-reduced-motion:reduce){
  .ct-btn{transition:none}
}
