/* ============================================================
   ČAROVNIK MARE ČARE — theatrical dark theme
   Inspired by modern magic-show / entertainment-brand sites:
   midnight base, neon-purple/gold/pink accents, photography-led,
   strong typography, subtle parallax, animated decorations.
   ============================================================ */

/* fonts moved to <link> in head — see cv-wow.php */

:root{
  --cv-bg:#08051a;
  --cv-bg-2:#0f0826;
  --cv-bg-3:#1a0d3d;
  --cv-purple:#7a3fb8;
  --cv-purple-deep:#2D1B4E;
  --cv-gold:#FFD93D;
  --cv-gold-warm:#FFB627;
  --cv-pink:#FF2E93;
  --cv-cyan:#00D9FF;
  --cv-text:#f0e8ff;
  --cv-text-mute:#a094c4;
  --cv-line:rgba(255,255,255,.08);
  --cv-glow-purple:0 0 60px -10px rgba(122,63,184,.6);
  --cv-glow-gold:0 0 40px -8px rgba(255,217,61,.6);
  --cv-glow-pink:0 0 50px -10px rgba(255,46,147,.5);
  --cv-radius:20px;
  --cv-radius-lg:32px;
}

/* ===== 1. Base / typography ===== */
html { background-color:#08051a !important; }
body{
  font-family:'Inter', system-ui, sans-serif !important;
  color:var(--cv-text) !important;
  letter-spacing:-0.005em;
  background-color:#08051a !important;
  background-image:
    radial-gradient(ellipse 100% 80% at 50% 0%, rgba(122,63,184,.22) 0%, transparent 60%),
    radial-gradient(ellipse 80% 60% at 100% 80%, rgba(255,46,147,.14) 0%, transparent 70%),
    radial-gradient(ellipse 80% 60% at 0% 50%, rgba(0,217,255,.10) 0%, transparent 70%) !important;
  background-attachment:fixed !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  position:relative;
}
body::before{
  /* Tiny scattered stars across the entire page */
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(1px 1px at 8% 12%, rgba(255,255,255,.6), transparent),
    radial-gradient(1px 1px at 22% 38%, rgba(255,255,255,.5), transparent),
    radial-gradient(1.5px 1.5px at 41% 7%, rgba(255,217,61,.7), transparent),
    radial-gradient(1px 1px at 56% 24%, rgba(255,255,255,.55), transparent),
    radial-gradient(1px 1px at 73% 64%, rgba(0,217,255,.7), transparent),
    radial-gradient(1.5px 1.5px at 89% 18%, rgba(255,255,255,.5), transparent),
    radial-gradient(1px 1px at 12% 80%, rgba(255,46,147,.5), transparent),
    radial-gradient(1px 1px at 60% 90%, rgba(255,255,255,.5), transparent);
  background-size:1200px 1200px;
  opacity:.55;
  animation:cv-stars 90s linear infinite;
}
@keyframes cv-stars{ to{ background-position:1200px 1200px; } }

h1, h2, h3, h4, .wp-block-heading{
  font-family:'Fredoka', 'Inter', sans-serif !important;
  color:var(--cv-text) !important;
  letter-spacing:-0.02em !important;
  line-height:1.05 !important;
}
.entry-content p{
  color:var(--cv-text-mute) !important;
  line-height:1.7 !important;
  font-size:17px !important;
}
.entry-content strong{ color:var(--cv-text) !important; }

a{ color:var(--cv-gold); }
a:hover{ color:var(--cv-pink); }

/* ===== 2. Kill default Kadence wrappers / page hero ===== */
.entry-hero, .page-hero-section, .entry-hero-layout-standard, .entry-hero-layout-above {
  display:none !important;
}
.site, #wrapper, .site-content, .entry-content,
.entry-content-wrap, .content-wrap{
  background:transparent !important;
}
.site-content{ padding-top:0 !important; }

/* ===== 3. Sticky glass navbar ===== */
.site-main-header-wrap{
  background:rgba(8,5,26,.6) !important;
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid var(--cv-line) !important;
  transition:background .35s ease, padding .35s ease;
}
body.has-cv-scrolled .site-main-header-wrap{
  background:rgba(8,5,26,.86) !important;
  box-shadow:0 8px 28px -10px rgba(0,0,0,.5);
}
.site-main-header-wrap nav a,
.main-navigation a{
  font-family:'Inter', sans-serif !important;
  font-weight:500 !important; font-size:14px !important;
  color:var(--cv-text) !important;
  letter-spacing:.01em;
}
.site-main-header-wrap nav a:hover{ color:var(--cv-gold) !important; }
.site-main-header-wrap nav a::after{
  content:"";position:absolute;left:50%;right:50%;bottom:-6px;height:2px;
  background:linear-gradient(90deg,var(--cv-pink),var(--cv-gold));
  border-radius:2px;
  transition:left .3s, right .3s;
}
.site-main-header-wrap nav a:hover::after,
.site-main-header-wrap nav .cv-nav-active::after{ left:0;right:0; }


.site-branding img.custom-logo{
  max-height:54px !important;width:auto !important;
  filter:drop-shadow(0 4px 16px rgba(122,63,184,.4));
  transition:max-height .3s, filter .3s;
}
body.has-cv-scrolled .site-branding img.custom-logo{
  max-height:42px !important;
}
.site-branding .site-title,
.site-branding .site-description{ display:none !important; }

/* ===== 4. HERO ===== */
.cv-hero, .cv-hero.wp-block-cover{
  min-height:100vh !important;min-height:100svh !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  margin-top:-1px;background-color:var(--cv-bg) !important;
  position:relative;overflow:hidden;
}
.cv-hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(ellipse 70% 50% at 25% 30%, rgba(122,63,184,.55) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 75% 70%, rgba(255,46,147,.40) 0%, transparent 65%),
    radial-gradient(ellipse 50% 40% at 50% 50%, rgba(0,217,255,.25) 0%, transparent 70%),
    linear-gradient(180deg,rgba(8,5,26,.75) 0%, rgba(8,5,26,.55) 50%, rgba(8,5,26,.85) 100%);
  background-size:200% 200%;
  animation:cv-grad 22s ease-in-out infinite;
}
@keyframes cv-grad{
  0%,100%{ background-position:0% 0%, 100% 100%, 50% 50%, 0% 0%; }
  50%{ background-position:100% 50%, 0% 50%, 80% 20%, 100% 100%; }
}
.cv-hero img.wp-block-cover__image-background{
  opacity:.45 !important;
  transform:scale(1.06);
  animation:cv-hero-zoom 25s ease-in-out infinite alternate;
}
@keyframes cv-hero-zoom{ to{ transform:scale(1.16); } }
.cv-hero .wp-block-cover__inner-container{
  position:relative;z-index:5;width:100%;text-align:center;
  padding:0 24px;
}
/* Spotlight beams */
.cv-hero::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    conic-gradient(from 220deg at 50% 110%,
      transparent 0deg,
      rgba(255,217,61,.10) 12deg,
      transparent 24deg,
      transparent 320deg,
      rgba(255,46,147,.10) 332deg,
      transparent 348deg);
  mix-blend-mode:screen;
}

.cv-hero-title{
  font-family:'Sigmar', 'Fredoka', sans-serif !important;
  font-size:clamp(64px, 11vw, 156px) !important;
  letter-spacing:-0.04em !important;
  text-transform:none !important;
  line-height:.92 !important;
  background:linear-gradient(135deg, #FFD93D 0%, #FF7E3F 50%, #FF2E93 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent !important;
  text-shadow:none !important;
  animation:cv-shine 6s linear infinite;
  filter:drop-shadow(0 8px 60px rgba(122,63,184,.5));
}
@keyframes cv-shine{ 0%{background-position:0% center} 100%{background-position:300% center} }
.cv-hero-tag{
  font-family:'Inter', sans-serif !important;
  font-weight:300 !important;
  font-size:clamp(18px, 1.7vw, 24px) !important;
  letter-spacing:.06em !important;
  color:rgba(255,255,255,.85) !important;
  margin-top:24px !important;text-transform:uppercase;
}


/* ===== 5. Buttons ===== */
.wp-block-button .wp-block-button__link{
  font-family:'Fredoka', sans-serif !important;
  font-size:15px !important;
  font-weight:600 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  padding:18px 36px !important;
  border-radius:99px !important;
  position:relative;overflow:hidden;
  transition:transform .25s ease, box-shadow .3s ease, background .3s ease;
}
.cv-cta .wp-block-button__link{
  background:linear-gradient(135deg, var(--cv-gold) 0%, var(--cv-gold-warm) 100%) !important;
  color:#1a0a30 !important;
  box-shadow:0 12px 40px -8px rgba(255,217,61,.6), inset 0 1px 0 rgba(255,255,255,.5);
}
.cv-cta .wp-block-button__link:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 20px 50px -8px rgba(255,217,61,.8), inset 0 1px 0 rgba(255,255,255,.5);
}
.cv-cta-outline .wp-block-button__link{
  background:transparent !important;
  border:2px solid rgba(255,255,255,.3) !important;
  color:#fff !important;
  backdrop-filter:blur(12px);
}
.cv-cta-outline .wp-block-button__link:hover{
  background:rgba(255,255,255,.08) !important;
  border-color:var(--cv-gold) !important; color:var(--cv-gold) !important;
}
/* Shimmer sweep */
.cv-cta .wp-block-button__link::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .8s ease;
}
.cv-cta .wp-block-button__link:hover::before{ transform:translateX(120%); }

/* ===== 6. Stats strip ===== */
.cv-stats{
  position:relative;z-index:2;
  padding:80px 24px 40px;
  background:linear-gradient(180deg, transparent 0%, rgba(122,63,184,.08) 100%);
}
.cv-stats__grid{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
}
.cv-stat{
  background:linear-gradient(160deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.01) 100%);
  border:1px solid var(--cv-line);
  border-radius:var(--cv-radius);
  padding:32px 24px;text-align:center;
  position:relative;overflow:hidden;
  transition:transform .3s, border-color .3s, box-shadow .3s;
}
.cv-stat::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at top, rgba(255,217,61,.12) 0%, transparent 50%);
  opacity:0;transition:opacity .3s;
}
.cv-stat:hover{
  transform:translateY(-4px);
  border-color:rgba(255,217,61,.3);
  box-shadow:0 20px 40px -10px rgba(122,63,184,.3);
}
.cv-stat:hover::before{ opacity:1; }
.cv-stat__num{
  font-family:'Sigmar', sans-serif;
  font-size:clamp(40px, 5vw, 64px);
  font-weight:400;line-height:1;
  background:linear-gradient(135deg, var(--cv-gold) 0%, var(--cv-pink) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  margin-bottom:8px;
}
.cv-stat__lbl{
  font-family:'Inter', sans-serif;
  font-size:13px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--cv-text-mute);
}
@media (max-width:780px){
  .cv-stats__grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  
  .cv-stat{ padding:22px 14px; }
}

/* ===== 7. Marquee ===== */
.cv-marquee{
  margin:0;padding:36px 0;
  background:linear-gradient(90deg, var(--cv-purple-deep) 0%, var(--cv-bg-3) 100%);
  border-top:1px solid var(--cv-line);
  border-bottom:1px solid var(--cv-line);
  overflow:hidden;position:relative;
}
.cv-marquee__track{
  display:flex;gap:80px;
  animation:cv-marquee-roll-seamless 20s linear infinite;
  white-space:nowrap;
}
.cv-marquee span{
  font-family:'Sigmar', sans-serif;
  font-size:clamp(28px, 3vw, 44px);
  letter-spacing:.04em;
  background:linear-gradient(90deg, var(--cv-gold), var(--cv-pink), var(--cv-cyan), var(--cv-gold));
  background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:cv-shine 8s linear infinite;
  flex-shrink:0;
}
@keyframes cv-marquee-roll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ===== 8. Sections (override gutenberg per-section bg) ===== */
.cv-section,
.cv-section.has-background,
section.cv-section{
  background:transparent !important;
  background-color:transparent !important;
  padding:120px 24px !important;
  position:relative;
  scroll-margin-top:90px;
}
.cv-section h2.wp-block-heading{
  font-family:'Sigmar', 'Fredoka', sans-serif !important;
  font-size:clamp(44px, 6vw, 88px) !important;
  font-weight:400 !important;
  text-transform:none !important;
  letter-spacing:-0.03em !important;
  line-height:1 !important;
  background:linear-gradient(120deg, #fff 0%, var(--cv-gold) 50%, var(--cv-pink) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent !important;
  display:inline-block;
  margin-bottom:8px !important;
  filter:drop-shadow(0 4px 30px rgba(122,63,184,.4));
}
.cv-section h2.wp-block-heading + p.has-text-align-center,
.cv-section .wp-block-heading + .wp-block-paragraph{
  font-size:18px !important;
  color:var(--cv-text-mute) !important;
  max-width:680px;margin:18px auto 64px !important;line-height:1.7;
}
/* Section subtle separator */
.cv-section + .cv-section::before{
  content:"✦";position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  font-size:18px;color:var(--cv-gold);opacity:.6;
}

/* ===== 9. About me — asymmetric portrait ===== */
.cv-portrait{ position:relative; }
.cv-portrait img{
  border-radius:var(--cv-radius-lg) !important;
  box-shadow:0 30px 80px -20px rgba(122,63,184,.5),
             0 0 0 1px rgba(255,255,255,.05) inset;
  transform:rotate(-2deg);
  transition:transform .5s cubic-bezier(.2,.7,.3,1.2);
}
.cv-portrait::before{
  content:"";position:absolute;inset:-20px -20px 20px 20px;
  background:linear-gradient(135deg, var(--cv-gold), var(--cv-pink), var(--cv-cyan));
  border-radius:var(--cv-radius-lg);z-index:-1;
  opacity:.35;filter:blur(20px);
  transform:rotate(2deg);
  animation:cv-spin 18s linear infinite;
}
@keyframes cv-spin{ to{ transform:rotate(362deg); } }
.cv-portrait:hover img{ transform:rotate(0deg) scale(1.02); }

/* ===== 10. Pricing cards — dark glass with neon ===== */
.cv-pricing{ gap:24px; margin-top:48px; }
.cv-card{
  background:linear-gradient(160deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 100%) !important;
  border:1px solid var(--cv-line) !important;
  border-radius:var(--cv-radius) !important;
  padding:44px 32px !important;
  position:relative;overflow:hidden;
  backdrop-filter:blur(10px);
  box-shadow:0 20px 50px -20px rgba(0,0,0,.5);
  transition:transform .4s cubic-bezier(.2,.7,.3,1.2), box-shadow .4s, border-color .3s;
}
.cv-card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(135deg, transparent 0%, var(--cv-gold) 50%, transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .4s;pointer-events:none;
}
.cv-card:hover{
  transform:translateY(-10px);
  border-color:rgba(255,217,61,.2) !important;
  box-shadow:0 30px 60px -20px rgba(122,63,184,.4),
             0 0 60px -20px rgba(255,217,61,.3);
}
.cv-card:hover::before{ opacity:1; }
.cv-card h3{
  font-size:20px !important;font-weight:600 !important;
  letter-spacing:0;margin-bottom:8px !important;
  color:var(--cv-text) !important;
}
.cv-card p{
  font-size:14px !important;
  color:var(--cv-text-mute) !important;
}
.cv-card h4{
  font-family:'Sigmar', sans-serif !important;
  font-size:64px !important;font-weight:400 !important;
  margin:24px 0 8px !important;line-height:1;
  background:linear-gradient(135deg, var(--cv-gold) 0%, var(--cv-pink) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent !important;
}

/* Featured card — pulsing glow ring */
.cv-card-feature{
  background:linear-gradient(160deg, rgba(122,63,184,.5) 0%, rgba(255,46,147,.25) 100%) !important;
  border:1px solid rgba(255,217,61,.3) !important;
  transform:translateY(-8px);
  box-shadow:0 30px 80px -20px rgba(255,46,147,.4),
             0 0 0 1px rgba(255,217,61,.1) inset;
}
.cv-card-feature::after{
  content:"";position:absolute;inset:-2px;border-radius:inherit;z-index:-1;
  background:conic-gradient(from 0deg, var(--cv-gold), var(--cv-pink), var(--cv-cyan), var(--cv-purple), var(--cv-gold));
  filter:blur(16px);opacity:.6;
  animation:cv-spin 10s linear infinite;
}

.cv-card-feature p[style*="text-transform:uppercase"]{
  color:var(--cv-gold) !important;
  font-weight:700 !important;letter-spacing:.18em !important;
  text-shadow:0 0 20px rgba(255,217,61,.5);
}

/* ===== 11. Gallery — bento with hover lift ===== */




.cv-gallery img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.3,1.2), filter .4s;
  filter:brightness(.92) saturate(1.1);
}

@media(max-width:780px){
  .cv-gallery{ grid-template-columns:repeat(2,1fr); }
  .cv-gallery .wp-block-image:nth-child(1),
  .cv-gallery .wp-block-image:nth-child(4){ grid-row:auto; grid-column:auto; }
}

/* ===== 12. Predstave (larger shows) ===== */
.cv-section .wp-block-image img{
  border-radius:var(--cv-radius-lg);
  box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
  border:1px solid var(--cv-line);
}

/* ===== 13. December — keep as the existing dark section, refined ===== */
.cv-section.cv-section-dark,
section.cv-section.cv-section-dark.has-background{
  background:linear-gradient(160deg, #0d0830 0%, #1f0d3d 50%, #0d0830 100%) !important;
  background-color:#0d0830 !important;
  color:var(--cv-text) !important;
  border-radius:var(--cv-radius-lg);
  margin:80px 24px !important;
  padding:120px 56px !important;
  border:1px solid rgba(0,217,255,.15);
  position:relative;overflow:hidden;
}
.cv-section.cv-section-dark::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 20% 30%, #fff 100%, transparent),
    radial-gradient(1.5px 1.5px at 60% 70%, rgba(0,217,255,.8) 100%, transparent),
    radial-gradient(2px 2px at 80% 20%, #fff 100%, transparent),
    radial-gradient(1px 1px at 30% 80%, #fff 100%, transparent);
  background-size:300px 300px,250px 250px,200px 200px,150px 150px;
  animation:cv-snow 30s linear infinite;
  opacity:.6;
}
@keyframes cv-snow{
  0%{ background-position:0 0,0 0,0 0,0 0; }
  100%{ background-position:0 600px, -100px 500px, 80px 700px, -50px 400px; }
}
.cv-section.cv-section-dark p,
.cv-section.cv-section-dark li{ color:rgba(240,232,255,.85) !important; }
.cv-section.cv-section-dark h3{
  font-size:24px !important;color:#fff !important;
}
.cv-section.cv-section-dark a{ color:var(--cv-gold) !important; }

/* ===== 14. Contact ===== */
.cv-contact-card{
  background:linear-gradient(160deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 100%) !important;
  border:1px solid var(--cv-line) !important;
  border-radius:var(--cv-radius) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:48px 36px !important;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
}
.cv-contact-card h3{
  font-size:12px !important;font-weight:700 !important;
  text-transform:uppercase;letter-spacing:.18em !important;
  color:var(--cv-gold) !important;
  margin:24px 0 8px !important;
}
.cv-contact-card p[style*="font-size:22px"]{
  font-size:32px !important;font-weight:700 !important;
  color:#fff !important;font-family:'Fredoka', sans-serif !important;
}
.cv-contact-card a{
  color:var(--cv-text) !important;
  border-bottom:1px solid rgba(255,255,255,.2);
  transition:color .25s, border-color .25s;
}
.cv-contact-card a:hover{
  color:var(--cv-gold) !important;
  border-color:var(--cv-gold);
}

/* CF7 form fields on dark */
.cv-contact-card .wpcf7 input[type="text"],
.cv-contact-card .wpcf7 input[type="email"],
.cv-contact-card .wpcf7 input[type="tel"],
.cv-contact-card .wpcf7 input[type="date"],
.cv-contact-card .wpcf7 textarea{
  background:rgba(255,255,255,.04) !important;
  border:1px solid var(--cv-line) !important;
  border-radius:12px !important;
  padding:14px 16px !important;
  color:var(--cv-text) !important;
  font-family:'Inter', sans-serif !important;font-size:15px !important;
  transition:border-color .25s, background .25s, box-shadow .25s;
}
.cv-contact-card .wpcf7 input::placeholder,
.cv-contact-card .wpcf7 textarea::placeholder{
  color:rgba(255,255,255,.3) !important;
}
.cv-contact-card .wpcf7 input:focus,
.cv-contact-card .wpcf7 textarea:focus{
  border-color:var(--cv-gold) !important;
  background:rgba(255,255,255,.06) !important;
  box-shadow:0 0 0 4px rgba(255,217,61,.15) !important;
  outline:none !important;
}
.cv-contact-card .wpcf7 label{
  font-family:'Inter', sans-serif;font-weight:500;
  font-size:13px;color:var(--cv-text-mute) !important;
  text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:18px !important;display:block !important;
}
.cv-contact-card .wpcf7 [type="submit"]{
  background:linear-gradient(135deg, var(--cv-gold) 0%, var(--cv-gold-warm) 100%) !important;
  color:#1a0a30 !important;
  border:0 !important;border-radius:99px !important;
  padding:16px 40px !important;
  font-family:'Fredoka', sans-serif !important;
  font-weight:700 !important;font-size:14px !important;
  letter-spacing:.1em !important;text-transform:uppercase !important;
  box-shadow:0 12px 32px -8px rgba(255,217,61,.5) !important;
  cursor:pointer;transition:transform .2s, box-shadow .25s !important;
}
.cv-contact-card .wpcf7 [type="submit"]:hover{
  transform:translateY(-3px) scale(1.04);
  box-shadow:0 20px 40px -8px rgba(255,217,61,.7) !important;
}

/* ===== 15. Side rail dots ===== */

.cv-rail__dot{
  width:8px;height:8px;
  border:1.5px solid rgba(255,255,255,.3);
  background:transparent;
  transition:all .25s;
}
.cv-rail__dot:hover{
  background:rgba(255,217,61,.3);
  border-color:var(--cv-gold);
}
.cv-rail__dot.is-active{
  background:var(--cv-gold);
  border-color:var(--cv-gold);
  box-shadow:0 0 0 6px rgba(255,217,61,.15),
             0 0 20px rgba(255,217,61,.5);
  transform:scale(1.4);
}

/* ===== 16. Sparkles — emoji style brought back ===== */
.cv-sparkle{
  position:fixed;width:auto;height:auto;
  font-size:18px !important;line-height:1;
  pointer-events:none;z-index:9999;
  background:none !important;border-radius:0 !important;filter:none !important;
  animation:cv-sparkle-fade 800ms ease-out forwards;
  user-select:none;
}
.cv-sparkle::before, .cv-sparkle::after{ display:none !important; }
@keyframes cv-sparkle-fade{
  0%{ opacity:1;transform:translate(-50%,-50%) scale(.4) rotate(0deg); }
  60%{ opacity:.95;transform:translate(-50%,-50%) scale(1.3) rotate(180deg); }
  100%{ opacity:0;transform:translate(-50%,-50%) scale(0) rotate(360deg); }
}

/* ===== 17. Confetti ===== */
.cv-confetti{
  position:fixed;width:10px;height:14px;
  pointer-events:none;z-index:9999;border-radius:2px;
  box-shadow:0 0 8px currentColor;
  animation:cv-confetti-fall 1800ms cubic-bezier(.2,.7,.3,1.2) forwards;
}
@keyframes cv-confetti-fall{
  0%{ opacity:1;transform:translate(0,0) rotate(0deg); }
  100%{ opacity:0;transform:translate(var(--cv-x,0),100vh) rotate(var(--cv-r,720deg)); }
}

/* ===== 18. Footer ===== */
.site-footer, .site-footer-row-container-inner{
  background:rgba(8,5,26,.8) !important;
  border-top:1px solid var(--cv-line);
  color:var(--cv-text-mute);
}


/* ===== 19. Reveal animations ===== */

.cv-reveal.is-in{ opacity:1;transform:translateY(0); }
.cv-reveal-stagger > *{
  opacity:0;transform:translateY(30px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1.2);
}
.cv-reveal-stagger.is-in > *{ opacity:1;transform:translateY(0); }
.cv-reveal-stagger.is-in > *:nth-child(1){transition-delay:.05s}
.cv-reveal-stagger.is-in > *:nth-child(2){transition-delay:.18s}
.cv-reveal-stagger.is-in > *:nth-child(3){transition-delay:.31s}
.cv-reveal-stagger.is-in > *:nth-child(4){transition-delay:.44s}

/* ===== 20. Tilt cards on pricing ===== */
.cv-pricing .wp-block-column{ perspective:1000px; }
.cv-card.cv-tilt{
  transform:perspective(1000px)
            rotateX(var(--cv-rx,0deg))
            rotateY(var(--cv-ry,0deg))
            translateZ(0);
}

/* ===== 21. Magic-wand cursor (mirrored: tip top-left, handle bottom-right) ===== */
:root{ --cv-wand-url:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22cvg%22%20x%3D%22-50%25%22%20y%3D%22-50%25%22%20width%3D%22200%25%22%20height%3D%22200%25%22%3E%3CfeGaussianBlur%20stdDeviation%3D%221.2%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%226%22%20fill%3D%22%23FFD93D%22%20opacity%3D%220.5%22%20filter%3D%22url%28%23cvg%29%22%2F%3E%3Cline%20x1%3D%2228%22%20y1%3D%2228%22%20x2%3D%2211%22%20y2%3D%2211%22%20stroke%3D%22%231a0a30%22%20stroke-width%3D%223.4%22%20stroke-linecap%3D%22round%22%2F%3E%3Cline%20x1%3D%2228%22%20y1%3D%2228%22%20x2%3D%2211%22%20y2%3D%2211%22%20stroke%3D%22%237a3fb8%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%2F%3E%3Cline%20x1%3D%2226%22%20y1%3D%2226%22%20x2%3D%2223%22%20y2%3D%2223%22%20stroke%3D%22%23FFD93D%22%20stroke-width%3D%221%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M%208%202%20L%209.6%206.4%20L%2014%208%20L%209.6%209.6%20L%208%2014%20L%206.4%209.6%20L%202%208%20L%206.4%206.4%20Z%22%20fill%3D%22%23FFD93D%22%20stroke%3D%22%235B2A86%22%20stroke-width%3D%220.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%221.4%22%20fill%3D%22%23fff8d6%22%2F%3E%3C%2Fsvg%3E"); --cv-wand-pointer-url:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2236%22%20height%3D%2236%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22cvg2%22%20x%3D%22-50%25%22%20y%3D%22-50%25%22%20width%3D%22200%25%22%20height%3D%22200%25%22%3E%3CfeGaussianBlur%20stdDeviation%3D%221.6%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%229%22%20r%3D%228%22%20fill%3D%22%23FFD93D%22%20opacity%3D%220.6%22%20filter%3D%22url%28%23cvg2%29%22%2F%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2213%22%20y2%3D%2213%22%20stroke%3D%22%231a0a30%22%20stroke-width%3D%223.8%22%20stroke-linecap%3D%22round%22%2F%3E%3Cline%20x1%3D%2232%22%20y1%3D%2232%22%20x2%3D%2213%22%20y2%3D%2213%22%20stroke%3D%22%239c5bd9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M%2010%202%20L%2012%207%20L%2017%209%20L%2012%2011%20L%2010%2016%20L%208%2011%20L%203%209%20L%208%207%20Z%22%20fill%3D%22%23FFD93D%22%20stroke%3D%22%235B2A86%22%20stroke-width%3D%220.7%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%229%22%20r%3D%222%22%20fill%3D%22%23fff8d6%22%2F%3E%3C%2Fsvg%3E"); }
html, body { cursor: var(--cv-wand-url) 8 8, auto; }
a, button, [role="button"], input[type="submit"], input[type="button"],
.wp-block-button__link, .cv-rail__dot, summary, label, select,
.wp-block-image img, .cv-card, .cv-gallery img,
.menu-item > a, .navigation a {
  cursor: var(--cv-wand-pointer-url) 10 9, pointer !important;
}
input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
input[type="number"], input[type="url"], input[type="password"],
input[type="date"], textarea {
  cursor: text !important;
}
@media (hover: none) {
  html, body, a, button { cursor:auto !important; }
}

/* ===== 22. Mobile tightening ===== */
@media (max-width:780px){
  .cv-section{ padding:72px 18px !important; }
  .cv-section h2.wp-block-heading{ font-size:42px !important; }
  .cv-card-feature{ transform:none !important; }
  .cv-section.cv-section-dark{ margin:48px 12px !important; padding:64px 24px !important; }
  .cv-pricing{ gap:14px; }
  .cv-stats{ padding:48px 16px 24px; }
}

/* === FINAL bg overrides — beat Kadence boxed/content wrappers === */
.site, #wrapper, #wrapper > *, .site-content, .site-content > *,
.content-wrap, .content-bg, .entry-content-wrap, .entry-content, .entry-content > *,
.single-content, article.post, article.page, .hfeed > *,
.content-style-boxed .site-content .content-bg,
.content-style-boxed .content-wrap.content-bg{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
}
/* Kadence post container box border/padding inherited from boxed style */
.content-style-boxed .content-wrap{ padding:0 !important;border:0 !important; }

/* === FIX BATCH 2026-04-28-evening ============================================ */

/* 1) HERO PUNCH — image more visible, less heavy dim */
.cv-hero img.wp-block-cover__image-background{
  opacity: .78 !important;
  mix-blend-mode: normal !important;
  transform: scale(1.06);
  filter: saturate(1.15) contrast(1.05);
}
/* Replace the heavy multi-radial overlay with a cleaner cinematic vignette */
.cv-hero::before{
  background:
    radial-gradient(ellipse 60% 45% at 25% 25%, rgba(122,63,184,.40) 0%, transparent 70%),
    radial-gradient(ellipse 60% 45% at 75% 75%, rgba(255,46,147,.30) 0%, transparent 70%),
    /* bottom darkening for text legibility */
    linear-gradient(180deg, rgba(8,5,26,.20) 0%, rgba(8,5,26,.10) 35%, rgba(8,5,26,.65) 80%, rgba(8,5,26,.85) 100%) !important;
}
/* Stronger drop shadow on the title so it pops on a brighter image */
.cv-hero-title{
  filter: drop-shadow(0 6px 30px rgba(0,0,0,.65)) drop-shadow(0 0 80px rgba(122,63,184,.4)) !important;
}
.cv-hero-tag{
  text-shadow: 0 2px 12px rgba(0,0,0,.7) !important;
  color: rgba(255,255,255,.95) !important;
}
.cv-hero .wp-block-buttons{ filter: drop-shadow(0 8px 24px rgba(0,0,0,.5)); }

/* 2) STICKY NAVBAR — properly dark, beat Kadence's #masthead{background:#fff} */
#masthead,
.site-main-header-wrap,
.site-main-header-wrap.kadence-sticky-header,
.site-main-header-wrap.kadence-sticky-header.item-is-fixed,
.site-main-header-wrap.kadence-sticky-header.item-is-fixed:not(.item-at-start),
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{
  background: rgba(8,5,26,.55) !important;
  backdrop-filter: saturate(180%) blur(18px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(18px) !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
}
body.has-cv-scrolled #masthead,
body.has-cv-scrolled .site-main-header-wrap,
body.has-cv-scrolled .site-main-header-wrap.kadence-sticky-header.item-is-fixed,
body.has-cv-scrolled #masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{
  background: rgba(8,5,26,.92) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 8px 28px -10px rgba(0,0,0,.65) !important;
}
/* Force nav link colour visible on dark — beat Kadence per-state colours */
.site-main-header-wrap a,
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a{
  color: #f0e8ff !important;
}
.site-main-header-wrap a:hover,
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover{
  color: #FFD93D !important;
}
.site-main-header-wrap nav .cv-nav-active{
  color: #FFD93D !important;
}

/* 3) GALLERY — proper bento grid that actually works */
.cv-gallery{
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  grid-auto-rows: 200px !important;
  gap: 18px !important;
  margin-top: 56px !important;
}
.cv-gallery .wp-block-image{
  margin: 0 !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 22px 50px -18px rgba(0,0,0,.7);
  position: relative;
}
.cv-gallery .wp-block-image img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 22px !important;
  transition: transform .55s cubic-bezier(.2,.7,.3,1.2), filter .35s;
  filter: brightness(.92) saturate(1.15);
}
.cv-gallery .wp-block-image:hover img{
  transform: scale(1.06);
  filter: brightness(1) saturate(1.25);
}
/* Bento layout: image 1 = big square (2x2), images 2 & 3 = small top-right, image 4 = wide bottom-right */
.cv-gallery .wp-block-image:nth-child(1){
  grid-column: span 2 !important;
  grid-row: span 2 !important;
}
.cv-gallery .wp-block-image:nth-child(2),
.cv-gallery .wp-block-image:nth-child(3){
  grid-column: span 1 !important;
  grid-row: span 1 !important;
}
.cv-gallery .wp-block-image:nth-child(4){
  grid-column: span 2 !important;
  grid-row: span 1 !important;
}
@media (max-width: 780px){
  .cv-gallery{
    grid-template-columns: repeat(2, 1fr) !important;
    grid-auto-rows: 160px !important;
  }
  .cv-gallery .wp-block-image:nth-child(1),
  .cv-gallery .wp-block-image:nth-child(4){
    grid-column: span 2 !important;
    grid-row: span 1 !important;
  }
}

/* 4) CONTACT FORM — pair fields side-by-side, polish radio + select on dark */
.cv-form-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
@media (max-width: 600px){
  .cv-form-row{ grid-template-columns: 1fr; }
}
.cv-contact-card .wpcf7 select{
  width: 100%;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  color: #f0e8ff !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 14px 8px !important;
  padding-right: 44px !important;
  cursor: pointer;
}
.cv-contact-card .wpcf7 select option{
  background: #08051a;
  color: #f0e8ff;
}
.cv-contact-card .wpcf7 .wpcf7-list-item{
  display: inline-flex;
  align-items: center;
  margin: 8px 16px 0 0 !important;
}
.cv-contact-card .wpcf7 .wpcf7-list-item-label{
  color: #f0e8ff;
  font-size: 14px;
  margin-left: 6px;
}
.cv-contact-card .wpcf7 input[type="radio"],
.cv-contact-card .wpcf7 input[type="checkbox"]{
  appearance: none;
  width: 18px; height: 18px;
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  cursor: pointer;
  position: relative;
  transition: border-color .2s, background .2s;
}
.cv-contact-card .wpcf7 input[type="checkbox"]{ border-radius: 5px; }
.cv-contact-card .wpcf7 input[type="radio"]:checked{
  border-color: #FFD93D !important;
  background: #FFD93D !important;
  box-shadow: inset 0 0 0 4px #08051a !important;
}
.cv-contact-card .wpcf7 input[type="checkbox"]:checked{
  border-color: #FFD93D !important;
  background: #FFD93D !important;
}



/* === FIX: sticky navbar (was lost in dark-theme rewrite) === */
#masthead,
.site-main-header-wrap,
.site-header-row-container-inner,
.site-header-main-section-wrap{
  position:sticky !important;
  top:0 !important;
  z-index:90 !important;
}
.site-main-header-inner-wrap{
  position:relative !important;
}
/* Ensure body doesn't accidentally clip sticky */
html, body{ overflow-x:clip; overflow-y:visible; }

/* === FIX: title descenders + centering === */
.cv-section h2.wp-block-heading,
.cv-section h2,
.entry-content .cv-section h2.wp-block-heading,
section.cv-section > h2,
section.cv-section > .wp-block-heading{
  display:block !important;
  text-align:center !important;
  line-height:1.18 !important;
  padding-bottom:0.12em !important;
  padding-top:0.05em !important;
  margin-left:auto !important;
  margin-right:auto !important;
  overflow:visible !important;
}
.cv-section h2.wp-block-heading::after,
.cv-section h2::after{
  margin-left:auto !important;
  margin-right:auto !important;
}
.cv-section > p.has-text-align-center,
.cv-section > .wp-block-paragraph{
  text-align:center !important;
}
/* Also fix any background-clip:text containers that crop descenders */
.cv-section h2[style*='background-clip'],
.cv-section h2 .has-text-color,
.cv-section .wp-block-heading{
  -webkit-box-decoration-break:clone !important;
  box-decoration-break:clone !important;
}

/* === FIX: Figurice gallery — clean 2x2 grid === */
#balon-figurice .wp-block-gallery,
#balon-figurice .cv-gallery,
.cv-section#balon-figurice .wp-block-gallery{
  display:grid !important;
  grid-template-columns:repeat(2, 1fr) !important;
  grid-auto-rows:auto !important;
  gap:18px !important;
  max-width:1100px !important;
  margin:40px auto 0 auto !important;
  padding:0 !important;
}
#balon-figurice .wp-block-gallery .wp-block-image,
#balon-figurice .cv-gallery .wp-block-image,
#balon-figurice .wp-block-gallery figure{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  grid-column:auto !important;
  grid-row:auto !important;
  flex:none !important;
  aspect-ratio:1 / 1 !important;
  border-radius:22px !important;
  overflow:hidden !important;
  position:relative !important;
  box-shadow:0 18px 50px rgba(122,63,184,.28), 0 0 0 1px rgba(255,217,61,.15) inset !important;
  transition:transform .35s ease, box-shadow .35s ease !important;
}
#balon-figurice .wp-block-gallery .wp-block-image img,
#balon-figurice .cv-gallery img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  border-radius:22px !important;
}
#balon-figurice .wp-block-gallery .wp-block-image:hover{
  transform:translateY(-6px) scale(1.015) !important;
  box-shadow:0 28px 70px rgba(255,46,147,.35), 0 0 0 1px rgba(255,217,61,.45) inset !important;
}
@media (max-width:680px){
  #balon-figurice .wp-block-gallery{
    grid-template-columns:1fr !important;
  }
}




/* === FIX: contact section — wider, horizontal info, stacked vertically === */
#kontakt > .wp-block-group__inner-container,
.cv-section#kontakt > .wp-block-group__inner-container{
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
#kontakt .wp-block-columns,
.cv-section#kontakt .wp-block-columns{
  display:flex !important;
  flex-direction:column !important;
  gap:32px !important;
  max-width:none !important;
  width:100% !important;
  margin:40px auto 0 auto !important;
}
#kontakt .wp-block-column{
  flex:1 1 100% !important;
  max-width:100% !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
/* Info card (first column): horizontal 3-col layout for Telefon | E-pošta | Naslov */
#kontakt .wp-block-column:first-child .cv-contact-card > .wp-block-group__inner-container{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  grid-template-rows:auto 1fr !important;
  grid-auto-flow:column !important;
  gap:8px 48px !important;
  align-items:start !important;
}
#kontakt .wp-block-column:first-child .cv-contact-card h3.wp-block-heading{
  font-family:'Sigmar', 'Fredoka', sans-serif !important;
  font-size:13px !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  color:var(--cv-gold) !important;
  margin:0 0 6px 0 !important;
  font-weight:400 !important;
  line-height:1.3 !important;
}
#kontakt .wp-block-column:first-child .cv-contact-card p{
  margin:0 0 4px 0 !important;
  color:var(--cv-text) !important;
  line-height:1.55 !important;
  word-break:break-word !important;
}
#kontakt .wp-block-column:first-child .cv-contact-card a{
  color:var(--cv-text) !important;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,217,61,.35) !important;
  transition:border-color .2s, color .2s !important;
}
#kontakt .wp-block-column:first-child .cv-contact-card a:hover{
  color:var(--cv-gold) !important;
  border-color:var(--cv-gold) !important;
}
/* Form card (second column): keep form rows side-by-side, fill the wider card */
#kontakt .wp-block-column:nth-child(2) .cv-contact-card{
  width:100% !important;
}
#kontakt .cv-form-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:16px 24px !important;
}
#kontakt .cv-form-row > p{ margin:0 !important; }
#kontakt form.wpcf7-form > p{ margin-top:18px !important; }
/* Override inline white background on contact cards (kept dark glass) */
#kontakt .cv-contact-card{
  background-color:rgba(255,255,255,.025) !important;
  border:1px solid rgba(255,255,255,.08) !important;
  backdrop-filter:blur(14px) saturate(140%) !important;
  -webkit-backdrop-filter:blur(14px) saturate(140%) !important;
  border-radius:24px !important;
  padding:36px 40px !important;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.6) !important;
}
@media (max-width:780px){
  #kontakt .wp-block-column:first-child .cv-contact-card > .wp-block-group__inner-container{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  
  
}
/* === FIX: radio list items clickable === */
.cv-contact-card .wpcf7-list-item{
  cursor:pointer !important;
  padding:6px 10px 6px 4px !important;
  border-radius:8px !important;
  transition:background .15s ease !important;
}
.cv-contact-card .wpcf7-list-item:hover{
  background:rgba(255,217,61,.06) !important;
}
.cv-contact-card .wpcf7-list-item-label{
  cursor:pointer !important;
  user-select:none !important;
}

/* === FIX: external links spacing === */
#kontakt > .wp-block-group__inner-container > p:last-child{
  margin-top:64px !important;
  padding-top:32px !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
  color:var(--cv-text-mute, rgba(240,232,255,.55)) !important;
}
#kontakt > .wp-block-group__inner-container > p:last-child a{
  color:var(--cv-text) !important;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,217,61,.35) !important;
  margin:0 4px !important;
  transition:color .2s, border-color .2s !important;
}
#kontakt > .wp-block-group__inner-container > p:last-child a:hover{
  color:var(--cv-gold) !important;
  border-color:var(--cv-gold) !important;
}

/* === FIX: cv-rail fixed positioning (was static and stuck at bottom) === */
.cv-rail{
  position:fixed !important;
  top:50% !important;
  right:24px !important;
  bottom:auto !important;
  left:auto !important;
  transform:translateY(-50%) !important;
  z-index:80 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  pointer-events:auto !important;
}
.cv-rail a, .cv-rail button, .cv-rail .cv-rail__dot{
  display:block !important;
  width:10px; height:10px;
  border-radius:50%;
  background:rgba(255,255,255,.25);
  border:1px solid rgba(255,255,255,.35);
  cursor:pointer;
  transition:transform .2s, background .25s, border-color .25s;
  padding:0; box-shadow:none;
}
.cv-rail a:hover, .cv-rail button:hover, .cv-rail .cv-rail__dot:hover{
  background:var(--cv-gold);
  border-color:var(--cv-gold);
  transform:scale(1.4);
}
.cv-rail .is-active, .cv-rail a.is-active, .cv-rail .cv-rail__dot.is-active{
  background:var(--cv-gold) !important;
  border-color:var(--cv-gold) !important;
  transform:scale(1.5);
  box-shadow:0 0 0 4px rgba(255,217,61,.18);
}
@media (max-width:780px){ .cv-rail{ display:none !important; } }

/* === FIX: footer dark theme === */
.site-footer, .site-footer-wrap, .site-bottom-footer-wrap, .footer-html{
  background:transparent !important;
  border-top:1px solid rgba(255,255,255,.06) !important;
  color:rgba(240,232,255,.55) !important;
}
.site-footer p, .site-info p{
  margin:0 !important;
  color:rgba(240,232,255,.55) !important;
  font-size:14px !important;
}
.site-footer a{
  color:rgba(240,232,255,.7) !important;
  text-decoration:none !important;
}
.site-footer a:hover{ color:var(--cv-gold) !important; }
.site-bottom-footer-wrap{
  padding:40px 20px !important;
  text-align:center !important;
}

/* === FIX: unify all titles to Sigmar (full Latin Extended support) === */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6,
h1.wp-block-heading,
h2.wp-block-heading,
h3.wp-block-heading,
h4.wp-block-heading,
h5.wp-block-heading,
h6.wp-block-heading,
.cv-section h1,
.cv-section h2,
.cv-section h3,
.cv-section h4,
.cv-pricing__title,
.cv-pricing__price,
.cv-stat__num{
  font-family:'Sigmar', 'Fredoka', 'Inter', system-ui, sans-serif !important;
}
/* Stat labels & marquee: chunky-display font too */
.cv-stat__label,
.cv-marquee{
  font-family:'Fredoka', 'Inter', sans-serif !important;
}
/* But form labels and small text stay in Inter (readable at small sizes) */
.wpcf7 label,
.wpcf7 .wpcf7-list-item-label,
.cv-contact-card h3.wp-block-heading{
  font-family:'Fredoka', 'Inter', sans-serif !important;
}

/* === Background decorations (balloons, hats, wands, stars) === */
.cv-bg-decor{
  position:absolute;
  top:0; left:0;
  width:100%;
  height:auto;
  pointer-events:none;
  z-index:1;
  overflow:visible;
}
.cv-bg-decor__item{
  position:absolute;
  font-size:42px;
  opacity:0;
  user-select:none;
  will-change:transform, opacity;
  transition:transform .65s cubic-bezier(.2,.9,.3,1), opacity .8s ease;
  filter:drop-shadow(0 6px 16px rgba(122,63,184,.35));
  animation:cv-decor-float 9s ease-in-out infinite;
}




@keyframes cv-decor-float{
  0%,100%{ translate:0 0; rotate:-2deg; }
  50%    { translate:0 -22px; rotate:2deg; }
}
/* Ensure page content sits above decorations */
/* decor floats above content; relies on pointer-events:none + low opacity for non-interference */
@media (max-width:780px){
  .cv-bg-decor__item{ font-size:28px; opacity:.35 !important; }
  /* on mobile, fewer/smaller items via JS */
}
@media (prefers-reduced-motion: reduce){
  .cv-bg-decor__item{ animation:none !important; transition:opacity .8s ease !important; }
}
/* === FIX: original-style hero (theatrical backdrop) === */
/* cv-hero-orig height now governed by .cv-hero-full rule */
.cv-hero.cv-hero-orig .wp-block-cover__image-background{
  object-position:center !important;
  filter:saturate(1.1) contrast(1.05) !important;
  opacity:1 !important;
}
.cv-hero.cv-hero-orig::before{
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%, transparent 0%, rgba(8,5,26,.55) 100%),
    linear-gradient(180deg, rgba(8,5,26,.0) 40%, rgba(8,5,26,.92) 100%);
  z-index:1;
  pointer-events:none;
}
.cv-hero.cv-hero-orig .wp-block-cover__inner-container{ position:relative; z-index:2; }

/* === Show / Predstave layout === */
.cv-show{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:48px;
  align-items:center;
  max-width:1180px;
  margin:60px auto 0 auto;
  padding:24px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
}
.cv-show--reverse{ grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); }
.cv-show--reverse .cv-show__media{ order:2; }
.cv-show--reverse .cv-show__body{ order:1; }
.cv-show__title{
  font-family:'Sigmar', 'Fredoka', sans-serif !important;
  font-size:32px !important;
  margin:0 0 16px 0 !important;
  background:linear-gradient(135deg, #FFD93D 0%, #FF7E3F 50%, #FF2E93 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  line-height:1.18; padding-bottom:.05em;
}
.cv-show__body p{
  color:var(--cv-text);
  font-size:16px;
  line-height:1.65;
  margin:0 0 12px 0;
}
.cv-show__body strong{ color:var(--cv-gold); }


@media (max-width:780px){
  .cv-show, .cv-show--reverse{
    grid-template-columns:1fr !important;
    gap:24px; padding:20px;
  }
  .cv-show--reverse .cv-show__media,
  .cv-show--reverse .cv-show__body{ order:initial; }
  .cv-show__title{ font-size:24px !important; }
}

/* === Auto-cycling slider === */
.cv-slider{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  border-radius:18px;
  overflow:hidden;
  background:rgba(0,0,0,.4);
  box-shadow:0 24px 60px -12px rgba(0,0,0,.5), 0 0 0 1px rgba(255,217,61,.18) inset;
}
.cv-slider__slide{
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1s ease;
  pointer-events:none;
}
.cv-slider__slide.is-active{ opacity:1; }
.cv-slider__slide img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}

/* === Reviews grid === */
.cv-reviews-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:20px;
  max-width:1180px;
  margin:50px auto 0 auto;
}
.cv-review{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:24px 22px;
  display:flex; flex-direction:column;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .3s ease, border-color .3s;
}
.cv-review:hover{
  transform:translateY(-4px);
  border-color:rgba(255,217,61,.3);
}


.cv-review__name{
  color:var(--cv-gold);
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
}

/* === Logos marquee === */
.cv-logos-marquee{
  margin:40px auto 0 auto;
  max-width:1300px;
  overflow:hidden;
  position:relative;
  mask-image:linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.cv-logos-marquee__track{
  display:flex; gap:48px;
  align-items:center;
  width:max-content;
  animation:cv-logos-scroll 60s linear infinite;
}
.cv-logo{
  flex:0 0 auto;
  height:60px;
  display:flex; align-items:center;
  opacity:.55;
  transition:opacity .25s ease, filter .25s ease;
  filter:grayscale(1) brightness(1.4);
}
.cv-logo:hover{ opacity:.95; filter:grayscale(0) brightness(1); }
.cv-logo img{
  max-height:60px; width:auto;
  display:block;
}
@keyframes cv-logos-scroll{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .cv-logos-marquee__track{ animation-play-state:paused; }
}
/* === FIX: hero full-screen === */
.cv-hero.cv-hero-full,
.cv-hero.cv-hero-full .wp-block-cover__inner-container{
  min-height:100vh !important;
  min-height:100svh !important;
}

/* === FIX: hero magician overlay (animated) === */
.cv-hero-magician{
  position:absolute !important;
  right:5vw;
  bottom:0;
  height:90%;
  max-height:880px;
  width:auto;
  z-index:1;
  pointer-events:none;
  filter:drop-shadow(0 30px 50px rgba(0,0,0,.7));
  animation:cv-magician-float 6s ease-in-out infinite;
  transform-origin:50% 100%;
}

@keyframes cv-magician-float{
  0%,100%{ transform:translateY(0) rotate(-1.2deg) scale(1); }
  50%    { transform:translateY(-14px) rotate(1.2deg) scale(1.01); }
}
@media (max-width:780px){
  
  @keyframes cv-magician-float{
    0%,100%{ transform:translateX(-50%) translateY(0) rotate(-1deg); }
    50%    { transform:translateX(-50%) translateY(-10px) rotate(1deg); }
  }
}
@media (prefers-reduced-motion: reduce){
  .cv-hero-magician{ animation:none !important; }
}
.cv-hero.cv-hero-full .wp-block-cover__inner-container{
  position:relative; z-index:3;
  display:flex; flex-direction:column;
  justify-content:center;
  align-items:center;
}

/* === FIX: decor behind text/boxes, above background === */

/* Sections + content above decor */
.cv-section,
.cv-stats,
.cv-marquee,
.cv-show,
.cv-review,
.cv-pricing-card,
.cv-pricing,
.cv-contact-card,
.cv-stat,
.cv-reviews-grid,
.cv-logos-marquee,
.wp-block-buttons,
.wp-block-cover__inner-container{
  position:relative;
  z-index:2;
}
/* Header always on top */
#masthead, .site-header, .site-main-header-wrap, .site-header-row-container-inner{
  z-index:90 !important;
}

/* === FIX: pretty navbar — logo CENTER, nav split left/right === */
.site-main-header-inner-wrap{
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  align-items:center !important;
  gap:24px !important;
  width:100% !important;
}
.site-header-main-section-left{
  grid-column:2 !important;
  justify-self:center !important;
}
.site-header-main-section-right{
  grid-column:3 !important;
  justify-self:end !important;
}
.cv-header-nav-left{
  grid-column:1 !important;
  justify-self:start !important;
  display:flex !important;
}
/* Style the left/right nav lists identically */
.cv-header-nav-left ul.menu,
.site-header-main-section-right ul.menu{
  display:flex !important;
  gap:6px !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
  align-items:center !important;
}
.cv-header-nav-left .menu-item a,
.site-header-main-section-right .menu-item a{
  font-family:'Fredoka', 'Inter', sans-serif !important;
  font-weight:600 !important;
  font-size:14px !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  color:rgba(240,232,255,.78) !important;
  padding:10px 16px !important;
  border-radius:99px !important;
  transition:color .2s ease, background .25s ease, transform .2s ease !important;
  position:relative;
}
.cv-header-nav-left .menu-item a:hover,
.site-header-main-section-right .menu-item a:hover{
  color:var(--cv-gold) !important;
  background:rgba(255,217,61,.06) !important;
  transform:translateY(-1px);
}
.cv-header-nav-left .menu-item a::after,
.site-header-main-section-right .menu-item a::after{
  content:none !important;
}
/* Magic Shop CTA: special pill button */
.cv-header-nav-left .menu-item:last-child a,
.site-header-main-section-right .menu-item:last-child a{
  /* keep generic */
}
/* Specifically Magic Shop = the last menu-item; mark via :last-of-type with text 'Magic' isn't reliable, use external link */


/* Logo: a touch larger and clean */
.site-branding .brand img.custom-logo{
  height:54px !important;
  width:auto !important;
  max-width:none !important;
  transition:transform .3s ease, filter .3s ease !important;
  filter:drop-shadow(0 4px 16px rgba(255,217,61,.25));
}
.site-branding .brand:hover img.custom-logo{
  transform:scale(1.08) rotate(-2deg);
  filter:drop-shadow(0 8px 24px rgba(255,217,61,.45));
}
.site-branding .site-title-wrap{ display:none !important; }
@media (max-width:1024px){
  /* On smaller screens revert to simple flex (logo left, hamburger right) */
  .site-main-header-inner-wrap{
    display:flex !important;
    grid-template-columns:none !important;
  }
  .site-header-main-section-left{ grid-column:auto !important; justify-self:auto !important; }
  .site-header-main-section-right{ grid-column:auto !important; justify-self:auto !important; }
  .cv-header-nav-left{ display:none !important; }
}
/* === FIX: hero polish — full-screen + title above magician === */
.wp-block-cover.cv-hero,
.cv-hero.cv-hero-orig,
.cv-hero.cv-hero-full{
  min-height:100vh !important;
  min-height:100svh !important;
  height:100vh !important;
  height:100svh !important;
}
/* Ensure inner container fills hero */
.cv-hero .wp-block-cover__inner-container{
  width:100%;
  max-width:100% !important;
  padding:24px;
}
/* Title block: constrained width, sits above magician via z-index */
.cv-hero .wp-block-cover__inner-container > *{
  position:relative;
  z-index:5; /* above magician */
}
/* Title sized for hero impact but not crashing into magician */
.cv-hero h1.cv-hero-title{
  font-size:clamp(48px, 9vw, 132px) !important;
  line-height:1.05 !important;
  text-align:center !important;
  text-shadow:0 8px 30px rgba(0,0,0,.65), 0 0 60px rgba(122,63,184,.4);
  margin:0 auto 20px auto !important;
}
.cv-hero .cv-hero-tag{
  text-shadow:0 4px 16px rgba(0,0,0,.6);
  font-size:clamp(16px, 2vw, 22px) !important;
}
/* Magician positioning: behind text, anchored bottom-right */
.cv-hero-magician{
  z-index:2 !important;
  right:max(0px, 4vw) !important;
  bottom:0 !important;
  height:min(85vh, 800px) !important;
  max-height:none !important;
  opacity:0;
  transition:opacity 1.2s ease;
}
.cv-hero-magician.is-mounted{ opacity:1; }
/* On medium screens, scale down magician */
@media (max-width:1100px){
  
}
@media (max-width:780px){
  
}
/* === FIX: hero layout — title top, magician bottom === */
.cv-hero.cv-hero-full .wp-block-cover__inner-container{
  justify-content:flex-start !important;
  padding-top:14vh !important;
}
.cv-hero h1.cv-hero-title{
  /* Reduce slightly so it doesn't crowd */
  font-size:clamp(44px, 7.5vw, 110px) !important;
}
/* Shrink magician so title has clear space at top */

@media (max-width:1100px){
  
}
@media (max-width:780px){
  
  
}
/* Add hero CTA buttons clear z-index */
.cv-hero .wp-block-buttons{
  position:relative; z-index:5;
  margin-top:20px !important;
}
/* === FIX: reviews carousel === */
.cv-reviews-carousel{
  position:relative;
  max-width:1180px;
  margin:50px auto 0 auto;
  padding:0 60px;
}
.cv-reviews-track{
  display:flex;
  gap:24px;
  overflow:hidden;
  scroll-behavior:smooth;
  padding:8px 4px 32px 4px;
}
.cv-review-slide{
  flex:0 0 calc((100% - 48px) / 3);
  min-width:0;
  display:flex;
}
.cv-review-slide .cv-review{
  width:100%;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.09);
  border-radius:20px;
  padding:24px;
  display:flex; flex-direction:column;
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  transition:transform .35s ease, border-color .35s, box-shadow .35s;
}
.cv-review-slide .cv-review:hover{
  transform:translateY(-6px);
  border-color:rgba(255,217,61,.35);
  box-shadow:0 18px 50px -12px rgba(0,0,0,.55);
}
.cv-review__head{
  display:flex; align-items:center; gap:14px;
  margin-bottom:14px;
}
.cv-review__avatar{
  width:42px; height:42px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--cv-purple) 0%, var(--cv-pink) 100%);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:'Sigmar', 'Fredoka', sans-serif;
  font-size:18px;
  flex:0 0 auto;
  box-shadow:0 6px 18px -4px rgba(122,63,184,.45);
}
.cv-review__who{ flex:1; min-width:0; }
.cv-review__name{
  color:var(--cv-gold);
  font-weight:700;
  font-size:14px;
  white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.cv-review__date{
  color:rgba(240,232,255,.5);
  font-size:12px;
}
.cv-review__google{
  flex:0 0 auto;
  display:flex; align-items:center;
  opacity:.85;
}
.cv-review__stars{ font-size:16px; letter-spacing:2px; margin-bottom:10px; }
.cv-review__text{
  flex:1;
  color:var(--cv-text);
  font-size:14px; line-height:1.6;
  font-style:italic;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:8;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.cv-reviews-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px; height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  color:var(--cv-text);
  font-size:24px;
  font-family:'Inter', sans-serif;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  z-index:5;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:background .25s, border-color .25s, transform .2s;
}
.cv-reviews-arrow:hover{
  background:rgba(255,217,61,.15);
  border-color:rgba(255,217,61,.45);
  color:var(--cv-gold);
  transform:translateY(-50%) scale(1.08);
}


.cv-reviews-arrow:disabled{ opacity:.35; cursor:default; }

.cv-reviews-dots{
  display:flex; justify-content:center; gap:8px;
  margin-top:8px;
}
.cv-reviews-dot{
  width:8px; height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.22);
  border:0;
  cursor:pointer;
  padding:0;
  transition:background .25s, transform .2s;
}

.cv-reviews-dot.is-active{
  background:var(--cv-gold);
  transform:scale(1.4);
  box-shadow:0 0 0 4px rgba(255,217,61,.18);
}

@media (max-width:980px){
  .cv-review-slide{ flex-basis:calc((100% - 24px) / 2); }
}
@media (max-width:680px){
  .cv-reviews-carousel{ padding:0 36px; }
  .cv-review-slide{ flex-basis:100%; }
  .cv-reviews-arrow{ width:36px; height:36px; font-size:20px; }
}
/* === FIX: hero original layout — magician left, title right (3 lines) === */
/* Magician moves to LEFT side, anchored bottom-left */
.cv-hero-magician{
  left:max(0px, 3vw) !important;
  right:auto !important;
  bottom:0 !important;
  height:min(85vh, 820px) !important;
  z-index:2 !important;
  transform-origin:50% 100% !important;
}
@media (max-width:1100px){
  .cv-hero-magician{ height:min(72vh, 600px) !important; left:0 !important; }
}
@media (max-width:780px){
  
}
/* Adjust float keyframes for new transform-origin */
@keyframes cv-magician-float{
  0%,100%{ transform:translateY(0) rotate(-1.2deg); }
  50%    { transform:translateY(-12px) rotate(1.2deg); }
}

/* Title: align RIGHT, multi-line (one word per line) */
.cv-hero.cv-hero-full .wp-block-cover__inner-container{
  align-items:flex-end !important;     /* right-align flex column */
  padding-right:6vw !important;
  padding-left:6vw !important;
  padding-top:10vh !important;
  text-align:right !important;
}
.cv-hero h1.cv-hero-title{
  text-align:right !important;
  /* Break each word onto its own line */
  line-height:1.05 !important;
  font-size:clamp(54px, 9.5vw, 140px) !important;
  margin:0 !important;
  max-width:60% !important;
  /* Title slightly overlaps the magician on its left edge — readable via shadow */
  text-shadow:0 4px 18px rgba(0,0,0,.7) !important;
  padding-bottom:0.12em !important;
}
.cv-hero .cv-hero-tag{
  text-align:right !important;
  max-width:60% !important;
  margin-left:auto !important;
  margin-right:0 !important;
  padding-top:14px !important;
  text-shadow:0 4px 16px rgba(0,0,0,.7);
}
.cv-hero .wp-block-buttons{
  justify-content:flex-end !important;
  width:100%;
  max-width:60%;
  margin-left:auto !important;
  margin-right:0 !important;
}
@media (max-width:1100px){
  .cv-hero h1.cv-hero-title{ max-width:65% !important; font-size:clamp(44px, 8vw, 108px) !important; }
  .cv-hero .cv-hero-tag, .cv-hero .wp-block-buttons{ max-width:65% !important; }
}
@media (max-width:780px){
  /* On mobile: stack centered, full width */
  .cv-hero.cv-hero-full .wp-block-cover__inner-container{
    align-items:center !important;
    text-align:center !important;
    padding-top:14vh !important;
  }
  .cv-hero h1.cv-hero-title,
  .cv-hero .cv-hero-tag,
  .cv-hero .wp-block-buttons{
    max-width:100% !important;
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
    word-spacing:normal !important;
  }
  
  
}
/* === FIX: hero refined right placement (no word-break trick) === */
.cv-hero h1.cv-hero-title{
  word-spacing:normal !important;
  line-height:1.05 !important;
  font-size:clamp(48px, 8vw, 118px) !important;
  /* Title fits on 1 line on wide screens, 2 on narrow — natural wrap */
  max-width:540px !important;
  /* Push content further right with margin-right:0 + padding handled by container */
  margin:0 0 0 auto !important;
  white-space:normal !important;
  text-align:center !important;
}


.cv-hero.cv-hero-full .wp-block-cover__inner-container{
  align-items:center !important;
  /* Use grid-like padding to push the title block toward the right edge */
  padding-right:max(8vw, 60px) !important;
  padding-left:0 !important;
  padding-top:18vh !important;
  text-align:center !important;
}
/* Wrap the heading + tag + buttons inside a right-anchored block */
.cv-hero.cv-hero-full .wp-block-cover__inner-container > * { align-self:flex-end !important; }
@media (max-width:1100px){
  
  
}
@media (max-width:780px){
  .cv-hero.cv-hero-full .wp-block-cover__inner-container{
    align-items:center !important;
    padding-right:24px !important;
    padding-left:24px !important;
    padding-top:15vh !important;
  }
  .cv-hero h1.cv-hero-title,
  .cv-hero .cv-hero-tag,
  .cv-hero .wp-block-buttons{
    max-width:100% !important;
    width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
  }
  .cv-hero.cv-hero-full .wp-block-cover__inner-container > * { align-self:center !important; }
}
/* === FIX: hero center-right placement === */
.cv-hero.cv-hero-full .wp-block-cover__inner-container{
  /* Push title block ~22vw from right (so its center sits ~60% across viewport) */
  padding-right:max(20vw, 80px) !important;
  padding-left:0 !important;
  padding-top:18vh !important;
  align-items:flex-end !important;
}
.cv-hero h1.cv-hero-title{
  max-width:480px !important;
  width:auto !important;
  font-size:clamp(46px, 7vw, 100px) !important;
  margin:0 !important;
  text-align:center !important;
}
.cv-hero .cv-hero-tag{
  max-width:480px !important;
  margin:18px 0 22px 0 !important;
  text-align:center !important;
}
.cv-hero .wp-block-buttons{
  max-width:480px !important;
  width:480px !important;
  margin:0 !important;
  display:flex !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:14px !important;
}
@media (max-width:1100px){
  .cv-hero.cv-hero-full .wp-block-cover__inner-container{
    padding-right:max(8vw, 40px) !important;
  }
  .cv-hero h1.cv-hero-title,
  .cv-hero .cv-hero-tag,
  .cv-hero .wp-block-buttons{ max-width:420px !important; }
  .cv-hero .wp-block-buttons{ width:420px !important; }
}
@media (max-width:780px){
  .cv-hero.cv-hero-full .wp-block-cover__inner-container{
    padding:14vh 24px 0 24px !important;
    align-items:center !important;
  }
  .cv-hero h1.cv-hero-title,
  .cv-hero .cv-hero-tag,
  .cv-hero .wp-block-buttons{
    max-width:100% !important;
    width:100% !important;
  }
}
/* === FIX: decor scroll context === */
body{ position:relative; }
.cv-bg-decor{ z-index:1 !important; }

/* === FIX: navbar — Kontakt as the highlighted CTA, Magic Shop subtle === */
/* Highlight Kontakt: gold/orange pill with DARK text (readable) */
.site-header-main-section-right .menu-item a[href*="kontakt"],
.site-header-main-section-right .menu-item a[href$="#kontakt"],
.cv-header-nav-left .menu-item a[href*="kontakt"]{
  background:linear-gradient(135deg, #FFD93D 0%, #FF7E3F 100%) !important;
  color:#1a0a30 !important;
  font-weight:800 !important;
  letter-spacing:.06em !important;
  box-shadow:0 6px 18px -4px rgba(255,217,61,.45) !important;
}
.site-header-main-section-right .menu-item a[href*="kontakt"]:hover,
.cv-header-nav-left .menu-item a[href*="kontakt"]:hover{
  color:#0e0420 !important;
  background:linear-gradient(135deg, #FFE26A 0%, #FF9457 100%) !important;
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 12px 28px -4px rgba(255,217,61,.6) !important;
}

/* Magic Shop link: same plain style as other menu items (no special highlight) */
.site-header-main-section-right .menu-item a[href*="magicshop"],
.cv-header-nav-left .menu-item a[href*="magicshop"]{
  background:transparent !important;
  color:rgba(240,232,255,.78) !important;
  font-weight:600 !important;
  box-shadow:none !important;
}
.site-header-main-section-right .menu-item a[href*="magicshop"]:hover,
.cv-header-nav-left .menu-item a[href*="magicshop"]:hover{
  background:rgba(255,217,61,.06) !important;
  color:var(--cv-gold) !important;
  transform:translateY(-1px) !important;
  box-shadow:none !important;
}

/* === FIX: title pulse + nav underline === */
/* Title animation — gentle glow pulse + subtle scale breathing */
@keyframes cv-title-pulse{
  0%,100%{
    text-shadow:
      0 2px 0 rgba(0,0,0,.4),
      0 4px 18px rgba(0,0,0,.55),
      0 0 30px rgba(255,180,40,.28);
    transform:scale(1);
  }
  50%{
    text-shadow:
      0 2px 0 rgba(0,0,0,.4),
      0 6px 26px rgba(0,0,0,.6),
      0 0 70px rgba(255,200,60,.6),
      0 0 100px rgba(255,46,147,.25);
    transform:scale(1.012);
  }
}
.cv-hero h1.cv-hero-title{
  animation:cv-title-pulse 4.5s ease-in-out infinite !important;
  display:inline-block !important;
  transform-origin:center center;
}
@media (prefers-reduced-motion: reduce){
  .cv-hero h1.cv-hero-title{ animation:none !important; }
}

/* Navbar — animated underline on hovered/active link (skip the Kontakt CTA pill) */
.cv-header-nav-left .menu-item a,
.site-header-main-section-right .menu-item a{
  position:relative !important;
}
.cv-header-nav-left .menu-item a:not([href*="kontakt"])::before,
.site-header-main-section-right .menu-item a:not([href*="kontakt"])::before{
  content:'' !important;
  position:absolute;
  left:16px; right:16px;
  bottom:6px;
  height:2px;
  border-radius:2px;
  background:linear-gradient(90deg, #FFD93D 0%, #FF7E3F 50%, #FF2E93 100%);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .15s ease-out;
  pointer-events:none;
  opacity:0;
}
.cv-header-nav-left .menu-item a:not([href*="kontakt"]):hover::before,
.site-header-main-section-right .menu-item a:not([href*="kontakt"]):hover::before,
.cv-header-nav-left .menu-item a:not([href*="kontakt"]).cv-nav-active::before, .site-header-main-section-right .menu-item a:not([href*="kontakt"]).cv-nav-active::before{
  transform:scaleX(1);
  opacity:1;
}
/* Active link color */
.cv-header-nav-left .menu-item a.cv-nav-active,
.site-header-main-section-right .menu-item a.cv-nav-active{
  color:var(--cv-gold) !important;
}
/* Kontakt CTA "active" state: brighter glow */
.cv-header-nav-left .menu-item a[href*="kontakt"].cv-nav-active,
.site-header-main-section-right .menu-item a[href*="kontakt"].cv-nav-active{
  box-shadow:0 0 0 4px rgba(255,217,61,.18), 0 12px 32px -4px rgba(255,217,61,.55) !important;
}

/* Kontakt CTA — force DARK text (high specificity to beat any inheritance) */
.site-main-header-inner-wrap .cv-header-nav-left .menu-item a[href*="kontakt"],
.site-main-header-inner-wrap .site-header-main-section-right .menu-item a[href*="kontakt"],
nav .menu-item a[href*="kontakt"],
header a[href*="kontakt"]{
  color:#1a0a30 !important;
  -webkit-text-fill-color:#1a0a30 !important;
}
.site-main-header-inner-wrap .cv-header-nav-left .menu-item a[href*="kontakt"]:hover,
.site-main-header-inner-wrap .site-header-main-section-right .menu-item a[href*="kontakt"]:hover{
  color:#0e0420 !important;
  -webkit-text-fill-color:#0e0420 !important;
}
/* === FIX: nav remove default underline (only the animated ::before should show) === */
.cv-header-nav-left .menu-item a,
.cv-header-nav-left .menu-item a:link,
.cv-header-nav-left .menu-item a:visited,
.cv-header-nav-left .menu-item a:hover,
.cv-header-nav-left .menu-item a:active,
.cv-header-nav-left .menu-item a:focus,
.site-header-main-section-right .menu-item a,
.site-header-main-section-right .menu-item a:link,
.site-header-main-section-right .menu-item a:visited,
.site-header-main-section-right .menu-item a:hover,
.site-header-main-section-right .menu-item a:active,
.site-header-main-section-right .menu-item a:focus{
  text-decoration:none !important;
  border-bottom:0 !important;
}

/* === FIX: hero title — solid gold, 3 lines, per-line position animation === */
.cv-hero-title,
h1.cv-hero-title,
.cv-hero h1.cv-hero-title{
  background:none !important;
  -webkit-background-clip:initial !important;
  background-clip:initial !important;
  -webkit-text-fill-color:initial !important;
  color:#FFD93D !important;
  text-shadow:0 2px 0 rgba(0,0,0,.4), 0 4px 18px rgba(0,0,0,.55), 0 0 30px rgba(255,180,40,.28) !important;
  filter:none !important;
  animation:none !important;
  display:block !important;
  line-height:0.95 !important;
}
/* Each word on its own line via spans injected by JS */
.cv-hero h1.cv-hero-title .cv-word{
  display:block !important;
  will-change:transform;
}



/* Word 1 (Čarovnik): floats up-down with a tiny left-right drift */
@keyframes cv-word-1{
  0%,100%{ transform:translate(0, 0) rotate(0deg); }
  50%    { transform:translate(-6px, -10px) rotate(-1.2deg); }
}
/* Word 2 (Mare): drifts right and slightly up, opposite tilt */
@keyframes cv-word-2{
  0%,100%{ transform:translate(0, 0) rotate(0deg); }
  50%    { transform:translate(8px, -6px) rotate(1.5deg); }
}
/* Word 3 (Čare): bobs down-left with reverse tilt */
@keyframes cv-word-3{
  0%,100%{ transform:translate(0, 0) rotate(0deg); }
  50%    { transform:translate(-4px, 6px) rotate(-2deg); }
}
@media (prefers-reduced-motion: reduce){
  
}
/* === FIX: 3-pack — nav color + title intro + jitter === */

/* 1. Match left nav text color to right (full white-cream, no transparency) */
.cv-header-nav-left .menu-item a,
.cv-header-nav-left .menu-item a:link,
.cv-header-nav-left .menu-item a:visited,
.site-header-main-section-right .menu-item a:not([href*="kontakt"]),
.site-header-main-section-right .menu-item a:not([href*="kontakt"]):link,
.site-header-main-section-right .menu-item a:not([href*="kontakt"]):visited{
  color:#f0e8ff !important;
  -webkit-text-fill-color:#f0e8ff !important;
  opacity:1 !important;
}
/* Keep the hover/active states snappy */
.cv-header-nav-left .menu-item a:not([href*="kontakt"]):hover,
.site-header-main-section-right .menu-item a:not([href*="kontakt"]):hover{
  color:var(--cv-gold) !important;
  -webkit-text-fill-color:var(--cv-gold) !important;
}
.cv-header-nav-left .menu-item a.cv-nav-active:not([href*="kontakt"]),
.site-header-main-section-right .menu-item a.cv-nav-active:not([href*="kontakt"]){
  color:var(--cv-gold) !important;
  -webkit-text-fill-color:var(--cv-gold) !important;
}

/* 2. Title intro — slide each word in from a side, then settle into the float loop */
@keyframes cv-word-in-left{
  from{ transform:translateX(-220px) rotate(-4deg); opacity:0; }
  to  { transform:translateX(0) rotate(0deg); opacity:1; }
}
@keyframes cv-word-in-right{
  from{ transform:translateX(220px) rotate(4deg); opacity:0; }
  to  { transform:translateX(0) rotate(0deg); opacity:1; }
}
.cv-hero h1.cv-hero-title .cv-word--1{
  animation:
    cv-word-in-left 0.9s cubic-bezier(.2,.9,.3,1) 0s backwards,
    cv-word-1 5.5s ease-in-out 0.95s infinite
    !important;
}
.cv-hero h1.cv-hero-title .cv-word--2{
  animation:
    cv-word-in-right 0.9s cubic-bezier(.2,.9,.3,1) 0.18s backwards,
    cv-word-2 6.5s ease-in-out 1.13s infinite
    !important;
}
.cv-hero h1.cv-hero-title .cv-word--3{
  animation:
    cv-word-in-left 0.9s cubic-bezier(.2,.9,.3,1) 0.36s backwards,
    cv-word-3 7s ease-in-out 1.31s infinite
    !important;
}
@media (prefers-reduced-motion: reduce){
  .cv-hero h1.cv-hero-title .cv-word{ animation:none !important; transform:none !important; opacity:1 !important; }
}

/* 3. Stabilize section titles — promote to GPU layer to prevent sub-pixel jitter
      when scrolling (caused by background-clip:text + scroll-driven repaints) */
.cv-section h2.wp-block-heading,
section.cv-section > h2,
.cv-show__title,
.cv-hero h1.cv-hero-title{
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:transform;
  
}

/* === FIX: jitter — opacity-only reveal + scroll-margin === */
/* Reveal animations: opacity ONLY (no translate → no layout shift on scroll) */
.cv-reveal,
.cv-reveal-stagger{
  opacity:0;
  transform:none !important;
  transition:opacity .55s ease !important;
  will-change:opacity;
}
.cv-reveal.is-in,
.cv-reveal-stagger.is-in{
  opacity:1;
  transform:none !important;
}
/* Drop any "contain" that we added earlier — it causes its own paint quirks */
.cv-section h2.wp-block-heading,
section.cv-section > h2,
.cv-show__title{
  contain:none;
  will-change:auto;
}
/* Anchor scroll lands BELOW the sticky header (so the title is visible, not under the navbar) */


/* Disable native smooth-scroll on html — JS handler controls it cleanly */

/* === FIX: titles overflow visible (no contain — stops glyph & shadow clipping) === */
.cv-section h2.wp-block-heading,
section.cv-section > h2,
.cv-show__title,
.cv-hero h1.cv-hero-title,
.cv-hero h1.cv-hero-title .cv-word{
  contain:none !important;
  overflow:visible !important;
  isolation:auto !important;
}
/* Add a little breathing room around hero title so float/tilt motions don't hit the edge */
.cv-hero h1.cv-hero-title{
  padding:8px 24px !important;
  max-width:540px !important;
}
.cv-hero h1.cv-hero-title .cv-word{
  padding:0 8px;
}
/* === FIX: magician — bigger + shifted down (clean crop, head visible) === */
.cv-hero-magician{
  height:min(105vh, 1000px) !important;
  bottom:-12vh !important;
  left:-3vw !important;
  /* fade off the bottom to avoid hard clip line at the hero edge */
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 82%, transparent 100%) !important;
  mask-image:linear-gradient(180deg, #000 0%, #000 82%, transparent 100%) !important;
}
@media (max-width:1100px){
  .cv-hero-magician{
    height:min(90vh, 760px) !important;
    bottom:-10vh !important;
  }
}
@media (max-width:780px){
  .cv-hero-magician{
    height:min(60vh, 480px) !important;
    bottom:-6vh !important;
    left:50% !important;
    -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 80%, transparent 100%) !important;
    mask-image:linear-gradient(180deg, #000 0%, #000 80%, transparent 100%) !important;
  }
}
/* === FIX: balloon color variation via per-item hue-rotate === */
.cv-bg-decor__item{
  filter:drop-shadow(0 6px 16px rgba(122,63,184,.35)) hue-rotate(var(--cv-hue, 0deg)) saturate(1.1);
  /* Slightly higher visibility since they're the only deco now */
}
.cv-bg-decor__item.is-in{ opacity:.55; }
@media (max-width:780px){
  .cv-bg-decor__item.is-in{ opacity:.45; }
}
/* === FIX: kill cv-reveal flicker on first load + scroll === */
/* All sections render immediately at full opacity — no JS-dependent fade-in */
.cv-reveal,
.cv-reveal-stagger,
.cv-reveal:not(.is-in),
.cv-reveal-stagger:not(.is-in){
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
  animation:none !important;
}
/* === FIX: aggressive jitter kill === */
/* 1. Stop the perpetual balloon float (keeps cursor repulsion working) */
/* (balloon float restored — see FIX: balloon polish) */
/* 2. Stat numbers — fixed width per digit so the count-up doesn't shift sibling layout */

/* 3. Drop any GPU-layer hints on section titles that can cause repaint thrash */
.cv-section h2.wp-block-heading,
section.cv-section > h2,
.cv-show__title{
  will-change:auto !important;
}
/* 4. Lock image aspect-ratios so lazy-loading doesn't shift surrounding layout */
.wp-block-image img,
.wp-block-gallery img,
.cv-slider img{
  height:auto;
}
.wp-block-cover__image-background{
  contain:none !important;
}
/* === FIX: marquee — overflow + isolate (root cause of page-wide jitter) === */
/* Lock marquee section to viewport width and clip its long content */
.cv-marquee{
  overflow:hidden !important;
  width:100% !important;
  max-width:100vw !important;
  box-sizing:border-box !important;
  /* Isolate paint so the moving track can't trigger repaints on neighbors */
  contain:layout paint;
  isolation:isolate;
}
/* Promote the track to its own compositor layer (GPU) — eliminates sub-pixel jitter
   bleeding into nearby elements during scroll */

/* Disable the per-span gradient shine animation — combined with the track motion
   it forced large gradient repaints every frame, the dominant source of jitter */
.cv-marquee span{
  animation:none !important;
  background-position:0 0 !important;
  /* Promote span text too, so the gradient paints once into a layer */
  will-change:transform;
  transform:translateZ(0);
}
/* Also kill the global page horizontal scrollbar in case the marquee track did push it */
html, body{
  overflow-x:clip !important;
  max-width:100vw;
}
/* === FIX: stats wider — 2 rows always (number on row 1, label on row 2) === */
.cv-stats__grid{
  grid-template-columns:repeat(4, minmax(260px, 1fr)) !important;
  gap:20px !important;
  max-width:1400px !important;
  margin:0 auto !important;
  padding:0 24px !important;
}
.cv-stat{
  min-width:0;
  padding:28px 24px !important;
}
.cv-stat .cv-stat__num{
  font-size:clamp(38px, 4.6vw, 58px) !important;
}
/* Number row: never wraps, has stable digit widths */
.cv-stat__num{
  display:block !important;
  white-space:nowrap !important;
  font-variant-numeric:tabular-nums !important;
  font-feature-settings:"tnum" 1 !important;
  text-align:center !important;
  min-width:auto !important;
  width:100% !important;
}
/* Label row: forces single line by default; only wraps below mobile breakpoint */
.cv-stat__lbl,
.cv-stat__label{
  display:block !important;
  white-space:nowrap !important;
  text-align:center !important;
  font-size:13px !important;
}
/* Tablet: 2 columns, still 2 rows per box */
@media (max-width:980px){
  .cv-stats__grid{
    grid-template-columns:repeat(2, minmax(220px, 1fr)) !important;
  }
}
/* Phone: 1 column */
@media (max-width:520px){
  .cv-stats__grid{
    grid-template-columns:1fr !important;
  }
  .cv-stat__lbl, .cv-stat__label{ white-space:normal !important; }
}
/* === FIX: balloon polish + title bob === */
/* Restore varied float animation on each balloon */
.cv-bg-decor__item{
  animation:cv-decor-float 9s ease-in-out infinite !important;
}
.cv-bg-decor__item:nth-child(2n){ animation-duration:11s !important; animation-direction:reverse !important; }
.cv-bg-decor__item:nth-child(3n){ animation-duration:13s !important; }
.cv-bg-decor__item:nth-child(5n){ animation-duration:7s !important; animation-direction:reverse !important; }
@keyframes cv-decor-float{
  0%,100%{ transform:translate(0, 0) rotate(-2deg); }
  50%   { transform:translate(0, -22px) rotate(2deg); }
}

/* Subtle floating motion on all major section titles */
@keyframes cv-section-title-bob{
  0%,100%{ transform:translate(0, 0) rotate(-2deg); }
  50%    { transform:translate(0, -16px) rotate(2deg); }
}
.cv-section h2.wp-block-heading,
section.cv-section > h2,
.cv-show__title{
  animation:cv-section-title-bob 6s ease-in-out infinite !important;
  transform-origin:center center !important;
}
/* Stagger delays so titles don't sync */
.cv-section:nth-of-type(1) h2.wp-block-heading{ animation-delay:0s !important; animation-duration:5s !important; }
.cv-section:nth-of-type(2) h2.wp-block-heading{ animation-delay:-1.2s !important; animation-duration:6.5s !important; }
.cv-section:nth-of-type(3) h2.wp-block-heading{ animation-delay:-2.4s !important; animation-duration:7s !important; }
.cv-section:nth-of-type(4) h2.wp-block-heading{ animation-delay:-0.8s !important; animation-duration:5.8s !important; }
.cv-section:nth-of-type(5) h2.wp-block-heading{ animation-delay:-1.8s !important; animation-duration:6.2s !important; }
.cv-section:nth-of-type(6) h2.wp-block-heading{ animation-delay:-3s !important; animation-duration:7.5s !important; }
.cv-show:nth-of-type(odd) .cv-show__title{ animation-delay:-1.5s !important; animation-duration:6s !important; }
.cv-show:nth-of-type(even) .cv-show__title{ animation-delay:-3.2s !important; animation-duration:7.2s !important; }
@media (prefers-reduced-motion: reduce){
  .cv-section h2.wp-block-heading, .cv-show__title{ animation:none !important; }
}
/* === FIX: show price box + transport note === */
.cv-show__price{
  margin-top:24px;
  padding:18px 22px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(255,217,61,.12) 0%, rgba(255,46,147,.10) 100%);
  border:1px solid rgba(255,217,61,.32);
  display:flex; align-items:baseline; gap:14px;
  flex-wrap:wrap;
}
.cv-show__price-amount{
  font-family:'Sigmar', 'Fredoka', sans-serif;
  font-size:38px;
  line-height:1;
  background:linear-gradient(135deg, #FFD93D 0%, #FF7E3F 50%, #FF2E93 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.cv-show__price-note{
  color:rgba(240,232,255,.7);
  font-size:14px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.cv-transport-note{
  max-width:1180px;
  margin:48px auto 0 auto;
  padding:18px 24px;
  display:flex; align-items:center; gap:14px;
  border-radius:16px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.08);
  color:var(--cv-text);
  font-size:15px;
  line-height:1.55;
}
.cv-transport-note__icon{
  font-size:28px;
  flex:0 0 auto;
}
.cv-transport-note strong{
  color:var(--cv-gold);
  margin-right:4px;
}
@media (max-width:680px){
  .cv-show__price-amount{ font-size:32px; }
  .cv-transport-note{ flex-direction:column; align-items:flex-start; }
}
/* === FIX: figurice slider grid (2x2 of auto-cycling sliders) === */
.cv-figurice-grid{
  display:grid !important;
  grid-template-columns:repeat(2, 1fr) !important;
  gap:24px !important;
  max-width:1100px !important;
  margin:40px auto 0 auto !important;
  padding:0 !important;
}
.cv-figurice-slot{
  aspect-ratio:4 / 3 !important;
  border-radius:22px !important;
  overflow:hidden !important;
  box-shadow:0 18px 50px rgba(122,63,184,.28), 0 0 0 1px rgba(255,217,61,.18) inset !important;
  transition:transform .35s ease, box-shadow .35s ease !important;
}
.cv-figurice-slot:hover{
  transform:translateY(-6px) scale(1.015) !important;
  box-shadow:0 28px 70px rgba(255,46,147,.35), 0 0 0 1px rgba(255,217,61,.45) inset !important;
}

.cv-figurice-price{
  max-width:1100px;
  margin:32px auto 0 auto !important;
}
@media (max-width:680px){
  .cv-figurice-grid{ grid-template-columns:1fr !important; }
}
/* === FIX: figurice uniform image sizing === */
.cv-figurice-slot{
  position:relative;
  background:linear-gradient(135deg, rgba(122,63,184,.25) 0%, rgba(255,46,147,.18) 100%);
}
.cv-figurice-slot .cv-slider__slide{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
}
.cv-figurice-slot .cv-slider__slide img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:0 !important;
}
.cv-figurice-slot{
  aspect-ratio:4 / 3 !important;
  border-radius:22px !important;
  overflow:hidden !important;
}
/* === FIX: cv-show__meta universal — same look in show, pricing, and december cards === */
.cv-show__meta{
  list-style:none !important;
  padding:0 !important;
  margin:18px 0 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  justify-content:center !important;
}
.cv-show__meta li{
  background:rgba(255,217,61,.10) !important;
  border:1px solid rgba(255,217,61,.28) !important;
  color:var(--cv-text) !important;
  padding:7px 12px !important;
  border-radius:99px !important;
  font-size:13px !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
  white-space:nowrap !important;
  list-style:none !important;
}
/* Inside the white pricing cards, give darker text + warmer pill */

/* Featured card (purple bg) keeps the gold pills */
.cv-card-feature .cv-show__meta li{
  background:rgba(255,217,61,.18) !important;
  border:1px solid rgba(255,217,61,.45) !important;
  color:#fff !important;
}
/* Show / dark cards (Mareta, Mirko, December dark, Figurice section) keep gold-on-dark */
.cv-show .cv-show__meta,
.cv-section-dark .cv-show__meta{
  justify-content:flex-start !important;
}
@media (max-width:520px){
  .cv-show__meta{ justify-content:center !important; }
}
/* === FIX: card meta + feature polish === */

/* Override the earlier "dark purple text on light pill" — make ALL cv-card meta tags white-on-glass */
.cv-card .cv-show__meta li,
.cv-pricing .cv-show__meta li{
  background:rgba(255,217,61,.14) !important;
  border:1px solid rgba(255,217,61,.32) !important;
  color:#fff !important;
}

/* Tone down the colorful conic-gradient halo on the feature card —
   keep a subtle gold glow, drop the rainbow swirl */
.cv-card-feature::after{
  background:radial-gradient(ellipse at center, rgba(255,217,61,.45) 0%, rgba(255,46,147,.25) 50%, transparent 80%) !important;
  filter:blur(20px) !important;
  opacity:.45 !important;
  animation:none !important;
}
/* Make feature card body a clean dark purple gradient (less rainbow, easier to read) */
.cv-card-feature{
  background:linear-gradient(160deg, #5b2a86 0%, #3a1860 100%) !important;
  border:1px solid rgba(255,217,61,.45) !important;
}
/* Feature card description text — improve readability */
.cv-card-feature p:not([style*="uppercase"]){
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 1px 2px rgba(0,0,0,.4);
}
/* Feature card price + suffix */
.cv-card-feature h4{
  color:#FFD93D !important;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.cv-card-feature p[style*="font-size:13px"]{
  color:rgba(255,255,255,.78) !important;
}
/* === FIX: rojstni cards — readable + fun === */
/* Better contrast on card titles (especially the feature one) */
.cv-card h3{
  text-shadow:0 2px 6px rgba(0,0,0,.3);
  font-family:'Fredoka', 'Inter', sans-serif !important;
  font-weight:700 !important;
  font-size:22px !important;
  line-height:1.25 !important;
  letter-spacing:0 !important;
}
.cv-card-feature h3{
  color:#fff !important;
  text-shadow:
    0 2px 0 rgba(0,0,0,.45),
    0 4px 14px rgba(0,0,0,.55),
    0 0 24px rgba(255,217,61,.35) !important;
}
/* All 3 cards float independently — subtle, fun, never sync */
@keyframes cv-card-bob-1{
  0%,100%{ transform:translateY(0) rotate(-0.6deg); }
  50%    { transform:translateY(-10px) rotate(0.6deg); }
}
@keyframes cv-card-bob-2{
  0%,100%{ transform:translateY(-4px) rotate(0.4deg) scale(1.02); }
  50%    { transform:translateY(-14px) rotate(-0.4deg) scale(1.04); }
}
@keyframes cv-card-bob-3{
  0%,100%{ transform:translateY(0) rotate(0.5deg); }
  50%    { transform:translateY(-12px) rotate(-0.7deg); }
}
.cv-pricing .wp-block-column:nth-child(1) .cv-card{
  animation:cv-card-bob-1 5.5s ease-in-out infinite;
}
.cv-pricing .wp-block-column:nth-child(2) .cv-card{
  /* feature card already has translateY(-8px) baseline; we override the float */
  animation:cv-card-bob-2 6.5s ease-in-out infinite;
}
.cv-pricing .wp-block-column:nth-child(3) .cv-card{
  animation:cv-card-bob-3 6s ease-in-out infinite;
  animation-delay:-1.5s;
}
.cv-pricing .wp-block-column:nth-child(1) .cv-card{ animation-delay:-0.5s; }
.cv-pricing .wp-block-column:nth-child(2) .cv-card{ animation-delay:-2.8s; }
/* Pause on hover so the lift transform doesn't fight the keyframe */
.cv-pricing .cv-card:hover{
  animation-play-state:paused !important;
}
@media (prefers-reduced-motion: reduce){
  .cv-pricing .cv-card{ animation:none !important; }
}
/* === FIX: december tier list + price box === */
.cv-dec-price{
  margin-top:20px !important;
  margin-bottom:14px !important;
}
.cv-price-tiers{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
}
.cv-price-tiers li{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  background:rgba(255,255,255,.04) !important;
  border:1px solid rgba(255,255,255,.08) !important;
  padding:10px 14px !important;
  border-radius:12px !important;
  font-size:14px !important;
  color:var(--cv-text) !important;
}
.cv-price-tiers li span{
  color:rgba(240,232,255,.65) !important;
}
.cv-price-tiers li strong{
  color:var(--cv-gold) !important;
  font-weight:700 !important;
  font-size:15px !important;
}
@media (max-width:520px){
  .cv-price-tiers{ grid-template-columns:1fr !important; }
}
/* In dark december section the transport-note background needs to be slightly lighter */
.cv-section-dark .cv-transport-note{
  background:rgba(255,255,255,.04) !important;
  border-color:rgba(255,255,255,.10) !important;
}
/* === FIX: quote-box (Obisk dobrega moža) === */
.cv-quote-box{
  margin-top:18px !important;
}
.cv-quote-box .cv-show__price-amount{
  font-size:30px !important;
}
.cv-quote-box .cv-show__price-note{
  text-transform:none !important;
  letter-spacing:0 !important;
  font-size:14px !important;
  font-weight:500 !important;
}
.cv-quote-box .cv-show__price-note a{
  color:var(--cv-gold) !important;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,217,61,.4) !important;
  transition:border-color .2s, color .2s !important;
}
.cv-quote-box .cv-show__price-note a:hover{
  color:#FFE26A !important;
  border-color:#FFE26A !important;
}
/* === FIX: price descender (Po dogovoru "g" gets clipped) + december video === */
.cv-show__price-amount{
  line-height:1.18 !important;
  padding-bottom:0.1em !important;
  overflow:visible !important;
}

/* December YouTube video — responsive 16:9 box */
.cv-video{
  max-width:900px;
  margin:32px auto;
  position:relative;
  aspect-ratio:16 / 9;
  border-radius:24px;
  overflow:hidden;
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,.6),
    0 0 0 1px rgba(255,217,61,.25) inset;
  background:#000;
}
.cv-video iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}
@media (max-width:780px){
  .cv-video{ margin:24px auto; border-radius:18px; }
}
/* === FIX: 8-pack polish === */

/* 1. MARQUEE: smooth jitter — use translate3d + integer pixel snapping */
.cv-marquee__track{
  animation:cv-marquee-roll-seamless 20s linear infinite !important;
  transform:translate3d(0,0,0);
  -webkit-transform:translate3d(0,0,0);
  will-change:transform;
  backface-visibility:hidden;
}
@keyframes cv-marquee-roll-smooth{
  from{ transform:translate3d(0,0,0); }
  to  { transform:translate3d(-50%,0,0); }
}

/* 2. HERO subtitle — Fredoka font, consistent with the page */
.cv-hero .cv-hero-tag{
  font-family:'Fredoka', 'Inter', sans-serif !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
  color:rgba(255,217,61,.92) !important;
  text-shadow:0 4px 16px rgba(0,0,0,.7), 0 0 24px rgba(255,180,40,.3) !important;
}

/* 3. SHOW SLIDERS — uniform image cropping (Mareta + Mirko) */
.cv-show .cv-slider{
  aspect-ratio:4 / 3 !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:linear-gradient(135deg, rgba(122,63,184,.25) 0%, rgba(255,46,147,.18) 100%);
}
.cv-show .cv-slider .cv-slider__slide{
  position:absolute !important; inset:0 !important;
  width:100% !important; height:100% !important;
}
.cv-show .cv-slider .cv-slider__slide img{
  width:100% !important; height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:0 !important;
}

/* 5. KONTAKT FORM mobile — fix overflowing fields */
@media (max-width:780px){
  #kontakt .cv-form-row{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  #kontakt .wpcf7 input,
  #kontakt .wpcf7 select,
  #kontakt .wpcf7 textarea{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    min-width:0 !important;
  }
  #kontakt .wpcf7-form-control-wrap{
    display:block !important;
    width:100% !important;
  }
  #kontakt .wpcf7 label{
    display:block !important;
    width:100% !important;
  }
  #kontakt .cv-contact-card{
    padding:24px 20px !important;
  }
}
/* Also ensure inputs never overflow even on desktop */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* 7. FOOTER — remove unnecessary horizontal lines */
.site-footer-wrap,
.site-bottom-footer-wrap,
.site-footer-row-container-inner,
.site-info,
.footer-html,
.footer-html-inner,
.footer-widget-area,
.site-bottom-footer-inner-wrap{
  border:0 !important;
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

.site-footer hr,
.site-footer .separator,
.site-footer .footer-separator,
.site-footer-row-container > .site-container::before,
.site-footer-row-container > .site-container::after{
  display:none !important;
}

/* 8. POŠLJI button — switch to outline style matching "Spoznaj me" hero button */
.wpcf7 input[type="submit"],
.cv-contact-card .wpcf7 [type="submit"]{
  background:transparent !important;
  background-image:none !important;
  color:var(--cv-gold) !important;
  border:2px solid var(--cv-gold) !important;
  border-radius:99px !important;
  padding:14px 36px !important;
  font-family:'Fredoka', sans-serif !important;
  font-weight:700 !important;
  font-size:14px !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  box-shadow:0 0 0 0 rgba(255,217,61,0) !important;
  cursor:pointer;
  transition:all .25s ease !important;
}
.wpcf7 input[type="submit"]:hover,
.cv-contact-card .wpcf7 [type="submit"]:hover{
  background:var(--cv-gold) !important;
  color:#1a0a30 !important;
  transform:translateY(-3px) scale(1.04);
  box-shadow:0 14px 32px -8px rgba(255,217,61,.55) !important;
}
/* === FIX: marquee seamless gap-aware loop === */
/* Root cause of the cyclic jump: track had `gap:80px` between span1 & span2
   but the animation moved by exactly -50% — half-width covered only half the
   gap, so position jumped 40px on every wrap. Bake the gap into each span
   via padding-right and drop the flex gap so -50% lines up perfectly. */
.cv-marquee__track{
  gap:0 !important;
  animation:cv-marquee-roll-seamless 20s linear infinite !important;
  transform:translate3d(0,0,0);
  will-change:transform;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.cv-marquee span{
  padding-right:4rem !important;
  flex-shrink:0 !important;
  /* Drop the per-span GPU promotion — it was creating its own composite layer
     that subtly disagreed with the parent track's transform, contributing to
     visible micro-stutter. The track's promotion is enough. */
  will-change:auto !important;
  transform:none !important;
  animation:none !important; /* kill the gradient-shine repaint storm too */
}
@keyframes cv-marquee-roll-seamless{
  from { transform:translate3d(0,0,0); }
  to   { transform:translate3d(-50%,0,0); }
}

/* === FIX: balloon emoji shadow halo — remove === */
.cv-bg-decor__item{
  /* keep hue-rotate (per-balloon colour) and saturation; drop the purple drop-shadow
     that was creating the bruised halo around each emoji */
  filter:hue-rotate(var(--cv-hue, 0deg)) saturate(1.1) !important;
}

/* === FIX: balloon cursor repulsion — compose with float animation via CSS vars === */
/* The float keyframes now reference --cv-tx / --cv-ty / --cv-sc so the JS can
   set those at runtime without clobbering the animation. */
@keyframes cv-decor-float{
  0%   { transform:translate(var(--cv-tx, 0px), var(--cv-ty, 0px))                     scale(var(--cv-sc, 1)); }
  50%  { transform:translate(var(--cv-tx, 0px), calc(var(--cv-ty, 0px) - 22px))         scale(var(--cv-sc, 1)); }
  100% { transform:translate(var(--cv-tx, 0px), var(--cv-ty, 0px))                     scale(var(--cv-sc, 1)); }
}
/* === FIX: footer transparent (drop inner panel) === */
/* The original rule at top of file gave .site-footer-row-container-inner its
   own rgba(8,5,26,.8) panel — visible as a "darker box on dark page". The
   page background is already dark; let the footer be fully transparent. */
.site-footer,
.site-footer-wrap,
.site-bottom-footer-wrap,
.site-footer-row-container,
.site-footer-row-container-inner,
.site-bottom-footer-inner-wrap,
.site-footer-section,
.footer-widget-area,
.site-info,
.footer-html,
.footer-html-inner{
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
.site-footer{
  border-top:0 !important; /* drop the top hairline too — page bg already separates it */
}
/* === FIX: reviews track transform paging === */
/* Track is overflow:hidden so scrollTo doesn't apply; we now translate the
   track instead. Add a smooth transition + GPU promotion. */
.cv-reviews-track{
  transition:transform .55s cubic-bezier(.2,.7,.3,1) !important;
  will-change:transform;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
/* === FIX: reviews carousel clip on parent === */
/* The track had overflow:hidden, which clips its children at the track's
   layout box (1060px). Transforms move paint but not layout boxes, so
   slides past index 2 stayed clipped after we translated the track —
   producing empty space where slides 3+ should appear. Move the clipping
   to the carousel container; let the track's children extend naturally. */
.cv-reviews-carousel{
  overflow:hidden !important;
}
.cv-reviews-track{
  overflow:visible !important;
}
/* Arrows are absolute children of the carousel; keep them above the track
   and pull them slightly inward so the new overflow:hidden doesn't clip
   their hover-scale glow. */
.cv-reviews-arrow{
  z-index:6 !important;
}


/* === FIX: reviews padding 0 (arrows overlay) === */
/* Original carousel had padding:0 60px to leave room for arrows beside the
   track. With overflow:hidden now on the carousel, the 60px padding became
   a "clipping window offset" — every page showed half-slides protruding on
   left and right. Drop the padding so slides go edge-to-edge of the
   carousel; pull the arrows in slightly so they overlay the slide edges
   (translucent button on translucent slide bg reads cleanly). */
.cv-reviews-carousel{
  padding:0 !important;
}
.cv-reviews-arrow--prev{ left:12px !important; }
.cv-reviews-arrow--next{ right:12px !important; }
/* Add a touch of breathing room so the arrows don't bump the slide text */
.cv-reviews-arrow{
  background:rgba(0,0,0,.55) !important;
  border-color:rgba(255,255,255,.18) !important;
}
.cv-reviews-arrow:hover{
  background:rgba(255,217,61,.25) !important;
  border-color:rgba(255,217,61,.55) !important;
}
/* === FIX: reviews remove arrows + lift dots out of clipped carousel === */
/* Auto-advance is enough — drop the arrow buttons. */
.cv-reviews-arrow{
  display:none !important;
}
/* Dots live inside .cv-reviews-carousel which is now overflow:hidden.
   Their active-state has transform:scale(1.4) + a 4px box-shadow halo, both
   of which can poke past the clipping window. Re-parented to the carousel
   via JS but here we also widen the dots container and add padding so the
   halo always paints inside the visible area. */
.cv-reviews-dots{
  padding:18px 12px 4px !important;   /* room for the halo */
  margin-top:0 !important;
}
.cv-reviews-dot.is-active{
  /* keep the gold but trim the halo so it never overhangs */
  box-shadow:0 0 0 3px rgba(255,217,61,.22) !important;
  transform:scale(1.35) !important;
}
/* === FIX: reviews dots — drop halo, grow container === */
/* Active dot's box-shadow halo + scale was poking past clipping no matter
   how much padding we added. Drop the outer halo entirely and use a slightly
   larger dot instead — the gold colour is enough to read "active". Then make
   the dots container roomy so even with scale there's nothing to clip. */
.cv-reviews-dots{
  padding:30px 20px !important;
  margin-top:0 !important;
  overflow:visible !important;
}
.cv-reviews-dot{
  width:10px !important;
  height:10px !important;
  transition:background .25s, transform .2s !important;
}
.cv-reviews-dot.is-active{
  background:var(--cv-gold) !important;
  width:14px !important;
  height:14px !important;
  transform:none !important;     /* no scale — bigger size handles it */
  box-shadow:none !important;    /* no halo */
}
.cv-reviews-dot:hover{
  background:rgba(255,217,61,.6) !important;
  transform:none !important;
}
/* === FIX: reviews dots — vertical alignment === */
/* Active dot is 14px, inactive 10px; flex default put them top-aligned. */
.cv-reviews-dots{
  align-items:center !important;
}
/* === FIX: mobile hero polish + drawer === */

/* --- Mobile hero: center everything, hide magician, tighten spacing --- */
@media (max-width:780px){
  /* Title centered, smaller, comfortable line-height */
  .cv-hero h1.cv-hero-title{
    text-align:center !important;
    font-size:clamp(40px, 11vw, 64px) !important;
    line-height:1 !important;
  }
  .cv-hero .cv-hero-tag{
    text-align:center !important;
    font-size:13px !important;
    letter-spacing:.18em !important;
  }
  /* Center the inner container, no right-align bleed */
  .cv-hero.cv-hero-full .wp-block-cover__inner-container,
  .cv-hero .wp-block-cover__inner-container{
    align-items:center !important;
    text-align:center !important;
    padding-left:24px !important;
    padding-right:24px !important;
    padding-top:14vh !important;
  }
  /* Buttons stack centered */
  .cv-hero .wp-block-buttons{
    justify-content:center !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:14px !important;
    margin-top:28px !important;
  }
  .cv-hero .wp-block-button{ width:auto; }
  .cv-hero .wp-block-button__link{
    min-width:240px;
  }
}

/* Hide the cropped half-magician on small phones — full figure can't fit cleanly */
@media (max-width:780px){
  
}

/* --- Hamburger trigger + drawer (mobile only) --- */

.cv-hamburger__bars{
  position:relative;
  width:26px; height:18px;
  display:block;
}
.cv-hamburger__bars::before,
.cv-hamburger__bars::after,
.cv-hamburger__bars > i{
  content:"";
  position:absolute;
  left:0; right:0;
  height:2px;
  border-radius:2px;
  background:var(--cv-gold);
  transition:transform .3s ease, opacity .25s ease, top .3s ease, bottom .3s ease;
}
.cv-hamburger__bars::before{ top:0; }
.cv-hamburger__bars > i{ top:50%; margin-top:-1px; }
.cv-hamburger__bars::after{ bottom:0; }
.cv-hamburger.is-open .cv-hamburger__bars::before{ top:50%; margin-top:-1px; transform:rotate(45deg); }
.cv-hamburger.is-open .cv-hamburger__bars > i{ opacity:0; }
.cv-hamburger.is-open .cv-hamburger__bars::after{ bottom:50%; margin-bottom:-1px; transform:rotate(-45deg); }

@media (max-width:1024px){
  
  /* Hide the inline desktop nav on mobile */
  .site-header-main-section-right .header-menu-container,
  .site-main-header-inner-wrap .main-navigation > .primary-menu-container{
    display:none !important;
  }
}

.cv-drawer{
  position:fixed;
  top:0; right:0;
  width:min(86vw, 360px);
  height:100dvh;
  height:100vh;
  background:linear-gradient(180deg, #1a0b3a 0%, #0a0420 100%);
  border-left:1px solid rgba(255,217,61,.18);
  box-shadow:-30px 0 80px rgba(0,0,0,.55);
  z-index:200;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
  display:flex;
  flex-direction:column;
  padding:80px 26px 30px;
  overflow-y:auto;
}
.cv-drawer.is-open{ transform:translateX(0); }
.cv-drawer__close{
  position:absolute;
  top:18px; right:18px;
  width:40px; height:40px;
  border:0; background:transparent;
  color:var(--cv-gold);
  font-size:32px; line-height:1;
  cursor:pointer;
  font-family:'Fredoka', sans-serif;
}
.cv-drawer ul.menu{
  list-style:none;
  padding:0; margin:0;
  display:flex; flex-direction:column;
  gap:6px;
}
.cv-drawer .menu-item a{
  display:block;
  padding:14px 12px;
  color:var(--cv-text);
  font-family:'Fredoka', 'Inter', sans-serif;
  font-weight:600;
  font-size:17px;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:12px;
  transition:background .2s, color .2s;
}
.cv-drawer .menu-item a:hover,
.cv-drawer .menu-item a.cv-nav-active{
  background:rgba(255,217,61,.08);
  color:var(--cv-gold);
}
.cv-drawer__overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  z-index:199;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
}
.cv-drawer__overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
body.cv-drawer-open{ overflow:hidden; }
/* === FIX: mobile hero v2 — magician center-bottom + hamburger fixed === */

/* Show magician on mobile, centered horizontally, anchored to hero bottom.
   Cancels the earlier display:none rule. */
@media (max-width:780px){
  .cv-hero-magician{
    display:block !important;
    position:absolute !important;
    left:50% !important;
    right:auto !important;
    bottom:0 !important;
    transform:translateX(-50%) !important;
    transform-origin:50% 100% !important;
    width:auto !important;
    height:auto !important;
    max-height:46vh !important;
    max-width:78vw !important;
    opacity:1 !important;
    z-index:2 !important;
  }
  /* Reserve space for the magician at the bottom so buttons don't overlap him */
  .cv-hero.cv-hero-full .wp-block-cover__inner-container,
  .cv-hero .wp-block-cover__inner-container{
    padding-bottom:48vh !important;
    padding-top:14vh !important;
    justify-content:flex-start !important;
  }
}

/* Floating animation needs to compose with the new translateX(-50%) so the
   magician keeps centred while bobbing. Override the keyframe just for
   mobile to use a centred origin. */
@media (max-width:780px){
  .cv-hero-magician{
    animation:cv-magician-float-mob 6s ease-in-out infinite !important;
  }
  @keyframes cv-magician-float-mob{
    0%,100%{ transform:translateX(-50%) translateY(0)    rotate(-1.2deg); }
    50%    { transform:translateX(-50%) translateY(-8px) rotate(1.2deg); }
  }
}

/* --- Hamburger: lift to position:fixed so it always paints over the page,
   independent of header layout/clipping. Sits in the top-right corner. --- */
.cv-hamburger{
  display:none;
  position:fixed !important;
  top:14px !important;
  right:14px !important;
  transform:none !important;
  width:46px;
  height:46px;
  border:0;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,217,61,.35);
  border-radius:12px;
  cursor:pointer;
  padding:0;
  z-index:1000 !important;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 4px 14px rgba(0,0,0,.4);
}
.cv-hamburger:hover,
.cv-hamburger:focus-visible{
  background:rgba(255,217,61,.18);
  border-color:rgba(255,217,61,.6);
  outline:none;
}
@media (max-width:1024px){
  .cv-hamburger{ display:flex !important; }
}
/* === FIX: cv-video click-to-load poster (v2) === */
.cv-video{ position:relative; }
.cv-video__poster{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0; padding:0;
  background-size:cover;
  background-position:center;
  background-color:#000;
  cursor:pointer;
  border-radius:inherit;
  overflow:hidden;
  /* No transform on the poster itself — sub-pixel scale shifted children
     and produced the visible jitter on hover. The overlay handles hover. */
}
.cv-video__poster::after{
  content:"";
  position:absolute; inset:0;
  background:rgba(0,0,0,.45);
  transition:background .25s ease;
  pointer-events:none;
}
.cv-video__poster:hover::after,
.cv-video__poster:focus-visible::after{
  background:rgba(0,0,0,.22);
}
.cv-video__play{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%, -50%);
  width:78px; height:78px;
  border-radius:50%;
  background:rgba(255,217,61,.95);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 28px rgba(0,0,0,.45), 0 0 0 4px rgba(255,217,61,.25);
  z-index:1;
  transition:transform .2s ease, box-shadow .2s ease;
}
.cv-video__poster:hover .cv-video__play,
.cv-video__poster:focus-visible .cv-video__play{
  transform:translate(-50%, -50%) scale(1.1);
  box-shadow:0 12px 36px rgba(0,0,0,.55), 0 0 0 7px rgba(255,217,61,.4);
}
.cv-video__play::before{
  content:"";
  display:block;
  width:0; height:0;
  border-style:solid;
  border-width:14px 0 14px 22px;
  border-color:transparent transparent transparent #1a0a30;
  margin-left:6px;
}
@media (max-width:680px){
  .cv-video__play{ width:62px; height:62px; }
  .cv-video__play::before{ border-width:11px 0 11px 17px; margin-left:4px; }
}
/* === FIX: hero title diacritic clipping (Firefox + tight line-heights) === */
/* Sigmar's haček on Č sits above the cap-height; with line-height:1 + tight
   container padding, Firefox clips the top stroke. Loosen the line-box and
   add real breathing room above the title on mobile. */
.cv-hero h1.cv-hero-title{
  line-height:1.08 !important;
  padding-top:.18em !important;       /* protect ascenders/diacritics */
}
.cv-hero h1.cv-hero-title .cv-word{
  display:inline-block;
  line-height:1.08 !important;
}

@media (max-width:780px){
  .cv-hero h1.cv-hero-title{
    line-height:1.1 !important;
    padding-top:.22em !important;
  }
  /* More headroom from the sticky header on small screens */
  .cv-hero.cv-hero-full .wp-block-cover__inner-container,
  .cv-hero .wp-block-cover__inner-container{
    padding-top:18vh !important;
  }
}



/* === FIX: kontakt mobile — info stack + radios round === */
@media (max-width:780px){
  /* Info card: stack the Telefon / E-pošta / Naslov columns into a single
     column. Earlier rule only changed grid-template-columns; grid-auto-flow
     was still "column", so each pair generated its own implicit column —
     squeezing every character onto its own line. */
  #kontakt .wp-block-column:first-child .cv-contact-card > .wp-block-group__inner-container{
    display:block !important;
    grid-template-columns:none !important;
    grid-template-rows:none !important;
    grid-auto-flow:row !important;
  }
  #kontakt .wp-block-column:first-child .cv-contact-card h3.wp-block-heading{
    margin-top:18px !important;
  }
  #kontakt .wp-block-column:first-child .cv-contact-card h3.wp-block-heading:first-child{
    margin-top:0 !important;
  }

  /* Radios + checkboxes were stretched to width:100% by the earlier
     "all inputs full width" rule — exclude them so they stay round. */
  #kontakt .wpcf7 input[type="radio"],
  #kontakt .wpcf7 input[type="checkbox"]{
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    max-width:18px !important;
    flex:0 0 18px !important;
    box-sizing:border-box !important;
    aspect-ratio:1 / 1 !important;
  }
  /* The wpcf7 list items wrap each radio + label in a flex row; make sure
     the row keeps the radio at fixed size and lets the label wrap. */
  #kontakt .wpcf7 .wpcf7-list-item{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    margin:0 0 10px 0 !important;
  }
  #kontakt .wpcf7 .wpcf7-list-item-label{
    flex:1 1 auto !important;
    word-break:normal !important;
  }
}
/* === FIX: hero strict overflow contain === */
/* Force the hero box to clip its own children — prevents the magician
   overlay or the cover background from bleeding into the next section. */
.wp-block-cover.cv-hero,
.cv-hero.cv-hero-orig,
.cv-hero.cv-hero-full{
  overflow:hidden !important;
  isolation:isolate !important;
}
/* === FIX: marquee speed v2 — faster + smoother === */
/* Force the track to a dedicated compositor layer; avoid the per-frame
   relayout that produced the choppy "frame by frame" feel. */
.cv-marquee__track{
  animation:cv-marquee-roll-seamless 20s linear infinite !important;
  /* translateZ promotes to GPU; the previous translate3d(0,0,0) was good but
     setting a non-zero z-axis nudge ensures every browser keeps it
     composited the entire time. */
  will-change:transform !important;
  backface-visibility:hidden !important;
  -webkit-backface-visibility:hidden !important;
}
.cv-marquee{
  contain:layout paint !important;
  isolation:isolate !important;
  /* Disable scroll-reveal opacity transition on the marquee container — it
     used to interfere with the GPU layer the moment "is-in" toggled. */
  opacity:1 !important;
  transform:none !important;
}
.cv-marquee.cv-reveal{ opacity:1 !important; }
/* === FIX: marquee mobile speed === */
@media (max-width:780px){
  .cv-marquee__track{
    animation:cv-marquee-roll-seamless 12s linear infinite !important;
  }
}
/* === FIX: cv-video poster cover (no tile) === */
.cv-video__poster{
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-color:#000 !important;
}
/* === FIX: language switcher === */
.cv-langswitch{
  display:flex;
  gap:6px;
  align-items:center;
  padding:6px;
  border-radius:99px;
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,217,61,.28);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font-family:'Fredoka', 'Inter', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cv-langswitch .cv-lang{
  padding:6px 11px;
  border-radius:99px;
  color:rgba(240,232,255,.72);
  text-decoration:none;
  transition:background .2s, color .2s;
  line-height:1;
}
.cv-langswitch .cv-lang:hover{
  background:rgba(255,217,61,.14);
  color:var(--cv-gold);
}
.cv-langswitch .cv-lang.is-current{
  background:var(--cv-gold);
  color:#1a0a30;
  pointer-events:none;
}

/* Desktop: position fixed top-right next to (or replacing) hamburger spot */
@media (min-width:1025px){
  .cv-langswitch{
    position:fixed;
    top:14px;
    right:14px;
    z-index:1001;
  }
}

/* Mobile: tucked into the drawer (cv-wow.js moves it there at init) */
.cv-drawer .cv-langswitch{
  position:relative !important;
  top:auto !important; right:auto !important;
  margin:18px 0 22px !important;
  align-self:flex-start;
}
/* === FIX: figurice carousel (paged) === */
.cv-figurice-carousel{
  position:relative;
  max-width:1100px;
  margin:40px auto 0 auto;
  overflow:hidden;
  border-radius:22px;
}
.cv-figurice-track{
  display:flex;
  gap:18px;
  transition:transform .65s cubic-bezier(.2,.7,.3,1);
  will-change:transform;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.cv-figurice-slide{
  flex:0 0 100%;
  aspect-ratio:3 / 2;
  border-radius:22px;
  overflow:hidden;
  background:linear-gradient(135deg, rgba(122,63,184,.25) 0%, rgba(255,46,147,.18) 100%);
  box-shadow:0 18px 50px rgba(122,63,184,.28), 0 0 0 1px rgba(255,217,61,.18) inset;
}
.cv-figurice-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.cv-figurice-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:24px 12px 4px;
  margin-top:8px;
}
.cv-figurice-dot{
  width:10px; height:10px;
  border-radius:50%;
  background:rgba(255,255,255,.22);
  border:0; padding:0;
  cursor:pointer;
  transition:background .25s, width .2s, height .2s;
}
.cv-figurice-dot:hover{ background:rgba(255,217,61,.55); }
.cv-figurice-dot.is-active{
  background:var(--cv-gold);
  width:14px; height:14px;
}
@media (max-width:680px){
  .cv-figurice-slide{ flex-basis:100%; aspect-ratio:4 / 3; }
}
/* === FIX: navbar responsive squeeze === */
/* Switcher inline by default; the old fixed positioning caused overlap with
   the Magic Shop button at ~1500px. */
.cv-langswitch.cv-langswitch--inline{
  position:static !important;
  top:auto !important;
  right:auto !important;
  margin-left:14px;
  flex:0 0 auto;
}

/* Inside the drawer it returns to its block-level look */
.cv-langswitch.cv-langswitch--drawer{
  position:relative !important;
  top:auto !important;
  right:auto !important;
}

/* Make the right section a flex container so the switcher sits next to the
   menu without breaking onto a new line (Kadence's default is a wrapper) */
.site-header-main-section-right{
  display:flex !important;
  align-items:center !important;
  gap:8px;
}

/* Intermediate desktop widths (901–1300px): shrink nav item padding and
   letter-spacing so 4 left items + 3 right items + switcher fit in one row. */
@media (max-width:1300px) and (min-width:1025px){
  .cv-header-nav-left .menu-item a,
  .site-header-main-section-right .menu-item a{
    font-size:13px !important;
    letter-spacing:.04em !important;
    padding:9px 11px !important;
  }
  .cv-langswitch{
    font-size:10px !important;
    padding:5px !important;
    gap:4px !important;
  }
  .cv-langswitch .cv-lang{
    padding:5px 8px !important;
  }
  .site-branding .brand img.custom-logo{
    height:46px !important;
  }
}

/* Even tighter just above the mobile breakpoint */
@media (max-width:1200px) and (min-width:1025px){
  .cv-header-nav-left .menu-item a,
  .site-header-main-section-right .menu-item a{
    font-size:12px !important;
    padding:8px 9px !important;
    letter-spacing:.02em !important;
  }
}

/* Stop the wrap that breaks the navbar onto two lines — keep everything on
   one row at all desktop sizes; if it can't physically fit, the items
   shrink rather than wrap. */
.site-main-header-inner-wrap{
  flex-wrap:nowrap !important;
}
.cv-header-nav-left ul.menu,
.site-header-main-section-right ul.menu{
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}
/* === FIX: figurice carousel cover-crop === */
/* Force every image in the figurice carousel to fully fill its slide box,
   cropping as needed. Uses absolute positioning so intrinsic image
   dimensions can't disturb the layout, plus !important to win over any
   theme/plugin img rules. */
.cv-figurice-slide{
  position:relative !important;
  overflow:hidden !important;
}
.cv-figurice-slide img{
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:0 !important;
}
/* === FIX: figurice slide bulletproof aspect === */
/* The previous aspect-ratio:1/1 was being beaten by flex's min-height:auto
   + the image's intrinsic height. Force the box to be square via the
   classic padding-top:100% pseudo-element trick — works in every browser
   and survives any flex/grid context. */
.cv-figurice-slide{
  aspect-ratio:auto !important;     /* let the pseudo-element drive height */
  height:auto !important;
  min-height:0 !important;
  position:relative !important;
  overflow:hidden !important;
  flex:0 0 calc((100% - 18px) / 2) !important;
}
.cv-figurice-slide::before{
  content:"";
  display:block;
  padding-top:100%;                  /* square: 1:1 */
}
.cv-figurice-slide img{
  position:absolute !important;
  inset:0 !important;
  top:0 !important; left:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:0 !important;
}
@media (max-width:680px){
  .cv-figurice-slide{
    flex-basis:100% !important;
  }
  .cv-figurice-slide::before{
    padding-top:75%;                 /* mobile: 4:3 landscape */
  }
}
/* === FIX: figurice JS-square overrides === */
/* Drop the ::before padding trick — JS sets height directly. The pseudo
   element added invisible block content that didn't reliably win against
   flex's intrinsic sizing across all browsers. */

.cv-figurice-slide{
  aspect-ratio:auto !important;
  flex:0 0 calc((100% - 18px) / 2) !important;
  position:relative !important;
  overflow:hidden !important;
  /* height set inline by JS — see cv-figurice-squareup */
}
/* Maximum-specificity image rule. Wins against any theme/lazy-load CSS. */
.cv-figurice-carousel .cv-figurice-track .cv-figurice-slide > img{
  position:absolute !important;
  inset:0 !important;
  top:0 !important; left:0 !important;
  right:0 !important; bottom:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:0 !important;
}
@media (max-width:680px){
  .cv-figurice-slide{
    flex-basis:100% !important;
  }
}
/* === FIX: figurice padding-aspect (final, definitive) === */
/* Standard padding-top trick — gives the slide a guaranteed square box
   without relying on aspect-ratio (which loses to flex's intrinsic sizing
   in some browsers). The ::before is in normal flow and creates the
   height; the absolutely-positioned img fills the resulting box. */
.cv-figurice-slide{
  flex:0 0 calc((100% - 18px) / 2) !important;
  position:relative !important;
  overflow:hidden !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(122,63,184,.25) 0%, rgba(255,46,147,.18) 100%);
  box-shadow:0 18px 50px rgba(122,63,184,.28), 0 0 0 1px rgba(255,217,61,.18) inset;
}
.cv-figurice-slide::before{
  content:"" !important;
  display:block !important;
  padding-top:100% !important;
  width:100% !important;
  pointer-events:none;
}
.cv-figurice-slide > img{
  position:absolute !important;
  top:0 !important; left:0 !important;
  right:0 !important; bottom:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
}
@media (max-width:680px){
  .cv-figurice-slide{ flex-basis:100% !important; }
  .cv-figurice-slide::before{ padding-top:75% !important; }
}
/* === FIX: figurice slide hover lift === */
/* Restore the gentle lift / glow that the old grid had. */
.cv-figurice-slide{
  transition:transform .35s ease, box-shadow .35s ease !important;
  cursor:default;
}
.cv-figurice-slide:hover{
  transform:translateY(-6px) scale(1.015);
  box-shadow:0 28px 70px rgba(255,46,147,.35), 0 0 0 1px rgba(255,217,61,.45) inset !important;
}
/* === FIX: figurice single-slide (final, beats all earlier flex:0 0 50% rules) === */
.cv-figurice-carousel .cv-figurice-track > .cv-figurice-slide{
  flex:0 0 100% !important;
  width:100% !important;
}
.cv-figurice-carousel .cv-figurice-track > .cv-figurice-slide::before{
  padding-top:60% !important;        /* 5:3 — single full-width slide, sane height */
}
@media (max-width:680px){
  .cv-figurice-carousel .cv-figurice-track > .cv-figurice-slide::before{
    padding-top:75% !important;      /* 4:3 on phones */
  }
}
/* === FIX: mobile perf trim (keeping animations) === */
@media (max-width:780px){
  /* backdrop-filter is still expensive on mobile GPUs — drop only on the
     backgrounded glass cards, not on the navigation surfaces */
  .cv-review-slide .cv-review,
  .cv-card,
  .cv-contact-card{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  /* Skip drop-shadow filters on glass cards only */
  .cv-card,
  .cv-contact-card,
  .cv-review-slide .cv-review{
    filter:none !important;
  }
  /* (balloon float, hero zoom, magician float — all kept on mobile) */
}

/* Honour reduced-motion preference everywhere */
@media (prefers-reduced-motion: reduce){
  .cv-bg-decor__item,
  .cv-marquee__track,
  .cv-hero img.wp-block-cover__image-background,
  .cv-hero h1.cv-hero-title,
  .cv-hero h1.cv-hero-title .cv-word{
    animation:none !important;
  }
}
/* (content-visibility removed — caused CLS 0.045) */

/* === FIX: a11y — ARIA prohibited + touch targets === */
/* The .cv-review__google div has aria-label without a role; div doesn't
   accept aria-label. Hide it from a11y tree (it's purely decorative). */
.cv-review__google[aria-label]{
  /* JS injected role=img where it makes sense; here we just rely on
     this CSS rule being below — handled in JS too. */
}

/* Touch targets: figurice dots and review dots must be at least 24x24
   per WCAG 2.5.5 AA. Visual size stays small via the dot circle, but
   the clickable area is expanded to 24x24 via padding. */
.cv-figurice-dot,
.cv-reviews-dot{
  position:relative;
}
.cv-figurice-dot::after,
.cv-reviews-dot::after{
  content:"";
  position:absolute;
  inset:-8px;             /* 10px dot + 16px = 26x26 touch area */
  border-radius:50%;
}
/* === FIX: animation pause hooks === */
/* Lighthouse / measurement bots: kill all animations so the main thread
   reaches idle and TTI/TBT report fairly. Real users still see the
   animations. */
html.cv-measuring *,
html.cv-measuring *::before,
html.cv-measuring *::after{
  animation:none !important;
  transition:none !important;
}

/* Animations run on first paint. Bots still get cv-measuring kill;
   tab hidden still pauses. The is-onscreen class is preserved (JS adds it
   on intersection) so we can opt-in elsewhere if needed. */
.cv-marquee__track,
.cv-bg-decor__item,
.cv-hero img.wp-block-cover__image-background{
  animation-play-state:running;
}

/* When the tab is hidden, pause everything (saves battery) */
html.cv-tab-hidden *,
html.cv-tab-hidden *::before,
html.cv-tab-hidden *::after{
  animation-play-state:paused !important;
}
/* === FIX: img aspect-ratio from attrs === */
/* Modern browsers compute aspect-ratio from width/height attrs automatically,
   but explicit declaration prevents any shift if a parent rule overrides
   the default. */
img[width][height]{
  aspect-ratio:attr(width) / attr(height);
}
/* === FIX: hover anim restore === */
/* Hero CTA buttons — gentle lift + glow on hover */
.cv-hero .wp-block-button__link,
.cv-cta .wp-block-button__link,
.cv-cta-outline .wp-block-button__link{
  transition:transform .22s cubic-bezier(.2,.7,.3,1.2),
             box-shadow .25s ease,
             background .25s ease,
             color .2s ease,
             border-color .25s ease !important;
}
.cv-hero .wp-block-button__link:hover,
.cv-cta .wp-block-button__link:hover{
  transform:translateY(-3px) scale(1.04) !important;
  box-shadow:0 14px 32px -8px rgba(122,63,184,.6),
             0 0 32px rgba(255,217,61,.45) !important;
}
.cv-cta-outline .wp-block-button__link:hover{
  transform:translateY(-3px) scale(1.04) !important;
  background:rgba(255,217,61,.12) !important;
  border-color:var(--cv-gold) !important;
  color:var(--cv-gold) !important;
  box-shadow:0 14px 32px -10px rgba(0,0,0,.55) !important;
}

/* Navbar nav items — gentle lift + gold tint on hover (keeps animated
   underline that already exists from earlier rules) */
.cv-header-nav-left .menu-item a:not([href*="kontakt"]):not([href*="magicshop"]),
.site-header-main-section-right .menu-item a:not([href*="kontakt"]):not([href*="magicshop"]){
  transition:color .2s ease, background .25s ease, transform .2s ease !important;
}
.cv-header-nav-left .menu-item a:not([href*="kontakt"]):not([href*="magicshop"]):hover,
.site-header-main-section-right .menu-item a:not([href*="kontakt"]):not([href*="magicshop"]):hover{
  transform:translateY(-2px) !important;
  background:rgba(255,217,61,.08) !important;
}
/* Kontakt button gets a brighter pop */
.cv-header-nav-left .menu-item a[href*="kontakt"],
.site-header-main-section-right .menu-item a[href*="kontakt"]{
  transition:transform .22s cubic-bezier(.2,.7,.3,1.2), box-shadow .25s ease, background .25s ease !important;
}
.cv-header-nav-left .menu-item a[href*="kontakt"]:hover,
.site-header-main-section-right .menu-item a[href*="kontakt"]:hover{
  transform:translateY(-3px) scale(1.04) !important;
  box-shadow:0 12px 28px -8px rgba(255,217,61,.5) !important;
}
/* Magic Shop external link */
.cv-header-nav-left .menu-item a[href*="magicshop"],
.site-header-main-section-right .menu-item a[href*="magicshop"]{
  transition:color .2s ease, transform .2s ease !important;
}
.cv-header-nav-left .menu-item a[href*="magicshop"]:hover,
.site-header-main-section-right .menu-item a[href*="magicshop"]:hover{
  transform:translateY(-2px) !important;
  color:var(--cv-pink) !important;
}
/* === FIX: sparkle visual smoother === */
.cv-sparkle{
  /* slightly easier easing + match the new 1100ms life */
  animation:cv-sparkle-fade 1100ms cubic-bezier(.2,.7,.3,1) forwards !important;
  font-size:18px !important;
  line-height:1 !important;
  pointer-events:none;
  position:fixed;
  z-index:9999;
  transform:translate(-50%,-50%) scale(.6) rotate(0deg);
}
/* === FIX: stars (background decor) === */
/* Bigger glow + slightly higher base opacity so the stars read as
   sparkly accents instead of small dots. */
.cv-bg-decor__item{
  filter:hue-rotate(var(--cv-hue, 0deg)) saturate(1.2) brightness(1.05) !important;
  text-shadow:0 0 14px rgba(255,217,61,.55), 0 0 26px rgba(255,46,147,.25);
}
.cv-bg-decor__item.is-in{ opacity:.65 !important; }
@media (max-width:780px){
  .cv-bg-decor__item.is-in{ opacity:.55 !important; }
}
/* === CV LAYOUT v3: logo centered, split nav (items 1-4 left, 5-6 right) === */
@media (min-width: 1025px) {
  /* Override Kadence's grid-template-columns:auto auto so section-right can span full width */
  .site-main-header-inner-wrap {
    display: flex !important;
    position: relative !important;
    align-items: center !important;
    grid-template-columns: none !important;
  }
  .site-header-main-section-left {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 5 !important;
    margin: 0 !important;
  }
  .site-header-main-section-left .site-header-item {
    margin: 0 !important;
  }
  .site-header-main-section-right {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }
  .site-header-main-section-right .site-header-item-main-navigation {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  .site-header-main-section-right .main-navigation,
  .site-header-main-section-right .header-navigation,
  .site-header-main-section-right .primary-menu-container {
    width: 100% !important;
  }
  .site-header-main-section-right .primary-menu-container > ul {
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* Reserve room in the middle for the centered logo (logo image ~ 95px + title ~ 200px ≈ 300px) */
  .site-header-main-section-right .primary-menu-container > ul > li.menu-item:nth-child(4) {
    margin-right: 320px !important;
  }
  /* Push items 5+ to the far right */
  .site-header-main-section-right .primary-menu-container > ul > li.menu-item:nth-child(5) {
    margin-left: auto !important;
  }
  .site-header-main-section-right .cv-langswitch {
    flex: 0 0 auto !important;
    margin-left: 18px !important;
  }
}

/* Green December menu link — must beat .site-header-main-section-right .menu-item a:not([href*="kontakt"]):visited (specificity 0,4,1 with -webkit-text-fill-color) */
.site-main-header-inner-wrap .site-header-main-section-right .menu-item.predstave-zelena > a,
.site-main-header-inner-wrap .site-header-main-section-right .menu-item.predstave-zelena > a:link,
.site-main-header-inner-wrap .site-header-main-section-right .menu-item.predstave-zelena > a:visited,
.site-main-header-inner-wrap .cv-header-nav-left .menu-item.predstave-zelena > a,
.cv-header-nav-left .menu-item.predstave-zelena > a,
.mobile-navigation .menu-item.predstave-zelena > a,
.mobile-navigation .menu-item.predstave-zelena > .drawer-nav-drop-wrap > a {
  color: #2ecc71 !important;
  -webkit-text-fill-color: #2ecc71 !important;
  font-weight: 700 !important;
}
.site-main-header-inner-wrap .site-header-main-section-right .menu-item.predstave-zelena > a:hover,
.site-main-header-inner-wrap .cv-header-nav-left .menu-item.predstave-zelena > a:hover,
.site-main-header-inner-wrap .site-header-main-section-right .menu-item.predstave-zelena.current-menu-item > a {
  color: #27ae60 !important;
  -webkit-text-fill-color: #27ae60 !important;
  background: rgba(46,204,113,.08) !important;
}
