/* Contact page (slug: contact) */

.fp-contact-hero{
  position: relative;
  background: radial-gradient(1200px 500px at 20% 20%, rgba(255,255,255,.08), rgba(255,255,255,0)),
              linear-gradient(180deg, #3d3f43 0%, #2f3134 100%);
  overflow:hidden;
}
.fp-contact-hero__bg{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  opacity:.22;
}
.fp-contact-hero__overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 60%, rgba(0,0,0,0) 100%);
}
.fp-contact-hero__inner{
  position:relative;
  max-width:1200px;
  margin:0 auto;
  padding:72px 16px 68px;
}
@media (min-width:768px){
  .fp-contact-hero__inner{ padding:92px 24px 84px; }
}

.fp-contact-hero__title{
  font-family: Oswald, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 44px;
  line-height: 1;
  color: #fff;
  /* Overrides a global fixes.css rule that sets -webkit-text-fill-color with !important */
  -webkit-text-fill-color: #fff !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.35);
  margin:0;
}
@media (min-width:768px){
  .fp-contact-hero__title{ font-size: 64px; }
}

.fp-contact-hero__subtitle{
  margin-top:18px;
  max-width:720px;
  color: rgba(255,255,255,.88);
  font-size: 16px;
  line-height: 1.65;
}

.fp-contact-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:44px 16px 72px;
}
@media (min-width:768px){
  .fp-contact-wrap{ padding:56px 24px 88px; }
}

.fp-contact-form{
  max-width: 900px;
  margin: -68px auto 0;
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius: 18px;
  padding: 26px 18px;
  box-shadow: 0 18px 48px rgba(0,0,0,.12);
}
@media (min-width:768px){
  .fp-contact-form{ padding: 34px 32px; }
}

.fp-contact-form__hint{
  text-align:center;
  color:#6b7280;
  margin: 0 0 18px;
}
.fp-contact-form__required{
  text-align:center;
  margin: -10px 0 22px;
  color:#d21f26;
  font-size: 12px;
}

/* Generic styling for common form plugins (CF7/WPForms/FluentForms) */
.fp-contact-form :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],select,textarea){
  width:100%;
  border:1px solid #d8dde6;
  background:#f5f6f8;
  border-radius: 8px;
  padding: 11px 12px;
  outline:none;
  font-size: 14px;
}
.fp-contact-form textarea{ min-height:120px; resize:vertical; }
.fp-contact-form :is(input,select,textarea):focus{
  border-color:#d21f26;
  box-shadow: 0 0 0 3px rgba(210,31,38,.15);
  background:#fff;
}

.fp-contact-form label,
.fp-contact-form .wpforms-field-label,
.fp-contact-form .ff-el-input--label{
  display:block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:#374151;
  margin: 0 0 6px;
}

.fp-contact-form :is(.wpcf7-form, form){
  display:grid;
  gap: 14px;
}

.fp-contact-form :is(button,input[type="submit"],.wpcf7-submit,.wpforms-submit,.ff-btn){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:#d21f26;
  color:#fff;
  border:0;
  border-radius: 10px;
  padding: 12px 18px;
  font-weight: 800;
  letter-spacing:.06em;
  text-transform: uppercase;
  cursor:pointer;
}
.fp-contact-form :is(button,input[type="submit"],.wpcf7-submit,.wpforms-submit,.ff-btn):hover{ opacity:.95; }

/* Contact cards */
.fp-contact-cards{
  margin-top: 42px;
  display:grid;
  gap:18px;
}
@media (min-width:768px){
  .fp-contact-cards{ grid-template-columns: repeat(3, 1fr); }
}

.fp-contact-card{
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  background:#fff;
  padding: 18px 18px 16px;
  text-align:center;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

.fp-contact-card__icon{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background:#d21f26;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin: 0 auto 12px;
}
.fp-contact-card__icon svg{ width:22px; height:22px; fill:#fff; }

.fp-contact-card__title{
  font-family: Oswald, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 13px;
  color:#111827;
  margin: 0 0 8px;
}
.fp-contact-card__lines{
  font-size: 12px;
  color:#6b7280;
  line-height: 1.55;
}

/* Native (theme) contact form (no plugin required) */
.fp-contact-form__wrap{width:100%}
.fp-contact-alert{padding:12px 14px;border-radius:10px;margin:0 0 12px 0;font-weight:600}
.fp-contact-alert--success{background:#ecfdf5;color:#065f46}
.fp-contact-alert--error{background:#fef2f2;color:#991b1b}

.fp-contact-native .fp-grid{display:grid;gap:14px}
.fp-contact-native .fp-grid--2{grid-template-columns:1fr}
@media(min-width:768px){.fp-contact-native .fp-grid--2{grid-template-columns:1fr 1fr}}

.fp-contact-native .fp-field{display:flex;flex-direction:column;gap:6px}
.fp-contact-native label{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px;color:#111827}
.fp-contact-native label span{color:#b91c1c}

.fp-contact-native input[type="text"],
.fp-contact-native input[type="email"],
.fp-contact-native input[type="tel"],
.fp-contact-native select,
.fp-contact-native textarea{width:100%;border:1px solid #e5e7eb;border-radius:10px;padding:12px 12px;font-size:14px;outline:none;background:#fff}
.fp-contact-native textarea{resize:vertical;min-height:120px}
.fp-contact-native input:focus,
.fp-contact-native select:focus,
.fp-contact-native textarea:focus{border-color:#fca5a5;box-shadow:0 0 0 3px rgba(239,68,68,.15)}

.fp-checklist{border:1px solid #e5e7eb;border-radius:10px;padding:10px;max-height:180px;overflow:auto;background:#fff;display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:768px){.fp-checklist{grid-template-columns:1fr 1fr}}
.fp-check{display:flex;align-items:center;gap:10px;font-size:14px;color:#111827}
.fp-check input{accent-color:#b91c1c}
.fp-muted{color:#6b7280;font-size:13px}

.fp-actions{display:flex;align-items:center;gap:12px;margin-top:10px}
.fp-btn{background:#b91c1c;color:#fff;border:none;border-radius:10px;padding:12px 16px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.fp-btn:disabled{opacity:.6;cursor:not-allowed}
