/* =========================================
   Contact Us Page (Premium)
   File: /assets/css/contact-us-page.css
   Purpose:
   - Contact page layout + form + map + info UI
   - Bottom full-width content section
   - No inline CSS. Performance-first.
   Related PHP:
   - /inc/features/pages/contact-us/templates/contact-us.php
   Linkage/Loader:
   - Enqueued by /inc/features/pages/contact-us/contact-us.php
========================================= */

/* ==== Layout ==== */
.stm-contact-wrap{
  padding:40px 0 70px 0;
}

/* Container class used by template */
.stm-contact.container{
  margin:0 auto;
  padding:0 20px;
}

.stm-contact-title{
  font-size:28px;
  font-weight:700;
  margin:0 0 30px 0;
}

/* alerts */
.stm-contact-alert{
  padding:12px 16px;
  border-radius:6px;
  margin-bottom:20px;
  font-size:14px;
}
.stm-contact-alert.success{
  background:#ecfdf3;
  border:1px solid #16a34a;
  color:#166534;
}
.stm-contact-alert.error{
  background:#fef2f2;
  border:1px solid #dc2626;
  color:#991b1b;
}

/* two-column layout */
.stm-contact-grid{
  display:grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  column-gap:90px;
  align-items:flex-start;
}

/* left: form */
.stm-contact-form{
  font-size:16px;
  padding-right:10px;
}

.stm-contact-form form{
  display:flex;
  flex-direction:column;
  gap:20px;
}

/* first row: Name + Phone */
.stm-form-row-2{
  display:flex;
  flex-wrap:nowrap;
  column-gap:50px;
  row-gap:0;
  margin-bottom:10px;
}

.stm-form-row-2 .stm-form-group{
  flex:1 1 0;
  min-width:0;
}

.stm-contact-form label{
  font-size:14px;
  font-weight:600;
  margin-bottom:6px;
  display:block;
}

.stm-contact-form input[type="text"],
.stm-contact-form input[type="email"],
.stm-contact-form textarea{
  width:100%;
  border:1px solid #d1d5db;
  border-radius:999px;
  padding:13px 18px;
  font-size:14px;
  outline:none;
  background:#fff;
  transition:border-color 0.15s ease, box-shadow 0.15s ease;
}

.stm-contact-form textarea{
  min-height:160px;
  border-radius:18px;
  resize:vertical;
}

.stm-contact-form input[type="text"]:focus,
.stm-contact-form input[type="email"]:focus,
.stm-contact-form textarea:focus{
  border-color:#0ea5e9;
  box-shadow:0 0 0 1px rgba(14,165,233,0.25);
}

.stm-contact-form button[type="submit"]{
  align-self:flex-start;
  border:none;
  border-radius:999px;
  padding:10px 26px;
  font-size:15px;
  font-weight:600;
  background:#0369a1;
  color:#fff;
  cursor:pointer;
}
.stm-contact-form button[type="submit"]:hover{
  background:#075985;
}

/* right: map + info */
.stm-contact-right{
  font-size:14px;
  line-height:1.7;
}

/* map */
.stm-contact-map-wrapper{
  position:relative;
  padding-bottom:56.25%;
  height:0;
  overflow:hidden;
  border-radius:4px;
  margin-bottom:20px;
}

.stm-contact-map-wrapper iframe{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  border:0;
}

/* headings on right */
.stm-contact-info-title{
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  margin:0 0 12px 0;
}

.stm-contact-info-block{
  margin-bottom:18px;
}

.stm-contact-info-block strong{
  display:block;
  font-weight:700;
  margin-bottom:4px;
}

/* =========================================
   Bottom Full-Width Section
========================================= */
.stm-contact-bottom{
  margin-top:80px;
  padding:70px 0;
  background:#f8fafc;
}

.stm-contact-bottom__inner{
  margin:0 auto;
  padding:0 20px;
}

.stm-contact-bottom__title{
  font-size:26px;
  font-weight:700;
  margin:0 0 18px 0;
}

.stm-contact-bottom__text{
  font-size:16px;
  line-height:1.8;
  color:#374151;
}

.stm-contact-bottom__text p{
  margin:0 0 14px 0;
}

/* responsive */
@media (max-width: 900px){
  .stm-contact-grid{
    grid-template-columns:1fr;
    row-gap:40px;
  }
  .stm-form-row-2{
    flex-direction:column;
  }
  .stm-contact-bottom{
    margin-top:60px;
    padding:50px 0;
  }
}
