/* ================= ROOT ================= */
:root{
  --brand: #2F4DBA;
  --brand-2: #1F3A8A;
  --accent: #F2994A;
  --bg: #FFFFFF;
  --section-bg: #F7F8FC;
  --card: #FFFFFF;
  --text: #1F2937;
  --text-light: #6B7280;
  --button-bg: #3F455A;
  --border: #cbcdcf;
  --cta-dark: #1C1C1C;
  --cta-text: #FFFFFF;
  --glass: rgba(47,77,186,0.08);
  --line: #000;
  --radius: 10px;
  --font-sans: "Inter", "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial;
}


*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
  font-family:'Inter', sans-serif;
  background:#fff;
  padding-top: 80px !important;
  color:#0f172a;
}

.contact{
  padding:60px;
}

.contact-inner{
  max-width:1200px;
  display:flex;
  justify-content: space-between;
  align-items: start;
  gap: 40px;
  flex-direction: column;
  margin: 0 auto;
  
}

/* LEFT TEXT */

.contact-text{
  margin-bottom:60px;
}
.contact-text h1{
  font-size:56px;
  font-weight:800;
  line-height:1.15;
  margin-bottom:24px;
}

.contact-text p{
  max-width:520px;
  font-size:18px;        
  line-height:1.7;
  color:#64748b;
}

.contact-text a{
  color:#26a0f8;
  text-decoration:none;
}

/* FORM */
.contact-form{
  max-width:1000px;
  width:100%;
  margin:0;
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  margin-bottom:40px;
}

.field label{
  display:block;
  font-size:18px;
  color:#6b7280;
  margin-bottom:10px;
}

.field input,
.field textarea{
  width:100%;
  border:none;
  border-bottom:1px solid #e5e7eb;
  padding:2px 0;
  font-size:18px;
  outline:none;
}

.field input:focus,
.field textarea:focus{
  border-color:#0f172a;
}

.field.full{
  margin-bottom:36px;
}


/* POLICY */
.policy{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:17px;
  color:#0f172a;
  margin-bottom:40px;
}

.policy input{
  width:18px;
  height:18px;
  accent-color:#0f172a;
}

.policy a{
  color:#0f172a;
  text-decoration:underline;
}

/* hide default checkbox */
.policy input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  border:2px solid #cbd5e1;
  border-radius:50%;           /* 🔴 makes it round */
  cursor:pointer;
  position:relative;
  transition:all .2s ease;
}

/* checked state */
.policy input[type="checkbox"]:checked{
  border-color:#0f172a;
  background:#0f172a;
}

/* inner dot */
.policy input[type="checkbox"]:checked::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:6px;
  height:6px;
  background:#fff;
  border-radius:50%;
  transform:translate(-50%, -50%);
}


/* BUTTON */
.contact-form button{
  cursor:pointer;
  font-size:16px;
  font-weight:600;
  background:#3F455A;
  color:#ffffff;
  border:none;
  border-radius:20px;
  padding:12px 30px;
  width:100px;

  transition:
    background-color .35s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

/* HOVER EFFECT */
.contact-form button:hover{
  background:#26a0f8;  
  color: #2F3447;        /* slightly darker */
  transform:translateY(-2px);  /* subtle lift */
  box-shadow:0 10px 25px rgba(63,69,90,.25);
}

/* CLICK FEEDBACK */
.contact-form button:active{
  transform:translateY(0);
  box-shadow:0 6px 14px rgba(63,69,90,.2);
}

.form-message {
  margin-top: 16px;
  font-size: 15px;
  font-weight: 500;
  display: none;
}

.form-message.success {
  color: #22c55e; /* green */
}

.form-message.error {
  color: #ef4444; /* red */
}

/* ===== Privacy Policy Modal ===== */
.policy-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.7);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}

.policy-content {
  background: #fff;
  max-width: 700px;
  width: 90%;
  max-height: 80vh;
  overflow-y: auto;
  border-radius: 14px;
  padding: 32px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.25);
}

.policy-content h3 {
  margin-bottom: 16px;
  font-size: 24px;
}

.policy-text {
  font-size: 15px;
  line-height: 1.7;
  color: #475569;
}

.policy-text h4 {
  margin-top: 18px;
  color: #0f172a;
}

.policy-text ul {
  padding-left: 18px;
  margin-top: 8px;
}

.policy-actions {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.policy-actions .btn.secondary {
  background: #e5e7eb;
  color: #0f172a;
}




.services-contact{
  max-width:1400px;
  margin:40px auto;
  padding:0 110px;

  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:120px;
}

/* COLUMN */
.services-column h4{
  font-size:20px;
  font-weight:700;
  color:#0f172a;
  margin-bottom:28px;
}

.services-column ul{
  list-style:none;
  padding:0;
  margin:0;
}

.services-column li{
  margin-bottom:14px;
}

/* LINKS */
.services-column a{
  font-size:16px;
  font-weight:500;
  color:#475569;
  text-decoration:none;
  position:relative;
  transition:color .3s ease;
}

/* HOVER EFFECT (matches premium look) */
.services-column a:hover{
  color:#0f172a;
}

/* subtle underline animation */
.services-column a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:0;
  height:1px;
  background:#0f172a;
  transition:width .3s ease;
}

.services-column a:hover::after{
  width:100%;
}


/* Loading Screen (Hidden by Default) */
#loading-screen {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    font-size: 18px;
    text-align: center;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    z-index: 9999;
}

/* Loader Animation */
.loader {
    border: 6px solid #f3f3f3;
    border-top: 6px solid #3F455A;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
    margin-bottom: 15px;
}




@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


/* RESPONSIVE */
@media(max-width:900px){
  .services-contact{
    grid-template-columns:1fr;
    gap:60px;
    padding:0 24px;
  }
}

@media (min-width: 1025px) and (max-width: 1366px) {

  .contact {
    padding: 90px 80px;
  }

  .contact-text h1 {
    font-size: 54px;
  }

  .services-contact {
    gap: 100px;
    padding: 0 90px;
  }
}


@media (min-width: 769px) and (max-width: 1024px) {

  .contact {
    padding: 80px 40px;
  }

  .contact-inner {
    gap: 20px;
  }

  .contact-text h1 {
    font-size: 48px;
  }

  .services-contact {
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    padding: 0 40px;
  }
}


/* ================= TABLET (601px – 768px) ================= */
@media (min-width: 601px) and (max-width: 768px) {

  .contact {
    padding: 60px 40px;
  }

  .contact-text{
    margin-bottom: 30px;
  }

  .contact-text h1 {
    font-size: 42px;
  }

  .contact-text p {
    font-size: 17px;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .services-contact {
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    padding: 0 40px;
  }
}


/* ================= LARGE MOBILE (481px – 600px) ================= */
@media (min-width: 481px) and (max-width: 600px) {

  .contact {
    padding: 40px 24px;
  }

  .contact-text {
    margin-bottom: 20px;
  }

  .contact-text h1 {
    font-size: 36px;
  }

  .contact-text p {
    font-size: 16px;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .services-contact {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 0 30px;
  }

  .services-column h4 {
    font-size: 20px !important;
  }
}


/* ================= MOBILE (≤ 480px) ================= */
@media (max-width: 480px) {

  body {
    padding-top: 70px !important;
  }

  .contact {
    padding: 40px 20px;
  }

  .contact-text {
    margin-bottom: 50px;
  }

  .contact-text h1 {
    font-size: 32px;
    line-height: 1.25;
  }

  .contact-text p {
    font-size: 15px;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .field label {
    font-size: 15px;
  }

  .field input,
  .field textarea {
    font-size: 16px;
  }

  .policy {
    font-size: 14px;
  }

  .contact-form button {
    width: 100%;
    padding: 14px;
  }

  .services-contact {
    grid-template-columns: 1fr;
    gap: 50px;
    padding: 0 20px;
  }

  .services-column h4 {
    font-size: 18px !important;
  }
}
