/* Contact — v0.2.26. All rules scoped to this page to protect approved pages. */
.ds-contact-page,.ds-contact-page .wp-block-post-content{margin:0;max-width:none;padding:0;width:100%;overflow:clip}
.ds-contact-page .wp-block-group,.ds-contact-page .wp-block-post-content>*{margin-block:0;max-width:none}
.ds-contact-inner{width:min(calc(100% - 2 * var(--ds-gutter)),var(--ds-wide));max-width:var(--ds-wide);margin-inline:auto}
.ds-contact-page h1,.ds-contact-page h2,.ds-contact-page h3,.ds-contact-page h4{font-family:Inter,"Segoe UI",Arial,sans-serif;font-weight:700;color:var(--ds-ink);letter-spacing:-.035em}
.ds-contact-page p{margin-block:0;color:#395674}
.ds-contact-page a:focus-visible,.ds-contact-page button:focus-visible{outline:3px solid #eea544;outline-offset:3px}
.ds-contact-hero{background:linear-gradient(90deg,#fff 0%,#fff 38%,#f0f8fd 100%)}
.ds-contact-hero__layout{min-height:420px;position:relative;display:grid;grid-template-columns:minmax(0,54%) minmax(0,46%);align-items:center;isolation:isolate}
.ds-contact-hero__copy{position:relative;z-index:2;padding:25px 26px 30px 0}
.ds-contact-hero__visual{position:absolute;z-index:0;inset:0 0 0 45%;margin:0;height:100%;min-width:0} .ds-contact-hero__visual .wp-block-shortcode{height:100%}
.ds-contact-hero__media{position:relative;width:100%;height:100%;overflow:hidden}
.ds-contact-hero__img{display:block;width:100%;height:100%;object-fit:cover;object-position:55% 50%}
.ds-contact-hero__layout::after{content:"";pointer-events:none;position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#fff 0%,#fff 34%,rgba(255,255,255,.95) 43%,rgba(255,255,255,.56) 53%,rgba(255,255,255,0) 64%)}
.ds-contact-breadcrumb{font-size:13px;line-height:1.4;color:#5a7396!important;margin-bottom:22px!important}
.ds-contact-kicker{font-size:12px;font-weight:700;letter-spacing:.095em;color:#607d9f!important;margin-bottom:12px!important}
.ds-contact-hero h1{font-size:clamp(39px,3.75vw,53px);line-height:1.06;letter-spacing:-.041em;margin:0 0 18px;max-width:750px}
.ds-contact-hero h1 mark{padding:0;background:transparent;color:var(--ds-cyan)}
.ds-contact-hero__lead{max-width:600px;margin-bottom:25px!important;font-size:16px;line-height:1.56;color:#23405f!important}
.ds-contact-trust{display:flex;align-items:center;flex-wrap:wrap;gap:13px 25px}
.ds-contact-trust p{position:relative;max-width:180px;padding-left:30px;font-size:14px;line-height:1.3;color:#0a2543;font-weight:650}
.ds-contact-trust p::before{content:"";position:absolute;top:0;left:0;width:23px;height:23px;background:var(--ds-cyan);-webkit-mask:center/contain no-repeat url('../icons/clock.svg');mask:center/contain no-repeat url('../icons/clock.svg')}
.ds-contact-trust .ds-contact-trust__shield::before{-webkit-mask-image:url('../icons/shield.svg');mask-image:url('../icons/shield.svg')}
.ds-contact-trust .ds-contact-trust__users::before{-webkit-mask-image:url('../icons/users.svg');mask-image:url('../icons/users.svg')}
/* Contact content sits close below the hero just like in the approved mockup. */
.ds-contact-main{padding:0 0 45px;background:#fff}
.ds-contact-main__grid{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:start;gap:38px}
.ds-contact-form-card{margin-top:-5px!important;border:1px solid #e2edf2;background:#fff;border-radius:12px;box-shadow:none;padding:26px 26px 22px}
.ds-contact-form-card h2{font-size:clamp(26px,2.65vw,34px);line-height:1.12;margin:0 0 9px}
.ds-contact-form-card__desc{font-size:15px;line-height:1.55;color:#486684!important;margin-bottom:18px!important}
.ds-contact-form-card>.wp-block-shortcode{margin-top:0!important}
.ds-contact-form-card .ff-el-group{margin-bottom:12px}
.ds-contact-form-card .ff-el-form-control,.ds-contact-form-card .ff-el-input--content input,.ds-contact-form-card .ff-el-input--content select,.ds-contact-form-card .ff-el-input--content textarea{width:100%;border:1px solid #dbe6ec;border-radius:7px;background:#fff;min-height:43px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.4;box-shadow:none}
.ds-contact-form-card .ff-el-form-control:focus{border-color:var(--ds-cyan);box-shadow:0 0 0 3px rgba(19,203,211,.12)}
.ds-contact-form-card textarea.ff-el-form-control{min-height:105px;resize:vertical}
.ds-contact-form-card .ff-el-input--label label{font-size:13px;font-weight:600;color:#27445f}
.ds-contact-form-card button.ff-btn-submit{display:flex;align-items:center;justify-content:center;width:100%;min-height:45px;border:0;border-radius:7px;background:var(--ds-cyan);color:#092542;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer}
.ds-contact-form-card .ff-btn-submit:hover{background:var(--ds-cyan-dark)}
.ds-contact-privacy{position:relative;margin-top:17px!important;padding-left:26px;font-size:12px;line-height:1.55;color:#667d93!important}
.ds-contact-privacy::before{content:"";position:absolute;left:0;top:0;width:18px;height:18px;background:var(--ds-ink);-webkit-mask:center/contain no-repeat url('../icons/lock.svg');mask:center/contain no-repeat url('../icons/lock.svg')}
.ds-contact-form__notice{padding:14px;background:#eefaff;color:#1c4c68!important;border-radius:6px}
/* Demo fields — admin-only preview until a real Fluent Form is configured. */
.ds-contact-demo{display:grid;gap:10px}
.ds-contact-demo input,.ds-contact-demo select,.ds-contact-demo textarea{display:block;width:100%;min-width:0;border:1px solid #dbe7ef;border-radius:7px;background:#fff;color:#294865;padding:11px 13px;font:400 14px/1.4 Inter,Arial,sans-serif;box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}
.ds-contact-demo input,.ds-contact-demo select{min-height:44px}
.ds-contact-demo textarea{min-height:110px;resize:vertical}
.ds-contact-demo input::placeholder,.ds-contact-demo textarea::placeholder{color:#6e8195;opacity:1}
.ds-contact-demo input:focus-visible,.ds-contact-demo select:focus-visible,.ds-contact-demo textarea:focus-visible{outline:none;border-color:var(--ds-cyan);box-shadow:0 0 0 3px rgba(19,203,211,.15)}
.ds-contact-demo button{min-height:47px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:7px;background:var(--ds-cyan);color:#08253e;font:700 15px/1.3 Inter,Arial,sans-serif;opacity:1;cursor:not-allowed}
.ds-contact-demo__hint{margin-top:1px!important;padding:7px 0 0;color:#61768a!important;font-size:11px!important;line-height:1.4!important}

.ds-contact-right{padding-top:24px}
.ds-contact-right>h2{font-size:27px;line-height:1.2;margin:0 0 22px}
.ds-contact-channel::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:14px;background:#e9fbfd}
.ds-contact-channel::after{content:"";position:absolute;left:12px;top:50%;transform:translateY(-50%);width:26px;height:26px;background:var(--ds-cyan);-webkit-mask:center/contain no-repeat url('../icons/dev-message.svg');mask:center/contain no-repeat url('../icons/dev-message.svg')}
.ds-contact-channels__heading{font-size:22px;margin:24px 0 14px!important}
.ds-contact-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.ds-contact-channel{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:190px;padding:73px 16px 18px;border:1px solid #e6eff3;background:#fff;border-radius:11px;box-shadow:0 8px 22px rgba(7,37,66,.035)}
.ds-contact-channel::before{left:15px;top:12px;transform:none;width:50px;height:50px;border-radius:14px}
.ds-contact-channel::after{left:27px;top:24px;transform:none;width:26px;height:26px;background:var(--ds-cyan)}
.ds-contact-channel--mail::after{-webkit-mask-image:url('../icons/contact-mail.svg');mask-image:url('../icons/contact-mail.svg')}
.ds-contact-channel--phone::after{-webkit-mask-image:url('../icons/contact-phone.svg');mask-image:url('../icons/contact-phone.svg')}
.ds-contact-channel--pin::after{-webkit-mask-image:url('../icons/contact-pin.svg');mask-image:url('../icons/contact-pin.svg')}
.ds-contact-channel h4{font-size:15px;margin:0 0 4px}
.ds-contact-channel p:nth-of-type(1){font-size:13px;line-height:1.32;font-weight:650;color:var(--ds-ink)!important;overflow-wrap:anywhere}
.ds-contact-channel p:nth-of-type(2){margin-top:13px;font-size:12.5px;line-height:1.4;color:#58718a}
.ds-contact-channel a:hover{color:#00b5c1}
.ds-contact-portfolio{background:linear-gradient(180deg,#f5fbff,#fff);padding:35px 0 40px}
.ds-contact-portfolio .ds-portfolio-empty{margin:0;padding:10px 15px;border:1px dashed #bcdde6;border-radius:9px;font-size:13px;color:#477086}
@media(max-width:1100px){
 .ds-contact-main__grid{gap:24px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 .ds-contact-form-card{padding:22px 18px}
 .ds-contact-hero__layout{min-height:385px}
 .ds-contact-hero h1{font-size:clamp(35px,4.1vw,45px)}
 .ds-contact-channels{gap:8px}
 .ds-contact-channel{padding-inline:10px}
}
@media(max-width:900px){
 .ds-contact-hero__layout{display:block;min-height:0}
 .ds-contact-hero__visual{display:none!important}
 .ds-contact-hero__layout::after{display:none}
 .ds-contact-hero__copy{padding:35px 0 28px}
 .ds-contact-hero h1{font-size:clamp(34px,5.4vw,46px)}
 .ds-contact-main{padding:24px 0 35px}
 .ds-contact-main__grid{grid-template-columns:1fr;gap:28px}
 .ds-contact-form-card{margin-top:0!important}
 .ds-contact-right{padding-top:0}
 .ds-contact-channels{gap:12px}
 .ds-contact-channel{padding:73px 16px 16px}
}
@media(max-width:680px){
 .ds-contact-hero__copy{padding:27px 0 23px}
 .ds-contact-breadcrumb{margin-bottom:19px!important}
 .ds-contact-hero h1{font-size:clamp(31px,8.4vw,40px)}
 .ds-contact-hero__lead{font-size:14.5px;margin-bottom:19px!important}
 .ds-contact-trust{gap:12px 17px}
 .ds-contact-trust p{font-size:12px;padding-left:26px;max-width:170px}
 .ds-contact-trust p::before{width:21px;height:21px}
 .ds-contact-form-card{padding:21px 17px}
 .ds-contact-right>h2{font-size:25px}
 .ds-contact-channels{grid-template-columns:1fr}
 .ds-contact-channel{min-height:0;padding:16px 15px 16px 80px}
 .ds-contact-channel::before{top:17px;left:15px;width:50px;height:50px}
 .ds-contact-channel::after{top:29px;left:27px}
 .ds-contact-channel p:nth-of-type(2){margin-top:5px}
 .ds-contact-portfolio{padding-block:28px 30px}
}
/* Do not reserve empty space on public pages before portfolio logos are uploaded. */
.ds-contact-portfolio:not(:has(.ds-portfolio)):not(:has(.ds-portfolio-empty)){display:none}


/* v0.2.34 — mobile contact card alignment and denser spacing. */
@media(max-width:680px){
  .ds-contact-channel{min-height:0;padding:16px 15px 16px 80px;display:flex;flex-direction:column;justify-content:center}
  .ds-contact-channel::before{top:50%;left:15px;transform:translateY(-50%)}
  .ds-contact-channel::after{top:50%;left:27px;transform:translateY(-50%)}
  .ds-contact-channel p{margin:0}
  .ds-contact-channel p + p{margin-top:4px}
}
