:root{
  --primary-color:#28377a;
  --secondary-color:#F2F5FF;
  --text-color:#3B3B3B;
  --accent-color:#bd5500;
  --white-color:#FFFFFF;
}
html{scroll-behavior:smooth!important;}
body{
  margin:0;
  font-family:"Sora",sans-serif;
  color:var(--text-color);
}
h1,h2,h3{font-family:"Marcellus",serif;color:var(--primary-color);}
.container{
    max-width: 1300px;
}
/* ⭐ MOBILE OVERFLOW FIX */
html, body { overflow-x: hidden !important; }
.hero-section,
.section-block,
.section-img-wrapper { overflow: hidden; }
.row { margin-right:0!important; margin-left:0!important; }
/* HEADER */
.custom-header{
  background:#fff;
  padding:25px 0;
  position:sticky;top:0;z-index:999;
  box-shadow:0 2px 10px rgba(0,0,0,0.06);
}
.logo-img{max-width:190px;}
.nav-contact-btn{
  background:var(--primary-color);
  color:#fff;
  padding:8px 22px;
  border-radius:999px;
  font-weight:600;
}
.nav-contact-btn:hover{
  background:var(--primary-color) !important;
  color:#fff !important;
}
/* HERO */
.hero-section{
  min-height: 90vh;
  background-color: #28377a; /* Blue solid */
  background-image: url("../images/hero-banner-1.png");
  background-repeat: no-repeat;
  background-position: right center; /* Image right side */
  background-size: contain; /* Image fits right */
  display: flex;
  align-items: center;
  padding: 80px 0;
}
.hero-inner{
  color: #fff;
  text-align: left; /* LEFT SIDE TEXT */
}
.hero-title{
    font-size: 72px;
}
/* SECTIONS */
.section-block{padding:80px 0;}
.section-block-alt{
    background:var(--secondary-color);
    background-image: url('../images/bg-banner-1.svg');
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    background-position: top;
    background-size: 100% auto;
}
.section-img-wrapper{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}
.section-img{
  width:100%;min-height:260px;object-fit:cover;
}
/* Shine */
.section-img-wrapper {
	position: relative;
}
.section-img-wrapper::before {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	display: block;
	content: '';
	width: 0;
	height: 0;
	background: rgba(255,255,255,.2);
	border-radius: 100%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	opacity: 0;
}
.section-img-wrapper:hover::before {
	-webkit-animation: circle .75s;
	animation: circle .75s;
}
@-webkit-keyframes circle {
	0% {
		opacity: 1;
	}
	40% {
		opacity: 1;
	}
	100% {
		width: 200%;
		height: 200%;
		opacity: 0;
	}
}
@keyframes circle {
	0% {
		opacity: 1;
	}
	40% {
		opacity: 1;
	}
	100% {
		width: 200%;
		height: 200%;
		opacity: 0;
	}
}
.section-text p{
  font-size: 16px;
  line-height:1.75;
}
.heading-title{
    font-family: "Marcellus", serif;
    color: var(--primary-color);
    font-weight: 800;
    font-size: 48px;
    line-height: 64px;
    margin-bottom: 30px;
}
/* FOOTER – EXACT Screenshot Style */
.footer {
    background-color: var(--primary-color);
    background-image: url(../images/footer-bg.webp);
    background-size: cover;
    color: var(--white-color);
    padding: 60px 0 35px;
}
.footer-logo {
    max-width: 180px;
    margin-bottom: 20px;
}
.footer h5 {
    font-weight: 600;
    margin-bottom: 15px;
}
.footer p, .footer a {
    color: #e4e7ff;
    font-size: 0.92rem;
    text-decoration: none;
}
.footer a:hover {
    color: #fff;
}
/* Footer Icons Horizontal + Filled Style */
.footer-icon-list {
    display: flex !important;
    flex-direction: row !important;
    gap: 10px;
    padding: 0;
    margin: 0;
}
.footer-icon-list a {
    width: 30px;
    height: 30px;
    text-decoration: none;
    border-radius: 50%;
    background: #ffffff;
    color: #28377a;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    font-size: 18px;
    transition: 0.3s ease;
}
.footer-icon-list a:hover {
    background: #a34700;
    color: #fff;
    transform: translateY(-3px);
}
.footer-bottom {
    border-top: 1px solid #ffffff3d;
    margin-top: 30px;
    padding-top: 12px;
    font-size: 0.85rem;
}
.footer-bottom a{
    text-decoration: none;
    margin: 0px 10px;
}
@media (max-width: 768px) {
  .section-img {  
    min-height: 100%;
  }
  .logo-img {
    max-width: 150px;
}
.nav-contact-btn{
  font-size: 14px !important;
 padding: 8px 15px !important;
}
    #section-2 .heading-title{
        margin-top: 20px;
    }
    #section-1 .ps-5 {
      padding-left: 15px !important;
    }
    #section-1 .pe-5 {
       padding-right: 15px !important;
    }
    #section-2 .pe-5 {
    padding-right: 15px !important;
    }
    #section-3 .ps-5 {
    padding-left: 15px !important;
    }
    .hero-section {
        background-size: 130%;
        background-position: right 20px top;
        padding-bottom: 40px;
        min-height: 85vh;
    }
       .hero-title {
        font-size: 40px;
       }
    .heading-title {  
      font-size: 36px;
    }
    .footer-bottom { 
    flex-direction: column;
    text-align: center;
    }
}
@media (max-width: 480px) {
    .heading-title {  
      font-size: 32px;
      line-height: 40px;
    }
    .hero-section {
      background-size: 160%;
        background-position: right 56px top 0% !important;
        min-height: 80vh;
    }
     .hero-title {
        font-size: 38px;
        line-height: 54px !important;
        text-align: center;
        margin-top: 170px;
    }
}
@media (max-width: 390px) {
    .hero-section {
        background-size: 160%;
        background-position: right 55px top 5% !important;
        min-height: 80vh;
    }
    .hero-title {
       font-size: 36px !important;
        line-height: 48px !important;
    }
}
@media (max-width: 360px) {
    .hero-section {
        background-size: 160%;
        background-position: right 55px top 5% !important;
        min-height: 80vh;
    }
    .hero-title {
       font-size: 36px !important;
        line-height: 48px !important;
    }
}
@media (max-width: 320px) {
     .hero-section {
        background-size: 160%;
        background-position: right 40px top 5% !important;
        min-height: 80vh;
    }
    .hero-title {
        font-size: 40px !important;
          line-height: 48px !important;
    }
}
