/* SnowyBanffTrail — Swiss alpine editorial. No external resources. */
:root{
  --bg:#F8FAFC; --ink:#1A1F26; --ink2:#21262C; --muted:#677078; --muted2:#7F8C95;
  --line:#E1E5E8; --line2:#EBEEF1; --accent:#345E7E; --accent2:#4d6b7c;
  --surf:#ffffff; --surf2:#F4F6F8; --accent3:#C99544;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.5;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;}
::selection{background:var(--accent);color:#fff;}
.mono{font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px;}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:40;background:rgba(251,252,253,0.92);
  backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);}
.head-row{height:66px;display:flex;align-items:center;gap:30px;}
.brand{display:flex;align-items:center;gap:11px;flex:none;}
.brand .mark{width:13px;height:13px;background:var(--accent);transform:rotate(45deg);border-radius:2px;}
.brand .name{font-size:18px;font-weight:700;letter-spacing:-0.02em;}
.nav{display:flex;align-items:center;gap:4px;margin-left:8px;}
.nav a{padding:7px 12px;font-size:14.5px;font-weight:500;color:#5A646C;
  border-bottom:2px solid transparent;letter-spacing:0.01em;}
.nav a:hover{color:var(--ink);}
.nav a.active{color:var(--ink);border-bottom-color:var(--accent);}
.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:#F1F4F6;
  border:1px solid var(--line);border-radius:7px;padding:7px 12px;width:215px;}
.search .ic{width:14px;height:14px;border:1.6px solid #9AA7B0;border-radius:50%;flex:none;}
.search input{border:none;background:transparent;outline:none;font-size:14px;width:100%;color:var(--ink);font-family:inherit;}
.burger{display:none;margin-left:auto;width:40px;height:40px;border:1px solid var(--line);
  background:var(--surf);border-radius:8px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;}
.burger span{width:18px;height:2px;background:var(--ink);border-radius:2px;}

/* ---------- featured hero ---------- */
.hero{display:grid;grid-template-columns:1.32fr 1fr;gap:44px;align-items:center;padding:44px 0 8px;}
.hero .cover{aspect-ratio:16/10;}
.kicker{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.cat{font-size:11.5px;font-weight:700;letter-spacing:0.13em;text-transform:uppercase;color:var(--accent);}
.dot{width:4px;height:4px;border-radius:50%;background:#C3CCD2;flex:none;}
.tiny{font-size:13px;color:var(--muted2);}
.hero h1{margin:0 0 16px;font-size:38px;line-height:1.12;letter-spacing:-0.025em;font-weight:700;text-wrap:balance;}
.hero .dek{margin:0 0 22px;font-size:18px;line-height:1.6;color:#525B63;max-width:46ch;}
.byline{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);}
.byline .av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;}
.byline b{color:var(--ink);font-weight:600;}

/* ---------- covers (inline svg) ---------- */
.cover{border-radius:4px;overflow:hidden;border:1px solid var(--line);background:#E3E9ED;}
.cover svg{width:100%;height:100%;}

/* ---------- tabs ---------- */
.tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);margin-top:34px;}
.tabs a{padding:13px 16px;font-size:15px;font-weight:500;color:var(--muted);
  border-bottom:2px solid transparent;margin-bottom:-1px;letter-spacing:0.01em;}
.tabs a:hover{color:var(--ink);}
.tabs a.active{font-weight:700;color:var(--ink);border-bottom-color:var(--accent);}
.tabs .count{margin-left:auto;font-size:13px;color:#9AA7B0;}

/* ---------- grid + cards ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(316px,1fr));gap:38px 32px;padding-top:30px;}
.card{display:flex;flex-direction:column;}
.card .cover{aspect-ratio:16/10;margin-bottom:15px;}
.card .meta{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.card .meta .cat{font-size:10.5px;color:var(--accent2);}
.card .star{font-size:12.5px;color:var(--accent);font-weight:600;}
.card h3{margin:0 0 9px;font-size:20px;line-height:1.24;letter-spacing:-0.015em;font-weight:700;text-wrap:pretty;}
.card h3 a:hover{color:var(--accent);}
.card .ex{margin:0 0 13px;font-size:14.5px;line-height:1.55;color:#626B72;text-wrap:pretty;}
.card .foot{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted2);}
.card .foot b{font-weight:600;color:#46505A;}
.is-hidden{display:none !important;}

.more{display:flex;justify-content:center;padding:44px 0 8px;}
.btn{background:var(--surf);border:1px solid #CDD6DC;border-radius:8px;padding:13px 30px;
  font-size:14.5px;font-weight:600;color:var(--ink);cursor:pointer;letter-spacing:0.01em;font-family:inherit;}
.btn:hover{border-color:var(--accent);color:var(--accent);}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-primary:hover{background:#345c78;color:#fff;}

/* ---------- evergreen rail ---------- */
.rail-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;
  border-top:1px solid var(--line);padding-top:30px;margin-top:52px;}
.rail-head h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-0.02em;}
.rail{display:flex;gap:22px;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory;}
.rail .gcard{flex:none;width:280px;scroll-snap-align:start;border:1px solid var(--line);border-radius:5px;
  padding:18px;background:var(--surf);display:flex;flex-direction:column;gap:11px;}
.rail .gcard:hover{border-color:#CBD5DB;}
.rail .gcard h4{margin:0;font-size:17px;line-height:1.3;font-weight:700;letter-spacing:-0.01em;}
.rail .gcard p{margin:0;font-size:13.5px;line-height:1.5;color:#677078;}
.rail .gcard .auth{margin-top:4px;font-size:12.5px;color:var(--muted2);font-weight:600;}

/* ---------- footer ---------- */
.site-foot{margin-top:64px;border-top:1px solid var(--line);background:var(--surf2);}
.foot-grid{padding:48px 0 30px;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px;}
.foot-grid .blurb{font-size:13.5px;line-height:1.6;color:#677078;max-width:40ch;margin:14px 0 0;}
.foot-col .h{font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted2);margin-bottom:14px;}
.foot-col .links{display:flex;flex-direction:column;gap:9px;font-size:13.5px;color:#46505A;}
.foot-col .links a:hover{color:var(--accent);}
.foot-bar{padding:18px 0 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;
  align-items:center;font-size:12.5px;color:var(--muted2);}

/* ---------- article ---------- */
.crumb{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted2);margin:30px 0;flex-wrap:wrap;}
.crumb a:hover{color:var(--accent2);}
.crumb .here{color:#46505A;}
.article-wrap{display:flex;gap:56px;align-items:flex-start;flex-wrap:wrap;max-width:1100px;margin:0 auto;}
.article{flex:1 1 600px;max-width:680px;}
.article h1{margin:0 0 18px;font-size:40px;line-height:1.1;letter-spacing:-0.028em;font-weight:700;text-wrap:balance;}
.article .dek{margin:0 0 26px;font-size:20px;line-height:1.5;color:#525B63;text-wrap:pretty;}
.article .byline{padding-bottom:26px;border-bottom:1px solid var(--line);}
.article .byline .av{width:34px;height:34px;font-size:14px;}
.article figure{margin:30px 0 8px;}
.article figure .cover{aspect-ratio:16/9;}
.article figcaption{margin-top:9px;font-size:12.5px;color:var(--muted2);}
.body{padding-top:18px;}
.body p{margin:0 0 22px;font-size:18px;line-height:1.72;color:var(--ink2);}
.body h2{margin:44px 0 14px;font-size:26px;line-height:1.22;letter-spacing:-0.015em;font-weight:700;}
.body h3{margin:32px 0 12px;font-size:20px;line-height:1.3;font-weight:700;letter-spacing:-0.01em;}
.body ul,.body ol{margin:0 0 22px;padding-left:22px;color:var(--ink2);font-size:18px;line-height:1.7;}
.body li{margin-bottom:8px;}
.body blockquote{margin:34px 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);
  font-size:23px;line-height:1.42;color:var(--ink);font-weight:500;}
.body em{font-style:italic;}

.verdict{margin:38px 0 6px;border:1px solid #E0E6EA;border-radius:6px;overflow:hidden;}
.verdict .top{display:flex;align-items:center;gap:16px;padding:18px 22px;background:#F4F7F8;border-bottom:1px solid var(--line);}
.verdict .score{font-size:30px;font-weight:700;letter-spacing:-0.02em;}
.verdict .top .lbl{margin-left:auto;font-size:13px;color:var(--muted2);}
.verdict .cols{display:grid;grid-template-columns:1fr 1fr;}
.verdict .col{padding:18px 22px;}
.verdict .col.plus{border-right:1px solid var(--line);}
.verdict .col .h{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:9px;}
.verdict .col.plus .h{color:var(--accent);}
.verdict .col.minus .h{color:#9C6A57;}
.verdict .col p{margin:0;font-size:14.5px;line-height:1.6;color:#46505A;}

.tags{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0 0;}
.tags a{font-size:12.5px;color:#46505A;background:var(--surf2);border:1px solid var(--line);
  border-radius:20px;padding:5px 13px;}
.tags a:hover{border-color:var(--accent);color:var(--accent);}

/* ---------- rating block ---------- */
.rating{margin:46px 0 0;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.rating .row{display:flex;gap:36px;align-items:flex-start;flex-wrap:wrap;}
.rating .h{font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted2);margin-bottom:10px;}
.rating .avg{display:flex;align-items:flex-end;gap:9px;}
.rating .avg b{font-size:46px;font-weight:700;letter-spacing:-0.03em;line-height:1;}
.rating .avg span{font-size:16px;color:var(--muted2);margin-bottom:6px;}
.rating .based{margin-top:8px;font-size:13px;color:var(--muted2);}
.rating .hist{flex:1 1 280px;min-width:240px;}
.hist .hrow{display:flex;align-items:center;gap:11px;margin-bottom:7px;}
.hist .hrow .s{font-size:12.5px;color:#677078;width:26px;font-variant-numeric:tabular-nums;}
.hist .bar{flex:1;height:8px;background:#EAEEF1;border-radius:5px;overflow:hidden;}
.hist .bar i{display:block;height:100%;background:var(--accent);border-radius:5px;}
.hist .pct{font-size:12px;color:#9AA7B0;width:34px;text-align:right;font-variant-numeric:tabular-nums;}
.rate{margin-top:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.stars{display:flex;align-items:center;gap:3px;}
.stars button{background:none;border:none;cursor:pointer;font-size:27px;line-height:1;padding:2px;color:#D2DAE0;font-family:inherit;}
.stars button.on{color:var(--accent);}
.rate .note{font-size:13px;color:var(--muted2);}

/* ---------- comments ---------- */
.comments{margin:42px 0 0;}
.comments h2{margin:0 0 24px;font-size:22px;font-weight:700;letter-spacing:-0.02em;}
.compose{border:1px solid var(--line);border-radius:7px;padding:16px;margin-bottom:30px;background:var(--surf);}
.compose textarea{width:100%;border:none;outline:none;resize:vertical;font-size:14.5px;line-height:1.55;
  color:var(--ink);background:transparent;font-family:inherit;min-height:62px;}
.compose .bar{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:12px;border-top:1px solid var(--line2);gap:12px;}
.compose .hint{font-size:12px;color:#9AA7B0;}
.compose .post{background:var(--accent);border:none;color:#fff;border-radius:7px;padding:9px 20px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;}
.thread{display:flex;flex-direction:column;gap:24px;}
.cmt{display:flex;gap:12px;}
.cmt .av{flex:none;width:34px;height:34px;border-radius:50%;color:#fff;display:flex;align-items:center;
  justify-content:center;font-weight:600;font-size:14px;}
.cmt .ch{display:flex;align-items:center;gap:9px;margin-bottom:4px;flex-wrap:wrap;}
.cmt .nick{font-size:14px;font-weight:600;}
.cmt .date{font-size:12px;color:#9AA7B0;white-space:nowrap;}
.cmt .txt{margin:0;font-size:14.5px;line-height:1.6;color:#3A434B;}
.cmt.author .nick{color:var(--accent);}
.reply{margin:16px 0 0 46px;}
.reply .av{width:30px;height:30px;font-size:13px;}

/* ---------- sidebar ---------- */
.aside{flex:1 1 240px;max-width:300px;position:sticky;top:90px;}
.aside .box{border:1px solid var(--line);border-radius:7px;padding:20px;background:var(--surf);margin-bottom:24px;}
.aside .ah{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.aside .ah .av{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px;}
.aside .ah .nm{font-size:15px;font-weight:700;}
.aside .ah .rl{font-size:12.5px;color:var(--muted2);}
.aside .box p{margin:0;font-size:13.5px;line-height:1.6;color:#626B72;}
.aside .lab{font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted2);margin-bottom:16px;}
.aside .rel{display:flex;flex-direction:column;gap:16px;}
.aside .rel a .rc{font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent2);}
.aside .rel a h5{margin:5px 0 0;font-size:14.5px;line-height:1.35;font-weight:700;letter-spacing:-0.01em;}
.aside .rel a:hover h5{color:var(--accent);}

.art-foot{margin-top:64px;border-top:1px solid var(--line);padding:30px 0 50px;display:flex;
  justify-content:space-between;align-items:center;font-size:12.5px;color:var(--muted2);}
.art-foot a{color:var(--accent);font-weight:600;}

/* ---------- generic prose page (about/legal) ---------- */
.page{max-width:720px;margin:0 auto;}
.page h1{font-size:38px;line-height:1.12;letter-spacing:-0.025em;font-weight:700;margin:36px 0 8px;}
.page .lead{font-size:19px;line-height:1.55;color:#525B63;margin:0 0 30px;}
.page h2{font-size:23px;font-weight:700;letter-spacing:-0.015em;margin:38px 0 12px;}
.page p{font-size:17px;line-height:1.7;color:var(--ink2);margin:0 0 18px;}
.page ul{font-size:17px;line-height:1.7;color:var(--ink2);padding-left:22px;margin:0 0 18px;}
.page li{margin-bottom:7px;}
.team{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0 8px;}
.team .m{border:1px solid var(--line);border-radius:8px;padding:20px;background:var(--surf);}
.team .m .top{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.team .m .av{width:46px;height:46px;border-radius:50%;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px;}
.team .m .nm{font-size:16px;font-weight:700;}
.team .m .rl{font-size:12.5px;color:var(--muted2);}
.team .m p{font-size:14px;line-height:1.6;color:#626B72;margin:0;}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(12px);z-index:90;
  background:var(--ink);color:#fff;padding:13px 22px;border-radius:9px;font-size:14px;font-weight:500;
  box-shadow:0 10px 34px rgba(31,36,43,0.28);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- responsive ---------- */
.mobile-nav{display:none;}
@media(max-width:860px){
  .foot-grid{grid-template-columns:1fr;gap:28px;}
}
@media(max-width:760px){
  .wrap{padding:0 20px;}
  .nav,.search{display:none;}
  .burger{display:flex;}
  .mobile-nav{display:none;border-bottom:1px solid var(--line);background:var(--bg);}
  .mobile-nav.open{display:block;}
  .mobile-nav a{display:block;padding:14px 20px;font-size:16px;border-bottom:1px solid var(--line2);color:var(--ink);}
  .hero{grid-template-columns:1fr;gap:22px;padding-top:28px;}
  .hero h1{font-size:30px;}
  .article-wrap{gap:36px;}
  .aside{position:static;max-width:100%;flex-basis:100%;}
  .article h1{font-size:30px;}
  .article .dek{font-size:18px;}
  .verdict .cols{grid-template-columns:1fr;}
  .verdict .col.plus{border-right:none;border-bottom:1px solid var(--line);}
  .team{grid-template-columns:1fr;}
  .page h1{font-size:30px;}
}
