/* ── Contact page layout ────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;align-items:stretch;margin-top:52px;}
.contact-info{display:flex;flex-direction:column;}
.contact-intro{font-size:15px;font-weight:300;line-height:1.75;color:var(--textm);margin-bottom:36px;}
.contact-methods{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;}
.contact-map{flex:1;min-height:220px;border-radius:10px;overflow:hidden;border:1px solid rgba(0,0,0,0.07);background:var(--off);}
.contact-map iframe{display:block;width:100%;height:100%;min-height:220px;}
.contact-method{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:var(--off);border-radius:10px;border:1px solid rgba(0,0,0,0.05);}
.cm-icon{width:40px;height:40px;border-radius:10px;background:var(--tint-blue);display:flex;align-items:center;justify-content:center;color:var(--blue2);flex-shrink:0;}
.cm-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;}
.cm-val{font-size:14px;font-weight:400;color:var(--text);}
.cm-sub{font-size:12px;font-weight:300;color:var(--textm);margin-top:2px;}
/* office locator — map and cards live side by side in one module so
   clicking a pin never sends the page scrolling far to find the card. */
.locator-module{display:grid;grid-template-columns:320px 1fr;gap:28px;align-items:start;margin-top:40px;}
.locator-map-col{background:var(--navy2);border-radius:var(--radius);padding:24px;position:sticky;top:100px;}
.locator-map{width:100%;height:100%;display:block;overflow:visible;aspect-ratio:1/1;}
.locator-others{fill:rgba(255,255,255,.07);stroke:none;}
.locator-country{fill:rgba(51,149,255,.4);stroke:var(--navy2);stroke-width:.75;cursor:pointer;transition:fill .2s ease,stroke .2s ease,stroke-width .2s ease;}
.locator-country:hover{fill:rgba(51,149,255,.7);}
.locator-country.active{fill:var(--blue3);}
/* .peek = transient preview from hovering an office card; kept visually lighter
   than .active (a real click) so the two states never look the same. */
.locator-country.peek{stroke:var(--blue3);stroke-width:2;stroke-dasharray:3 2;}
.locator-pin-dot{fill:var(--navy2);stroke:var(--blue3);stroke-width:2;cursor:pointer;transition:r .18s ease,stroke-width .18s ease;}
.locator-pin-pulse{fill:var(--blue3);opacity:0;transform-box:fill-box;transform-origin:center;cursor:pointer;}
.locator-pin.active .locator-pin-dot{fill:var(--blue3);stroke:#fff;r:5;}
.locator-pin.active .locator-pin-pulse{animation:locatorPulse 1.8s ease-out infinite;}
.locator-pin.peek .locator-pin-dot{stroke-width:3;r:5;}
@keyframes locatorPulse{0%{transform:scale(.5);opacity:.55;}70%{transform:scale(2.1);opacity:0;}100%{transform:scale(2.1);opacity:0;}}

.offices-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start;}
.office-card{padding:14px 16px;background:var(--white);border-radius:10px;border:1px solid rgba(0,0,0,0.06);scroll-margin-top:100px;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;}
.office-card-highlight{border-color:var(--blue2);box-shadow:0 0 0 4px rgba(0,119,245,.14),0 14px 30px rgba(6,14,31,.1);transform:translateY(-2px);}
.office-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;}
.office-city{font-family:var(--ff-head);font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.01em;display:flex;align-items:center;gap:6px;}
.office-hq-badge{font-size:8.5px;font-weight:800;letter-spacing:.05em;color:#fff;background:var(--blue2);padding:1px 6px;border-radius:4px;}
.office-country{font-size:11px;color:var(--muted);margin-top:1px;}
.office-localtime{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:500;color:var(--blue2);background:var(--tint-blue);border-radius:999px;padding:4px 8px;flex-shrink:0;white-space:nowrap;}
.office-localtime svg{width:11px;height:11px;flex-shrink:0;}
.office-localtime-value{font-variant-numeric:tabular-nums;}
.office-detail{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;font-weight:300;color:var(--textm);line-height:1.45;margin-top:6px;}
.office-detail svg{width:13px;height:13px;flex-shrink:0;margin-top:1px;color:var(--muted);}
.office-detail a{color:var(--text);text-decoration:none;}
.office-detail a:hover{color:var(--blue2);}
.office-tbd{color:var(--muted);font-style:italic;}
.office-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.office-btn{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--text);background:var(--off);border:1px solid rgba(0,0,0,0.08);border-radius:7px;padding:6px 10px;text-decoration:none;transition:border-color .18s,color .18s;}
.office-btn svg{width:12px;height:12px;}
.office-btn:hover{border-color:var(--blue2);color:var(--blue2);}
.office-btn-primary{background:var(--blue2);border-color:var(--blue2);color:#fff;}
.office-btn-primary:hover{background:var(--blue3);border-color:var(--blue3);color:#fff;}
/* contact form card */
.contact-form-card{background:var(--off);border-radius:var(--radius);padding:36px;border:1px solid rgba(0,0,0,0.07);scroll-margin-top:100px;}
.form-card-title{font-family:var(--ff-head);font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin-bottom:6px;}
.form-card-sub{font-size:13px;font-weight:300;color:var(--textm);margin-bottom:28px;}
/* presence banner — now just the 2 stat callouts (office list moved to the locator map below) */
.presence-banner{border-radius:var(--radius);overflow:hidden;position:relative;margin-top:48px;background:linear-gradient(rgba(6,14,31,.70) 0%,rgba(6,14,31,.85) 100%),url('https://images.unsplash.com/photo-1600880292203-757bb62b4baf?auto=format&fit=crop&w=1400&q=80') center/cover no-repeat;}
.presence-banner-inner{display:flex;align-items:center;justify-content:center;padding:40px;gap:64px;}
.presence-stat-large{text-align:center;flex-shrink:0;}
.psl-num{font-family:var(--ff-head);font-size:clamp(40px,5vw,64px);font-weight:800;color:#fff;letter-spacing:-.04em;line-height:1;}
.psl-num span{color:var(--blue3);}
.psl-lbl{font-size:12px;font-weight:300;color:rgba(255,255,255,.55);margin-top:4px;}
.presence-divider{width:1px;height:60px;background:rgba(255,255,255,.15);flex-shrink:0;}
/* team contacts */
.contacts-team{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px;}
.contact-person{padding:28px 18px;text-align:center;}
.cp-photo{width:72px;height:72px;border-radius:50%;background:center/cover no-repeat;margin:0 auto 14px;border:3px solid var(--off);}
.cp-name{font-size:14px;font-weight:500;color:var(--text);margin-bottom:2px;}
.cp-role{font-size:12px;color:var(--muted);margin-bottom:10px;}
.cp-dept{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:5px;background:var(--tint-blue);color:var(--blue2);}
/* ── How can we support you: service grid ────────────────────── */
.cs-support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
.cs-support-card{display:block;background:var(--white);border:1px solid var(--card-border);border-radius:var(--radius);padding:26px 24px;transition:transform .2s ease,box-shadow .2s ease;}
.cs-support-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(6,14,31,0.09);}
.cs-support-icon{width:44px;height:44px;border-radius:10px;background:var(--tint-blue);color:var(--blue2);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.cs-support-title{font-family:var(--ff-head);font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.01em;margin-bottom:8px;line-height:1.3;}
.cs-support-desc{font-size:13px;font-weight:300;line-height:1.65;color:var(--textm);}

/* ── Why organisations choose SAFIR — dark navy section ─────────── */
.cs-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
.cs-why-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:28px 26px;}
.cs-why-title{font-family:var(--ff-head);font-size:16px;font-weight:700;color:#fff;letter-spacing:-.01em;margin-bottom:10px;line-height:1.3;}
.cs-why-desc{font-size:13px;font-weight:300;line-height:1.7;color:rgba(255,255,255,.6);}

/* ── Closing statement ─────────────────────────────────────────── */
.cs-closing{position:relative;background:linear-gradient(rgba(6,14,31,0.86),rgba(6,14,31,0.9)),url('https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1800&q=80') center/cover no-repeat;text-align:center;padding:90px 0;}
.cs-closing-inner{max-width:760px;margin:0 auto;}
.cs-closing-text{font-family:var(--ff-head);font-size:clamp(20px,2.2vw,26px);font-weight:700;color:#fff;line-height:1.5;font-style:italic;letter-spacing:-.01em;}
.cs-closing-sub{margin-top:18px;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue3);font-weight:600;}

/* page hero override */
.page-hero{background:linear-gradient(rgba(6,14,31,.78) 0%,rgba(6,14,31,.92) 100%),url('https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1920&q=80') center/cover no-repeat;}

/* ── WPForms: contact form card overrides ───────────────────── */
.contact-form-card .wpforms-container{padding:0!important;background:transparent!important;}
.contact-form-card .wpforms-field{padding:0!important;margin-bottom:16px!important;float:none!important;}
.contact-form-card .wpforms-field-label,.contact-form-card .wpforms-field-label-inline{font-size:12px!important;font-weight:500!important;color:var(--text)!important;margin-bottom:6px!important;display:block!important;letter-spacing:.02em!important;}
.contact-form-card .wpforms-required-label{color:var(--blue2)!important;margin-left:2px!important;}
.contact-form-card .wpforms-field-sublabel{display:none!important;}
.contact-form-card .wpforms-field-name .wpforms-field-row{flex-wrap:nowrap!important;}
.contact-form-card .wpforms-field input[type="text"],
.contact-form-card .wpforms-field input[type="email"],
.contact-form-card .wpforms-field input[type="tel"],
.contact-form-card .wpforms-field input[type="url"],
.contact-form-card .wpforms-field select,
.contact-form-card .wpforms-field textarea{width:100%!important;padding:11px 14px!important;border-radius:7px!important;border:1px solid rgba(0,0,0,0.12)!important;font-size:14px!important;font-family:var(--ff-body)!important;color:var(--text)!important;background:#fff!important;transition:border-color .18s!important;box-sizing:border-box!important;box-shadow:none!important;height:auto!important;}
.contact-form-card .wpforms-field input:focus,
.contact-form-card .wpforms-field select:focus,
.contact-form-card .wpforms-field textarea:focus{outline:none!important;border-color:var(--blue2)!important;box-shadow:0 0 0 3px rgba(0,119,245,0.1)!important;}
.contact-form-card .wpforms-field select{appearance:none!important;cursor:pointer!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A97B0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;padding-right:36px!important;}
.contact-form-card .wpforms-field textarea{height:110px!important;resize:vertical!important;}
.contact-form-card .wpforms-field-row{display:flex!important;gap:14px!important;}
.contact-form-card .wpforms-field-row-block{flex:1!important;min-width:0!important;}
.contact-form-card .wpforms-submit-container{padding:0!important;margin-top:4px!important;text-align:left!important;}
.contact-form-card .wpforms-submit{width:100%!important;padding:13px!important;border-radius:7px!important;background:var(--blue2)!important;color:#fff!important;font-size:15px!important;font-weight:500!important;font-family:var(--ff-body)!important;border:none!important;cursor:pointer!important;transition:background .18s,transform .15s!important;letter-spacing:.01em!important;}
.contact-form-card .wpforms-submit:hover{background:var(--blue3)!important;transform:translateY(-1px)!important;}
.contact-form-card .wpforms-confirmation-container-full{padding:14px 18px!important;border-radius:8px!important;background:var(--success-bg)!important;border:1px solid var(--success-border)!important;color:var(--success-text)!important;font-size:14px!important;margin-top:8px!important;}
.contact-form-card .wpforms-error-container{margin-bottom:16px!important;}
.contact-form-card .wpforms-error{color:var(--error-text)!important;font-size:12px!important;margin-top:4px!important;}
.contact-form-card .wpforms-field-hp{display:none!important;}

/* responsive */
@media(max-width:960px){
	.contact-grid{grid-template-columns:1fr;gap:40px;}
	.contact-map{flex:none;height:260px;}
	.contacts-team{grid-template-columns:1fr 1fr;}
	.cs-support-grid{grid-template-columns:1fr 1fr;}
	.cs-why-grid{grid-template-columns:1fr;}
	.locator-module{grid-template-columns:1fr;gap:20px;}
	.locator-map-col{position:static;max-width:340px;margin:0 auto;}
}
@media(max-width:700px){
	.presence-banner-inner{flex-direction:column;padding:28px 24px;gap:20px;}
	.presence-divider{display:none;}
}
@media(max-width:580px){
	.contacts-team{grid-template-columns:1fr;}
	.contact-form-card{padding:24px 20px;}
	.cs-support-grid{grid-template-columns:1fr;}
	.offices-grid{grid-template-columns:1fr;}
	.office-card-head{flex-wrap:wrap;}
}
