/*
Theme Name: Partner Portal
Theme URI: https://example.com/partner-portal
Author: Your Team
Author URI: https://example.com
Description: Custom theme for the Partner Portal. Brand colours: primary #00353d, secondary #00a399, accent #ff5549; sharp corners (0px radius). Portal-only content scoped so existing site content is unaffected.
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: partner-portal
*/

/* ==========================================================================
   Brand colours (allowed only):
   Primary #00353d | Secondary #00a399 | Text/BG #131313,#ffffff,#00353d,#00a399,#ff5549
   border-radius: 0 everywhere (brand execution)
   ========================================================================== */

/* EPOS Basis: Light 300, Regular 400, Medium 500 – see assets/fonts/fonts.css */

:root {
  --pp-primary-brand: #00353d;
  --pp-secondary-brand: #00a399;
  --pp-accent: #ff5549;
  --pp-text-dark: #131313;
  --pp-bg-white: #ffffff;
  --pp-bg-dark: #131313;
  /* Derived */
  --pp-dark: var(--pp-primary-brand);
  --pp-dark-soft: var(--pp-bg-dark);
  --pp-primary: var(--pp-secondary-brand);
  --pp-primary-hover: #008a82;
  --pp-primary-light: rgba(0, 163, 153, 0.08);
  --pp-surface: var(--pp-bg-white);
  --pp-surface-alt: var(--pp-bg-white);
  --pp-surface-tint: rgba(0, 163, 153, 0.04);
  --pp-border: rgba(0, 53, 61, 0.12);
  --pp-text: var(--pp-text-dark);
  --pp-text-muted: #202020;
  --pp-header-height: 64px;
  --pp-header-footer-max-width: 1440px;
  --pp-radius: 0;
  --pp-radius-lg: 0;
  --pp-shadow: 0 1px 3px rgba(0, 53, 61, 0.08);
  --pp-shadow-lg: 0 4px 12px rgba(0, 53, 61, 0.1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Global: only minimal reset. Header/footer styled below; portal content scoped under .partner-portal-context */
body {
  margin: 0;
}

/* ==========================================================================
   Header & Footer – global; light/dark via .pp-header--light / .pp-header--dark
   ========================================================================== */

/* Dark theme (default): petrol/dark petrol, white text, mint accents */
.pp-header--dark,
.pp-footer--dark {
  --pp-hf-bg: #002a30;
  --pp-hf-bg-alt: #00353d;
  --pp-hf-text: #ffffff;
  --pp-hf-accent: #00a399;
  --pp-hf-accent-hover: #00b8ad;
}

/* Light theme: white/grey, black text, petrol / dark-mint accents */
.pp-header--light,
.pp-footer--light {
  --pp-hf-bg: #f5f5f5;
  --pp-hf-bg-alt: #ffffff;
  --pp-hf-text: #131313;
  --pp-hf-accent: #00353d;
  --pp-hf-accent-hover: #004a54;
}

/* Header: full bar is constrained to 1440px and centered */
.pp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--pp-hf-bg-alt, var(--pp-primary-brand));
  color: var(--pp-hf-text, var(--pp-bg-white));
  min-height: var(--pp-header-height);
  box-shadow: 0 2px 8px rgba(0, 53, 61, 0.25);
  border-radius: 0;
  transition: background 0.25s ease, box-shadow 0.25s ease;
  max-width: var(--pp-header-footer-max-width, 1440px);
  margin: 0 auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  box-sizing: border-box;
}

.pp-header-bar {
  width: 100%;
}

.pp-header--has-hover:hover {
  background: #ffffff;
  box-shadow: 0 1px 0 rgba(0, 53, 61, 0.1);
}

.pp-header--has-hover:hover .pp-nav-list a,
.pp-header--has-hover:hover .pp-brand-link,
.pp-header--has-hover:hover .pp-brand-text {
  color: #131313 !important;
}

.pp-header--has-hover:hover .pp-nav-list a:hover {
  background: rgba(0, 0, 0, 0.06);
}

.pp-header--has-hover:hover .pp-header-actions a {
  background: #00353d;
  color: #ffffff !important;
}

.pp-header--has-hover:hover .pp-header-actions a:hover {
  background: #004a54;
  color: #ffffff !important;
}

.pp-header--has-hover .pp-brand-logo--default {
  transition: opacity 0.25s ease;
}

.pp-header--has-hover .pp-brand-logo--hover {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.pp-header--has-hover:hover .pp-brand-logo--default {
  opacity: 0;
}

.pp-header--has-hover:hover .pp-brand-logo--hover {
  opacity: 1;
}

/* Over-hero: transparent until scroll or hover, then white sticky nav */
.pp-header--over-hero {
  background: transparent !important;
  box-shadow: none !important;
}

.pp-header--over-hero .pp-nav-list a,
.pp-header--over-hero .pp-brand-link,
.pp-header--over-hero .pp-brand-text {
  color: #ffffff !important;
}

.pp-header--over-hero .pp-nav-list a:hover {
  background: rgba(255, 255, 255, 0.15);
}

.pp-header--over-hero .pp-header-actions a {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff !important;
}

.pp-header--over-hero .pp-header-actions a:hover {
  background: rgba(255, 255, 255, 0.35);
  color: #ffffff !important;
}

.pp-header--over-hero.pp-header--solid {
  background: #ffffff !important;
  box-shadow: 0 1px 0 rgba(0, 53, 61, 0.1);
}

.pp-header--over-hero.pp-header--solid .pp-nav-list a,
.pp-header--over-hero.pp-header--solid .pp-brand-link,
.pp-header--over-hero.pp-header--solid .pp-brand-text {
  color: #131313 !important;
}

.pp-header--over-hero.pp-header--solid .pp-nav-list a:hover {
  background: rgba(0, 0, 0, 0.06);
}

.pp-header--over-hero.pp-header--solid .pp-header-actions a {
  background: #00353d;
  color: #ffffff !important;
}

.pp-header--over-hero.pp-header--solid .pp-header-actions a:hover {
  background: #004a54;
  color: #ffffff !important;
}

.pp-header--over-hero.pp-header--solid .pp-brand-logo--default {
  opacity: 0;
}

.pp-header--over-hero.pp-header--solid .pp-brand-logo--hover {
  opacity: 1;
}

.pp-header-inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--pp-header-height);
  padding-top: 0;
  padding-bottom: 0;
  box-sizing: border-box;
}

.pp-header--light {
  box-shadow: 0 1px 0 rgba(0, 53, 61, 0.1);
}

.pp-brand {
  position: relative;
}

.pp-brand .pp-brand-link {
  display: inline-block;
  position: relative;
  text-decoration: none;
}

.pp-brand a,
.pp-brand .custom-logo-link,
.pp-brand .pp-brand-logo,
.pp-brand .pp-brand-text {
  font-family: "EPOS Basis", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--pp-hf-text, var(--pp-bg-white)) !important;
  text-decoration: none !important;
  display: inline-block;
}

.pp-brand a:hover,
.pp-brand .custom-logo-link:hover,
.pp-brand .pp-brand-logo:hover {
  color: var(--pp-hf-text, var(--pp-bg-white)) !important;
  text-decoration: none !important;
  opacity: 0.9;
}

.pp-brand .custom-logo-link img,
.pp-brand .pp-brand-logo-img {
  height: 40px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  vertical-align: middle;
}

.pp-nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.pp-nav-list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.25rem;
}

.pp-nav-list li {
  margin: 0;
}

.pp-nav-list > li {
  position: relative;
}

.pp-nav-list .pp-nav-link,
.pp-nav-list .pp-mega-trigger {
  display: block;
  padding: 0.5rem 0.75rem;
  color: var(--pp-hf-text, var(--pp-bg-white));
  font-weight: 500;
  font-size: 0.9375rem;
  text-decoration: none !important;
  border-radius: 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

.pp-nav-list .pp-mega-trigger {
  width: 100%;
  text-align: left;
}

.pp-nav-list .pp-mega-trigger-text {
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s ease;
}

.pp-header--has-hover:hover .pp-nav-list .pp-mega-trigger-text {
  border-bottom-color: #00a399;
}

.pp-nav-list a {
  display: block;
  padding: 0.5rem 0.75rem;
  color: var(--pp-hf-text, var(--pp-bg-white));
  font-weight: 500;
  font-size: 0.9375rem;
  text-decoration: none !important;
  border-radius: 0;
}

.pp-nav-list a:hover {
  color: var(--pp-hf-text, var(--pp-bg-white));
  background: rgba(0, 0, 0, 0.06);
  text-decoration: none !important;
}

.pp-header--dark .pp-nav-list a:hover {
  background: rgba(255, 255, 255, 0.1);
}

.pp-header-actions a {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: var(--pp-hf-accent, var(--pp-secondary-brand));
  color: var(--pp-hf-text, var(--pp-bg-white)) !important;
  font-weight: 600;
  font-size: 0.875rem;
  border-radius: 0;
  text-decoration: none !important;
}

.pp-header-actions a:hover {
  background: var(--pp-hf-accent-hover, var(--pp-primary-hover));
  color: var(--pp-hf-text, var(--pp-bg-white)) !important;
  text-decoration: none !important;
}

.pp-header--light .pp-header-actions a {
  color: #ffffff !important;
}

.pp-header--light .pp-header-actions a:hover {
  color: #ffffff !important;
}

/* Mega nav panel – full-width dropdown (EPOS-style) */
.pp-mega-panel {
  position: fixed;
  left: 0;
  right: 0;
  top: var(--pp-header-height);
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(0, 53, 61, 0.12);
  border-top: 1px solid rgba(0, 53, 61, 0.08);
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: max-height 0.3s ease, opacity 0.25s ease, visibility 0.25s ease;
  border-radius: 0;
  z-index: 99;
}

.pp-mega-panel[aria-hidden="false"] {
  max-height: 80vh;
  opacity: 1;
  visibility: visible;
}

.pp-mega-panel-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 2rem;
}

.pp-mega-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 2rem 3rem;
}

.pp-mega-column {
  min-width: 0;
}

.pp-mega-column .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pp-mega-column .sub-menu li {
  margin: 0;
}

.pp-mega-column .sub-menu a {
  display: block;
  padding: 0.35rem 0;
  color: #131313;
  font-size: 0.9375rem;
  text-decoration: none;
  border-radius: 0;
}

.pp-mega-column .sub-menu a:hover {
  color: #00a399;
  text-decoration: underline;
}

.pp-mega-nav-backdrop {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 98;
  pointer-events: none;
  transition: pointer-events 0s 0.25s;
}

.pp-mega-nav-backdrop[aria-hidden="false"] {
  pointer-events: auto;
}

@media (max-width: 767px) {
  .pp-header-inner {
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
  }
  .pp-nav {
    display: flex;
    width: 100%;
    margin-top: 0.5rem;
  }
  .pp-nav-list {
    flex-wrap: wrap;
  }
}

/* Footer: full bar is constrained to 1440px and centered */
.pp-footer {
  background: var(--pp-hf-bg-alt, var(--pp-primary-brand));
  color: var(--pp-hf-text, var(--pp-bg-white));
  padding: 2.5rem 1.25rem 1.5rem;
  margin-top: auto;
  border-radius: 0;
  max-width: var(--pp-header-footer-max-width, 1440px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.pp-footer .pp-container {
  width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.pp-footer--light {
  border-top: 1px solid rgba(0, 53, 61, 0.12);
}

.pp-footer-widgets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  margin-bottom: 2rem;
}

.pp-footer-widget-title,
.pp-footer h4 {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--pp-hf-text, var(--pp-bg-white));
  margin: 0 0 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.pp-footer a {
  color: var(--pp-hf-accent, var(--pp-bg-white));
  text-decoration: none;
  font-size: 0.9375rem;
  opacity: 0.95;
}

.pp-footer a:hover {
  color: var(--pp-hf-accent-hover, var(--pp-bg-white));
  text-decoration: underline;
  opacity: 1;
}

.pp-footer--dark a {
  color: var(--pp-hf-text);
}

.pp-footer--dark a:hover {
  color: var(--pp-hf-accent);
}

.pp-footer-copy {
  font-size: 0.8125rem;
  color: var(--pp-hf-text, var(--pp-bg-white));
  margin: 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  opacity: 0.8;
}

.pp-footer--dark .pp-footer-copy {
  border-top-color: rgba(255, 255, 255, 0.2);
}

/* ==========================================================================
   Partner portal content only – does not affect existing site pages
   Body class .partner-portal-context + .pp-theme-light / .pp-theme-dark
   ========================================================================== */

.partner-portal-context {
  font-family: "EPOS Basis", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--pp-text);
  background: var(--pp-surface-tint);
}

/* Dark theme content: petrol tint, white-ish cards, mint accents */
.partner-portal-context.pp-theme-dark {
  color: var(--pp-text-dark);
  background: var(--pp-surface-tint);
}

.partner-portal-context.pp-theme-dark a {
  color: var(--pp-secondary-brand);
  text-decoration: none;
}

.partner-portal-context.pp-theme-dark a:hover {
  color: var(--pp-primary-hover);
  text-decoration: underline;
}

/* Light theme content: white/grey bg, black text, petrol / dark-mint accents */
.partner-portal-context.pp-theme-light {
  color: #131313;
  background: #f5f5f5;
}

.partner-portal-context.pp-theme-light a {
  color: #00353d;
  text-decoration: none;
}

.partner-portal-context.pp-theme-light a:hover {
  color: #008a82;
  text-decoration: underline;
}

.partner-portal-context a {
  color: var(--pp-primary);
  text-decoration: none;
}

.partner-portal-context a:hover {
  color: var(--pp-primary-hover);
  text-decoration: underline;
}

.partner-portal-context .pp-content {
  min-height: calc(100vh - var(--pp-header-height) - 180px);
  padding: 0;
}

.partner-portal-context .pp-below-content-search {
  margin: 3rem auto 0;
}

.pp-below-search-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-start;
  padding: 1.25rem 1.5rem;
  background: var(--pp-surface-alt);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.pp-below-search-input {
  flex: 1 1 220px;
  min-width: 0;
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.15));
  padding: 0.75rem 0.9rem;
  font-size: 0.9375rem;
}

.pp-below-search-submit {
  flex: 0 0 auto;
  padding: 0.8rem 1.4rem;
  font-size: 0.9375rem;
}

.partner-portal-context .pp-main {
  padding: 0 1rem;
}

.partner-portal-context .pp-container {
  max-width: var(--pp-header-footer-max-width, 1440px);
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* Homepage main body: 1440px (inherited), extra padding to match hero/search band */
.partner-portal-context .pp-container.pp-dashboard {
  padding: 3.5rem 1.75rem 4.5rem;
}

/* Homepage intro content – larger, EPOS-style panels with more breathing room */
.partner-portal-context .pp-dashboard-intro.pp-card {
  padding: 0;
  margin-top: 3rem;
  background: transparent;
  box-shadow: none;
  border: none;
}

/* Top-level Gutenberg sections inside the homepage intro become staggered blocks */
.partner-portal-context .pp-dashboard-intro.pp-card > .wp-block-group,
.partner-portal-context .pp-dashboard-intro.pp-card > .wp-block-columns {
  margin: 0 0 3.5rem;
  padding: 3rem 3rem 3.25rem;
  background: var(--pp-surface, #ffffff);
  box-shadow: var(--pp-shadow);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

/* Slight alternation to suggest staggered sections down the page */
.partner-portal-context .pp-dashboard-intro.pp-card > .wp-block-group:nth-of-type(even),
.partner-portal-context .pp-dashboard-intro.pp-card > .wp-block-columns:nth-of-type(even) {
  background: var(--pp-surface-alt);
}

@media (min-width: 1024px) {
  .partner-portal-context .pp-dashboard-intro.pp-card > .wp-block-group,
  .partner-portal-context .pp-dashboard-intro.pp-card > .wp-block-columns {
    padding: 3.25rem 4rem 3.5rem;
  }
}

.partner-portal-context .pp-dashboard-grid {
  display: grid;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .partner-portal-context .pp-dashboard-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .partner-portal-context .pp-dashboard-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Products grids – 4 columns on desktop to match EPOS tiles */
  .partner-portal-context .pp-products-grid.pp-dashboard-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.partner-portal-context .pp-card {
  background: var(--pp-surface-alt);
  border-radius: 0;
  box-shadow: var(--pp-shadow);
  padding: 1.5rem;
  border: 1px solid var(--pp-border);
  transition: box-shadow 0.2s ease;
}

.partner-portal-context .pp-card:hover {
  box-shadow: var(--pp-shadow-lg);
}

.partner-portal-context .pp-card h2,
.partner-portal-context .pp-card h3 {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--pp-primary-brand);
}

.partner-portal-context.pp-theme-light .pp-card h2,
.partner-portal-context.pp-theme-light .pp-card h3 {
  color: #00353d;
}

.partner-portal-context.pp-theme-light .pp-content h1,
.partner-portal-context.pp-theme-light .pp-container > h1 {
  color: #00353d;
}

.partner-portal-context .pp-card p {
  margin: 0 0 1rem;
  color: var(--pp-text-muted);
  font-size: 0.9375rem;
}

.partner-portal-context .pp-card p:last-of-type {
  margin-bottom: 0;
}

.partner-portal-context .pp-cta {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  background: var(--pp-secondary-brand);
  color: var(--pp-bg-white) !important;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none !important;
  border-radius: 0;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}

.partner-portal-context .pp-cta:hover {
  background: var(--pp-primary-hover);
  color: var(--pp-bg-white) !important;
  text-decoration: none !important;
}

.partner-portal-context.pp-theme-light .pp-cta {
  background: #00353d;
  color: #ffffff !important;
}

.partner-portal-context.pp-theme-light .pp-cta:hover {
  background: #004a54;
  color: #ffffff !important;
}

.partner-portal-context .pp-onboarding-banner {
  position: relative;
  background: var(--pp-primary-brand);
  color: var(--pp-bg-white);
  padding: 1.5rem 2rem 1.5rem 1.5rem;
  margin-bottom: 1.5rem;
  border-left: 4px solid var(--pp-secondary-brand);
  border-radius: 0;
}

.partner-portal-context.pp-theme-light .pp-onboarding-banner {
  background: #ffffff;
  color: #131313;
  border: 1px solid rgba(0, 53, 61, 0.15);
  border-left: 4px solid #00353d;
}

.partner-portal-context.pp-theme-light .pp-onboarding-banner h2,
.partner-portal-context.pp-theme-light .pp-onboarding-banner p {
  color: #131313;
}

.partner-portal-context.pp-theme-light .pp-onboarding-banner a:not(.pp-cta) {
  color: #00353d;
}

.partner-portal-context.pp-theme-light .pp-onboarding-banner .pp-cta {
  background: #00353d;
}

.partner-portal-context .pp-onboarding-banner h2 {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--pp-bg-white);
}

.partner-portal-context .pp-onboarding-banner p {
  margin: 0 0 0.75rem;
  color: var(--pp-bg-white);
  font-size: 0.9375rem;
  opacity: 0.95;
}

.partner-portal-context .pp-onboarding-banner .pp-cta {
  margin-top: 0.25rem;
}

.partner-portal-context .pp-onboarding-banner a:not(.pp-cta) {
  color: var(--pp-bg-white);
  text-decoration: underline;
}

.partner-portal-context .pp-onboarding-banner a:not(.pp-cta):hover {
  color: var(--pp-bg-white);
}

.partner-portal-context .pp-onboarding-dismiss {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  background: transparent;
  border: none;
  color: var(--pp-bg-white);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.25rem;
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.partner-portal-context .pp-onboarding-dismiss:hover {
  opacity: 1;
}

.partner-portal-context .pp-region-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.partner-portal-context .pp-region-filter a,
.partner-portal-context .pp-region-filter .current {
  padding: 0.4rem 0.85rem;
  border-radius: 0;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background 0.2s ease, color 0.2s ease;
}

.partner-portal-context .pp-region-filter a {
  background: var(--pp-surface-alt);
  color: var(--pp-text-muted);
  border: 1px solid var(--pp-border);
}

.partner-portal-context .pp-region-filter a:hover,
.partner-portal-context .pp-region-filter .current {
  background: var(--pp-secondary-brand);
  color: var(--pp-bg-white);
  border-color: var(--pp-secondary-brand);
}

.partner-portal-context.pp-theme-light .pp-region-filter a:hover,
.partner-portal-context.pp-theme-light .pp-region-filter .current {
  background: #00353d;
  color: #ffffff;
  border-color: #00353d;
}

.partner-portal-context .pp-content h1:not(.pp-hero-slide-title),
.partner-portal-context .pp-container > h1:not(.pp-hero-slide-title) {
  font-size: 3.75rem;
  font-weight: 10;
  color: #ffffff;
  margin: 0 0 1.25rem;
  letter-spacing: -0.02em;
}

.partner-portal-context .pp-content-grid .pp-card {
  height: 100%;
}

.partner-portal-context .pp-content-grid .pp-card .entry-excerpt {
  font-size: 0.9375rem;
  color: var(--pp-text-muted);
  margin: 0;
}

.partner-portal-context .pp-content-grid .pp-card h3 a {
  color: var(--pp-text);
  text-decoration: none;
}

.partner-portal-context .pp-content-grid .pp-card h3 a:hover {
  color: var(--pp-secondary-brand);
}

.partner-portal-context.pp-theme-light .pp-content-grid .pp-card h3 a:hover {
  color: #008a82;
}

.partner-portal-context .pp-meta {
  font-size: 0.8125rem;
  color: var(--pp-text-muted);
  margin: 0 0 0.5rem;
}

.partner-portal-context .pp-accent,
.partner-portal-context .pp-cta.pp-cta-accent {
  background: var(--pp-accent);
  color: var(--pp-bg-white) !important;
  border-radius: 0;
}

.partner-portal-context .pp-accent:hover,
.partner-portal-context .pp-cta.pp-cta-accent:hover {
  background: #e04a3f;
  color: var(--pp-bg-white) !important;
}

.partner-portal-context .pp-text-accent {
  color: var(--pp-accent);
}

.partner-portal-context .pp-sidebar {
  margin-top: 2rem;
}

.partner-portal-context .pp-widget-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.partner-portal-context .pp-has-sidebar {
  display: block;
}

@media (min-width: 1024px) {
  .partner-portal-context .pp-sidebar {
    margin-top: 0;
  }
}

/* ==========================================================================
   Hero page template – carousel block (EPOS-style)
   ========================================================================== */

.pp-hero-carousel {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #00353d;
  min-height: 800px;
  display: block;
}

.pp-hero-carousel-track {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  transition: transform 0.4s ease;
  min-height: 800px;
}

.pp-hero-slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  position: relative;
  min-height: 800px;
  display: flex;
  align-items: flex-end;
}

.pp-hero-slide-bg {
  position: absolute;
  inset: 0;
  background: #002a30;
}

.pp-hero-slide-bg--placeholder {
  background: linear-gradient(135deg, #00353d 0%, #002a30 100%);
}

.pp-hero-slide-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pp-hero-slide-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 45, 52, 0.92) 0%, rgba(0, 45, 52, 0.4) 50%, transparent 100%);
  pointer-events: none;
}

.pp-hero-slide-content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 3rem 1.25rem 4rem;
}

.pp-hero-slide-inner {
  max-width: 560px;
}

.pp-hero-slide-title {
  font-family: "EPOS Basis", sans-serif;
  font-size: clamp(2.75rem, 4vw, 2.5rem);
  font-weight: 100;
  color: #00b8ad!important;
  margin: 0 0 1rem;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.pp-hero-slide-text {
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 0 1.5rem;
}

.pp-hero-cta {
  display: inline-block;
  padding: 0.6rem 1.25rem;
  background: #131313;
  color: #ffffff !important;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none !important;
  border-radius: 0;
  border: none;
  transition: background 0.2s ease;
}

.pp-hero-cta:hover {
  background: #00353d;
  color: #ffffff !important;
}

.pp-hero-carousel-prev,
.pp-hero-carousel-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  border-radius: 0;
  cursor: pointer;
  color: #fff;
  font-size: 1.25rem;
  transition: background 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pp-hero-carousel-prev:hover,
.pp-hero-carousel-next:hover {
  background: rgba(255, 255, 255, 0.25);
}

.pp-hero-carousel-icon {
  width: 18px;
  height: 18px;
}

.pp-hero-carousel-prev { left: 1.25rem; }
.pp-hero-carousel-next { right: 1.25rem; }

.pp-hero-carousel-dots {
  position: absolute;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  gap: 0.5rem;
}

.pp-hero-dot {
  width: 10px;
  height: 10px;
  padding: 0;
  background: rgba(255, 255, 255, 0.4);
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s ease;
}

.pp-hero-dot:hover,
.pp-hero-dot[aria-current="true"] {
  background: #ffffff;
}

.pp-hero-page-content {
  padding: 2rem 1.25rem 3rem;
}

/* Hero layout tweaks – align with 1440px header/footer and sit visually behind header */
.pp-hero-page #pp-hero-carousel {
  max-width: var(--pp-header-footer-max-width, 1440px);
  margin-left: auto;
  margin-right: auto;
  margin-top: calc(-1 * var(--pp-header-height));
}

.pp-hero-page .pp-hero-slide-content {
  padding-top: calc(3rem + var(--pp-header-height));
}

.pp-hero-page .pp-content {
  padding-top: 0;
}

/* Hero search band – 1440px like hero, faceted search, more padding */
.pp-hero-search-band-wrap {
  width: 100%;
  background: var(--pp-surface-alt, #E3E3E3);
  border-bottom: 1px solid var(--pp-border);
  box-shadow: 0 1px 3px rgba(0, 53, 61, 0.06);
}

.pp-hero-search-band {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.5rem 2rem;
  align-items: center;
  padding: 2.25rem 1.25rem 2.75rem;
  max-width: var(--pp-header-footer-max-width, 1440px);
  margin: 0 auto;
  box-sizing: border-box;
  height:100px;
}

.pp-hero-search-facets {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  min-width: 0;
}

.pp-hero-search-label {
  grid-column: 1;
  align-self: center;
}

.pp-hero-search-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  color: var(--pp-primary-brand);
}

.pp-hero-search-facet {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.pp-hero-search-facet-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pp-text-muted);
  margin: 0;
}

.pp-hero-search-select {
  padding: 0.5rem 2rem 0.5rem 0.75rem;
  border: 1px solid var(--pp-border);
  border-radius: 0;
  font-size: 0.9375rem;
  font-family: inherit;
  background: var(--pp-surface-alt);
  color: var(--pp-text);
  min-width: 140px;
  appearance: auto;
}

.pp-hero-search-form {
  display: flex;
  gap: 0.75rem;
  flex: 1 1 220px;
  min-width: 0;
}

.pp-hero-search-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.9rem 1rem;
  border: 1px solid var(--pp-border);
  border-radius: 0;
  font-size: 1rem;
}

.pp-hero-search-button {
  flex: 0 0 auto;
}

.pp-hero-search-promo {
  grid-column: 3;
}

.pp-hero-search-promo-inner {
  text-align: right;
}

.pp-hero-search-promo-label {
  display: block;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
  color: var(--pp-text-muted);
}

.pp-hero-search-promo-link {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--pp-primary);
  text-decoration: none;
}

.pp-hero-search-promo-link:hover {
  color: var(--pp-primary-hover);
  text-decoration: underline;
}

.pp-hero-search-promo-empty {
  font-size: 0.875rem;
  color: var(--pp-text-muted);
}

@media (max-width: 767px) {
  .pp-hero-search-band {
    grid-template-columns: 1fr;
    padding: 1.75rem 1.25rem 2rem;
  }
  .pp-hero-search-facets {
    grid-column: 1;
    flex-direction: column;
    align-items: stretch;
  }
  .pp-hero-search-form {
    flex-direction: column;
    flex: 1 1 auto;
  }
  .pp-hero-search-promo {
    grid-column: 1;
  }
  .pp-hero-search-promo-inner {
    text-align: left;
  }
}

/* Search results grid on homepage – 4-column responsive, matches portal 1440px and card style */
.partner-portal-context .pp-search-results,
.pp-search-results-page .pp-search-results {
  margin-top: 2.5rem;
  margin-bottom: 2rem;
}

.partner-portal-context .pp-search-results-title,
.pp-search-results-page .pp-search-results-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 1.5rem;
  color: var(--pp-primary-brand);
  letter-spacing: -0.02em;
}

.partner-portal-context.pp-theme-light .pp-search-results-title,
.pp-search-results-page.pp-theme-light .pp-search-results-title {
  color: #00353d;
}

.pp-search-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .pp-search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .pp-search-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .pp-search-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Search cards: same surface as .pp-card, 1440px flow via .pp-container */
.partner-portal-context .pp-search-card.pp-card,
.pp-search-results-page .pp-search-card.pp-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.5rem;
  background: var(--pp-surface-alt);
  box-shadow: var(--pp-shadow);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-search-card.pp-card:hover,
.pp-search-results-page .pp-search-card.pp-card:hover {
  box-shadow: var(--pp-shadow-lg);
}

.pp-search-card-header {
  margin-bottom: 0.75rem;
}

.partner-portal-context .pp-search-card-title,
.pp-search-results-page .pp-search-card-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
}

.partner-portal-context .pp-search-card-title a,
.pp-search-results-page .pp-search-card-title a {
  color: var(--pp-text);
  text-decoration: none;
}

.partner-portal-context.pp-theme-light .pp-search-card-title a,
.pp-search-results-page.pp-theme-light .pp-search-card-title a {
  color: #00353d;
}

.partner-portal-context .pp-search-card-title a:hover,
.pp-search-results-page .pp-search-card-title a:hover {
  color: var(--pp-secondary-brand);
  text-decoration: underline;
}

.partner-portal-context.pp-theme-light .pp-search-card-title a:hover,
.pp-search-results-page.pp-theme-light .pp-search-card-title a:hover {
  color: #008a82;
}

.pp-search-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex: 1;
}

.pp-search-card-thumb {
  flex-shrink: 0;
  margin-bottom: 0.25rem;
}

.pp-search-card-thumb img {
  width: 100%;
  max-height: 140px;
  object-fit: contain;
  object-position: left center;
  display: block;
  background: var(--pp-surface, #fff);
}

.partner-portal-context .pp-search-card-text,
.pp-search-results-page .pp-search-card-text {
  font-size: 0.9375rem;
  color: var(--pp-text-muted);
  margin: 0;
  line-height: 1.5;
}

.partner-portal-context .pp-search-card-text p,
.pp-search-results-page .pp-search-card-text p {
  margin: 0 0 0.5rem;
}

.partner-portal-context .pp-search-card-text p:last-child,
.pp-search-results-page .pp-search-card-text p:last-child {
  margin-bottom: 0;
}

.pp-search-results--empty {
  margin-top: 2.5rem;
  padding: 2rem;
  background: var(--pp-surface-alt);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.pp-search-results-empty-text {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--pp-text-muted);
}

/* Products archive layout: filters left, products right */
.partner-portal-context .pp-products-archive-layout {
  display: grid;
  grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
  gap: 2rem;
  align-items: flex-start;
  margin-top: 1.5rem;
}

.partner-portal-context .pp-product-filters {
  background: var(--pp-surface-alt);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
  padding: 1.5rem 1.5rem 1.25rem;
}

.partner-portal-context .pp-products-archive-results {
  min-width: 0;
}

.partner-portal-context .pp-filter-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
}

.partner-portal-context .pp-filter-form label {
  display: block;
  width: 100%;
  font-size: 0.875rem;
  font-weight: 500;
}

.partner-portal-context .pp-filter-search {
  width: 100%;
  max-width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--pp-border);
  margin-bottom: 0.75rem;
}

.partner-portal-context .pp-filter-select {
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  min-width: 140px;
}

.partner-portal-context .pp-filter-submit {
  padding: 0.5rem 1rem;
}

.partner-portal-context .pp-filter-clear {
  display: inline-block;
  margin-left: 0.5rem;
  font-size: 0.875rem;
}

@media (max-width: 767px) {
  .partner-portal-context .pp-products-archive-layout {
    grid-template-columns: 1fr;
  }
}

/* Single product (PIM) – full layout */
.partner-portal-context .pp-product-single-header {
  margin-bottom: 1.5rem;
}

.partner-portal-context .pp-product-single-title {
  margin: 0 0 0.25rem;
}

.partner-portal-context .pp-product-single-subtitle {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--pp-text-muted);
  margin: 0 0 0.5rem;
}

.partner-portal-context .pp-product-meta.pp-product-part-number {
  font-size: 0.875rem;
  color: var(--pp-text-muted);
  margin: 0 0 1rem;
}

.partner-portal-context .pp-product-part-number code {
  font-size: 0.875rem;
  background: var(--pp-surface-alt);
  padding: 0.15rem 0.4rem;
}

.partner-portal-context .pp-product-hero-image {
  margin-top: 1rem;
  max-width: 100%;
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-product-hero-image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 400px;
  object-fit: contain;
}

.partner-portal-context .pp-product-single-content {
  margin-bottom: 2rem;
  line-height: 1.6;
}

.partner-portal-context .pp-product-single-footer {
  padding-top: 1.5rem;
  border-top: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-product-1ws-live {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-product-1ws-embed {
  margin-top: 1rem;
  min-height: 320px;
  background: var(--pp-surface-alt);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-product-1ws-iframe {
  width: 100%;
  min-height: 320px;
  border: 0;
  display: block;
}

.partner-portal-context .pp-product-1ws-connector-content {
  margin-top: 1rem;
}

.partner-portal-context .pp-product-1ws-dclist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.partner-portal-context .pp-product-1ws-dc-item {
  margin: 0;
}

.partner-portal-context .pp-product-1ws-dc-item a {
  text-decoration: none;
}

.partner-portal-context .pp-product-1ws-dc-item a:hover {
  text-decoration: underline;
}

.partner-portal-context .pp-product-1ws-dc-image img {
  max-width: 200px;
  height: auto;
  display: block;
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-product-icecat-live .pp-product-icecat-container {
  min-height: 120px;
  margin-top: 1rem;
}

.partner-portal-context .pp-product-link {
  margin: 0 0 1rem;
}

.partner-portal-context .pp-product-details {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1.5rem;
  margin: 0;
  font-size: 0.9375rem;
}

.partner-portal-context .pp-product-details dt {
  color: var(--pp-text-muted);
  margin: 0;
}

.partner-portal-context .pp-product-details dd {
  margin: 0;
}

.partner-portal-context .pp-product-details dd code {
  font-size: 0.875rem;
  background: var(--pp-surface-alt);
  padding: 0.1rem 0.35rem;
}

.partner-portal-context .pp-product-section-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 1.5rem 0 0.75rem;
  color: var(--pp-primary-brand);
}

.partner-portal-context .pp-product-key-points ul,
.partner-portal-context .pp-product-what-in-box ul {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

.partner-portal-context .pp-product-key-points li,
.partner-portal-context .pp-product-what-in-box li {
  margin-bottom: 0.35rem;
}

.partner-portal-context .pp-product-spec-group {
  font-size: 1rem;
  font-weight: 600;
  margin: 1rem 0 0.5rem;
}

.partner-portal-context .pp-product-spec-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.2rem 1.25rem;
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
}

.partner-portal-context .pp-product-spec-list dt {
  color: var(--pp-text-muted);
}

.partner-portal-context .pp-product-download-links {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.partner-portal-context .pp-product-download-links li {
  margin-bottom: 0.5rem;
}

.partner-portal-context .pp-product-download-links a {
  text-decoration: none;
}

.partner-portal-context .pp-product-download-links a:hover {
  text-decoration: underline;
}

/* ==========================================================================
   Single product – EPOS-style PDP (hero, key features, overview, blocks, accordion)
   ========================================================================== */

/* Wrapper: entire PDP in a 1440px block, centered */
.partner-portal-context .pp-pdp-wrap {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
}

/* Hero: EPOS-style – with image: full-bleed image + petrol gradient overlay; without: solid petrol */
.partner-portal-context .pp-pdp-wrap .pp-pdp-hero {
  width: 100%;
  position: relative;
  background: var(--pp-primary-brand);
  padding: 2.5rem 0 0;
  min-height: 320px;
}

/* When hero has image: image fills hero, overlay tint (dark left → transparent right) */
.partner-portal-context .pp-pdp-hero--has-image {
  background: none;
  padding: 0;
}

.partner-portal-context .pp-pdp-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background-color: var(--pp-primary-brand);
}

.partner-portal-context .pp-pdp-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  display: block;
}

.partner-portal-context .pp-pdp-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(0, 42, 48, 0.92) 0%,
    rgba(0, 42, 48, 0.6) 45%,
    rgba(0, 42, 48, 0.25) 70%,
    transparent 100%
  );
}

.partner-portal-context .pp-pdp-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: center;
  min-height: 320px;
  padding-top: 2.5rem;
  padding-bottom: 2rem;
}

.partner-portal-context .pp-pdp-hero--has-image .pp-pdp-hero-inner {
  padding-top: 2.5rem;
}

.partner-portal-context .pp-pdp-hero-content {
  padding: 2rem 2rem 2rem 0;
}

.partner-portal-context .pp-pdp-hero-breadcrumb {
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 1rem;
}

.partner-portal-context .pp-pdp-hero-breadcrumb a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
}

.partner-portal-context .pp-pdp-hero-breadcrumb a:hover {
  color: #fff;
  text-decoration: underline;
}

.partner-portal-context .pp-pdp-hero-breadcrumb .pp-pdp-hero-breadcrumb-sep {
  margin: 0 0.35rem;
  color: rgba(255, 255, 255, 0.6);
}

.partner-portal-context .pp-pdp-hero-breadcrumb span:last-child {
  color: #fff;
}

.partner-portal-context .pp-pdp-hero-title {
  font-size: 3.75rem;
  font-weight: 100;
  color: #ffffff;
  margin: 0 0 1.25rem;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.partner-portal-context .pp-pdp-hero-tagline {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.4;
}

.partner-portal-context .pp-pdp-hero-cta {
  display: inline-block;
  margin-top: 1.25rem;
}

.partner-portal-context .pp-pdp-hero-media {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-left: 2rem;
}

/* Inline image only when no full-bleed hero (fallback) */
.partner-portal-context .pp-pdp-hero-media img {
  max-width: 100%;
  max-height: 340px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* With overlay hero, right column is empty – image shows through overlay */
.partner-portal-context .pp-pdp-hero--has-image .pp-pdp-hero-media {
  min-height: 280px;
}

.partner-portal-context .pp-pdp-hero-bar {
  height: 6px;
  background: var(--pp-primary-brand);
  margin-top: 0;
}

/* Key features strip: 3 columns, circular icon + text (EPOS-style) */
.partner-portal-context .pp-pdp-key-features {
  width: 100%;
  background: #ffffff;
  padding: 3rem 0;
}

.partner-portal-context .pp-pdp-key-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 2.5rem;
}

.partner-portal-context .pp-pdp-key-feature {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.partner-portal-context .pp-pdp-key-feature-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(0, 163, 153, 0.15);
  position: relative;
  flex-shrink: 0;
  margin:auto;
}

.partner-portal-context .pp-pdp-key-feature-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--pp-secondary-brand);
}

.partner-portal-context .pp-pdp-key-feature-text {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  color: var(--pp-text);
  line-height: 1.45;
  text-align:center;
}

/* Product overview: image left, details right (EPOS-style) */
.partner-portal-context .pp-pdp-overview {
  width: 100%;
  background: var(--pp-bg-white);
  padding: 3rem 0;
}

.partner-portal-context .pp-pdp-overview-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 3rem;
  align-items: start;
}

.partner-portal-context .pp-pdp-overview-media img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--pp-border);
}

.partner-portal-context .pp-pdp-overview-series {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--pp-text-muted);
}

.partner-portal-context .pp-pdp-overview-title {
  margin: 0 0 0.75rem;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--pp-text);
  line-height: 1.2;
}

.partner-portal-context .pp-pdp-overview-sku {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  color: var(--pp-text);
}

.partner-portal-context .pp-pdp-overview-sku code {
  background: var(--pp-surface-alt);
  padding: 0.15rem 0.4rem;
  font-weight: 500;
}

.partner-portal-context .pp-pdp-overview-excerpt {
  margin: 0 0 1.5rem;
  line-height: 1.6;
  font-size: 1rem;
  color: var(--pp-text);
}

.partner-portal-context .pp-pdp-overview-ctas {
  margin: 0 0 1rem;
}

.partner-portal-context .pp-pdp-overview-details .pp-cta--primary {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: var(--pp-primary-brand);
  color: #fff !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9375rem;
  border: 2px solid var(--pp-primary-brand);
}

.partner-portal-context .pp-pdp-overview-details .pp-cta--primary:hover {
  background: #002a30;
  border-color: #002a30;
  color: #fff !important;
}

.partner-portal-context .pp-pdp-overview-meta {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1rem;
  margin: 1rem 0 0;
  font-size: 0.875rem;
}

.partner-portal-context .pp-pdp-overview-meta dt {
  color: var(--pp-text-muted);
}

.partner-portal-context .pp-pdp-overview-meta dd {
  margin: 0;
}

.partner-portal-context .pp-pdp-overview-meta dd code {
  background: var(--pp-surface-alt);
  padding: 0.1rem 0.35rem;
}

/* Alternating blocks: dark teal / white */
.partner-portal-context .pp-pdp-block {
  width: 100%;
  padding: 2.5rem 0;
}

.partner-portal-context .pp-pdp-block--dark {
  background: var(--pp-primary-brand);
  color: #ffffff;
}

.partner-portal-context .pp-pdp-block--dark .pp-pdp-block-body,
.partner-portal-context .pp-pdp-block--dark .pp-pdp-block-body a {
  color: #ffffff;
}

.partner-portal-context .pp-pdp-block--dark .pp-pdp-block-body a:hover {
  color: var(--pp-secondary-brand);
}

.partner-portal-context .pp-pdp-block--light {
  background: var(--pp-bg-white);
}

.partner-portal-context .pp-pdp-block-heading {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--pp-primary-brand);
}

.partner-portal-context .pp-pdp-block-list {
  margin: 0;
  padding-left: 1.25rem;
  max-width: 720px;
}

.partner-portal-context .pp-pdp-block-list li {
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.partner-portal-context .pp-pdp-block-body.entry-content {
  max-width: 920px;
  display: block;
  font-family: "EPOSBasis-Regular", "EPOS Basis", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 28.8px;
  color: rgba(255, 255, 255, 0.9);
  margin:auto;
  text-align:center;
}

/* Summary band: key selling points (left) + technical summary (right) */
.partner-portal-context .pp-pdp-summary {
  width: 100%;
  background: var(--pp-bg-white);
  padding: 2.5rem 0;
}

.partner-portal-context .pp-pdp-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr);
  gap: 2.5rem;
  align-items: flex-start;
}

.partner-portal-context .pp-pdp-summary-left,
.partner-portal-context .pp-pdp-summary-right {
  min-width: 0;
}

.partner-portal-context .pp-pdp-specs-title {
  margin: 0 0 1.25rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--pp-primary-brand);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.partner-portal-context .pp-pdp-accordion {
  max-width: 100%;
}

.partner-portal-context .pp-pdp-accordion-item {
  border: 1px solid var(--pp-border);
  border-bottom: 0;
}

.partner-portal-context .pp-pdp-accordion-item:last-of-type {
  border-bottom: 1px solid var(--pp-border);
}

.partner-portal-context .pp-pdp-accordion-summary {
  padding: 1rem 1.25rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  background: var(--pp-surface-alt);
  user-select: none;
}

.partner-portal-context .pp-pdp-accordion-summary::-webkit-details-marker {
  display: none;
}

.partner-portal-context .pp-pdp-accordion-summary::before {
  content: "+";
  display: inline-block;
  width: 1.25rem;
  margin-right: 0.5rem;
}

.partner-portal-context .pp-pdp-accordion-item[open] .pp-pdp-accordion-summary::before {
  content: "−";
}

.partner-portal-context .pp-pdp-spec-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1.5rem;
  margin: 0;
  padding: 1rem 1.25rem 1.25rem;
  font-size: 0.9375rem;
}

.partner-portal-context .pp-pdp-spec-list dt {
  color: var(--pp-text-muted);
}

.partner-portal-context .pp-pdp-spec-list dd {
  margin: 0;
}

.partner-portal-context .pp-pdp-spec-list.pp-pdp-spec-list--ul {
  display: block;
  list-style: disc;
  padding-left: 2rem;
}

.partner-portal-context .pp-pdp-spec-list.pp-pdp-spec-list--ul li {
  margin-bottom: 0.35rem;
}

/* Downloads & support */
.partner-portal-context .pp-pdp-downloads {
  width: 100%;
  background: var(--pp-bg-white);
  padding: 2rem 0 2.5rem;
}

.partner-portal-context .pp-pdp-downloads-title {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--pp-primary-brand);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.partner-portal-context .pp-pdp-download-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.partner-portal-context .pp-pdp-download-links li {
  margin-bottom: 0.5rem;
}

.partner-portal-context .pp-pdp-download-links a {
  text-decoration: none;
  color: var(--pp-secondary-brand);
}

.partner-portal-context .pp-pdp-download-links a:hover {
  text-decoration: underline;
}

.partner-portal-context .pp-pdp-related {
  width: 100%;
  background: var(--pp-bg-white);
  padding: 2.5rem 0 3rem;
}

.partner-portal-context .pp-pdp-related-title {
  margin: 0 0 1.5rem;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--pp-primary-brand);
}

/* Live content (Icecat / 1WS) section */
.partner-portal-context .pp-pdp-live {
  padding: 2rem 0;
}

@media (max-width: 1023px) {
  .partner-portal-context .pp-pdp-wrap .pp-pdp-hero:not(.pp-pdp-hero--has-image) {
    background: var(--pp-primary-brand);
  }

  .partner-portal-context .pp-pdp-hero-inner {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .partner-portal-context .pp-pdp-hero-content {
    padding: 1.5rem 0 0;
  }

  .partner-portal-context .pp-pdp-hero-media {
    order: -1;
    justify-content: center;
    padding-left: 0;
    padding-top: 1rem;
    min-height: 0;
  }

  .partner-portal-context .pp-pdp-hero--has-image .pp-pdp-hero-media {
    min-height: 0;
  }

  .partner-portal-context .pp-pdp-key-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .partner-portal-context .pp-pdp-overview-grid {
    grid-template-columns: 1fr;
  }

  .partner-portal-context .pp-pdp-overview-media {
    max-width: 320px;
  }

  .partner-portal-context .pp-pdp-summary-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .partner-portal-context .pp-pdp-key-features-grid {
    grid-template-columns: 1fr;
  }

  .partner-portal-context .pp-pdp-overview-media {
    max-width: 100%;
  }
}

/* Products by category page */
.partner-portal-context .pp-products-by-category .pp-products-page-header {
  margin-bottom: 1.5rem;
}

.partner-portal-context .pp-products-by-category .pp-products-page-title {
  margin: 0 0 0.5rem;
}

.partner-portal-context .pp-products-search-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-bottom: 2rem;
  padding: 1.25rem 1.5rem;
  background: var(--pp-surface-alt);
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
}

.partner-portal-context .pp-products-search-input {
  flex: 1 1 220px;
  min-width: 0;
  padding: 0.6rem 0.9rem;
  font-size: 0.9375rem;
}

.partner-portal-context .pp-products-category-select {
  min-width: 160px;
  padding: 0.6rem 0.75rem;
}

.partner-portal-context .pp-products-search-submit {
  padding: 0.6rem 1.2rem;
}

.partner-portal-context .pp-products-results-title,
.partner-portal-context .pp-products-category-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 1rem;
  color: var(--pp-primary-brand);
}

.partner-portal-context .pp-products-category-section {
  margin-bottom: 2.5rem;
}

.partner-portal-context .pp-products-category-section:first-of-type {
  margin-top: 0;
}

.partner-portal-context .pp-products-results {
  margin-bottom: 2rem;
}

.partner-portal-context .pp-products-no-categories {
  color: var(--pp-text-muted);
  margin: 1rem 0;
}

/* Product cards – EPOS main site inspired */
.partner-portal-context .pp-products-grid .pp-product-card,
.partner-portal-context.post-type-archive-pp_product .pp-content-grid .pp-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: #ffffff;
  border-radius: 0;
  border: 1px solid var(--pp-border, rgba(0, 0, 0, 0.08));
  border-bottom-width: 4px;
  border-bottom-color: transparent;
  box-shadow: var(--pp-shadow);
  padding: 1.75rem 1.75rem 1.5rem;
}

.partner-portal-context .pp-products-grid .pp-product-card:hover,
.partner-portal-context.post-type-archive-pp_product .pp-content-grid .pp-product-card:hover {
  box-shadow: var(--pp-shadow-lg);
  border-bottom-color: #00b8ad;
}

.partner-portal-context .pp-product-card__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  text-decoration: none;
  color: inherit;
}

.partner-portal-context .pp-product-card__media {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
}

.partner-portal-context .pp-product-card__image-container {
  display: block;
  width: 100%;
  max-width: 260px;
  aspect-ratio: 1 / 1;
  background: #ffffff;
}

.partner-portal-context .pp-product-card__image-container img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform 0.25s ease;
}

.partner-portal-context .pp-product-card:hover .pp-product-card__image-container img {
  transform: scale(1.06);
}

.partner-portal-context .pp-product-card__header {
  position: relative;
  z-index: 2;
  margin-bottom: 0.5rem;
}

.partner-portal-context .pp-product-card__header-heading {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
  font-weight: 600;
}

.partner-portal-context .pp-product-card__title-link {
  color: var(--pp-text);
  text-decoration: none;
}

.partner-portal-context .pp-product-card__title-link:hover {
  color: var(--pp-secondary-brand);
  text-decoration: underline;
}

.partner-portal-context.pp-theme-light .pp-product-card__title-link {
  color: #00353d;
}

.partner-portal-context.pp-theme-light .pp-product-card__title-link:hover {
  color: #008a82;
}

.partner-portal-context .pp-product-card__subtitle {
  margin: 0;
  font-size: 0.875rem;
  color: var(--pp-text-muted);
}

.partner-portal-context .pp-product-card__keypoint {
  margin: 0.15rem 0 0;
  font-size: 0.9rem;
  font-weight: 400;
  color: #00b8ad!important;
}

.partner-portal-context .pp-product-card__web-description {
  position: relative;
  z-index: 2;
  margin-top: 0.5rem;
  font-size: 0.9rem;
  font-weight: 100;
  color: var(--pp-text-muted);
}

@media (max-width: 767px) {
  .partner-portal-context .pp-products-grid .pp-product-card,
  .partner-portal-context.post-type-archive-pp_product .pp-content-grid .pp-product-card {
    padding: 1.25rem 1.25rem 1.25rem;
  }
}
