.gfrm-contact-page{
  background:#f3f5f6;
}

/* Capçalera curta i integrada */
.gfrm-contact-hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  background:#0a0f14;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.gfrm-contact-hero__media{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 84% 48%,rgba(255,196,0,.18),transparent 21%),
    radial-gradient(circle at 88% 46%,rgba(255,255,255,.035),transparent 34%),
    linear-gradient(115deg,#070a0d 0%,#0d151d 58%,#182530 100%);
}
.gfrm-contact-hero__media::before,
.gfrm-contact-hero__media::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,196,0,.16);
  border-radius:50%;
  pointer-events:none;
}
.gfrm-contact-hero__media::before{
  width:320px;
  height:320px;
  right:8%;
  top:-170px;
}
.gfrm-contact-hero__media::after{
  width:190px;
  height:190px;
  right:15%;
  bottom:-130px;
}
.gfrm-contact-hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(4,7,10,.98) 0%,rgba(7,12,17,.84) 55%,rgba(7,12,17,.34) 100%);
}
.gfrm-contact-hero__inner{
  position:relative;
  z-index:1;
  min-height:176px;
  display:flex;
  align-items:center;
  padding-block:38px 34px;
}
.gfrm-contact-hero__content{
  max-width:720px;
}
.gfrm-contact-hero__content>span{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
  color:var(--gfrm-yellow);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.gfrm-contact-hero__content>span::before{
  content:"";
  width:28px;
  height:3px;
  background:currentColor;
}
.gfrm-contact-hero h1{
  margin:0;
  font-size:clamp(40px,4vw,58px);
  line-height:1;
  letter-spacing:-.04em;
  font-weight:900;
}
.gfrm-contact-hero p{
  max-width:680px;
  margin:14px 0 0;
  color:rgba(255,255,255,.76);
  font-size:clamp(16px,1.1vw,19px);
  line-height:1.55;
}

.gfrm-contact-page__content{
  position:relative;
  z-index:2;
  padding:34px 0 52px;
}
.gfrm-contact-page .gfrm-contact-core{
  grid-template-columns:minmax(270px,.58fr) minmax(0,1.42fr);
  gap:24px;
  align-items:stretch;
  max-width:1240px;
  margin:0 auto;
}

/* Bloc informatiu més compacte i menys administratiu */
.gfrm-contact-page .gfrm-contact-info,
.gfrm-contact-page .gfrm-contact-form-card{
  border-radius:20px;
  box-shadow:0 16px 42px rgba(15,23,42,.08);
}
.gfrm-contact-page .gfrm-contact-info{
  position:relative;
  overflow:hidden;
  min-height:100%;
  padding:38px 32px;
  border-color:#18232d;
  background:
    radial-gradient(circle at 90% 88%,rgba(255,196,0,.18),transparent 25%),
    linear-gradient(155deg,#0a1016 0%,#111c25 100%);
}
.gfrm-contact-page .gfrm-contact-info::before{
  content:"";
  position:absolute;
  right:-92px;
  top:46px;
  width:230px;
  height:230px;
  border:1px solid rgba(255,196,0,.13);
  border-radius:50%;
}
.gfrm-contact-page .gfrm-contact-info::after{
  content:"";
  position:absolute;
  right:-40px;
  bottom:-80px;
  width:210px;
  height:210px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,196,0,.18),rgba(255,196,0,0) 68%);
  pointer-events:none;
}
.gfrm-contact-page .gfrm-contact-info>*{
  position:relative;
  z-index:1;
}
.gfrm-contact-page .gfrm-contact-info h2{
  font-size:clamp(1.75rem,2vw,2.15rem);
}
.gfrm-contact-page .gfrm-contact-info>p{
  max-width:370px;
}
.gfrm-contact-page .gfrm-contact-details{
  display:grid;
  gap:12px;
  margin-top:28px;
}
.gfrm-contact-page .gfrm-contact-details div{
  position:relative;
  padding:15px 16px 15px 48px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.gfrm-contact-page .gfrm-contact-details div::before{
  content:"";
  position:absolute;
  left:16px;
  top:19px;
  width:16px;
  height:16px;
  border:2px solid rgba(255,196,0,.82);
  border-radius:50%;
  box-shadow:inset 0 0 0 3px #101821;
}
.gfrm-contact-page .gfrm-contact-details dt{
  margin-bottom:4px;
  font-size:.67rem;
}
.gfrm-contact-page .gfrm-contact-details dd{
  font-size:.94rem;
  line-height:1.45;
}
.gfrm-contact-page .gfrm-contact-info__note{
  margin-top:22px!important;
  padding:18px 2px 0;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.58)!important;
}

/* Formulari més contingut i refinat */
.gfrm-contact-page .gfrm-contact-form-card{
  padding:38px 42px;
  border-color:#e3e6e8;
  background:#fffefa;
}
.gfrm-contact-page .gfrm-contact-form-card>header,
.gfrm-contact-page .gfrm-contact-feedback,
.gfrm-contact-page .gfrm-contact-form,
.gfrm-contact-page .gfrm-contact-closed{
  max-width:820px;
}
.gfrm-contact-page .gfrm-contact-form-card header{
  margin-bottom:26px;
  padding-bottom:22px;
  border-bottom:1px solid #eceff1;
}
.gfrm-contact-page .gfrm-contact-form-card h2{
  font-size:clamp(1.9rem,2.3vw,2.55rem);
  letter-spacing:-.025em;
}
.gfrm-contact-page .gfrm-contact-field input,
.gfrm-contact-page .gfrm-contact-field select,
.gfrm-contact-page .gfrm-contact-field textarea{
  background:#fff;
  border-color:#d9dee1;
  border-radius:10px;
}
.gfrm-contact-page .gfrm-contact-field input,
.gfrm-contact-page .gfrm-contact-field select{
  min-height:52px;
}
.gfrm-contact-page .gfrm-contact-field textarea{
  min-height:170px;
}
.gfrm-contact-page .gfrm-contact-form__grid{
  gap:19px 18px;
}
.gfrm-contact-page .gfrm-contact-consent{
  margin-top:18px;
}
.gfrm-contact-page .gfrm-contact-form__footer{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid #eceff1;
}
.gfrm-contact-page .gfrm-contact-submit{
  min-width:205px;
  min-height:52px;
  padding-inline:32px;
  border-radius:9px;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
  box-shadow:0 8px 18px rgba(196,143,0,.18);
}
.gfrm-contact-page .gfrm-contact-submit:hover{
  transform:translateY(-2px);
  background:#ffd12d;
  box-shadow:0 12px 24px rgba(196,143,0,.24);
}

@media(max-width:1050px){
  .gfrm-contact-page .gfrm-contact-core{
    grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
  }
  .gfrm-contact-page .gfrm-contact-form-card{
    padding:34px 30px;
  }
}
@media(max-width:900px){
  .gfrm-contact-hero__inner{min-height:166px}
  .gfrm-contact-page .gfrm-contact-core{grid-template-columns:1fr}
  .gfrm-contact-page .gfrm-contact-info,
  .gfrm-contact-page .gfrm-contact-form-card{padding:30px}
  .gfrm-contact-page .gfrm-contact-info{min-height:auto}
}
@media(max-width:640px){
  .gfrm-contact-hero__inner{min-height:150px;padding-block:34px 28px}
  .gfrm-contact-hero h1{font-size:42px}
  .gfrm-contact-hero p{font-size:16px}
  .gfrm-contact-page__content{padding:22px 0 36px}
  .gfrm-contact-page .gfrm-contact-info,
  .gfrm-contact-page .gfrm-contact-form-card{padding:24px 20px;border-radius:15px}
  .gfrm-contact-page .gfrm-contact-form__footer{align-items:stretch}
  .gfrm-contact-page .gfrm-contact-submit{width:100%}
}

/* Garantia final contra estils del Core o d'antigues plantilles. */
body.page-contacte .gfrm-contact-page__content > .gfrm-shell,
body.page-id-0 .gfrm-contact-page__content > .gfrm-shell{
  width:min(1320px,calc(100% - 48px));
  max-width:none;
}
.gfrm-contact-page .gfrm-contact-core{
  display:grid!important;
  grid-template-columns:minmax(270px,.58fr) minmax(0,1.42fr)!important;
  gap:24px!important;
  max-width:1240px!important;
  margin-inline:auto!important;
}
.gfrm-contact-page .gfrm-contact-info{
  padding:38px 32px!important;
  border-radius:20px!important;
  background:radial-gradient(circle at 90% 88%,rgba(255,196,0,.18),transparent 25%),linear-gradient(155deg,#0a1016 0%,#111c25 100%)!important;
}
.gfrm-contact-page .gfrm-contact-form-card{
  padding:38px 42px!important;
  border-radius:20px!important;
  background:#fffefa!important;
}
.gfrm-contact-page .gfrm-contact-details div{
  padding:15px 16px 15px 48px!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.035)!important;
}
@media(max-width:900px){
  .gfrm-contact-page .gfrm-contact-core{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  body.page-contacte .gfrm-contact-page__content > .gfrm-shell,
  body.page-id-0 .gfrm-contact-page__content > .gfrm-shell{
    width:calc(100% - 28px);
  }
  .gfrm-contact-page .gfrm-contact-info,
  .gfrm-contact-page .gfrm-contact-form-card{
    padding:24px 20px!important;
    border-radius:15px!important;
  }
}
