/* The CTA continues the site's identity through type and a single contact row. */
.closing.closing-editorial {
  container-type: inline-size;
  padding: clamp(56px, 6vw, 104px) 24px 64px;
  background: var(--paper);
  border-radius: 0;
  text-align: left;
  color: var(--green);
}
.closing-editorial > .closing-eyebrow {
  margin: 0 0 38px;
  color: #717b6a;
  font-size: 14px;
  line-height: 1.5;
}
.closing-composition {
  display: grid;
  grid-template-columns: minmax(0, 2.35fr) minmax(0, 1fr);
  align-items: end;
  gap: clamp(32px, 4vw, 72px);
}
.closing-editorial h2 {
  margin: 0;
  font-size: clamp(64px, 9.1cqw, 152px);
  font-weight: 550;
  line-height: .98;
  letter-spacing: -.065em;
}
.closing-editorial h2 > span { display: block; white-space: nowrap; }
.closing-editorial .closing-title-offset { margin-top: 12px; text-align: right; }
.closing-title-text { display: block; }
.closing-copy {
  margin: 0 0 9px;
  color: #717b6a;
  font-size: clamp(17px, 1.6cqw, 26px);
  line-height: 1.4;
  letter-spacing: -.025em;
}
.closing-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(24px, 3vw, 48px);
  margin-top: clamp(56px, 6vw, 96px);
}
.closing-field { display: block; min-width: 0; margin: 0; }
.closing-field input {
  display: block;
  width: 100%;
  min-height: 64px;
  padding: 18px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #8b9482;
  border-radius: 0;
  color: var(--green);
  font-size: 17px;
  line-height: 1.5;
  transition: border-color .2s;
}
.closing-field input::placeholder { color: #717b6a; opacity: 1; }
.closing-field input:focus {
  outline: none;
  border-bottom-color: var(--green);
  box-shadow: 0 1px 0 var(--green);
}
.closing-field input:focus-visible { outline: 2px solid var(--olive); outline-offset: 5px; }
.closing-editorial .closing-submit {
  min-height: 64px;
  padding: 19px 24px;
  gap: 48px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* One architectural reveal: two type masks, then the contact lines draw in. */
.has-closing-motion .closing-title-mask { clip-path: inset(-.16em -.04em -.14em); }
.has-closing-motion:not(.is-revealed) .closing-title-text { transform: translateY(125%); }
.has-closing-motion:not(.is-revealed) .closing-eyebrow,
.has-closing-motion:not(.is-revealed) .closing-copy,
.has-closing-motion:not(.is-revealed) .closing-field input,
.has-closing-motion:not(.is-revealed) .closing-submit { opacity: 0; }
.has-closing-motion .closing-field { position: relative; }
.has-closing-motion .closing-field input { border-bottom-color: transparent; }
.has-closing-motion .closing-field::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #8b9482;
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}
.has-closing-motion.is-revealed .closing-title-text {
  animation: closing-type-in 1.05s cubic-bezier(.16, 1, .3, 1) both;
}
.has-closing-motion.is-revealed .closing-title-offset .closing-title-text { animation-delay: .12s; }
.has-closing-motion.is-revealed .closing-eyebrow { animation: closing-fade-in .65s ease-out both; }
.has-closing-motion.is-revealed .closing-copy { animation: closing-fade-in .65s ease-out .25s both; }
.has-closing-motion.is-revealed .closing-field input { animation: closing-fade-in .55s ease-out .4s both; }
.has-closing-motion.is-revealed .closing-field::after {
  animation: closing-rule-in .85s cubic-bezier(.16, 1, .3, 1) .35s both;
}
.has-closing-motion.is-revealed .closing-field:nth-child(2)::after { animation-delay: .45s; }
.has-closing-motion.is-revealed .closing-submit { animation: closing-fade-in .6s ease-out .5s both; }
.closing-editorial .closing-submit .button-dot {
  width: 6px;
  transition: transform .35s cubic-bezier(.16, 1, .3, 1);
}
.closing-editorial .closing-submit:active { transform: translateY(1px); }
@media (hover: hover) and (pointer: fine) {
  .closing-editorial .closing-submit:hover .button-dot,
  .closing-editorial .closing-submit:focus-visible .button-dot { transform: scaleX(3); }
}
@keyframes closing-type-in {
  from { transform: translateY(125%); }
  to { transform: translateY(0); }
}
@keyframes closing-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes closing-rule-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.closing-motion-instant .closing-title-text,
.closing-motion-instant .closing-eyebrow,
.closing-motion-instant .closing-copy,
.closing-motion-instant .closing-field input,
.closing-motion-instant .closing-submit,
.closing-motion-instant .closing-field::after {
  animation: none !important;
  transition: none !important;
  transform: none !important;
  opacity: 1 !important;
}
@media (max-width: 1000px) {
  .closing-composition { grid-template-columns: minmax(0, 2.25fr) minmax(0, 1fr); gap: 28px; }
  .closing-editorial h2 { font-size: 9cqw; }
  .closing-copy { font-size: 16px; }
  .closing-editorial .closing-submit { gap: 24px; padding-inline: 20px; }
  .closing-form { gap: 24px; }
}
@media (max-width: 760px) {
  .closing.closing-editorial { padding: 48px 12px 40px; }
  .closing-editorial > .closing-eyebrow { margin-bottom: 30px; font-size: 12px; }
  .closing-composition { display: block; }
  .closing-editorial h2 { font-size: clamp(42px, 14.3cqw, 96px); line-height: 1.02; }
  .closing-editorial .closing-title-offset { margin-top: 8px; }
  .closing-copy { margin: 28px 0 0; font-size: 16px; line-height: 1.5; }
  .closing-form { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 28px; }
  .closing-field input { min-height: 60px; padding: 17px 0; font-size: 16px; }
  .closing-editorial .closing-submit { width: 100%; min-height: 60px; margin-top: 8px; padding: 18px 20px; font-size: 14px; }
  .has-closing-motion.is-revealed .closing-title-text { animation-duration: .8s; }
  .has-closing-motion.is-revealed .closing-title-offset .closing-title-text { animation-delay: .08s; }
  .has-closing-motion.is-revealed .closing-submit { animation-delay: .3s; }
}
@media (prefers-reduced-motion: reduce) {
  .closing-title-text,
  .closing-editorial .closing-eyebrow,
  .closing-editorial .closing-copy,
  .closing-editorial .closing-field input,
  .closing-editorial .closing-submit,
  .closing-editorial .closing-field::after,
  .closing-editorial .closing-submit .button-dot {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
