/* Служебный слой совместимости с WordPress; не входит в архив дизайна. */
.casta-page {
  color: var(--casta-color-ink);
}

.casta-page a,
.casta-page a:hover {
  text-decoration: none;
}

/* Наследуем цвет контекста, не перекрывая цвета компонентов и их hover. */
.casta-page a:not([class*="casta-"]),
.casta-page a:not([class*="casta-"]):hover,
.casta-page .casta-topbar__link:not(:hover) {
  color: inherit;
}

/* У названия сайта нет собственного hover: сохраняем исходный цвет. */
.casta-page .casta-brand,
.casta-page .casta-brand:hover {
  color: var(--casta-color-ink);
}

/* Contact Form 7 внутри нового дизайна */
.casta-page {
  --casta-wp-textarea-max-height: 18rem;
}

.casta-page .wpcf7-form-control-wrap {
  display: block;
}

.casta-page textarea.casta-form__input--textarea {
  height: calc(1lh + var(--casta-space-3) + var(--casta-space-3));
  min-height: calc(1lh + var(--casta-space-3) + var(--casta-space-3));
  max-height: var(--casta-wp-textarea-max-height);
  overflow-y: auto;
}

.casta-page .wpcf7-submit {
  background-color: var(--casta-color-ink);
  color: var(--casta-color-on-ink);
}

.casta-page .wpcf7-submit:hover {
  background-color: var(--casta-color-accent);
  color: var(--casta-color-on-accent);
}

.casta-page .wpcf7-response-output {
  margin: var(--casta-space-4) 0 0;
  border: 0;
  padding: 0;
  font-size: var(--casta-fs-sm);
  color: var(--casta-color-accent);
}

.casta-page .wpcf7-not-valid-tip {
  margin-top: var(--casta-space-2);
  font-size: var(--casta-fs-xs);
  color: var(--casta-color-accent);
}

.casta-page .wpcf7-spinner {
  vertical-align: middle;
}

/* Тело статьи: подъём веса правил макета над стилями Гутенберга */
.casta-page .casta-post__body ul,
.casta-page .casta-post__body ol {
  display: flex;
  flex-direction: column;
  max-width: var(--casta-measure-3xl);
  margin-top: var(--casta-space-5);
}

.casta-page .casta-post__body ul {
  gap: var(--casta-space-3);
}

.casta-page .casta-post__body ul > li {
  position: relative;
  padding-left: var(--casta-space-6);
  font-size: var(--casta-fs-base);
  line-height: var(--casta-lh-relaxed);
  color: var(--casta-color-ink-80);
}

.casta-page .casta-post__body ul > li::before {
  position: absolute;
  top: var(--casta-bullet-sm-top);
  left: 0;
  width: var(--casta-size-bullet);
  height: var(--casta-size-bullet);
  background-color: var(--casta-color-accent);
  content: "";
  transform: rotate(45deg);
}

.casta-page .casta-post__body ol {
  gap: var(--casta-space-4);
  counter-reset: casta-post-step;
}

.casta-page .casta-post__body ol > li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: var(--casta-space-5);
  counter-increment: casta-post-step;
  font-size: var(--casta-fs-base);
  line-height: var(--casta-lh-relaxed);
  color: var(--casta-color-ink-80);
}

.casta-page .casta-post__body ol > li::before {
  font-family: var(--casta-font-mono);
  font-size: var(--casta-fs-label);
  line-height: var(--casta-lh-label);
  letter-spacing: var(--casta-ls-label);
  color: var(--casta-color-accent);
  content: counter(casta-post-step, decimal-leading-zero);
}

.casta-page .casta-post__body figure {
  max-width: 100%;
  margin-top: var(--casta-space-8);
  overflow-x: auto;
}

.casta-page .casta-post__body table {
  width: 100%;
  margin-top: var(--casta-space-8);
  border: var(--casta-hairline-w) solid var(--casta-color-hairline);
  border-collapse: collapse;
  background-color: var(--casta-color-bg);
  font-size: var(--casta-fs-sm);
  text-align: left;
}

.casta-page .casta-post__body figure table {
  min-width: calc(var(--casta-measure-xl) - var(--casta-space-4));
  margin-top: 0;
}

.casta-page .casta-post__body thead,
.casta-page .casta-post__body thead th,
.casta-page .casta-post__body thead td,
.casta-page .casta-post__body .wp-block-table thead th,
.casta-page .casta-post__body .wp-block-table thead td {
  background-color: var(--casta-color-ink);
  color: var(--casta-color-on-ink);
}

.casta-page .casta-post__body th,
.casta-page .casta-post__body td {
  padding: var(--casta-space-4) var(--casta-space-5);
  vertical-align: top;
}

.casta-page .casta-post__body thead th {
  font-family: var(--casta-font-mono);
  font-weight: var(--casta-fw-regular);
  font-size: var(--casta-fs-label);
  letter-spacing: var(--casta-ls-label);
  text-transform: uppercase;
}

.casta-page .casta-post__body tbody td {
  line-height: var(--casta-lh-normal);
  color: var(--casta-color-ink-75);
}

.casta-page .casta-post__body tbody th,
.casta-page .casta-post__body tbody td:first-child {
  font-family: var(--casta-font-display);
  font-weight: var(--casta-fw-regular);
  font-size: var(--casta-fs-base);
  color: var(--casta-color-ink);
}

.casta-page .casta-post__body tbody tr:not(:last-child) > * {
  border-bottom: var(--casta-hairline-w) solid var(--casta-color-hairline);
}

.casta-page .casta-post__body figure.wp-block-table {
  max-width: 100%;
  margin-top: var(--casta-space-8);
  overflow-x: auto;
}

.casta-page .casta-post__body figure.wp-block-table > table {
  width: 100%;
  min-width: calc(var(--casta-measure-xl) - var(--casta-space-4));
  margin-top: 0;
  border: var(--casta-hairline-w) solid var(--casta-color-hairline);
  border-collapse: collapse;
  background-color: var(--casta-color-bg);
  font-size: var(--casta-fs-sm);
  text-align: left;
}

.casta-page .casta-post__body .wp-block-table th,
.casta-page .casta-post__body .wp-block-table td {
  border: 0;
  padding: var(--casta-space-4) var(--casta-space-5);
  vertical-align: top;
}

.casta-page .casta-post__body blockquote {
  margin-top: var(--casta-space-8);
  max-width: var(--casta-measure-3xl);
  border-left: var(--casta-border-2) solid var(--casta-color-accent);
  padding: var(--casta-space-1) 0 var(--casta-space-1) var(--casta-space-6);
  font-family: var(--casta-font-display);
  font-size: var(--casta-fs-xl);
  line-height: var(--casta-lh-snug);
  color: var(--casta-color-ink);
}

@media (min-width: 768px) {
  .casta-page .casta-post__body blockquote {
    font-size: var(--casta-fs-2xl);
  }
}

.casta-page .casta-post__body blockquote > p {
  max-width: none;
  margin-top: 0;
  font: inherit;
  line-height: inherit;
  color: inherit;
}

.casta-page .casta-post__body hr {
  max-width: var(--casta-measure-3xl);
  margin: var(--casta-space-10) 0;
  border: 0;
  border-top: var(--casta-hairline-w) solid var(--casta-color-hairline);
}

/* Метрики архива портфолио: перенос длинных значений и компактная сетка */
.casta-page .casta-stat__value {
  white-space: normal;
  overflow-wrap: anywhere;
}

.casta-page .casta-portfolio__metrics .casta-stat {
  text-align: center;
}

.casta-page .casta-portfolio__metrics .casta-stat__value {
  font-size: calc(var(--casta-fs-2xl) * 0.75);
}

/* Служебное поле пакета формы */
.casta-page .casta-form__package-field {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Ответ FAQ на всю доступную ширину; отступ слева сохранён. */
.casta-page .casta-faq__answer {
  max-width: none;
}

/* Отступ над формой Contact Form 7 в панелях заявки.
В макете он задан классам casta-audit__request-form и
casta-express__form, но плагин выводит свой тег формы. */
.casta-page .casta-audit__request-panel .wpcf7 {
  margin-top: var(--casta-space-9);
}

.casta-page .casta-express__panel .wpcf7 {
  margin-top: var(--casta-space-8);
}

/* Пагинация архивов. В макете ее нет, оформляем в стиле сайта
   на существующих переменных. */
.casta-page .casta-blog__pagination {
  margin-top: var(--casta-space-10);
}

.casta-page .casta-blog__pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--casta-space-3);
}

.casta-page .casta-blog__pagination .page-numbers {
  display: inline-block;
  padding: var(--casta-space-2) var(--casta-space-4);
  border: var(--casta-hairline-w) solid var(--casta-color-hairline);
  font-family: var(--casta-font-mono);
  font-size: var(--casta-fs-sm);
  letter-spacing: var(--casta-ls-label);
  text-transform: uppercase;
  transition: color var(--casta-dur-fast) var(--casta-ease),
              border-color var(--casta-dur-fast) var(--casta-ease);
}

.casta-page .casta-blog__pagination a.page-numbers:hover {
  color: var(--casta-color-accent);
  border-color: var(--casta-color-accent);
}

.casta-page .casta-blog__pagination .page-numbers.current {
  color: var(--casta-color-on-accent);
  background-color: var(--casta-color-accent);
  border-color: var(--casta-color-accent);
}

.casta-page .casta-blog__pagination .page-numbers.dots {
  border-color: transparent;
}

/* Полная ширина ответов на странице услуги и вступления
  в блоке вопросов. По просьбе владельца, в макете стоит
  ограничение длины строки. */
.casta-page .casta-audit__qa-body {
  max-width: none;
}

.casta-page #faq .casta-section__intro {
  max-width: none;
}

/* Миниатюра записи в блоке публикаций на главной */
.casta-page .casta-blogfeed__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Галерея Casta: карусель и окно просмотра */
.casta-page .casta-gallery {
  margin-top: var(--casta-space-8);
}

.casta-page .casta-gallery__track {
  display: flex;
  gap: var(--casta-space-4);
  margin: 0;
  padding: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: inline proximity;
  scrollbar-width: none;
  list-style: none;
}

.casta-page .casta-gallery__track::-webkit-scrollbar {
  display: none;
}

.casta-page .casta-gallery__item {
  flex: 0 0 min(calc(var(--casta-measure-sm) - var(--casta-space-16)), 85vw);
  aspect-ratio: var(--casta-aspect-media);
  scroll-snap-align: start;
}

.casta-page .casta-gallery__btn {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.casta-page .casta-gallery__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.casta-page .casta-gallery__nav {
  display: flex;
  gap: var(--casta-space-3);
  margin-top: var(--casta-space-4);
}

.casta-page .casta-gallery__nav[hidden] {
  display: none;
}

.casta-page .casta-gallery__arrow,
.casta-page .casta-lightbox__close {
  display: inline-block;
  padding: var(--casta-space-2) var(--casta-space-4);
  border: var(--casta-hairline-w) solid var(--casta-color-hairline);
  background: transparent;
  color: var(--casta-color-ink);
  font-family: var(--casta-font-mono);
  font-size: var(--casta-fs-sm);
  transition: color var(--casta-dur-fast) var(--casta-ease),
              border-color var(--casta-dur-fast) var(--casta-ease);
  cursor: pointer;
}

.casta-page .casta-gallery__arrow:hover,
.casta-page .casta-lightbox__close:hover {
  color: var(--casta-color-accent);
  border-color: var(--casta-color-accent);
}

body.casta-lightbox-open {
  overflow: hidden;
}

.casta-page .casta-lightbox {
  position: fixed;
  z-index: calc(var(--casta-z-header) + 20);
  inset: 0;
  display: grid;
  place-items: center;
  padding: var(--casta-space-4);
}

.casta-page .casta-lightbox[hidden] {
  display: none;
}

.casta-page .casta-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background-color: var(--casta-color-ink-90);
}

.casta-page .casta-lightbox__panel {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.casta-page .casta-lightbox__close {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  border-color: var(--casta-color-on-ink-25);
  color: var(--casta-color-on-ink);
}

.casta-page .casta-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.casta-main > .casta-section:last-of-type {
  border-bottom: 0;
  padding-bottom: var(--casta-space-10);
}
