
/* WESTEND CONTACT PAGE — refined contact experience */
.contact-page {
  position: relative;
  overflow: hidden;
  padding: 110px 0 90px;
  background:
    radial-gradient(circle at 12% 18%, rgba(43,122,107,.12), transparent 34%),
    radial-gradient(circle at 88% 22%, rgba(217,164,65,.10), transparent 30%),
    linear-gradient(135deg, rgba(244,240,230,.96), rgba(231,226,215,.88));
}
.contact-page::before {
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  opacity:.35;
  background-image:
    linear-gradient(135deg, rgba(18,60,53,.035) 1px, transparent 1px),
    linear-gradient(45deg, rgba(217,164,65,.025) 1px, transparent 1px);
  background-size:72px 72px, 110px 110px;
}
.contact-page .container-modern { position:relative; z-index:1; }
.contact-hero {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.75fr);
  gap:70px;
  align-items:end;
  margin-bottom:52px;
}
.contact-hero h1 {
  max-width:760px;
  margin:16px 0 0;
  font-size:clamp(42px,5.2vw,78px);
  line-height:.98;
  letter-spacing:-.045em;
}
.contact-hero h1 em { font-style:normal; }
.contact-hero-copy {
  max-width:520px;
  color:#566864;
  font-size:18px;
  line-height:1.75;
}
.contact-meta {
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top:24px;
}
.contact-meta span {
  padding:9px 13px;
  border:1px solid rgba(18,60,53,.10);
  border-radius:999px;
  background:rgba(255,253,247,.42);
  font-size:12px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:#365850;
}
.contact-locations {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:18px;
}
.location-card, .contact-form-card {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(18,60,53,.12);
  border-radius:30px;
  background:
    radial-gradient(circle at 100% 0%, rgba(217,164,65,.12), transparent 28%),
    linear-gradient(145deg, rgba(255,253,247,.78), rgba(225,238,233,.70));
  box-shadow:0 22px 60px rgba(18,60,53,.09);
}
.location-card { padding:32px; }
.location-card::after {
  content:"";
  position:absolute; width:180px; height:180px; right:-70px; bottom:-95px;
  border:1px solid rgba(217,164,65,.18); border-radius:50%;
}
.location-index {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:28px;
  color:#9a6e17; font-size:11px; font-weight:800; letter-spacing:.15em;
  text-transform:uppercase;
}
.location-card h2 { margin:0 0 16px; font-size:25px; color:#123c35; }
.location-card p { margin:0 0 22px; color:#586a66; line-height:1.7; }
.location-detail { margin-top:15px; }
.location-detail small, .contact-detail small {
  display:block; margin-bottom:5px; color:#71817d;
  font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}
.location-detail a, .location-detail strong {
  color:#123c35; font-weight:700; text-decoration:none; line-height:1.6;
}
.location-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.contact-main-grid {
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(300px,.65fr);
  gap:18px; align-items:stretch;
}
.contact-form-card { padding:34px; }
.contact-form-card h2 { margin:0 0 8px; color:#123c35; font-size:28px; }
.contact-form-card > p { margin:0 0 24px; color:#60716c; line-height:1.65; }
.contact-form {
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.contact-form label { display:flex; flex-direction:column; gap:7px; color:#365850; font-size:12px; font-weight:800; letter-spacing:.05em; }
.contact-form .full { grid-column:1 / -1; }
.contact-form input, .contact-form textarea, .contact-form select {
  width:100%; border:1px solid rgba(18,60,53,.15); border-radius:14px;
  background:rgba(255,253,247,.65); color:#18231f; padding:13px 14px;
  font:inherit; outline:none; box-sizing:border-box;
}
.contact-form textarea { min-height:125px; resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus {
  border-color:#d9a441; box-shadow:0 0 0 3px rgba(217,164,65,.12);
}
.contact-side {
  display:flex; flex-direction:column; gap:18px;
}
.contact-info-card {
  flex:1; padding:30px; border-radius:30px;
  border:1px solid rgba(18,60,53,.11);
  background:
    linear-gradient(145deg, rgba(18,60,53,.96), rgba(11,40,35,.94)),
    radial-gradient(circle at 85% 15%, rgba(217,164,65,.20), transparent 40%);
  color:#fffdf7; box-shadow:0 22px 60px rgba(18,60,53,.16);
}
.contact-info-card h3 { margin:0 0 22px; font-size:22px; color:#fffdf7; }
.contact-detail { padding:15px 0; border-top:1px solid rgba(255,253,247,.12); }
.contact-detail:first-of-type { border-top:0; padding-top:0; }
.contact-detail a { color:#fffdf7; text-decoration:none; line-height:1.55; }
.contact-detail strong { color:#fffdf7; }
.contact-map {
  min-height:360px; border-radius:30px; overflow:hidden;
  border:1px solid rgba(18,60,53,.12);
  box-shadow:0 22px 60px rgba(18,60,53,.09);
  background:#dfeae5;
}
.contact-map iframe { width:100%; height:100%; min-height:360px; border:0; filter:saturate(.72) contrast(.96); }
@media (max-width: 900px) {
  .contact-hero, .contact-main-grid { grid-template-columns:1fr; gap:28px; }
  .contact-locations { grid-template-columns:1fr; }
}
@media (max-width: 600px) {
  .contact-page { padding:80px 0 60px; }
  .contact-form { grid-template-columns:1fr; }
  .contact-form .full { grid-column:auto; }
  .location-card, .contact-form-card, .contact-info-card, .contact-map { border-radius:22px; }
}
