/* Responsive corrections for the existing Bootstrap 3 site. */
.site-body { padding-top: 80px; }
.header-s1 .banner,
.header-s1.has-fixed .banner { margin-top: 0; }
html { scroll-padding-top: 96px; }
p, h1, h2, h3, h4, h5, h6, .contact-list { overflow-wrap: break-word; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 3px solid #f37932;
    outline-offset: 3px;
}
.enquiry-form label { display: block; margin-bottom: 6px; color: #414650; font-weight: 500; }
.enquiry-form .form-control { min-height: 44px; font-size: 16px; }
.enquiry-form textarea.form-control { height: auto; min-height: 112px; resize: vertical; }
.enquiry-form .btn { min-height: 44px; max-width: 100%; white-space: normal; }
.modal { z-index: 1050; }
.modal-dialog { max-width: calc(100% - 24px); margin: 24px auto; }
.modal-body { padding: 24px; }
.modal-body .close { min-width: 44px; min-height: 44px; }
.modal-title { padding: 0 36px; line-height: 1.5; }
.contact-content { margin-left: 0; margin-right: 0; }
.social a { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 44px; }
@media (max-width: 991px) {
    .site-body { padding-top: 64px; }
    html { scroll-padding-top: 80px; }
    .header-s1 .navbar, .header-s1.has-fixed .navbar { z-index: 1030; }
    .header-s1 .navbar .container { width: 100%; max-width: 100%; padding: 0; }
    .header-s1 .navbar-header { float: none; width: 100%; height: 64px; margin: 0; padding: 0; background: #fff; }
    .header-s1 .navbar-header .quote-btn { display: none; }
    .header-s1 .navbar-brand { position: absolute; left: 20px; top: 0; width: auto; max-width: calc(100% - 100px); margin: 12px 0; }
    .header-s1 .navbar-brand img { max-height: 40px; }
    .header-s1 .navbar-toggle { display: block; float: right; margin: 10px 16px; min-width: 44px; min-height: 44px; background: #1863ab; }
    .header-s1 .navbar-toggle .icon-bar { background: #fff; }
    .header-s1 .navbar-collapse { float: none; width: 100%; margin: 0; padding: 0; background: #1863ab; color: #fff; clear: both; max-height: calc(100vh - 64px); max-height: calc(100dvh - 64px); overflow-y: auto !important; }
    .header-s1 .navbar-collapse.collapse:not(.in) { display: none !important; }
    .header-s1 .navbar-collapse.in { display: block !important; }
    .header-s1 .navbar-nav { float: none; width: 100%; margin: 0; padding: 0 0 16px; text-align: left; }
    .header-s1 .navbar-nav > li { float: none; border-bottom: 1px solid rgba(255,255,255,.15); }
    .header-s1 .navbar-nav > li > a { padding: 12px 20px; font-size: 15px; color: #fff; min-height: 44px; }
    .header-s1 .navbar-nav > li > a:hover, .header-s1 .navbar-nav > li > a:focus { background: #064e94; color: #fff; }
    .header-s1 .navbar-nav > li.quote-btn { float: none; margin: 16px 20px 0; border: 0; text-align: center; }
    .header-s1 .navbar-nav > li.quote-btn .btn { display: inline-block; min-height: 44px; padding: 12px 24px; }
    .banner-slider .banner-text { max-width: 100%; }
}
@media (max-width: 767px) {
    .banner-slider { height: 320px; }
    .banner-slider .banner-content { padding-top: 0; }
    .banner-slider .banner-text { width: 100%; padding: 24px 15px; font-size: 16px; }
    .banner-slider .banner-text h2 { font-size: 26px; }
    .banner-text .btn { min-height: 44px; font-size: 13px; padding: 12px 16px; }
    .section-about .heading { font-size: 28px; line-height: 1.35; }
    .section-about .lead { font-size: 17px; }
    .call-action .btn { white-space: normal; max-width: 100%; }
    .modal-dialog { margin: 12px auto; }
    .modal-body { padding: 20px; }
    .modal-title { font-size: 18px !important; }
    .copyright .social { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
}
/* Touch screens must not depend on hover to reveal service details. */
@media (hover: none), (max-width: 767px) {
    .feature-s4.off-text .feature .fbox-over,
    .feature-s4.off-text .feature:hover .fbox-over {
        position: relative; bottom: auto; transform: none; padding: 16px;
        background: #1863ab;
    }
    .feature-s4.off-text .feature .fbox-over .fbox-content { opacity: 1; }
    .feature-s4 .col-md-3 .feature .fbox-over .title + .fbox-content { font-size: 14px; line-height: 1.6; }
    .feature-s4 .feature .fbox-over .title { font-size: 17px; line-height: 1.4; }
}
@media (max-width: 640px) {
    .site-body { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
    .bottom-fixed-box { padding-bottom: env(safe-area-inset-bottom, 0px); }
    .bottom-fixed-box ul { display: flex; }
    .bottom-fixed-box ul li { float: none; }
    .bottom-fixed-box ul li a { min-height: 52px; padding: 14px 8px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .has-parallax { background-attachment: scroll !important; }
}
.enquiry-form .form-group { margin-bottom: 18px; padding: 0; }

/* Compact, centered enquiry dialog; page contact forms keep their own layout. */
#enquire-now { padding: 12px !important; }
#enquire-now.in { display: flex !important; align-items: center; justify-content: center; }
#enquire-now .modal-dialog { width: 520px; max-width: 100%; margin: auto; }
#enquire-now .modal-content {
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
}
#enquire-now .modal-body { padding: 20px; }
#enquire-now .close { position: absolute; top: 6px; right: 6px; }
#enquire-now .modal-title { margin: 0 0 16px; padding: 0 32px; line-height: 1.4; }
#enquire-now .enquiry-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px 16px; }
#enquire-now .enquiry-form .form-group { min-width: 0; margin: 0; padding: 0; }
#enquire-now .enquiry-form label { margin: 0 0 4px; font-size: 13px; line-height: 18px; }
#enquire-now .enquiry-form .form-control { height: 44px; min-height: 44px; }
#enquire-now .enquiry-form textarea.form-control { height: 76px; min-height: 76px; }
#enquire-now .enquiry-form > div:last-child { grid-column: 1 / -1; }
#enquire-now .enquiry-form .btn { padding-top: 10px; padding-bottom: 10px; }
@media (min-width: 480px) {
    #enquire-now .enquiry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #enquire-now .enquiry-form .form-group:nth-child(5) { grid-column: 1 / -1; }
}
@media (max-width: 479px) {
    #enquire-now .modal-body { padding: 16px; }
    #enquire-now .modal-title { font-size: 17px !important; margin-bottom: 14px; }
}

#enquire-now .enquiry-actions { display: flex; align-items: center; justify-content: center; gap: 8px; }
#enquire-now .enquiry-actions .btn { flex: 0 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 0; padding: 10px 14px; font-size: 12px; letter-spacing: 0; white-space: nowrap; }
#enquire-now .enquiry-actions-or { flex: none; color: #6e7889; font-size: 13px; }
#enquire-now .btn-whatsapp { background: #18783c; border-color: #18783c; color: #fff; }
#enquire-now .btn-whatsapp:hover, #enquire-now .btn-whatsapp:focus { background: #115c2d; border-color: #115c2d; color: #fff; }

#enquire-now .enquiry-actions .fa { font-size: 16px; line-height: 1; }
@media (max-width: 359px) {
    #enquire-now .enquiry-actions { gap: 6px; }
    #enquire-now .enquiry-actions .btn { padding: 10px 8px; gap: 5px; font-size: 11px; }
}

/* Direct calling in compact headers; WhatsApp and enquiry in the mobile bar. */
.header-call { display: none; }
@media (max-width: 991px) {
    .header-s1 .navbar-brand { max-width: calc(100% - 156px); }
    .header-call { position: absolute; right: 72px; top: 10px; display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 4px; background: #18783c; color: #fff; font-size: 22px; }
    .header-call:hover, .header-call:focus { background: #115c2d; color: #fff; }
}
.bottom-fixed-box ul li a.mobile-whatsapp { background: #18783c; }
.bottom-fixed-box ul li a.mobile-whatsapp:hover, .bottom-fixed-box ul li a.mobile-whatsapp:focus { background: #115c2d; }
.bottom-fixed-box ul li a.mobile-enquiry { background: #1863ab; }
.bottom-fixed-box ul li a.mobile-enquiry:hover, .bottom-fixed-box ul li a.mobile-enquiry:focus { background: #064e94; }
.bottom-fixed-box ul li a.mobile-whatsapp, .bottom-fixed-box ul li a.mobile-enquiry { display: flex; align-items: center; justify-content: center; gap: 8px; }
.bottom-fixed-box .fa { font-size: 20px; }
@media (max-width: 359px) {
    .bottom-fixed-box ul li a { font-size: 12px; }
    .bottom-fixed-box ul li a.mobile-whatsapp, .bottom-fixed-box ul li a.mobile-enquiry { gap: 6px; }
}

/* Compact site chrome with full-size touch controls. */
.site-body { padding-top: 64px; }
html { scroll-padding-top: 80px; }
@media (min-width: 992px) {
    .header-s1 .navbar-brand { margin-top: 10px; margin-bottom: 10px; }
    .header-s1 .navbar-brand img { max-height: 44px; }
    .header-s1 .navbar-nav > li > a { padding-top: 22px; padding-bottom: 22px; }
    .header-s1 .navbar-nav > li.quote-btn { margin-top: 10px; }
    .header-s1 .navbar-nav > li.quote-btn .btn { min-height: 44px; padding-top: 12px; padding-bottom: 12px; }
}
.copyright:not([class*="section-pad"]) { padding: 8px 0; }
.copyright .row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; }
.copyright .row::before, .copyright .row::after { display: none; }
.copyright .site-copy { flex: 1 1 440px; width: auto; }
.copyright .site-by { flex: 0 1 auto; width: auto; margin-top: 0; }
.copyright .social { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 0; }
.copyright .social li { margin: 0; }
.copyright .site-copy p { margin: 0; }
@media (max-width: 991px) {
    .site-body { padding-top: 56px; }
    html { scroll-padding-top: 72px; }
    .header-s1 .navbar-header { height: 56px; }
    .header-s1 .navbar-brand { margin: 12px 0; }
    .header-s1 .navbar-brand img { max-height: 32px; }
    .header-s1 .navbar-toggle { margin-top: 6px; margin-bottom: 6px; }
    .header-call { top: 6px; }
    .header-s1 .navbar-collapse { max-height: calc(100vh - 56px); max-height: calc(100dvh - 56px); }
}
@media (max-width: 640px) {
    .site-body { padding-bottom: calc(48px + env(safe-area-inset-bottom, 0px)); }
    .bottom-fixed-box ul li a { min-height: 48px; padding: 12px 8px; line-height: 24px; }
}

/* Contact page: compact form and office details within the desktop fold. */
.contact-page .section-contact { padding: 24px 0; }
.contact-page .section-contact .heading-section { margin-bottom: 20px; font-size: 26px; }
.contact-page .contact-content { margin: 0; }
.contact-page .contact-content > div { padding: 0; }
.contact-page .drop-message { margin-bottom: 24px; }
.contact-page .drop-message .enquiry-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px 16px; }
.contact-page .drop-message .form-group { margin: 0; min-width: 0; }
.contact-page .drop-message label { margin-bottom: 4px; font-size: 14px; line-height: 20px; }
.contact-page .drop-message textarea.form-control { min-height: 88px; height: 88px; }
.contact-page .drop-message .enquiry-form > div:last-child { grid-column: 1 / -1; text-align: left; }
.contact-page .contact-list { display: grid; gap: 14px; margin: 0; font-size: 14px; line-height: 1.5; }
.contact-page .contact-list li { margin: 0; padding: 0; }
@media (min-width: 480px) {
    .contact-page .drop-message .enquiry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contact-page .drop-message .form-group:nth-child(5) { grid-column: 1 / -1; }
}
@media (min-width: 768px) {
    .contact-page .section-contact { min-height: calc(100vh - 124px); min-height: calc(100dvh - 124px); display: flex; align-items: center; }
    .contact-page .contact-content { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 36px; }
    .contact-page .contact-content > div { float: none; width: auto; min-width: 0; margin: 0; }
}
@media (min-width: 768px) and (max-width: 991px) {
    .contact-page .section-contact { min-height: calc(100vh - 116px); min-height: calc(100dvh - 116px); }
    .contact-page .contact-content { gap: 24px; }
}
@media (min-width: 768px) {
    .contact-page .contact-content::before, .contact-page .contact-content::after { display: none; }
}

.footer-legal .footer-policy-links::before { content: " . "; padding: 0 5px; }
@media (max-width: 767px) {
    .copyright:not([class*="section-pad"]) { padding: 16px 0 12px; }
    .copyright .row { flex-direction: column; gap: 10px; text-align: center; }
    .copyright .site-copy, .copyright .site-by { flex: none; width: 100%; text-align: center; }
    .copyright .footer-legal { display: flex; flex-direction: column; gap: 8px; align-items: center; font-size: 11px; line-height: 1.6; }
    .footer-legal .footer-policy-links::before { content: none; }
    .copyright .footer-policy-links { display: inline-flex; align-items: center; justify-content: center; }
    .copyright .footer-policy-links .sep { padding: 0 8px; }
    .copyright .social { justify-content: center; gap: 8px; }
    .copyright .social li:first-child { margin-right: 2px; font-size: 11px; letter-spacing: .3px; }
    .copyright .social a { width: 36px; min-width: 36px; height: 44px; border: 1px solid #424242; border-radius: 6px; background: #202020; font-size: 15px; }
    .copyright .social a:hover, .copyright .social a:focus { background: #1863ab; border-color: #1863ab; color: #fff; }
}

/* The logo PNG includes transparent padding: crop it in its link, not the asset. */
.header-s1 .navbar-brand { position: relative; width: 180px; height: 38px; overflow: hidden; margin-top: 13px; margin-bottom: 13px; }
.header-s1 .navbar-brand img.logo { position: absolute; width: 222.222px; height: 66.667px; max-width: none; max-height: none; left: -24.444px; top: -14.444px; border-radius: 0; }
@media (max-width: 991px) {
    .header-s1 .navbar-brand { position: absolute; top: 0; left: 20px; width: 144px; height: 31px; margin: 12.5px 0; }
    .header-s1 .navbar-brand img.logo { width: 177.778px; height: 53.333px; left: -19.556px; top: -11.556px; }
}

/* Use the existing high-resolution brand artwork without stretching the small PNG. */
.header-s1 .navbar-brand img.logo-dark {
    width: 263.415px; height: 263.415px;
    left: -45.122px; top: -112.683px;
    max-width: none; max-height: none;
}
@media (max-width: 991px) {
    .header-s1 .navbar-brand img.logo-dark {
        width: 210.732px; height: 210.732px;
        left: -36.098px; top: -90.146px;
    }
}

/* Consistent spacing for the existing Products sections. */
.products-page .site-header { margin: 0; padding: 0; }
.products-page .section-services,
.products-page .section-content,
.products-page .section-about { padding-top: 48px; padding-bottom: 48px; }
.products-page .section-logos { padding-top: 32px; padding-bottom: 32px; }
.products-page .section-services .feature-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.products-page .section-services .feature-row::before,
.products-page .section-services .feature-row::after { display: none; }
.products-page .section-services .feature-row > div { float: none; width: auto; padding: 0; min-width: 0; }
.products-page .section-services .feature { margin: 0; }
.products-page .section-services .fbox-over { padding: 16px; }
.products-page .section-services .fbox-over .title { font-size: 18px; line-height: 1.35; }
.products-page .section-services .fbox-over .fbox-content { font-size: 14px; line-height: 1.6; margin-top: 8px; }
.products-page .call-action { margin: 0; }
.products-page .call-action.cta-mini .cta-block { padding: 20px 0; }
.products-page .call-action.cta-small .cta-block { padding: 28px 0; }
.products-page .cta-sameline { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-right: 0; }
.products-page .cta-sameline h2,
.products-page .cta-sameline h3 { flex: 1; margin: 0; line-height: 1.5; }
.products-page .cta-sameline .cta-num,
.products-page .cta-sameline .btn { position: static; transform: none; margin: 0; flex-shrink: 0; }
.products-page .call-action.has-parallax .cta-block { padding: 56px 0; }
.products-page .has-parallax .content > .row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
.products-page .has-parallax .content > .row::before,
.products-page .has-parallax .content > .row::after { display: none; }
.products-page .has-parallax .content > .row > div { float: none; width: auto; margin: 0; padding: 0; min-width: 0; }
.products-page .has-parallax .list-style { margin-bottom: 0; }
.products-page .section-about .heading-section { margin-bottom: 20px; }
.products-page .section-logos .heading-section { margin-bottom: 16px; }
.products-page .section-logos .gaps { height: 0; }
.products-page .section-logos .logo-carousel + .logo-carousel { margin-top: 16px; }
@media (max-width: 991px) {
    .products-page .section-services .feature-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .products-page .has-parallax .content > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .products-page .cta-sameline { flex-direction: column; align-items: center; text-align: center; gap: 12px; }
}
@media (max-width: 767px) {
    .products-page .section-services,
    .products-page .section-content,
    .products-page .section-about { padding-top: 32px; padding-bottom: 32px; }
    .products-page .section-services .feature-row { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .products-page .call-action.has-parallax .cta-block { padding: 36px 0; }
    .products-page .has-parallax .content > .row { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .products-page .has-parallax .content > h3 br { display: none; }
    .products-page .section-logos { padding-top: 28px; padding-bottom: 28px; }
}

/* Shared section rhythm across the existing website. */
.site-body:not(.contact-page) .section-pad,
.site-body:not(.contact-page) .section-pad-md { padding-top: 48px; padding-bottom: 48px; }
.site-body .section-pad-lg { padding-top: 64px; padding-bottom: 64px; }
.site-body .section-logos { padding-top: 32px; padding-bottom: 32px; }
.site-body .section-logos .heading-section { margin-bottom: 16px; }
.site-body .section-logos .gaps { height: 0; }
.site-body .section-logos .logo-carousel + .logo-carousel { margin-top: 16px; }
.site-body .section-about .heading-section,
.site-body .section-content .heading-section,
.site-body .section-contents .heading-section { margin-bottom: 24px; }
.site-body .call-action .cta-block { padding: 36px 0; }
.site-body .call-action.cta-small .cta-block { padding: 28px 0; }
.site-body .call-action.cta-mini .cta-block { padding: 20px 0; }
.site-body .call-action.has-parallax .cta-block { padding: 56px 0; }
.site-body .cta-sameline { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-right: 0; }
.site-body .cta-sameline > h2,
.site-body .cta-sameline > h3,
.site-body .cta-message { flex: 1; margin: 0; min-width: 0; }
.site-body .cta-message h3 { margin: 0 0 8px; }
.site-body .cta-message p { margin: 0; }
.site-body .cta-sameline > .cta-num,
.site-body .cta-sameline > .btn { position: static; transform: none; margin: 0; flex-shrink: 0; }
.site-body .cta-sameline > .cta-num { max-width: 100%; }
/* Keep the long industry list within the Solutions intro banner. */
.solutions-page > .call-action:first-of-type .cta-num { flex: 1; font-size: 16px; line-height: 1.6; }
.solutions-page > .call-action:first-of-type .cta-sameline > h3 { flex: none; }
.solutions-page .feature-intro .feature-row::before,
.solutions-page .feature-intro .feature-row::after { display: none; }
.solutions-page .feature-intro .feature-row > div { float: none; width: auto; min-width: 0; padding: 0; }
.solutions-page .feature-intro .feature { margin: 0; height: 100%; }
.solutions-page .feature-intro .feature-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; }
.solutions-page .feature-intro .feature h3 { margin-bottom: 12px; }
/* Keep About Us strengths and Careers cards aligned as their text wraps. */
.about-page .section-contents.light .feature-intro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.about-page .section-contents.light .feature-intro > .row { display: contents; }
.about-page .section-contents.light .feature-intro > .row::before,
.about-page .section-contents.light .feature-intro > .row::after { display: none; }
.about-page .section-contents.light .feature-intro > .row > div { width: auto; float: none; padding: 0; min-width: 0; }
.about-page .section-contents.light article { margin: 0; }
.about-page .section-contents.light article h3 { margin-bottom: 12px; }
.careers-page .section-contents.bg-light .content > .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; }
.careers-page .section-contents.bg-light .content > .row::before,
.careers-page .section-contents.bg-light .content > .row::after { display: none; }
.careers-page .section-contents.bg-light .content > .row > div { width: auto; float: none; padding: 0; margin: 0; }
.careers-page .section-contents.bg-light .box-s1 { height: 100%; }
.careers-page .section-contents.bg-light .gaps { height: 8px; }
@media (max-width: 991px) {
    .header-s1 .navbar > .container .navbar-brand { margin-left: 0; }
    .site-body .cta-sameline { flex-direction: column; gap: 12px; text-align: center; }
    .about-page .section-contents.light .feature-intro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-page .section-contents:not(.light) .content > .row > .col-md-6 + .col-md-6 { margin-top: 28px; }
    .careers-page .section-contents:not(.bg-light) .res-m-bttm,
    .solutions-page .section-about .res-m-bttm { margin-bottom: 28px; }
    .solutions-page .feature-intro { margin-top: 0; }
}
@media (max-width: 767px) {
    .site-body:not(.contact-page) .section-pad,
    .site-body:not(.contact-page) .section-pad-md { padding-top: 32px; padding-bottom: 32px; }
    .site-body .section-pad-lg { padding-top: 40px; padding-bottom: 40px; }
    .site-body .section-logos { padding-top: 28px; padding-bottom: 28px; }
    .site-body .call-action .cta-block { padding: 28px 0; }
    .site-body .call-action.has-parallax .cta-block { padding: 36px 0; }
    .site-body .section-content .res-m-bttm { margin-bottom: 24px; }
    .about-page .section-contents.light .feature-intro,
    .careers-page .section-contents.bg-light .content > .row,
    .solutions-page .feature-intro .feature-row { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .about-page .section-contents .gaps { height: 12px; }
}
/* Reset legacy outer CTA margins; spacing belongs inside each banner. */
.site-body .call-action { margin: 0; padding: 0; }
.site-body .section-logos.section-pad-md { padding-top: 32px; padding-bottom: 32px; }
@media (max-width: 767px) {
    .site-body .section-logos.section-pad-md { padding-top: 28px; padding-bottom: 28px; }
}



/* Readable homepage card typography within the original image/hover layout. */
.home-page .feature-s4.off-text .feature .fbox-over { padding: 14px; }
.home-page .feature-s4.off-text .feature .fbox-over .title { font-size: 16px; line-height: 1.4; font-weight: 600; letter-spacing: 0; }
.home-page .feature-s4.off-text .feature .fbox-over .title + .fbox-content { margin-top: 8px; font-size: 14px; line-height: 1.5; }
.home-page .feature-s4.off-text .feature .fbox-over p { margin-bottom: 10px; }
.home-page .feature-s4.off-text .feature .fbox-over .btn { min-width: 0; font-size: 12px; line-height: 16px; letter-spacing: .4px; padding: 7px 12px; }
@media (min-width: 768px) and (hover: hover) {
    .home-page .feature-s4.off-text .feature .fbox-over { bottom: 52px; }
    .home-page .feature-s4.off-text .feature:hover .fbox-over,
    .home-page .feature-s4.off-text .feature > a:focus .fbox-over { bottom: 0; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .home-page .section-services .feature-row > .col-md-3 { width: 50%; }
    .home-page .section-services .feature-row > .col-md-3:nth-child(2n+1) { clear: left; }
}
@media (max-width: 767px) {
    .home-page .feature-s4.off-text .feature .fbox-over .title { font-size: 18px; }
    .home-page .feature-s4.off-text .feature .fbox-over .title + .fbox-content { font-size: 15px; line-height: 1.6; }
}

/* Full-width header layout with responsive gutters. */
.header-s1 .navbar > .container {
    width: 100%; max-width: none;
    padding-left: clamp(16px, 2.5vw, 48px);
    padding-right: clamp(16px, 2.5vw, 48px);
}
.header-s1 .navbar > .container .navbar-brand { margin-left: 0; }
.header-s1 .navbar-collapse { margin-right: 0; }
@media (max-width: 991px) {
    .header-s1 .navbar > .container { padding-left: 0; padding-right: 0; }
    .header-s1 .navbar-brand { left: 16px; }
}

/* Full-width footer layout, matching the responsive header gutters. */
.copyright > .container {
    width: 100%; max-width: none;
    padding-left: clamp(16px, 2.5vw, 48px);
    padding-right: clamp(16px, 2.5vw, 48px);
}
.copyright > .container > .row { margin-left: 0; margin-right: 0; }

/* Full-width page sections aligned to the header and footer. */
:root { --site-gutter: clamp(16px, 2.5vw, 48px); }
.site-body .section > .container,
.site-body .call-action > .cta-block > .container,
.site-body .banner > .container,
.site-body .banner-content > .container {
    width: 100%; max-width: none;
    padding-left: var(--site-gutter);
    padding-right: var(--site-gutter);
}
.site-body .section > .container > .content.row,
.site-body .call-action > .cta-block > .container > .content.row,
.site-body .banner > .container > .content.row,
.site-body .banner-content > .container > .row { margin-left: 0; margin-right: 0; }
/* Long policy text keeps a comfortable reading measure within its full-width section. */
.privacy-page .section-contents > .container > .content { max-width: 78ch; margin-left: auto; margin-right: auto; }
@media (max-width: 991px) {
    :root { --site-gutter: 16px; }
    .copyright > .container { padding-left: var(--site-gutter); padding-right: var(--site-gutter); }
}
.copyright .site-copy, .copyright .site-by { padding-left: 0; padding-right: 0; }
.site-body.privacy-page .section-contents > .container > .content.row { margin-left: auto; margin-right: auto; }

/* HTML5 presentation replacements. */
.modal-title, .form-submit { text-align: center; }
