/* ═══════════════════════════════════════════════════════════════
   POWERHALSE — Theme CSS v1.0
   Hang Loose — Ride Loud
   ═══════════════════════════════════════════════════════════════ */

/* ── Tokens ───────────────────────────────────────────────────── */
:root {
  --ink:        #0a0a0a;
  --ink-soft:   #1c1c1c;
  --paper:      #f4efe6;
  --paper-warm: #ebe5d6;
  --line:       #d4cfc4;
  --muted:      #6b6b6b;
  --blue:       #1f6fd6;
  --blue-deep:  #0d3d80;
  --red:        #d63b2b;
  --sand:       #c9b988;

  --display: "Archivo Black", "Arial Black", sans-serif;
  --body:    "Inter", system-ui, sans-serif;
  --mono:    "JetBrains Mono", ui-monospace, monospace;

  --header-h: 72px;
  --max-w:    1280px;
  --gutter:   clamp(16px, 4vw, 56px);
}

/* ── Reset & Base ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

body.woocommerce-shop,
body.woocommerce-archive {
  background: var(--paper);
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

/* ── Typography ───────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 { margin: 0; }

.ph-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--muted);
}

/* ── Layout ───────────────────────────────────────────────────── */
.ph-container {
  max-width: var(--max-w);
  margin-inline: auto;
  padding: 64px var(--gutter) 96px;
}

/* ═══════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════ */
.ph-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}

.ph-header__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  height: var(--header-h);
  display: flex;
  align-items: center;
  gap: 40px;
}

/* Logo */
.ph-logo {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: var(--ink);
  flex-shrink: 0;
}

.ph-logo__hand {
  height: 36px;
  width: auto;
  mix-blend-mode: multiply;
  flex-shrink: 0;
}

.ph-logo__text {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  line-height: 1;
  white-space: nowrap;
}

/* Primary Nav */
.ph-nav {
  flex: 1;
}

.ph-nav__list,
.ph-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}

.ph-nav__list li a,
.ph-nav ul li a {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
  padding: 8px 16px;
  border: 1px solid transparent;
  display: block;
  transition: border-color 0.15s, background 0.15s;
}

.ph-nav__list li a:hover,
.ph-nav ul li a:hover,
.ph-nav__list li.current-menu-item > a,
.ph-nav__list li.current-product-ancestor > a {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
}

/* Header Right */
.ph-header__right {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-left: auto;
  flex-shrink: 0;
}

.ph-cart {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 3px;
  text-decoration: none;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  border: 1px solid var(--ink);
  transition: background 0.15s, color 0.15s;
}
.ph-cart:hover {
  background: var(--ink);
  color: var(--paper);
}

/* Mobile Toggle */
.ph-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}
.ph-menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--ink);
  transition: transform 0.2s, opacity 0.2s;
}
.ph-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ph-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ph-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile Nav */
.ph-mobile-nav {
  display: none;
  border-top: 1px solid var(--line);
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}
.ph-mobile-nav.is-open {
  max-height: 400px;
}
.ph-mobile-nav__inner {
  padding: 24px var(--gutter);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ph-mobile-nav__list,
.ph-mobile-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ph-mobile-nav__list li a,
.ph-mobile-nav ul li a {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
  padding: 14px 0;
  display: block;
  border-bottom: 1px solid var(--line);
}
.ph-mobile-cart {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 3px;
  text-decoration: none;
  color: var(--ink);
  padding: 14px 24px;
  border: 2px solid var(--ink);
  text-align: center;
  text-transform: uppercase;
  display: block;
}

/* ═══════════════════════════════════════════════════════════════
   SHOP HERO BANNER
   ═══════════════════════════════════════════════════════════════ */
.ph-shop-hero {
  background: var(--ink);
  color: var(--paper);
  padding: 64px 0;
  overflow: hidden;
  position: relative;
}

.ph-shop-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    transparent 0 12px,
    rgba(255,255,255,0.02) 12px 13px
  );
  pointer-events: none;
}

.ph-shop-hero__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 48px;
  align-items: end;
  position: relative;
}

.ph-shop-hero__title {
  font-family: var(--display);
  font-size: clamp(64px, 10vw, 148px);
  letter-spacing: -4px;
  line-height: 0.85;
  margin: 0;
}

.ph-shop-hero__right {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start;
}

.ph-shop-hero__sub {
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.5;
  color: rgba(244,239,230,0.75);
  margin: 0;
  max-width: 320px;
}

/* ═══════════════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════════════ */
.ph-btn,
button.ph-btn,
a.ph-btn {
  font-family: var(--body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 14px 28px;
  border: 2px solid var(--ink);
  cursor: pointer;
  background: var(--ink);
  color: var(--paper);
  display: inline-block;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
  line-height: 1;
}
.ph-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
  color: var(--paper);
}
.ph-btn--ghost {
  background: transparent;
  color: var(--ink);
}
.ph-btn--ghost:hover {
  background: var(--ink);
  color: var(--paper);
  transform: none;
  box-shadow: none;
}
.ph-btn--blue {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}
.ph-btn--blue:hover {
  box-shadow: 4px 4px 0 var(--blue-deep);
  color: #fff;
}
.ph-btn--red {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.ph-btn--red:hover {
  box-shadow: 4px 4px 0 var(--ink);
  color: #fff;
}
.ph-btn--white {
  background: var(--paper);
  border-color: var(--paper);
  color: var(--ink);
}
.ph-btn--white:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--paper);
}

/* ═══════════════════════════════════════════════════════════════
   SHOP — MAIN LAYOUT
   ═══════════════════════════════════════════════════════════════ */
.ph-shop-main {
  max-width: var(--max-w);
  margin-inline: auto;
  padding: 56px var(--gutter) 96px;
}

/* Category filter bar */
.ph-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 16px;
  margin-bottom: 40px;
  gap: 16px;
  flex-wrap: wrap;
}

.ph-shop-toolbar__title {
  font-family: var(--display);
  font-size: 40px;
  letter-spacing: -1.5px;
  line-height: 1;
}

.ph-shop-toolbar__count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 3px;
  color: var(--muted);
  text-transform: uppercase;
  margin-left: auto;
}

/* WooCommerce result count / ordering */
.woocommerce-result-count,
.woocommerce-ordering {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--muted);
}
.woocommerce-ordering {
  display: block;
}
.woocommerce-ordering select {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 2px;
  border: 2px solid var(--ink);
  background: var(--paper);
  padding: 10px 36px 10px 14px;
  color: var(--ink);
  cursor: pointer;
  width: 100%;
  min-width: 220px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230a0a0a' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

/* ── Product Grid ─────────────────────────────────────────────── */
ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
  border: 1px solid var(--line);
}

/* Cap to max 3 columns at desktop so cards don't grow too wide */
@media (min-width: 901px) {
  ul.products {
    grid-template-columns: repeat(auto-fit, minmax(280px, 33.333%));
  }
}

@media (max-width: 900px) {
  ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  ul.products { grid-template-columns: 1fr; }
}

/* ── Product Card ─────────────────────────────────────────────── */
li.product,
.product {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}

li.product:nth-child(3n),
ul.products.columns-3 li.product:nth-child(3n) {
  border-right: none;
}

.ph-product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: var(--ink);
}

.ph-product-card__img-link {
  display: block;
  text-decoration: none;
}

.ph-product-card__img-link:hover .ph-product-card__img {
  transform: scale(1.04);
}

.ph-product-card__name a {
  color: var(--ink);
  text-decoration: none;
}

/* Product image area */
.ph-product-card__img-wrap {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background:
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(0,0,0,0.04) 8px 9px),
    var(--paper-warm);
  position: relative;
}

.ph-product-card__img-wrap img,
li.product .woocommerce-loop-product__link img,
li.product a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

li.product:hover .woocommerce-loop-product__link img,
li.product:hover a img {
  transform: scale(1.04);
}

/* No-image placeholder */
.ph-product-card__placeholder {
  width: 100%;
  height: 100%;
  background:
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(0,0,0,0.04) 8px 9px),
    var(--paper-warm);
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 5;
}
.ph-product-card__placeholder svg {
  opacity: 0.2;
  width: 64px;
  height: 64px;
}

/* Product info */
.ph-product-card__info,
li.product .woocommerce-loop-product__link + *,
li.product .wc-loop-product__title-wrap {
  padding: 16px 20px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 0 0 auto;
}

/* Loop add-to-cart button: full width, neat spacing */
li.product .button.add_to_cart_button,
li.product a.added_to_cart {
  display: block;
  width: calc(100% - 40px);
  margin: 0 20px 20px;
  padding: 12px 16px;
  background: var(--ink);
  color: var(--paper) !important;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  border: 2px solid var(--ink);
  transition: background 0.15s, color 0.15s;
}

li.product .button.add_to_cart_button:hover,
li.product a.added_to_cart:hover {
  background: var(--blue);
  border-color: var(--blue);
  color: var(--paper) !important;
}

.ph-product-card__cat,
li.product .ph-product-cat {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 3px;
  color: var(--muted);
  text-transform: uppercase;
}

.ph-product-card__name,
li.product .woocommerce-loop-product__title,
li.product h2 {
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: -0.5px;
  line-height: 1.1;
  margin: 0;
  color: var(--ink);
}

.ph-product-card__price,
li.product .price,
li.product .woocommerce-Price-amount {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--ink);
}
li.product .price del {
  color: var(--muted);
  font-size: 11px;
}
li.product .price ins {
  text-decoration: none;
  color: var(--red);
}

/* Add-to-cart button on loop */
li.product .button,
li.product a.button,
li.product button.button {
  font-family: var(--body);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 12px 20px;
  border: 2px solid var(--ink);
  cursor: pointer;
  background: var(--paper);
  color: var(--ink);
  display: inline-block;
  transition: background 0.15s, color 0.15s, transform 0.1s, box-shadow 0.1s;
  margin-top: 8px;
  width: 100%;
  text-align: center;
}
li.product .button:hover,
li.product a.button:hover {
  background: var(--ink);
  color: var(--paper);
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}
li.product .added_to_cart {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--blue);
}

/* Sale badge */
li.product .onsale {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  background: var(--red);
  color: #fff;
  padding: 4px 10px;
  border-radius: 0;
  position: absolute;
  top: 16px;
  right: 0;
  margin: 0;
  z-index: 1;
  line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════════════
   SINGLE PRODUCT
   ═══════════════════════════════════════════════════════════════ */
.single-product .ph-shop-main {
  padding-top: 40px;
}

.woocommerce-product-gallery {
  border: 1px solid var(--line);
  overflow: hidden;
}

.woocommerce-product-gallery__image img {
  width: 100%;
  display: block;
}

.single-product .product {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  border: none;
}

@media (max-width: 768px) {
  .single-product .product {
    grid-template-columns: 1fr;
  }
}

/* Product title */
.single-product .product_title {
  font-family: var(--display);
  font-size: clamp(32px, 5vw, 56px);
  letter-spacing: -1.5px;
  line-height: 0.95;
  margin: 0 0 16px;
}

/* Price */
.single-product .price {
  font-family: var(--mono);
  font-size: 18px;
  letter-spacing: 1px;
  margin-bottom: 24px;
  display: block;
}

/* Short description */
.woocommerce-product-details__short-description {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin-bottom: 28px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
}

/* Add to cart */
.single-product .cart {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.single-product input.qty {
  font-family: var(--mono);
  font-size: 14px;
  border: 2px solid var(--ink);
  background: var(--paper);
  padding: 12px 16px;
  width: 80px;
  text-align: center;
  color: var(--ink);
}

.single-product .single_add_to_cart_button,
.single-product button[type="submit"].button {
  font-family: var(--body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: 16px 32px;
  border: 2px solid var(--ink);
  cursor: pointer;
  background: var(--ink);
  color: var(--paper);
  display: block;
  width: 100%;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}
.single-product .single_add_to_cart_button:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--ink);
}

/* Tabs */
.woocommerce-tabs {
  margin-top: 64px;
  grid-column: 1 / -1;
}
.woocommerce-tabs ul.tabs {
  list-style: none;
  margin: 0 0 -1px;
  padding: 0;
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--ink);
}
.woocommerce-tabs ul.tabs li {
  margin: 0;
}
.woocommerce-tabs ul.tabs li a {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--muted);
  padding: 12px 24px;
  display: block;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.15s;
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
  color: var(--ink);
  border-bottom-color: var(--ink);
}
.woocommerce-tabs .panel {
  padding: 32px 0;
  border-top: none;
}

/* Related Products */
.related.products > h2,
.upsells.products > h2 {
  font-family: var(--display);
  font-size: 36px;
  letter-spacing: -1px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}

/* ── Cart link: hidden when empty ─────────────────────────────── */
.ph-cart--hidden { display: none !important; }

/* ═══════════════════════════════════════════════════════════════
   GLOBAL FORM INPUTS
   Every input, select, textarea across WooCommerce gets the same
   hard-edged, brand-consistent treatment.
   ═══════════════════════════════════════════════════════════════ */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce select,
.woocommerce form .form-row input,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="number"],
.woocommerce-page input[type="password"],
.woocommerce-page textarea,
.woocommerce-page select {
  font-family: var(--body);
  font-size: 15px;
  border: 2px solid var(--line);
  border-radius: 0;
  background: #fff;
  padding: 12px 16px;
  width: 100%;
  color: var(--ink);
  transition: border-color 0.15s;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
}

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
.woocommerce form .form-row input:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-page input:focus,
.woocommerce-page textarea:focus,
.woocommerce-page select:focus {
  outline: none;
  border-color: var(--ink);
  box-shadow: none;
}

/* Select arrow */
.woocommerce select,
.woocommerce form .form-row select,
.woocommerce-page select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230a0a0a' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}

/* Labels */
.woocommerce form .form-row label,
.woocommerce form label,
.woocommerce-page form label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 8px;
  display: block;
}

/* Required star */
.woocommerce form .form-row .required { color: var(--red); }

/* ═══════════════════════════════════════════════════════════════
   NOTICES
   ═══════════════════════════════════════════════════════════════ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  list-style: none;
  margin: 0 0 24px;
  padding: 16px 20px 16px 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 2px;
  border: 2px solid var(--ink);
  background: var(--paper);
}
.woocommerce-message { border-color: var(--blue); }
.woocommerce-error { border-color: var(--red); }
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error li a {
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════
   PAGINATION
   ═══════════════════════════════════════════════════════════════ */
.woocommerce-pagination,
nav.woocommerce-pagination {
  margin-top: 48px;
  text-align: center;
}

.woocommerce-pagination ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
  gap: 4px;
  border: 1px solid var(--line);
}

.woocommerce-pagination ul li {
  display: inline-block;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 2px;
  padding: 12px 18px;
  display: block;
  text-decoration: none;
  color: var(--ink);
  border-right: 1px solid var(--line);
  transition: background 0.15s;
}

.woocommerce-pagination ul li:last-child a,
.woocommerce-pagination ul li:last-child span {
  border-right: none;
}

.woocommerce-pagination ul li a:hover,
.woocommerce-pagination ul li span.current {
  background: var(--ink);
  color: var(--paper);
}

/* ═══════════════════════════════════════════════════════════════
   CATEGORY PAGE HEADER
   ═══════════════════════════════════════════════════════════════ */
.woocommerce-products-header {
  margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--ink);
}

.woocommerce-products-header__title,
.archive-title {
  font-family: var(--display);
  font-size: clamp(36px, 6vw, 72px);
  letter-spacing: -2px;
  line-height: 0.9;
  margin: 0 0 12px;
}

.term-description {
  font-size: 15px;
  color: var(--ink-soft);
  max-width: 520px;
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════ */
.ph-footer {
  background: var(--ink);
  color: var(--paper);
  margin-top: auto;
}

.ph-footer__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding: 64px var(--gutter) 48px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  border-bottom: 1px solid rgba(244,239,230,0.15);
}

@media (max-width: 700px) {
  .ph-footer__inner { grid-template-columns: 1fr; gap: 40px; }
}

.ph-logo--footer .ph-logo__hand {
  mix-blend-mode: screen;
  filter: invert(1);
}
.ph-logo--footer .ph-logo__text {
  color: var(--paper);
}
.ph-logo--footer {
  color: var(--paper);
  margin-bottom: 16px;
  display: inline-flex;
}

.ph-footer__slogan {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(244,239,230,0.5);
  display: block;
}

.ph-footer__nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}

.ph-footer__nav-heading {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(244,239,230,0.4);
  display: block;
  margin-bottom: 16px;
}

.ph-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ph-footer__links li a {
  font-size: 14px;
  color: rgba(244,239,230,0.75);
  text-decoration: none;
  transition: color 0.15s;
}
.ph-footer__links li a:hover {
  color: var(--paper);
}

.ph-footer__bottom {
  max-width: var(--max-w);
  margin-inline: auto;
  padding: 24px var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 3px;
  color: rgba(244,239,230,0.4);
  text-transform: uppercase;
}

.ph-footer__legal {
  display: flex;
  gap: 24px;
}
.ph-footer__legal a {
  color: rgba(244,239,230,0.4);
  text-decoration: none;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 2px;
  transition: color 0.15s;
}
.ph-footer__legal a:hover {
  color: var(--paper);
}

/* ═══════════════════════════════════════════════════════════════
   PAGE CONTENT (static pages)
   ═══════════════════════════════════════════════════════════════ */
.ph-main--page {
  min-height: 60vh;
}

.ph-page-content__title {
  font-family: var(--display);
  font-size: clamp(36px, 6vw, 72px);
  letter-spacing: -2px;
  line-height: 0.9;
  margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--ink);
}

.ph-page-content__body {
  max-width: 720px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-soft);
}

/* WooCommerce cart & checkout need full container width */
.woocommerce-cart .ph-page-content__body,
.woocommerce-checkout .ph-page-content__body,
.woocommerce-account .ph-page-content__body {
  max-width: none;
}
.ph-page-content__body h2 {
  font-family: var(--display);
  font-size: 28px;
  letter-spacing: -0.5px;
  margin: 40px 0 16px;
}
.ph-page-content__body a {
  color: var(--blue);
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .ph-nav { display: none; }
  .ph-menu-toggle { display: flex; }
  .ph-mobile-nav { display: block; }
  .ph-cart .ph-cart__label { display: none; }

  .ph-shop-hero {
    padding: 40px 0;
  }
  .ph-shop-hero__inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .ph-shop-hero__title {
    font-size: clamp(52px, 14vw, 96px);
  }
}

@media (max-width: 560px) {
  .ph-header__inner { gap: 16px; }
  .ph-logo__text { font-size: 18px; }
  .ph-logo__hand { height: 28px; }
}

/* ═══════════════════════════════════════════════════════════════
   BODY LAYOUT
   ═══════════════════════════════════════════════════════════════ */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.ph-footer {
  margin-top: auto;
}

/* WooCommerce: shop page wrapper */
.woocommerce .ph-shop-main,
.woocommerce-page .ph-shop-main {
  flex: 1;
}

/* ═══════════════════════════════════════════════════════════════
   COMMUNITY PAGE
   ═══════════════════════════════════════════════════════════════ */
.ph-community {
  flex: 1;
}

/* ── Hero ────────────────────────────────────────────────────── */
.ph-comm-hero {
  color: var(--paper);
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 100px 0 80px;
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
}

.ph-comm-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(10,10,10,0.82) 0%,
    rgba(10,10,10,0.55) 50%,
    rgba(10,10,10,0.35) 100%
  );
  pointer-events: none;
}

.ph-comm-hero__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: end;
  position: relative;
}

.ph-comm-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--blue);
  display: block;
  margin-bottom: 24px;
}

.ph-comm-hero__title {
  font-family: var(--display);
  font-size: clamp(80px, 14vw, 180px);
  letter-spacing: -5px;
  line-height: 0.82;
  margin: 0;
}

.ph-comm-hero__title--outline {
  -webkit-text-stroke: 2px var(--paper);
  color: transparent;
}

.ph-comm-hero__sub {
  font-size: 17px;
  line-height: 1.65;
  color: rgba(244,239,230,0.7);
  margin: 0 0 40px;
  max-width: 380px;
}

.ph-comm-notify {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ph-comm-notify__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(244,239,230,0.45);
}

.ph-comm-notify__form {
  display: flex;
  gap: 0;
  border: 2px solid rgba(244,239,230,0.25);
  max-width: 360px;
  transition: border-color 0.2s;
}

.ph-comm-notify__form:focus-within {
  border-color: var(--paper);
}

.ph-comm-notify__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 14px 16px;
  font-family: var(--body);
  font-size: 14px;
  color: var(--paper);
}

.ph-comm-notify__input::placeholder {
  color: rgba(244,239,230,0.3);
}

.ph-comm-notify__btn {
  background: var(--blue);
  border: none;
  color: #fff;
  padding: 14px 20px;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}

.ph-comm-notify__btn:hover {
  background: var(--blue-deep);
}

.ph-comm-hero__scroll-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(244,239,230,0.3);
  max-width: var(--max-w);
  margin: 60px auto 0;
  padding-inline: var(--gutter);
  position: relative;
}

/* ── Feature Cards ───────────────────────────────────────────── */
.ph-comm-features {
  background: var(--paper);
  padding: 0;
}

.ph-comm-features__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 2px solid var(--ink);
  border-left: 2px solid var(--ink);
}

.ph-comm-card {
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  padding: 48px 40px 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 420px;
  position: relative;
  overflow: hidden;
}

.ph-comm-card--blue  { background: var(--blue); color: #fff; }
.ph-comm-card--paper { background: var(--paper); color: var(--ink); }
.ph-comm-card--ink   { background: var(--ink); color: var(--paper); }

.ph-comm-card__num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 3px;
  opacity: 0.45;
  display: block;
  margin-bottom: 48px;
}

.ph-comm-card__body {
  flex: 1;
}

.ph-comm-card__title {
  font-family: var(--display);
  font-size: clamp(36px, 4vw, 52px);
  letter-spacing: -1.5px;
  line-height: 0.9;
  margin: 0 0 20px;
}

.ph-comm-card__text {
  font-size: 15px;
  line-height: 1.6;
  opacity: 0.75;
  margin: 0;
  max-width: 280px;
}

.ph-comm-card__tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  opacity: 0.5;
  margin-top: 32px;
  display: block;
}

/* diagonal texture on ink card */
.ph-comm-card--ink::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0 10px, rgba(255,255,255,0.025) 10px 11px);
  pointer-events: none;
}

/* ── Manifesto ───────────────────────────────────────────────── */
.ph-comm-manifesto {
  background: var(--paper-warm);
  padding: 96px 0;
}

.ph-comm-manifesto__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 80px;
  align-items: center;
}

.ph-comm-manifesto__label {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ph-comm-manifesto__line {
  width: 40px;
  height: 2px;
  background: var(--ink);
}

.ph-comm-manifesto__quote {
  font-family: var(--display);
  font-size: clamp(28px, 4vw, 52px);
  letter-spacing: -1.5px;
  line-height: 1.1;
  margin: 0;
  color: var(--ink);
  border-left: 4px solid var(--ink);
  padding-left: 48px;
}

/* ── Community responsive ────────────────────────────────────── */
@media (max-width: 900px) {
  .ph-comm-hero__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .ph-comm-features__inner {
    grid-template-columns: 1fr;
  }
  .ph-comm-card { min-height: auto; }
  .ph-comm-manifesto__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ph-comm-manifesto__quote {
    padding-left: 24px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   WOOCOMMERCE — BRAND OVERRIDES
   My Account · Cart · Checkout · Single Product · Notices
   ═══════════════════════════════════════════════════════════════ */

/* ── WooCommerce base resets ─────────────────────────────────── */
.woocommerce,
.woocommerce-page {
  font-family: var(--body);
  color: var(--ink);
}

.woocommerce a,
.woocommerce-page a {
  color: var(--ink);
  text-decoration: none;
}

.woocommerce a:hover,
.woocommerce-page a:hover {
  color: var(--blue);
}

/* ── Notices ──────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  list-style: none !important;
  margin: 0 0 24px !important;
  padding: 16px 20px !important;
  border: none !important;
  border-left: 4px solid var(--blue) !important;
  background: var(--paper) !important;
  font-family: var(--mono) !important;
  font-size: 13px !important;
  letter-spacing: 0.03em !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  border-radius: 0 !important;
}

.woocommerce-error {
  border-left-color: #e53e3e !important;
}

.woocommerce-message::before,
.woocommerce-info::before {
  display: none !important;
}

.woocommerce-message .button,
.woocommerce-notice .button {
  margin-left: auto !important;
  padding: 8px 20px !important;
  background: var(--ink) !important;
  color: var(--paper) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
}

/* ── My Account (nur eingeloggt) ───────────────────────────────── */
.logged-in.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 64px;
  align-items: start;
  padding: 64px 0;
}

.woocommerce-MyAccount-navigation {
  position: sticky;
  top: 100px;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 2px solid var(--ink);
}

.woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 12px 0;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  transition: color 0.15s, padding-left 0.15s;
}

.woocommerce-MyAccount-navigation ul li a:hover {
  color: var(--blue);
  padding-left: 8px;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--ink);
  color: var(--paper);
  padding-left: 12px;
}

.woocommerce-MyAccount-content {
  min-width: 0;
}

.woocommerce-MyAccount-content h2 {
  font-family: var(--display);
  font-size: clamp(24px, 3vw, 36px);
  letter-spacing: -1px;
  margin: 0 0 32px;
  text-transform: uppercase;
}

.woocommerce-MyAccount-content p {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(0,0,0,0.7);
}

/* Orders table */
.woocommerce-orders-table,
.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.woocommerce-orders-table thead th,
.shop_table thead th {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 12px 16px;
  text-align: left;
  border-bottom: 2px solid var(--ink);
}

.woocommerce-orders-table tbody td,
.shop_table tbody td {
  padding: 16px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  vertical-align: middle;
}

.woocommerce-orders-table tbody tr:hover td,
.shop_table tbody tr:hover td {
  background: var(--paper);
}

.woocommerce-button.button,
.woocommerce-MyAccount-content .button {
  display: inline-block;
  padding: 10px 24px;
  background: var(--ink);
  color: var(--paper) !important;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  text-decoration: none !important;
}

.woocommerce-button.button:hover,
.woocommerce-MyAccount-content .button:hover {
  background: transparent;
  color: var(--ink) !important;
}

/* Address columns */
.woocommerce-MyAccount-content .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.woocommerce-MyAccount-content .col2-set h3 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ink);
}

/* Account / address forms */
.woocommerce-MyAccount-content .woocommerce-address-fields,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm {
  max-width: 600px;
}

.woocommerce-MyAccount-content .form-row {
  margin-bottom: 20px;
}

.woocommerce-MyAccount-content .form-row label {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.woocommerce-MyAccount-content .form-row input,
.woocommerce-MyAccount-content .form-row select {
  width: 100%;
  padding: 12px 14px;
  border: 2px solid rgba(0,0,0,0.2);
  border-radius: 0;
  font-family: var(--body);
  font-size: 15px;
  background: #fff;
  transition: border-color 0.15s;
}

.woocommerce-MyAccount-content .form-row input:focus,
.woocommerce-MyAccount-content .form-row select:focus {
  outline: none;
  border-color: var(--ink);
}

/* ── Cart ──────────────────────────────────────────────────────── */
.woocommerce-cart .woocommerce {
  padding: 64px 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 64px;
  align-items: start;
}

/* Notices wrapper spans both columns */
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}

/* Empty cart message spans both */
.woocommerce-cart .woocommerce > .cart-empty {
  grid-column: 1 / -1;
}

.woocommerce-cart .woocommerce-cart-form {
  min-width: 0;
  grid-column: 1;
}

.woocommerce-cart .cart-collaterals {
  grid-column: 2;
  margin: 0;
  display: block;
}

.woocommerce-cart h1.entry-title,
.woocommerce-cart .page-title {
  font-family: var(--display);
  font-size: clamp(32px, 5vw, 56px);
  letter-spacing: -2px;
  text-transform: uppercase;
  margin: 0 0 48px;
}

/* Cart table */
table.cart {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}

table.cart thead th {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 12px 12px;
  text-align: left;
  border-bottom: 2px solid var(--ink);
  white-space: nowrap;
}

table.cart tbody td {
  padding: 20px 12px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  vertical-align: middle;
}

/* Column widths */
table.cart .product-remove,
table.cart th.product-remove { width: 40px; padding-left: 0; padding-right: 0; }

table.cart .product-thumbnail,
table.cart th.product-thumbnail { width: 90px; }

table.cart .product-name { min-width: 180px; }

table.cart .product-price,
table.cart th.product-price,
table.cart .product-subtotal,
table.cart th.product-subtotal {
  white-space: nowrap;
  text-align: right;
}

table.cart .product-quantity,
table.cart th.product-quantity { width: 100px; }

table.cart .product-name a {
  font-family: var(--display);
  font-size: 16px;
  letter-spacing: -0.3px;
  text-transform: uppercase;
  color: var(--ink);
}

table.cart .product-thumbnail img {
  width: 80px;
  height: 80px;
  object-fit: cover;
}

table.cart .product-remove a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: none;
  border: 1px solid rgba(0,0,0,0.2);
  color: var(--ink) !important;
  font-size: 16px;
  font-weight: 300;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}

table.cart .product-remove a:hover {
  background: var(--ink);
  color: var(--paper) !important;
  border-color: var(--ink);
}

table.cart input.qty {
  width: 60px;
  padding: 8px 10px;
  border: 2px solid rgba(0,0,0,0.2);
  border-radius: 0;
  font-family: var(--mono);
  font-size: 14px;
  text-align: center;
}

table.cart input.qty:focus {
  outline: none;
  border-color: var(--ink);
}

/* Cart actions row (coupon left, update button right) */
.woocommerce-cart-form td.actions {
  padding: 24px 0 !important;
  background: transparent !important;
  border: none !important;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: stretch;
  justify-content: space-between;
}

.woocommerce-cart-form td.actions .coupon {
  display: flex;
  gap: 0;
  align-items: stretch;
  flex: 1 1 auto;
  max-width: 420px;
}

.woocommerce-cart-form td.actions .coupon input#coupon_code {
  flex: 1;
  min-width: 0;
  padding: 12px 14px;
  border: 2px solid var(--ink);
  border-right: none;
  border-radius: 0;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.05em;
  background: #fff;
}

.woocommerce-cart-form td.actions .coupon input#coupon_code:focus {
  outline: none;
}

.woocommerce-cart-form td.actions button.button {
  padding: 12px 20px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: 2px solid var(--ink);
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}

.woocommerce-cart-form td.actions .coupon button.button {
  background: var(--ink);
  color: var(--paper);
}

.woocommerce-cart-form td.actions .coupon button.button:hover {
  background: transparent;
  color: var(--ink);
}

.woocommerce-cart-form td.actions button[name="update_cart"] {
  background: transparent;
  color: var(--ink);
}

.woocommerce-cart-form td.actions button[name="update_cart"]:hover {
  background: var(--ink);
  color: var(--paper);
}

/* Hide the bottom border on the actions row */
.woocommerce-cart-form table.cart tbody tr:has(td.actions) {
  border-bottom: none;
}

.cart_totals {
  background: var(--paper-warm);
  padding: 28px;
  position: sticky;
  top: 100px;
  border: 1px solid var(--ink);
}

.cart_totals h2 {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  margin: 0 0 20px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink);
}

.cart_totals table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
}

.cart_totals table th {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 10px 0;
  text-align: left;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  width: 40%;
}

.cart_totals table td {
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  text-align: right;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  border-bottom: none;
  padding-top: 16px;
  white-space: nowrap;
  vertical-align: middle;
}

.cart_totals .order-total th {
  text-transform: uppercase;
  width: 50%;
}

.cart_totals .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  padding: 18px;
  background: var(--blue);
  color: var(--paper) !important;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: center;
  border: none;
  border-radius: 0;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.15s;
}

.cart_totals .wc-proceed-to-checkout .checkout-button:hover {
  background: var(--ink);
}

/* Update cart button */
.actions .button[name="update_cart"] {
  background: none;
  color: var(--ink);
  border: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 10px 24px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.actions .button[name="update_cart"]:hover {
  background: var(--ink);
  color: var(--paper);
}

/* ── Checkout ──────────────────────────────────────────────────── */
.woocommerce-checkout .woocommerce {
  padding: 64px 0;
}

.woocommerce-checkout h3 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--ink);
}

#customer_details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}

#order_review_heading {
  margin-top: 48px;
}

.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
}

.woocommerce-checkout-review-order-table thead th {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 10px 0;
  border-bottom: 2px solid var(--ink);
  text-align: left;
}

.woocommerce-checkout-review-order-table tbody td,
.woocommerce-checkout-review-order-table tfoot td,
.woocommerce-checkout-review-order-table tfoot th {
  padding: 12px 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  font-size: 14px;
}

.woocommerce-checkout-review-order-table tfoot .order-total td,
.woocommerce-checkout-review-order-table tfoot .order-total th {
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: -0.5px;
  border-bottom: none;
}

/* Checkout form fields */
.woocommerce-checkout .form-row {
  margin-bottom: 20px;
}

.woocommerce-checkout .form-row label {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  width: 100%;
  padding: 12px 14px;
  border: 2px solid rgba(0,0,0,0.2);
  border-radius: 0;
  font-family: var(--body);
  font-size: 15px;
  background: #fff;
  transition: border-color 0.15s;
  box-sizing: border-box;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none;
  border-color: var(--ink);
}

/* Payment methods */
#payment {
  background: var(--paper);
  padding: 24px;
  margin-top: 24px;
}

#payment ul.payment_methods {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}

#payment ul.payment_methods li {
  padding: 14px 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

#payment ul.payment_methods li label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

#payment .payment_box {
  padding: 16px;
  background: #fff;
  border-left: 3px solid var(--blue);
  margin-top: 12px;
  font-size: 13px;
}

#place_order {
  display: block;
  width: 100%;
  padding: 20px;
  background: var(--blue);
  color: var(--paper) !important;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s;
}

#place_order:hover {
  background: var(--ink);
}

/* ── Single Product ─────────────────────────────────────────────── */
.single-product .woocommerce {
  padding: 0;
}

.single-product div.product {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.single-product div.product .woocommerce-product-gallery {
  position: sticky;
  top: 100px;
}

.single-product div.product .woocommerce-product-gallery__wrapper img {
  width: 100%;
  display: block;
}

.single-product .woocommerce-product-gallery__trigger {
  display: none;
}

/* Thumbnails */
.single-product .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 12px;
  padding: 0;
  list-style: none;
}

.single-product .flex-control-thumbs li img {
  width: 100%;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.15s;
  display: block;
}

.single-product .flex-control-thumbs li img.flex-active,
.single-product .flex-control-thumbs li img:hover {
  opacity: 1;
}

/* Product info column */
.single-product .summary {
  padding-top: 8px;
}

.single-product .summary .product_title {
  font-family: var(--display);
  font-size: clamp(28px, 3.5vw, 48px);
  letter-spacing: -1.5px;
  text-transform: uppercase;
  line-height: 1;
  margin: 0 0 16px;
}

.single-product .summary .price {
  font-family: var(--display);
  font-size: 28px;
  letter-spacing: -0.5px;
  margin: 0 0 24px;
  display: block;
}

.single-product .summary .woocommerce-product-details__short-description {
  font-size: 15px;
  line-height: 1.75;
  color: rgba(0,0,0,0.65);
  margin-bottom: 32px;
}

/* Stock status */
.single-product .summary .in-stock {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 4px 10px;
  background: rgba(0, 100, 255, 0.08);
  color: var(--blue);
  border: 1px solid var(--blue);
  margin-bottom: 24px;
}

.single-product .summary .out-of-stock {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 4px 10px;
  background: rgba(229, 62, 62, 0.08);
  color: #e53e3e;
  border: 1px solid #e53e3e;
  margin-bottom: 24px;
}

/* Variations */
.single-product .variations {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
}

.single-product .variations td.label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 8px 16px 8px 0;
  white-space: nowrap;
}

.single-product .variations td.value select {
  padding: 10px 36px 10px 14px;
  border: 2px solid var(--ink);
  border-radius: 0;
  font-family: var(--body);
  font-size: 14px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23111' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center;
  -webkit-appearance: none;
  appearance: none;
  min-width: 180px;
  cursor: pointer;
}

.single-product .variations td.value select:focus {
  outline: none;
}

.single-product .reset_variations {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(0,0,0,0.4);
  display: block;
  margin-top: 6px;
}

/* Add to cart */
.single-product .cart {
  display: flex;
  gap: 12px;
  align-items: stretch;
  margin-bottom: 24px;
}

.single-product .cart input.qty {
  width: 72px;
  padding: 0 12px;
  border: 2px solid var(--ink);
  border-radius: 0;
  font-family: var(--mono);
  font-size: 16px;
  text-align: center;
}

.single-product .cart input.qty:focus {
  outline: none;
}

.single-product .cart .single_add_to_cart_button {
  flex: 1;
  padding: 16px 32px;
  background: var(--blue);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: 2px solid var(--blue);
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.single-product .cart .single_add_to_cart_button:hover {
  background: var(--ink);
  border-color: var(--ink);
}

/* Product meta */
.single-product .product_meta {
  padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,0.1);
  margin-top: 8px;
}

.single-product .product_meta > span {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 6px;
  color: rgba(0,0,0,0.5);
}

.single-product .product_meta a {
  color: var(--ink);
  text-decoration: underline;
}

/* Related products */
.related.products h2,
.upsells.products h2 {
  font-family: var(--display);
  font-size: clamp(20px, 2.5vw, 32px);
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 64px 0 32px;
}

/* ── WooCommerce responsive ──────────────────────────────────── */
@media (max-width: 900px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 40px 20px;
  }

  .woocommerce-MyAccount-navigation {
    position: static;
  }

  .woocommerce-MyAccount-content .col2-set {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  #customer_details {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .cart-collaterals {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .single-product div.product {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .single-product div.product .woocommerce-product-gallery {
    position: static;
  }

  table.cart thead {
    display: none;
  }

  table.cart tbody td {
    display: block;
    padding: 8px 0;
    border: none;
  }

  table.cart tbody tr {
    border-bottom: 1px solid rgba(0,0,0,0.1);
    padding: 16px 0;
    display: block;
  }

  .woocommerce-cart .woocommerce,
  .woocommerce-checkout .woocommerce {
    padding: 40px 0;
  }

  /* Cart: stack form + totals */
  .woocommerce-cart .woocommerce {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .woocommerce-cart .cart_totals {
    position: static;
  }

  /* Actions row: stack coupon and update button */
  .woocommerce-cart-form td.actions {
    flex-direction: column;
    gap: 12px;
  }

  .woocommerce-cart-form td.actions .coupon {
    max-width: 100%;
    width: 100%;
  }

  .woocommerce-cart-form td.actions button[name="update_cart"] {
    width: 100%;
  }
}

/* ═══════════════════════════════════════════════════════════════
   ACCOUNT GATE — Login / Register page
   ═══════════════════════════════════════════════════════════════ */

.ph-account-gate {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: calc(100vh - var(--header-h));
  max-width: var(--max-w);
  margin-inline: auto;
}

/* ── Brand panel ─────────────────────────────────────────────── */
.ph-account-gate__brand {
  background: var(--ink);
  color: var(--paper);
  padding: 80px var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}

.ph-account-gate__brand-inner {
  position: relative;
  z-index: 1;
}

.ph-account-gate__eyebrow {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(244,239,230,0.45);
  display: block;
  margin-bottom: 40px;
}

.ph-account-gate__headline {
  font-family: var(--display);
  font-size: clamp(52px, 6vw, 88px);
  letter-spacing: -3px;
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0 0 40px;
  color: var(--paper);
}

.ph-account-gate__headline--outline {
  -webkit-text-stroke: 2px var(--paper);
  color: transparent;
}

.ph-account-gate__sub {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(244,239,230,0.65);
  max-width: 360px;
  margin: 0 0 40px;
}

.ph-account-gate__perks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ph-account-gate__perks li {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(244,239,230,0.7);
  display: flex;
  align-items: center;
  gap: 12px;
}

.ph-account-gate__perk-icon {
  color: var(--blue);
}

.ph-account-gate__deco {
  font-family: var(--display);
  font-size: clamp(80px, 10vw, 160px);
  letter-spacing: -6px;
  text-transform: uppercase;
  color: rgba(244,239,230,0.04);
  white-space: nowrap;
  position: absolute;
  bottom: -20px;
  left: -10px;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ── Forms panel ─────────────────────────────────────────────── */
.ph-account-gate__forms {
  background: var(--paper);
  padding: 80px var(--gutter);
  display: flex;
  flex-direction: column;
  gap: 64px;
  overflow-y: auto;
}

.ph-account-form {
  max-width: 420px;
}

.ph-account-form__title {
  font-family: var(--display);
  font-size: clamp(28px, 3vw, 40px);
  letter-spacing: -1.5px;
  text-transform: uppercase;
  margin: 0 0 8px;
}

.ph-account-form__sub {
  font-size: 14px;
  color: var(--muted);
  margin: 0 0 32px;
  line-height: 1.6;
}

.ph-account-form--register {
  padding-top: 48px;
  border-top: 2px solid var(--ink);
}

/* Divider between login and register */
.ph-account-gate__forms > .ph-account-form + .ph-account-form {
  margin-top: 0;
}

/* ── Field components ─────────────────────────────────────────── */
.ph-field-group {
  margin-bottom: 20px;
}

.ph-field-label {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 8px;
}

.ph-field-input {
  display: block;
  width: 100%;
  padding: 14px 16px;
  border: 2px solid rgba(0,0,0,0.15);
  border-radius: 0;
  font-family: var(--body);
  font-size: 15px;
  background: #fff;
  color: var(--ink);
  transition: border-color 0.15s;
  box-sizing: border-box;
  outline: none;
}

.ph-field-input::placeholder {
  color: rgba(0,0,0,0.28);
}

.ph-field-input:focus {
  border-color: var(--ink);
}

/* Options row */
.ph-account-form__options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}

.ph-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
}

.ph-checkbox-label input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--ink);
}

.ph-account-form__forgot {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  transition: color 0.15s;
}

.ph-account-form__forgot:hover {
  color: var(--ink);
}

/* Buttons */
.ph-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 16px 32px;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  border: 2px solid transparent;
  text-decoration: none;
}

.ph-btn--primary {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

.ph-btn--primary:hover {
  background: var(--blue);
  border-color: var(--blue);
  color: var(--paper);
}

.ph-btn--outline {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}

.ph-btn--outline:hover {
  background: var(--ink);
  color: var(--paper);
}

.ph-btn--full {
  width: 100%;
}

.ph-account-form__switch {
  margin-top: 20px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.ph-account-form__switch a {
  color: var(--ink);
  text-decoration: underline;
}

.ph-account-form__note {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 20px;
  line-height: 1.6;
}

/* Hide the default page title on account gate */
.woocommerce-account:not(.logged-in) .ph-page-content__title {
  display: none;
}

/* Account gate: parents lose their text-column max-width so the gate can use full width */
.ph-page-content--gate,
.ph-page-content--gate .ph-page-content__body,
.ph-page-content--gate .woocommerce {
  max-width: none;
  width: 100%;
  padding: 0;
  margin: 0;
  display: block;
}

/* Hidden inputs MUST stay invisible everywhere */
input[type="hidden"] {
  display: none !important;
}

/* WooCommerce auto-injected "Show password" toggle: style as eye icon inside the field */
.ph-account-form .password-input {
  position: relative;
  display: block;
}

.ph-account-form .password-input .ph-field-input {
  padding-right: 48px;
}

.ph-account-form .show-password-input {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  opacity: 0.45;
  transition: opacity 0.15s;
}

.ph-account-form .show-password-input::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

.ph-account-form .show-password-input:hover {
  opacity: 1;
}

.ph-account-form .show-password-input.display-password::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-10-7-10-7a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 10 7 10 7a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E");
}

/* Screen-reader text inside labels stays invisible */
.ph-account-form .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}

/* ── Account gate responsive ──────────────────────────────────── */
@media (max-width: 900px) {
  .ph-account-gate {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .ph-account-gate__brand {
    padding: 60px var(--gutter) 48px;
    min-height: auto;
  }

  .ph-account-gate__headline {
    font-size: clamp(44px, 12vw, 72px);
  }

  .ph-account-gate__deco {
    font-size: clamp(60px, 18vw, 120px);
  }

  .ph-account-gate__forms {
    padding: 48px var(--gutter);
  }

  .ph-account-form {
    max-width: 100%;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE OPTIMIERUNGEN — globale Fixes für Overflow & Lesbarkeit
   ═══════════════════════════════════════════════════════════════ */

/* Kein horizontales Overflow */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* ── Community Hero — Titel zu groß auf kleinen Screens ─────── */
@media (max-width: 560px) {
  .ph-comm-hero__title {
    font-size: clamp(52px, 16vw, 80px);
    letter-spacing: -3px;
  }
  .ph-comm-hero__inner {
    padding-inline: var(--gutter);
    gap: 32px;
  }
  .ph-comm-hero {
    padding: 80px 0 60px;
    min-height: 75vh;
  }
  .ph-comm-hero__sub {
    font-size: 15px;
    max-width: 100%;
  }
}

/* ── Shop Hero — Titel & Layout ─────────────────────────────── */
@media (max-width: 480px) {
  .ph-shop-hero__title {
    font-size: clamp(52px, 18vw, 88px);
    letter-spacing: -2px;
  }
  .ph-shop-hero__inner {
    gap: 20px;
    padding-inline: var(--gutter);
  }
  .ph-shop-hero__sub {
    font-size: 14px;
  }
}

/* ── Shop Toolbar — statt nebeneinander untereinander ───────── */
@media (max-width: 600px) {
  .ph-shop-toolbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .ph-shop-toolbar .woocommerce-ordering,
  .ph-shop-toolbar .woocommerce-result-count {
    font-size: 12px;
  }
  .ph-shop-toolbar select {
    width: 100%;
  }
}

/* ── Produktgitter — 2-Spalten Borders korrigieren ─────────── */
@media (max-width: 900px) {
  li.product:nth-child(3n) { border-right: 1px solid var(--line); }
  li.product:nth-child(2n) { border-right: none; }
}
@media (max-width: 560px) {
  li.product:nth-child(2n) { border-right: 1px solid var(--line); }
  li.product { border-right: none; }
}

/* ── Produktkarte Bilder skalieren korrekt ──────────────────── */
@media (max-width: 480px) {
  .ph-product-card__img { min-height: 200px; }
  .ph-product-card__body { padding: 16px; }
  .ph-product-card__title { font-size: 18px; }
}

/* ── Single Product — Galerie-Stack & Sticky deaktivieren ───── */
@media (max-width: 768px) {
  .single-product div.product .woocommerce-product-gallery {
    position: static;
    margin-bottom: 32px;
  }
  .single-product .flex-control-thumbs {
    grid-template-columns: repeat(4, 1fr);
  }
  .single-product .cart {
    flex-wrap: wrap;
  }
  .single-product .cart input.qty {
    width: 100%;
  }
}

/* ── Cart Table — horizontales Scrollen ─────────────────────── */
@media (max-width: 768px) {
  .woocommerce-cart .woocommerce-cart-form {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  table.cart {
    min-width: 500px;
  }
  .cart-collaterals {
    margin-top: 32px;
  }
}

/* ── Checkout — single-column form ──────────────────────────── */
@media (max-width: 640px) {
  #customer_details {
    grid-template-columns: 1fr;
  }
  .woocommerce-checkout .woocommerce {
    padding: 40px 0;
  }
}

/* ── Account Navigation — kein Sticky auf Mobile ────────────── */
@media (max-width: 640px) {
  .woocommerce-MyAccount-navigation {
    position: static;
  }
  .woocommerce-MyAccount-content .col2-set {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* ── Footer ─────────────────────────────────────────────────── */
@media (max-width: 480px) {
  .ph-footer__bottom {
    flex-direction: column;
    text-align: center;
    gap: 12px;
  }
  .ph-footer__legal {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 16px;
  }
}

/* ── Header — sehr kleine Screens ───────────────────────────── */
@media (max-width: 360px) {
  .ph-logo__text { display: none; }
  .ph-header__inner { gap: 12px; }
}

/* ── Page Content — kein Überlauf bei langen Wörtern ────────── */
.ph-page-content__body,
.woocommerce-MyAccount-content,
.woocommerce-checkout .woocommerce,
.woocommerce-cart .woocommerce {
  word-break: break-word;
  overflow-wrap: break-word;
}

/* ── Community Features Cards — schmalere Screens ───────────── */
@media (max-width: 480px) {
  .ph-comm-card {
    padding: 28px 24px;
  }
  .ph-comm-card__num {
    font-size: 48px;
  }
  .ph-comm-manifesto__quote {
    font-size: clamp(22px, 6vw, 36px);
    padding-left: 16px;
  }
}

/* ── Account Gate — Mobile anpassen ─────────────────────────── */
@media (max-width: 480px) {
  .ph-account-gate__headline {
    font-size: clamp(40px, 14vw, 64px);
    letter-spacing: -2px;
  }
  .ph-account-gate__perks {
    gap: 8px;
  }
  .ph-btn {
    font-size: 11px;
    padding: 14px 24px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   FIXES — Logo bold, Footer mobile, Login alignment, Product mobile
   ═══════════════════════════════════════════════════════════════ */

/* ── Logo: ensure bold rendering even with font fallbacks ─────── */
.ph-logo__text {
  font-weight: 900;
}

/* ── Login form: identical sizing for checkbox & forgot link ──── */
.ph-account-form__options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  line-height: 1.4;
}

.ph-account-form__options .ph-checkbox-label,
.ph-account-form__options .ph-checkbox-label span,
.ph-account-form__options .ph-account-form__forgot {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.4;
  margin: 0;
  padding: 0;
}

.ph-account-form__options .ph-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.ph-account-form__options .ph-checkbox-label input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  flex-shrink: 0;
  accent-color: var(--ink);
}

/* ── Footer Legal: visible & wrapping on every screen ─────────── */
@media (max-width: 700px) {
  .ph-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 16px;
  }
  .ph-footer__legal {
    flex-wrap: wrap;
    gap: 12px 18px;
    justify-content: flex-start;
  }
  .ph-footer__legal a {
    color: rgba(244,239,230,0.7);
  }
}

/* ── Product page: prevent overflow on ALL widths ──────────────── */
.single-product div.product,
.single-product .summary,
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery__wrapper,
.single-product .related,
.single-product .upsells,
.single-product .cart,
.single-product .variations {
  min-width: 0 !important;
  box-sizing: border-box;
}

.single-product .woocommerce-product-gallery__wrapper img,
.single-product .flex-control-thumbs img,
.single-product .summary img {
  max-width: 100%;
  height: auto;
}

.single-product .summary {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* Override grid columns with minmax(0, 1fr) so children don't blow out */
.single-product div.product {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.single-product .flex-control-thumbs {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 768px) {
  .single-product .ph-shop-main {
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }
  .single-product div.product {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .single-product .variations {
    width: 100%;
    display: block;
  }
  .single-product .variations tbody {
    display: block;
    width: 100%;
  }
  .single-product .variations tr {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
  }
  .single-product .variations td.label,
  .single-product .variations td.value {
    display: block;
    width: 100%;
    padding: 0;
  }
  .single-product .variations td.value select {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
  .single-product .cart .quantity,
  .single-product .cart .single_add_to_cart_button {
    width: 100%;
    max-width: 100%;
  }
}

/* ── Stripe Express Checkout container — let Stripe control visibility ── */
.single-product #wc-stripe-express-checkout-element {
  margin: 16px 0 24px !important;
}

/* When Stripe shows it, give it a brand frame */
.single-product #wc-stripe-express-checkout-element:not([style*="display: none"]):not([style*="display:none"]) {
  padding: 16px;
  background: var(--paper-warm);
  border: 1px solid var(--line);
}

/* ── Related / Upsells: always visible & in CI ─────────────────── */
.related.products,
.upsells.products {
  margin-top: 80px !important;
  padding-top: 56px;
  border-top: 1px solid var(--line);
}

.related.products > h2,
.upsells.products > h2 {
  font-family: var(--display);
  font-size: clamp(28px, 3.5vw, 48px);
  letter-spacing: -1.5px;
  text-transform: uppercase;
  margin: 0 0 32px;
  position: relative;
  padding-bottom: 16px;
}

.related.products > h2::after,
.upsells.products > h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 4px;
  background: var(--blue);
}

.related ul.products,
.upsells ul.products {
  margin: 0;
  border: 1px solid var(--line);
}

@media (max-width: 768px) {
  .related.products,
  .upsells.products {
    margin-top: 56px !important;
  }
}

/* ── Quantity Counter: symmetric placement under variations ───── */
.single-product .cart {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 24px;
  margin-bottom: 32px;
}

.single-product .cart .quantity {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 0;
  border: 2px solid var(--ink);
  width: 100%;
  max-width: 200px;
  margin: 0 auto;
}

.single-product .cart .quantity::before {
  content: "ANZAHL";
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
}

.single-product .cart input.qty {
  width: 60px;
  border: none;
  text-align: center;
  font-family: var(--mono);
  font-size: 16px;
  background: transparent;
  padding: 0;
  outline: none;
}

.single-product .cart .single_add_to_cart_button {
  width: 100%;
  padding: 18px 32px;
  font-size: 13px;
  letter-spacing: 0.18em;
  margin-top: 8px;
}

@media (max-width: 768px) {
  .single-product .cart {
    flex-direction: column;
  }
  .single-product .cart .quantity,
  .single-product .cart .single_add_to_cart_button {
    width: 100%;
    max-width: 100%;
  }
}

/* ═══════════════════════════════════════════════════════════════
   PRODUKT-KATEGORIEN — coole CI-Darstellung
   ═══════════════════════════════════════════════════════════════ */

/* Category landing pages: hero with eyebrow + outline title (already done in shop hero).
   Strengthen category cards / product card numbering. */

.ph-product-card {
  position: relative;
}

.ph-product-card::before {
  content: attr(data-cat-num);
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--paper);
  background: var(--ink);
  padding: 4px 8px;
  text-transform: uppercase;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
}

.ph-product-card:hover::before {
  opacity: 1;
}

/* Category navigation strip (visible on shop archive) */
.ph-cat-strip {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 2px solid var(--ink);
  margin-bottom: 0;
  overflow-x: auto;
}

.ph-cat-strip__item {
  flex: 1;
  padding: 18px 16px;
  text-align: center;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  border-right: 1px solid var(--line);
  position: relative;
  transition: background 0.15s, color 0.15s;
}

.ph-cat-strip__item:last-child {
  border-right: none;
}

.ph-cat-strip__item:hover,
.ph-cat-strip__item.is-active {
  background: var(--ink);
  color: var(--paper);
}

.ph-cat-strip__num {
  font-size: 9px;
  opacity: 0.5;
  display: block;
  margin-bottom: 4px;
}

/* ═══════════════════════════════════════════════════════════════
   WASSERSPORT — Hub Page
   ═══════════════════════════════════════════════════════════════ */

.ph-sports {
  background: var(--paper);
}

/* ── Hero ──────────────────────────────────────────────────────── */
.ph-sports-hero {
  background: var(--ink);
  color: var(--paper);
  position: relative;
  overflow: hidden;
  padding: 120px 0 100px;
  border-bottom: 4px solid var(--blue);
}

.ph-sports-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    transparent 0 14px,
    rgba(255,255,255,0.02) 14px 15px
  );
  pointer-events: none;
}

.ph-sports-hero__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  position: relative;
  z-index: 1;
}

.ph-sports-hero__eyebrow {
  color: var(--blue) !important;
  margin-bottom: 32px;
  display: block;
}

.ph-sports-hero__title {
  font-family: var(--display);
  font-size: clamp(64px, 11vw, 156px);
  letter-spacing: -5px;
  line-height: 0.85;
  text-transform: uppercase;
  margin: 0 0 32px;
}

.ph-sports-hero__title--outline {
  -webkit-text-stroke: 3px var(--paper);
  color: transparent;
}

.ph-sports-hero__sub {
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.6;
  color: rgba(244,239,230,0.7);
  max-width: 560px;
  margin: 0;
}

.ph-sports-hero__deco {
  position: absolute;
  right: var(--gutter);
  bottom: 30px;
  font-family: var(--display);
  font-size: clamp(80px, 14vw, 220px);
  letter-spacing: -8px;
  line-height: 1;
  color: rgba(244,239,230,0.05);
  text-transform: uppercase;
  pointer-events: none;
  user-select: none;
}

/* ── Sports Grid ───────────────────────────────────────────────── */
.ph-sports-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.ph-sport-tile {
  position: relative;
  display: block;
  min-height: 480px;
  background-size: cover;
  background-position: center;
  text-decoration: none;
  color: var(--paper);
  overflow: hidden;
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  transition: transform 0.5s;
}

.ph-sport-tile:nth-child(2n) {
  border-right: none;
}

/* Make tile 5 (last, odd) span both columns */
.ph-sport-tile:nth-child(5):last-child {
  grid-column: 1 / -1;
  min-height: 380px;
}

.ph-sport-tile__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.4) 0%, rgba(10,10,10,0.85) 100%);
  transition: background 0.3s;
}

.ph-sport-tile:hover .ph-sport-tile__overlay {
  background: linear-gradient(180deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.9) 100%);
}

.ph-sport-tile__content {
  position: absolute;
  inset: 0;
  padding: 48px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  z-index: 1;
}

.ph-sport-tile__num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--blue);
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.ph-sport-tile__name {
  font-family: var(--display);
  font-size: clamp(36px, 5vw, 72px);
  letter-spacing: -2px;
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0 0 8px;
  color: var(--paper);
  transition: transform 0.3s;
}

.ph-sport-tile:hover .ph-sport-tile__name {
  transform: translateX(8px);
}

.ph-sport-tile__tagline {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(244,239,230,0.6);
  margin-bottom: 16px;
  display: block;
}

.ph-sport-tile__short {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(244,239,230,0.85);
  margin: 0 0 24px;
  max-width: 420px;
}

.ph-sport-tile__cta {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper);
  border-bottom: 2px solid var(--blue);
  padding-bottom: 4px;
  align-self: flex-start;
  transition: border-color 0.2s, color 0.2s;
}

.ph-sport-tile:hover .ph-sport-tile__cta {
  color: var(--blue);
  border-color: var(--paper);
}

/* ── Manifesto Strip ──────────────────────────────────────────── */
.ph-sports-manifesto {
  background: var(--paper-warm);
  padding: 100px 0;
  border-top: 1px solid var(--ink);
}

.ph-sports-manifesto__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  text-align: center;
}

.ph-sports-manifesto__quote {
  font-family: var(--display);
  font-size: clamp(28px, 4vw, 52px);
  letter-spacing: -1.5px;
  line-height: 1.15;
  color: var(--ink);
  margin: 24px 0 16px;
}

.ph-sports-manifesto__sig {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
  margin: 0;
}

/* ── Sports Hub responsive ─────────────────────────────────────── */
@media (max-width: 768px) {
  .ph-sports-hero {
    padding: 80px 0 60px;
  }
  .ph-sports-grid {
    grid-template-columns: 1fr;
  }
  .ph-sport-tile {
    min-height: 360px;
    border-right: none !important;
  }
  .ph-sport-tile:nth-child(5):last-child {
    grid-column: auto;
  }
  .ph-sport-tile__content {
    padding: 32px;
  }
  .ph-sports-manifesto {
    padding: 60px 0;
  }
}

/* ═══════════════════════════════════════════════════════════════
   SPORT SUB-PAGE
   ═══════════════════════════════════════════════════════════════ */

.ph-sport-page-hero {
  position: relative;
  min-height: 50vh;
  background-size: cover;
  background-position: center;
  color: var(--paper);
  display: flex;
  align-items: flex-end;
  border-bottom: 4px solid var(--blue);
}

.ph-sport-page-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.3) 0%, rgba(10,10,10,0.85) 100%);
}

.ph-sport-page-hero__inner {
  position: relative;
  z-index: 1;
  max-width: var(--max-w);
  margin-inline: auto;
  padding: 100px var(--gutter) 56px;
  width: 100%;
}

.ph-sport-page-hero__back {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: rgba(244,239,230,0.7);
  text-transform: uppercase;
  text-decoration: none;
  margin-bottom: 32px;
  transition: color 0.15s, transform 0.15s;
}

.ph-sport-page-hero__back:hover {
  color: var(--blue);
  transform: translateX(-4px);
}

.ph-sport-page-hero__num {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--blue);
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.ph-sport-page-hero__title {
  font-family: var(--display);
  font-size: clamp(48px, 8vw, 112px);
  letter-spacing: -4px;
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0 0 12px;
  color: var(--paper);
}

.ph-sport-page-hero__tagline {
  font-family: var(--mono);
  font-size: clamp(11px, 1vw, 14px);
  letter-spacing: 0.2em;
  color: rgba(244,239,230,0.65);
  text-transform: uppercase;
  display: block;
}

.ph-sport-page-content {
  padding-top: 80px;
  padding-bottom: 80px;
}

.ph-page-content--sport {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 720px;
  margin: 0 auto;
}

.ph-page-content--sport p {
  margin: 0 0 24px;
}

.ph-page-content--sport p:first-of-type::first-letter {
  font-family: var(--display);
  font-size: 76px;
  float: left;
  line-height: 1;
  margin: 0 16px 0 0;
  color: var(--blue);
}

.ph-page-content--sport h2,
.ph-page-content--sport h3 {
  font-family: var(--display);
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 56px 0 16px;
}

.ph-page-content--sport h2 { font-size: 36px; }
.ph-page-content--sport h3 { font-size: 26px; }

.ph-page-content--sport img {
  width: 100%;
  height: auto;
  margin: 32px 0;
  border: 1px solid var(--line);
}

.ph-page-content--sport a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Sport sub-pages: hide the SiteOrigin panel image (we have the hero photo) */
.ph-page-content--sport .so-widget-sow-image,
.ph-page-content--sport .sow-image-container,
.ph-page-content--sport .widget_sow-image {
  display: none;
}

/* Strip SiteOrigin layout chrome on sport sub-pages */
.ph-page-content--sport .panel-grid {
  display: block;
  margin: 0;
}

.ph-page-content--sport .panel-grid-cell,
.ph-page-content--sport .so-panel,
.ph-page-content--sport .panel-layout {
  display: block;
  width: auto;
  padding: 0;
  margin: 0;
}

.ph-page-content--sport .siteorigin-widget-tinymce > p:first-child {
  font-size: 19px;
  font-family: var(--body);
  line-height: 1.7;
}

/* ── Other sports nav ──────────────────────────────────────────── */
.ph-sport-page-other {
  background: var(--ink);
  color: var(--paper);
  padding: 80px 0;
}

.ph-sport-page-other__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 24px;
}

.ph-sport-page-other__tile {
  position: relative;
  min-height: 220px;
  background-size: cover;
  background-position: center;
  text-decoration: none;
  color: var(--paper);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  overflow: hidden;
  transition: transform 0.3s;
}

.ph-sport-page-other__tile:hover {
  transform: translateY(-4px);
}

.ph-sport-page-other__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.3) 0%, rgba(10,10,10,0.88) 100%);
}

.ph-sport-page-other__num {
  position: relative;
  z-index: 1;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--blue);
  margin-bottom: 8px;
}

.ph-sport-page-other__name {
  position: relative;
  z-index: 1;
  font-family: var(--display);
  font-size: clamp(18px, 1.6vw, 24px);
  letter-spacing: -0.5px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0;
  color: var(--paper);
}

@media (max-width: 768px) {
  .ph-sport-page-other__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ph-sport-page-hero__inner {
    padding: 60px var(--gutter) 40px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   NEWS — Blog Roll, Cards, Sidebar, Single Post, Archive
   ═══════════════════════════════════════════════════════════════ */

.ph-news {
  background: var(--paper);
}

/* ── News Hero (homepage) ──────────────────────────────────────── */
.ph-news-hero {
  background: var(--ink);
  color: var(--paper);
  position: relative;
  overflow: hidden;
  padding: 100px 0 80px;
  border-bottom: 4px solid var(--blue);
}

.ph-news-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(31,111,214,0.15) 0%, transparent 50%),
    repeating-linear-gradient(-45deg, transparent 0 14px, rgba(255,255,255,0.02) 14px 15px);
  pointer-events: none;
}

.ph-news-hero__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  position: relative;
  z-index: 1;
}

.ph-news-hero__eyebrow {
  color: var(--blue) !important;
  margin-bottom: 28px;
  display: block;
}

.ph-news-hero__title {
  font-family: var(--display);
  font-size: clamp(56px, 10vw, 132px);
  letter-spacing: -5px;
  line-height: 0.85;
  text-transform: uppercase;
  margin: 0 0 28px;
}

.ph-news-hero__title--outline {
  -webkit-text-stroke: 3px var(--blue);
  color: transparent;
}

.ph-news-hero__sub {
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.6;
  color: rgba(244,239,230,0.7);
  max-width: 600px;
  margin: 0;
}

.ph-news-hero__deco {
  position: absolute;
  right: var(--gutter);
  bottom: 24px;
  font-family: var(--mono);
  font-size: clamp(14px, 1.4vw, 18px);
  letter-spacing: 0.4em;
  color: rgba(244,239,230,0.15);
  text-transform: uppercase;
  pointer-events: none;
  user-select: none;
}

/* ── News Body Layout ──────────────────────────────────────────── */
.ph-news-body {
  padding: 64px 0 96px;
}

.ph-news-body__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 64px;
  align-items: start;
}

/* ── News Cards ────────────────────────────────────────────────── */
.ph-news-roll {
  min-width: 0;
}

/* Featured (large) card */
.ph-news-card--featured {
  margin-bottom: 64px;
  padding-bottom: 56px;
  border-bottom: 2px solid var(--ink);
}

.ph-news-card--featured .ph-news-card__media {
  aspect-ratio: 16 / 9;
}

.ph-news-card--featured .ph-news-card__title {
  font-size: clamp(32px, 4.5vw, 56px);
  letter-spacing: -2px;
  line-height: 1;
  margin: 16px 0 16px;
}

.ph-news-card--featured .ph-news-card__excerpt {
  font-size: 17px;
  max-width: 760px;
}

/* Standard cards */
.ph-news-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
  color: var(--ink);
}

.ph-news-card__media-link {
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.ph-news-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--paper-warm);
  position: relative;
}

.ph-news-card__media--placeholder {
  background:
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(0,0,0,0.04) 8px 9px),
    var(--paper-warm);
}

.ph-news-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}

.ph-news-card:hover .ph-news-card__img {
  transform: scale(1.04);
}

.ph-news-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ph-news-card__cat {
  display: inline-block;
  width: fit-content;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--blue);
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: border-color 0.15s;
}

.ph-news-card__cat:hover {
  border-bottom-color: var(--blue);
}

.ph-news-card__title {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.8px;
  line-height: 1.1;
  text-transform: uppercase;
  margin: 0;
}

.ph-news-card__title a {
  color: var(--ink);
  text-decoration: none;
  background-image: linear-gradient(var(--ink), var(--ink));
  background-size: 0% 2px;
  background-repeat: no-repeat;
  background-position: left bottom;
  transition: background-size 0.25s ease;
}

.ph-news-card__title a:hover {
  background-size: 100% 2px;
}

.ph-news-card__excerpt {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}

.ph-news-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  color: var(--muted);
  text-transform: uppercase;
  margin-top: 4px;
}

.ph-news-card__sep {
  opacity: 0.4;
}

/* Mini cards (related posts) */
.ph-news-card--mini {
  display: flex;
  flex-direction: column;
}

.ph-news-card--mini .ph-news-card__media {
  aspect-ratio: 4 / 3;
}

.ph-news-card--mini .ph-news-card__title {
  font-size: 16px;
  letter-spacing: -0.3px;
}

/* Posts grid */
.ph-news-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px 32px;
}

.ph-news-grid--archive {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Empty state */
.ph-news-empty {
  padding: 80px 0;
  text-align: center;
}

.ph-news-empty h2 {
  font-family: var(--display);
  font-size: clamp(28px, 3.5vw, 40px);
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 16px 0 16px;
}

.ph-news-empty p {
  color: var(--muted);
  font-size: 15px;
  max-width: 480px;
  margin: 0 auto;
}

.ph-news-cta {
  margin-top: 48px;
  text-align: center;
}

/* Pagination */
.ph-news-pagination {
  margin-top: 64px;
  display: flex;
  justify-content: center;
}

.ph-news-pagination .nav-links {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
}

.ph-news-pagination a,
.ph-news-pagination .current {
  display: inline-block;
  padding: 12px 18px;
  background: transparent;
  color: var(--ink);
  text-decoration: none;
  border: 2px solid var(--ink);
  text-transform: uppercase;
  transition: background 0.15s, color 0.15s;
}

.ph-news-pagination a:hover {
  background: var(--ink);
  color: var(--paper);
}

.ph-news-pagination .current {
  background: var(--ink);
  color: var(--paper);
}

/* ── Single Post Hero ──────────────────────────────────────────── */
.ph-post-hero {
  position: relative;
  min-height: 56vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  background-color: var(--ink);
  color: var(--paper);
  border-bottom: 4px solid var(--blue);
}

.ph-post-hero:not(.ph-post-hero--has-image) {
  min-height: 30vh;
}

.ph-post-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.3) 0%, rgba(10,10,10,0.85) 100%);
}

.ph-post-hero:not(.ph-post-hero--has-image) .ph-post-hero__overlay {
  background: var(--ink);
}

.ph-post-hero__inner {
  position: relative;
  z-index: 1;
  max-width: var(--max-w);
  margin-inline: auto;
  padding: 100px var(--gutter) 56px;
  width: 100%;
}

.ph-post-hero__back {
  margin-bottom: 32px;
}

.ph-post-hero__back a {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: rgba(244,239,230,0.65);
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.15s, transform 0.15s;
  display: inline-block;
}

.ph-post-hero__back a:hover {
  color: var(--blue);
  transform: translateX(-4px);
}

.ph-post-hero__cat {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--blue);
  text-decoration: none;
  text-transform: uppercase;
  margin-bottom: 16px;
  border-bottom: 2px solid var(--blue);
  padding-bottom: 4px;
}

.ph-post-hero__title {
  font-family: var(--display);
  font-size: clamp(36px, 6vw, 80px);
  letter-spacing: -2.5px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0 0 24px;
  color: var(--paper);
  max-width: 900px;
}

.ph-post-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  color: rgba(244,239,230,0.65);
  text-transform: uppercase;
}

.ph-post-hero__sep { opacity: 0.4; }

.ph-post-hero__source-meta {
  color: var(--blue);
}

/* ── Article body ──────────────────────────────────────────────── */
.ph-post-article {
  min-width: 0;
}

.ph-post-article__content {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 720px;
}

.ph-post-article__content p {
  margin: 0 0 24px;
}

.ph-post-article__content p:first-of-type {
  font-size: 19px;
  color: var(--ink);
}

.ph-post-article__content h2 {
  font-family: var(--display);
  font-size: clamp(26px, 3vw, 36px);
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 56px 0 16px;
  color: var(--ink);
}

.ph-post-article__content h3 {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  margin: 40px 0 12px;
  color: var(--ink);
}

.ph-post-article__content a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ph-post-article__content blockquote {
  border-left: 4px solid var(--blue);
  padding: 8px 0 8px 24px;
  margin: 32px 0;
  font-family: var(--display);
  font-size: 24px;
  letter-spacing: -0.5px;
  line-height: 1.3;
  color: var(--ink);
}

.ph-post-article__content img {
  width: 100%;
  height: auto;
  margin: 32px 0;
}

.ph-post-article__content ul,
.ph-post-article__content ol {
  margin: 0 0 24px;
  padding-left: 24px;
}

.ph-post-article__content li { margin-bottom: 8px; }

/* Source attribution box */
.ph-post-source {
  margin-top: 48px;
  padding: 28px;
  border: 2px solid var(--ink);
  background: var(--paper-warm);
  max-width: 720px;
}

.ph-post-source__label {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 10px;
}

.ph-post-source__link {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  color: var(--ink);
  text-decoration: none;
  text-transform: uppercase;
  border-bottom: 2px solid transparent;
  transition: border-color 0.15s;
}

.ph-post-source__link:hover {
  border-bottom-color: var(--blue);
}

.ph-post-source__arrow {
  font-size: 18px;
  color: var(--blue);
}

.ph-post-source__note {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}

/* Tags */
.ph-post-tags {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  max-width: 720px;
}

.ph-post-tags__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--muted);
  text-transform: uppercase;
  margin-right: 8px;
}

.ph-post-tag {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink);
  text-decoration: none;
  padding: 4px 10px;
  border: 1px solid var(--line);
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.ph-post-tag:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

/* Related posts */
.ph-post-related {
  margin-top: 80px;
  padding-top: 56px;
  border-top: 1px solid var(--line);
}

.ph-post-related__title {
  font-family: var(--display);
  font-size: clamp(24px, 3vw, 36px);
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 16px 0 32px;
}

.ph-post-related__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

/* ── Archive Hero ──────────────────────────────────────────────── */
.ph-archive-hero {
  background: var(--ink);
  color: var(--paper);
  padding: 80px 0 64px;
  border-bottom: 4px solid var(--blue);
}

.ph-archive-hero__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.ph-archive-hero__back {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: rgba(244,239,230,0.6);
  text-decoration: none;
  text-transform: uppercase;
  margin-bottom: 24px;
  transition: color 0.15s, transform 0.15s;
}

.ph-archive-hero__back:hover {
  color: var(--blue);
  transform: translateX(-4px);
}

.ph-archive-hero__eyebrow {
  color: var(--blue) !important;
  display: block;
  margin-bottom: 16px;
}

.ph-archive-hero__title {
  font-family: var(--display);
  font-size: clamp(40px, 7vw, 96px);
  letter-spacing: -3px;
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0 0 16px;
  color: var(--paper);
}

.ph-archive-hero__desc {
  font-size: 16px;
  line-height: 1.6;
  color: rgba(244,239,230,0.7);
  max-width: 600px;
}

/* ═══════════════════════════════════════════════════════════════
   SIDEBAR — Featured Product · Categories · Newsletter
   ═══════════════════════════════════════════════════════════════ */

.ph-sidebar {
  display: flex;
  flex-direction: column;
  gap: 32px;
  position: sticky;
  top: 96px;
  align-self: start;
}

.ph-sidebar__block {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 24px;
}

.ph-sidebar__label {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--ink);
}

/* Featured product */
.ph-sidebar__product {
  padding: 0;
  border: 1px solid var(--ink);
  background: var(--paper-warm);
  overflow: hidden;
}

.ph-sidebar__product .ph-sidebar__label {
  margin: 0;
  padding: 18px 20px 12px;
  border-bottom: none;
  background: transparent;
}

.ph-sidebar__product-link {
  display: block;
  text-decoration: none;
  color: var(--ink);
}

.ph-sidebar__product-img {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #fff;
}

.ph-sidebar__product-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}

.ph-sidebar__product-link:hover .ph-sidebar__product-img img {
  transform: scale(1.05);
}

.ph-sidebar__product-body {
  padding: 20px;
}

.ph-sidebar__product-name {
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: -0.5px;
  line-height: 1.1;
  text-transform: uppercase;
  margin: 0 0 8px;
}

.ph-sidebar__product-price {
  font-family: var(--mono);
  font-size: 14px;
  letter-spacing: 0.05em;
  color: var(--ink);
  margin-bottom: 16px;
}

.ph-sidebar__product-cta {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--blue);
  border-bottom: 2px solid var(--blue);
  padding-bottom: 2px;
  transition: color 0.15s, border-color 0.15s;
}

.ph-sidebar__product-link:hover .ph-sidebar__product-cta {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

/* Categories */
.ph-sidebar__cat-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ph-sidebar__cat-list li {
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.ph-sidebar__cat-list li:last-child {
  border-bottom: none;
}

.ph-sidebar__cat-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  text-decoration: none;
  color: var(--ink);
  transition: padding-left 0.15s, color 0.15s;
}

.ph-sidebar__cat-list a:hover {
  padding-left: 6px;
  color: var(--blue);
}

.ph-sidebar__cat-name {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ph-sidebar__cat-count {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.05em;
  color: var(--muted);
  background: var(--paper-warm);
  padding: 2px 8px;
}

/* Newsletter */
.ph-sidebar__newsletter {
  background: var(--ink);
  color: var(--paper);
  border: none;
  position: relative;
  overflow: hidden;
}

.ph-sidebar__newsletter::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 100% 0%, rgba(31,111,214,0.25) 0%, transparent 60%);
  pointer-events: none;
}

.ph-sidebar__newsletter > * {
  position: relative;
  z-index: 1;
}

.ph-sidebar__newsletter .ph-sidebar__label {
  border-bottom: 2px solid rgba(244,239,230,0.2);
}

.ph-sidebar__newsletter-title {
  font-family: var(--display);
  font-size: 28px;
  letter-spacing: -1px;
  line-height: 0.95;
  text-transform: uppercase;
  margin: 0 0 12px;
  color: var(--paper);
}

.ph-sidebar__newsletter-title--outline {
  -webkit-text-stroke: 2px var(--blue);
  color: transparent;
}

.ph-sidebar__newsletter-text {
  font-size: 13px;
  line-height: 1.5;
  color: rgba(244,239,230,0.7);
  margin: 0 0 20px;
}

.ph-sidebar__newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ph-sidebar__newsletter-input {
  width: 100%;
  padding: 12px 14px;
  background: rgba(255,255,255,0.05);
  border: 2px solid rgba(244,239,230,0.2);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.05em;
  border-radius: 0;
  transition: border-color 0.15s, background 0.15s;
}

.ph-sidebar__newsletter-input::placeholder {
  color: rgba(244,239,230,0.4);
}

.ph-sidebar__newsletter-input:focus {
  outline: none;
  border-color: var(--blue);
  background: rgba(255,255,255,0.08);
}

.ph-sidebar__newsletter-btn {
  width: 100%;
  padding: 14px;
  background: var(--blue);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 2px solid var(--blue);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.ph-sidebar__newsletter-btn:hover {
  background: transparent;
  color: var(--blue);
}

.ph-sidebar__newsletter-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  line-height: 1.4;
  color: rgba(244,239,230,0.55);
  cursor: pointer;
  margin-top: 4px;
}

.ph-sidebar__newsletter-consent input {
  margin-top: 2px;
  flex-shrink: 0;
}

.ph-sidebar__newsletter-consent a {
  color: var(--paper);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── Forum Sidebar — User/Login/Stats/Topics ──────────────────── */
.ph-sidebar--forum .ph-sidebar__user {
  background: var(--ink);
  color: var(--paper);
  border: none;
}

.ph-sidebar--forum .ph-sidebar__user .ph-sidebar__label {
  color: rgba(244,239,230,0.55);
  border-bottom-color: rgba(244,239,230,0.25);
}

.ph-sidebar__user-card {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.ph-sidebar__user-avatar {
  width: 56px;
  height: 56px;
  border: 2px solid var(--blue);
}

.ph-sidebar__user-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.ph-sidebar__user-meta strong {
  font-family: var(--display);
  font-size: 18px;
  letter-spacing: -0.3px;
  text-transform: uppercase;
  color: var(--paper);
  line-height: 1;
}

.ph-sidebar__user-meta span {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: rgba(244,239,230,0.6);
}

.ph-sidebar__user-actions {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ph-sidebar__user-actions li {
  border-top: 1px solid rgba(244,239,230,0.1);
}

.ph-sidebar__user-actions li:first-child {
  border-top: none;
}

.ph-sidebar__user-actions a {
  display: block;
  padding: 10px 0;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(244,239,230,0.85);
  text-decoration: none;
  transition: color 0.15s, padding-left 0.15s;
}

.ph-sidebar__user-actions a:hover {
  color: var(--blue);
  padding-left: 6px;
}

.ph-sidebar__logout a {
  color: rgba(244,239,230,0.5) !important;
}

.ph-sidebar__logout a:hover {
  color: var(--red) !important;
}

/* Login form */
.ph-sidebar__login-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}

.ph-sidebar__login-input {
  width: 100%;
  padding: 11px 12px;
  background: rgba(255,255,255,0.06);
  border: 2px solid rgba(244,239,230,0.2);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.05em;
  border-radius: 0;
  transition: border-color 0.15s, background 0.15s;
}

.ph-sidebar__login-input::placeholder {
  color: rgba(244,239,230,0.4);
}

.ph-sidebar__login-input:focus {
  outline: none;
  border-color: var(--blue);
  background: rgba(255,255,255,0.1);
}

.ph-sidebar__login-remember {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(244,239,230,0.6);
  cursor: pointer;
}

.ph-sidebar__login-btn {
  width: 100%;
  padding: 13px;
  background: var(--blue);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 2px solid var(--blue);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.ph-sidebar__login-btn:hover {
  background: transparent;
  color: var(--blue);
}

.ph-sidebar__login-meta {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding-top: 12px;
  border-top: 1px solid rgba(244,239,230,0.1);
  flex-wrap: wrap;
  gap: 8px;
}

.ph-sidebar__login-meta a {
  color: rgba(244,239,230,0.6);
  text-decoration: none;
}

.ph-sidebar__login-meta a:hover {
  color: var(--blue);
}

.ph-sidebar__login-register {
  color: var(--blue) !important;
}

/* Forum Stats block */
.ph-sidebar__stats-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.ph-sidebar__stats-list li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.ph-sidebar__stats-list li:nth-child(2n) {
  border-right: none;
}

.ph-sidebar__stats-list li:nth-last-child(-n+2) {
  border-bottom: none;
}

.ph-sidebar__stats-list span {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.ph-sidebar__stats-list strong {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  color: var(--ink);
}

/* Recent Topics block */
.ph-sidebar__topic-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ph-sidebar__topic-list li {
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.ph-sidebar__topic-list li:last-child {
  border-bottom: none;
}

.ph-sidebar__topic-list a {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 0;
  text-decoration: none;
  color: var(--ink);
  transition: padding-left 0.15s;
}

.ph-sidebar__topic-list a:hover {
  padding-left: 4px;
}

.ph-sidebar__topic-cat {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--blue);
}

.ph-sidebar__topic-title {
  font-family: var(--body);
  font-size: 13px;
  line-height: 1.35;
  color: var(--ink);
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ph-sidebar__topic-time {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.05em;
  color: var(--muted);
}

/* ── News Body responsive ──────────────────────────────────────── */
@media (max-width: 1024px) {
  .ph-news-body__inner {
    grid-template-columns: 1fr;
    gap: 56px;
  }
  .ph-sidebar {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    display: grid;
  }
  .ph-sidebar__newsletter {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .ph-news-hero {
    padding: 64px 0 56px;
  }
  .ph-news-grid,
  .ph-news-grid--archive {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .ph-post-related__grid {
    grid-template-columns: 1fr;
  }
  .ph-news-body {
    padding: 48px 0 64px;
  }
  .ph-sidebar {
    grid-template-columns: 1fr;
  }
  .ph-news-hero__deco {
    display: none;
  }
}

/* ═══════════════════════════════════════════════════════════════
   REGISTER GATE — variation of account-gate
   ═══════════════════════════════════════════════════════════════ */
.ph-account-gate--register {
  align-items: stretch;
}

.ph-account-gate__brand--register {
  background: linear-gradient(160deg, var(--ink) 0%, #131820 100%);
  position: relative;
}

.ph-account-gate__brand--register::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 0% 100%, rgba(31,111,214,0.15) 0%, transparent 50%),
    repeating-linear-gradient(-45deg, transparent 0 14px, rgba(255,255,255,0.02) 14px 15px);
  pointer-events: none;
}

.ph-account-gate--register .ph-account-gate__brand-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.ph-account-gate--register .ph-account-gate__perks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ph-account-gate--register .ph-account-gate__perks li {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: rgba(244,239,230,0.85);
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.ph-account-gate--register .ph-account-gate__perk-icon {
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

/* Community Stats inside brand panel */
.ph-account-gate__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 16px;
  border-top: 1px solid rgba(244,239,230,0.15);
  padding-top: 28px;
}

.ph-account-gate__stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 16px;
  border-right: 1px solid rgba(244,239,230,0.1);
}

.ph-account-gate__stat:first-child { padding-left: 0; }
.ph-account-gate__stat:last-child  { padding-right: 0; border-right: none; }

.ph-account-gate__stat strong {
  font-family: var(--display);
  font-size: clamp(22px, 2.4vw, 30px);
  letter-spacing: -0.5px;
  line-height: 1;
  color: var(--paper);
}

.ph-account-gate__stat span {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(244,239,230,0.5);
}

/* Register-form specifics */
.ph-account-form--register {
  max-width: 480px;
}

.ph-account-form--register .ph-account-form__legal {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 8px 0 24px;
  padding: 18px;
  background: var(--paper-warm);
  border-left: 4px solid var(--blue);
}

.ph-account-form--register .ph-account-form__legal .ph-checkbox-label {
  font-size: 12px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-family: var(--body) !important;
  align-items: flex-start !important;
  line-height: 1.45;
  cursor: pointer;
}

.ph-account-form--register .ph-account-form__legal .ph-checkbox-label input[type="checkbox"] {
  margin-top: 2px;
  flex-shrink: 0;
}

.ph-account-form--register .ph-account-form__legal a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
}

.ph-account-form--register .ph-account-form__legal a:hover {
  color: var(--blue);
}

.ph-account-form__login-link {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
  margin: 16px 0 24px;
}

.ph-account-form__login-link a {
  color: var(--blue);
  text-decoration: none;
  border-bottom: 2px solid var(--blue);
  padding-bottom: 1px;
  margin-left: 4px;
}

.ph-account-form__login-link a:hover {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

.ph-account-form__legal-note {
  font-size: 11px;
  line-height: 1.5;
  color: var(--muted);
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.ph-account-form__legal-note a {
  color: var(--ink);
}

.ph-field-hint {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-top: 4px;
}

/* Notice boxes (success / error) reuse contact styles — make sure they exist for register */
.ph-account-form .ph-contact__notice {
  margin: 0 0 24px;
}

@media (max-width: 768px) {
  .ph-account-gate__stats {
    grid-template-columns: 1fr 1fr;
    gap: 16px 0;
  }
  .ph-account-gate__stat:nth-child(2) { border-right: none; }
  .ph-account-gate__stat:nth-child(3) { padding-left: 0; }
}

/* ═══════════════════════════════════════════════════════════════
   FORUM (bbPress) — POWERHALSE CI
   ═══════════════════════════════════════════════════════════════ */

.ph-forum {
  background: var(--paper);
}

/* Hero (matches news hero style) */
.ph-forum-hero {
  background: var(--ink);
  color: var(--paper);
  position: relative;
  overflow: hidden;
  padding: 80px 0 64px;
  border-bottom: 4px solid var(--blue);
}

.ph-forum-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(31,111,214,0.15) 0%, transparent 50%),
    repeating-linear-gradient(-45deg, transparent 0 14px, rgba(255,255,255,0.02) 14px 15px);
  pointer-events: none;
}

.ph-forum-hero__inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
  position: relative;
  z-index: 1;
}

.ph-forum-hero__back {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: rgba(244,239,230,0.65);
  text-decoration: none;
  text-transform: uppercase;
  margin-bottom: 24px;
  transition: color 0.15s, transform 0.15s;
}

.ph-forum-hero__back:hover {
  color: var(--blue);
  transform: translateX(-4px);
}

.ph-forum-hero__eyebrow {
  color: var(--blue) !important;
  display: block;
  margin-bottom: 16px;
}

.ph-forum-hero__title {
  font-family: var(--display);
  font-size: clamp(40px, 7vw, 96px);
  letter-spacing: -3px;
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0 0 16px;
  color: var(--paper);
}

.ph-forum-hero__sub {
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.6;
  color: rgba(244,239,230,0.7);
  max-width: 640px;
  margin: 0;
}

.ph-forum-hero__deco {
  position: absolute;
  right: var(--gutter);
  bottom: 20px;
  font-family: var(--mono);
  font-size: clamp(12px, 1.2vw, 16px);
  letter-spacing: 0.4em;
  color: rgba(244,239,230,0.15);
  text-transform: uppercase;
  pointer-events: none;
}

/* ── bbPress content body ─────────────────────────────────────── */
.ph-forum-content {
  min-width: 0;
}

/* ── Custom Forum-Index (kategorisierte Liste) ──────────────── */
.ph-forum-cat {
  margin-bottom: 56px;
}

.ph-forum-cat:last-child {
  margin-bottom: 0;
}

.ph-forum-cat__head {
  margin-bottom: 24px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink);
  display: flex;
  align-items: baseline;
  gap: 18px;
  flex-wrap: wrap;
}

.ph-forum-cat__title {
  font-family: var(--display);
  font-size: clamp(22px, 2.5vw, 32px);
  letter-spacing: -1px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0;
  color: var(--ink);
}

.ph-forum-cat__desc {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
}

.ph-forum-cat__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 2px solid var(--ink);
  background: var(--paper);
}

/* Header row above forum rows — column labels */
.ph-forum-cat__head-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px 110px 130px 24px;
  gap: 16px;
  padding: 12px 24px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.ph-forum-cat__head-cell {
  text-align: center;
}

.ph-forum-cat__head-cell--title {
  text-align: left;
}

.ph-forum-cat__head-cell--last {
  text-align: right;
}

@media (max-width: 768px) {
  .ph-forum-cat__head-row { display: none; }
}

.ph-forum-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px 110px 130px 24px;
  align-items: center;
  gap: 16px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  transition: background 0.15s, padding-left 0.15s;
}

.ph-forum-row:last-child {
  border-bottom: none;
}

.ph-forum-row:hover {
  background: var(--paper-warm);
  padding-left: 32px;
}

.ph-forum-row__main {
  min-width: 0;
}

.ph-forum-row__title {
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: -0.4px;
  line-height: 1.1;
  text-transform: uppercase;
  margin: 0 0 4px;
  color: var(--ink);
  transition: color 0.15s;
}

.ph-forum-row:hover .ph-forum-row__title {
  color: var(--blue);
}

.ph-forum-row__desc {
  font-family: var(--body);
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}

/* Each stat is its own grid cell now (3 separate columns) */
.ph-forum-row__stat {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--muted);
  text-align: center;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  gap: 2px;
  white-space: nowrap;
}

.ph-forum-row__stat strong {
  color: var(--ink);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.3px;
  font-family: var(--display);
}

.ph-forum-row__last {
  text-align: right;
  align-items: flex-end;
  font-size: 10px;
}

.ph-forum-row__last strong {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.ph-forum-row__arrow {
  font-family: var(--mono);
  font-size: 18px;
  color: var(--blue);
  transition: transform 0.15s;
  flex-shrink: 0;
}

.ph-forum-row:hover .ph-forum-row__arrow {
  transform: translateX(6px);
}

@media (max-width: 768px) {
  .ph-forum-row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px 18px;
  }
  .ph-forum-row:hover {
    padding-left: 18px;
  }
  .ph-forum-row__main {
    grid-column: 1 / -1;
  }
  .ph-forum-row__stat {
    grid-column: auto;
    flex-direction: row;
    align-items: baseline;
    gap: 6px;
    text-align: left;
  }
  .ph-forum-row__stat strong {
    font-size: 14px;
  }
  .ph-forum-row__stat span {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--muted);
  }
  .ph-forum-row__last {
    text-align: left;
    align-items: baseline;
  }
  .ph-forum-row__arrow {
    display: none;
  }
}

/* Breadcrumbs above forum category list */
.ph-forum-content > .bbp-breadcrumbs {
  margin-bottom: 32px;
}

.ph-forum-content > .bbp-breadcrumbs .bbp-breadcrumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.ph-forum-content > .bbp-breadcrumbs .bbp-breadcrumb a {
  color: var(--ink);
  text-decoration: none;
}

.ph-forum-content > .bbp-breadcrumbs .bbp-breadcrumb a:hover {
  color: var(--blue);
}

#bbpress-forums {
  font-family: var(--body);
  color: var(--ink);
}

#bbpress-forums fieldset.bbp-form,
#bbpress-forums div.bbp-template-notice {
  border: 1px solid var(--ink) !important;
  background: var(--paper-warm) !important;
  border-radius: 0 !important;
  padding: 20px !important;
  margin-bottom: 24px;
}

#bbpress-forums div.bbp-template-notice {
  border-left: 4px solid var(--blue) !important;
}

#bbpress-forums div.bbp-template-notice.error,
#bbpress-forums div.bbp-template-notice.warning {
  border-left-color: #d63b2b !important;
}

#bbpress-forums div.bbp-template-notice p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

/* Forum/Topic LIST tables */
#bbpress-forums ul.bbp-forums,
#bbpress-forums ul.bbp-topics,
#bbpress-forums ul.bbp-replies {
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  margin: 0 0 32px;
  padding: 0;
}

#bbpress-forums ul.bbp-forums-header,
#bbpress-forums ul.bbp-topics-header,
#bbpress-forums ul.bbp-replies-header {
  background: var(--ink) !important;
  color: var(--paper);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 14px 20px !important;
  border: none !important;
  margin: 0 !important;
}

#bbpress-forums ul.bbp-forums-header li,
#bbpress-forums ul.bbp-topics-header li,
#bbpress-forums ul.bbp-replies-header li {
  color: rgba(244,239,230,0.7);
}

#bbpress-forums li.bbp-header,
#bbpress-forums li.bbp-footer {
  background: var(--ink) !important;
  color: var(--paper) !important;
  border: none !important;
  padding: 14px 20px !important;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

#bbpress-forums li.bbp-header > ul,
#bbpress-forums li.bbp-footer > ul {
  background: transparent !important;
}

#bbpress-forums li.bbp-body ul.forum,
#bbpress-forums li.bbp-body ul.topic {
  border-bottom: 1px solid var(--line) !important;
  padding: 18px 20px !important;
  margin: 0 !important;
  background: var(--paper);
  transition: background 0.15s;
}

#bbpress-forums li.bbp-body ul.forum:hover,
#bbpress-forums li.bbp-body ul.topic:hover {
  background: var(--paper-warm);
}

#bbpress-forums li.bbp-body ul.forum:last-child,
#bbpress-forums li.bbp-body ul.topic:last-child {
  border-bottom: none !important;
}

#bbpress-forums li.bbp-forum-info,
#bbpress-forums li.bbp-topic-title {
  font-family: var(--display);
  font-size: 18px;
  letter-spacing: -0.3px;
  text-transform: uppercase;
  line-height: 1.2;
}

#bbpress-forums li.bbp-forum-info a.bbp-forum-title,
#bbpress-forums li.bbp-topic-title a.bbp-topic-permalink {
  color: var(--ink) !important;
  text-decoration: none !important;
  font-weight: 900;
}

#bbpress-forums li.bbp-forum-info a.bbp-forum-title:hover,
#bbpress-forums li.bbp-topic-title a.bbp-topic-permalink:hover {
  color: var(--blue) !important;
}

#bbpress-forums li.bbp-forum-info .bbp-forum-content {
  font-family: var(--body);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-soft);
  line-height: 1.5;
  margin-top: 4px;
  font-weight: 400;
}

#bbpress-forums li.bbp-forum-topic-count,
#bbpress-forums li.bbp-forum-reply-count,
#bbpress-forums li.bbp-topic-voice-count,
#bbpress-forums li.bbp-topic-reply-count,
#bbpress-forums li.bbp-forum-freshness,
#bbpress-forums li.bbp-topic-freshness {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.05em;
  color: var(--muted);
  text-transform: none;
}

#bbpress-forums li.bbp-forum-freshness a,
#bbpress-forums li.bbp-topic-freshness a {
  color: var(--ink) !important;
  text-decoration: none !important;
}

#bbpress-forums li.bbp-forum-freshness a:hover,
#bbpress-forums li.bbp-topic-freshness a:hover {
  color: var(--blue) !important;
  text-decoration: underline !important;
}

/* ──────────────────────────────────────────────────────────────
   THREAD / SINGLE TOPIC VIEW — POWERHALSE custom layout
   (replaces bbPress default thread rendering — see bbpress.php → ph_render_single_topic)
   ────────────────────────────────────────────────────────────── */

/* Forcibly hide the legacy bbPress thread markup that may still emit (we render our own) */
#bbpress-forums ul.bbp-lead-topic,
#bbpress-forums ul.bbp-replies,
#bbpress-forums ul.bbp-replies > li.bbp-header,
#bbpress-forums ul.bbp-lead-topic > li.bbp-header {
  display: none !important;
}

/* ── Thread head: tags + big title + meta ── */
.ph-thread-head {
  border-bottom: 2px solid var(--ink);
  padding-bottom: 28px;
  margin-bottom: 32px;
}
.ph-thread-head__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.ph-tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 4px 10px;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  text-decoration: none;
  font-weight: 700;
  transition: background 0.15s, color 0.15s;
}
.ph-tag:hover {
  background: var(--ink);
  color: var(--paper);
}
.ph-tag--solid {
  background: var(--ink);
  color: var(--paper);
}
.ph-tag--solid:hover {
  background: var(--blue);
  border-color: var(--blue);
}
.ph-tag--blue {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.ph-thread-head__title {
  font-family: var(--display);
  font-size: clamp(32px, 4.6vw, 56px);
  line-height: 0.95;
  letter-spacing: -1.4px;
  text-transform: uppercase;
  margin: 0 0 18px;
  color: var(--ink);
}
.ph-thread-head__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  align-items: center;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
}
.ph-thread-head__meta strong {
  color: var(--ink);
  font-weight: 700;
}
.ph-thread-head__sep {
  width: 4px;
  height: 4px;
  background: var(--muted);
  border-radius: 50%;
  display: inline-block;
}

/* ── Replies head divider ── */
.ph-thread-replies-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 10px;
  margin: 32px 0 18px;
}
.ph-thread-replies-head h2 {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  margin: 0;
}
.ph-thread-replies-head__page {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
}

/* ── Post card ── */
.ph-thread-post {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  background: var(--paper-warm);
  border: 1px solid var(--line);
  padding: 20px 24px;
  margin: 0 0 16px;
  position: relative;
}
.ph-thread-post:last-child {
  margin-bottom: 0;
}

/* OP — inverted dark card */
.ph-thread-post--op {
  background: var(--ink);
  color: var(--paper);
  border: 2px solid var(--ink);
}
.ph-thread-post--op::before {
  content: "OP · ORIGINAL POST";
  position: absolute;
  top: -1px;
  right: -1px;
  background: var(--blue);
  color: #fff;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  padding: 4px 10px;
  font-weight: 700;
}

/* Identity column (avatar + post number) */
.ph-thread-post__id {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.ph-thread-post__avatar {
  width: 56px;
  height: 56px;
  background: var(--ink);
  color: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: 0;
  border: 1px solid var(--ink);
  text-decoration: none !important;
  transition: transform 0.1s;
}
.ph-thread-post__avatar:hover {
  transform: translate(-1px, -1px);
}
.ph-thread-post__avatar--blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.ph-thread-post__avatar--red  { background: #d63b2b; border-color: #d63b2b; color: #fff; }
.ph-thread-post__avatar--cream {
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--ink);
}
.ph-thread-post--op .ph-thread-post__avatar {
  border-color: var(--paper);
}
.ph-thread-post--op .ph-thread-post__avatar--cream {
  border-color: var(--paper);
}
.ph-thread-post__num {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--muted);
}
.ph-thread-post--op .ph-thread-post__num {
  color: rgba(244,239,230,0.55);
}

/* Body */
.ph-thread-post__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ph-thread-post__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
}
.ph-thread-post--op .ph-thread-post__head {
  color: rgba(244,239,230,0.65);
}
.ph-thread-post__author {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--ink);
  text-decoration: none !important;
  text-transform: none;
}
.ph-thread-post__author:hover {
  color: var(--blue);
}
.ph-thread-post--op .ph-thread-post__author {
  color: var(--paper);
}
.ph-thread-post--op .ph-thread-post__author:hover {
  color: var(--blue);
}
.ph-thread-post__role {
  background: var(--ink);
  color: var(--paper);
  padding: 2px 8px;
  font-size: 10px;
  letter-spacing: 0.18em;
  font-weight: 700;
}
.ph-thread-post__role--op {
  background: var(--blue);
}
.ph-thread-post--op .ph-thread-post__role--op {
  background: var(--paper);
  color: var(--ink);
}
.ph-thread-post__badge {
  border: 1px solid var(--muted);
  padding: 2px 8px;
  font-size: 10px;
  letter-spacing: 0.18em;
}
.ph-thread-post--op .ph-thread-post__badge {
  border-color: rgba(244,239,230,0.35);
  color: rgba(244,239,230,0.75);
}
.ph-thread-post__sep {
  width: 4px;
  height: 4px;
  background: var(--muted);
  border-radius: 50%;
  display: inline-block;
}
.ph-thread-post__date {
  font-size: 10.5px;
}

/* Content */
.ph-thread-post__content {
  font-family: var(--body);
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.ph-thread-post--op .ph-thread-post__content {
  color: rgba(244,239,230,0.92);
}
.ph-thread-post__content p {
  margin: 0 0 12px;
}
.ph-thread-post__content p:last-child {
  margin-bottom: 0;
}
.ph-thread-post__content a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ph-thread-post--op .ph-thread-post__content a {
  color: #6da9f5;
}
.ph-thread-post__content a:hover {
  text-decoration-thickness: 2px;
}
.ph-thread-post__content blockquote {
  margin: 8px 0 14px;
  padding: 10px 16px;
  background: var(--paper);
  border-left: 3px solid var(--ink);
  font-size: 14px;
  color: var(--ink-soft);
}
.ph-thread-post--op .ph-thread-post__content blockquote {
  background: rgba(244,239,230,0.08);
  border-left-color: var(--paper);
  color: rgba(244,239,230,0.85);
}
.ph-thread-post__content code {
  font-family: var(--mono);
  font-size: 13px;
  background: var(--paper);
  color: var(--ink);
  padding: 1px 6px;
}
.ph-thread-post--op .ph-thread-post__content code {
  background: rgba(244,239,230,0.12);
  color: var(--paper);
}
.ph-thread-post__content pre {
  font-family: var(--mono);
  font-size: 13px;
  background: var(--ink);
  color: var(--paper);
  padding: 12px 14px;
  margin: 12px 0;
  overflow-x: auto;
}
.ph-thread-post__content ul,
.ph-thread-post__content ol {
  margin: 0 0 12px 22px;
  padding: 0;
}
.ph-thread-post__content ul li {
  margin-bottom: 4px;
}

/* Footer with action buttons + permalink */
.ph-thread-post__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 16px;
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.ph-thread-post--op .ph-thread-post__foot {
  border-top-color: rgba(244,239,230,0.18);
}
.ph-thread-post__action {
  background: transparent;
  border: 0;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 0;
  text-decoration: none !important;
  font-weight: 600;
}
.ph-thread-post__action:hover {
  color: var(--ink);
}
.ph-thread-post--op .ph-thread-post__action {
  color: rgba(244,239,230,0.7);
}
.ph-thread-post--op .ph-thread-post__action:hover {
  color: var(--paper);
}
.ph-thread-post__spacer {
  flex: 1;
}
.ph-thread-post__permalink {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  color: var(--muted);
  text-decoration: none !important;
  font-weight: 600;
}
.ph-thread-post__permalink:hover {
  color: var(--blue);
}
.ph-thread-post--op .ph-thread-post__permalink {
  color: rgba(244,239,230,0.55);
}
.ph-thread-post--op .ph-thread-post__permalink:hover {
  color: var(--blue);
}

/* Pagination (custom) — flat tile row, no overlapping borders */
.ph-thread-pagination {
  margin: 24px 0;
}
.ph-thread-pagination ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  border: none !important;
}
.ph-thread-pagination li {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}
.ph-thread-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  margin: 0 !important;
  border: 1px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none !important;
  box-sizing: border-box;
}
.ph-thread-pagination .page-numbers.current {
  background: var(--ink);
  color: var(--paper);
}
.ph-thread-pagination .page-numbers:hover {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

/* Reply form already has its own German header above — hide the bbPress "Reply To: ..." legend */
#ph-reply-form fieldset.bbp-form > legend {
  display: none !important;
}

/* ── Reply / New-Topic form — brand-styled card ── */
.ph-thread-reply-form,
#bbpress-forums #new-post {
  margin: 28px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}
.ph-thread-reply-form fieldset.bbp-form,
#bbpress-forums fieldset.bbp-form {
  border: 1px solid var(--ink) !important;
  background: var(--paper-warm) !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
}
/* Header bar (dark) replacing the default <legend> */
.ph-thread-reply-form fieldset.bbp-form > legend,
#bbpress-forums fieldset.bbp-form > legend {
  display: block !important;
  width: 100% !important;
  background: var(--ink) !important;
  color: var(--paper) !important;
  font-family: var(--display) !important;
  font-size: 18px !important;
  letter-spacing: -0.3px !important;
  text-transform: uppercase !important;
  padding: 14px 22px !important;
  margin: 0 !important;
  float: none !important;
  position: static !important;
  border: none !important;
  box-sizing: border-box;
}
/* Inner padding wrapper around content + textarea + submit */
.ph-thread-reply-form fieldset.bbp-form > div,
#bbpress-forums fieldset.bbp-form > div {
  padding: 22px 22px 22px !important;
}
/* Hide bbPress noise notices inside the form */
.ph-thread-reply-form .bbp-template-notice,
#bbpress-forums fieldset.bbp-form .bbp-template-notice {
  display: none !important;
}
/* Textarea */
.ph-thread-reply-form textarea.bbp-the-content,
#bbpress-forums textarea.bbp-the-content {
  width: 100% !important;
  min-height: 160px !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  padding: 14px 16px !important;
  font-family: var(--body) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
  resize: vertical !important;
  box-sizing: border-box !important;
}
.ph-thread-reply-form textarea.bbp-the-content:focus,
#bbpress-forums textarea.bbp-the-content:focus {
  outline: 2px solid var(--ink) !important;
  outline-offset: 0;
}
/* Content wrapper — kill bbPress default padding/borders */
.ph-thread-reply-form .bbp-the-content-wrapper,
#bbpress-forums .bbp-the-content-wrapper {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
}
/* Submit row */
.ph-thread-reply-form .bbp-submit-wrapper,
#bbpress-forums .bbp-submit-wrapper {
  display: flex !important;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}
/* Submit button — primary brand button */
.ph-thread-reply-form button[type="submit"],
.ph-thread-reply-form #bbp_reply_submit,
.ph-thread-reply-form #bbp_topic_submit,
#bbpress-forums fieldset.bbp-form button[type="submit"],
#bbpress-forums fieldset.bbp-form .button.submit,
#bbpress-forums #bbp_reply_submit,
#bbpress-forums #bbp_topic_submit {
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  padding: 14px 24px !important;
  background: var(--blue) !important;
  color: #fff !important;
  border: 2px solid var(--blue) !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: transform 0.1s, box-shadow 0.1s !important;
  width: auto !important;
  height: auto !important;
}
.ph-thread-reply-form button[type="submit"]:hover,
.ph-thread-reply-form #bbp_reply_submit:hover,
.ph-thread-reply-form #bbp_topic_submit:hover,
#bbpress-forums fieldset.bbp-form button[type="submit"]:hover,
#bbpress-forums #bbp_reply_submit:hover,
#bbpress-forums #bbp_topic_submit:hover {
  transform: translate(-2px, -2px) !important;
  box-shadow: 4px 4px 0 var(--ink) !important;
  background: var(--blue) !important;
  color: #fff !important;
}
/* Form-meta lines (e.g. "Reply To:" indicator above the form) */
#bbpress-forums div.bbp-reply-to,
.ph-thread-reply-form .bbp-reply-to {
  background: var(--paper) !important;
  border: 1px solid var(--line) !important;
  border-left: 3px solid var(--blue) !important;
  padding: 10px 14px !important;
  margin: 0 0 14px !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
}
/* Topic-form-specific labels (title, tags etc. on new-topic form) */
#bbpress-forums fieldset.bbp-form p,
.ph-thread-reply-form fieldset.bbp-form p {
  margin: 0 0 14px !important;
}
#bbpress-forums fieldset.bbp-form label,
.ph-thread-reply-form fieldset.bbp-form label {
  display: block !important;
  margin-bottom: 6px !important;
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  font-weight: 700 !important;
}
#bbpress-forums fieldset.bbp-form input[type="text"],
#bbpress-forums fieldset.bbp-form input[type="email"],
#bbpress-forums fieldset.bbp-form input[type="url"],
#bbpress-forums fieldset.bbp-form input[type="password"],
#bbpress-forums fieldset.bbp-form select {
  width: 100% !important;
  border: 1px solid var(--ink) !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  font-family: var(--body) !important;
  font-size: 15px !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
  box-sizing: border-box !important;
}
#bbpress-forums fieldset.bbp-form input:focus,
#bbpress-forums fieldset.bbp-form select:focus {
  outline: 2px solid var(--ink) !important;
}

.ph-thread-login-cta {
  margin-top: 28px;
  border: 2px dashed var(--ink);
  background: var(--paper-warm);
  padding: 28px;
  text-align: center;
}
.ph-thread-login-cta p {
  margin: 0 0 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.ph-thread-empty {
  padding: 40px;
  text-align: center;
  border: 1px dashed var(--line);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--muted);
  text-transform: uppercase;
}

/* ── Sidebar thread panels ── */
.ph-thread-panel__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.ph-thread-panel__stat strong {
  display: block;
  font-family: var(--display);
  font-size: 26px;
  letter-spacing: -1px;
  line-height: 1;
  color: var(--ink);
}
.ph-thread-panel__stat span {
  display: block;
  margin-top: 4px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  color: var(--muted);
  text-transform: uppercase;
}
.ph-thread-panel__users {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ph-thread-panel__user {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ph-thread-panel__avatar {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  background: var(--ink);
  color: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: 14px;
  text-decoration: none !important;
  border: 1px solid var(--ink);
}
.ph-thread-panel__avatar--blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.ph-thread-panel__avatar--red  { background: #d63b2b; border-color: #d63b2b; color: #fff; }
.ph-thread-panel__avatar--cream { background: var(--paper); color: var(--ink); }
.ph-thread-panel__avatar:hover {
  transform: translate(-1px, -1px);
}
.ph-thread-panel__user-meta {
  min-width: 0;
}
.ph-thread-panel__user-name {
  display: block;
  font-family: var(--body);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none !important;
}
.ph-thread-panel__user-name:hover {
  color: var(--blue);
}
.ph-thread-panel__user-role {
  display: block;
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.15em;
  color: var(--muted);
  text-transform: uppercase;
  margin-top: 2px;
}
.ph-thread-panel__related {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ph-thread-panel__related li {
  border-bottom: 1px dashed var(--line);
}
.ph-thread-panel__related li:last-child {
  border-bottom: none;
}
.ph-thread-panel__related a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  padding: 9px 0;
  text-decoration: none !important;
  color: var(--ink);
}
.ph-thread-panel__related a:hover {
  color: var(--blue);
}
.ph-thread-panel__related-title {
  font-size: 13.5px;
  line-height: 1.35;
}
.ph-thread-panel__related-count {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--muted);
  white-space: nowrap;
  text-transform: uppercase;
  flex-shrink: 0;
}

/* Mobile */
@media (max-width: 720px) {
  .ph-thread-post {
    grid-template-columns: 44px 1fr;
    gap: 14px;
    padding: 16px 16px;
  }
  .ph-thread-post__avatar {
    width: 40px;
    height: 40px;
    font-size: 15px;
  }
  .ph-thread-post__head {
    font-size: 10px;
    gap: 8px;
  }
  .ph-thread-post__author {
    font-size: 12.5px;
  }
  .ph-thread-post__content {
    font-size: 15px;
  }
  .ph-thread-head__title {
    font-size: 30px;
    letter-spacing: -0.8px;
  }
  .ph-thread-panel__stats {
    grid-template-columns: 1fr 1fr;
  }
}

/* ──────────────────────────────────────────────────────────────
   PROFILE / SINGLE USER VIEW — POWERHALSE custom layout
   ────────────────────────────────────────────────────────────── */

/* Hide bbPress default user navigation (broken sub-URLs) */
#bbpress-forums #bbp-user-navigation,
#bbpress-forums #bbp-user-body,
#bbpress-forums #bbp-single-user-details {
  display: none !important;
}

/* Profile head */
.ph-profile-head {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 28px;
  align-items: center;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 28px;
  margin-bottom: 32px;
}
.ph-profile-head__id {
  position: relative;
  width: 120px;
  height: 120px;
}
.ph-profile-head__avatar {
  width: 120px;
  height: 120px;
  background: var(--ink);
  color: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: 44px;
  letter-spacing: 0;
  border: 2px solid var(--ink);
  position: absolute;
  inset: 0;
}
.ph-profile-head__avatar--blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.ph-profile-head__avatar--red  { background: #d63b2b; border-color: #d63b2b; color: #fff; }
.ph-profile-head__avatar--cream { background: var(--paper-warm); color: var(--ink); }
.ph-profile-head__avatar-img {
  display: none;
}
.ph-profile-head__main {
  min-width: 0;
}
.ph-profile-head__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}
.ph-profile-head__name {
  font-family: var(--display);
  font-size: clamp(36px, 5vw, 56px);
  line-height: 0.95;
  letter-spacing: -1.4px;
  text-transform: uppercase;
  margin: 0 0 12px;
  color: var(--ink);
  word-break: break-word;
}
.ph-profile-head__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: center;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
}
.ph-profile-head__meta strong {
  color: var(--ink);
  font-weight: 700;
}
.ph-profile-head__sep {
  width: 4px;
  height: 4px;
  background: var(--muted);
  border-radius: 50%;
  display: inline-block;
}
.ph-profile-head__actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
}

/* Stats row — 4 hero stats */
.ph-profile-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--ink);
  margin-bottom: 32px;
  background: var(--paper-warm);
}
.ph-profile-stat {
  padding: 22px 18px;
  border-right: 1px solid var(--line);
  text-align: left;
}
.ph-profile-stat:last-child {
  border-right: none;
}
.ph-profile-stat strong {
  display: block;
  font-family: var(--display);
  font-size: 32px;
  line-height: 1;
  letter-spacing: -1px;
  color: var(--ink);
}
.ph-profile-stat span {
  display: block;
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Two-col grid: Topics / Replies */
.ph-profile-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.ph-profile-section {
  border: 1px solid var(--line);
  background: var(--paper-warm);
  padding: 0;
  display: flex;
  flex-direction: column;
}
.ph-profile-section__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.ph-profile-section__head h2 {
  font-family: var(--display);
  font-size: 20px;
  letter-spacing: -0.4px;
  text-transform: uppercase;
  margin: 0;
}
.ph-profile-section__count {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
}
.ph-profile-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ph-profile-list li {
  border-bottom: 1px solid var(--line);
}
.ph-profile-list li:last-child {
  border-bottom: none;
}
.ph-profile-list a {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 20px;
  text-decoration: none !important;
  color: var(--ink);
  transition: background 0.15s;
}
.ph-profile-list a:hover {
  background: var(--paper);
}
.ph-profile-list__cat {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--blue);
  text-transform: uppercase;
  font-weight: 700;
}
.ph-profile-list__title {
  font-family: var(--body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
}
.ph-profile-list__snippet {
  font-family: var(--body);
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--ink-soft);
  margin-top: 2px;
}
.ph-profile-list__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
}
.ph-profile-list__sep {
  width: 3px;
  height: 3px;
  background: var(--muted);
  border-radius: 50%;
}
.ph-profile-empty {
  padding: 28px 20px;
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
}

/* Profile edit form — inline */
.ph-profile-edit {
  border: 1px solid var(--ink);
  background: var(--paper-warm);
  margin-bottom: 32px;
}
.ph-profile-edit .ph-profile-section__head {
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid var(--ink);
}
.ph-profile-edit .ph-profile-section__head h2 {
  color: var(--paper);
}
.ph-profile-edit .ph-profile-section__count {
  color: rgba(244,239,230,0.55);
}
.ph-profile-edit__form {
  padding: 24px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.ph-profile-edit__pwd {
  border: 1px dashed var(--line);
  padding: 16px 18px 18px;
  margin: 4px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ph-profile-edit__pwd legend {
  padding: 0 8px;
  background: var(--paper-warm);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
}
.ph-profile-edit__actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 6px;
}

/* Mobile profile */
@media (max-width: 720px) {
  .ph-profile-head {
    grid-template-columns: 80px 1fr;
    gap: 16px;
  }
  .ph-profile-head__id,
  .ph-profile-head__avatar {
    width: 72px;
    height: 72px;
    font-size: 26px;
  }
  .ph-profile-head__name {
    font-size: 32px;
    letter-spacing: -0.8px;
  }
  .ph-profile-stats {
    grid-template-columns: 1fr 1fr;
  }
  .ph-profile-stat {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
  .ph-profile-stat:nth-child(2n) {
    border-right: none;
  }
  .ph-profile-stat:nth-last-child(-n+2) {
    border-bottom: none;
  }
  .ph-profile-stat strong {
    font-size: 26px;
  }
  .ph-profile-grid {
    grid-template-columns: 1fr;
  }
}

/* Buttons + form */
#bbpress-forums button,
#bbpress-forums input[type="submit"],
#bbpress-forums input[type="button"],
#bbpress-forums .button,
#bbpress-forums a.button {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 12px 22px !important;
  background: var(--ink) !important;
  color: var(--paper) !important;
  border: 2px solid var(--ink) !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s !important;
  display: inline-block !important;
}

#bbpress-forums button:hover,
#bbpress-forums input[type="submit"]:hover,
#bbpress-forums .button:hover,
#bbpress-forums a.button:hover {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
  color: var(--paper) !important;
}

#bbpress-forums input[type="text"],
#bbpress-forums input[type="email"],
#bbpress-forums input[type="password"],
#bbpress-forums textarea,
#bbpress-forums select {
  font-family: var(--body) !important;
  font-size: 15px !important;
  border: 2px solid var(--line) !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  background: #fff !important;
  color: var(--ink) !important;
  width: 100% !important;
  box-sizing: border-box;
  transition: border-color 0.15s !important;
}

#bbpress-forums input[type="text"]:focus,
#bbpress-forums input[type="email"]:focus,
#bbpress-forums textarea:focus,
#bbpress-forums select:focus {
  outline: none !important;
  border-color: var(--ink) !important;
}

#bbpress-forums label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  display: block;
  margin-bottom: 6px;
}

#bbpress-forums fieldset.bbp-form legend {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  text-transform: uppercase;
  padding: 0 12px;
  color: var(--ink);
  background: var(--paper);
}

/* ── bbPress Pagination ─────────────────────────────────────── */
/* Wrapper: count text on left, page links on right */
#bbpress-forums .bbp-pagination,
#bbpress-forums .bbp-topic-pagination,
.bbp-pagination,
.bbp-topic-pagination {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  padding: 18px 0;
  margin: 0 0 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
}

#bbpress-forums .bbp-pagination-count,
.bbp-pagination-count {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase;
  color: var(--muted) !important;
  flex: 1 1 auto;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

#bbpress-forums .bbp-pagination-links,
.bbp-pagination-links {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

/* Each page link / number — clean override of generic bbp rules */
#bbpress-forums .bbp-pagination .page-numbers,
.bbp-pagination .page-numbers,
.bbp-topic-pagination .page-numbers {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px !important;
  margin: 0 !important;
  border: 2px solid var(--ink) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: 0.05em !important;
  text-decoration: none !important;
  text-align: center !important;
  line-height: 1 !important;
  border-radius: 0 !important;
  transition: background 0.15s, color 0.15s, transform 0.15s !important;
  box-sizing: border-box;
}

#bbpress-forums .bbp-pagination a.page-numbers:hover,
.bbp-pagination a.page-numbers:hover {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
  color: var(--paper) !important;
}

#bbpress-forums .bbp-pagination .page-numbers.current,
.bbp-pagination .page-numbers.current {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}

/* Ellipsis "…" separator — no border, plain dots */
#bbpress-forums .bbp-pagination .page-numbers.dots,
.bbp-pagination .page-numbers.dots {
  border: none !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 16px !important;
  letter-spacing: 0.2em !important;
  min-width: auto;
  padding: 0 4px !important;
}

#bbpress-forums .bbp-pagination .page-numbers.dots:hover,
.bbp-pagination .page-numbers.dots:hover {
  background: transparent !important;
  color: var(--muted) !important;
}

/* Prev/Next arrows */
#bbpress-forums .bbp-pagination .page-numbers.next,
#bbpress-forums .bbp-pagination .page-numbers.prev,
.bbp-pagination .page-numbers.next,
.bbp-pagination .page-numbers.prev {
  font-size: 14px !important;
  font-weight: 400;
  min-width: 44px;
}

#bbpress-forums .bbp-pagination a.page-numbers.next:hover,
#bbpress-forums .bbp-pagination a.page-numbers.prev:hover,
.bbp-pagination a.page-numbers.next:hover,
.bbp-pagination a.page-numbers.prev:hover {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
}

@media (max-width: 700px) {
  #bbpress-forums .bbp-pagination,
  .bbp-pagination {
    flex-direction: column;
    align-items: flex-start;
  }
  #bbpress-forums .bbp-pagination-links,
  .bbp-pagination-links {
    justify-content: center;
    width: 100%;
  }
}

/* ── Per-Topic Mini-Pagination (subtle inline pills next to title) ─ */
#bbpress-forums .bbp-topic-pagination,
.bbp-topic-pagination {
  display: inline-flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px !important;
  margin: 0 0 0 8px !important;
  padding: 0 !important;
  border: none !important;
  vertical-align: middle;
}

#bbpress-forums .bbp-topic-pagination .page-numbers,
.bbp-topic-pagination .page-numbers {
  min-width: auto !important;
  height: 18px !important;
  padding: 0 6px !important;
  border: 1px solid var(--line) !important;
  border-radius: 0 !important;
  font-family: var(--mono) !important;
  font-size: 9px !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  background: transparent !important;
  color: var(--muted) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1 !important;
  transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}

#bbpress-forums .bbp-topic-pagination a.page-numbers:hover,
.bbp-topic-pagination a.page-numbers:hover {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}

#bbpress-forums .bbp-topic-pagination .page-numbers.current,
.bbp-topic-pagination .page-numbers.current {
  background: var(--paper-warm) !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}

#bbpress-forums .bbp-topic-pagination .page-numbers.dots,
.bbp-topic-pagination .page-numbers.dots {
  padding: 0 2px !important;
  font-size: 11px !important;
  color: var(--muted) !important;
  border: none !important;
  background: transparent !important;
  height: auto !important;
}

/* Breadcrumb */
#bbpress-forums div.bbp-breadcrumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 24px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

#bbpress-forums div.bbp-breadcrumb a {
  color: var(--ink);
  text-decoration: none;
}

#bbpress-forums div.bbp-breadcrumb a:hover {
  color: var(--blue);
}

#bbpress-forums div.bbp-breadcrumb .bbp-breadcrumb-sep {
  color: var(--line);
  margin: 0 8px;
}

/* Login form on forum pages */
#bbp-login fieldset,
#bbp-register fieldset,
#bbp-lost-pass fieldset {
  border: 2px solid var(--ink);
  background: var(--paper-warm);
  padding: 28px;
}

/* Topic + reply count badges */
#bbpress-forums li.bbp-forum-topic-count,
#bbpress-forums li.bbp-forum-reply-count {
  font-family: var(--mono) !important;
  font-weight: 700;
  font-size: 13px;
}

/* Empty states */
#bbpress-forums p.bbp-replies-by-empty {
  font-family: var(--body);
  color: var(--muted);
  font-size: 15px;
  padding: 32px;
  text-align: center;
  border: 1px dashed var(--line);
}

/* Forum description on forum index */
#bbpress-forums .bbp-forum-info .bbp-forum-content {
  font-family: var(--body);
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
}

/* Author meta inside replies (use ink-soft for AA contrast on paper-warm) */
#bbpress-forums li.bbp-body div.even .bbp-meta,
#bbpress-forums li.bbp-body div.odd .bbp-meta,
#bbpress-forums .bbp-meta {
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  letter-spacing: 0.1em !important;
  color: var(--ink-soft) !important;
  text-transform: uppercase !important;
}
#bbpress-forums .bbp-meta a {
  color: var(--ink) !important;
}
#bbpress-forums .bbp-meta a:hover {
  color: var(--blue) !important;
}

/* Subscribe / favorite links */
#bbpress-forums .subscription-toggle,
#bbpress-forums .favorite-toggle {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  #bbpress-forums li.bbp-body ul.forum,
  #bbpress-forums li.bbp-body ul.topic {
    padding: 14px 16px !important;
  }
  #bbpress-forums li.bbp-forum-info,
  #bbpress-forums li.bbp-topic-title {
    font-size: 16px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   KONTAKT
   ═══════════════════════════════════════════════════════════════ */

.ph-contact__head {
  margin-bottom: 56px;
  padding-bottom: 32px;
  border-bottom: 2px solid var(--ink);
}

.ph-contact__head .ph-eyebrow {
  display: block;
  color: var(--blue);
  margin-bottom: 16px;
}

.ph-contact__title {
  font-family: var(--display);
  font-size: clamp(48px, 7vw, 96px);
  letter-spacing: -3px;
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0 0 24px;
}

.ph-contact__sub {
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 520px;
  margin: 0;
}

.ph-contact__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 80px;
  align-items: start;
}

/* Form */
.ph-contact__form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ph-contact__textarea {
  resize: vertical;
  min-height: 140px;
  font-family: var(--body);
  line-height: 1.6;
}

.ph-contact__consent {
  font-size: 11px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-family: var(--body) !important;
  align-items: flex-start !important;
  line-height: 1.5;
}

.ph-contact__consent input[type="checkbox"] {
  margin-top: 2px;
}

.ph-contact__consent a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Notices */
.ph-contact__notice {
  padding: 20px 24px;
  margin-bottom: 24px;
  border-left: 4px solid var(--blue);
  background: var(--paper-warm);
}

.ph-contact__notice--success {
  border-left-color: #2da74a;
}

.ph-contact__notice--error {
  border-left-color: #d63b2b;
}

.ph-contact__notice strong {
  display: block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  color: var(--ink);
  margin-bottom: 6px;
}

.ph-contact__notice p {
  margin: 0;
  font-size: 14px;
  color: var(--ink-soft);
  line-height: 1.5;
}

/* Info column */
.ph-contact__info {
  background: var(--ink);
  color: var(--paper);
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  position: sticky;
  top: 100px;
}

.ph-contact__info-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ph-contact__info-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(244,239,230,0.45);
  text-transform: uppercase;
}

.ph-contact__info-link {
  font-family: var(--display);
  font-size: 22px;
  letter-spacing: -0.5px;
  color: var(--paper);
  text-decoration: none;
  transition: color 0.15s;
  word-break: break-word;
}

.ph-contact__info-link:hover {
  color: var(--blue);
}

.ph-contact__address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(244,239,230,0.8);
}

.ph-contact__info-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(244,239,230,0.7);
}

@media (max-width: 768px) {
  .ph-contact__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .ph-contact__info {
    position: static;
    padding: 32px 24px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   COOKIE BANNER (Complianz) — POWERHALSE CI
   ═══════════════════════════════════════════════════════════════ */

#cmplz-cookiebanner-container .cmplz-cookiebanner,
.cmplz-cookiebanner {
  font-family: var(--body) !important;
  background: var(--paper) !important;
  color: var(--ink) !important;
  border: 2px solid var(--ink) !important;
  border-radius: 0 !important;
  padding: 28px !important;
  box-shadow: 0 20px 60px rgba(10,10,10,0.25) !important;
  max-width: 480px !important;
  max-height: calc(100vh - 32px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

.cmplz-cookiebanner .cmplz-title,
.cmplz-cookiebanner .cmplz-header .cmplz-title {
  font-family: var(--display) !important;
  font-size: 22px !important;
  letter-spacing: -0.5px !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  margin: 0 0 16px !important;
}

.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-body p {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--ink-soft) !important;
  margin-bottom: 20px !important;
}

.cmplz-cookiebanner .cmplz-close {
  color: var(--ink) !important;
  opacity: 0.5 !important;
  transition: opacity 0.15s !important;
}

.cmplz-cookiebanner .cmplz-close:hover {
  opacity: 1 !important;
}

.cmplz-cookiebanner .cmplz-buttons {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  margin-top: 16px !important;
  width: 100% !important;
}

.cmplz-cookiebanner button.cmplz-btn,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 14px 20px !important;
  border-radius: 0 !important;
  border: 2px solid var(--ink) !important;
  cursor: pointer !important;
  transition: background 0.15s, color 0.15s !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.3 !important;
}

/* Accept = primary blue */
.cmplz-cookiebanner .cmplz-accept,
.cmplz-cookiebanner button[data-category="all"],
.cmplz-cookiebanner .cmplz-accept-all {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
  color: var(--paper) !important;
}

.cmplz-cookiebanner .cmplz-accept:hover,
.cmplz-cookiebanner .cmplz-accept-all:hover {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper) !important;
}

/* Deny = outline */
.cmplz-cookiebanner .cmplz-deny {
  background: transparent !important;
  color: var(--ink) !important;
}

.cmplz-cookiebanner .cmplz-deny:hover {
  background: var(--ink) !important;
  color: var(--paper) !important;
}

/* View prefs / settings = subtle */
.cmplz-cookiebanner .cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-manage-options {
  background: transparent !important;
  border-color: rgba(0,0,0,0.2) !important;
  color: var(--muted) !important;
  font-size: 10px !important;
}

.cmplz-cookiebanner .cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-manage-options:hover {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}

.cmplz-cookiebanner .cmplz-links a,
.cmplz-cookiebanner a {
  color: var(--ink) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.cmplz-cookiebanner .cmplz-categories {
  border-top: 1px solid rgba(0,0,0,0.15) !important;
  margin-top: 16px !important;
  padding-top: 16px !important;
}

.cmplz-cookiebanner .cmplz-category {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
}

/* Document container (cookie policy/preferences) */
.cmplz-document {
  font-family: var(--body) !important;
  color: var(--ink) !important;
}

.cmplz-document h1,
.cmplz-document h2,
.cmplz-document h3 {
  font-family: var(--display) !important;
  letter-spacing: -0.5px !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
}

@media (max-width: 540px) {
  #cmplz-cookiebanner-container .cmplz-cookiebanner,
  .cmplz-cookiebanner {
    max-width: 100% !important;
    padding: 20px !important;
    max-height: calc(100vh - 16px) !important;
  }
  .cmplz-cookiebanner .cmplz-title {
    font-size: 18px !important;
  }
  .cmplz-cookiebanner .cmplz-message,
  .cmplz-cookiebanner .cmplz-body p {
    font-size: 12px !important;
    margin-bottom: 14px !important;
  }
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
    flex: 0 0 auto !important;
    width: 100% !important;
    padding: 12px 16px !important;
    font-size: 10px !important;
  }
}
