/* Shared visual system for PL / SK / CZ subpages.
   Keeps corresponding language versions aligned without changing their content. */

/* Page opening */
main > .breadcrumbs + .hero:not(.hero--fullbleed) .hero-inner > div:first-child {
  max-width: 640px;
}
main > .breadcrumbs + .hero:not(.hero--fullbleed) .hero-sub {
  max-width: 620px;
}
main > .breadcrumbs + .hero:not(.hero--fullbleed) .hero-image {
  aspect-ratio: 4 / 3;
  min-height: 330px;
}

/* Compact page title used on contact, foundations and delivery pages */
main > .breadcrumbs + .section--sm,
main > .breadcrumbs + .section.section--white:first-of-type:not(:has(.two-col)):not(:has(.section-header)) {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--gray-100);
  background:
    radial-gradient(circle at 88% 10%, rgba(34,84,142,.07), transparent 32%),
    linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
}
main > .breadcrumbs + .section--sm::after,
main > .breadcrumbs + .section.section--white:first-of-type:not(:has(.two-col)):not(:has(.section-header))::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 120px;
  height: 3px;
  background: var(--orange);
}
main > .breadcrumbs + .section--sm h1,
main > .breadcrumbs + .section.section--white:first-of-type:not(:has(.two-col)):not(:has(.section-header)) h1 {
  max-width: 780px;
}

/* Repeated content rhythm */
main > .section .container > .section-title,
main > .section .container--narrow > .section-title {
  max-width: 820px;
}
main > .section .container > .section-title + .section-subtitle,
main > .section .container--narrow > .section-title + .section-subtitle {
  max-width: 760px;
}
.two-col {
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.two-col > div > h3:first-child {
  margin-bottom: .85rem;
}

/* Cards used across service pages */
.info-card,
.coverage-card,
.strength-card,
.reason-item,
.quote-info-item {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.info-card:hover,
.coverage-card:hover,
.strength-card:hover,
.reason-item:hover,
.quote-info-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

/* Photo rows */
main section[aria-label*="Zdję"],
main section[aria-label*="Fotograf"],
main section[aria-label*="fotograf"] {
  border-top: 1px solid var(--gray-100);
  border-bottom: 1px solid var(--gray-100);
}
main section[aria-label*="Zdję"] img,
main section[aria-label*="Fotograf"] img,
main section[aria-label*="fotograf"] img {
  transition: transform .28s ease, box-shadow .28s ease;
}
main section[aria-label*="Zdję"] img:hover,
main section[aria-label*="Fotograf"] img:hover,
main section[aria-label*="fotograf"] img:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg) !important;
}

/* FAQ panels */
.section--gray .faq-list {
  overflow: hidden;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}
.section--gray .faq-list .faq-item {
  padding-inline: 1.25rem;
}
.section--gray .faq-list .faq-item:last-child {
  border-bottom: 0;
}

/* Forms */
main form .form-control {
  background: #fff;
}
main form .form-control:focus {
  box-shadow: 0 0 0 4px rgba(34,84,142,.10);
}
.section--gray form,
.two-col > div > form {
  border-radius: var(--radius-lg);
}

/* CTA consistency */
.cta-section .container {
  position: relative;
  z-index: 1;
}
.cta-section .cta-actions {
  justify-content: center;
}

@media (max-width: 899px) {
  main > .breadcrumbs + .hero:not(.hero--fullbleed) .hero-image {
    min-height: 260px;
  }
}

@media (max-width: 639px) {
  main > .breadcrumbs + .section--sm,
  main > .breadcrumbs + .section.section--white:first-of-type:not(:has(.two-col)):not(:has(.section-header)) {
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
  }
  .section--gray .faq-list .faq-item {
    padding-inline: .9rem;
  }
}

/* ============================================================
   Unified subpage cards and icon system
   Mirrors the homepage: compact blue square, white outline icon,
   clean left-aligned cards and balanced final rows.
   ============================================================ */

/* More deliberate spacing between headings and card collections */
main .section-title + :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid),
main .section-subtitle + :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid) {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

main .section-header + :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid) {
  margin-top: 0;
}

/* Soft depth without making every section visually heavy */
main > .section--gray {
  background:
    radial-gradient(circle at 92% 8%, rgba(34,84,142,.045), transparent 30%),
    var(--gray-50);
}

/* One card language across subpages */
:is(.trust-card, .info-card, .strength-card, .coverage-card, .reason-item, .quote-info-item) {
  position: relative;
  height: 100%;
  border: 1px solid var(--gray-200);
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 5px 18px rgba(20, 34, 51, .055);
}

:is(.trust-card, .info-card, .strength-card, .coverage-card, .reason-item) {
  overflow: hidden;
}

:is(.trust-card, .info-card, .strength-card, .coverage-card, .reason-item)::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s ease;
}

:is(.trust-card, .info-card, .strength-card, .coverage-card, .reason-item):hover::after {
  transform: scaleX(1);
}

:is(.trust-card, .info-card, .strength-card, .coverage-card, .reason-item):hover {
  transform: translateY(-4px);
  border-color: rgba(34,84,142,.2);
  box-shadow: 0 14px 34px rgba(20, 34, 51, .11);
}

/* Homepage icon tile reused on every light subpage card */
:is(.trust-card__icon, .info-card__icon, .strength-card__icon, .contact-info-item__icon, .coverage-card__icon, .advantage-item__icon) {
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: .5rem;
  background: var(--blue);
  color: #fff;
  box-shadow: 0 7px 18px rgba(34,84,142,.18);
}

:is(.trust-card__icon, .info-card__icon, .strength-card__icon, .contact-info-item__icon, .coverage-card__icon, .advantage-item__icon) svg {
  width: 1.375rem;
  height: 1.375rem;
  color: currentColor;
  stroke: currentColor;
}

/* Dark/blue panels keep the same solid-tile idea with reversed contrast */
:is(.section--dark, .section--blue) .info-card__icon {
  border: 1px solid rgba(255,255,255,.35);
  background: #fff;
  color: var(--blue);
  box-shadow: 0 8px 22px rgba(0,0,0,.16);
}

:is(.section--dark, .section--blue) .info-card {
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.075);
  box-shadow: none;
}

:is(.section--dark, .section--blue) .info-card::after {
  background: var(--orange);
}

/* Cards with icons follow the homepage's vertical composition */
.trust-card,
.info-card,
.strength-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.35rem, 2.2vw, 1.65rem);
  text-align: left;
}

.trust-card__icon,
.info-card__icon,
.strength-card__icon {
  margin: 0 0 1rem;
}

:is(.trust-card, .info-card, .strength-card) h3 {
  margin-bottom: .5rem;
  font-size: 1.025rem;
  line-height: 1.35;
}

:is(.trust-card, .info-card, .strength-card) p {
  line-height: 1.7;
}

/* Existing check rows now use the same blue icon tile */
.advantage-item {
  align-items: flex-start;
  padding: .2rem 0;
}

.advantage-item__icon {
  margin-top: .05rem;
}

.advantage-item__icon svg {
  width: 1.25rem;
  height: 1.25rem;
  color: #fff;
}

/* Optional icon block for preparation/coverage cards */
.coverage-card__icon {
  margin-bottom: .9rem;
}

.coverage-card {
  min-height: 100%;
  padding: 1.4rem;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.coverage-card h3 {
  color: var(--gray-900);
}

/* Process-number cards feel related to icon cards without pretending numbers are icons */
.reason-item > span,
.process-step__number {
  border-radius: .5rem;
}

.reason-item > span {
  width: 2.75rem;
  height: 2.75rem;
  flex-basis: 2.75rem;
  background: var(--blue);
  box-shadow: 0 7px 18px rgba(34,84,142,.18);
}

/* Five-card sections: 3 cards in the first row, 2 centered below.
   Avoids the visually weak 4 + 1 or 2 + 2 + 1 arrangement. */
@media (min-width: 640px) {
  :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid):has(> :nth-child(5):last-child) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid):has(> :nth-child(5):last-child) > * {
    grid-column: span 2;
  }

  :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid):has(> :nth-child(5):last-child) > :nth-child(4) {
    grid-column: 2 / span 2;
  }

  :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid, .reasons-grid):has(> :nth-child(5):last-child) > :nth-child(5) {
    grid-column: 4 / span 2;
  }
}

/* Four-card sections stay as an even 2 x 2 on medium screens and 4 x 1 on wide screens. */
@media (min-width: 720px) and (max-width: 1019px) {
  .trust-grid,
  .strength-cards,
  .coverage-grid,
  .reasons-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Better image/card balance on content-heavy pages */
main .two-col > :is(figure, div):has(> img),
main .advantages-image {
  align-self: stretch;
}

main .two-col > :is(figure, div) > img,
main .advantages-image img {
  min-height: 100%;
}

@media (max-width: 719px) {
  :is(.trust-card, .info-card, .strength-card, .coverage-card, .reason-item) {
    padding: 1.25rem;
  }

  :is(.trust-card__icon, .info-card__icon, .strength-card__icon, .contact-info-item__icon, .coverage-card__icon, .advantage-item__icon) {
    width: 2.625rem;
    height: 2.625rem;
    flex-basis: 2.625rem;
  }
}

/* Four-step coordination block on the nationwide delivery page */
.coordination-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: 2rem;
}

.coordination-card {
  position: relative;
  overflow: hidden;
  padding: 1.5rem;
  border: 1px solid var(--gray-200);
  border-radius: .75rem;
  background: #fff;
  box-shadow: 0 5px 18px rgba(20,34,51,.055);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.coordination-card:hover {
  transform: translateY(-4px);
  border-color: rgba(34,84,142,.2);
  box-shadow: 0 14px 34px rgba(20,34,51,.11);
}

.coordination-card::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s ease;
}

.coordination-card:hover::after {
  transform: scaleX(1);
}

.coordination-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.coordination-card__icon {
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .5rem;
  background: var(--blue);
  color: #fff;
  box-shadow: 0 7px 18px rgba(34,84,142,.18);
}

.coordination-card__icon svg {
  width: 1.375rem;
  height: 1.375rem;
}

.coordination-card__number {
  color: var(--gray-300);
  font-size: 1.85rem;
  font-weight: 900;
  line-height: 1;
}

.coordination-card h3 {
  margin-bottom: .5rem;
  font-size: 1.05rem;
}

.coordination-card p {
  color: var(--gray-600);
  font-size: .9rem;
  line-height: 1.7;
}

@media (min-width: 760px) {
  .coordination-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Four-item icon collections should never fall into a 3 + 1 layout. */
@media (min-width: 1020px) {
  :is(.trust-grid, .info-cards, .strength-cards, .coverage-grid):has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .reasons-grid:has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Semantic image captions used on content pages */
.content-photo{margin:0;overflow:hidden;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.content-photo img{display:block;width:100%;max-height:470px;object-fit:cover}.content-photo figcaption{padding:.9rem 1rem 1rem;border-top:1px solid rgba(15,45,75,.08)}.content-photo figcaption strong{display:block;margin-bottom:.25rem;color:var(--gray-900)}.content-photo figcaption span{display:block;color:var(--gray-600);font-size:.9rem;line-height:1.55}
