/* Real Vision Events - SEO content blocks (long-form copy + FAQ accordion) */
.rv-content { overflow: hidden; } /* clearfix: contain floated figures */
.rv-content h2 { font-size: 28px; line-height: 38px; font-weight: 700; color: #012546; margin: 8px 0 14px; clear: both; }
.rv-content h3 { font-size: 21px; line-height: 30px; font-weight: 600; color: #012546; margin: 26px 0 10px; }
.rv-content p { color: #4d5661; margin-bottom: 14px; text-align: justify; }
.rv-content ul.rv-list { list-style: none; padding: 0; margin: 0 0 18px; }
.rv-content ul.rv-list li { position: relative; padding: 0 0 8px 26px; color: #4d5661; }
.rv-content ul.rv-list li:before { content: "\2713"; position: absolute; left: 0; top: 0; color: #fd226a; font-weight: 700; }
.rv-content a { color: #fd226a; }
.rv-content a:hover { color: #012546; }
.rv-content .rv-figure { float: right; width: 38%; margin: 4px 0 14px 24px; clear: right; }
.rv-content .rv-table, .rv-content .rv-cta { clear: both; }
.rv-content .rv-figure img { width: 100%; height: auto; aspect-ratio: 7 / 5; object-fit: cover; background: #eef0f3; border-radius: 3px; display: block; }

/* H1 self-link: keep the page-title look, just make it clickable */
h1.title a.rv-h1-link,
.page-title-heading h1.title a.rv-h1-link { color: inherit; text-decoration: none; }
h1.title a.rv-h1-link:hover,
.page-title-heading h1.title a.rv-h1-link:hover { color: inherit; text-decoration: underline; }

/* FAQ block + right-side image */
.rv-faq-layout { display: flex; align-items: stretch; gap: 26px; margin: 30px 0 10px; }
.rv-faq-layout .rv-faq { flex: 1 1 0%; margin: 0; }
.rv-faq-layout .rv-faq-media { flex: 0 0 34%; max-width: 34%; align-self: stretch; position: relative; min-height: 420px; border-radius: 4px; box-shadow: 0 0 14px rgba(0, 0, 0, .10); }
.rv-faq-layout .rv-faq-media img { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; border-radius: 4px; }
.rv-faq-layout:not(.has-media) .rv-faq { flex: 1 1 100%; }
.rv-content .rv-cta { background: #012546; color: #fff; padding: 22px 26px; margin: 26px 0 8px; border-radius: 3px; }
.rv-content .rv-cta p { color: #fff; margin: 0 0 6px; text-align: left; }
.rv-content .rv-cta a { color: #fff; font-weight: 700; text-decoration: underline; }
.rv-content .rv-table { width: 100%; border-collapse: collapse; margin: 6px 0 20px; font-size: 14px; }
.rv-content .rv-table th, .rv-content .rv-table td { border: 1px solid #e3e6ea; padding: 9px 12px; vertical-align: top; color: #4d5661; }
.rv-content .rv-table th { background: #f2f4f7; color: #012546; text-align: left; }

.rv-faq { background: #fff; padding: 30px 30px 18px; box-shadow: 0 0 14px rgba(0, 0, 0, .07); }
.rv-faq h2 { font-size: 28px; line-height: 38px; font-weight: 700; color: #012546; margin: 0 0 8px; }
.rv-faq .rv-faq-intro { color: #4d5661; margin-bottom: 18px; }
.rv-faq details { border: 1px solid #e3e6ea; border-radius: 3px; margin-bottom: 10px; background: #fff; }
.rv-faq summary { cursor: pointer; padding: 13px 44px 13px 18px; font-weight: 600; color: #012546; list-style: none; position: relative; line-height: 24px; }
.rv-faq summary::-webkit-details-marker { display: none; }
.rv-faq summary:after { content: "+"; position: absolute; right: 18px; top: 10px; font-size: 22px; color: #fd226a; }
.rv-faq details[open] summary { border-bottom: 1px solid #e3e6ea; }
.rv-faq details[open] summary:after { content: "\2212"; }
.rv-faq .rv-faq-answer { padding: 12px 18px 4px; }
.rv-faq .rv-faq-answer p { color: #4d5661; margin: 0 0 10px; text-align: left; }
.rv-faq .rv-faq-answer a { color: #fd226a; }

@media (max-width: 767px) {
    .rv-content h2, .rv-faq h2 { font-size: 23px; line-height: 32px; }
    .rv-faq { padding: 20px 16px 10px; }
    .rv-content p { text-align: left; }
    .rv-content .rv-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .rv-content .rv-cta { padding: 18px; }
    .rv-content .rv-figure { float: none; width: 100%; margin: 6px 0 18px; }
    .rv-faq-layout { flex-direction: column; }
    .rv-faq-layout .rv-faq-media { width: 100%; max-width: 100%; flex: none; order: 2; position: relative; min-height: 0; }
    .rv-faq-layout .rv-faq-media img { position: static; width: 100%; height: 220px; min-height: 0; max-height: 220px; }
}

@media (max-width: 991px) and (min-width: 768px) {
    .rv-content .rv-figure { width: 48%; }
}

/* ===== Services mega menu ===== */
#site-header-menu #site-navigation .menu .rv-mega-panel { line-height: 22px; text-align: left; font-weight: 400; }
#site-header-menu #site-navigation .menu .rv-mega-panel .rv-mega-title { font-size: 13px; letter-spacing: .6px; text-transform: uppercase; font-weight: 700; color: #fd226a; padding: 0 0 8px; margin: 0 0 8px; border-bottom: 1px solid #eceff3; line-height: 18px; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-link { display: flex; align-items: flex-start; padding: 7px 0; font-size: 14px; font-weight: 500; line-height: 20px !important; color: #3c4655; background: none; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-link:hover { color: #fd226a; padding-left: 4px; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-link:before,
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-link:after { display: none; }
#site-header-menu #site-navigation .menu .rv-mega-cta { background: #012546; color: #fff; border-radius: 4px; padding: 18px; }
#site-header-menu #site-navigation .menu .rv-mega-cta .rv-mega-title { color: #fff; border-bottom-color: rgba(255, 255, 255, .25); }
#site-header-menu #site-navigation .menu .rv-mega-cta p { color: #d7dde6; font-size: 13px; line-height: 20px; margin: 0 0 12px; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-call { display: block; color: #fff; font-weight: 700; font-size: 15px; padding: 4px 0 12px; line-height: 20px !important; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-btn { display: inline-block; background: #fd226a; color: #fff; padding: 9px 18px; border-radius: 3px; font-size: 13px; font-weight: 600; line-height: 18px !important; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-btn:hover { background: #fff; color: #012546; }
#site-header-menu #site-navigation .menu .rv-mega-caret { margin-left: 6px; font-size: 12px; }

@media (min-width: 1200px) {
    #site-header-menu #site-navigation .menu > ul > li.rv-mega { position: static; }
    #site-header-menu #site-navigation .menu .rv-mega-panel {
        position: absolute; right: 0; top: 100%; width: 960px; display: flex; gap: 22px;
        background: #fff; padding: 24px 26px; border-top: 3px solid #fd226a;
        box-shadow: 0 12px 30px rgba(0, 0, 0, .14); z-index: 999;
        opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility .2s;
    }
    #site-header-menu #site-navigation .menu > ul > li.rv-mega:hover > .rv-mega-panel,
    #site-header-menu #site-navigation .menu > ul > li.rv-mega:focus-within > .rv-mega-panel,
    #site-header-menu #site-navigation .menu > ul > li.rv-mega.rv-open > .rv-mega-panel { opacity: 1; visibility: visible; transform: none; }
    #site-header-menu #site-navigation .menu .rv-mega-col { flex: 1 1 0; min-width: 0; }
    #site-header-menu #site-navigation .menu .rv-mega-col:first-child { flex: 1.2 1 0; }
    #site-header-menu #site-navigation .menu .rv-mega-cta { flex: 0 0 190px; align-self: flex-start; }
}

@media (max-width: 1199px) {
    #site-header-menu #site-navigation .menu.active { max-height: none; overflow: visible; }
    #site-header-menu #site-navigation .menu .rv-mega-panel { display: none; position: static; padding: 0 0 10px 14px; box-shadow: none; }
    #site-header-menu #site-navigation .menu > ul > li.rv-mega.rv-open > .rv-mega-panel { display: block; max-height: 55vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
    #site-header-menu #site-navigation .menu .rv-mega-col { margin-bottom: 10px; }
    #site-header-menu #site-navigation .menu .rv-mega-cta { margin-top: 8px; }
}
/* Home/static pages: tighten the gap around the SEO content block */
.ttm-row.rv-seo-section { padding: 25px 0 35px; }
.ttm-row.service-section3 { padding-bottom: 15px; }
.ttm-row.service-section3 .row > div:nth-last-child(-n+3) .featured-imagebox { margin-bottom: 0 !important; }
/* Header and footer menu icons */
#site-header-menu #site-navigation .menu > ul > li > a .rv-nav-ic { margin-right: 6px; font-size: 14px; opacity: .85; }
@media (max-width: 1199px) { #site-header-menu #site-navigation .menu > ul > li > a .rv-nav-ic { width: 20px; text-align: center; margin-right: 8px; } }
.menu-footer-services li a { display: flex; align-items: flex-start; }
.menu-footer-services li a .rv-ic { flex: 0 0 22px; width: 22px; margin: 6px 8px 0 0; text-align: center; color: #fd226a; font-size: 14px; }
.menu-footer-services li a:hover .rv-ic { color: #fff; }
/* Footer credit */
.rv-credit { position: relative; z-index: 2; text-align: center; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .15); }
.rv-credit p { margin: 0; color: #fff; font-size: 14px; }
.rv-credit a { color: #fd226a; font-weight: 600; }
.rv-credit a:hover { color: #fff; }
/* Cities and Delhi areas block in the landing page footer */
.rv-places { background: #000; color: #fff; padding: 16px 14px 18px; text-align: center; font-size: 13px; line-height: 26px; }
.rv-places a { color: #fff; }
.rv-places a:hover { color: #fd226a; }
.rv-places-line { color: #fff; margin: 0 0 8px; }
.rv-areas { max-height: 170px; overflow-y: auto; border-top: 1px solid rgba(255, 255, 255, .18); padding-top: 8px; color: #fff; }
/* Icons inside the Services mega menu (sub menu) */
#site-header-menu #site-navigation .menu .rv-mega-panel .rv-mega-ic { flex: 0 0 18px; width: 18px; margin: 2px 9px 0 0; text-align: center; font-size: 13px; color: #fd226a; }
#site-header-menu #site-navigation .menu .rv-mega-panel a.rv-mega-link:hover .rv-mega-ic { color: #012546; }
/* 404 page */
.rv-404 { padding: 10px 0 30px; }
.rv-404-code { font-size: 120px; line-height: 1; font-weight: 800; color: #fd226a; letter-spacing: 4px; }
.rv-404 h2 { font-size: 30px; line-height: 40px; color: #012546; margin: 8px 0 12px; }
.rv-404 p { max-width: 720px; margin: 0 auto 22px; color: #4d5661; }
.rv-404 p a { color: #fd226a; font-weight: 600; }
.rv-404-actions .ttm-btn { margin: 4px 6px; }
.rv-404-links h3 { font-size: 20px; color: #012546; margin: 20px 0 12px; }
.rv-404-list { list-style: none; padding: 0; margin: 0 0 10px; }
.rv-404-list li { padding: 5px 0; border-bottom: 1px solid #eceff3; }
.rv-404-list li a { color: #3c4655; }
.rv-404-list li a .fa { color: #fd226a; margin-right: 6px; }
.rv-404-list li a:hover { color: #fd226a; }
@media (max-width: 767px) { .rv-404-code { font-size: 84px; } .rv-404 h2 { font-size: 24px; line-height: 32px; } }
/* Region row in the landing-page footer (Delhi NCR, Rajasthan, ...) */
.rv-places .rv-regions { margin: 4px 0 12px; }
.rv-places .rv-regions strong { display: block; margin-bottom: 6px; }
.rv-places a.rv-region { display: inline-block; white-space: nowrap; margin: 3px 4px; padding: 4px 14px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 20px; line-height: 20px; font-weight: 600; }
.rv-places a.rv-region:hover { border-color: #fd226a; }
.rv-places a.rv-region.is-active { background: #fd226a; border-color: #fd226a; color: #fff; }
.rv-places .rv-areas { margin-bottom: 12px; }
.rv-places .rv-areas a.is-current { color: #fd226a; font-weight: 700; }


/* =====================================================================
   Motion: page-load animation + image hover effects (js/rv-motion.js adds the helper classes)
   ===================================================================== */
/* The old theme loader (a spinning gif that waited for every image) is replaced by this one. */
#preloader { display: none !important; }

/* Page loader: logo + spinner on a white screen from the first paint until the page is ready.
   It never blocks clicks (pointer-events: none) and removes itself after 3s even if the script fails. */
html::before { content: ""; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2147483000; pointer-events: none;
  background: #fff url(../images/logo1.png) no-repeat center calc(50% - 74px); background-size: 190px auto;
  opacity: 1; visibility: visible; transition: opacity .5s ease, visibility .5s ease; animation: rv-loader-fallback .01s linear 3s forwards; }
html::after { content: ""; position: fixed; top: 50%; left: 50%; z-index: 2147483001; width: 54px; height: 54px; margin: -8px 0 0 -27px; pointer-events: none;
  border: 4px solid #fde1ea; border-top-color: #fd226a; border-radius: 50%; opacity: 1; visibility: visible;
  transition: opacity .35s ease, visibility .35s ease; animation: rv-spin .8s linear infinite, rv-loader-fallback .01s linear 3s forwards; }
html.rv-loaded::before, html.rv-loaded::after { opacity: 0; visibility: hidden; }
@keyframes rv-spin { to { transform: rotate(360deg); } }
@keyframes rv-loader-fallback { to { opacity: 0; visibility: hidden; } }

/* Sections and cards slide up softly when they scroll into view (only added by the script, so no-JS visitors see everything). */
.rv-reveal { opacity: 0; transform: translateY(28px); }
.rv-reveal.rv-in { opacity: 1; transform: none; transition: opacity .7s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }

/* Image hover: zoom that follows the cursor, a light sweep, a lift and a soft shadow. */
.featured-thumbnail, .rv-figure, .rv-faq-media, .ttm_single_image_wrapper, .rv-hover { position: relative; overflow: hidden; }
.rv-figure, .rv-faq-media, .ttm_single_image_wrapper, .featured-imagebox-portfolio .featured-thumbnail { border-radius: 4px; transition: box-shadow .5s ease, transform .5s ease; }
.featured-thumbnail img, .rv-figure img, .rv-faq-media img, .ttm_single_image_wrapper img, .rv-hover img {
  transition: transform .8s cubic-bezier(.2, .7, .2, 1), filter .6s ease; transform-origin: var(--ox, 50%) var(--oy, 50%); will-change: transform; }
.rv-figure::after, .rv-faq-media::after, .ttm_single_image_wrapper::after, .featured-imagebox-portfolio .featured-thumbnail::after, .rv-hover::after {
  content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%; z-index: 2; pointer-events: none;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .38), rgba(255, 255, 255, 0)); transform: skewX(-20deg); transition: left 0s; }
@media (hover: hover) {
  .featured-thumbnail:hover img, .rv-figure:hover img, .rv-faq-media:hover img, .ttm_single_image_wrapper:hover img, .rv-hover:hover img {
    transform: scale(1.12); filter: saturate(1.15) brightness(1.05); }
  .rv-figure:hover, .rv-faq-media:hover, .ttm_single_image_wrapper:hover, .featured-imagebox:hover .featured-thumbnail { box-shadow: 0 14px 30px rgba(1, 37, 70, .28); }
  .rv-figure:hover::after, .rv-faq-media:hover::after, .ttm_single_image_wrapper:hover::after, .featured-imagebox-portfolio .featured-thumbnail:hover::after, .rv-hover:hover::after {
    left: 140%; transition: left .9s ease; }
  .ttm-client-logo-tooltip img, .featured-imagebox-post-details .featured-thumbnail img { transition: transform .5s ease, box-shadow .5s ease; }
  .ttm-client-logo-tooltip:hover img { transform: scale(1.1); box-shadow: 0 8px 20px rgba(1, 37, 70, .22); }
  .ttm-fid:hover .ttm-icon img { animation: rv-bounce .8s ease; }
}
@keyframes rv-bounce { 0%, 100% { transform: translateY(0); } 35% { transform: translateY(-9px); } 65% { transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) {
  html::before, html::after { animation: none; display: none; }
  .rv-reveal { opacity: 1; transform: none; }
  .featured-thumbnail img, .rv-figure img, .rv-faq-media img, .ttm_single_image_wrapper img, .rv-hover img { transition: none; }
  .featured-thumbnail:hover img, .rv-figure:hover img, .rv-faq-media:hover img, .ttm_single_image_wrapper:hover img { transform: none; }
}
/* Career page application form */
.rv-career-form { background: #f6f8fb; border-top: 4px solid #fd226a; padding: 22px 22px 26px; box-shadow: 0 8px 26px rgba(1, 37, 70, .10); }
.rv-career-form h3 { margin: 0 0 4px; }
.rv-career-form .rv-career-note { font-size: 13px; color: #6b7280; margin: 0 0 14px; }
.rv-career-form select.text-input, .rv-career-form input.rv-file { width: 100%; background: #fff; border: 1px solid #dfe3ea; padding: 10px 12px; height: auto; }
.rv-career-form input.rv-file { padding: 8px 10px; font-size: 13px; }
@media (max-width: 991px) { .rv-career-form { position: static; } }

/* Related-services ticker (replaces the old <marquee>): scrolls smoothly, pauses on hover, static without JS */
.rv-ticker { display: flex; align-items: center; gap: 16px; padding: 9px 0; }
.rv-ticker-label { flex: 0 0 auto; background: #012546; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; line-height: 1; padding: 8px 14px; border-radius: 20px; white-space: nowrap; }
.rv-ticker-label .fa { color: #ffd54a; margin-right: 6px; }
.rv-ticker-view { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.rv-ticker-track { display: flex; flex-wrap: wrap; align-items: center; white-space: nowrap; }
.rv-ticker-track a { color: #fff; font-size: 14px; line-height: 24px; padding: 0 22px 0 0; margin-right: 22px; position: relative; flex: 0 0 auto; text-decoration: none; }
.rv-ticker-track a::after { content: ""; position: absolute; right: 0; top: 50%; width: 5px; height: 5px; margin-top: -2px; border-radius: 50%; background: rgba(255, 255, 255, .65); }
.rv-ticker-track a:hover { color: #fff; text-decoration: underline; }
.rv-ticker.is-moving .rv-ticker-view { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); }
.rv-ticker.is-moving .rv-ticker-track { flex-wrap: nowrap; width: max-content; animation: rv-ticker var(--rv-ticker-time, 30s) linear infinite; will-change: transform; }
.rv-ticker.is-moving:hover .rv-ticker-track, .rv-ticker.is-moving:focus-within .rv-ticker-track { animation-play-state: paused; }
@keyframes rv-ticker { from { transform: translateX(0); } to { transform: translateX(var(--rv-ticker-shift, -50%)); } }
@media (max-width: 575px) { .rv-ticker { gap: 10px; } .rv-ticker-label { padding: 7px 10px; font-size: 11px; } .rv-ticker-label .fa { display: none; } }

/* ===== Location intro band (under the banner) ===== */
.rv-loc-intro { background: #f5f5f5; padding: 20px 0 12px; border-bottom: 1px solid #ececec; }
.rv-loc-intro .rv-loc-text { margin: 0 0 10px; font-size: 16px; line-height: 28px; color: #1f2933; }
.rv-loc-intro .rv-loc-also { margin: 0; font-size: 16px; line-height: 30px; color: #1f2933; }
.rv-loc-intro .rv-loc-also a { color: #fd226a; }
.rv-loc-intro .rv-loc-also a:hover { color: #012546; text-decoration: underline; }
.rv-loc-intro .rv-loc-also span { color: #012546; margin: 0 4px; }

/* ===== Footer: popular services, Delhi zones, country ===== */
.rv-foot-pop, .rv-foot-places { position: relative; z-index: 2; }
.rv-foot-pop { background: #1c1c1c; padding: 28px 0 20px; border-top: 1px solid rgba(255, 255, 255, .06); }
.rv-foot-pop h4 { color: #fff; font-size: 17px; font-weight: 700; letter-spacing: .3px; margin: 0 0 18px; }
.rv-foot-pop-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.rv-foot-pop-list li { margin: 0 0 12px; padding: 0 14px 0 0; margin-right: 14px; font-size: 14px; line-height: 22px; border-right: 1px solid rgba(255, 255, 255, .22); }
.rv-foot-pop-list li:last-child { border-right: 0; }
.rv-foot-pop-list a { color: #d8d8d8; }
.rv-foot-pop-list a:hover { color: #fd226a; }
.rv-foot-pop-list .fa { color: #fd226a; margin-right: 4px; font-size: 14px; }
.rv-foot-pop-list li.rv-all a { color: #fd226a; font-weight: 700; }
.rv-foot-places { background: #0b0b0b; padding: 20px 0 12px; }
.rv-foot-places p { margin: 0 0 12px; color: #fff; font-size: 14px; line-height: 26px; }
.rv-foot-places p strong { color: #fff; margin-right: 6px; }
.rv-foot-places a { color: #ff5c93; margin: 0 4px; }
.rv-foot-places a:hover { color: #fff; text-decoration: underline; }
.rv-foot-places span { color: #fff; margin: 0 2px; }
@media (max-width: 767px) {
  .rv-foot-pop-list li { border-right: 0; margin-right: 0; width: 100%; }
  .rv-loc-intro .rv-loc-text, .rv-loc-intro .rv-loc-also { font-size: 15px; }
}