/*
Theme Name: Nocturne Universal
Description: Универсальная тёмная тема для магазина с товарами и страницами городов. Товары, города и ссылка на Telegram редактируются через WP-админку.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: nocturne-universal
*/

:root{
  --bg:#0f0d0a; --bg-elevated:#17140f; --bg-card:#1b1712;
  --line:#2a2419; --line-soft:#221e17;
  --text:#ece4d3; --text-muted:#9b9182; --text-faint:#6b6355;
  --gold:#c7a159; --gold-deep:#8a6c34; --gold-soft:rgba(199,161,89,.14);
  --serif:'Fraunces',Georgia,serif;
  --sans:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --maxw:1180px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0;color:var(--text);}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* Header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(15,13,10,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;}
.wordmark{font-family:var(--serif);font-size:22px;letter-spacing:.02em;display:flex;align-items:baseline;gap:8px;}
.wordmark em{font-style:italic;color:var(--gold);font-weight:400;}
.nav{display:flex;gap:28px;align-items:center;}
.nav a{font-size:14.5px;color:var(--text-muted);transition:color .2s;}
.nav a:hover{color:var(--text);}

/* Telegram button */
.btn-telegram{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:#171207 !important;font-size:13px;font-weight:700;padding:9px 18px;border-radius:20px;white-space:nowrap;border:none;transition:background .2s;}
.btn-telegram:hover{background:#d6b06c;}
.nav .btn-telegram{font-size:14px;}

/* Section */
.section{padding:56px 0;}

/* Product grid */
.plain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);}
.product-plain{background:var(--bg);padding:30px 26px;display:flex;flex-direction:column;align-items:center;text-align:center;}
.product-plain .product-thumb{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;margin-bottom:18px;}
.product-plain .product-thumb-placeholder{width:100%;aspect-ratio:4/3;background:var(--bg-elevated);border:1px solid var(--line);border-radius:4px;margin-bottom:18px;display:flex;align-items:center;justify-content:center;}
.product-plain .product-thumb-placeholder svg{opacity:.3;}
.product-plain h3{font-size:20px;margin-bottom:16px;text-align:center;}
.product-plain .price-row{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;width:100%;}

/* Cities list */
.cities-index{columns:4;column-gap:32px;}
.cities-index li{break-inside:avoid;padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:14.5px;}
.cities-index a{color:var(--text-muted);}
.cities-index a:hover{color:var(--gold);}

/* City/page hero */
.city-hero{padding:48px 0 0;}
.city-hero h1{font-size:clamp(28px,4vw,42px);margin-bottom:16px;}
.city-about{color:var(--text-muted);font-size:16.5px;line-height:1.75;max-width:70ch;}

/* Page content */
.page-content{color:var(--text-muted);font-size:16.5px;line-height:1.75;}
.page-content ul{list-style:disc;padding-left:24px;}
.page-content li{margin-bottom:8px;}

/* Footer */
.site-footer{border-top:1px solid var(--line-soft);padding:32px 0;}
.footer-bottom{display:flex;justify-content:space-between;color:var(--text-faint);font-size:13px;flex-wrap:wrap;gap:12px;}

/* Section heading */
.section-num{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:15px;margin-bottom:10px;display:block;}

/* Responsive */
@media(max-width:920px){.plain-grid{grid-template-columns:repeat(2,1fr);}.cities-index{columns:2;}.container{padding:0 20px;}}
@media(max-width:560px){.plain-grid{grid-template-columns:1fr;}.cities-index{columns:1;}.site-header .bar{padding:16px 20px;}}
