/* Contact — standalone page (contact.html). Same shell pattern as
   faq.css's .faq-page / blog.css's .blog-page: a centered content
   column under the shared header/footer. */
:root{
  --blue-dark:#0f3d28;
  --blue-mid:#1f7a52;
  --blue-bright:#27935f;
  --accent-orange:#f39c1f;
}

.contact-page{max-width:1400px;margin:0 auto;padding:32px 16px 64px;}
.contact-page .breadcrumb{margin:0 0 18px;font-size:13px;color:#6b8f7e;}
.contact-page .breadcrumb a{color:var(--blue-mid);text-decoration:none;font-weight:500;}
.contact-page .breadcrumb a:hover{text-decoration:underline;}

.contact-page-header{margin-bottom:30px;}
.contact-page-title{margin:0 0 10px;font-size:32px;font-family:var(--font-heading);font-weight:700;color:var(--blue-dark);}
.contact-page-intro{margin:0;max-width:620px;font-size:15px;line-height:1.6;color:#4a6d5c;font-weight:400;}

/* ---------- Contact method cards ---------- */
.contact-methods{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:14px;
  margin:28px 0 40px;
}
.contact-method{
  display:flex;
  align-items:flex-start;
  gap:14px;
  background:#fff;
  border-radius:22px;
  padding:20px 22px;
  box-shadow:0 4px 14px -9px rgba(15,31,61,.28);
  text-decoration:none;
  transition:box-shadow .16s ease, transform .16s ease;
}
.contact-method:hover{box-shadow:0 8px 20px -10px rgba(15,31,61,.32);transform:translateY(-1px);}
.contact-method-icon{
  flex:0 0 auto;
  width:42px;height:42px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  color:var(--blue-mid);
}
.contact-method-icon svg{width:20px;height:20px;}
.contact-method-title{margin:0 0 3px;font-size:14px;font-family:var(--font-heading);font-weight:600;color:var(--blue-dark);}
.contact-method-detail{margin:0;font-size:13px;color:#4a6d5c;font-weight:400;}

/* ---------- Contact form ---------- */
.contact-form-section{
  background:#fff;
  border-radius:26px;
  padding:32px 34px 34px;
  box-shadow:0 4px 14px -9px rgba(15,31,61,.28);
}
.contact-form-title{margin:0 0 4px;font-size:19px;font-family:var(--font-heading);font-weight:700;color:var(--blue-dark);}
.contact-form-sub{margin:0 0 22px;font-size:13px;color:#6b8f7e;font-weight:400;}

.contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.contact-field{margin-bottom:16px;}
.contact-field label{display:block;margin-bottom:8px;font-size:13px;font-family:var(--font-heading);font-weight:600;color:#0f3d28;}
.contact-field label .req{color:var(--accent-orange);margin-left:1px;}
.contact-field input,
.contact-field select,
.contact-field textarea{
  width:100%;
  padding:14px 16px;
  border-radius:14px;
  border:1.5px solid #dbe9e2;
  background:#f2f7f9;
  font-family:inherit;
  font-size:14px;
  font-weight:400;
  color:#0f3d28;
  transition:border-color .16s ease, box-shadow .16s ease;
}
.contact-field input:hover,
.contact-field select:hover,
.contact-field textarea:hover{border-color:#bcd8cb;}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus{
  outline:none;
  border-color:var(--blue-bright);
  box-shadow:0 0 0 3px rgba(35,146,111,.15);
}
.contact-field input::placeholder,
.contact-field textarea::placeholder{color:#6b9c84;}
.contact-field textarea{resize:vertical;min-height:120px;}

/* ---------- Subject dropdown — a native <select>'s open list can't be
   restyled (Chrome/Windows renders it with the flat OS highlight seen
   in the screenshot, clashing with the site's palette), so this uses
   the same custom trigger+list component as the Country/Service
   filters elsewhere on the site. ---------- */
.contact-dd{position:relative;}
.contact-dd-trigger{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 16px;
  border-radius:14px;
  border:none;
  background:#f2f7f9;
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  color:#0f3d28;
  text-align:left;
  cursor:pointer;
  transition:box-shadow .14s ease;
}
.contact-dd.is-placeholder .contact-dd-trigger-text{color:#6b9c84;font-weight:400;}
.contact-dd-chevron{width:16px;height:16px;flex:0 0 auto;color:var(--blue-mid);transition:transform .18s ease;}
.contact-dd.is-open .contact-dd-chevron{transform:rotate(180deg);}

.contact-dd-list{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  right:0;
  background:#fff;
  border-radius:16px;
  padding:8px;
  box-shadow:0 14px 30px -12px rgba(15,31,61,.4);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
  z-index:20;
  max-height:280px;
  overflow-y:auto;
}
.contact-dd.is-open .contact-dd-list{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:opacity .16s ease, transform .16s ease, visibility 0s;
}
.contact-dd-item{
  padding:11px 14px;
  border-radius:10px;
  font-size:14px;
  font-weight:500;
  color:#0f3d28;
  cursor:pointer;
  transition:background .14s ease, color .14s ease;
}
.contact-dd-item:hover,
.contact-dd-item.is-active{
  background:linear-gradient(135deg, #145c3a, #0f3d28);
  color:#fff;
}

.contact-dd-error{
  display:none;
  margin:8px 0 0;
  font-size:12px;
  font-weight:400;
  color:#c0392b;
}
.contact-dd.has-error .contact-dd-trigger{box-shadow:0 0 0 2px #e0736b;}
.contact-dd.has-error + .contact-dd-error{display:block;}

.contact-submit{
  padding:15px 30px;
  border-radius:999px;
  border:none;
  background:var(--accent-orange);
  color:#fff;
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:background .16s ease;
}
.contact-submit:hover{background:#36b97a;}

.contact-form-success{
  display:none;
  align-items:flex-start;
  gap:14px;
  padding:22px 24px;
  border-radius:20px;
  background:#eafaf2;
}
.contact-form-success.is-visible{display:flex;}
.contact-form-success-icon{
  flex:0 0 auto;
  width:36px;height:36px;
  border-radius:50%;
  background:var(--blue-mid);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.contact-form-success-icon svg{width:18px;height:18px;}
.contact-form-success h3{margin:0 0 4px;font-size:15px;font-family:var(--font-heading);font-weight:600;color:var(--blue-dark);}
.contact-form-success p{margin:0;font-size:13px;color:#3a7a5b;font-weight:400;}

.contact-faq-note{
  margin-top:28px;
  font-size:13px;
  color:#6b8f7e;
  text-align:center;
  font-weight:400;
}
.contact-faq-note a{color:var(--blue-mid);font-weight:700;text-decoration:none;}
.contact-faq-note a:hover{text-decoration:underline;}

@media (max-width:640px){
  .contact-page-title{font-size:26px;}
  .contact-form-section{padding:26px 20px 28px;}
  .contact-form-row{grid-template-columns:1fr;}

  /* Three narrow cards side by side (icon stacked above the text)
     instead of the desktop's wider one-per-row layout (icon beside the
     text) — matches a reference design the client shared for this
     breakpoint specifically. */
  .contact-methods{grid-template-columns:repeat(3, 1fr);gap:8px;margin:22px 0 28px;}
  .contact-method{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:14px 10px;
    border-radius:18px;
  }
  .contact-method-icon{width:36px;height:36px;border-radius:12px;}
  .contact-method-icon svg{width:17px;height:17px;}
  .contact-method-title{font-size:12px;margin-bottom:2px;}
  .contact-method-detail{font-size:10.5px;line-height:1.35;}
}
