/* Contact preview: a photograph, a simple form, and helpful answers. */
.a360-contact-page { margin: 0; }
.a360-contact-page [hidden] { display: none !important; }
.a360-contact-page .a360-header.a360-page-header {
  position: absolute;
  inset: 0 0 auto;
  min-height: 112px;
  padding-block: 27px;
  background: transparent;
}
.a360-contact-page .a360-page-header .a360-logo,
.a360-contact-page .a360-page-header .a360-nav > a:not(.a360-btn),
.a360-contact-page .a360-page-header .a360-shell-toggle { color: #fff; }
.a360-contact-page .a360-page-header .a360-logo span { color: #ffffffbf; }
.a360-contact-page .a360-page-header .a360-nav > a[aria-current="page"] { color: #e3cc97; }
.a360-contact-page .a360-page-header .a360-shell-toggle svg { stroke: currentColor; }
.a360-contact-page .a360-skip { z-index: 40; }

.a360-contact-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: 560px;
  background: var(--a360-navy);
  color: #fff;
}
.a360-contact-page .a360-contact-hero-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 48%;
}
.a360-contact-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, #071827b3 0%, #07182735 48%, #0718278c 100%);
}
.a360-contact-hero-content { position: relative; z-index: 2; width: 100%; padding-block: 160px 72px; }
.a360-contact-hero h1 {
  margin: 0;
  color: #fff;
  font: 400 clamp(76px, 8vw, 112px)/1 var(--a360-serif);
  letter-spacing: -.025em;
}

.a360-contact-form-section { padding: 76px 24px 88px; scroll-margin-top: 32px; }
.a360-contact-form-panel { width: 100%; max-width: 720px; margin-inline: auto; }
.a360-contact-form-heading { margin-bottom: 34px; text-align: center; }
.a360-contact-form-heading h2,
.a360-contact-faq h2 {
  margin: 0;
  color: var(--a360-navy);
  font: 500 48px/1.08 var(--a360-serif);
  letter-spacing: -.025em;
}
.a360-contact-form-heading p { margin: 9px 0 0; color: #59666e; font-size: 13px; }
.a360-contact-page .a360-contact-phone {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-left: 5px;
  color: var(--a360-navy);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.a360-contact-phone:hover { text-decoration-thickness: 2px; }
.a360-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 29px 32px;
  margin: 0;
}
.a360-contact-form label {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 7px;
  margin: 0;
  color: var(--a360-navy);
  font: 600 11px/1.6 var(--a360-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.a360-contact-form label::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: #94713a;
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
  transition: transform .24s ease;
}
.a360-contact-form label:focus-within::after { transform: scaleX(1); }
.a360-contact-required { margin-left: 3px; color: #84642e; }
.a360-contact-optional { margin-left: 8px; color: #59666e; font-size: 10px; font-weight: 400; letter-spacing: .02em; text-transform: none; }
.a360-contact-form input:not([type="hidden"]):not(.a360-honeypot),
.a360-contact-form textarea:not(.a360-honeypot) {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 49px;
  margin: 0;
  padding: 9px 0 13px;
  border: 0;
  border-bottom: 1px solid #07182780;
  border-radius: 0;
  background: transparent;
  color: var(--a360-navy);
  box-shadow: none;
  font: 400 16px/1.65 var(--a360-sans);
  letter-spacing: 0;
  text-transform: none;
}
.a360-contact-form textarea:not(.a360-honeypot) { min-height: 122px; resize: vertical; }
.a360-contact-form input::placeholder,
.a360-contact-form textarea::placeholder { color: #899196; opacity: 1; }
.a360-contact-form input:focus::placeholder,
.a360-contact-form textarea:focus::placeholder { color: transparent; opacity: 0; }
.a360-contact-form input:focus,
.a360-contact-form textarea:focus { outline: none; border-color: #94713a; }
.a360-contact-field-wide { grid-column: 1 / -1; }
.a360-contact-form .gform-footer { display: flex; flex-direction: column; }
.a360-contact-page .a360-contact-submit { width: 100%; min-height: 52px !important; }
.a360-contact-page .a360-contact-submit:hover { background: #19394f !important; }
.a360-contact-submit:disabled { cursor: default; opacity: .7; transform: none; }
.a360-contact-status { padding: 19px 22px; border: 1px solid #0718272b; background: var(--a360-stone); color: var(--a360-navy); font-size: 14px; line-height: 1.8; }
.a360-contact-status[data-state="error"] { border-color: #a049354d; background: #f6ede7; color: #793421; }
.a360-contact-status[data-state="success"] { border-color: #4166504d; background: #eef2e9; color: #274536; }
.a360-contact-form[data-contact-state="success"] .a360-contact-status { order: -1; }

.a360-contact-book { padding: 52px 24px; background: var(--a360-navy); color: var(--a360-paper); }
.a360-contact-book-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; max-width: 760px; margin-inline: auto; }
.a360-contact-book h2 { margin: 0; color: var(--a360-paper); font: 500 40px/1.08 var(--a360-serif); letter-spacing: -.025em; }
.a360-contact-book p { margin: 12px 0 0; color: #ffffffbf; font-size: 13px; line-height: 1.8; }
.a360-contact-book .a360-btn { flex: 0 0 auto; min-width: 180px; min-height: 52px !important; }
.a360-contact-page .a360-contact-book .a360-btn:is(:hover, :focus-visible) { background: #e0c58e !important; border-color: #e0c58e !important; }

.a360-contact-page .a360-contact-faq { padding: 74px 24px 82px; background: var(--a360-stone); }
.a360-contact-faq-inner { max-width: 760px; margin-inline: auto; }
.a360-contact-faq h2 { text-align: center; font-size: 44px; }
.a360-contact-faq .a360-faq-list { margin-top: 36px !important; }
.a360-contact-faq summary { gap: 24px; min-height: 70px; padding: 20px 0; font-size: 14px; font-weight: 600; line-height: 1.65; }
.a360-contact-faq-icon { display: block; flex: 0 0 20px; color: #84642e; font: 400 25px/1 var(--a360-sans); text-align: center; transition: transform .24s ease; }
.a360-contact-faq details[open]:not([data-faq-expanded]) .a360-contact-faq-icon,
.a360-contact-faq details[data-faq-expanded="true"] .a360-contact-faq-icon { transform: rotate(45deg); }
.a360-contact-faq details p { max-width: 660px; margin: -1px 40px 24px 0; color: #52616b; font-size: 14px; font-weight: 400; line-height: 1.85; }
.a360-contact-page .a360-contact-faq details p a { color: var(--a360-navy); text-decoration: underline; text-underline-offset: 3px; }
.a360-contact-faq details p a:hover { text-decoration-thickness: 2px; }

@media (max-width: 960px) {
  html:not(.a360-shell-ready) .a360-contact-page .a360-header.a360-page-header {
    position: relative;
    background: var(--a360-navy);
  }
}
@media (max-width: 720px) {
  .a360-contact-hero { min-height: 460px; }
  .a360-contact-hero-content { padding-block: 140px 54px; }
  .a360-contact-hero h1 { font-size: 76px; }
  .a360-contact-form-section { padding-block: 54px 64px; }
  .a360-contact-form-heading h2 { font-size: 42px; }
  .a360-contact-form-heading { margin-bottom: 28px; }
  .a360-contact-book-inner { flex-direction: column; gap: 26px; text-align: center; }
  .a360-contact-book h2 { font-size: 38px; }
  .a360-contact-page .a360-contact-faq { padding-block: 54px 64px; }
  .a360-contact-faq h2 { max-width: 440px; margin-inline: auto; font-size: 40px; }
  .a360-contact-faq .a360-faq-list { margin-top: 28px !important; }
}
@media (max-width: 480px) {
  .a360-contact-page .a360-header.a360-page-header { min-height: 94px; padding-block: 23px; }
  .a360-contact-hero { min-height: 400px; }
  .a360-contact-hero-content { padding-bottom: 44px; }
  .a360-contact-hero h1 { font-size: clamp(62px, 17vw, 76px); }
  .a360-contact-form { grid-template-columns: minmax(0, 1fr); row-gap: 25px; }
  .a360-contact-form-heading h2 { font-size: clamp(36px, 10vw, 42px); }
  .a360-contact-book h2 { font-size: 36px; }
  .a360-contact-book .a360-btn { width: 100%; }
  .a360-contact-faq h2 { font-size: 38px; }
  .a360-contact-faq summary { gap: 16px; }
  .a360-contact-faq details p { margin-right: 22px; font-size: 13px; }
  /* A security challenge still fits its full 300px width on a 320px phone. */
  .a360-contact-form .a360-turnstile-wrap { margin-inline: -24px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .a360-contact-page main *, .a360-contact-page main *::after { transition: none !important; }
}
@media (forced-colors: active) {
  .a360-contact-form input:focus-visible, .a360-contact-form textarea:focus-visible { outline: 2px solid Highlight; outline-offset: 3px; }
  .a360-contact-hero::after { background: Canvas; }
}
