/* Contact page. Builds on platform.css (hero/section system) and request-demo.css (form primitives,
   two-column enquiry layout). Prefix: ct-. */

/* ---------- hero routing panel ---------- */
.fti-contact .fp-hero-visual { max-width:480px; }
.ct-route .fu-body { padding:20px; background:
	linear-gradient(rgba(29,66,84,.35) 1px,transparent 1px) 0 0/26px 26px,
	linear-gradient(90deg,rgba(29,66,84,.35) 1px,transparent 1px) 0 0/26px 26px; }
.ct-route-map { display:grid; grid-template-columns:118px 1fr; align-items:center; gap:0; position:relative; }
.ct-route-src { display:grid; justify-items:center; gap:8px; padding:16px 10px; background:#0f2b3b; border:1px solid #2f7d70; border-radius:8px; color:#eaf4f2; font-size:.8125rem; font-weight:650; text-align:center; box-shadow:0 0 24px rgba(24,199,155,.14); }
.ct-route-src svg { width:26px; height:26px; fill:none; stroke:#18c79b; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.ct-route-list { list-style:none; margin:0 0 0 44px; padding:0 0 0 22px; position:relative; display:grid; gap:12px; }
.ct-route-list::before { content:''; position:absolute; left:0; top:22px; bottom:22px; width:2px; background:repeating-linear-gradient(to bottom,#2f7d70 0 5px,transparent 5px 9px); }
.ct-route-list::after { content:''; position:absolute; left:-44px; top:50%; width:44px; height:2px; background:repeating-linear-gradient(to right,#2f7d70 0 5px,transparent 5px 9px); }
.ct-route-list li { position:relative; display:flex; align-items:center; gap:10px; padding:11px 14px; background:rgba(15,43,59,.9); border:1px solid #1d4254; border-radius:6px; color:#eaf4f2; font-size:.9375rem; font-weight:600; }
.ct-route-list li::before { content:''; position:absolute; left:-22px; top:50%; width:22px; height:2px; background:#2f7d70; }
.ct-route-dot { width:8px; height:8px; border-radius:50%; background:#18c79b; box-shadow:0 0 8px rgba(24,199,155,.7); flex:none; }
.ct-route .rd-ready { margin-top:16px; }

/* ---------- routes directly under the hero ---------- */
.ct-routes-sec { padding-block:clamp(32px,4vw,48px) clamp(24px,3vw,32px); }
.ct-routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.ct-route-card { display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--fti-line); border-radius:10px; padding:24px; box-shadow:0 1px 0 rgba(6,40,50,.03); }
.ct-route-card p { margin:0; color:var(--fti-muted); font-size:.9375rem; line-height:1.55; }
.ct-route-card .ct-kicker { display:flex; align-items:center; gap:9px; margin:0; font-size:.8125rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--fti-accent); }
.ct-kicker svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.ct-route-main { font-size:1.1875rem; font-weight:650; color:#062832; text-decoration:none; overflow-wrap:anywhere; }
.ct-route-addr { font-size:.9375rem; color:var(--fti-text); text-decoration:none; }
.ct-route-main:hover, .ct-route-addr:hover { text-decoration:underline; }
.ct-route-act { margin-top:auto; padding-top:6px; display:inline-flex; align-items:center; min-height:44px; font-weight:650; color:var(--fti-accent); text-decoration:none; }
.ct-route-act:hover { text-decoration:underline; }
.ct-notice { display:flex; align-items:center; gap:12px; margin:24px 0 0!important; padding:14px 18px; background:var(--fti-accent-soft); border:1px solid #d3e6de; border-radius:8px; color:var(--fti-text); font-size:.9375rem; }
.ct-notice svg { flex:none; width:22px; height:22px; fill:none; stroke:var(--fti-accent); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- enquiry form section ---------- */
.ct-form-sec { padding-block:clamp(40px,5vw,56px) clamp(40px,5vw,56px); }
.ct-form-title { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.fti-contact .rd-layout .rd-guide-card { grid-template-columns:36px 1fr; }
.fti-contact .demo-form .form-grid { row-gap:20px; }
.fti-contact textarea#rd-message { min-height:170px; }
.ct-submit-row { margin-top:24px; padding-top:22px; }

/* ---------- head office ---------- */
.ct-office-sec { padding-block:clamp(40px,5vw,56px) clamp(48px,6vw,72px); }
.ct-office { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); align-items:stretch; }
.ct-office-info { align-self:center; }
.ct-office-info h2 { margin:0 0 20px; }
.ct-rows { list-style:none; margin:0; padding:0; display:grid; gap:0; }
.ct-rows li { display:grid; grid-template-columns:40px 1fr; gap:16px; align-items:center; padding:14px 0; border-bottom:1px solid var(--fti-line); }
.ct-rows li:last-child { border-bottom:0; }
.ct-rows li > svg { width:40px; height:40px; padding:9px; border-radius:50%; background:var(--fti-accent-soft); fill:none; stroke:var(--fti-accent); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.ct-rows small { display:block; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--fti-muted); margin-bottom:2px; }
.ct-rows a { color:#062832; font-size:1.0625rem; font-weight:600; text-decoration:none; overflow-wrap:anywhere; display:inline-block; padding-block:4px; }
.ct-rows a:hover { text-decoration:underline; }

@media (max-width:900px) {
	.ct-routes { grid-template-columns:1fr; gap:14px; }
	.ct-office { grid-template-columns:1fr; }
	.ct-route-map { grid-template-columns:96px 1fr; }
	.ct-route-list { margin-left:34px; }
	.ct-route-list::after { left:-34px; width:34px; }
}
