@layer base, layout, component, theme;
@layer base {
  /* reset */
  *,
  ::after,
  ::before,
  ::backdrop {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  /* focus */
  *:focus {
    outline: 0;
  }
  html {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, 0.833333vw, 4rem);
  }
  body {
    overflow-x: hidden;
    color: var(--text);
    font-size: 1.125rem;
    line-height: 1.5;
  }
  iframe {
    width: 100%;
    height: 37.5rem;
  }
  hr {
    clear: both;
    margin: 1rem 0;
    border: 0.0625rem solid #000;
  }
  a {
    text-decoration: underline;
    color: var(--dark);
  }
  a:hover {
    text-decoration: underline;
  }
  a:visited {
    color: var(--dark);
  }
  ul,
  ol {
    margin: 0 0 3.125rem 0;
    padding: 0.125rem 0 0.125rem 0.9375rem;
  }
  ul ul,
  ul ol,
  ol ol,
  ol ul {
    margin: 0;
    padding: 0 0 0 1.25rem;
  }
  ul li,
  ol li {
    margin: 0.375rem 0 0.375rem 0;
    list-style-position: outside;
    line-height: 1.5;
  }
  p {
    margin: 0 0 1.125rem 0;
    line-height: 1.5;
  }
  p.cenik-description {
    padding-top: 0.625rem;
    text-align: center;
    color: #426b77;
    font-size: 1.125rem;
    font-style: normal;
    line-height: 1.55;
  }
  table {
    margin-top: 1.5625rem;
    margin-bottom: 0.9375rem;
    border-collapse: collapse;
    border-top: 0.0625rem solid #ccc;
    border-left: 0.0625rem solid #ccc;
  }
  table caption {
    padding: 0.5rem 0.75rem;
    border-top: 0.0625rem solid #ccc;
    border-right: 0.0625rem solid #ccc;
    border-left: 0.0625rem solid #ccc;
  }
  table tr {
    border-bottom: 0.0625rem solid #ccc;
  }
  table tr td,
  table tr th {
    padding: 0.5rem 0.75rem;
    border-right: 0.0625rem solid #ccc;
  }
  table tr td.reserved {
    background-color: #f8f8f8;
  }
  table.cenik {
    width: 100%;
    border-spacing: 0 0.625rem;
    border: 0;
    border-collapse: separate;
    background-color: white;
  }
  table.cenik caption {
    margin-bottom: 0.5rem;
    padding: 0 1.25rem 0.625rem;
    text-align: left;
    color: var(--dark);
    border: 0;
    border-bottom: 0.125rem solid var(--blue_light);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.4;
  }
  table.cenik caption:empty {
    display: none;
  }
  table.cenik thead tr {
    border: 0;
  }
  table.cenik thead tr th {
    padding: 0.5rem 1.25rem;
    text-align: left;
    letter-spacing: 0.375rem;
    text-transform: uppercase;
    color: var(--krav);
    border: 0;
    font-size: 1rem;
    font-weight: 700;
    font-style: normal;
    line-height: 1.25;
  }
  table.cenik tbody tr {
    border: 0;
    border-bottom: 0.625rem solid transparent;
  }
  table.cenik tbody tr td {
    padding: 0.5rem 1.25rem;
    color: #426b77;
    border: 0;
    background-color: #e9f8f8;
  }
  table.cenik tbody tr td:first-child {
    border-top-left-radius: 0.625rem;
    border-bottom-left-radius: 0.625rem;
  }
  table.cenik tbody tr td:last-child {
    border-top-right-radius: 0.625rem;
    border-bottom-right-radius: 0.625rem;
  }
  table.cenik tbody tr td[rowspan] {
    vertical-align: middle;
  }
  table.cenik.cenik1 {
    border-spacing: 0;
  }
  table.cenik.cenik1 thead tr th {
    padding-bottom: 0.75rem;
  }
  table.cenik.cenik1 thead tr th:not(:first-child) {
    text-align: center;
  }
  table.cenik.cenik1 tbody tr {
    border: 0;
  }
  table.cenik.cenik1 tbody tr + tr td {
    border-top: 0.125rem solid var(--white);
  }
  table.cenik.cenik1 tbody tr td {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    border-radius: 0;
  }
  table.cenik.cenik1 tbody tr td:not(:first-child) {
    text-align: center;
    font-weight: 700;
  }
  table.cenik.cenik1 tbody tr td[rowspan] {
    color: var(--dark);
    border-left: 0.125rem solid var(--white);
    background-color: var(--blue_light);
    font-weight: 400;
  }
  table.cenik.cenik1 tbody tr:first-child td:first-child {
    border-top-left-radius: 0.625rem;
  }
  table.cenik.cenik1 tbody tr:first-child td:last-child {
    border-top-right-radius: 0.625rem;
  }
  table.cenik.cenik1 tbody tr:last-child td:first-child {
    border-bottom-left-radius: 0.625rem;
  }
  table.cenik.cenik1 tbody tr:last-child td:last-child:not(:only-child),
  table.cenik.cenik1 tbody tr:last-child td[colspan]:only-child,
  table.cenik.cenik1 tbody tr:first-child td[rowspan]:last-child,
  table.cenik.cenik1 tbody tr:only-child td:last-child {
    border-bottom-right-radius: 0.625rem;
  }
  p.cenik-note,
  ul.cenik-note {
    margin: 0 0 1.5625rem 0;
    padding: 0 1.25rem;
    color: #426b77;
    font-size: 0.875rem;
    line-height: 1.5;
  }
  ul.cenik-note {
    padding-left: 2.1875rem;
  }
  ul.cenik-note li {
    margin: 0.125rem 0;
  }
  .table-relative:has(+ .cenik-note),
  .cenik-note:has(+ .cenik-note) {
    margin-bottom: 0.625rem;
  }
  .table-relative {
    position: relative;
    margin-bottom: 1.5625rem;
    padding-top: 1.25rem;
  }
  .table-relative table {
    margin-top: 0;
    margin-bottom: 0;
  }
  .table-responsive {
    overflow-x: auto;
    margin-top: 1.5625rem;
  }
  .table-scroll-next {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-top: -1.5rem;
    padding: 0;
    cursor: pointer;
    color: var(--krav);
    border: 0;
    background: none;
  }
  .table-scroll-next[hidden] {
    display: none;
  }
  .table-scroll-next svg {
    width: 1.25rem;
    height: 2.25rem;
  }
  table.table2 {
    width: 100%;
    border-spacing: 0 0.625rem;
    border: 0;
    border-collapse: separate;
  }
  table.table2 tbody tr {
    color: #426b77;
    border: 0;
  }
  table.table2 tbody tr td {
    padding: 0.375rem 1.25rem;
    border: 0;
    border-top: 0.0625rem solid var(--krav);
    border-bottom: 0.0625rem solid var(--krav);
    background-color: var(--blue_light);
  }
  table.table2 tbody tr td:first-child {
    border-left: 0.0625rem solid var(--krav);
    border-top-left-radius: 0.625rem;
    border-bottom-left-radius: 0.625rem;
  }
  table.table2 tbody tr td:last-child {
    text-align: right;
    border-right: 0.0625rem solid var(--krav);
    border-top-right-radius: 0.625rem;
    border-bottom-right-radius: 0.625rem;
  }
  table.table2 tbody tr:nth-child(even) td {
    padding: 0.25rem 1.25rem 1rem 1.25rem;
    border: 0;
    background-color: transparent;
    font-size: 1rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.37;
  }
  table.table2 tbody tr:nth-child(even) td:last-child {
    text-align: left;
  }
  h1 {
    margin: 0 0 5.625rem 0;
    padding: 0;
    letter-spacing: -0.125rem;
    color: var(--dark);
    font-size: 3.625rem;
    font-weight: 700;
    line-height: 1;
  }
  h2 {
    margin: 0 0 1.25rem 0;
    padding: 0;
    font-size: 2.125rem;
    font-weight: 600;
    line-height: 1.3;
  }
  h3 {
    margin: 0 0 1.25rem 0;
    padding: 0;
    font-size: 1.625rem;
    font-weight: 600;
    line-height: 1.3;
  }
  h4 {
    margin: 0 0 1.25rem 0;
    padding: 0;
    font-size: 1.375rem;
    font-weight: 300;
    line-height: 1.3;
  }
  h5 {
    margin: 0 0 1.25rem 0;
    padding: 0;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.3;
  }
  h6 {
    margin: 0 0 1.25rem 0;
    padding: 2.625rem 0 0 0;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.3;
  }
  audio {
    background: #000;
  }
  img {
    max-width: 100%;
    height: auto;
    vertical-align: top;
  }
  .caption {
    margin: 0 0 3.125rem 0;
    padding: 0;
  }
  .caption.align-center {
    margin-bottom: 3.125rem;
  }
  .caption.align-right {
    margin: 0 0 3.125rem 1.875rem;
  }
  .caption.align-left {
    margin: 0 1.875rem 3.125rem 0;
  }
  .caption > figcaption {
    position: relative;
    z-index: 10;
    top: 0.75rem;
    display: inline;
    max-width: none;
    padding: 0;
    padding: 0.25rem 1.25rem 0.5rem 0.625rem;
    caption-side: bottom;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    font-size: 1.125rem;
  }
  video {
    background: #000;
  }
  input,
  select,
  textarea {
    width: 100%;
    transition: 0.18s ease-out;
    vertical-align: bottom;
    border: 0.0625rem solid #ddd;
    border-radius: 0.4375rem;
    outline: none;
    background: var(--white);
    font-family: inherit;
    font-size: 1.125rem;
    font-weight: bold;
    line-height: 1.5;
  }
  input,
  select {
    height: 2.6875rem;
    padding: 0 0.8125rem;
  }
  textarea {
    padding: 0.8125rem;
  }
  input[type='checkbox'],
  input[type='radio'],
  input[type='file'] {
    width: auto;
  }
  input[type='reset'],
  input[type='submit'] {
    width: auto;
    cursor: pointer;
    color: var(--white);
    border: 0.0625rem solid transparent;
    background-color: var(--krav);
    font-size: 1.0625rem;
    font-weight: 600;
  }
  input[type='reset']:hover,
  input[type='submit']:hover {
    color: var(--white);
    background-color: var(--dark);
  }
  ul.menu {
    margin: 0;
    padding: 0;
  }
  ul.menu li {
    margin: 0;
    padding: 0;
    list-style: none;
    line-height: 1;
  }
  @media (max-width: 849px) {
    ul,
    ol {
      margin: 0 0 1.125rem 0;
    }
  }
  @media (max-width: 849px) {
    table.cenik caption,
    table.cenik thead tr th,
    table.cenik tbody tr td {
      padding-right: 0.75rem;
      padding-left: 0.75rem;
    }
    table.cenik thead tr th {
      letter-spacing: 0.1875rem;
    }
  }
  @media (max-width: 479px) {
    table.cenik {
      min-width: 35rem;
    }
  }
  @media (max-width: 479px) {
    table.cenik.cenik1 tbody tr td {
      padding-top: 0.625rem;
      padding-bottom: 0.625rem;
    }
  }
  @media (max-width: 849px) {
    p.cenik-note,
    ul.cenik-note {
      padding: 0 0.75rem;
    }
  }
  @media (max-width: 849px) {
    ul.cenik-note {
      padding-left: 1.6875rem;
    }
  }
  @media (max-width: 849px) {
    .table-relative {
      padding-top: 0;
    }
  }
  @media (max-width: 849px) {
    h1 {
      margin-bottom: 3.75rem;
      letter-spacing: -0.0625rem;
      font-size: 1.875rem;
    }
  }
  @media (max-width: 849px) {
    h2 {
      padding: 0.625rem 0 0 0;
      font-size: 1.5rem;
    }
  }
  @media (max-width: 849px) {
    h3 {
      margin: 0 0 0.625rem 0;
      padding: 0.625rem 0 0 0;
      font-size: 1.25rem;
    }
  }
  @media (max-width: 849px) {
    h4 {
      margin: 0 0 0.625rem 0;
      padding: 0;
      font-size: 1.125rem;
    }
  }
  @media (max-width: 849px) {
    h5 {
      margin: 0 0 0.625rem 0;
      padding: 0.625rem 0 0 0;
      font-size: 1.125rem;
    }
  }
  @media (max-width: 849px) {
    h6 {
      margin: 0 0 0.625rem 0;
      padding: 0.625rem 0 0 0;
      font-size: 1rem;
    }
  }
  @media (max-width: 849px) {
    audio {
      width: 100% !important;
    }
  }
  @media (max-width: 849px) {
    video {
      width: 100% !important;
    }
  }
}
