:root{
  --bg:#ffffff;
  --text:#000000;
  --text-dim:#666666;
  --border:#e8e8e8;
  --font-main:"Neue Haas Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  --side-pad:60px;
  --max-w:1600px;
  --line:1.5px;

  --arrow:54px;
  --arrow-sm:48px;
}

/* =========================
   RESET / BASE (clean)
   ========================= */
*{margin:0;padding:0;box-sizing:border-box;border-radius:0!important;}
*,*::before,*::after{-webkit-tap-highlight-color:transparent!important;-webkit-focus-ring-color:transparent!important;}
a,button,input,textarea,select,[role="button"]{outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important;}
:focus,:focus-visible{outline:none!important;box-shadow:none!important;}
::selection{background:transparent;color:inherit;}
::-moz-selection{background:transparent;color:inherit;}

html,body{height:100%;}
body{
  font-family:var(--font-main);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  scroll-behavior:smooth;
}
body.sidebar-open{overflow:hidden;}

img,video{max-width:100%;display:block;}
button{font:inherit;background:none;border:none;cursor:pointer;}
a{text-decoration:none;color:inherit;}

/* =========================
   NOISE / BG
   ========================= */
.noise-overlay{
  position:fixed;top:-50%;left:-50%;width:200%;height:200%;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  opacity:0.04;pointer-events:none;z-index:9999;animation:noise-anim .2s infinite;
}
@keyframes noise-anim{
  0%{transform:translate(0,0)}
  50%{transform:translate(-5%,5%)}
  100%{transform:translate(5%,-5%)}
}
#interactive-bg{
  position:fixed;top:0;left:0;width:100%;height:100%;
  z-index:-1;pointer-events:none;opacity:.15;
}

.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--side-pad);}

/* =========================
   BUTTONS
   ========================= */
.btn-raw{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 32px;border:var(--line) solid #000;background:transparent;color:#000;
  font-size:.7rem;font-weight:900;text-transform:uppercase;
  letter-spacing:2px;transition:background .18s ease,color .18s ease,border-color .18s ease;
  cursor:pointer;user-select:none;white-space:nowrap;line-height:1;
}
.btn-raw:hover{background:#000;color:#fff;border-color:#000;}
.btn-full{width:100%;}
.btn-stack{display:flex;flex-direction:column;gap:12px;}

/* =========================
   HEADER
   ========================= */
header{
  position:sticky;top:0;z-index:1000;
  background:rgba(255,255,255,.95);
  border-bottom:var(--line) solid var(--text);
  backdrop-filter:blur(15px);
}
.header-inner{
  max-width:var(--max-w);margin:0 auto;height:85px;padding:0 var(--side-pad);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:40px;
}
.logo{
  font-weight:900;font-size:1.4rem;letter-spacing:-1.5px;text-transform:uppercase;
  color:#000;user-select:none;white-space:nowrap;
}
nav.main-nav{display:flex;justify-content:center;align-items:center;gap:26px;white-space:nowrap;}
nav.main-nav a{color:var(--text);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;user-select:none;}
.header-tools{display:flex;align-items:center;gap:12px;white-space:nowrap;user-select:none;}

.icon-btn{
  width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
  border:var(--line) solid #000;background:transparent;color:#000;cursor:pointer;
  transition:opacity .2s ease, transform .2s ease;
}
.icon-btn:hover{opacity:.7;transform:translateY(-1px)}
.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.lang-switcher{font-size:.75rem;font-weight:900;border-left:var(--line) solid #000;padding-left:15px;cursor:pointer;user-select:none;}

.desktop-only{display:flex}
.mobile-only{display:none!important}
.hamburger{display:flex;flex-direction:column;gap:5px;cursor:pointer;width:22px;user-select:none;}
.hamburger span{width:100%;height:2px;background:#000}

@media (max-width:1280px){
  nav.main-nav{gap:18px}
  nav.main-nav a{font-size:.72rem;letter-spacing:1.2px}
  .header-inner{column-gap:24px}
}

/* =========================
   SIDEBAR
   ========================= */
.sidebar{
  position:fixed;top:0;left:0;width:400px;height:100vh;background:#fff;z-index:2000;
  border-right:var(--line) solid var(--text);transform:translateX(-100%);
  transition:transform .5s cubic-bezier(.8,0,.2,1);padding:40px;overflow-y:auto;
}
.sidebar.active{transform:translateX(0)}
.sidebar-overlay{
  position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.1);
  backdrop-filter:blur(5px);z-index:1999;display:none;
}
.sidebar-overlay.active{display:block}
.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;border-bottom:1px solid var(--border);padding-bottom:18px;}
.close-sidebar{font-weight:900;font-size:.75rem;letter-spacing:1px;text-transform:uppercase;cursor:pointer;opacity:.65;user-select:none;}
.close-sidebar:hover{opacity:1}
.sidebar-menu-list{list-style:none}
.sidebar-menu-list li{
  display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);
  font-size:1.05rem;font-weight:900;text-transform:uppercase;cursor:pointer;user-select:none;
  transition:opacity .2s ease, transform .2s ease;
}
.sidebar-menu-list li:hover{opacity:.65;transform:translateX(2px)}
.sidebar-menu-list li span{opacity:.35;font-weight:900}

/* =========================
   HERO
   ========================= */
.product-hero{padding:70px 0 26px;}
.product-hero h1{
  font-size:clamp(2.6rem,6vw,5rem);
  font-weight:900;text-transform:uppercase;letter-spacing:-3px;line-height:1;
  margin-bottom:12px;
}
.product-hero p{
  max-width:980px;font-size:1rem;font-weight:700;color:var(--text-dim);line-height:1.6;margin-top:14px;
}

/* META pills */
.meta-row{
  display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:10px;
}
.meta-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 14px;
  font-weight:900;
  font-size:.7rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#000;
  border:var(--line) solid rgba(0,0,0,.18);
  background:#fff;
  max-width:100%;
  white-space:nowrap;
}
.meta-pill strong{letter-spacing:1px;font-size:.78rem;}
.meta-dot{width:10px;height:10px;border-radius:999px!important;}
.dot-green{background:#34c759;}
.dot-red{background:#ff3b30;}

/* =========================
   TOP GRID
   ========================= */
.product-top{padding:18px 0 70px;}
.top-grid{
  display:grid;
  grid-template-columns: 1.35fr .85fr;
  gap:26px;
  align-items:start;
}

/* =========================
   GALLERY
   ========================= */
.gallery{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;}
.main-shot{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  background:#000;
}
.main-shot img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
  filter:brightness(.92);
}
.main-shot::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.70) 0%, rgba(0,0,0,0) 58%);
  z-index:1;pointer-events:none;
}

/* corners */
.corner{
  position:absolute;width:22px;height:22px;border:var(--line) solid #fff;opacity:0;
  z-index:3;pointer-events:none;transition:opacity .25s ease;
}
.c-tl{top:22px;left:22px;border-right:none;border-bottom:none;}
.c-tr{top:22px;right:22px;border-left:none;border-bottom:none;}
.c-bl{bottom:22px;left:22px;border-right:none;border-top:none;}
.c-br{bottom:22px;right:22px;border-left:none;border-top:none;}
@media (min-width:1025px){.main-shot:hover .corner{opacity:1;}}

/* unified arrows (absolute only in gallery/sim, NOT calendar) */
.sq-arrow{
  width:var(--arrow);height:var(--arrow);
  border:var(--line) solid #000;background:#fff;
  display:flex;align-items:center;justify-content:center;
  user-select:none;
  transition:opacity .18s ease, transform .18s ease, background .18s ease;
}
.sq-arrow svg{width:18px;height:18px;stroke:#000;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .18s ease;}
.sq-arrow:hover{background:#000;transform:translateY(-1px);}
.sq-arrow:hover svg{stroke:#fff;}
.sq-arrow:active{transform:none;}

/* gallery arrows positioning */
.main-shot .sq-arrow{
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:4;
}
.main-shot .sq-arrow:hover{transform:translateY(-50%) translateY(-1px) !important;}
.main-shot .sq-arrow:active{transform:translateY(-50%) !important;}
.main-shot .sq-arrow.prev{left:14px;}
.main-shot .sq-arrow.next{right:14px;}

/* thumbs row */
.thumbs{
  display:flex;gap:12px;
  overflow:auto;
  padding-bottom:6px;
  scrollbar-width:none;
}
.thumbs::-webkit-scrollbar{display:none}
.thumb{
  width:96px;min-width:96px;
  aspect-ratio:1/1;
  border:var(--line) solid rgba(0,0,0,.12);
  background:#fff;
  cursor:pointer;
  overflow:hidden;
  user-select:none;
}
.thumb img{width:100%;height:100%;object-fit:cover;filter:brightness(.92);}
.thumb.active{border-color:#000;}

/* =========================
   PANEL
   ========================= */
.panel{
  position:relative;
  background:#fff;
  padding:34px;
  border:var(--line) solid rgba(0,0,0,.10);
}
.panel .corner{border-color:#000;opacity:1;width:20px;height:20px;}
.panel .c-tl{top:22px;left:22px;}
.panel .c-tr{top:22px;right:22px;}
.panel .c-bl{bottom:22px;left:22px;}
.panel .c-br{bottom:22px;right:22px;}

.panel h2{font-size:1.35rem;font-weight:900;text-transform:uppercase;letter-spacing:-.5px;margin-bottom:10px;}
.panel .subttl{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:#777;margin-bottom:26px;}

/* =========================
   CALENDAR — HARD FIX
   ========================= */
.cal{position:relative;}
.cal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.cal-month{
  font-size:1.1rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:3px;
  line-height:1.1;
  padding-top:6px;
}

/* calendar nav: never absolute */
.cal-nav{display:flex;gap:10px;flex:0 0 auto;align-items:flex-start;}
.cal-nav .sq-arrow{
  position:static !important;
  transform:none !important;
  width:56px !important;
  height:56px !important;
}
.cal-nav .sq-arrow:hover{transform:translateY(-1px) !important;}
.cal-nav .sq-arrow:active{transform:none !important;}

/* grid must stay grid (WP themes sometimes override display) */
.cal-grid{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
  gap:8px 10px !important;
  padding:18px 2px 6px !important;
  align-items:stretch;
}

/* DOW on 1 row */
.cal-dow{
  font-size:.7rem;
  font-weight:900;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#777;
  text-align:center;
  padding:6px 0 14px;
}

/* day cells */
.day{
  height:56px;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:900;
  font-size:1.05rem;
  color:#000;
  cursor:pointer;
  user-select:none;
  position:relative;
}
.day.muted{opacity:.35;cursor:not-allowed;}
.day::after{
  content:"";
  position:absolute;
  left:16%;
  right:16%;
  bottom:10px;
  height:1px;
  background:rgba(0,0,0,.14);
}
.day.avail::after{background:rgba(52,199,89,.95);}
.day.busy::after{background:rgba(255,59,48,.95);}
.day.selected::after{background:#000;height:2px;left:14%;right:14%;}

.range-info{margin-top:18px;display:grid;gap:12px;}
.field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;}
.label{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:#777;}

/* qty */
.qty{
  margin-top:18px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  width:100%;
  max-width:340px;
}
.qty-btn{
  width:62px;height:56px;
  border:var(--line) solid #000;background:#fff;
  font-weight:900;font-size:1.2rem;
  transition:background .18s ease,color .18s ease,opacity .18s ease,transform .18s ease;
}
.qty-btn:hover{background:#000;color:#fff;}
.qty-btn:disabled{opacity:.25;cursor:not-allowed;background:#fff;color:#000;}
.qty-val{
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:1.2rem;
  border-bottom:1px solid rgba(0,0,0,.25);
}
.stock{margin-top:10px;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:#777;}

/* hours */
.time-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}
select{
  height:52px;
  border:var(--line) solid #000;
  background:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:.68rem;
  padding:0 12px;
  cursor:pointer;
}

/* =========================
   VIDEO
   ========================= */
.product-video{padding:0 0 70px;}
.product-video.is-hidden,
.product-video[hidden]{display:none !important;}

.video-frame{
  aspect-ratio:16/9;
  background:#000;
  overflow:hidden;
  position:relative;
  border:var(--line) solid rgba(0,0,0,.10);
}
.video-frame video{position:absolute;inset:0;width:100%;height:100%;}

/* =========================
   SPEC
   ========================= */
.spec{padding:10px 0 80px;border-top:var(--line) solid #000;}
.spec h2{
  font-size:clamp(2.2rem,5vw,3.6rem);
  font-weight:900;text-transform:uppercase;letter-spacing:-3px;
  margin:60px 0 22px;
}
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.spec-card{
  border:var(--line) solid rgba(0,0,0,.10);
  padding:26px;
  position:relative;
  background:#fff;
}
.spec-card .corner{border-color:#000;opacity:1;width:18px;height:18px;}
.spec-card .c-tl{top:16px;left:16px;}
.spec-card .c-tr{top:16px;right:16px;}
.spec-card .c-bl{bottom:16px;left:16px;}
.spec-card .c-br{bottom:16px;right:16px;}
.spec-card h3{font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:#777;margin-bottom:16px;}
.spec-card ul{list-style:none;display:grid;gap:10px;}
.spec-card li{font-weight:800;text-transform:uppercase;letter-spacing:1px;font-size:.85rem;}

.spec-table{display:grid;gap:10px;}
.spec-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.spec-row .k{font-size:.7rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:#777;}
.spec-row .v{font-weight:900;text-transform:uppercase;letter-spacing:.6px;text-align:right;}

/* =========================
   SIMILAR — HARD FIX
   ========================= */
.similar{padding:0 0 90px;}
.similar h2{
  font-size:clamp(2.2rem,5vw,3.6rem);
  font-weight:900;text-transform:uppercase;letter-spacing:-3px;
  margin:0 0 22px;
}

/* parent must be relative or arrows escape */
.sim-wrap{position:relative !important;}

/* reserve space so arrows don't cover cards */
.sim-track{
  overflow:hidden;
  padding:6px 72px; /* space for arrows */
}
.sim-scroller{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding:6px 0;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
}
.sim-scroller::-webkit-scrollbar{display:none}

.sim-wrap .sim-arrow{
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:20;
}
.sim-wrap .sim-arrow.prev{left:0;}
.sim-wrap .sim-arrow.next{right:0;}
.sim-wrap .sim-arrow:hover{transform:translateY(-50%) translateY(-1px) !important;}
.sim-wrap .sim-arrow:active{transform:translateY(-50%) !important;}

.p-card{
  position:relative;
  width:340px;
  flex:0 0 auto;
  aspect-ratio:1/1;
  background:#000;
  overflow:hidden;
  color:#fff;
  user-select:none;
  scroll-snap-align:start;
}
.p-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.62);z-index:0;}
.p-card::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,0) 62%);
  z-index:1;pointer-events:none;
}
.p-card .corner{opacity:0;}
@media (min-width:1025px){.p-card:hover .corner{opacity:1;}}

.top-tags{
  position:absolute;top:20px;left:20px;right:20px;z-index:4;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;
  pointer-events:none;
  transition:opacity .18s ease;
}
.tag{
  padding:10px 12px;
  font-weight:900;font-size:.68rem;
  letter-spacing:3px;text-transform:uppercase;color:#fff;
  background:rgba(0,0,0,.18);
  backdrop-filter:blur(2px);
  display:inline-flex;align-items:center;gap:10px;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.status-dot{width:10px;height:10px;border-radius:999px!important;flex:0 0 auto;}
.p-pad{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:3;}
.p-title{font-size:1.9rem;font-weight:900;letter-spacing:-.7px;text-transform:uppercase;line-height:1.05;margin-bottom:10px;word-break:break-word;}
.p-sub{font-size:.85rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:14px;word-break:break-word;}
.p-price{font-size:1.05rem;font-weight:900;text-transform:uppercase;margin-bottom:10px;}

.p-actions{display:none;margin-top:10px;}
.p-actions .btn-raw{width:100%;border-color:#fff;color:#fff;justify-content:center;}
.p-actions .btn-raw:hover{background:#fff;color:#000;border-color:#fff;}

@media (min-width:1025px){
  .p-card:hover .p-sub,
  .p-card:hover .p-price,
  .p-card:hover .top-tags{opacity:0;pointer-events:none;}
  .p-card:hover .p-actions{display:flex;}
}

/* =========================
   FOOTER / TOP BTN
   ========================= */
footer{padding:80px var(--side-pad) 120px;border-top:var(--line) solid #000;background:#fff;}
.footer-grid{
  max-width:var(--max-w);margin:0 auto;display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:60px;
}
.footer-col h4{font-size:.7rem;font-weight:900;text-transform:uppercase;margin-bottom:25px;color:var(--text-dim);}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:12px}
.footer-col a{color:#000;font-weight:800;font-size:.85rem;text-transform:uppercase;}
.footer-brand p{margin-top:10px;color:#000;font-weight:700;opacity:.75}
.footer-bottom{
  max-width:var(--max-w);margin:0 auto;padding-top:40px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;gap:30px;
}
.footer-legal{display:flex;flex-direction:column;gap:10px;}
.legal-links{display:flex;align-items:center;gap:10px;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:1px;}
.legal-links a{color:#000;opacity:.65;transition:opacity .2s ease}
.legal-links a:hover{opacity:1}
.legal-links .dot{opacity:.35;font-weight:900}
.payment-methods{display:flex;gap:12px;filter:grayscale(1);opacity:.6}
.payment-methods span{font-size:.55rem;font-weight:900;border:1px solid #000;padding:3px 6px}

#scrollTop{
  position:fixed;bottom:0;right:0;width:60px;height:45px;background:#000;color:#fff;border:none;cursor:pointer;z-index:1001;
  font-weight:900;font-size:.6rem;text-transform:uppercase;display:flex;align-items:center;justify-content:center;
}

/* =========================
   RWD
   ========================= */
@media (max-width:1024px){
  :root{--side-pad:30px;}
  .sidebar{width:100%;}
  .top-grid{grid-template-columns:1fr;}
  .spec-grid{grid-template-columns:1fr;}
  .p-card{width:320px;}
}

@media (max-width:768px){
  .desktop-only{display:none!important}
  .mobile-only{display:flex!important}
  .header-inner{display:grid;grid-template-columns:1fr auto 1fr;padding:0 20px;height:85px;column-gap:10px;}
  .logo{font-size:1.1rem;}
  .panel{padding:30px;}

  /* smaller arrows on mobile */
  .sq-arrow{width:var(--arrow-sm);height:var(--arrow-sm);}

  /* similar arrows spacing */
  .sim-track{padding:6px 58px;}

  footer{ padding:70px var(--side-pad) 90px; }
  .footer-grid{grid-template-columns:1fr;gap:28px;text-align:center;justify-items:center;}
  .footer-bottom{flex-direction:column;align-items:center;text-align:center;gap:18px;}
  .legal-links{justify-content:center;flex-wrap:wrap;}
  .payment-methods{justify-content:center;flex-wrap:wrap;gap:10px;}
}

@media (max-width:420px){
  .panel{padding:28px;}
  .p-card{width:86vw;}
  .thumb{width:84px;min-width:84px;}
}

/* =========================
   BUTTONS – black outline → black fill on hover
   ========================= */

/* bazowy stan */
.btn-raw,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button{
  background:transparent !important;
  color:#000 !important;
  border:1.5px solid #000 !important;
  box-shadow:none !important;
  transition:
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    opacity .18s ease;
}

/* hover / focus */
.btn-raw:hover,
.btn-raw:focus,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
}

/* CTA – ten sam styl, ale bez zmiany opacity */
#goCheckout.btn-raw:hover{
  opacity:1 !important;
}

/* disabled (np. Woo / qty / checkout) */
.btn-raw:disabled,
.woocommerce button.button:disabled{
  opacity:.35 !important;
  cursor:not-allowed;
  background:transparent !important;
  color:#000 !important;
}

.product-pdf-wrap{ margin-top:22px; }
.product-pdf-btn{ display:inline-flex; }

/* wrapper opisu produktu */
.product-description{
  position:relative;
  padding-bottom:80px; /* robi miejsce na button */
}

/* kontener buttona */
.product-pdf-wrap{
  position:absolute;
  left:50%;
  bottom:22px;            /* IDENTYCZNIE jak rogi */
  transform:translateX(-50%);
  margin:0;
}

/* sam button */
.product-pdf-btn{
  min-width:260px;
  text-align:center;
}

/* ====== VIDEO in gallery ====== */
.main-shot video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:none;          /* pokażemy dopiero gdy aktywne */
  z-index:2;
  background:#000;
}

/* thumb video tile */
.thumb.is-video{
  position:relative;
  background:#000;
}

.thumb.is-video::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
  pointer-events:none;
}

.thumb.is-video::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:38px;
  height:38px;
  transform:translate(-50%,-50%);
  border:1.5px solid #fff;
  background:rgba(0,0,0,.35);
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;
}

.thumb.is-video .play-ico{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-40%,-50%);
  width:0;
  height:0;
  border-left:12px solid #fff;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  z-index:3;
  pointer-events:none;
}

/* ukrywamy sekcję video pod galerią (już niepotrzebna) */
#productVideoSection{ display:none !important; }

/* =========================================================
   RAWTAKES — VIDEO THUMB FIX
   - usuwa wszystkie nakładki/ramki/pseudo-elementy na kafelku VIDEO
   - zostawia miniaturę jak zwykłe zdjęcie + mały biały badge "VIDEO"
   Target: #thumbs .thumb.is-video[data-type="video"]
========================================================= */

/* 1) Zabij pseudo-elementy, które robią "ramki" / overlay */
#thumbs .thumb.is-video[data-type="video"]::before,
#thumbs .thumb.is-video[data-type="video"]::after,
#thumbs .thumb.is-video[data-type="video"] *::before,
#thumbs .thumb.is-video[data-type="video"] *::after {
  content: none !important;
  display: none !important;
}

/* 2) Upewnij się, że sam kafelek nie dostaje dodatkowych efektów */
#thumbs .thumb.is-video[data-type="video"]{
  position: relative !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}

/* 3) Miniatura wideo = normalne zdjęcie (bez opacity/filtrów/skalowania) */
#thumbs .thumb.is-video[data-type="video"] img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  mix-blend-mode: normal !important;
}

/* 4) Jeśli Twój theme dodaje overlay przez inne elementy (np. span/play/pseudo), to ukryj wszystko
      OPRÓCZ badge z napisem VIDEO.
      Badge u Ciebie jest jedynym spanem dodanym przez JS, więc zostawiamy go,
      ale kasujemy ewentualne dodatkowe "ikony" jeśli byłyby dołożone gdzieś indziej. */
#thumbs .thumb.is-video[data-type="video"] .play-ico,
#thumbs .thumb.is-video[data-type="video"] .playIcon,
#thumbs .thumb.is-video[data-type="video"] .icon,
#thumbs .thumb.is-video[data-type="video"] svg{
  display: none !important;
}

/* 5) Badge "VIDEO" — wyśrodkowany mały biały frame
      (Twój JS już nadaje inline style, ale tu robimy "twarde" ujednolicenie i centrowanie) */
#thumbs .thumb.is-video[data-type="video"] > span{
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;

  background: #fff !important;
  border: 1.5px solid #000 !important;
  padding: 6px 10px !important;

  font-weight: 900 !important;
  font-size: .72rem !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  white-space: nowrap !important;

  z-index: 10 !important;
  pointer-events: none !important;

  /* usuń ewentualne “ramki”/cienie narzucone globalnie */
  box-shadow: none !important;
  outline: none !important;
}

/* 6) Jeśli aktywny thumb dostaje dodatkową "ramkę" (często theme robi to na .thumb.active),
      to WYŁĄCZ to tylko dla video kafelka */
#thumbs .thumb.is-video[data-type="video"].active{
  outline: none !important;
  box-shadow: none !important;
}

#thumbs .thumb.is-video[data-type="video"].active img{
  outline: none !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}

/* =========================================================
   SPEC (Opis / Dane) — dopasowane do .panel
   - identyczny border/odstępy jak panel
   - h3 nie wchodzi w cornery
   - PDF button wyśrodkowany i "dociągnięty" do linii cornerów
========================================================= */

.spec-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
}

/* karta jak panel */
.spec-card{
  position:relative;
  background:#fff;
  border:var(--line) solid rgba(0,0,0,.10);
  padding:34px;                 /* jak .panel */
  min-height:340px;             /* mniejsze, ale dalej “oddycha” */
  overflow:hidden;              /* żeby nic nie wychodziło */
}

/* cornery identyczne jak w panelu */
.spec-card .corner{
  border:var(--line) solid #000;
  opacity:1;
  width:20px;
  height:20px;
  pointer-events:none;
  position:absolute;
  z-index:3;
}
.spec-card .c-tl{top:22px;left:22px;border-right:none;border-bottom:none;}
.spec-card .c-tr{top:22px;right:22px;border-left:none;border-bottom:none;}
.spec-card .c-bl{bottom:22px;left:22px;border-right:none;border-top:none;}
.spec-card .c-br{bottom:22px;right:22px;border-left:none;border-top:none;}

/* tytuł OPIS / DANE — nie chowa się za cornerem */
.spec-card > h3{
  margin:0 0 18px 0;
  padding-top:18px;             /* spycha pod górne cornery */
  padding-left:18px;            /* spycha od lewego cornera */
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:3px;
  color:#777;
}

/* zawartość tabeli */
.spec-card .spec-table{
  display:grid;
  gap:10px;
  margin-top:6px;
}

/* wiersze danych */
.spec-card .spec-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.spec-card .spec-row .k{
  font-size:.7rem;
  font-weight:900;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#777;
}
.spec-card .spec-row .v{
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.6px;
  text-align:right;
}

/* PDF CTA — doklejony do dołu, ale równo z linią cornerów */
.spec-card .rawtakes-pdf-cta{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:22px;                  /* identycznie jak bottom cornerów */
  margin:0;
  z-index:2;
  display:flex;
  justify-content:center;
  width:calc(100% - 68px);       /* nie wpada w boczne obszary */
  pointer-events:auto;
}

/* button jak reszta .btn-raw — tylko rozmiar dopasowany */
.spec-card .rawtakes-pdf-btn{
  min-width:360px;
  height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* żeby treść nie wchodziła pod button */
.spec-card .spec-table{
  padding-bottom:90px;           /* robi miejsce na CTA */
}

/* RWD */
@media (max-width:1024px){
  .spec-grid{grid-template-columns:1fr;}
}

@media (max-width:768px){
  .spec-card{
    padding:30px;
    min-height:300px;
  }
  .spec-card .rawtakes-pdf-btn{
    min-width:240px;
    height:52px;
  }
  .spec-card .rawtakes-pdf-cta{
    width:calc(100% - 60px);
  }
}
