/* The dark logo interior opens onto the FAQ introduction. */
.pricing-dark-boundary-section.flow-contact-stage {
  --flow-page-shift: 100px;
  --flow-display-offset: clamp(7rem, 12vh, 10rem);
  --flow-scroll-extension: clamp(14rem, 34vh, 22rem);
  overflow: clip;
}
.flow-contact-stage > .container {
  height: calc(100svh + var(--contact-zoom-distance, 220svh) + var(--flow-display-offset) + var(--flow-scroll-extension) + var(--flow-page-shift));
  padding-top: var(--flow-page-shift);
}
.flow-contact-stage .loc-w--has-flow { position: sticky; top: 0; }
.flow-contact-stage .loc-w--has-flow > .footer-flow {
  transform: translate3d(var(--flow-camera-x, 0px), var(--flow-camera-y, 0px), 0) scale(var(--flow-camera-scale, 1)) !important;
  transform-origin: 0 0;
}
.flow-contact-stage .footer-flow,
.footer-flow_first-heading-overlay { opacity: var(--flow-contact-copy-opacity, 1); }
.footer-flow_first-heading-overlay { transform: scale(var(--flow-camera-scale, 1)); transform-origin: 0 0; }
body.flow-contact-logo-active .header-logo_new { opacity: 0 !important; }
body.flow-contact-entered .header-logo { opacity: 0; pointer-events: none; }

.flow-contact-portal {
  position: fixed; inset: 0; z-index: 1300;
  overflow: hidden; pointer-events: none; visibility: hidden;
}
.flow-contact-portal-mark { position: absolute; top: 0; left: 0; transform-origin: 0 0; }
.flow-contact-portal-mark img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.flow-contact-portal-preview {
  position: absolute; overflow: hidden; border-radius: 23% / 22%;
  background: #2b2b2b; opacity: 0;
}

.flow-contact-shell { position: relative; z-index: 10; isolation: isolate; margin-top: -100svh; background: #F3F0E8; height: calc(var(--contact-panel-height, 100svh) + var(--contact-reveal-distance, 180svh)); }
.flow-contact-scene { position: sticky; top: 0; overflow: hidden; background: #F3F0E8; }
.flow-contact-surface { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 20; pointer-events: none; background: #2b2b2b; }
.flow-contact-surface.is-ready { background: transparent; }

.flow-contact-panel {
  position: relative; width: 100%; min-height: 100svh;
  box-sizing: border-box; background: #F3F0E8; color: #252525; pointer-events: auto;
  display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
  align-items: center; gap: 5vw; padding: clamp(48px, 8vh, 100px) 6vw;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
}
.flow-contact-title {
  margin: 0; font-family: "ambroise-francois-std", "Bodoni MT", Didot, serif;
  font-size: clamp(130px, 16vw, 270px); font-weight: 400;
  line-height: 1; letter-spacing: .08em; white-space: nowrap;
  transform: scaleX(.66); transform-origin: left center;
}
.flow-contact-form { width: 100%; min-width: 0; max-width: 780px; margin: 0; }
.flow-contact-form h2 { position: relative; z-index: 9; margin: 0 0 26px; font-family: inherit; font-size: clamp(24px, 2vw, 34px); line-height: 1.4; font-weight: 600; }
.flow-contact-field { display: block; margin: 0 0 20px; }
.flow-contact-field-label { display: flex; align-items: baseline; gap: 18px; font-size: clamp(16px, 1.4vw, 23px); font-weight: 500; line-height: 1.5; }
.flow-contact-required, .flow-contact-optional { font-size: .78em; font-weight: 400; }
.flow-contact-required, .flow-contact-optional { color: #A88A62; }
.flow-contact-form input:not([type="checkbox"]), .flow-contact-form textarea {
  display: block; width: 100%; min-width: 0; margin: 0; padding: 4px 0 7px;
  border: 0; border-bottom: 1px solid #C4BFB5; border-radius: 0;
  background: transparent; color: #252525; box-shadow: none;
  font: inherit; font-size: 18px; line-height: 1.4;
}
.flow-contact-form textarea { min-height: 83px; resize: vertical; font-weight: 400; }
.flow-contact-form input:not([type="checkbox"]) { height: 24px; padding: 0 0 3px; font-weight: 400; }
.flow-contact-form input:not([type="checkbox"]):focus, .flow-contact-form textarea:focus { outline: none; border-color: #3B4942; box-shadow: 0 1px 0 #3B4942; }
.flow-contact-consent { display: flex; align-items: center; gap: 20px; margin: 24px 0 22px; font-size: clamp(14px, 1.2vw, 20px); font-weight: 500; line-height: 1.5; cursor: pointer; }
.flow-contact-consent input { appearance: none; flex: 0 0 28px; width: 28px; height: 28px; margin: 0; border: 1px solid #aaa; border-radius: 0; background: #fff; cursor: pointer; }
.flow-contact-consent input:checked { border-color: #3B4942; background: #3B4942; }
.flow-contact-consent input:checked::after { content: ''; display: block; width: 8px; height: 15px; margin: 3px 0 0 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.flow-contact-consent input:focus-visible, .flow-contact-submit:focus-visible { outline: 2px solid #3B4942; outline-offset: 5px; }
.flow-contact-submit { display: flex; align-items: center; gap: 20px; width: 100%; margin: 0; padding: 16px 32px; border: 0; border-radius: 0; background: #425149; color: #fff; font: inherit; font-size: clamp(19px, 1.7vw, 28px); line-height: 1.4; letter-spacing: .13em; text-align: left; cursor: pointer; transition: background .2s; }
.flow-contact-submit:hover { background: #425149; }
.flow-contact-submit span { font-size: 1.2em; transition: transform .2s; }
.flow-contact-submit:hover span { transform: translateX(5px); }
.flow-contact-note { margin: 12px 0 0; color: #817E74; font-family: inherit; font-size: clamp(12px, 1.1vw, 18px); line-height: 1.5; }
.flow-contact-status { margin: 12px 0 0; font-size: 14px; line-height: 1.6; color: #775132; }
.flow-contact-status:empty { display: none; }

@media (max-width: 767px) {
  .flow-contact-panel { grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 64px 8vw 48px; }
  .flow-contact-title { font-size: clamp(110px, 30vw, 180px); }
  .flow-contact-form h2 { margin-bottom: 28px; }
  .flow-contact-field { margin-bottom: 22px; }
  .flow-contact-consent { gap: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .flow-contact-submit, .flow-contact-submit span { transition: none; }
}
