/* ====== STEPS ====== */
.steps__grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
}
.steps__item{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 14px;
}
.steps__h{ color: rgba(235,245,255,.94); margin:0 0 6px 0; }
.steps__p{ color: var(--muted); margin:0; }
.steps__meta{ color: rgba(47,209,255,.85); font-weight:700; margin-top:10px; }

/* ====== MATERIALS ====== */
.materials__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
}
.materials__item{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 14px;
}
.materials__h{ color: rgba(235,245,255,.94); margin:0 0 6px 0; }
.materials__p{ color: var(--muted); margin:0; }
.materials__tags{ color: rgba(47,209,255,.85); margin-top: 10px; }

/* ====== GALLERY ====== */
.gallery__grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
}
.gallery__item{
  aspect-ratio: 1 / 1;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.12);
  position: relative;
  overflow:hidden;
}
.gallery__item::after{
  content:"";
  position:absolute;
  inset:-20%;
  background: radial-gradient(420px 320px at 30% 30%, rgba(47,209,255,.10), transparent 60%);
  filter: blur(18px);
  opacity:.9;
}
.gallery__cap{
  position:absolute;
  left:12px; bottom:10px;
  color: rgba(235,245,255,.85);
  font-weight:700;
  z-index: 2;
}

/* ====== PRICING ====== */
.pricing__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.pricing__item{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 16px;
}
.pricing__h{ color: rgba(235,245,255,.94); margin:0 0 8px 0; }
.pricing__price{
  color: rgba(47,209,255,.92);
  font-weight: 800;
  font-size: 22px;
  margin: 0 0 10px 0;
}
.pricing__bar{
  margin-top: 14px;
  border-radius: 18px;
  padding: 14px;
  background: rgba(25,164,255,.10);
  border: 1px solid rgba(25,164,255,.22);
  display:flex;
  gap:12px;
  align-items:center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.pricing__bar-text{ color: rgba(235,245,255,.88); margin:0; }

/* ====== FAQ (Details) ====== */
.faq__item{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.faq__item summary{
  cursor:pointer;
  font-weight: 800;
  color: rgba(235,245,255,.92);
}
.faq__item > *:not(summary){
  color: var(--muted);
  margin-top: 8px;
}

/* ====== CONTACT ====== */
.contact__grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
}
.contact__info,
.contact__form{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 16px;
}
.contact__h{ color: rgba(235,245,255,.94); margin:0 0 10px 0; }
.contact__line{ color: var(--muted); margin: 0 0 8px 0; }

/* =========================
   HEADER MENU (anchors)
   ========================= */

/* delikatny look linków menu */
.main-navigation a,
.main-nav a{
  color: rgba(235,245,255,.82) !important;
}
.main-navigation a:hover,
.main-nav a:hover{
  color: rgba(47,209,255,.95) !important;
}

/* =========================
   SHOP OFF SWITCH
   body.shop-off ukrywa “Sklep" i CTA
   ========================= */
body.shop-off .btn-shop,
body.shop-off .menu-shop{
  display: none !important;
}

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width: 1024px){
  .steps__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .materials__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gallery__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .pricing__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .contact__grid{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .steps__grid,
  .materials__grid,
  .pricing__grid{ grid-template-columns: 1fr; }
  .gallery__grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  :root{ --scrollOffset: 96px; }
}
/*MENU*/
.main-navigation a{
  font-size: 14px;
  font-weight: 600;
  opacity:.85;
}
.main-navigation a:hover{
  opacity:1;
}
/* =========================
   STICKY HEADER + SHRINK (no JS)
   ========================= */

/* sticky dla GP */
.site-header{
  position: sticky;
  top: 0;
  z-index: 9999;
  transition: padding .2s ease, background .2s ease, backdrop-filter .2s ease;
}

/* glass vibe na sticky */
.inside-header{
  background: rgba(7,18,28,.55) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* "shrink" - działa dzięki :has() (Chrome/Edge OK). Jak brak wsparcia, po prostu zostaje sticky */
body:has(.site-header:hover),
body:has(.site-header:focus-within){
  /* nic - zostawiamy normal */
}

/* Shrink when page is scrolled (CSS trick: when not at top, body has scrolled content - fallback poprzez box-shadow) */
.site-header{
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

/* mniejszy padding na desktop */
@media (min-width: 861px){
  .site-header{
    padding-top: 12px !important; /* było 28px - shrink */
    padding-bottom: 8px !important;
  }
  .site-branding{
    padding: 12px 16px !important; /* było 16/20 */
  }
  .site-logo img,
  .custom-logo{
    max-height: 82px; /* było 100px */
  }
}
.main-navigation a{
  text-transform: none;
  letter-spacing: .02em;
  font-size: 14px;
  font-weight: 700;
  padding: 10px 12px;
  border-radius: 12px;
  opacity: .86;
  transition: opacity .15s ease, background .15s ease;
}

.main-navigation a:hover{
  opacity: 1;
  background: rgba(255,255,255,.06);
}

/* active state jeśli GP daje current-menu-item */
.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a{
  opacity: 1;
  background: rgba(25,164,255,.14);
  box-shadow: 0 0 0 1px rgba(25,164,255,.22) inset;
}
.site-header .inside-header{
  display:flex;
  align-items:center;
  justify-content: space-between !important;
  gap: 16px;
}
.site-branding{ flex: 0 0 auto; }
.main-navigation{ flex: 1 1 auto; display:flex; justify-content:flex-end; }
/*.hero__tail{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}*/
.section{
  padding: clamp(46px, 6vw, 86px) 0;
  margin: 0 !important;
}
/* Wszystkie sekcje full-bleed jak hero */
.section{
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

/* ale content w środku trzymamy w max-width */
.section__inner{
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 0 clamp(14px, 2.5vw, 28px);
}
/* ZABIJ ten OSTATNI strip pod HERO / między blokami */
.entry-content > :first-child{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

html, body{
  background-color:#07121c !important;
  background-image: url("https://3dprintpolska.pl/wp-content/uploads/2025/12/Ice-loop-rev.png");
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  background-attachment:fixed;
  overflow-x:hidden;
}

#page, .site, .site-content, .inside-article, .entry-content{
  background:transparent !important;
}

/* ZABIJ ten OSTATNI strip pod HERO / między blokami */
.entry-content > :first-child{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Najczęstszy winny: WP dodaje margines między kolejnymi blokami */
.entry-content > * + *{
  margin-top: 0 !important;
}

/* Jeśli strip jest dalej: to padding wrapperów GP */
.site-content,
.inside-article,
.entry-content{
  padding-top: 0 !important;
}
:root{
  --wrap: 1320px;      /* było 1200, daj 1320-1440 jak chcesz */
}

/* jeśli gdzieś GP/GB trzyma wąsko, wymuś na inner */
.section__inner{
  width: min(var(--wrap), 100%) !important;
  margin: 0 auto !important;
}

/* karta może być pełna szerokość inner */
.section__card{
  width: 100% !important;
}

/* opcjonalnie: na bardzo dużych monitorach jeszcze szerzej */
@media (min-width: 1400px){
  :root{ --wrap: 1440px; }
}

/*£££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££*/
/* =========================
   SECTION RHYTHM - CANON
   ========================= */

.section{
  padding-top: clamp(64px, 8vw, 110px);
  padding-bottom: clamp(64px, 8vw, 110px);
}
/* =========================
   CARD SPACING - PREMIUM
   ========================= */

.section__card{
  padding: clamp(22px, 3vw, 32px);
}

/* wspólny baseline kart */
.steps__item,
.materials__item,
.pricing__item{
  padding: 18px 18px 20px;
  min-height: 220px;
}

@media (max-width: 560px){
  .steps__item,
  .materials__item,
  .pricing__item{
    min-height: unset;
  }
}
.steps__grid,
.materials__grid,
.pricing__grid,
.gallery__grid{
  gap: clamp(14px, 2vw, 22px);
}

.steps__h,
.materials__h,
.pricing__h{
  font-weight: 800;
  letter-spacing: -0.01em;
}
.steps__h{
  color: rgba(235,245,255,.95);
}
@media (max-width: 520px){
  .section__cta{
    margin-top: 22px;
  }

  .faq__item{
    margin-bottom: 14px;
  }
}

/*£££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££££*/
/* =========================
   MICRO HOVER - CARDS
   ========================= */

.steps__item,
.materials__item,
.pricing__item,
.gallery__item{
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease;
}

.steps__item:hover,
.materials__item:hover,
.pricing__item:hover,
.gallery__item:hover{
  transform: translateY(-3px);
  box-shadow: 0 26px 64px rgba(0,0,0,.28);
  border-color: rgba(25,164,255,.28);
}

/* =========================
   SECTION TITLE - LED ACCENT
   ========================= */

.section__title{
  position: relative;
}

.section__title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  width: 64px;
  height: 2px;
  background: linear-gradient(
    90deg,
    rgba(25,164,255,.95),
    rgba(47,209,255,.55),
    transparent
  );
  box-shadow: 0 0 12px rgba(25,164,255,.45);
  border-radius: 2px;
}

/* =========================
   BUTTON - ACTIVE / FOCUS
   ========================= */

.section .gb-button:active{
  transform: translateY(0);
  box-shadow: 0 10px 24px rgba(15,40,80,.25);
}

.section .gb-button:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 2px rgba(7,18,28,.9),
    0 0 0 4px rgba(25,164,255,.75);
}

/* =========================
   FAQ - INTERACTION FEEL
   ========================= */

.faq__item summary{
  transition: color .15s ease;
}

.faq__item[open] summary{
  color: rgba(47,209,255,.95);
}

/* =========================
   GALLERY - PLACEHOLDER GLOW
   ========================= */

.gallery__item::before{
  content:"";
  position:absolute;
  inset:-30%;
  background:
    radial-gradient(420px 320px at 50% 40%,
      rgba(25,164,255,.12),
      transparent 65%);
  opacity:0;
  transition: opacity .2s ease;
}

.gallery__item:hover::before{
  opacity:1;
}

/* =========================
   GALLERY - PREMIUM GRID
   ========================= */

.gallery__grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

/* BIG (hero projekty) */
.gallery__item--big{
  grid-column: span 2;
  grid-row: span 2;
}

/* WIDE */
.gallery__item--wide{
  grid-column: span 2;
}

/* base */
.gallery__item{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  min-height: 160px;
}

/* proporcje */
.gallery__item:not(.gallery__item--big){
  aspect-ratio: 1 / 1;
}

.gallery__item--big{
  aspect-ratio: 1 / 1;
}
.gallery__item:hover img{
  transform: scale(1.04);
}

.gallery__item::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    to top,
    rgba(7,18,28,.65),
    transparent 60%
  );
  opacity:.0;
  transition: opacity .2s ease;
}

.gallery__item:hover::after{
  opacity:1;
}
.gallery__item img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transition: transform .35s ease;
}
@media (max-width: 860px){
  .gallery__grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery__item--big,
  .gallery__item--wide{
    grid-column: span 2;
  }
}
