/* Small additions on top of the original Meddox/Elementor styles, for the Laravel catalogue. */
.eka-catalogue-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.eka-catalogue-filters a { padding: 6px 16px; border-radius: 30px; border: 1px solid #dde3ea; color: #053485; font-size: 15px; }
.eka-catalogue-filters a.active, .eka-catalogue-filters a:hover { background: #28b6f6; border-color: #28b6f6; color: #fff; }
.eka-product-meta { list-style: none; padding: 0; margin: 20px 0; }
.eka-product-meta li { padding: 6px 0; border-bottom: 1px solid #eef1f5; }
.eka-product-meta strong { color: #053485; margin-right: 6px; }
.eka-empty { padding: 60px 20px; text-align: center; color: #647589; }
.eka-quote-btn { display: inline-block; }
.woocommerce ul.products li.product .pxl-shop-item-wrap .pxl-products-thumb img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.eka-noimage { aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; background: #f2f7fb; color: #9aa9ba; font-size: 48px; }
.eka-search-results h3 { margin-top: 30px; }

/* --- Layout refinements (requested) ------------------------------------------------------------ */

/* Footer link lists: the original markup has a space before each label, which indented the first
   line of long, wrapping links. Flex layout drops that whitespace so wrapped lines align. */
#pxl-footer-elementor .pxl-link li a { display: flex; align-items: flex-start; gap: .4em; }
#pxl-footer-elementor .pxl-link li { line-height: 1.5; margin-bottom: 10px; }

/* Service cards (About / Our Services): the masonry script positioned cards absolutely by height, which
   left gaps and ragged rows. A flex grid keeps every card in a row the same height, with the
   "Discover More" link aligned at the bottom. */
.pxl-department-grid .pxl-grid-inner { display: flex !important; flex-wrap: wrap; justify-content: center; row-gap: 30px; height: auto !important; }
.pxl-department-grid .pxl-grid-inner > .pxl-grid-item { position: relative !important; left: auto !important; top: auto !important; transform: none !important; display: flex; margin-bottom: 0 !important; }
.pxl-department-grid .pxl-grid-inner > .grid-sizer { display: none; }
.pxl-department-grid .wrap-content-department { display: flex; flex-direction: column; width: 100%; position: relative; overflow: hidden; padding: 38px 34px 32px; background: #fff; border: 1px solid #e3ecf7; border-radius: 12px; box-shadow: 0 12px 34px rgba(5, 52, 133, .06); transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.pxl-department-grid .wrap-content-department > span { display: none; }
.pxl-department-grid .wrap-content-department::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--secondary-color, #053485), var(--primary-color, #28b6f6)); transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.pxl-department-grid .wrap-content-department:hover { transform: translateY(-6px); border-color: transparent; box-shadow: 0 22px 48px rgba(5, 52, 133, .13); }
.pxl-department-grid .wrap-content-department:hover::before { transform: scaleX(1); }
.pxl-department-grid .pxl-item-icon { width: 70px; height: 70px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 26px; background: #eaf6fe; color: var(--primary-color, #28b6f6); font-size: 30px; transition: background .35s, color .35s; }
.pxl-department-grid .pxl-item-icon i { line-height: 1; }
.pxl-department-grid .wrap-content-department:hover .pxl-item-icon { background: var(--primary-color, #28b6f6); color: #fff; }
.pxl-department-grid .wrap-content-department .item--holder { display: flex; flex-direction: column; flex: 1 1 auto; }
.pxl-department-grid .item--title { font-size: 23px; line-height: 1.25; margin-bottom: 14px; }
.pxl-department-grid .item--title a { color: var(--secondary-color, #053485); }
.pxl-department-grid .pxl-item-except { font-size: 15px; line-height: 1.7; margin-bottom: 24px; }
.pxl-department-grid .btn-more { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; color: var(--secondary-color, #053485); font-weight: 700; }
.pxl-department-grid .btn-more::after { content: "\2192"; transition: transform .3s; }
.pxl-department-grid .wrap-content-department:hover .btn-more { color: var(--primary-color, #28b6f6); }
.pxl-department-grid .wrap-content-department:hover .btn-more::after { transform: translateX(4px); }
/* The Core Values block keeps a 410px bottom margin meant for the home footer overlap; inner pages have no overlap. */
.elementor-47 .elementor-element.elementor-element-38fb8ae { margin-bottom: 0 !important; }

/* Core values (and other icon boxes that sit alone in a column): same height across the row. */
.elementor-column > .elementor-widget-wrap:has(> .elementor-widget-pxl_icon_box:only-child) { align-content: stretch; }
.elementor-column > .elementor-widget-wrap > .elementor-widget-pxl_icon_box:only-child { align-self: stretch; }
.elementor-widget-pxl_icon_box:only-child > .elementor-widget-container,
.elementor-widget-pxl_icon_box:only-child .pxl-icon-box,
.elementor-widget-pxl_icon_box:only-child .pxl-icon-box > .pxl-item--inner { height: 100%; }

/* ---- CMS pages: team, FAQs, extra pages (not on the original site) ---- */
.ekatech-cms-page { padding: 100px 15px; }
.ekatech-cms-intro { max-width: 760px; margin: 0 auto 50px; text-align: center; }
.ekatech-cms-intro .wrap-subtitle { justify-content: center; }
.ekatech-cms-heading .pxl-item--title { font-size: 42px; font-weight: 700; margin-bottom: 16px; }
.ekatech-cms-image { display: block; width: 100%; max-height: 460px; object-fit: cover; border-radius: 10px; margin-bottom: 40px; }
.ekatech-about-team { padding: 20px 0 110px; }
.ekatech-about-team .ekatech-cms-heading { text-align: center; margin-bottom: 40px; }
.ekatech-team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 30px; }
.ekatech-team-card { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 10px 35px rgba(5, 52, 133, .08); display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s; }
.ekatech-team-card:hover { transform: translateY(-6px); box-shadow: 0 18px 45px rgba(5, 52, 133, .14); }
.ekatech-team-photo { aspect-ratio: 4 / 4.2; background: linear-gradient(135deg, var(--secondary-color, #053485), var(--primary-color, #28b6f6)); display: flex; align-items: center; justify-content: center; }
.ekatech-team-photo img { width: 100%; height: 100%; object-fit: cover; }
.ekatech-team-initials { color: #fff; font-size: 56px; font-weight: 700; letter-spacing: 2px; }
.ekatech-team-body { padding: 22px 24px 26px; text-align: center; flex: 1 1 auto; display: flex; flex-direction: column; }
.ekatech-team-body h4 { font-size: 22px; margin: 0 0 4px; }
.ekatech-team-position { color: var(--primary-color, #28b6f6); font-weight: 600; margin-bottom: 10px; }
.ekatech-team-body p { font-size: 15px; line-height: 1.6; margin-bottom: 14px; }
.ekatech-team-links { margin-top: auto; display: flex; justify-content: center; gap: 8px; }
.ekatech-team-links a { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #eef5ff; color: var(--secondary-color, #053485); transition: background .2s, color .2s; }
.ekatech-team-links a:hover { background: var(--primary-color, #28b6f6); color: #fff; }
.ekatech-faqs { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.ekatech-faq { background: #fff; border-radius: 8px; box-shadow: 0 6px 24px rgba(5, 52, 133, .07); }
.ekatech-faq summary { cursor: pointer; list-style: none; padding: 20px 56px 20px 24px; font-size: 20px; font-weight: 700; color: var(--secondary-color, #053485); position: relative; }
.ekatech-faq summary::-webkit-details-marker { display: none; }
.ekatech-faq summary::after { content: '+'; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-size: 26px; color: var(--primary-color, #28b6f6); }
.ekatech-faq[open] summary::after { content: '\2212'; }
.ekatech-faq-answer { padding: 0 24px 22px; line-height: 1.7; }
@media (max-width: 767px) { .ekatech-cms-page { padding: 60px 0; } .ekatech-cms-heading .pxl-item--title { font-size: 32px; } }
