.phead--contact { padding: calc(var(--header-h) + 72px) var(--pad) 64px; border-bottom: none; }
.phead--contact .phead__inner {
  max-width: var(--max); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: end;
}
.phead--contact .phead__title {
  font-weight: 800; font-size: clamp(44px, 6vw, 100px);
  line-height: 0.98; letter-spacing: -0.03em;
  margin: 12px 0 0;
}
.phead--contact .phead__sub {
  font-size: var(--fs-lede); color: var(--muted);
  max-width: 480px; line-height: 1.5;
  align-self: end; padding-bottom: 6px;
}

.contact-wrap {
  padding: 0 var(--pad) 120px;
  max-width: var(--max); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start;
}

.contact-aside {
  padding-top: 8px;
  position: sticky; top: calc(var(--header-h) + 32px);
}
.contact-aside__items { display: flex; flex-direction: column; gap: 40px; margin-top: 40px; }
.contact-aside__item {}
.contact-aside__label {
  font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 8px;
}
.contact-aside__val { font-size: 15px; font-weight: 500; color: var(--ink); }
.contact-aside__val a { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; transition: text-decoration-color .2s, color .2s; }
.contact-aside__val a:hover { color: var(--forest); text-decoration-color: var(--forest); }
.contact-aside__note { font-size: 13px; color: var(--muted); margin-top: 4px; }

.contact-aside__promise {
  margin-top: 48px; padding: 24px; border: 1px solid var(--line);
  border-radius: 12px; background: var(--paper);
}
.contact-aside__promise p { font-size: 14px; color: var(--ink-2); line-height: 1.55; }
.contact-aside__promise strong { color: var(--ink); }

.ctimeline {
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.ctimeline__h {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 20px;
}
.ctimeline__list { list-style: none; display: flex; flex-direction: column; gap: 0; padding: 0; margin: 0; }
.ctimeline__step {
  display: grid; grid-template-columns: 44px 1fr; gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
  position: relative;
}
.ctimeline__step:last-child { border-bottom: none; }
.ctimeline__step::before {
  content: ""; position: absolute; left: 16px; top: 36px; bottom: -2px;
  width: 1px; background: var(--line);
}
.ctimeline__step:last-child::before { display: none; }
.ctimeline__n {
  font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.08em;
  color: var(--forest);
  width: 32px; height: 32px;
  border: 1px solid var(--forest);
  border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bg);
  position: relative; z-index: 1;
}
.ctimeline__t { font-weight: 700; font-size: 15px; color: var(--ink); letter-spacing: -0.012em; }
.ctimeline__d { font-size: 13px; color: var(--muted); line-height: 1.5; margin-top: 4px; }

.contact-form-wrap {}

.cf__heading {
  font-weight: 800; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.05;
  letter-spacing: -0.022em; margin-bottom: 28px; text-wrap: balance;
}
.cf__heading em { color: var(--forest); font-style: normal; }

.cf {
  display: flex; flex-direction: column; gap: 0;
}

.cf__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }

.cf__field {
  display: flex; flex-direction: column;
  padding: 20px 0; border-bottom: 1px solid var(--line);
  position: relative;
}
.cf__field:first-child { border-top: 1px solid var(--line); }
.cf__row .cf__field:first-child { border-top: 1px solid var(--line); }
.cf__row .cf__field:last-child { border-top: 1px solid var(--line); }

.cf__label {
  font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--muted);
  margin-bottom: 10px; transition: color .2s;
}
.cf__field:focus-within .cf__label { color: var(--forest); }

.cf__input,
.cf__select,
.cf__textarea {
  background: none; border: none; outline: none;
  font: inherit; font-size: 16px; color: var(--ink);
  padding: 0; width: 100%;
  transition: color .2s;
}
.cf__input::placeholder,
.cf__textarea::placeholder { color: var(--muted); opacity: 0.5; }
.cf__select { cursor: pointer; appearance: none; -webkit-appearance: none; }
.cf__select option { background: var(--bg); color: var(--ink); }

.cf__textarea {
  resize: none; min-height: 120px; line-height: 1.55;
}

.cf__select-wrap { position: relative; }
.cf__select-wrap::after {
  content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 14px; height: 14px; pointer-events: none;
  background: var(--muted);
  clip-path: polygon(0 30%, 50% 80%, 100% 30%);
}

.cf__opt {
  position: absolute; top: 20px; right: 0;
  font-family: var(--f-mono); font-size: 10px; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted); opacity: 0.6;
}

.cf__honeypot { display: none; }

.cf__conditional { display: none; }
.cf__conditional.is-visible {
  display: block;
  margin-top: 12px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.6);
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: 14px;
  animation: cf-cond-in .25s var(--ease) both;
}
.cf__conditional.is-visible:focus {
  border-color: var(--forest);
  box-shadow: 0 0 0 3px rgba(127,216,159,0.18);
  background: #fff;
}
@keyframes cf-cond-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: none; }
}

.cf__radios {
  display: flex; flex-wrap: wrap; gap: 8px;
  padding: 0; margin: 0; border: 0;
}
.cf__radio {
  position: relative;
}
.cf__radio input {
  position: absolute; opacity: 0; pointer-events: none;
  width: 0; height: 0;
}
.cf__radio-label {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,0.4);
  font-size: 13px; font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--ink-2);
  cursor: pointer;
  transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
.cf__radio-label:hover {
  border-color: var(--ink); color: var(--ink);
  transform: translateY(-1px);
  background: rgba(255,255,255,0.7);
}
.cf__radio input:focus-visible + .cf__radio-label {
  outline: 2px solid var(--forest); outline-offset: 2px;
}
.cf__radio input:checked + .cf__radio-label {
  background: var(--forest); color: #fff; border-color: var(--forest);
  box-shadow: 0 6px 20px -10px rgba(42,74,58,0.55), 0 0 0 3px rgba(127,216,159,0.18);
}
.cf__radio input:checked + .cf__radio-label:hover {
  background: var(--forest-2); border-color: var(--forest-2);
}

@media (max-width: 640px) {
  .cf__radio-label { padding: 8px 14px; font-size: 12.5px; }
}

.cf__field--toggle { padding-top: 22px; padding-bottom: 22px; }
.cf__toggle-row {
  display: flex; align-items: flex-start; gap: 14px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.cf__toggle-row input[type="checkbox"] {
  position: absolute; opacity: 0; pointer-events: none;
  width: 0; height: 0;
}
.cf__toggle {
  position: relative; flex-shrink: 0;
  width: 38px; height: 22px;
  border-radius: 999px;
  background: rgba(14,14,12,0.14);
  border: 1px solid var(--line);
  transition: background .25s var(--ease), border-color .25s var(--ease);
  margin-top: 2px;
}
.cf__toggle-thumb {
  position: absolute; top: 2px; left: 2px;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(14,14,12,0.18);
  transition: transform .25s var(--ease);
}
.cf__toggle-row input:checked + .cf__toggle {
  background: var(--forest); border-color: var(--forest);
}
.cf__toggle-row input:checked + .cf__toggle .cf__toggle-thumb {
  transform: translateX(16px);
}
.cf__toggle-row input:focus-visible + .cf__toggle {
  outline: 2px solid var(--forest); outline-offset: 3px;
}
.cf__toggle-text { display: flex; flex-direction: column; gap: 3px; line-height: 1.35; }
.cf__toggle-title { font-size: 15px; font-weight: 600; color: var(--ink); letter-spacing: -0.01em; }
.cf__toggle-sub { font-size: 12.5px; color: var(--muted); }

.cf__call-when {
  margin-top: 18px; padding-left: 52px;
  animation: cf-call-when-in .28s var(--ease) both;
}
.cf__call-when[hidden] { display: none; }
.cf__call-when .cf__label { display: block; margin-bottom: 10px; }
@keyframes cf-call-when-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: none; }
}

@media (max-width: 640px) {
  .cf__call-when { padding-left: 0; }
}

.cf__consent {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 18px 0 4px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.cf__consent input[type="checkbox"] {
  position: absolute; opacity: 0; pointer-events: none;
  width: 0; height: 0;
}
.cf__consent-box {
  width: 18px; height: 18px;
  border: 1.5px solid var(--line);
  border-radius: 5px;
  display: grid; place-items: center;
  flex-shrink: 0; margin-top: 1px;
  background: rgba(255,255,255,0.4);
  transition: background .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.cf__consent-box svg {
  opacity: 0;
  transition: opacity .15s var(--ease);
}
.cf__consent:hover .cf__consent-box { border-color: var(--ink); }
.cf__consent input:focus-visible + .cf__consent-box {
  outline: 2px solid var(--forest); outline-offset: 2px;
}
.cf__consent input:checked + .cf__consent-box {
  background: var(--forest); border-color: var(--forest);
  box-shadow: 0 0 0 3px rgba(127,216,159,0.18);
}
.cf__consent input:checked + .cf__consent-box svg { opacity: 1; }
.cf__consent-text {
  font-size: 13.5px; color: var(--ink-2); line-height: 1.5;
  letter-spacing: -0.005em;
}

.cf__submit {
  margin-top: 32px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.cf__privacy { font-size: 12px; color: var(--muted); line-height: 1.4; }

.cf__success {
  display: none; flex-direction: column; align-items: flex-start; gap: 16px;
  padding: 40px; background: var(--paper); border: 1px solid var(--line);
  border-radius: 12px;
}
.cf__success.is-visible { display: flex; }
.cf__success-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--forest); color: #fff;
  display: grid; place-items: center;
}
.cf__success h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.015em; }
.cf__success p { font-size: 15px; color: var(--muted); }
.cf.is-submitted { display: none; }

.cf__error {
  display: none;
  margin-top: 20px; padding: 16px 20px;
  font-size: 14px; color: #8B2A1F; line-height: 1.5;
  background: #FBEDEA;
  border: 1px solid #E0B5AF;
  border-left: 3px solid #C0392B;
}
.cf__error.is-visible { display: block; }

@media (max-width: 960px) {
  .phead--contact .phead__inner { grid-template-columns: 1fr; gap: 24px; }
  .phead--contact .phead__sub { max-width: 100%; }
  .contact-wrap { grid-template-columns: 1fr; gap: 48px; }
  .contact-aside { position: static; }
}

@media (max-width: 640px) {
  .cf__row { grid-template-columns: 1fr; }
  .cf__row .cf__field:first-child { border-top: none; }
}
