/* Static replacements for behaviour that WordPress plugins/JS provided. */
html { overflow-x: hidden; }
body { overflow-x: hidden; }

/* WPBakery "stretch row": full-bleed background, content stays in the container */
.vc_row[data-vc-full-width] {
  position: relative;
  left: auto;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50% - 15px);
  padding-right: calc(50vw - 50% - 15px);
}
.vc_row[data-vc-full-width].vc_row-no-padding { padding-left: 0; padding-right: 0; }

/* Revolution Slider replacement (grid 1240x600, scales like the "auto" layout) */
.vb-hero { position: relative; width: 100vw; margin-left: calc(50% - 50vw); overflow: hidden;
  height: calc(600px * var(--vb-s, 1)); }
.vb-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center top; background-repeat: no-repeat; }
.vb-hero-grid { position: absolute; top: 0; left: 50%; width: 1240px; height: 600px;
  transform: translateX(-50%) scale(var(--vb-s, 1)); transform-origin: top center; }
.vb-hero-layer { position: absolute; font-family: 'Open Sans', sans-serif; font-weight: 400; white-space: nowrap; }

/* Testimonial carousel (replaces Owl Carousel) */
.vb-carousel .owl-stage-outer { position: relative; overflow: hidden; }
.vb-carousel .owl-stage { display: grid; }
.vb-carousel .item { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity 1.5s ease, visibility 1.5s; }
.vb-carousel .item.active { opacity: 1; visibility: visible; }
.vb-carousel .owl-dots { text-align: center; margin-top: 20px; }
.vb-carousel .owl-dot { background: none; border: 0; padding: 0; cursor: pointer; }
.vb-carousel .owl-dot span { display: block; width: 10px; height: 10px; margin: 5px 7px; border-radius: 30px;
  background: rgba(255, 255, 255, .5); transition: opacity .2s ease; }
.vb-carousel .owl-dot.active span, .vb-carousel .owl-dot:hover span { background: #fff; }

/* Scroll animations (WPBakery css_animation) */
.wpb_animate_when_almost_visible:not(.wpb_start_animation) { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .wpb_animate_when_almost_visible { opacity: 1 !important; animation: none !important; }
}

/* Default grid item (WPBakery "Basic Grid") */
.vc_grid.vc_row { display: flex; flex-wrap: wrap; }
.vc_grid .vc_grid-item { padding-left: 15px; padding-right: 15px; margin-bottom: 30px; }
.vc_grid .vc_gitem-zone-a { position: relative; background-size: cover; background-position: center; }
.vc_grid .vc_gitem-zone-a .vc_gitem-zone-img { display: block; width: 100%; height: auto; visibility: hidden; }
.vc_grid .vc_gitem-zone-a .vc_gitem-link { position: absolute; inset: 0; z-index: 1; }
.vc_grid .vc_gitem-zone-c { padding: 20px 0 0; }
.vc_grid.vc_grid-gutter-0px .vc_grid-item { padding: 0; margin: 0; }

/* Mobile menu: submenus open via the toggle */
@media (max-width: 991px) {
  #cshero-header-navigation .sub-menu.submenu-open { display: block !important; }
}

/* 370x370 hard-cropped thumbnails */
.vc_single_image-img.size-thumbnail { width: 370px; max-width: 100%; height: auto; aspect-ratio: 1 / 1; }

/* Map iframe */
.wpb_map_wraper iframe { width: 100%; min-height: 350px; border: 0; }

/* Grid images never wider than their column */
.template-services .template-services-wrap img.vc_gitem-zone-img { max-width: 100%; }

/* Elérhetőség: contact cards */
.vb-contact { padding: 10px 0 90px; }
.vb-contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.vb-contact-card { background: #fff; border: 1px solid #ebebeb; border-top: 3px solid #e5b888;
  padding: 44px 24px 40px; text-align: center; transition: box-shadow .3s ease, transform .3s ease; }
.vb-contact-card:hover { box-shadow: 0 10px 30px rgba(146, 58, 42, .12); transform: translateY(-4px); }
.vb-contact-icon { width: 72px; height: 72px; margin: 0 auto 22px; border-radius: 50%; background: #923a2a;
  color: #fff; display: flex; align-items: center; justify-content: center; font-size: 28px; }
.vb-contact-label { font-family: 'Muli', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: #e5b888; margin: 0 0 10px; }
.vb-contact-value { font-family: 'Playfair Display', serif; font-size: 20px; line-height: 1.4; color: #444;
  margin: 0; overflow-wrap: anywhere; }
.vb-contact-value a { color: #444; }
.vb-contact-value a:hover, .vb-contact-value a:focus { color: #923a2a; }
@media (max-width: 991px) {
  .vb-contact { padding: 0 0 60px; }
  .vb-contact-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; gap: 20px; }
}
@media (prefers-reduced-motion: reduce) { .vb-contact-card, .vb-contact-card:hover { transition: none; transform: none; } }
