/* OIB Urbanek V138 - consolidated public stylesheet. Source layers merged for one controlled cascade. */
/* OIB V138 public core extracted for cache/performance */

    :root {
      --ink: #17191b;
      --muted: #62686e;
      --line: #dfe2e4;
      --soft: #f5f6f6;
      --red: #8c1d2c;
      --red-hover: #a7283a;
      --red-deep: #681520;
      --red-soft: #fff6f7;
      --graphite: #2b2f32;
      --silver: #eef0f1;
      --white: #ffffff;
      --max: 1180px;
      --shadow: 0 18px 50px rgba(20, 22, 24, 0.12);
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      scrollbar-gutter: stable;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--white);
      font: 16px/1.6 Arial, "Helvetica Neue", sans-serif;
    }

    body.modal-open { overflow:hidden; }
    body.mode-public:not(.pages-ready) #main,
    body.mode-preview:not(.pages-ready) #main { visibility:hidden; min-height:70vh; }
    [hidden] { display:none !important; }
    .sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

    button,
    input,
    select,
    textarea {
      font: inherit;
    }

    button,
    a {
      -webkit-tap-highlight-color: transparent;
    }

    a {
      color: inherit;
    }

    img {
      max-width: 100%;
    }

    .container {
      width: min(calc(100% - 40px), var(--max));
      margin-inline: auto;
    }

    .skip-link {
      position: fixed;
      top: -80px;
      left: 16px;
      z-index: 5000;
      padding: 12px 16px;
      background: var(--white);
      border: 2px solid var(--red);
    }

    .scroll-progress { position:fixed; left:0; top:0; z-index:5001; width:100%; height:3px; background:var(--red); transform:scaleX(0); transform-origin:left; pointer-events:none; }

    .skip-link:focus {
      top: 16px;
    }

    .topbar {
      border-bottom: 1px solid var(--line);
      background: var(--soft);
      font-size: 0.78rem;
    }

    .topbar .container {
      min-height: 35px;
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: 22px;
    }

    .topbar a {
      text-decoration: none;
    }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 1200;
      background: rgba(255, 255, 255, 0.98);
      border-bottom: 1px solid var(--line);
    }

    .nav-shell {
      min-height: 76px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .logo {
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
    }

    .logo-mark {
      font-size: 2rem;
      font-weight: 900;
      letter-spacing: -0.08em;
    }

    .logo-mark i {
      color: var(--red);
      font-style: normal;
    }

    .logo-copy {
      max-width: 165px;
      font-size: 0.68rem;
      font-weight: 800;
      line-height: 1.25;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .main-nav {
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .main-nav a {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 11px 10px;
      border-radius: 3px;
      font-weight: 700;
      text-decoration: none;
    }

    .portal-nav-link {
      min-width: 46px;
      justify-content: center;
      padding: 6px;
    }

    .portal-nav-icon {
      width: 34px;
      height: 34px;
      display: block;
      border-radius: 9px;
      object-fit: cover;
      box-shadow: 0 7px 18px rgba(143,23,39,.14);
    }

    .main-nav a:hover {
      color: var(--red);
      background: #faf1f2;
    }

    .main-nav a.active {
      color: var(--red);
      background: #fff7f8;
      box-shadow: inset 0 -2px 0 var(--red);
    }

    .menu-button {
      width: 46px;
      height: 46px;
      display: none;
      place-items: center;
      padding: 0;
      color: var(--ink);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 6px;
      cursor: pointer;
    }

    .menu-button span,
    .menu-button::before,
    .menu-button::after {
      content: "";
      width: 20px;
      height: 2px;
      display: block;
      background: currentColor;
      transition: transform .18s ease, opacity .18s ease;
    }

    .menu-button span { margin: 4px 0; }
    .site-header.menu-open .menu-button::before { transform: translateY(6px) rotate(45deg); }
    .site-header.menu-open .menu-button span { opacity: 0; }
    .site-header.menu-open .menu-button::after { transform: translateY(-6px) rotate(-45deg); }

    .button {
      min-height: 46px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 10px 17px;
      color: var(--white);
      background: var(--red);
      border: 1px solid var(--red);
      border-radius: 6px;
      font-weight: 800;
      text-decoration: none;
      cursor: pointer;
      box-shadow: 0 7px 18px rgba(140, 29, 44, .18);
      transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
    }

    .button:hover {
      background: var(--red-hover);
      transform: translateY(-1px);
      box-shadow: 0 10px 24px rgba(140, 29, 44, .24);
    }

    .button.secondary {
      color: var(--ink);
      background: var(--white);
      border-color: var(--line);
      box-shadow: 0 4px 12px rgba(20, 22, 24, .07);
    }

    .button.secondary:hover {
      color: var(--red);
      background: #fff7f8;
      border-color: #c98d96;
    }

    .button:disabled,
    .text-button:disabled {
      opacity: .55;
      cursor: wait;
      transform: none;
    }

    .nav-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 0 0 auto;
    }

    .button:focus-visible,
    a:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible,
    summary:focus-visible {
      outline: 3px solid #e9a5af;
      outline-offset: 3px;
    }

    .hero {
      min-height: 720px;
      position: relative;
      display: grid;
      align-items: center;
      overflow: hidden;
      background: var(--white);
      border-bottom: 1px solid var(--line);
      isolation:isolate;
    }

    .hero::before {
      content: "";
      position: absolute;
      inset:-3%;
      z-index:-2;
      background:
        radial-gradient(circle at 78% 25%, rgba(140,29,44,.11), transparent 31%),
        radial-gradient(circle at 88% 78%, rgba(17,19,23,.07), transparent 28%),
        repeating-linear-gradient(0deg, rgba(17,19,23,.045) 0 1px, transparent 1px 56px),
        repeating-linear-gradient(90deg, rgba(17,19,23,.04) 0 1px, transparent 1px 56px),
        linear-gradient(135deg, #ffffff 0%, #f6f7f7 55%, #eceeef 100%);
      animation:heroMedia 18s ease-in-out infinite alternate;
    }

    .hero.has-custom-bg::before {
      background:
        linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.88) 43%, rgba(255,255,255,.34) 100%),
        var(--oib-hero-custom-bg) center right / cover no-repeat,
        linear-gradient(135deg, #ffffff 0%, #f6f7f7 55%, #eceeef 100%);
      opacity: 1;
    }

    .logo.logo-has-img { min-width: 0; }
    .brand-logo-public { display:block; width:auto; max-width:210px; max-height:58px; object-fit:contain; }
    .logo.logo-has-img .logo-mark,
    .logo.logo-has-img .logo-copy { display:none; }

    .hero::after {
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:
        linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 42%,rgba(255,255,255,.72) 69%,rgba(255,255,255,.46) 100%),
        linear-gradient(0deg,rgba(255,255,255,.04),rgba(255,255,255,.04));
    }

    .hero-content {
      position: relative;
      z-index: 1;
      max-width: 760px;
      padding-block: 110px;
    }

    .eyebrow {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0 0 16px;
      color: var(--red);
      font-size: 0.76rem;
      font-weight: 900;
      letter-spacing: 0.11em;
      text-transform: uppercase;
    }

    .eyebrow::before {
      content: "";
      width: 32px;
      height: 2px;
      background: currentColor;
    }

    h1,
    h2,
    h3 {
      line-height: 1.15;
    }

    h1 {
      max-width: 880px;
      margin: 0;
      font-size: clamp(2.7rem, 6vw, 5.3rem);
      letter-spacing: 0;
    }

    .hero h1 { text-wrap:balance; }

    .hero-text {
      max-width: 720px;
      margin: 24px 0;
      color: #3f4448;
      font-size: 1.2rem;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    .hero-proof { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:34px; padding-top:22px; border-top:1px solid rgba(140,29,44,.24); }
    .hero-proof span { position:relative; padding-left:16px; color:#40464a; font-size:.85rem; font-weight:750; }
    .hero-proof span::before { content:""; position:absolute; left:0; top:.62em; width:7px; height:2px; background:var(--red); }

    @keyframes heroMedia { from { transform:scale(1.02); } to { transform:scale(1.08) translate3d(-1%,.5%,0); } }
    @keyframes heroEnter { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
    .hero-content > * { animation:heroEnter .7s both; }
    .hero-content > *:nth-child(2) { animation-delay:.08s; }
    .hero-content > *:nth-child(3) { animation-delay:.16s; }
    .hero-content > *:nth-child(4) { animation-delay:.24s; }
    .hero-content > *:nth-child(5) { animation-delay:.32s; }

    .trust-strip {
      border-bottom: 1px solid var(--line);
    }

    .trust-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      background: var(--line);
      gap: 1px;
    }

    .trust-item {
      padding: 24px;
      background: var(--white);
      transition:background .2s ease,transform .2s ease;
    }

    .trust-item:hover { z-index:1; background:var(--red-soft); transform:translateY(-3px); }

    .trust-item strong,
    .trust-item span {
      display: block;
    }

    .trust-item span {
      color: var(--muted);
      font-size: 0.88rem;
    }

    .section {
      padding: 90px 0;
      scroll-margin-top: 90px;
      position:relative;
    }

    .section.soft {
      background: var(--soft);
    }

    .section-title {
      max-width: 900px;
      margin: 0 0 22px;
      font-size: clamp(2rem, 4vw, 3.2rem);
      text-wrap:balance;
    }

    .section-title::after { content:""; display:block; width:54px; height:3px; margin-top:18px; background:var(--red); transform-origin:left; transition:width .4s ease; }
    .section:hover .section-title::after { width:92px; }

    .lead {
      max-width: 820px;
      color: #464b4f;
      font-size: 1.12rem;
    }

    .about-layout {
      display: grid;
      grid-template-columns: 1.05fr 0.95fr;
      gap: 65px;
      align-items: start;
    }

    .about-copy p {
      max-width: 760px;
    }

    .about-copy h3 {
      margin-top: 30px;
      font-size: 1.25rem;
    }

    .facts {
      display: grid;
      gap: 1px;
      background: var(--line);
      border: 1px solid var(--line);
      box-shadow:0 18px 45px rgba(20,22,24,.07);
    }

    .fact {
      padding: 24px;
      background: var(--white);
      transition:background .2s ease,padding-left .2s ease;
    }

    .fact:hover { padding-left:29px; background:var(--red-soft); }

    .fact small,
    .fact strong {
      display: block;
    }

    .fact small {
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }

    .fact strong {
      margin-top: 5px;
      font-size: 1.13rem;
    }

    .company-history { margin-top:52px; padding-top:34px; border-top:1px solid var(--line); }
    .company-history-head { display:grid; grid-template-columns:.7fr 1.3fr; gap:35px; align-items:start; }
    .company-history-head h3 { margin:0; font-size:1.7rem; }
    .company-timeline { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:26px; background:var(--line); border:1px solid var(--line); }
    .company-milestone { min-height:210px; padding:22px; background:var(--white); }
    .company-milestone { transition:transform .2s ease,box-shadow .2s ease; }
    .company-milestone:hover { position:relative; z-index:1; transform:translateY(-5px); box-shadow:0 16px 36px rgba(20,22,24,.10); }
    .company-milestone span { display:block; margin-bottom:18px; color:var(--red); font-size:.78rem; font-weight:900; text-transform:uppercase; }
    .company-milestone h4 { margin:0 0 9px; font-size:1.05rem; }
    .company-milestone p { margin:0; color:var(--muted); font-size:.9rem; }
    .company-profile { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px; }
    .company-profile article { padding:22px; background:var(--soft); border-left:3px solid var(--red); }
    .company-profile h4 { margin:0 0 7px; }
    .company-profile p { margin:0; color:var(--muted); }

    .service-grid,
    .project-grid,
    .audience-grid,
    .home-proof-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-top: 36px;
    }

    .service-card,
    .project-card,
    .audience-card {
      padding: 26px;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 5px;
    }

    .audience-card { position:relative; overflow:hidden; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
    .audience-card::before { content:""; position:absolute; left:0; top:0; width:4px; height:0; background:var(--red); transition:height .25s ease; }
    .audience-card:hover { transform:translateY(-4px); border-color:#d8b5ba; box-shadow:0 16px 38px rgba(20,22,24,.09); }
    .audience-card:hover::before { height:100%; }
    .home-proof-grid article { min-width:0; padding:24px; background:var(--white); border:1px solid var(--line); border-top:3px solid var(--red); }
    .home-proof-grid strong { display:block; margin-bottom:8px; font-size:1.2rem; }
    .home-proof-grid p { margin-bottom:0; color:var(--muted); }

    .service-card {
      position: relative;
      min-height: 310px;
      display: flex;
      flex-direction: column;
      border-top: 4px solid var(--ink);
      transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }

    .service-card:hover {
      border-top-color: var(--red);
      box-shadow: var(--shadow);
      transform: translateY(-3px);
    }

    .service-card-number { position:absolute; top:20px; right:20px; color:#a6abad; font-size:.78rem; font-weight:900; }
    .service-card h3 { padding-right:34px; }
    .service-card ul { margin:12px 0 20px; padding:0; list-style:none; }
    .service-card li { position:relative; margin:7px 0; padding-left:18px; color:#4c5256; font-size:.88rem; }
    .service-card li::before { content:""; position:absolute; left:0; top:.62em; width:7px; height:2px; background:var(--red); }
    .service-card-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:auto; padding-top:14px; border-top:1px solid var(--line); }
    .service-card-actions a { font-size:.86rem; }
    .offer-intro { display:grid; grid-template-columns:1.25fr .75fr; gap:40px; align-items:end; }
    .offer-note { padding:20px; color:var(--ink); background:#fff8f9; border:1px solid #e7cbd0; border-left:5px solid var(--red); }
    .offer-note strong { display:block; margin-bottom:6px; }
    .offer-note p { margin:0; color:#50565a; }
    .offer-pillars { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:34px 0; background:var(--line); border:1px solid var(--line); }
    .offer-pillar { padding:20px; background:var(--white); }
    .offer-pillar strong { display:block; margin-bottom:5px; }
    .offer-pillar span { color:var(--muted); font-size:.84rem; }
    .offer-controls { display:grid; grid-template-columns:minmax(240px,1fr) 1.4fr auto; gap:12px; align-items:center; margin-top:28px; }
    .offer-controls input { width:100%; min-height:46px; padding:10px 13px; border:1px solid var(--line); }
    .offer-category-list { display:flex; gap:7px; overflow-x:auto; padding:3px 0; scrollbar-width:thin; }
    .offer-category-list button,.faq-category-list button { min-height:40px; padding:8px 12px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:5px; font-weight:750; white-space:nowrap; cursor:pointer; }
    .offer-category-list button.active,.faq-category-list button.active { color:var(--white); background:var(--red); border-color:var(--red); }
    .offer-result-count { color:var(--muted); font-size:.84rem; text-align:right; white-space:nowrap; }

    .service-card h3,
    .project-card h3,
    .audience-card h3 {
      margin: 0 0 11px;
      font-size: 1.28rem;
    }

    .service-card p,
    .project-card p,
    .audience-card p {
      color: #4c5256;
    }

    .project-card {
      padding: 0;
      overflow: hidden;
      transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
    }

    .project-card:hover { transform:translateY(-5px); border-color:#d4a9af; box-shadow:0 20px 45px rgba(20,22,24,.12); }
    .project-card > img { width:100%; height:230px; display:block; object-fit:cover; filter:saturate(.82) contrast(1.03); transition:transform .55s ease,filter .3s ease; }
    .project-card:hover > img { transform:scale(1.045); filter:saturate(1) contrast(1.04); }

    .project-visual {
      height: 190px;
      position: relative;
      background:
        repeating-linear-gradient(0deg, transparent 0 34px, rgba(20, 22, 24, 0.09) 35px),
        repeating-linear-gradient(90deg, transparent 0 48px, rgba(20, 22, 24, 0.08) 49px),
        linear-gradient(140deg, #edf0f1, #c8cdd0);
    }

    .project-visual::after {
      content: "";
      position: absolute;
      inset: 20% 8% 0;
      border: 2px solid rgba(20, 22, 24, 0.35);
      clip-path: polygon(0 38%, 48% 0, 100% 28%, 100% 100%, 0 100%);
    }

    .project-content {
      padding: 22px;
    }

    .project-meta {
      color: var(--red) !important;
      font-size: 0.8rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    .map-shell {
      position: relative;
      height: 560px;
      margin-top: 28px;
      overflow: hidden;
      background: #e5e9ea;
      border: 1px solid var(--line);
    }

    .map-fallback,
    #leafletMap {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }

    .map-fallback,.leaflet-tile { filter:grayscale(1) contrast(.9) brightness(1.06); }

    #leafletMap {
      display: none;
      visibility: hidden;
      z-index: 2;
      background: #dde3e5;
      pointer-events: auto;
      touch-action: none;
    }

    #leafletMap.leaflet-container { cursor: grab; }
    #leafletMap.leaflet-container:active { cursor: grabbing; }

    .leaflet-container {
      position: relative;
      overflow: hidden;
    }

    .leaflet-pane,
    .leaflet-tile,
    .leaflet-marker-icon,
    .leaflet-marker-shadow,
    .leaflet-tile-container,
    .leaflet-pane > svg,
    .leaflet-pane > canvas {
      position: absolute;
      top: 0;
      left: 0;
    }

    .leaflet-tile-pane { z-index: 200; }
    .leaflet-overlay-pane { z-index: 400; }
    .leaflet-marker-pane { z-index: 600; }
    .leaflet-popup-pane { z-index: 700; }

    .leaflet-tile {
      width: 256px;
      height: 256px;
      max-width: none !important;
      visibility: hidden;
    }

    .leaflet-tile-loaded {
      visibility: inherit;
    }

    .leaflet-control {
      position: relative;
      z-index: 800;
      pointer-events: auto;
    }

    .leaflet-top,
    .leaflet-bottom {
      position: absolute;
      z-index: 1000;
      pointer-events: none;
    }

    .leaflet-top { top: 0; }
    .leaflet-bottom { bottom: 0; }
    .leaflet-left { left: 0; }
    .leaflet-right { right: 0; }
    .leaflet-control { float: left; clear: both; }
    .leaflet-right .leaflet-control { float: right; }
    .leaflet-top .leaflet-control { margin-top: 10px; }
    .leaflet-left .leaflet-control { margin-left: 10px; }
    .leaflet-right .leaflet-control { margin-right: 10px; }
    .leaflet-bottom .leaflet-control { margin-bottom: 10px; }

    .leaflet-bar {
      border: 1px solid #aeb4b8;
      background: var(--white);
    }

    .leaflet-bar a {
      width: 32px;
      height: 32px;
      display: block;
      color: var(--ink);
      background: var(--white);
      border-bottom: 1px solid var(--line);
      line-height: 32px;
      text-align: center;
      text-decoration: none;
    }

    .leaflet-control-attribution {
      padding: 2px 6px;
      background: rgba(255, 255, 255, 0.9);
      font-size: 10px;
    }

    .leaflet-popup {
      position: absolute;
      margin-bottom: 20px;
      text-align: center;
    }

    .leaflet-popup-content-wrapper {
      padding: 1px;
      background: var(--white);
      border-radius: 4px;
      box-shadow: var(--shadow);
    }

    .leaflet-popup-content {
      min-width: 220px;
      margin: 15px;
      text-align: left;
    }

    .map-marker {
      width: 20px;
      height: 20px;
      background: var(--red);
      border: 2px solid var(--white);
      border-radius: 50% 50% 50% 0;
      box-shadow: 0 2px 7px rgba(0, 0, 0, 0.24);
      transform: rotate(-45deg);
    }

    .process-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1px;
      margin-top: 35px;
      background: var(--line);
    }

    .process-step {
      padding: 28px;
      background: var(--white);
      transition:background .2s ease,transform .2s ease;
    }

    .process-step:hover { position:relative; z-index:1; background:var(--red-soft); transform:translateY(-4px); }
    .process-grid-seven { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .audience-grid-strong .audience-card { display:grid; gap:10px; align-content:start; }
    @media (max-width: 1180px) { .process-grid-seven { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
    @media (max-width: 760px) { .process-grid-seven { grid-template-columns: 1fr; } }
    .ready-clean-wrap { margin-top:34px; display:grid; gap:18px; }
    .ready-clean-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
    .ready-clean-card { background:var(--white); padding:28px; display:grid; gap:14px; align-content:start; }
    .ready-clean-card.oib { background:var(--red-soft); }
    .ready-clean-card h3 { margin:0; font-size:1.35rem; line-height:1.2; }
    .ready-clean-card p { margin:0; color:var(--muted); line-height:1.65; }
    .ready-clean-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
    .ready-clean-list li { display:grid; grid-template-columns:32px 1fr; gap:12px; align-items:start; padding-top:12px; border-top:1px solid rgba(17,17,17,.08); }
    .ready-clean-list span { width:32px; height:32px; display:grid; place-items:center; border-radius:999px; background:#f1f2f4; color:#34383d; font-weight:900; }
    .ready-clean-card.oib .ready-clean-list span { background:var(--red); color:#fff; }
    .ready-clean-list strong { display:block; margin-bottom:3px; color:#16191d; }
    .ready-clean-list small { color:var(--muted); line-height:1.45; }
    .ready-clean-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
    .ready-clean-check { background:var(--white); padding:20px; }
    .ready-clean-check strong { display:block; margin-bottom:6px; color:#16191d; }
    .ready-clean-check small { display:block; color:var(--muted); line-height:1.5; }
    .ready-clean-cta { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:22px; background:var(--white); border:1px solid var(--line); }
    .ready-clean-cta p { margin:0; flex:1 1 420px; color:var(--muted); line-height:1.65; }
    .ready-clean-actions { display:flex; gap:10px; flex-wrap:wrap; }
    @media (max-width: 980px) { .ready-clean-grid, .ready-clean-checks { grid-template-columns:1fr; } .ready-clean-cta { align-items:flex-start; } }

    .process-number {
      color: var(--red);
      font-weight: 900;
    }

    .faq-head { display:grid; grid-template-columns:1fr 380px; gap:40px; align-items:end; }
    .faq-search { position:relative; }
    .faq-search input { width:100%; min-height:50px; padding:12px 42px 12px 14px; background:var(--white); border:1px solid var(--line); border-radius:5px; }
    .faq-search span { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:1.2rem; }
    .faq-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:35px; margin-top:34px; align-items:start; }
    .faq-sidebar { position:sticky; top:100px; padding:18px; background:var(--white); border:1px solid var(--line); }
    .faq-sidebar strong { display:block; margin-bottom:12px; }
    .faq-category-list { display:grid; gap:7px; }
    .faq-category-list button { width:100%; text-align:left; white-space:normal; }
    .faq-tools { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .faq-tools div { display:flex; gap:8px; }
    .faq-list { max-width:960px; }

    .faq-list details {
      padding:0;
      background:var(--white);
      border-top:1px solid var(--line);
    }

    .faq-list summary {
      position:relative;
      padding:20px 50px 20px 18px;
      cursor: pointer;
      font-size: 1.06rem;
      font-weight: 800;
      list-style:none;
    }

    .faq-list summary::-webkit-details-marker { display:none; }
    .faq-list summary::after { content:"+"; position:absolute; right:18px; top:50%; transform:translateY(-50%); color:var(--red); font-size:1.45rem; font-weight:500; }
    .faq-list details[open] summary::after { content:"−"; }
    .faq-list details[open] { border-left:3px solid var(--red); }

    .faq-list details p {
      max-width:820px;
      margin:0;
      padding:0 50px 22px 18px;
      color: #494f53;
    }
    .faq-category-label { display:block; margin-bottom:5px; color:var(--red); font-size:.7rem; font-weight:900; text-transform:uppercase; }
    .faq-empty { padding:30px; background:var(--white); border:1px solid var(--line); text-align:center; }

    .contact-layout {
      display: grid;
      grid-template-columns: 0.85fr 1.35fr;
      gap: 45px;
    }

    body[data-public-page="kontakt"] #kontakt .contact-layout,
    body[data-public-page="wycena"] #kontakt .contact-layout {
      width: 100%;
      max-width: 920px;
      margin-inline: auto;
      grid-template-columns: minmax(0, 920px);
      justify-content: center;
    }

    body[data-public-page="kontakt"] #contactForm { display:none; }
    body[data-public-page="wycena"] #kontakt .contact-details { display:none; }

    .contact-details {
      padding: 30px;
      background: var(--white);
      border: 1px solid var(--line);
      border-top:4px solid var(--red);
      box-shadow:0 18px 45px rgba(20,22,24,.07);
    }

    .contact-layout > form { padding:30px; background:var(--white); border:1px solid var(--line); border-top:4px solid var(--red); box-shadow:0 18px 45px rgba(20,22,24,.07); }

    .quote-intro-panel {
      margin-bottom: 22px;
      padding: 18px 18px 16px;
      background: linear-gradient(90deg, rgba(140,29,44,.055), rgba(255,255,255,0));
      border: 1px solid var(--line);
      border-left: 4px solid var(--red);
    }
    .quote-intro-panel h3 { margin: 4px 0 8px; font-size: 1.28rem; }
    .quote-intro-panel p { margin: 0 0 13px; color: var(--muted); }
    .quote-benefits { display:flex; flex-wrap:wrap; gap:8px; }
    .quote-benefits span {
      display:inline-flex;
      align-items:center;
      min-height:30px;
      padding:6px 10px;
      background:var(--white);
      border:1px solid var(--line);
      color:var(--ink);
      font-size:.78rem;
      font-weight:900;
    }

    .quote-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:24px; }
    .quote-progress span { min-height:42px; display:grid; place-items:center; padding:8px; color:var(--muted); background:var(--soft); border:1px solid var(--line); font-size:.78rem; font-weight:800; text-align:center; }
    .quote-progress span.active { color:var(--white); background:var(--red); border-color:var(--red); }
    .quote-step { display:none; grid-column:1/-1; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
    .quote-step.active { display:grid; }
    .quote-step > h3,.quote-step > p { grid-column:1/-1; margin-top:0; }
    .quote-service-grid { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .quote-service-grid label,
    .quote-service-grid label.consent { position:relative; display:grid; grid-template-columns:22px minmax(0,1fr); align-items:start; gap:12px; min-height:104px; padding:16px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:6px; line-height:1.42; cursor:pointer; transition:border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
    .quote-service-grid label:hover { border-color:#c98d96; transform:translateY(-1px); }
    .quote-service-grid label:has(input:checked) { border-color:var(--red); background:#fff8f9; box-shadow:inset 4px 0 0 var(--red),0 10px 24px rgba(140,29,44,.08); }
    .quote-service-grid input[type="checkbox"] { width:18px; min-width:18px; height:18px; margin:2px 0 0; padding:0; accent-color:var(--red); }
    .quote-service-grid span { display:grid; gap:5px; min-width:0; }
    .quote-service-grid strong { display:block; font-size:.98rem; line-height:1.25; }
    .quote-service-grid small { display:block; color:var(--muted); font-size:.86rem; line-height:1.42; }
    .quote-risk-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .quote-risk-grid label,
    .quote-risk-grid label.consent { min-height:82px; padding:13px; }
    .quote-actions { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:8px; border-top:1px solid var(--line); }
    .quote-actions-end { margin-left:auto; display:flex; gap:10px; }

    .contact-row {
      padding: 15px 0;
      border-bottom: 1px solid var(--line);
    }

    .contact-row:last-child {
      border: 0;
    }

    .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 17px;
    }

    .field {
      display: grid;
      gap: 6px;
    }

    .field.full {
      grid-column: 1 / -1;
    }

    .field label {
      font-size: 0.82rem;
      font-weight: 800;
    }

    .field-hint {
      color: var(--muted);
      font-size: .8rem;
      line-height: 1.35;
    }

    .field input,
    .field select,
    .field textarea {
      width: 100%;
      padding: 11px 12px;
      color: var(--ink);
      background: var(--white);
      border: 1px solid #b8bec2;
      border-radius: 4px;
    }

    .field input:hover,.field select:hover,.field textarea:hover { border-color:#b9bec1; }
    .field input:focus,.field select:focus,.field textarea:focus { border-color:var(--red); box-shadow:0 0 0 4px rgba(140,29,44,.08); }

    .field textarea {
      min-height: 150px;
      resize: vertical;
    }

    .consent { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:11px; width:100%; min-height:52px; padding:13px 14px; color:var(--ink); background:var(--soft); border:1px solid var(--line); border-radius:5px; line-height:1.45; cursor:pointer; }
    .consent:hover { border-color:#c98d96; }
    .consent input[type="checkbox"],.field input[type="checkbox"],.check-row input[type="checkbox"] { width:18px; min-width:18px; height:18px; margin:2px 0 0; padding:0; accent-color:var(--red); box-shadow:none; }
    .consent span { display:block; min-width:0; }
    .consent { align-items:flex-start; }
    .consent input[type="checkbox"] { position:relative; top:2px; flex:0 0 18px; }
    .consent span, .consent a { overflow-wrap:anywhere; word-break:break-word; }
    .portal-nav-icon { display:block !important; background:transparent !important; box-shadow:none !important; }
    .menu-button { background: var(--red) !important; border-color: var(--red) !important; color: var(--white) !important; box-shadow: 0 10px 24px rgba(140,29,44,.18) !important; }


    .honeypot {
      position: absolute;
      left: -9999px;
    }

    .form-status {
      margin-top: 13px;
      padding: 12px;
      background: #f8ecee;
      border-left: 4px solid var(--red);
    }

    .form-status:empty {
      display: none;
    }

    .booking-shell { width:100%; max-width:1050px; margin-inline:auto; padding:28px; background:var(--white); border:1px solid var(--line); border-top:4px solid var(--red); box-shadow:0 18px 45px rgba(20,22,24,.07); }
    .oib-calendar-priority { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 22px; background:linear-gradient(135deg,#fff 0%,#fff7f8 100%); border:1px solid #ead0d5; border-top:4px solid var(--red); }
    .oib-calendar-priority span { display:block; margin-bottom:7px; color:var(--red); font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
    .oib-calendar-priority strong { display:block; font-size:1.55rem; line-height:1.15; }
    .oib-calendar-priority p { max-width:680px; margin:8px 0 0; color:var(--muted); }
    .booking-picker { grid-column:1/-1; display:grid; grid-template-columns:280px minmax(0,1fr); gap:18px; padding:18px; background:var(--soft); border:1px solid var(--line); }
    .booking-picker h3 { margin:0 0 5px; }
    .booking-days { display:grid; gap:8px; max-height:330px; overflow:auto; padding-right:4px; }
    .booking-day { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:52px; padding:10px 12px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:5px; text-align:left; cursor:pointer; }
    .booking-day:hover,.booking-day:focus-visible,.booking-day.active { color:var(--red); border-color:var(--red); box-shadow:inset 3px 0 0 var(--red); }
    .booking-day span { color:var(--muted); font-size:.76rem; }
    .booking-times { display:grid; grid-template-columns:repeat(4,minmax(76px,1fr)); gap:9px; align-content:start; }
    .booking-time { min-height:44px; padding:9px; color:var(--ink); background:var(--white); border:1px solid #c8cdd0; border-radius:5px; font-weight:800; cursor:pointer; }
    .booking-time:hover,.booking-time:focus-visible,.booking-time.active { color:var(--white); background:var(--red); border-color:var(--red); }
    .booking-selection { grid-column:1/-1; display:none; align-items:center; justify-content:space-between; gap:15px; padding:14px 16px; color:var(--ink); background:#fff7f8; border-left:4px solid var(--red); }
    .booking-selection.visible { display:flex; }
    .booking-message { grid-column:1/-1; padding:20px; color:var(--muted); background:var(--white); border:1px dashed #bfc4c7; text-align:center; }
    .booking-loader { min-height:140px; display:grid; place-items:center; color:var(--muted); }
    .booking-help { grid-column:1/-1; padding:12px 14px; color:#58323a; background:#fff8f9; border:1px solid #ead0d5; border-left:4px solid var(--red); font-size:.9rem; }
    .booking-manage-card { max-width:900px; padding:28px; background:var(--white); border:1px solid var(--line); border-top:4px solid var(--red); box-shadow:0 18px 45px rgba(20,22,24,.07); }
    .booking-manage-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:20px 0; }
    .booking-manage-summary div { padding:14px; background:var(--soft); border:1px solid var(--line); }
    .booking-manage-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
    .waitlist-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px; padding:16px; background:var(--soft); text-align:left; }
    .waitlist-form .full { grid-column:1/-1; }
    .booking-shell.booking-disabled > .field,
    .booking-shell.booking-disabled > input[type="hidden"],
    .booking-shell.booking-disabled > .booking-selection { display:none !important; }
    .booking-shell.booking-disabled > .booking-picker { width:100%; grid-column:1/-1; }


    /* OIB V17: cookies + captcha / antyspam notice */
    .privacy-mini {
      padding: 26px 0;
      background: #fff;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
    }
    .privacy-mini-card {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
      gap: 24px;
      align-items: center;
      padding: 24px;
      background: linear-gradient(135deg, #fff7f8 0%, #ffffff 58%);
      border: 1px solid #ead0d5;
      border-left: 5px solid var(--red);
      box-shadow: 0 16px 45px rgba(20,22,24,.06);
    }
    .privacy-mini-card h2 {
      margin: 0 0 8px;
      font-size: clamp(1.35rem, 2.2vw, 2rem);
      letter-spacing: -.035em;
    }
    .privacy-mini-card p { margin: 0; color: var(--muted); }
    .privacy-mini-list {
      display: grid;
      gap: 8px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .privacy-mini-list li {
      padding: 10px 12px;
      background: #fff;
      border: 1px solid #eadde0;
      border-radius: 5px;
      font-weight: 850;
      color: #2f3337;
    }
    .privacy-mini-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
    .form-privacy-note {
      margin: 8px 0 0;
      padding: 11px 13px;
      color: #56323a;
      background: #fff8f9;
      border: 1px solid #ead0d5;
      border-left: 4px solid var(--red);
      font-size: .86rem;
      line-height: 1.45;
    }
    .cookie-captcha-banner {
      position: fixed;
      left: max(16px, env(safe-area-inset-left));
      right: max(16px, env(safe-area-inset-right));
      bottom: max(16px, env(safe-area-inset-bottom));
      z-index: 10000;
      display: none;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      width: min(1060px, calc(100% - 32px));
      margin: 0 auto;
      padding: 16px 18px;
      color: var(--ink);
      background: rgba(255,255,255,.98);
      border: 1px solid #dac7cb;
      border-left: 5px solid var(--red);
      box-shadow: 0 18px 60px rgba(20,22,24,.2);
      backdrop-filter: blur(10px);
    }
    .cookie-captcha-banner.visible { display: flex; }
    .cookie-captcha-banner strong { display:block; margin-bottom:3px; }
    .cookie-captcha-banner p { margin:0; color:var(--muted); font-size:.88rem; line-height:1.45; }
    .cookie-captcha-actions { display:flex; gap:8px; flex:0 0 auto; }
    .cookie-captcha-actions .text-button { min-height:42px; align-items:center; }
    @media (max-width: 760px) {
      .privacy-mini-card { grid-template-columns: 1fr; padding: 20px; }
      .cookie-captcha-banner { align-items: stretch; flex-direction: column; }
      .cookie-captcha-actions { width:100%; flex-direction:column; }
      .cookie-captcha-actions .button,
      .cookie-captcha-actions .text-button { width:100%; justify-content:center; }
    }

    .site-footer {
      padding: 55px 0 26px;
      background: var(--soft);
      border-top: 1px solid var(--line);
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.25fr .75fr .8fr .95fr;
      gap: 35px;
    }

    .footer-fine {
      margin-top: 35px;
      padding-top: 18px;
      color: var(--muted);
      border-top: 1px solid var(--line);
      font-size: 0.78rem;
    }

    .mobile-contact {
      display: none;
    }

    #adminSite {
      display: none;
      min-height: 100vh;
      padding: 30px;
      background: var(--soft);
    }

    #adminGate { display:none; min-height:100vh; padding:24px; place-items:center; background:#f7f8f8; }
    .mode-admin #publicSite,.mode-admin #portalSite { display:none !important; }
    .mode-admin #adminGate { display:grid; }
    .admin-gate-card { width:min(100%,560px); padding:34px; background:var(--white); border:1px solid var(--line); border-top:5px solid var(--red); box-shadow:0 18px 55px rgba(20,22,24,.09); text-align:center; }
    .admin-gate-logo { display:inline-flex; align-items:center; gap:10px; margin-bottom:20px; }
    .admin-gate-spinner { width:38px; height:38px; margin:22px auto; border:3px solid #eadde0; border-top-color:var(--red); border-radius:50%; animation:adminGateSpin .8s linear infinite; }
    .admin-gate-card.error .admin-gate-spinner { display:none; }
    .admin-gate-status { color:var(--muted); }
    .admin-gate-details { margin-top:16px; padding:12px; color:#6f2631; background:#fff7f8; border:1px solid #e7cbd0; text-align:left; }
    @keyframes adminGateSpin { to { transform:rotate(360deg); } }

    .admin-shell { max-width:1480px; margin:auto; display:grid; grid-template-columns:235px minmax(0,1fr); gap:20px; align-items:start; }

    .admin-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      margin-bottom: 25px;
      grid-column:1/-1;
    }

    .admin-tabs { position:sticky; top:18px; display:flex; flex-direction:column; gap:5px; max-height:calc(100vh - 36px); padding:10px; overflow:auto; background:var(--white); border:1px solid var(--line); }

    .admin-tabs button {
      min-height: 42px;
      padding: 9px 14px;
      color: var(--ink);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 6px;
      font-weight: 750;
      cursor: pointer;
      transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
      width:100%;
      text-align:left;
    }

    .admin-tabs button:hover {
      color: var(--red);
      border-color: #c98d96;
      transform: translateY(-1px);
    }

    .admin-tabs button.active {
      color: var(--red);
      background: var(--red-soft);
      border-color: var(--red);
      box-shadow:inset 3px 0 0 var(--red);
    }

    .admin-panel {
      display: none;
      padding: 24px;
      background: var(--white);
      border: 1px solid var(--line);
      grid-column:2;
      min-width:0;
    }

    .admin-panel.active {
      display: block;
    }

    #adminStatus { grid-column:2; position:sticky; bottom:12px; z-index:20; box-shadow:0 8px 24px rgba(20,22,24,.12); }

    .admin-list {
      display: grid;
      gap: 10px;
      margin-top: 20px;
    }

    .admin-item {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 15px;
      align-items: center;
      padding: 14px;
      border: 1px solid var(--line);
    }

    .admin-actions {
      display: flex;
      gap: 7px;
    }

    .admin-actions button {
      padding: 8px 10px;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 3px;
      cursor: pointer;
    }

    .toolbar {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr auto;
      gap: 10px;
      margin: 26px 0 18px;
      padding: 16px;
      background: var(--soft);
      border: 1px solid var(--line);
    }

    .toolbar input,
    .toolbar select {
      width: 100%;
      min-height: 44px;
      padding: 8px 11px;
      background: var(--white);
      border: 1px solid #b8bec2;
    }

    .toolbar-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      margin-bottom: 18px;
    }

    .view-switch {
      display: flex;
      gap: 5px;
    }

    .view-switch button,
    .text-button {
      min-height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 8px 13px;
      color: var(--ink);
      background: var(--white);
      border: 1px solid #cfd3d6;
      border-radius: 6px;
      font-weight: 750;
      line-height: 1.2;
      text-decoration: none;
      cursor: pointer;
      box-shadow: 0 3px 10px rgba(20, 22, 24, .06);
      transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
    }

    .view-switch button:hover,
    .text-button:hover {
      color: var(--red);
      background: #fff8f9;
      border-color: #c98d96;
      transform: translateY(-1px);
      box-shadow: 0 6px 15px rgba(20, 22, 24, .09);
    }

    .view-switch button.active {
      color: var(--white);
      background: var(--red);
      border-color: var(--red);
      box-shadow: 0 5px 14px rgba(140,29,44,.18);
    }

    .project-grid.list-view {
      grid-template-columns: 1fr;
    }

    .project-grid.list-view .project-card {
      display: grid;
      grid-template-columns: 280px 1fr;
    }

    .project-card {
      cursor: pointer;
      transition: border-color .2s ease, transform .2s ease;
    }

    .project-card:hover,
    .project-card.active {
      border-color: var(--red);
      transform: translateY(-2px);
    }

    .project-card img {
      width: 100%;
      height: 190px;
      display: block;
      object-fit: cover;
    }

    .tag {
      display: inline-flex;
      margin: 0 6px 6px 0;
      padding: 4px 8px;
      color: #4b5054;
      background: var(--soft);
      border: 1px solid var(--line);
      font-size: .74rem;
      font-weight: 700;
    }

    dialog {
      width: min(920px, calc(100% - 28px));
      max-width:920px;
      max-height: calc(100dvh - 30px);
      padding: 0;
      color: var(--ink);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius:8px;
      box-shadow: var(--shadow);
      overflow:hidden;
      overscroll-behavior:contain;
    }

    dialog[open] { display:flex; flex-direction:column; }

    dialog::backdrop {
      background: rgba(14, 16, 18, .7);
    }

    .dialog-head {
      position: sticky;
      top: 0;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 18px 22px;
      background: var(--white);
      border-bottom: 1px solid var(--line);
      flex:0 0 auto;
    }

    .dialog-close {
      width: 44px;
      height: 44px;
      flex: 0 0 auto;
      background: var(--white);
      border: 1px solid var(--line);
      cursor: pointer;
      font-size: 1.35rem;
    }

    .dialog-body {
      padding: 26px;
      min-width:0;
      overflow-y:auto;
      overflow-x:hidden;
      overscroll-behavior:contain;
    }

    .dialog-body * { max-width:100%; overflow-wrap:anywhere; }

    .detail-columns {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
    }

    .detail-columns ul,
    .investor-zone ul {
      padding-left: 20px;
    }

    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      margin-top: 24px;
    }

    .gallery-grid button {
      padding: 0;
      background: var(--soft);
      border: 0;
      cursor: pointer;
    }

    .gallery-grid img {
      width: 100%;
      aspect-ratio: 4 / 3;
      display: block;
      object-fit: cover;
    }

    #lightboxDialog {
      width: min(1180px, calc(100% - 24px));
      background: var(--graphite);
      border-color: #4b5054;
    }

    #lightboxDialog[open] { display:block; overflow:auto; }

    .lightbox-stage {
      min-height: 72vh;
      display: grid;
      place-items: center;
      position: relative;
      padding: 56px 70px 30px;
      color: var(--white);
    }

    .lightbox-stage img {
      max-height: 70vh;
      object-fit: contain;
    }

    .lightbox-close { position:absolute; right:12px; top:12px; z-index:3; color:var(--red); background:var(--white); border-color:var(--white); border-radius:6px; }

    .lightbox-nav {
      position: absolute;
      top: 50%;
      width: 46px;
      height: 50px;
      color: var(--white);
      background: rgba(0,0,0,.55);
      border: 1px solid #666;
      cursor: pointer;
    }

    .lightbox-prev { left: 12px; }
    .lightbox-next { right: 12px; }
    .lightbox-caption { margin: 14px 0 0; text-align: center; }

    .investor-zone {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      margin-top: 30px;
      background: var(--line);
    }

    .investor-zone article {
      padding: 26px;
      background: var(--white);
    }

    .contact-tools {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 12px;
    }

    .contact-address-note { margin-top:18px; padding:15px; color:var(--muted); background:var(--soft); border-left:3px solid var(--red); }

    .signature-band { overflow:hidden; color:var(--white); background:var(--red-deep); }
    .signature-band::before { content:"OIB"; position:absolute; right:-20px; top:50%; transform:translateY(-50%); color:rgba(255,255,255,.055); font-size:clamp(9rem,25vw,22rem); font-weight:900; letter-spacing:-.08em; line-height:1; }
    .signature-content { position:relative; z-index:1; display:grid; grid-template-columns:1.25fr .75fr; gap:45px; align-items:center; }
    .signature-band .eyebrow { color:#f3cdd3; }
    .signature-band h2 { max-width:760px; margin:0; color:var(--white); font-size:clamp(2.2rem,4.5vw,4rem); }
    .signature-band p { color:#f2e4e6; }
    .signature-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
    .signature-band .button { color:var(--red-deep); background:var(--white); border-color:var(--white); box-shadow:none; }
    .signature-band .button.secondary { color:var(--white); background:transparent; border-color:rgba(255,255,255,.55); }

    .motion-ready .reveal-item { opacity:0; transform:translateY(26px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); transition-delay:var(--reveal-delay,0ms); }
    .motion-ready .reveal-item.is-visible { opacity:1; transform:none; }
    .main-nav a { position:relative; }
    .main-nav a::after { content:""; position:absolute; left:10px; right:10px; bottom:5px; height:2px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .22s ease; }
    .main-nav a:hover::after,.main-nav a.active::after { transform:scaleX(1); }
    .main-nav a.active { color:var(--red); }

    .privacy-box {
      max-width: 900px;
    }

    .admin-editor-list {
      display: grid;
      gap: 10px;
      margin: 18px 0;
    }

    .admin-editor-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 12px;
      align-items: center;
      padding: 14px;
      background: var(--soft);
      border: 1px solid var(--line);
    }

    .admin-editor-actions {
      display: flex;
      gap: 6px;
    }

    .admin-editor-actions button {
      min-height: 38px;
      padding: 6px 10px;
      background: var(--white);
      border: 1px solid var(--line);
      cursor: pointer;
    }

    .admin-form {
      display: none;
      margin-top: 18px;
      padding: 20px;
      background: #fafafa;
      border: 1px solid var(--line);
    }

    .admin-form.open { display: block; }

    .check-row {
      display: flex;
      flex-wrap: wrap;
      gap: 18px;
      grid-column: 1 / -1;
    }
    .check-row label { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:start; gap:9px; min-height:44px; padding:11px 12px; background:var(--soft); border:1px solid var(--line); border-radius:5px; line-height:1.35; cursor:pointer; }
    .field > label:has(> input[type="checkbox"]) { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:start; gap:9px; padding:11px 12px; background:var(--soft); border:1px solid var(--line); }
    #comparisonResult { display:grid; grid-template-columns:minmax(150px,.65fr) repeat(3,minmax(220px,1fr)); gap:0; overflow-x:auto; border:1px solid var(--line); background:var(--white); }
    .comparison-cell { min-width:0; padding:16px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
    .comparison-cell:nth-child(4n) { border-right:0; }
    .comparison-cell.label { position:sticky; left:0; z-index:2; color:var(--muted); background:var(--soft); font-size:.78rem; font-weight:900; text-transform:uppercase; }
    .comparison-cell.head { padding-top:20px; border-top:4px solid var(--red); }
    .comparison-cell.head h3 { margin:.4rem 0; }
    .comparison-cell ul,.comparison-cell ol { margin:.4rem 0; padding-left:19px; }
    .comparison-empty { grid-column:1/-1; padding:30px; color:var(--muted); text-align:center; }

    .stats-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }

    .stat-card {
      padding: 20px;
      background: var(--soft);
      border: 1px solid var(--line);
    }

    .stat-card strong {
      display: block;
      font-size: 2rem;
    }

    .portal-shell { min-height: 100vh; padding: 40px 0; background: var(--soft); }
    .portal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
    .portal-card { padding: 24px; background: var(--white); border: 1px solid var(--line); }
    .media-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
    .media-item { padding:10px; border:1px solid var(--line); background:var(--white); }
    .media-item img { width:100%; aspect-ratio:4/3; object-fit:cover; }
    .inquiry-card { padding:18px; border:1px solid var(--line); background:var(--white); }
    .preview-banner { position:sticky; top:0; z-index:3000; padding:10px; color:white; background:var(--red); text-align:center; font-weight:800; }
    .review-summary { display:grid; grid-template-columns:220px 1fr; gap:30px; align-items:center; padding:30px; background:var(--white); border:1px solid var(--line); }
    .review-score { text-align:center; padding:24px; color:var(--ink); background:#fff8f9; border:1px solid #e7cbd0; border-top:4px solid var(--red); border-radius:6px; }
    .review-score strong { display:block; font-size:3.4rem; line-height:1; }
    .review-stars { color:var(--red); font-size:1.3rem; letter-spacing:.12em; }
    .legal-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
    .legal-card { padding:18px; background:var(--soft); border:1px solid var(--line); }
    .status-pill { display:inline-flex; padding:4px 8px; border-radius:4px; font-size:.74rem; font-weight:800; background:#eceeef; }
    .status-pill.done,.status-pill.approved { color:var(--graphite); background:var(--silver); }
    .status-pill.todo,.status-pill.review_required { color:#8c1d2c; background:#f8e9ec; }
    .status-pill.confirmed,.status-pill.waiting { color:#6f1723; background:#f8e9ec; }
    .status-pill.completed,.status-pill.notified { color:#303638; background:#e8ebec; }
    .status-pill.cancelled,.status-pill.no_show { color:#61676b; background:#f0f1f2; text-decoration:line-through; }
    .audit-row { padding:14px 0; border-bottom:1px solid var(--line); }
    .dashboard-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:20px 0; }
    .dashboard-kpi { padding:17px; background:var(--white); border:1px solid var(--line); border-top:3px solid #b9bec1; }
    .dashboard-kpi.alert { border-top-color:var(--red); }
    .dashboard-kpi strong { display:block; margin-top:6px; color:var(--ink); font-size:1.8rem; line-height:1; }
    .dashboard-kpi small { color:var(--muted); }
    .dashboard-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:18px; }
    .dashboard-box { min-width:0; padding:18px; background:var(--white); border:1px solid var(--line); }
    .dashboard-box h3 { margin-top:0; }
    .dashboard-row { padding:11px 0; border-top:1px solid var(--line); }
    .dashboard-row:first-of-type { border-top:0; }
    .alert-list { display:grid; gap:9px; }
    .system-alert { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:14px 16px; background:var(--white); border:1px solid var(--line); border-left:4px solid #899299; }
    .system-alert.warning { border-left-color:var(--red-hover); }
    .system-alert.critical { border-left-color:var(--red); background:#fff8f9; }
    .system-alert.info { border-left-color:var(--muted); }
    .system-alert p { margin:.2rem 0 0; color:var(--muted); }
    .error-card { padding:17px; background:var(--white); border:1px solid var(--line); }
    .error-card.critical { border-left:4px solid var(--red); }
    .error-card.resolved,.error-card.ignored { opacity:.68; }
    .diagnostic-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
    .diagnostic-item { padding:13px; border:1px solid var(--line); background:var(--white); }
    .diagnostic-item.ok { border-top:3px solid var(--graphite); }
    .diagnostic-item.error { border-top:3px solid var(--red); }
    .calendar-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
    .calendar-head h2,.calendar-head p { margin:0; }
    .calendar-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:18px 0; }
    .calendar-toolbar strong { min-width:180px; text-align:center; font-size:1.05rem; }
    .calendar-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:18px; align-items:start; }
    .calendar-board { border:1px solid var(--line); background:var(--white); overflow:hidden; }
    .calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
    .calendar-weekdays span { padding:10px 6px; color:var(--muted); background:var(--soft); border-bottom:1px solid var(--line); text-align:center; font-size:.75rem; font-weight:800; text-transform:uppercase; }
    .calendar-day { position:relative; min-height:112px; padding:8px; background:var(--white); border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; cursor:pointer; overflow:hidden; }
    .calendar-day:nth-child(7n) { border-right:0; }
    .calendar-day:hover,.calendar-day:focus-visible { z-index:1; background:#fbf6f7; outline:2px solid var(--red); outline-offset:-2px; }
    .calendar-day.outside { color:#92979b; background:#fafafa; }
    .calendar-day.today .calendar-number { color:var(--white); background:var(--red); }
    .calendar-day.selected { box-shadow:inset 0 0 0 2px var(--red); }
    .calendar-number { display:inline-grid; width:28px; height:28px; place-items:center; border-radius:50%; font-weight:800; }
    .calendar-event-chip { display:block; margin-top:5px; padding:4px 6px; color:var(--graphite); background:var(--silver); border-left:3px solid var(--muted); border-radius:3px; font-size:.7rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .calendar-event-chip.appointment { border-color:var(--red); background:#f8e9ec; }
    .calendar-event-chip.site_visit,.calendar-event-chip.inspection { border-color:var(--red-hover); background:var(--red-soft); }
    .calendar-event-chip.deadline { border-color:#8c1d2c; background:#fdebed; }
    .calendar-task-dot { position:absolute; right:8px; top:10px; width:7px; height:7px; border-radius:50%; background:var(--red); }
    .calendar-sidebar { display:grid; gap:12px; }
    .calendar-side-card { padding:16px; background:var(--soft); border:1px solid var(--line); }
    .calendar-side-card h3 { margin-top:0; }
    .calendar-agenda-item { padding:12px 0; border-bottom:1px solid var(--line); }
    .calendar-agenda-item:last-child { border-bottom:0; }
    .calendar-agenda-item p { margin:.25rem 0; }
    .calendar-agenda-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .calendar-agenda-actions button { min-height:34px; padding:5px 9px; font-size:.76rem; }
    .calendar-suggestions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 20px; }
    .calendar-suggestions button { padding:8px 10px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:4px; cursor:pointer; }
    .calendar-suggestions button:hover { color:var(--red); border-color:var(--red); }
    .calendar-tasks { display:grid; gap:10px; }
    .calendar-task { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px; border:1px solid var(--line); background:var(--white); }
    .calendar-task.overdue { border-left:4px solid var(--red); }
    .calendar-empty { padding:20px; color:var(--muted); text-align:center; }
    .calendar-bookings { margin:18px 0; padding:18px; background:var(--soft); border:1px solid var(--line); }
    .booking-admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .booking-admin-card { padding:14px; background:var(--white); border:1px solid var(--line); border-left:4px solid var(--red); }
    .booking-admin-card h4,.booking-admin-card p { margin:.25rem 0; }
    .booking-admin-card .admin-actions { margin-top:10px; flex-wrap:wrap; }
    .booking-admin-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) 170px 180px auto auto; gap:8px; margin-bottom:14px; }
    .booking-admin-toolbar input,.booking-admin-toolbar select { min-height:42px; padding:8px 10px; background:var(--white); border:1px solid var(--line); }
    .booking-report { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
    .booking-report div { padding:11px; background:var(--white); border:1px solid var(--line); text-align:center; }
    .booking-report strong { display:block; font-size:1.35rem; color:var(--red); }
    .booking-admin-card textarea { width:100%; min-height:72px; margin-top:8px; padding:9px; border:1px solid var(--line); resize:vertical; }
    .booking-admin-card select { min-height:38px; padding:7px; border:1px solid var(--line); background:var(--white); }
    .booking-admin-card label:has(input[type="checkbox"]) { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:start; gap:9px; margin-top:9px; padding:10px; background:var(--soft); border:1px solid var(--line); }
    .calendar-alt-view { min-height:420px; border:1px solid var(--line); background:var(--white); }
    .calendar-alt-row { display:grid; grid-template-columns:150px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border-bottom:1px solid var(--line); }
    .calendar-alt-row:last-child { border-bottom:0; }
    .availability-panel { margin:22px 0; border:1px solid var(--line); border-top:4px solid var(--red); background:var(--white); }
    .availability-panel > summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 20px; cursor:pointer; list-style:none; }
    .availability-panel > summary::-webkit-details-marker { display:none; }
    .availability-panel > summary h3,.availability-panel > summary p { margin:0; }
    .availability-panel > summary::after { content:'Rozwiń'; color:var(--red); font-weight:800; }
    .availability-panel[open] > summary::after { content:'Zwiń'; }
    .availability-body { padding:0 20px 22px; border-top:1px solid var(--line); }
    .availability-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:18px 0; }
    .availability-week { display:grid; gap:8px; margin:12px 0 22px; }
    .availability-day { display:grid; grid-template-columns:minmax(150px,1fr) 120px 120px; align-items:center; gap:12px; padding:11px 13px; background:var(--soft); border:1px solid var(--line); }
    .availability-day label { display:flex; align-items:center; gap:9px; font-weight:800; }
    .availability-day input[type="time"] { width:100%; padding:9px; background:var(--white); border:1px solid #b8bec2; }
    .exception-form { display:grid; grid-template-columns:1fr 1fr 1fr 1fr 1.5fr auto; gap:8px; align-items:end; padding:14px; background:var(--soft); border:1px solid var(--line); }
    .exception-list { display:grid; gap:8px; margin:12px 0; }
    .exception-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border:1px solid var(--line); }
    .live-indicator { display:inline-flex; align-items:center; gap:7px; color:var(--muted); font-size:.78rem; font-weight:700; }
    .live-indicator::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 4px var(--red-soft); }
    .admin-toast { position:fixed; right:22px; bottom:22px; z-index:100; max-width:380px; padding:16px 18px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-left:5px solid var(--red); box-shadow:0 15px 45px rgba(20,22,24,.18); transform:translateY(150%); transition:transform .25s ease; }
    .admin-toast.show { transform:translateY(0); }

    @media (max-width: 920px) {
      .nav-shell {
        position: relative;
        flex-wrap: nowrap;
        padding-block: 10px;
      }

      .main-nav {
        position: absolute;
        top: calc(100% + 1px);
        left: 0;
        right: 0;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 8px;
        overflow: visible;
        background: var(--white);
        border: 1px solid var(--line);
        box-shadow: 0 18px 45px rgba(20,22,24,.14);
        white-space: normal;
      }

      .site-header.menu-open .main-nav { display:flex; }
      .main-nav a { padding:12px 14px; border-bottom:1px solid var(--line); }
      .main-nav a:last-child { border-bottom:0; }
      .main-nav a.active { box-shadow:inset 3px 0 0 var(--red); }
      .menu-button { display:grid; order:3; }

      .nav-actions {
        margin-left: auto;
      }

      .calendar-layout { grid-template-columns:1fr; }
      .calendar-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .offer-intro,.faq-head { grid-template-columns:1fr; }
      .company-history-head { grid-template-columns:1fr; }
      .company-timeline { grid-template-columns:repeat(2,1fr); }
      .signature-content { grid-template-columns:1fr; }
      .signature-actions { justify-content:flex-start; }
      .offer-pillars { grid-template-columns:repeat(2,1fr); }
      .offer-controls { grid-template-columns:1fr; }
      .offer-result-count { text-align:left; }
      .faq-layout { grid-template-columns:1fr; }
      .faq-sidebar { position:static; }
      .faq-category-list { display:flex; overflow-x:auto; }
      .faq-category-list button { width:auto; white-space:nowrap; }
      .dashboard-kpis { grid-template-columns:repeat(3,1fr); }
      .dashboard-columns { grid-template-columns:1fr; }
      .admin-shell { grid-template-columns:1fr; }
      .admin-header,.admin-tabs,.admin-panel,#adminStatus { grid-column:1; }
      .admin-tabs { position:static; flex-direction:row; flex-wrap:nowrap; max-height:none; overflow-x:auto; }
      .admin-tabs button { width:auto; flex:0 0 auto; white-space:nowrap; }
      .booking-picker { grid-template-columns:1fr; }
      .booking-days { grid-template-columns:repeat(3,minmax(150px,1fr)); max-height:none; overflow-x:auto; }
      .availability-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .exception-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .booking-admin-grid { grid-template-columns:1fr; }
      .booking-admin-toolbar { grid-template-columns:1fr 1fr; }
      .booking-report { grid-template-columns:repeat(3,1fr); }

      .about-layout,
      .contact-layout {
        grid-template-columns: 1fr;
      }

      .service-grid,
      .project-grid,
      .audience-grid,
      .home-proof-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .process-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .toolbar {
        grid-template-columns: 1fr 1fr;
      }

      .investor-zone,
      .stats-grid,
      .portal-grid,
      .media-grid,
      .review-summary,
      .legal-grid {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 640px) {
      #adminSite { padding:14px; }
      .admin-panel { padding:16px; }
      .calendar-head { align-items:flex-start; flex-direction:column; }
      .calendar-sidebar { grid-template-columns:1fr; }
      .calendar-weekdays span { font-size:.62rem; padding:8px 2px; }
      .calendar-day { min-height:72px; padding:5px; }
      .calendar-event-chip { font-size:0; width:8px; height:8px; padding:0; border:0; border-radius:50%; background:var(--red); }
      .calendar-task { align-items:flex-start; flex-direction:column; }
      .offer-pillars { grid-template-columns:1fr; }
      .faq-tools { align-items:flex-start; flex-direction:column; }
      .nav-actions { gap:5px; }
      .nav-actions > .button { min-height:40px; padding:8px 11px; font-size:.78rem; }
      dialog { width:calc(100% - 12px); max-height:calc(100dvh - 12px); }
      .dialog-head { padding:12px 14px; }
      .dialog-head h2 { margin:0; font-size:1.35rem; }
      .dialog-body { padding:18px 14px; }
      .lightbox-stage { min-height:calc(100dvh - 24px); padding:54px 48px 24px; }
      .dashboard-kpis,.diagnostic-grid { grid-template-columns:repeat(2,1fr); }
      .company-timeline,.company-profile { grid-template-columns:1fr; }
      .booking-shell { padding:18px; }
      .booking-times { grid-template-columns:repeat(3,1fr); }
      .availability-day { grid-template-columns:1fr 1fr 1fr; }
    }

    @media (max-width: 620px) {
      body {
        padding-bottom: 60px;
      }

      .container {
        width: min(calc(100% - 28px), var(--max));
      }

      .topbar {
        display: none;
      }

      .logo-copy {
        display: none;
      }

      .hero {
        min-height: 650px;
      }

      .hero::before {
        inset:-3%;
        opacity:1;
        background-position:62% center;
      }

      .hero::after { background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.91) 62%,rgba(255,255,255,.65)); }

      h1 {
        font-size: 2.75rem;
      }

      .section {
        padding: 65px 0;
      }

      .trust-grid,
      .service-grid,
      .project-grid,
      .audience-grid,
      .home-proof-grid,
      .process-grid,
      .form-grid,
      .footer-grid {
        grid-template-columns: 1fr;
      }

      .quote-step,.waitlist-form { grid-template-columns:1fr; }
      .quote-step > h3,.quote-step > p,.waitlist-form .full { grid-column:1; }
      .quote-progress { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .quote-actions { align-items:stretch; flex-direction:column; }
      .quote-actions-end { width:100%; margin-left:0; }
      .quote-actions .button,.quote-actions .text-button { flex:1; justify-content:center; }
      .booking-picker { padding:12px; }
      .booking-days { display:flex; }
      .booking-day { min-width:170px; }
      .booking-times { grid-template-columns:repeat(2,1fr); }
      .booking-selection { align-items:flex-start; flex-direction:column; }
      .availability-options,.exception-form { grid-template-columns:1fr; }
      .availability-day { grid-template-columns:1fr 1fr; }
      .availability-day label { grid-column:1/-1; }
      .booking-manage-summary,.waitlist-form { grid-template-columns:1fr; }
      .booking-admin-toolbar,.booking-report { grid-template-columns:1fr; }
      .calendar-alt-row { grid-template-columns:1fr; }

      .toolbar,
      .detail-columns,
      .gallery-grid {
        grid-template-columns: 1fr;
      }

      .project-grid.list-view .project-card {
        grid-template-columns: 1fr;
      }

      .map-shell {
        height: 470px;
      }

      .mobile-contact {
        position: fixed;
        inset: auto 0 0;
        z-index: 2000;
        display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
        background: var(--white);
        border-top: 1px solid var(--line);
      }

      .mobile-contact a {
        min-height: 58px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 5px;
        font-size: 0.82rem;
        font-weight: 800;
        text-decoration: none;
        border-right: 1px solid var(--line);
      }

      .mobile-contact img {
        width: 24px;
        height: 24px;
        border-radius: 7px;
        object-fit: cover;
      }

      .mobile-contact a:last-child {
        color: var(--white);
        background: var(--red);
      }

      #adminSite {
        padding: 18px;
      }
    }

    @media (max-width: 760px) {
      .motion-ready .reveal-item { opacity:1 !important; transform:none !important; transition:none !important; }
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }
      .hero::before,.hero-content > * { animation:none; }
      .motion-ready .reveal-item { opacity:1; transform:none; transition:none; }
      *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
    }
  

    /* OIB V9 — mapa: wheel/drag layer fix + portal klienta polish */
    .map-shell{isolation:isolate!important;touch-action:none!important;overscroll-behavior:contain!important;}
    .map-shell .map-fallback{z-index:1!important;pointer-events:none!important;}
    .map-shell #leafletMap{z-index:60!important;display:block!important;pointer-events:auto!important;touch-action:none!important;}
    .map-shell #leafletMap.leaflet-container{cursor:grab!important;}
    .map-shell #leafletMap.leaflet-container:active{cursor:grabbing!important;}
    .map-shell .leaflet-container,.map-shell .leaflet-pane,.map-shell .leaflet-tile,.map-shell .leaflet-marker-icon,.map-shell .leaflet-control{pointer-events:auto!important;}

    .portal-nav-link{min-height:46px!important;min-width:46px!important;padding:6px 12px!important;border-radius:6px!important;border:1px solid rgba(152,23,43,.24)!important;background:#fff!important;color:#98172b!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;text-decoration:none!important;font-weight:950!important;}
    .portal-nav-link span:not(.sr-only){display:inline!important;}
    .portal-nav-icon{width:32px!important;height:32px!important;object-fit:contain!important;}

    #portalSite .portal-shell{min-height:100vh!important;background:linear-gradient(135deg,#f6f4f2 0%,#fff 42%,#f4ecee 100%)!important;padding:44px 0 72px!important;}
    #portalSite .container{max-width:1120px!important;}
    #portalSite .admin-header{padding:30px 32px!important;border:1px solid #e2dedb!important;border-top:5px solid #98172b!important;background:#fff!important;box-shadow:0 24px 70px rgba(17,19,24,.08)!important;display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:24px!important;}
    #portalSite .admin-header h1{margin:10px 0 8px!important;font-size:clamp(42px,6vw,74px)!important;line-height:.9!important;letter-spacing:-.065em!important;}
    #portalSite .admin-header p{max-width:680px!important;color:#596372!important;}
    #portalContent{margin-top:22px!important;}
    #portalContent .booking-manage-card{max-width:none!important;width:100%!important;border:1px solid #e2dedb!important;border-top:0!important;background:#fff!important;box-shadow:0 24px 70px rgba(17,19,24,.08)!important;padding:0!important;overflow:hidden!important;}
    #portalContent .booking-manage-card > .admin-tabs{position:static!important;max-height:none!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;margin:0!important;padding:0!important;overflow:visible!important;border:0!important;border-bottom:1px solid #e2dedb!important;background:#f8f7f5!important;}
    #portalContent .booking-manage-card > .admin-tabs button{width:100%!important;min-height:58px!important;border:0!important;border-right:1px solid #e2dedb!important;border-radius:0!important;background:transparent!important;color:#111!important;font-size:13px!important;font-weight:950!important;letter-spacing:.08em!important;text-transform:uppercase!important;}
    #portalContent .booking-manage-card > .admin-tabs button:last-child{border-right:0!important;}
    #portalContent .booking-manage-card > .admin-tabs button.active{background:#111!important;color:#fff!important;box-shadow:inset 0 -4px 0 #98172b!important;}
    #portalContent .booking-manage-card form{padding:32px!important;}
    #portalContent .booking-manage-card .button{min-height:52px!important;border-radius:6px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-weight:950!important;}
    #portalContent .booking-manage-card input,
    #portalContent .booking-manage-card textarea,
    #portalContent .booking-manage-card select{border-radius:6px!important;}
    .portal-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:16px!important;}
    .portal-card{grid-column:span 6!important;border:1px solid #e2dedb!important;border-top:4px solid #98172b!important;background:#fff!important;box-shadow:0 18px 52px rgba(17,19,24,.07)!important;padding:26px!important;border-radius:10px!important;}
    .portal-card[style*="grid-column:1/-1"]{grid-column:1/-1!important;}
    .portal-card h2{font-size:26px!important;letter-spacing:-.04em!important;margin:0 0 12px!important;}
    .portal-card .dashboard-row{padding:14px 0!important;border-bottom:1px solid #eee!important;}
    .portal-card .dashboard-row:last-child{border-bottom:0!important;}
    #portalStatus{padding:0 32px 28px!important;color:#98172b!important;font-weight:850!important;}
    @media(max-width:760px){#portalSite .admin-header{display:block!important;padding:24px!important}.portal-grid{grid-template-columns:1fr!important}.portal-card,.portal-card[style]{grid-column:1!important}#portalContent .booking-manage-card form{padding:22px!important}.portal-nav-link span:not(.sr-only){display:none!important}}



    /* OIB V11 — lekkie wyrównanie portalu klienta + przycisk w menu */
    .nav-actions{align-items:center!important;}
    .nav-actions > .button{min-height:52px!important;height:52px!important;padding:0 22px!important;border-radius:8px!important;}
    .portal-nav-link{
      min-height:52px!important;
      height:52px!important;
      padding:0 18px!important;
      border-radius:8px!important;
      border:1px solid rgba(152,23,43,.22)!important;
      background:#fff!important;
      color:#98172b!important;
      box-shadow:0 8px 22px rgba(17,19,24,.06)!important;
      line-height:1!important;
    }
    .portal-nav-link:hover{background:#fff7f8!important;border-color:rgba(152,23,43,.42)!important;transform:translateY(-1px)!important;}
    .portal-nav-icon{width:28px!important;height:28px!important;border-radius:7px!important;}

    body.mode-portal{background:linear-gradient(135deg,#f5f3f1 0%,#ffffff 46%,#f7eef0 100%)!important;}
    #portalSite .portal-shell{
      min-height:calc(100vh - 0px)!important;
      display:flex!important;
      justify-content:center!important;
      align-items:flex-start!important;
      padding:40px 18px 78px!important;
      background:radial-gradient(circle at 25% 0%,rgba(152,23,43,.075),transparent 34%),linear-gradient(135deg,#f7f5f3 0%,#fff 48%,#f5ecee 100%)!important;
    }
    #portalSite .container{
      width:min(100%,1000px)!important;
      max-width:1000px!important;
      margin-left:auto!important;
      margin-right:auto!important;
    }
    #portalSite .admin-header,
    #portalContent{
      width:100%!important;
      max-width:960px!important;
      margin-left:auto!important;
      margin-right:auto!important;
    }
    #portalSite .admin-header{
      border-radius:16px!important;
      border:1px solid #e5dfdc!important;
      border-top:5px solid #98172b!important;
      padding:30px 34px!important;
      box-shadow:0 28px 80px rgba(17,19,24,.09)!important;
      overflow:hidden!important;
      position:relative!important;
    }
    #portalSite .admin-header:after{
      content:""!important;
      position:absolute!important;
      right:-90px!important;
      top:-90px!important;
      width:210px!important;
      height:210px!important;
      border-radius:50%!important;
      background:rgba(152,23,43,.045)!important;
      pointer-events:none!important;
    }
    #portalSite .admin-header .logo{position:relative!important;z-index:2!important;}
    #portalSite .admin-header .text-button{
      position:relative!important;
      z-index:2!important;
      min-height:44px!important;
      padding:0 18px!important;
      border-radius:8px!important;
      background:#fff!important;
      border:1px solid #ddd8d5!important;
      box-shadow:0 8px 22px rgba(17,19,24,.06)!important;
      white-space:nowrap!important;
    }
    #portalSite .admin-header h1{
      margin:14px 0 10px!important;
      font-size:clamp(44px,5.2vw,68px)!important;
      letter-spacing:-.06em!important;
      max-width:760px!important;
    }
    #portalSite .admin-header p{font-size:1rem!important;line-height:1.55!important;max-width:620px!important;}

    #portalContent{margin-top:20px!important;}
    #portalContent .booking-manage-card{
      border-radius:16px!important;
      border:1px solid #e5dfdc!important;
      overflow:hidden!important;
      box-shadow:0 28px 90px rgba(17,19,24,.10)!important;
    }
    #portalContent .booking-manage-card > .admin-tabs{
      background:#f8f6f4!important;
      border-bottom:1px solid #e5dfdc!important;
    }
    #portalContent .booking-manage-card > .admin-tabs button{
      min-height:62px!important;
      font-size:13px!important;
      letter-spacing:.09em!important;
    }
    #portalContent .booking-manage-card > .admin-tabs button.active{
      background:#111317!important;
      color:#fff!important;
      box-shadow:inset 0 -4px 0 #98172b!important;
    }
    #portalContent .booking-manage-card form{
      padding:30px 32px 28px!important;
      gap:18px!important;
      align-items:end!important;
    }
    #portalContent .booking-manage-card .field label{font-size:.82rem!important;font-weight:950!important;letter-spacing:.015em!important;}
    #portalContent .booking-manage-card input,
    #portalContent .booking-manage-card textarea,
    #portalContent .booking-manage-card select{
      min-height:50px!important;
      border-radius:8px!important;
      border-color:#cfd4d8!important;
      background:#fff!important;
      font-size:.95rem!important;
    }
    #portalContent .booking-manage-card input:focus,
    #portalContent .booking-manage-card textarea:focus,
    #portalContent .booking-manage-card select:focus{
      border-color:#98172b!important;
      box-shadow:0 0 0 4px rgba(152,23,43,.10)!important;
    }
    #portalContent .booking-manage-card .button{
      width:100%!important;
      min-height:54px!important;
      border-radius:8px!important;
      font-size:.98rem!important;
      box-shadow:0 14px 30px rgba(152,23,43,.22)!important;
    }
    #portalContent .booking-manage-card .text-button{
      min-height:42px!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      padding:0 14px!important;
      border-radius:8px!important;
      border:1px solid #e2dedb!important;
      background:#fff!important;
      box-shadow:0 8px 20px rgba(17,19,24,.05)!important;
      text-decoration:none!important;
    }
    #portalContent .booking-manage-card .field.full p{margin:0!important;display:flex!important;align-items:center!important;gap:10px!important;}
    #portalStatus:empty{display:none!important;}
    #portalStatus:not(:empty){
      margin:0 32px 30px!important;
      padding:15px 18px!important;
      min-height:50px!important;
      display:flex!important;
      align-items:center!important;
      border-left:4px solid #98172b!important;
      border-radius:10px!important;
      color:#98172b!important;
      background:#fff4f6!important;
      font-weight:900!important;
      box-shadow:0 10px 24px rgba(17,19,24,.04)!important;
    }
    #portalContent .portal-grid{margin-top:0!important;}
    #portalContent .portal-card{
      border-radius:14px!important;
      border-top-width:5px!important;
      box-shadow:0 20px 58px rgba(17,19,24,.08)!important;
    }
    #portalContent .dashboard-row{font-size:.95rem!important;line-height:1.45!important;}

    @media(max-width:760px){
      #portalSite .portal-shell{padding:20px 12px 52px!important;}
      #portalSite .admin-header{padding:24px 22px!important;border-radius:14px!important;}
      #portalSite .admin-header h1{font-size:44px!important;}
      #portalSite .admin-header .text-button{margin-top:18px!important;width:100%!important;}
      #portalContent .booking-manage-card{border-radius:14px!important;}
      #portalContent .booking-manage-card form{grid-template-columns:1fr!important;padding:22px!important;}
      #portalStatus:not(:empty){margin:0 22px 24px!important;}
      .portal-nav-link{width:52px!important;min-width:52px!important;padding:0!important;}
    }


    /* OIB V12 — panel po zalogowaniu: czysty status i lepsze karty */
    #portalContent .portal-dashboard{align-items:stretch!important;}
    #portalContent .portal-account-card{
      grid-column:span 7!important;
      background:linear-gradient(135deg,#ffffff 0%,#fff 58%,#fbf3f4 100%)!important;
      border-top-color:#98172b!important;
      position:relative!important;
      overflow:hidden!important;
    }
    #portalContent .portal-account-card:after{
      content:""!important;
      position:absolute!important;
      right:-70px!important;
      top:-80px!important;
      width:190px!important;
      height:190px!important;
      border-radius:999px!important;
      background:rgba(152,23,43,.055)!important;
      pointer-events:none!important;
    }
    #portalContent .portal-contact-card{grid-column:span 5!important;}
    #portalContent .portal-card-head{
      display:flex!important;
      justify-content:space-between!important;
      align-items:flex-start!important;
      gap:18px!important;
      position:relative!important;
      z-index:1!important;
    }
    #portalContent .portal-status-badge{
      display:inline-flex!important;
      align-items:center!important;
      min-height:32px!important;
      padding:0 12px!important;
      border-radius:999px!important;
      background:#eef8f1!important;
      color:#166534!important;
      border:1px solid #ccebd5!important;
      font-size:.78rem!important;
      font-weight:950!important;
      white-space:nowrap!important;
    }
    #portalContent .portal-welcome{
      font-size:1.05rem!important;
      color:#111317!important;
      font-weight:800!important;
      margin-top:4px!important;
    }
    #portalContent .portal-detail-row{
      display:flex!important;
      align-items:center!important;
      justify-content:space-between!important;
      gap:18px!important;
      padding:13px 0!important;
      border-top:1px solid #eee6e4!important;
      font-size:.95rem!important;
    }
    #portalContent .portal-detail-row span{color:#687281!important;font-weight:750!important;}
    #portalContent .portal-detail-row strong{color:#111317!important;text-align:right!important;word-break:break-word!important;}
    #portalContent .portal-security-note{
      margin:14px 0 0!important;
      padding:13px 14px!important;
      border-radius:10px!important;
      background:#f8f7f5!important;
      border:1px solid #ece6e3!important;
      color:#596372!important;
      font-size:.92rem!important;
    }
    #portalContent .portal-card-actions{margin-top:18px!important;display:flex!important;gap:10px!important;}
    #portalContent .portal-card-actions .button{width:auto!important;min-width:150px!important;box-shadow:0 12px 28px rgba(152,23,43,.20)!important;}
    @media(max-width:760px){
      #portalContent .portal-account-card,
      #portalContent .portal-contact-card{grid-column:1!important;}
      #portalContent .portal-card-head{display:block!important;}
      #portalContent .portal-status-badge{margin-top:10px!important;}
      #portalContent .portal-detail-row{display:block!important;}
      #portalContent .portal-detail-row strong{display:block!important;text-align:left!important;margin-top:5px!important;}
    }

    /* OIB V13 — bezpieczna zmiana danych w portalu klienta */
    #portalContent .portal-contact-actions{margin-top:18px!important;}
    #portalContent .portal-secondary-button{
      background:#111317!important;
      color:#fff!important;
      border-color:#111317!important;
      min-width:150px!important;
      box-shadow:0 12px 28px rgba(17,19,24,.14)!important;
    }
    #portalContent .portal-change-panel{
      margin-top:18px!important;
      padding:18px!important;
      border-radius:12px!important;
      border:1px solid #eee3e1!important;
      background:#fffaf9!important;
    }
    #portalContent .portal-change-panel[hidden]{display:none!important;}
    #portalContent .portal-change-form{
      display:grid!important;
      grid-template-columns:1fr 1fr!important;
      gap:14px!important;
    }
    #portalContent .portal-change-form .field.full{grid-column:1/-1!important;}
    #portalContent .portal-change-form label{font-weight:850!important;color:#111317!important;font-size:.92rem!important;}
    #portalContent .portal-change-form input{
      width:100%!important;
      min-height:48px!important;
      border-radius:8px!important;
      border:1px solid #d8dce2!important;
      padding:0 13px!important;
      background:#fff!important;
      font-weight:700!important;
      box-sizing:border-box!important;
    }
    #portalContent .portal-change-form input:focus{
      outline:0!important;
      border-color:#98172b!important;
      box-shadow:0 0 0 4px rgba(152,23,43,.10)!important;
    }


    /* OIB V30 — spójniejszy portal klienta + mobile polish */
    .nav-actions{align-items:center!important;gap:12px!important;}
    .nav-actions > .button{min-height:52px!important;height:52px!important;padding:0 22px!important;border-radius:10px!important;}
    .portal-nav-link{
      min-height:52px!important;
      padding:0 16px!important;
      border-radius:10px!important;
      border:1px solid rgba(152,23,43,.18)!important;
      background:linear-gradient(180deg,#ffffff 0%,#fcf8f9 100%)!important;
      color:#98172b!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:10px!important;
      font-weight:900!important;
      box-shadow:0 10px 28px rgba(17,19,24,.06)!important;
    }
    .portal-nav-link:hover{background:#fff7f8!important;transform:translateY(-1px)!important;}
    .portal-nav-icon{
      width:32px!important;
      height:32px!important;
      padding:4px!important;
      border-radius:10px!important;
      background:#fff!important;
      border:1px solid #ecdadd!important;
      box-shadow:0 8px 16px rgba(143,23,39,.10)!important;
      object-fit:contain!important;
    }
    #portalSite .admin-header{
      background:linear-gradient(135deg,#ffffff 0%,#fff 58%,#f8eff1 100%)!important;
    }
    #portalSite .admin-header h1{
      line-height:.92!important;
    }
    #portalContent .portal-auth-layout{
      display:grid!important;
      grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)!important;
      gap:18px!important;
      align-items:stretch!important;
    }
    #portalContent .portal-auth-card{height:100%!important;}
    #portalContent .portal-auth-side{
      display:block!important;
    }
    #portalContent .portal-auth-info{
      height:100%!important;
      border:1px solid #e5dfdc!important;
      border-top:5px solid #98172b!important;
      border-radius:16px!important;
      background:linear-gradient(180deg,#ffffff 0%,#fcf7f8 100%)!important;
      box-shadow:0 28px 90px rgba(17,19,24,.08)!important;
      padding:26px!important;
    }
    #portalContent .portal-auth-info h2{
      margin:14px 0 10px!important;
      font-size:clamp(28px,3.4vw,40px)!important;
      line-height:1.02!important;
      letter-spacing:-.05em!important;
    }
    #portalContent .portal-auth-info > p{color:#5b6574!important;line-height:1.6!important;}
    #portalContent .portal-auth-points{
      display:grid!important;
      gap:12px!important;
      margin-top:18px!important;
    }
    #portalContent .portal-auth-points div{
      padding:14px 15px!important;
      border-radius:12px!important;
      border:1px solid #ede5e7!important;
      background:#fff!important;
    }
    #portalContent .portal-auth-points strong{
      display:block!important;
      color:#111317!important;
      font-size:.98rem!important;
      margin-bottom:4px!important;
    }
    #portalContent .portal-auth-points span{
      display:block!important;
      color:#66717f!important;
      font-size:.9rem!important;
      line-height:1.45!important;
    }
    #portalContent .portal-auth-note{
      margin-top:18px!important;
      padding:16px!important;
      border-radius:12px!important;
      background:#fff!important;
      border:1px solid #eadbdd!important;
    }
    #portalContent .portal-auth-note p{margin:8px 0 0!important;}
    #portalContent .portal-inline-actions{
      display:flex!important;
      align-items:center!important;
      gap:12px!important;
      flex-wrap:wrap!important;
    }
    #portalContent .portal-inline-actions p{margin:0!important;}
    #portalContent .portal-inline-actions .button{width:auto!important;min-width:180px!important;}
    #portalContent .portal-auth-tabs{
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }

    @media (max-width: 900px){
      #portalContent .portal-auth-layout{grid-template-columns:1fr!important;}
      #portalContent .portal-auth-side{order:-1!important;}
    }

    @media (max-width: 760px){
      .nav-actions{gap:8px!important;}
      .nav-actions > .button{min-height:46px!important;height:46px!important;padding:0 14px!important;font-size:.84rem!important;}
      .portal-nav-link{min-height:46px!important;padding:0 12px!important;}
      .portal-nav-link span:not(.sr-only){display:inline!important;font-size:.82rem!important;}
      #portalSite .admin-header .logo-copy{display:inline!important;}
      #portalContent .portal-auth-info{padding:22px!important;}
      #portalContent .portal-inline-actions{display:block!important;}
      #portalContent .portal-inline-actions .button,
      #portalContent .portal-inline-actions .text-button{width:100%!important;min-width:0!important;}
      #portalContent .portal-inline-actions p{margin-top:10px!important;}
    }



    /* OIB V35 — kolor przycisku Moje OIB sterowany z admina */
    .portal-nav-link.portal-tone-red{background:linear-gradient(180deg,#a0152d 0%,#8f1727 100%)!important;color:#fff!important;border-color:#8f1727!important;box-shadow:0 14px 32px rgba(152,23,43,.24)!important;}
    .portal-nav-link.portal-tone-red:hover{background:#8f1727!important;color:#fff!important;}
    .portal-nav-link.portal-tone-black{background:linear-gradient(180deg,#202226 0%,#111317 100%)!important;color:#fff!important;border-color:#111317!important;box-shadow:0 14px 32px rgba(17,19,24,.20)!important;}
    .portal-nav-link.portal-tone-black:hover{background:#111317!important;color:#fff!important;}
    .portal-nav-link.portal-tone-light{background:linear-gradient(180deg,#ffffff 0%,#fcf8f9 100%)!important;color:#98172b!important;border-color:rgba(152,23,43,.18)!important;}
    .portal-nav-link.portal-tone-red .portal-nav-icon,.portal-nav-link.portal-tone-black .portal-nav-icon{background:#fff!important;border-color:rgba(255,255,255,.55)!important;}

    @media (max-width: 620px){
      body{padding-bottom:68px!important;}
      .site-header{position:sticky!important;top:0!important;z-index:1200!important;background:rgba(255,255,255,.95)!important;backdrop-filter:saturate(140%) blur(12px)!important;}
      .site-header .container.nav-shell{gap:10px!important;min-height:72px!important;}
      .nav-actions > .button{padding:0 12px!important;font-size:.8rem!important;}
      .portal-nav-link{padding:0 10px!important;gap:8px!important;}
      .portal-nav-link span:not(.sr-only){display:none!important;}
      .portal-nav-icon{width:28px!important;height:28px!important;}
      .hero{min-height:580px!important;}
      .hero-content{padding-top:10px!important;padding-bottom:10px!important;}
      h1{font-size:2.35rem!important;line-height:.98!important;}
      .section{padding:54px 0!important;}
      .hero-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;}
      .hero-actions .button,.hero-actions .button.secondary,.hero-actions .text-button{width:100%!important;justify-content:center!important;}
      .service-card,.project-card,.project-grid.list-view .project-card,.privacy-box{border-radius:14px!important;}
      .project-content,.service-card{padding:18px!important;}
      .footer-grid{gap:18px!important;}
      .mobile-contact a{font-size:.76rem!important;padding:0 4px!important;}
      /* V33: skrót Konto usunięty z dolnego paska, bo Moje OIB jest w nagłówku. */
    }
    #portalContent .portal-code-box{
      grid-column:1/-1!important;
      display:none!important;
      padding-top:4px!important;
    }
    #portalContent .portal-code-box.visible{display:block!important;}
    #portalContent .portal-change-status{
      grid-column:1/-1!important;
      min-height:22px!important;
      color:#98172b!important;
      font-weight:850!important;
    }
    #portalContent .portal-change-buttons{
      grid-column:1/-1!important;
      display:flex!important;
      flex-wrap:wrap!important;
      gap:10px!important;
      align-items:center!important;
    }
    #portalContent .portal-change-buttons .button{width:auto!important;min-width:150px!important;}

    #portalContent .portal-verify-grid{
      grid-column:1/-1!important;
      display:grid!important;
      grid-template-columns:1fr 1fr!important;
      gap:10px!important;
    }
    #portalContent .portal-verify-option{
      border:1px solid #ead7dc!important;
      background:#fff!important;
      border-radius:12px!important;
      padding:12px!important;
      cursor:pointer!important;
      display:flex!important;
      gap:10px!important;
      align-items:flex-start!important;
      min-height:82px!important;
    }
    #portalContent .portal-verify-option input{width:auto!important;min-height:auto!important;margin-top:3px!important;box-shadow:none!important;}
    #portalContent .portal-verify-option strong{display:block!important;color:#111317!important;font-size:.96rem!important;}
    #portalContent .portal-verify-option span{display:block!important;color:#66717f!important;font-size:.82rem!important;line-height:1.35!important;margin-top:3px!important;}
    #portalContent .portal-verify-option.active{border-color:#98172b!important;box-shadow:0 10px 26px rgba(152,23,43,.09)!important;background:#fff7f8!important;}
    #portalContent .portal-password-box,
    #portalContent .portal-code-box{grid-column:1/-1!important;padding:12px!important;border:1px solid #ead7dc!important;border-radius:12px!important;background:#fff!important;}
    #portalContent .portal-password-box[hidden],
    #portalContent .portal-code-box[hidden]{display:none!important;}
    #portalContent .portal-code-box{display:block!important;}

    @media(max-width:760px){#portalContent .portal-change-form{grid-template-columns:1fr!important;}#portalContent .portal-verify-grid{grid-template-columns:1fr!important;}}


/* quote/form components */
body[data-public-page="wycena"] #kontakt .container {
  max-width: 1240px;
}

body[data-public-page="wycena"] #kontakt .contact-layout {
  max-width: 1180px;
}

body[data-public-page="wycena"] #contactForm {
  padding: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 6px solid var(--red);
  box-shadow: 0 22px 60px rgba(16, 24, 32, .08);
}

body[data-public-page="wycena"] #contactForm .quote-pro-progress {
  margin-top: 0;
}

body[data-public-page="wycena"] .quote-pro-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
  gap: 0;
  border-bottom: 1px solid var(--line);
}

body[data-public-page="wycena"] .quote-pro-hero {
  margin: 0;
  padding: 34px 36px;
  border: 0;
  border-left: 0;
  background: #fff;
}

body[data-public-page="wycena"] .quote-pro-hero h3 {
  max-width: 720px;
  font-size: clamp(2rem, 4vw, 3.35rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}

body[data-public-page="wycena"] .quote-pro-hero p {
  max-width: 760px;
  font-size: 1.02rem;
}

body[data-public-page="wycena"] .quote-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

body[data-public-page="wycena"] .quote-benefits span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid #ead0d5;
  background: #fff9fa;
  color: var(--red);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

body[data-public-page="wycena"] .quote-pro-summary {
  padding: 34px 30px;
  background: #f7f8f8;
  border-left: 1px solid var(--line);
}

body[data-public-page="wycena"] .quote-pro-summary strong {
  display: block;
  font-size: 1.2rem;
  line-height: 1.25;
  margin-bottom: 16px;
}

body[data-public-page="wycena"] .quote-pro-summary ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

body[data-public-page="wycena"] .quote-pro-summary li {
  padding: 10px 0;
  border-bottom: 1px solid #e2e5e7;
  color: #3f464b;
  font-size: .92rem;
}

body[data-public-page="wycena"] .quote-pro-note {
  margin: 18px 0 0;
  padding-left: 14px;
  border-left: 3px solid var(--red);
  color: var(--muted);
  font-size: .85rem;
}

body[data-public-page="wycena"] .quote-pro-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  border-bottom: 1px solid var(--line);
}

body[data-public-page="wycena"] .quote-pro-progress span {
  display: block;
  padding: 16px 12px;
  border-right: 1px solid var(--line);
  color: #697077;
  font-size: .78rem;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .04em;
}

body[data-public-page="wycena"] .quote-pro-progress span.active {
  color: var(--white);
  background: var(--red);
}

body[data-public-page="wycena"] .quote-pro-grid {
  padding: 34px 36px 28px;
  background:
    linear-gradient(180deg, rgba(248,249,250,.72), rgba(255,255,255,0) 180px),
    #fff;
}

body[data-public-page="wycena"] .quote-step {
  gap: 20px;
}

body[data-public-page="wycena"] .quote-step h3 {
  margin-bottom: 2px;
  font-size: 1.65rem;
  letter-spacing: -.02em;
}

body[data-public-page="wycena"] .quote-step > p {
  max-width: 780px;
  margin-bottom: 4px;
  color: var(--muted);
}

body[data-public-page="wycena"] #contactForm .field {
  align-content: start;
}

body[data-public-page="wycena"] #contactForm input:not([type="checkbox"]):not([type="file"]),
body[data-public-page="wycena"] #contactForm select,
body[data-public-page="wycena"] #contactForm textarea {
  min-height: 48px;
  border-color: #cfd6dc;
  background: #fff;
}

body[data-public-page="wycena"] #contactForm input:not([type="checkbox"]):not([type="file"]):focus,
body[data-public-page="wycena"] #contactForm select:focus,
body[data-public-page="wycena"] #contactForm textarea:focus {
  border-color: var(--red);
  box-shadow: 0 0 0 4px rgba(151, 27, 47, .12);
}

.quote-service-grid,
body[data-public-page="wycena"] .quote-service-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 12px;
}

.quote-service-grid label,
.quote-service-grid label.consent,
body[data-public-page="wycena"] .quote-service-grid label {
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  min-height: 106px;
  padding: 17px;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  line-height: 1.42;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}

body[data-public-page="wycena"] .quote-service-grid label:hover,
.quote-service-grid label:hover {
  border-color: #c98d96;
  box-shadow: 0 12px 28px rgba(16, 24, 32, .08);
  transform: translateY(-1px);
}

.quote-service-grid label:has(input:checked),
body[data-public-page="wycena"] .quote-service-grid label:has(input:checked) {
  border-color: var(--red);
  background: #fff8f9;
  box-shadow: inset 4px 0 0 var(--red), 0 10px 24px rgba(140,29,44,.08);
}

.quote-service-grid input,
body[data-public-page="wycena"] .quote-service-grid input {
  width: 18px;
  min-width: 18px;
  height: 18px;
  padding: 0;
  margin-top: 3px;
  accent-color: var(--red);
}

.quote-service-grid span {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.quote-service-grid strong,
body[data-public-page="wycena"] .quote-service-grid strong {
  display: block;
  line-height: 1.25;
}

.quote-service-grid small,
body[data-public-page="wycena"] .quote-service-grid small {
  display: block;
  color: var(--muted);
  line-height: 1.45;
}

.quote-risk-grid,
body[data-public-page="wycena"] .quote-risk-grid {
  grid-template-columns: repeat(3, minmax(190px, 1fr));
}

.quote-risk-grid label,
.quote-risk-grid label.consent,
body[data-public-page="wycena"] .quote-risk-grid label {
  min-height: 82px;
  padding: 13px;
}

body[data-public-page="wycena"] .quote-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

body[data-public-page="wycena"] .quote-actions-end {
  margin-left: auto;
  display: flex;
  gap: 10px;
}

body[data-public-page="wycena"] .form-status {
  min-height: 24px;
  font-weight: 800;
  color: var(--red);
}

.service-card-head {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.service-card .tag {
  min-width: 0;
  max-width: calc(100% - 48px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.service-card-number {
  flex: 0 0 auto;
  position: static !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  min-width: 36px;
  color: #8b9296 !important;
}

@media (max-width: 900px) {
  body[data-public-page="wycena"] .quote-pro-shell {
    grid-template-columns: 1fr;
  }

  body[data-public-page="wycena"] .quote-pro-summary {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  body[data-public-page="wycena"] .quote-pro-progress {
    grid-template-columns: 1fr;
  }

  body[data-public-page="wycena"] .quote-pro-progress span {
    text-align: left;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .quote-service-grid,
  .quote-risk-grid,
  body[data-public-page="wycena"] .quote-service-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  body[data-public-page="wycena"] #kontakt .container {
    padding-inline: 14px;
  }

  body[data-public-page="wycena"] #contactForm {
    border-left: 1px solid var(--line);
    border-right: 1px solid var(--line);
  }

  body[data-public-page="wycena"] .quote-pro-hero,
  body[data-public-page="wycena"] .quote-pro-summary,
  body[data-public-page="wycena"] .quote-pro-grid {
    padding: 22px 18px;
  }

  body[data-public-page="wycena"] .quote-pro-hero h3 {
    font-size: 2rem;
  }

  body[data-public-page="wycena"] .quote-actions {
    align-items: stretch;
    flex-direction: column;
  }

  body[data-public-page="wycena"] .quote-actions-end,
  body[data-public-page="wycena"] .quote-actions button {
    width: 100%;
  }
}

/* final tools */
/* OIB Urbanek - hosting fixes v10 */
:root {
  --oib-red: #8c1d2c;
  --oib-red-dark: #65121d;
  --oib-ink: #17191b;
  --oib-muted: #62686e;
  --oib-line: #dfe2e4;
  --oib-soft: #f5f6f6;
}

.hero {
  background: var(--white) !important;
}

.hero::before,
.hero::after {
  display: block;
}

.hero .container,
.hero-content {
  position: relative !important;
  z-index: 1 !important;
}

.eyebrow::before,
.section-kicker::before {
  width: 46px !important;
  height: 2px !important;
  border-radius: 0 !important;
  background: var(--oib-red) !important;
}

.site-logo,
.footer-logo {
  min-width: 188px;
}

.service-card {
  position: relative;
  overflow: hidden;
}

.service-card-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 34px !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 !important;
  margin: 0 0 10px !important;
  min-width: 0 !important;
}

.service-card-head .tag,
.service-card .service-card-head .tag {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  padding-right: 10px !important;
}

.service-card-number,
.service-card .service-card-number {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  color: #9aa0a6 !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-align: right !important;
  transform: none !important;
}

.project-visual-placeholder {
  min-height: 190px;
  display: grid;
  place-items: center;
  color: #8d949a;
  background:
    linear-gradient(135deg, rgba(140,29,44,.08), rgba(23,25,27,.02)),
    repeating-linear-gradient(90deg, rgba(23,25,27,.06) 0 1px, transparent 1px 34px);
}

#map {
  min-height: 420px !important;
  border: 1px solid var(--oib-line);
  background: #eef0f1;
}

.oib-calendar-priority {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin: 24px 0;
  padding: 22px;
  border-top: 4px solid var(--oib-red);
  background: #fff;
  box-shadow: 0 18px 45px rgba(23,25,27,.08);
}

.article-grid .service-card p {
  color: #4f565c;
  line-height: 1.62;
}

.oib-404-section {
  min-height: 62vh;
  display: grid;
  align-items: center;
  background:
    radial-gradient(circle at 82% 24%, rgba(140,29,44,.08), transparent 28%),
    linear-gradient(180deg, #fff, #f5f6f6);
}

.oib-404-card {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 430px;
  background: #fff;
  border: 1px solid var(--oib-line);
  border-top: 5px solid var(--oib-red);
  box-shadow: 0 28px 80px rgba(20,22,24,.11);
}

.oib-404-card > div:first-child {
  padding: clamp(28px, 5vw, 58px);
}

.oib-404-visual {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border-left: 1px solid var(--oib-line);
  background:
    repeating-linear-gradient(0deg, rgba(23,25,27,.05) 0 1px, transparent 1px 44px),
    repeating-linear-gradient(90deg, rgba(23,25,27,.05) 0 1px, transparent 1px 44px),
    linear-gradient(135deg, #fff, #f0f2f2);
}

.oib-404-visual::before {
  content: "";
  position: absolute;
  right: 12%;
  top: 18%;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(140,29,44,.22);
  border-radius: 50%;
  box-shadow: -80px 70px 0 -78px var(--oib-red), -120px 36px 0 -118px #17191b;
}

.oib-404-visual span {
  position: absolute;
  right: -18px;
  bottom: 18px;
  font-size: clamp(110px, 16vw, 210px);
  line-height: .8;
  font-weight: 950;
  letter-spacing: -.08em;
  color: rgba(140,29,44,.10);
}

.oib-404-note {
  margin-top: 22px;
  padding: 14px 16px;
  border-left: 4px solid var(--oib-red);
  background: #fff7f8;
  color: #33383d;
}

.oib-calendar-priority strong {
  display: block;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.05;
  margin: 4px 0 8px;
}

.oib-calendar-priority span {
  color: var(--oib-red);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.oib-calendar-priority p {
  margin: 0;
  color: var(--oib-muted);
  max-width: 760px;
}

.oib-tech-note {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
  color: #4e555a;
  font-size: 13px;
}

.oib-tech-note a {
  color: var(--oib-red);
  font-weight: 800;
}

@media (max-width: 980px) {
  html,
  body {
    overflow-x: hidden;
  }

  .container {
    width: min(calc(100% - 28px), var(--max)) !important;
  }

  .topbar {
    display: none !important;
  }

  .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
  }

  .nav-shell {
    min-height: 68px !important;
    padding-block: 8px !important;
  }

  .logo {
    min-width: 0 !important;
  }

  .site-logo,
  .footer-logo {
    min-width: 0 !important;
  }

  .logo-mark {
    font-size: 26px !important;
  }

  .logo-copy {
    display: none !important;
  }

  .nav-actions {
    margin-left: auto !important;
    gap: 8px !important;
  }

  .nav-actions > .button {
    min-height: 42px !important;
    padding: 9px 12px !important;
    font-size: .82rem !important;
    white-space: nowrap !important;
  }

  .menu-button {
    display: grid !important;
    order: 3 !important;
  }

  .main-nav {
    position: absolute !important;
    top: calc(100% + 1px) !important;
    left: 14px !important;
    right: 14px !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 8px !important;
    background: #fff !important;
    border: 1px solid var(--oib-line) !important;
    box-shadow: 0 18px 45px rgba(20,22,24,.14) !important;
  }

  .site-header.menu-open .main-nav {
    display: flex !important;
  }

  .main-nav a {
    padding: 13px 14px !important;
    border-bottom: 1px solid var(--oib-line) !important;
  }

  .main-nav a:last-child {
    border-bottom: 0 !important;
  }

  .hero {
    min-height: auto !important;
    padding: 62px 0 46px !important;
    background: var(--white) !important;
  }

  .hero-content {
    max-width: 680px !important;
  }

  .hero h1 {
    max-width: 11ch !important;
    font-size: clamp(40px, 10vw, 58px) !important;
    line-height: .98 !important;
  }

  .hero-text {
    max-width: 56ch !important;
    font-size: 1rem !important;
  }

  .hero-actions,
  .signature-actions,
  .oib-calendar-priority {
    grid-template-columns: 1fr !important;
  }

  .toolbar {
    grid-template-columns: 1fr !important;
  }

  #map {
    min-height: 330px !important;
  }

}

@media (max-width: 760px) {
  .hero {
    padding: 48px 0 38px !important;
    background:#fff !important;
  }

  .hero h1 {
    font-size: clamp(36px, 10.8vw, 48px) !important;
    letter-spacing: -0.04em !important;
  }

  .hero-proof {
    display: grid !important;
    gap: 8px !important;
    margin-top: 24px !important;
    padding-top: 16px !important;
  }

  .hero-proof span {
    font-size: .78rem !important;
  }

  .trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .trust-item {
    padding: 18px 14px !important;
    min-width: 0 !important;
  }

  .trust-item strong {
    font-size: .94rem !important;
  }

  .trust-item span {
    font-size: .78rem !important;
  }

  .section {
    padding: 56px 0 !important;
  }

  .section-title {
    font-size: clamp(30px, 8vw, 40px) !important;
    line-height: 1.08 !important;
  }

  .process-grid,
  .service-grid,
  .project-grid,
  .audience-grid,
  .home-proof-grid,
  .footer-grid {
    grid-template-columns: 1fr !important;
  }

  .process-card,
  .service-card {
    min-height: auto !important;
  }
}

@media (max-width: 430px) {
  .container {
    width: min(calc(100% - 24px), var(--max)) !important;
  }

  .nav-shell {
    gap: 8px !important;
  }

  .nav-actions > .button {
    padding: 8px 10px !important;
    font-size: .76rem !important;
  }

  .hero h1 {
    font-size: clamp(34px, 10vw, 42px) !important;
  }

  .hero-text {
    font-size: .95rem !important;
  }

  .trust-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (hover: none) and (pointer: coarse) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .container {
    width: min(calc(100% - 26px), var(--max)) !important;
  }

  .topbar {
    display: none !important;
  }

  .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
  }

  .nav-shell {
    min-height: 64px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding-block: 8px !important;
  }

  .logo {
    min-width: 0 !important;
  }

  .logo-mark {
    font-size: 24px !important;
    line-height: 1 !important;
  }

  .logo-copy {
    display: none !important;
  }

  .nav-actions {
    margin-left: auto !important;
    gap: 8px !important;
  }

  .nav-actions > .button {
    min-height: 40px !important;
    padding: 8px 11px !important;
    font-size: .76rem !important;
    white-space: nowrap !important;
  }

  .menu-button {
    display: grid !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    order: 3 !important;
  }

  .main-nav {
    position: absolute !important;
    top: calc(100% + 1px) !important;
    left: 13px !important;
    right: 13px !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 8px !important;
    background: #fff !important;
    border: 1px solid var(--oib-line) !important;
    box-shadow: 0 18px 45px rgba(20,22,24,.16) !important;
  }

  .site-header.menu-open .main-nav {
    display: flex !important;
  }

  .main-nav a {
    padding: 13px 14px !important;
    border-bottom: 1px solid var(--oib-line) !important;
    font-size: .96rem !important;
  }

  .hero {
    min-height: auto !important;
    padding: 46px 0 38px !important;
    background:#fff !important;
  }

  .hero-content {
    max-width: 100% !important;
  }

  .hero h1 {
    max-width: 10.5ch !important;
    font-size: clamp(34px, 9.6vw, 46px) !important;
    line-height: .98 !important;
    letter-spacing: -0.045em !important;
  }

  .hero-text {
    max-width: 37ch !important;
    font-size: .96rem !important;
    line-height: 1.5 !important;
  }

  .hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
  }

  .hero-actions .button {
    min-height: 42px !important;
    padding: 10px 13px !important;
    font-size: .86rem !important;
  }

  .hero-proof {
    display: grid !important;
    gap: 7px !important;
    margin-top: 22px !important;
    padding-top: 15px !important;
  }

  .hero-proof span {
    font-size: .76rem !important;
  }

  .trust-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .trust-item {
    min-width: 0 !important;
    padding: 18px 14px !important;
  }

  .section {
    padding: 54px 0 !important;
  }

  .section-title {
    font-size: clamp(29px, 7.8vw, 39px) !important;
    line-height: 1.08 !important;
  }

  .process-grid,
  .service-grid,
  .project-grid,
  .audience-grid,
  .home-proof-grid,
  .footer-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .process-card,
  .service-card {
    min-height: auto !important;
  }

  .toolbar,
  .detail-columns,
  .gallery-grid,
  .form-grid,
  .contact-layout,
  .about-layout {
    grid-template-columns: 1fr !important;
  }
}

/* V16: real mobile layout after viewport fix. Keep this at the end. */
@media (max-width: 760px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .topbar {
    display: none !important;
  }

  .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
  }

  .container {
    width: min(calc(100% - 24px), var(--max)) !important;
  }

  .nav-shell {
    min-height: 58px !important;
    padding-block: 7px !important;
    gap: 8px !important;
  }

  .logo-copy {
    display: none !important;
  }

  .logo-mark {
    font-size: 24px !important;
    letter-spacing: -0.04em !important;
  }

  .nav-actions {
    margin-left: auto !important;
    gap: 8px !important;
  }

  .nav-actions > .button {
    min-height: 38px !important;
    padding: 8px 11px !important;
    font-size: .74rem !important;
    white-space: nowrap !important;
  }

  .menu-button {
    display: grid !important;
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 40px !important;
    order: 3 !important;
  }

  .main-nav {
    position: absolute !important;
    top: calc(100% + 1px) !important;
    left: 12px !important;
    right: 12px !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 8px !important;
    background: #fff !important;
    border: 1px solid var(--oib-line) !important;
    box-shadow: 0 18px 45px rgba(20,22,24,.16) !important;
  }

  .site-header.menu-open .main-nav {
    display: flex !important;
  }

  .main-nav a {
    padding: 13px 14px !important;
    border-bottom: 1px solid var(--oib-line) !important;
    font-size: .95rem !important;
  }

  .hero {
    min-height: auto !important;
    padding: 42px 0 34px !important;
    background:#fff !important;
  }

  .hero-content {
    max-width: 100% !important;
  }

  .eyebrow {
    font-size: .7rem !important;
    line-height: 1.25 !important;
    letter-spacing: .12em !important;
  }

  .eyebrow::before {
    width: 32px !important;
  }

  .hero h1 {
    max-width: 10.3ch !important;
    margin-top: 22px !important;
    font-size: clamp(36px, 12vw, 48px) !important;
    line-height: .98 !important;
    letter-spacing: -0.045em !important;
  }

  .hero-text {
    max-width: 35ch !important;
    font-size: .96rem !important;
    line-height: 1.5 !important;
  }

  .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    max-width: 100% !important;
  }

  .hero-actions .button {
    min-height: 42px !important;
    justify-content: center !important;
    padding: 10px 11px !important;
    font-size: .82rem !important;
  }

  .hero-proof {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    margin-top: 20px !important;
    padding-top: 14px !important;
  }

  .hero-proof span {
    font-size: .76rem !important;
    line-height: 1.35 !important;
  }

  .trust-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .trust-item {
    min-width: 0 !important;
    padding: 16px 12px !important;
  }

  .trust-item strong {
    font-size: .9rem !important;
  }

  .trust-item span {
    font-size: .76rem !important;
    line-height: 1.35 !important;
  }

  .section {
    padding: 50px 0 !important;
  }

  .section-title {
    font-size: clamp(29px, 8.5vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.03em !important;
  }

  .process-grid,
  .service-grid,
  .project-grid,
  .audience-grid,
  .home-proof-grid,
  .form-grid,
  .footer-grid,
  .contact-layout,
  .about-layout,
  .toolbar,
  .detail-columns,
  .gallery-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .process-step,
  .process-card,
  .service-card {
    min-height: auto !important;
  }
}

@media (max-width: 430px) {
  .hero-actions {
    grid-template-columns: 1fr !important;
  }

  .trust-grid {
    grid-template-columns: 1fr !important;
  }
}

/* V17: contact bar, 404 and calendar polish. Keep last. */
@media (max-width: 760px) {
  body {
    padding-bottom: 68px !important;
  }

  .mobile-contact {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    box-shadow: 0 -14px 34px rgba(20,22,24,.12) !important;
  }

  .mobile-contact a {
    min-height: 60px !important;
    padding: 8px 5px !important;
    font-size: .74rem !important;
    line-height: 1.15 !important;
    text-align: center !important;
  }

  .mobile-contact a:nth-child(3) {
    color: var(--oib-red) !important;
    background: #fff7f8 !important;
  }

  .mobile-contact a:last-child {
    color: #fff !important;
    background: var(--oib-red) !important;
  }

  .booking-shell {
    padding: 16px !important;
  }

  .oib-calendar-priority {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin: 18px 0 !important;
    padding: 18px !important;
  }

  .oib-calendar-priority strong {
    font-size: 1.35rem !important;
    line-height: 1.12 !important;
  }

  .booking-picker {
    grid-template-columns: 1fr !important;
    padding: 14px !important;
  }

  .booking-times {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .oib-404-card {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }

  .oib-404-card > div:first-child {
    padding: 28px 20px !important;
  }

  .oib-404-visual {
    min-height: 190px !important;
    border-left: 0 !important;
    border-top: 1px solid var(--oib-line) !important;
  }

  .oib-404-note {
    font-size: .9rem !important;
  }
}

.service-card-head {
  position: relative !important;
}

.service-card-head .tag {
  min-height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

.service-card-number,
.service-card .service-card-number {
  position: relative !important;
  right: auto !important;
  top: auto !important;
  z-index: 2 !important;
  padding-left: 4px !important;
  background: #fff !important;
}

/* OIB V15: menu w jednej linii + brak łamania „O firmie” / „Realizacje i mapa” */
.nav-shell{flex-wrap:nowrap!important;gap:16px!important;}
.logo,.main-nav,.nav-actions{flex-shrink:0!important;}
.main-nav{flex-wrap:nowrap!important;white-space:nowrap!important;gap:4px!important;}
.main-nav a,.nav-actions a,.nav-actions .button,.portal-nav-link,.portal-nav-link span{white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;}
.main-nav a{flex:0 0 auto!important;padding-left:9px!important;padding-right:9px!important;}
.nav-actions{display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:10px!important;margin-left:auto!important;}
.nav-actions>.button,.portal-nav-link{flex:0 0 auto!important;}
@media (max-width:1180px){
  .nav-shell{position:relative!important;flex-wrap:nowrap!important;}
  .main-nav{position:absolute!important;top:calc(100% + 1px)!important;left:0!important;right:0!important;display:none!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:8px!important;overflow:visible!important;background:#fff!important;border:1px solid var(--line,var(--oib-line,#dfe2e4))!important;box-shadow:0 18px 45px rgba(20,22,24,.14)!important;white-space:normal!important;}
  .site-header.menu-open .main-nav{display:flex!important;}
  .main-nav a{padding:12px 14px!important;border-bottom:1px solid var(--line,var(--oib-line,#dfe2e4))!important;white-space:nowrap!important;}
  .main-nav a:last-child{border-bottom:0!important;}
  .main-nav a.active{box-shadow:inset 3px 0 0 var(--red,var(--oib-red,#8c1d2c))!important;}
  .menu-button{display:grid!important;order:3!important;flex:0 0 46px!important;}
}

/* OIB V15b: więcej miejsca dla desktopowego nagłówka, bez łamania tekstów */
@media (min-width:1181px){
  .site-header .container.nav-shell{width:min(calc(100% - 40px),1260px)!important;}
  .logo-copy{max-width:155px!important;font-size:.64rem!important;line-height:1.18!important;letter-spacing:.07em!important;}
  .main-nav a{font-size:.95rem!important;padding-left:8px!important;padding-right:8px!important;}
  .nav-actions>.button{padding-left:20px!important;padding-right:20px!important;}
  .portal-nav-link{padding-left:10px!important;padding-right:10px!important;gap:8px!important;}
}

/* layout fixes consolidated */
/* Warstwa naprawcza dla wdrozenia oiburbanek.com.
   Nie zmienia danych strony, tylko stabilizuje uklad i responsywnosc. */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
}

a,
button,
input,
select,
textarea {
  font: inherit;
}

button,
.button,
.text-button,
[type="button"],
[type="submit"],
[role="button"] {
  max-width: 100%;
  min-height: 42px;
  line-height: 1.2;
  white-space: normal;
}

.hero-actions,
.form-actions,
.quote-actions,
.contact-tools,
.admin-actions,
.card-actions,
.service-actions,
.offer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.hero-actions > *,
.form-actions > *,
.quote-actions > *,
.contact-tools > *,
.admin-actions > *,
.card-actions > *,
.service-actions > *,
.offer-actions > * {
  flex: 0 1 auto;
}

.container,
.section,
.hero,
.hero-inner,
.nav-inner,
.topbar,
.grid,
.cards,
.service-grid,
.project-grid,
.contact-grid,
.quote-grid,
.filters,
.card,
.service-card,
.offer-card,
.project-card {
  min-width: 0;
}

.card,
.service-card,
.offer-card,
.project-card,
[class*="card"] {
  position: relative;
}

.service-number,
.offer-number,
.card-number,
.item-number,
[class*="number"] {
  max-width: 48px;
  overflow: hidden;
  text-align: right;
  white-space: nowrap;
}

.service-card .service-number,
.offer-card .offer-number,
.card .card-number,
.project-card .card-number {
  right: 14px;
  top: 12px;
}

.service-card [class*="number"],
.offer-card [class*="number"],
.card [class*="number"] {
  z-index: 1;
}

.service-card h3,
.offer-card h3,
.card h3 {
  padding-right: 42px;
}

.map-panel,
.map-placeholder,
#map,
#realizationsMap,
[data-map] {
  min-height: 360px;
}

.visually-safe-break {
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .container {
    width: min(100% - 32px, 1180px);
  }

  .topbar,
  .topbar .container {
    gap: 8px;
    justify-content: center;
    text-align: center;
  }

  .nav-inner {
    min-height: 64px;
    padding: 10px 16px;
  }

  .menu,
  .site-menu,
  nav ul {
    gap: 8px;
  }

  .hero {
    min-height: auto;
    padding-top: 72px;
    padding-bottom: 48px;
    background-position: 74% top;
    background-size: auto 100%;
  }

  .hero h1,
  .hero-title {
    font-size: clamp(40px, 12vw, 64px);
    line-height: .98;
    letter-spacing: 0;
  }

  .hero p,
  .lead {
    font-size: 16px;
    line-height: 1.55;
  }

  .hero-actions > * {
    flex: 1 1 180px;
  }

  .quick-grid,
  .service-strip,
  .feature-strip,
  .stats-grid,
  .areas-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid,
  .cards,
  .project-grid,
  .service-grid,
  .contact-grid,
  .quote-grid,
  .filters {
    grid-template-columns: 1fr !important;
  }

  .section {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}

@media (max-width: 520px) {
  .container {
    width: min(100% - 24px, 1180px);
  }

  .topbar {
    font-size: 11px;
  }

  .brand,
  .logo {
    max-width: 180px;
  }

  .hero {
    padding-top: 56px;
    padding-bottom: 38px;
    background-position: 86% top;
    background-size: auto 100%;
  }

  .hero h1,
  .hero-title {
    font-size: clamp(36px, 13vw, 52px);
  }

  .hero-actions > * {
    flex: 1 1 100%;
  }

  .quick-grid,
  .service-strip,
  .feature-strip,
  .stats-grid,
  .areas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .card,
  .service-card,
  .offer-card,
  .project-card {
    padding-left: 18px;
    padding-right: 18px;
  }

  .service-card h3,
  .offer-card h3,
  .card h3 {
    padding-right: 34px;
  }

  .map-panel,
  .map-placeholder,
  #map,
  #realizationsMap,
  [data-map] {
    min-height: 300px;
  }
}

/* OIB V15: menu w jednej linii + brak łamania „O firmie” / „Realizacje i mapa” */
.nav-shell{flex-wrap:nowrap!important;gap:16px!important;}
.logo,.main-nav,.nav-actions{flex-shrink:0!important;}
.main-nav{flex-wrap:nowrap!important;white-space:nowrap!important;gap:4px!important;}
.main-nav a,.nav-actions a,.nav-actions .button,.portal-nav-link,.portal-nav-link span{white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;}
.main-nav a{flex:0 0 auto!important;padding-left:9px!important;padding-right:9px!important;}
.nav-actions{display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:10px!important;margin-left:auto!important;}
.nav-actions>.button,.portal-nav-link{flex:0 0 auto!important;}
@media (max-width:1180px){
  .nav-shell{position:relative!important;flex-wrap:nowrap!important;}
  .main-nav{position:absolute!important;top:calc(100% + 1px)!important;left:0!important;right:0!important;display:none!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:8px!important;overflow:visible!important;background:#fff!important;border:1px solid var(--line,var(--oib-line,#dfe2e4))!important;box-shadow:0 18px 45px rgba(20,22,24,.14)!important;white-space:normal!important;}
  .site-header.menu-open .main-nav{display:flex!important;}
  .main-nav a{padding:12px 14px!important;border-bottom:1px solid var(--line,var(--oib-line,#dfe2e4))!important;white-space:nowrap!important;}
  .main-nav a:last-child{border-bottom:0!important;}
  .main-nav a.active{box-shadow:inset 3px 0 0 var(--red,var(--oib-red,#8c1d2c))!important;}
  .menu-button{display:grid!important;order:3!important;flex:0 0 46px!important;}
}

/* OIB V15b: więcej miejsca dla desktopowego nagłówka, bez łamania tekstów */
@media (min-width:1181px){
  .site-header .container.nav-shell{width:min(calc(100% - 40px),1260px)!important;}
  .logo-copy{max-width:155px!important;font-size:.64rem!important;line-height:1.18!important;letter-spacing:.07em!important;}
  .main-nav a{font-size:.95rem!important;padding-left:8px!important;padding-right:8px!important;}
  .nav-actions>.button{padding-left:20px!important;padding-right:20px!important;}
  .portal-nav-link{padding-left:10px!important;padding-right:10px!important;gap:8px!important;}
}

/* mobile consolidated */
/* OIB Mobile V45 — finalne wyrównanie, neutralne tła, pełne zdjęcia realizacji i stabilny dolny panel */
@media (max-width: 760px) {
  :root { --oib-mobile-gutter: 20px; --oib-mobile-page-bg: #f8f9fb; --oib-mobile-card-bg: #ffffff; }

  html {
    width: 100%;
    overflow-x: clip !important;
    background: var(--oib-mobile-page-bg) !important;
    color-scheme: light;
  }

  body,
  #publicSite,
  #publicSite #main {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
    background: var(--oib-mobile-page-bg) !important;
  }

  body {
    padding-bottom: 116px !important;
  }

  #publicSite .container {
    width: calc(100% - (2 * var(--oib-mobile-gutter))) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  /* Nagłówek i hero mają dokładnie tę samą oś wyrównania. */
  #publicSite .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1200 !important;
    background: rgba(255,255,255,.96) !important;
    border-bottom: 1px solid rgba(20,22,24,.07) !important;
    box-shadow: 0 8px 26px rgba(20,22,24,.055) !important;
    backdrop-filter: saturate(140%) blur(14px) !important;
  }

  #publicSite .site-header .container.nav-shell {
    width: 100% !important;
    min-height: 76px !important;
    padding: 10px var(--oib-mobile-gutter) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
  }

  #publicSite .logo {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  #publicSite .logo-mark {
    font-size: 1.8rem !important;
    line-height: 1 !important;
  }

  #publicSite .nav-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    margin-left: auto !important;
  }

  #publicSite .portal-nav-link,
  #publicSite .menu-button {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 !important;
    border-radius: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #publicSite .portal-nav-link {
    box-shadow: 0 10px 24px rgba(140,29,44,.16) !important;
  }

  #publicSite .portal-nav-icon {
    width: 34px !important;
    height: 34px !important;
    display: block !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
  }

  #publicSite .menu-button {
    flex: 0 0 48px !important;
    background: #98172b !important;
    border: 1px solid #98172b !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(140,29,44,.20) !important;
  }

  #publicSite .main-nav {
    left: var(--oib-mobile-gutter) !important;
    right: var(--oib-mobile-gutter) !important;
    top: calc(100% + 8px) !important;
  }

  /* Jasny hero: grafika nadal jest sterowana z admina, ale nie robi czarnej planszy. */
  #publicSite .hero {
    min-height: 0 !important;
    padding: 0 !important;
    background: #f8f9fb !important;
    border: 0 !important;
    overflow: hidden !important;
  }

  #publicSite .hero::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    animation: none !important;
    background:
      linear-gradient(90deg, rgba(248,249,251,.985) 0%, rgba(248,249,251,.95) 48%, rgba(248,249,251,.72) 100%),
      linear-gradient(180deg, rgba(255,255,255,.2), rgba(255,255,255,.52)),
      var(--oib-mobile-bg, var(--oib-hero-custom-bg)) var(--oib-mobile-hero-position, center) center / cover no-repeat,
      url('/assets/brand/hero-v138.webp') center / cover no-repeat !important;
    filter: none !important;
  }

  #publicSite .hero::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
    background:
      radial-gradient(circle at 92% 16%, rgba(140,29,44,.12), transparent 33%),
      linear-gradient(180deg, transparent 72%, rgba(248,249,251,.42) 100%) !important;
  }

  #publicSite .hero .container {
    width: 100% !important;
    padding-inline: var(--oib-mobile-gutter) !important;
  }

  #publicSite .hero-content {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: none !important;
    padding: 48px 0 42px !important;
    color: #17191b !important;
  }

  #publicSite .hero .eyebrow {
    margin: 0 0 18px !important;
    color: #7f2633 !important;
    font-size: .72rem !important;
    line-height: 1.35 !important;
    letter-spacing: .14em !important;
    text-shadow: none !important;
  }

  #publicSite .hero h1 {
    max-width: 10ch !important;
    margin: 0 !important;
    color: #17191b !important;
    font-size: clamp(2.72rem, 12vw, 3.25rem) !important;
    line-height: .95 !important;
    letter-spacing: -.058em !important;
    text-wrap: balance;
    text-shadow: none !important;
  }

  #publicSite .hero-text {
    max-width: 31ch !important;
    margin: 22px 0 26px !important;
    color: #51575d !important;
    font-size: 1.04rem !important;
    line-height: 1.58 !important;
  }

  #publicSite .hero-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  #publicSite .hero-actions .button,
  #publicSite .hero-actions .button.secondary {
    width: 100% !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 13px 18px !important;
    border-radius: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #publicSite .hero-actions .button:first-child {
    box-shadow: 0 14px 30px rgba(140,29,44,.18) !important;
  }

  #publicSite .hero-actions .button.secondary {
    color: #202226 !important;
    background: rgba(255,255,255,.84) !important;
    border-color: rgba(20,22,24,.16) !important;
    box-shadow: 0 10px 24px rgba(20,22,24,.07) !important;
    backdrop-filter: blur(10px) !important;
  }

  #publicSite .hero-proof {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    margin-top: 28px !important;
    padding-top: 20px !important;
    border-color: rgba(20,22,24,.11) !important;
  }

  #publicSite .hero-proof span {
    color: #5b6268 !important;
  }

  #publicSite .trust-strip {
    background: #f8f9fb !important;
    border: 0 !important;
  }

  /* Brak szarego prześwitu podczas scrollowania i pod dolnym paskiem. */
  #publicSite .section,
  #publicSite .privacy-mini,
  #publicSite .site-footer {
    background-color: var(--oib-mobile-card-bg);
  }

  #publicSite .section.soft,
  #publicSite .site-footer {
    background-color: #f7f8fa !important;
  }

  #publicSite .mobile-contact {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(env(safe-area-inset-bottom) + var(--oib-mobile-toolbar-offset, 0px) + 10px) !important;
    inset: auto 12px auto 12px !important;
    z-index: 9999 !important;
    min-height: 72px !important;
    height: auto !important;
    padding: 8px !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(20,22,24,.08) !important;
    border-radius: 22px !important;
    box-shadow: 0 18px 42px rgba(20,22,24,.14) !important;
    backdrop-filter: saturate(150%) blur(18px) !important;
    -webkit-backdrop-filter: saturate(150%) blur(18px) !important;
    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    will-change: transform !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  #publicSite .mobile-contact a {
    min-width: 0 !important;
    min-height: 56px !important;
    padding: 0 5px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    color: #25282b !important;
    background: #f8f9fb !important;
    border: 1px solid rgba(20,22,24,.07) !important;
    border-radius: 15px !important;
    font-size: .73rem !important;
    line-height: 1.15 !important;
    text-align: center !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85) !important;
  }

  #publicSite .mobile-contact a:nth-child(3) {
    color: #8c1d2c !important;
    background: #fff8f9 !important;
    border-color: rgba(140,29,44,.16) !important;
  }

  #publicSite .mobile-contact a:last-child {
    color: #ffffff !important;
    background: linear-gradient(135deg,#a32237,#7b1423) !important;
    border-color: rgba(123,20,35,.3) !important;
    box-shadow: 0 8px 22px rgba(140,29,44,.20) !important;
  }

  /* Kalendarz / formularz rezerwacji — pełna szerokość, bez efektu przybliżenia. */
  #umow-rozmowe {
    scroll-margin-top: 92px !important;
    overflow: clip !important;
    background: var(--oib-mobile-card-bg) !important;
  }

  #umow-rozmowe .container {
    width: 100% !important;
    padding-inline: var(--oib-mobile-gutter) !important;
  }

  #umow-rozmowe .section-title {
    max-width: 12ch !important;
    font-size: clamp(2.15rem, 9vw, 2.75rem) !important;
    line-height: 1 !important;
  }

  #umow-rozmowe .lead {
    max-width: 36ch !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  #appointmentForm,
  #appointmentForm * {
    min-width: 0;
    max-width: 100%;
  }

  #appointmentForm.booking-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin: 26px 0 0 !important;
    padding: 16px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    overflow: visible !important;
    background: #ffffff !important;
    border: 1px solid #ece7e4 !important;
    border-top: 4px solid #8c1d2c !important;
    border-radius: 24px !important;
    box-shadow: 0 18px 46px rgba(20,22,24,.08) !important;
    transform: none !important;
  }

  #appointmentForm > .field,
  #appointmentForm > .oib-calendar-priority,
  #appointmentForm > .booking-picker,
  #appointmentForm > .booking-selection {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  #appointmentForm .oib-calendar-priority {
    padding: 19px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    align-items: start !important;
    background: linear-gradient(145deg,#fff8f9 0%,#ffffff 72%) !important;
    border: 1px solid #ead2d7 !important;
    border-top: 4px solid #8c1d2c !important;
    border-radius: 18px !important;
  }

  #appointmentForm .oib-calendar-priority span {
    font-size: .7rem !important;
    line-height: 1.35 !important;
  }

  #appointmentForm .oib-calendar-priority strong {
    display: block !important;
    font-size: 1.42rem !important;
    line-height: 1.13 !important;
    letter-spacing: -.035em !important;
  }

  #appointmentForm .oib-calendar-priority p {
    margin: 8px 0 0 !important;
    font-size: .9rem !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere !important;
  }

  #appointmentForm .oib-calendar-priority .button {
    width: 100% !important;
    min-height: 50px !important;
    justify-content: center !important;
  }

  #appointmentForm .field {
    width: 100% !important;
    display: grid !important;
    gap: 7px !important;
  }

  #appointmentForm .field label {
    font-size: .91rem !important;
    line-height: 1.35 !important;
    font-weight: 850 !important;
  }

  #appointmentForm .field input,
  #appointmentForm .field select,
  #appointmentForm .field textarea {
    width: 100% !important;
    min-height: 50px !important;
    padding: 12px 13px !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
    color: #17191b !important;
    background: #ffffff !important;
    border: 1px solid #cfd3d6 !important;
    border-radius: 13px !important;
    box-shadow: none !important;
    transform: none !important;
  }

  #appointmentForm .field textarea {
    min-height: 138px !important;
    resize: vertical !important;
  }

  #appointmentForm .field small,
  #appointmentForm .form-privacy-note {
    display: block !important;
    font-size: .78rem !important;
    line-height: 1.48 !important;
    overflow-wrap: anywhere !important;
  }

  #appointmentForm .booking-picker {
    width: 100% !important;
    max-width: 100% !important;
    padding: 15px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    overflow: hidden !important;
    background: #f7f8fa !important;
    border: 1px solid #e1e5ea !important;
    border-radius: 19px !important;
    transform: none !important;
  }

  #appointmentForm .booking-picker > div {
    width: 100% !important;
    min-width: 0 !important;
  }

  #appointmentForm .booking-picker h3 {
    margin: 0 0 5px !important;
    font-size: 1.18rem !important;
    line-height: 1.2 !important;
    letter-spacing: -.025em !important;
  }

  #appointmentForm .booking-picker p {
    margin: 0 0 12px !important;
    font-size: .86rem !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }

  #appointmentForm .booking-days {
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    padding: 2px 1px 9px !important;
    display: grid !important;
    grid-template-columns: none !important;
    grid-auto-flow: column !important;
    grid-auto-columns: minmax(145px, 44%) !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    overscroll-behavior-inline: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }

  #appointmentForm .booking-days::-webkit-scrollbar {
    display: none !important;
  }

  #appointmentForm .booking-day {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 92px !important;
    padding: 13px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 8px !important;
    scroll-snap-align: start !important;
    color: #202226 !important;
    background: #ffffff !important;
    border: 1px solid #d8d6d3 !important;
    border-radius: 15px !important;
    box-shadow: 0 8px 18px rgba(20,22,24,.05) !important;
    text-align: left !important;
    white-space: normal !important;
  }

  #appointmentForm .booking-day strong {
    font-size: .96rem !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere !important;
  }

  #appointmentForm .booking-day span {
    font-size: .75rem !important;
    line-height: 1.2 !important;
  }

  #appointmentForm .booking-day.active {
    color: #8c1d2c !important;
    background: #fff7f8 !important;
    border-color: #8c1d2c !important;
    box-shadow: inset 4px 0 0 #8c1d2c, 0 10px 22px rgba(140,29,44,.08) !important;
  }

  #appointmentForm .booking-times {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  #appointmentForm .booking-time {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 47px !important;
    padding: 8px 5px !important;
    border-radius: 12px !important;
    font-size: .9rem !important;
    line-height: 1 !important;
  }

  #appointmentForm .booking-selection {
    padding: 14px 15px !important;
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 12px !important;
    background: #fff8f9 !important;
    border: 1px solid #ead2d7 !important;
    border-left: 4px solid #8c1d2c !important;
    border-radius: 14px !important;
  }

  #appointmentForm .booking-selection .text-button {
    width: 100% !important;
    justify-content: center !important;
  }

  #appointmentForm .consent {
    min-height: 0 !important;
    padding: 13px !important;
    border-radius: 13px !important;
    font-size: .82rem !important;
    line-height: 1.45 !important;
    display: grid !important;
    grid-template-columns: 22px minmax(0,1fr) !important;
    align-items: start !important;
    gap: 12px !important;
  }

  #appointmentForm .consent input[type="checkbox"] {
    margin-top: 3px !important;
  }

  #appointmentForm .consent span {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  #appointmentSubmit {
    width: 100% !important;
    min-height: 54px !important;
    justify-content: center !important;
    border-radius: 14px !important;
  }

  #appointmentForm .booking-loader,
  #appointmentForm .booking-message {
    width: 100% !important;
    min-height: 130px !important;
    padding: 18px !important;
    border-radius: 14px !important;
    font-size: .9rem !important;
    line-height: 1.5 !important;
  }

  /* Realizacje — bez ucinania grafik i bez ciemnych teł pod miniaturami. */
  #publicSite .project-card,
  #publicSite .project-grid.list-view .project-card {
    overflow: hidden !important;
    background: #ffffff !important;
  }

  #publicSite .project-card > img,
  #publicSite .project-card img,
  #publicSite .project-image {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #f7f8fa !important;
    padding: 0 !important;
    max-height: none !important;
    transform: none !important;
  }

  #publicSite .project-card:hover > img,
  #publicSite .project-card:hover img {
    transform: none !important;
  }

  #publicSite .project-content {
    background: #ffffff !important;
  }

  /* Chłodniejsze tło całej strony zamiast żółtawego odcienia. */
  #publicSite {
    background: var(--oib-mobile-page-bg) !important;
  }

  #publicSite .section.soft .container > *,
  #publicSite .section .container > *,
  #publicSite .company-milestone,
  #publicSite .offer-pillar,
  #publicSite .home-proof-card,
  #publicSite .service-card,
  #publicSite .process-step,
  #publicSite .review-card,
  #publicSite .contact-card,
  #publicSite .privacy-box {
    background-color: #ffffff !important;
  }


  /* V45: spójny, chłodny kolor strony i brak szarych/żółtych prześwitów. */
  body::before,
  body::after,
  #publicSite::before,
  #publicSite::after {
    background: transparent !important;
  }

  #publicSite #main,
  #publicSite .section,
  #publicSite .section.soft,
  #publicSite .trust-strip,
  #publicSite .site-footer {
    background-image: none !important;
  }

  #publicSite .section:not(.soft) {
    background-color: #ffffff !important;
  }

  #publicSite .section.soft,
  #publicSite .trust-strip,
  #publicSite .site-footer {
    background-color: #f7f8fa !important;
  }

  /* Karty i sekcje mają tę samą oś oraz nie dotykają krawędzi telefonu. */
  #publicSite .project-grid,
  #publicSite .service-grid,
  #publicSite .process-grid,
  #publicSite .home-proof-grid,
  #publicSite .company-timeline {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  #publicSite .project-card > img,
  #publicSite .project-card img,
  #publicSite .project-image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #ffffff !important;
  }

  /* Pasek pozostaje widoczny także podczas szybkiego przewijania Safari. */
  body > .mobile-contact,
  #publicSite .mobile-contact {
    position: fixed !important;
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    contain: layout paint style !important;
  }

}

@media (max-width: 390px) {
  :root { --oib-mobile-gutter: 17px; }

  #publicSite .hero h1 {
    font-size: 2.55rem !important;
  }

  #publicSite .hero-text {
    font-size: .98rem !important;
  }

  #appointmentForm.booking-shell {
    padding: 13px !important;
    border-radius: 20px !important;
  }

  #appointmentForm .booking-picker {
    padding: 12px !important;
  }

  #appointmentForm .booking-days {
    grid-auto-columns: minmax(142px, 72%) !important;
  }

  #appointmentForm .booking-times {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #publicSite .mobile-contact {
    left: 10px !important;
    right: 10px !important;
    bottom: calc(env(safe-area-inset-bottom) + var(--oib-mobile-toolbar-offset, 0px) + 8px) !important;
  }

  #publicSite .mobile-contact a {
    font-size: .66rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #publicSite .hero::before,
  #publicSite .hero::after {
    animation: none !important;
  }
}

/* OIB V46 — przeniesiona sekcja prywatności i czerwony portal klienta */
@media (max-width: 760px) {
  #publicSite .privacy-mini-wrap {
    padding: 18px 0 112px !important;
    background: #f4f5f7 !important;
  }

  #publicSite .privacy-mini-wrap .privacy-mini {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  #publicSite .privacy-mini-card {
    width: calc(100% - 40px) !important;
    margin: 0 auto !important;
    padding: 22px !important;
    border: 1px solid rgba(140,29,44,.14) !important;
    border-radius: 22px !important;
    box-shadow: 0 16px 38px rgba(20,22,24,.07) !important;
    background: #fff !important;
  }

  #publicSite .privacy-mini-card h2 {
    font-size: 1.45rem !important;
    line-height: 1.15 !important;
  }

  #publicSite .privacy-mini-list {
    gap: 8px !important;
  }

  #publicSite .privacy-mini-list li {
    border-radius: 12px !important;
    background: #f7f8fa !important;
  }

  #publicSite .portal-nav-icon {
    background: #9a1b2d !important;
    border-color: #9a1b2d !important;
    box-shadow: 0 8px 18px rgba(140,29,44,.22) !important;
  }
}

@media (min-width: 761px) {
  #publicSite .privacy-mini-wrap {
    padding: 46px 0 54px !important;
    background: #f6f7f8 !important;
    border-top: 1px solid rgba(20,22,24,.06) !important;
  }

  #publicSite .privacy-mini-wrap .privacy-mini {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }

  #publicSite .privacy-mini-card {
    border-radius: 18px !important;
    box-shadow: 0 18px 48px rgba(20,22,24,.07) !important;
  }

  #publicSite .portal-nav-icon {
    background: #9a1b2d !important;
    border-color: #9a1b2d !important;
    box-shadow: 0 8px 18px rgba(140,29,44,.20) !important;
  }
}


/* V48 polish */
#appointmentForm .booking-selection { align-items:flex-start !important; }
#appointmentForm .booking-selection strong { line-height:1.35 !important; display:inline-block !important; }
#appointmentForm .booking-days .booking-day strong, #appointmentForm .booking-times .booking-time { letter-spacing:0 !important; }

/* navigation consolidated */
/* OIB V52 — finalny przycisk Moje OIB i czerwone menu.
   Ten plik jest ładowany jako ostatni, aby starsze style nie mogły go nadpisać. */

#publicSite .nav-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
}

#publicSite .portal-nav-link,
#publicSite .portal-nav-link.portal-tone-red,
#publicSite .portal-nav-link.portal-tone-black,
#publicSite .portal-nav-link.portal-tone-light {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  min-height: 52px !important;
  height: 52px !important;
  padding: 0 17px !important;
  gap: 10px !important;
  border: 1px solid #98172b !important;
  border-radius: 14px !important;
  background: #98172b !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(152, 23, 43, .18) !important;
  text-decoration: none !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  overflow: hidden !important;
}

#publicSite .portal-nav-link:hover,
#publicSite .portal-nav-link:focus-visible {
  background: #861326 !important;
  border-color: #861326 !important;
  color: #fff !important;
}

#publicSite .portal-nav-link .portal-nav-icon,
#publicSite .portal-nav-link.portal-tone-red .portal-nav-icon,
#publicSite .portal-nav-link.portal-tone-black .portal-nav-icon,
#publicSite .portal-nav-link.portal-tone-light .portal-nav-icon {
  display: block !important;
  flex: 0 0 29px !important;
  width: 29px !important;
  min-width: 29px !important;
  height: 29px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  object-fit: contain !important;
}

#publicSite .portal-nav-link span:not(.sr-only) {
  display: inline-block !important;
  color: #fff !important;
  white-space: nowrap !important;
}

/* Czerwony przycisk menu z trzema krótkimi liniami. */
#publicSite button.menu-button,
#publicSite #menuButton {
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  position: relative !important;
  display: none !important;
  flex: 0 0 52px !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid #98172b !important;
  border-radius: 14px !important;
  background: #98172b !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(152, 23, 43, .18) !important;
  overflow: hidden !important;
  font-size: 0 !important;
}

#publicSite #menuButton::before,
#publicSite #menuButton > span,
#publicSite #menuButton::after {
  content: "" !important;
  box-sizing: border-box !important;
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  width: 19px !important;
  min-width: 19px !important;
  max-width: 19px !important;
  height: 2px !important;
  min-height: 2px !important;
  max-height: 2px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: #fff !important;
  box-shadow: none !important;
  opacity: 1 !important;
  transform: translateX(-50%) !important;
  transform-origin: center !important;
  transition: top .18s ease, transform .18s ease, opacity .18s ease !important;
}

#publicSite #menuButton::before { top: 17px !important; }
#publicSite #menuButton > span { top: 25px !important; }
#publicSite #menuButton::after { top: 33px !important; }

#publicSite .site-header.menu-open #menuButton::before {
  top: 25px !important;
  transform: translateX(-50%) rotate(45deg) !important;
}
#publicSite .site-header.menu-open #menuButton > span {
  top: 25px !important;
  opacity: 0 !important;
}
#publicSite .site-header.menu-open #menuButton::after {
  top: 25px !important;
  transform: translateX(-50%) rotate(-45deg) !important;
}

@media (max-width: 1180px) {
  #publicSite button.menu-button,
  #publicSite #menuButton {
    display: block !important;
  }
}

@media (max-width: 760px) {
  #publicSite .portal-nav-link,
  #publicSite .portal-nav-link.portal-tone-red,
  #publicSite .portal-nav-link.portal-tone-black,
  #publicSite .portal-nav-link.portal-tone-light {
    flex: 0 0 52px !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #publicSite .portal-nav-link .portal-nav-icon {
    flex-basis: 30px !important;
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
  }

  #publicSite .portal-nav-link span:not(.sr-only) {
    display: none !important;
  }
}
/* OIB V138 menu */

/* V53: menu SVG — bez pseudo-elementów, więc starszy CSS nie może zrobić jednej długiej kreski. */
#publicSite #menuButton::before,
#publicSite #menuButton::after,
#publicSite #menuButton > span {
  content: none !important;
  display: none !important;
}
#publicSite #menuButton {
  display: none !important;
  place-items: center !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  padding: 0 !important;
  border: 1px solid #98172b !important;
  border-radius: 14px !important;
  background: #98172b !important;
  color: #fff !important;
  overflow: hidden !important;
}
#publicSite #menuButton .oib-menu-svg {
  display: block !important;
  width: 24px !important;
  height: 18px !important;
  overflow: visible !important;
}
#publicSite #menuButton .oib-menu-line {
  fill: none !important;
  stroke: #fff !important;
  stroke-width: 2.4 !important;
  stroke-linecap: round !important;
  vector-effect: non-scaling-stroke !important;
  transform-box: view-box !important;
  transform-origin: 12px 9px !important;
  transition: transform .18s ease, opacity .18s ease !important;
}
#publicSite .site-header.menu-open #menuButton .oib-menu-line-1 { transform: translateY(7px) rotate(45deg) !important; }
#publicSite .site-header.menu-open #menuButton .oib-menu-line-2 { opacity: 0 !important; }
#publicSite .site-header.menu-open #menuButton .oib-menu-line-3 { transform: translateY(-7px) rotate(-45deg) !important; }
@media (max-width:1180px) {
  #publicSite #menuButton { display: grid !important; }
}

/* V138 final layer */
/* OIB Urbanek V138 — final public presentation layer */
:root{
  --oib-v138-red:#98172b;
  --oib-v138-ink:#111318;
  --oib-v138-line:#dedede;
  --oib-v138-soft:#f7f7f5;
  --oib-v138-hero-desktop:url('/assets/brand/hero-v138.webp');
  --oib-v138-hero-mobile:url('/assets/brand/hero-v138-mobile.webp');
}

/* Desktop hero: image supplied by OIB, copy intentionally lives on the clean left side. */
#publicSite .hero{
  position:relative!important;
  min-height:clamp(620px,76vh,820px)!important;
  display:flex!important;
  align-items:center!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#fff!important;
  border-bottom:1px solid var(--line)!important;
}
#publicSite .hero::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  display:block!important;
  z-index:-2!important;
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.998) 0%,rgba(255,255,255,.985) 28%,rgba(255,255,255,.91) 42%,rgba(255,255,255,.48) 58%,rgba(255,255,255,.08) 77%,rgba(255,255,255,.02) 100%),
    var(--oib-hero-custom-bg,var(--oib-v138-hero-desktop)) center right/cover no-repeat!important;
}
#publicSite .hero::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  display:block!important;
  z-index:-1!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(255,255,255,0) 72%,rgba(255,255,255,.24) 100%)!important;
}
#publicSite .hero .container{position:relative!important;z-index:1!important;}
#publicSite .hero-content{max-width:720px!important;padding:84px 0!important;}
#publicSite .hero h1{
  max-width:720px!important;
  margin-bottom:22px!important;
  font-size:clamp(3rem,5.25vw,5.15rem)!important;
  line-height:.96!important;
  letter-spacing:-.057em!important;
  text-wrap:balance!important;
}
#publicSite .hero-text{
  max-width:620px!important;
  margin:0 0 26px!important;
  color:#4b535e!important;
  font-size:clamp(1rem,1.3vw,1.18rem)!important;
  line-height:1.63!important;
}
#publicSite .hero-actions{display:flex!important;align-items:stretch!important;gap:10px!important;flex-wrap:wrap!important;}
#publicSite .hero-actions .button{min-height:52px!important;}
#publicSite .hero-phone{
  display:grid!important;
  align-content:center!important;
  min-height:52px!important;
  padding:7px 14px!important;
  border-left:2px solid var(--red)!important;
  color:var(--ink)!important;
  text-decoration:none!important;
}
#publicSite .hero-phone small{font-size:.66rem!important;text-transform:uppercase!important;letter-spacing:.11em!important;color:var(--muted)!important;font-weight:850!important;}
#publicSite .hero-phone strong{font-size:1rem!important;}
#publicSite .hero-proof{display:flex!important;flex-wrap:wrap!important;gap:10px 18px!important;margin-top:28px!important;padding-top:18px!important;border-top:1px solid rgba(152,23,43,.16)!important;}

/* Homepage: short sales path. */
#publicSite .trust-strip{border-bottom:1px solid var(--line)!important;background:#fff!important;}
#publicSite .trust-item{min-height:92px!important;}
#publicSite .home-proof-grid-v138{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:40px;align-items:center;}
#publicSite .review-score-v138{min-height:220px;display:grid;place-items:center;align-content:center;border:1px solid var(--line);background:#fff;}
#publicSite .review-score-v138 strong{font-size:4.6rem;line-height:1;letter-spacing:-.07em;}
#publicSite .review-score-v138 span{color:var(--red);letter-spacing:.14em;font-size:1.1rem;}
#publicSite .review-score-v138 small{margin-top:8px;color:var(--muted);font-weight:800;}
#publicSite .quick-lead-shell-v138{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:48px;align-items:start;}
#publicSite .quick-lead-copy-v138{position:sticky;top:104px;}
#publicSite .quick-lead-form-v138{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:24px;border:1px solid var(--line);background:#fff;}
#publicSite .quick-lead-form-v138 .full{grid-column:1/-1;}
#publicSite .quick-submit-v138{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;}
#publicSite .quick-submit-v138 .form-status{margin:0;}

/* Two-action mobile contact bar. */
#publicSite .mobile-contact-v138{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
#publicSite .mobile-contact-v138 a:nth-child(n){display:flex!important;}
#publicSite .mobile-contact-v138 a:last-child{background:#98172b!important;color:#fff!important;}

/* Portal shares brand tokens but remains a separate bundle. */
body.mode-portal #portalSite{background:#f6f6f4!important;}
.portal-shell,.portal-app-v62{--portal-accent:#98172b;}

@media(max-width:900px){
  :root{--oib-mobile-gutter:20px;}
  #publicSite .hero{
    min-height:clamp(700px,92svh,860px)!important;
    display:flex!important;
    align-items:flex-start!important;
    padding:0!important;
    background:#fff!important;
  }
  #publicSite .hero::before{
    position:absolute!important;
    inset:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    z-index:-2!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.995) 0%,rgba(255,255,255,.97) 25%,rgba(255,255,255,.84) 43%,rgba(255,255,255,.34) 62%,rgba(255,255,255,.06) 78%,rgba(255,255,255,.10) 100%),
      var(--oib-mobile-bg,var(--oib-v138-hero-mobile)) center bottom/cover no-repeat!important;
  }
  #publicSite .hero::after{
    display:block!important;
    background:linear-gradient(180deg,rgba(255,255,255,0) 72%,rgba(255,255,255,.12) 100%)!important;
  }
  #publicSite .hero .container{
    width:min(calc(100% - 40px),760px)!important;
    margin:0 auto!important;
    position:relative!important;
    z-index:2!important;
  }
  #publicSite .hero-content{
    max-width:560px!important;
    padding:42px 0 350px!important;
    background:transparent!important;
  }
  #publicSite .hero .eyebrow{padding-top:0!important;margin-bottom:14px!important;}
  #publicSite .hero h1{
    max-width:12ch!important;
    font-size:clamp(2.45rem,10vw,4.35rem)!important;
    line-height:.95!important;
    letter-spacing:-.055em!important;
  }
  #publicSite .hero-text{max-width:34ch!important;margin:17px 0 20px!important;font-size:1rem!important;line-height:1.55!important;}
  #publicSite .hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;max-width:520px!important;}
  #publicSite .hero-actions .button{width:100%!important;min-height:52px!important;justify-content:center!important;}
  #publicSite .hero-phone{grid-column:1/-1!important;border-left:0!important;border-top:1px solid rgba(17,19,24,.12)!important;padding:11px 0 0!important;}
  #publicSite .hero-proof{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-top:18px!important;padding-top:14px!important;max-width:520px!important;}
  #publicSite .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  #publicSite .trust-item{padding:16px!important;}
  #publicSite .home-proof-grid-v138,#publicSite .quick-lead-shell-v138{grid-template-columns:1fr!important;}
  #publicSite .review-score-v138{min-height:150px!important;}
  #publicSite .quick-lead-copy-v138{position:static!important;}
  #publicSite .quick-lead-form-v138{grid-template-columns:1fr!important;padding:18px!important;}
  #publicSite .quick-lead-form-v138 .full{grid-column:1!important;}
  #publicSite .quick-submit-v138{grid-template-columns:1fr!important;}
}

@media(max-width:620px){
  :root{--oib-mobile-gutter:18px;}
  #publicSite .hero{min-height:clamp(690px,94svh,820px)!important;}
  #publicSite .hero .container{width:calc(100% - 36px)!important;}
  #publicSite .hero-content{padding:34px 0 330px!important;}
  #publicSite .hero h1{font-size:clamp(2.2rem,10.2vw,3.35rem)!important;max-width:11ch!important;}
  #publicSite .hero-actions{grid-template-columns:1fr!important;}
  #publicSite .hero-phone{grid-column:1!important;}
  #publicSite .topbar{display:none!important;}
  #publicSite .review-score-v138 strong{font-size:3.6rem!important;}
}

@media(max-width:390px){
  #publicSite .hero{min-height:720px!important;}
  #publicSite .hero-content{padding-bottom:305px!important;}
  #publicSite .hero h1{font-size:2.35rem!important;}
  #publicSite .hero-text{font-size:.95rem!important;}
}

@media(prefers-reduced-motion:reduce){
  #publicSite .hero-content>*{animation:none!important;}
}


/* OIB V138.1 — desktop alignment hotfix */
body:not([data-public-page="start"]) #publicSite > #main > .hero[data-page-group~="start"],
body:not([data-public-page="start"]) #publicSite > #main > .trust-strip[data-page-group~="start"] { display:none !important; }

@media (min-width: 901px) {
  /* Krótszy headline ma wyglądać jak premium slogan, a nie blok 5 linii. */
  body[data-public-page="start"] #start .hero-content { max-width: 660px; }
  body[data-public-page="start"] #start h1 { max-width: 640px; font-size: clamp(3.6rem, 5.2vw, 5.7rem); line-height: .94; letter-spacing: -.058em; }
  body[data-public-page="start"] #start .hero-actions { align-items:center; }

  /* Kontakt: karta z danymi ma zaczynać się od lewej osi treści, nie wisieć pośrodku. */
  body[data-public-page="kontakt"] #kontakt .container { max-width: 1180px; }
  body[data-public-page="kontakt"] #kontakt .contact-layout {
    width:100%; max-width:1180px; margin-inline:0; grid-template-columns:minmax(0, 640px); justify-content:start;
  }
  body[data-public-page="kontakt"] #kontakt .contact-details { width:100%; text-align:left; }
  body[data-public-page="kontakt"] #kontakt .contact-row,
  body[data-public-page="kontakt"] #kontakt .contact-tools { justify-content:flex-start; text-align:left; }

  /* Wycena: nagłówek etapu jest częścią formularza i trzyma tę samą oś co pola. */
  body[data-public-page="wycena"] .quote-pro-grid { padding: 30px 36px 34px; }
  body[data-public-page="wycena"] .quote-step { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  body[data-public-page="wycena"] .quote-step > h3 {
    grid-column:1/-1 !important; width:100%; margin:0 0 2px; padding:0 0 13px;
    border-bottom:1px solid var(--line); font-size:clamp(1.65rem,2.2vw,2.05rem); line-height:1.08;
  }
  body[data-public-page="wycena"] .quote-step > p { grid-column:1/-1 !important; width:100%; max-width:900px; margin:0 0 8px; }
  body[data-public-page="wycena"] .quote-step > .field { min-width:0; }
}

body[data-public-page="wycena"] .quote-step > h3[data-step-kicker]::before{content:attr(data-step-kicker);display:block;margin-bottom:7px;color:var(--red);font-size:.72rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase;}


/* =========================================================
   OIB V138.2 — premium desktop pass
   hero / homepage / realizacje / mapa / Moje OIB / kontakt / wycena
   ========================================================= */

/* HERO — krótszy, bardziej wyrazisty i z większą rolą zdjęcia. */
@media (min-width:901px){
  body[data-public-page="start"] #publicSite .hero{min-height:640px!important;}
  body[data-public-page="start"] #publicSite .hero.has-custom-bg::before{
    inset:-1%!important;
    background:var(--oib-hero-custom-bg) center right/cover no-repeat!important;
    filter:saturate(1.13) contrast(1.055) brightness(.995)!important;
    animation:none!important;
  }
  body[data-public-page="start"] #publicSite .hero::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.99) 31%,rgba(255,255,255,.91) 44%,rgba(255,255,255,.62) 57%,rgba(255,255,255,.18) 72%,rgba(255,255,255,.02) 100%)!important;
  }
  body[data-public-page="start"] #start .hero-content{max-width:590px!important;padding:92px 0 88px!important;}
  body[data-public-page="start"] #start h1{max-width:560px!important;font-size:clamp(4rem,5.25vw,5.65rem)!important;line-height:.91!important;letter-spacing:-.065em!important;margin:0 0 22px!important;}
  body[data-public-page="start"] #start .hero-text{max-width:535px!important;font-size:1.08rem!important;line-height:1.62!important;color:#3c444b!important;margin-bottom:28px!important;}
  body[data-public-page="start"] #start .hero-actions{gap:10px!important;}
}
#publicSite .hero-proof{display:none!important;}

/* 4 główne usługi — pierwszy element po hero. */
#publicSite .home-services-v1382{padding:0!important;background:#fff!important;}
#publicSite .home-services-v1382 .trust-grid{gap:0!important;border:1px solid var(--line)!important;border-top:0!important;}
#publicSite .home-services-v1382 .trust-item{
  position:relative!important;display:block!important;min-height:118px!important;padding:24px 26px!important;
  color:var(--ink)!important;text-decoration:none!important;background:#fff!important;border-right:1px solid var(--line)!important;
  transition:background .18s ease,transform .18s ease!important;
}
#publicSite .home-services-v1382 .trust-item:last-child{border-right:0!important;}
#publicSite .home-services-v1382 .trust-item::after{content:"→";position:absolute;right:22px;top:22px;color:var(--red);font-weight:950;}
#publicSite .home-services-v1382 .trust-item strong{display:block!important;font-size:1.06rem!important;margin-bottom:8px!important;}
#publicSite .home-services-v1382 .trust-item span{display:block!important;max-width:245px!important;color:var(--muted)!important;line-height:1.45!important;font-size:.86rem!important;}
#publicSite .home-services-v1382 .trust-item:hover{background:#fff7f8!important;transform:translateY(-2px)!important;}

/* Homepage: dokładnie Hero → 4 usługi → 3 realizacje → liczby → opinie → szybkie zapytanie. */
#publicSite .home-numbers-v1382{background:#111318!important;color:#fff!important;}
#publicSite .home-numbers-v1382 .eyebrow{color:#d57a89!important;}
#publicSite .home-numbers-v1382 .section-title{max-width:850px!important;color:#fff!important;}
#publicSite .oib-numbers-grid-v1382{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:34px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);}
#publicSite .oib-numbers-grid-v1382 article{min-height:180px;padding:30px;background:#16191e;display:grid;align-content:space-between;gap:28px;}
#publicSite .oib-numbers-grid-v1382 strong{display:block;color:#fff;font-size:clamp(1.9rem,3vw,3.15rem);line-height:.95;letter-spacing:-.055em;text-transform:none;}
#publicSite .oib-numbers-grid-v1382 span{color:#c8ced6;font-size:.88rem;line-height:1.55;}

/* Realizacje — obraz, nazwa i tylko trzy fakty. */
#publicSite .project-grid{gap:24px!important;}
#publicSite .project-card{border:1px solid #e2e3e5!important;border-radius:14px!important;box-shadow:0 16px 42px rgba(17,19,24,.07)!important;background:#fff!important;overflow:hidden!important;}
#publicSite .project-card > img,#publicSite .project-card img{width:100%!important;aspect-ratio:16/10!important;height:auto!important;object-fit:cover!important;background:#f4f5f6!important;filter:saturate(.96) contrast(1.02)!important;transition:transform .45s ease,filter .25s ease!important;}
#publicSite .project-card:hover > img,#publicSite .project-card:hover img{transform:scale(1.025)!important;filter:saturate(1.06) contrast(1.04)!important;}
#publicSite .project-content{padding:22px 22px 24px!important;}
#publicSite .project-content .tag,#publicSite .project-content > p:not(.project-card-facts-v1382):not(.project-meta){display:none!important;}
#publicSite .project-content .project-meta{margin:0 0 7px!important;color:var(--red)!important;font-size:.72rem!important;font-weight:950!important;text-transform:uppercase!important;letter-spacing:.08em!important;}
#publicSite .project-content h3{margin:0!important;font-size:clamp(1.25rem,1.7vw,1.65rem)!important;line-height:1.12!important;letter-spacing:-.035em!important;}
#publicSite .project-card-facts-v1382{margin:12px 0 18px!important;color:#606874!important;font-size:.86rem!important;line-height:1.5!important;}
#publicSite .project-content .text-button{font-weight:900!important;}

/* Mapa — delikatnie bordowy charakter, nowoczesne pinezki, premium popup. */
#publicSite .map-shell{border:1px solid #ded5d7!important;border-radius:16px!important;background:#f7f2f3!important;box-shadow:0 18px 50px rgba(17,19,24,.08)!important;overflow:hidden!important;}
#publicSite #leafletMap{background:#f4eff0!important;}
#publicSite .leaflet-tile{filter:grayscale(.78) sepia(.16) hue-rotate(300deg) saturate(.78) brightness(1.04) contrast(.93)!important;}
#publicSite .map-marker{width:24px!important;height:24px!important;background:#98172b!important;border:3px solid #fff!important;box-shadow:0 7px 18px rgba(90,10,24,.32)!important;}
#publicSite .leaflet-popup-content-wrapper{padding:0!important;border-radius:14px!important;overflow:hidden!important;border:1px solid #eadde0!important;box-shadow:0 24px 70px rgba(17,19,24,.18)!important;}
#publicSite .leaflet-popup-content{width:310px!important;min-width:310px!important;margin:0!important;}
#publicSite .oib-map-popup-v1382 img{display:block;width:100%!important;height:165px!important;object-fit:cover!important;margin:0!important;background:#f1f2f3!important;}
#publicSite .oib-map-popup-body-v1382{padding:18px!important;}
#publicSite .oib-map-popup-body-v1382 strong{display:block;font-size:1.12rem;line-height:1.18;letter-spacing:-.02em;margin-bottom:8px;}
#publicSite .oib-map-popup-meta-v1382{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;color:#68707a;font-size:.78rem;}
#publicSite .oib-map-popup-scope-v1382{margin:0 0 15px;color:#3e454d;font-size:.85rem;line-height:1.5;}
#publicSite .oib-map-popup-v1382 .button{width:100%;min-height:42px;justify-content:center;}
#publicSite .marker-cluster-small div,#publicSite .marker-cluster-medium div,#publicSite .marker-cluster-large div{background:#98172b!important;color:#fff!important;border:3px solid #fff!important;box-shadow:0 8px 22px rgba(90,10,24,.28)!important;}
#publicSite .marker-cluster-small,#publicSite .marker-cluster-medium,#publicSite .marker-cluster-large{background:rgba(152,23,43,.20)!important;}

/* Kontakt — mniej urzędowo, dwie wyraźne kolumny. */
@media (min-width:901px){
  body[data-public-page="kontakt"] #kontakt .container{max-width:1180px!important;}
  body[data-public-page="kontakt"] #kontakt .contact-layout{display:grid!important;grid-template-columns:1.05fr .95fr!important;gap:24px!important;max-width:1180px!important;}
  body[data-public-page="kontakt"] #kontakt .contact-card-v1382{display:contents!important;}
  body[data-public-page="kontakt"] #kontakt .contact-primary-v1382,body[data-public-page="kontakt"] #kontakt .contact-company-v1382{display:block!important;padding:34px!important;border:1px solid var(--line)!important;background:#fff!important;box-shadow:0 18px 48px rgba(17,19,24,.06)!important;}
}
#publicSite .contact-primary-v1382 h3{margin:5px 0 20px;font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.045em;line-height:1.05;}
#publicSite .contact-big-link-v1382{display:block;margin:8px 0;color:#111318;text-decoration:none;font-size:clamp(1.2rem,2vw,1.75rem);font-weight:900;letter-spacing:-.025em;}
#publicSite .contact-primary-v1382 > p:not(.eyebrow){max-width:620px;color:var(--muted);line-height:1.6;margin:20px 0;}
#publicSite .contact-company-v1382 > strong{display:block;max-width:560px;font-size:1.08rem;line-height:1.45;}
#publicSite .contact-company-v1382 > p{color:#535b65;line-height:1.55;}
#publicSite .contact-registry-v1382{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0;}
#publicSite .contact-registry-v1382 span{padding:10px 12px;border:1px solid #e1e3e6;background:#f7f8f9;font-size:.8rem;}
#publicSite .contact-registry-v1382 b{margin-left:6px;color:#111;}
#publicSite .contact-map-actions-v1382{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0 12px;}
#publicSite .contact-company-v1382 small{color:#747c85;line-height:1.45;}

/* Wycena — nowocześniejszy progress, więcej oddechu, większe pola. */
body[data-public-page="wycena"] #kontakt{background:#fff!important;}
body[data-public-page="wycena"] #kontakt .container{max-width:1320px!important;}
body[data-public-page="wycena"] #kontakt .contact-layout{max-width:1240px!important;}
body[data-public-page="wycena"] #contactForm{border:1px solid #e2e4e7!important;border-top:0!important;border-radius:16px!important;box-shadow:0 26px 80px rgba(17,19,24,.09)!important;}
body[data-public-page="wycena"] .quote-pro-progress{padding:14px!important;gap:8px!important;background:#fafafa!important;border-bottom:1px solid #ececef!important;}
body[data-public-page="wycena"] .quote-pro-progress span{position:relative!important;min-height:48px!important;padding:14px 12px!important;border:1px solid #e0e3e6!important;border-radius:10px!important;background:#fff!important;color:#737b84!important;display:grid!important;place-items:center!important;}
body[data-public-page="wycena"] .quote-pro-progress span.active{background:#98172b!important;color:#fff!important;border-color:#98172b!important;box-shadow:0 8px 22px rgba(152,23,43,.18)!important;}
body[data-public-page="wycena"] .quote-pro-grid{padding:42px 46px 46px!important;background:#fff!important;}
body[data-public-page="wycena"] .quote-step{gap:22px!important;}
body[data-public-page="wycena"] .quote-step > h3{font-size:clamp(1.9rem,2.5vw,2.45rem)!important;padding-bottom:16px!important;}
body[data-public-page="wycena"] .quote-step > p{font-size:.98rem!important;line-height:1.6!important;margin-bottom:10px!important;}
body[data-public-page="wycena"] #contactForm input:not([type="checkbox"]):not([type="file"]),body[data-public-page="wycena"] #contactForm select,body[data-public-page="wycena"] #contactForm textarea{min-height:54px!important;border-radius:10px!important;padding:13px 15px!important;background:#fff!important;}
body[data-public-page="wycena"] #contactForm textarea{min-height:140px!important;}
body[data-public-page="wycena"] .quote-actions{margin-top:12px!important;padding-top:22px!important;border-top:1px solid #eceef0!important;}
body[data-public-page="wycena"] .quote-actions .button{min-height:50px!important;padding-inline:22px!important;border-radius:9px!important;}

/* Moje OIB — wspólny język strony, mniej ciężkich ramek, dashboard 6 obszarów. */
body.mode-portal #portalSite .portal-v57-topbar{max-width:1180px!important;margin:0 auto 18px!important;}
body.mode-portal #portalSite .portal-v57-frame{max-width:1180px!important;margin:0 auto!important;}
#portalContent .portal-overview-grid-v1382{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px;}
#portalContent .portal-overview-card-v1382{min-height:132px;padding:20px;border:1px solid #e4e5e7;border-radius:12px;background:#fff;box-shadow:0 12px 34px rgba(17,19,24,.055);display:grid;align-content:space-between;gap:18px;}
#portalContent .portal-overview-card-v1382 small{color:#8a919a;font-size:.69rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase;}
#portalContent .portal-overview-card-v1382 strong{display:block;color:#111318;font-size:1.1rem;line-height:1.25;letter-spacing:-.02em;}
#portalContent .portal-overview-card-v1382 span{color:#66707a;font-size:.82rem;line-height:1.4;}
#portalContent .portal-overview-card-v1382.accent{border-color:#e8cfd4;background:#fff8f9;}
#portalContent .portal-app-nav{border-radius:12px!important;overflow:hidden!important;border:1px solid #e3e5e7!important;background:#fff!important;}
#portalContent .portal-app-nav button{border-radius:0!important;box-shadow:none!important;}
#portalContent .portal-app-body{gap:18px!important;}
#portalContent .portal-app-panel,#portalContent .portal-aside-card,#portalContent .portal-app-subpanel{border-radius:12px!important;border-color:#e3e5e7!important;box-shadow:0 14px 38px rgba(17,19,24,.055)!important;}
#portalContent .portal-app-panel{padding:26px!important;}
#portalContent .portal-aside-card{padding:22px!important;}

@media(max-width:980px){
  #publicSite .oib-numbers-grid-v1382{grid-template-columns:repeat(2,minmax(0,1fr));}
  #portalContent .portal-overview-grid-v1382{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  #publicSite .home-services-v1382 .trust-grid{grid-template-columns:1fr!important;}
  #publicSite .home-services-v1382 .trust-item{border-right:0!important;border-bottom:1px solid var(--line)!important;}
  #publicSite .oib-numbers-grid-v1382{grid-template-columns:1fr;}
  body[data-public-page="kontakt"] #kontakt .contact-primary-v1382,body[data-public-page="kontakt"] #kontakt .contact-company-v1382{display:block;padding:24px;border:1px solid var(--line);background:#fff;}
  #portalContent .portal-overview-grid-v1382{grid-template-columns:1fr;}
  body[data-public-page="wycena"] .quote-pro-progress{grid-template-columns:1fr 1fr!important;}
  body[data-public-page="wycena"] .quote-pro-grid{padding:24px 20px 28px!important;}
}


/* =========================================================
   OIB V138.3 — light numbers + anti-overflow + favicon hotfix
   ========================================================= */
html,body{max-width:100%;overflow-x:clip!important;}
#publicSite,#publicSite #main{max-width:100%;overflow-x:clip!important;}
#publicSite .section,#publicSite .trust-strip,#publicSite .site-footer{max-width:100%;}

/* Sekcja „OIB w liczbach” nie jest już czarnym blokiem. */
#publicSite .home-numbers-v1382{
  background:#fff!important;
  color:var(--ink)!important;
  border-top:1px solid #e6e7e9!important;
  border-bottom:1px solid #e6e7e9!important;
}
#publicSite .home-numbers-v1382 .eyebrow{color:var(--red)!important;}
#publicSite .home-numbers-v1382 .section-title{color:var(--ink)!important;}
#publicSite .oib-numbers-grid-v1382{
  background:#e4e5e7!important;
  border:1px solid #e4e5e7!important;
  border-radius:14px!important;
  overflow:hidden!important;
}
#publicSite .oib-numbers-grid-v1382 article{background:#fff!important;}
#publicSite .oib-numbers-grid-v1382 strong{color:#111318!important;}
#publicSite .oib-numbers-grid-v1382 span{color:#606874!important;}

@media(max-width:760px){
  #publicSite .oib-numbers-grid-v1382{grid-template-columns:1fr 1fr!important;}
  #publicSite .oib-numbers-grid-v1382 article{min-height:136px!important;padding:20px!important;}
}
@media(max-width:430px){
  #publicSite .oib-numbers-grid-v1382{grid-template-columns:1fr!important;}
}

/* =========================================================
   OIB V138.4 — desktop geometry fix: Wycena + Umów rozmowę
   ========================================================= */
@media (min-width: 901px) {
  /* WYCENA: formularz zaczyna się dokładnie na tej samej osi co nagłówek strony. */
  body[data-public-page="wycena"] #kontakt .container {
    width: min(calc(100% - 48px), 1180px) !important;
    max-width: 1180px !important;
    margin-inline: auto !important;
  }
  body[data-public-page="wycena"] #kontakt .contact-layout {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-content: start !important;
    justify-items: stretch !important;
    gap: 0 !important;
  }
  body[data-public-page="wycena"] #kontakt #contactForm {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  /* KONTAKT / KALENDARZ: żadnego wyśrodkowanego "panelu w panelu". */
  body[data-public-page="kontakt"] #umow-rozmowe .container {
    width: min(calc(100% - 48px), 1180px) !important;
    max-width: 1180px !important;
    margin-inline: auto !important;
  }
  body[data-public-page="kontakt"] #appointmentForm.booking-shell {
    width: 100% !important;
    max-width: 980px !important;
    margin: 18px 0 0 !important;
  }
}

/* Nagłówek w środku formularza powtarzał to, co już mówi sekcja „Umów rozmowę”. */
body[data-public-page="kontakt"] #appointmentForm > .oib-calendar-priority {
  display: none !important;
}
body[data-public-page="kontakt"] #appointmentForm.booking-shell {
  border-top: 3px solid var(--red) !important;
  border-radius: 14px !important;
}

/* =========================================================
   OIB V138.5 — FINAL MOBILE PASS + uploaded brand logo
   This layer intentionally overrides all older mobile experiments.
   ========================================================= */
[data-page-group="legacy-home"]{display:none!important;}
#publicSite #start .hero-phone,
#publicSite #start .hero-proof{display:none!important;}

/* Uploaded logo must stay crisp and proportionate everywhere. */
#publicSite .brand-logo-public,
#bookingSite .brand-logo-public,
#portalSite .brand-logo-public{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:210px!important;
  max-height:58px!important;
  object-fit:contain!important;
}
#publicSite .logo.logo-has-img .logo-mark,
#publicSite .logo.logo-has-img .logo-copy,
#bookingSite .logo.logo-has-img .logo-mark,
#bookingSite .logo.logo-has-img .logo-copy,
#portalSite .logo.logo-has-img .logo-mark,
#portalSite .logo.logo-has-img .logo-copy{display:none!important;}

@media (max-width:760px){
  :root{--oib-mobile-gutter:16px!important;}
  html,body,#publicSite,#publicSite #main{background:#fff!important;overflow-x:clip!important;}
  body{padding-bottom:92px!important;}
  #publicSite .topbar{display:none!important;}

  /* Compact iPhone header. */
  #publicSite .site-header{
    position:sticky!important;
    top:0!important;
    z-index:3000!important;
    min-height:0!important;
    background:rgba(255,255,255,.97)!important;
    border-top:3px solid #98172b!important;
    border-bottom:1px solid #ececef!important;
    box-shadow:0 8px 28px rgba(17,19,24,.07)!important;
    backdrop-filter:blur(16px) saturate(145%)!important;
    -webkit-backdrop-filter:blur(16px) saturate(145%)!important;
  }
  #publicSite .site-header .container.nav-shell{
    width:100%!important;
    min-height:64px!important;
    padding:8px 14px!important;
    gap:8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  #publicSite .logo{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:132px!important;
    overflow:hidden!important;
    margin:0!important;
  }
  #publicSite .logo-mark{font-size:1.52rem!important;line-height:1!important;letter-spacing:-.055em!important;}
  #publicSite .logo-copy{display:none!important;}
  #publicSite .brand-logo-public{max-width:126px!important;max-height:34px!important;}

  #publicSite .nav-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex:0 0 auto!important;
    gap:7px!important;
    margin:0!important;
  }
  #publicSite .nav-actions>.button{
    width:82px!important;
    min-width:82px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 10px!important;
    border-radius:12px!important;
    font-size:0!important;
    box-shadow:none!important;
  }
  #publicSite .nav-actions>.button::after{
    content:"Wycena";
    font-size:.78rem!important;
    font-weight:900!important;
    letter-spacing:-.01em!important;
    white-space:nowrap!important;
  }
  #publicSite .portal-nav-link,
  #publicSite .menu-button{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    border-radius:12px!important;
    box-shadow:none!important;
  }
  #publicSite .portal-nav-link span{display:none!important;}
  #publicSite .portal-nav-icon{width:26px!important;height:26px!important;}
  #publicSite .menu-button{background:#98172b!important;border-color:#98172b!important;}
  #publicSite .oib-menu-svg{width:22px!important;height:17px!important;}

  /* Menu is a compact dropdown, not a second full page. */
  #publicSite .main-nav{
    position:absolute!important;
    top:calc(100% + 8px)!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-height:calc(100svh - 92px)!important;
    padding:8px!important;
    margin:0!important;
    display:none!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    overflow:auto!important;
    background:#fff!important;
    border:1px solid #e2e4e7!important;
    border-radius:16px!important;
    box-shadow:0 22px 58px rgba(17,19,24,.16)!important;
  }
  #publicSite .site-header.menu-open .main-nav{display:grid!important;}
  #publicSite .main-nav a{
    min-height:52px!important;
    padding:0 14px!important;
    display:flex!important;
    align-items:center!important;
    color:#17191d!important;
    background:#fff!important;
    border:0!important;
    border-bottom:1px solid #eceef0!important;
    border-radius:0!important;
    font-size:1rem!important;
    font-weight:850!important;
  }
  #publicSite .main-nav a:last-child{border-bottom:0!important;}
  #publicSite .main-nav a.active{color:#98172b!important;background:#fff8f9!important;}

  /* HOME HERO: clean text first + a real photo panel below. */
  body[data-public-page="start"] #publicSite #start.hero{
    position:relative!important;
    min-height:0!important;
    height:auto!important;
    padding:0 0 314px!important;
    display:block!important;
    overflow:hidden!important;
    background:#fff!important;
    border-bottom:0!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::before{
    content:""!important;
    position:absolute!important;
    left:16px!important;
    right:16px!important;
    top:auto!important;
    bottom:16px!important;
    width:auto!important;
    height:280px!important;
    min-height:0!important;
    z-index:0!important;
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    border-radius:22px!important;
    border:1px solid rgba(17,19,24,.08)!important;
    box-shadow:0 18px 44px rgba(17,19,24,.10)!important;
    background-image:var(--oib-mobile-bg,var(--oib-v138-hero-mobile))!important;
    background-position:var(--oib-mobile-hero-position,center) center!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::after{display:none!important;content:none!important;}
  body[data-public-page="start"] #publicSite #start.hero .container{
    position:relative!important;
    z-index:1!important;
    width:100%!important;
    max-width:none!important;
    padding:0 18px!important;
    margin:0!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-content{
    width:100%!important;
    max-width:none!important;
    padding:34px 0 26px!important;
    margin:0!important;
    color:#15171a!important;
    background:#fff!important;
  }
  body[data-public-page="start"] #publicSite #start .hero .eyebrow,
  body[data-public-page="start"] #publicSite #start .eyebrow{
    margin:0 0 14px!important;
    color:#8f1a2d!important;
    font-size:.70rem!important;
    line-height:1.25!important;
    letter-spacing:.13em!important;
    opacity:1!important;
  }
  body[data-public-page="start"] #publicSite #start h1{
    width:100%!important;
    max-width:11ch!important;
    margin:0!important;
    color:#111318!important;
    font-size:clamp(2.65rem,11.6vw,3.25rem)!important;
    line-height:.93!important;
    letter-spacing:-.06em!important;
    text-wrap:balance!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-text{
    width:100%!important;
    max-width:34ch!important;
    margin:18px 0 22px!important;
    color:#59616a!important;
    font-size:1rem!important;
    line-height:1.52!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-actions{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-actions .button,
  body[data-public-page="start"] #publicSite #start .hero-actions .button.secondary{
    width:100%!important;
    min-width:0!important;
    min-height:50px!important;
    height:50px!important;
    padding:0 10px!important;
    border-radius:12px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:.83rem!important;
    line-height:1.1!important;
    text-align:center!important;
    box-shadow:none!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-actions .button.secondary{
    background:#fff!important;
    border-color:#d9dce0!important;
    color:#17191d!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-phone,
  body[data-public-page="start"] #publicSite #start .hero-proof{display:none!important;}

  /* Main page cards need to feel mobile-native rather than shrunk desktop. */
  #publicSite .trust-strip{padding:0!important;background:#fff!important;}
  #publicSite .home-services-v1382 .container{width:100%!important;padding:0 16px!important;}
  #publicSite .home-services-v1382 .trust-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    padding:18px 0 8px!important;
    background:#fff!important;
  }
  #publicSite .home-services-v1382 .trust-item{
    min-height:108px!important;
    padding:16px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    border:1px solid #e6e8eb!important;
    border-radius:14px!important;
    background:#fafbfc!important;
  }
  #publicSite .home-services-v1382 .trust-item strong{font-size:.95rem!important;}
  #publicSite .home-services-v1382 .trust-item span{margin-top:5px!important;font-size:.75rem!important;line-height:1.35!important;}

  #publicSite .section{padding:54px 0!important;background:#fff!important;}
  #publicSite .section.soft{background:#f7f8fa!important;}
  #publicSite .section-title{font-size:clamp(2rem,9vw,2.55rem)!important;line-height:1!important;letter-spacing:-.05em!important;}
  #publicSite .lead{font-size:1rem!important;line-height:1.58!important;}
  #publicSite .eyebrow{font-size:.68rem!important;letter-spacing:.12em!important;}

  /* No washed-out legacy dark section on white background. */
  #publicSite .signature-band{display:none!important;}

  /* Contact / quote / legal pages. */
  body[data-public-page="kontakt"] #kontakt .container,
  body[data-public-page="wycena"] #kontakt .container,
  body[data-public-page="polityka-prywatnosci"] #publicSite .container,
  body[data-public-page="regulamin"] #publicSite .container{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-inline:auto!important;
  }
  body[data-public-page="kontakt"] #kontakt .contact-layout{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
  body[data-public-page="kontakt"] #kontakt .contact-primary-v1382,
  body[data-public-page="kontakt"] #kontakt .contact-company-v1382{padding:20px!important;border-radius:14px!important;box-shadow:none!important;}
  body[data-public-page="wycena"] #contactForm{width:100%!important;border-radius:14px!important;box-shadow:none!important;}
  body[data-public-page="wycena"] .quote-pro-progress{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
    padding:8px!important;
    overflow-x:auto!important;
    scrollbar-width:none!important;
  }
  body[data-public-page="wycena"] .quote-pro-progress span{
    min-width:88px!important;
    min-height:42px!important;
    padding:9px 7px!important;
    font-size:.66rem!important;
    border-radius:9px!important;
  }
  body[data-public-page="wycena"] .quote-pro-grid{padding:22px 16px 24px!important;}
  body[data-public-page="wycena"] .quote-step>h3{font-size:1.75rem!important;}
  body[data-public-page="wycena"] #contactForm input:not([type="checkbox"]):not([type="file"]),
  body[data-public-page="wycena"] #contactForm select,
  body[data-public-page="wycena"] #contactForm textarea{min-height:50px!important;font-size:16px!important;}

  /* Quick form: prevent iOS zoom and oversized blocks. */
  #publicSite input,#publicSite select,#publicSite textarea{font-size:16px!important;}
  #publicSite .quick-lead-shell-v138{grid-template-columns:1fr!important;gap:24px!important;}
  #publicSite .quick-lead-form-v138{grid-template-columns:1fr!important;padding:16px!important;border-radius:14px!important;}

  /* Privacy / terms: sane typography. */
  #publicSite .privacy-mini,
  #publicSite .legal-card,
  #publicSite [class*="privacy"]{max-width:100%!important;}
  #publicSite .privacy-mini h2,
  #publicSite .legal-card h2{font-size:clamp(1.8rem,8vw,2.3rem)!important;line-height:1.05!important;}
  #publicSite .privacy-mini p,
  #publicSite .legal-card p,
  #publicSite .legal-card li{font-size:.98rem!important;line-height:1.62!important;}

  /* Footer + fixed two-action bar. */
  #publicSite .site-footer{padding:40px 0 110px!important;}
  #publicSite .footer-grid{grid-template-columns:1fr 1fr!important;gap:26px 16px!important;}
  #publicSite .site-footer .logo{max-width:150px!important;}
  #publicSite .mobile-contact,
  #publicSite .mobile-contact-v138{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    bottom:calc(env(safe-area-inset-bottom) + 8px)!important;
    z-index:5000!important;
    width:auto!important;
    min-height:58px!important;
    padding:6px!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    border:1px solid rgba(17,19,24,.09)!important;
    border-radius:17px!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 14px 36px rgba(17,19,24,.16)!important;
    backdrop-filter:blur(16px)!important;
    -webkit-backdrop-filter:blur(16px)!important;
  }
  #publicSite .mobile-contact a,
  #publicSite .mobile-contact-v138 a{
    min-height:46px!important;
    height:46px!important;
    padding:0 8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:row!important;
    color:#17191d!important;
    background:#f7f8f9!important;
    border:0!important;
    border-radius:12px!important;
    font-size:.78rem!important;
    font-weight:900!important;
  }
  #publicSite .mobile-contact a:last-child,
  #publicSite .mobile-contact-v138 a:last-child{color:#fff!important;background:#98172b!important;}
}

@media(max-width:390px){
  #publicSite .site-header .container.nav-shell{padding-inline:11px!important;gap:6px!important;}
  #publicSite .logo{max-width:105px!important;}
  #publicSite .brand-logo-public{max-width:100px!important;}
  #publicSite .nav-actions>.button{width:72px!important;min-width:72px!important;}
  #publicSite .portal-nav-link,#publicSite .menu-button{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;}
  body[data-public-page="start"] #publicSite #start.hero{padding-bottom:286px!important;}
  body[data-public-page="start"] #publicSite #start.hero::before{left:12px!important;right:12px!important;bottom:12px!important;height:260px!important;border-radius:18px!important;}
  body[data-public-page="start"] #publicSite #start.hero .container{padding-inline:15px!important;}
  body[data-public-page="start"] #publicSite #start .hero-content{padding-top:28px!important;}
  body[data-public-page="start"] #publicSite #start h1{font-size:2.5rem!important;}
  body[data-public-page="start"] #publicSite #start .hero-actions{grid-template-columns:1fr!important;}
  #publicSite .home-services-v1382 .trust-grid{grid-template-columns:1fr!important;}
  #publicSite .footer-grid{grid-template-columns:1fr!important;}
}

/* =========================================================
   OIB V138.6 — boxed desktop hero / zero viewport bleed
   ========================================================= */
@media (min-width: 761px) {
  body[data-public-page="start"] #publicSite #start.hero {
    width: min(calc(100% - 40px), var(--max)) !important;
    max-width: var(--max) !important;
    min-height: 560px !important;
    margin: 18px auto 0 !important;
    border: 1px solid #e3e6e8 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 48px rgba(17,19,24,.07) !important;
    overflow: hidden !important;
    background: #fff !important;
  }

  body[data-public-page="start"] #publicSite #start.hero::before {
    inset: 0 !important;
    transform: none !important;
    animation: none !important;
    background-position: center right !important;
    background-size: cover !important;
  }

  body[data-public-page="start"] #publicSite #start.hero::after {
    inset: 0 !important;
    background: linear-gradient(90deg,
      rgba(255,255,255,.995) 0%,
      rgba(255,255,255,.97) 34%,
      rgba(255,255,255,.78) 49%,
      rgba(255,255,255,.20) 68%,
      rgba(255,255,255,.03) 100%) !important;
  }

  body[data-public-page="start"] #publicSite #start.hero > .container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 36px !important;
  }

  body[data-public-page="start"] #publicSite #start .hero-content {
    max-width: 535px !important;
    padding: 82px 0 80px !important;
  }

  body[data-public-page="start"] #publicSite #start h1 {
    max-width: 9.6ch !important;
    font-size: clamp(3.55rem, 5.4vw, 5.15rem) !important;
    line-height: .94 !important;
    letter-spacing: -.055em !important;
  }

  body[data-public-page="start"] #publicSite #start .hero-text {
    max-width: 44ch !important;
    margin: 20px 0 24px !important;
    font-size: 1.02rem !important;
    line-height: 1.55 !important;
  }

  body[data-public-page="start"] #publicSite #start .hero-actions {
    gap: 10px !important;
  }

  body[data-public-page="start"] #publicSite .home-services-v1382 > .container {
    width: min(calc(100% - 40px), var(--max)) !important;
    max-width: var(--max) !important;
  }
}

@media (min-width: 761px) and (max-width: 1020px) {
  body[data-public-page="start"] #publicSite #start.hero {
    min-height: 520px !important;
  }
  body[data-public-page="start"] #publicSite #start.hero > .container {
    padding-inline: 28px !important;
  }
  body[data-public-page="start"] #publicSite #start .hero-content {
    max-width: 470px !important;
    padding-block: 68px !important;
  }
  body[data-public-page="start"] #publicSite #start h1 {
    font-size: clamp(3.2rem, 7vw, 4.35rem) !important;
  }
}

/* =========================================================
   OIB V138.7 — desktop OIB w liczbach visibility/layout fix
   ========================================================= */
@media (min-width: 761px) {
  body[data-public-page="start"] #publicSite .home-numbers-v1382 {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 82px 0 86px !important;
    background: #fff !important;
    color: #111318 !important;
    overflow: visible !important;
  }

  body[data-public-page="start"] #publicSite .home-numbers-v1382 > .container {
    display: block !important;
    width: min(calc(100% - 40px), var(--max)) !important;
    max-width: var(--max) !important;
    margin-inline: auto !important;
  }

  body[data-public-page="start"] #publicSite .home-numbers-v1382 .eyebrow,
  body[data-public-page="start"] #publicSite .home-numbers-v1382 .section-title {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body[data-public-page="start"] #publicSite .home-numbers-v1382 .section-title {
    max-width: 780px !important;
    margin-bottom: 0 !important;
    color: #111318 !important;
  }

  body[data-public-page="start"] #publicSite .home-numbers-v1382 .section-title::after {
    margin-left: 0 !important;
  }

  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1382 {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin: 38px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1382 > article {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 184px !important;
    margin: 0 !important;
    padding: 26px !important;
    background: #fff !important;
    border: 1px solid #e2e5e8 !important;
    border-top: 3px solid #98172b !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 30px rgba(17,19,24,.055) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    overflow: hidden !important;
  }

  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1382 > article strong {
    display: block !important;
    width: auto !important;
    color: #111318 !important;
    font-size: clamp(1.9rem, 2.6vw, 2.85rem) !important;
    line-height: .98 !important;
    letter-spacing: -.045em !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1382 > article span {
    display: block !important;
    margin-top: 28px !important;
    color: #606874 !important;
    font-size: .86rem !important;
    line-height: 1.5 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}

@media (min-width: 761px) and (max-width: 1020px) {
  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1382 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   OIB V138.8 — OIB w liczbach: niezależny layout desktop/mobile
   Cel: brak kolizji ze starszymi regułami article/reveal/grid.
   ========================================================= */
body[data-public-page="start"] #publicSite .home-numbers-v1382{
  display:block!important;
  width:100%!important;
  min-height:0!important;
  padding:76px 0 82px!important;
  background:#fff!important;
  color:#111318!important;
  border-top:1px solid #eceef0!important;
  border-bottom:1px solid #eceef0!important;
  overflow:hidden!important;
}
body[data-public-page="start"] #publicSite .home-numbers-v1382>.container{
  display:block!important;
  width:min(calc(100% - 40px),1180px)!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:0!important;
}
body[data-public-page="start"] #publicSite .home-numbers-v1382 .eyebrow{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  width:auto!important;
  margin:0 0 16px!important;
  color:#98172b!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
body[data-public-page="start"] #publicSite .home-numbers-v1382 .section-title{
  display:block!important;
  max-width:760px!important;
  margin:0!important;
  color:#111318!important;
  text-align:left!important;
  font-size:clamp(2.25rem,3.6vw,4rem)!important;
  line-height:1.02!important;
  letter-spacing:-.045em!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
body[data-public-page="start"] #publicSite .home-numbers-v1382 .section-title::after{
  display:none!important;
}
body[data-public-page="start"] #publicSite .oib-numbers-grid-v1388{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:36px 0 0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
body[data-public-page="start"] #publicSite .oib-number-card-v1388{
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  width:100%!important;
  min-width:0!important;
  min-height:176px!important;
  margin:0!important;
  padding:25px!important;
  background:#fff!important;
  color:#111318!important;
  border:1px solid #e1e4e7!important;
  border-top:3px solid #98172b!important;
  border-radius:12px!important;
  box-shadow:0 12px 30px rgba(17,19,24,.055)!important;
  overflow:hidden!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  position:relative!important;
}
body[data-public-page="start"] #publicSite .oib-number-card-v1388 strong{
  display:block!important;
  margin:0!important;
  color:#111318!important;
  font-size:clamp(1.9rem,2.55vw,2.75rem)!important;
  line-height:.98!important;
  letter-spacing:-.045em!important;
  font-weight:900!important;
  opacity:1!important;
  visibility:visible!important;
}
body[data-public-page="start"] #publicSite .oib-number-card-v1388 span{
  display:block!important;
  margin:26px 0 0!important;
  color:#626b74!important;
  font-size:.86rem!important;
  line-height:1.48!important;
  opacity:1!important;
  visibility:visible!important;
}

@media (min-width:761px) and (max-width:1020px){
  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1388{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:760px){
  body[data-public-page="start"] #publicSite .home-numbers-v1382{
    padding:48px 0 52px!important;
  }
  body[data-public-page="start"] #publicSite .home-numbers-v1382>.container{
    width:calc(100% - 28px)!important;
    max-width:none!important;
  }
  body[data-public-page="start"] #publicSite .home-numbers-v1382 .eyebrow{
    margin-bottom:12px!important;
    font-size:.69rem!important;
  }
  body[data-public-page="start"] #publicSite .home-numbers-v1382 .section-title{
    max-width:12ch!important;
    font-size:clamp(2rem,10.5vw,2.8rem)!important;
    line-height:1.02!important;
  }
  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1388{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    margin-top:26px!important;
  }
  body[data-public-page="start"] #publicSite .oib-number-card-v1388{
    min-height:146px!important;
    padding:18px!important;
    border-radius:10px!important;
    box-shadow:none!important;
  }
  body[data-public-page="start"] #publicSite .oib-number-card-v1388 strong{
    font-size:clamp(1.45rem,7vw,2rem)!important;
    line-height:1!important;
  }
  body[data-public-page="start"] #publicSite .oib-number-card-v1388 span{
    margin-top:18px!important;
    font-size:.75rem!important;
    line-height:1.38!important;
  }
}

@media (max-width:350px){
  body[data-public-page="start"] #publicSite .oib-numbers-grid-v1388{
    grid-template-columns:1fr!important;
  }
  body[data-public-page="start"] #publicSite .oib-number-card-v1388{
    min-height:128px!important;
  }
}

/* ============================================================
   OIB V138.9 — final public/mobile, trust, case study, social
   ============================================================ */
:root{--oib-burgundy:#98172b;--oib-burgundy-dark:#7d1021;--oib-ink:#111318;--oib-muted:#66707a;--oib-line:#e2e5e8;--oib-soft:#f6f7f8}
html,body{max-width:100%;overflow-x:hidden}
#publicSite{max-width:100%;overflow-x:clip}

/* Hero: final, no decorative/proof rows */
body[data-public-page="start"] #hero .hero-proof,
body[data-public-page="start"] #hero .hero-phone,
body[data-public-page="start"] #hero [id^="heroProof"]{display:none!important}
body[data-public-page="start"] #hero .hero-copy{align-self:center}
body[data-public-page="start"] #hero .hero-copy h1{max-width:10.5ch}
body[data-public-page="start"] #hero .hero-copy .lead{max-width:40rem}

/* Trust strip immediately after hero */
.home-trust-v1389{background:#fff;border-block:1px solid var(--oib-line)}
.home-trust-row-v1389{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));padding:0!important}
.home-trust-row-v1389>span{display:flex;min-height:86px;align-items:center;justify-content:center;text-align:center;padding:18px 22px;font-size:.86rem;font-weight:800;color:var(--oib-ink);letter-spacing:.01em;border-right:1px solid var(--oib-line)}
.home-trust-row-v1389>span:last-child{border-right:0}
.home-trust-row-v1389>span::before{content:"";width:6px;height:6px;border-radius:99px;background:var(--oib-burgundy);margin-right:10px;flex:none}

/* 4 key services */
.home-services-v1389{padding:54px 0 64px;background:#fff}
.home-services-grid-v1389{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.home-service-card-v1389{min-width:0;min-height:168px;padding:22px;border:1px solid var(--oib-line);border-radius:12px;text-decoration:none;color:var(--oib-ink);background:#fff;display:flex;flex-direction:column;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.home-service-card-v1389:hover{transform:translateY(-3px);border-color:#c9cdd1;box-shadow:0 15px 36px rgba(17,19,24,.08)}
.home-service-card-v1389>span{font-size:.68rem;font-weight:900;color:var(--oib-burgundy);letter-spacing:.09em}
.home-service-card-v1389>strong{font-size:1.18rem;line-height:1.12;margin-top:auto}
.home-service-card-v1389>small{display:block;color:var(--oib-muted);line-height:1.45;margin-top:8px}

/* Map filters */
.map-scope-filters-v1389{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.map-scope-filters-v1389 button{appearance:none;border:1px solid #d9dde1;background:#fff;color:#24282e;border-radius:999px;padding:9px 14px;font:800 .78rem/1 inherit;cursor:pointer}
.map-scope-filters-v1389 button.active,.map-scope-filters-v1389 button:hover{background:var(--oib-burgundy);border-color:var(--oib-burgundy);color:#fff}
.leaflet-marker-icon .map-marker,.map-marker{background:var(--oib-burgundy)!important;border:3px solid #fff!important;box-shadow:0 4px 12px rgba(152,23,43,.3)!important}
.oib-map-popup-v1382{overflow:hidden;border-radius:12px;background:#fff}
.oib-map-popup-v1382>img{width:100%;height:150px;object-fit:cover;display:block}
.oib-map-popup-body-v1382{padding:12px 14px 14px}
.oib-map-popup-body-v1382 strong{display:block;font-size:1rem;line-height:1.2;margin-bottom:5px}
.oib-map-popup-meta-v1382,.oib-map-popup-scope-v1382{margin:4px 0;color:#626b74;font-size:.78rem;line-height:1.35}

/* Case study */
.case-study-v1389{padding-top:34px}
.case-back-v1389{display:inline-flex;margin-bottom:24px;color:var(--oib-burgundy);font-weight:800;text-decoration:none}
.case-hero-v1389{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:44px;align-items:center}
.case-copy-v1389 .section-title{font-size:clamp(2.6rem,4.7vw,5rem);max-width:11ch}
.case-cover-v1389{margin:0;border-radius:16px;overflow:hidden;min-height:430px;background:#eee}
.case-cover-v1389 img{width:100%;height:100%;min-height:430px;object-fit:cover;display:block}
.case-meta-v1389{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--oib-line);border:1px solid var(--oib-line);margin-top:28px;border-radius:10px;overflow:hidden}
.case-meta-v1389>span{padding:16px;background:#fff;display:flex;flex-direction:column;gap:4px;min-width:0}
.case-meta-v1389 small{color:var(--oib-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.case-meta-v1389 strong{font-size:.91rem;line-height:1.35}
.case-story-grid-v1389{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:50px}
.case-story-grid-v1389 article{padding:26px;border:1px solid var(--oib-line);border-top:3px solid var(--oib-burgundy);border-radius:12px;background:#fff}
.case-story-grid-v1389 h2{font-size:1.5rem;margin:.35rem 0 1rem}
.case-gallery-v1389{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:28px}
.case-gallery-v1389 a{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#eee}
.case-gallery-v1389 img{width:100%;height:100%;object-fit:cover;display:block}
.case-cta-v1389{margin-top:42px;padding:30px 34px;border-radius:14px;background:#111318;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px}
.case-cta-v1389 h2{font-size:2rem;margin:.2rem 0 .4rem;color:#fff}.case-cta-v1389 p{margin:0;color:#cdd1d5}.case-cta-v1389 .eyebrow{color:#f2bcc5}

/* Quick form and success */
.quick-lead-form-v1389{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.quick-docs-v1389{padding:14px 15px;border:1px solid var(--oib-line);border-radius:9px;background:#fafafa}
.quick-docs-v1389 summary{cursor:pointer;font-weight:800;color:#25282c}.quick-docs-v1389 input{margin-top:12px}.quick-docs-v1389 small{display:block;margin-top:7px;color:var(--oib-muted)}
.inquiry-success-v1389{border:0;padding:0;background:transparent;max-width:min(92vw,630px)}
.inquiry-success-v1389::backdrop{background:rgba(17,19,24,.58);backdrop-filter:blur(4px)}
.inquiry-success-card-v1389{position:relative;background:#fff;padding:34px;border-radius:16px;box-shadow:0 28px 90px rgba(0,0,0,.22)}
.inquiry-success-check-v1389{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e7f6ec;color:#16723b;font-size:26px;font-weight:900;margin-bottom:18px}
.inquiry-success-card-v1389 h2{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.02;letter-spacing:-.035em}.inquiry-success-card-v1389 ol{padding-left:1.3rem;color:#4d555d;line-height:1.55}
.inquiry-success-id-v1389{margin:20px 0;padding:13px 15px;border-left:3px solid var(--oib-burgundy);background:#f5f6f7;display:flex;align-items:center;justify-content:space-between;gap:18px}.inquiry-success-id-v1389 small{color:var(--oib-muted)}

/* Social */
.oib-social-links-v1389,.topbar-social-v1389{display:flex;gap:8px;align-items:center}.oib-social-links-v1389 a,.topbar-social-v1389 a{font-weight:800;text-decoration:none;color:inherit}.oib-social-links-v1389 a:hover,.topbar-social-v1389 a:hover{color:var(--oib-burgundy)}

/* Mobile pass: 390–430 focus, safe on 360 */
@media (max-width:760px){
  :root{--mobile-pad:16px}
  #publicSite .container{width:auto!important;max-width:none!important;margin-left:var(--mobile-pad)!important;margin-right:var(--mobile-pad)!important}
  #publicSite .section{padding-top:46px!important;padding-bottom:46px!important}
  #publicSite h1,.page-header-simple h1{font-size:clamp(2.15rem,10.2vw,2.7rem)!important;line-height:.99!important;letter-spacing:-.045em!important;overflow-wrap:normal;word-break:normal}
  #publicSite .section-title,#publicSite h2{font-size:clamp(1.82rem,8vw,2.18rem)!important;line-height:1.02!important;letter-spacing:-.035em!important}
  #publicSite .lead{font-size:1rem!important;line-height:1.53!important}

  .site-header{min-height:66px!important;height:auto!important;background:#fff!important;box-shadow:0 5px 18px rgba(17,19,24,.06)!important}
  .site-header .header-inner,.site-header>.container{min-height:66px!important;padding:8px 0!important;gap:8px!important}
  .site-logo,.brand-logo{max-width:86px!important;min-width:70px!important;height:auto!important}
  .mobile-quote-button,.header-quote,.portal-nav-link{min-height:42px!important;height:42px!important;padding:0 12px!important;border-radius:9px!important;font-size:.77rem!important;white-space:nowrap!important}
  #menuButton,.account-button,.header-account{width:42px!important;height:42px!important;min-width:42px!important;border-radius:9px!important;padding:0!important}
  .site-header.menu-open .main-nav{left:var(--mobile-pad)!important;right:var(--mobile-pad)!important;width:auto!important;top:calc(100% + 8px)!important;border:1px solid var(--oib-line)!important;border-radius:12px!important;padding:6px!important;box-shadow:0 16px 40px rgba(17,19,24,.13)!important}
  .site-header.menu-open .main-nav a{min-height:44px!important;padding:11px 12px!important;border-radius:7px!important;font-size:.94rem!important}

  body[data-public-page="start"] #hero{margin:0!important;border-radius:0!important;box-shadow:none!important;border:0!important;background:#fff!important}
  body[data-public-page="start"] #hero .hero-shell,body[data-public-page="start"] #hero>.container{display:flex!important;flex-direction:column!important;gap:22px!important;padding-top:34px!important;padding-bottom:0!important}
  body[data-public-page="start"] #hero .hero-copy{padding:0!important;width:100%!important}
  body[data-public-page="start"] #hero .hero-copy h1{font-size:clamp(2.55rem,12.6vw,3.25rem)!important;line-height:.93!important;max-width:8.8ch!important;margin-bottom:18px!important}
  body[data-public-page="start"] #hero .hero-copy .lead{font-size:.98rem!important;line-height:1.55!important;max-width:31rem!important;margin-bottom:20px!important}
  body[data-public-page="start"] #hero .hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:0!important}
  body[data-public-page="start"] #hero .hero-actions .button{min-height:48px!important;padding:0 8px!important;border-radius:10px!important;font-size:.78rem!important}
  body[data-public-page="start"] #hero .hero-visual,body[data-public-page="start"] #hero .hero-media{position:relative!important;inset:auto!important;width:100%!important;height:220px!important;min-height:220px!important;border-radius:12px!important;overflow:hidden!important;margin:0 0 16px!important;background-position:center 65%!important;background-size:cover!important;opacity:1!important}
  body[data-public-page="start"] #hero::before,body[data-public-page="start"] #hero::after{display:none!important}

  .home-trust-v1389{margin-top:0!important}
  .home-trust-row-v1389{display:grid!important;grid-template-columns:1fr 1fr!important;padding:8px 0!important}
  .home-trust-row-v1389>span{min-height:64px!important;justify-content:flex-start!important;text-align:left!important;padding:11px 10px!important;font-size:.72rem!important;line-height:1.25!important;border-right:0!important;border-bottom:1px solid var(--oib-line)!important}
  .home-trust-row-v1389>span:nth-child(odd){border-right:1px solid var(--oib-line)!important}.home-trust-row-v1389>span:nth-last-child(-n+2){border-bottom:0!important}
  .home-services-v1389{padding:38px 0 44px!important}.home-services-grid-v1389{grid-template-columns:1fr 1fr!important;gap:8px!important}.home-service-card-v1389{min-height:142px!important;padding:16px!important}.home-service-card-v1389>strong{font-size:.98rem!important}.home-service-card-v1389>small{font-size:.72rem!important}

  #projectGrid,.project-grid,#homeProjectGrid{grid-template-columns:1fr!important;gap:12px!important;width:100%!important}.project-card{width:100%!important;min-width:0!important;margin:0!important}.project-card img,.project-card .project-visual{height:auto!important;aspect-ratio:16/10!important;object-fit:cover!important}
  .map-scope-filters-v1389{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:7px!important}.map-scope-filters-v1389 button{padding:10px 7px!important;font-size:.72rem!important}.map-shell,#projectMap,.project-map{min-height:300px!important;height:330px!important;max-height:56vh!important;border-radius:12px!important;overflow:hidden!important}

  .quick-lead-shell-v138{grid-template-columns:1fr!important;gap:24px!important}.quick-lead-form-v1389{grid-template-columns:1fr!important;width:100%!important}.quick-lead-form-v1389 .field,.quick-lead-form-v1389 input,.quick-lead-form-v1389 textarea{min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important}
  #contactForm,.quote-shell,.contact-layout,.booking-layout{width:100%!important;max-width:100%!important;min-width:0!important}.quote-grid,.contact-layout{grid-template-columns:1fr!important}.quote-step-nav{overflow-x:auto!important;scrollbar-width:none!important}.quote-step-nav>*{min-width:118px!important;flex:0 0 auto!important}

  .case-study-v1389{padding-top:24px!important}.case-hero-v1389{grid-template-columns:1fr!important;gap:22px!important}.case-copy-v1389 .section-title{max-width:none!important}.case-cover-v1389,.case-cover-v1389 img{min-height:0!important;aspect-ratio:4/3!important}.case-meta-v1389{grid-template-columns:1fr 1fr!important}.case-meta-v1389>span{padding:12px!important}.case-story-grid-v1389{grid-template-columns:1fr!important;gap:9px!important;margin-top:24px!important}.case-gallery-v1389{grid-template-columns:1fr 1fr!important}.case-cta-v1389{margin-top:28px!important;padding:22px!important;display:block!important}.case-cta-v1389 .button{width:100%!important;margin-top:16px!important}

  .inquiry-success-card-v1389{padding:24px 18px!important}.inquiry-success-card-v1389 .hero-actions{display:grid!important;grid-template-columns:1fr!important}.inquiry-success-v1389{width:calc(100% - 28px)!important}

  .mobile-sticky,.mobile-contact-bar,.sticky-mobile-cta{padding-bottom:calc(8px + env(safe-area-inset-bottom))!important;grid-template-columns:1fr 1.35fr!important;gap:7px!important}.mobile-sticky>*:nth-child(n+3),.mobile-contact-bar>*:nth-child(n+3),.sticky-mobile-cta>*:nth-child(n+3){display:none!important}
  body{padding-bottom:env(safe-area-inset-bottom)}
}

@media (min-width:761px) and (max-width:1050px){.home-services-grid-v1389{grid-template-columns:repeat(2,minmax(0,1fr))}.home-trust-row-v1389{grid-template-columns:repeat(2,minmax(0,1fr))}.home-trust-row-v1389>span:nth-child(2){border-right:0}.case-hero-v1389{gap:26px}.case-story-grid-v1389{grid-template-columns:1fr}}


/* ================= OIB V139 — SOCIAL + REALIZACJE ================= */
.social-links-v139{display:flex;align-items:center;gap:8px!important}.social-link-v139{display:inline-flex!important;align-items:center;gap:6px;padding:5px 8px!important;border:1px solid #e3e5e7;border-radius:8px;background:#fff;color:#282d33!important;text-decoration:none!important;font-weight:800!important;font-size:11px!important}.social-link-v139 svg{width:16px;height:16px;fill:currentColor}.social-link-v139:hover{border-color:#98172b;color:#98172b!important}.contact-social-v139{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.social-card-v139{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:68px;padding:12px 14px;border:1px solid #e1e4e7;border-radius:12px;background:#fff;color:#15191e;text-decoration:none!important;box-shadow:0 8px 22px rgba(17,19,24,.04)}.social-card-v139 svg{width:30px;height:30px;padding:6px;border-radius:9px;fill:#fff;background:#98172b}.social-card-v139.facebook svg{background:#1877f2}.social-card-v139.instagram svg{background:linear-gradient(145deg,#833ab4,#fd1d1d,#fcb045)}.social-card-v139 span{display:grid}.social-card-v139 strong{font-size:14px}.social-card-v139 small{color:#6c7480;font-size:11px}.social-card-v139 b{font-size:18px;color:#98172b}.footer-social-v139{display:grid;gap:8px;margin-top:10px}.footer-social-v139 a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}.footer-social-v139 svg{width:18px;height:18px;fill:#98172b}.case-meta-v1389 span{min-width:0}.case-meta-v1389 strong{overflow-wrap:anywhere}
@media(max-width:760px){.topbar-social{display:none!important}.contact-social-v139{grid-template-columns:1fr}.social-card-v139{min-height:62px}.footer-social-v139{grid-template-columns:1fr 1fr}.case-meta-v1389{grid-template-columns:1fr 1fr!important}}

/* V139: topbar bez sociali; social media są w dedykowanych kartach kontaktu i stopce. */
.topbar-contact{display:flex;align-items:center;gap:9px;white-space:nowrap}.topbar-contact>span{color:#9aa0a6}.topbar-contact a{display:inline-flex;align-items:center}.topbar .container{justify-content:flex-end!important}


/* OIB V139.2 — realizacje: prawdziwa typologia, bez 136 identycznych bannerów */
.map-coverage-v1392{display:inline-flex;align-items:center;gap:4px;margin:14px 0 10px;padding:8px 11px;border:1px solid #e5d4d7;border-radius:9px;background:#fff9fa;color:#6a4650;font-size:12px}.map-coverage-v1392 strong{color:#a4142b}
#projectGrid.project-grid{align-items:stretch}.project-card-v1392{display:flex!important;flex-direction:column;overflow:hidden;border:1px solid #dde1e6!important;border-radius:15px!important;background:#fff!important;box-shadow:0 8px 30px rgba(17,19,24,.05)!important;transform:none!important;opacity:1!important}.project-card-v1392:hover{border-color:#c9adb3!important;box-shadow:0 15px 40px rgba(17,19,24,.09)!important;transform:translateY(-2px)!important}.project-photo-v1392{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#eceff1}.project-technical-v1392{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:205px;padding:22px;background:linear-gradient(145deg,#15171c,#252830);color:#fff;overflow:hidden}.project-technical-v1392:after{content:"";position:absolute;inset:auto -70px -105px auto;width:220px;height:220px;border-radius:50%;background:rgba(164,20,43,.28)}.project-tech-mark-v1392{display:flex;align-items:center;gap:2px;font-size:16px;font-weight:900;letter-spacing:-1px}.project-tech-mark-v1392 i{font-style:normal;color:#ce263e}.project-technical-v1392 svg{position:absolute;right:10px;top:25px;width:70%;height:125px;fill:none;stroke:rgba(255,255,255,.16);stroke-width:1}.project-technical-v1392>div:last-child{position:relative;z-index:2;display:grid;gap:5px;margin-top:auto}.project-technical-v1392>div:last-child strong{font-size:17px;line-height:1.2;max-width:85%}.project-technical-v1392>div:last-child span{font-size:11px;color:#c7cbd1}.project-content-v1392{display:flex;flex-direction:column;flex:1;padding:18px 19px 19px!important}.project-card-top-v1392{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px;color:#a4142b;font-size:9px;font-weight:900;letter-spacing:.1em}.project-card-top-v1392 b{color:#6c7480;font-weight:750;letter-spacing:0;text-align:right}.project-content-v1392 h3{margin:0 0 16px!important;font-size:21px!important;line-height:1.08!important;letter-spacing:-.025em!important}.project-facts-v1392{display:grid;grid-template-columns:1fr 1fr;margin:0 0 14px;border:1px solid #e4e7eb;border-radius:9px;overflow:hidden}.project-facts-v1392>div{padding:10px 11px}.project-facts-v1392>div+div{border-left:1px solid #e4e7eb}.project-facts-v1392 dt{margin-bottom:4px;color:#8a929e;font-size:8px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.project-facts-v1392 dd{margin:0;color:#20242a;font-size:11px;font-weight:800;line-height:1.35}.project-desc-v1392{margin:0 0 13px;color:#69717e;font-size:12px;line-height:1.5}.project-link-v1392{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid #eceef1;color:#16191e;text-decoration:none;font-size:11px;font-weight:900}.project-link-v1392 span{color:#a4142b;font-size:17px}.project-more-v1392{text-align:center;margin-top:28px}.project-more-v1392[hidden]{display:none!important}.projects-empty-v1392{grid-column:1/-1;display:grid;gap:5px;padding:36px;border:1px dashed #d9dde2;border-radius:14px;text-align:center;color:#737b87}.projects-empty-v1392 strong{color:#252a31}.map-popup-v1392{overflow:hidden;border-radius:10px;background:#fff}.map-popup-v1392>img{display:block;width:100%;height:125px;object-fit:cover}.map-popup-tech-v1392{display:flex;align-items:center;justify-content:center;min-height:92px;padding:18px;background:linear-gradient(145deg,#15171c,#2b1a20);color:#fff;font-size:12px;font-weight:900;text-align:center}.map-popup-tech-v1392 span{margin:0 7px;color:#d32640}.map-popup-v1392>div:last-child{padding:13px}.map-popup-v1392 small{display:block;margin-bottom:5px;color:#a4142b;font-weight:800}.map-popup-v1392 strong{display:block;font-size:15px;line-height:1.2}.map-popup-v1392 p{margin:8px 0;font-size:11px;line-height:1.4}.map-popup-v1392 a{color:#a4142b;font-size:11px;font-weight:900;text-decoration:none}
@media(max-width:760px){.project-facts-v1392{grid-template-columns:1fr}.project-facts-v1392>div+div{border-left:0;border-top:1px solid #e4e7eb}.project-technical-v1392{min-height:180px}.map-coverage-v1392{display:flex;line-height:1.4}.project-content-v1392 h3{font-size:19px!important}}

/* =========================================================
   OIB V139.3 — HERO INTEGRATED + WORKING REALIZACJE FILTERS
   ========================================================= */
@media (min-width:761px){
  body[data-public-page="start"] #publicSite #start.hero{
    width:100%!important;
    max-width:none!important;
    min-height:590px!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:#f7f6f4!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::before{
    content:""!important;
    position:absolute!important;
    inset:0 0 0 46%!important;
    width:auto!important;
    height:auto!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background-image:var(--oib-desktop-bg,var(--oib-hero-custom-bg,var(--oib-v138-hero-desktop)))!important;
    background-size:cover!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    opacity:1!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0!important;
    background:linear-gradient(90deg,#f7f6f4 0%,#f7f6f4 38%,rgba(247,246,244,.96) 43%,rgba(247,246,244,.66) 51%,rgba(247,246,244,.10) 65%,rgba(247,246,244,0) 78%)!important;
    pointer-events:none!important;
  }
  body[data-public-page="start"] #publicSite #start.hero>.container{
    position:relative!important;
    z-index:2!important;
    width:min(calc(100% - 48px),var(--max))!important;
    max-width:var(--max)!important;
    min-height:590px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-content{
    width:min(520px,46%)!important;
    max-width:520px!important;
    padding:76px 0 72px!important;
    margin:0!important;
    background:transparent!important;
  }
  body[data-public-page="start"] #publicSite #start h1{
    max-width:9.4ch!important;
    font-size:clamp(3.7rem,5.25vw,5.35rem)!important;
    line-height:.92!important;
    letter-spacing:-.058em!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-text{
    max-width:43ch!important;
    margin:22px 0 27px!important;
    color:#555d67!important;
    font-size:1.05rem!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-actions{
    display:flex!important;
    width:auto!important;
    gap:10px!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-actions .button{
    width:auto!important;
    min-width:0!important;
    min-height:50px!important;
    padding:0 19px!important;
    border-radius:10px!important;
  }
  body[data-public-page="start"] #publicSite .home-trust-v1389{
    border-top:1px solid #e7e7e5!important;
    border-bottom:1px solid #e7e7e5!important;
    background:#fff!important;
  }
  body[data-public-page="start"] #publicSite .home-trust-row-v1389{
    width:min(calc(100% - 48px),var(--max))!important;
    max-width:var(--max)!important;
    margin:0 auto!important;
  }
  body[data-public-page="start"] #publicSite .home-trust-row-v1389>span{
    min-height:74px!important;
    border-color:#ececeb!important;
  }
}

@media (min-width:761px) and (max-width:1050px){
  body[data-public-page="start"] #publicSite #start.hero,
  body[data-public-page="start"] #publicSite #start.hero>.container{min-height:530px!important}
  body[data-public-page="start"] #publicSite #start.hero::before{left:48%!important}
  body[data-public-page="start"] #publicSite #start .hero-content{width:50%!important;max-width:470px!important;padding-block:62px!important}
  body[data-public-page="start"] #publicSite #start h1{font-size:clamp(3.15rem,6.7vw,4.4rem)!important}
}

/* Filtry realizacji muszą być prawdziwymi kontrolkami, nie dekoracją. */
#publicSite #mapScopeFilters.map-scope-filters-v1389{
  position:relative!important;
  z-index:30!important;
  pointer-events:auto!important;
  isolation:isolate!important;
}
#publicSite #mapScopeFilters [data-map-scope]{
  position:relative!important;
  z-index:31!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  cursor:pointer!important;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease!important;
}
#publicSite #mapScopeFilters [data-map-scope]:active{transform:translateY(1px)!important}
#publicSite #mapScopeFilters [data-map-scope].active,
#publicSite #mapScopeFilters [data-map-scope][aria-pressed="true"]{
  background:#a4142b!important;
  border-color:#a4142b!important;
  color:#fff!important;
  box-shadow:0 7px 18px rgba(164,20,43,.14)!important;
}

@media(max-width:760px){
  body[data-public-page="start"] #publicSite #start.hero{background:#fff!important}
  #publicSite #mapScopeFilters.map-scope-filters-v1389{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;gap:7px!important;padding:2px 1px 8px!important;scrollbar-width:none!important}
  #publicSite #mapScopeFilters.map-scope-filters-v1389::-webkit-scrollbar{display:none!important}
  #publicSite #mapScopeFilters [data-map-scope]{flex:0 0 auto!important;min-height:40px!important;padding:0 13px!important;font-size:.76rem!important}
}


/* =========================================================
   OIB V139.4 — HERO IMAGE FAILSAFE
   V139.3 referenced an undefined fallback variable.
   ========================================================= */
@media (min-width:761px){
  body[data-public-page="start"] #publicSite #start.hero::before{
    display:block!important;
    content:""!important;
    background-image:var(--oib-desktop-bg,var(--oib-hero-custom-bg,var(--oib-v138-hero-desktop)))!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
    background-position:center center!important;
    opacity:1!important;
  }
}
@media (max-width:760px){
  body[data-public-page="start"] #publicSite #start.hero::before{
    background-image:var(--oib-mobile-bg,var(--oib-v138-hero-mobile))!important;
  }
}


/* OIB V139.5 — spokojny komunikat pokrycia mapy */
.map-coverage-v1392{display:flex!important;align-items:center;gap:5px;flex-wrap:wrap;background:transparent!important;border:0!important;padding:0!important;margin:16px 0 14px!important;color:#5d636b!important;font-size:13px!important;line-height:1.45!important;box-shadow:none!important}
.map-coverage-v1392 strong{color:#17191b;font-weight:800}.map-coverage-v1392.is-ready:before{content:"";width:7px;height:7px;border-radius:50%;background:#a6192e;flex:0 0 auto;margin-right:3px}
.map-popup-location-note-v1395{font-size:11px!important;line-height:1.4!important;color:#697078!important;margin:7px 0 9px!important}


/* =========================================================
   OIB V139.6 — wspólna oś layoutu + mapa bez filtrów/klastrów
   ========================================================= */
@media (min-width:1181px){
  #publicSite .site-header .container.nav-shell,
  #publicSite .topbar .container,
  #publicSite #main > section > .container,
  #publicSite #main > .section > .container,
  #publicSite #main > .hero > .container{
    width:min(calc(100% - 40px),var(--max))!important;
    max-width:var(--max)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* Filtry typu „Wszystkie / Projektowanie / Konstrukcje…” usunięte z mapy w V139.6. */
#publicSite #mapScopeFilters{display:none!important}

/* Każda realizacja ma osobny punkt — bez klastrów zasłaniających lokalizacje. */
#publicSite .oib-marker-wrap-v1396{background:transparent!important;border:0!important}
#publicSite .map-marker-v1396{
  display:block!important;
  width:100%!important;
  height:100%!important;
  border-radius:50%!important;
  background:#a6192e!important;
  border:2px solid #fff!important;
  box-shadow:0 2px 7px rgba(22,24,28,.28)!important;
}
#publicSite .map-marker-v1396--regional{
  background:#b54b5c!important;
  border-width:1.5px!important;
  box-shadow:0 1px 4px rgba(22,24,28,.20)!important;
}
#publicSite .map-marker-v1396--known{
  background:#951529!important;
}
#publicSite .leaflet-tooltip{
  border:1px solid #e1d7d9!important;
  border-radius:7px!important;
  box-shadow:0 7px 20px rgba(17,19,24,.12)!important;
  color:#17191b!important;
  font-weight:700!important;
  font-size:12px!important;
}

/* Status mapy ma być informacją, nie technicznym komunikatem ładowania. */
#publicSite .map-coverage-v1392{margin-top:10px!important;margin-bottom:12px!important}

/* =========================================================
   OIB V139.8 — FINAL MOBILE HEADER + ALWAYS-VISIBLE CTA BAR
   iPhone / 360–430 px
   ========================================================= */
@media (max-width:760px){
  :root{--oib-v1398-mobile-edge:12px;--oib-v1398-header-h:70px}

  /* Nagłówek: logo + Wycena + konto + menu na jednej osi. */
  #publicSite .site-header{
    min-height:var(--oib-v1398-header-h)!important;
    height:auto!important;
    background:rgba(255,255,255,.98)!important;
    box-shadow:0 6px 20px rgba(17,19,24,.065)!important;
  }
  #publicSite .site-header .container.nav-shell{
    box-sizing:border-box!important;
    width:100%!important;
    min-height:var(--oib-v1398-header-h)!important;
    margin:0!important;
    padding:10px var(--oib-v1398-mobile-edge)!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto 46px!important;
    align-items:center!important;
    column-gap:7px!important;
  }
  #publicSite .logo{
    grid-column:1!important;
    justify-self:start!important;
    align-self:center!important;
    min-width:0!important;
    max-width:118px!important;
    height:46px!important;
    display:flex!important;
    align-items:center!important;
    margin:0!important;
    padding:0!important;
  }
  #publicSite .logo-mark{
    display:block!important;
    font-size:1.75rem!important;
    line-height:1!important;
    letter-spacing:-.06em!important;
  }
  #publicSite .brand-logo-public{
    display:block!important;
    width:auto!important;
    max-width:116px!important;
    max-height:34px!important;
    object-fit:contain!important;
    object-position:left center!important;
  }
  #publicSite .logo-copy{display:none!important}

  #publicSite .nav-actions{
    grid-column:2!important;
    justify-self:end!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    margin:0!important;
  }
  #publicSite .nav-actions>.button{
    width:84px!important;
    min-width:84px!important;
    height:46px!important;
    min-height:46px!important;
    padding:0 10px!important;
    border-radius:13px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-shadow:0 7px 18px rgba(152,23,43,.11)!important;
  }
  #publicSite .nav-actions>.button::after{
    font-size:.8rem!important;
    line-height:1!important;
  }
  #publicSite .portal-nav-link{
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
    padding:0!important;
    border-radius:13px!important;
    display:grid!important;
    place-items:center!important;
    box-shadow:0 7px 18px rgba(152,23,43,.11)!important;
  }
  #publicSite .portal-nav-link .portal-nav-icon{
    width:27px!important;
    min-width:27px!important;
    height:27px!important;
  }

  #publicSite #menuButton{
    grid-column:3!important;
    justify-self:end!important;
    align-self:center!important;
    display:grid!important;
    place-items:center!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
    padding:0!important;
    margin:0!important;
    border-radius:13px!important;
    box-shadow:0 7px 18px rgba(152,23,43,.11)!important;
  }
  #publicSite #menuButton .oib-menu-svg{
    display:block!important;
    width:24px!important;
    height:20px!important;
    overflow:visible!important;
  }
  #publicSite #menuButton .oib-menu-line{
    stroke-width:2.5!important;
    stroke-linecap:round!important;
    opacity:1!important;
    transform:none!important;
    transition:opacity .15s ease!important;
  }
  /* Na telefonie przycisk pozostaje czytelnym hamburgerem także przy otwartym menu. */
  #publicSite .site-header.menu-open #menuButton .oib-menu-line-1,
  #publicSite .site-header.menu-open #menuButton .oib-menu-line-2,
  #publicSite .site-header.menu-open #menuButton .oib-menu-line-3{
    transform:none!important;
    opacity:1!important;
  }
  #publicSite .site-header.menu-open #menuButton{
    background:#861326!important;
    border-color:#861326!important;
  }

  #publicSite .main-nav{
    top:calc(100% + 7px)!important;
    left:var(--oib-v1398-mobile-edge)!important;
    right:var(--oib-v1398-mobile-edge)!important;
    width:auto!important;
    border-radius:15px!important;
    overflow:hidden!important;
  }

  /* Dolny pasek: naprawdę fixed. Starsze inset/contain nie mogą go zepchnąć pod viewport. */
  html,body{min-height:100%!important}
  body{
    padding-bottom:calc(92px + env(safe-area-inset-bottom))!important;
  }
  #publicSite .site-footer{
    padding-bottom:calc(132px + env(safe-area-inset-bottom))!important;
  }
  body > .mobile-contact,
  #publicSite .mobile-contact,
  #publicSite .mobile-contact-v138{
    box-sizing:border-box!important;
    position:fixed!important;
    inset:auto max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    top:auto!important;
    z-index:2147483000!important;
    width:auto!important;
    min-height:64px!important;
    height:64px!important;
    margin:0!important;
    padding:6px!important;
    display:grid!important;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.45fr)!important;
    gap:6px!important;
    overflow:visible!important;
    contain:none!important;
    transform:none!important;
    -webkit-transform:none!important;
    will-change:auto!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    border:1px solid rgba(20,22,24,.10)!important;
    border-radius:17px!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 14px 38px rgba(17,19,24,.20)!important;
    backdrop-filter:blur(16px)!important;
    -webkit-backdrop-filter:blur(16px)!important;
  }
  #publicSite .mobile-contact a,
  #publicSite .mobile-contact-v138 a{
    box-sizing:border-box!important;
    min-width:0!important;
    width:100%!important;
    height:52px!important;
    min-height:52px!important;
    margin:0!important;
    padding:0 10px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:row!important;
    border:0!important;
    border-radius:12px!important;
    font-size:.8rem!important;
    font-weight:900!important;
    line-height:1!important;
    text-align:center!important;
    text-decoration:none!important;
    white-space:nowrap!important;
  }
  #publicSite .mobile-contact a:first-child,
  #publicSite .mobile-contact-v138 a:first-child{
    background:#f2f3f5!important;
    color:#17191d!important;
  }
  #publicSite .mobile-contact a:last-child,
  #publicSite .mobile-contact-v138 a:last-child{
    background:#98172b!important;
    color:#fff!important;
  }
}

@media (max-width:380px){
  :root{--oib-v1398-mobile-edge:9px}
  #publicSite .site-header .container.nav-shell{column-gap:5px!important}
  #publicSite .logo{max-width:96px!important}
  #publicSite .brand-logo-public{max-width:94px!important}
  #publicSite .nav-actions{gap:5px!important}
  #publicSite .nav-actions>.button{width:76px!important;min-width:76px!important}
  #publicSite .portal-nav-link,
  #publicSite #menuButton{width:43px!important;min-width:43px!important;max-width:43px!important;height:43px!important;min-height:43px!important;max-height:43px!important}
}


/* =========================================================
   OIB V139.10 — MOBILE POLISH ONLY
   Desktop, realizacje and application logic intentionally unchanged.
   ========================================================= */
@media (max-width:760px){
  /* 1. Header — more compact rhythm, same controls and behavior. */
  :root{--oib-v13910-edge:11px;--oib-v13910-header-h:64px}
  #publicSite .site-header{min-height:var(--oib-v13910-header-h)!important}
  #publicSite .site-header .container.nav-shell{
    min-height:var(--oib-v13910-header-h)!important;
    padding:8px var(--oib-v13910-edge)!important;
    column-gap:6px!important;
  }
  #publicSite .logo{height:42px!important;max-width:108px!important}
  #publicSite .brand-logo-public{max-width:106px!important;max-height:31px!important}
  #publicSite .nav-actions{gap:6px!important}
  #publicSite .nav-actions>.button{width:78px!important;min-width:78px!important;height:42px!important;min-height:42px!important;border-radius:12px!important;padding:0 9px!important}
  #publicSite .portal-nav-link,#publicSite #menuButton{width:42px!important;min-width:42px!important;max-width:42px!important;height:42px!important;min-height:42px!important;max-height:42px!important;border-radius:12px!important}
  #publicSite .portal-nav-link .portal-nav-icon{width:25px!important;min-width:25px!important;height:25px!important}
  #publicSite #menuButton .oib-menu-svg{width:22px!important;height:18px!important}
  #publicSite .main-nav{left:var(--oib-v13910-edge)!important;right:var(--oib-v13910-edge)!important;top:calc(100% + 6px)!important}

  /* 2. Quote wizard — one current step + clear progress bar. */
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress{
    position:relative!important;
    display:block!important;
    min-height:53px!important;
    margin:0 0 18px!important;
    padding:0 0 12px!important;
    background:transparent!important;
    border:0!important;
    overflow:visible!important;
  }
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress::before,
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress::after{
    content:"";
    position:absolute;
    left:0;bottom:0;
    height:4px;
    border-radius:999px;
  }
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress::before{right:0;background:#eceef0}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress::after{width:20%;background:#98172b;transition:width .2s ease}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress:has([data-quote-progress="2"].active)::after{width:40%}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress:has([data-quote-progress="3"].active)::after{width:60%}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress:has([data-quote-progress="4"].active)::after{width:80%}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress:has([data-quote-progress="5"].active)::after{width:100%}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress>span{display:none!important}
  body[data-public-page="wycena"] #publicSite .quote-progress.quote-pro-progress>span.active{
    display:block!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#17191d!important;
    font-size:.92rem!important;
    font-weight:850!important;
    line-height:1.25!important;
  }
  body[data-public-page="wycena"] #publicSite .quote-step>h3[data-step-kicker]{margin-top:0!important;font-size:1.32rem!important;line-height:1.16!important}
  body[data-public-page="wycena"] #publicSite .quote-step>h3[data-step-kicker]::before{margin-bottom:5px!important;font-size:.68rem!important;letter-spacing:.12em!important}
  body[data-public-page="wycena"] #publicSite .quote-step>p{font-size:.9rem!important;line-height:1.55!important;margin-top:-2px!important}

  /* 3. Services — card-first layout and one primary mobile action. */
  body[data-public-page="oferta"] #publicSite .service-grid{gap:12px!important}
  body[data-public-page="oferta"] #publicSite .service-card{
    padding:17px!important;
    border-radius:14px!important;
    border:1px solid #e2e4e7!important;
    box-shadow:0 7px 20px rgba(17,19,24,.045)!important;
    background:#fff!important;
  }
  body[data-public-page="oferta"] #publicSite .service-card h3{font-size:1.12rem!important;line-height:1.2!important;margin:10px 0 7px!important}
  body[data-public-page="oferta"] #publicSite .service-card>p{font-size:.88rem!important;line-height:1.5!important;margin-bottom:10px!important}
  body[data-public-page="oferta"] #publicSite .service-card ul{margin:10px 0 14px!important;padding-left:18px!important;font-size:.84rem!important;line-height:1.48!important}
  body[data-public-page="oferta"] #publicSite .service-card-actions{display:block!important;margin-top:14px!important}
  body[data-public-page="oferta"] #publicSite .service-card-actions>a{display:none!important}
  body[data-public-page="oferta"] #publicSite .service-card-actions>a:first-child{
    display:flex!important;width:100%!important;min-height:44px!important;align-items:center!important;justify-content:center!important;
    padding:10px 14px!important;border:1px solid #98172b!important;border-radius:10px!important;background:#98172b!important;color:#fff!important;text-decoration:none!important;font-weight:850!important;
  }

  /* 4. Service modal — 90dvh, internal scroll, sticky head, quieter close button. */
  #publicSite #serviceDialog{
    width:calc(100% - 16px)!important;
    max-width:none!important;
    max-height:90dvh!important;
    border-radius:16px!important;
    overflow:hidden!important;
  }
  #publicSite #serviceDialog .dialog-head{
    position:sticky!important;top:0!important;z-index:8!important;
    padding:13px 14px!important;background:rgba(255,255,255,.98)!important;
    backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;
  }
  #publicSite #serviceDialog .dialog-head h2{font-size:1.16rem!important;line-height:1.2!important;padding-right:6px!important}
  #publicSite #serviceDialog .dialog-close{
    width:36px!important;height:36px!important;border-radius:50%!important;border:1px solid #e3e5e7!important;
    background:#f7f7f8!important;color:#3a3d42!important;font-size:1.12rem!important;box-shadow:none!important;
  }
  #publicSite #serviceDialog .dialog-body{padding:15px 14px 20px!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
  #publicSite #serviceDialog .dialog-body>.lead{font-size:.95rem!important;line-height:1.55!important}
  #publicSite #serviceDialog .offer-pillars{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin:18px 0!important;border-radius:10px!important;overflow:hidden!important}
  #publicSite #serviceDialog .offer-pillar{padding:12px!important;min-width:0!important}
  #publicSite #serviceDialog .offer-pillar strong{font-size:.86rem!important}
  #publicSite #serviceDialog .offer-pillar span{font-size:.76rem!important}
  #publicSite #serviceDialog .detail-columns{display:block!important}
  #publicSite #serviceDialog .detail-columns>div+div{margin-top:18px!important;padding-top:4px!important}
  #publicSite #serviceDialog h3{font-size:1rem!important;margin:18px 0 8px!important}
  #publicSite #serviceDialog ul,#publicSite #serviceDialog ol{padding-left:20px!important;margin:8px 0 14px!important;font-size:.88rem!important;line-height:1.5!important}
  #publicSite #serviceDialog .faq-list{margin-top:18px!important}
  #publicSite #serviceDialog .faq-list>h3{font-size:1.02rem!important}
  #publicSite #serviceDialog .faq-list details{border-radius:10px!important;margin-bottom:8px!important;overflow:hidden!important}
  #publicSite #serviceDialog .faq-list summary{padding:13px 42px 13px 13px!important;font-size:.86rem!important;line-height:1.35!important}
  #publicSite #serviceDialog .faq-list details p{padding:0 13px 13px!important;font-size:.84rem!important;line-height:1.5!important}
  #publicSite #serviceDialog .offer-note{padding:13px 14px!important;margin:17px 0!important;border-left-width:3px!important;border-radius:9px!important;font-size:.84rem!important}
  #publicSite #serviceDialog .offer-note p{font-size:.82rem!important;line-height:1.45!important}
  #publicSite #serviceDialog .dialog-body>p:last-child{
    position:sticky!important;bottom:-20px!important;z-index:6!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
    margin:18px -14px -20px!important;padding:11px 14px calc(11px + env(safe-area-inset-bottom))!important;
    background:rgba(255,255,255,.97)!important;border-top:1px solid #e4e6e8!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;
  }
  #publicSite #serviceDialog .dialog-body>p:last-child .button{width:100%!important;min-height:44px!important;margin:0!important;padding:10px 8px!important;font-size:.78rem!important;text-align:center!important;justify-content:center!important}

  /* 5. Quick inquiry — lighter mobile form, easier typing. */
  body[data-public-page="start"] #publicSite .home-quick-v138{padding-top:42px!important;padding-bottom:44px!important}
  body[data-public-page="start"] #publicSite .quick-lead-shell-v138{gap:18px!important}
  body[data-public-page="start"] #publicSite .quick-lead-copy-v138 .section-title{font-size:clamp(1.85rem,8vw,2.25rem)!important}
  body[data-public-page="start"] #publicSite .quick-lead-form-v1389{padding:14px!important;gap:12px!important;border-radius:14px!important}
  body[data-public-page="start"] #publicSite .quick-lead-form-v1389 input,
  body[data-public-page="start"] #publicSite .quick-lead-form-v1389 textarea{font-size:16px!important;min-height:46px!important;border-radius:10px!important}
  body[data-public-page="start"] #publicSite .quick-lead-form-v1389 textarea{min-height:118px!important}
  body[data-public-page="start"] #publicSite .quick-submit-v138 .button{width:100%!important;min-height:48px!important}
  body[data-public-page="start"] #publicSite .quick-docs-v1389{padding:12px 13px!important}

  /* 6. Footer — five clean, easy-to-scan mobile sections. */
  #publicSite .site-footer{padding-top:34px!important}
  #publicSite .footer-grid{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  #publicSite .footer-grid>div{padding:17px 0!important;border-top:1px solid rgba(255,255,255,.12)!important}
  #publicSite .footer-grid>div:first-child{padding-top:0!important;border-top:0!important}
  #publicSite .footer-grid>div>strong{display:block!important;margin-bottom:9px!important;font-size:.82rem!important;letter-spacing:.06em!important;text-transform:uppercase!important}
  #publicSite .footer-grid p{margin:7px 0 0!important;font-size:.84rem!important;line-height:1.75!important}
  #publicSite .footer-social-v139{display:flex!important;grid-template-columns:none!important;gap:8px!important;flex-wrap:wrap!important;margin-top:8px!important}
  #publicSite .footer-social-v139 a{min-height:40px!important;padding:9px 12px!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:9px!important}
  #publicSite .footer-fine{font-size:.72rem!important;line-height:1.65!important;padding-top:17px!important}

  /* 7. Social cards stay fully clickable; external-link arrows are intentionally absent. */
  #publicSite .social-card-v139{grid-template-columns:38px minmax(0,1fr)!important}
  #publicSite .social-card-v139 b{display:none!important}

  /* 8. Mobile fixed CTA — keyboard/safe-area friendly without changing its logic. */
  body:has(input:focus) #publicSite .mobile-contact,
  body:has(textarea:focus) #publicSite .mobile-contact,
  body:has(select:focus) #publicSite .mobile-contact{transform:translateY(calc(100% + 24px))!important;opacity:0!important;pointer-events:none!important;transition:transform .18s ease,opacity .18s ease!important}
  #publicSite .mobile-contact{transition:transform .18s ease,opacity .18s ease!important}
}

@media (max-width:380px){
  #publicSite .nav-actions>.button{width:72px!important;min-width:72px!important;font-size:.74rem!important}
  #publicSite .logo{max-width:92px!important}
  #publicSite .brand-logo-public{max-width:90px!important}
}

/* =========================================================
   OIB V139.13 — MOBILE ENTRY FIXES, HERO RESTORED
   Hero composition restored to V139.10. Desktop/realizacje untouched.
   ========================================================= */
@media (max-width:760px){
  /* Portal-client icon and menu are one visual system. */
  #publicSite .portal-nav-link,
  #publicSite .portal-nav-link.portal-tone-red,
  #publicSite .portal-nav-link.portal-tone-black,
  #publicSite .portal-nav-link.portal-tone-light,
  #publicSite #menuButton{
    box-sizing:border-box!important;
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    padding:0!important;
    border:1px solid #98172b!important;
    border-radius:12px!important;
    background:#98172b!important;
    color:#fff!important;
    box-shadow:0 6px 15px rgba(152,23,43,.13)!important;
  }
  #publicSite .portal-nav-link .portal-nav-icon{
    width:23px!important;
    min-width:23px!important;
    height:23px!important;
    flex-basis:23px!important;
  }
  #publicSite #menuButton .oib-menu-svg{
    width:22px!important;
    height:18px!important;
  }

  /* Cookies: one obvious primary action, details read as a secondary link. */
  #publicSite .cookie-captcha-banner.visible{
    box-sizing:border-box!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:14px!important;
    gap:12px!important;
    border:1px solid #dfd4d6!important;
    border-top:4px solid #98172b!important;
    border-left:1px solid #dfd4d6!important;
    border-radius:16px!important;
    box-shadow:0 18px 46px rgba(17,19,24,.18)!important;
    z-index:2147483200!important;
  }
  #publicSite .cookie-captcha-banner strong{
    margin-bottom:5px!important;
    font-size:.98rem!important;
    line-height:1.25!important;
  }
  #publicSite .cookie-captcha-banner p{
    font-size:.82rem!important;
    line-height:1.48!important;
  }
  #publicSite .cookie-captcha-actions{
    display:grid!important;
    grid-template-columns:auto minmax(132px,1fr)!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
  }
  #publicSite .cookie-captcha-actions .text-button{
    width:auto!important;
    min-height:42px!important;
    padding:8px 6px!important;
    border:0!important;
    background:transparent!important;
    color:#62686e!important;
    box-shadow:none!important;
    font-size:.79rem!important;
    text-decoration:underline!important;
    text-underline-offset:3px!important;
  }
  #publicSite .cookie-captcha-actions .button{
    width:100%!important;
    min-height:46px!important;
    margin:0!important;
    border-radius:11px!important;
  }

  /* Fixed CTA is deliberately absent on first view and appears only after scrolling. */
  #publicSite .mobile-contact,
  #publicSite .mobile-contact-v138{
    transform:translateY(calc(100% + 26px))!important;
    -webkit-transform:translateY(calc(100% + 26px))!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:transform .24s ease,opacity .2s ease,visibility 0s linear .24s!important;
  }
  #publicSite .mobile-contact.is-scroll-visible,
  #publicSite .mobile-contact-v138.is-scroll-visible{
    transform:translateY(0)!important;
    -webkit-transform:translateY(0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:transform .24s ease,opacity .2s ease,visibility 0s!important;
  }

  /* Never let the scroll CTA fight with cookies or the iOS keyboard. */
  body:has(#cookieCaptchaBanner.visible) #publicSite .mobile-contact,
  body:has(#cookieCaptchaBanner.visible) #publicSite .mobile-contact-v138,
  body:has(input:focus) #publicSite .mobile-contact,
  body:has(textarea:focus) #publicSite .mobile-contact,
  body:has(select:focus) #publicSite .mobile-contact{
    transform:translateY(calc(100% + 26px))!important;
    -webkit-transform:translateY(calc(100% + 26px))!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

@media (max-width:380px){
  #publicSite .cookie-captcha-banner.visible{padding:12px!important}
  #publicSite .cookie-captcha-actions{grid-template-columns:92px minmax(0,1fr)!important;gap:8px!important}
}

/* OIB V139.14 — desktop hero alignment only.
   Mobile/tablet intentionally untouched: rules start at 1181px. */
@media (min-width: 1181px) {
  #publicSite .hero {
    min-height: 620px;
    background: #fff !important;
  }

  /* Keep the photo inside the same 1180px desktop grid as the page content. */
  #publicSite .hero.has-custom-bg::before {
    inset: 0 max(20px, calc((100vw - 1180px) / 2)) 0 calc(50% - 24px) !important;
    transform: none !important;
    animation: none !important;
    background:
      linear-gradient(90deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.06) 22%, rgba(255,255,255,0) 44%),
      var(--oib-desktop-bg, var(--oib-hero-custom-bg)) center center / cover no-repeat !important;
  }

  /* Softer transition between copy and image without pushing the image off-grid. */
  #publicSite .hero::after {
    background: linear-gradient(
      90deg,
      #fff 0%,
      #fff 38%,
      rgba(255,255,255,.97) 43%,
      rgba(255,255,255,.72) 49%,
      rgba(255,255,255,.18) 58%,
      rgba(255,255,255,0) 68%
    ) !important;
  }

  #publicSite .hero-content {
    max-width: 600px !important;
    padding-block: 82px !important;
  }

  #publicSite .hero h1 {
    max-width: 9.4ch !important;
    font-size: clamp(4.3rem, 5.25vw, 5.25rem) !important;
    line-height: .96 !important;
    letter-spacing: -.045em !important;
  }

  #publicSite .hero-text {
    max-width: 38ch !important;
    margin: 22px 0 26px !important;
  }
}

/* =========================================================
   OIB V139.15 — DESKTOP HERO COMPACT WIDTH ONLY
   Mobile/tablet untouched: desktop rules start at 1181px.
   ========================================================= */
@media (min-width:1181px){
  body[data-public-page="start"] #publicSite #start.hero{
    width:min(calc(100% - 48px),1360px)!important;
    max-width:1360px!important;
    min-height:590px!important;
    margin:0 auto!important;
    overflow:hidden!important;
    background:#f7f6f4!important;
  }

  body[data-public-page="start"] #publicSite #start.hero::before{
    inset:0 0 0 46%!important;
    width:auto!important;
    height:auto!important;
    transform:none!important;
    animation:none!important;
    background-image:var(--oib-desktop-bg,var(--oib-hero-custom-bg,var(--oib-v138-hero-desktop)))!important;
    background-size:cover!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
  }

  body[data-public-page="start"] #publicSite #start.hero::after{
    inset:0!important;
    background:linear-gradient(90deg,#f7f6f4 0%,#f7f6f4 37%,rgba(247,246,244,.97) 42%,rgba(247,246,244,.70) 49%,rgba(247,246,244,.14) 62%,rgba(247,246,244,0) 74%)!important;
  }

  body[data-public-page="start"] #publicSite #start.hero>.container{
    width:min(calc(100% - 56px),1180px)!important;
    max-width:1180px!important;
    min-height:590px!important;
    margin:0 auto!important;
    padding:0!important;
  }

  body[data-public-page="start"] #publicSite #start .hero-content{
    width:min(545px,47%)!important;
    max-width:545px!important;
    padding:74px 0 70px!important;
  }

  body[data-public-page="start"] #publicSite #start h1{
    max-width:9.6ch!important;
  }
}

/* =========================================================
   OIB V139.16 — desktop hero containment + longer fade + left-aligned trust strip
   Only desktop homepage adjustments. Mobile/tablet unchanged.
   ========================================================= */
@media (min-width: 1101px) {
  body[data-public-page="start"] #publicSite #start.hero {
    min-height: 600px !important;
    background: #fff !important;
  }

  body[data-public-page="start"] #publicSite #start.hero::before {
    inset: 0 auto 0 50% !important;
    left: calc(50% - 180px) !important;
    right: calc(50% - 590px) !important;
    width: auto !important;
    background: var(--oib-hero-custom-bg, var(--oib-v138-hero-desktop)) center center / cover no-repeat !important;
    opacity: 1 !important;
    z-index: -2 !important;
  }

  body[data-public-page="start"] #publicSite #start.hero::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: calc(50% - 300px) !important;
    right: calc(50% - 590px) !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,1) 0%,
        rgba(255,255,255,.995) 12%,
        rgba(255,255,255,.975) 22%,
        rgba(255,255,255,.92) 32%,
        rgba(255,255,255,.78) 43%,
        rgba(255,255,255,.48) 55%,
        rgba(255,255,255,.18) 67%,
        rgba(255,255,255,.04) 79%,
        rgba(255,255,255,0) 90%),
      linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.04) 100%) !important;
  }

  body[data-public-page="start"] #publicSite #start .container {
    max-width: 1180px !important;
  }

  body[data-public-page="start"] #publicSite #start .hero-content {
    max-width: 520px !important;
    padding: 78px 0 74px !important;
  }

  body[data-public-page="start"] #publicSite #start h1 {
    max-width: 520px !important;
  }

  body[data-public-page="start"] #publicSite .home-trust-row-v1389 {
    width: min(calc(100% - 48px), 1180px) !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
  }

  body[data-public-page="start"] #publicSite .home-trust-row-v1389 > span {
    justify-content: flex-start !important;
    text-align: left !important;
    padding: 18px 22px !important;
  }
}

/* =========================================================
   OIB V139.17 — desktop hero stronger fade only
   ========================================================= */
@media (min-width: 1101px) {
  body[data-public-page="start"] #publicSite #start.hero::after {
    top: 0 !important;
    bottom: 0 !important;
    left: calc(50% - 360px) !important;
    right: calc(50% - 590px) !important;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,1) 0%,
        rgba(255,255,255,1) 8%,
        rgba(255,255,255,.997) 16%,
        rgba(255,255,255,.988) 24%,
        rgba(255,255,255,.965) 33%,
        rgba(255,255,255,.91) 43%,
        rgba(255,255,255,.79) 53%,
        rgba(255,255,255,.58) 63%,
        rgba(255,255,255,.31) 73%,
        rgba(255,255,255,.11) 82%,
        rgba(255,255,255,.02) 90%,
        rgba(255,255,255,0) 96%),
      linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.04) 100%) !important;
  }
}

/* =========================================================
   OIB V139.18 — desktop hero REAL alpha fade
   Uses a mask on the hero image itself so the fade cannot be
   hidden by stacking/background layers. Desktop homepage only.
   ========================================================= */
@media (min-width: 1101px) {
  body[data-public-page="start"] #publicSite #start.hero::before {
    /* Keep the image constrained to the desktop content grid. */
    left: calc(50% - 180px) !important;
    right: calc(50% - 590px) !important;
    top: 0 !important;
    bottom: 0 !important;
    inset-inline-start: calc(50% - 180px) !important;
    inset-inline-end: calc(50% - 590px) !important;

    /* Real image fade: transparent at the left, fully visible further right. */
    -webkit-mask-image: linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.03) 7%,
      rgba(0,0,0,.10) 14%,
      rgba(0,0,0,.23) 22%,
      rgba(0,0,0,.42) 30%,
      rgba(0,0,0,.66) 39%,
      rgba(0,0,0,.84) 47%,
      rgba(0,0,0,.96) 55%,
      rgba(0,0,0,1) 63%,
      rgba(0,0,0,1) 100%) !important;
    mask-image: linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.03) 7%,
      rgba(0,0,0,.10) 14%,
      rgba(0,0,0,.23) 22%,
      rgba(0,0,0,.42) 30%,
      rgba(0,0,0,.66) 39%,
      rgba(0,0,0,.84) 47%,
      rgba(0,0,0,.96) 55%,
      rgba(0,0,0,1) 63%,
      rgba(0,0,0,1) 100%) !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
  }

  /* Horizontal fade is now handled by the image mask itself. */
  body[data-public-page="start"] #publicSite #start.hero::after {
    left: 0 !important;
    right: 0 !important;
    background: linear-gradient(180deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 86%,
      rgba(255,255,255,.04) 100%) !important;
  }
}

/* =========================================================
   OIB V139.19 — desktop hero subtle right-edge fade
   Keeps the left fade, adds a soft fade-out on the far right
   so the image no longer looks abruptly cut.
   ========================================================= */
@media (min-width: 1101px) {
  body[data-public-page="start"] #publicSite #start.hero::before {
    -webkit-mask-image: linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.03) 7%,
      rgba(0,0,0,.10) 14%,
      rgba(0,0,0,.23) 22%,
      rgba(0,0,0,.42) 30%,
      rgba(0,0,0,.66) 39%,
      rgba(0,0,0,.84) 47%,
      rgba(0,0,0,.96) 55%,
      rgba(0,0,0,1) 63%,
      rgba(0,0,0,1) 90%,
      rgba(0,0,0,.96) 94%,
      rgba(0,0,0,.84) 96.5%,
      rgba(0,0,0,.58) 98.3%,
      rgba(0,0,0,.22) 99.3%,
      rgba(0,0,0,0) 100%) !important;
    mask-image: linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.03) 7%,
      rgba(0,0,0,.10) 14%,
      rgba(0,0,0,.23) 22%,
      rgba(0,0,0,.42) 30%,
      rgba(0,0,0,.66) 39%,
      rgba(0,0,0,.84) 47%,
      rgba(0,0,0,.96) 55%,
      rgba(0,0,0,1) 63%,
      rgba(0,0,0,1) 90%,
      rgba(0,0,0,.96) 94%,
      rgba(0,0,0,.84) 96.5%,
      rgba(0,0,0,.58) 98.3%,
      rgba(0,0,0,.22) 99.3%,
      rgba(0,0,0,0) 100%) !important;
  }
}

/* =========================================================
   OIB V139.21 — portal auth status cleanup
   Removes scary red pending boxes for login/reset actions.
   ========================================================= */
#publicSite .portal-v1392-status{
  margin-top:13px;
  padding:12px 14px;
  border:1px solid #e3e7ec;
  border-left:4px solid #c7d0da;
  background:#f6f8fa;
  color:#4d5a67;
  border-radius:12px;
}
#publicSite .portal-v1392-status[data-tone="error"]{
  border-color:#ead0d5;
  border-left-color:var(--red);
  background:#f8ecee;
  color:#8f1f2d;
}
#publicSite .portal-v1392-status[data-tone="success"]{
  border-color:#d8eadf;
  border-left-color:#2f9e61;
  background:#eef9f2;
  color:#1f6b46;
}
#publicSite .portal-v1392-status[data-tone="info"]{
  border-color:#e3e7ec;
  border-left-color:#c7d0da;
  background:#f6f8fa;
  color:#4d5a67;
}
#publicSite .portal-v1392-primary.is-loading,
#publicSite .portal-inline-actions .text-button.is-loading{
  position:relative;
  pointer-events:none;
}
#publicSite .portal-v1392-primary.is-loading::after,
#publicSite .portal-inline-actions .text-button.is-loading::after{
  content:"";
  position:absolute;
  right:18px;
  top:50%;
  width:14px;
  height:14px;
  margin-top:-7px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.55);
  border-top-color:#fff;
  animation:oibPortalSpin .8s linear infinite;
}
#publicSite .portal-inline-actions .text-button.is-loading::after{
  right:8px;
  border-color:rgba(153,27,44,.28);
  border-top-color:var(--red);
}
@keyframes oibPortalSpin{to{transform:rotate(360deg)}}

/* =========================================================
   OIB V139.22 — Moje OIB: one consistent action-state system
   Pending work never appears as a red status box.
   ========================================================= */
#publicSite .portal-v1392-status:not([data-tone]){
  display:none!important;
}
#publicSite .portal-v1392-status[data-tone="error"],
#publicSite .portal-v1392-status[data-tone="success"],
#publicSite .portal-v1392-status[data-tone="info"]{
  display:block!important;
}
#portalContent .portal-change-status{
  min-height:0!important;
  color:#66717c!important;
  font-weight:700!important;
  font-size:.84rem!important;
  line-height:1.45!important;
}
#portalContent .portal-change-status:empty{
  display:none!important;
}
#portalContent .portal-change-status[data-tone="hint"]{
  color:#66717c!important;
}
#portalContent .portal-change-status[data-tone="success"]{
  color:#24744c!important;
}
#portalContent .portal-change-status[data-tone="error"]{
  color:#98172b!important;
}
#portalContent .portal-change-buttons .button.is-loading,
#portalContent .portal-change-buttons .text-button.is-loading{
  position:relative!important;
  pointer-events:none!important;
}
#portalContent .portal-change-buttons .button.is-loading::after,
#portalContent .portal-change-buttons .text-button.is-loading::after{
  content:"";
  width:14px;
  height:14px;
  margin-left:10px;
  display:inline-block;
  vertical-align:-2px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff;
  animation:oibPortalSpin .8s linear infinite;
}

/* OIB V140.2 — iPad/tablet navigation hard fix */
@media (min-width:761px) and (max-width:1180px){
 #publicSite .site-header .container.nav-shell{position:relative!important;display:grid!important;grid-template-columns:minmax(150px,1fr) auto 48px!important;align-items:center!important;column-gap:10px!important;width:min(calc(100% - 32px),1120px)!important}
 #publicSite .logo{grid-column:1!important;min-width:0!important;max-width:260px!important}
 #publicSite .nav-actions{grid-column:2!important;margin-left:0!important;justify-self:end!important}
 #publicSite #menuButton{grid-column:3!important;display:grid!important;place-items:center!important;position:relative!important;z-index:1003!important;width:48px!important;min-width:48px!important;max-width:48px!important;height:48px!important;min-height:48px!important;max-height:48px!important;margin:0!important;padding:0!important;background:#98172b!important;border:1px solid #98172b!important;color:#fff!important;border-radius:13px!important;overflow:visible!important}
 #publicSite #menuButton .oib-menu-svg{display:block!important;width:24px!important;height:18px!important;overflow:visible!important}
 #publicSite #menuButton .oib-menu-line{stroke:#fff!important;stroke-width:2.4!important;stroke-linecap:round!important;opacity:1!important}
 #publicSite .main-nav{position:absolute!important;display:none!important;top:calc(100% + 8px)!important;left:auto!important;right:0!important;width:min(360px,calc(100vw - 32px))!important;padding:8px!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;background:#fff!important;border:1px solid #e1e3e6!important;border-radius:14px!important;box-shadow:0 18px 48px rgba(17,19,24,.16)!important;z-index:1002!important}
 #publicSite .site-header.menu-open .main-nav{display:flex!important}
 #publicSite .main-nav a{display:flex!important;width:100%!important;padding:13px 14px!important;border-radius:8px!important;box-sizing:border-box!important}
}


/* OIB V140.3 — portal status + tablet/iPad responsive */
#publicSite .portal-v1392-primary.is-loading{position:relative;opacity:.92;cursor:wait;padding-left:52px}
#publicSite .portal-v1392-primary.is-loading:before{content:"";position:absolute;left:22px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:oibSpinV1403 .75s linear infinite}
@keyframes oibSpinV1403{to{transform:rotate(360deg)}}
#publicSite .portal-v1392-status:empty{display:none!important}
#publicSite .portal-v1392-status[data-tone="error"]{margin-top:14px!important;padding:11px 13px!important;border:1px solid #e7b8c0!important;border-left:3px solid #98172b!important;border-radius:9px!important;background:#fff8f9!important;box-shadow:none!important;font-size:12px!important;line-height:1.45!important}
@media (min-width:761px) and (max-width:1400px){
 #publicSite .site-header .container.nav-shell{position:relative!important;display:grid!important;grid-template-columns:minmax(120px,1fr) auto 48px!important;align-items:center!important;column-gap:10px!important;width:min(calc(100% - 32px),1320px)!important}
 #publicSite .logo{grid-column:1!important;min-width:0!important;max-width:250px!important}
 #publicSite .nav-actions{grid-column:2!important;margin-left:0!important;justify-self:end!important}
 #publicSite #menuButton{grid-column:3!important;display:grid!important;place-items:center!important;visibility:visible!important;opacity:1!important;position:relative!important;z-index:1003!important;width:48px!important;min-width:48px!important;height:48px!important;margin:0!important;padding:0!important;background:#98172b!important;border:1px solid #98172b!important;color:#fff!important;border-radius:13px!important}
 #publicSite #menuButton .oib-menu-svg{display:block!important;width:24px!important;height:18px!important}
 #publicSite #menuButton .oib-menu-line{stroke:#fff!important;stroke-width:2.4!important;stroke-linecap:round!important;opacity:1!important}
 #publicSite .main-nav{position:absolute!important;display:none!important;top:calc(100% + 8px)!important;right:0!important;left:auto!important;width:min(360px,calc(100vw - 32px))!important;padding:8px!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;background:#fff!important;border:1px solid #e1e3e6!important;border-radius:14px!important;box-shadow:0 18px 48px rgba(17,19,24,.16)!important;z-index:1002!important}
 #publicSite .site-header.menu-open .main-nav{display:flex!important}
 #publicSite .main-nav a{display:flex!important;width:100%!important;padding:13px 14px!important;border-radius:8px!important}
}
@media (min-width:761px) and (max-width:980px){#publicSite .nav-actions .btn:not(.portal-btn){display:none!important}}


/* =========================================================
   OIB V140.5 — iPad/tablet homepage rebuild
   Purpose: balanced landscape hero, intentional portrait layout,
   visible hamburger navigation and compact trust strip.
   ========================================================= */
@media (min-width:901px) and (max-width:1180px){
  #publicSite .site-header .container.nav-shell{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(150px,1fr) auto 46px!important;
    align-items:center!important;
    column-gap:10px!important;
    width:min(calc(100% - 32px),1120px)!important;
  }
  #publicSite .main-nav{
    position:absolute!important;
    display:none!important;
    top:calc(100% + 9px)!important;
    right:0!important;
    left:auto!important;
    width:min(350px,calc(100vw - 32px))!important;
    padding:8px!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:2px!important;
    background:#fff!important;
    border:1px solid #e1e4e7!important;
    border-radius:14px!important;
    box-shadow:0 22px 54px rgba(17,19,24,.16)!important;
    z-index:1002!important;
  }
  #publicSite .site-header.menu-open .main-nav{display:flex!important}
  #publicSite .main-nav a{display:flex!important;width:100%!important;padding:13px 14px!important;border-radius:9px!important;box-sizing:border-box!important}
  #publicSite #menuButton{
    display:grid!important;place-items:center!important;visibility:visible!important;opacity:1!important;
    width:46px!important;min-width:46px!important;height:46px!important;margin:0!important;padding:0!important;
    border:1px solid #98172b!important;border-radius:12px!important;background:#98172b!important;color:#fff!important;
    position:relative!important;z-index:1003!important;
  }
  #publicSite #menuButton .oib-menu-svg{display:block!important;width:23px!important;height:18px!important}
  #publicSite #menuButton .oib-menu-line{stroke:#fff!important;stroke-width:2.35!important;stroke-linecap:round!important}

  body[data-public-page="start"] #publicSite #start.hero{
    width:100%!important;
    min-height:540px!important;
    margin:0!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::before{
    content:""!important;
    position:absolute!important;
    top:0!important;bottom:0!important;left:43%!important;right:0!important;
    width:auto!important;height:auto!important;
    background:var(--oib-desktop-bg,var(--oib-hero-custom-bg,var(--oib-v138-hero-desktop))) center 52%/cover no-repeat!important;
    opacity:1!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 10%,rgba(0,0,0,.70) 24%,#000 38%,#000 94%,rgba(0,0,0,.70) 98%,transparent 100%)!important;
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 10%,rgba(0,0,0,.70) 24%,#000 38%,#000 94%,rgba(0,0,0,.70) 98%,transparent 100%)!important;
    -webkit-mask-size:100% 100%!important;mask-size:100% 100%!important;
    z-index:0!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::after{
    content:""!important;position:absolute!important;inset:0!important;
    background:linear-gradient(90deg,#fff 0%,#fff 35%,rgba(255,255,255,.95) 40%,rgba(255,255,255,.58) 48%,rgba(255,255,255,.08) 58%,transparent 67%)!important;
    z-index:1!important;pointer-events:none!important;
  }
  body[data-public-page="start"] #publicSite #start.hero>.container{
    width:min(calc(100% - 56px),1080px)!important;min-height:540px!important;margin:0 auto!important;padding:0!important;
    position:relative!important;z-index:2!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-content{
    width:47%!important;max-width:470px!important;padding:66px 0 62px!important;margin:0!important;
  }
  body[data-public-page="start"] #publicSite #start h1{
    max-width:9.4ch!important;font-size:clamp(3.35rem,6.2vw,4.25rem)!important;line-height:.94!important;letter-spacing:-.052em!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-text{
    max-width:34ch!important;margin:22px 0 26px!important;font-size:1rem!important;line-height:1.52!important;
  }
  body[data-public-page="start"] #publicSite #start .hero-actions{display:flex!important;grid-template-columns:none!important;gap:10px!important;max-width:none!important}
  body[data-public-page="start"] #publicSite #start .hero-actions .button{width:auto!important;min-height:48px!important;padding-inline:17px!important}
  body[data-public-page="start"] #publicSite .home-trust-row-v1389{grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;max-width:none!important}
  body[data-public-page="start"] #publicSite .home-trust-row-v1389>span{min-height:66px!important;padding:14px 16px!important;font-size:.83rem!important;justify-content:flex-start!important;text-align:left!important}
}

@media (min-width:761px) and (max-width:1050px){
  #publicSite .nav-actions>.button{display:none!important}
  #publicSite .nav-actions{gap:8px!important}
}

@media (min-width:761px) and (max-width:900px){
  #publicSite .site-header .container.nav-shell{
    position:relative!important;display:grid!important;grid-template-columns:minmax(130px,1fr) auto 46px!important;align-items:center!important;column-gap:9px!important;width:calc(100% - 28px)!important;
  }
  #publicSite #menuButton{display:grid!important;place-items:center!important;visibility:visible!important;opacity:1!important;width:46px!important;height:46px!important;background:#98172b!important;border:1px solid #98172b!important;border-radius:12px!important;color:#fff!important}
  #publicSite #menuButton .oib-menu-line{stroke:#fff!important;stroke-width:2.35!important;stroke-linecap:round!important}
  #publicSite .main-nav{position:absolute!important;display:none!important;top:calc(100% + 8px)!important;right:0!important;left:auto!important;width:min(340px,calc(100vw - 28px))!important;padding:8px!important;flex-direction:column!important;background:#fff!important;border:1px solid #e1e4e7!important;border-radius:14px!important;box-shadow:0 20px 50px rgba(17,19,24,.16)!important;z-index:1002!important}
  #publicSite .site-header.menu-open .main-nav{display:flex!important}
  #publicSite .main-nav a{display:flex!important;width:100%!important;padding:13px 14px!important;border-radius:9px!important}

  body[data-public-page="start"] #publicSite #start.hero{
    min-height:760px!important;padding:0 0 310px!important;background:#fff!important;overflow:hidden!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::before{
    content:""!important;position:absolute!important;left:18px!important;right:18px!important;top:auto!important;bottom:16px!important;height:300px!important;width:auto!important;
    background:var(--oib-mobile-bg,var(--oib-desktop-bg,var(--oib-hero-custom-bg))) center 62%/cover no-repeat!important;border-radius:16px!important;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.72) 14%,#000 25%,#000 92%,rgba(0,0,0,.78) 97%,transparent 100%)!important;
    mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.72) 14%,#000 25%,#000 92%,rgba(0,0,0,.78) 97%,transparent 100%)!important;
    z-index:0!important;
  }
  body[data-public-page="start"] #publicSite #start.hero::after{display:none!important;content:none!important}
  body[data-public-page="start"] #publicSite #start.hero>.container{width:calc(100% - 48px)!important;min-height:auto!important;padding:0!important;position:relative!important;z-index:2!important}
  body[data-public-page="start"] #publicSite #start .hero-content{width:100%!important;max-width:610px!important;padding:54px 0 42px!important;margin:0!important}
  body[data-public-page="start"] #publicSite #start h1{font-size:clamp(3rem,7.4vw,4rem)!important;max-width:9.2ch!important;line-height:.94!important}
  body[data-public-page="start"] #publicSite #start .hero-text{font-size:1rem!important;max-width:39ch!important;margin:20px 0 25px!important}
  body[data-public-page="start"] #publicSite #start .hero-actions{display:flex!important;grid-template-columns:none!important;gap:10px!important;max-width:none!important}
  body[data-public-page="start"] #publicSite #start .hero-actions .button{width:auto!important;min-height:48px!important}
  body[data-public-page="start"] #publicSite .home-trust-row-v1389{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-public-page="start"] #publicSite .home-trust-row-v1389>span{min-height:60px!important;padding:13px 18px!important;justify-content:flex-start!important;text-align:left!important}
  body[data-public-page="start"] #publicSite .home-trust-row-v1389>span:nth-child(2){border-right:0!important}
}

/* OIB V140.6 — laptop/tablet menu icon stays hamburger when menu is open */
@media (min-width:761px) and (max-width:1400px){
  #publicSite .site-header.menu-open #menuButton .oib-menu-line-1,
  #publicSite .site-header.menu-open #menuButton .oib-menu-line-2,
  #publicSite .site-header.menu-open #menuButton .oib-menu-line-3{
    transform:none!important;
    opacity:1!important;
  }
  #publicSite .site-header.menu-open #menuButton{
    background:#861326!important;
    border-color:#861326!important;
  }
}
