/* GRV — contacts page, integrated from the approved contacts prototype */
.contacts-page{
  overflow-x:hidden;
  background:var(--surface-page);
  color:var(--text-primary);
}

.contacts-hero{
  padding:clamp(70px,7vw,104px) var(--pad) clamp(58px,6vw,86px);
}

.contacts-hero__inner{
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr);
  gap:clamp(52px,7vw,110px);
  align-items:end;
  max-width:1440px;
  margin:0 auto;
}

.contacts-hero h1{
  margin:0;
  font-size:clamp(46px,3.5vw,50px);
  font-weight:var(--fw-light);
  line-height:1.02;
  letter-spacing:-.04em;
}

.contacts-hero p{
  max-width:760px;
  margin:0;
  color:var(--text-secondary);
  font-size:18px;
  line-height:1.55;
}

.contacts-section{
  padding:clamp(72px,7vw,108px) var(--pad) clamp(92px,8vw,132px);
}

.contacts-layout{
  display:grid;
  grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
  gap:clamp(60px,7vw,112px);
  align-items:start;
  max-width:1440px;
  margin:0 auto;
}

.contacts-primary{
  position:sticky;
  top:128px;
}

.contacts-primary h2{
  margin:0 0 24px;
  font-size:clamp(44px,3.4vw,50px);
  font-weight:var(--fw-light);
  line-height:1.04;
  letter-spacing:-.04em;
}

.contacts-primary p{
  max-width:500px;
  margin:0 0 18px;
  color:var(--text-secondary);
  font-size:16px;
  line-height:1.6;
}

.contacts-primary .contacts-availability{color:var(--text-primary);}

.contact-actions{
  display:flex;
  gap:14px;
  width:min(100%,500px);
  margin-top:34px;
}

.contact-actions .gx-btn{
  flex:1 1 0;
  height:58px;
  font-size:15px;
}

.contact-channels{border-top:1px solid var(--text-primary);}

.contact-row{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(150px,.65fr) minmax(0,1fr) 28px;
  gap:20px;
  align-items:center;
  min-height:118px;
  overflow:hidden;
  border-bottom:1px solid var(--border-subtle);
  color:var(--text-primary);
  transition:padding .5s var(--ease),color .35s ease;
}

.contact-row::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:var(--accent-buttermilk);
  transform:translateY(101%);
  transition:transform .55s var(--ease);
}

.contact-row > span{position:relative;z-index:1;}
.contact-row__index{color:var(--text-muted);font-size:11px;letter-spacing:.08em;}
.contact-row__name{font-size:clamp(27px,2.15vw,31px);font-weight:var(--fw-light);line-height:1.05;letter-spacing:-.025em;}
.contact-row__value{min-width:0;color:var(--text-secondary);font-size:16px;line-height:1.45;overflow-wrap:anywhere;}
.contact-row__arrow{justify-self:end;font-size:20px;transition:transform .45s var(--ease);}
.contact-row--static{cursor:default;}
.contact-row--static .contact-row__arrow{color:var(--text-muted);}

@media(hover:hover){
  .contact-row:not(.contact-row--static):hover{padding-right:14px;padding-left:18px;}
  .contact-row:not(.contact-row--static):hover::before{transform:translateY(0);}
  .contact-row:not(.contact-row--static):hover .contact-row__arrow{transform:translate(4px,-4px);}
  .contact-row:not(.contact-row--static):hover .contact-row__index,
  .contact-row:not(.contact-row--static):hover .contact-row__value{color:var(--text-primary);}
}

.contact-row:focus-visible{
  z-index:2;
  outline:2px solid var(--accent-clay);
  outline-offset:4px;
}

.company-details-section{
  padding:0 var(--pad) clamp(92px,8vw,132px);
}

.company-details-layout{
  display:grid;
  grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
  gap:clamp(60px,7vw,112px);
  max-width:1440px;
  margin:0 auto;
  padding-top:clamp(64px,6vw,88px);
  border-top:1px solid var(--text-primary);
}

#company-details-title{
  margin:0;
  font-size:clamp(36px,3vw,44px);
  font-weight:var(--fw-regular);
  line-height:1.04;
  letter-spacing:-.04em;
}

.company-details-content{
  display:grid;
  gap:clamp(48px,5vw,72px);
}

.company-details-group h3{
  margin:0 0 22px;
  color:var(--text-muted);
  font-size:11px;
  font-weight:var(--fw-regular);
  line-height:1.3;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.company-details-name{
  max-width:700px;
  margin:0 0 24px;
  font-size:clamp(24px,2vw,30px);
  font-weight:var(--fw-regular);
  line-height:1.25;
  letter-spacing:-.025em;
}

.company-details-list{
  margin:0;
  border-top:1px solid var(--border-subtle);
}

.company-details-list > div{
  display:grid;
  grid-template-columns:minmax(170px,.45fr) minmax(0,1fr);
  gap:24px;
  padding:18px 0;
  border-bottom:1px solid var(--border-subtle);
}

.company-details-list dt,
.company-details-list dd{
  margin:0;
  font-size:15px;
  font-weight:var(--fw-regular);
  line-height:1.5;
}

.company-details-list dt{color:var(--text-muted);}
.company-details-list dd{overflow-wrap:anywhere;}
.company-details-list a{color:inherit;}

@media(max-width:1199px){
  .contacts-layout{gap:60px;}
  .company-details-layout{gap:60px;}
  .contact-row{grid-template-columns:36px minmax(130px,.6fr) minmax(0,1fr) 24px;}
}

@media(max-width:1023px){
  .contacts-hero__inner{grid-template-columns:.8fr 1.2fr;gap:44px;}
  .contacts-layout{grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);gap:44px;}
  .company-details-layout{grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);gap:44px;}
  .contact-row{grid-template-columns:34px minmax(120px,.6fr) minmax(0,1fr) 22px;gap:14px;}
}

@media(max-width:767px){
  .contacts-hero{padding:58px 20px 52px;}
  .contacts-hero__inner{grid-template-columns:1fr;gap:20px;}
  .contacts-hero h1{font-size:46px;}
  .contacts-hero p{font-size:17px;}
  .contacts-section{padding:64px 20px 82px;}
  .contacts-layout{grid-template-columns:1fr;gap:58px;}
  .company-details-section{padding:0 20px 82px;}
  .company-details-layout{grid-template-columns:1fr;gap:38px;padding-top:58px;}
  .contacts-primary{position:relative;top:auto;}
  .contacts-primary h2{font-size:42px;}

  /* Compact mobile-only section rhythm. */
  .contacts-section{padding-top:60px;padding-bottom:60px;}
  .contacts-layout{gap:44px;}
  .company-details-section{padding-bottom:60px;}
  .company-details-layout{gap:32px;padding-top:60px;}

  /* Requisites keep the standard readable size with a regular weight. */
  .company-details-name,
  .company-details-list dt,
  .company-details-list dd{font-weight:var(--fw-regular) !important;}
}

@media(max-width:540px){
  .contacts-hero h1{font-size:40px;}
  .contacts-hero p{font-size:16px;}
  .contacts-primary h2{font-size:36px;}
  .contact-actions{flex-direction:column;width:100%;max-width:none;gap:12px;}
  .contact-actions .gx-btn{flex:none;width:100%;}
  .contact-row{
    grid-template-columns:28px minmax(0,1fr) 22px;
    grid-template-areas:"index name arrow" ". value arrow";
    gap:8px 12px;
    min-height:108px;
    padding:18px 0;
  }
  .contact-row__index{grid-area:index;align-self:start;padding-top:4px;}
  .contact-row__name{grid-area:name;font-size:26px;}
  .contact-row__value{grid-area:value;font-size:14px;}
  .contact-row__arrow{grid-area:arrow;align-self:center;}
  #company-details-title{font-size:36px;}
  .company-details-name{font-size:23px;}
  .company-details-list > div{grid-template-columns:1fr;gap:5px;padding:16px 0;}
  .company-details-list dt,
  .company-details-list dd{font-size:14px;}
}

@media(prefers-reduced-motion:reduce){
  .contact-row,
  .contact-row::before,
  .contact-row__arrow{transition:none;}
}
