/* ============================================================
   chc.bike — "avision" layout skin
   Restyles the existing DOM/classes (chc.css + premium.css) into the
   flat, editorial, rust-accented grid seen at avision.vawl.dev.
   No new markup required — loads after premium.css and overrides.
   ============================================================ */

:root {
  --av-ink: #16130f;
  --av-rust: #3d7d27;
  --av-rust-dark: #2c5c1c;
  --av-line: rgba(22,19,15,.14);
  --av-line-strong: rgba(22,19,15,.5);
  /* replace every orange token with the green accent */
  --red-032:      #3d7d27;
  --red-032-dark: #2c5c1c;
  --red-500:      #3d7d27;
  --red-700:      #2c5c1c;
}
:root, :root[data-dir="paper"], :root[data-dir="press"] { --accent: #3d7d27 !important; --accent-strong: #2c5c1c !important; }
:root[data-dir="ink"] { --accent: #5fa83f !important; --accent-strong: #7fc25f !important; }
[data-dir="press"] { --feature-bg: #3d7d27 !important; --feature-grad: linear-gradient(115deg, #3d7d27 0%, #2c5c1c 100%) !important; }

/* kill rounded corners, shadows, blur, glow everywhere — flat & graphic */
* { border-radius: 0 !important; }
.hero-canvas, .hero-glow, .world-ic, .float-top, .back-to-top { box-shadow: none !important; }

body { letter-spacing: .002em; }

/* ---------- nav: logo left, links centered, controls right (avision layout) ---------- */
.chc-nav {
  background: var(--page-bg) !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  border-bottom: 1px solid var(--av-line-strong) !important;
}
.nav-inner {
  padding-top: 20px; padding-bottom: 20px;
  grid-template-columns: auto 1fr auto !important;
}
.nav-inner { grid-template-columns: 1fr auto 1fr !important; }
.nav-brand { grid-column: 2; justify-self: center !important; order: 0; }
.nav-links { grid-column: 1; justify-self: start !important; order: -1; }
.nav-right { grid-column: 3; justify-self: end !important; order: 1; }
.nav-brand .emblem { width: 51px; height: 51px; }
.nav-links a, .nav-cta {
  text-transform: lowercase !important; font-size: 14.4px !important;
  letter-spacing: .12em !important; font-weight: 600 !important; opacity: .78;
}
.nav-links .nav-ic { display: none !important; }
.nav-links a[aria-current="page"] { text-decoration: none; }
.mobile-menu a { text-transform: lowercase !important; letter-spacing: .04em; }

/* ---------- buttons ---------- */
.btn {
  border: 1px solid var(--av-ink) !important; background: var(--av-ink) !important; color: #fff !important;
  letter-spacing: .08em !important; font-size: 12.5px !important; padding: 15px 30px !important;
}
.btn:hover { background: var(--av-rust) !important; border-color: var(--av-rust) !important; }
.btn--ghost { background: transparent !important; color: var(--av-ink) !important; border-color: var(--av-line-strong) !important; }
.btn--ghost:hover { color: var(--av-rust) !important; border-color: var(--av-rust) !important; }
.btn--on-feature { background: #fff !important; color: #16130f !important; border-color: #fff !important; text-transform: lowercase !important; }
.btn--on-feature:hover { background: rgba(255,255,255,.86) !important; border-color: rgba(255,255,255,.86) !important; color: #16130f !important; }

/* ---------- type ---------- */
.eyebrow {
  color: var(--page-faint) !important; letter-spacing: .28em !important; font-weight: 600 !important;
}
.eyebrow::before { display: none; }
.display { letter-spacing: -.01em !important; }
.dot { color: var(--av-rust) !important; }
.section { padding: clamp(3.5rem, 6vw, 6.5rem) 0 !important; }

/* two-line section headings (e.g. "das portfolio.") must reserve full height —
   flex rows above/below must not center-collapse or clip the wrapped line */
.row.wrap { align-items: flex-start !important; }
.display--lg, .display--xl { line-height: 1.05 !important; text-wrap: wrap !important; }
/* defensive: guarantee no overlap with the row below even if a fallback
   font (during load) wraps a heading to an extra line */
#portfolio > .container > .row.wrap { margin-bottom: calc(var(--space-6) + 2.4rem) !important; }

/* ---------- hero: flatten decorative canvas ---------- */
.hero-canvas, .hero-glow, .hero-veil { display: none !important; }
.hero { min-height: 0 !important; align-items: flex-start !important; border-bottom: 1px solid var(--av-line); }
.hero-inner { padding-top: 5.6rem !important; padding-bottom: 2rem !important; }
/* top hero: small eyebrow+lede at left, big headline set right — avision two-block layout */
.hero .hero-inner .container {
  display: grid !important; grid-template-columns: 1fr 1.3fr !important;
  align-items: start !important; column-gap: clamp(1.5rem, 5vw, 4rem);
}
.hero .hero-inner .container .eyebrow { grid-column: 1; grid-row: 1; }
.hero .hero-inner .container .lede {
  grid-column: 1; grid-row: 2; margin-top: 14px !important; max-width: 30ch !important;
  font-size: .95rem !important; text-transform: lowercase; letter-spacing: .02em; line-height: 1.5 !important;
}
.display, .eyebrow, .footer-col h4, .folio-ch-title, .rcat-title, .cf-group-label, .index-num { text-transform: lowercase !important; }
.display { line-height: 1.08 !important; }
.hero .hero-inner .container .display--hero {
  grid-column: 2; grid-row: 1 / span 2; justify-self: end; text-align: right;
}
@media (max-width: 760px) {
  .hero .hero-inner .container { grid-template-columns: 1fr !important; }
  .hero .hero-inner .container .display--hero { grid-column: 1; grid-row: auto; justify-self: start; text-align: left; margin-top: 24px; }
  .hero .hero-inner .container .lede { grid-column: 1; grid-row: auto; }
}
.page-hero .hero-glow { display: none !important; }
.page-hero { border-bottom: 1px solid var(--av-line); padding-bottom: clamp(2.5rem, 5vw, 4rem); }

/* ---------- image strip (running mix of the 3 areas) ---------- */
.img-strip { border-bottom: 1px solid var(--av-line); background: var(--page-bg); }
.img-strip-track { display: flex; width: max-content; animation: strip-scroll 100s linear infinite; }
.strip-item { flex: none; width: clamp(320px, 40vw, 520px); height: clamp(300px, 34vw, 460px); text-decoration: none; }
.strip-item img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
@media (prefers-reduced-motion: reduce) { .img-strip-track { animation: none; } }
.img-strip:hover .img-strip-track { animation-play-state: paused; }

/* mobile: auto-scroll can't be tracked/paused by touch, so swap it for a
   swipeable native scroller — full-width snap-scrolling instead */
@media (max-width: 720px) {
  .img-strip { overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
  .img-strip-track { animation: none !important; width: max-content; }
  .strip-item { width: 78vw; height: 62vw; scroll-snap-align: center; }
}
@media (min-width: 721px) { .img-strip { overflow: hidden; } }
@keyframes strip-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ---------- three worlds → editorial list rows ---------- */
.worlds { display: block !important; border-top: 1px solid var(--av-line-strong); }
.world {
  position: relative !important; display: flex !important; align-items: center; justify-content: space-between;
  gap: var(--space-5); min-height: 0 !important; background: transparent !important; border: none !important;
  border-bottom: 1px solid var(--av-line-strong) !important; box-shadow: none !important;
  padding: clamp(1.4rem, 3vw, 2.4rem) 4px !important; overflow: visible !important;
  transform: none !important;
}
.world .ph {
  position: absolute !important; inset: auto !important; left: 68px; top: 50%;
  width: 190px; height: 130px; transform: translateY(-50%) scale(.94);
  opacity: 0; transition: opacity .3s ease, transform .3s ease; z-index: 5; pointer-events: none;
}
.world:hover .ph { opacity: 1; transform: translateY(-50%) scale(1); }
.world .scrim { display: none !important; }
.world-top {
  position: static !important; display: flex !important; align-items: center; gap: var(--space-5);
  padding: 0 !important; transform: none !important; flex: none;
}
.world-num { color: var(--page-faint) !important; opacity: 1 !important; font-size: .95rem !important; }
.world-ic { display: none !important; }
.world .world-body {
  position: static !important; inset: auto !important; padding: 0 !important; transform: none !important;
  display: flex !important; align-items: center; gap: clamp(1rem, 3vw, 2.4rem); flex: 1; min-width: 0;
}
.world-pillar { display: none !important; }
.world .wtitle {
  color: var(--page-strong) !important; font-size: clamp(1.6rem, 4.4vw, 3.1rem) !important;
  text-transform: lowercase; font-weight: 600; white-space: nowrap;
}
.world .wline { display: none; }
.world .wgo {
  margin-left: auto; flex: none; color: var(--page-muted) !important; border: none !important;
  padding: 0 !important; background: none !important; text-transform: lowercase; letter-spacing: .1em; font-size: 12px !important;
}
.world:hover .wtitle { color: var(--av-rust) !important; }
@media (max-width: 720px) {
  .world .ph { display: none; }
  .world .world-body { flex-wrap: wrap; }
  .world .wgo { margin-left: 0; }
}

/* ---------- feature / CTA band: flat rust ---------- */
.feature { background: var(--av-rust) !important; background-image: none !important; }
.feature .eyebrow { color: rgba(255,255,255,.7) !important; }
.feature-quote { color: #fff !important; }

/* ---------- partners row ---------- */
.partner-row { justify-content: center; gap: var(--space-6) !important; border-top: 1px solid var(--av-line); padding-top: var(--space-6); }
.partner-logo { opacity: .85; transition: opacity .2s; border: none !important; background: none !important; }
.partner-logo:hover { opacity: 1; }

/* ---------- generic cards (cycling/cooking/creating grids) ---------- */
.card { border: 1px solid var(--av-line-strong) !important; box-shadow: none !important; }
.card--interactive:hover { transform: none !important; box-shadow: none !important; border-color: var(--av-rust) !important; }
.tag { border-radius: 0 !important; background: transparent !important; border: 1px solid var(--av-line-strong) !important; color: var(--page-text) !important; }

/* ---------- icons: minimal, monochrome, no badges (logo mark excluded) ---------- */
svg:not(.emblem) {
  stroke-width: 1.3 !important;
  color: currentColor;
  opacity: .7;
}
.world-ic, .nav-ic, .mnav-ic { display: none !important; } /* redundant badges stay hidden — no icon needed alongside text labels */
.tag svg, .cf-chip svg, .rcat-title svg { opacity: .6; }
[class*="ic"] svg, .card svg { background: none !important; }
/* strip any colored icon-badge backgrounds down to bare glyphs */
.world-ic, .footer-ic, .spec-ic { background: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }

/* ---------- restore normal system cursor everywhere ---------- */
html.chc-cursor, html.chc-cursor * { cursor: auto !important; }
.cursor-dot, .cursor-ring, .cursor-label { display: none !important; }
.chc-footer { border-top: 1px solid var(--av-line-strong) !important; padding-top: clamp(3rem,6vw,5rem) !important; }
.footer-top { align-items: stretch !important; text-align: left !important; flex-direction: row !important; justify-content: space-between; flex-wrap: wrap; gap: var(--space-7) !important; }
.footer-brand { align-items: flex-start !important; max-width: 34ch; }
.footer-emblem .emblem { margin: 0 !important; }
.footer-tag { text-align: left; }
.footer-cols { text-align: left !important; grid-template-columns: repeat(3, auto) !important; justify-content: flex-end !important; }
.footer-col { text-align: left !important; }
.footer-col nav { align-items: flex-start !important; }
.footer-col h4 { letter-spacing: .22em !important; }
.footer-legal, .footer-bar { text-transform: lowercase !important; letter-spacing: .08em !important; font-size: 11.5px !important; }
@media (max-width: 820px){ .footer-top { flex-direction: column !important; } .footer-cols { justify-content: flex-start !important; } }

