/* Contact — enquiry form + office directory (WEG Contact.dc.html) */
.it { font-style: italic; }

.ct { padding: clamp(48px, 7vw, 104px) var(--gutter) clamp(56px, 7vw, 96px); }
.ct__row { display: flex; flex-wrap: wrap; gap: 56px clamp(32px, 5vw, 96px); align-items: flex-start; }
.ct__form-col { flex: 1 1 460px; min-width: 0; max-width: 640px; }
.ct-kicker { font-family: var(--font-mono); font-size: 12px; letter-spacing: var(--tracking-mono); text-transform: uppercase; color: var(--grey-5); margin-bottom: 24px; }
.ct-h1 { margin: 0 0 20px; font-family: var(--font-display); font-weight: 400; font-size: clamp(52px, 7vw, 112px); line-height: .94; letter-spacing: -.035em; }
.ct-lead { margin: 0 0 40px; max-width: 46ch; font-size: clamp(18px, 1.5vw, 20px); line-height: 1.5; color: var(--grey-3); }

/* Form */
.ct-form { display: flex; flex-direction: column; gap: 24px; border-top: 3px solid var(--black); padding-top: 24px; }
.ct-form[hidden] { display: none; }
.ct-pair { display: flex; flex-wrap: wrap; gap: 24px; }
.field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.field--half { flex: 1 1 240px; }
fieldset.field { border: 0; margin: 0; padding: 0; }
.field__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: var(--tracking-mono); text-transform: uppercase; }
legend.field__label { margin-bottom: 8px; padding: 0; }
.field__label--split { display: flex; justify-content: space-between; }
.ct-chars { color: var(--grey-5); }
.field input, .field textarea { font: inherit; font-size: 16px; min-height: 52px; padding: 0 14px; border: 1px solid rgba(0,0,0,.3); border-radius: 0; background: var(--white); color: var(--black); outline-offset: 2px; width: 100%; -webkit-appearance: none; appearance: none; }
.field textarea { line-height: 1.5; padding: 12px 14px; resize: vertical; }
.field [aria-invalid="true"] { border-color: var(--error); }
.field__err { font-size: 14px; color: var(--error); }
.field__err:empty { display: none; }

/* Enquiry type: segmented grid with native radios (arrow keys move between options) */
.seg { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); border-left: 1px solid rgba(0,0,0,.3); border-top: 1px solid rgba(0,0,0,.3); }
.seg__opt { position: relative; cursor: pointer; min-height: 52px; padding: 0 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-right: 1px solid rgba(0,0,0,.3); border-bottom: 1px solid rgba(0,0,0,.3); background: var(--white); color: var(--black); font-size: 16px; font-weight: 500; transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
.seg__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.seg__opt .tick { font-family: var(--font-mono); font-size: 11px; }
.seg__opt.is-on { background: var(--black); color: var(--white); box-shadow: var(--mark-active); }
.seg__opt:has(input:focus-visible) { outline: 2px solid var(--signal); outline-offset: 2px; z-index: 1; }

.ct-submit { all: unset; box-sizing: border-box; cursor: pointer; min-height: 60px; background: var(--black); color: var(--white); display: flex; align-items: center; justify-content: space-between; padding: 0 20px; font-weight: 600; font-size: 17px; transition: background var(--dur-fast) var(--ease); }
.ct-submit:hover { background: var(--black-2); }
.ct-submit:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.ct-legal { font-size: 13px; color: var(--grey-5); }

/* Success */
.ct-success { border-top: 3px solid var(--black); padding: 24px 0; display: flex; flex-direction: column; gap: 12px; }
.ct-success:empty { display: none; }
.ct-success__ref { font-family: var(--font-mono); font-size: 11px; letter-spacing: var(--tracking-mono); text-transform: uppercase; font-weight: 500; }
.ct-success__title { font-family: var(--font-display); font-size: 36px; line-height: 1.05; outline: none; }
.ct-success__body { color: var(--grey-3); }
.ct-again { all: unset; cursor: pointer; align-self: flex-start; min-height: 44px; font-weight: 600; border-bottom: 1px solid var(--black); }
.ct-again:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }

/* Office directory */
.ct-dir { flex: 1 1 420px; min-width: 0; }
.ct-dir__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--black); }
.ct-h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 3vw, 40px); line-height: 1; letter-spacing: -.02em; }
.ct-meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: var(--tracking-mono); text-transform: uppercase; color: var(--grey-5); text-align: right; }
.ct-group { margin-top: 28px; }
.ct-group__head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 8px; border-bottom: 1px solid var(--black); }
.ct-group__name { display: flex; gap: 12px; align-items: baseline; margin: 0; font-weight: 400; }
.ct-group__code { font-family: var(--font-mono); font-size: 12px; letter-spacing: var(--tracking-mono); font-weight: 500; }
.ct-group__country { font-size: 17px; font-weight: 600; }
.ct-group__n { font-family: var(--font-mono); font-size: 11px; color: var(--grey-5); }
.ct-office { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; padding: 12px 10px; border-bottom: 1px solid var(--line); margin: 0 -10px; }
.ct-office--hq { background: var(--accent-soft); }
.ct-office__main { display: flex; flex-direction: column; gap: 2px; }
.ct-office__label { font-family: var(--font-mono); font-size: 10px; letter-spacing: var(--tracking-mono); text-transform: uppercase; color: var(--grey-5); font-weight: 500; }
.ct-office--hq .ct-office__label { color: var(--black); }
.ct-office address { font-style: normal; font-size: 15px; line-height: 1.45; }
.ct-office__coord { font-family: var(--font-mono); font-size: 10px; letter-spacing: .06em; color: var(--grey-5); white-space: nowrap; }

.ct-phones { margin-top: 28px; border-top: 1px solid var(--black); }
.ct-phones__head { padding: 10px 0; margin: 0; font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: var(--tracking-mono); text-transform: uppercase; }
.ct-phone { display: flex; justify-content: space-between; align-items: center; min-height: 44px; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--black); font-family: var(--font-mono); font-size: 14px; }
.ct-phones__note { padding-top: 8px; font-family: var(--font-mono); font-size: 10px; letter-spacing: var(--tracking-mono); text-transform: uppercase; color: var(--grey-5); }
