/**
 * Contact — executive institutional inquiry gateway
 * Asymmetrical intake · architectural surfaces · executive field system
 */

body.contact-page{
  overflow-x:hidden;
  background-color:var(--bh-bg);
}

body.contact-page main.ct-main{
  padding-bottom:clamp(var(--bh-space-9),11vw,var(--bh-space-10));
}

/* -------------------------------------------------------------------------
   Hero — authority · datum · intentional negative space
   ------------------------------------------------------------------------- */
.ct-hero{
  position:relative;
  border-bottom:var(--bh-hairline) solid var(--bh-line);
  overflow:hidden;
  background:
    linear-gradient(168deg, rgba(247,247,247,0.65) 0%, var(--bh-bg) 52%);
}

.ct-hero__mesh{
  pointer-events:none;
  position:absolute;
  inset:0;
  opacity:var(--bh-geo-strength-faint);
  background-image:
    linear-gradient(90deg, rgba(17,17,17,0.05) 1px, transparent 1px),
    linear-gradient(rgba(17,17,17,0.035) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(105deg, black 0%, black 58%, transparent 92%);
  -webkit-mask-image:linear-gradient(105deg, black 0%, black 58%, transparent 92%);
}

.ct-hero__rail{
  position:absolute;
  left:var(--space-section-x);
  top:clamp(56px,11vh,120px);
  bottom:clamp(40px,8vh,88px);
  width:var(--bh-hairline);
  background:linear-gradient(
    180deg,
    rgba(34,162,159,0.55) 0,
    rgba(34,162,159,0.55) 16%,
    var(--bh-line) 16%,
    var(--bh-line) 100%
  );
  z-index:1;
}

.ct-hero__shell{
  position:relative;
  z-index:2;
  max-width:var(--bh-max-content);
  margin:0 auto;
  padding:clamp(var(--bh-space-9),13vw,calc(var(--bh-unit)*42)) var(--space-section-x)
    clamp(var(--bh-space-8),9vw,var(--bh-space-10));
  padding-left:calc(var(--space-section-x) + var(--bh-space-7));
  max-width:min(52rem, 100%);
}

.ct-hero__kicker{
  margin:0 0 var(--bh-space-5);
  font-size:var(--bh-text-xs);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
  color:var(--bh-color-kicker);
}

.ct-hero__title{
  margin:0 0 clamp(var(--bh-space-7),5vw,var(--bh-space-9));
  font-size:var(--bh-type-hero-display);
  font-weight:600;
  line-height:var(--bh-leading-hero);
  letter-spacing:var(--bh-track-hero-display);
  color:var(--bh-text);
  max-width:14ch;
}

.ct-hero__lead{
  margin:0;
  font-size:var(--bh-type-prose-lede);
  line-height:var(--bh-leading-prose);
  letter-spacing:var(--bh-track-tight);
  color:var(--bh-text-secondary);
  max-width:36ch;
}

.ct-hero__lead--secondary{
  margin-top:clamp(var(--bh-space-5),3vw,var(--bh-space-6));
  font-size:var(--bh-type-prose-lede);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-subtle);
  max-width:32ch;
}

.ct-hero__marker{
  margin-top:clamp(var(--bh-space-8),7vw,var(--bh-space-10));
  font-size:var(--bh-text-xs);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
  color:var(--bh-color-kicker);
}

.ct-hero__marker span{
  display:inline-block;
  padding-bottom:var(--bh-space-2);
  border-bottom:var(--bh-hairline) solid rgba(34,162,159,0.4);
}

/* -------------------------------------------------------------------------
   Intake band — asymmetrical grid · system texture
   ------------------------------------------------------------------------- */
.ct-intake{
  --ct-form-col-min:460px;
  --ct-form-col-max:520px;
  position:relative;
  padding:clamp(var(--bh-space-8),10vw,calc(var(--bh-unit)*34)) 0;
  background:var(--bh-bg-soft);
}

.ct-intake__grid-overlay{
  pointer-events:none;
  position:absolute;
  inset:0;
  opacity:0.45;
  background-image:
    linear-gradient(118deg, transparent 0%, transparent 44%, rgba(34,162,159,0.04) 44.2%, transparent 44.4%);
}

.ct-intake__shell{
  position:relative;
  z-index:1;
  max-width:var(--bh-max-content);
  margin:0 auto;
  padding:0 var(--space-section-x);
}

.ct-intake__grid{
  display:grid;
  /* Left: channels · Right: executive form band */
  grid-template-columns:minmax(0,1.08fr) minmax(var(--ct-form-col-min),var(--ct-form-col-max));
  gap:clamp(var(--bh-space-8),6vw,calc(var(--bh-unit)*30));
  align-items:start;
}

/* Sidebar — philosophy + channel blocks */
.ct-sidebar__head{
  margin-bottom:clamp(var(--bh-space-7),5vw,var(--bh-space-9));
}

.ct-sidebar__title{
  margin:0 0 var(--bh-space-5);
  font-size:var(--bh-type-h2);
  font-weight:600;
  letter-spacing:var(--bh-track-h2);
  line-height:var(--bh-leading-h2);
  color:var(--bh-text);
}

.ct-sidebar__philosophy{
  margin:0;
  font-size:var(--bh-type-prose);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-secondary);
  max-width:38ch;
}

.ct-sidebar__philosophy strong{
  font-weight:600;
  color:var(--bh-text);
}

.ct-channels{
  display:flex;
  flex-direction:column;
  gap:0;
  border:var(--bh-hairline) solid var(--bh-line);
  background:var(--bh-bg);
  box-shadow:inset 0 0 0 var(--bh-hairline) rgba(17,17,17,0.04);
}

.ct-channel{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(var(--bh-space-5),3vw,var(--bh-space-7));
  padding:clamp(var(--bh-space-6),4vw,var(--bh-space-8));
  border-bottom:var(--bh-hairline) solid var(--bh-line);
  align-items:start;
}

.ct-channel:last-child{
  border-bottom:none;
}

.ct-channel__sig{
  font-size:var(--bh-text-xs);
  font-weight:700;
  letter-spacing:var(--bh-letter-schema);
  color:rgba(34,162,159,0.85);
  padding-top:var(--bh-space-1);
}

.ct-channel__label{
  margin:0 0 var(--bh-space-3);
  font-size:var(--bh-text-xs);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
  color:var(--bh-color-kicker);
}

.ct-channel__desc{
  margin:0;
  font-size:var(--bh-text-md);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-secondary);
  max-width:36ch;
}

.ct-channel__value{
  margin:0;
  font-size:var(--bh-type-prose-lede);
  font-weight:500;
  letter-spacing:var(--bh-track-tight);
}

.ct-channel__value a{
  color:var(--bh-text);
  text-decoration:none;
  padding-bottom:0.1em;
  box-shadow:inset 0 -1px 0 0 var(--bh-line-accent);
  background-image:linear-gradient(90deg,var(--bh-accent),var(--bh-accent));
  background-position:0 100%;
  background-repeat:no-repeat;
  background-size:0% 1px;
  transition:var(--bh-link-transition);
}

.ct-channel__value a:hover{
  background-size:100% 1px;
  box-shadow:inset 0 -1px 0 0 transparent;
  color:var(--bh-ink-2);
}

.ct-channel__value a:focus-visible{
  outline:var(--bh-focus-ring);
  outline-offset:var(--bh-focus-ring-offset);
  box-shadow:none;
}

/* Form panel — executive intake (width + padding tokens) */
.ct-form-panel{
  width:100%;
  max-width:var(--ct-form-col-max);
  justify-self:end;
}

.ct-form-panel__frame{
  position:relative;
  padding:
    clamp(56px,5.2vw,70px)
    clamp(52px,4.6vw,64px)
    clamp(56px,5.2vw,70px)
    clamp(52px,4.6vw,64px);
  border:var(--bh-hairline) solid var(--bh-line);
  background:
    linear-gradient(155deg, rgba(255,255,255,0.98) 0%, var(--bh-bg) 58%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 24px 48px rgba(17,17,17,0.04);
}

.ct-form-panel__frame::before{
  content:"";
  position:absolute;
  left:0;
  top:clamp(48px,4.5vw,64px);
  bottom:clamp(48px,4.5vw,64px);
  width:3px;
  background:linear-gradient(
    180deg,
    rgba(34,162,159,0.65) 0,
    rgba(34,162,159,0.65) 22%,
    var(--bh-line-strong) 22%,
    var(--bh-line-strong) 100%
  );
}

.ct-form-panel__head{
  margin-bottom:clamp(var(--bh-space-8),6vw,var(--bh-space-10));
  padding-left:var(--bh-space-6);
}

.ct-form-panel__eyebrow{
  margin:0 0 var(--bh-space-5);
  font-size:var(--bh-type-schema);
  font-weight:600;
  letter-spacing:var(--bh-letter-schema);
  text-transform:uppercase;
  color:var(--bh-color-kicker);
}

.ct-form-panel__title{
  margin:0 0 var(--bh-space-6);
  font-size:var(--bh-type-h2);
  font-weight:600;
  letter-spacing:var(--bh-track-h2);
  line-height:var(--bh-leading-h2);
  color:var(--bh-text);
}

.ct-form-panel__note{
  margin:clamp(var(--bh-space-5),3.5vw,var(--bh-space-6)) 0 0;
  font-size:var(--bh-text-sm);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-subtle);
  max-width:none;
}

.ct-form{
  padding-left:var(--bh-space-6);
  margin-top:clamp(var(--bh-space-2),1.5vw,var(--bh-space-3));
}

.ct-field{
  margin-bottom:clamp(var(--bh-space-6),4vw,var(--bh-space-8));
}

.ct-field:last-of-type{
  margin-bottom:clamp(var(--bh-space-7),5vw,var(--bh-space-9));
}

.ct-field__label{
  display:block;
  margin-bottom:var(--bh-space-4);
  font-size:var(--bh-text-xs);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
  color:var(--bh-text-subtle);
}

.ct-field__opt{
  font-weight:400;
  letter-spacing:0.04em;
  text-transform:none;
  color:var(--bh-text-muted);
}

.ct-field__input{
  display:block;
  width:100%;
  box-sizing:border-box;
  min-height:3.35rem;
  padding:var(--bh-space-5) var(--bh-space-6);
  font-family:inherit;
  font-size:var(--bh-text-md);
  line-height:1.5;
  color:var(--bh-text);
  background-color:var(--bh-bg);
  border:var(--bh-hairline) solid var(--bh-line-strong);
  border-radius:var(--bh-radius-system);
  box-shadow:inset 0 1px 2px rgba(17,17,17,0.04);
  transition:
    border-color var(--bh-duration-med) var(--bh-ease-structural),
    box-shadow var(--bh-duration-med) var(--bh-ease-structural);
}

.ct-field__input::placeholder{
  color:var(--bh-text-muted);
  opacity:0.85;
}

.ct-field__input:hover{
  border-color:rgba(17,17,17,0.22);
}

.ct-field__input:focus{
  outline:none;
  border-color:rgba(34,162,159,0.55);
  box-shadow:
    inset 0 1px 2px rgba(17,17,17,0.04),
    0 0 0 1px rgba(34,162,159,0.2);
}

.ct-field__input:focus-visible{
  outline:var(--bh-focus-ring);
  outline-offset:2px;
}

.ct-field__input--area{
  min-height:clamp(200px,32vh,300px);
  padding-top:var(--bh-space-5);
  padding-bottom:var(--bh-space-5);
  resize:vertical;
  line-height:var(--bh-leading-body);
}

.ct-form__actions{
  margin-top:clamp(var(--bh-space-8),6vw,var(--bh-space-10));
  padding-top:clamp(var(--bh-space-6),4.5vw,var(--bh-space-8));
  border-top:var(--bh-hairline) solid var(--bh-line);
}

.ct-form-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:var(--bh-cta-min);
  padding:var(--bh-cta-py) var(--bh-cta-px);
  background:var(--bh-ink);
  color:var(--bh-surface);
  font-size:var(--bh-text-sm);
  font-weight:var(--bh-cta-font-weight);
  letter-spacing:var(--bh-cta-track);
  text-transform:uppercase;
  border-radius:var(--bh-radius-system);
  border:var(--bh-hairline) solid var(--bh-ink);
  cursor:pointer;
  font-family:inherit;
  box-shadow:none;
  transition:
    background-color var(--bh-duration-med) var(--bh-ease-structural),
    color var(--bh-duration-med) var(--bh-ease-structural),
    border-color var(--bh-duration-med) var(--bh-ease-structural),
    box-shadow var(--bh-duration-med) var(--bh-ease-structural);
}

.ct-form-submit:hover{
  background:var(--bh-surface);
  color:var(--bh-ink);
  box-shadow:var(--bh-shadow-elevate-surface);
}

.ct-form-submit:focus-visible{
  outline:var(--bh-focus-ring);
  outline-offset:var(--bh-focus-ring-offset);
}

.ct-legal{
  margin:clamp(var(--bh-space-9),7vw,var(--bh-space-10)) 0 0;
  padding-top:clamp(var(--bh-space-7),5vw,var(--bh-space-8));
  padding-left:var(--bh-space-6);
  border-top:var(--bh-hairline) solid var(--bh-line);
  font-size:var(--bh-text-xs);
  line-height:var(--bh-leading-body);
  letter-spacing:var(--bh-track-label);
  color:var(--bh-text-muted);
  max-width:none;
}

/* -------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------- */
@media (max-width:1024px){
  .ct-intake__grid{
    grid-template-columns:1fr;
    gap:clamp(var(--bh-space-8),7vw,var(--bh-space-10));
  }

  .ct-form-panel{
    max-width:none;
    justify-self:stretch;
  }
}

@media (max-width:900px){
  .ct-hero__rail{
    display:none;
  }

  .ct-hero__shell{
    padding-left:var(--space-section-x);
  }

  .ct-hero__title{
    max-width:none;
  }

  .ct-form-panel__frame::before{
    display:none;
  }

  .ct-form-panel__head,
  .ct-form{
    padding-left:0;
  }

  .ct-legal{
    padding-left:0;
  }
}

@media (max-width:640px){
  .ct-channel{
    grid-template-columns:1fr;
    gap:var(--bh-space-3);
  }

  .ct-channel__sig{
    padding-top:0;
  }

  .ct-form-panel__frame{
    padding:clamp(40px,9vw,56px) clamp(var(--bh-space-5),6vw,var(--bh-space-8));
  }

  .ct-form-submit{
    width:100%;
    max-width:none;
    justify-content:center;
  }
}
