/* REALPRO V61 — Contact hero viewport-fit refinement
   Goal: stronger title + tighter vertical rhythm while keeping every hero datum visible. */

html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
  --rp-contact-title-size: 78px;
  box-sizing:border-box !important;
  height:calc(100svh - var(--rp-final-header-height-desktop,112px)) !important;
  min-height:calc(100svh - var(--rp-final-header-height-desktop,112px)) !important;
  max-height:none !important;
  padding:clamp(12px,1.8vh,22px) 0 clamp(10px,1.45vh,18px) !important;
  overflow:clip !important;
  justify-content:center !important;
}

html body.rp-page-contact .rp-contact-hero__content{
  box-sizing:border-box !important;
  width:min(88vw,1440px) !important;
  max-width:1440px !important;
  min-height:0 !important;
  height:auto !important;
  margin:auto !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  transform:translateY(clamp(-7px,-.65vh,-2px)) !important;
}

html body.rp-page-contact .rp-contact-hero .eyebrow{
  margin:0 0 clamp(5px,.72vh,8px) !important;
  font-size:clamp(10px,.66vw,12px) !important;
  line-height:1.08 !important;
}

html body.rp-page-contact .rp-contact-title-final,
html body.rp-page-contact h1#rp-contact-title{
  box-sizing:border-box !important;
  width:min(100%,1200px) !important;
  max-width:1200px !important;
  margin:0 !important;
  padding:0 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:var(--rp-contact-title-size) !important;
  font-weight:700 !important;
  line-height:.86 !important;
  letter-spacing:-.047em !important;
  text-transform:uppercase !important;
}

html body.rp-page-contact .rp-contact-title-final .rp-contact-line,
html body.rp-page-contact .rp-contact-title-final .rp-contact-word,
html body.rp-page-contact .rp-contact-title-final *{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:inherit !important;
  font-weight:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  transform:none !important;
}

html body.rp-page-contact .rp-contact-title-final .rp-contact-line{
  display:block !important;
  width:max-content !important;
  max-width:100% !important;
  white-space:nowrap !important;
}

html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
  box-sizing:border-box !important;
  width:min(100%,1210px) !important;
  max-width:1210px !important;
  margin:clamp(7px,.95vh,11px) 0 0 !important;
  color:rgba(255,255,255,.92) !important;
  font-size:clamp(16px,min(1.08vw,2.08vh),21px) !important;
  font-weight:460 !important;
  line-height:1.42 !important;
}

html body.rp-page-contact .rp-contact-hero__details{
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  column-gap:clamp(38px,7vw,108px) !important;
  row-gap:0 !important;
  width:min(100%,1210px) !important;
  max-width:1210px !important;
  margin:clamp(12px,1.65vh,18px) 0 0 !important;
  padding:0 0 clamp(7px,.9vh,11px) !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,255,255,.34) !important;
}

html body.rp-page-contact .rp-contact-hero__details a{
  gap:4px !important;
}

html body.rp-page-contact .rp-contact-hero__details span{
  font-size:clamp(10px,.64vw,12px) !important;
  line-height:1.08 !important;
}

html body.rp-page-contact .rp-contact-hero__details strong{
  font-size:clamp(16px,min(1.12vw,2.05vh),21px) !important;
  line-height:1.12 !important;
}

/* Notebook/desktop screens with reduced vertical room. */
@media (min-width:768px) and (max-height:820px){
  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    padding:8px 0 9px !important;
  }
  html body.rp-page-contact .rp-contact-hero__content{
    transform:translateY(-2px) !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{
    margin-bottom:4px !important;
  }
  html body.rp-page-contact .rp-contact-title-final,
  html body.rp-page-contact h1#rp-contact-title{
    line-height:.845 !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:6px !important;
    font-size:clamp(14.5px,1.08vw,17px) !important;
    line-height:1.34 !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    margin-top:9px !important;
    padding-bottom:6px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details a{gap:3px !important;}
  html body.rp-page-contact .rp-contact-hero__details strong{
    font-size:clamp(14.5px,1.08vw,17px) !important;
  }
}

@media (min-width:768px) and (max-height:680px){
  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    padding:5px 0 6px !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{
    margin-bottom:3px !important;
    font-size:10px !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:5px !important;
    font-size:14px !important;
    line-height:1.28 !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    margin-top:7px !important;
    padding-bottom:5px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details span{font-size:9px !important;}
  html body.rp-page-contact .rp-contact-hero__details strong{font-size:14px !important;}
}

/* Mobile: fit the entire composition inside the first usable viewport. */
@media (max-width:767px){
  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    height:calc(100svh - var(--rp-final-header-height-mobile,86px)) !important;
    min-height:calc(100svh - var(--rp-final-header-height-mobile,86px)) !important;
    padding:9px 0 11px !important;
  }
  html body.rp-page-contact .rp-contact-hero__content{
    width:calc(100% - 36px) !important;
    max-width:none !important;
    min-height:100% !important;
    height:100% !important;
    justify-content:center !important;
    transform:none !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{
    margin-bottom:5px !important;
    font-size:10px !important;
  }
  html body.rp-page-contact .rp-contact-title-final,
  html body.rp-page-contact h1#rp-contact-title{
    width:100% !important;
    max-width:100% !important;
    line-height:.88 !important;
    letter-spacing:-.043em !important;
  }
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    width:100% !important;
    max-width:38ch !important;
    margin-top:8px !important;
    font-size:clamp(13px,3.75vw,15.5px) !important;
    line-height:1.38 !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    grid-template-columns:1fr !important;
    gap:8px !important;
    width:100% !important;
    margin-top:10px !important;
    padding-bottom:7px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details a{gap:3px !important;}
  html body.rp-page-contact .rp-contact-hero__details span{font-size:9.5px !important;}
  html body.rp-page-contact .rp-contact-hero__details strong{
    font-size:clamp(14px,4.15vw,17px) !important;
    line-height:1.1 !important;
  }
}

@media (max-width:390px){
  html body.rp-page-contact .rp-contact-hero__content{
    width:calc(100% - 30px) !important;
  }
}

@media (max-width:767px) and (max-height:640px){
  html body.rp-page-contact main#main > section.rp-contact-hero[data-rp-surface="dark"]{
    padding:5px 0 7px !important;
  }
  html body.rp-page-contact .rp-contact-hero .eyebrow{margin-bottom:3px !important;}
  html body.rp-page-contact .rp-contact-hero__content > p:not(.eyebrow){
    margin-top:6px !important;
    font-size:12.5px !important;
    line-height:1.3 !important;
  }
  html body.rp-page-contact .rp-contact-hero__details{
    gap:6px !important;
    margin-top:7px !important;
    padding-bottom:5px !important;
  }
  html body.rp-page-contact .rp-contact-hero__details strong{font-size:13.5px !important;}
}

/* Landscape phones/tablets save vertical space by keeping contact channels side by side. */
@media (min-width:560px) and (max-width:767px) and (max-height:600px){
  html body.rp-page-contact .rp-contact-hero__details{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:24px !important;
    row-gap:0 !important;
  }
}
