/* Conen: readable text and restrained template refinements. */
.footer .company-about,
.footer .company-about a { color: #55515e; font-size: 14px; line-height: 1.7; }
.footer .company-about a:hover { color: #4230a6; text-decoration: underline; }
.about-text, .heading-area .sub-title, .contact-text.text-blue { color: #0759b8; }
.contact-des { color: #55515e; line-height: 1.65; }
.about-des, .heading-area .para { line-height: 1.75; }
.banner-des { line-height: 1.5; }
.banner-heading { font-size: clamp(32px, 3.55vw, 56px); }
.cube-portfolio1 .cbp-l-filters-button .cbp-filter-item:hover { color: #0759b8; }
/* Photo overlays only appear with captions; preserve bright images at rest. */
.cube-portfolio1 .cbp-l-grid-mosaic-flat .cbp-caption-activeWrap {
    background: linear-gradient(110deg, rgba(29, 23, 75, .90), rgba(49, 32, 114, .82));
}
.cube-portfolio1 .cbp-caption-zoom .cbp-caption:hover .cbp-caption-activeWrap { opacity: 1; }
.about-box { border-radius: 6px; box-shadow: 0 5px 24px rgba(32, 24, 65, .12); }
.contact-form .form-control { border-bottom-color: #8a8792; }
.contact-form .form-control::placeholder { color: #55515e; opacity: 1; }
a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #0759b8; outline-offset: 4px; }
#map { position: relative; background: #eeedf3; }
#map .city-map { width: 100%; height: 100%; object-fit: cover; display: block; }
.map-address { position: absolute; left: max(24px, calc((100% - 1110px) / 2)); bottom: 32px; padding: 22px 28px; background: #fff; color: #292438; text-align: left; border-left: 4px solid #4933cf; box-shadow: 0 6px 24px #29243818; }
.map-address strong, .map-address span, .map-address small { display: block; }
.map-address strong { font-size: 22px; }
.map-address small { margin-top: 8px; color: #55515e; }
@media (max-width: 767px) {
    .banner-heading { font-size: clamp(28px, 8.6vw, 40px); }
    .banner-des { font-size: 18px; }
    .contact-des, .about-des { font-size: 16px; line-height: 1.65; }
    .footer .company-about { font-size: 13px; }
    .map-address { left: 20px; right: 20px; bottom: 24px; padding: 18px 22px; }
}

/* Preserve original display sizes while supplying sharper source images. */
.banner-image img { width: 515px; max-width: 100%; height: auto; }
.about-img { width: 750px; max-width: 100%; }
.about-img img { width: 100%; height: auto; }
