/* Porta Westfalica: responsive refinement and qualification closure. */
.page-porta{
  --porta-sea:#bfe6ec;
  --porta-sea-strong:#8fd5df;
  --porta-gold:#efd58f;
  --porta-gold-strong:#d7b662;
  font-family:"Source Sans 3","Segoe UI",Arial,sans-serif;
}

.page-porta :is(h1,h2,h3,.serif){
  font-family:"Literata",Georgia,serif;
}

.page-porta .accent-sea{
  color:var(--blue-dk);
  font-style:italic;
  font-weight:500;
}

.page-porta :is(h1,h2,h3){
  overflow-wrap:normal;
  text-wrap:balance;
  word-break:normal;
}

/* The result promise must stack before its text can collide at tablet widths. */
.page-porta .kompass .qflow{
  overflow:hidden;
}

.page-porta .kompass .qpromise{
  grid-template-columns:minmax(190px,.48fr) minmax(0,1fr);
  align-items:start;
  gap:18px 28px;
}

.page-porta .kompass .qpromise span{
  white-space:normal;
  line-height:1.45;
}

.page-porta .kompass .qpromise p{
  min-width:0;
  overflow-wrap:anywhere;
}

.page-porta .kompass :is(input,select,button),
.page-porta .kompass .kmarket-range i,
.page-porta .kompass .kstrategy-grid strong,
.page-porta .kompass .kmarket-copy h4,
.page-porta .kompass .kfollowup h4{
  font-family:"Source Sans 3","Segoe UI",Arial,sans-serif;
}

/* Real data fills the second column instead of a decorative placeholder. */
.page-porta .rent-market{
  padding-block:clamp(64px,7vw,92px);
}

.page-porta .rent-intro{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(310px,.72fr);
  gap:clamp(40px,7vw,92px);
  align-items:end;
}

.page-porta .rent-intro h2{
  max-width:17ch;
  margin:16px 0 22px;
  font-size:clamp(38px,4.3vw,60px);
  line-height:1.04;
}

.page-porta .rent-intro>div>p{
  max-width:63ch;
  margin:0;
  color:#4d676e;
  font-size:clamp(17px,1.35vw,19px);
}

.page-porta .rent-datalens{
  margin:0;
  border-top:1px solid rgba(22,84,95,.34);
}

.page-porta .rent-datalens>div{
  display:grid;
  grid-template-columns:minmax(115px,.7fr) minmax(0,1.3fr);
  gap:22px;
  align-items:baseline;
  padding:17px 0;
  border-bottom:1px solid rgba(22,84,95,.24);
}

.page-porta .rent-datalens dt{
  color:#486a72;
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.page-porta .rent-datalens dd{
  margin:0;
  color:#113f48;
  font-family:"Literata",Georgia,serif;
  font-size:clamp(19px,1.8vw,24px);
  font-weight:600;
  line-height:1.25;
}

.page-porta .rent-grid{
  margin-top:clamp(40px,5vw,64px);
}

/* Bring the report and trust sections back into visual rhythm. */
.page-porta .regional-report-feature{
  padding-block:clamp(58px,6vw,82px);
}

.page-porta .regional-report-grid{
  align-items:center;
}

.page-porta .regional-report-stage{
  min-height:clamp(390px,37vw,490px);
}

.page-porta .regional-report-copy h2{
  max-width:15ch;
}

.page-porta .why-rommelmann{
  padding-block:clamp(66px,7vw,94px);
}

.page-porta .trust-intro{
  display:grid;
  grid-template-columns:minmax(0,1.14fr) minmax(300px,.72fr);
  gap:clamp(42px,7vw,94px);
  align-items:end;
}

.page-porta .trust-intro h2{
  max-width:16ch;
  margin:16px 0 0;
  font-size:clamp(38px,4.3vw,60px);
  line-height:1.04;
}

.page-porta .trust-note{
  margin:0;
  padding:22px 0 3px;
  border-top:2px solid rgba(199,163,95,.72);
  color:#4d676e;
  font-size:17px;
  line-height:1.65;
}

.page-porta .trust-note strong{
  display:block;
  margin-bottom:7px;
  color:#143a44;
  font-size:18px;
}

.page-porta .why-rommelmann .pillars{
  margin-top:clamp(38px,5vw,62px)!important;
}

/* Qualification and contact: one composed finish, no empty decorative card. */
.page-porta .qualification-contact{
  position:relative;
  overflow:hidden;
  padding:0;
  background:
    radial-gradient(circle at 13% 24%,rgba(143,213,223,.17),transparent 28%),
    linear-gradient(116deg,#0b2b33 0%,#10434d 42%,#1d6b78 100%);
  color:#fff;
}

.page-porta .qualification-contact::before,
.page-porta .qualification-contact::after{
  position:absolute;
  border:1px solid rgba(191,230,236,.17);
  border-radius:50%;
  content:"";
  pointer-events:none;
}

.page-porta .qualification-contact::before{
  right:-16%;
  top:8%;
  width:52vw;
  height:28vw;
  transform:rotate(-14deg);
}

.page-porta .qualification-contact::after{
  left:-11%;
  bottom:5%;
  width:38vw;
  height:21vw;
  border-color:rgba(239,213,143,.15);
  transform:rotate(18deg);
}

.page-porta .qualification-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);
  gap:clamp(42px,6vw,86px);
  align-items:stretch;
}

.page-porta .qualification-portrait{
  position:relative;
  min-height:790px;
  align-self:stretch;
}

.page-porta .qualification-portrait::before{
  position:absolute;
  left:50%;
  top:clamp(130px,10vw,180px);
  width:112%;
  aspect-ratio:1;
  border:1px solid rgba(239,213,143,.25);
  border-radius:50%;
  content:"";
  transform:translateX(-50%);
}

.page-porta .qualification-portrait img{
  position:absolute;
  left:50%;
  top:clamp(130px,10vw,180px);
  display:block;
  width:min(132%,540px);
  height:auto;
  max-height:790px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 28px 30px rgba(1,16,20,.28));
  transform:translateX(-50%);
}

.page-porta .qualification-copy{
  min-width:0;
  padding-block:clamp(72px,7vw,104px);
}

.page-porta .qualification-copy>.eyebrow,
.page-porta .qualification-contact-heading>.eyebrow{
  color:var(--porta-sea);
}

.page-porta .qualification-copy>h2{
  max-width:16ch;
  margin:15px 0 22px;
  color:#fff;
  font-size:clamp(38px,4.15vw,58px);
  line-height:1.04;
}

.page-porta .qualification-contact .accent-sea{
  color:var(--porta-sea);
}

.page-porta .qualification-lead{
  max-width:66ch;
  margin:0;
  color:#d7e9eb;
  font-size:18px;
  line-height:1.65;
}

.page-porta .qualification-path{
  margin:35px 0 0;
  padding:0;
  border-top:1px solid rgba(191,230,236,.24);
  list-style:none;
}

.page-porta .qualification-path li{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:18px 0;
  border-bottom:1px solid rgba(191,230,236,.2);
}

.page-porta .qualification-index{
  padding-top:2px;
  color:var(--porta-gold-strong);
  font-size:14px;
  font-weight:800;
  letter-spacing:.08em;
}

.page-porta .qualification-path strong{
  color:var(--porta-gold);
  font-size:clamp(17px,1.4vw,20px);
  font-weight:700;
  line-height:1.42;
}

.page-porta .certification-proof{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:18px;
  align-items:center;
  margin-top:24px;
}

.page-porta .certification-mark{
  display:grid;
  width:54px;
  height:54px;
  place-items:center;
  border:1px solid rgba(239,213,143,.78);
  border-radius:50%;
  color:var(--porta-gold);
  font-family:"Literata",Georgia,serif;
  font-size:15px;
  font-style:italic;
}

.page-porta .certification-proof p{
  margin:0;
  color:#bdd7da;
  font-size:14px;
  line-height:1.55;
}

.page-porta .certification-proof strong{
  color:#fff;
  font-weight:700;
}

.page-porta .qualification-contact-action{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(42px,7vw,94px);
  align-items:start;
  margin-top:0;
  padding:44px 0 clamp(70px,7vw,96px);
  border-top:1px solid rgba(239,213,143,.42);
}

.page-porta .qualification-contact-action h3{
  max-width:17ch;
  margin:12px 0 15px;
  color:#fff;
  font-size:clamp(31px,3.2vw,44px);
  line-height:1.08;
}

.page-porta .qualification-contact-tools>p:not(.qualification-boundary){
  max-width:58ch;
  margin:0;
  color:#d7e9eb;
  font-size:17px;
}

.page-porta .qualification-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:25px;
}

.page-porta .qualification-mail{
  border-color:rgba(255,255,255,.5);
  background:transparent;
  color:#fff;
}

.page-porta .qualification-mail:hover{
  border-color:var(--porta-sea);
  background:rgba(191,230,236,.1);
}

.page-porta .qualification-boundary{
  margin:20px 0 0;
  color:#b9d5d9;
  font-size:14px;
  line-height:1.5;
}

@media(max-width:980px){
  .page-porta .kompass .qpromise{
    grid-template-columns:1fr;
  }

  .page-porta .kompass .qpromise p{
    padding-left:0;
    border-left:0;
  }

  .page-porta .rent-intro,
  .page-porta .trust-intro{
    grid-template-columns:1fr;
    gap:32px;
  }

  .page-porta .rent-datalens{
    max-width:680px;
  }

  .page-porta .trust-note{
    max-width:680px;
  }

  .page-porta .qualification-inner{
    grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
    gap:36px;
  }

  .page-porta .qualification-portrait{
    min-height:720px;
  }
}

@media(max-width:760px){
  .page-porta .regional-report-stage{
    min-height:410px;
  }

  .page-porta .qualification-inner{
    grid-template-columns:1fr;
    gap:0;
  }

  .page-porta .qualification-portrait{
    min-height:540px;
    order:1;
  }

  .page-porta .qualification-portrait img{
    top:auto;
    bottom:0;
    width:min(76vw,390px);
    max-height:none;
  }

  .page-porta .qualification-portrait::before{
    top:auto;
    bottom:3%;
    width:min(92vw,470px);
  }

  .page-porta .qualification-copy{
    order:2;
    padding-top:56px;
  }

  .page-porta .qualification-contact-action{
    grid-column:1;
    grid-template-columns:1fr;
    gap:24px;
    order:3;
    margin-top:0;
  }
}

@media(max-width:520px){
  .page-porta .rent-intro h2,
  .page-porta .trust-intro h2,
  .page-porta .qualification-copy>h2{
    font-size:clamp(34px,10.5vw,44px);
  }

  .page-porta .rent-datalens>div{
    grid-template-columns:1fr;
    gap:4px;
  }

  .page-porta .qualification-portrait{
    min-height:420px;
  }

  .page-porta .qualification-portrait img{
    width:min(77vw,300px);
    max-height:none;
    filter:none;
  }

  .page-porta .qualification-path li{
    grid-template-columns:38px minmax(0,1fr);
    gap:11px;
  }

  .page-porta .qualification-buttons{
    display:grid;
  }

  .page-porta .qualification-buttons .btn{
    justify-content:center;
    width:100%;
    padding-inline:18px;
  }
}
