/* ================================= */
/* HERO */
/* ================================= */

.contact-hero{
  position:relative;
  padding: 150px 20px 140px !important;
  text-align:center;
  background: #2E5E99;
  color:white;
  overflow:hidden;
}

/* shadow depth */
.contact-hero::after{
  content:"";
  position:absolute;
  width:100%;
  height:200px;
  bottom:-120px;
  left:0;
  background:radial-gradient(ellipse at center,rgba(0,0,0,0.3),transparent 70%);
}

.contact-hero h1{
  font-size:60px;
  font-weight:600;
  margin-bottom:15px;
  color: white;
}

.contact-hero p{
  font-size:18px;
  max-width:600px;
  margin:auto;
  color:rgba(255,255,255,0.9);
}


/* ================================= */
/* CALLBACK SECTION */
/* ================================= */


.callback-box {
  padding: 150px 20px;
  text-align: center;
}

.callback-text {
  margin-bottom: 25px;
  font-size: 18px;
  color: #2E5E99;
  font-weight: 600;
}

.callback-inline {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

.callback-inline button {
  width: auto !important;
}

/* INPUT */
.callback-input {
  padding: 16px 24px;
  border-radius: 30px;
  border: 1px solid #ddd;
  width: 320px;
  font-size: 15px;
  background: #f5f7fb;
  color: #111;
}

/* CALLBACK BUTTON */
.callback-btn {
  display: inline-block;
  padding: 16px 32px;       
  border-radius: 60px;
  background: #2E5E99;
  color: white;

  font-size: 13px;           
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
  transition: transform .4s cubic-bezier(.16,1,.3,1),
              box-shadow .4s cubic-bezier(.16,1,.3,1);
}

/* shine */
.callback-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 120%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,0.7),
    transparent
  );
  transition: left .7s ease;
}

.callback-btn:hover::before {
  left: 120%;
}

/* hover */
.callback-btn:hover {
  transform: translateY(-6px);
  box-shadow:
    0 45px 120px rgba(0,0,0,0.55),
    0 15px 40px rgba(0,0,0,0.25);
}

/* ================================= */
/* QUOTE SECTION */
/* ================================= */

.quote-section {
  padding: 160px 20px;
  background: linear-gradient(135deg, #2E5E99, #1f4a80);
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ================================= */
/* FORM BOX */
/* ================================= */

.quote-box {
  padding: 70px;
  width: 100%;
  max-width: 1000px;
  border-radius: 28px;
  background: white;
  box-shadow:
    0 50px 120px rgba(0,0,0,0.5),
    0 20px 40px rgba(0,0,0,0.25);
  color: #2E5E99;
}

/* TITLE */
.quote-box h3 {
  margin-bottom: 30px;
  font-size: 22px;
  font-weight: 600;
}

/* ================================= */
/* FORM GRID */
/* ================================= */

.quote-form {
  margin-top: 25px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}

.form-row.full {
  grid-template-columns: 1fr;
}

/* ================================= */
/* INPUTS */
/* ================================= */

/* INPUTS + TEXTAREA */
.quote-form input,
.quote-form textarea {
  width: 100%;
  padding: 15px 16px;
  border-radius: 14px;
  border: 1px solid #2E5E99; 
  background: #f5f7fb;
  color: #2E5E99;
  font-size: 14px;
}

.quote-form input::placeholder,
.quote-form textarea::placeholder {
  color: #888;
}

.quote-form textarea {
  font-family: inherit;
  resize: none;
  min-height: 120px;
}

/* ================================= */
/* CUSTOM SELECT */
/* ================================= */

.custom-select {
  position: relative;
  width: 100%;
}

.select-trigger {
  width: 100%;
  height: 48px;
  padding: 15px 16px;
  border-radius: 14px;
  background: #f5f7fb;
  border: 1px solid #2E5E99;
  color: #2E5E99;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}

/* DROPDOWN */
.select-options {
  position: absolute;
  top: 110%;
  left: 0;
  width: 100%;
  background: white;
  border: 1px solid #ddd;
  border-radius: 12px;
  display: none;
  z-index: 100;
}

.custom-select.open .select-options {
  display: block;
}

.custom-select input {
  display: none;
}

.option {
  padding: 12px 15px;
  cursor: pointer;
}

.option:hover {
  background: #f0f0f0;
}

/* ================================= */
/* ARROW */
/* ================================= */

.arrow {
  width: 10px;
  height: 10px;
  border-right: 2px solid #2E5E99;
  border-bottom: 2px solid #2E5E99;
  transform: rotate(45deg);
  transition: 0.3s ease;
}

.custom-select.open .arrow {
  transform: rotate(-135deg);
}

/* ================================= */
/* CHECKBOXES */
/* ================================= */

.extra-services {
  margin-top: 15px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 20px;
}

.custom-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: #2E5E99;
  cursor: pointer;
}

.custom-checkbox input {
  display: none;
}

/* BOX */
.checkmark {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 1px solid #2E5E99;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* CHECKED BACKGROUND */
.custom-checkbox input:checked + .checkmark {
  background: #2E5E99;
  border-color: #2E5E99;
}

/* PERFECT CENTERED TICK */
.custom-checkbox input:checked + .checkmark::after {
  content: "";
  position: absolute;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -60%) rotate(45deg);
}

/* ================================= */
/* BUTTON (MATCH CALLBACK) */
/* ================================= */

.quote-form button {
  width: 100%;
  margin-top: 25px;
  padding: 16px 32px;
  border-radius: 60px;
  background: #2E5E99;
  color: white;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: none;
  cursor: pointer;

  position: relative;
  overflow: hidden;

  transition: transform .4s cubic-bezier(.16,1,.3,1),
              box-shadow .4s cubic-bezier(.16,1,.3,1);
}

/* SHINE */
.quote-form button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 120%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,0.7),
    transparent
  );
  transition: left .7s ease;
}

.quote-form button:hover::before {
  left: 120%;
}

/* HOVER */
.quote-form button:hover {
  transform: translateY(-6px);
  box-shadow:
    0 45px 120px rgba(0,0,0,0.55),
    0 15px 40px rgba(0,0,0,0.25);
}


/* ========================= */
/* FOOTER */
/* ========================= */

.footer {
    position: relative;
    background: linear-gradient(
        135deg,
        #1f4a80 0%,
        #2E5E99 50%,
        #173a63 100%
    );
    color: white;
    padding: 140px 120px 60px;
    overflow: hidden;
}

/* glow effect */
.footer::before {
    content: "";
    position: absolute;
    top: -250px;
    left: 50%;
    transform: translateX(-50%);
    width: 1400px;
    height: 500px;

    background: radial-gradient(
        ellipse at center,
        rgba(0,0,0,0.25),
        rgba(0,0,0,0.1) 40%,
        transparent 75%
    );

    pointer-events: none;
    z-index: 0;
}

/* ========================= */
/* LAYOUT */
/* ========================= */

.footer-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 120px;

    max-width: 1400px;
    margin: auto;
    position: relative;
    z-index: 2;
}

/* headings */
.footer h4 {
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 20px;
    opacity: 0.9;
}

/* links + text */
.footer p,
.footer a {
    font-size: 14px;
    color: rgba(255,255,255,0.85);
    line-height: 2;
    text-decoration: none;
    transition: all .3s ease;
}

.footer a:hover {
    color: white;
    transform: translateX(4px);
}

/* ========================= */
/* CONTACT */
/* ========================= */

.footer-contact {
    display: flex;
    gap: 80px;
}

.contact-group {
    min-width: 200px;
}

/* ========================= */
/* NAV + SOCIAL */
/* ========================= */

.footer-nav,
.footer-social {
    min-width: 150px;
}

/* ========================= */
/* BOTTOM */
/* ========================= */

.footer-bottom {
    margin-top: 80px;
    padding-top: 25px;
    border-top: 1px solid rgba(255,255,255,0.15);

    display: flex;
    justify-content: space-between;
    align-items: center;

    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

.footer-left p {
    margin: 0;
    font-size: 13px;
    color: rgba(255,255,255,0.7);
}

.footer-right a {
    font-size: 13px;
    color: rgba(255,255,255,0.85);
}

.footer-right a:hover {
    color: white;
}

