/* WordPress / Elementor compatibility — no visual redesign */

.wp-site-blocks img,
.entry-content img,
.article-content img,
.service-content img {
  max-width: 100%;
  height: auto;
}

.aligncenter {
  display: block;
  margin-inline: auto;
}

.alignleft {
  float: inline-start;
  margin-inline-end: 1rem;
}

.alignright {
  float: inline-end;
  margin-inline-start: 1rem;
}

.screen-reader-text:focus {
  clip: auto;
  height: auto;
  width: auto;
  position: static;
  margin: 0;
  padding: 0.5rem;
}

/* WP pagination → existing .pagination look */
.pagination .nav-links {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  flex-wrap: wrap;
}

.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.6rem;
  border: 1px solid var(--border, #e4e8e0);
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
}

.pagination .page-numbers.current {
  background: var(--primary-dark, #034023);
  color: #fff;
  border-color: transparent;
}

/* Hidden checkbox focus must not scroll the page (mobile menu close). */
.menu-toggle-checkbox,
.submenu-checkbox {
  position: fixed;
  top: 0;
  inset-inline-start: 0;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}

body:has(#primary-menu-toggle:checked) {
  overflow: clip;
}
.admin-bar .site-header {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .site-header {
    top: 0;
  }
}

/* Elementor: keep theme container width inside widgets */
.elementor-widget-sarv-hero .hero,
.elementor-widget-sarv-services .section,
.elementor-widget-sarv-portfolio .section,
.elementor-widget-sarv-process .section,
.elementor-widget-sarv-why-us .section,
.elementor-widget-sarv-testimonials .section,
.elementor-widget-sarv-cta .section {
  margin: 0;
}

.elementor-editor-active .service-explorer__panel[hidden] {
  display: block;
}

.comment-list {
  list-style: none;
  padding: 0;
}

.comments {
  max-width: 720px;
}

.comments__list,
.comments__list .children {
  list-style: none;
  margin: 0;
  padding: 0;
}

.comments__list .children {
  margin-top: var(--space-4);
  padding-inline-start: var(--space-8);
}

.comments__item {
  margin: 0 0 var(--space-5);
}

.comments__card {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e4e8e0);
  border-radius: var(--radius-lg, 14px);
  padding: var(--space-5);
}

.comments__meta {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.comments__avatar,
.comments__meta img.avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full, 9999px);
  flex-shrink: 0;
}

.comments__author {
  display: block;
  font-weight: 600;
  color: var(--text, #1a1f16);
}

.comments__author a {
  color: inherit;
  text-decoration: none;
}

.comments__date {
  display: block;
  color: var(--text-muted, #5c6656);
}

.comments__body p {
  margin: 0 0 var(--space-3);
  color: var(--text, #1a1f16);
}

.comments__body p:last-child {
  margin-bottom: 0;
}

.comments__reply {
  margin-top: var(--space-4);
}

.comments__reply .comment-reply-link {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 var(--space-4);
  border: 1px solid var(--border, #e4e8e0);
  border-radius: var(--radius-md, 10px);
  color: var(--text, #1a1f16);
  font-size: var(--text-sm, 0.875rem);
  text-decoration: none;
}

.comments__reply .comment-reply-link:hover,
.comments__reply .comment-reply-link:focus-visible {
  border-color: var(--primary-dark, #034023);
  color: var(--primary-dark, #034023);
}

.comments__form {
  margin-top: var(--space-10);
  padding-top: var(--space-8);
  border-top: 1px solid var(--border, #e4e8e0);
}

.comments__form-title {
  margin-bottom: var(--space-4);
}

.comments__notes {
  color: var(--text-muted, #5c6656);
  margin-bottom: var(--space-6);
}

.comments__cancel {
  margin-inline-start: var(--space-3);
  font-size: var(--text-sm, 0.875rem);
}

.comments__cancel a {
  color: var(--text-muted, #5c6656);
}

.comment-form .form-group {
  margin-bottom: var(--space-5);
}

.comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  font-size: var(--text-sm, 0.875rem);
  color: var(--text-muted, #5c6656);
}

.comment-form-cookies-consent input {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  accent-color: var(--primary-dark, #034023);
}

.comments__submit {
  margin-bottom: 0;
}

.required {
  color: var(--danger, #c43d3d);
}

@media (max-width: 640px) {
  .comments__list .children {
    padding-inline-start: var(--space-4);
  }
}

.form-success.is-visible {
  display: block;
}

.wizard-success {
  min-height: 48vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-block: var(--space-12);
}

.wizard-success .form-success__icon {
  width: 88px;
  height: 88px;
  display: grid;
  place-items: center;
  margin-inline: auto;
  margin-bottom: var(--space-6);
  border-radius: 50%;
  background: var(--primary-light, #e8f5d6);
  color: var(--primary-dark, #034023);
}

.wizard-success .form-success__icon svg {
  width: 40px;
  height: 40px;
}

.wizard-success h1 {
  margin-bottom: var(--space-3);
}

.wizard-success p {
  color: var(--text-muted, #5c6656);
  max-width: 28rem;
}

.wizard-success__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
  margin-top: var(--space-8);
}

.form-group.is-invalid .form-input,
.form-group.is-invalid .form-textarea {
  border-color: var(--danger, #c43d3d);
}

.wizard__options.is-invalid .wizard__option {
  border-color: var(--danger, #c43d3d);
}

@media (min-width: 1200px) {
  .site-footer__grid {
    grid-template-columns: 1.4fr repeat(3, 1fr);
  }
}

.site-footer__social a .icon svg {
  width: 18px;
  height: 18px;
}

.hero-browser__body--photo {
  display: block;
  padding: 0;
  min-height: 0;
  background: none;
}

.hero-browser__body--photo img {
  display: block;
  width: 100%;
  height: auto;
}

.testimonial-editorial__avatar {
  display: block;
  width: 64px;
  height: 64px;
  margin: 0 auto var(--space-3);
  border-radius: 50%;
  overflow: hidden;
  background: var(--primary-light, #e8f0e0);
}

.testimonial-editorial__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.portfolio-card__media a {
  display: block;
  height: 100%;
}

.portfolio-hero__image {
  aspect-ratio: auto;
  overflow: visible;
  background: none;
}

.portfolio-hero__stage {
  position: relative;
  border-radius: var(--radius-xl, 16px);
  overflow: hidden;
  aspect-ratio: 21 / 9;
  background: linear-gradient(135deg, #e0ead8, #f8faf6);
}

.portfolio-hero__stage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.portfolio-hero__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary-dark, #034023);
  cursor: pointer;
  transform: translateY(-50%);
}

.portfolio-hero__nav svg {
  width: 20px;
  height: 20px;
}

.portfolio-hero__nav--prev {
  inset-inline-start: 12px;
}

.portfolio-hero__nav--next {
  inset-inline-end: 12px;
}

.portfolio-hero__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.portfolio-hero__thumb {
  width: 72px;
  height: 52px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  background: #e8f0e0;
  cursor: pointer;
}

.portfolio-hero__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.portfolio-hero__thumb.is-active {
  border-color: var(--primary, #034023);
}

html.is-lightbox-open {
  overflow: hidden;
}

.lightbox {
  pointer-events: none;
}

.lightbox.is-open {
  pointer-events: auto;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: stretch;
}

.lightbox__scroller {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 72px 16px 40px;
  box-sizing: border-box;
}

.lightbox__close,
.lightbox__nav {
  position: fixed;
  z-index: 2;
}

.lightbox__close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  cursor: pointer;
}

.lightbox__close svg,
.lightbox__nav svg {
  width: 20px;
  height: 20px;
}

.lightbox__nav {
  display: grid;
  place-items: center;
}

.portfolio-hero__image .lightbox .lightbox__img {
  width: auto;
  max-width: min(92vw, 1400px);
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: top center;
}

.lightbox__caption {
  position: static;
  margin-top: 16px;
}
