/* primawo location pages – final mobile master
 * Loaded AFTER location-pages.css. Scope: .prima-location only.
 * Purpose: one predictable mobile cascade instead of stacking historical
 * breakpoint rules from desktop iterations.
 */

@media (max-width: 820px) {
  .prima-location,
  .prima-location * {
    min-width: 0;
  }

  .prima-location-shell,
  .prima-location-hero .prima-location-shell {
    width: min(680px, calc(100% - 32px)) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  .prima-location-section {
    padding-block: 72px !important;
  }

  .prima-location h1,
  .prima-location h2,
  .prima-location h3,
  .prima-location p,
  .prima-location strong,
  .prima-location small,
  .prima-location span {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  /* Hero */
  .prima-location-hero::after {
    display: none !important;
  }
  .prima-location-hero__grid {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    gap: 38px !important;
    padding: 72px 0 74px !important;
  }
  .prima-location-hero__copy {
    width: 100%;
    max-width: 660px !important;
  }
  .prima-location-hero h1 {
    max-width: 640px;
    font-size: clamp(2.8rem, 9.8vw, 4.4rem) !important;
    line-height: .96 !important;
  }
  .prima-location-hero__lead {
    max-width: 640px;
    margin-top: 20px !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }
  .prima-location-hero__actions {
    margin-top: 26px !important;
  }
  .prima-location-map {
    width: 100%;
    min-height: 390px !important;
    border-radius: 24px !important;
  }

  /* Trust bar */
  .prima-location-trustbar {
    margin-top: -24px !important;
  }
  .prima-location-trustbar__grid {
    grid-template-columns: 1fr 1fr !important;
    border-radius: 16px !important;
  }
  .prima-location-trustbar__grid > div {
    min-height: 96px !important;
    padding: 18px !important;
  }

  /* Intro */
  .prima-location-intro {
    padding-top: 66px !important;
    padding-bottom: 74px !important;
  }
  .prima-location-intro__grid {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }
  .prima-location-intro__copy,
  .prima-location-intro__copy h2,
  .prima-location-intro__copy p {
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-intro__visual {
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  .prima-location-intro__visual::before,
  .prima-location-intro__visual::after {
    display: none !important;
  }
  .prima-location-intro__image {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-height: 360px !important;
    border-radius: 22px !important;
  }
  .prima-location-intro__stamp {
    left: 16px !important;
    right: 16px !important;
    bottom: 16px !important;
    width: auto !important;
    max-width: 280px !important;
  }
  .prima-location-intro__benefits {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 12px !important;
    padding: 8px 16px !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 42px rgba(0,5,55,.1) !important;
  }
  .prima-location-intro__benefits > div {
    grid-template-columns: 36px minmax(0,1fr) !important;
    gap: 12px !important;
    padding: 12px 0 !important;
  }
  .prima-location-intro__benefits > div + div {
    border-left: 0 !important;
    border-top: 1px solid rgba(0,5,55,.08) !important;
  }
  .prima-location-intro__benefits strong,
  .prima-location-intro__benefits small {
    max-width: none !important;
  }

  /* Services and #prima benefits */
  .prima-location-sectionhead--editorial,
  .prima-location-difference__intro,
  .prima-location-difference__header {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .prima-location-sectionhead--editorial > p {
    max-width: none !important;
    padding-left: 0 !important;
    border-left: 0 !important;
  }
  .prima-location-servicegrid,
  .prima-location-featuregrid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .prima-location-services .prima-location-servicecard,
  .prima-location-featuregrid article {
    min-height: 0 !important;
    padding: 26px !important;
    border-radius: 20px !important;
  }
  .prima-location-featuregrid article {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  /* Project block */
  .prima-location-projects--showcase .prima-location-projects__grid {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }
  .prima-location-projects__copy,
  .prima-location-projects__copy h2,
  .prima-location-projects__copy > p {
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-projects__microproof {
    grid-template-columns: 1fr !important;
  }
  .prima-location-project-showcase {
    min-height: 0 !important;
    padding: 24px !important;
    border-radius: 24px !important;
  }
  .prima-location-project-showcase__hero,
  .prima-location-project-showcase__aside,
  .prima-location-project-showcase__journey {
    grid-template-columns: 1fr !important;
  }
  .prima-location-project-showcase__footer {
    grid-template-columns: 1fr !important;
  }

  /* Districts */
  .prima-location-districts__head,
  .prima-location-districts__layout--editorial {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
  .prima-location-districts__head {
    margin-bottom: 36px !important;
  }
  .prima-location-districts__head > p {
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-area-stage {
    min-height: 520px !important;
    border-radius: 24px !important;
  }
  .prima-location-district-editorial__grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
  }
  .prima-location-district-editorial__grid article {
    min-height: 0 !important;
  }
  .prima-location-district-editorial__note {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  /* Change process */
  .prima-location-change__head {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .prima-location-change__frame {
    padding: 28px !important;
    border-radius: 24px !important;
  }
  .prima-location-process--rail {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding-left: 0 !important;
  }
  .prima-location-process--rail::before {
    display: none !important;
  }
  .prima-location-process--rail li {
    display: grid !important;
    grid-template-columns: 50px minmax(0,1fr) !important;
    gap: 16px !important;
    min-height: 0 !important;
    padding: 0 0 24px !important;
  }
  .prima-location-process--rail p {
    max-width: none !important;
  }
  .prima-location-change__cta--integrated {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  /* Family / company story */
  .prima-location-proof--story .prima-location-proof__grid,
  .prima-location-proof__grid--editorial {
    grid-template-columns: 1fr !important;
    gap: 38px !important;
  }
  .prima-location-proof__story {
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-proof__headline {
    width: 100% !important;
    max-width: none !important;
    font-size: clamp(2.35rem, 8.8vw, 3.6rem) !important;
    line-height: .98 !important;
  }
  .prima-location-proof__headline > span {
    display: block !important;
    white-space: normal !important;
  }
  .prima-location-proof__story > .prima-location-lead {
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-history {
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
    margin: 26px 0 22px !important;
  }
  .prima-location-history__item {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: 72px minmax(0,1fr) !important;
    gap: 16px !important;
    padding: 18px !important;
  }
  .prima-location-history__body,
  .prima-location-history__body strong,
  .prima-location-history__body p {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  .prima-location-proof-estate {
    width: 100% !important;
    padding: 26px !important;
    border-radius: 24px !important;
  }
  .prima-location-proof-estate__milestones {
    grid-template-columns: 1fr !important;
  }
  .prima-location-proof-estate__values {
    grid-template-columns: 1fr 1fr !important;
  }

  /* FAQ / closing */
  .prima-location-faq__head,
  .prima-location-faq__layout {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
  .prima-location-faq__contact {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-closing--premium .prima-location-closing__card {
    grid-template-columns: 1fr !important;
  }
  .prima-location-closing--premium .prima-location-closing__actions {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 600px) {
  .prima-location-shell,
  .prima-location-hero .prima-location-shell {
    width: calc(100% - 24px) !important;
  }

  .prima-location-section {
    padding-block: 58px !important;
  }

  .prima-location-kicker {
    font-size: .66rem !important;
    letter-spacing: .11em !important;
  }

  .prima-location h2 {
    font-size: clamp(2rem, 9.5vw, 2.7rem) !important;
    line-height: 1.02 !important;
  }

  /* Hero compact */
  .prima-location-hero__grid {
    padding: 54px 0 64px !important;
    gap: 30px !important;
  }
  .prima-location-hero h1 {
    font-size: clamp(2.65rem, 12vw, 3.65rem) !important;
  }
  .prima-location-hero h1 span + span {
    font-size: .62em !important;
    line-height: 1.06 !important;
  }
  .prima-location-hero__actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .prima-location-button {
    width: 100% !important;
  }
  .prima-location-map {
    min-height: 330px !important;
  }
  .prima-location-map__postcode {
    top: 18px !important;
    right: 16px !important;
    font-size: 2.8rem !important;
  }
  .prima-location-map__core {
    width: min(220px, 66%) !important;
    padding: 18px !important;
  }
  .prima-location-map__core strong {
    font-size: 1.55rem !important;
  }
  .prima-location-map__pin {
    font-size: .56rem !important;
    padding: 5px 7px !important;
  }
  .prima-location-map__office {
    left: 16px !important;
    bottom: 14px !important;
  }

  .prima-location-trustbar__grid > div {
    min-height: 84px !important;
    padding: 14px !important;
  }
  .prima-location-trustbar strong {
    font-size: 1rem !important;
  }
  .prima-location-trustbar span {
    font-size: .66rem !important;
  }

  /* Intro image and benefits */
  .prima-location-intro {
    padding-top: 54px !important;
    padding-bottom: 60px !important;
  }
  .prima-location-intro__image {
    min-height: 280px !important;
  }
  .prima-location-intro__stamp {
    max-width: 235px !important;
    padding: 14px !important;
  }
  .prima-location-intro__benefits {
    padding: 6px 14px !important;
  }

  /* Cards */
  .prima-location-services .prima-location-servicecard,
  .prima-location-featuregrid article,
  .prima-location-district-editorial__feature,
  .prima-location-district-editorial__grid article,
  .prima-location-project-showcase,
  .prima-location-proof-estate,
  .prima-location-faq__contact {
    border-radius: 20px !important;
  }

  /* Districts */
  .prima-location-area-stage {
    min-height: 440px !important;
    padding: 18px !important;
  }
  .prima-location-area-stage__postcode {
    top: 16px !important;
    right: 14px !important;
    font-size: 3.8rem !important;
  }
  .prima-location-area-stage__core {
    width: min(230px, calc(100% - 42px)) !important;
    padding: 20px !important;
  }
  .prima-location-area-stage__district {
    font-size: .58rem !important;
    padding: 6px 9px !important;
  }
  .prima-location-area-stage__foot {
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .prima-location-area-stage__foot span {
    max-width: none !important;
    text-align: left !important;
  }
  .prima-location-district-editorial__grid {
    grid-template-columns: 1fr !important;
  }

  /* Change */
  .prima-location-change__frame {
    padding: 22px 18px !important;
  }
  .prima-location-change__cta--integrated {
    padding: 20px !important;
  }

  /* Family block – force readable full-width content */
  .prima-location-proof__headline {
    font-size: clamp(2.15rem, 10.4vw, 2.75rem) !important;
  }
  .prima-location-history__item {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 17px 18px !important;
  }
  .prima-location-history__year {
    justify-self: start !important;
  }
  .prima-location-history__body {
    display: block !important;
    width: 100% !important;
  }
  .prima-location-history__body strong {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    font-size: 1rem !important;
    line-height: 1.3 !important;
  }
  .prima-location-history__body p {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 6px 0 0 !important;
    font-size: .82rem !important;
    line-height: 1.55 !important;
  }
  .prima-location-proof__badges {
    gap: 7px !important;
  }
  .prima-location-proof__badges span {
    padding: 7px 10px !important;
    font-size: .65rem !important;
  }
  .prima-location-proof-estate {
    padding: 22px !important;
  }
  .prima-location-proof-estate__head strong {
    font-size: 1.7rem !important;
  }
  .prima-location-proof-estate__milestones,
  .prima-location-proof-estate__values {
    grid-template-columns: 1fr !important;
  }
  .prima-location-proof-estate__milestones article,
  .prima-location-proof-estate__values article {
    min-height: 0 !important;
  }

  /* FAQ */
  .prima-location-faq__contact {
    padding: 22px !important;
  }
  .prima-location-faq--premium .prima-location-faq__items summary {
    grid-template-columns: 30px minmax(0,1fr) 28px !important;
    gap: 10px !important;
    padding: 16px 14px !important;
  }
  .prima-location-faq--premium .prima-location-faq__items details > div {
    padding: 0 18px 18px 54px !important;
  }

  /* Closing */
  .prima-location-closing--premium {
    padding: 58px 0 !important;
  }
  .prima-location-closing--premium .prima-location-closing__card {
    padding: 26px 20px !important;
    border-radius: 22px !important;
  }
}

@media (max-width: 390px) {
  .prima-location-shell,
  .prima-location-hero .prima-location-shell {
    width: calc(100% - 20px) !important;
  }
  .prima-location-hero h1 {
    font-size: 2.55rem !important;
  }
  .prima-location h2 {
    font-size: 2rem !important;
  }
  .prima-location-history__body strong {
    font-size: .96rem !important;
  }
}

/* 2.3.6 – final mobile text-box formatting */
@media (max-width:820px){
  .prima-location-intro__benefits{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
  }
  .prima-location-intro__benefits .prima-location-intro__benefit{
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr)!important;
    gap:14px!important;
    align-items:start!important;
    width:100%!important;
    min-width:0!important;
    padding:16px 0!important;
  }
  .prima-location-intro__benefit-icon{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
  }
  .prima-location-intro__benefit-copy{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }
  .prima-location-intro__benefit-copy strong{
    width:100%!important;
    max-width:none!important;
    font-size:1rem!important;
    line-height:1.22!important;
  }
  .prima-location-intro__benefit-copy small{
    width:100%!important;
    max-width:none!important;
    margin-top:6px!important;
    font-size:.82rem!important;
    line-height:1.48!important;
  }

  .prima-location-history__item{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    padding:18px!important;
  }
  .prima-location-history__top{
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:10px 12px!important;
    width:100%!important;
    min-width:0!important;
  }
  .prima-location-history__top strong{
    flex:1 1 190px!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    font-size:1rem!important;
    line-height:1.25!important;
  }
  .prima-location-history__text{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:10px 0 0!important;
    font-size:.84rem!important;
    line-height:1.55!important;
  }
}

@media (max-width:600px){
  .prima-location-intro__benefits{
    padding:10px 18px!important;
  }
  .prima-location-intro__benefits .prima-location-intro__benefit{
    grid-template-columns:46px minmax(0,1fr)!important;
    gap:14px!important;
    padding:18px 0!important;
  }
  .prima-location-intro__benefit-icon{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
  }
  .prima-location-intro__benefit-copy strong{
    font-size:1.02rem!important;
  }
  .prima-location-intro__benefit-copy small{
    font-size:.84rem!important;
    line-height:1.5!important;
  }
  .prima-location-history__top strong{
    flex-basis:170px!important;
    font-size:.98rem!important;
  }
  .prima-location-history__text{
    font-size:.84rem!important;
  }
}

/* 2.3.7 mobile refinement: slim project module + animated Oberursel map */
@media (max-width: 820px) {
  .prima-location-projects__grid--refined,
  .prima-location-citymap-layout {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .prima-location-projects__copy--refined,
  .prima-location-projects__copy--refined h2,
  .prima-location-projects__copy--refined > p {
    width: 100% !important;
    max-width: none !important;
  }
  .prima-location-projects__signals--inline {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .prima-location-project-compact {
    width: 100% !important;
    padding: 24px !important;
    border-radius: 24px !important;
  }
  .prima-location-project-compact__steps {
    grid-template-columns: 1fr 1fr !important;
  }
  .prima-location-citymap-card {
    width: 100% !important;
    min-height: 0 !important;
    border-radius: 24px !important;
  }
  .prima-location-citymap {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }
  .prima-location-citymap-panel {
    width: 100% !important;
    border-radius: 24px !important;
  }
}

@media (max-width: 600px) {
  .prima-location-project-compact {
    padding: 20px !important;
  }
  .prima-location-project-compact__top {
    flex-direction: column !important;
    gap: 14px !important;
  }
  .prima-location-project-compact__metric > strong {
    font-size: clamp(2.25rem, 11vw, 3.15rem) !important;
  }
  .prima-location-project-compact__steps {
    grid-template-columns: 1fr !important;
  }
  .prima-location-project-compact__steps li {
    min-height: 0 !important;
  }
  .prima-location-citymap-card {
    padding: 14px 12px 12px !important;
  }
  .prima-location-citymap-card__meta {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 8px !important;
  }
  .prima-location-citymap-card__meta > span {
    display: none !important;
  }
  .prima-location-citymap__district text {
    font-size: 13px !important;
  }
  .prima-location-citymap__district .prima-location-citymap__sub {
    font-size: 8px !important;
  }
  .prima-location-citymap-card__foot {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 5px !important;
  }
  .prima-location-citymap-panel__intro {
    padding: 22px 18px 18px !important;
  }
  .prima-location-citymap-panel__intro > strong {
    font-size: 1.35rem !important;
  }
  .prima-location-citymap-panel__district {
    grid-template-columns: 38px minmax(0,1fr) !important;
    gap: 11px !important;
    padding: 16px 18px !important;
  }
  .prima-location-citymap-panel__note {
    align-items: flex-start !important;
    flex-direction: column !important;
    padding: 18px !important;
  }
}

/* 2.3.8 – Oberursel city panel: reliable mobile text width */
@media (max-width: 820px) {
  .prima-location-citymap-panel__district {
    display:flex!important;
    align-items:flex-start!important;
    gap:12px!important;
    padding:18px!important;
  }
  .prima-location-citymap-panel__district > span {
    flex:0 0 34px!important;
    width:34px!important;
    height:34px!important;
  }
  .prima-location-citymap-panel__district > div {
    flex:1 1 auto!important;
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
  }
  .prima-location-citymap-panel__district h3,
  .prima-location-citymap-panel__district p {
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    hyphens:auto!important;
  }
  .prima-location-citymap-panel__district h3 {
    margin:1px 0 7px!important;
    font-size:1rem!important;
    line-height:1.24!important;
  }
  .prima-location-citymap-panel__district p {
    margin:0!important;
    font-size:.84rem!important;
    line-height:1.58!important;
  }
}

/* ========================================================================
   2.3.9 – District panel mobile final alignment
   ======================================================================== */
@media (max-width: 820px) {
  .prima-location-citymap-panel__district {
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    align-items:start!important;
    justify-content:stretch!important;
    column-gap:12px!important;
    row-gap:0!important;
    width:100%!important;
    min-width:0!important;
    padding:17px 18px!important;
  }
  .prima-location-citymap-panel__district-index {
    grid-column:1!important;
    width:34px!important;
    height:34px!important;
    margin:0!important;
  }
  .prima-location-citymap-panel__district-copy {
    grid-column:2!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  .prima-location-citymap-panel__district-copy h3,
  .prima-location-citymap-panel__district-copy p {
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    text-align:left!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .prima-location-citymap-panel__district-copy h3 {
    margin:1px 0 7px!important;
    font-size:1rem!important;
    line-height:1.24!important;
  }
  .prima-location-citymap-panel__district-copy p {
    margin:0!important;
    font-size:.84rem!important;
    line-height:1.58!important;
  }
  .prima-location-citymap-panel__note {
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    align-items:start!important;
    justify-content:stretch!important;
    gap:12px!important;
    padding:18px!important;
  }
  .prima-location-citymap-panel__note > .prima-location-localnote__mark {
    grid-column:1!important;
    margin:0!important;
  }
  .prima-location-citymap-panel__note-copy {
    grid-column:2!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  .prima-location-citymap-panel__note-copy strong,
  .prima-location-citymap-panel__note-copy p {
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    text-align:left!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .prima-location-citymap-panel__note > a {
    grid-column:2!important;
    justify-self:start!important;
    margin-top:4px!important;
    white-space:normal!important;
  }
}

/* ========================================================================
   2.3.10 – Mobile Ortepanel: Nummer/Titel exakt horizontal + Note ohne P
   ======================================================================== */
@media (max-width:820px){
  .prima-location-citymap-panel__district-copy h3{
    min-height:34px!important;
    display:flex!important;
    align-items:center!important;
    margin:0 0 7px!important;
    line-height:1.2!important;
  }
  .prima-location-citymap-panel__note{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    padding:18px!important;
  }
  .prima-location-citymap-panel__note-copy{
    grid-column:1!important;
  }
  .prima-location-citymap-panel__note>a{
    grid-column:1!important;
    justify-self:start!important;
    align-self:start!important;
    margin-top:2px!important;
  }
}


/* ========================================================================
   2.3.11 – Mobile Ortepanel: Nummer und Ortsname auf identischer Höhe
   ======================================================================== */
@media (max-width:820px){
  .prima-location-citymap-panel__district-index{
    width:34px!important;
    height:34px!important;
    margin:0!important;
  }
  .prima-location-citymap-panel__district-copy h3{
    height:34px!important;
    min-height:34px!important;
    display:flex!important;
    align-items:center!important;
    margin:0 0 7px!important;
    padding:0!important;
    line-height:1.2!important;
  }
}


/* ========================================================================
   2.3.12 – Mobile Ortepanel: Nummer und Ortsname sicher in derselben Rasterzeile
   ======================================================================== */
@media (max-width:820px){
  .prima-location-citymap-panel__district{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    grid-template-areas:"index copy"!important;
    align-items:start!important;
    column-gap:12px!important;
    row-gap:0!important;
  }
  .prima-location-citymap-panel__district-index{
    grid-area:index!important;
    grid-row:1!important;
    grid-column:1!important;
    align-self:start!important;
    width:34px!important;
    height:34px!important;
    margin:0!important;
  }
  .prima-location-citymap-panel__district-copy{
    grid-area:copy!important;
    grid-row:1!important;
    grid-column:2!important;
    align-self:start!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  .prima-location-citymap-panel__district-copy h3{
    display:flex!important;
    align-items:center!important;
    height:34px!important;
    min-height:34px!important;
    margin:0 0 7px!important;
    padding:0!important;
    line-height:1.2!important;
  }
}

/* ========================================================================
   2.3.13 – Mobile Stadtteil-Keyfacts + Oberursel-Kennzahlen
   ======================================================================== */
@media (max-width:820px){
  .prima-location-citymap-panel__district{
    padding:17px 18px!important;
  }
  .prima-location-citymap-panel__keyfacts{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:5px 10px!important;
    margin-top:8px!important;
  }
  .prima-location-citymap-panel__keyfacts span{
    width:auto!important;
    max-width:100%!important;
    white-space:normal!important;
    font-size:.61rem!important;
    line-height:1.35!important;
  }
}

/* ========================================================================
   2.3.21 – Standort Oberursel: finaler Mobile-/Tablet-Pass
   ======================================================================== */
@media (max-width:820px){
  .prima-location--master{
    --loc-shell:min(100% - 30px,720px);
  }
  .prima-location--master .prima-location-shell{
    width:var(--loc-shell)!important;
  }
  .prima-location--master [id]{
    scroll-margin-top:92px;
  }
  .prima-location--master .prima-location-section{
    padding-block:66px!important;
  }
  .prima-location--master .prima-location-hero .prima-location-shell{
    width:var(--loc-shell)!important;
  }
  .prima-location--master .prima-location-hero__grid{
    min-height:auto!important;
    padding-top:72px!important;
    padding-bottom:86px!important;
  }
  .prima-location--master .prima-location-cityfacts-highlight{
    margin-top:-28px!important;
    padding-bottom:8px!important;
  }
  .prima-location-jumpnav{
    padding-top:4px;
  }
  .prima-location-jumpnav__inner{
    width:var(--loc-shell)!important;
    gap:12px;
    min-height:48px;
    padding-bottom:9px;
  }
  .prima-location-jumpnav__label{
    display:none;
  }
  .prima-location-jumpnav__links{
    gap:5px;
  }
  .prima-location-jumpnav__links a{
    min-height:32px;
    padding:6px 10px;
    font-size:.69rem;
  }
  .prima-location--master .prima-location-intro{
    padding-top:56px!important;
  }
  .prima-location--master .prima-location-intro__visual{
    min-height:0!important;
  }
  .prima-location--master .prima-location-districts__head--citymap,
  .prima-location--master .prima-location-sectionhead--editorial{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .prima-location--master .prima-location-districts__head--citymap>p,
  .prima-location--master .prima-location-sectionhead--editorial>p{
    padding-left:0!important;
    border-left:0!important;
  }
  .prima-location--master .prima-location-citymap-layout{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .prima-location--master .prima-location-citymap-card{
    min-height:0!important;
    border-radius:24px!important;
  }
  .prima-location--master .prima-location-citymap-card__meta{
    padding:18px 18px 10px!important;
  }
  .prima-location--master .prima-location-citymap-card__meta>span{
    display:inline-flex!important;
  }
  .prima-location--master .prima-location-citymap-panel{
    border-radius:22px!important;
  }
  .prima-location--master .prima-location-citymap-panel__district{
    padding:17px 18px!important;
  }
  .prima-location--master .prima-location-services .prima-location-servicegrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
  .prima-location--master .prima-location-services .prima-location-servicecard,
  .prima-location--master .prima-location-services .prima-location-servicecard:last-child{
    grid-column:auto!important;
    min-height:0!important;
    padding:24px!important;
  }
  .prima-location--master .prima-location-services .prima-location-servicecard h3,
  .prima-location--master .prima-location-services .prima-location-servicecard p{
    min-height:0!important;
  }
  .prima-location--master .prima-location-featuregrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:13px!important;
  }
  .prima-location--master .prima-location-featuregrid article,
  .prima-location--master .prima-location-featuregrid article:nth-child(1),
  .prima-location--master .prima-location-featuregrid article:nth-child(6){
    grid-column:auto!important;
    min-height:0!important;
    padding:24px!important;
  }
  .prima-location--master .prima-location-change__cta--integrated{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:18px!important;
  }
  .prima-location-change__actions{
    width:100%;
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .prima-location--master .prima-location-proof__grid--editorial{
    grid-template-columns:1fr!important;
    gap:34px!important;
  }
  .prima-location--master .prima-location-proof-estate__values{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:600px){
  .prima-location--master{
    --loc-shell:calc(100% - 24px);
  }
  .prima-location--master .prima-location-section{
    padding-block:58px!important;
  }
  .prima-location--master .prima-location-hero__grid{
    padding-top:58px!important;
    padding-bottom:72px!important;
  }
  .prima-location--master .prima-location-cityfacts-highlight{
    margin-top:-20px!important;
  }
  .prima-location-jumpnav__inner{
    width:var(--loc-shell)!important;
  }
  .prima-location--master .prima-location-citymap-card__meta>span{
    display:none!important;
  }
  .prima-location--master .prima-location-services .prima-location-servicegrid,
  .prima-location--master .prima-location-featuregrid{
    grid-template-columns:1fr!important;
  }
  .prima-location--master .prima-location-services .prima-location-servicecard{
    padding:23px!important;
  }
  .prima-location--master .prima-location-proof-estate{
    padding:24px!important;
    border-radius:23px!important;
  }
  .prima-location--master .prima-location-proof-estate__values{
    grid-template-columns:1fr!important;
  }
  .prima-location-proof-estate__note{
    grid-template-columns:1fr;
    gap:7px;
  }
}

/* 2.3.22 – generischer Standortmaster: lokale Matrix + Nachbarstandorte */
@media (max-width:820px){
  .prima-location--master .prima-location-citymap-card--matrix{
    min-height:0!important;
  }
  .prima-location-localmatrix{
    grid-template-columns:1fr;
    gap:12px;
    padding:14px 16px 18px;
  }
  .prima-location-localmatrix__core{
    min-height:180px;
    padding:20px;
  }
  .prima-location-localmatrix__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }
  .prima-location-localmatrix__grid article{
    min-height:108px;
    padding:16px;
  }
  .prima-location-nearby{
    padding-bottom:38px;
  }
  .prima-location-nearby__inner{
    grid-template-columns:1fr;
    gap:16px;
    padding:20px!important;
  }
  .prima-location-nearby__links{
    justify-content:flex-start;
  }
}
@media (max-width:600px){
  .prima-location-localmatrix__grid{
    grid-template-columns:1fr;
  }
  .prima-location-localmatrix__grid article{
    min-height:92px;
  }
  .prima-location-nearby__links a{
    width:100%;
    justify-content:space-between;
  }
}
