/*
Theme Name: BikeJam
Theme URI: https://bikejam.pro
Author: BikeJam
Description: Тема BikeJam: шоссе и гревел для начинающих. Итальянские цвета, лёгкая типографика, светлая и тёмная тема.
Version: 1.9.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: bikejam
*/
:root{
  --j-light:#008C45; --j-dark:#3CC07F; --it-red:#CD212A; --it-red-d:#FF5A60;
  --bg:#F5F6FA; --surface:#FFFFFF; --ink:#11141C; --muted:#5B6173; --line:#DFE2EB;
  --accent:var(--j-light); --accent2:var(--it-red); --on-accent:#FFFFFF; --glass:color-mix(in srgb,var(--surface) 62%,transparent); --bolt:#F2A900; --ok:#1E8E5A; --link:#1A5FD0; --link-v:#6B3FA0;
  --f-display:"Unbounded","Arial Black",system-ui,sans-serif;
  --f-body:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:14px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E1117; --surface:#171B24; --ink:#EDEFF5; --muted:#9BA2B5; --line:#2A303E;
  --accent:var(--j-dark); --accent2:var(--it-red-d); --on-accent:#0E1117; --bolt:#FFC94A; --ok:#4CC38A; --link:#7AAEFF; --link-v:#C29BFF; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E1117; --surface:#171B24; --ink:#EDEFF5; --muted:#9BA2B5; --line:#2A303E;
  --accent:var(--j-dark); --accent2:var(--it-red-d); --on-accent:#0E1117; --bolt:#FFC94A; --ok:#4CC38A; --link:#7AAEFF; --link-v:#C29BFF; color-scheme:dark --link:#7AAEFF; --link-v:#C29BFF;}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55}
.wrap{max-width:1120px;margin-inline:auto;padding-inline:20px}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--f-display);line-height:1.08;text-wrap:balance;margin:0}
p{margin:0}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}


.tricolore{height:6px;background:linear-gradient(90deg,#008C45 0 33.33%,#F4F5F0 33.33% 66.66%,#CD212A 66.66%);box-shadow:inset 0 -1px 0 var(--line)}
.tg{position:relative;overflow:hidden}
.tg::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#008C45 0 33.33%,#F4F5F0 33.33% 66.66%,#CD212A 66.66%)}
/* шапка */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:20px;padding-block:14px;flex-wrap:wrap}
.logo{font-family:var(--f-display);font-weight:300;font-size:22px;text-decoration:none;letter-spacing:.01em}
.logo span{font-weight:400}
.logo{display:inline-flex;align-items:center;gap:8px}
.rider{height:1.35em;width:auto;flex:none}
.logo .lt{font-weight:inherit}
.logo span{color:var(--accent2)}
nav.menu{display:flex;gap:4px 18px;flex-wrap:wrap;flex:1;font-weight:500}
nav.menu a{text-decoration:none;color:var(--muted)}
nav.menu a:hover{color:var(--ink)}
.lang{display:flex;gap:2px;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--surface);font-size:13px}
.lang a{text-decoration:none;color:var(--muted);padding:4px 9px;border-radius:999px;font-weight:500}
.lang a[aria-current]{background:var(--accent);color:var(--on-accent)}
.theme{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}
.theme svg{width:20px;height:20px}
.theme .sun{display:none}
:root[data-theme="dark"] .theme .sun{display:block}
:root[data-theme="dark"] .theme .moon{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .theme .sun{display:block}:root:not([data-theme="light"]) .theme .moon{display:none}}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:500;text-decoration:none;border-radius:999px;padding:12px 22px;border:1.5px solid var(--accent);line-height:1.1}
.btn.solid{background:var(--accent);color:var(--on-accent)}
.btn.ghost{color:var(--accent)}
.btn.sm{padding:8px 14px;font-size:14px}

/* герой */
.hero{position:relative;overflow:hidden;padding-block:64px 48px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:40px;align-items:end}
.hero h1{font-size:clamp(34px,6vw,70px);font-weight:200;letter-spacing:-.01em;line-height:1.12;margin-top:16px}
.hero h1 em{font-weight:300}
.hero h1 em{font-style:normal;color:var(--accent2)}
.hero>*{position:relative}
.hero>.ghost{position:absolute;inset:auto 0 -0.12em auto;font-family:var(--f-display);font-weight:200;font-size:clamp(120px,24vw,300px);line-height:1;color:color-mix(in srgb,var(--accent2) 7%,transparent);pointer-events:none;user-select:none;white-space:nowrap;z-index:0}
@media (max-width:1099px){.hero>.ghost{display:none}}
.hero .lead{font-size:clamp(17px,1.6vw,19px);color:var(--muted);max-width:56ch;margin-top:20px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.profile{width:100%;height:56px;display:block}

/* разделы */
section.block{padding-block:64px;border-top:1px solid var(--line)}
.head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.head h2{font-size:clamp(24px,3.2vw,34px);font-weight:300;letter-spacing:0}
.head a{font-weight:500;color:var(--accent);text-decoration:none}

/* три входа */
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.door{background:var(--glass);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:grid;gap:14px;align-content:start}
.door h3{font-size:19px;font-weight:400}
.door ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.door li a{text-decoration:none;display:flex;gap:8px}
.door li a::before{content:"→";color:var(--accent);font-weight:400}
.door li a:hover{text-decoration:underline}

/* вопросы */
.qs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.q{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding-block:16px;border-bottom:1px solid var(--line);text-decoration:none}
.q .t{font-weight:400;font-size:17px}
.q:hover .t{color:var(--accent)}
.q .tag{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.q .min{font-size:13px;color:var(--muted);grid-row:span 2;align-self:center;font-variant-numeric:tabular-nums}

/* клубы */
.clubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.club{background:var(--glass);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:grid;gap:14px;align-content:start}
.club h3{font-size:20px;font-weight:400}
.ctitle{display:flex;align-items:center;gap:12px}
.club{--b:var(--brand)}
.mono{flex:none;width:44px;height:44px;border-radius:50%;background:var(--brand);color:#fff;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line);display:grid;place-items:center;font-family:var(--f-display);font-weight:400;font-size:14px}
.socs{display:flex;flex-wrap:wrap;gap:8px}
.soc{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:0;flex:none}
.soc svg{width:18px;height:18px;color:var(--accent)}
.soc:hover{border-color:var(--accent)}
.ext{color:var(--b,var(--ink));text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:2px;text-underline-offset:4px}
.ext:hover{text-decoration-thickness:3px}
.ext span[aria-hidden]{font-size:.8em}
.club .soc svg{color:var(--b)}
.soc.off{color:var(--muted);border-style:dashed}
:root[data-theme="dark"] .club{--b:var(--brand-d)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .club{--b:var(--brand-d)}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.club .meta{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;font-weight:500;padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.chip.good{border-color:var(--ok);color:var(--ok)}
.row{display:flex;justify-content:space-between;gap:12px;font-size:14px;border-top:1px dashed var(--line);padding-top:10px}
.row span:first-child{color:var(--muted)}
.bolt{color:var(--bolt);letter-spacing:1px}
.bolt .off{opacity:.25}
.crit{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}
.crit i{width:12px;height:12px;border-radius:50%;border:2px solid var(--accent);display:block}
.crit i.on{background:var(--accent)}
.note{font-size:13px;color:var(--muted);margin-top:14px}

/* дневник */
.diary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:center}
.quote{font-family:var(--f-display);font-weight:200;font-size:clamp(30px,4.6vw,52px);line-height:1.15;letter-spacing:-.01em}
.quote span{font-weight:300}
.quote span{color:var(--accent2)}
.quotebox{display:grid;gap:16px}
.qcap{color:var(--muted);font-size:17px;max-width:44ch}
.diary .card{background:var(--glass);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;gap:12px}
.diary .card h3{font-size:20px;font-weight:400}
.diary .card p{color:var(--muted)}

/* telegram */
.tg{background:var(--accent);color:var(--on-accent);border-radius:20px;padding:36px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.tg h2{font-size:clamp(24px,3.4vw,36px);font-weight:300;letter-spacing:0}
.tg p{margin-top:10px;opacity:.9;max-width:52ch}
.tg .btn{background:var(--on-accent);color:var(--accent);border-color:var(--on-accent)}


/* внутренняя страница */
.headlinks{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.lead2{color:var(--muted);font-size:17px}
.form{display:grid;gap:8px}
.form label{font-weight:500;margin-top:8px}
.form label b{color:var(--accent2);font-weight:500}
.form input:not([type]),.form textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 14px;width:100%}
.form input:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.form fieldset{border:0;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px}
.form legend{font-weight:500;margin-bottom:6px;width:100%}
.form .ck{font-weight:400;margin:0;display:flex;gap:6px;align-items:center}
.form .btn{justify-self:start;margin-top:14px;cursor:pointer;font:inherit;font-weight:500}
.err{color:var(--accent2);font-size:14px}

.entry-page{padding-block:28px 56px;max-width:720px;display:grid;gap:18px}
.crumbs{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px;font-size:14px;line-height:1.4;color:var(--muted)}
.crumbs a{color:var(--accent);text-decoration:none;font-weight:500}
.crumbs a:hover{text-decoration:underline}
.back{justify-self:start;font-weight:500;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;font-size:14px}
.entry-page h1{font-size:clamp(28px,4.4vw,44px);font-weight:300;letter-spacing:0;line-height:1.18}
.entry-page h2{font-size:21px;font-weight:400;margin-top:10px}
.entry-body{display:grid;gap:14px;font-size:17px}
.entry-body ol{margin:0;padding-left:22px;display:grid;gap:6px}
.short{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.checked{font-size:13px;color:var(--muted)}
.pg-foot{border-top:1px solid var(--line);padding-top:22px;margin-top:12px;display:grid;gap:14px}
.pg-next{display:grid;gap:8px}
.pg-next a{font-weight:500;text-decoration:none;color:var(--ink)}
.pg-next a::before{content:"→ ";color:var(--accent)}
.pg-actions{display:flex;gap:12px;flex-wrap:wrap}
footer{padding-block:40px 56px;color:var(--muted);font-size:14px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer b{color:var(--ink);font-family:var(--f-display)}

@media (max-width:860px){
  .hero{grid-template-columns:minmax(0,1fr);padding-block:36px 32px}
  .doors,.clubs{grid-template-columns:minmax(0,1fr)}
  .qs{grid-template-columns:minmax(0,1fr)}
  .diary{grid-template-columns:minmax(0,1fr)}
  .tg{grid-template-columns:minmax(0,1fr);padding:26px}
  nav.menu{order:3;flex-basis:100%}
}
@media (prefers-reduced-motion:no-preference){
  .btn,.door,.club{transition:transform .15s ease}
  .btn:hover{transform:translateY(-1px)}
}

/* WordPress */
html{scroll-padding-top:90px}
body{margin:0}
img{max-width:100%;height:auto}
.entry-body{display:grid;gap:14px;font-size:17px}
.entry-body>*{margin:0}
.entry-body ul,.entry-body ol{padding-left:22px;display:grid;gap:6px}
.entry-body a{color:var(--link)}
.entry-body h2{font-family:var(--f-display);font-size:21px;font-weight:400;margin-top:10px}
.list{display:grid;gap:0}
.pager{display:flex;gap:12px;margin-top:24px}
.notice-ok{background:var(--surface);border:1px solid var(--ok);border-radius:10px;padding:16px 18px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.menu ul{list-style:none;margin:0;padding:0;display:flex;gap:4px 18px;flex-wrap:wrap}
.menu .current-menu-item>a,.menu .current-menu-parent>a{color:var(--ink)}
.lang li{list-style:none}
.lang ul{display:flex;gap:2px;margin:0;padding:0}

/* Плашка «Другие клубы» — на всю ширину экрана */
.band{display:block;width:100vw;margin-left:calc(50% - 50vw);margin-top:8px;margin-bottom:24px;background:var(--ink);color:var(--bg);text-decoration:none;position:relative}
.band::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#008C45 0 33.33%,#F4F5F0 33.33% 66.66%,#CD212A 66.66%)}
.band-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:40px 46px}
.band .eyebrow{display:block;color:color-mix(in srgb,var(--bg) 70%,transparent);margin-bottom:10px}
.band-t{display:block;font-family:var(--f-display);font-weight:200;font-size:clamp(32px,5vw,60px);line-height:1.1}
.band-arrow{font-family:var(--f-display);font-weight:200;font-size:clamp(40px,6vw,72px);color:var(--accent);transition:transform .2s ease}
.band:hover .band-arrow{transform:translateX(8px)}
.band:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
body{overflow-x:hidden}
.citynav{display:flex;flex-wrap:wrap;gap:8px}
.citynav .chip{text-decoration:none;font-size:14px;padding:6px 12px;color:var(--ink)}
.citynav .chip:hover{border-color:var(--accent)}
.cityblock{display:grid;gap:18px;padding-top:26px;border-top:1px solid var(--line)}
.cityh{font-family:var(--f-display);font-weight:300;font-size:clamp(24px,3.2vw,34px)}

/* Наши маршруты */
.challenge{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}
.challenge h2{font-family:var(--f-display);font-weight:300;font-size:clamp(24px,3.4vw,36px);margin:4px 0 8px}
.challenge p{color:var(--muted);max-width:56ch}
.ch-score{font-family:var(--f-display);font-weight:200;font-size:56px;line-height:1;color:var(--accent);text-align:right}
.ch-score small{font-size:22px;color:var(--muted)}
.ch-badge{font-family:var(--f-body);font-size:14px;font-weight:600;color:var(--ink);margin-top:8px}
.route-filter{display:flex;gap:8px;flex-wrap:wrap}
.route-filter .chip{cursor:pointer;background:var(--surface);font:inherit;font-size:14px;padding:6px 14px;color:var(--ink)}
.route-filter .chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.route-map{height:min(60vh,520px);border-radius:var(--r);border:1px solid var(--line);overflow:hidden;background:var(--surface);z-index:0}
.routes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px}
.route{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:12px;align-content:start;scroll-margin-top:100px}
.route.is-done{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.route-top{display:flex;gap:12px;align-items:flex-start}
.route-h{display:grid;gap:8px}
.route h3{font-family:var(--f-display);font-weight:400;font-size:19px;line-height:1.2}
.route p{color:var(--muted);font-size:15px}
.route .meta{display:flex;gap:6px;flex-wrap:wrap}
.route-foot{display:flex;gap:12px 16px;align-items:center;flex-wrap:wrap;font-size:14px;border-top:1px dashed var(--line);padding-top:10px}
.route-foot a{color:var(--accent);text-decoration:none}
.done{display:flex;gap:8px;align-items:center;font-weight:500;cursor:pointer}
.done input{width:18px;height:18px;accent-color:var(--accent)}
.pin{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:13px;color:#fff;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.pin-road{background:#008C45}
.pin-gravel{background:#CD212A}
.pin-wrap{background:none;border:0}
.pin-wrap.is-done .pin{box-shadow:0 0 0 3px #F2A900,0 1px 4px rgba(0,0,0,.35)}
.leaflet-popup-content{font-family:var(--f-body)}

.pop b{display:block;font-size:15px;margin-bottom:10px}
.pop-map{max-width:100%;border-radius:10px;overflow:hidden;background:#e9ece6}
.pop-map .leaflet-tile-pane{filter:grayscale(.75) brightness(1.06) contrast(.92)}
.pop-row{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:13px}
.pop-row a{color:#008C45;font-weight:600;text-decoration:none}

.pop-map{position:relative;resize:none}
.pop-grip{position:absolute;right:0;bottom:0;width:26px;height:26px;cursor:nwse-resize;z-index:1000;touch-action:none;
  background:linear-gradient(135deg,transparent 0 45%,rgba(17,20,28,.55) 45% 52%,transparent 52% 62%,rgba(17,20,28,.55) 62% 69%,transparent 69% 79%,rgba(17,20,28,.55) 79% 86%,transparent 86%);
  border-bottom-right-radius:10px}
.pop-row{align-items:center;flex-wrap:wrap}
.pop-big{font:inherit;font-size:13px;font-weight:600;color:#11141C;background:#fff;border:1px solid #DFE2EB;border-radius:999px;padding:3px 10px;cursor:pointer}
.pop-big:hover{border-color:#008C45;color:#008C45}
.leaflet-popup.is-resizing{transition:none}
.leaflet-popup-content{width:auto!important}

.route-full{position:fixed;inset:3vh 3vw;z-index:10000;background:var(--surface);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden}
body.rf-open::before{content:"";position:fixed;inset:0;background:rgba(10,12,18,.55);z-index:9999}
.rf-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.rf-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.rf-head b{font-family:var(--f-display);font-weight:400;font-size:18px;line-height:1.25;grid-column:1}
.rf-head span{grid-column:1;grid-row:2}
.rf-close{grid-column:2;grid-row:1 / span 2}
.rf-head span{color:var(--muted);font-size:14px}
.rf-close{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.rf-map{flex:1;min-height:0}
.rf-map .leaflet-tile-pane{filter:grayscale(.6) brightness(1.05) contrast(.93)}

/* Сайт-разговор (тест) */
.chat-page{max-width:720px;margin-inline:auto;padding-block:32px 64px;display:grid;gap:22px}
.chat-hello h1{font-family:var(--f-display);font-weight:200;font-size:clamp(34px,6vw,56px);line-height:1.1;margin-top:10px}
.chat-hello h1 em{font-style:normal;color:var(--accent2);font-weight:300}
.chat{display:flex;flex-direction:column;gap:12px}
.msg{max-width:88%;padding:14px 16px;border-radius:18px;line-height:1.5;font-size:17px}
.msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:6px}
.msg.me{align-self:flex-end;background:var(--accent);color:var(--on-accent);border-bottom-right-radius:6px;font-weight:500}
.msg .tag{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent2);margin-bottom:6px}
.msg .skip{font-size:13px;color:var(--muted);margin-left:6px;white-space:nowrap}
.msg .go{display:inline-block;margin-top:10px;font-weight:600;color:var(--accent);text-decoration:none}
.msg.typing{display:flex;gap:5px;padding:16px 18px}
.msg.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);opacity:.4;animation:bjdot 1s infinite}
.msg.typing span:nth-child(2){animation-delay:.15s}.msg.typing span:nth-child(3){animation-delay:.3s}
@keyframes bjdot{50%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.msg.typing span{animation:none}}
.choices{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.choice{font:inherit;font-size:15px;font-weight:500;padding:10px 16px;border-radius:999px;border:1.5px solid var(--accent);background:var(--surface);color:var(--accent);cursor:pointer;text-align:left}
.choice:hover{background:var(--accent);color:var(--on-accent)}
.choice.muted{border-color:var(--line);color:var(--muted)}
.choice.muted:hover{background:var(--bg);color:var(--ink)}
.choice:disabled{opacity:.45;cursor:default;background:var(--surface);color:var(--muted);border-style:dashed}
.msg.article{max-width:100%;width:100%}
.msg.article h2{font-family:var(--f-display);font-weight:300;font-size:24px;margin-bottom:10px}
.msg.article .art-body{display:grid;gap:12px;font-size:16px}
.msg.article .art-body>*{margin:0}
.msg.article .art-body h2{font-size:19px;font-weight:400;margin-top:8px}
.msg.article .art-body ul,.msg.article .art-body ol{padding-left:22px}
.msg.article .art-body svg{max-width:100%;height:auto}

/* Мастерские и прокат */
.svc-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.svc-search input{font:inherit;font-size:15px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);min-width:min(100%,260px)}
.svc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px}
.svc{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:8px;align-content:start;transition:box-shadow .3s}
.svc h3{font-family:var(--f-display);font-weight:400;font-size:17px;line-height:1.25}
.svc p{color:var(--muted);font-size:14px;margin:0}
.svc .svc-hours{font-size:13px}
.svc .meta{display:flex;gap:6px;flex-wrap:wrap}
.svc.flash{box-shadow:0 0 0 3px var(--accent)}

/* Клубы: фильтры, подтверждение, низ карточки */
.club-filter{align-items:center}
.cf-gap{width:10px}
.cf-select{font:inherit;font-size:14px;padding:6px 12px;background:var(--surface);color:var(--ink);cursor:pointer}
.verified{font-size:13px;font-weight:600;color:var(--ok)}
.club-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.club-foot a{color:var(--muted);text-decoration:underline;text-decoration-color:var(--line)}
.club-foot a:hover{color:var(--accent)}

.route .row{font-size:14px}
.route-note{font-size:14px;background:var(--bg);border-radius:8px;padding:8px 10px}

/* Скрытые элементы (фильтры) — прятать всегда */
[hidden]{display:none!important}

/* Страница маршрута / мастерской */
.route-page .meta{display:flex;gap:6px;flex-wrap:wrap}
.route-one{height:min(55vh,460px)}
.route-facts{display:grid;gap:0}
.route-facts .row{font-size:15px}
.route-photo img{width:100%;height:auto;border-radius:var(--r)}
.route-link{color:inherit;text-decoration:none}
.route-link:hover{color:var(--accent)}

/* Страница клуба */
.club-page .club{max-width:640px}
.club-page .club h3{font-size:clamp(26px,4vw,36px)}
.club-feat ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:0;max-width:640px}
.club-feat li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line);font-size:15px}
.club-feat .f-ic{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;border:2px solid var(--line);color:var(--muted)}
.club-feat .f-yes .f-ic{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.club-feat .f-no .f-ic{border-color:var(--accent2);color:var(--accent2)}
.club-feat .f-v{font-size:13px;color:var(--muted)}
.club-feat h2{font-size:22px;font-weight:300}
.club-foot .more{color:var(--accent);text-decoration:none;font-weight:500}

/* Кнопка Telegram в шапке — только значок */
.tg-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(180deg,#2AABEE,#229ED9);color:#fff;flex:none}
.tg-btn svg{width:20px;height:20px;color:inherit}
.tg-btn:hover{filter:brightness(1.08)}

/* Ссылки в тексте: синие, подчёркнутые; посещённые — фиолетовые (10.10.2026) */
.entry-body a:not(.btn),.lead a,.lead2 a,.short a,.note a,.route-note a,.club-feat a,
.entry-page p a:not(.btn):not(.soc),.door li a{color:var(--link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.entry-body a:not(.btn):visited,.lead a:visited,.lead2 a:visited,.short a:visited,.note a:visited,.route-note a:visited,.club-feat a:visited,
.entry-page p a:not(.btn):not(.soc):visited,.door li a:visited{color:var(--link-v)}
.entry-body a:not(.btn):hover,.note a:hover,.door li a:hover,.entry-page p a:not(.btn):hover{text-decoration-thickness:2px}

/* Кликабельная карточка целиком: главная ссылка растягивается на всю плитку,
   телефон, значки соцсетей и доп. ссылки остаются отдельными и нажимаются поверх */
.club,.route,.svc,.diary .card{position:relative}
.stretch::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.club a:not(.stretch),.route a:not(.stretch),.svc a:not(.stretch),.route label,.route input,.route button,.diary .card a:not(.stretch){position:relative;z-index:2}
.club:has(.stretch),.route:has(.stretch),.svc:has(.stretch),.diary .card:has(.stretch){cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.club:has(.stretch):hover,.route:has(.stretch):hover,.svc:has(.stretch):hover,.diary .card:has(.stretch):hover{border-color:var(--accent);box-shadow:0 6px 22px color-mix(in srgb,var(--ink) 10%,transparent);transform:translateY(-1px)}
.stretch:focus-visible{outline:none}
.club:has(.stretch:focus-visible),.route:has(.stretch:focus-visible),.svc:has(.stretch:focus-visible){outline:3px solid var(--accent);outline-offset:3px}

/* Вкладки городов на странице клубов */
.citytabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 6px}
.citytabs .chip{text-decoration:none;font-size:14px;padding:6px 12px;color:var(--ink)}
.citytabs .chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.citytabs-note{font-size:13px;color:var(--muted)}
.city-hint{border:1px solid var(--line);background:var(--glass);border-radius:var(--r);padding:12px 16px;font-size:15px}
.foot-small{font-size:12px;color:var(--muted);flex-basis:100%}
.foot-small a{color:inherit}

/* Поиск ближайших */
.svc-find{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.near-me{cursor:pointer;font-size:14px;padding:8px 14px;color:var(--ink);background:var(--surface)}
.near{border:1px solid var(--line);background:var(--glass);border-radius:var(--r);padding:14px 18px;margin:12px 0}
.near-h{font-weight:500}
.near-list{margin:8px 0 0;padding-left:20px;display:grid;gap:4px;font-size:15px}
.near-list a{color:var(--link);text-decoration:underline}

/* Подвал: «Связаться с нами» (11.10.2026) */
.contact{flex-basis:100%}
.contact summary{display:inline-block;cursor:pointer;color:var(--link);text-decoration:underline;text-underline-offset:2px;font-weight:500;list-style:none}
.contact summary::-webkit-details-marker{display:none}
.contact summary::after{content:" ▾";text-decoration:none;display:inline-block;margin-left:2px}
.contact[open] summary::after{content:" ▴"}
.contact-list{list-style:none;margin:10px 0 0;padding:12px 16px;display:grid;gap:8px;max-width:520px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.contact-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}
.contact-list .c-what{min-width:96px;color:var(--muted)}
.contact-list a{color:var(--link);text-decoration:underline}
.c-copy{font:inherit;font-size:12px;padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);cursor:pointer}

/* Шапка на телефоне: одна строка, меню по кнопке ☰ (11.10.2026) */
.menu-btn{display:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);place-items:center;cursor:pointer;padding:0;flex:none}
.menu-btn svg{width:20px;height:20px}
@media (max-width:860px){
  header.top .wrap{gap:8px;padding-block:10px}
  header.top .logo{margin-right:auto;font-size:19px}
  .menu-btn{display:grid}
  .theme,.tg-btn,.menu-btn{width:36px;height:36px}
  .theme svg,.tg-btn svg,.menu-btn svg{width:18px;height:18px}
  .lang{padding:2px;font-size:12px}
  .lang a{padding:4px 8px}
  nav.menu{display:none;order:9;flex-basis:100%;padding:4px 0 6px}
  header.top.open nav.menu{display:block}
  nav.menu ul,.menu ul{flex-direction:column;gap:0}
  nav.menu a{display:block;padding:11px 2px;font-size:17px;border-bottom:1px solid var(--line)}
  nav.menu li:last-child a{border-bottom:0}
}
@media (max-width:400px){
  header.top .logo{font-size:16px;gap:6px}
  header.top .wrap{gap:5px}
  .theme,.tg-btn,.menu-btn{width:33px;height:33px}
  .theme svg,.tg-btn svg,.menu-btn svg{width:16px;height:16px}
  .lang a{padding:3px 6px}
}
@media (max-width:860px){
  .svc-find{flex-basis:100%;width:100%}
  .svc-find .svc-search{flex:1 1 100%}
  .svc-find .svc-search input{width:100%;box-sizing:border-box}
}
@media (max-width:340px){header.top .logo .lt{display:none}}

/* Шапка под полоской администратора WordPress (видна только вошедшим в админку) */
.admin-bar header.top{top:32px}
@media (max-width:782px){.admin-bar header.top{top:46px}}
@media (max-width:600px){.admin-bar header.top{top:0}}

/* Копия схемы для Instant View — на сайте не показываем */
.iv-only{display:none!important}
