/* Капибара Квиз — тема редизайна.
   Кладётся в /assets/capy/capy-theme.css репозитория, подключается из
   _build/inject.py одной строкой в SNIPPET (см. CLAUDE_CODE_PROMPT.md).

   Шрифты: Nauryz Red Keds и Oks Free — локальные файлы в /assets/capy/fonts/.
   Основной текст — Onest с Google Fonts (заменил Doloman Pavljenko). Текстуры
   зерна — в /assets/capy/textures/. */

@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;700&display=swap');
@font-face{font-family:"Nauryz Red Keds";src:url("/assets/capy/fonts/NaurYzRedKeds.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Oks Free";src:url("/assets/capy/fonts/OksFree0013.otf") format("opentype");font-weight:400;font-display:swap}

:root{
  --maroon-900:#3E000E; --maroon-800:#5B0015; --maroon-600:#8A2036; --maroon-400:#B0566A;
  --cream-50:#FFFCF2; --cream-100:#F7F2E0; --cream-200:#EFE8D2; --cream-300:#DFD5B8;
  --sky-300:#AFCEF0; --sky-500:#80AEE8; --sky-600:#5F93D6;

  --font-display:"Nauryz Red Keds",Georgia,serif;
  --font-title:"Oks Free","Nauryz Red Keds",sans-serif;
  --font-body:"Onest",Arial,sans-serif;

  --grain-dark:url("/assets/capy/textures/grain-dark.png");
  --grain-light:url("/assets/capy/textures/grain-light.png");

  --gutter:2cm;
  --shadow-soft:0 2px 10px rgba(91,0,21,.10);
  --shadow-lift:0 6px 18px rgba(91,0,21,.14);
  --shadow-sticker:2px 2px 0 var(--maroon-800);
  --ring-focus:0 0 0 3px rgba(128,174,232,.45);
  --ease-out:cubic-bezier(.22,.61,.36,1);
}

/* ---------- страница ---------- */
body.capy-theme{background:var(--maroon-800);color:var(--cream-100);
  font-family:var(--font-body);font-size:22px;line-height:1.5;}
.capy-sec{padding:72px var(--gutter);}
.capy-h2{margin:0 0 40px;font-family:var(--font-display);font-size:56px;line-height:1.05;
  color:var(--cream-100);text-wrap:pretty;}
.capy-h2--nowrap{white-space:nowrap;font-size:clamp(28px,3.4vw,56px);text-align:center;}
.capy-label{font-family:var(--font-title);font-size:15px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--maroon-600);}
.capy-grain-light{background-image:var(--grain-light);background-size:cover;background-position:center;}
.capy-grain-light--veiled{background-image:linear-gradient(rgba(247,242,224,.72),rgba(247,242,224,.72)),var(--grain-light);
  background-size:cover;background-position:center;}
.capy-grain-dark--veiled{background-image:linear-gradient(rgba(91,0,21,.62),rgba(91,0,21,.62)),var(--grain-dark);
  background-size:cover;background-position:center;}
.capy-card{background:var(--cream-50);border:2px solid var(--maroon-800);border-radius:20px;
  box-shadow:var(--shadow-soft);color:var(--maroon-800);}

/* ---------- кнопки ---------- */
.capy-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  box-sizing:border-box;border:2px solid var(--maroon-800);border-radius:999px;
  font-family:var(--font-title);font-size:18px;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;white-space:nowrap;padding:0 28px;height:48px;
  box-shadow:var(--shadow-sticker);transition:background .12s var(--ease-out),transform .12s var(--ease-out),box-shadow .12s var(--ease-out);}
.capy-btn--primary{background:var(--maroon-800);color:var(--cream-100);}
.capy-btn--primary:hover{background:var(--maroon-900);}
.capy-btn--accent{background:var(--sky-500);color:var(--maroon-800);}
.capy-btn--accent:hover{background:var(--sky-600);}
.capy-btn--ghost{background:transparent;color:var(--maroon-800);box-shadow:none;}
.capy-btn--ghost:hover{background:var(--cream-200);}
.capy-btn:active{transform:translate(2px,2px);box-shadow:none;}
.capy-btn:focus-visible{outline:none;border-color:var(--sky-600);box-shadow:var(--ring-focus);}
.capy-btn--sm{height:40px;font-size:16px;padding:0 20px;}
.capy-btn--lg{height:56px;font-size:20px;padding:0 34px;}
.capy-btn--block{width:100%;}

/* ---------- поля ---------- */
.capy-field{display:flex;flex-direction:column;gap:8px;}
.capy-field > span{font-family:var(--font-title);font-size:15px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--maroon-600);}
.capy-input,.capy-select,.capy-textarea{box-sizing:border-box;width:100%;
  font-family:var(--font-body);font-size:18px;color:var(--maroon-800);
  background:var(--cream-50);border:2px solid var(--cream-300);border-radius:14px;
  padding:0 18px;height:66px;outline:none;-webkit-appearance:none;appearance:none;}
.capy-textarea{height:auto;padding:16px 18px;resize:vertical;min-height:96px;}
.capy-select{cursor:pointer;padding-right:44px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="7"><path fill="%235B0015" d="M0 0h12L6 7z"/></svg>');
  background-repeat:no-repeat;background-position:right 18px center;}
.capy-input:focus,.capy-select:focus,.capy-textarea:focus{border-color:var(--sky-600);box-shadow:var(--ring-focus);}
.capy-hint{font-family:var(--font-body);font-size:18px;color:var(--maroon-600);}
.capy-req{color:#C0392B;font-weight:700;}

/* ---------- герой ---------- */
#capy-hero{padding:0 var(--gutter);}
#capy-hero .box{border-radius:28px;border:2px solid var(--maroon-900);box-shadow:var(--shadow-soft);
  padding:44px 40px 48px;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:14px;color:var(--maroon-800);}
#capy-hero img.mascot{width:180px;height:auto;}
#capy-hero .tag{font-family:var(--font-title);font-size:15px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--maroon-800);}
#capy-hero h1{margin:0;font-family:var(--font-display);font-size:56px;line-height:1.05;
  letter-spacing:.01em;color:var(--maroon-900);}

/* ---------- расписание ---------- */
#capy-schedule{padding:72px var(--gutter);}
#capy-schedule h2{margin:0 0 28px;text-align:center;font-family:var(--font-display);
  font-size:56px;line-height:1.05;color:var(--cream-100);}
#capy-schedule .cards{display:flex;flex-direction:column;gap:16px;}
#capy-schedule .ld{text-align:center;color:var(--cream-100);font-size:22px;padding:24px;}
#capy-schedule .ld a{color:var(--sky-500);}
#capy-schedule .qc{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:24px;background:var(--cream-50);border:2px solid var(--maroon-800);border-radius:20px;
  box-shadow:var(--shadow-soft);padding:28px;}
#capy-schedule .ql{display:flex;flex-direction:column;gap:8px;min-width:260px;}
#capy-schedule .qd{font-family:var(--font-display);font-size:52px;line-height:1.1;color:var(--maroon-900);}
#capy-schedule .qr{font-family:var(--font-title);font-size:15px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--maroon-600);}
#capy-schedule .qm{display:flex;flex-wrap:wrap;gap:16px;align-items:center;
  font-family:var(--font-body);font-size:22px;color:var(--maroon-800);}
#capy-schedule .qm .mp{color:var(--maroon-800);text-decoration:underline;
  text-decoration-color:var(--maroon-400);}
#capy-schedule .qp{font-family:var(--font-body);font-size:22px;color:var(--maroon-600);}
@media(max-width:640px){#capy-schedule .qc{flex-direction:column;align-items:stretch;text-align:center;}
  #capy-schedule .qbtn{width:100%;}#capy-schedule h2{font-size:34px;}#capy-schedule .qd{font-size:36px;}}

/* ---------- «как устроен» ---------- */
#capy-about .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
  gap:48px;align-items:center;}
#capy-about p{margin:0;max-width:64ch;color:var(--cream-100);text-wrap:pretty;}
#capy-about .stats{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;align-items:center;}
#capy-about .stat{display:flex;align-items:center;gap:14px;}
#capy-about .num{display:flex;align-items:center;justify-content:center;width:96px;height:96px;
  border-radius:50%;background:var(--sky-500);border:2px solid var(--maroon-800);
  font-family:var(--font-display);font-size:48px;color:var(--maroon-800);}
#capy-about .cap{font-family:var(--font-title);font-size:30px;letter-spacing:.04em;color:var(--cream-100);}

/* ---------- блок правил ---------- */
#capy-rules{padding:0 var(--gutter) 72px;}
#capy-rules .box{border-radius:20px;border:2px solid var(--maroon-900);padding:32px;
  color:var(--maroon-800);display:flex;flex-direction:column;gap:18px;}
#capy-rules .row{display:flex;gap:14px;align-items:flex-start;max-width:80ch;}
#capy-rules .dot{flex:0 0 auto;width:14px;height:14px;border-radius:50%;background:var(--sky-500);
  border:2px solid var(--maroon-800);margin-top:8px;}

/* ---------- FAQ ---------- */
#capy-faq .list{display:flex;flex-direction:column;gap:12px;}
#capy-faq .item{background:var(--cream-50);border:2px solid var(--maroon-800);
  border-radius:14px;overflow:hidden;}
#capy-faq .q{box-sizing:border-box;display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 20px;background:transparent;border:0;cursor:pointer;text-align:left;
  font-family:var(--font-body);font-size:30px;color:var(--maroon-900);}
#capy-faq .q:hover{background:var(--cream-200);}
#capy-faq .sign{display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:32px;height:32px;border-radius:50%;background:var(--sky-500);
  border:2px solid var(--maroon-800);font-family:var(--font-title);font-size:18px;
  line-height:1;color:var(--maroon-800);}
#capy-faq .a{padding:0 24px 22px;font-family:var(--font-body);font-size:26px;
  color:var(--maroon-800);max-width:80ch;white-space:pre-line;}
@media(max-width:640px){#capy-faq .q{font-size:22px;}#capy-faq .a{font-size:20px;}}

/* ---------- контакты ---------- */
#capy-contacts{padding:72px var(--gutter);background:var(--maroon-800);color:var(--cream-100);}
#capy-contacts .in{display:grid;grid-template-columns:minmax(320px,1fr) minmax(480px,1.3fr);
  gap:48px;align-items:start;}
#capy-contacts h2{margin:0;font-family:var(--font-display);font-size:56px;line-height:1.05;color:var(--cream-100);}
#capy-contacts .lead{margin:0;max-width:52ch;font-size:22px;color:var(--cream-100);text-wrap:pretty;}
#capy-contacts .soc{display:flex;gap:14px;}
#capy-contacts .soc a{display:flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:50%;background:var(--cream-50);border:2px solid var(--maroon-900);
  transition:transform .12s var(--ease-out);}
#capy-contacts .soc a:hover{transform:translateY(-2px);}
#capy-contacts .soc img{width:22px;height:22px;object-fit:contain;}
#capy-contacts .cr{background:var(--cream-50);border:2px solid var(--maroon-800);border-radius:20px;
  box-shadow:var(--shadow-soft);padding:28px;display:flex;flex-direction:column;gap:18px;}
#capy-contacts .fmsg{font-size:18px;min-height:18px;color:var(--maroon-600);}
#capy-contacts .okw{padding:12px 0;color:var(--maroon-800);}
#capy-contacts .okw .t{font-family:var(--font-display);font-size:30px;}
#capy-contacts .okw .d{font-size:18px;color:var(--maroon-600);margin-top:6px;}
@media(max-width:980px){#capy-contacts .in{grid-template-columns:1fr;}}

/* ---------- попап регистрации ---------- */
.capy-ovl{position:fixed;inset:0;background:rgba(62,0,14,.34);backdrop-filter:blur(3px);
  z-index:99999;display:none;align-items:flex-start;justify-content:center;padding:24px 14px;overflow:auto;}
.capy-ovl.open{display:flex;}
.capy-box{box-sizing:border-box;position:relative;margin:auto;width:100%;max-width:560px;background:var(--cream-50);
  border:2px solid var(--maroon-800);border-radius:28px;box-shadow:0 26px 80px rgba(62,0,14,.42);
  padding:30px 28px 26px;font-family:var(--font-body);font-size:18px;color:var(--maroon-800);}
.capy-x{position:absolute;top:14px;right:16px;width:40px;height:40px;border-radius:50%;
  border:2px solid var(--maroon-800);background:var(--cream-100);color:var(--maroon-800);
  font-size:22px;line-height:1;cursor:pointer;}
.capy-x:hover{background:var(--cream-200);}
.capy-h{margin:0 46px 6px 0;font-family:var(--font-display);font-size:38px;line-height:1.05;color:var(--maroon-900);}
.capy-s{font-family:var(--font-title);font-size:16px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--maroon-600);margin-bottom:14px;}
.capy-form{display:flex;flex-direction:column;gap:16px;max-height:64vh;overflow-y:auto;padding-right:2px;}
.capy-count{display:flex;flex-wrap:wrap;gap:8px;}
.capy-pill{box-sizing:border-box;min-width:52px;height:52px;padding:0 12px;border-radius:999px;
  border:2px solid var(--maroon-800);background:var(--cream-100);color:var(--maroon-800);
  font-family:var(--font-body);font-size:19px;cursor:pointer;transition:.12s var(--ease-out);}
.capy-pill:hover{background:var(--cream-200);}
.capy-pill.sel{background:var(--maroon-800);color:var(--cream-100);}
.capy-findmsg{display:flex;align-items:center;gap:12px;background:var(--cream-200);
  border:2px solid var(--cream-300);border-radius:14px;padding:14px 18px;
  font-size:18px;color:var(--maroon-900);}
.capy-msg{font-size:18px;min-height:18px;text-align:center;color:#C0392B;}
.capy-ok{text-align:center;padding:26px 6px;color:var(--maroon-800);}
.capy-ok .t{font-family:var(--font-display);font-size:32px;color:var(--maroon-900);}
.capy-ok .d{font-size:18px;color:var(--maroon-600);margin-top:8px;}

/* ---------- шапка ---------- */
#capy-header{flex-wrap:wrap;}

/* ---------- адаптив ---------- */
@media(max-width:980px){
  :root{--gutter:24px;}
  .capy-h2{font-size:38px;}
  #capy-hero h1{font-size:40px;}
  #capy-about .cols{grid-template-columns:1fr;}
  #capy-schedule h2{font-size:38px;}
  #capy-contacts h2{font-size:38px;}
  #capy-header{justify-content:center;row-gap:12px;}
  /* !important: buildHeader() sets justify-content:flex-end/margin-left:auto inline
     on <nav> (right-aligned for desktop) — a plain override here can't win against
     an inline style, only !important can. */
  #capy-header nav{order:2;flex:1 1 100%;justify-content:center !important;margin-left:0 !important;font-size:16px;gap:8px 16px;}
  #capy-header > a.capy-btn{order:3;}
}
