/* Contact: a direct conversation and a working email-draft enquiry. */
:root { --forest:#173d35; --forest-deep:#0e2823; --coral:#e56446; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--forest); font:16px/1.6 Arial,Helvetica,sans-serif; }
.contact-page { --ct-muted:#59675f; --ct-accent:#b7482e; --ct-line:#dedfd4; --ct-hover:#28594d; max-width:1600px; padding:60px clamp(20px,4.1vw,72px) 80px; margin:auto; }
.contact-page h1,.contact-page h2,.contact-page p,.contact-page figure { margin:0; }
.contact-page h1,.contact-page h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.045em; }
.contact-page a { color:inherit; text-decoration:none; }
.ct-layout { display:grid; grid-template-columns:.94fr 1.06fr; gap:clamp(32px,5vw,80px); align-items:start; }
.ct-intro,.ct-form-panel { min-width:0; }
.ct-kicker { color:var(--ct-accent); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.contact-page h1 { font-size:clamp(48px,5.1vw,78px); line-height:1.04; margin:22px 0; }
.ct-lead { font-size:18px; color:var(--ct-muted); max-width:440px; }
.ct-contact-links { display:grid; margin:30px 0; }
.ct-contact-link { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:68px; padding:14px 0; border-bottom:1px solid var(--ct-line); transition:color .2s; }
.ct-contact-link:first-child { border-top:1px solid var(--ct-line); }
.ct-contact-link span { min-width:0; overflow-wrap:anywhere; }
.ct-contact-link strong { display:block; font-size:clamp(19px,1.7vw,25px); font-weight:400; line-height:1.35; }
.ct-contact-link svg { width:24px; height:24px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ct-contact-link:hover { color:var(--ct-accent); }
.ct-contact-link:active { color:var(--forest-deep); }
.ct-location { margin-top:28px; }
.ct-location img { display:block; width:100%; height:auto; border-radius:18px; }
.ct-location figcaption { margin-top:18px; max-width:440px; }
.ct-location strong { font-size:18px; font-weight:400; }
.ct-location address { margin-top:6px; font-size:16px; font-style:normal; line-height:1.6; color:var(--ct-muted); }
.ct-form-panel { background:var(--paper); border:1px solid var(--line); border-radius:24px; padding:clamp(24px,2.8vw,42px); scroll-margin-top:26px; }
.ct-form-heading { margin-bottom:26px; }
.ct-form-heading h2 { font-size:clamp(32px,3vw,42px); line-height:1.1; margin-bottom:12px; }
.ct-form-heading p { color:var(--ct-muted); font-size:16px; }
.ct-form { display:grid; gap:20px; }
.ct-form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ct-form label { min-width:0; display:grid; gap:8px; color:var(--forest); font-size:15px; }
.ct-form input,.ct-form select,.ct-form textarea { display:block; width:100%; min-width:0; min-height:52px; border:1px solid var(--ct-line); border-radius:10px; padding:12px 14px; background:var(--cream); color:var(--forest); font:16px/1.5 Arial,Helvetica,sans-serif; transition:border-color .2s,box-shadow .2s; }
.ct-form input::placeholder,.ct-form textarea::placeholder { color:var(--ct-muted); opacity:1; }
.ct-form textarea { min-height:148px; resize:vertical; }
.ct-form input:hover,.ct-form select:hover,.ct-form textarea:hover { border-color:var(--ct-muted); }
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus { outline:none; border-color:var(--forest); box-shadow:0 0 0 3px color-mix(in srgb,var(--forest) 12%,transparent); }
.ct-submit { display:flex; align-items:center; justify-content:center; border:1px solid var(--forest); border-radius:99px; min-height:54px; padding:14px 24px; background:var(--forest); color:var(--cream); font:16px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; transition:background .2s,transform .2s; }
.ct-submit:hover { background:var(--ct-hover); transform:translateY(-2px); }
.ct-submit:active { background:var(--forest-deep); transform:translateY(0); }
.ct-submit:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.contact-page a:focus-visible,.ct-submit:focus-visible,.ct-form-panel:focus-visible { outline:3px solid var(--ct-accent); outline-offset:5px; border-radius:6px; }
.ct-form-note { font-size:15px; color:var(--ct-muted); }
.ct-form-status { color:var(--forest); font-size:16px; }
.ct-form-status:empty { display:none; }
.contact-page .ct-draft-link { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:5px; }
.ct-draft-link[hidden] { display:none; }
.rfq-configuration-warning { padding:14px 16px; background:var(--mist); border-radius:10px; font-size:16px; }
@keyframes ct-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:no-preference) { .ct-intro,.ct-form-panel { animation:ct-enter .55s both; } .ct-form-panel { animation-delay:.08s; } }
@media(max-width:1000px) { .ct-layout { grid-template-columns:.9fr 1.1fr; gap:28px; } .contact-page h1 { font-size:clamp(42px,5.4vw,58px); } .ct-form-panel { padding:24px; } .ct-form-row { gap:12px; } }
@media(max-width:760px) { .contact-page { padding-top:36px; padding-bottom:48px; } .ct-layout { grid-template-columns:1fr; gap:32px; } .contact-page h1 { font-size:clamp(45px,7.6vw,60px); margin:18px 0; } .ct-intro { display:contents; } .ct-intro-copy { grid-row:1; } .ct-form-panel { grid-row:2; padding:26px; } .ct-location { grid-row:3; margin-top:0; } .ct-contact-links { margin-bottom:0; } .ct-lead { max-width:500px; } }
@media(max-width:480px) { .ct-form-panel { padding:22px 18px; border-radius:18px; } .ct-form-row { grid-template-columns:1fr; gap:18px; } .ct-form { gap:18px; } .ct-form-heading h2 { font-size:32px; } .ct-contact-link strong { font-size:21px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .contact-page * { animation:none!important; transition:none!important; } .ct-submit:hover { transform:none; } }
