/*
Theme Name: KRD Drukarnia
Theme URI: https://krd-drukarnia.pl
Author: KRD
Author URI: https://krd-drukarnia.pl
Description: Avant-garde motyw WordPress dla drukarni KRD. Space Grotesk display, GSAP animations, Lenis smooth scroll.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: krd-theme
Tags: custom-logo, custom-menu, featured-images, translation-ready
*/

/* ─── Dynamic color tokens (derived from --krd-hue) ─── */
:root {
  --krd-hue: 255;
  --krd-btn-text: #fff;

  /* Accent palette */
  --krd-a3: hsl(var(--krd-hue), 88%, 76%);
  --krd-a4: hsl(calc(var(--krd-hue) - 20), 89%, 74%);
  --krd-a5: hsl(calc(var(--krd-hue) - 16), 84%, 67%);
  --krd-a6: hsl(calc(var(--krd-hue) - 12), 75%, 58%);
  --krd-a7: hsl(calc(var(--krd-hue) + 8), 83%, 58%);
  --krd-a8: hsl(calc(var(--krd-hue) + 8), 70%, 50%);

  /* Dark section gradients */
  --krd-d-via: hsl(calc(var(--krd-hue) + 19), 75%, 7%);
  --krd-d-to:  hsl(calc(var(--krd-hue) + 80), 52%, 7%);
  --krd-d2-from: hsl(calc(var(--krd-hue) + 9), 63%, 10%);
  --krd-d2-via:  hsl(calc(var(--krd-hue) - 15), 33%, 6%);
  --krd-d2-to:   hsl(calc(var(--krd-hue) + 83), 50%, 6%);

  /* Light section gradients */
  --krd-l-via: hsl(calc(var(--krd-hue) - 29), 100%, 97%);
  --krd-l-to:  hsl(calc(var(--krd-hue) - 29), 100%, 94%);

  /* Footer */
  --krd-f-from: hsl(calc(var(--krd-hue) + 75), 25%, 3%);
  --krd-f-via:  hsl(calc(var(--krd-hue) + 13), 65%, 7%);
  --krd-f-to:   hsl(calc(var(--krd-hue) + 9), 63%, 10%);
  --krd-f-consult: hsl(calc(var(--krd-hue) + 7), 54%, 12%);

  /* Stats band */
  --krd-s-from: hsl(calc(var(--krd-hue) + 2), 54%, 5%);
  --krd-s-via:  hsl(calc(var(--krd-hue) + 9), 63%, 10%);
  --krd-s-to:   hsl(calc(var(--krd-hue) + 69), 33%, 6%);

  /* Hero overlay */
  --krd-hero-ov: hsl(calc(var(--krd-hue) - 4), 52%, 3%);

  /* Cursor / selection */
  --krd-cursor: hsl(calc(var(--krd-hue) - 31), 100%, 65%);
}

/* ─── Section background utilities ─── */
.krd-bg-dark    { background: linear-gradient(to bottom right, #0a0a0a, var(--krd-d-via), var(--krd-d-to)); }
.krd-bg-dark-bl { background: linear-gradient(to bottom left, var(--krd-d2-from), var(--krd-d2-via), var(--krd-d2-to)); }
.krd-bg-light   { background: linear-gradient(to bottom right, #fff, var(--krd-l-via), var(--krd-l-to)); color: #1a1a2e; }
.krd-hscroll-card-inner {
  aspect-ratio: 4 / 5;
}
@media (min-width: 768px) {
  .krd-hscroll-card-inner {
    aspect-ratio: unset;
    height: calc(100vh - 11rem);
    min-height: 200px;
  }
}
.krd-bg-light-b { background: linear-gradient(to bottom, #fff, var(--krd-l-via)); color: #1a1a2e; }
.krd-bg-stats   { background: linear-gradient(to right, var(--krd-s-from), var(--krd-s-via), var(--krd-s-to)); }
.krd-bg-foot-consult { background: linear-gradient(to bottom right, var(--krd-d2-from), var(--krd-f-consult), var(--krd-d-to)); }
.krd-bg-foot    { background: linear-gradient(to top, var(--krd-f-from), var(--krd-f-via), var(--krd-f-to)); }

/* ─── Orb utilities ─── */
.krd-orb-a7  { background: var(--krd-a7); }
.krd-orb-a6  { background: var(--krd-a6); }
.krd-orb-a8  { background: var(--krd-a8); }
.krd-orb-a4  { background: var(--krd-a4); }
.krd-orb-a5  { background: var(--krd-a5); }
.krd-orb-a3  { background: var(--krd-a3); }

/* ─── Text accent utilities ─── */
.krd-text-accent    { color: var(--krd-a5); }
.krd-text-accent-lt { color: var(--krd-a4); }
.krd-text-link      { color: var(--krd-a6); }
.krd-text-label     { color: var(--krd-a6); opacity: 0.6; }

/* ─── Lenis base ─── */
html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

/* ─── Custom cursor ─── */
.krd-cursor {
  position: fixed;
  top: -5px;
  left: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--krd-cursor);
  pointer-events: none;
  z-index: 9999;
  mix-blend-mode: difference;
  transition: width 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              height 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              top 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              left 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              background 0.3s ease;
}
.krd-cursor.is-active {
  width: 40px;
  height: 40px;
  top: -20px;
  left: -20px;
  background: rgba(255, 255, 255, 0.9);
  mix-blend-mode: normal;
}
.krd-cursor-follower {
  position: fixed;
  top: -20px;
  left: -20px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  pointer-events: none;
  z-index: 9998;
  mix-blend-mode: difference;
  transition: width 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              height 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              top 0.3s cubic-bezier(0.23, 1, 0.32, 1),
              left 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}
.krd-cursor-follower.is-active {
  width: 60px;
  height: 60px;
  top: -30px;
  left: -30px;
  border-color: rgba(255, 255, 255, 0.4);
  mix-blend-mode: normal;
}

/* ─── Horizontal scroll pinned section (desktop only) ─── */
@media (min-width: 768px) {
  #krd-hscroll {
    overflow: hidden;
  }
}

/* ─── Header transitions ─── */
#krd-header {
  transition: background 0.4s cubic-bezier(0.23, 1, 0.32, 1),
              backdrop-filter 0.4s cubic-bezier(0.23, 1, 0.32, 1),
              border-color 0.4s ease;
}
#krd-header.header-scrolled {
  background: rgba(10, 10, 10, 0.85) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-color: rgba(255, 255, 255, 0.08) !important;
}

/* ─── Gradient buttons ─── */
.btn-gradient {
  background: linear-gradient(135deg, var(--krd-a6) 0%, var(--krd-a5) 30%, var(--krd-a7) 65%, var(--krd-a8) 100%);
  color: var(--krd-btn-text, #fff);
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 24px color-mix(in srgb, var(--krd-a6) 35%, transparent), 0 2px 8px color-mix(in srgb, var(--krd-a8) 20%, transparent);
}
.btn-gradient:hover {
  opacity: 0.92;
  transform: translateY(-1px);
  box-shadow: 0 6px 32px color-mix(in srgb, var(--krd-a6) 45%, transparent), 0 4px 12px color-mix(in srgb, var(--krd-a8) 30%, transparent);
}
.btn-gradient-outline {
  position: relative;
  border: 1px solid transparent;
  background-image: linear-gradient(#0a0a0a, #0a0a0a), linear-gradient(135deg, var(--krd-a6) 0%, var(--krd-a5) 35%, var(--krd-a7) 70%, var(--krd-a8) 100%);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  transition: all 0.3s ease;
}
.btn-gradient-outline:hover {
  background-image: linear-gradient(color-mix(in srgb, var(--krd-a6) 15%, transparent), color-mix(in srgb, var(--krd-a8) 10%, transparent)), linear-gradient(135deg, var(--krd-a6), var(--krd-a5), var(--krd-a7), var(--krd-a8));
}
.btn-gradient-light {
  background: linear-gradient(135deg, var(--krd-a6) 0%, var(--krd-a5) 30%, var(--krd-a7) 65%, var(--krd-a8) 100%);
  color: var(--krd-btn-text, #fff);
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--krd-a6) 30%, transparent), 0 2px 8px color-mix(in srgb, var(--krd-a8) 15%, transparent);
}
.btn-gradient-light:hover {
  opacity: 0.92;
  transform: translateY(-1px);
  box-shadow: 0 6px 28px color-mix(in srgb, var(--krd-a6) 40%, transparent), 0 4px 12px color-mix(in srgb, var(--krd-a8) 20%, transparent);
}

/* ─── Card hover effects ─── */
@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.hscroll-card,
.krd-card-link {
  transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1),
              box-shadow 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  will-change: transform;
}
.hscroll-card:hover,
.krd-card-link:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px color-mix(in srgb, var(--krd-a6) 20%, transparent), 0 8px 24px rgba(0, 0, 0, 0.3);
}

.krd-card-img {
  filter: saturate(0.8) brightness(0.92);
  transition: transform 0.7s cubic-bezier(0.23, 1, 0.32, 1),
              filter 0.7s ease;
}
.group:hover .krd-card-img {
  transform: scale(1.08);
  filter: saturate(1.2) brightness(1.05);
}

.krd-card-accent {
  width: 2rem;
  height: 2px;
  background: linear-gradient(90deg, var(--krd-a5), var(--krd-a7), var(--krd-a5));
  background-size: 200% 100%;
  transition: width 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.group:hover .krd-card-accent {
  width: 5rem;
  animation: shimmer 2s ease-in-out infinite;
}

.krd-card-excerpt {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.1s,
              opacity 0.4s ease 0.15s;
}
.group:hover .krd-card-excerpt {
  max-height: 5rem;
  opacity: 1;
}

.krd-card-arrow {
  opacity: 0;
  transform: translateX(-0.5rem);
  transition: opacity 0.4s ease 0.2s,
              transform 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.15s;
}
.group:hover .krd-card-arrow {
  opacity: 1;
  transform: translateX(0);
}

.krd-card-title {
  transform: translateY(0.5rem);
  transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.05s,
              color 0.4s ease;
}
.group:hover .krd-card-title {
  transform: translateY(0);
}

.krd-card-watermark {
  font-size: clamp(6rem, 12vw, 10rem);
  line-height: 0.8;
  opacity: 0.035;
  transition: opacity 0.6s ease, transform 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}
.group:hover .krd-card-watermark {
  opacity: 0.07;
  transform: translateY(-8px) scale(1.04);
}

.krd-card-gradient {
  background: linear-gradient(to top, rgba(10,10,10,0.88) 0%, rgba(10,10,10,0.5) 40%, rgba(10,10,10,0.1) 65%, transparent 100%);
  transition: all 0.6s ease;
}
.group:hover .krd-card-gradient {
  background: linear-gradient(to top, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.6) 45%, rgba(10,10,10,0.15) 70%, transparent 100%);
}

.krd-card-number {
  transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.group:hover .krd-card-number {
  opacity: 0.5;
  transform: translateY(-2px);
}

/* ─── Glass panels ─── */
.glass-dark {
  background: rgba(10, 10, 10, 0.55);
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
}
.glass-light {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(24px) saturate(1.3);
  -webkit-backdrop-filter: blur(24px) saturate(1.3);
}
.glass-frost {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

/* ─── Text safety over images ─── */
.text-safe {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5), 0 0 20px rgba(0, 0, 0, 0.15);
}
.text-safe-sm {
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

/* ─── Form submit button gradient ─── */
.krd-form-wrapper input[type="submit"] {
  background: linear-gradient(135deg, var(--krd-a6) 0%, var(--krd-a5) 30%, var(--krd-a7) 65%, var(--krd-a8) 100%) !important;
  color: var(--krd-btn-text, #fff) !important;
  box-shadow: 0 4px 20px color-mix(in srgb, var(--krd-a6) 30%, transparent), 0 2px 8px color-mix(in srgb, var(--krd-a8) 15%, transparent);
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.krd-form-wrapper input[type="submit"]:hover {
  opacity: 0.92;
  transform: translateY(-1px);
  box-shadow: 0 6px 28px color-mix(in srgb, var(--krd-a6) 40%, transparent), 0 4px 12px color-mix(in srgb, var(--krd-a8) 20%, transparent);
}

/* ─── Particles hero ─── */
#krd-particles {
  position: absolute;
  inset: 0;
  z-index: 1;
}
#krd-particles canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

@keyframes hero-orb-drift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(30px, -20px) scale(1.05); }
  66%      { transform: translate(-20px, 15px) scale(0.97); }
}
[data-hero-scene] .hero-orb {
  animation: hero-orb-drift 18s ease-in-out infinite;
}
[data-hero-scene] .hero-orb:nth-child(2) { animation-delay: -5s; animation-duration: 22s; }
[data-hero-scene] .hero-orb:nth-child(3) { animation-delay: -10s; animation-duration: 20s; }
[data-hero-scene] .hero-orb:nth-child(4) { animation-delay: -14s; animation-duration: 25s; }

/* ─── Selection ─── */
::selection {
  background: var(--krd-cursor);
  color: #fff;
}

/* ─── Pagination accent (archive/index) ─── */
.krd-pagination .page-numbers.current {
  background: linear-gradient(to right, var(--krd-a6), var(--krd-a7));
  color: var(--krd-btn-text, #fff);
}

/* ─── Prose – light variant ─── */
.krd-prose-light,
.krd-prose-light * { color: #374151; }
.krd-prose-light h1,
.krd-prose-light h2,
.krd-prose-light h3,
.krd-prose-light h4 { color: #111827; }
.krd-prose-light strong,
.krd-prose-light b { color: #111827; }
.krd-prose-light a { color: var(--krd-a6) !important; }

/* ─── Prose – dark variant ─── */
.krd-prose-dark,
.krd-prose-dark * { color: #d1d5db; }
.krd-prose-dark h1,
.krd-prose-dark h2,
.krd-prose-dark h3,
.krd-prose-dark h4 { color: #fff; }
.krd-prose-dark strong,
.krd-prose-dark b { color: #fff; }
.krd-prose-dark a { color: var(--krd-a4) !important; }

/* ─── Prose – accent bold ─── */
.krd-prose-accent-bold strong,
.krd-prose-accent-bold b { color: var(--krd-a6) !important; }

body:not(.single-landing) .prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
  color: var(--krd-a6);
}

/* ─── Hover accent ─── */
.krd-hover-accent { transition: color .2s ease; }
.krd-hover-accent:hover { color: var(--krd-a3); }

body:not(.single-landing) .prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
  border-left-color: var(--krd-a6);
}

/* ─── Form focus accent ─── */
.krd-form-wrapper input:focus,
.krd-form-wrapper textarea:focus,
.krd-form-wrapper select:focus {
  border-color: var(--krd-a5) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--krd-a5) 20%, transparent) !important;
}

/* ─── Inline field validation ─── */
.krd-field { position: relative; }

.krd-field-error {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding-left: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.25;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .3s ease, opacity .25s ease, margin .3s ease;
}
.krd-field-error.visible {
  max-height: 3rem;
  opacity: 1;
  margin-top: 0.5rem;
}
.krd-field-error::before {
  content: '';
  display: inline-block;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Dark theme (footer, main site) */
.krd-ajax-form[data-theme="dark"] .krd-field-error {
  color: #fca5a5;
}
.krd-ajax-form[data-theme="dark"] .krd-field.has-error input,
.krd-ajax-form[data-theme="dark"] .krd-field.has-error textarea,
.krd-ajax-form[data-theme="dark"] .krd-field.has-error select {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,.25) !important;
  background: rgba(239,68,68,.08) !important;
}
.krd-ajax-form[data-theme="dark"] .krd-field.has-success input,
.krd-ajax-form[data-theme="dark"] .krd-field.has-success textarea {
  border-color: #34d399 !important;
}

/* Light theme (landing pages, contact) */
.krd-ajax-form[data-theme="light"] .krd-field-error {
  color: #dc2626;
}
.krd-ajax-form[data-theme="light"] .krd-field.has-error input,
.krd-ajax-form[data-theme="light"] .krd-field.has-error textarea,
.krd-ajax-form[data-theme="light"] .krd-field.has-error select {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220,38,38,.15) !important;
  background: rgba(220,38,38,.04) !important;
}
.krd-ajax-form[data-theme="light"] .krd-field.has-success input,
.krd-ajax-form[data-theme="light"] .krd-field.has-success textarea {
  border-color: #16a34a !important;
}

@keyframes krd-shake {
  0%, 100% { transform: translateX(0); }
  15%      { transform: translateX(-6px); }
  30%      { transform: translateX(5px); }
  45%      { transform: translateX(-4px); }
  60%      { transform: translateX(3px); }
  75%      { transform: translateX(-2px); }
}
.krd-field.has-error input,
.krd-field.has-error textarea,
.krd-field.has-error select {
  animation: krd-shake .5s ease;
}

/* ─── Form status boxes ─── */
.krd-status-box {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  animation: krd-status-in .4s ease;
}
.krd-status-box .krd-status-icon {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: 0.0625rem;
}
.krd-status-box .krd-status-title {
  font-weight: 700;
  margin-bottom: 0.125rem;
}
.krd-status-box .krd-status-copy {
  opacity: .75;
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}
.krd-status-success {
  background: #065f46;
  border: 1px solid #34d39980;
  color: #d1fae5;
}
.krd-status-error {
  background: #7f1d1d;
  border: 1px solid #f8717180;
  color: #fee2e2;
}
.krd-status-success-light {
  background: #d1fae5;
  border: 1px solid #6ee7b7;
  color: #065f46;
}
.krd-status-error-light {
  background: #fee2e2;
  border: 1px solid #fca5a5;
  color: #7f1d1d;
}
@keyframes krd-status-in {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─── Marquee ticker ─── */
.krd-marquee-track {
  display: flex;
  width: max-content;
  animation: krd-marquee 60s linear infinite;
}
.krd-marquee-text {
  color: hsl(var(--krd-hue) 70% 55% / .08);
}

/* ── Hero video embed (YouTube / Vimeo) ── */
.krd-hero-video-wrap {
  position: absolute;
  inset: -10%;
  width: 120%;
  height: 120%;
  overflow: hidden;
  pointer-events: none;
}
.krd-hero-video-embed {
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

@keyframes krd-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ─── Intro gallery (service pages) ─── */
[data-intro-title],
[data-intro-card] {
  opacity: 0;
  will-change: transform, opacity;
}
@media (min-width: 1024px) {
  #krd-intro-gallery > .relative {
    height: 100%;
  }
  #krd-intro-gallery > .relative > .grid {
    height: 100%;
    grid-template-rows: 1fr;
  }
}

/* ─── Oferta filter buttons ─── */
.krd-filter-btn {
  padding: 0.375rem 1rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  border-radius: 9999px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.45);
  background: transparent;
  cursor: pointer;
  transition: all 0.3s ease;
}
.krd-filter-btn:hover {
  border-color: rgba(0, 0, 0, 0.25);
  color: rgba(0, 0, 0, 0.75);
}
.krd-filter-btn.active {
  background: var(--krd-a6, #4f46e5);
  border-color: var(--krd-a6, #4f46e5);
  color: #fff;
}

/* ─── Product gallery slider ─── */
.krd-pg-main { position: relative; }
.krd-pg-main img { transition: opacity .3s ease; }

.krd-pg-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 50%;
  color: #1a1a2e;
  cursor: pointer;
  opacity: 0;
  transition: opacity .3s, background .2s, transform .3s;
}
.krd-pg-main:hover .krd-pg-arrow { opacity: 1; }
.krd-pg-arrow:hover { background: #fff; }
.krd-pg-arrow--left { left: 0.75rem; }
.krd-pg-arrow--right { right: 0.75rem; }

.krd-pg-zoom {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 3;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.8);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 50%;
  color: #1a1a2e;
  opacity: 0;
  transition: opacity .3s, background .2s;
}
.krd-pg-main:hover .krd-pg-zoom { opacity: 1; }
.krd-pg-zoom:hover { background: #fff; }

.krd-pg-thumbs {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.krd-pg-thumbs::-webkit-scrollbar { display: none; }

.krd-pg-thumb {
  flex: 0 0 3.5rem;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.5rem;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity .25s, border-color .25s;
  background: none;
  padding: 0;
}
.krd-pg-thumb:hover { opacity: 0.8; }
.krd-pg-thumb.active {
  opacity: 1;
  border-color: var(--krd-a6, #4f46e5);
}

/* ─── Oferta card ─── */
.krd-oferta-card {
  display: flex;
  flex-direction: column;
  aspect-ratio: 3 / 4;
  transition: transform 0.6s cubic-bezier(.23,1,.32,1),
              box-shadow 0.6s cubic-bezier(.23,1,.32,1);
}
.krd-oferta-card:hover {
  transform: translateY(-4px);
}
.krd-oferta-card.krd-hidden {
  display: none;
}

/* ── Photo variant ── */
.krd-oferta-card--photo {
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.krd-oferta-card--photo:hover {
  box-shadow: 0 16px 40px -8px rgba(0,0,0,.18);
}
.krd-oferta-card--photo .krd-oferta-card-info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
}
.krd-oferta-card--photo > div:first-child {
  position: absolute;
  inset: 0;
}

.krd-oferta-card--photo .krd-oferta-card-img {
  filter: saturate(0.85) brightness(0.92);
  transition: transform 0.7s cubic-bezier(.23,1,.32,1), filter 0.7s ease;
  will-change: transform;
}
.krd-oferta-card--photo:hover .krd-oferta-card-img {
  transform: scale(1.06);
  filter: saturate(1.15) brightness(1.02);
}
.krd-oferta-card--photo .krd-oferta-card-gradient {
  background: linear-gradient(to top,
    rgba(10,10,10,.95) 0%,
    rgba(10,10,10,.8) 20%,
    rgba(10,10,10,.4) 45%,
    rgba(10,10,10,.08) 70%,
    transparent 100%);
  transition: background 0.5s ease;
}
.krd-oferta-card--photo:hover .krd-oferta-card-gradient {
  background: linear-gradient(to top,
    rgba(10,10,10,.97) 0%,
    rgba(10,10,10,.85) 25%,
    rgba(10,10,10,.45) 50%,
    rgba(10,10,10,.12) 75%,
    transparent 100%);
}
.krd-oferta-card--photo .krd-oferta-card-title {
  color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,.6);
}
.krd-oferta-card--photo .krd-oferta-card-excerpt {
  color: rgba(255,255,255,.8);
  text-shadow: 0 1px 6px rgba(0,0,0,.5);
}
.krd-oferta-card--photo .krd-oferta-card-arrow { color: var(--krd-a5, #818cf8); }
.krd-oferta-card--photo .krd-oferta-tag {
  color: #fff;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.2);
  text-shadow: none;
}

/* ── Empty variant (no photo) ── */
.krd-oferta-card--empty {
  background: color-mix(in srgb, var(--krd-a6, #4f46e5) 4%, #f5f5fa);
  border: 1px solid color-mix(in srgb, var(--krd-a6, #4f46e5) 8%, transparent);
}
.krd-oferta-card--empty:hover {
  background: color-mix(in srgb, var(--krd-a6, #4f46e5) 7%, #f0f0f8);
  box-shadow: 0 8px 24px -6px rgba(0,0,0,.08);
}
.krd-oferta-card--empty .krd-oferta-card-info {
  margin-top: auto;
}
.krd-oferta-card--empty .krd-oferta-card-title { color: #1a1a2e; }
.krd-oferta-card--empty .krd-oferta-card-excerpt { color: rgba(26,26,46,.5); }
.krd-oferta-card--empty .krd-oferta-card-arrow { color: var(--krd-a6, #4f46e5); }
.krd-oferta-card--empty .krd-oferta-tag {
  color: var(--krd-a6, #4f46e5);
  background: color-mix(in srgb, var(--krd-a6, #4f46e5) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--krd-a6, #4f46e5) 18%, transparent);
}

/* ── Empty state icon ── */
.krd-oferta-empty-icon {
  color: var(--krd-a6, #4f46e5);
  opacity: 0.12;
  transition: opacity 0.4s ease;
}
.krd-oferta-card:hover .krd-oferta-empty-icon {
  opacity: 0.2;
}

/* ── Shared card elements ── */
.krd-oferta-card-title {
  transform: translateY(3px);
  transition: transform 0.5s cubic-bezier(.23,1,.32,1);
}
.krd-oferta-card:hover .krd-oferta-card-title {
  transform: translateY(0);
}

.krd-oferta-card-excerpt {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(.23,1,.32,1),
              opacity 0.4s ease 0.1s;
}
.krd-oferta-card:hover .krd-oferta-card-excerpt {
  max-height: 3rem;
  opacity: 1;
}

.krd-oferta-card-arrow {
  opacity: 0;
  transform: translateX(-0.5rem);
  transition: opacity 0.35s ease 0.15s,
              transform 0.45s cubic-bezier(.23,1,.32,1) 0.1s;
}
.krd-oferta-card:hover .krd-oferta-card-arrow {
  opacity: 1;
  transform: translateX(0);
}

/* ─── Oferta category tag ─── */
.krd-oferta-tag {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1;
  border-radius: 9999px;
  white-space: nowrap;
}

/* ─── Spec list on product page ─── */
.krd-spec-list .krd-spec-row + .krd-spec-row {
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.krd-spec-list dd {
  color: rgba(0, 0, 0, 0.65);
  font-size: 0.875rem;
  line-height: 1.7;
}
.krd-spec-list dd p {
  margin: 0;
}
.krd-spec-list dd ul,
.krd-spec-list dd ol {
  margin: 0.375rem 0 0 0;
  padding-left: 1.25rem;
}
.krd-spec-list dd ul { list-style-type: disc; }
.krd-spec-list dd ol { list-style-type: decimal; }
.krd-spec-list dd li {
  margin: 0;
  padding: 0.1875rem 0;
  color: rgba(0, 0, 0, 0.6);
  font-size: 0.875rem;
  line-height: 1.6;
}
.krd-spec-list dd li::marker {
  color: var(--krd-a6, #4f46e5);
}
.krd-spec-list dd strong,
.krd-spec-list dd b {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 600;
}

/* ─── 3D tilt on cards ─── */
.hscroll-card,
.krd-card-link {
  transition: transform .45s cubic-bezier(.23,1,.32,1);
  will-change: transform;
}

/* ─── Rank Math Breadcrumbs ─── */
.krd-breadcrumbs { margin-bottom: 2rem; }
.krd-breadcrumbs .rank-math-breadcrumb p {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  font-size: .875rem;
  line-height: 1.25rem;
}
.krd-breadcrumbs--dark .rank-math-breadcrumb a {
  color: rgba(255,255,255,.6);
  transition: color .2s;
}
.krd-breadcrumbs--dark .rank-math-breadcrumb a:hover { color: #fff; }
.krd-breadcrumbs--dark .rank-math-breadcrumb .separator { color: rgba(255,255,255,.3); }
.krd-breadcrumbs--dark .rank-math-breadcrumb .last { color: #fff; font-weight: 500; }
.krd-breadcrumbs--light .rank-math-breadcrumb a {
  color: rgba(26,26,46,.5);
  transition: color .2s;
}
.krd-breadcrumbs--light .rank-math-breadcrumb a:hover { color: rgba(26,26,46,.8); }
.krd-breadcrumbs--light .rank-math-breadcrumb .separator { color: rgba(26,26,46,.25); }
.krd-breadcrumbs--light .rank-math-breadcrumb .last { color: rgba(26,26,46,.8); font-weight: 500; }

/* ─── Touch devices / reduced motion: restore default cursor ─── */
@media (hover: none) {
  body.cursor-none { cursor: auto !important; }
  body.cursor-none * { cursor: auto !important; }
}

@media (prefers-reduced-motion: reduce) {
  body.cursor-none { cursor: auto !important; }
  body.cursor-none * { cursor: auto !important; }
  .krd-cursor,
  .krd-cursor-follower {
    display: none !important;
  }
  [data-reveal],
  [data-reveal-child] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
  .krd-marquee-track {
    animation: none !important;
  }
}
