/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
Template: hello-elementor
Author: Elementor Team
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
Tags: accessibility-ready,flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready
Version: 3.4.9.1782546523
Updated: 2026-06-27 07:48:43
*/

/* ============================================
   VRISHANK ENGINEERING - GLOBAL STYLES
   ============================================ */

/* Font loading optimization */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* Selection color */
::selection { background: #7340D9; color: #fff; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

.elementor.elementor-9{
	overflow: hidden !important;
}
/* Ensure global fonts apply to Elementor widgets */
/* .elementor-widget-heading .elementor-heading-title {
    font-family: var(--e-global-typography-primary-font-family), Sans-serif !important;
} */

/* .elementor-widget-text-editor {
    font-family: var(--e-global-typography-text-font-family), Sans-serif !important;
}

.elementor-widget-button .elementor-button {
    font-family: var(--e-global-typography-accent-font-family), Sans-serif !important;
} */

body{
	font-family: 'IBM Plex Sans', sans-serif !important;
}

/* Header sticky fix */
.elementor-sticky--active {
    box-shadow: 0 4px 20px rgba(22,16,31,0.08);
}

/* Nav menu underline pointer */
.elementor-nav-menu--pointer-underline .elementor-item-active::after,
.elementor-nav-menu--pointer-underline .elementor-item:hover::after {
    background: var(--e-global-color-primary);
    height: 2px;
}

/* ============================================
   NAV – ANCESTOR ACTIVE STATE
   When on a Products sub-page (servo-air-cooled,
   servo-oil-cooled) the "Products" nav item
   shows the same active colour + underline.

   Elementor hides ::after via opacity:0 on any
   item that isn't :hover/:focus/.elementor-item-active.
   We override that for current-page-ancestor <li>.
   ============================================ */
.current-menu-ancestor > a.elementor-item,
.current-page-ancestor > a.elementor-item,
.current-menu-parent  > a.elementor-item {
    color: #7340D9 !important;
}

/* Un-hide the underline indicator for ancestor items
   (Elementor's base CSS sets opacity:0 on inactive items) */
.current-menu-ancestor > a.elementor-item::after,
.current-page-ancestor > a.elementor-item::after,
.current-menu-parent  > a.elementor-item::after {
    opacity: 1 !important;
    transform: scale(1) !important;
    background-color: #7340D9 !important;
}

/* Button hover transitions */
.elementor-button {
    transition: all 0.2s ease !important;
}

/* Image hover lift effect */
.vh-card:hover,
.elementor-widget-image:hover img {
    transform: translateY(-6px);
    box-shadow: 0 26px 50px -28px rgba(60,30,110,0.45);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vrishank-logo:hover img{
	transform: translateY(0px);
    box-shadow: unset;
    transition: unset;
}

/* Grid responsive fixes */
@media (max-width: 1024px) {
    .elementor-grid-3 { grid-template-columns: repeat(2, 1fr) !important; }
    .elementor-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 767px) {
    .elementor-grid-3,
    .elementor-grid-4,
    .elementor-grid-2 { grid-template-columns: 1fr !important; }
    
    /* Stack header on mobile */
    .elementor-location-header .elementor-container {
        flex-wrap: wrap !important;
    }
    
    /* Footer columns stack */
    .elementor-location-footer .elementor-column { width: 100% !important; }
}

/* Form styling */
.elementor-form-fields-wrapper input,
.elementor-form-fields-wrapper select,
.elementor-form-fields-wrapper textarea {
    background: #FBFAFE !important;
    border: 1px solid #D8CEEA !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    font-size: 16px !important;
    color: #16101F !important;
}

.elementor-form-fields-wrapper input:focus,
.elementor-form-fields-wrapper select:focus,
.elementor-form-fields-wrapper textarea:focus {
    border-color: #7340D9 !important;
    outline: none !important;
}

.elementor-form-fields-wrapper button[type="submit"] {
    background: #7340D9 !important;
    color: #fff !important;
    border-radius: 12px !important;
    padding: 16px !important;
    font-weight: 600 !important;
    font-size: 17px !important;
    transition: background 0.2s ease !important;
}

.elementor-form-fields-wrapper button[type="submit"]:hover {
    background: #5B2FB0 !important;
}

/* Hero background pattern */
.hero-pattern {
    background-image: 
        linear-gradient(rgba(115,64,217,0.10) 1px, transparent 1px),
        linear-gradient(90deg, rgba(115,64,217,0.10) 1px, transparent 1px);
    background-size: 58px 58px;
}

/* Badge pill style */
.badge-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 14px;
    letter-spacing: 2px;
    color: #F4B23E;
    border: 1px solid rgba(244,178,62,0.4);
    border-radius: 999px;
    padding: 8px 16px;
}

/* Numbered service cards */
.service-number {
    font-family: 'IBM Plex Mono', monospace;
    color: #7340D9;
    font-size: 15px;
    margin-top: 3px;
}

.service-number.accent { color: #F4B23E; }

/* Specification table */
.spec-table {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) 1.7fr;
    font-size: 16px;
    background: #fff;
    border: 1px solid #E2D8F2;
    border-radius: 20px;
    overflow: hidden;
}

.spec-table > div { display: contents; }

.spec-label {
    padding: 16px 24px;
    background: #F3EEFB;
    font-weight: 600;
    border-bottom: 1px solid #E2D8F2;
}

.spec-value {
    padding: 16px 24px;
    border-bottom: 1px solid #E2D8F2;
    color: #3A3346;
}

/* Last row — target by DOM position since display:contents is in play */
.spec-table > div:last-child > .spec-label,
.spec-table > div:last-child > .spec-value { border-bottom: none; }

/* Tag chips */
.tag-chip p{
    display: inline-block;
    background: #211734;
    border: 1px solid #3A2E52;
    border-radius: 999px;
    padding: 8px 16px;
    font-size: 14px;
    color: #D9D2E6;
}

/* Metric cards */
.metric-card {
    background: #211734;
    border-radius: 14px;
    padding: 16px 22px;
}

.metric-value {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 28px;
    color: #F4B23E;
}

.metric-label p{
    font-size: 13px;
    color: #9A91AC;
    letter-spacing: 1px;
}

/* Fix Elementor container width */
.e-con { --container-max-width: 1280px; }

/* Remove default Elementor spacing conflicts */
.elementor-widget:not(:last-child) { margin-bottom: 0; }

/* Logo mark styling */
.ftr-logo-mark {
    background: #F7F4FB;
    border-radius: 14px;
}

/* Ensure proper image sizing */
.elementor-widget-image img {
    max-width: 100%;
    height: auto;
}

/* Stats bar divider for dark background */
.elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 1280px;
}

.tital{
	color: #A98BF0;
}

.power_tital p{
	margin: 0px !important;
}

/* ============================================
   GLOBAL – DARK HERO GRID OVERLAY
   (Products, Home, About hero sections)
   ============================================ */

/* Shared grid pattern — same 58px cross-hatch on all dark hero sections */
.elementor-element-prhero01,
.elementor-element-e7ebaba,
.elementor-element-abhero01,
.elementor-element-cthero01,
.right-grid{
    position: relative !important;
    overflow: hidden !important;
    background-image:
        linear-gradient(rgba(115,64,217,0.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(115,64,217,0.12) 1px, transparent 1px) !important;
    background-size: 58px 58px !important;
    background-color: #16101F !important;
}

/* Radial purple glow – top right corner */
.elementor-element-prhero01::after, .right-blue-grid::after {
    content: '';
    position: absolute;
    width: 760px;
    height: 760px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(115,64,217,0.45), transparent 62%);
    right: -260px;
    top: -280px;
    pointer-events: none;
    z-index: 0;
}  

.hero-contact-overlay-left::after {
    content: '';
    position: absolute;
    width: 760px;
    height: 760px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(115,64,217,0.45), transparent 62%);
    left: -260px;
    top: -280px;
    pointer-events: none;
    z-index: 0;
}

.hero-contact-overlay::after {
    content: '';
    position: absolute;
    width: 760px;
    height: 760px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(115,64,217,0.45), transparent 62%);
    right: -260px;
    top: -280px;
    pointer-events: none;
    z-index: 0;
}

/* Content layer sits above pseudo-element overlays */
.elementor-element-prheroinner {
    position: relative;
    z-index: 1;
}

/* Hero body text colour */
.elementor-element-prherobody .elementor-widget-container,
.elementor-element-prherobody .elementor-widget-container p {
    color: #C7BEDB !important;
}

/* ============================================
   PRODUCTS PAGE – CATEGORY "AND MORE" CARD
   ============================================ */
.elementor-element-prcs06 { color: #fff; }

/* ============================================
   PRODUCTS PAGE – SERVICE CARD NUMBERS
   ============================================ */
/* Numbers are styled inline in the editor HTML */

/* Service 12 – purple card */
.elementor-element-prs12 .elementor-heading-title { color: #fff !important; }

/* Service 01 – dark card title */
.elementor-element-prs01 .elementor-heading-title { color: #fff !important; }

/* Dairy banner text column – fill remaining space */
.elementor-element-prdairytxt { flex-grow: 1 !important; }

.overlay-img{
	overflow: hide;
}

/* ============================================
   TRANSFORMER OVERHAULING PAGE – HERO
   ============================================ */

/* Hero: photo + directional gradient overlay — gradient is top CSS layer, photo beneath */
.elementor-element-tohero01 {
    background-image:
        linear-gradient(90deg, rgba(22,16,31,0.95), rgba(22,16,31,0.7)),
        url('http://localhost/wordpress_project/vrishank_engineering_brand_guidelines/wp-content/uploads/2026/07/repairing-unit.jpg') !important;
    background-size: cover, cover !important;
    background-position: center center, center center !important;
    background-repeat: no-repeat, no-repeat !important;
    background-color: #16101F !important;
    overflow: hidden;
}

/* ============================================
   SERVO AIR COOLED PAGE – HERO
   ============================================ */

/* Hero image: fill container, fixed height, cover crop */
.elementor-element-saimgplaceholder img {
    width: 100%;
    height: 440px;
    object-fit: cover;
    display: block;
}

/* Image container: white-alpha border + purple glow shadow */
.elementor-element-saimgbox {
    border: 1px solid rgba(255,255,255,0.12) !important;
    box-shadow: 0 40px 80px -40px rgba(115,64,217,0.7) !important;
    overflow: hidden;
    background: transparent !important;
}

/* ============================================
   SERVO OIL COOLED PAGE – HERO
   ============================================ */

/* Hero image: fill container, fixed height, cover crop */
.elementor-element-soimgplaceholder img {
    width: 100%;
    height: 440px;
    object-fit: cover;
    display: block;
}

/* Image container: white-alpha border + purple glow shadow */
.elementor-element-soimgbox {
    border: 1px solid rgba(255,255,255,0.12) !important;
    box-shadow: 0 40px 80px -40px rgba(115,64,217,0.7) !important;
    overflow: hidden;
    background: transparent !important;
}

/* ============================================
   SERVO OIL COOLED PAGE – TEXT WIDGET STYLES
   (Replaces all inline style="" attributes.
    Priority 2: CSS class → style.css)
   ============================================ */

/* Breadcrumb bar */
.so-crumb { font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 1px; color: #9A91AC; }
.so-crumb a { color: #9A91AC; text-decoration: none; }

/* Hero badge pill */
.so-badge p{
    display: inline-flex;
    align-items: center;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 13px;
    letter-spacing: 2px;
    color: #F4B23E;
    border: 1px solid rgba(244,178,62,0.4);
    border-radius: 999px;
    padding: 7px 15px;
}

/* Hero body paragraph */
.elementor-element-sobody .elementor-widget-container p { font-size: 19px; line-height: 1.65; color: #C7BEDB; }

/* Purple monospace section tag (features + spec headings) */
.so-section-tag p { 
	font-family: 'IBM Plex Mono', monospace !important; 
	font-size: 14px; 
	letter-spacing: 3px; 
	color: #7340D9 !important; }

/* Amber monospace display-panel tag */
.so-disp-tag { font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 2px; color: #F4B23E; }

/* Feature card descriptions */
.elementor-element-sobend0 .elementor-widget-container p,
.elementor-element-sobend1 .elementor-widget-container p,
.elementor-element-sobend2 .elementor-widget-container p { font-size: 16px; line-height: 1.6; color: #6E6680; }

/* Display panel item descriptions */
.elementor-element-sodispd0 .elementor-widget-container p,
.elementor-element-sodispd1 .elementor-widget-container p,
.elementor-element-sodispd2 .elementor-widget-container p,
.elementor-element-sodispd3 .elementor-widget-container p { font-size: 16px; line-height: 1.6; color: #B9B0CC; }

/* ============================================
   SPECIFICATION TABLE (.spec-sheet-table)
   Servo Air Cooled [table id=1] + Servo Oil Cooled [table id=2]
   CSS class set via: widget Advanced tab → CSS Classes
   ============================================ */

/* Outer card — border-radius + clip here only (no duplicate on table) */
.spec-sheet-table .elementor-widget-container {
    border: 1px solid #E2D8F2;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

/* border-collapse:separate lets overflow:hidden above actually clip corners.
   border-spacing:0 keeps cells flush — no gaps between them. */
.spec-sheet-table table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 16px;
}

/* Kill any theme / Elementor row striping */
.spec-sheet-table table tr { background-color: #fff !important; }

/* ALL cells — value column default */
.spec-sheet-table table td,
.spec-sheet-table table th {
    padding: 18px 24px;
    border-bottom: 1px solid #E2D8F2;
    background-color: #ffffff !important;
    color: #4a4a6a;
    vertical-align: top;
}

/* LABEL column — first cell in every row */
.spec-sheet-table table tr th,
.spec-sheet-table table tr td:first-child {
    width: 35%;
    background-color: #F0EBF8 !important;
    font-weight: 700;
    text-align: left;
    color: #1a1a2e;
}

/* Last row — remove bottom border */
.spec-sheet-table table tr:last-child td,
.spec-sheet-table table tr:last-child th { border-bottom: none !important; }

/* Corner cells — apply border-radius directly so it shows even when
   the container overflow:hidden doesn't clip table backgrounds */
.spec-sheet-table table tr:first-child td:first-child { border-top-left-radius: 16px; }
.spec-sheet-table table tr:first-child td:last-child  { border-top-right-radius: 16px; }
.spec-sheet-table table tr:last-child  td:first-child { border-bottom-left-radius: 16px; }
.spec-sheet-table table tr:last-child  td:last-child  { border-bottom-right-radius: 16px; }

/* Spec table compare link */
.so-compare-link a { color: #7340D9; font-weight: 600; text-decoration: none; font-size: 17px; }

/* CTA body paragraph */
.elementor-element-soctabody .elementor-widget-container p { font-size: 19px; color: #E6DDF7; }

/* ============================================
   PRODUCTS PAGE – PRODUCTS WE DEAL CARDS
   Icon List widget, CSS class: product-card-list
   Post 11, widget ID: prdlist01
   ============================================ */

/* Grid on the <ul> so each <li> becomes a grid cell */
.product-card-list .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.product-card-list .elementor-icon-list-item {
    background: #ffffff;
    border: 1px solid #E2D8F2;
    border-radius: 12px;
    padding: 18px 20px !important;
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 !important;
}

.product-card-list .elementor-icon-list-item a {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-decoration: none;
}

.product-card-list .elementor-icon-list-text {
    font-size: 17px;
    font-weight: 500;
    color: #1a1a2e;
}

.product-card-list .elementor-icon-list-icon {
    color: #7340D9;
    font-size: 10px;
    flex-shrink: 0;
}

.btn-page-link p a{
	color:#F4B23E !important;
	cursor: pointer;
}

.btn-page-link-blue p a{
	color:#7340D9 !important;
	cursor: pointer;
}

.btn-link-black a{
	color:#3A3346 !important;
}

@media (max-width: 1024px) {
    .product-card-list .elementor-icon-list-items { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
    .product-card-list .elementor-icon-list-items { grid-template-columns: 1fr; }
}

/* Responsive container width */
@media (max-width: 1024px) {
    .elementor-section.elementor-section-boxed > .elementor-container { max-width: 1024px; }
    .e-con { --container-max-width: 1024px; }
}

@media (max-width: 767px) {
    .elementor-section.elementor-section-boxed > .elementor-container { max-width: 767px; }
    .e-con { --container-max-width: 767px; }
}