/*
 * -----------------------------------------------------------------------
 * @author     Lakshit Suthar
 * @copyright  (c) 2026 Lakshit Suthar. All rights reserved.
 * -----------------------------------------------------------------------
 */

/* Main banner: prev / next arrows in place of the pagination dots */
#theme-main-banner .camera_prev,
#theme-main-banner .camera_next {
    position: absolute;
    top: 50%;
    width: 52px;
    height: 52px;
    margin-top: -26px;
    background: rgba(6, 25, 72, 0.55);
    border-radius: 50%;
    cursor: pointer;
    z-index: 20;
    transition: background 0.3s ease;
}

#theme-main-banner .camera_prev:hover,
#theme-main-banner .camera_next:hover {
    background: rgba(6, 25, 72, 0.9);
}

#theme-main-banner .camera_prev {
    left: 25px;
    right: auto;
}

#theme-main-banner .camera_next {
    right: 25px;
    left: auto;
}

#theme-main-banner .camera_prev > span,
#theme-main-banner .camera_next > span {
    display: block;
    width: 100%;
    height: 100%;
    background: none;
}

#theme-main-banner .camera_prev > span:before,
#theme-main-banner .camera_next > span:before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: FontAwesome;
    font-size: 26px;
    line-height: 1;
    color: #fff;
}

#theme-main-banner .camera_prev > span:before {
    content: "\f104";
    margin-left: -2px;
}

#theme-main-banner .camera_next > span:before {
    content: "\f105";
    margin-left: 2px;
}

@media (max-width: 767px) {
    #theme-main-banner .camera_prev,
    #theme-main-banner .camera_next {
        width: 40px;
        height: 40px;
        margin-top: -20px;
    }

    #theme-main-banner .camera_prev {
        left: 10px;
    }

    #theme-main-banner .camera_next {
        right: 10px;
    }

    #theme-main-banner .camera_prev > span:before,
    #theme-main-banner .camera_next > span:before {
        font-size: 20px;
    }
}

/* Below 1160px the banner is half as tall as it is wide (theme.js), so the
   whole artwork shows instead of a cropped middle. This replaces the theme's
   fixed 600 / 500 / 400px heights for tablets and phones. */
@media (max-width: 1159px) {
    #theme-main-banner {
        height: auto !important;
        aspect-ratio: 2 / 1;
    }
}

/* Form validation messages (contact, home quote and Send Files forms).
   jQuery Validate puts each message right after its field: keep it close to
   that field and in the form's text size, instead of below the field's full
   bottom margin in a large font. */
.theme-form-one label.error {
    display: block;
    margin: -8px 0 14px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
}

.theme-form-one textarea.error {
    margin-bottom: 6px;
}

.theme-form-one textarea.error + label.error {
    margin: 0 0 24px;
}

/* Contact page map: a static picture. Fill the strip instead of repeating it
   on wide screens; this also crops the sliver of Google's toolbar left in the
   picture's top-left corner. */
.google-map-two {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Send Files has no page banner: give its title room below the header. */
.sendfile-section {
    padding-top: 70px;
}

/* Phones and tablets: the menu bar is a solid white strip of its own, so the
   logo and the menu button no longer sit on top of the banner or map. */
@media (max-width: 991px) {
    .header-two .theme-menu-wrapper {
        background: #fff;
        box-shadow: 0 2px 10px rgba(0, 26, 87, 0.08);
    }

    .header-two .theme-menu-wrapper .bg-wrapper {
        min-height: 80px;
    }

    .sendfile-section {
        padding-top: 50px;
    }
}

/* Page titles in the inner banner are now the page's <h1> (for search
   engines and screen readers); they look exactly like the <h2> they were. */
.theme-inner-banner .overlay h1 {
    font-size: 45px;
    font-weight: 900;
    line-height: 1.2;
    color: #fff;
    text-transform: uppercase;
}

@media (max-width: 575px) {
    .theme-inner-banner .overlay h1 {
        font-size: 35px;
    }
}

/* "Skip to content" link: out of sight until reached with the Tab key. */
.skip-link {
    position: absolute;
    left: -10000px;
    top: 0;
    z-index: 10000;
    padding: 10px 18px;
    background: #001a57;
    color: #fff;
}

.skip-link:focus {
    left: 10px;
    top: 10px;
    color: #fff;
}

/* Keyboard focus is visible again (the theme removes every outline). Mouse
   clicks do not show it. */
a:focus-visible,
button:focus-visible,
select:focus-visible,
[role="button"]:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}

/* Footer text a shade lighter, so it is readable on the blue footer
   (contrast 3.6:1 before, 5.5:1 now). */
.theme-footer-two .logo-widget p,
.theme-footer-two .top-footer .footer-list ul li:before,
.theme-footer-two .top-footer .footer-list ul li a,
.theme-footer-two .top-footer .contact-widget ul li,
.theme-footer-two .top-footer .contact-widget ul li a,
.theme-footer-two .bottom-footer p {
    color: #c5cde0;
}

/* Form error text in a deeper red that is readable on white (3.9:1 before,
   5:1 now). */
.error,
.theme-form-one label.error {
    color: #d32f2f;
}

/* Spam guard (partials/form-guard): a field only bots fill in, off screen. */
.form-guard {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* The skip link moves focus to <main>; no ring around the whole page. */
main:focus {
    outline: none;
}
