/* Contact is a compact working surface within Maniera's editorial identity. */
body.contact-page{min-height:100svh;display:flex;flex-direction:column}
.contact-page #contact{flex:1;width:100%;max-width:1280px;margin-inline:auto;padding:112px var(--pad) 48px}
.contact-page .contact-intro{display:block;padding:0 0 32px;border-bottom:1px solid rgb(89 64 55 / 30%)}
.contact-page .contact-intro h1{font-size:clamp(48px,4.5vw,72px);line-height:1.05;max-width:20ch;margin:0 0 16px;font-weight:500;letter-spacing:-.035em}
.contact-page .contact-intro p{font-size:20px;line-height:1.3;max-width:48ch;margin:0}
/* The two desktop columns share form rows; the left rule ends with the email row. */
.contact-page .contact-layout{--contact-item-gap:20px;--contact-row-gap:24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-template-rows:repeat(6,auto);column-gap:clamp(48px,7vw,112px);row-gap:var(--contact-row-gap);padding:32px 0 0}
.contact-page .contact-direct,.contact-page .contact-partner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--contact-item-gap);min-width:0}
.contact-page .contact-direct{grid-column:1;grid-row:1/3;align-self:stretch;border-bottom:1px solid rgb(89 64 55 / 55%);padding-bottom:24px}
.contact-page .contact-partner{grid-column:1;grid-row:3/7;align-self:start}
.contact-page .contact-layout-no-direct .contact-partner{grid-row:1/7}
.contact-page .contact-layout h2{font-size:24px;font-weight:500;line-height:1.2;letter-spacing:var(--tracking);margin:0}
.contact-page .contact-direct p,.contact-page .contact-partner p,.contact-page .contact-partner address{font-size:18px;line-height:24px;max-width:32ch;margin:0;font-style:normal}
.contact-page .partner-heading{display:contents}
.contact-page .partner-details,.contact-page .contact-links{display:flex;flex-direction:column;gap:0;width:100%}
.contact-page .contact-links a{position:relative;display:block;width:fit-content;max-width:100%;font-size:18px;line-height:24px;margin:0;padding:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
.contact-page .contact-detail{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:12px;width:100%;font-size:18px;line-height:24px}
.contact-page .contact-detail .contact-phone{white-space:nowrap;letter-spacing:normal;word-spacing:2px}
/* Keep adjacent contact links on separate, non-overlapping 24px rows. */
.contact-page .enquiry-area{grid-column:2;grid-row:1/7;min-width:0;display:grid;grid-template-rows:subgrid}
.contact-page #enquiry-form{display:grid;grid-row:1/-1;grid-template-rows:subgrid;min-width:0}
.contact-page .enquiry-fields{display:grid;grid-row:1/5;grid-template-rows:subgrid}
.contact-page .enquiry-actions{grid-row:5}
.contact-page .form-status{grid-row:6}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])){grid-template-rows:repeat(7,auto)}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .enquiry-area{grid-row:1/8}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .enquiry-product{grid-row:1;margin:0}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .enquiry-fields{grid-row:2/6}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .enquiry-actions{grid-row:6}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .form-status{grid-row:7}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .contact-direct{grid-row:2/4}
.contact-page .contact-layout:has(.enquiry-product:not([hidden])) .contact-partner{grid-row:4/8}
.contact-page .enquiry-fields{grid-template-columns:1fr;gap:24px}
.contact-page .enquiry-name-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.contact-page .enquiry-field label{font-size:18px}
.contact-page .enquiry-field input,.contact-page .enquiry-field textarea,.contact-page .enquiry-field select{font:inherit;font-size:20px;line-height:1.35;letter-spacing:normal;padding:10px 0;min-height:48px;margin-top:8px;color:var(--brown);background:transparent;border:0;border-bottom:1px solid rgb(89 64 55 / 55%);border-radius:0;min-width:0}
/* Focus strengthens the existing rule; labels and neighbours remain unobscured. */
.contact-page .enquiry-field input:focus,.contact-page .enquiry-field textarea:focus,.contact-page .enquiry-field select:focus{outline:none;border-bottom:3px solid var(--brown);padding-bottom:8px}
.contact-page .enquiry-field [aria-invalid=true]{border-bottom:2px solid var(--brown);padding-bottom:9px}
.contact-page .enquiry-field [aria-invalid=true]:focus{border-bottom-width:3px;padding-bottom:8px}
.contact-page .phone-input-row{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:16px}
.contact-page .phone-input-row select{width:100%;padding-right:8px;cursor:pointer}
.contact-page .phone-input-row select:disabled{cursor:wait}
.contact-page .enquiry-field textarea{min-height:120px}
.contact-page .enquiry-actions{align-items:center;flex-direction:row;flex-wrap:wrap;gap:16px 32px;margin-top:0}
.contact-page .send-enquiry{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;min-height:48px;font-size:24px;line-height:1.2;color:var(--brown);border:0;border-bottom:1px solid currentColor;border-radius:0;background:none;padding:4px 0;cursor:pointer}
.contact-page .send-enquiry svg{fill:none;stroke:currentColor;stroke-width:1.3}
.contact-page .send-enquiry:hover{opacity:.75}
.contact-page .send-enquiry:disabled{cursor:default;opacity:.65}
.contact-page .preview-note{max-width:none;font-size:15px}
.contact-page .enquiry-product{margin:0 0 24px;font-size:18px;line-height:1.3}
.contact-page .contact-links a:focus-visible,.contact-page .send-enquiry:focus-visible{outline:2px solid var(--brown);outline-offset:5px}
@media(max-width:767px){
 .contact-page #contact{padding-top:88px;padding-bottom:48px}
 .contact-page .contact-intro h1{font-size:48px;margin-bottom:16px}
 .contact-page .contact-intro p{font-size:18px}
 .contact-page .contact-layout{display:flex;flex-direction:column;gap:40px;padding-top:28px}
 .contact-page .contact-direct{border:0;padding:0}
 .contact-page .enquiry-area,.contact-page #enquiry-form{display:block}
 .contact-page .enquiry-fields{grid-template-rows:none;gap:24px}
 .contact-page .enquiry-name-row{gap:16px}
 .contact-page .phone-input-row{grid-template-columns:minmax(0,128px) minmax(0,1fr)}
 .contact-page .enquiry-actions{margin-top:24px}
 .contact-page .contact-partner{width:100%;margin-top:8px;padding-top:32px;border-top:1px solid rgb(89 64 55 / 30%)}
 .contact-page .contact-layout:has(.enquiry-product:not([hidden])) .enquiry-product{margin-bottom:24px}
}
