/* Shared site header */
/* Shared site header: hover opens the theory menu;
  click can pin or dismiss it. */
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(252,250,245,.97)!important;
  border-bottom:1px solid var(--cj-line);
  border-color:var(--cj-line)!important;
  box-shadow:0 3px 16px rgba(43,55,45,.035)
}
.header-inner {
  max-width:1440px;
  min-height:104px;
  margin:0 auto;
  padding:12px 28px;
  display:flex;
  align-items:center;
  gap:clamp(20px,2.2vw,34px)
}
.header-logo {
  display:block;
  flex:none;
  width:76px;
  height:76px
}
.header-logo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain
}
.main-nav {
  display:flex;
  align-items:center;
  gap:clamp(18px,2vw,30px);
  min-width:0
}
.main-nav>a {
  font-size:18px;
  line-height:1.4;
  color:var(--cj-ink);
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer
}
.main-nav>a:hover,.main-nav>a:focus-visible {
  color:var(--cj-green)!important
}.site-menu-toggle,.site-burger {
  display:none
}
.site-search {
  position:relative;
  flex:0 1 300px;
  width:min(300px,24vw);
  margin-left:auto
}
.site-search-form {
  display:flex;
  align-items:center;
  min-height:46px;
  border:1px solid var(--cj-line);
  border-radius:999px;
  background:var(--cj-paper);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.site-search-form:focus-within {
  border-color:var(--cj-green);
  background:var(--cj-paper-light);
  box-shadow:0 0 0 3px rgba(77,104,84,.15)
}
.site-search-input {
  width:100%;
  min-width:0;
  padding:0 8px 0 17px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--cj-ink);
  font:inherit;
  font-size:16px;
  line-height:1.4
}
.site-search-input::placeholder {
  color:#7b8492
}
.site-search-submit {
  display:grid;
  place-items:center;
  flex:none;
  width:40px;
  height:40px;
  margin-right:3px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--cj-green-deep);
  cursor:pointer
}
.site-search-submit:hover {
  background:var(--cj-green-soft);
  color:var(--cj-green-deep)
}
.site-search-submit svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round
}
.site-search-results {
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  z-index:60;
  width:min(420px,calc(100vw - 32px));
  max-height:min(70vh,560px);
  overflow:auto;
  padding:8px;
  border:1px solid var(--cj-line);
  border-radius:14px;
  background:var(--cj-paper-light);
  box-shadow:0 14px 36px rgba(25,31,42,.18)
}
.site-search-results[hidden] {
  display:none
}
.site-search-result {
  display:block;
  padding:11px 12px;
  border-radius:9px;
  color:#263044;
  text-decoration:none
}
.site-search-result:hover,.site-search-result:focus-visible {
  outline:0;
  background:#f4f6f1
}
.site-search-result strong {
  display:block;
  font-size:15px;
  line-height:1.45
}
.site-search-result small {
  display:block;
  margin-top:3px;
  color:#667085;
  font-size:12px;
  line-height:1.55
}
.site-search-status {
  margin:3px 8px 8px;
  color:#667085;
  font-size:13px
}
.site-search-all {
  display:block;
  margin-top:5px;
  padding:11px 12px;
  border-top:1px solid #eceef1;
  color:#52613a;
  font-size:14px;
  font-weight:700;
  text-align:center;
  text-decoration:none
}
.site-search-all:hover {
  text-decoration:underline;
  text-underline-offset:3px
}
.site-search-label {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
@media(max-width:1050px) {
  .header-inner {
  gap:28px
}
.main-nav {
  gap:26px
}
.main-nav>a {
  font-size:18px
}
}
@media(max-width:1050px) and (min-width:761px) {
  .site-search {
  flex-basis:240px;
  width:240px
}
.site-search-input {
  font-size:14px
}
.header-inner {
  min-height:92px;
  padding:10px 22px;
  gap:20px
}
.header-logo { width:64px; height:64px }
.main-nav { gap:18px }
.main-nav>a { font-size:17px }
}
@media(max-width:760px) {
  .header-inner {
position:relative;
min-height:76px;
padding:8px 16px;
gap:10px
}
.header-logo {
width:54px;
height:54px
}
.site-search {
  flex:1 1 auto;
  width:auto;
  min-width:0;
  margin-left:0
}
.site-search-form {
  min-height:42px
}
.site-search-input {
  padding-left:13px;
  font-size:14px
}
.site-search-submit {
  width:36px;
  height:36px
}
.site-burger {
  display:block;
  margin-left:0;
  font-size:28px;
  cursor:pointer;
  color:#394253
}
.site-menu-toggle {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.main-nav {
display:none;
position:absolute;
top:76px;
left:0;
right:0;
background:var(--cj-paper-light);
align-items:stretch;
flex-direction:column;
gap:0;
padding:8px 16px 14px;
box-shadow:0 8px 16px rgba(0,0,0,.12)
}
#site-menu-toggle:checked~.main-nav {
  display:flex
}
.main-nav>a {
padding:11px 8px;
font-size:16px
}
.site-search-results {
  right:-2px;
  top:calc(100% + 8px)
}
}
/* Shared site footer */
.site-footer {
  position:relative;
  background:#374151;
  color:#f5f6f8;
  margin-top:40px;
  min-height:240px;
  padding:24px 0 26px
}
.footer-inner {
  max-width:1370px;
  min-height:104px;
  margin:0 auto;
  padding:0 26px;
  display:flex;
  align-items:center;
  gap:clamp(18px,2vw,30px)
}
.footer-logo {
  display:block;
  flex:none;
  width:80px;
  height:80px
}
.footer-logo img {
  width:100%;
  height:100%;
  object-fit:contain
}
.footer-nav {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:clamp(18px,2vw,30px);
  flex:1;
  white-space:nowrap
}
.footer-nav a {
  color:#fff;
  text-decoration:none;
  font-size:20px
}
.footer-nav a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}
.footer-social {
  display:flex;
  align-items:center;
  gap:28px;
  margin-left:12px
}
.footer-social a {
  display:flex;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  flex:none
}
.footer-social svg {
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round
}
.footer-social svg .dot {
  fill:currentColor;
  stroke:none
}
.footer-social .social-threads svg,.footer-social .social-discord svg {
  width:28px;
  height:28px;
  fill:currentColor;
  stroke:none
}
.back-to-top {
  position:fixed;
  right:18px;
  bottom:18px;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#050505;
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:20
}
.back-to-top svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.3;
  stroke-linecap:round;
  stroke-linejoin:round
}
@media(max-width:1050px) {
  .footer-inner {
  gap:26px
}
.footer-nav {
  gap:14px
}
.footer-nav a {
  font-size:17px
}
.footer-social {
  gap:14px;
  margin-left:0
}
}
@media(max-width:760px) {
  .footer-inner {
  min-height:0;
  padding:18px 20px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:18px
}
.footer-logo {
  width:64px;
  height:64px
}
.footer-nav {
  flex:1 1 100%;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px 20px;
  white-space:normal;
  order:2
}
.footer-nav a {
  font-size:16px
}
.footer-social {
  order:1;
  margin-left:auto;
  gap:12px
}
.site-footer {
  min-height:0;
  padding:8px 0 24px
}
.back-to-top {
  width:48px;
  height:48px;
  right:12px;
  bottom:12px
}
}
@media(max-width:460px) {
  .footer-inner {
  justify-content:flex-start
}
.footer-social {
  margin-left:auto
}
.footer-nav {
  justify-content:flex-start;
  gap:8px 18px
}
}
