/*
 * GUHL 3.0 · Contact page module
 * Scope everything to .guhl-contact-page to avoid altering other WPForms.
 * No existing WPForms data or markup is changed.
 */
.guhl-contact-page{
  --guhl-contact-shadow:0 20px 55px rgb(13 46 76 / 10%);
  --guhl-contact-card-border:1px solid #dce7f1;
}
.guhl-contact-page .guhl-hero__content{
  padding-block:3.4rem 5.3rem;
}
.guhl-contact-page .guhl-hero h1{font-size:clamp(2.6rem,4vw,4rem)}
.guhl-contact-page .guhl-hero__lead{max-width:710px}
.guhl-contact-section{
  background:linear-gradient(135deg,#f1f8fe 0%,#f6f9fd 48%,#eaf4fd 100%);
  padding-bottom:5rem;
}
.guhl-contact-layout{
  display:grid;
  grid-template-columns:minmax(0,.87fr) minmax(0,1.38fr);
  gap:1.4rem;
  align-items:start;
  position:relative;
  z-index:2;
  margin-top:-2.15rem;
}
.guhl-contact-details,.guhl-contact-form-surface{
  min-width:0;
}
/* The form alone overlaps the hero. Keep the dark hero away from the
   dark-blue introductory text to ensure reliable contrast at all widths. */
.guhl-contact-details{
  padding-top:2.75rem;
}
.guhl-contact-details__intro{padding:1.55rem 1.2rem 1.1rem}
.guhl-contact-overline{
  font-size:.74rem;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.135em;
  color:var(--guhl-blue);
  text-transform:uppercase;
  display:block;
  margin-bottom:.6rem;
}
.guhl-contact-details__intro h2{
  margin:0 0 .6rem;
  font-size:clamp(1.6rem,2vw,2.1rem);
}
.guhl-contact-details__intro p{
  color:var(--guhl-text);
  font-size:.95rem;
  max-width:28rem;
  margin:0;
}
.guhl-contact-detail-cards{display:grid;gap:.82rem}
.guhl-contact-detail-card{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  align-items:start;
  gap:1.05rem;
  padding:1.22rem;
  min-width:0;
  background:#fff;
  border:var(--guhl-contact-card-border);
  border-radius:17px;
  box-shadow:0 7px 24px rgb(16 50 82 / 5%);
}
.guhl-contact-detail-card__icon{
  width:54px;
  height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:15px;
  background:#eef5fb;
  flex-shrink:0;
}
.guhl-contact-detail-card__icon .guhl-icon{
  width:29px;
  height:29px;
  margin:0;
  object-fit:contain;
}
.guhl-contact-detail-card__body{min-width:0}
.guhl-contact-detail-card h3{
  font-size:.99rem;
  margin:.08rem 0 .26rem;
  letter-spacing:0;
  color:var(--guhl-navy);
}
.guhl-contact-detail-card__primary{
  display:block;
  overflow-wrap:anywhere;
  font-size:1.045rem;
  line-height:1.42;
  color:#0c2d4b;
  font-weight:800;
  text-decoration:none;
}
.guhl-contact-detail-card__secondary{
  display:block;
  width:max-content;
  max-width:100%;
  margin-top:.22rem;
  font-size:.9rem;
  line-height:1.4;
  font-weight:650;
  text-decoration:none;
  color:var(--guhl-blue);
}
.guhl-contact-detail-card__secondary:hover{text-decoration:underline}
.guhl-contact-detail-card a.guhl-contact-detail-card__primary:hover{
  color:var(--guhl-blue);
  text-decoration:underline;
}
.guhl-contact-detail-card p{
  font-size:.84rem;
  color:#62778a;
  margin:.36rem 0 0;
  line-height:1.48;
}
.guhl-contact-detail-card p.guhl-contact-address{
  color:#334c64;
  font-size:.91rem;
}
.guhl-contact-direct-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1.1rem;
  align-items:center;
  padding:1.2rem .75rem;
}
.guhl-contact-direct-actions .guhl-button{
  background:#fff;
  min-height:45px;
}
.guhl-contact-direct-actions__mail{
  color:var(--guhl-blue);
  text-decoration:none;
  font-weight:740;
}
.guhl-contact-direct-actions__mail:hover{text-decoration:underline}
.guhl-contact-form-surface{
  border:var(--guhl-contact-card-border);
  border-radius:21px;
  background:#fff;
  box-shadow:var(--guhl-contact-shadow);
  padding:clamp(1.6rem,3vw,2.85rem);
}
.guhl-contact-form-surface__heading{margin-bottom:1.55rem}
.guhl-contact-form-surface__heading h2{
  font-size:clamp(1.9rem,2.8vw,2.65rem);
  margin:0 0 .5rem;
}
.guhl-contact-form-surface__heading p{
  font-size:.98rem;
  color:#5a7185;
  margin:0;
  max-width:34rem;
}
.guhl-contact-wpforms{min-width:0}
.guhl-contact-wpforms #wpforms-342{
  --wpforms-field-size-input-height:54px;
  --wpforms-field-size-input-spacing:15px;
  --wpforms-field-size-font-size:16px;
  --wpforms-field-size-padding-h:17px;
  --wpforms-field-size-checkbox-size:19px;
  --wpforms-label-size-font-size:14px;
  --wpforms-label-size-line-height:22px;
  --wpforms-button-size-font-size:16px;
  --wpforms-button-size-height:52px;
}
.guhl-contact-wpforms .wpforms-container{
  margin:0;
  min-width:0;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field{
  padding:8px 0 13px;
  min-width:0;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-label,
.guhl-contact-wpforms .wpforms-form legend.wpforms-field-label{
  font-weight:760;
  font-size:.89rem;
  color:#183750;
  margin-bottom:9px;
}
.guhl-contact-wpforms .wpforms-form .wpforms-required-label{color:#dd465a}
.guhl-contact-wpforms .wpforms-form input[type="text"],
.guhl-contact-wpforms .wpforms-form input[type="email"],
.guhl-contact-wpforms .wpforms-form input[type="tel"],
.guhl-contact-wpforms .wpforms-form select,
.guhl-contact-wpforms .wpforms-form textarea,
.guhl-contact-wpforms .wpforms-form .choices__inner{
  width:100%;
  max-width:100%;
  min-height:53px;
  padding:13px 15px;
  background:#f7fafd;
  border:1px solid #cfddea;
  border-radius:11px;
  color:#18364f;
  box-shadow:inset 0 1px 2px rgb(9 39 66 / 2%);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.guhl-contact-wpforms .wpforms-form textarea{
  min-height:168px;
  resize:vertical;
  line-height:1.55;
}
.guhl-contact-wpforms .wpforms-form input[type="text"]:focus,
.guhl-contact-wpforms .wpforms-form input[type="email"]:focus,
.guhl-contact-wpforms .wpforms-form input[type="tel"]:focus,
.guhl-contact-wpforms .wpforms-form select:focus,
.guhl-contact-wpforms .wpforms-form textarea:focus,
.guhl-contact-wpforms .wpforms-form .choices.is-focused .choices__inner{
  border-color:#3488d7;
  outline:0;
  box-shadow:0 0 0 4px rgb(39 125 210 / 13%);
  background:#fff;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-sublabel{
  font-size:.8rem;
  color:#657b90;
  margin-top:6px;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-row-block{
  min-width:0;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-radio ul{
  display:flex;
  gap:.66rem;
  flex-wrap:wrap;
  padding:0;
  margin:5px 0;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-radio li{
  display:flex;
  align-items:center;
  gap:.45rem;
  border:1px solid #d8e5ee;
  border-radius:10px;
  background:#f8fbfe;
  padding:.57rem .88rem;
  margin:0;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-radio input[type="radio"]{
  accent-color:var(--guhl-blue);
  cursor:pointer;
}
.guhl-contact-wpforms .wpforms-form .wpforms-field-radio label{
  margin:0;
  cursor:pointer;
  color:#27455e;
  font-size:.89rem;
}
.guhl-contact-wpforms .wpforms-form .choices{margin:0}
.guhl-contact-wpforms .wpforms-form .choices__list--dropdown{
  border-color:#cfddea;
  box-shadow:0 14px 28px rgb(13 42 70 / 13%);
  border-radius:10px;
}
/* The redundant Person selector is optional; retain the required radio group.
   WPForms anti-spam/recaptcha fields are NOT hidden or modified by this rule. */
.guhl-contact-wpforms #wpforms-342-field_7-container{display:none}
.guhl-contact-wpforms .wpforms-form .wpforms-submit-container{padding-top:.85rem}
.guhl-contact-wpforms .wpforms-form button.wpforms-submit{
  background:var(--guhl-blue);
  border:1px solid #1362ae;
  border-radius:11px;
  color:#fff;
  font-size:1rem;
  font-weight:760;
  padding:0 2rem;
  min-height:54px;
  min-width:205px;
  box-shadow:0 9px 20px rgb(20 98 175 / 16%);
  transition:background .16s ease,transform .16s ease,box-shadow .16s ease;
  cursor:pointer;
}
.guhl-contact-wpforms .wpforms-form button.wpforms-submit:hover{
  background:var(--guhl-blue-hover);
  transform:translateY(-1px);
  box-shadow:0 12px 22px rgb(20 98 175 / 23%);
}
.guhl-contact-wpforms .wpforms-form button.wpforms-submit:focus-visible{
  outline:3px solid #e6b05b;
  outline-offset:3px;
}
.guhl-contact-wpforms .wpforms-form .wpforms-error{font-size:.85rem}
.guhl-contact-editor-note{
  background:#fff9e7;
  color:#685020;
  border-radius:10px;
  padding:1rem;
  margin:0;
}
.guhl-contact-directions{
  margin-top:1.45rem;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:0;
  overflow:hidden;
  background:#fff;
  border:var(--guhl-contact-card-border);
  border-radius:19px;
  box-shadow:0 7px 24px rgb(16 50 82 / 5%);
}
.guhl-contact-directions__map{min-height:270px;background:#e6eef5}
.guhl-contact-directions__map iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:270px;
  border:0;
}
.guhl-contact-directions__map-fallback{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  min-height:270px;
  color:#566e83;
}
.guhl-contact-directions__map-fallback .guhl-icon{width:55px;height:55px}
.guhl-contact-directions__info{
  padding:2rem 2.3rem;
  align-self:center;
}
.guhl-contact-directions__info h2{
  font-size:clamp(1.55rem,2vw,2.05rem);
  margin:0 0 .5rem;
}
.guhl-contact-directions__info p{color:#60768a;margin:0 0 .8rem}
.guhl-contact-directions__info address{
  color:#173951;
  font-weight:740;
  font-style:normal;
  line-height:1.55;
  margin-bottom:1.3rem;
}
.guhl-contact-directions__info .guhl-button{gap:.65rem}
@media(max-width:1050px){
  .guhl-contact-layout{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr)}
  .guhl-contact-form-surface{padding:1.7rem}
}
@media(max-width:820px){
  .guhl-contact-layout{grid-template-columns:minmax(0,1fr);gap:1rem}
  .guhl-contact-form-surface{order:1}
  .guhl-contact-details{order:2;padding-top:0}
  .guhl-contact-details__intro{padding:1.1rem .4rem}
  .guhl-contact-detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .guhl-contact-detail-card{grid-template-columns:45px minmax(0,1fr);gap:.7rem;padding:1rem}
  .guhl-contact-detail-card__icon{width:42px;height:42px;border-radius:12px}
  .guhl-contact-detail-card__icon .guhl-icon{width:25px;height:25px}
}
@media(max-width:610px){
  .guhl-contact-page .guhl-hero__content{padding-block:2.45rem 4.2rem}
  .guhl-contact-page .guhl-hero h1{font-size:2.35rem}
  .guhl-contact-section{padding-bottom:3.25rem}
  .guhl-contact-layout{margin-top:-1.5rem}
  .guhl-contact-form-surface{padding:1.35rem 1.15rem;border-radius:17px}
  .guhl-contact-form-surface__heading h2{font-size:1.85rem}
  .guhl-contact-detail-cards{grid-template-columns:1fr}
  .guhl-contact-detail-card{grid-template-columns:48px minmax(0,1fr);padding:1rem}
  .guhl-contact-detail-card__icon{width:46px;height:46px}
  .guhl-contact-wpforms .wpforms-form .wpforms-field-row-block.wpforms-one-half{
    width:100%;
    float:none;
    margin-left:0;
    padding:0;
  }
  .guhl-contact-wpforms .wpforms-form .wpforms-field-row-block + .wpforms-field-row-block{margin-top:12px}
  .guhl-contact-wpforms .wpforms-form button.wpforms-submit{width:100%;min-width:0}
  .guhl-contact-directions{grid-template-columns:1fr}
  .guhl-contact-directions__map{min-height:210px}
  .guhl-contact-directions__map iframe{min-height:210px}
  .guhl-contact-directions__info{padding:1.45rem}
}
@media(prefers-reduced-motion:reduce){
  .guhl-contact-page .guhl-contact-wpforms *{transition:none}
}
