/* =========================
   FIBERGO — CLEAN THEME CSS
   ========================= */
:root{
  /* Brand */
  --fibergo-yellow:#FFF200;
  --fibergo-black:#000;
  --bs-primary:#FFF200;
  --bs-primary-rgb:255,242,0;

  /* Font */
  --font-sans:"Solesans",system-ui,-apple-system,"Segoe UI",Roboto,
              "Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif;

  /* Motion */
  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-io:  cubic-bezier(.2,.7,.2,1);
  --nav-wipe-dur:.36s;
  --nav-shadow-dur:.42s;

  /* CTA */
  --cta-wipe-dur:.36s;

  /* Submenu paddings + subtelny ruch */
  --submenu-base-pad: 18px;             /* desktop/sticky */
  --submenu-mobile-base-pad: 16px;      /* mobile */
  --submenu-text-shift: 3px;            /* delikatny +3px */
}

/* =========================
   FONTS
   ========================= */
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-Thin.woff2") format("woff2");font-weight:100;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-ExtraLight.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-ExtraBold.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:"Solesans";src:url("/assets/fonts/solesans/Solesans-Black.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap;}

/* Global font setup */
html{font-family:var(--font-sans);font-kerning:normal;font-synthesis-weight:none;text-rendering:optimizeLegibility;}
body,button,input,select,textarea{font-family:var(--font-sans);}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
h1,h2,h3{font-weight:900;letter-spacing:-0.012em;}
h4,h5,h6{font-weight:700;letter-spacing:-0.006em;}
b,strong{font-weight:700;}
.menu-area .navigation>li>a,#sticky-header .navigation>li>a,.btn{font-weight:700;}
h1{line-height:1.1;}h2{line-height:1.15;}h3{line-height:1.2;}

/* =========================
   BRAND / CTA / LINKS
   ========================= */
.bg-primary{background:var(--fibergo-yellow)!important;border-color:var(--fibergo-yellow)!important;color:var(--fibergo-black)!important;}
.text-primary,.link-primary{color:var(--fibergo-yellow)!important;}

a{color:#FFF200;transition:color .2s ease;}
a:hover,a:focus{color:#e5dc00;}

/* BAZA – wspólne dla wszystkich przycisków */
.btn, .theme-btn{
  border-radius:999px!important;
  font-weight:700;
  position:relative;
  transition:background .26s var(--ease-out),
             color .26s var(--ease-out),
             border-color .26s var(--ease-out),
             filter .26s var(--ease-out);
}

/* WARIANT: miękki „wipe” (stan bazowy przezroczysty + żółty kontur) */
.btn.cta-wipe{
  background:transparent!important;
  color:#000!important;
  border:2px solid var(--fibergo-yellow)!important;
  /* film „napływu” pod tekstem */
  background-image:linear-gradient(var(--fibergo-yellow),var(--fibergo-yellow));
  background-repeat:no-repeat;
  background-size:0% 100%;
  background-position:left top;
  overflow:hidden;
}
.btn.cta-wipe:hover,
.btn.cta-wipe:focus{
  background-size:100% 100%;
  color:var(--fibergo-black)!important;
  border-color:var(--fibergo-yellow)!important;
  filter:brightness(.97);
}

/* WARIANT: pełny żółty (dla miejsc, gdzie ma być od razu żółty) */
.btn.btn-solid,
.btn-primary,
.btn-outline-primary{
  background:var(--fibergo-yellow)!important;
  border-color:var(--fibergo-yellow)!important;
  color:var(--fibergo-black)!important;
}

/* Hover dla NIE-wipe (zostawiamy Twoją logikę) */
.btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):hover,
.btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):focus,
.theme-btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):hover,
.theme-btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):focus,
.btn-primary:hover,.btn-primary:focus,
.btn-outline-primary:hover,.btn-outline-primary:focus{
  background:var(--fibergo-yellow)!important;
  border-color:var(--fibergo-yellow)!important;
  color:var(--fibergo-black)!important;
  filter:brightness(.92);
  box-shadow:none!important;
}

.btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):hover,
.btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):focus,
.theme-btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):hover,
.theme-btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):focus,
.btn-primary:hover,.btn-primary:focus,
.btn-outline-primary:hover,.btn-outline-primary:focus{
  background:var(--fibergo-yellow)!important;
  border-color:var(--fibergo-yellow)!important;
  color:var(--fibergo-black)!important;
  filter:brightness(.92);
  box-shadow:none!important;
}



/* Przezroczysty wariant bazowy (bez wipe, jeśli nie dodamy .cta-wipe) */
.transparent-btn{
  background:transparent!important;color:var(--fibergo-yellow)!important;border:2px solid var(--fibergo-yellow)!important;border-radius:999px!important;
  padding:10px 22px;font-weight:700;transition:background .2s,color .2s,border-color .2s,filter .2s;
}
.transparent-btn:hover,.transparent-btn:focus{background:var(--fibergo-yellow)!important;color:var(--fibergo-black)!important;border-color:var(--fibergo-yellow)!important;}
.btn.btn-link,a.btn.btn-link{border-radius:0;text-decoration:underline;font-weight:700;}
/* żółty tylko dla zwykłych linków, NIE dla buttonów */
.faq-area a:hover,
.accordion-body a:hover,
.banner-content a:not(.btn):not(.transparent-btn):not(.theme-btn):hover{
  color:#e5dc00!important;
}

/* na buttonach w hero tekst ma ZAWSZE zostać czarny */
.banner-content .btn:hover,
.banner-content .btn:focus{
  color:var(--fibergo-black)!important;
}

/* =========================
   TYPO / ACCENTS / FORMS
   ========================= */
h1,h2,h3,h4,h5,h6{color:#111;}
.section-title .title::after{content:"";display:block;width:64px;height:4px;margin:12px auto 0;background:#FFF200;border-radius:2px;}
.form-control:focus,.form-select:focus{border-color:#FFF200;box-shadow:0 0 0 .25rem rgba(255,242,0,.35);}
.badge,.tag{background:#FFF200!important;color:#000!important;}

/* Selection & caret */
::selection{background:#FFF200;color:#000;text-shadow:none;}
::-moz-selection{background:#FFF200;color:#000;}
input,textarea,select{caret-color:#FFF200;}

/* =========================
   SECTION BACKGROUNDS
   ========================= */
.section-space,.section-meadium-bottom,.section-space-top{background:#fff!important;}
.cta-bg,.video-bg,.subscribe-bg,.streaming-bg{background:#000!important;background-blend-mode:multiply;color:#fff;}
.banner-bg .title,.cta-bg .title,.video-bg .title,.subscribe-bg .title,.streaming-bg .title{color:#fff!important;}
.banner-bg .btn,.cta-bg .btn,.video-bg .btn,.subscribe-bg .btn,.streaming-bg .btn{background:#FFF200!important;border-color:#FFF200!important;color:#000!important;}
.banner-bg .btn:hover,.cta-bg .btn:hover,.video-bg .btn:hover,.subscribe-bg .btn:hover,.streaming-bg .btn:hover{filter:brightness(.9);}

/* =========================
   PRICING
   ========================= */
.pricing-item{border:1px solid rgba(0,0,0,.08);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.06);transition:transform .2s,box-shadow .2s;}
.pricing-item:hover{transform:translateY(-6px);box-shadow:0 10px 28px rgba(0,0,0,.12);}
.pricing-item .title{color:#000;font-weight:700;}

.pricing-thumb .net-speed,.net-speed{background:#fff!important;color:#000!important;border:2px solid #FFF200;border-radius:10px;padding:6px 10px;transition:background .2s,color .2s,border-color .2s;}
.net-speed h5,.net-speed span{color:inherit!important;}
.pricing-item:hover .net-speed,.pricing-item.active .net-speed,.pricing-item:focus-within .net-speed{background:#FFF200!important;color:#000!important;border-color:#FFF200;}
.pricing-list li{font-size:.95rem;color:#333;}
.pricing-list img{filter:hue-rotate(60deg) brightness(1.2);}
.price-wrap .price{color:#000;}
.price-wrap span{color:#555;}
.pricing-item .btn{background:#FFF200!important;border-color:#FFF200!important;color:#000!important;font-weight:700;}
.pricing-item .btn:hover{filter:brightness(.9);}



/* === (2/2) ROZLUŹNIONY TYTUŁ PRICING === */
section.pricing-area .section-title .title{
  line-height:1.38 !important;
  letter-spacing:.3px !important;
}

/* Ujednolicenie nagłówków: zasięg, plany, FAQ */
.coverage-check .section-title .title,
.pricing-area .section-title--plans,
.faq-area .section-title .title {
  font-family: var(--font-sans);
  font-weight: 900;
  font-size: 50px;
  line-height: 1.2;
}

/* Rozmiar tych nagłówków na mobile */
@media (max-width: 767.98px) {
  .coverage-check .section-title .title,
  .pricing-area .section-title--plans,
  .faq-area .section-title .title {
    font-size: 26px;
    line-height: 1.25;
  }
}


/* =========================
   ICONS / VARIA
   ========================= */
.flaticon-location,.flaticon-email,.flaticon-clock,.flaticon-businessman,.flaticon-shopping-cart,
.services-item .services-icon i,.faq-map-area .icon i,.blog-post-meta i,.footer-contact .icon i{color:#FFF200!important;}
.footer-wrap a:hover,.footer-wrap .fw-list li a:hover{color:#FFF200!important;}
.map-btn,.faq-map .btn{background:#FFF200!important;border-color:#FFF200!important;color:#000!important;}
.map-btn:hover,.faq-map .btn:hover{filter:brightness(.9);}
.fact-item .title,.odometer-inside,.odometer-value{color:#FFF200!important;}
.scroll-top{background:#FFF200!important;color:#000!important;border:1px solid #FFF200!important;}
.scroll-top:hover{filter:brightness(.9);}
.header-shop-cart>a span{background:#FFF200!important;color:#000!important;}

/* =========================
   HERO
   ========================= */
/* SVG pod nagłówkiem — mocniej widoczne (mniejsza biel overlayu) */
.banner-area.banner-bg{
  --hero-overlay-top: .72;      /* było .92 */
  --hero-overlay-bottom: .66;   /* było .86 */
  background-image:
    linear-gradient(180deg,
      rgba(255,255,255,var(--hero-overlay-top,.72)) 0%,
      rgba(255,255,255,var(--hero-overlay-bottom,.66)) 100%),
    url("../imgs/hero/fibergo-hero-light-v1.svg") !important;
  background-size:cover!important;background-position:center top!important;background-repeat:no-repeat!important;background-color:#f8f9fb!important;background-blend-mode:normal!important;
}
.banner-area.banner-bg .title,
.banner-area.banner-bg p,
.banner-area.banner-bg .price,
.banner-area.banner-bg .number a{color:#0b0c0e!important;}
.banner-area.banner-bg .price sub,.banner-area.banner-bg span{color:#5a5f6a!important;}

/* HOME link (default black) */
.menu-area .navigation>li>a[href$="index.html"],
#sticky-header .navigation>li>a[href$="index.html"],
.mobile-menu .menu-box .navigation li>a[href$="index.html"]{color:#000!important;}
.menu-area .navigation>li>a[href$="index.html"]:hover,
#sticky-header .navigation>li>a[href$="index.html"]:hover,
.mobile-menu .menu-box .navigation li>a[href$="index.html"]:hover{color:#FFF200!important;}
.menu-area .navigation>li.menu-item-has-children>a[href$="index.html"]::after,
#sticky-header .navigation>li.menu-item-has-children>a[href$="index.html"]::after{border-color:#000!important;}
.menu-area .navigation>li.menu-item-has-children>a[href$="index.html"]:hover::after,
#sticky-header .navigation>li.menu-item-has-children>a[href$="index.html"]:hover::after{border-color:#FFF200!important;}

/* =========================
   SERVICES / BLOG / VIDEO
   ========================= */
.services-item .btn.btn-link{
  color:#000!important;background:transparent!important;text-decoration:none;
  font-weight:700;padding:2px 6px;border-radius:6px;transition:color .2s,background .2s,box-shadow .2s;
}
.services-item .btn.btn-link:hover,.services-item .btn.btn-link:focus{background:#FFF200!important;color:#000!important;box-shadow:0 2px 0 rgba(0,0,0,.08);}
.services-item .btn.btn-link i,.services-item .btn.btn-link:hover i,.services-item .btn.btn-link:focus i{color:#000!important;fill:#000!important;}
.services-item:hover .services-content .title,
.services-item:hover .services-content .title a,
.services-item.active .services-content .title,
.services-item.active .services-content .title a{color:#FFF200!important;}
.services-item:hover,.services-item.active{border-color:#FFF200!important;box-shadow:0 6px 20px rgba(255,242,0,.15);}
.services-item:hover .btn.btn-link:not(:hover){color:#fff!important;background:transparent!important;}
.services-item:hover .btn.btn-link:not(:hover) i,
.services-item:hover .btn.btn-link:not(:hover) svg{color:#fff!important;fill:#fff!important;}

.special-offer-img .special-offer-mbps,
.special-offer-img .special-offer-mbps::before,
.special-offer-img .special-offer-mbps::after{background:#FFF200!important;border-color:#FFF200!important;color:#000!important;}
.special-offer-img .special-offer-mbps span,.special-offer-img .special-offer-mbps .title,.special-offer-img .special-offer-mbps p{color:#000!important;}
.special-price,.special-price sup{color:#000!important;}
.special-price sub{color:#666!important;}

.special-offer-content .btn.transparent-btn,
.blog-post-item .btn.transparent-btn{
  background:transparent!important;color:#000!important;border:2px solid #FFF200!important;border-radius:999px;
  padding:10px 18px;font-weight:700;position:relative;z-index:1;background-image:none!important;box-shadow:none!important;
  transition:background .2s,color .2s,border-color .2s;
}
.special-offer-content .btn.transparent-btn:hover,
.special-offer-content .btn.transparent-btn:focus,
.blog-post-item .btn.transparent-btn:hover,
.blog-post-item .btn.transparent-btn:focus{background:#FFF200!important;color:#000!important;border-color:#FFF200!important;}

.video-paly a,.video-paly .popup-video{background:#FFF200!important;color:#000!important;border:2px solid #FFF200!important;box-shadow:0 0 0 10px rgba(255,242,0,.15);}
.video-paly a i,.video-paly .popup-video i{color:#000!important;}
.video-paly a::before,.video-paly a::after,.video-paly .popup-video::before,.video-paly .popup-video::after{border-color:rgba(255,242,0,.45)!important;background:transparent!important;box-shadow:none!important;}
.streaming-thumb .popup-video{background:#FFF200!important;color:#000!important;border:2px solid #FFF200!important;}
.streaming-thumb .popup-video i{color:#000!important;}
.streaming-thumb .popup-video::before,.streaming-thumb .popup-video::after{border-color:rgba(255,242,0,.45)!important;}
.video-area .video-content-wrap .btn{background:transparent!important;border:2px solid #FFF200!important;color:#FFF200!important;border-radius:999px;position:relative;z-index:1;}
.video-area .video-content-wrap .btn:hover,.video-area .video-content-wrap .btn:focus{background:#FFF200!important;color:#000!important;border-color:#FFF200!important;}

/* =========================
   SOCIAL / HEADER / MISC
   ========================= */
.header-social a,.footer-social a,.footer-wrap .footer-social a,.mobile-menu .menu-box .social-links a{
  background:transparent!important;border:0!important;outline:none!important;box-shadow:none!important;border-radius:50%;
}
.header-social a:hover,.header-social a:focus,
.footer-social a:hover,.footer-social a:focus,
.footer-wrap .footer-social a:hover,.footer-wrap .footer-social a:focus,
.mobile-menu .menu-box .social-links a:hover,.mobile-menu .menu-box .social-links a:focus{
  background:#FFF200!important;border:0!important;outline:none!important;box-shadow:none!important;
}
.header-social a:hover i,.header-social a:focus i,
.footer-social a:hover i,.footer-social a:focus i,
.footer-wrap .footer-social a:hover i,.footer-wrap .footer-social a:focus i,
.mobile-menu .menu-box .social-links a:hover i,.mobile-menu .menu-box .social-links a:focus i,
.mobile-menu .menu-box .social-links a:hover span,.mobile-menu .menu-box .social-links a:focus span{color:#000!important;}
.header-top-left a{transition:color .2s ease;}
.header-top-left a:hover,.header-top-left a:focus{color:#000!important;}

a{-webkit-tap-highlight-color:rgba(255,242,0,.25);}

/* =========================
   PRELOADER + LOGO
   ========================= */
#preloader{position:fixed;inset:0;z-index:9999;background:#000;display:flex;align-items:center;justify-content:center;}
.fg-spinner{width:48px;height:48px;position:relative;border-radius:50%;box-sizing:border-box;border:3px solid rgba(255,242,0,.25);border-top-color:#FFF200;animation:fg-spin .8s linear infinite;filter:drop-shadow(0 2px 8px rgba(255,242,0,.25));}
@keyframes fg-spin{to{transform:rotate(360deg);}}
@media (min-width:1400px){.fg-spinner{width:56px;height:56px;}}

.logo .logo-text, .nav-logo .logo-text{
  position:relative;
  display:inline-flex;
  align-items:center;
  font-family:var(--font-sans);
  font-weight:900;
  letter-spacing:-0.01em;
  line-height:1;
  color:var(--fibergo-yellow);

  /* Nowy, lepszy kontrast */
  text-shadow: 
    0 1px 0 rgba(0,0,0,.55),
    0 3px 6px rgba(0,0,0,.25);
    
  transition: transform .18s ease, text-shadow .18s ease;
}

.menu-area .logo .logo-text{font-size:clamp(44px,5.4vw,64px);}
#sticky-header.sticky-menu .logo .logo-text{font-size:clamp(36px,4.2vw,52px);}
@media (max-width:991.98px){.mobile-menu .nav-logo .logo-text{font-size:clamp(28px,8vw,40px);}}
.logo .logo-text::after,.nav-logo .logo-text::after{
  content:"";position:absolute;left:0;bottom:-6px;width:0;height:3px;background:currentColor;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.15);transition:width .25s ease;
}
.logo .logo-text:hover,.nav-logo .logo-text:hover{transform:translateY(-1px);text-shadow:0 1px 0 rgba(0,0,0,.4),0 12px 28px rgba(0,0,0,.12);}
.logo .logo-text:hover::after,.nav-logo .logo-text:hover::after{width:100%;}
.menu-area .logo{
  display:flex;
  align-items:center;
  margin-right: auto;      /* odstęp auto */
}

.logo .brand-text{font-size:clamp(22px,6vw,64px);line-height:1.05;white-space:nowrap;}

/* =========================
   NAV (góra) — miękko jak logo
   ========================= */
.menu-area .navigation>li>a,#sticky-header .navigation>li>a{
  position:relative;transition:
    color var(--nav-wipe-dur) var(--ease-out),
    text-shadow var(--nav-shadow-dur) var(--ease-io),
    transform var(--nav-wipe-dur) var(--ease-out);
  will-change:transform;
}
.menu-area .navigation>li>a:hover,.menu-area .navigation>li>a:focus,.menu-area .navigation>li.active>a,
#sticky-header .navigation>li>a:hover,#sticky-header .navigation>li>a:focus,#sticky-header .navigation>li.active>a{
  color:var(--fibergo-yellow)!important;text-shadow:0 1px 0 rgba(0,0,0,.18),0 6px 18px rgba(255,242,0,.35),0 0 24px rgba(255,242,0,.22);transform:translateY(-1px);
}
.menu-area .navigation>li>a::before,#sticky-header .navigation>li>a::before{
  content:"";position:absolute;left:12px;right:12px;bottom:-8px;height:3px;background:var(--fibergo-yellow);
  border-radius:999px;box-shadow:0 0 12px rgba(255,242,0,.6);transform:scaleX(0);transform-origin:center;opacity:0;
  transition:transform var(--nav-wipe-dur) var(--ease-out),opacity var(--nav-wipe-dur) var(--ease-io);pointer-events:none;
}
.menu-area .navigation>li>a:hover::before,.menu-area .navigation>li>a:focus::before,
#sticky-header .navigation>li>a:hover::before,#sticky-header .navigation>li>a:focus::before{transform:scaleX(1);opacity:1;}
.menu-area .navigation>li.menu-item-has-children:hover>a::after,
#sticky-header .navigation>li.menu-item-has-children:hover>a::after{border-color:var(--fibergo-yellow)!important;}
#sticky-header .menu-nav{
  display:flex;
  align-items:center;
  justify-content:space-between; /* logo | FAQ | Napisz do nas */
}


/* =========================
   SUBMENU — SOFT WIPE + SUBTLE SHIFT (+3px)
   ========================= */
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu{
  border-radius:12px!important;overflow:hidden!important;
  box-shadow:0 16px 40px rgba(0,0,0,.14)!important;padding:8px 6px!important;border:1px solid rgba(0,0,0,.06);
}
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li > a{
  position:relative!important;display:flex!important;align-items:center!important;overflow:hidden!important;isolation:isolate;
  padding:10px 14px 10px var(--submenu-base-pad)!important;
  border-radius:10px!important;color:#111!important;background:transparent!important;
  background-image:linear-gradient(var(--fibergo-yellow),var(--fibergo-yellow))!important;
  background-repeat:no-repeat!important;background-position:left top!important;background-size:0% 100%!important;
  transition:
    background-size var(--nav-wipe-dur) var(--ease-out),
    color           var(--nav-wipe-dur) var(--ease-out),
    box-shadow      var(--nav-shadow-dur) var(--ease-io),
    padding-left    .26s var(--ease-out);
  will-change:background-size,color,padding-left;
}
/* wyłącz stare pseudo-elementy z motywu */
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li > a::before,
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li > a::after{content:none!important;display:none!important;}

:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li > a:hover,
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li.active > a,
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li.current-menu-item > a,
:is(.menu-area,#sticky-header) .navigation > li > .sub-menu li > a:focus-visible{
  background-size:100% 100%!important;color:var(--fibergo-black)!important;
  box-shadow:0 6px 18px rgba(255,242,0,.18)!important;
  padding-left:calc(var(--submenu-base-pad) + var(--submenu-text-shift))!important;
}

/* Mobile — to samo, ciaśniej */
@media (max-width:991.98px){
  .mobile-menu .menu-box .navigation li > a{
    position:relative!important;display:flex!important;align-items:center!important;overflow:hidden!important;isolation:isolate;
    padding:10px 14px 10px var(--submenu-mobile-base-pad)!important;border-radius:10px!important;color:#111!important;
    background-image:linear-gradient(var(--fibergo-yellow),var(--fibergo-yellow))!important;
    background-repeat:no-repeat!important;background-position:left top!important;background-size:0% 100%!important;
    transition:
      background-size var(--nav-wipe-dur) var(--ease-out),
      color           var(--nav-wipe-dur) var(--ease-out),
      box-shadow      var(--nav-shadow-dur) var(--ease-io),
      padding-left    .26s var(--ease-out);
  }
  .mobile-menu .menu-box .navigation li > a:hover,
  .mobile-menu .menu-box .navigation li > a:focus-visible{
    background-size:100% 100%!important;color:var(--fibergo-black)!important;
    box-shadow:0 6px 18px rgba(255,242,0,.18)!important;
    padding-left:calc(var(--submenu-mobile-base-pad) + var(--submenu-text-shift))!important;
  }
}



/* NAV parent stays yellow while hovering submenu items */
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:has(> .sub-menu li:hover) > a,
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:has(> .sub-menu li > a:focus-visible) > a{
  color: var(--fibergo-yellow) !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.18), 0 6px 18px rgba(255,242,0,.35), 0 0 24px rgba(255,242,0,.22);
  transform: translateY(-1px);
}
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:has(> .sub-menu li:hover) > a::before,
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:has(> .sub-menu li > a:focus-visible) > a::before{
  transform: scaleX(1); opacity: 1;
}
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:has(> .sub-menu li:hover) > a::after,
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:has(> .sub-menu li > a:focus-visible) > a::after{
  border-color: var(--fibergo-yellow) !important;
}
/* na wszelki wypadek wyłącz „czerwone” stany z motywu */
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children:hover > a,
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children.open > a,
:is(.menu-area,#sticky-header) .navigation>li.menu-item-has-children.current-menu-ancestor > a{
  color: var(--fibergo-yellow) !important;
}

/* =========================
   MOBILE NAV (ogólne)
   ========================= */
@media (max-width:991.98px){
  .mobile-menu .menu-box .navigation li > a{
    border-radius:12px;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease;will-change:auto;
  }
  .mobile-menu .menu-box .navigation li.current-menu-item > a,
  .mobile-menu .menu-box .navigation li.active > a{
    background:var(--fibergo-yellow)!important;color:var(--fibergo-black)!important;box-shadow:0 10px 28px rgba(255,242,0,.28);
  }
}


/* =========================
   HIDE UNUSED / LAYOUT TWEAKS
   ========================= */
.header-user-info,
.header-top-right a[href*="login"],
.menu-area .navigation a[href*="login"]{display:none!important;}
.header-shop-cart,.header-action .header-shop-cart,.header-cart,
a[href*="cart"] .icon, a[href*="cart"].header-cart{display:none!important;}

.cta-area,.cta-bg,.banner-cta,.need-secure-area,section.cta-area{display:none!important;}
.streaming-area,.streaming-bg,.movie-area,.movie-banner-area{display:none!important;}
.popular-area,.popular-show-area,.trending-area,.trending-show-area,.tv-show-area{display:none!important;}
.blog-area,.latest-blog-area,.blog-post-area,.recent-blog-area{display:none!important;}
#cta,#streaming,#popular,#blog{display:none!important;}
/* wytnij sekcję tuż przed FAQ 
section:has(+ .faq-area),div:has(+ .faq-area),section:has(+ #faq),div:has(+ #faq){display:none!important;}*/

/* FAQ: ukryj prawą kolumnę i wycentruj lewą */
.faq-map-area,.faq-map,.faq-right,.faq-thumb,.faq-image,.faq-coverage,#faq .col-lg-6:last-child,.faq-area .col-lg-6:last-child{display:none!important;}
.faq-area .row,#faq .row{justify-content:center!important;}
.faq-area .row > [class*="col-"],#faq .row > [class*="col-"]{flex:0 1 720px!important;max-width:720px!important;}
.faq-area .section-title,.faq-area .section-title .title,#faq .section-title,#faq .section-title .title{text-align:center!important;margin-left:auto!important;margin-right:auto!important;}

/* VIDEO/EXPERIENCE: środek po wycięciu playera */
.video-thumb,.video-area .video-thumb,.video-bg .video-thumb,.experience-area .video-thumb{display:none!important;}
.video-area .row,.video-bg .row,.experience-area .row{justify-content:center!important;}
.video-area .row > [class*="col"]:not(.video-thumb),
.video-bg .row > [class*="col"]:not(.video-thumb),
.experience-area .row > [class*="col"]:not(.video-thumb){flex:0 0 100%!important;max-width:100%!important;}
.video-area .video-content-wrap,.video-area .video-content,.video-area .about-content,
.video-bg .video-content-wrap,.video-bg .video-content,.video-bg .about-content,
.experience-area .video-content-wrap,.experience-area .video-content,.experience-area .about-content{
  max-width:920px;margin:0 auto!important;text-align:center!important;
}
.video-area .video-content-wrap ul,.video-area .video-content ul,
.video-bg .video-content-wrap ul,.video-bg .video-content ul,
.experience-area .video-content-wrap ul,.experience-area .video-content ul{
  list-style:none;margin:24px 0 0;padding:0;display:flex;justify-content:center;align-items:flex-start;gap:48px;flex-wrap:wrap;
}
.video-area .video-content-wrap ul li,.video-area .video-content ul li,
.video-bg .video-content-wrap ul li,.video-bg .video-content ul li,
.experience-area .video-content-wrap ul li,.experience-area .video-content ul li{
  display:flex;flex-direction:column;align-items:center;text-align:center;min-width:120px;
}
.video-area .video-content .btn,.video-area .video-content-wrap .btn,
.video-bg .video-content .btn,.video-bg .video-content-wrap .btn,
.experience-area .video-content .btn,.experience-area .video-content-wrap .btn{display:inline-flex;margin:22px auto 0;}
/* całe czarne pudełko wideo off */
section.video-area.video-bg,.video-area.video-bg,.experience-area,.about-video-area{
  display:none!important;padding:0!important;margin:0!important;min-height:0!important;overflow:hidden!important;
}

/* =========================
   FOOTER: biały wordmark "FiberGo" + underline
   ========================= */
.footer-logo img,
.footer-wrap .footer-logo img,
.footer-bottom .footer-logo img,
.footer-area .footer-logo img,
.footer-wrap .logo img,
.footer-bottom .logo img { display:none !important; }

.footer-logo a,
.footer-wrap .footer-logo a,
.footer-bottom .footer-logo a,
.footer-area .footer-logo a,
.footer-wrap .logo a,
.footer-bottom .logo a{
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  text-decoration: none !important;
  cursor: default !important;
  transition: transform .18s var(--ease-out), text-shadow .18s ease;
}

.footer-logo a::after,
.footer-wrap .footer-logo a::after,
.footer-bottom .footer-logo a::after,
.footer-area .footer-logo a::after,
.footer-wrap .logo a::after,
.footer-bottom .logo a::after{
  content: "FiberGo";
  font-family: var(--font-sans);
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1;
  color: #fff;
  text-shadow: 0 .5px 0 rgba(0,0,0,.35), 0 8px 18px rgba(0,0,0,.06);
  font-size: clamp(28px, 4.2vw, 40px);
}

.footer-logo a::before,
.footer-wrap .footer-logo a::before,
.footer-bottom .footer-logo a::before,
.footer-area .footer-logo a::before,
.footer-wrap .logo a::before,
.footer-bottom .logo a::before{
  content: "";
  position: absolute;
  left: 0; bottom: -6px;
  height: 3px; width: 0;
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 1px 0 rgba(255,255,255,.25);
  opacity: 0;
  transition: width .25s ease, opacity .25s ease;
}
.footer-logo a:hover,
.footer-wrap .logo a:hover,
.footer-bottom .logo a:hover{ transform: translateY(-1px); }
.footer-logo a:hover::before,
.footer-wrap .logo a:hover::before,
.footer-bottom .logo a:hover::before{
  width: 100%;
  opacity: 1;
}

.banner-area .banner-content a[href^="tel:"] :is(i,svg){
  color: var(--fibergo-yellow) !important;
  fill:  var(--fibergo-yellow) !important;
}


.pricing-item .title a:hover,.pricing-item .title a:focus{
  color: var(--fibergo-yellow) !important; text-decoration: none;
}
.pricing-item .price-wrap{ margin-top:20px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.pricing-item .price{ margin:0; font-weight:900; color:#000; }
.pricing-item .price small{ font-size:.7em; color:#555; margin-right:.25em; font-weight:600; }
.pricing-item .price sub{ color:#666 !important; }

/* chips (opcje sprzętu) */
.plan-options{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 6px; }
.plan-options .chip{
  display:inline-flex; align-items:center; white-space:nowrap;
  padding:6px 10px; border-radius:999px;
  background:#fafafa; border:1px solid #e5e7eb; color:#111; font-size:.9rem;
}
.pricing-item:hover .plan-options .chip{ border-color:#e3e3e3; }

/* badge „Najczęściej wybierany” */
.pricing-item .plan-badge{
  position:absolute; top:10px; left:10px; z-index:2;
  background:#FFF200; color:#000; font-weight:800; font-size:.85rem;
  padding:6px 10px; border-radius:999px; box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.pricing-item.featured{ box-shadow:0 10px 30px rgba(255,242,0,.22); border-color:#FFF200; }
.pricing-item.featured .net-speed{ background:#FFF200 !important; color:#000 !important; border-color:#FFF200; }

.net-speed h5{ margin:0; font-weight:900; letter-spacing:.2px; }
.net-speed span{ font-weight:700; }

.pricing-item .btn{ padding:10px 16px; border-radius:999px; font-weight:700; }

/* equal height + CTA na dole */
.pricing-plan-wrap .row > [class*="col"]{ display:flex; }
.pricing-plan-wrap .pricing-item{ display:flex; flex-direction:column; width:100%; }
.pricing-item .pricing-content{ display:flex; flex-direction:column; flex:1; padding:18px 20px; gap:12px; }
.pricing-item .pricing-list{ margin-bottom:12px; }
.pricing-item .price-wrap{ margin-top:auto; display:flex; flex-direction:column; align-items:flex-start; gap:8px; }

/* Na mniejszych ekranach karty planów węższe i wyśrodkowane */
@media (max-width: 991.98px){
  .pricing-plan-wrap .pricing-item{
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
	margin-bottom: 15px;
  }
}

/* listy w pricingu — ptaszki CSS */
.pricing-item .pricing-list li{ position:relative; padding-left:30px; list-style:none; }
.pricing-item .pricing-list li>img{ display:none!important; }
.pricing-item .pricing-list li::before{
  content:""; position:absolute; left:0; top:.45em; width:18px; height:18px; border-radius:6px;
  background:var(--fibergo-yellow); box-shadow:0 1px 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.05);
}
.pricing-item .pricing-list li::after{
  content:""; position:absolute; left:5px; top:calc(.45em + 3px);
  width:8px; height:5px; border-left:3px solid #000; border-bottom:3px solid #000; transform:rotate(-45deg); border-radius:.5px;
}
@media (min-resolution:2dppx){
  .pricing-item .pricing-list li::after{ border-left-width:2px; border-bottom-width:2px; }
}
.pricing-item .pricing-list{ gap:6px; }
.pricing-item .pricing-list li{ line-height:1.45; }
.pricing-item .pricing-list li:hover::before{ filter:brightness(.95); }

/* PRICING LIST — bez „kolumny” dla <b> */
.pricing-list li{ display:flex!important; align-items:flex-start; gap:10px; flex-wrap:wrap; line-height:1.5; }
.pricing-list li::before{ margin-top:.35em; }
.pricing-list li>img{ display:none!important; }
.pricing-list li b, .pricing-list li strong{
  display:inline!important; font-weight:700; white-space:normal;
}
:where(.pricing-list) :where(b,strong){ display:inline!important; padding:0!important; margin:0!important; background:none!important; border:0!important; box-shadow:none!important; letter-spacing:inherit!important; word-spacing:normal!important; }
.pricing-list :where(.fg-highlight,.hl,.mark){ background:none!important; padding:0!important; margin:0!important; box-shadow:none!important; }
.pricing-item .pricing-content .pricing-list li b,
.pricing-item .pricing-content .pricing-list li strong{ display:inline!important; padding:0!important; margin:0!important; background:none!important; border:0!important; box-shadow:none!important; letter-spacing:inherit!important; word-spacing:normal!important; line-height:inherit!important; }
.pricing-item .pricing-content .pricing-list li b::before,
.pricing-item .pricing-content .pricing-list li b::after,
.pricing-item .pricing-content .pricing-list li strong::before,
.pricing-item .pricing-content .pricing-list li strong::after{ content:none!important; }
@supports (display:contents){
  .pricing-item .pricing-content .pricing-list li b,
  .pricing-item .pricing-content .pricing-list li strong{ display:contents!important; }
}

/* ==== SERVICES: equal height ==== */
.services-area .row{ align-items:stretch; }
.services-area .row > [class*="col-"]{ display:flex; }
.services-area .services-item{ height:100%; display:flex; flex-direction:column; }
.services-area .services-item .services-content{ flex:1 1 auto; }
.services-area .services-item{ padding:28px 26px; }
.services-area .services-item .services-content p{ margin-bottom:0; }

/* ===== Smooth scrolling offset ===== */
section[id], header[id], footer[id] { scroll-margin-top: 90px; }
html { scroll-behavior: smooth; }

/* Tymczasowo wyłącz ciężkie sekcje */
.video-area, .streaming-area, .blog-area { display:none; }

/* ===== FOOTER layout ===== */
.footer-col { position: relative; }

@media (max-width: 991.98px) {
  .footer-col + .footer-col {
    border-top:1px solid #e5e7eb;
    padding-top:12px;
    margin-top:12px;
  }
}

/* Desktop: pionowa linia na środku kontenera stopki */
@media (min-width: 992px) {
  .footer-col + .footer-col {
    border-left:none;          /* wyłączamy starą kreskę przy kolumnie */
    padding-left:18px;
    margin-left:0;
  }

  .footer-wrap .row {
    position: relative;        /* baza pod pseudoelement */
  }

  .footer-wrap .row::before {
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:50%;                  /* środek kontenera */
    width:1px;
    background:#e5e7eb;
    transform:translateX(-0.5px); /* żeby linia była ostra na piksel */
  }
}

/* odstępy między kolumnami (zostawiamy) */
.footer-wrap .row { row-gap: 16px; }

.footer-call .icon i { font-size:18px; line-height:1; }

.fw-schedule-list { list-style:none; padding:0; margin:8px 0 0; }
.fw-schedule-list li {
  display:grid; grid-template-columns:1fr auto; align-items:center;
  padding:6px 0; border-bottom:1px dashed #e5e7eb;
}
.fw-schedule-list li:last-child { border-bottom:none; }
.fw-schedule-list .lbl { color:#111827; }
.fw-schedule-list .val { color:#111827; font-weight:600; }
.fw-schedule-list .close { color:#ef4444; font-weight:700; }
.footer-social a { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; }

/* HEADER social hover spójny ze stopką */
.header-social a { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; color:#111827; transition:all .25s ease; }
.header-social a:hover { background-color:#111827; color:#fff; transform:translateY(-2px); box-shadow:0 4px 8px rgba(0,0,0,.2); }

.header-top-wrap {
  font-size: 14px;
  line-height: 1.4;
}

/* całe wnętrze górnego paska – środek */
.header-top-wrap .row {
  display: flex;
  align-items: center;
  justify-content: center;   /* wyśrodkuj poziomo */
}

/* kolumna z danymi kontaktowymi na pełną szerokość + środek */
.header-top-left {
  display: flex;
  justify-content: center;
}

/* DOMYŚLNIE: wszystko w JEDNEJ linii (adres + mail + godziny) */
.header-top-left .ht-list,
.header-top-right .ht-actions {
  display: flex;
  gap: 8px 16px;
  align-items: center;
  justify-content: center;   /* <-- DODANE: wyśrodkowanie elementów w wierszu */
  padding: 0;
  margin: 0 auto;
  list-style: none;
  flex-wrap: nowrap;
}

.header-top-left .ht-list li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;       /* nie łam adresu / „Godziny otwarcia” */
}

.header-top-wrap a {
  text-decoration: none;
  color: #111827;
}

.header-top-wrap a:hover {
  text-decoration: underline;
}

.header-top-wrap i,
.header-top-wrap svg {
  font-size: 14px;
  line-height: 1;
  vertical-align: -2px;
  max-height: 16px;
  width: auto;
}

/* Desktop / większe ekrany – nic nie kombinujemy z wyrównaniem,
   całość jest już na środku przez flex na .row */
@media (min-width: 768px) {
  .header-top-right .ht-actions {
    justify-content: center;
  }
}

/* BARDZO MAŁE EKRANY – wszystko POD SOBĄ, wyśrodkowane
   + przywracamy zawijanie tekstu */
@media (max-width: 575.98px) {
  .header-top-left {
    justify-content: center;
  }

  .header-top-left .ht-list {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
  }

  .header-top-left .ht-list li {
    white-space: normal;     /* tu znów pozwalamy na łamanie wierszy */
    width: 100%;
    justify-content: center;
  }

  .header-top-right .ht-actions {
    margin-top: 6px;
  }
}

/* kontener może zachowywać się normalnie */
.header-top-wrap .container,
.header-top-wrap .row {
  white-space: normal;
  overflow: visible;
}

/* Tymczasowo chowamy ikonę Facebooka w górnym pasku */
.header-top-right,
.header-top-right .header-social,
.header-social {
  display: none !important;
}

/* === Spójne odstępy pod tytułami sekcji === */
#pricing .section-title, .services-area .section-title, .faq-area .section-title { margin-bottom:48px!important; }
@media (max-width: 767.98px){
  #pricing .section-title, .services-area .section-title, .faq-area .section-title { margin-bottom:36px!important; }
}

/* === CHECK/CONFIG w kartach planów === */
.plan-options{ margin-top:10px; display:flex; flex-direction:column; gap:6px; }
.option-label{ margin:10px 0 4px; font-size:14px; font-weight:600; color:#6b7280; line-height:1.3; }
.chip{ display:inline-block; padding:8px 12px; border:1px solid #e5e7eb; border-radius:999px; background:#fff; font-size:14px; color:#111827; white-space:nowrap; transition:all .2s ease; }
.chip:hover{ background:#111827; color:#fff; border-color:#111827; transform:translateY(-1px); }
.chip input{ appearance:none; width:18px; height:18px; border:2px solid #111827; background:#fff; display:inline-block; position:relative; cursor:pointer; border-radius:4px; flex-shrink:0; transition:all .2s ease; }
.chip-radio input{ border-radius:50%; }
.chip:hover input{ background-color:#f3f4f6; }
.chip input:checked{ background-color:#111827; border-color:#111827; }
.chip input:checked::after{ content:"✓"; position:absolute; top:50%; left:50%; transform:translate(-50%,-55%); font-size:12px; font-weight:700; color:#fff; }
.chip input:checked + span, .chip input:checked ~ span{ font-weight:600; color:inherit; }
.chip input:checked ~ span::before { box-shadow:0 0 0 2px #11182710; }

/* Nadpisanie układu ceny */
.pricing-item .price-wrap{ margin-top:24px!important; display:flex!important; flex-direction:column!important; align-items:flex-start!important; gap:8px!important; }
.plan-config .config-row{ display:flex; flex-direction:column; gap:6px; }
.price{ display:inline-block; transition:transform .2s ease, opacity .2s ease; }
.price.animating{ opacity:0; transform:translateY(-6px); }

/* =========================
   COVERAGE (Sprawdź zasięg) — FINAL GRID
   ========================= */
/* === Sekcja: Sprawdź zasięg światłowodu === */
/* (1/2) ZMNIEJSZONY MARGINES DO BANNERA */
.coverage-check {
  background: #fff;
  text-align: center;
  padding: 90px 0 170px;     /* było 140/200 — teraz bliżej bannera, oddech na dole */
  position: relative;
  z-index: 2;
}

/* na mniejszych ekranach trochę mniejsze odstępy */
@media (max-width: 768px) {
  .coverage-check {
    padding: 70px 0 120px;   /* mobile */
  }
}


/* formularz jako grid + spłaszczenie wrappera */
.coverage-check .coverage-form{
  display:grid;
  grid-template-columns: 1fr;         /* mobile: jeden pod drugim */
  gap: 12px;
  align-items: end;
  justify-items: stretch;
  width: 100%;
  max-width: 1100px;                  /* szerzej, żeby pola „oddychały” */
  margin: 0 auto;
}
.coverage-check .coverage-form .form-row{ display: contents; }

/* pola */
.coverage-check .coverage-form input[type="text"]{
  width: 100%; min-width: 0;
  height: 52px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid #ccc;
  outline: none;
  font-size: 16px;
  transition: border-color .2s, box-shadow .2s;
}
.coverage-check .coverage-form input[type="text"]:focus{
  border-color: var(--fibergo-yellow);
  box-shadow: 0 0 0 2px rgba(255,242,0,.3);
}

/* przycisk */
.coverage-check .coverage-form .btn{
  height: 52px;
  padding: 0 28px;
  white-space: nowrap;
  justify-self: stretch;              /* mobile: pełna szerokość */
}

/* ≥ 768px: nadal 1 kolumna – bez układu 2x2 */
@media (min-width: 768px){
  .coverage-check .coverage-form{
    grid-template-columns: 1fr;   /* zamiast 1fr 1fr – zawsze 1 kolumna */
    column-gap: 14px;
  }
  .coverage-check .coverage-form .btn{
    justify-self: stretch;        /* przycisk dalej na pełną szerokość */
    padding: 0 32px;
  }
}

/* ≥ 1200px: 3 SZEROKIE pola + przycisk */
@media (min-width: 1200px){
  .coverage-check .coverage-form{
    /* miasto 2.2fr, ulica 2.2fr, numer 1.2fr, przycisk auto */
    grid-template-columns: minmax(200px, 2.2fr) minmax(220px, 2.2fr) minmax(140px, 1.2fr) auto;
    column-gap: 16px;
  }
  .coverage-check .coverage-form .btn{
    padding: 0 36px;
    align-self: stretch;              /* wyrównaj do dołu pól */
  }
}

/* === Odstęp jak w pozostałych sekcjach (pricing, solutions, faq) === */
.coverage-check .section-title {
  margin-bottom: 55px;
}

/* Na dużych ekranach trochę większy dla równowagi */
@media (min-width: 1200px) {
  .coverage-check .section-title {
    margin-bottom: 65px;
  }
}

/* Na małych ekranach minimalnie mniejszy */
@media (max-width: 768px) {
  .coverage-check .section-title {
    margin-bottom: 45px;
  }
}

/* wynik i badge */
.coverage-result{ font-weight:600; margin-top:20px; min-height:24px; }
.coverage-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-left:.6rem; padding:.22rem .6rem; border-radius:999px;
  font-weight:700; font-size:.9rem; line-height:1; color:#000;
  background:var(--fibergo-yellow); vertical-align:middle; white-space:nowrap;
}
.coverage-badge--ok{ background:var(--fibergo-yellow); color:#000; }
.coverage-badge--warn{ background:#fde68a; color:#111; }
.coverage-badge--hint{ background:#e5e7eb; color:#111; }
.coverage-badge--off{ background:#fee2e2; color:#991b1b; }

/* Kolory statusów wyniku */
.coverage-result.ok   { color:#16a34a; }
.coverage-result.warn { color:#b45309; }
.coverage-result.hint { color:#374151; }
.coverage-result.off  { color:#991b1b; }

/* =========================
   UNIFIED CTA WIPE (żółty, czarny tekst)
   ========================= */
.btn.cta-wipe{
  position:relative; overflow:hidden; isolation:isolate;
  border:2px solid var(--fibergo-yellow);
  border-radius:999px;
  background:transparent !important;
  color:var(--fibergo-black) !important;
  font-weight:700; padding:14px 32px;
  background-image:linear-gradient(var(--fibergo-yellow),var(--fibergo-yellow)) !important;
  background-repeat:no-repeat !important;
  background-position:left bottom !important;
  background-size:100% 0% !important;
  transition:background-size var(--cta-wipe-dur) var(--ease-out), filter .2s;
  box-shadow:none !important;
}
.btn.cta-wipe:hover,
.btn.cta-wipe:focus{
  background-size:100% 100% !important;
  color:var(--fibergo-black) !important;
  filter:brightness(.95);
  outline:none !important;
}
/* reset niebieskich/czerwonych overlayów */
.btn.cta-wipe::before{content:none!important;}
.btn.cta-wipe,
.btn.cta-wipe:hover,
.btn.cta-wipe:focus{
  background-color:transparent !important;
  --bs-btn-bg:transparent;
  --bs-btn-hover-bg:transparent;
  --bs-btn-active-bg:transparent;
  --bs-btn-border-color:var(--fibergo-yellow);
  --bs-btn-color:var(--fibergo-black);
  --bs-btn-hover-color:var(--fibergo-black);
}

/* === Coverage: czyste centrowanie bez przesunięcia === */
.coverage-check .container{
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.coverage-check .row{
  --bs-gutter-x: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.coverage-check [class^="col-"],
.coverage-check [class*=" col-"]{
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important; /* zabija ewentualne .offset-* */
}

/* Sama siatka formularza — środek i stała szerokość wewnętrzna */
.coverage-check .coverage-form{
  margin: 0 auto !important;
  padding: 0 16px;                 /* delikatny wewnętrzny margines */
  max-width: 1100px;               /* to trzyma formę centralnie */
  width: 100%;
  justify-items: stretch;
}

/* Desktopowe proporcje (zostawiamy jak były) */
@media (min-width: 1200px){
  .coverage-check .coverage-form{
    grid-template-columns: minmax(220px, 2.2fr) minmax(260px, 2.2fr) minmax(160px, 1.2fr) auto;
    column-gap: 16px;
  }
}

/* Awaryjnie wyłączamy ewentualne przesuwające pseudo-elementy */
.coverage-check::before,
.coverage-check::after{ display:none !important; content:none !important; }


/* === Coverage: CTA pod wynikiem === */
.coverage-cta{
  margin-top: 16px;
  display: flex;
  justify-content: center;
}
.coverage-cta .btn{
  padding: 10px 24px;
  border-radius: 999px;
  font-weight: 700;
  /* .btn w Twoim CSS jest już żółta z czarnym tekstem – nic więcej nie trzeba */
}
html { scroll-behavior: smooth; }

/* Coverage CTA: wymuś żółty styl i wyłącz niebieski overlay motywu */
.coverage-cta .btn.cta-wipe{
  border: 2px solid var(--fibergo-yellow) !important;
  background: transparent !important;
  color: var(--fibergo-black) !important;
  box-shadow: none !important;
}
.coverage-cta .btn.cta-wipe::before,
.coverage-cta .btn.cta-wipe::after{
  content: none !important;        /* gasi niebieski wylew z motywu */
}
.coverage-cta .btn.cta-wipe:hover,
.coverage-cta .btn.cta-wipe:focus{
  background-size: 100% 100% !important;  /* nasz żółty wipe */
  color: var(--fibergo-black) !important;
}
/* === FiberGo — fix żółtego: zablokuj przyciemnianie i zawsze trzymaj #FFF200 === */
:root {
  --fibergo-yellow: #FFF200 !important;  /* dokładnie jak w plikach/brandzie */
  --fibergo-black: #111827 !important;
}

/* 1) Wyłącz globalnie przyciemnianie na hover/focus */
.btn:hover, .btn:focus,
.theme-btn:hover, .theme-btn:focus,
.transparent-btn:hover, .transparent-btn:focus,
.banner-bg .btn:hover, .banner-bg .btn:focus,
.map-btn:hover, .map-btn:focus,
.faq-map .btn:hover, .faq-map .btn:focus,
.pricing-item .btn:hover, .pricing-item .btn:focus,
.btn.solid:hover, .btn.solid:focus {
  filter: none !important;
  -webkit-filter: none !important;
  box-shadow: none !important;
}

/* 2) Ustal jasny, niezmienny hover — zawsze czyste #FFF200 */
.btn:not(.cta-wipe):hover, .btn:not(.cta-wipe):focus,
.theme-btn:not(.cta-wipe):hover, .theme-btn:not(.cta-wipe):focus,
.transparent-btn:not(.cta-wipe):hover, .transparent-btn:not(.cta-wipe):focus,
.pricing-item .btn:not(.cta-wipe):hover, .pricing-item .btn:not(.cta-wipe):focus {
  background-color: var(--fibergo-yellow) !important;
  border-color: var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
}


/* 3) Wariant wipe (żółta fala) bez domieszek */
.btn.cta-wipe,
.btn.cta-wipe:hover, .btn.cta-wipe:focus {
  background-image: linear-gradient(var(--fibergo-yellow), var(--fibergo-yellow)) !important;
  background-color: transparent !important; /* brak innych kolorów pod spodem */
  background-size: 100% 0% !important;
  border: 2px solid var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
  filter: none !important;
}
.btn.cta-wipe:hover, .btn.cta-wipe:focus {
  background-size: 100% 100% !important;   /* wypełnij „falą” tym samym #FFF200 */
}

/* 4) Zgaś wszelkie pseudo-overlay z motywu (niebieskie/czerwone „zalewy”) */
.btn::before, .btn::after,
.theme-btn::before, .theme-btn::after {
  content: none !important;
  display: none !important;
}

:root {
  --fibergo-yellow: #F6E600;
  --fibergo-black: #111827;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --cta-wipe-dur: 0.3s;
}

.btn {
  background-color: transparent;
  background-image: linear-gradient(var(--fibergo-yellow), var(--fibergo-yellow));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 0;
  color: var(--fibergo-black);
  border: 2px solid var(--fibergo-yellow);
  border-radius: 999px;
  padding: 10px 24px;
  font-weight: 700;
  cursor: pointer;
  transition: background-size var(--cta-wipe-dur) var(--ease-out);
}

.btn:hover,
.btn:focus {
  background-size: 100% 100%;
  color: var(--fibergo-black);
  filter: none;
  -webkit-filter: none;
  box-shadow: none;
  outline: none;
}

.btn:focus-visible {
  outline: 2px solid rgba(255, 242, 0, 0.6);
  outline-offset: 2px;
}

.btn::before,
.btn::after {
  content: none !important;
  display: none !important;
}


/* ==== FIBERGO — MINIMALNY HOTFIX KOLORÓW ==== */

/* 1) Podmień zmienne motywu na barwy FiberGo */
:root{
  --bd-theme-primary:  #FFF200;   /* żółty FiberGo */
  --bd-theme-secondary:#111827;   /* ciemny (na overlay, obramowania itp.) */
  /* opcjonalnie, żeby nagłówki były spójne: */
  --bd-heading-primary:#111827;
}

/* 2) Wyłącz globalne barwienie linków przez motyw:
   (motyw ma: a,button { color: var(--bd-theme-primary); } )
   My chcemy, by zwykłe linki dziedziczyły kolor z otoczenia. */
body a,
body button {
  color: inherit;
}

/* 3) Buttony – czytelny czarny tekst + overlay w naszym żółtym */
/* (motyw domyślnie robi białe litery i niebieski/czerwony overlay) */
.btn{
  color: #111827 !important;                 /* czarny tekst */
}
.btn::before{
  background: var(--bd-theme-primary) !important;  /* żółty „zalew” zamiast niebieskiego */
}
/* Transparent – obrys/hover na żółto, tekst zawsze czarny */
.transparent-btn{
  border-color: var(--bd-theme-primary) !important;
  color: #111827 !important;
}
.transparent-btn:hover{
  background: var(--bd-theme-primary) !important;
  border-color: var(--bd-theme-primary) !important;
  color: #111827 !important;
}

/* (opcjonalnie) linki w stopce/ciemnych sekcjach – delikatny hover,
   jeżeli chcesz zachować akcent: */
/*
.footer-area a:hover { color: var(--bd-theme-primary) !important; }
*/

/* === FiberGo: lokalny powrót czerwonych akcentów === */

/* Ikona telefonu przy "Porozmawiajmy..." */
.banner-phone .icon {
  color: #E12424 !important; /* czerwony jak wcześniej */
}

/* "zamknięte" i "24h" w stopce */
.fw-schedule-list li span.close {
  color: #E12424 !important;
}

/* === FiberGo: Styl CTA z efektem nasuwania === */

.btn, 
.transparent-btn {
  position: relative;
  display: inline-block;
  padding: 12px 28px;
  font-weight: 600;
  border: 2px solid var(--bd-theme-primary);
  border-radius: 999px;
  background: transparent;
  color: #111827;
  overflow: hidden;
  z-index: 1;
  transition: color 0.3s ease;
}

/* Warstwa tła (nasuwająca się od dołu) */
.btn::before,
.transparent-btn::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0%; /* startuje od 0 */
  background: var(--bd-theme-primary);
  z-index: -1;
  transition: height 0.35s ease;
  border-radius: 999px;
}

/* Efekt po najechaniu */
.btn:hover::before,
.transparent-btn:hover::before {
  height: 100%; /* płynne wypełnienie od dołu */
}

.btn:hover,
.transparent-btn:hover {
  color: #111827;
}

/* === FiberGo — CTA: transparent + żółty nasuwający się od dołu === */
.btn.cta-wipe {
  /* tło startowo przezroczyste */
  background: transparent !important;

  /* żółta „fala” rysowana tłem, start od dołu, wysokość 0% */
  background-image: linear-gradient(var(--fibergo-yellow), var(--fibergo-yellow)) !important;
  background-repeat: no-repeat !important;
  background-position: left bottom !important;
  background-size: 100% 0% !important;

  border: 2px solid var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
  border-radius: 999px;
  font-weight: 700;

  /* płynność nasuwania */
  transition: background-size var(--cta-wipe-dur) var(--ease-out), color .2s ease;
  box-shadow: none !important;
}

/* hover: fala wypełnia cały przycisk od dołu */
.btn.cta-wipe:hover,
.btn.cta-wipe:focus {
  background-size: 100% 100% !important;
  color: var(--fibergo-black) !important;
  outline: none !important;
}

/* === FiberGo — CTA WIPE: transparent start + żółta fala od dołu (tylko .cta-wipe) === */
/* Podbijamy SPECYFICZNOŚĆ względem .btn:not(.transparent-btn):not(.btn-link) */
.btn.cta-wipe:not(.transparent-btn):not(.btn-link),
.banner-bg .btn.cta-wipe:not(.transparent-btn):not(.btn-link),
.header-btn .btn.cta-wipe:not(.transparent-btn):not(.btn-link),
.banner-content .btn.cta-wipe:not(.transparent-btn):not(.btn-link),
.coverage-cta .btn.cta-wipe:not(.transparent-btn):not(.btn-link) {
  /* stan bazowy: przezroczysty */
  background-color: transparent !important;

  /* rysujemy „falę” tłem – start od dołu, wysokość 0% */
  background-image: linear-gradient(var(--fibergo-yellow), var(--fibergo-yellow)) !important;
  background-repeat: no-repeat !important;
  background-position: left bottom !important;
  background-size: 100% 0% !important;

  /* obrys + tekst */
  border: 2px solid var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
  border-radius: 999px;
  font-weight: 700;
  transition: background-size var(--cta-wipe-dur) var(--ease-out), color .2s ease;
  box-shadow: none !important;
}

/* hover/focus: fala wypełnia cały przycisk */
.btn.cta-wipe:not(.transparent-btn):not(.btn-link):hover,
.btn.cta-wipe:not(.transparent-btn):not(.btn-link):focus,
.banner-bg .btn.cta-wipe:not(.transparent-btn):not(.btn-link):hover,
.banner-bg .btn.cta-wipe:not(.transparent-btn):not(.btn-link):focus,
.header-btn .btn.cta-wipe:not(.transparent-btn):not(.btn-link):hover,
.header-btn .btn.cta-wipe:not(.transparent-btn):not(.btn-link):focus,
.banner-content .btn.cta-wipe:not(.transparent-btn):not(.btn-link):hover,
.banner-content .btn.cta-wipe:not(.transparent-btn):not(.btn-link):focus,
.coverage-cta .btn.cta-wipe:not(.transparent-btn):not(.btn-link):hover,
.coverage-cta .btn.cta-wipe:not(.transparent-btn):not(.btn-link):focus {
  background-size: 100% 100% !important;
  color: var(--fibergo-black) !important;
  outline: none !important;
}

/* DORAŹNIE: wyłącz pseudo-overlay motywu tylko na .cta-wipe (zamiast globalnie) */
.btn.cta-wipe::before,
.btn.cta-wipe::after { content: none !important; display: none !important; }

.btn.cta-wipe:active { transform: translateY(1px); }

/* Coverage result – wymuś kolor także na b/strong/linkach */
.coverage-result.ok,
.coverage-result.ok b,
.coverage-result.ok strong,
.coverage-result.ok a { color:#16a34a !important; }

.coverage-result.warn,
.coverage-result.warn b,
.coverage-result.warn strong,
.coverage-result.warn a { color:#b45309 !important; }

.coverage-result.hint,
.coverage-result.hint b,
.coverage-result.hint strong,
.coverage-result.hint a { color:#374151 !important; }

.coverage-result.off,
.coverage-result.off b,
.coverage-result.off strong,
.coverage-result.off a { color:#991b1b !important; }


/* === Anti-jump pod formularzem zasięgu === */

/* Wynik: rezerwujemy jedną linię + miękki fade */
.coverage-result{
  min-height: 28px;
  transition: opacity .25s var(--ease-out), transform .25s var(--ease-out);
}
.coverage-result.loading{ opacity:.6; }
.coverage-result:not(.loading){ opacity:1; }

/* CTA: zawsze rezerwuj wysokość przycisków */
.coverage-cta{
  display:flex; justify-content:center; align-items:center; gap:12px;
  min-height: 56px;   /* ≈ wysokość jednego przycisku */
}

/* HACK: nawet gdy ma atrybut [hidden], trzymaj miejsce (tylko tu!) */
.coverage-cta[hidden]{
  display:flex !important;    /* zamiast domyślnego display:none */
  visibility:hidden;
  opacity:0;
}

/* Stabilna szerokość przycisków, żeby nie „mrugały” */
.coverage-cta .btn{ min-width: 220px; text-align:center; }


  #fgOrderModal .fgm-consent {
    display: flex;
    align-items: flex-start;
    margin-top: 8px;
  }

  #fgOrderModal .fgm-consent label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.45;
    color: #374151;
    flex-wrap: wrap;
    max-width: 100%;
  }

  #fgOrderModal .fgm-consent input[type="checkbox"] {
    margin-top: 3px;
    flex-shrink: 0;
  }

  /* Klucz: niełamliwy fragment „zgodnie z Polityką RODO.” */
  #fgOrderModal .fgm-consent .nowrap {
    white-space: nowrap;
  }

  #fgOrderModal .fgm-consent a {
    color: #2d2e83;
    font-weight: 600;
    text-decoration: none;
  }

  #fgOrderModal .fgm-consent a:hover {
    text-decoration: underline;
  }

/* === PODSUMOWANIE: responsywny modal na mobile === */
:root {
  /* awaryjnie, JS nadpisze na realny viewport */
  --fg-vh: 100dvh;
}

/* Overlay */
#orderSummaryOverlay {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, .65);        /* mocniejsze przyciemnienie */
  backdrop-filter: blur(1px);
  z-index: 9998;
}

/* Dialog */
#orderSummaryModal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 16px;                             /* bezpieczne marginesy na mobile */
  z-index: 9999;
}

/* Pudełko modala */
#orderSummaryModal .fg-modal {
  width: min(96vw, 720px);
  max-width: 720px;
  border-radius: 18px;
  background: #fff;

  /* 🔥 identyczne jak karty planów */
  border: 1px solid rgba(0,0,0,.08); 
  outline: 2px solid rgba(255,242,0,.85);
  box-shadow:
    0 10px 30px rgba(255,242,0,.22),
    0 18px 60px rgba(0,0,0,.12);

  display: flex;
  flex-direction: column;
  max-height: calc(var(--fg-vh));
  overflow: hidden;

  animation: fgModalPulse 2s ease-in-out 1;
}


/* Header / body / footer */
#orderSummaryModal .fg-modal__header {
  padding: 16px 20px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
#orderSummaryModal .fg-modal__title {
  margin: 0;
  font-size: clamp(18px, 2.6vw, 22px);
  font-weight: 800;
}
#orderSummaryModal .fg-modal__body {
  padding: 16px 20px;
  overflow: auto;                            /* przewijamy ZAWARTOŚĆ, nie całą stronę */
  -webkit-overflow-scrolling: touch;
}
#orderSummaryModal .fg-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 20px 20px; /* ↑ tu dodaliśmy 40px dolnego marginesu */
  border-top: 1px solid rgba(0,0,0,.06);
}


/* Pola telefon/e-mail tej samej szerokości */
#orderSummaryModal .fg-form-row {
  display: grid; gap: 12px;
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 520px) {
  #orderSummaryModal .fg-form-row { grid-template-columns: 1fr; }
}

/* Lista podsumowania — równe kolumny, mniejsze odstępy */
#orderSummaryModal .sum-list { display: grid; gap: 10px; }
#orderSummaryModal .sum-row {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 10px;                          /* mniejszy odstęp między etykietą a wartością */
  align-items: start;
}
#orderSummaryModal .sum-label {
  font-weight: 700; color: #111827; white-space: nowrap;
}
#orderSummaryModal .sum-value {
  color: #111827;
}
#orderSummaryModal .sum-label::after { content: ":"; }  /* dwukropek po etykiecie */

/* Wyrównanie wartości „Dodatki” do reszty (wiele linii) */
#orderSummaryModal .sum-value > .addon-pill {
  display: inline-block; margin: 2px 6px 2px 0;
}

/* Kwota końcowa */
#orderSummaryModal .total-line {
  margin-top: 8px; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap;
}
#orderSummaryModal .total-amount {
  font-weight: 800; font-size: clamp(18px, 4.8vw, 22px);
}

/* Checkbox RODO w jednej linii, bez łamania */
#orderSummaryModal .rodo-wrap {
  display: flex; align-items: flex-start; gap: 10px;
}
#orderSummaryModal .rodo-wrap input[type="checkbox"] { margin-top: 3px; }
#orderSummaryModal .rodo-text {
  margin: 0; line-height: 1.35;
  white-space: nowrap;                        /* wszystko w jednej linii */
  overflow: hidden; text-overflow: ellipsis;  /* jeśli się nie mieści — estetyczny skrót */
}
@media (max-width: 420px) {
  #orderSummaryModal .rodo-text { white-space: normal; } /* na bardzo małych ekranach pozwól łamać */
}

/* Blokada scrolla tła kiedy modal otwarty */
html.modal-open, body.modal-open { overflow: hidden; }


/* Wariant zablokowanej “pigułki” wyboru */
.chip-disabled {
  opacity: .55;
  cursor: not-allowed;
}
.chip-disabled input {
  pointer-events: none;
}
.chip-disabled span {
  /* opcjonalnie lekko “szare” */
  filter: grayscale(20%);
}

/* Highlight – spójny dla featured, wybranego i hover */
.pricing-item {
  transition: box-shadow .2s ease, transform .2s ease, outline-color .2s ease;
  outline: 2px solid transparent;
  border-radius: 18px; /* dla ładniejszej poświaty */
}

/* stałe podświetlenie środkowej kolumny */
.pricing-item.featured {
  outline-color: rgba(255, 242, 0, .85);
  box-shadow:
    0 8px 28px rgba(255, 242, 0, .18),
    0 18px 60px rgba(0, 0, 0, .12);
}

/* kliknięty (wybrany) */
.pricing-item.fg-selected {
  outline-color: rgba(255, 242, 0, .9);
  box-shadow:
    0 10px 34px rgba(255, 242, 0, .22),
    0 22px 70px rgba(0, 0, 0, .14);
  transform: translateY(-2px);
}

/* hover (tylko kiedy nie jest selected) */
.pricing-item.fg-hover:not(.fg-selected) {
  outline-color: rgba(255, 242, 0, .75);
  box-shadow:
    0 8px 28px rgba(255, 242, 0, .16),
    0 16px 54px rgba(0, 0, 0, .10);
  transform: translateY(-1px);
}

/* dla dostępności – focus klawiaturą jak hover */
.pricing-item:focus-within:not(.fg-selected) {
  outline-color: rgba(255, 242, 0, .75);
  box-shadow:
    0 8px 28px rgba(255, 242, 0, .16),
    0 16px 54px rgba(0, 0, 0, .10);
}


.fgm-consent label a {
  white-space: nowrap;
  display: inline;
}

.nowrap {
  white-space: nowrap;
}

/* --- Formularz w modalu FiberGo --- */

/* Pola formularza */
.fgm-form .fgm-row input[name="fullName"] {
  width: 100%;
}

.fgm-form .fgm-row input[name="phone"],
.fgm-form .fgm-row input[name="email"] {
  width: 75%;
}

/* Zgoda RODO — bez złamania przed linkiem */
.fgm-consent label {
  white-space: normal;
}
.fgm-consent label a {
  white-space: nowrap;
  display: inline;
}

/* --- Modal FiberGo: szerokości pól --- */
.fgm-form .fgm-row input[name="fullName"]{
  width: 50%;              /* pół szerokości okna */
}
.fgm-form .fgm-row input[name="phone"],
.fgm-form .fgm-row input[name="email"]{
  width: 37.5%;            /* 75% szerokości pola 'Imię i nazwisko' = 37.5% okna */
}

/* --- Zgoda RODO w jednej linii (bez łamań) --- */
.fgm-consent{
  display: flex !important;
  align-items: center;
  gap: 10px;
  white-space: nowrap;     /* trzymaj całość w jednym wierszu */
}
.fgm-consent input[type="checkbox"]{
  margin: 0;
  flex: 0 0 auto;
}
.fgm-consent label{
  margin: 0;
  display: inline;         /* pewność, że nic nie robią blokowe marginesy */
}
.fgm-consent label a{
  display: inline;
  white-space: nowrap;     /* link nie łamie się osobno */
}

/* === DYMKI WALIDACYJNE FiberGo === */
.fgm-tip {
  position: absolute;
  right: -10px;               /* tuż obok pola */
  top: 50%;
  transform: translateY(-50%); /* wyśrodkowanie w pionie */
  background: #fff200;         /* żółty firmowy FiberGo */
  color: #000;                 /* kontrastowy tekst */
  border: 1px solid #e5c800;
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
  white-space: nowrap;
  z-index: 5;
}

.fgm-tip::after {
  content: '';
  position: absolute;
  top: 50%;
  left: -6px;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-right-color: #e5c800; /* cień strzałki */
}

.fgm-tip::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -5px;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-right-color: #fff200; /* żółta strzałka */
}

/* Wyrównanie rodzica dla dymków */
.fgm-row {
  position: relative;
}

/* --- MOBILE / SMALL VIEWPORT FIXES --- */
@media (max-width: 768px){
.fgm-dialog{
  width: 94vw;                 /* szerokość jak było */
  margin: 12px auto;           /* stały odstęp góra/dół, bez vh */
  padding: 18px 14px;
  max-height: calc(100vh - 24px); /* wysokość ekranu minus marginesy */
  overflow: auto;              /* przewijamy środek modala */
  border-radius: 16px;
}


  /* Pełna szerokość pól na mobile */
  .fgm-form input[name="fullName"],
  .fgm-form input[name="phone"],
  .fgm-form input[name="email"]{
    width: 100% !important;
    padding-right: 14px;   /* na mobile dymek pod polem, więc nie potrzeba miejsca po prawej */
  }

  /* Dymek pod polem (zamiast w środku po prawej) */
  .fgm-tip{
    position: absolute;
    right: auto;
    left: 14px;
    top: calc(100% + 6px);
    transform: none;
    white-space: normal;   /* może się łamać w kilku liniach */
    max-width: calc(100% - 28px);
  }
  .fgm-tip::after{
    left: 24px;
    right: auto;
    top: -6px;
    transform: none;
    border: 6px solid transparent;
    border-bottom-color: #FFF200; /* grot do góry, wskazuje pole */
  }

  /* Sekcja zgody – lepsze odstępy na małych ekranach */
  .fgm-consent{
    grid-template-columns: 20px 1fr;
    row-gap: 6px;
  }
}

/* Zapobiegaj skakaniu tła podczas otwartego modala */
body.fg-no-scroll{
  overflow: hidden;
  touch-action: none;
}

.hero-title{ text-align:center; font-weight:800; line-height:1.1; letter-spacing:-0.02em; }
.hero-title span{ display:block; white-space:nowrap; } /* gwarantuje dokładnie 2 wiersze */


/* HERO: tytuł nad planami Internetu */
.hero-title {
  text-align: center;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-size: clamp(1.9rem, 3.2vw, 2.75rem);
  margin: 0 auto;
  margin-bottom: 64px; /* <-- odstęp od kart; dopasowany do sekcji Rozwiązania sieciowe/FAQ */
  max-width: 900px;
}

.hero-title span {
  display: block;
  white-space: nowrap; /* zapewnia dokładnie 2 linie */
}

/* Drobna responsywność dla mniejszych ekranów */
@media (max-width: 768px) {
  .hero-title {
    font-size: clamp(1.6rem, 6vw, 2rem);
    margin-bottom: 48px; /* mniejszy odstęp na mobile */
  }
  .hero-title span {
    white-space: normal; /* pozwól zawijać, gdy ekran wąski */
  }
}

/* ===== Sekcja planów (nagłówek 2 linie, wyśrodkowanie, odstęp) ===== */
.pricing-area .container {
  /* upewnijmy się, że cała sekcja jest osiowana do środka */
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-title {
  text-align: center;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-size: clamp(1.9rem, 3.2vw, 2.75rem);
  margin: 0 auto;
  max-width: 900px;         /* trzymamy szerokość bloku tytułu */
  margin-bottom: 64px;      /* odstęp jak w innych sekcjach */
}

.hero-title span {
  display: block;
  white-space: nowrap;      /* trzyma dokładnie 2 linie na desktopie */
}

/* Grid/karty zachowują pełną szerokość sekcji po wyśrodkowaniu container */
.pricing-area .pricing-row,
.pricing-area .plans-grid {
  width: 100%;
}

/* Mobile: pozwól zawijać, trochę mniejszy odstęp */
@media (max-width: 768px) {
  .hero-title {
    font-size: clamp(1.6rem, 6vw, 2rem);
    margin-bottom: 48px;
  }
  .hero-title span { white-space: normal; }
}

/* ========== Sekcja planów: centrowanie, 2 linie, odstęp ========== */

/* Ujednolicony odstęp sekcji (taki jak „Rozwiązania sieciowe/FAQ”) */
:root {
  --section-gap: 64px;           /* desktop */
}
@media (max-width: 768px) {
  :root { --section-gap: 48px; } /* mobile */
}

/* Kontener sekcji planów, żeby nic nie „ściągało” w lewo */
.pricing-area .container {
  max-width: 1200px;
  margin: 0 auto;                /* centracja całej sekcji */
}

/* Nagłówek: twarde wyśrodkowanie nawet gdy rodzic ma text-align:left */
.section-title--plans {
  display: block;
  position: relative;
  left: 50%;
  transform: translateX(-50%);   /* wymuszone wyśrodkowanie */
  width: max-content;            /* szerokość wg treści */
  max-width: 100%;               /* ale nie wychodź poza viewport */
  margin: 0 auto var(--section-gap);
  text-align: center !important; /* nadpisz ewentualne left */
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.18;
  font-size: clamp(1.9rem, 3.2vw, 2.75rem);
}

/* Dokładnie 2 linie tylko na bardzo szerokich ekranach */
.section-title--plans span {
  display: block;
}

/* ≥1200px – możesz wymusić 2 linie, bo jest dużo miejsca */
@media (min-width: 1200px) {
  .section-title--plans span {
    white-space: nowrap;
  }
}


/* Na mobile pozwól się zawijać, ale zachowaj odstęp */
@media (max-width: 768px) {
  .section-title--plans { font-size: clamp(1.6rem, 6vw, 2rem); }
  .section-title--plans span { white-space: normal; }
}

/* Upewnij się, że grid/karty startują pod tytułem, na całą szerokość kontenera */
.pricing-area .pricing-row,
.pricing-area .plans-grid {
  width: 100%;
}

/* (opcjonalnie) jeśli gdzieś jest globalne wyrównanie na lewo, zgaś je w sekcji planów */
.pricing-area h2,
.pricing-area .section-title {
  text-align: center !important;
}

/* =========================
   FIBERGO — HOTFIX PACK (drop-in)
   Wklej NA SAMYM KOŃCU pliku CSS
   ========================= */

/* 1) Pricing: przywróć czytelny tytuł (czarny, wyżej nadpisany na biało) */
.pricing-item .title,
.pricing-item .title a{
  color:#000 !important;
}

/* 2) Usuń skutki przypadkowego <style> w .css
   (jeśli masz w arkuszu literalnie te tagi — skasuj je w pliku.
   Poniżej duplikuję kluczowe reguły bez tagów, żeby na pewno działały.) */
#fgOrderModal .fgm-consent{
  display:flex; align-items:flex-start; margin-top:8px;
}
#fgOrderModal .fgm-consent label{
  display:flex; align-items:flex-start; gap:8px; font-size:14px; line-height:1.45; color:#374151; flex-wrap:wrap; max-width:100%;
}
#fgOrderModal .fgm-consent input[type="checkbox"]{ margin-top:3px; flex-shrink:0; }
#fgOrderModal .fgm-consent .nowrap{ white-space:nowrap; }
#fgOrderModal .fgm-consent a{ color:#2d2e83; font-weight:600; text-decoration:none; }
#fgOrderModal .fgm-consent a:hover{ text-decoration:underline; }

/* 3) Linki: ujednolić zachowanie — globalnie żółte linki, ale
      w header-top i stopce niech dziedziczą kolor (bardziej „drukarsko”) */
.header-top-wrap a,
.footer-area a,
.footer-wrap a{ color:inherit !important; }
a{ color:#FFF200; transition:color .2s ease; }
a:hover, a:focus{ color:#e5dc00; }

/* 4) Przyciski: jedna, kanoniczna wersja + „wipe”
      (czyści wcześniejsze mieszanki i pseudo-overlay motywu) */
.btn,
.theme-btn{
  position:relative;
  display:inline-block;
  border:2px solid var(--fibergo-yellow) !important;
  border-radius:999px;
  background:transparent !important;
  color:var(--fibergo-black) !important;
  font-weight:700;
  padding:10px 24px;
  cursor:pointer;
  box-shadow:none !important;
}
.btn::before,
.btn::after,
.theme-btn::before,
.theme-btn::after{ content:none !important; display:none !important; }

/* efekt wipe spójny w całym serwisie */
.btn.cta-wipe,
.theme-btn.cta-wipe{
  background-image:linear-gradient(var(--fibergo-yellow), var(--fibergo-yellow)) !important;
  background-repeat:no-repeat !important;
  background-position:left bottom !important;
  background-size:100% 0% !important;
  transition:background-size var(--cta-wipe-dur, .3s) var(--ease-out, cubic-bezier(.16,1,.3,1)), color .2s;
}
.btn.cta-wipe:hover,
.btn.cta-wipe:focus,
.theme-btn.cta-wipe:hover,
.theme-btn.cta-wipe:focus{
  background-size:100% 100% !important;
  color:var(--fibergo-black) !important;
  outline:none !important;
}

/* warianty „pełne” też zachowują czyste #FFF200 */
.btn:not(.transparent-btn):not(.btn-link),
.theme-btn:not(.transparent-btn):not(.btn-link){
  background:var(--fibergo-yellow) !important;
  color:var(--fibergo-black) !important;
}
.btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):hover,
.theme-btn:not(.transparent-btn):not(.btn-link):not(.cta-wipe):hover{
  background: var(--fibergo-yellow) !important;
  filter: none !important;
}

/* 5) Coverage — nie nadpisuj contenera globalnie (by nie rozjechać Bootstrap),
      tylko wewnętrzną siatkę formularza */
.coverage-check .coverage-form{
  margin:0 auto !important;
  max-width:1100px;
  padding:0 16px;
}

/* 6) Safety: jeśli :has() nie jest wspierane, niech nic nie „miga”
   (bez JS-owego fallbacku, tylko gasimy potencjalny cień/animację) */
@supports not (selector(:has(*))){
  :is(.menu-area,#sticky-header) .navigation>li>a{
    text-shadow:none !important;
    transform:none !important;
  }
}

/* Centrum i spójna szerokość nagłówka planów */
#plans-title {
  display:block;
  width:100%;
  max-width: 1100px;   /* szerokość optyczna – możesz ustawić 1000–1200px */
  margin: 0 auto;      /* perfekcyjne wyśrodkowanie względem całej sekcji */
  text-align: center !important;
  line-height: 1.25;
}
#plans-title span { display:block; }


/* === żółta kreska pod "Wybierz swój plan..." === */
.section-title--plans::after {
  content: "";
  display: block;
  width: 64px;
  height: 4px;
  margin: 12px auto 0;
  background: var(--fibergo-yellow);
  border-radius: 2px;
}

/* === odstęp między tytułem a kartami planów === */
.pricing-area .section-title {
  margin-bottom: 50px !important; /* wcześniej 50px */
}

.pricing-plan-wrap {
  margin-top: 0 !important;
}

/* === Przywrócenie białego koloru tytułu na kartach planów === */
.pricing-thumb .title,
.pricing-thumb .title a {
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,.35); /* subtelny kontrast */
}

/* === precyzyjne wyrównanie napisu "Internet Światłowodowy" === */
.pricing-thumb .title {
  position: relative;
  left: 10px;               /* przesunięcie w prawo */
  max-width: 65%;           /* zapobiega kolizji z etykietą prędkości */
  text-align: left;
  line-height: 1.15;
  color: #fff !important;   /* zostaje biały */
  text-shadow: 0 2px 6px rgba(0,0,0,.35);
}

/* === CTA wipe identyczny dla <a> i <button> === */
.btn.cta-wipe {
  position: relative;
  overflow: hidden;
  border: 2px solid var(--fibergo-yellow) !important;
  border-radius: 999px;
  background: transparent !important;      /* wyłącz tła z Bootstrapa/motywu */
  color: var(--fibergo-black) !important;
  font-weight: 700;
  transition: color .25s ease, border-color .25s ease;
}

/* żółta warstwa animowana – niezależna od typu elementu */
.btn.cta-wipe::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--fibergo-yellow);
  transform: translateY(100%);             /* start: pod przyciskiem */
  transition: transform var(--cta-wipe-dur, .36s) var(--ease-io, cubic-bezier(.2,.7,.2,1));
  z-index: 0;
}

/* tekst nad warstwą */
.btn.cta-wipe, .btn.cta-wipe > * { position: relative; z-index: 1; }

/* wypełnienie od DOŁU do GÓRY */
.btn.cta-wipe:hover,
.btn.cta-wipe:focus-visible {
  border-color: var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
}
.btn.cta-wipe:hover::after,
.btn.cta-wipe:focus-visible::after {
  transform: translateY(0%);               /* pełne wypełnienie */
}

/* płynny powrót: z GÓRY do DOŁU w tym samym tempie */
.btn.cta-wipe:not(:hover):not(:focus-visible)::after {
  transform: translateY(100%);
}

/* zgaś globalne hover-tła z Bootstrapa/motywu na tym wariancie */
.btn.cta-wipe:hover,
.btn.cta-wipe:focus,
.btn.cta-wipe:active {
  background: transparent !important;
  box-shadow: none;                         /* jeżeli motyw coś dodaje */
}
 
 /* Wyrównanie stylu theme-btn i cta-wipe, by wyglądały identycznie */
.btn.theme-btn,
.btn.theme-btn.cta-wipe {
  border-radius: 999px !important;
  font-weight: 700 !important;
  color: var(--fibergo-black) !important;
}

/* === FIX: przycisk theme-btn ma być przezroczysty i animować jak pozostałe === */
#check-btn.theme-btn {
  background: transparent !important;
  background-image: linear-gradient(to top, var(--fibergo-yellow), var(--fibergo-yellow)) !important;
  background-repeat: no-repeat !important;
  background-position: bottom center !important;
  background-size: 100% 0% !important;
  border: 2px solid var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
  font-weight: 700;
  border-radius: 999px;
  transition:
    background-size var(--cta-wipe-dur, 0.36s) var(--ease-io, cubic-bezier(.2,.7,.2,1)),
    color 0.25s ease,
    border-color 0.25s ease;
}

/* animacja z DOŁU do GÓRY po najechaniu */
#check-btn.theme-btn:hover,
#check-btn.theme-btn:focus-visible {
  background-size: 100% 100% !important;
  color: var(--fibergo-black) !important;
}

/* płynny powrót z GÓRY do DOŁU */
#check-btn.theme-btn:not(:hover):not(:focus-visible) {
  background-size: 100% 0% !important;
}

/* wyłącz pseudo-elementy z motywu (które robiły pełne tło) */
#check-btn.theme-btn::before,
#check-btn.theme-btn::after {
  content: none !important;
  display: none !important;
}

/* ---- FiberGo button theme: wipe z dołu do góry ---- */
.btn.cta-wipe,
.theme-btn.cta-wipe {
  position: relative;
  background: transparent !important;
  background-image: linear-gradient(var(--fibergo-yellow), var(--fibergo-yellow)) !important;
  background-repeat: no-repeat !important;
  background-position: 0 100% !important; /* start od dołu */
  background-size: 100% 0% !important;    /* niewidoczne na starcie */
  border: 2px solid var(--fibergo-yellow) !important;
  color: var(--fibergo-black) !important;
  transition:
    background-size var(--cta-wipe-dur, .36s) var(--ease-out, cubic-bezier(.16,1,.3,1)),
    color .2s ease,
    border-color .2s ease;
}
.btn.cta-wipe:hover,
.btn.cta-wipe:focus,
.theme-btn.cta-wipe:hover,
.theme-btn.cta-wipe:focus {
  background: transparent !important;
  background-size: 100% 100% !important; /* płynne wypełnienie do góry */
}
.btn.cta-wipe:not(:hover):not(:focus),
.theme-btn.cta-wipe:not(:hover):not(:focus) {
  background-size: 100% 0% !important;    /* płynny „odpływ” w dół */
}



/* === FiberGo Button System START === */

/* =========================================================
   FiberGo Button System — vertical wipe (from bottom to top)
   Applies to any .btn.cta-wipe (including dynamic buttons)
   ========================================================= */
:root{
  --fg-wipe-bg: var(--fibergo-black, #111);
  --fg-wipe-fg: var(--fibergo-yellow, #FFF200);
  --fg-wipe-radius: 999px;
  --fg-wipe-speed: .36s;
  --fg-wipe-ease: cubic-bezier(.2,.7,.2,1);
}

.btn{position:relative;overflow:hidden;z-index:0}

.btn.cta-wipe{
  background: linear-gradient(180deg, var(--fg-wipe-fg) 0%, var(--fg-wipe-fg) 100%) no-repeat;
  background-size: 100% 0%;
  background-position: 50% 100%;
  transition: background-size var(--fg-wipe-speed) var(--fg-wipe-ease), color var(--fg-wipe-speed) var(--fg-wipe-ease), border-color var(--fg-wipe-speed) var(--fg-wipe-ease), filter var(--fg-wipe-speed) var(--fg-wipe-ease);
  color: var(--fibergo-yellow-ink, #111);
  border-radius: var(--fg-wipe-radius);
  border-color: currentColor;
}
.btn.cta-wipe{
  background-color: var(--fg-wipe-bg);
  color: #fff;
  border:1px solid var(--fg-wipe-bg);
}
.btn.cta-wipe:hover,
.btn.cta-wipe:focus{
  background-size: 100% 100%;
  color: var(--fg-wipe-bg);
  border-color: var(--fg-wipe-fg);
  outline: none;
}
.btn.cta-wipe:active{ filter:brightness(.92); }

.btn.cta-wipe:hover, .btn.cta-wipe:focus{
  background-image: linear-gradient(180deg, var(--fg-wipe-fg) 0%, var(--fg-wipe-fg) 100%) !important;
}

#fg-global-order-btn.btn.cta-wipe{}

/* === FiberGo Button System END === */

/* 1) Mniej miejsca między dodatkami (VPN) a ceną */
.pricing-item .plan-config { margin-bottom: 6px !important; }
.pricing-item .plan-config .config-row { margin-bottom: 6px !important; }
.pricing-item .plan-config .config-row:last-child { margin-bottom: 0 !important; }
.pricing-item .price-wrap { margin-top: 5px !important; }   /* było ~20 + mt-2 */
.pricing-item .price { margin-top: 0 !important; }

/* 2) Mniej miejsca pod tekstem „Wybierz plan i opcje…” do końca karty */
#fg-global-order-wrap { 
  margin-top: 0px !important;   /* odstęp nad przyciskiem od ceny */
  margin-bottom: 0 !important;   /* usuń zbędny dół wrappera */
  min-height: 0 !important;      /* żadnej sztucznej wysokości */
}
#fg-global-hint{
  margin-top: 6px !important;    /* ciaśniej pod przyciskiem */
  margin-bottom: 0 !important;
  line-height: 1.25 !important;
}

/* 3) Delikatnie mniejszy „oddech” na dole sekcji treści karty */
.pricing-item .pricing-content{ padding-bottom: 0px !important; } /* typowo 24–30 */


.discount-code { margin: 14px 0 8px; }
.discount-code label { font-weight: 600; display: block; margin-bottom: 6px; }
.discount-row { display: flex; gap: 8px; }
.discount-row input { flex: 1; padding: 10px 12px; border:1px solid #e5e7eb; border-radius:10px; }
.discount-row button { padding: 10px 14px; border-radius:10px; border: none; background: var(--fibergo-yellow,#FFF200); cursor: pointer; }
.discount-row button:hover { filter: brightness(0.96); }
.discount-hint { font-size: 12px; opacity: .7; margin-top: 6px; }
.discount-feedback { font-size: 13px; margin-top: 6px; }
.discount-feedback.ok { color: #0a7d2a; }
.discount-feedback.err { color: #b00020; }
.summary-item#summaryDiscount span:last-child { color:#0a7d2a; font-weight:600; }


#contactMessage:focus {
  border-color: var(--fibergo-yellow);
  box-shadow: 0 0 0 3px rgba(255,242,0,0.25);
  outline: none;
}
#contactMessage {
  resize: none !important;
}

#contactMessage:focus {
  border-color: var(--fibergo-yellow);
  box-shadow: 0 0 0 3px rgba(255, 242, 0, 0.25);
  outline: none;
}

/* Tymczasowa blokada przy wyświetlaniu komunikatu */
.pricing-item.fg-temp-locked {
  pointer-events: none;      /* brak interakcji */
  opacity: 0.6;              /* lekkie przyciemnienie */
  transition: opacity .3s ease;
}

/* === Availability WOW: loading + reveal + confetti === */

/* przycisk: stan ładowania */
#check-btn.is-loading{
  position: relative;
  pointer-events: none;
  opacity: .9;
}
#check-btn.is-loading::after{
  content:"";
  position:absolute; inset:0;
  margin:auto;
  width:1.1em; height:1.1em; border-radius:50%;
  border:3px solid rgba(0,0,0,.2);
  border-top-color:#000;
  animation: fg-spin .8s linear infinite;
}
@keyframes fg-spin { to { transform: rotate(360deg);} }

/* pudełko z wynikiem: stan ładowania + wejście */
.coverage-result{
  min-height: 28px;
  will-change: transform, opacity, filter;
}
.coverage-result.loading{
  opacity:.8;
  position:relative;
}
.coverage-result.loading::before{
  content:"Sprawdzam…";
  font-weight:600;
  opacity:.9;
}
.coverage-result.reveal{
  animation: fg-fade-up .45s var(--ease-io) forwards, fg-pop .7s ease-out .15s both;
}
@keyframes fg-fade-up {
  from{ opacity:0; transform: translateY(8px); }
  to  { opacity:1; transform: translateY(0); }
}
@keyframes fg-pop {
  0%  { transform: scale(0.98); filter: drop-shadow(0 0 0 rgba(0,0,0,0)); }
  60% { transform: scale(1.015); }
  100%{ transform: scale(1);   filter: drop-shadow(0 8px 18px rgba(0,0,0,.06)); }
}

/* konfetti */
.fg-confetti{
  position:absolute; inset:0; pointer-events:none; overflow:visible;
}
.fg-confetti i{
  position:absolute; width:6px; height:10px; border-radius:2px;
  background: var(--fibergo-yellow);
  opacity:.95;
  animation: fg-confetti-fly 900ms cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes fg-confetti-fly{
  0%   { transform: translate(0,0) rotate(0deg); opacity:1; }
  100% { transform: translate(var(--dx), var(--dy)) rotate(var(--rot));
         opacity:0; }
}

  /* mniejszy odstęp i stała, węższa kolumna etykiety */
  #fgOrderModal .fgm-dl{
    grid-template-columns: 150px 1fr; /* było 200px */
    column-gap: 10px;                 /* było 18px */
    row-gap: 8px;
  }

  /* dwukropek po każdej etykiecie */
  #fgOrderModal .fgm-dt::after{
    content: ":";
    margin-left: 2px;
  }

  /* spójna wysokość linii dla etykiet i wartości */
  #fgOrderModal .fgm-dt,
  #fgOrderModal .fgm-dd{
    line-height: 1.4;
  }

  /* Dodatki: bez punktorów, bez wcięć – równe z innymi wartościami */
  #fgOrderModal .fgm-dd ul.plain{
    list-style: none;
    padding-left: 0;
    margin: 0;
  }
  #fgOrderModal .fgm-dd ul.plain li{
    margin: 0;
    padding: 0;
  }

/* === FiberGo alert overlay (LOCAL, inside card) === */
.fg-alert {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 20; /* wyżej niż zawartość karty */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  /* 🌕 delikatne, ale intensywniejsze żółte tło z rozmyciem */
  background: rgba(255, 242, 0, 0.28);  /* zamiast gradientu – czystszy efekt */
  backdrop-filter: blur(4.5px) saturate(120%);

  box-shadow: 0 0 12px rgba(255, 242, 0, 0.35) inset,
              0 0 24px rgba(255, 242, 0, 0.25);
  transition: opacity .3s ease, visibility .3s ease;
  border-radius: inherit;
}

.fg-alert.show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}


.fg-alert-box{
  position: relative;        /* dla .fg-glow-ring */
  background: #fff;
  border: 2px solid var(--fibergo-yellow);
  border-radius: 16px;
  padding: 16px 22px;
  font-weight: 600;
  color: #000;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.fg-alert-icon{
  color: var(--fibergo-yellow);
  font-size: 1.3rem;
  line-height: 1;
}

/* === Żółta poświata pod tekstem (za napisem) === */
.fg-glow-ring {
  position: absolute;
  inset: -20% 0 -20% 0;   /* nieco większy obszar niż sam tekst */
  background: radial-gradient(circle at center,
    rgba(255, 242, 0, 0.45) 0%,
    rgba(255, 242, 0, 0.2) 35%,
    rgba(255, 242, 0, 0) 80%);
  filter: blur(14px);
  z-index: -1; /* 🔑 klucz: poświata pod tekstem */
  border-radius: 999px;
  animation: glowPulse 0.8s ease-in-out 4 alternate;
  pointer-events: none;
}


@keyframes glowPulse {
  0%   { opacity: 0.4; transform: scale(0.95); }
  50%  { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}


.router-float-tip{
  position:absolute;
  left:50%;
  top:-38px;
  transform:translate(-50%,-6px);
  background:#fff;
  border:2px solid #ff4c4c;
  border-radius:10px;
  padding:6px 12px;
  font-size:.85rem;
  font-weight:600;
  color:#000;
  display:flex;
  align-items:center;
  gap:6px;
  box-shadow:0 3px 10px rgba(0,0,0,.10);
  opacity:0;
  pointer-events:none;
  transition:opacity .28s var(--ease-io), transform .28s var(--ease-io);
  z-index:5;
}
.router-float-tip i{
  color:#ff4c4c;
  font-size:1rem;
  line-height:1;
}
.router-float-tip.visible{
  opacity:1;
  transform:translate(-50%,-2px);
}
.router-float-tip.leaving{
  opacity:0;
  transform:translate(-50%,-8px);
}
.config-row.router-error-pulse{
  animation:routerErrorPulse .8s ease-in-out 0s 3;
  box-shadow:0 0 0 3px rgba(255,76,76,.35);
  border-radius:14px;
  position:relative;
}
@keyframes routerErrorPulse{
  0%{box-shadow:0 0 0 0 rgba(255,76,76,0);transform:scale(1);}
  50%{box-shadow:0 0 0 6px rgba(255,76,76,.35);transform:scale(1.01);}
  100%{box-shadow:0 0 0 0 rgba(255,76,76,0);transform:scale(1);}
}

.go-summary {
  transition: opacity .25s var(--ease-io), transform .25s var(--ease-io);
}

.go-summary:not(.visible) {
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
}

.pricing-item #fg-global-order-wrap{
  margin-top: 15px !important; /* ustaw swoją wartość */
}
.coverage-check .section-title .title {
  position: relative;
  z-index: 1;
}
/* === HOTLINE bubble – delikatne podniesienie względem tła hero === */
@media (min-width: 992px) {
  .banner-area .banner-phone{
    transform: translateY(-50px); /* podnieś o 8px; dostosuj np. -6px / -10px */
  }
}
#faq .accordion-button:hover {
  background: rgba(255,242,0,.12); /* FiberGo żółty  */
}
#faq .accordion-button:focus {
  box-shadow: 0 0 0 0.15rem rgba(255,242,0,.35);
}
.faq-dashlist {
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.faq-dashlist li {
  margin: 6px 0;
  padding-left: 1em;
  text-indent: -1em;
}
.faq-dashlist li::before {
  content: "– ";
  color: #000;
}

/* ——— Badge 'Bez ściemy' (FINAL BALANCED VERSION) ——— */
.fg-ethics-badge {
    position: fixed !important;
    left: 24px;
    bottom: 24px;
    z-index: 99000; 

    /* WYGLĄD: Poszerzamy do 350px, żeby zmieścić większy tekst w jednej linii */
    width: 350px; 
    
    background: #ffffff;
    border: 2px solid var(--fibergo-yellow, #FFF200);
    border-radius: 14px;
    
    /* Cień Premium */
    box-shadow: 
        0 12px 32px rgba(0,0,0,.15), 
        0 0 0 3px rgba(255,242,0,.25); 
        
    padding: 24px;
    
    display: flex;
    flex-direction: column;
    gap: 16px; 
    
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .35s cubic-bezier(.2,.7,.2,1), transform .35s cubic-bezier(.2,.7,.2,1);
    pointer-events: none;
}

.fg-ethics-badge.is-visible { 
    opacity: 1; 
    transform: translateY(0); 
    pointer-events: auto;
}

/* --- TYPOGRAFIA --- */
.fg-eb-wrap {
    order: 1; 
    display: flex; 
    flex-direction: column; 
    gap: 10px; 
}

.fg-eb-title { 
    font-weight: 900;     
    font-size: 16px;      
    color: #000;          
    display: flex; align-items: center; margin: 0; line-height: 1.1; letter-spacing: -0.02em;
}

/* Tekst główny - Zwiększony do 14px */
.fg-eb-text { 
    font-weight: 500;     
    font-size: 14px;      /* Wyraźniejszy rozmiar */
    line-height: 1.5;
    margin: 0; 
    color: #111827;       
}

/* Efekt zakreślacza */
.fg-eb-text strong,
.fg-eb-text b {
    font-weight: 800;             
    color: #000;
    background-color: var(--fibergo-yellow, #FFF200); 
    padding: 1px 4px;               
    border-radius: 4px;
    box-decoration-break: clone;  
    -webkit-box-decoration-break: clone;
}

/* --- PRZYCISK "Szanuję!" --- */
.fg-ethics-badge .fg-eb-close {
    order: 2;
    align-self: flex-start;
    
    background: var(--fibergo-yellow, #FFF200);
    border: none;
    border-radius: 999px;
    padding: 10px 24px;   
    cursor: pointer;
    
    color: transparent; font-size: 0; width: auto; height: auto; appearance: none;
    
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

.fg-ethics-badge .fg-eb-close::after {
    content: "Szanuję!";
    font-size: 14px;      /* Pasuje wielkością do tekstu */
    font-weight: 800;     
    color: #000;
    display: block;
    line-height: 1;
    white-space: nowrap;
}

.fg-ethics-badge .fg-eb-close:hover { 
    filter: brightness(0.95);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}

/* --- MOBILE FIX --- */
@media (max-width: 768px) {
    .fg-ethics-badge {
        left: 50% !important;
        right: auto !important;
        bottom: 20px !important;
        
        width: calc(100% - 32px) !important; /* Na mobile wraca do szerokości ekranu */
        max-width: 400px;
        padding: 20px !important;
        
        transform: translateX(-50%) translateY(12px);
    }
    
    .fg-ethics-badge.is-visible {
        transform: translateX(-50%) translateY(0);
    }
}
/* =========================
   PRICING – WIDOK MOBILE
   ========================= */
@media (max-width: 767.98px){
  /* trochę ciaśniej, ale nadal oddech */
  .pricing-area{
    padding-top: 40px;
    padding-bottom: 40px;
  }

  /* ładne odstępy między kafelkami */
  .pricing-area .pricing-plan-wrap .row{
    row-gap: 20px;
  }

  /* karty nie przyklejają się do krawędzi ekranu */
  .pricing-area .pricing-plan-wrap .row > [class*="col"]{
    padding-left: 12px;
    padding-right: 12px;
  }

  /* każda karta ma sensowną szerokość i jest wyśrodkowana */
  .pricing-area .pricing-item{
    max-width: 420px;
    margin: 0 auto;
  }
}
/* Offset dla przewijania do sekcji pod sticky headerem */
#checkadress,
#pricing,
#faq,
#opentime {
  scroll-margin-top: 110px; /* jeśli nagłówek zasłania, zwiększ np. do 130px */
}
/* Footer – redesign */
.clean-footer .footer-title {
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 15px;
  color: #000;
}

.clean-footer .footer-line {
  margin-bottom: 8px;
  font-size: 16px;
}

.clean-footer .footer-line i {
  margin-right: 8px;
  color: var(--brand-yellow, #FFF200);
}

.clean-footer a {
  color: #000;
  text-decoration: none;
}

.clean-footer a:hover {
  text-decoration: underline;
}

/* Listy godzin – nowocześniejsze */
.fw-schedule-list.modern li {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
  font-size: 16px;
}

.fw-schedule-list.modern .close {
  color: #d00;
}

/* Social */
.footer-social a {
  font-size: 20px;
  color: #000;
}

.footer-social a:hover {
  color: #333;
}
/* === FiberGo: premium Kontakt w stopce === */
.clean-footer .footer-label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #6b7280;
  margin-bottom: 4px;
  font-weight: 600;
}

.clean-footer .footer-line {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 16px;
}

.clean-footer .footer-line i {
  margin-top: 2px;
  font-size: 15px;
  color: var(--fibergo-yellow);
}

.clean-footer .footer-line a {
  font-weight: 600;
  text-decoration: none;
}

.clean-footer .footer-line a:hover {
  text-decoration: underline;
}

.clean-footer .footer-address {
  display: block;
  line-height: 1.5;
}
/* === FiberGo: wyłącz hamburgera i ZBIJ wysokość nagłówka na mobile
       + wszystko w JEDNEJ linii: FiberGo | FAQ | Napisz do nas === */
@media (max-width: 1199.98px) {

  /* chowamy burgera i wysuwane menu */
  .mobile-nav-toggler,
  .mobile-menu,
  .menu-backdrop {
    display: none !important;
  }

  /* niższa belka */
  #sticky-header.menu-area {
    padding-top: 6px;
    padding-bottom: 6px;
  }

  #sticky-header .container {
    padding-top: 0;
    padding-bottom: 0;
  }

  /* CAŁY NAV: w jednym rzędzie, bez zawijania */
  #sticky-header .menu-wrap .menu-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0px;
    flex-wrap: nowrap;          /* nie zawijaj w dół */
  }

  /* logo po lewej */
  #sticky-header .menu-wrap .logo {
    margin-bottom: 0;
    flex: 0 0 auto;
  }

#sticky-header .navbar-wrap.main-menu {
  display:flex !important;
  margin:0 0 0 auto !important;
  padding:0 !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  justify-content:flex-end !important;
}

#sticky-header .navbar-wrap.main-menu .navigation {
  display:flex;
  align-items:center;
  justify-content:flex-end !important;
  gap:0px;
  margin:0 !important;
  padding:0 !important;
  list-style:none;
  white-space:nowrap;
  min-width:0;
}

  #sticky-header .navbar-wrap.main-menu .navigation > li > a {
    font-size: 14px;
  }

  /* PRZYCISK „Napisz do nas” – po prawej, w tej samej linii */
  #sticky-header .header-action {
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 auto;
  }

  #sticky-header .header-action ul {
    display: flex;
    margin: 0 !important;
    padding: 0 !important;
  }

  #sticky-header .header-action li {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  #sticky-header .header-action .btn.cta-wipe {
    padding: 8px 16px;
    font-size: 13px;
    white-space: nowrap;        /* trzymaj w jednej linii */
    max-width: none;
    width: auto;
  }
}

@media (max-width: 649px) {
  .header-top-wrap { display: none !important; }
}


/* 3. podświetlenie błędu routera (już masz, ale dla pewności) */
.router-float-tip {
  position: absolute;
  left: 50%; top: -38px;
  transform: translate(-50%, -6px);
  background: #fff;
  border: 2px solid #ff4c4c;
  border-radius: 10px;
  padding: 6px 12px;
  font-size: .85rem;
  font-weight: 600;
  color: #000;
  display: flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .10);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s var(--ease-io), transform .28s var(--ease-io);
  z-index: 5;
}
.router-float-tip.visible { opacity: 1; transform: translate(-50%, -2px); }
.router-float-tip.leaving  { opacity: 0; transform: translate(-50%, -8px); }
.config-row.router-error-pulse {
  animation: routerErrorPulse .8s ease-in-out 0s 3;
  box-shadow: 0 0 0 3px rgba(255, 76, 76, .35);
  border-radius: 14px;
  position: relative;
}
@keyframes routerErrorPulse {
  0% { box-shadow: 0 0 0 0 rgba(255, 76, 76, 0); transform: scale(1); }
  50% { box-shadow: 0 0 0 6px rgba(255, 76, 76, .35); transform: scale(1.01); }
  100% { box-shadow: 0 0 0 0 rgba(255, 76, 76, 0); transform: scale(1); }
}

/* Ukryj FAQ w headerze na bardzo małych ekranach (<400px) */
@media (max-width: 399.98px) {
  /* główne menu desktop/sticky */
  .menu-area .navigation > li > a[href="#faq"],
  #sticky-header .navigation > li > a[href="#faq"] {
    display: none !important;
  }
}
/* FiberGo – notka pod planami (ceny brutto) */
.pricing-note{
  font-size: .875rem;
  color: #4b5563;
  max-width: 900px;
  margin: 12px auto 0;
}
/* ============================
   FiberGo — Floating Guide & Cookies (FINAL FIXED VERSION)
   ============================ */

/* --- WSPÓLNE STYLE DLA OBU OKIENEK (Desktop) --- */
.fg-floating-box,
.fg-cookie-box {
    background: #ffffff;
    width: 320px;
    padding: 24px;
    border-radius: 14px;
    
    /* ŻÓŁTA RAMKA + GLOW (Dla obu) */
    border: 2px solid var(--fibergo-yellow, #FFF200);
    box-shadow:
        0 10px 28px rgba(0,0,0,.12),
        0 0 0 3px rgba(255,242,0,.18); /* Glow */

    /* SZTYWNA WYSOKOŚĆ NA DESKTOPIE */
    height: 300px; 
    
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    
    animation: fadeInFloating 0.35s ease-out;
}


/* --- 1. SZYBKA PODPOWIEDŹ (Floating Hint) --- */
#fg-floating-hint.hidden { display: none; }

#fg-floating-hint {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 99998; /* Warstwa pod cookies */
}

.fg-floating-label {
    font-size: 11px; letter-spacing: 0.09em; text-transform: uppercase;
    color: #6b7280; margin-bottom: 6px;
}

.fg-floating-title {
    font-size: 15px; font-weight: 700; margin-bottom: 12px;
    color: #111827; line-height: 1.3;
}

.fg-floating-steps {
    display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px;
}

.fg-floating-pill {
    display: inline-flex; align-items: center; gap: 10px; padding: 6px 10px;
    border-radius: 999px; background: #f3f4f6; font-size: 13px; color: #111827;
}

.fg-pill-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; border-radius: 999px;
    background: var(--fibergo-yellow, #FFF200); color: #111827;
    font-size: 12px; font-weight: 800; flex-shrink: 0;
}

.fg-floating-box button {
    background: var(--fibergo-yellow, #FFF200); color: #111827; border: none;
    padding: 8px 16px; border-radius: 999px; font-size: 13px; font-weight: 700;
    cursor: pointer; align-self: flex-start;
    
    /* DODANE: Płynne animacje i cień jak w Cookies */
    transition: transform .15s ease, filter .15s ease;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* DODANE: Efekt po najechaniu (hover) */
.fg-floating-box button:hover {
    filter: brightness(0.95);    /* Leciutkie przyciemnienie */
    transform: translateY(-1px); /* Delikatne uniesienie */
}

@keyframes fadeInFloating {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0px); }
}


/* --- 2. FACEBOOK WIDGET (Bez zmian) --- */
.fg-fb-widget { position: fixed; top: 50%; right: 0; z-index: 9999; transform: translateY(-50%); display: flex; pointer-events: none; font-family: var(--font-sans); }
.fg-fb-inner { display: flex; align-items: center; pointer-events: auto; transform: translateX(calc(100% - 56px)); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.fg-fb-widget.open .fg-fb-inner { transform: translateX(0); }
.fg-fb-handle { flex: 0 0 56px; width: 56px; height: 56px; background: #111827; color: var(--fibergo-yellow, #FFF200); border: none; border-radius: 28px 0 0 28px; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 26px; box-shadow: -4px 4px 12px rgba(0, 0, 0, 0.15); position: relative; z-index: 20; }
.fg-fb-drawer { width: 340px; height: 500px; max-height: 80vh; background: #fff; border: 2px solid var(--fibergo-yellow, #FFF200); border-radius: 28px 0 0 28px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 24px 50px rgba(15, 23, 42, 0.30); }
.fg-fb-header { flex: 0 0 auto; background: #111827; color: #fff; padding: 12px 14px; display: flex; justify-content: space-between; align-items: center; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; position: relative; z-index: 50; box-shadow: 0 2px 10px rgba(0,0,0,0.15); }
.fg-fb-close { background: transparent; border: none; color: var(--fibergo-yellow, #FFF200); font-size: 24px; cursor: pointer; padding: 0 4px; line-height: 1; }
.fg-fb-body { flex: 1; background: #fff; position: relative; overflow: hidden; display: flex; flex-direction: column; z-index: 10; }
.fg-fb-body iframe, .fg-fb-body .fb-page, .fb_iframe_widget, .fb_iframe_widget span, .fb_iframe_widget iframe { width: 100% !important; max-width: 100% !important; display: block; margin-top: -24px !important; height: calc(100% + 24px) !important; padding-bottom: 0; }
@media (max-width: 600px) { .fg-fb-drawer { width: 300px; max-width: calc(100vw - 56px); height: 65vh; min-height: 350px; } .fg-fb-header { font-size: 11px; padding: 10px 10px; } }


/* --- 3. BANER COOKIES --- */
#fg-cookie-banner.hidden { display: none; }

#fg-cookie-banner {
    position: fixed;
    left: 24px;
    bottom: 24px;
    z-index: 99999; /* Nad podpowiedzią */
}

.fg-cookie-box .fg-cookie-text {
    font-size: 13px; line-height: 1.5; color: #111827;
    margin-bottom: 0; 
}

.fg-cookie-box .fg-cookie-text h4 {
    font-size: 11px; letter-spacing: 0.09em; text-transform: uppercase;
    color: #6b7280; margin-bottom: 6px; font-weight: 400; display: block;
}

.fg-cookie-box .fg-cookie-text strong {
    display: block; font-size: 15px; font-weight: 700; color: #111;
    margin-bottom: 8px;
}

.fg-cookie-box .fg-cookie-text a {
    text-decoration: underline; color: #111827; font-weight: 600;
}

.fg-cookie-actions {
    display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px;
}

#fg-cookie-accept, #fg-cookie-essential {
    flex: 1; border: none; padding: 10px 12px; border-radius: 999px;
    font-size: 13px; font-weight: 700; cursor: pointer; text-align: center;
    transition: transform .15s ease, filter .15s ease;
}

#fg-cookie-accept {
    background: var(--fibergo-yellow, #FFF200); color: #111;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

#fg-cookie-essential { background: #f3f4f6; color: #111; }
#fg-cookie-accept:hover { filter: brightness(0.95); transform: translateY(-1px); }
#fg-cookie-essential:hover { background: #e5e7eb; }


/* ============================
   MOBILE FIXES (NAPRAWA KOLIZJI)
   ============================ */
@media (max-width: 768px) {
    
    /* 1. Ustawienia wspólne dla obu okienek na telefonie */
    #fg-cookie-banner,
    #fg-floating-hint {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%);
        /* Pełna szerokość minus marginesy (żeby nie dotykały krawędzi) */
        width: calc(100% - 32px) !important; 
        max-width: 400px;
    }

    /* 2. Cookies - Pozycjonowanie na dole */
    #fg-cookie-banner {
        bottom: 20px !important;
        z-index: 99999;
    }

    /* 3. Szybka Podpowiedź - Pozycjonowanie WYŻEJ */
    /* Zwiększamy z 235px na 340px, żeby zrobić miejsce na wysokie cookies */
    #fg-floating-hint {
        bottom: 340px !important; 
        z-index: 99998;
    }

    /* 4. Wygląd pudełek na mobile (Reset sztywnej wysokości) */
    .fg-floating-box,
    .fg-cookie-box {
        width: 100% !important; /* Wypełnij kontener */
        height: auto !important; /* Wysokość elastyczna (zależna od tekstu) */
        min-height: auto !important;
        padding: 20px !important;
        
        /* Dodatkowy cień, żeby optycznie odseparować okienka od tła */
        box-shadow: 0 8px 24px rgba(0,0,0,0.15), 0 0 0 3px rgba(255,242,0,.18) !important;
    }

    /* Zmniejszenie czcionki w cookies na mobile dla oszczędności miejsca */
    .fg-cookie-box .fg-cookie-text { font-size: 12px; margin-bottom: 12px; }
    .fg-cookie-box .fg-cookie-text strong { font-size: 14px; margin-bottom: 4px; }
    
    /* Przyciski w cookies w dwóch rzędach na bardzo wąskich ekranach */
    .fg-cookie-actions { flex-wrap: wrap; gap: 8px; }
    #fg-cookie-accept, #fg-cookie-essential { width: 100%; flex: 1 1 100%; }
}

/* ============================
   BEZPIECZNIK NA NISKIE EKRANY
   ============================ */
/* Jeśli telefon jest niski (ma mniej niż 720px wysokości ekranu), 
   ukrywamy "Szybką Podpowiedź", bo inaczej zasłoni całą stronę.
   Zostaje tylko baner Cookies (wymóg prawny). */
@media (max-height: 720px) and (max-width: 768px) {
    #fg-floating-hint {
        display: none !important;
    }
}

