/* ============================================================
   CONTACT PAGE
============================================================ */
.contact-page{ background:#fafafa; }

/* ================= HERO (Like About) ================= */
.contact-hero{
  position:relative;
  height: calc(100vh - 140px);
  display:flex;
  align-items:center;
  color:#fff;
  overflow:hidden;
  background-image:
    linear-gradient(
      110deg,
      rgba(0,0,0,.86) 0%,
      rgba(0,0,0,.72) 35%,
      rgba(0,0,0,.35) 55%,
      rgba(0,0,0,.12) 70%,
      rgba(0,0,0,.02) 82%,
      transparent 100%
    ),
    url('/images/freepik__assistant__94903.png');
  background-size:cover;
  background-position:right center;
}

.contact-hero-inner{
  max-width:620px;
  padding:80px 0;
  text-align:left;
}

.contact-eyebrow{
  color:#e23b31;
  font-weight:800;
  letter-spacing:.35em;
  font-size:13px;
  margin-bottom:14px;
  text-transform:uppercase;
}

.contact-title{
  font-size:58px;
  line-height:1.08;
  font-weight:900;
  margin-bottom:18px;
  text-shadow:0 10px 35px rgba(0,0,0,.45);
}

.contact-title span{ color:#e23b31; }

.contact-subtitle{
  font-size:19px;
  line-height:1.65;
  color:#e8e8e8;
  max-width:560px;
  margin-bottom:26px;
  text-shadow:0 6px 22px rgba(0,0,0,.35);
}

.contact-hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

/* ============================================================
   SECTION GRID
============================================================ */
.contact-section{
  padding:90px 0 120px;
}

.contact-grid{
  display:grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .95fr);
  gap:42px;
  align-items:start;
}

/* LEFT */
.contact-left{ display:flex; flex-direction:column; gap:22px; }

.contact-cards{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:18px;
}

.contact-card{
  background:#fff;
  border-radius:18px;
  padding:18px 18px;
  display:flex;
  gap:14px;
  align-items:flex-start;
  border:1px solid #eee;
  box-shadow:0 16px 40px rgba(0,0,0,.06);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s, border-color .35s;
}

.contact-card:hover{
  transform: translateY(-8px);
  box-shadow:0 18px 45px rgba(0,0,0,.10);
  border-color:#f0c9c9;
}

.contact-card-icon{
  width:48px; height:48px;
  border-radius:14px;
  background:#fdecec;
  display:grid;
  place-items:center;
  flex-shrink:0;
}

.contact-card-icon img{
  width:22px; height:22px;
  object-fit:contain;
}

.contact-card-label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  color:#e23b31;
  text-transform:uppercase;
  margin-bottom:6px;
}

.contact-card-value{
  display:inline-block;
  font-weight:800;
  color:#111;
  text-decoration:none;
  line-height:1.25;
}

.contact-card-value:hover{ color:#e23b31; }

.contact-card-hint{
  font-size:13px;
  color:#666;
  margin-top:6px;
  line-height:1.45;
}

/* MAP */
.contact-map{
  background:#fff;
  border-radius:20px;
  border:1px solid #eee;
  box-shadow:0 18px 45px rgba(0,0,0,.07);
  overflow:hidden;
}

.contact-map-head{
  padding:18px 18px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}

.contact-map-head h3{
  font-size:16px;
  font-weight:900;
  margin:0;
}

.contact-map-link{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex:0 0 auto;
  width:auto !important;
  min-height:46px !important;
  min-width:230px !important;
  max-width:100%;
  padding:0 28px !important;
  box-sizing:border-box;
  border-radius:999px !important;
  font-size:14px;
  line-height:1 !important;
  font-weight:900;
  color:#fff !important;
  background:linear-gradient(135deg,#ff3d3d 0%,#e40046 100%) !important;
  box-shadow:0 18px 36px rgba(226,59,49,.22) !important;
  text-decoration:none !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  user-select:none;
  -webkit-user-select:none;
}

.contact-map-link:hover{
  text-decoration:none !important;
  transform:translateY(-1px);
  box-shadow:0 18px 34px rgba(226,59,49,.22);
}

.contact-map-link span:first-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap !important;
}

.contact-map-link font{
  display:inline-block !important;
  line-height:1 !important;
  padding:0 !important;
  background:transparent !important;
  white-space:nowrap !important;
}

.contact-map-link-icon{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:20px;
  height:20px;
  font-family:Arial, Helvetica, sans-serif;
  font-size:18px;
  font-weight:900;
  line-height:1;
  transform:translateY(1px);
  pointer-events:none;
}

.contact-map-frame{
  height:360px;
  background:#f6f6f6;
}

.contact-map-frame iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* RIGHT */
.contact-right{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.contact-form-card{
  background:#fff;
  border-radius:24px;
  padding:28px 26px;
  border:1px solid #eee;
  box-shadow:0 18px 50px rgba(0,0,0,.07);
}

.contact-form-eyebrow{
  color:#e23b31;
  font-weight:800;
  letter-spacing:.35em;
  font-size:12px;
  text-transform:uppercase;
  margin-bottom:10px;
}

.contact-form-title{
  font-size:28px;
  font-weight:900;
  margin-bottom:10px;
  line-height:1.2;
}

.contact-form-title span{ color:#e23b31; }

.contact-form-subtitle{
  color:#666;
  line-height:1.65;
  margin-bottom:18px;
  font-size:14.5px;
}

/* FORM */
.contact-form .form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}

.form-field label{
  display:block;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#444;
  margin-bottom:8px;
}

.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid #e6e6e6;
  outline:none;
  background:#fff;
  transition: border-color .2s, box-shadow .2s, transform .2s;
  font-size:14px;
}

.form-field textarea{ resize:vertical; }

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:#f2b1b1;
  box-shadow:0 0 0 4px rgba(226,59,49,.10);
}

.form-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:14px 0 14px;
  color:#666;
  font-size:13px;
  line-height:1.5;
}

.form-consent input{
  margin-top:3px;
}

.form-submit{
  width:100%;
  border:0;
  cursor:pointer;
  padding:14px 16px;
  border-radius:14px;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 16px 40px rgba(226,59,49,.22);
  transition: transform .25s ease, box-shadow .25s ease, background .2s;
}

.form-note{
  margin-top:12px;
  font-size:13px;
  color:#666;
}
.form-note a{
  color:#e23b31;
  font-weight:900;
  text-decoration:none;
}
.form-note a:hover{ text-decoration:underline; }

/* MINI CTA */
.contact-mini-cta{
  background: linear-gradient(90deg, #111, #1a1a1a);
  color:#fff;
  border-radius:22px;
  padding:18px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  box-shadow:0 18px 45px rgba(0,0,0,.20);
}

.mini-cta-icon{
  width:46px;height:46px;border-radius:16px;
  background: rgba(226,59,49,.18);
  display:grid;place-items:center;
  flex-shrink:0;
}
.mini-cta-icon span{
  width:14px;height:14px;border-radius:999px;background:#e23b31;
  box-shadow:0 0 0 6px rgba(226,59,49,.18);
}

.mini-cta-text h3{
  margin:0 0 4px;
  font-size:16px;
  font-weight:900;
}
.mini-cta-text p{
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.4;
}
.contact-success{
  background:#ecfdf5;
  border:1px solid #a7f3d0;
  color:#065f46;
  padding:12px 14px;
  border-radius:14px;
  font-weight:700;
  margin-bottom:14px;
}


/* ============================================================
   REVEAL (IntersectionObserver)
============================================================ */
[data-reveal]{
  opacity:0;
  transform:translateY(36px);
  transition:
    opacity .85s ease,
    transform .85s cubic-bezier(.22,.61,.36,1);
}
[data-reveal].is-visible{
  opacity:1;
  transform:none;
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 992px){
  .contact-hero{ height:auto; padding:70px 0 60px; background-position:center; }
  .contact-title{ font-size:46px; }
  .contact-grid{ grid-template-columns:1fr; }
  .contact-cards{ grid-template-columns:1fr; }
  .contact-form .form-grid{ grid-template-columns:1fr; }
  .contact-map-frame{ height:320px; }
}
/* ============================================================
   CONTACT PAGE RESPONSIVE MEDIA QUERY (Header + Hero fixed)
============================================================ */
@media (max-width: 992px) {

  /* ================= HERO ================= */
  .contact-hero {
      /* 100vh minus topbar (60px) + navbar (48px) */
      height: calc(100vh - 108px);
      padding-top: 20px;           /* optional spacing */
      padding-bottom: 20px;
      background-position: center;
      justify-content: center; /* center content horizontally */
      padding: 0 20px;          /* horizontal padding */
      text-align: center;       /* center text */
  }

  .contact-hero-inner {
      max-width: 100%;
      padding: 20px 0;          /* top & bottom spacing */
      text-align: left;
  }

  .contact-title {
      font-size: 46px;
      line-height: 1.15;
  }

  .contact-subtitle {
      font-size: 17px;
      line-height: 1.5;
      max-width: 100%;
  }

  .contact-hero-actions {
      flex-direction: column;
      gap: 12px;
  }

  /* ================= GRID ================= */
  .contact-grid {
      grid-template-columns: 1fr;
      gap: 30px;
  }

  /* LEFT CARDS */
  .contact-left {
      gap: 18px;
  }

  .contact-cards {
      grid-template-columns: 1fr;
      gap: 14px;
  }

  .contact-card {
      padding: 16px;
      gap: 12px;
  }

  .contact-card-icon {
      width: 42px;
      height: 42px;
  }

  .contact-card-icon img {
      width: 20px;
      height: 20px;
  }

  .contact-card-label {
      font-size: 11px;
      margin-bottom: 4px;
  }

  .contact-card-value {
      font-size: 13px;
  }

  .contact-card-hint {
      font-size: 12px;
  }

  /* MAP */
  .contact-map-head {
      align-items: flex-start;
  }

  .contact-map-link {
      width: 100% !important;
      min-width: 0 !important;
  }

  .contact-map-frame {
      height: 320px;
  }

  /* RIGHT FORM */
  .contact-right {
      gap: 16px;
  }

  .contact-form-card {
      padding: 22px 20px;
  }

  .contact-form-title {
      font-size: 24px;
  }

  .contact-form-subtitle {
      font-size: 13px;
  }

  .contact-form .form-grid {
      grid-template-columns: 1fr;
      gap: 12px;
  }

  /* MINI CTA */
  .contact-mini-cta {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
  }

  .mini-cta-text h3 {
      font-size: 14px;
  }

  .mini-cta-text p {
      font-size: 12px;
  }
}
