/* Shared mechanics only. Each standalone theme supplies its measured brand tokens. */
:root {
  --pk-font: system-ui, sans-serif;
  --pk-text: #333;
  --pk-accent: #333;
  --pk-primary: #333;
  --pk-dark: #222;
  --pk-surface: #fff;
  --pk-border: #ccd2d7;
  --pk-focus: #333;
  --pk-radius: 0;
  --pk-content-width: 1200px;
  --pk-gutter: clamp(20px, 4vw, 48px);
  --pk-section-space: clamp(48px, 7vw, 96px);
  --pk-motion-duration: 650ms;
  --pk-motion-ease: cubic-bezier(.2, .7, .25, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; font-family: var(--pk-font); color: var(--pk-text); background: var(--pk-surface); -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button, a, summary, input, textarea, select { -webkit-tap-highlight-color: transparent; }
img, svg, video { max-width: 100%; }
img { height: auto; }
a { color: inherit; text-underline-offset: .2em; }
button, summary { cursor: pointer; }
:focus-visible { outline: 3px solid var(--pk-focus); outline-offset: 4px; }
[id] { scroll-margin-top: 100px; }
[hidden] { display: none !important; }

.pk-container { width: min(calc(100% - 2 * var(--pk-gutter)), var(--pk-content-width)); margin-inline: auto; }
.pk-section { padding-block: var(--pk-section-space); }
.pk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pk-grid > *, .wp-block-column, .wp-block-group { min-width: 0; }
.pk-card, .wp-block-group.is-style-pk-card { border: 1px solid var(--pk-border); border-radius: var(--pk-radius); padding: clamp(24px, 3vw, 40px); background: var(--pk-surface); }
.pk-card > :first-child { margin-top: 0; }
.pk-card > :last-child { margin-bottom: 0; }
.pk-button, .wp-block-button__link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 24px;
  border: 1px solid transparent;
  border-radius: var(--pk-radius);
  background: var(--pk-accent);
  color: var(--pk-button-text, var(--pk-dark));
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: filter 180ms ease, background-color 180ms ease, color 180ms ease;
}
.pk-button:hover, .wp-block-button__link:hover { filter: brightness(.93); }
.pk-button--outline, .is-style-outline > .wp-block-button__link { border-color: currentColor; background: transparent; color: var(--pk-primary); }
.pk-button svg { width: 20px; height: 20px; flex-shrink: 0; }

.pk-skip-link {
  position: absolute;
  z-index: 10000;
  inset: 8px auto auto 8px;
  padding: 12px 20px;
  transform: translateY(-200%);
  background: var(--pk-dark);
  color: #fff;
}
.pk-skip-link:focus { transform: none; }
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.screen-reader-text:focus { clip-path: none; width: auto; height: auto; margin: 0; white-space: normal; }

.pk-table, .wp-block-table { max-width: 100%; overflow-x: auto; }
.pk-table table, table.pk-table, .wp-block-table table { width: 100%; border-collapse: collapse; text-align: left; font-variant-numeric: tabular-nums; }
.pk-table th, .pk-table td, .wp-block-table th, .wp-block-table td { padding: 16px 20px; border: 1px solid var(--pk-border); vertical-align: top; }
.pk-table th, .wp-block-table th { font-weight: 700; color: var(--pk-primary); }
.pk-table caption, .wp-block-table figcaption { padding-block: 12px; text-align: left; font-size: .875rem; }
.wp-block-table.is-style-pk-technical tbody tr:nth-child(even), .pk-table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--pk-primary) 4%, var(--pk-surface)); }

.pk-accordion, .wp-block-details.is-style-pk-accordion { border-block-end: 1px solid var(--pk-border); }
.pk-accordion:first-child, .wp-block-details.is-style-pk-accordion:first-child { border-block-start: 1px solid var(--pk-border); }
.pk-accordion > summary, .wp-block-details.is-style-pk-accordion > summary { position: relative; min-height: 56px; padding: 20px 40px 20px 0; color: var(--pk-primary); font-weight: 700; list-style: none; }
.pk-accordion > summary::-webkit-details-marker, .wp-block-details.is-style-pk-accordion > summary::-webkit-details-marker { display: none; }
.pk-accordion > summary::after, .wp-block-details.is-style-pk-accordion > summary::after { content: ''; position: absolute; top: 26px; right: 8px; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.pk-accordion[open] > summary::after, .wp-block-details.is-style-pk-accordion[open] > summary::after { transform: rotate(225deg); }
.pk-accordion > :not(summary), .wp-block-details.is-style-pk-accordion > :not(summary) { margin-block: 0 20px; }

/* Core Navigation owns focus return, Escape, overlay locking and ARIA states. */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }
.wp-block-navigation a { display: inline-flex; align-items: center; }
.wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation__submenu-icon:focus-visible,
.wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container-close:focus-visible { outline: 3px solid var(--pk-focus); outline-offset: 4px; }
.wp-block-navigation .wp-block-navigation__submenu-container { background: var(--pk-surface); color: var(--pk-text); border-color: var(--pk-border); }
.wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container { visibility: visible; opacity: 1; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--pk-surface); color: var(--pk-text); }

/* Reveals never hide content; JS uses a short optional Web Animation. */
[data-pk-reveal], .pk-reveal { opacity: 1; }
[data-pk-sticky-header], .pk-sticky-header { position: sticky; z-index: 100; top: var(--wp-admin--admin-bar--height, 0px); }

@media (min-width: 1025px) {
  .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; }
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; }
}
@media (max-width: 1024px) {
  .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .wp-block-navigation__responsive-container.is-menu-open { animation: pk-nav-in 450ms var(--pk-motion-ease) both; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 64px 24px 24px; }
  .pk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .pk-grid { grid-template-columns: 1fr; }
  .pk-table th, .pk-table td, .wp-block-table th, .wp-block-table td { padding: 12px; }
}
@keyframes pk-nav-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
.pk-slider{--pk-slider-visible:1;--pk-slider-gap:30px;position:relative}
.pk-slider.is-enhanced{display:block}
.pk-slider-viewport{position:relative;overflow:hidden;touch-action:pan-y}
.pk-slider-peek.is-enhanced .pk-slider-viewport{overflow:visible}
.pk-slider-preview{pointer-events:none}
.pk-slider-track{display:flex;gap:var(--pk-slider-gap);position:relative;z-index:1}
.pk-slider.is-enhanced .pk-slider-item{flex:0 0 calc((100% - (var(--pk-slider-visible) - 1)*var(--pk-slider-gap))/var(--pk-slider-visible));min-width:0;margin:0!important}
.pk-slider-item[hidden]{display:none!important}
.pk-slider-outgoing{position:absolute;inset:0;z-index:0;pointer-events:none}
.pk-slider-controls{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px}
.pk-slider-controls[hidden],.pk-slider-controls button[hidden],.pk-slider-dots[hidden]{display:none!important}
.pk-slider-controls button{border:0;background:transparent;color:var(--pk-primary);min-width:44px;min-height:44px;font-family:inherit;cursor:pointer}
.pk-slider-controls button:focus-visible,.pk-carousel-dots button:focus-visible{outline:3px solid var(--pk-focus);outline-offset:2px}
.pk-slider-prev,.pk-slider-next{font-size:35px;line-height:1}
.pk-slider-controls button:disabled{opacity:.35;cursor:default}
.pk-slider-dots,.pk-carousel-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:0}
.pk-slider-dots button,.pk-carousel-dots button{display:grid;place-items:center;width:44px;min-height:44px;padding:0;border:0;background:transparent;cursor:pointer}
.pk-slider-dots button::before,.pk-carousel-dots button::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.35}
.pk-slider-dots button[aria-current]::before,.pk-carousel-dots button[aria-current]::before{opacity:1}
.pk-slider-autoplay-toggle{font-size:12px;text-decoration:underline}
.pk-carousel-dots{color:inherit;margin-top:12px}
.pk-carousel-dots button{color:inherit}
.pk-slider:not(.is-enhanced)>.pk-slider-item+.pk-slider-item{margin-top:30px}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* The floating CMP hit area covered mobile CTAs. The native footer trigger and
 * cookie policy remain available; the consent banner and CMP are unchanged. */
#cmplz-manage-consent { display: none !important; }

/* Legal links need body-text contrast, including Croatian contact details. */
.pk-section.pk-legal-page a:not(.wp-block-button__link):not(.pk-button),
.sk-section.sk-legal a,
.pk-section.pk-cookie-inventory-wrapper a,
.sk-section.pk-cookie-inventory-wrapper a {
  color: var(--pk-primary);
  text-decoration: underline;
  text-underline-offset: .15em;
  overflow-wrap: anywhere;
}
:is(.pk-legal-page, .sk-legal, .pk-cookie-inventory-wrapper) a[href^="tel:"] {
  white-space: nowrap;
  overflow-wrap: normal;
}
.pk-cookie-inventory-wrapper .wp-block-table td {
  overflow-wrap: anywhere;
}
.pk-cookie-inventory-wrapper .cmplz-manage-consent {
  min-height: 44px;
  padding: 12px 20px;
  border: 1px solid var(--pk-accent);
  border-radius: 4px;
  background: var(--pk-accent);
  color: var(--pk-dark);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.pk-cookie-inventory-wrapper .cmplz-manage-consent:focus-visible {
  outline: 3px solid var(--pk-primary);
  outline-offset: 3px;
}

/* Desktop has its existing CTA; Core's mobile drawer needs the same destination. */
.pk-header .pk-nav-contact { display: none; }
@media (max-width: 1024px) {
  .pk-header .pk-nav-contact { display: flex; }
  .pk-header .pk-nav-contact > .wp-block-navigation-item__content {
    color: var(--pk-accent);
    font-weight: 700;
  }
}

/* User-requested sticky enhancement. Brand-specific initial hero geometry and
 * native Core menus stay intact; the measured wrapper never changes flow. */
header.pk-sticky-shell {
  position: sticky;
  top: var(--pk-header-offset, 0px);
  z-index: 100;
  height: var(--pk-header-flow-height);
  overflow: visible;
}
.pk-sticky-shell > :is(.pk-header, .pk-campaign-header) {
  position: absolute !important;
  margin-bottom: 0 !important;
  transition: background-color 280ms cubic-bezier(.2,.8,.2,1), box-shadow 280ms cubic-bezier(.2,.8,.2,1);
}
.pk-sticky-shell > .pk-header { inset: 0 0 auto; }
/* Campaign headers keep their measured supplier logo inset at the top. */
.pk-sticky-shell > .pk-campaign-header {
  transition-property: background-color, box-shadow, top, left, right, padding;
}
.pk-sticky-shell > .pk-campaign-header .pk-campaign-logo {
  transition: width 280ms cubic-bezier(.2,.8,.2,1);
}
.pk-sticky-shell .pk-header-inner {
  transition: height 280ms cubic-bezier(.2,.8,.2,1), padding 280ms cubic-bezier(.2,.8,.2,1);
}
.pk-sticky-shell .pk-header-top {
  transition: height 280ms cubic-bezier(.2,.8,.2,1), min-height 280ms cubic-bezier(.2,.8,.2,1);
}
.pk-sticky-shell .pk-header-bottom {
  transition: margin-top 280ms cubic-bezier(.2,.8,.2,1);
}
.pk-sticky-shell .pk-header-top > .pk-logo img {
  transform-origin: left center;
  transition: transform 280ms cubic-bezier(.2,.8,.2,1);
}
.pk-sticky-shell > :is(.pk-header.pk-header--compact, .pk-campaign-header.pk-campaign-header--compact) {
  background: var(--pk-dark);
  color: #fff;
  --pk-focus: #fff;
  box-shadow: 0 4px 16px #001e3729;
}
.pk-sticky-shell > .pk-header.pk-header--compact {
  min-height: 96px !important;
}
.pk-sticky-shell > .pk-header.pk-header--compact .pk-header-inner {
  height: 96px;
  padding-block: 8px;
}
.pk-sticky-shell > .pk-header.pk-header--compact .pk-header-top {
  height: 33px;
  min-height: 33px;
}
.pk-sticky-shell > .pk-header.pk-header--compact .pk-header-bottom {
  margin-top: 3px;
}
.pk-sticky-shell > .pk-header.pk-header--compact .pk-header-top > .pk-logo img {
  transform: scale(.82);
  content: normal;
}
.pk-sticky-shell > .pk-header.pk-header--compact .pk-logo-light { display: block; }
.pk-sticky-shell > .pk-header.pk-header--compact .pk-logo-dark { display: none; }
.pk-sticky-shell > .pk-header.pk-header--compact :is(.pk-utility p, .pk-utility a, .pk-language, .pk-header-search > summary, .sk-header-search button, .wp-block-navigation__responsive-container-open),
.pk-sticky-shell > .pk-header.pk-header--compact .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
  color: #fff;
}
.pk-sticky-shell > .pk-header.pk-header--compact .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
  background: #fff;
}
.pk-sticky-shell > .pk-campaign-header.pk-campaign-header--compact {
  inset: 0 0 auto;
  height: 80px;
  padding: 16px 20px;
}
.pk-sticky-shell > .pk-campaign-header.pk-campaign-header--compact .pk-campaign-logo {
  width: 180px;
  margin: 0;
}
.pk-sticky-measuring, .pk-sticky-measuring * { transition: none !important; }
@media (max-width: 1024px) {
  .pk-sticky-shell > .pk-header.pk-header--compact { min-height: 80px !important; }
  .pk-sticky-shell > .pk-header.pk-header--compact .pk-header-inner { height: 80px; padding-block: 20px; }
  .pk-sticky-shell > .pk-header.pk-header--compact .pk-header-top { height: 40px; min-height: 0; }
  .pk-sticky-shell > .pk-header.pk-header--compact .pk-header-bottom { margin-top: 0; }
  .pk-sticky-shell > .pk-header.pk-header--compact .pk-header-top > .pk-logo img { transform: none; }
}
