/* =========================================================================
   CORE STYLES & MINIFIED GRID (Replacing Bootstrap + main.css)
   ========================================================================= */

/* --- Reset & Typography --- */
*, ::before, ::after { box-sizing: border-box; }
html { scroll-padding-top: 80px; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.5em;
    color: rgb(0, 43, 113);
    background-color: #fff;
    position: relative;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: "Poppins", sans-serif;
    color: rgb(0, 43, 113);
    line-height: 1.5em;
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-weight: 600;
}
h1 { font-size: 30px; }
h2 { font-size: 30px; }
h3 { font-size: 24px; }
h6 { font-size: 14px; }
a { color: inherit; text-decoration: none; transition: all 0.3s ease 0s; background-color: transparent; }
a:hover, a:focus { text-decoration: none; outline: 0; color: rgb(241, 89, 35); }
img { vertical-align: middle; border-style: none; max-width: 100%; height: auto; }
button:focus, input:focus, textarea:focus { outline: none; }

/* --- Grid System --- */
.container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px){ .container { max-width: 1140px; } }

.row { display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; }
.col-lg-3, .col-lg-8, .col-lg-9, .col-sm-6, .col-sm-12 { position: relative; width: 100%; min-height: 1px; padding-right: 15px; padding-left: 15px; }

@media (min-width: 576px) {
    .col-sm-6 { flex: 0 0 50%; max-width: 50%; }
    .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
}
@media (min-width: 992px) {
    .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
    .col-lg-8 { flex: 0 0 66.66667%; max-width: 66.66667%; }
    .col-lg-9 { flex: 0 0 75%; max-width: 75%; }
}

/* --- Utilities --- */
.d-flex { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-between { justify-content: space-between !important; }
.align-items-center { align-items: center !important; }
.text-center { text-align: center !important; }
.text-uppercase { text-transform: uppercase !important; }
.text-white { color: #fff !important; }
.m-0 { margin: 0 !important; }
.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.mt-30 { margin-top: 30px; }
.mb-10 { margin-bottom: 10px; }
.mb-15 { margin-bottom: 15px; }
.relative { position: relative; }
.gray-bg { background: rgb(190, 222, 227); }
.section-full { padding: 40px 0; }
.footer-bg { background: rgb(0, 27, 71); }

/* --- Header & Layout Elements --- */
.default-header { position: absolute; background: #fff; top: 0; left: 0; width: 100%; z-index: 9; }
.sticky-header { padding: 15px 0; }
.overlay { position: absolute; left: 0; right: 0; top: 0; bottom: 0; }

.banner-area { background: url(../img/banner.webp) no-repeat center center/cover; }
.banner-area .overlay-bg { background: linear-gradient(to right, rgba(79, 198, 216, 0.5) 0%, rgba(79, 198, 216, 0.95) 100%); }
.fullscreen { min-height: 100vh; }
.banner-content { width: 100%; }

/* --- Buttons --- */
.btn { display: inline-block; font-weight: 600; text-align: center; white-space: nowrap; vertical-align: middle; padding: 0.5rem 0.75rem; border-radius: 0.25rem; }
.btn-primary { color: #fff; background-color: rgb(241, 89, 35); border: 1px solid rgb(241, 89, 35); }
.btn-primary:hover { color: #fff; background-color: rgb(0,43,113); border-color: rgb(0,43,113); }

.primary-btn, .primary-green, .primary-other, .primary-yellow, .primary-blue {
    width: 220px; line-height: 40px; padding: 0 20px; border-radius: 10px; color: #ffffff;
    display: inline-block; font-weight: 600; transition: all 0.3s ease 0s; cursor: pointer; text-align: center;
}
.primary-btn { background: rgb(241, 89, 35); border: 1px solid rgb(241, 89, 35); }
.primary-green { background: rgb(26, 179, 51); border: 1px solid rgb(26, 179, 51); }
.primary-other { background: #2E8DA6; border: 1px solid #2E8DA6; }
.primary-yellow { background: rgb(230, 216, 2); border: 1px solid rgb(230, 216, 22); color: rgb(23, 44, 120); }
.primary-blue { background: rgb(23, 44, 120); border: 1px solid rgb(23, 44, 120); }

.banner-btn { margin-bottom: 20px; }
.banner-btn img { margin-right: 5px; }

.primary-btn:hover, .primary-green:hover, .primary-other:hover, .primary-yellow:hover, .primary-blue:hover {
    background: rgb(23, 44, 120); border: 1px solid rgb(23, 44, 120); color: #fff; box-shadow: 0px 10px 20px 0px rgba(60, 64, 143, 0.2);
}
.primary-blue:hover { background: rgb(241, 89, 35); border-color: rgb(241, 89, 35); }

/* --- Forms --- */
.single-input input { width: 100%; line-height: 40px; padding: 0 20px; background: #fff; border: 1px solid #eee; }
.single-input textarea { width: 100%; padding: 15px 20px; height: 120px; resize: none; background: #fff; border: 1px solid #eee; }
.single-input input:focus, .single-input textarea:focus { border-color: transparent; box-shadow: 0px 10px 20px 0px rgba(60, 64, 143, 0.1); }

/* --- Footer --- */
.footer-bottom { padding-top: 40px; border-top: 1px solid rgba(255,255,255,0.1); }
.footer-text { color: #ffffff; }
.footer-social a { font-size: 18px; margin: 0 5px; padding: 0 5px; display: inline-block; color: rgba(255, 255, 255, 0.5); }
.footer-social a:hover { color: rgb(241, 89, 35); }