/* ============================================
   Heer Digital Services - Custom Styles
   ============================================ */

/* Partner Badge in Navbar */
.heer-partner-badge {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   background: rgba(43, 77, 255, 0.12);
   border: 1px solid rgba(43, 77, 255, 0.3);
   border-radius: 20px;
   padding: 4px 12px;
   font-size: 12px;
   font-weight: 600;
   color: #2B4DFF;
   letter-spacing: 0.3px;
   white-space: nowrap;
}
.heer-partner-badge i { font-size: 10px; }

/* Nivortech Partner Section */
.heer-partner-section {
   background: linear-gradient(135deg, #0A165E 0%, #1a2a8a 50%, #2B4DFF 100%);
   padding: 80px 0;
   position: relative;
   overflow: hidden;
}
.heer-partner-section::before {
   content: '';
   position: absolute;
   top: -50%;
   right: -10%;
   width: 500px;
   height: 500px;
   background: rgba(255,255,255,0.04);
   border-radius: 50%;
}
.heer-partner-inner {
   background: rgba(255,255,255,0.07);
   border: 1px solid rgba(255,255,255,0.15);
   border-radius: 20px;
   padding: 50px 40px;
   position: relative;
   z-index: 1;
}
.heer-partner-label {
   display: inline-block;
   background: rgba(236,176,20,0.2);
   border: 1px solid rgba(236,176,20,0.5);
   color: #ECB014;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   padding: 5px 14px;
   border-radius: 20px;
   margin-bottom: 16px;
}
.heer-partner-title {
   font-size: 36px;
   font-weight: 700;
   color: #fff;
   margin-bottom: 16px;
   font-family: 'Outfit', sans-serif;
}
.heer-partner-title span { color: #ECB014; }
.heer-partner-desc {
   color: rgba(255,255,255,0.75);
   font-size: 16px;
   line-height: 1.7;
   margin-bottom: 30px;
}
.heer-partner-services {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-bottom: 30px;
}
.heer-partner-tag {
   background: rgba(255,255,255,0.1);
   border: 1px solid rgba(255,255,255,0.2);
   color: #fff;
   padding: 6px 16px;
   border-radius: 20px;
   font-size: 13px;
   font-weight: 500;
   transition: all 0.3s;
}
.heer-partner-tag:hover {
   background: #2B4DFF;
   border-color: #2B4DFF;
}
.heer-partner-logo-box {
   display: flex;
   align-items: center;
   justify-content: center;
   background: rgba(255,255,255,0.08);
   border: 1px solid rgba(255,255,255,0.15);
   border-radius: 16px;
   padding: 40px 30px;
   height: 100%;
   min-height: 220px;
}
.heer-partner-logo-text {
   text-align: center;
}
.heer-partner-logo-text h2 {
   font-size: 42px;
   font-weight: 800;
   color: #fff;
   font-family: 'Outfit', sans-serif;
   letter-spacing: -1px;
}
.heer-partner-logo-text h2 span { color: #ECB014; }
.heer-partner-logo-text p {
   color: rgba(255,255,255,0.6);
   font-size: 13px;
   margin-top: 8px;
   letter-spacing: 1px;
   text-transform: uppercase;
}

/* Services Section - Two Categories */
.heer-services-tab-nav {
   display: flex;
   gap: 12px;
   justify-content: center;
   margin-bottom: 50px;
   flex-wrap: wrap;
}
.heer-tab-btn {
   padding: 12px 32px;
   border-radius: 50px;
   border: 2px solid #e0e0e0;
   background: transparent;
   font-size: 15px;
   font-weight: 600;
   color: #585B6F;
   cursor: pointer;
   transition: all 0.3s;
   font-family: 'Outfit', sans-serif;
}
.heer-tab-btn.active,
.heer-tab-btn:hover {
   background: #2B4DFF;
   border-color: #2B4DFF;
   color: #fff;
}
.heer-tab-btn.nivortech-btn.active,
.heer-tab-btn.nivortech-btn:hover {
   background: #0A165E;
   border-color: #0A165E;
   color: #fff;
}
.heer-services-pane { display: none; }
.heer-services-pane.active { display: block; }

.heer-category-label {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   background: #f0f3ff;
   border: 1px solid #d0d8ff;
   color: #2B4DFF;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 1px;
   text-transform: uppercase;
   padding: 5px 14px;
   border-radius: 20px;
   margin-bottom: 20px;
}
.heer-category-label.nivortech {
   background: #f0f1f8;
   border-color: #c0c5e8;
   color: #0A165E;
}

/* Enhanced Service Cards */
.single-service-item {
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.single-service-item:hover {
   transform: translateY(-6px);
   box-shadow: 0 20px 50px rgba(43,77,255,0.12);
}

/* About Intro Section */
.heer-about-intro {
   background: #fff;
   border-left: 4px solid #2B4DFF;
   padding: 24px 28px;
   border-radius: 0 12px 12px 0;
   margin-bottom: 30px;
}
.heer-about-intro h5 {
   font-size: 18px;
   font-weight: 700;
   color: #0A165E;
   margin-bottom: 10px;
   font-family: 'Outfit', sans-serif;
}
.heer-about-intro p {
   color: #585B6F;
   font-size: 15px;
   line-height: 1.7;
   margin: 0;
}

/* Footer Partner Line */
.heer-footer-partner {
   display: flex;
   align-items: center;
   gap: 8px;
   margin-top: 12px;
   padding-top: 12px;
   border-top: 1px solid rgba(255,255,255,0.1);
   font-size: 12px;
   color: rgba(255,255,255,0.5);
}
.heer-footer-partner span {
   color: #ECB014;
   font-weight: 600;
}

/* Contact Form Enhancements */
.heer-contact-info-card {
   background: #f8f9ff;
   border: 1px solid #e8ecff;
   border-radius: 12px;
   padding: 24px;
   margin-bottom: 20px;
   display: flex;
   align-items: flex-start;
   gap: 16px;
   transition: all 0.3s;
}
.heer-contact-info-card:hover {
   border-color: #2B4DFF;
   box-shadow: 0 8px 24px rgba(43,77,255,0.1);
}
.heer-contact-info-card .icon {
   width: 48px;
   height: 48px;
   background: #2B4DFF;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
   color: #fff;
   font-size: 18px;
}
.heer-contact-info-card .info h5 {
   font-size: 14px;
   font-weight: 700;
   color: #0A165E;
   margin-bottom: 4px;
   font-family: 'Outfit', sans-serif;
}
.heer-contact-info-card .info p,
.heer-contact-info-card .info a {
   font-size: 14px;
   color: #585B6F;
   margin: 0;
   text-decoration: none;
}
.heer-contact-info-card .info a:hover { color: #2B4DFF; }

/* Form success/error messages */
#form-message {
   padding: 12px 20px;
   border-radius: 8px;
   margin-top: 16px;
   display: none;
   font-size: 14px;
   font-weight: 500;
}
#form-message.success {
   background: #d4edda;
   color: #155724;
   border: 1px solid #c3e6cb;
   display: block;
}
#form-message.error {
   background: #f8d7da;
   color: #721c24;
   border: 1px solid #f5c6cb;
   display: block;
}

/* Responsive */
@media (max-width: 768px) {
   .heer-partner-title { font-size: 26px; }
   .heer-partner-inner { padding: 30px 20px; }
   .heer-partner-logo-box { min-height: 160px; margin-top: 30px; }
   .heer-partner-logo-text h2 { font-size: 30px; }
}

/* ============================================
   Logo Constraints — Header & Footer
   ============================================ */

/* Header logo wrapper */
.tv-header-logo {
   display: flex;
   align-items: center;
   height: 100%;
}

/* Header logo image — constrained so it never overflows */
.tv-header-logo a {
   display: inline-flex;
   align-items: center;
   line-height: 1;
}
.tv-header-logo img {
   display: block;
   width: auto;
   max-width: 160px;
   max-height: 48px;
   height: auto;
   object-fit: contain;
}

/* Sticky header — slightly smaller */
.header-sticky .tv-header-logo img {
   max-height: 40px;
   max-width: 140px;
}

/* Offcanvas sidebar logo */
.itoffcanvas__logo img {
   display: block;
   width: auto;
   max-width: 150px;
   max-height: 44px;
   height: auto;
   object-fit: contain;
}

/* Footer logo */
.tv-footer-widget-logo a {
   display: inline-flex;
   align-items: center;
   line-height: 1;
}
.tv-footer-widget-logo img {
   display: block;
   width: auto;
   max-width: 160px;
   max-height: 52px;
   height: auto;
   object-fit: contain;
}

/* Search popup logo */
.search__logo img {
   display: block;
   max-width: 130px;
   max-height: 38px;
   width: auto;
   height: auto;
   object-fit: contain;
}

/* Mobile — tighter constraints */
@media (max-width: 1199px) {
   .tv-header-logo img {
      max-width: 140px;
      max-height: 42px;
   }
}

@media (max-width: 767px) {
   .tv-header-logo img {
      max-width: 120px;
      max-height: 36px;
   }
   .tv-footer-widget-logo img {
      max-width: 130px;
      max-height: 44px;
   }
   .itoffcanvas__logo img {
      max-width: 120px;
      max-height: 38px;
   }
}

@media (max-width: 480px) {
   .tv-header-logo img {
      max-width: 100px;
      max-height: 32px;
   }
}

/* ============================================
   Contact Page — Full Redesign
   ============================================ */

.heer-contact-section {
   padding: 100px 0 80px;
   background: #f7f8fc;
}

/* Left info panel */
.heer-contact-info-wrap {
   padding-right: 20px;
}
.heer-contact-heading {
   font-family: 'Outfit', sans-serif;
   font-size: 32px;
   font-weight: 700;
   color: #0A165E;
   margin: 10px 0 14px;
   line-height: 1.25;
}
.heer-contact-subtext {
   color: #666;
   font-size: 15px;
   line-height: 1.7;
   margin-bottom: 32px;
}

/* Info cards */
.heer-info-card {
   display: flex;
   align-items: flex-start;
   gap: 16px;
   background: #fff;
   border-radius: 12px;
   padding: 18px 20px;
   margin-bottom: 14px;
   box-shadow: 0 2px 12px rgba(10,22,94,0.06);
   transition: transform .25s, box-shadow .25s;
}
.heer-info-card:hover {
   transform: translateY(-3px);
   box-shadow: 0 8px 28px rgba(10,22,94,0.12);
}
.heer-info-icon {
   width: 46px;
   height: 46px;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: #fff;
   font-size: 18px;
   flex-shrink: 0;
}
.heer-info-body h6 {
   font-family: 'Outfit', sans-serif;
   font-size: 13px;
   font-weight: 700;
   color: #0A165E;
   margin: 0 0 4px;
   text-transform: uppercase;
   letter-spacing: .5px;
}
.heer-info-body a,
.heer-info-body p {
   font-size: 14px;
   color: #555;
   margin: 0;
   text-decoration: none;
   line-height: 1.5;
}
.heer-info-body a:hover { color: #2B4DFF; }

/* Social icons */
.heer-contact-social {
   display: flex;
   gap: 10px;
   margin-top: 24px;
}
.heer-contact-social a {
   width: 40px;
   height: 40px;
   border-radius: 50%;
   background: #fff;
   border: 1.5px solid #e0e4f0;
   display: flex;
   align-items: center;
   justify-content: center;
   color: #0A165E;
   font-size: 15px;
   text-decoration: none;
   transition: .25s;
}
.heer-contact-social a:hover {
   background: #2B4DFF;
   border-color: #2B4DFF;
   color: #fff;
}

/* Form card */
.heer-form-wrap {
   background: #fff;
   border-radius: 20px;
   padding: 40px 36px;
   box-shadow: 0 8px 40px rgba(10,22,94,0.10);
}
.heer-form-header {
   margin-bottom: 28px;
   padding-bottom: 20px;
   border-bottom: 1.5px solid #f0f2f8;
}
.heer-form-header h3 {
   font-family: 'Outfit', sans-serif;
   font-size: 22px;
   font-weight: 700;
   color: #0A165E;
   margin: 0 0 6px;
}
.heer-form-header p {
   font-size: 14px;
   color: #888;
   margin: 0;
}

/* Fields */
.heer-field-group {
   display: flex;
   flex-direction: column;
   gap: 6px;
}
.heer-field-group label {
   font-size: 13px;
   font-weight: 600;
   color: #333;
}
.heer-field-group label span { color: #e74c3c; }
.heer-field-group input,
.heer-field-group select,
.heer-field-group textarea {
   width: 100%;
   padding: 11px 14px;
   border: 1.5px solid #e0e4f0;
   border-radius: 10px;
   font-size: 14px;
   color: #333;
   background: #fafbff;
   outline: none;
   transition: border-color .2s, box-shadow .2s;
   font-family: inherit;
}
.heer-field-group input:focus,
.heer-field-group select:focus,
.heer-field-group textarea:focus {
   border-color: #2B4DFF;
   box-shadow: 0 0 0 3px rgba(43,77,255,0.10);
   background: #fff;
}
.heer-field-group textarea { resize: vertical; min-height: 120px; }
.heer-field-group select { cursor: pointer; }

/* Submit button */
.heer-submit-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   background: linear-gradient(135deg, #2B4DFF 0%, #0A165E 100%);
   color: #fff;
   border: none;
   border-radius: 10px;
   padding: 13px 36px;
   font-size: 15px;
   font-weight: 600;
   font-family: 'Outfit', sans-serif;
   cursor: pointer;
   transition: opacity .25s, transform .25s;
   width: 100%;
   letter-spacing: .3px;
}
.heer-submit-btn:hover:not(:disabled) {
   opacity: .9;
   transform: translateY(-2px);
}
.heer-submit-btn:disabled { opacity: .7; cursor: not-allowed; }

/* Response message */
.heer-form-msg {
   padding: 13px 18px;
   border-radius: 10px;
   font-size: 14px;
   font-weight: 500;
   margin-top: 4px;
}
.heer-form-msg.success {
   background: #e8f5e9;
   color: #2e7d32;
   border: 1px solid #a5d6a7;
}
.heer-form-msg.error {
   background: #fdecea;
   color: #c62828;
   border: 1px solid #ef9a9a;
}

/* Map */
.heer-map-wrap {
   width: 100%;
   height: 420px;
   overflow: hidden;
}
.heer-map-wrap iframe {
   width: 100%;
   height: 100%;
   display: block;
}

/* Responsive */
@media (max-width: 991px) {
   .heer-contact-info-wrap { padding-right: 0; }
   .heer-contact-heading { font-size: 26px; }
}
@media (max-width: 767px) {
   .heer-contact-section { padding: 60px 0 50px; }
   .heer-form-wrap { padding: 28px 20px; }
   .heer-contact-heading { font-size: 22px; }
   .heer-map-wrap { height: 280px; }
}
