/* Responsive layer for the recovered Transpol site. */
html { -webkit-text-size-adjust: 100%; }
body { overflow-wrap: break-word; }
#box { max-width: calc(100% - 24px); }
#language { width: 100%; box-sizing: border-box; margin-left: 0 !important; }
img, video, iframe { max-width: 100%; }
img { object-fit: contain; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid #056fbf; outline-offset: 3px;
}
.responsive-navigation { display: flow-root; clear: both; }
.mobile-tools { display: none; }
.mobile-cta { display: none; }

@media (max-width: 850px) {
  body { font-size: 16px; line-height: 1.55; background-size: auto 100vh; background-attachment: scroll; }
  html.has-mobile-cta { --mobile-cta-space: calc(96px + env(safe-area-inset-bottom, 0px)); scroll-padding-bottom: var(--mobile-cta-space); }
  .has-mobile-cta body { padding-bottom: var(--mobile-cta-space); }
  *, *::before, *::after { box-sizing: border-box; }
  #box { display: flex; flex-direction: column; width: auto; max-width: 800px; margin: 0 auto; padding: 0 12px; text-align: left; }
  #box > * { min-width: 0; max-width: 100%; }
  #language { order: 0; padding: 8px 0; text-align: center; }
  #box_language { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 3px; }
  #box_language a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  #box_language img { width: 24px !important; height: 17px !important; margin: 0; }
  #logo { order: 1; width: 100%; height: auto; aspect-ratio: 800 / 220; background-size: 100% auto; float: none; margin: 0 0 12px; }
  .mobile-tools { order: 2; display: flex; align-items: stretch; gap: 8px; margin-bottom: 10px; }
  .mobile-tools button, .mobile-call { border: 0; border-radius: 8px; min-height: 48px; padding: 10px 12px; font: bold 14px/1.4 Verdana, sans-serif; }
  .mobile-tools button { background: #fff; color: #172b3a; cursor: pointer; border: 1px solid #b7c6d0; }
  .mobile-call { flex: 1; display: flex; align-items: center; justify-content: center; background: #056fbf; color: #fff; text-decoration: none; }
  .mobile-cta {
    display: flex; position: fixed; inset: auto 0 0; z-index: 80;
    padding: 10px max(12px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
    background: #fff; border-top: 1px solid #d6e0e7; box-shadow: 0 -3px 16px #172b3a24;
  }
  .mobile-cta .mobile-call { min-height: 52px; gap: 8px; font-size: 16px; text-align: center; }
  .mobile-cta .mobile-call:hover { background: #034f89; }
  .mobile-cta .mobile-call:active { background: #023b69; }
  #formularz input, #formularz textarea { scroll-margin-bottom: var(--mobile-cta-space, 96px); }
  .responsive-navigation { order: 3; width: 100%; margin-bottom: 12px; padding: 6px; border-radius: 10px; background: white; }
  .mobile-navigation-ready .responsive-navigation:not(.is-open) { display: none; }
  #menu { order: 3; float: none; width: 100%; height: auto; background: none; margin: 0; }
  #menu ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; }
  #menu + #menu { margin-top: 4px; }
  #menu ul li { float: none; margin: 0; min-width: 0; font-size: 14px; }
  #menu a { display: flex; align-items: center; min-height: 48px; padding: 10px; border-radius: 6px; background: #f0f5f8; }
  #content { order: 4; width: 100%; float: none; overflow: visible; margin: 0 0 16px; padding: 16px; border-radius: 12px; background: rgba(255,255,255,.97); }
  #right { order: 5; width: 100%; float: none; padding: 16px; border-radius: 12px; background: rgba(255,255,255,.97); margin-bottom: 16px; }
  #footer { order: 6; width: 100%; height: auto; min-height: 40px; float: none; background: white; border-radius: 8px; padding: 8px; margin-bottom: 12px; }
  #footer p, #footer span { float: none; text-align: center; margin: 0; }
  #content div, #right div, #content table { max-width: 100%; }
  #content div, #right > div { float: none !important; }
  #content :is(div,p,span,center,table), #right :is(div,p) { margin-left: 0 !important; margin-right: 0 !important; }
  #content [class*="mbox_top"], #content [class*="mbox_bottom"], #right [class*="mbox_top"], #right [class*="mbox_bottom"] { display: none; }
  #content [class*="mbox_con"], #right [class*="mbox_con"], #content [class*="m2box_content"], #right [class*="m2box_content"] {
    width: 100%; margin: 0; padding: 0; background: none;
  }
  #content .m2box_txtb { font-size: 16px; }
  #content p { font-size: 16px; }
  #content br + br { display: none; }
  #content h1 { font-size: 24px; line-height: 1.3; }
  #content h2 { font-size: 21px; line-height: 1.3; }
  #content ul { margin: 12px 0; padding-left: 24px; }
  #content li { margin-bottom: 8px; }
  #content img { max-width: 100%; height: auto; }
  #content iframe { width: 100%; max-width: 100%; }
  #content iframe[src*="maps"] { height: 300px; border: 0; border-radius: 8px; }
  #content [id^="rectlo"], #girlcall, #kasy { display: none; }
  #content [style*="position:absolute"], #content [style*="position: absolute"] { position: static !important; }
  #href1 a { position: static; }
  #right_img1, #maps1 { width: 100%; float: none; margin: 12px 0; }
  #fbplustw { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; }
  #fbplustw iframe { width: 100px; }
  #fbplustw strong { margin: 0 !important; }
  #fbs { width: 100%; height: auto !important; float: none !important; }
  #filmy { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; width: 100%; margin: 12px 0; }
  #filmy_con { grid-column: 1 / -1; grid-row: 1; width: 100%; }
  #filmy_left, #filmy_right { width: 100%; }
  #filmy_left { grid-column: 1; }
  #filmy_right { grid-column: 2; }
  #filmy :is(.filmy_tyt,.filmy_tyt2) { display: flex; align-items: center; justify-content: center; height: auto !important; min-height: 56px; padding: 6px 3px; border-radius: 6px 6px 0 0; font-size: 12px; line-height: 1.35; }
  #filmy :is(.filmy_tyt,.filmy_tyt2) b { float: none; margin: 0; }
  #filmy_left > a, #filmy_right > a { display: block; position: relative; }
  #filmy_left img, #filmy_right img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0 0 6px 6px; }
  #filmy .filmy_button { left: 50%; top: 50%; margin: 0 !important; transform: translate(-50%,-50%); pointer-events: none; }
  #pink1 { width: 100%; padding: 16px 10px; border-radius: 8px; }
  #pink1 p { margin: 6px 0 !important; }
  #testimonials { width: 100%; height: auto; float: none; padding: 12px; border-radius: 8px; }
  #testimonials p { width: 100%; height: auto; }
  #marqueecontainer { width: 100%; height: auto; max-height: 240px; overflow: auto; padding: 0; }
  #vmarquee { position: static !important; top: auto !important; width: 100% !important; }
  #vmarquee h4 { font-size: 14px; line-height: 1.6; }
  #rlisty { width: 100%; float: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  #rlisty p { display: flex; width: 100%; margin: 0 0 8px; padding: 0; border-radius: 6px; }
  #rlisty a { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 8px; font-size: 14px; }
  #right .platnosc { margin: 0 0 16px; }
  #right img { height: auto; }
  #odwiedzin2, #reklamy1m { float: none; margin: 12px auto !important; }
  #odwiedzin2 { display: none; }
  #galeria { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  #galeria h1, #galeria h2, #galeria p { grid-column: 1 / -1; }
  #galeria br { display: none; }
  #galeria a { display: block; min-width: 0; }
  #galeria img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
  #formularz { width: 100%; float: none; margin: 16px 0; }
  #formularz :is(table,tbody,tr,td) { display: block; width: 100%; float: none; }
  #formularz input:not([type=hidden]):not([type=checkbox]), #formularz textarea, #formularz select {
    width: 100% !important; min-height: 44px; padding: 10px; font: 16px/1.4 Verdana,sans-serif; border: 1px solid #8d9daa; border-radius: 6px;
  }
  #formularz input[type=checkbox] { width: 22px; height: 22px; vertical-align: middle; margin: 10px 4px 10px 0 !important; }
  #formularz .check-option { display: inline-flex; align-items: center; min-height: 44px; padding: 2px 6px 2px 0; }
  #formularz input[type=submit] { background: #056fbf; color: white; cursor: pointer; font-weight: bold; }
  .order-panel { width: 100% !important; padding: 12px; }
  #content .order-panel > p { float: none !important; margin: 12px 0 !important; font-size: clamp(20px,6vw,30px) !important; text-align: center; }
  #lightbox { position: fixed !important; top: 16px !important; left: 0 !important; width: 100% !important; max-height: calc(100dvh - 32px); overflow-y: auto; }
  #outerImageContainer, #imageDataContainer { width: min(94vw,700px) !important; height: auto !important; }
  #lightbox #lightboxImage { max-width: 100%; max-height: 65dvh; width: auto !important; height: auto !important; }
  #bottomNavClose { min-height: 44px; padding-top: 10px; }
  #prevLink, #nextLink { height: 100% !important; background-size: auto; }
  #prevLink { background: url('../images/prevlabel.gif') left center no-repeat; }
  #nextLink { background: url('../images/nextlabel.gif') right center no-repeat; }
}
@media (min-width: 600px) and (max-width: 850px) {
  #menu ul { grid-template-columns: repeat(3,minmax(0,1fr)); }
  #galeria { grid-template-columns: repeat(3,minmax(0,1fr)); }
  #rlisty { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Readable service introductions shared by the recovered home variants. */
#content .service-intro { clear: both; padding: 16px; background: #fff; color: #172b3a; line-height: 1.6; }
#content .service-intro h1 { margin: 0 0 12px; font-size: 24px; line-height: 1.3; }
#content .service-intro p { margin: 0 0 12px; }
#content .service-intro a { color: #035b9e; text-decoration: underline; }
#content .m2box_txtb h2 { font-size: 20px; line-height: 1.4; margin: 20px 0 10px; }

/* Section structure for the main English service pages. */
#content .structured-page { color: #172b3a; line-height: 1.6; }
#content .structured-page h1 { font-size: 28px; line-height: 1.2; margin: 6px 0 16px; }
#content .structured-page h2 { font-size: 21px; line-height: 1.3; margin: 0 0 14px; color: #124d76; }
#content .structured-page h3 { font-size: 17px; line-height: 1.4; margin: 0 0 8px; }
#content .structured-page p { margin: 0 0 14px; }
#content .section-label { font-size: 12px; font-weight: bold; letter-spacing: .06em; text-transform: uppercase; color: #47677c; }
#content .service-hero { padding: 22px 18px; background: #eef6fb; border-left: 4px solid #056fbf; border-radius: 8px; }
#content .structured-page a.quote-link { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 18px; box-sizing: border-box; background: #0566ad; color: #fff; border-radius: 6px; font-weight: bold; text-decoration: none; }
#content .structured-page a.quote-link:hover { background: #034f89; }
#content .section-links { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 16px 0; border-bottom: 1px solid #dce6ed; }
#content .section-links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; color: #124d76; }
#content .content-section { padding: 26px 0; border-bottom: 1px solid #dce6ed; clear: both; }
#content .service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
#content .service-card { min-width: 0; padding: 16px; border: 1px solid #dce6ed; border-radius: 8px; background: #f7fafc; }
#content .service-card a { color: #034f89; text-decoration: underline; }
#content .service-note { padding: 16px; margin-top: 16px; background: #fff8e9; border-left: 3px solid #bd8820; }
#content .booking-steps { list-style: none; counter-reset: booking; padding: 0; margin: 0; }
#content .booking-steps li { counter-increment: booking; position: relative; padding: 0 0 20px 44px; }
#content .booking-steps li::before { content: counter(booking); position: absolute; left: 0; top: 0; width: 30px; height: 30px; display: grid; place-items: center; background: #e4f1fa; color: #124d76; border-radius: 50%; font-weight: bold; }
#content .booking-steps strong, #content .booking-steps span { display: block; }
#content .quote-panel { padding: 20px; margin: 22px 0; background: #edf6fb; border-radius: 8px; }
#content .quote-panel .quote-link { margin-bottom: 16px; }
#content .structured-page [id] { scroll-margin-top: 18px; }
@media (max-width: 550px) {
  #content .service-grid { grid-template-columns: 1fr; }
  #content .structured-page h1 { font-size: 26px; }
  #content .service-hero { padding: 18px 14px; }
}

/* Keep intrinsic image dimensions proportional when constrained by a column. */
#content img[loading="lazy"], #right img[loading="lazy"] { max-width: 100%; height: auto; }
