/* contact — the address as the title object + the enquiry form (lifted from Meridian's contact section) */
.chero{max-width:var(--wide); margin-inline:auto; padding:clamp(40px,7vh,88px) var(--gut) clamp(40px,6vh,72px)}
/* C7: the address is the title object here, set at up to 3.2rem, and it was in the NARROWER
   column -- so the page's headline broke to six ragged lines at desktop while setting
   correctly in four on a phone. The wider share goes to the thing being read. */
.chero__in{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(28px,5vw,90px); align-items:start}
.contact__name{font-family:var(--disp); font-weight:700; font-size:clamp(1.3rem,2.4vw,2rem); letter-spacing:-.03em; color:var(--txt); margin-bottom:16px; animation:fadeUp .9s var(--ease) both}
.contact__addr{font-style:normal; font-size:clamp(1.7rem,3.6vw,3.2rem); line-height:1.18; color:var(--txt); letter-spacing:-.035em; font-family:var(--disp); font-weight:700; text-wrap:balance; animation:fadeUp .9s var(--ease) .1s both}
.chero .lead{margin-top:clamp(20px,3vh,32px); animation:fadeUp .9s var(--ease) .2s both}
/* R1-14: the To-confirm ledger tops out level with the eyebrow baseline, not the crumbs —
   pad by the crumbs line (17px) + its margin, mirroring the left column's stack. */
.chero__side{display:grid; gap:clamp(20px,3vh,32px); align-content:start; padding-top:calc(17px + clamp(16px,2.6vh,28px)); animation:fadeUp .9s var(--ease) .24s both}
.contact__dl{margin:0; display:grid; gap:0; border-top:1px solid var(--line-struct)}
.contact__dl > div{display:flex; align-items:baseline; justify-content:space-between; gap:24px; padding:15px 0; border-bottom:1px solid var(--line-struct)}
.contact__dl dt{font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--dim)}
.contact__dl dd{margin:0; font-size:15px; color:var(--txt-2); text-align:right}

/* the form: carbon fields, hairline borders, mono labels, signal focus ring */
.enq{display:grid; gap:clamp(20px,3vh,32px)}
.enq__hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.enq__set{border:1px solid var(--line-struct); border-radius:var(--radius-frame); background:var(--bg-2); padding:clamp(18px,2.4vw,32px); margin:0; min-width:0}
.enq__set legend{padding:0 10px; margin-left:-10px}
.enq__set .k{font-family:var(--mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--txt-2)}
.enq__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px clamp(18px,2.4vw,32px); margin-top:18px}
.f{display:grid; gap:8px; min-width:0}
.f--wide{grid-column:1 / -1}
.f label{font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); display:flex; gap:10px; align-items:baseline}
.f label i{font-style:normal; text-transform:none; letter-spacing:.04em; color:var(--warn)}
.f input,.f select,.f textarea{
  appearance:none; width:100%; background:var(--bg); color:var(--txt); border:1px solid var(--line-struct); border-radius:var(--radius);
  font-family:var(--body); font-size:15px; line-height:1.4; padding:12px 14px; transition:border-color .2s,box-shadow .2s;
}
.f input::placeholder,.f textarea::placeholder{color:var(--dim)}
.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237C838C' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px}
.f select option{background:var(--bg-2); color:var(--txt)}
.f textarea{resize:vertical; min-height:140px}
.f input:hover,.f select:hover,.f textarea:hover{border-color:rgba(255,255,255,.28)}
.f input:focus-visible,.f select:focus-visible,.f textarea:focus-visible{outline:none; border-color:var(--sig); box-shadow:0 0 0 3px rgba(133,224,255,.22)}
.enq__foot{display:flex; flex-wrap:wrap; align-items:center; gap:20px 32px}
.enq__foot .note{max-width:48ch}
.enq__foot .note a{color:var(--sig)}
.btn{cursor:pointer}

/* after */
.steps--3{grid-template-columns:repeat(3,1fr)}
/* .steps .t is styled in site.css with the component (A4-03) */
.cnote{margin-top:24px; max-width:var(--measure); font-size:15px}
.cnote a{color:var(--sig); border-bottom:1px solid rgba(133,224,255,.35)}

@media (max-width:1180px){
  .chero__in{grid-template-columns:1fr}
  .chero__side{padding-top:0}
  .steps--3{grid-template-columns:1fr}
}
@media (max-width:720px){
  .enq__grid{grid-template-columns:1fr}
  .contact__dl > div{flex-direction:column; gap:6px; align-items:flex-start}
  .contact__dl dd{text-align:left}
}

/* ══ design review round 1 ═══════════════════════════════════════ */
/* C1-05: three fields are `required` and nothing marked them, while the only decorated
   labels were the OPTIONAL ones (their unit hints in --warn). So the page's only emphasis
   sat on the fields you may leave blank, and a buyer met the requirement as a browser
   bubble after pressing Send. This reuses the `.f label i` register exactly, so the
   required marker and the unit hint read as one system. */
.f:has(:required) label::after{
  content:'required'; font-family:var(--mono); font-size:12px; letter-spacing:.04em;
  text-transform:none; color:var(--warn); margin-left:0; padding-left:12px;
}
@media (min-width:1181px){
  /* C1-14: Name | Company then Email | <hole>. A 470px dead cell beside the last field a
     buyer fills before pressing Send. Three columns closes it. */
  .enq__set:last-of-type .enq__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
