/* Contact page, matched to the Services hero treatment (rev 4, 2026-10-10)
   No frame: white background, photo bleeding right, dissolved into the copy
   by a gradient. The photo's left edge is anchored to the content column, not
   a viewport percentage, so it never creeps under the headline on wide screens. */
.contact-page main{background:#fff}

.ct-hero{position:relative;width:min(1500px,100%);margin:0 auto;min-height:360px;overflow:hidden;background:#fff}
.ct-hero-photo{position:absolute;top:0;right:0;bottom:0;left:calc(50% + 60px);background-image:url("https://static.wixstatic.com/media/ad9aac_06122dfb90c5474e99e28db3b0770e4d~mv2.jpg");background-size:cover;background-position:center 55%;background-repeat:no-repeat}
.ct-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 9%,rgba(255,255,255,.78) 22%,rgba(255,255,255,.44) 36%,rgba(255,255,255,.14) 50%,transparent 62%)}
.ct-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:56% 44%;align-items:center;min-height:360px;padding:46px 0 44px}
.ct-hero-copy .breadcrumbs{margin-bottom:14px}
.ct-hero-copy h1{font-size:clamp(40px,4.8vw,60px);line-height:.96;letter-spacing:-.05em;margin:15px 0 13px;max-width:540px}
.ct-hero-copy .lead{font-size:17px;line-height:1.45;color:#687786;max-width:505px;margin:0}
.ct-hero-side{display:flex;justify-content:flex-end;align-items:flex-end;align-self:end}
.ct-badge{display:flex;align-items:center;gap:11px;max-width:296px;padding:13px 15px;border-radius:12px;background:rgba(255,255,255,.95);box-shadow:0 10px 26px rgba(14,40,65,.17)}
.ct-badge svg{width:26px;height:26px;flex:0 0 auto;fill:none;stroke:var(--navy);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ct-badge svg .red{stroke:var(--red)}
.ct-badge b{display:block;font-size:12.5px;color:var(--navy);line-height:1.2}
.ct-badge small{display:block;font-size:10.5px;color:#76838e;margin-top:3px}

/* The Unicode house glyph rendered much lighter than the arrow glyphs, and
   glyph weight varies by platform. SVGs at one stroke weight match everywhere. */
.contact-row i svg{width:17px;height:17px;display:block;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* The added photo makes the left column taller; stop the form card stretching
   to match it and leaving dead space under the Send button. */
.contact-grid{align-items:start}

/* Photo card that fills the empty space under the contact details. */
.ct-photo-card{margin:22px 0 0;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 32px rgba(14,40,65,.11);background:#fff}
.ct-photo-card img{display:block;width:100%;height:120px;object-fit:cover}
.ct-photo-card figcaption{padding:12px 15px}
.ct-photo-card figcaption b{display:block;font-size:12.5px;color:var(--navy);margin-bottom:4px}
.ct-photo-card figcaption span{display:block;font-size:12px;line-height:1.55;color:var(--muted)}

/* Closing CTA, matching the How It Works band. */
.ct-kicker{display:flex;align-items:center;gap:15px;text-transform:uppercase;letter-spacing:.28em;font-size:10px;font-weight:800;color:#dbe5ec}
.ct-kicker:after{content:"";height:1px;width:42px;background:#8fa3b5}
.ct-cta{background:#fff;padding:0 0 62px}
.ct-cta-inner{position:relative;display:flex;align-items:center;gap:34px;padding:34px 42px;min-height:150px;border-radius:18px;background:linear-gradient(100deg,#0a2135 0%,#102f4c 56%,#143a5c 100%);box-shadow:0 18px 44px rgba(14,40,65,.18)}
.ct-cta-head{flex:0 0 auto}
.ct-cta h2{font-size:clamp(28px,3vw,38px);line-height:1.04;color:#fff;letter-spacing:-.035em;margin:12px 0 0}
.ct-cta h2 span{color:#e8565c}
.ct-cta p{flex:1;font-size:14.5px;line-height:1.5;color:#cdd9e3;margin:0;padding-left:34px;border-left:1px solid rgba(255,255,255,.17)}
.ct-white-btn{flex:0 0 auto;text-decoration:none;background:#fff;color:var(--navy);min-width:206px;min-height:50px;border-radius:11px;box-shadow:0 8px 24px rgba(0,0,0,.2)}

@media(max-width:900px){
  .ct-hero-photo{left:calc(50% + 70px);background-position:58% center}
  .ct-hero-inner{grid-template-columns:60% 40%}
}
@media(max-width:980px){
  .ct-cta-inner{flex-wrap:wrap;gap:22px;padding:30px 32px}
  .ct-cta-head{flex:1 1 100%}
  .ct-cta p{flex:1 1 58%;padding-left:0;border-left:0}
}
@media(max-width:620px){
  .ct-hero{min-height:430px}
  .ct-hero-photo{left:0;top:198px;background-position:center 60%}
  .ct-hero-photo:after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.72) 34%,rgba(255,255,255,.08) 76%)}
  .ct-hero-inner{grid-template-columns:1fr;min-height:0;padding:32px 0 26px}
  .ct-hero-copy h1{max-width:100%}
  .ct-hero-side{justify-content:flex-start;align-self:auto;margin-top:150px}
  .ct-badge{max-width:100%}
  .ct-photo-card img{height:140px}
  .ct-cta{padding:0 0 44px}
  .ct-cta-inner{display:block;padding:28px 24px;border-radius:16px}
  .ct-cta p{margin:14px 0 20px}
}