@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/lora-cyrillic-0.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/lora-latin-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/lora-cyrillic-0.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/lora-latin-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/lora-cyrillic-0.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/lora-latin-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/manrope-cyrillic-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/manrope-latin-3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-cyrillic-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-latin-3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-cyrillic-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-latin-3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-cyrillic-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-latin-3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-cyrillic-2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-latin-3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Денёчек — стили. Шрифты: Lora (числа, заголовки), Manrope (текст) — свои, из /fonts/ */
:root{
  --fon:#f6f3ee;--fon2:#efe9e0;--karta:#fff;--tekst:#1c1917;--tusk:#6b645c;--ramka:#e6dfd4;
  --krasn:#c8102e;--krasn2:#fde8ea;--zel:#15803d;--zel2:#e3f4e8;--sin:#1d4ed8;--sin2:#e6edfd;
  --zol:#b45309;--zol2:#fdf0dc;--fiol:#7c3aed;--fiol2:#efe8fe;--seryi2:#f1eeea;
  --ten:0 1px 2px rgba(28,25,23,.06),0 4px 16px rgba(28,25,23,.06);
  --r:14px;--shrift:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--serif:"Lora",Georgia,"Times New Roman",serif;
}
:root[data-tema="tyomnaya"]{
  --fon:#141210;--fon2:#1c1916;--karta:#211e1b;--tekst:#f2eee8;--tusk:#a59d93;--ramka:#35302b;
  --krasn:#f0546a;--krasn2:#3a1d22;--zel:#4ade80;--zel2:#173021;--sin:#7aa2ff;--sin2:#1b2440;
  --zol:#f5b04d;--zol2:#3a2b14;--fiol:#b493ff;--fiol2:#2a2140;--seryi2:#2a2622;
  --ten:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fon);color:var(--tekst);font:16px/1.6 var(--shrift);font-feature-settings:"tnum" 0}
a{color:var(--krasn);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.01em}
h1{font-size:34px;line-height:1.15;margin:0 0 10px}
h2{font-size:23px;line-height:1.25;margin:0}
h3{font-size:18px;margin:16px 0 6px}
.tusk{color:var(--tusk)}.mel{font-size:14px}
.obertka{max-width:1200px;margin:0 auto;padding:0 20px}

/* шапка */
.shapka{background:var(--karta);border-bottom:1px solid var(--ramka);position:sticky;top:0;z-index:10}
.shapka-v{display:flex;align-items:center;gap:18px 28px;min-height:72px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:12px;color:var(--tekst)}
.logo:hover{text-decoration:none}
.logo-list{width:44px;height:48px;border-radius:8px;background:#fff;box-shadow:var(--ten);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--ramka)}
.logo-mes{background:var(--krasn);color:#fff;font-size:10px;font-weight:800;text-transform:uppercase;text-align:center;line-height:16px;letter-spacing:.05em}
.logo-chislo{flex:1;display:grid;place-items:center;font:700 22px/1 var(--serif);color:#1c1917}
.logo-tekst{font:700 24px/1 var(--serif)}
.logo-tekst small{display:block;font:500 12px/1.4 var(--shrift);color:var(--tusk);margin-top:3px}
.menu{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.menu a{color:var(--tekst);font-weight:600;font-size:15px;padding:8px 12px;border-radius:999px}
.menu a:hover{background:var(--seryi2);text-decoration:none}
.menu a.tek{background:var(--krasn2);color:var(--krasn)}
.tema{border:1px solid var(--ramka);background:var(--karta);color:var(--tekst);width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:17px}

/* макет */
.maket{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;padding-top:24px;padding-bottom:40px}
.osnova{min-width:0}
.kroshki{display:flex;flex-wrap:wrap;gap:6px;font-size:14px;color:var(--tusk);margin-bottom:12px}
.kroshki a{color:var(--tusk)}
.kroshki .tek{color:var(--tekst)}

/* карточки */
.blok{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:22px 24px;margin-bottom:20px;box-shadow:var(--ten)}
.blok-zag{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.blok-zag a{font-weight:600;font-size:15px}
.dve-kolonki{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.dve-kolonki>.blok{margin-bottom:20px}

/* герой: листок + текст */
.geroy{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;background:var(--karta);border:1px solid var(--ramka);border-radius:20px;padding:26px;margin-bottom:20px;box-shadow:var(--ten);position:relative;overflow:hidden}
.geroy::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--krasn2),transparent 70%);pointer-events:none}
.list{width:178px;background:#fff;border-radius:14px;box-shadow:0 2px 0 #e8e2d8,0 4px 0 #ded6ca,0 10px 24px rgba(28,25,23,.12);overflow:hidden;text-align:center;position:relative;color:#1c1917;flex:0 0 auto}
.list::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:110px;height:8px;background:radial-gradient(circle,#00000033 2px,transparent 2.5px) 0 0/14px 8px repeat-x}
.list-verh{background:var(--krasn);color:#fff;display:flex;justify-content:space-between;padding:22px 14px 8px;font-weight:800;text-transform:uppercase;font-size:14px;letter-spacing:.06em}
.list-chislo{font:700 92px/1.05 var(--serif);padding:8px 0 0;color:#1c1917}
.list-vyh .list-chislo{color:#c8102e}
.list-niz{padding:2px 10px 16px;font-weight:600;color:#6b645c;font-size:15px}
.list-mal{width:120px}.list-mal .list-chislo{font-size:58px}.list-mal .list-verh{font-size:11px;padding:18px 10px 6px}
.nadzag{text-transform:uppercase;font-size:13px;letter-spacing:.08em;font-weight:800;color:var(--krasn)}
.geroy h1{margin:4px 0 8px}
.glavnyi-prazdnik{display:inline-block;font:600 24px/1.3 var(--serif);color:var(--tekst);margin-bottom:4px}
.esche{margin:0 0 12px;color:var(--tusk)}
.fakty{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fakty span{background:var(--seryi2);border-radius:999px;padding:6px 12px;font-size:14px}
.fakty b{font-weight:800}

/* полоса дней: сегодня, завтра, послезавтра */
.polosa{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.polosa a{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:14px 16px;color:var(--tekst);box-shadow:var(--ten);display:block}
.polosa a:hover{text-decoration:none;border-color:var(--krasn)}
.polosa .tek{border-color:var(--krasn);background:linear-gradient(var(--krasn2),var(--karta) 60%)}
.polosa-kogda{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--krasn)}
.polosa-data{font-weight:700;font-size:15px}
.polosa-nazv{font:600 16px/1.35 var(--serif);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.polosa-esche{font-size:13px;color:var(--tusk);margin-top:4px}

/* праздники */
.prazdniki{list-style:none;margin:0;padding:0}
.prazdniki li{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px dashed var(--ramka)}
.prazdniki li:last-child{border-bottom:0}
.prazdnik-nazv{font-size:17px;font-weight:600;flex:1}
.metka{flex:0 0 auto;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;border-radius:6px;margin-top:2px;min-width:86px;text-align:center}
.m-vyh{background:var(--krasn);color:#fff}.m-rf{background:var(--krasn2);color:var(--krasn)}.m-pr{background:var(--zol2);color:var(--zol)}
.m-mir{background:var(--sin2);color:var(--sin)}.m-nar{background:var(--zel2);color:var(--zel)}.m-cerk{background:var(--fiol2);color:var(--fiol)}
.podelitsya{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.podelitsya a,.podelitsya button{font:600 14px var(--shrift);border:1px solid var(--ramka);background:var(--karta);color:var(--tekst);padding:8px 14px;border-radius:999px;cursor:pointer}
.podelitsya a:hover,.podelitsya button:hover{border-color:var(--krasn);text-decoration:none}

/* именины */
.imena-chipy{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.imena-chipy li{background:var(--seryi2);padding:6px 12px;border-radius:999px;font-weight:600;font-size:15px}

/* Луна */
.luna-blok{display:flex;gap:20px;align-items:center}
.luna-svg{flex:0 0 auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.18))}
.luna-glavnoe{font:700 20px/1.3 var(--serif)}
.luna-sobytie{display:inline-block;margin-top:6px;background:var(--zol2);color:var(--zol);font-weight:700;font-size:13px;padding:3px 10px;border-radius:999px}
.strizhka{margin-top:16px;padding:10px 14px;border-radius:10px;font-size:15px}
.strizhka-znak{font-size:17px;margin-right:4px}
.fazy-mesyaca{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.faza-kartochka{background:var(--seryi2);border-radius:12px;padding:14px 10px;text-align:center}
.faza-kartochka b{display:block;margin-top:8px;font-size:15px}
.faza-kartochka span{font-size:13px;color:var(--tusk)}

/* календарные сетки */
.setka{border-collapse:separate;border-spacing:4px;width:100%}
.setka th{font-size:12px;font-weight:700;color:var(--tusk);text-transform:uppercase;padding:4px 0}
.setka td{text-align:center;border-radius:8px;padding:0;height:42px;background:var(--seryi2);font-weight:600}
.setka td a{display:flex;align-items:center;justify-content:center;height:42px;color:inherit;border-radius:8px}
.setka td a:hover{text-decoration:none;outline:2px solid var(--krasn)}
.setka td:empty{background:transparent}
.setka td.segodnya{outline:2px solid var(--tekst)}
.setka td.vyh{background:var(--krasn2);color:var(--krasn)}.setka td.sokr{background:var(--zol2);color:var(--zol)}
.o2{background:#bbf7d0!important;color:#14532d}.o1{background:var(--zel2)!important;color:var(--zel)}.o0{background:var(--seryi2)!important}.o-1{background:var(--krasn2)!important;color:var(--krasn)}
:root[data-tema="tyomnaya"] .o2{background:#1f5c35!important;color:#d1fae5}
.legenda{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;font-size:13px}
.legenda li{padding:4px 10px;border-radius:999px;font-weight:600}

/* таблица лунных дней */
.tablica{width:100%;border-collapse:collapse;font-size:15px}
.tablica th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--tusk);padding:8px;border-bottom:2px solid var(--ramka)}
.tablica td{padding:10px 8px;border-bottom:1px solid var(--ramka);vertical-align:middle}
.tablica tr.segodnya td{background:var(--zol2)}
.tablica .luna-mal{display:inline-block;vertical-align:middle;margin-right:8px}

/* чипы месяцев и дней */
.chipy{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.chipy a{padding:7px 14px;border-radius:999px;background:var(--karta);border:1px solid var(--ramka);color:var(--tekst);font-weight:600;font-size:14px}
.chipy a:hover{border-color:var(--krasn);text-decoration:none}
.chipy a.tek{background:var(--tekst);color:var(--fon);border-color:var(--tekst)}
.vybor-daty{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.vybor-daty input{font:600 15px var(--shrift);padding:8px 12px;border-radius:10px;border:1px solid var(--ramka);background:var(--karta);color:var(--tekst)}
.vybor-daty button,.knopka{font:700 15px var(--shrift);padding:9px 16px;border-radius:10px;border:0;background:var(--krasn);color:#fff;cursor:pointer}

/* плитки счётчиков */
.plitki{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.plitka{background:var(--seryi2);border-radius:14px;padding:16px;color:var(--tekst);display:flex;flex-direction:column;transition:transform .15s}
.plitka:hover{text-decoration:none;transform:translateY(-2px);background:var(--krasn2)}
.plitka-chislo{font:700 40px/1 var(--serif);color:var(--krasn)}
.plitka-ed{font-size:13px;color:var(--tusk);font-weight:600}
.plitka-nazv{font-weight:700;margin-top:10px;line-height:1.3}
.plitka-data{font-size:13px;color:var(--tusk);margin-top:4px}

/* большой счётчик */
.tablo{background:#151311;color:#fff;border-radius:20px;padding:34px 20px;text-align:center;box-shadow:var(--ten);margin-bottom:20px;position:relative}
.tablo-nazv{font:600 18px var(--serif);color:#e7dfd4}
.tablo-tsifry{display:flex;justify-content:center;gap:14px;margin:18px 0 10px;flex-wrap:wrap}
.tablo-yach{background:#26221e;border-radius:14px;padding:14px 10px 10px;min-width:104px;box-shadow:inset 0 -2px 0 #000}
.tablo-yach b{display:block;font:700 64px/1 var(--serif);font-variant-numeric:tabular-nums;color:#fff}
.tablo-yach span{font-size:13px;color:#a59d93;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.tablo-yach.glav b{color:#ff6b81}
.tablo-data{color:#c9c0b5}
.tablo-polnyi{position:absolute;top:14px;right:14px;background:#26221e;color:#fff;border:0;border-radius:8px;padding:6px 10px;cursor:pointer;font:600 13px var(--shrift)}
.tablo:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0}
.tablo:fullscreen .tablo-yach b{font-size:14vw}

/* сайдбар */
.sbok{display:flex;flex-direction:column;gap:20px}
.vidzhet{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:18px;box-shadow:var(--ten)}
.vidzhet-zag{font:700 18px var(--serif);margin-bottom:10px}
.vidzhet-zag a{color:var(--tekst)}
.vidzhet-vse{display:inline-block;margin-top:10px;font-weight:600;font-size:14px}
.mini-kal{width:100%;border-collapse:collapse;text-align:center;font-size:14px}
.mini-kal th{font-size:11px;color:var(--tusk);text-transform:uppercase;padding:4px 0;font-weight:700}
.mini-kal th.vyh{color:var(--krasn)}
.mini-kal td{padding:2px}
.mini-kal td a{display:block;padding:6px 0;border-radius:8px;color:var(--tekst);font-weight:600}
.mini-kal td a:hover{background:var(--seryi2);text-decoration:none}
.mini-kal td.vyh a{color:var(--krasn)}
.mini-kal td.prazdn a{background:var(--krasn2)}
.mini-kal td.segodnya a{background:var(--krasn);color:#fff}
.skoro{list-style:none;margin:0;padding:0}
.skoro li a{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--ramka);color:var(--tekst)}
.skoro li:last-child a{border-bottom:0}
.skoro li a:hover{text-decoration:none}
.skoro-dni{flex:0 0 56px;text-align:center;background:var(--krasn2);border-radius:10px;padding:4px 0;font-size:11px;color:var(--krasn);font-weight:700;line-height:1.1}
.skoro-dni b{display:block;font:700 20px/1.1 var(--serif)}
.skoro-nazv{font-weight:600;font-size:14px;line-height:1.3}
.skoro-nazv small{display:block;color:var(--tusk);font-weight:500;font-size:12px}
.luna-mini{display:flex;gap:14px;align-items:center;color:var(--tekst);font-size:14px;line-height:1.45}
.luna-mini:hover{text-decoration:none}

/* соседи и списки */
.sosedi{display:flex;justify-content:space-between;gap:10px;margin:8px 0 20px}
.sosedi a{background:var(--karta);border:1px solid var(--ramka);border-radius:999px;padding:9px 16px;font-weight:700;color:var(--tekst)}
.sosedi a:hover{border-color:var(--krasn);text-decoration:none}
.dni-spisok{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.den{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:14px 16px;box-shadow:var(--ten)}
.den.segodnya{border-color:var(--krasn);background:linear-gradient(var(--krasn2),var(--karta) 50%)}
.den-zag{display:flex;align-items:baseline;gap:8px}
.den-zag a{font:700 22px var(--serif);color:var(--tekst)}
.den-zag span{color:var(--tusk);font-size:13px;font-weight:600}
.den ul{margin:6px 0 0;padding-left:18px;font-size:14px}
.ssylki-kolonki{columns:2;padding-left:18px}
.ssylki{padding-left:18px}
.proizv-setka{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.proizv-setka .blok{padding:16px;margin:0}
.proizv-setka .setka td,.proizv-setka .setka td a{height:32px;font-size:14px}
.itogi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:20px}
.itog{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:14px 16px}
.itog b{display:block;font:700 30px/1.1 var(--serif)}
.itog span{color:var(--tusk);font-size:13px;font-weight:600}
.reklama{margin:0 0 20px}

/* подвал */
.podval{background:#1c1917;color:#cfc7bc;font-size:14px}
.podval a{color:#f2eee8}
.podval-v{display:grid;grid-template-columns:1.2fr 2fr;gap:30px;padding-top:30px;padding-bottom:36px}
.podval-logo{font:700 22px var(--serif);color:#fff;margin-bottom:8px}
.podval-ssylki{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px 20px;align-content:start}

@media (max-width:980px){
  .maket{grid-template-columns:1fr}
  .sbok{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
}
@media (max-width:640px){
  body{font-size:15.5px}
  .obertka{padding:0 14px}
  h1{font-size:26px}h2{font-size:20px}
  .shapka{position:static}
  .shapka-v{min-height:0;padding-top:10px;padding-bottom:6px;gap:8px}
  .menu{margin:0 -14px;padding:0 14px 6px;flex-wrap:nowrap;overflow-x:auto;width:calc(100% + 28px);scrollbar-width:none}
  .menu a{white-space:nowrap;background:var(--seryi2)}
  .geroy{grid-template-columns:1fr;justify-items:center;text-align:center;padding:20px}
  .fakty{justify-content:center}
  .list{width:150px}.list-chislo{font-size:76px}
  .glavnyi-prazdnik{font-size:21px}
  .polosa{grid-template-columns:1fr;gap:8px}
  .dve-kolonki{grid-template-columns:1fr;gap:0}
  .blok{padding:18px 16px}
  .luna-blok{flex-direction:column;text-align:center}
  .metka{min-width:0}
  .tablo-yach{min-width:70px;padding:10px 6px 8px}.tablo-yach b{font-size:40px}
  .ssylki-kolonki{columns:1}
  .podval-v{grid-template-columns:1fr}
  .tablica{font-size:13px}.tablica td,.tablica th{padding:7px 4px}
}
.imena-chipy.bolshie li{font-size:17px;padding:8px 16px}
.geroy .luna-svg{filter:drop-shadow(0 8px 24px rgba(0,0,0,.25))}
@media (max-width:640px){
  .shapka-v{position:relative}
  .tema{position:absolute;top:12px;right:14px}
  .menu{order:3}
}
.geroy>*{position:relative;z-index:1}
.geroy::after{z-index:0}
.plitki{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
@media (max-width:640px){
  .tablo{padding:22px 10px 18px}
  .tablo-polnyi{position:static;margin-bottom:10px}
  .tablo-tsifry{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
  .tablo-yach{min-width:0;padding:10px 2px 8px}
  .tablo-yach b{font-size:34px}
  .tablo-yach span{font-size:10px;letter-spacing:.03em}
  .plitki{grid-template-columns:1fr 1fr;gap:8px}
  .plitka{padding:12px}
  .plitka-chislo{font-size:32px}
  .prazdniki li{flex-direction:column;gap:4px}
  .metka{align-self:flex-start}
  .itogi{grid-template-columns:1fr 1fr 1fr}
  .itog{padding:10px}.itog b{font-size:22px}
}

/* === цвет месяца, единая шапка === */
.geroy{--m-akc:var(--krasn);--m-svet:var(--krasn2);background:linear-gradient(120deg,var(--karta) 35%,var(--m-svet));border-color:color-mix(in srgb,var(--m-akc) 25%,var(--ramka))}
:root[data-tema="tyomnaya"] .geroy{background:linear-gradient(120deg,var(--karta) 35%,var(--m-tyom))}
.geroy::after{display:none}
.geroy .ornament{position:absolute;inset:0;width:100%;height:100%;color:var(--m-akc);z-index:0;pointer-events:none}
.geroy .nadzag{color:var(--m-akc)}
.geroy .list-verh{background:var(--m-akc)}
.geroy-luna,.geroy-znak{flex:0 0 auto;display:grid;place-items:center}
.geroy-znak{width:120px;height:120px;border-radius:30px;background:var(--m-akc);color:#fff;box-shadow:0 10px 30px color-mix(in srgb,var(--m-akc) 40%,transparent)}
.geroy-znak .ikonka{width:56px;height:56px;stroke-width:1.5}
.geroy .chipy{margin:12px 0 0}
.geroy .chipy a{background:color-mix(in srgb,var(--karta) 85%,transparent)}
.geroy .chipy a.tek{background:var(--m-akc);border-color:var(--m-akc);color:#fff}
.geroy .legenda{margin-top:10px}
.geroy-imena{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:14px}
.geroy-imena span{color:var(--tusk);font-weight:600;margin-right:2px}
.geroy-imena a{background:var(--karta);border:1px solid var(--ramka);color:var(--tekst);padding:4px 11px;border-radius:999px;font-weight:600}
.geroy-imena a:hover{border-color:var(--m-akc);text-decoration:none}
.geroy .esche{margin:6px 0 0}
.h1-otdelno{margin:0 0 16px}

/* карточки праздников с иконками */
.kartochki{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.kp{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--seryi2);border:1px solid transparent}
.kp-vyh{background:var(--krasn2);border-color:color-mix(in srgb,var(--krasn) 30%,transparent)}
.kp-ik{flex:0 0 44px;height:44px;border-radius:12px;display:grid;place-items:center}
.kp-rf{background:var(--krasn);color:#fff}.kp-mir{background:var(--sin);color:#fff}.kp-nar{background:var(--zel);color:#fff}
.kp-nazv{font-weight:700;line-height:1.3}
.kp-vid{font-size:12px;color:var(--tusk);font-weight:600;margin-top:3px;text-transform:uppercase;letter-spacing:.04em}
.cerk-spisok{margin:0;padding-left:20px;color:var(--tekst)}
.cerk-spisok li{padding:4px 0}
.cerk-spisok li::marker{color:var(--fiol)}

/* Луна широкой карточкой */
.luna-shirokaya-v{display:grid;grid-template-columns:1fr 240px;gap:20px;align-items:center}
.strizhka-plashka{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-radius:14px;color:inherit}
.strizhka-plashka:hover{text-decoration:none;filter:brightness(.97)}
.strizhka-plashka span{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.8}
.strizhka-plashka b{font:700 20px var(--serif)}
.strizhka-plashka small{font-weight:600;opacity:.8}
.blok .strizhka-plashka{margin-top:12px;max-width:320px}

/* годовой обзор */
.god{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.god-mes{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:16px;box-shadow:var(--ten);border-top:4px solid var(--m-akc)}
.god-zag{display:flex;justify-content:space-between;align-items:baseline;color:var(--tekst);margin-bottom:8px}
.god-zag span{font:700 21px var(--serif)}
.god-zag small{color:var(--m-akc);font-weight:800}
.god-zag:hover{text-decoration:none}.god-zag:hover span{color:var(--m-akc)}
.god-setka{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed}
.god-setka th{font-size:10px;color:var(--tusk);font-weight:700;text-transform:uppercase}
.god-setka td{text-align:center;border-radius:7px;padding:0}
.god-setka td a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:30px;color:var(--tekst);font-size:13px;font-weight:600;border-radius:7px}
.god-setka td a:hover{background:var(--seryi2);text-decoration:none}
.god-setka td .luna-svg{filter:none;margin-bottom:-2px}
.god-setka td.vyh a{color:var(--krasn)}
.god-setka td.prazdn a{background:var(--krasn);color:#fff}
.god-setka td.sob a{background:var(--zol2)}
.god-setka td.segodnya a{outline:2px solid var(--m-akc);outline-offset:-2px}
.god-spisok{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px dashed var(--ramka);font-size:13px;line-height:1.4}
.god-spisok li{padding:2px 0}
.god-spisok b{color:var(--m-akc);margin-right:4px}
.legenda .lg-prazdn{background:var(--krasn);color:#fff}.legenda .lg-vyh{background:var(--krasn2);color:var(--krasn)}.legenda .lg-sob{background:var(--zol2);color:var(--zol)}
.den-vyh .den-zag a{color:var(--krasn)}

/* табло: рисунок месяца */
.tablo{overflow:hidden}
.tablo .ornament{position:absolute;inset:0;width:100%;height:100%;color:var(--m-akc);opacity:.6;pointer-events:none}
.tablo>*{position:relative}

@media (max-width:640px){
  .geroy-znak{width:84px;height:84px;border-radius:22px}.geroy-znak .ikonka{width:40px;height:40px}
  .geroy-luna .luna-svg{width:120px;height:120px}
  .geroy-imena{justify-content:center}
  .luna-shirokaya-v{grid-template-columns:1fr}
  .kartochki{grid-template-columns:1fr}
  .god{grid-template-columns:1fr}
}

/* открытые разделы: карточки лежат прямо на фоне, без рамки вокруг */
.otkr{margin-bottom:26px}
.otkr>.blok-zag{padding:0 4px}
.otkr>h3{margin:18px 4px 8px}
.otkr .cerk-spisok{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);padding:14px 18px 14px 36px;box-shadow:var(--ten)}
.plitka,.kp,.faza-kartochka{background:var(--karta);border:1px solid var(--ramka);box-shadow:var(--ten)}
.plitka:hover{background:var(--karta);border-color:var(--krasn)}
.kp-vyh{background:linear-gradient(var(--krasn2),var(--karta))}

/* шапка: логотип · поиск · тема, ниже меню */
.shapka-v{flex-wrap:wrap;row-gap:0;padding-top:10px}
.logo{order:1}.poisk{order:2}.tema{order:3}
.menu{order:4;flex-basis:100%;margin:6px 0 0 -12px;padding-bottom:6px}
.poisk{position:relative;flex:1;max-width:560px;margin-left:auto}
.poisk svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--tusk);pointer-events:none}
.poisk input{width:100%;font:500 15px var(--shrift);padding:11px 16px 11px 42px;border-radius:999px;border:1px solid var(--ramka);background:var(--fon);color:var(--tekst);outline:none}
.poisk input:focus{border-color:var(--krasn);background:var(--karta);box-shadow:0 0 0 4px var(--krasn2)}
.poisk-rez{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--karta);border:1px solid var(--ramka);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.18);overflow:hidden;z-index:50;max-height:70vh;overflow-y:auto}
.poisk-rez a{display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:10px 14px;color:var(--tekst);border-bottom:1px solid var(--ramka)}
.poisk-rez a:last-child{border-bottom:0}
.poisk-rez a:hover,.poisk-rez a.vybran{background:var(--seryi2);text-decoration:none}
.poisk-rez b{font-weight:700}
.poisk-rez small{grid-column:2;color:var(--tusk);font-size:13px}
.poisk-vid{grid-row:span 2;align-self:center;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--krasn2);color:var(--krasn);padding:3px 7px;border-radius:6px;min-width:74px;text-align:center}
.poisk-pusto{padding:14px;color:var(--tusk);font-size:14px}
@media (max-width:640px){
  .poisk{order:4;flex-basis:100%;max-width:none;margin:10px 0 0}
  .menu{order:5}
  .tema{position:static;margin-left:auto}
  .poisk input{font-size:16px}
}

/* лента дат: одна строка на дату, все её праздники */
.lenta{background:var(--karta);border:1px solid var(--ramka);border-radius:var(--r);box-shadow:var(--ten);overflow:hidden}
.lenta-den{display:flex;gap:16px;padding:14px 18px;border-bottom:1px solid var(--ramka);align-items:flex-start}
.lenta-den:last-child{border-bottom:0}
.lenta-kogda{flex:0 0 64px;text-align:center;background:var(--krasn2);color:var(--krasn);border-radius:12px;padding:6px 0;line-height:1.1}
.lenta-kogda b{display:block;font:700 26px var(--serif)}
.lenta-kogda span{font-size:12px;font-weight:700}
.lenta-data{font-weight:800;font-size:15px;margin-bottom:6px}
.lenta-spisok{display:flex;flex-wrap:wrap;gap:6px}
.lenta-spisok a{background:var(--seryi2);color:var(--tekst);padding:5px 12px;border-radius:999px;font-size:14px;font-weight:600}
.lenta-spisok a:hover{background:var(--krasn2);color:var(--krasn);text-decoration:none}
.plitka-ed{line-height:1.35}

/* длинные слова в карточках — переносом по слогам, а не за край */
.plitka-nazv,.kp-nazv,.polosa-nazv,.skoro-nazv,.lenta-spisok a,.den ul,.god-spisok,.glavnyi-prazdnik,h1,h2{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
.plitka{min-width:0}
.plitki{grid-template-columns:repeat(auto-fill,minmax(165px,1fr))}

/* страница праздника */
.tekst-blok p{margin:0 0 12px;font-size:17px}
.ustanovlen{background:var(--seryi2);border-radius:12px;padding:12px 14px;font-size:15px!important}
.ustanovlen span{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--tusk);margin-bottom:2px}
.gody{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.god-plashka{background:var(--karta);border:1px solid var(--ramka);border-radius:14px;padding:12px 14px;box-shadow:var(--ten);color:var(--tekst);display:flex;flex-direction:column}
.god-plashka:hover{border-color:var(--krasn);text-decoration:none}
.god-plashka.tek{border-color:var(--krasn);background:linear-gradient(var(--krasn2),var(--karta))}
.god-plashka b{font:700 24px var(--serif);color:var(--krasn)}
.god-plashka small{color:var(--tusk)}
a.kp{color:var(--tekst)}a.kp:hover{text-decoration:none;border-color:var(--krasn)}
.lenta-spisok a.rf{background:var(--krasn2);color:var(--krasn)}

/* живое небо за страницей и погода в шапке */
.nebo{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;opacity:0;transition:opacity 1.2s;pointer-events:none}
.nebo.vidno{opacity:1}
body{background:var(--fon)}
.shapka{background:color-mix(in srgb,var(--karta) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pogoda-plashka{order:3;display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--tekst);background:var(--seryi2);padding:7px 12px;border-radius:999px;white-space:nowrap}
.pogoda-plashka span{font-size:16px}
.pogoda-plashka b{font-weight:800}
.tema{order:4}
@media (max-width:640px){.pogoda-plashka{order:2;margin-left:auto;font-size:13px;padding:5px 10px}.tema{order:3;margin-left:6px}}
.menu{order:5}
.shapka-v{column-gap:14px}
.poisk{margin-left:auto}

/* картинки ИИ: фон страницы под погоду и иллюстрация месяца в шапке */
.fon{position:fixed;inset:0;z-index:-2;background:center/cover no-repeat;opacity:0;transition:opacity 1.2s}
.fon.vidno{opacity:1}
.fon::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--fon) 30%,transparent) 0%,color-mix(in srgb,var(--fon) 55%,transparent) 100%)}
body.s-fonom{background:transparent}
body.s-fonom .otkr>.blok-zag h2,body.s-fonom .kroshki,body.s-fonom .h1-otdelno{text-shadow:0 1px 8px color-mix(in srgb,var(--fon) 90%,transparent)}
body.s-fonom .otkr>.blok-zag{background:color-mix(in srgb,var(--karta) 80%,transparent);backdrop-filter:blur(6px);border-radius:12px;padding:8px 14px}
.geroy.s-kartinkoy{background:var(--kart) right center/cover no-repeat;min-height:260px}
.geroy.s-kartinkoy::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--karta) 0%,color-mix(in srgb,var(--karta) 88%,transparent) 42%,color-mix(in srgb,var(--karta) 10%,transparent) 75%,transparent 100%);z-index:0}
@media (max-width:640px){.geroy.s-kartinkoy::before{background:linear-gradient(180deg,color-mix(in srgb,var(--karta) 70%,transparent),var(--karta) 70%)}}
body.s-fonom .kroshki{display:inline-flex;background:color-mix(in srgb,var(--karta) 85%,transparent);backdrop-filter:blur(6px);border-radius:999px;padding:4px 14px}
body.s-fonom .otkr>h3{display:inline-block;background:color-mix(in srgb,var(--karta) 85%,transparent);backdrop-filter:blur(6px);border-radius:10px;padding:4px 12px}

/* иконки-картинки */
.ikonka-kart{width:44px;height:44px;display:block;border-radius:12px}
.kp-ik:has(.ikonka-kart){background:none!important;box-shadow:0 3px 10px rgba(30,40,60,.12);border-radius:12px}
.geroy-znak:has(.ikonka-kart){background:none;box-shadow:none;width:auto;height:auto}
.ikonka-kart.bolshaya{width:120px;height:120px;border-radius:28px;box-shadow:0 12px 30px rgba(30,40,60,.18)}
.pogoda-plashka img{width:22px;height:22px;border-radius:6px}
@media (max-width:640px){.ikonka-kart.bolshaya{width:84px;height:84px;border-radius:20px}}
.ikonka-kart:not(.bolshaya){width:52px;height:52px;border-radius:14px}
.kp-ik:has(.ikonka-kart){flex:0 0 52px;height:52px;border-radius:14px}

/* солнце */
.solnce-blok{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.sb-yach{background:linear-gradient(160deg,#fff4dc,var(--seryi2));border-radius:12px;padding:12px 14px}
:root[data-tema="tyomnaya"] .sb-yach{background:linear-gradient(160deg,#3a2e17,var(--seryi2))}
.sb-yach span{display:block;font-size:12px;font-weight:700;color:var(--tusk);text-transform:uppercase;letter-spacing:.04em}
.sb-yach b{font:700 22px var(--serif)}
.solnce-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}
.solnce-mini div{background:linear-gradient(160deg,#fff4dc,var(--seryi2));border-radius:10px;padding:8px;text-align:center}
:root[data-tema="tyomnaya"] .solnce-mini div{background:linear-gradient(160deg,#3a2e17,var(--seryi2))}
.solnce-mini span{display:block;font-size:11px;font-weight:700;color:var(--tusk);text-transform:uppercase}
.solnce-mini b{font:700 17px var(--serif)}
.vidzhet-zag small{font:600 13px var(--shrift)}
.god-progress{position:relative;height:30px;background:var(--seryi2);border-radius:999px;overflow:hidden;margin:14px 0}
.god-progress div{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--krasn2),var(--krasn))}
.god-progress span{position:relative;display:block;text-align:center;line-height:30px;font-weight:700;font-size:14px}
.chasy{font:700 64px/1.1 var(--serif);font-variant-numeric:tabular-nums;margin-top:8px}
.segodnya-strochka{font-size:17px}
@media (max-width:640px){.chasy{font-size:44px}}

/* окно выбора города */
.gorod-okno{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:100;width:min(440px,calc(100vw - 24px));background:var(--karta);border:1px solid var(--ramka);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:18px 20px 14px;animation:go-vverh .35s ease}
@keyframes go-vverh{from{transform:translate(-50%,30px);opacity:0}to{transform:translateX(-50%);opacity:1}}
.go-vopros{font:600 20px var(--serif);margin:0 28px 12px 0}
.go-knopki{display:flex;gap:8px}
.knopka.vtor{background:var(--seryi2);color:var(--tekst)}
.go-poisk label{display:block;font:600 18px var(--serif);margin-bottom:8px}
.go-poisk input{width:100%;font:500 16px var(--shrift);padding:11px 14px;border-radius:12px;border:1px solid var(--ramka);background:var(--fon);color:var(--tekst)}
.go-rez{margin-top:8px;max-height:280px;overflow-y:auto}
.go-rez button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--ramka);padding:9px 6px;cursor:pointer;color:var(--tekst);font:500 15px var(--shrift)}
.go-rez button:hover{background:var(--seryi2)}
.go-rez small{display:block;color:var(--tusk);font-size:12px}
.go-zakryt{position:absolute;top:8px;right:10px;border:0;background:none;font-size:24px;color:var(--tusk);cursor:pointer}
.go-istochnik{margin-top:10px;font-size:11px;color:var(--tusk)}
.go-istochnik a{color:var(--tusk)}
.drugoe-chislo{background:var(--zol2);color:var(--tekst);border:1px solid color-mix(in srgb,var(--zol) 30%,transparent);border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:15px}
