:root{
  --paper:#EDEAE0; --ink:#15171B; --cobalt:#1E4FD8;
  --red:#E8382E; --yellow:#F2B705; --gray:#6B6656;
}
body{ background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; }
h1,h2,h3{ font-family:'Anton',sans-serif; text-transform:uppercase; }
 
/* ===== HEADER ===== */
nav{
  display:flex; align-items:stretch;
  border-bottom:3px solid var(--ink); background:var(--paper);
  position:sticky; top:0; z-index:50;
}
.nav-logo-col{
  display:flex; align-items:center;
  padding:0 32px;
  flex:0 0 auto;
}
.logo-img{ height:44px; width:auto; display:block; mix-blend-mode:multiply; }
.nav-right-col{ flex:1; display:flex; flex-direction:column; min-width:0; }
 
.nav-info-bar{
  padding:7px 28px;
  border-bottom:1.5px solid #D8D3C2;
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:600; line-height:1.2;
  text-transform:uppercase; letter-spacing:0.06em; color:var(--gray);
  display:flex; align-items:center; gap:8px;
}
.nav-info-bar::before{ content:""; width:7px; height:7px; background:var(--red); display:inline-block; flex:none; }
 
.nav-menu-bar{ padding:10px 28px; display:flex; flex-wrap:nowrap; gap:10px; align-items:center; }
.menu-item{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:700; line-height:1;
  text-transform:uppercase; letter-spacing:0.05em;
  border:2px solid var(--ink); padding:6px 12px;
  background:var(--paper); color:var(--ink);
  cursor:pointer; white-space:nowrap; text-decoration:none;
  transition:background .12s ease, color .12s ease, transform .08s ease;
  display:inline-flex; align-items:center; gap:6px;
}
.menu-item:hover{ background:var(--ink); color:var(--paper); }
.menu-item:active{ transform:translateY(1px); }
.menu-item.is-clicked{ background:var(--red); border-color:var(--red); color:var(--paper); }
.cartcount{
  background:var(--red); color:var(--paper); font-family:'IBM Plex Mono';
  font-size:9.5px; font-weight:600; border-radius:50%;
  width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center;
}
.menu-item.is-clicked .cartcount{ background:var(--paper); color:var(--red); }
.search-item{ padding:0 4px 0 12px; background:var(--paper); margin-left:auto; justify-content:center; }
.search-item input[type="search"]{ border:none; background:transparent; outline:none; font-family:'IBM Plex Mono'; font-size:12px; color:var(--ink); width:120px; padding:6px 0; text-align:center; }
.search-item input[type="search"]::placeholder{ color:var(--gray); }
.search-item button{ border:none; background:transparent; cursor:pointer; font-family:'Anton'; font-size:14px; color:var(--ink); padding:6px 8px; }
.search-item button:hover{ color:var(--red); }
 
@media (max-width:880px){
  nav{ flex-direction:column; align-items:stretch; }
  .nav-logo-col{ border-right:none; border-bottom:3px solid var(--ink); padding:14px 20px; }
  .nav-info-bar{ padding:8px 20px; font-size:11px; }
  .nav-menu-bar{ padding:12px 20px; gap:10px; flex-wrap:wrap; }
}
 
/* ===== CAROUSEL (Module 1) ===== */
.carousel{ position:relative; overflow:hidden; border:3px solid var(--ink); aspect-ratio:16/9; background:var(--ink); }
.carousel-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1s ease; }
.carousel-slide.active{ opacity:1; }
.carousel-dots{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:5; }
.carousel-dot{ width:10px; height:10px; border:2px solid var(--paper); background:transparent; padding:0; cursor:pointer; }
.carousel-dot.active{ background:var(--paper); }
 
/* ===== RECOMMEND ROWS ("We recommend...this week!/this month!") ===== */
.row-scroll-wrap{ position:relative; }
.row-scroll{
  display:flex; gap:2px; overflow-x:auto;
  scroll-behavior:smooth; scroll-snap-type:x proximity;
  border:3px solid var(--ink); background:var(--ink);
  scrollbar-width:none;
}
.row-scroll::-webkit-scrollbar{ display:none; }
.row-card{ flex:0 0 220px; scroll-snap-align:start; background:var(--paper); display:flex; flex-direction:column; text-decoration:none; color:var(--ink); }
.row-card-art{
  aspect-ratio:0.66/1; position:relative; border-bottom:3px solid var(--ink);
  background-size:contain; background-repeat:no-repeat; background-position:center;
  background-color:var(--paper-alt, #E3DECE);
}
.top-tag{ margin:10px; font-family:'IBM Plex Mono'; font-size:10px; font-weight:700; text-transform:uppercase; background:var(--yellow); color:var(--ink); padding:4px 8px; display:inline-block; }
.row-card-info{ padding:14px 16px 18px; display:flex; flex-direction:column; gap:8px; }
.row-card-info .series{ font-family:'IBM Plex Mono'; font-size:10px; color:var(--gray); text-transform:uppercase; letter-spacing:.05em; }
.row-card-info .name{ font-size:15px; font-weight:700; line-height:1.25; }
.row-card-info .meta{ display:flex; justify-content:space-between; align-items:center; margin-top:2px; }
.row-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border:3px solid var(--ink); background:var(--paper);
  font-family:'Anton'; font-size:20px; line-height:1; cursor:pointer; z-index:6;
  color:var(--ink); padding:0;
  display:flex; align-items:center; justify-content:center;
}
.row-arrow:hover{ background:var(--ink); color:var(--paper); }
.row-arrow.left{ left:8px; }
.row-arrow.right{ right:8px; }
.addbtn{ font-family:'IBM Plex Mono'; font-size:11px; font-weight:600; border:2px solid var(--ink); padding:6px 10px; background:transparent; text-transform:uppercase; cursor:pointer; }
.addbtn:hover{ background:var(--ink); color:var(--paper); }
.price{ font-family:'IBM Plex Mono'; font-weight:600; font-size:14px; }
 
/* ===== PUBLISHER LOGO GRID (Pre-orders page) ===== */
.publisher-grid{ display:flex; flex-wrap:wrap; gap:20px; padding:20px 0; }
.publisher-logo{
  display:flex; align-items:center; justify-content:center;
  width:150px; aspect-ratio:3/2; padding:14px;
  border:3px solid var(--ink); background:var(--paper);
  text-decoration:none; overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease;
}
.publisher-logo:hover{ transform:translateY(-4px); box-shadow:5px 5px 0 var(--ink); }
.publisher-logo img{ max-width:100%; max-height:100%; width:auto; height:auto; display:block; object-fit:contain; }
 
/* Fallback card for publishers with no logo uploaded yet — designed to look
   deliberate rather than broken, so the grid stays tidy while logos are collected. */
.publisher-logo--text{ background:var(--ink); border-color:var(--ink); }
.publisher-logo--text:hover{ background:var(--red); border-color:var(--red); box-shadow:5px 5px 0 var(--ink); }
 
/* ===== PUBLISHER ARCHIVES (real category pages, styled as the card grid) ===== */
.fk-publisher-archive ul.products{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  margin:0; padding:0; list-style:none;
}
.fk-publisher-archive ul.products::before,
.fk-publisher-archive ul.products::after{ content:none; }
.fk-publisher-archive ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important;
  border:3px solid var(--ink); background:var(--paper);
  display:flex; flex-direction:column; position:relative;
  transition:transform .12s ease, box-shadow .12s ease;
}
.fk-publisher-archive ul.products li.product:hover{
  transform:translateY(-4px); box-shadow:6px 6px 0 var(--ink);
}
.fk-publisher-archive ul.products li.product a img{
  margin:0; width:100%; aspect-ratio:0.66/1;
  object-fit:contain; background:var(--paper-alt, #E3DECE);
  border-bottom:3px solid var(--ink); display:block;
}
.fk-publisher-archive ul.products li.product .woocommerce-loop-product__title{
  font-family:'Inter',sans-serif; font-size:14px; font-weight:700;
  line-height:1.3; padding:12px 14px 16px; margin:0; text-transform:none;
}
.fk-publisher-archive ul.products li.product .cover-count{
  position:absolute; top:8px; right:8px; z-index:3;
  font-family:'IBM Plex Mono'; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em;
  background:var(--red); color:var(--paper); padding:4px 7px;
}
.fk-publisher-archive .woocommerce-breadcrumb{
  font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase; letter-spacing:.05em;
}
.fk-publisher-archive nav.woocommerce-pagination{ margin-top:32px; }
.fk-publisher-archive nav.woocommerce-pagination ul{
  display:flex; flex-wrap:wrap; gap:8px; border:none; justify-content:center;
}
.fk-publisher-archive nav.woocommerce-pagination ul li{ border:none; margin:0; overflow:visible; }
.fk-publisher-archive nav.woocommerce-pagination ul li a,
.fk-publisher-archive nav.woocommerce-pagination ul li span{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:700;
  border:2px solid var(--ink); background:var(--paper); color:var(--ink);
  padding:8px 13px; min-width:auto; line-height:1; display:inline-block;
  transition:background .12s ease, color .12s ease;
}
.fk-publisher-archive nav.woocommerce-pagination ul li a:hover{ background:var(--ink); color:var(--paper); }
.fk-publisher-archive nav.woocommerce-pagination ul li span.current{
  background:var(--red); border-color:var(--red); color:var(--paper);
}
@media (max-width:880px){ .fk-publisher-archive ul.products{ grid-template-columns:repeat(2,1fr); gap:16px; } }
@media (max-width:520px){ .fk-publisher-archive ul.products{ gap:12px; } }
 
/* ===== FOC / CLOSING SOON ===== */
.deadline-tag{
  position:absolute; top:8px; left:8px; z-index:3;
  font-family:'IBM Plex Mono'; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em;
  background:var(--ink); color:var(--paper); padding:4px 7px;
}
.deadline-tag--urgent{ background:var(--red); }
 
/* Final card in the closing-soon row — continue to the full FOC listing */
.row-card--more{
  background:var(--ink); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
  text-align:center; text-decoration:none;
  transition:background .12s ease;
}
.row-card--more:hover{ background:var(--red); }
.row-card--more__inner{ display:block; padding:20px 16px; }
.row-card--more__label{
  font-family:'Anton',sans-serif; text-transform:uppercase;
  font-size:17px; line-height:1.15; display:block; color:var(--paper);
}
.row-card--more__arrow{
  font-family:'Anton',sans-serif; font-size:26px;
  display:block; margin-top:12px; color:var(--paper);
}
 
.fk-row-heading{
  font-family:'Anton',sans-serif; text-transform:uppercase;
  font-size:26px; margin:0 0 18px; color:var(--ink);
}
 
.fk-foc-intro{ margin:0 0 28px; padding-bottom:20px; border-bottom:3px solid var(--ink); }
.fk-foc-intro p{ margin:0 0 8px; }
.fk-foc-explain{
  font-family:'IBM Plex Mono'; font-size:12.5px; line-height:1.7; color:var(--gray);
}
.fk-foc-group{ margin-bottom:40px; }
.fk-foc-heading{
  font-family:'Anton',sans-serif; text-transform:uppercase; font-size:22px;
  margin:0 0 14px; padding-bottom:8px; border-bottom:2px solid var(--ink);
  color:var(--ink); display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
}
.fk-foc-count{
  font-family:'IBM Plex Mono'; font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; color:var(--gray);
}
/* The FOC page reuses the card grid */
.fk-foc-group .deadline-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.fk-foc-group .row-card{
  flex:none; border:3px solid var(--ink); background:var(--paper);
  display:flex; flex-direction:column; text-decoration:none; color:var(--ink);
  transition:transform .12s ease, box-shadow .12s ease;
}
.fk-foc-group .row-card:hover{ transform:translateY(-4px); box-shadow:6px 6px 0 var(--ink); }
@media (max-width:880px){ .fk-foc-group .deadline-grid{ grid-template-columns:repeat(2,1fr); gap:16px; } }
 
/* ===== WITHDRAWAL (§ 13a FAGG) ===== */
/* The law requires this to be prominent and easy to find, so it is
   deliberately the loudest control on the site. */
.fk-withdraw-btn-wrap{ margin:0 0 18px; }
.fk-withdraw-btn{
  display:inline-block; text-decoration:none;
  font-family:'IBM Plex Mono'; font-size:15px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  background:var(--red); color:var(--paper);
  border:3px solid var(--ink); padding:14px 22px;
  box-shadow:5px 5px 0 var(--ink);
  transition:transform .1s ease, box-shadow .1s ease;
}
.fk-withdraw-btn span{
  display:block; font-size:11px; font-weight:600; letter-spacing:.04em;
  opacity:.9; margin-top:4px; text-transform:none;
}
.fk-withdraw-btn:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink); color:var(--paper); }
 
.fk-withdraw{ max-width:640px; }
.fk-withdraw-intro{ font-size:15px; line-height:1.6; margin:0 0 22px; }
.fk-withdraw-error{
  font-family:'IBM Plex Mono'; font-size:13px; color:var(--paper);
  background:var(--red); border:3px solid var(--ink); padding:10px 14px; margin:0 0 18px;
}
.fk-withdraw-form label{
  display:block; font-family:'IBM Plex Mono'; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; color:var(--gray); margin-bottom:6px;
}
.fk-withdraw-form .req{ color:var(--red); }
.fk-withdraw-form input[type="text"],
.fk-withdraw-form input[type="email"],
.fk-withdraw-form textarea{
  width:100%; padding:10px 12px; box-sizing:border-box;
  border:3px solid var(--ink); background:var(--paper); color:var(--ink);
  font-family:'Inter',sans-serif; font-size:15px; border-radius:0; outline:none;
}
.fk-withdraw-form input:focus, .fk-withdraw-form textarea:focus{ border-color:var(--red); }
.fk-withdraw-form p{ margin:0 0 18px; }
.fk-hint{
  display:block; margin-top:5px; font-family:'IBM Plex Mono';
  font-size:11px; color:var(--gray); text-transform:none; letter-spacing:0;
}
.fk-withdraw-scope{ border:3px solid var(--ink); padding:14px 16px; margin:0 0 18px; }
.fk-withdraw-scope legend{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em; padding:0 6px;
}
.fk-withdraw-scope label{
  display:flex; align-items:center; gap:8px; margin:0 0 6px;
  text-transform:none; letter-spacing:0; color:var(--ink); font-size:14px; font-weight:400;
}
.fk-withdraw-confirm{
  font-family:'IBM Plex Mono'; font-size:15px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  background:var(--ink); color:var(--paper); border:3px solid var(--ink);
  padding:14px 24px; cursor:pointer;
}
.fk-withdraw-confirm span{
  display:block; font-size:11px; font-weight:600; text-transform:none;
  letter-spacing:.04em; opacity:.85; margin-top:4px;
}
.fk-withdraw-confirm:hover{ background:var(--red); border-color:var(--red); }
.fk-withdraw-done{
  border:3px solid var(--ink); padding:20px 22px; background:var(--paper); max-width:640px;
}
.fk-withdraw-done h3{
  font-family:'Anton',sans-serif; text-transform:uppercase; font-size:20px;
  margin:0 0 12px; color:var(--ink);
}
.fk-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
 
/* ===== PULL LIST ===== */
.fk-pull-box{
  border:3px solid var(--ink); background:var(--paper);
  padding:14px 16px; margin:0 0 18px;
  display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap;
}
.fk-pull-state{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em; color:var(--red);
  margin:0; width:100%;
}
.fk-pull-pref{
  font-family:'IBM Plex Mono'; font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; color:var(--gray);
  display:flex; flex-direction:column; gap:5px;
}
.fk-pull-pref select{
  font-family:'Inter',sans-serif; font-size:14px;
  border:2px solid var(--ink); background:var(--paper); color:var(--ink);
  padding:7px 10px; border-radius:0;
}
.fk-pull-add, .fk-pull-remove{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  border:3px solid var(--ink); padding:9px 16px; cursor:pointer;
  background:var(--ink); color:var(--paper);
  transition:background .12s ease, border-color .12s ease;
}
.fk-pull-add:hover{ background:var(--red); border-color:var(--red); }
.fk-pull-remove{ background:var(--paper); color:var(--ink); }
.fk-pull-remove:hover{ background:var(--red); border-color:var(--red); color:var(--paper); }
.fk-pull-login{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em; color:var(--ink);
  border-bottom:2px solid var(--red); text-decoration:none;
}
.fk-pull-box--none{
  font-family:'IBM Plex Mono'; font-size:12px; line-height:1.6;
  color:var(--gray); display:block;
}
.fk-pull-fallback{
  font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--ink);
  display:flex; align-items:center; gap:7px; width:100%;
}
/* A display: rule overrides the browser's handling of the hidden attribute,
   so it has to be restored explicitly. */
.fk-pull-fallback[hidden]{ display:none !important; }
.fk-pull-save{
  font-family:'IBM Plex Mono'; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  border:2px solid var(--ink); background:var(--paper); color:var(--ink);
  padding:6px 12px; cursor:pointer; margin-top:8px;
}
.fk-pull-save:hover{ background:var(--ink); color:var(--paper); }
.fk-pull-type{
  font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--gray);
}
 
/* Series type badge */
.fk-series-type{
  display:inline-block; margin:0 0 16px;
  font-family:'IBM Plex Mono'; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  border:2px solid var(--ink); padding:5px 10px; background:var(--paper);
}
.fk-series-type--ongoing{ background:var(--ink); color:var(--paper); }
.fk-series-type--limited{ background:var(--yellow); }
.fk-series-type--oneshot{ background:var(--paper); color:var(--gray); border-color:var(--gray); }
 
.fk-tier-box{ border:3px solid var(--ink); padding:18px 20px; margin:0 0 24px; }
.fk-tier-box h3{
  font-family:'Anton',sans-serif; text-transform:uppercase; font-size:20px;
  margin:0 0 10px; color:var(--ink);
}
.fk-tier-box p{ margin:0 0 8px; font-size:14px; line-height:1.6; }
.fk-tier-box--open{ border-color:var(--red); }
.fk-tier-next{
  font-family:'IBM Plex Mono'; font-size:12px; line-height:1.7; color:var(--gray);
  border-top:1.5px solid #D8D3C2; padding-top:10px; margin-top:12px;
}
.fk-pull-table{ width:100%; border-collapse:collapse; }
.fk-pull-table th{
  font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--gray); text-align:left;
  border-bottom:3px solid var(--ink); padding:8px 10px 8px 0;
}
.fk-pull-table td{ padding:12px 10px 12px 0; border-bottom:1.5px solid #D8D3C2; vertical-align:middle; }
.fk-pull-table a{ color:var(--ink); font-weight:700; text-decoration:none; border-bottom:2px solid var(--red); }
 
/* ===== SERIES ===== */
.fk-series-line{
  font-family:'IBM Plex Mono'; font-size:12px; margin:0 0 10px;
  text-transform:uppercase; letter-spacing:.06em;
}
.fk-series-line span{ color:var(--gray); font-weight:600; margin-right:6px; }
.fk-series-line a{
  color:var(--ink); font-weight:700; text-decoration:none;
  border-bottom:2px solid var(--red); padding-bottom:1px;
}
.fk-series-line a:hover{ color:var(--red); }
 
/* ===== CREATORS ===== */
.fk-creator-roles{
  display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px;
}
.fk-role{
  font-family:'IBM Plex Mono'; font-size:11px;
  text-transform:uppercase; letter-spacing:.06em; color:var(--gray);
  border:2px solid var(--ink); padding:5px 10px; background:var(--paper);
}
.fk-role strong{ color:var(--ink); margin-right:5px; }
.fk-creator-link{ color:var(--ink); text-decoration:none; border-bottom:2px solid var(--red); }
.fk-creator-link:hover{ color:var(--red); }
 
.fk-letters{
  display:flex; flex-wrap:wrap; gap:6px; margin:0 0 28px;
  padding-bottom:20px; border-bottom:3px solid var(--ink);
}
.fk-letters a, .fk-letters span{
  font-family:'IBM Plex Mono'; font-size:13px; font-weight:700;
  border:2px solid var(--ink); padding:6px 10px; line-height:1;
  text-decoration:none; color:var(--ink); background:var(--paper);
  transition:background .12s ease, color .12s ease;
}
.fk-letters a:hover{ background:var(--red); border-color:var(--red); color:var(--paper); }
.fk-letters .fk-letter-off{ opacity:.3; border-color:var(--gray); color:var(--gray); }
 
.fk-letter-group{ margin-bottom:28px; scroll-margin-top:180px; }
.fk-letter-group h3{
  font-family:'Anton',sans-serif; font-size:24px; text-transform:uppercase;
  margin:0 0 12px; padding-bottom:6px; border-bottom:2px solid var(--ink); color:var(--ink);
}
.fk-letter-group ul{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:6px 20px;
}
.fk-letter-group li a{
  font-size:14px; color:var(--ink); text-decoration:none;
  border-bottom:2px solid transparent; padding-bottom:1px;
}
.fk-letter-group li a:hover{ border-bottom-color:var(--red); }
.fk-creator-count{
  font-family:'IBM Plex Mono'; font-size:11px; color:var(--gray);
}
.fk-creators-note{
  font-family:'IBM Plex Mono'; font-size:12.5px; font-weight:700; line-height:1.6;
  color:var(--ink); margin:0 0 20px;
}
 
/* Publishers page: the two browsing routes */
.fk-browse-heading{
  font-family:'Anton',sans-serif; text-transform:uppercase;
  font-size:26px; margin:0 0 18px; color:var(--ink);
}
.fk-browse-all{
  margin:0 0 32px; padding-bottom:24px; border-bottom:3px solid var(--ink);
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.fk-browse-all__label{
  font-family:'Anton',sans-serif; text-transform:uppercase;
  font-size:26px; line-height:1; color:var(--ink);
}
.fk-browse-all a{
  display:inline-block;
  font-family:'IBM Plex Mono'; font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  border:3px solid var(--ink); background:var(--ink); color:var(--paper);
  padding:12px 22px; text-decoration:none;
  transition:background .12s ease, border-color .12s ease, transform .08s ease;
}
.fk-browse-all a:hover{ background:var(--red); border-color:var(--red); color:var(--paper); }
.fk-browse-all a:active{ transform:translateY(1px); }
 
/* Publisher logo grid (on the Pre-orders page) */
.publisher-logo__text{
  font-family:'Anton',sans-serif; font-size:15px; line-height:1.1;
  text-transform:uppercase; text-align:center; color:var(--paper);
  display:block; word-break:break-word; hyphens:auto;
}
 
/* ===== FOOTER ===== */
.fk-footer{ max-width:68rem; margin:0 auto; padding:36px 40px; }
.fk-footer-nav{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-bottom:24px; }
.fk-footer-link{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:0.06em;
  color:var(--ink); text-decoration:none;
  border-bottom:2px solid transparent; padding-bottom:2px;
  transition:border-color .15s ease;
}
.fk-footer-link:hover{ border-bottom-color:var(--red); }
.fk-footer-legal{
  margin:0 0 6px; padding-top:0;
  font-family:'IBM Plex Mono'; font-size:11.5px; line-height:1.7;
  color:var(--gray);
}
.fk-footer-legal:first-of-type{ padding-top:16px; border-top:1.5px solid #D8D3C2; }
.fk-footer-legal a{ color:var(--gray); text-decoration:underline; text-underline-offset:3px; }
.fk-footer-legal a:hover{ color:var(--red); }
@media (max-width:880px){
  .fk-footer{ padding:28px 20px; }
  .fk-footer-nav{ gap:8px 18px; }
}
 
 
/* ===== CONTACT FORM (Contact Form 7) ===== */
.wpcf7{ max-width:640px; }
.wpcf7 label{
  display:block; margin-bottom:18px;
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:0.06em; color:var(--gray);
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 select,
.wpcf7 textarea{
  width:100%; margin-top:6px; padding:10px 12px;
  border:3px solid var(--ink); background:var(--paper); color:var(--ink);
  font-family:'Inter',sans-serif; font-size:15px;
  border-radius:0; outline:none; box-sizing:border-box;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus{ border-color:var(--red); }
.wpcf7 textarea{ min-height:160px; resize:vertical; }
.wpcf7 input[type="submit"]{
  font-family:'IBM Plex Mono'; font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.06em;
  border:3px solid var(--ink); background:var(--ink); color:var(--paper);
  padding:12px 24px; cursor:pointer; border-radius:0;
  transition:background .12s ease, color .12s ease, transform .08s ease;
}
.wpcf7 input[type="submit"]:hover{ background:var(--red); border-color:var(--red); }
.wpcf7 input[type="submit"]:active{ transform:translateY(1px); }
.wpcf7 .wpcf7-spinner{ margin-left:10px; }
.wpcf7-response-output{
  border:3px solid var(--ink) !important; border-radius:0 !important;
  padding:12px 16px !important; margin:20px 0 0 !important;
  font-family:'IBM Plex Mono'; font-size:13px;
}
.wpcf7 form.sent .wpcf7-response-output{ border-color:#3f7d5c !important; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{ border-color:var(--red) !important; }
.wpcf7-not-valid-tip{
  font-family:'IBM Plex Mono'; font-size:11px; color:var(--red);
  text-transform:uppercase; letter-spacing:0.04em; margin-top:4px;
}
 
/* ===== SECTION HEADERS (used across homepage modules) ===== */
.section{ padding:56px 40px; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:28px; border-bottom:3px solid var(--ink); padding-bottom:16px; }
.section-head h2{ font-size:32px; }
.section-head .num{ font-family:'IBM Plex Mono'; color:var(--gray); font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
 
/* Hide Storefront's default page/archive title headings site-wide */
/* Hide Storefront's default page/archive title headings site-wide.
   Deliberately scoped so the single product title still shows. */
body:not(.single-product) .entry-header,
body:not(.single-product) .entry-title,
.woocommerce-products-header__title,
.page-title{ display:none; }
 
/* Accessibility text should be readable by screen readers but not shown. */
.screen-reader-text{
  position:absolute !important; width:1px; height:1px;
  overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap;
}
 
/* Product title */
.single-product .entry-title{
  font-family:'Anton',sans-serif; text-transform:uppercase;
  font-size:32px; line-height:1.05; margin:0 0 14px; color:var(--ink);
}
 
/* Price — larger, on a block so it stands out */
.single-product div.product p.price,
.single-product div.product .woocommerce-variation-price .price{
  display:inline-block;
  font-family:'Inter',sans-serif; font-weight:400; font-size:24px; line-height:1.2;
  color:var(--ink); background:var(--paper);
  border:3px solid var(--ink);
  padding:9px 14px; margin:0 0 10px;
}
/* The note is appended inside the price element, so that element has to allow
   a normal block child rather than staying strictly inline. */
.single-product div.product .woocommerce-variation-price .price{ display:block; width:fit-content; max-width:100%; }
.single-product div.product .woocommerce-variation-price .price .kn-note{
  color:var(--gray); padding:0; margin:8px 0 0;
}
.single-product div.product p.price del{ opacity:.55; font-size:18px; }
.single-product div.product p.price ins{ text-decoration:none; }
 
/* Multi-cover comics: hide the "from–to" range. The price appears once the
   customer picks a cover, which is the only price that actually applies. */
.single-product .product-type-variable div.summary > p.price{ display:none; }
 
/* Kleinunternehmer note, under the price */
.kn-note{
  display:block; margin:8px 0 0;
  font-family:'IBM Plex Mono'; font-size:11px; line-height:1.6;
  color:var(--gray); text-transform:none; letter-spacing:0;
}
.kn-note a{ color:var(--gray); text-decoration:underline; text-underline-offset:2px; }
/* Inside the variation block the price is an inline-block, so the note needs
   to break out of it to sit on its own line underneath. */
.woocommerce-variation-price .kn-note{ margin-bottom:12px; }
 
/* Hide sharing/like widgets (Jetpack or similar) site-wide */
.sharedaddy, .sd-sharing, .sd-block, .jetpack-likes-widget, .sharing-screen-reader-text{ display:none !important; }
 
/* Remove any icon glyph Storefront/WooCommerce tries to render before stock text */
.stock::before{ content:none !important; }
 
/* ===== PRODUCT PAGE DETAILS (creators, rating, specs) ===== */
.fk-badges{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.fk-badge{
  font-family:'IBM Plex Mono'; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em;
  border:2px solid var(--ink); padding:4px 8px; background:var(--paper);
}
.fk-rating--mature{ background:var(--red); border-color:var(--red); color:var(--paper); }
.fk-rating--teen-plus{ background:var(--yellow); border-color:var(--yellow); }
.fk-rating--everyone,
.fk-rating--middle-grade{ background:#3f7d5c; border-color:#3f7d5c; color:var(--paper); }
 
.fk-credits{ margin:0 0 16px; display:grid; grid-template-columns:auto 1fr; gap:4px 16px; }
.fk-credits dt{
  font-family:'IBM Plex Mono'; font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; color:var(--gray);
}
.fk-credits dd{ margin:0; font-size:14px; font-weight:600; }
 
/* Back to the publisher's filtered pre-order list, from a product page */
.fk-back-to-publisher{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; margin:0 0 16px;
}
.fk-back-to-publisher a{
  color:var(--ink); text-decoration:none;
  border-bottom:2px solid var(--red); padding-bottom:2px;
}
.fk-back-to-publisher a:hover{ color:var(--red); }
 
/* Stock line — reads "Available for pre-order" on pre-order items */
.woocommerce div.product p.stock{
  font-family:'IBM Plex Mono'; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em;
  color:var(--ink); margin:0 0 12px;
}
.woocommerce div.product p.stock::before{ content:none !important; }
 
.fk-orderby{
  font-family:'IBM Plex Mono'; font-size:13px; margin:0 0 4px;
  color:var(--red);
}
.fk-instore{ font-family:'IBM Plex Mono'; font-size:13px; margin:0 0 12px; }
.fk-notice{
  font-family:'IBM Plex Mono'; font-size:12px; line-height:1.5;
  border-left:4px solid var(--yellow); padding:8px 12px;
  background:var(--paper-alt, #E3DECE); margin:0 0 16px;
}
.fk-var-artist{ font-family:'IBM Plex Mono'; font-size:12px; color:var(--gray); }
.fk-var-artist .fk-creator-link{ color:var(--ink); }
 
.fk-specs{ margin-top:28px; padding-top:20px; border-top:3px solid var(--ink); }
.fk-specs h3{ font-family:'Anton',sans-serif; text-transform:uppercase; font-size:18px; margin:0 0 12px; }
.fk-specs dl{ display:grid; grid-template-columns:auto 1fr; gap:6px 20px; margin:0; }
.fk-specs dt{
  font-family:'IBM Plex Mono'; font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; color:var(--gray);
}
.fk-specs dd{ margin:0; font-family:'IBM Plex Mono'; font-size:13px; }
 
/* ===== PREVIEW PAGES (optional, product page — only shows if a product has any) ===== */
.preview-pages-section{ margin-top:40px; padding-top:30px; border-top:3px solid var(--ink); }
.preview-pages-section h3{ font-family:'Anton',sans-serif; text-transform:uppercase; font-size:22px; margin-bottom:16px; }
.preview-pages-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.preview-page-thumb{ display:block; width:120px; border:3px solid var(--ink); cursor:zoom-in; }
.preview-page-thumb img{ width:100%; display:block; }
.preview-lightbox{
  position:fixed; inset:0; background:rgba(21,23,27,.92);
  display:flex; align-items:center; justify-content:center;
  z-index:999;
}
.preview-lightbox img{ max-width:80%; max-height:85%; border:4px solid var(--paper); }
.preview-lightbox-close{
  position:absolute; top:24px; right:28px;
  font-family:'Anton'; font-size:28px; color:var(--paper);
  background:none; border:none; cursor:pointer; line-height:1;
}
.preview-lightbox-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:auto; height:auto; border:none; background:none;
  color:var(--paper); font-family:'Anton'; font-size:48px; line-height:1;
  cursor:pointer; opacity:0.75; transition:opacity .15s ease, transform .15s ease;
  padding:10px;
}
.preview-lightbox-arrow:hover{ background:none; color:var(--paper); opacity:1; transform:translateY(-50%) scale(1.15); }
.preview-lightbox-arrow.prev{ left:24px; }
.preview-lightbox-arrow.next{ right:24px; }
.preview-lightbox-counter{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  font-family:'IBM Plex Mono'; font-size:12px; color:var(--paper);
  letter-spacing:.05em;
}
 
@media (max-width:880px){
  .section{ padding:36px 20px; }
  .section-head{ flex-direction:column; align-items:flex-start; gap:6px; }
}
/* BIG COMICS DISCOUNT TAG */
.discount-tag,
.products li.product .onsale{
  position:absolute; top:8px; right:8px; left:auto; z-index:3;
  font-family:'IBM Plex Mono'; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; line-height:1.2;
  background:var(--yellow); color:var(--ink); padding:4px 7px;
  border:2px solid var(--ink); border-radius:0; min-height:0; min-width:0; margin:0;
}
.fk-save{ display:block; font-size:13px; font-weight:600; color:var(--red); margin-top:4px; }
/* discount tag in product grids: sit below the "+N variants" tag, only when that tag is there */
.products li.product:has(.cover-count) .onsale{ top:40px; }