.contact-page { --contact-red:#ed1c24; --contact-navy:#000; --contact-copy:#596778; }
.contact-hero { position:relative; display:grid; grid-template-columns:minmax(420px,.9fr) minmax(520px,1.1fr); align-items:center; min-height:570px; padding:72px max(28px,calc((100vw - 1320px)/2 + 40px)) 60px; overflow:hidden; background:linear-gradient(132deg,#fff 0 55%,#f5f7fa 55% 100%); }
.contact-hero::before { content:"CONTACT"; position:absolute; left:-8px; bottom:-34px; color:#f5f6f8; font-size:clamp(105px,16vw,230px); font-weight:900; letter-spacing:-11px; pointer-events:none; }
.contact-hero-copy { position:relative; z-index:2; max-width:650px; }
.contact-hero .inner-breadcrumb { margin-bottom:34px; color:#778397; }
.contact-hero .inner-breadcrumb a { color:var(--contact-navy); }
.contact-hero h1 { margin:0; color:var(--contact-navy); font-size:clamp(42px,4.6vw,60px); line-height:1.05; letter-spacing:-1.6px; }
.contact-hero-copy > p:last-of-type { max-width:610px; margin:23px 0 0; color:var(--contact-copy); font-size:16px; line-height:1.75; }
.contact-hero-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:30px; }
.contact-hero-actions a { display:inline-flex; align-items:center; gap:13px; min-height:49px; padding:0 20px; border:1px solid var(--contact-red); border-radius:5px; font-size:12px; font-weight:820; transition:transform .25s ease,background .25s ease,color .25s ease; }
.contact-primary { color:#fff; background:var(--contact-red); }.contact-secondary { color:var(--contact-red); background:#fff; }
.contact-hero-actions a:hover { transform:translateY(-3px); }.contact-primary:hover { color:#fff; background:#c9141b; }.contact-secondary:hover { color:#fff; background:var(--contact-red); }
.contact-hero-visual { position:relative; z-index:1; width:118%; margin-left:-8%; }
.contact-hero-visual img { display:block; width:100%; height:auto; }
.contact-methods { position:relative; z-index:4; display:grid; grid-template-columns:repeat(4,1fr); width:min(1240px,calc(100% - 56px)); margin:-30px auto 0; border:1px solid #e0e5ec; border-radius:11px; background:#fff; box-shadow:0 14px 35px rgba(12,31,69,.07); }
.contact-method-card { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:14px; align-items:center; min-height:112px; padding:24px 22px; border-right:1px solid #e1e6ec; color:inherit; transition:background .25s ease,transform .3s ease; }
.contact-method-card:first-child { border-radius:10px 0 0 10px; }.contact-method-card:last-child { border:0; border-radius:0 10px 10px 0; }
a.contact-method-card:hover { z-index:2; transform:translateY(-6px); background:#fff8f8; }
.contact-method-card i { display:grid; place-items:center; width:42px; height:42px; border-radius:11px; color:var(--contact-red); background:#fff0f1; }
.contact-method-card svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.contact-method-card span { display:block; margin-bottom:6px; color:#7b8593; text-transform:uppercase; letter-spacing:.65px; font-size:9px; font-weight:850; }
.contact-method-card strong { display:block; overflow-wrap:anywhere; color:var(--contact-navy); font-size:12px; line-height:1.45; }
.contact-method-card > b { color:var(--contact-red); font-size:16px; }
.contact-enquiry { padding:105px 0; background:#fff; }
.contact-enquiry-layout { display:grid; grid-template-columns:minmax(300px,.72fr) minmax(540px,1.28fr); gap:85px; align-items:start; }
.contact-intro { position:sticky; top:120px; }
.contact-intro h2,.contact-locations h2,.contact-final-cta h2 { margin:0; color:var(--contact-navy); font-size:clamp(35px,4vw,50px); line-height:1.08; letter-spacing:-1.5px; }
.contact-intro > p:not(.inner-red-label) { max-width:520px; margin:20px 0 0; color:var(--contact-copy); font-size:15px; line-height:1.8; }
.contact-response-note { margin-top:34px; padding:21px 0 0 22px; border-top:1px solid #dfe4ea; border-left:3px solid var(--contact-red); }
.contact-response-note strong { display:block; color:var(--contact-navy); font-size:13px; }.contact-response-note span { display:block; margin-top:7px; color:#6a7586; font-size:12px; line-height:1.65; }
.contact-form-panel { padding:36px; border:1px solid #dfe4ea; border-radius:12px; background:#f8fafc; }
.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 18px; }
.contact-form label { display:block; }.contact-form .full { grid-column:1/-1; }
.contact-form label > span { display:block; margin-bottom:8px; color:var(--contact-navy); font-size:11px; font-weight:780; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:1px solid #d8dee7; border-radius:6px; outline:0; color:var(--contact-navy); background:#fff; font:inherit; font-size:13px; transition:border-color .2s ease,box-shadow .2s ease; }
.contact-form input,.contact-form select { height:49px; padding:0 14px; }.contact-form textarea { resize:vertical; min-height:130px; padding:13px 14px; line-height:1.6; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:#ed767b; box-shadow:0 0 0 3px rgba(237,28,36,.08); }
.contact-form-submit { display:flex; align-items:center; gap:18px; }
.contact-form-submit button { display:inline-flex; align-items:center; justify-content:center; gap:13px; min-height:50px; padding:0 22px; border:0; border-radius:5px; color:#fff; background:var(--contact-red); font:inherit; font-size:12px; font-weight:830; cursor:pointer; transition:transform .25s ease,background .25s ease; }.contact-form-submit button:hover { transform:translateY(-3px); background:#c9141b; }
.contact-form-submit small { color:#7c8694; font-size:10px; line-height:1.5; }
.contact-locations { padding:94px 0 105px; background:#f6f8fb; }
.contact-locations .section-heading { max-width:780px; margin-bottom:45px; }.contact-locations .section-heading > p:last-child { max-width:700px; margin-top:16px; color:var(--contact-copy); font-size:14px; line-height:1.75; }
.contact-location-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.contact-location-card { position:relative; min-height:365px; padding:38px; overflow:hidden; border:1px solid #dde3eb; border-radius:12px; background:#fff; transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .3s ease; }
.contact-location-card::before { content:""; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--contact-red); transform:scaleX(.18); transform-origin:left; transition:transform .35s ease; }.contact-location-card:hover { transform:translateY(-8px); border-color:#efb3b6; }.contact-location-card:hover::before { transform:scaleX(1); }
.contact-location-card > span { color:var(--contact-red); text-transform:uppercase; letter-spacing:.7px; font-size:10px; font-weight:850; }.contact-location-card h3 { max-width:470px; margin:16px 0 0; color:var(--contact-navy); font-size:28px; line-height:1.2; }.contact-location-card p { max-width:580px; margin:15px 0 0; color:var(--contact-copy); font-size:13px; line-height:1.7; }
.contact-location-card ul { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; padding:0; list-style:none; }.contact-location-card li { padding:7px 10px; border-radius:999px; color:#455570; background:#f1f4f8; font-size:10px; font-weight:760; }.contact-location-card a { display:inline-flex; align-items:center; gap:10px; color:var(--contact-red); font-size:11px; font-weight:830; }
.contact-final-cta { padding:65px 0; border-top:1px solid #e1e6ec; background:#fff; }.contact-final-cta .inner-container { display:flex; align-items:center; justify-content:space-between; gap:40px; }.contact-final-cta h2 { font-size:clamp(30px,3vw,42px); }.contact-final-cta span { display:block; margin-top:11px; color:var(--contact-copy); font-size:14px; }.contact-final-cta a { display:inline-flex; align-items:center; gap:12px; min-height:49px; padding:0 21px; border-radius:5px; color:#fff; background:#20a85a; font-size:12px; font-weight:820; white-space:nowrap; transition:transform .25s ease,background .25s ease; }.contact-final-cta a:hover { transform:translateY(-3px); color:#fff; background:#158947; }
@media (max-width:1050px) { .contact-hero { grid-template-columns:1fr; min-height:auto; padding-top:75px; }.contact-hero-visual { width:100%; margin:25px 0 0; }.contact-methods { grid-template-columns:repeat(2,1fr); }.contact-method-card:nth-child(2) { border-right:0; }.contact-method-card:nth-child(-n+2) { border-bottom:1px solid #e1e6ec; }.contact-enquiry-layout { grid-template-columns:1fr; gap:42px; }.contact-intro { position:static; max-width:760px; } }
@media (max-width:700px) { .contact-hero { padding:55px 20px 45px; background:#fff; }.contact-hero h1 { font-size:38px; letter-spacing:-1.4px; }.contact-hero-copy > p:last-of-type { font-size:14px; }.contact-hero-visual { width:135%; margin-left:-17%; }.contact-methods { grid-template-columns:1fr; width:calc(100% - 36px); margin-top:-10px; }.contact-method-card,.contact-method-card:nth-child(2) { min-height:94px; border-right:0; border-bottom:1px solid #e1e6ec; border-radius:0; }.contact-method-card:first-child { border-radius:10px 10px 0 0; }.contact-method-card:last-child { border-radius:0 0 10px 10px; }.contact-enquiry { padding:70px 0; }.contact-form-panel { padding:24px 18px; }.contact-form { grid-template-columns:1fr; }.contact-form label,.contact-form .full { grid-column:1; }.contact-form-submit { align-items:flex-start; flex-direction:column; }.contact-location-grid { grid-template-columns:1fr; }.contact-location-card { min-height:0; padding:30px 24px; }.contact-final-cta .inner-container { align-items:flex-start; flex-direction:column; } }

