/* Structured text blocks - bani.spb.ru (not osaune olive cards) */

.bani-blocks {
  margin: 18px 0 0;
  padding: 0;
  font-size: 10pt;
  line-height: 1.55;
  color: #474747;
}

/* Nav: quiet outline buttons */
.bani-nav {
  margin: 20px 0 14px;
  padding: 0;
  max-width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.bani-nav__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 6px;
}

.bani-nav__item {
  flex: 0 1 auto;
  min-width: 0;
  text-align: center;
  border: 0;
  box-sizing: border-box;
}

.bani-nav__link {
  display: inline-block;
  box-sizing: border-box;
  width: auto;
  min-height: 0;
  padding: 6px 11px;
  font-size: 9pt;
  font-weight: bold;
  line-height: 1.3;
  color: #6b4218;
  text-decoration: none;
  text-align: center;
  background: #f7f1e8;
  border: 1px solid #d7c3a8;
  border-radius: 4px;
  white-space: nowrap;
}

.bani-nav__link:hover {
  color: #492F10;
  background: #fff;
  border-color: #b88955;
  text-decoration: none;
}

/* Sections: white-back panels, no olive card chrome */
.bani-block {
  margin: 0 0 14px;
  padding: 14px 16px 16px;
  background: url(../img/white-back.png) repeat;
  border: 0;
  border-radius: 4px;
  scroll-margin-top: 14px;
  box-shadow: none;
}

.bani-block:last-child {
  margin-bottom: 0;
}

.bani-block__title {
  margin: 0 0 12px;
  padding: 0;
  font-size: 12pt;
  font-weight: bold;
  line-height: 1.35;
  color: #492F10;
  text-align: center;
  border: 0;
  text-transform: none;
}

.bani-block__body {
  color: #474747;
  font-size: 10pt;
  line-height: 1.55;
}

.bani-block__body p {
  margin: 0 0 0.7em;
}

.bani-block__lead {
  margin: 10px 0 6px;
  font-weight: bold;
  color: #492F10;
}

.bani-block__list {
  margin: 0 0 0.8em 1.2em;
  padding: 0;
}

.bani-block__list--prose {
  margin-left: 0;
  list-style: none;
}

.bani-block__list li {
  margin: 0 0 0.35em;
}

.bani-legacy {
  margin: 0 0 14px;
  padding: 14px 16px;
  background: url(../img/white-back.png) repeat;
  border-radius: 4px;
}

/* Actions accordion */
.bani-actions-list {
  margin: 0;
  padding: 0;
}

.bani-action {
  margin: 0 0 8px;
  border: 1px solid #e0d0bc;
  border-radius: 3px;
  background: #fff;
  overflow: hidden;
}

.bani-action:last-child {
  margin-bottom: 0;
}

.bani-action--plain {
  border: 0;
  background: transparent;
}

.bani-action__title {
  display: block;
  margin: 0;
  padding: 9px 34px 9px 12px;
  font-size: 10pt;
  font-weight: bold;
  color: #492F10;
  background: #f7f0e6;
  cursor: pointer;
  list-style: none;
  position: relative;
}

.bani-action__title::-webkit-details-marker {
  display: none;
}

.bani-action__title::after {
  content: "\25be";
  position: absolute;
  right: 12px;
  top: 50%;
  margin-top: -0.6em;
  color: #a46727;
  font-size: 11px;
}

.bani-action[open] .bani-action__title::after {
  content: "\25b4";
}

.bani-action__title:hover,
.bani-action[open] .bani-action__title {
  background: #ead5bd;
}

.bani-action__body {
  padding: 10px 12px 12px;
  border-top: 1px solid #e0d0bc;
  color: #474747;
  font-size: 10pt;
}

/* Programs */
.bani-programs-list {
  margin: 0;
  padding: 0;
}

.bani-program {
  margin: 0 0 12px;
  padding: 0;
  border: 1px solid #e0d0bc;
  border-radius: 3px;
  background: #fff;
}

.bani-program:last-child {
  margin-bottom: 0;
}

.bani-program__title {
  margin: 0;
  padding: 10px 12px;
  font-size: 11pt;
  font-weight: bold;
  color: #492F10;
  background: #f7f0e6;
  border-bottom: 1px solid #e0d0bc;
}

.bani-program__body {
  padding: 10px 12px 12px;
}

.bani-program__content {
  overflow: hidden;
}

.bani-program__content--collapsed {
  position: relative;
}

.bani-program__content--plain {
  white-space: pre-line;
}

.bani-program__more,
.bani-extra-row__more {
  display: inline-block;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: #a46727;
  font-size: 9pt;
  font-weight: bold;
  cursor: pointer;
  text-decoration: underline;
}

.bani-program__more:hover,
.bani-extra-row__more:hover {
  color: #492F10;
}

/* Program prices */
.bani-program-price {
  margin: 10px 0 0;
  border: 1px solid #e0d0bc;
  border-radius: 3px;
  overflow: hidden;
  background: #fff;
}

.bani-program-price__title {
  margin: 0;
  padding: 8px 10px;
  font-size: 10pt;
  font-weight: bold;
  color: #492F10;
  background: #f3e8dc;
  border-bottom: 1px solid #e0d0bc;
}

.bani-program-price__scroll {
  overflow-x: auto;
}

.bani-program-price__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.bani-program-price__table th,
.bani-program-price__table td {
  padding: 6px 8px;
  border-bottom: 1px solid #ebdcc8;
  text-align: left;
  vertical-align: top;
}

.bani-program-price__table tr:nth-child(even) {
  background: #faf6f0;
}

.bani-program-price__label {
  color: #492F10;
  font-weight: bold;
}

.bani-program-price__value {
  width: 38%;
  color: #492F10;
  white-space: nowrap;
  text-align: right;
  font-weight: bold;
}

.bani-program-price__table--with-when .bani-program-price__value {
  width: 34%;
}

.bani-program-price__when {
  white-space: nowrap;
}

.bani-program-price__when-days,
.bani-program-price__meta {
  display: inline-block;
  margin: 0 4px 2px 0;
  padding: 1px 6px;
  background: #f3e8dc;
  color: #492F10;
  border-radius: 2px;
  font-size: 8pt;
}

.bani-program-price__when-time,
.bani-program-price__note {
  color: #6b5a45;
  font-size: 8pt;
}

.bani-program-price__note {
  margin: 6px 10px 8px;
}

/* Extra services */
.bani-extra-list {
  margin: 0;
  padding: 0;
}

.bani-extra-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #e0d0bc;
  background: #fff;
  font-size: 9pt;
}

.bani-extra-table th,
.bani-extra-table td {
  padding: 7px 8px;
  border-bottom: 1px solid #ebdcc8;
  text-align: left;
  vertical-align: top;
}

.bani-extra-table td.bani-extra-row__price {
  width: 28%;
  color: #492F10;
  font-weight: bold;
  white-space: nowrap;
  text-align: right;
}

.bani-extra-table tbody tr:nth-child(even) {
  background: #faf6f0;
}

.bani-extra-table tbody tr.bani-extra-row--group {
  background: #f3e8dc;
  font-weight: bold;
  color: #492F10;
}

.bani-extra-row__name {
  color: #333;
  width: 72%;
}

.bani-extra-row__price {
  width: 28%;
  color: #492F10;
  font-weight: bold;
  white-space: nowrap;
  text-align: right;
}

.bani-extra-row__note,
.bani-extra-row__desc,
.bani-extra-row__desc-cell {
  color: #6b5a45;
}

.bani-extra-row__desc--collapsed {
  overflow: hidden;
}

/* Tariff / schedule / prices */
.bani-tariff__group,
.bani-price-table__grid {
  margin: 0 0 12px;
  border: 1px solid #e0d0bc;
  border-radius: 3px;
  overflow: hidden;
  background: #fff;
}

.bani-tariff__period,
.bani-tariff__inventory-title,
.bani-tariff__prices-title {
  margin: 0;
  padding: 8px 10px;
  font-size: 10pt;
  font-weight: bold;
  color: #492F10;
  background: #f7f0e6;
  border-bottom: 1px solid #e0d0bc;
}

.bani-tariff__period--major,
.bani-tariff__grid tbody tr.bani-tariff__heading--major {
  background: #ead5bd !important;
}

.bani-tariff__grid,
.bani-price-table__grid table,
.bani-price-table__grid {
  width: 100%;
  border-collapse: collapse;
  font-size: 9pt;
}

.bani-tariff__grid th,
.bani-tariff__grid td,
.bani-price-table__grid td,
.bani-price-table__grid th {
  padding: 6px 8px;
  border-bottom: 1px solid #ebdcc8;
  text-align: left;
  vertical-align: top;
}

.bani-tariff__grid td.bani-tariff__price,
.bani-price-table__grid td {
  text-align: right;
  white-space: nowrap;
  color: #492F10;
  font-weight: bold;
}

.bani-program-price__table td.bani-program-price__value {
  width: 38%;
  text-align: right;
  white-space: nowrap;
  color: #492F10;
  font-weight: bold;
}

.bani-program-price__table--with-when td.bani-program-price__value {
  width: 34%;
}

.bani-tariff__grid tbody tr:nth-child(even),
.bani-price-table__grid tbody tr:nth-child(even) {
  background: #faf6f0;
}

.bani-tariff__grid tbody tr.bani-tariff__heading,
.bani-tariff__grid tbody tr.bani-tariff__heading--sub {
  background: #f3e8dc;
  color: #492F10;
  font-weight: bold;
}

.bani-tariff__time {
  width: 55%;
  color: #555;
  white-space: nowrap;
}

.bani-tariff__price {
  color: #492F10;
  font-weight: bold;
  text-align: right;
  white-space: nowrap;
}

.bani-tariff__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bani-tariff__list .bani-tariff__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 8px;
  border-bottom: 1px solid #ebdcc8;
}

.bani-tariff__list .bani-tariff__price {
  margin-left: auto;
  text-align: right;
}

.bani-price-table__grid th {
  width: 55%;
  color: #555;
  font-weight: normal;
  text-align: left;
}

.bani-price-table__grid td {
  color: #492F10;
  font-weight: bold;
  text-align: right;
  white-space: nowrap;
}

.bani-tariff__note,
.bani-tariff__extra,
.bani-price-table__footnote,
.bani-price-table__basis,
.bani-price-table__guest {
  color: #6b5a45;
  font-size: 9pt;
}

.bani-tariff__extra {
  margin: 8px 0 0;
  padding: 8px 10px;
  background: #fff;
  border: 1px solid #e0d0bc;
  border-left: 3px solid #a46727;
}

.bani-tariff__note-row td {
  background: #fff;
  border-left: 3px solid #a46727;
}

.bani-tariff__list {
  margin: 0 0 0 1.1em;
  padding: 0;
}

/* Map / tour / website / panorama */
.bani-map,
.bani-block--tour .bani-block__body {
  margin: 0;
}

.bani-map__link,
.bani-tour__link {
  display: inline-block;
  padding: 7px 14px;
  color: #fff;
  background: #a46727;
  border: 1px solid #a46727;
  border-radius: 3px;
  text-decoration: none;
  font-weight: bold;
  font-size: 9pt;
}

.bani-map__link:hover,
.bani-tour__link:hover {
  background: #8f561f;
  border-color: #8f561f;
  color: #fff;
}

.bani-inline-link {
  color: #8f561f;
  text-decoration: underline;
}

.bani-inline-link:hover {
  color: #492F10;
}

.bani-website-links {
  margin: 0;
}

.bani-website-link {
  display: inline-block;
  margin: 0 8px 6px 0;
  padding: 5px 10px;
  color: #492F10;
  background: #f8efe5;
  border: 1px solid rgba(164, 103, 39, 0.28);
  border-radius: 3px;
  text-decoration: none;
  font-size: 9pt;
}

.bani-website-link:hover {
  color: #fff;
  background: #a46727;
  border-color: #a46727;
}

.bani-website--multi {
  margin: 0 0 6px;
}

.bani-website--multi .bani-website__links {
  display: block;
  margin-top: 3px;
}

.bani-website--multi .bani-website__link {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #492F10;
  text-decoration: underline;
}

.bani-panorama {
  margin: 8px 0 0;
}

.bani-panorama a {
  color: #8f561f;
  font-weight: bold;
}

@media (max-width: 640px) {
  .bani-nav__link {
    padding: 6px 9px;
    font-size: 8.5pt;
    white-space: normal;
  }

  .bani-block {
    padding: 12px;
  }

  .bani-program-price__table th,
  .bani-program-price__table td,
  .bani-extra-table th,
  .bani-extra-table td,
  .bani-tariff__grid th,
  .bani-tariff__grid td {
    padding: 5px 6px;
  }
}
