.page-contact{
  --contact-card-cut: 22px;
  position: relative;
  background-color: var(--gs-dark);
  color: var(--gs-cream);
  overflow: hidden;
}
.page-contact::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 85% 12%, rgba(0, 119, 182, 0.16), transparent 34%),
    radial-gradient(circle at 8% 80%, rgba(26, 92, 46, 0.28), transparent 40%),
    repeating-linear-gradient(115deg, transparent 0 24px, rgba(192, 192, 192, 0.07) 24px 26px, transparent 26px 52px);
}
.page-contact > *{
  position: relative;
  z-index: 1;
}
.page-contact .gs-container{
  padding-right: var(--gs-space-4);
  padding-left: var(--gs-space-4);
}
.page-contact .contact-hero{
  padding-top: var(--gs-space-6);
  padding-bottom: var(--gs-space-7);
}
.page-contact .contact-hero-grid{
  display: grid;
  gap: var(--gs-space-5);
}
.page-contact .contact-hero-num{
  font-family: var(--gs-font-index);
  font-size: var(--gs-fs-hero);
  font-weight: 200;
  line-height: 0.8;
  color: var(--gs-pitch);
  -webkit-text-stroke: 1px rgba(242, 201, 76, 0.4);
  user-select: none;
}
.page-contact .contact-hero-copy{
  max-width: 42em;
}
.page-contact .contact-hero-kicker{
  margin: 0 0 var(--gs-space-3);
  font-family: var(--gs-font-body);
  font-size: var(--gs-fs-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gs-warning);
}
.page-contact .contact-hero h1{
  margin: 0 0 var(--gs-space-4);
  font-family: var(--gs-font-display);
  font-size: var(--gs-fs-hero);
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-shadow: 0 0 32px rgba(242, 201, 76, 0.35);
}
.page-contact .contact-hero-lead{
  margin: 0;
  font-size: var(--gs-fs-lg);
  line-height: 1.7;
}
.page-contact .contact-hero-actions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--gs-space-3);
  margin-top: var(--gs-space-5);
}
.page-contact .contact-hero-actions .gs-btn-primary{
  box-shadow: 0 0 24px rgba(230, 57, 70, 0.45);
}
.page-contact .contact-channels{
  padding-top: var(--gs-space-6);
  padding-bottom: var(--gs-space-8);
}
.page-contact .contact-channels-grid{
  display: grid;
  gap: var(--gs-space-6);
}
.page-contact .contact-side{
  padding: var(--gs-space-5);
  background: linear-gradient(155deg, rgba(26, 92, 46, 0.28), rgba(13, 17, 23, 0.8));
  border-left: 4px solid var(--gs-warning);
  align-self: start;
}
.page-contact .contact-side-label{
  margin: 0 0 var(--gs-space-3);
  font-size: var(--gs-fs-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gs-warning);
}
.page-contact .contact-side-list{
  list-style: none;
  margin: 0 0 var(--gs-space-4);
  padding: 0 0 var(--gs-space-4);
  border-bottom: 1px solid rgba(192, 192, 192, 0.25);
  display: grid;
  gap: var(--gs-space-3);
}
.page-contact .contact-side-list li{
  display: grid;
  gap: 2px;
  font-size: var(--gs-fs-sm);
  overflow-wrap: anywhere;
}
.page-contact .contact-side-list li span{
  font-size: var(--gs-fs-xs);
  color: var(--gs-stone);
  letter-spacing: 0.08em;
}
.page-contact .contact-side-facts{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--gs-space-3);
  margin: 0;
}
.page-contact .contact-side-facts div{
  display: grid;
  gap: 2px;
}
.page-contact .contact-side-facts dt{
  font-size: var(--gs-fs-xs);
  color: var(--gs-stone);
}
.page-contact .contact-side-facts dd{
  margin: 0;
  font-family: var(--gs-font-display);
  font-size: var(--gs-fs-lg);
  color: var(--gs-warning);
}
.page-contact .contact-chapter-head{
  display: flex;
  align-items: center;
  gap: var(--gs-space-3);
  padding-bottom: var(--gs-space-3);
  margin-bottom: var(--gs-space-5);
  border-bottom: 2px solid var(--gs-pitch);
}
.page-contact .contact-chapter-num{
  font-family: var(--gs-font-index);
  font-size: var(--gs-fs-2xl);
  font-weight: 300;
  color: var(--gs-warning);
}
.page-contact .contact-chapter-head h2{
  margin: 0;
  font-family: var(--gs-font-display);
  font-size: var(--gs-fs-2xl);
  letter-spacing: 0.02em;
}
.page-contact .contact-channel-list{
  display: grid;
  gap: var(--gs-space-5);
}
.page-contact .contact-channel-card{
  position: relative;
  padding: var(--gs-space-5) var(--gs-space-5) calc(var(--gs-space-5) + var(--contact-card-cut));
  background: linear-gradient(150deg, rgba(26, 92, 46, 0.16), rgba(13, 17, 23, 0.92));
  border: 1px solid rgba(192, 192, 192, 0.3);
  display: grid;
  gap: var(--gs-space-4);
}
.page-contact .contact-channel-card::before{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: var(--contact-card-cut);
  height: var(--contact-card-cut);
  background: linear-gradient(225deg, var(--gs-dark) 0 49%, rgba(242, 201, 76, 0.85) 50% 100%);
}
.page-contact .contact-channel-card--email{
  border-left: 4px solid var(--gs-warning);
}
.page-contact .contact-channel-card--phone{
  border-left: 4px solid var(--gs-red);
}
.page-contact .contact-channel-card--address{
  border-left: 4px solid var(--gs-blue);
}
.page-contact .contact-channel-info h3{
  margin: 0 0 var(--gs-space-2);
  font-family: var(--gs-font-display);
  font-size: var(--gs-fs-xl);
}
.page-contact .contact-channel-desc{
  margin: 0 0 var(--gs-space-4);
  line-height: 1.65;
}
.page-contact .contact-channel-value{
  display: block;
  margin-bottom: var(--gs-space-3);
  font-family: var(--gs-font-display);
  font-size: clamp(1.3rem, 3.2vw, 2rem);
  line-height: 1.2;
  text-shadow: 0 0 18px rgba(0, 119, 182, 0.55);
  overflow-wrap: anywhere;
}
.page-contact .contact-channel-meta{
  margin: 0;
  font-size: var(--gs-fs-sm);
  color: var(--gs-stone);
  line-height: 1.6;
}
.page-contact .contact-channel-media{
  min-width: 0;
}
.page-contact .contact-channel-media img{
  display: block;
  border: 1px solid rgba(192, 192, 192, 0.28);
}
.page-contact .contact-agent-img{
  width: 100%;
  height: auto;
  max-width: 320px;
}
.page-contact .contact-map-img{
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center;
}
.page-contact .contact-feedback{
  padding-top: var(--gs-space-6);
  padding-bottom: var(--gs-space-8);
}
.page-contact .contact-feedback-grid{
  display: grid;
  gap: var(--gs-space-6);
}
.page-contact .contact-feedback-note > p{
  line-height: 1.7;
}
.page-contact .contact-feedback-note .contact-feedback-tip{
  font-size: var(--gs-fs-sm);
  color: var(--gs-stone);
}
.page-contact .contact-form-wrap{
  padding: var(--gs-space-5);
  background: linear-gradient(160deg, rgba(0, 119, 182, 0.14), rgba(13, 17, 23, 0.95));
  border: 1px solid rgba(192, 192, 192, 0.3);
}
.page-contact .contact-form{
  display: grid;
  gap: var(--gs-space-4);
}
.page-contact .contact-form-field{
  display: grid;
  gap: var(--gs-space-2);
}
.page-contact .contact-form-field label{
  font-size: var(--gs-fs-sm);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--gs-warning);
}
.page-contact .contact-form-field input,
.page-contact .contact-form-field select,
.page-contact .contact-form-field textarea{
  width: 100%;
  box-sizing: border-box;
  padding: var(--gs-space-3) var(--gs-space-4);
  font-family: var(--gs-font-body);
  font-size: var(--gs-fs-md);
  color: var(--gs-cream);
  background-color: var(--gs-dark);
  border: 1px solid rgba(192, 192, 192, 0.4);
  border-radius: 2px;
  transition: border-color var(--gs-dur) var(--gs-ease), box-shadow var(--gs-dur) var(--gs-ease);
}
.page-contact .contact-form-field input:focus,
.page-contact .contact-form-field select:focus,
.page-contact .contact-form-field textarea:focus{
  outline: none;
  border-color: var(--gs-blue);
  box-shadow: 0 0 0 3px rgba(0, 119, 182, 0.24);
}
.page-contact .contact-form-field textarea{
  min-height: 150px;
  resize: vertical;
}
.page-contact .contact-form-field select option{
  background-color: var(--gs-dark);
  color: var(--gs-cream);
}
.page-contact .contact-form-field input::placeholder,
.page-contact .contact-form-field textarea::placeholder{
  color: var(--gs-stone);
}
.page-contact .contact-form-submit{
  display: grid;
  gap: var(--gs-space-3);
}
.page-contact .contact-form-submit .gs-btn-primary{
  justify-self: start;
  box-shadow: 0 0 24px rgba(230, 57, 70, 0.45);
}
.page-contact .contact-form-hint{
  margin: 0;
  font-size: var(--gs-fs-sm);
  color: var(--gs-stone);
}
.page-contact .contact-form-done{
  margin: 0;
  padding: var(--gs-space-4);
  border-left: 4px solid var(--gs-moss);
  background: rgba(107, 142, 35, 0.16);
  line-height: 1.6;
}
.page-contact .contact-form-done[hidden]{
  display: none;
}
.page-contact .contact-notice{
  padding-top: var(--gs-space-6);
  padding-bottom: var(--gs-space-9);
}
.page-contact .contact-notice-grid{
  display: grid;
  gap: var(--gs-space-5);
}
.page-contact .contact-notice-head{
  display: flex;
  align-items: center;
  gap: var(--gs-space-3);
}
.page-contact .contact-notice-head h2{
  margin: 0;
  font-family: var(--gs-font-display);
  font-size: var(--gs-fs-2xl);
}
.page-contact .contact-notice-body{
  padding: var(--gs-space-5);
  background: rgba(26, 92, 46, 0.13);
  border: 1px solid rgba(192, 192, 192, 0.3);
}
.page-contact .contact-notice-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--gs-space-3);
}
.page-contact .contact-notice-list li{
  position: relative;
  padding-left: 1.4rem;
  line-height: 1.65;
}
.page-contact .contact-notice-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.58em;
  width: 9px;
  height: 9px;
  background: var(--gs-warning);
  transform: rotate(45deg);
}
.page-contact .contact-notice-list a{
  color: var(--gs-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
@media (min-width: 960px){
  .page-contact .contact-hero-grid{
    grid-template-columns: minmax(10rem, 0.9fr) 3fr;
    align-items: end;
  }
  .page-contact .contact-hero-num{
    text-align: right;
  }
  .page-contact .contact-channels-grid{
    grid-template-columns: minmax(15rem, 0.8fr) 2.6fr;
    align-items: start;
  }
  .page-contact .contact-feedback-grid{
    grid-template-columns: 1fr 1.6fr;
    align-items: start;
  }
  .page-contact .contact-notice-grid{
    grid-template-columns: 1fr 2fr;
    align-items: start;
  }
  .page-contact .contact-channel-list{
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
  }
  .page-contact .contact-channel-card--email{
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) 340px;
    align-items: center;
  }
  .page-contact .contact-agent-img{
    max-width: 100%;
  }
  .page-contact .contact-map-img{
    height: 320px;
  }
}
