@layer mobile-standard {
/* Shared mobile contract. Loaded first so these
   intentional !important rules beat legacy page-specific important rules. */
[data-site-header] .editorial-wordmark,
[data-site-header] .editorial-wordmark-name {
  font-family: var(--sans) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}
h1, h2, h3 { overflow-wrap: anywhere !important; white-space: normal !important; }
[data-site-header] .editorial-icon-action[data-native-contact-icon] {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
[data-site-header] .editorial-icon-action[data-native-contact-icon] img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
/* Long translations remain contained at the tablet/desktop boundary too. */
.editorial-hero-actions > a, .document-card-cta {
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.4 !important;
  height: auto !important;
}
.document-card, .document-card-footer { min-width: 0 !important; }
.document-card-cta > span { min-width: 0 !important; }
@media (min-width: 768px) and (max-width: 1000px) {
  .desktop-text-hero-actions { grid-template-columns: 1fr !important; }
  .documents-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .document-card--protection { display: flex !important; flex-direction: column !important; }
  .document-card--protection .document-card-footer { width: 100% !important; }
}
@media (max-width: 767px) {
  :root { --mobile-rail: calc(100% - 32px); }
  html { scroll-padding-top: 156px !important; }
  html, body { overflow-x: clip !important; overflow-y: visible !important; }
  body { -webkit-text-size-adjust: 100%; }
  h1, h2, h3 { min-width: 0 !important; max-width: 100% !important; overflow-wrap: anywhere !important; }
  [data-site-header] {
    position: sticky !important;
    top: 8px !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    display: grid !important;
    grid-template-columns: repeat(3, 40px) minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 8px 6px !important;
    width: var(--mobile-rail) !important;
    max-width: 680px !important;
    min-height: 0 !important;
    margin: 8px auto 0 !important;
    padding: 10px !important;
    background: #f1ede2 !important;
    border: 1px solid rgb(16 42 83 / .2) !important;
    border-radius: 18px !important;
    box-shadow: 0 6px 22px rgb(16 42 83 / .08) !important;
    color: #102a53 !important;
    overflow: visible !important;
    z-index: 9000 !important;
  }
  [data-site-header] .editorial-wordmark,
  [data-site-header] .editorial-wordmark-name {
    font-family: var(--sans) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .075em !important;
    color: #102a53 !important;
    -webkit-text-fill-color: #102a53 !important;
    background: none !important;
    animation: none !important;
    text-shadow: none !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
  [data-site-header] .editorial-wordmark {
    display: inline-flex !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
  }
  [data-site-header] .editorial-wordmark-descriptor { display: none !important; }
  [data-site-header] .language-toggle {
    grid-column: 4 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    width: 62px !important;
    padding: 0 !important;
  }
  [data-site-header] .language-current {
    display: flex !important;
    width: 62px !important;
    min-width: 62px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 4px 6px !important;
    gap: 5px !important;
    font: 700 12px/1 var(--sans) !important;
    color: #102a53 !important;
    background: #e8e0d0 !important;
    border: 1px solid rgb(16 42 83 / .22) !important;
    border-radius: 24px !important;
  }
  [data-site-header] .language-flag { width: 25px !important; height: 25px !important; flex: 0 0 25px !important; }
  [data-site-header] .language-code { font-size: 12px !important; line-height: 1 !important; }
  [data-site-header] .language-options { left: auto !important; right: 0 !important; transform: none !important; }
  [data-site-header] .editorial-contact-actions { display: contents !important; }
  [data-site-header] .editorial-icon-action {
    grid-row: 2 !important;
    width: 40px !important;
    height: 44px !important;
    min-width: 40px !important;
    min-height: 44px !important;
    padding: 2px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #102a53 !important;
  }
  [data-site-header] .editorial-icon-action[aria-label="WhatsApp"] { grid-column: 1 !important; }
  [data-site-header] .editorial-icon-action[aria-label="Telegram"] { grid-column: 2 !important; }
  [data-site-header] .editorial-icon-action[aria-label="Telephone"] { grid-column: 3 !important; background: #102a53 !important; height: 40px !important; min-height: 40px !important; }
  [data-site-header] .editorial-icon-action img { display: block !important; width: 36px !important; height: 36px !important; object-fit: contain !important; }
  [data-site-header] .editorial-icon-action svg { width: 18px !important; height: 18px !important; }
  [data-site-header] .editorial-icon-action svg,
  [data-site-header] .editorial-icon-action svg path { fill: #f7f5ef !important; }
  [data-site-header] [data-header-contact-cta] {
    grid-column: 4 !important;
    grid-row: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    height: auto !important;
    padding: 10px 12px !important;
    font: 700 12px/1.35 var(--sans) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    background: #102a53 !important;
    color: #f7f5ef !important;
    border: 0 !important;
    box-sizing: border-box !important;
    border-radius: 12px !important;
    box-shadow: none !important;
  }
  /* Natural document flow reserves the exact header height in every language. */
  .property-catalog, .property-detail { padding-top: 28px !important; }
  .state-hero { padding-top: 36px !important; }
  body:has(.editorial-hero) .editorial-hero {
    display: flex !important;
    flex-direction: column !important;
    width: var(--mobile-rail) !important;
    margin: 0 auto !important;
    padding: 34px 20px 24px !important;
    border: 0 !important;
    border-radius: 18px !important;
    box-shadow: none !important;
    gap: 0 !important;
    min-height: 0 !important;
    background: #0d1724 !important;
    isolation: isolate !important;
    overflow: hidden !important;
    position: relative !important;
  }
  body:has(.editorial-hero) .editorial-hero::before,
  body:has(.editorial-hero) .editorial-hero::after {
    content: "" !important;
    inset: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    z-index: 0 !important;
  }
  body:has(.editorial-hero) .editorial-hero::before {
    background: url("assets/hero-construction-investment.png") 68% center / cover no-repeat !important;
    inset: -48px 0 !important;
    transform: translate3d(0, var(--hero-bg-shift, 0px), 0) scale(1.03) !important;
    transform-origin: center !important;
    will-change: transform;
  }
  body:has(.editorial-hero) .editorial-hero::after {
    background: linear-gradient(180deg, rgb(7 19 39 / .82) 0%, rgb(7 19 39 / .72) 34%, rgb(7 19 39 / .94) 100%) !important;
  }
  .editorial-hero-copy { order: 0 !important; width: 100% !important; padding: 0 !important; gap: 0 !important; position: relative !important; z-index: 1 !important; }
  html.scroll-motion-ready .editorial-hero-copy {
    opacity: var(--hero-copy-opacity, 1) !important;
    transform: translate3d(0, var(--hero-copy-shift, 0px), 0) !important;
    will-change: transform, opacity;
  }
  .editorial-hero-media-column { display: none !important; }
  .editorial-hero-copy h1 {
    font-family: var(--sans) !important;
    font-size: clamp(28px, 8.1vw, 42px) !important;
    font-weight: 600 !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-wrap: balance !important;
    margin: 0 !important;
    color: #f7f5ef !important;
    -webkit-text-fill-color: #f7f5ef !important;
    text-shadow: 0 3px 18px rgb(0 0 0 / .34) !important;
  }
  .editorial-hero-copy ul { margin: 20px 0 24px !important; gap: 10px !important; }
  .editorial-hero-copy li { color: rgb(247 245 239 / .92) !important; font-size: 14px !important; line-height: 1.5 !important; text-shadow: 0 2px 10px rgb(0 0 0 / .38) !important; }
  .editorial-hero-copy li::before { background: #e4bf75 !important; }
  .editorial-hero-actions { order: 0 !important; display: grid !important; gap: 10px !important; margin: 0 !important; width: 100% !important; }
  .editorial-hero-actions .editorial-hero-select-property {
    background: linear-gradient(135deg, #edd28d 0%, #c99636 100%) !important;
    border: 0 !important;
    color: #102a53 !important;
  }
  .editorial-hero-actions .editorial-hero-concierge {
    background: rgb(247 245 239 / .12) !important;
    border: 1px solid rgb(247 245 239 / .68) !important;
    color: #f7f5ef !important;
  }
  .editorial-hero-actions .editorial-hero-contact {
    background: #102a53 !important;
    border: 1px solid rgb(247 245 239 / .24) !important;
    color: #f7f5ef !important;
    -webkit-text-fill-color: #f7f5ef !important;
  }
  .editorial-hero-media { aspect-ratio: 4 / 3 !important; max-height: 480px !important; border-radius: 18px !important; }
  .editorial-hero-media-label { color: #fff !important; -webkit-text-fill-color: #fff !important; font-size: 10px !important; letter-spacing: .08em !important; bottom: 16px !important; text-shadow: 0 1px 8px #000 !important; }
  .editorial-hero-media::after { pointer-events: none; }
  /* Shared multiline button sizing across all page families. */
  :is(.editorial-hero-actions > a, .property-market-direction a, .homepage-destination-card a,
      .property-card-proposal a, .property-catalog-details-cta, .property-contact-link,
      .primary-action, .secondary-action, .document-card-cta, .relocation-section-footer > button,
      .lead-form button, .state-hero-actions a, .brief-link) {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 48px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    line-height: 1.4 !important;
    letter-spacing: .015em !important;
    font-size: 13px !important;
    padding: 13px 16px !important;
  }
  .editorial-hero-actions > a { border-radius: 12px !important; text-transform: none !important; font-size: 15px !important; }
  .editorial-hero-concierge > span:first-child { min-width: 0; }
  .editorial-hero-concierge > span:last-child { flex: 0 0 auto; }
  .property-market-heading h1 { font-size: clamp(28px, 7.5vw, 40px) !important; line-height: 1.13 !important; letter-spacing: -.025em !important; overflow-wrap: anywhere !important; }
  .property-market-heading p { font-size: 16px !important; line-height: 1.55 !important; }
  .property-market-direction { padding: 24px 20px !important; min-height: 300px !important; border-radius: 18px !important; }
  .property-market-direction h2 { font-size: clamp(27px, 7.2vw, 36px) !important; line-height: 1.15 !important; letter-spacing: -.025em !important; overflow-wrap: anywhere !important; }
  .property-market-direction p { line-height: 1.55 !important; }
  .property-market-direction a { display: flex !important; justify-content: center !important; align-items: center !important; border-radius: 12px !important; }
  /* Keep the complete text column to the left of the diagonal photo edge.
     Intrinsic sizing of a long <strong> must never widen this grid column. */
  .homepage-destination-card[data-destination-theme] {
    min-height: 248px !important;
  }
  .homepage-destination-card[data-destination-theme]::before {
    clip-path: polygon(61% 0, 100% 0, 100% 100%, 57% 100%) !important;
    transform: none !important;
  }
  .homepage-destination-card[data-destination-theme] .homepage-destination-copy {
    box-sizing: border-box !important;
    width: 57% !important;
    min-width: 0 !important;
    max-width: 57% !important;
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 24px 14px !important;
    gap: 12px !important;
  }
  .homepage-destination-copy > * {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  .homepage-destination-card[data-destination-theme] .homepage-destination-title {
    font-family: var(--sans) !important;
    font-size: clamp(21px, 5.7vw, 28px) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -.025em !important;
  }
  .homepage-destination-card[data-destination-theme] .homepage-destination-summary {
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  .homepage-destination-card[data-destination-theme] .homepage-destination-link {
    font-size: 10px !important;
    gap: 8px !important;
  }

  /* Motion activates only after JavaScript has attached observers, so content
     remains visible when scripts are unavailable. */
  html.scroll-motion-ready [data-scroll-motion-section] {
    opacity: .01 !important;
    transform: translate3d(0, 20px, 0) !important;
    transition:
      opacity 560ms cubic-bezier(.16, 1, .3, 1),
      transform 560ms cubic-bezier(.16, 1, .3, 1) !important;
  }
  html.scroll-motion-ready [data-scroll-motion-section].is-scroll-motion-visible {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
  }
  html.scroll-motion-ready [data-scroll-motion-item] {
    opacity: .01 !important;
    transform: translate3d(0, 14px, 0) !important;
    transition:
      opacity 560ms cubic-bezier(.16, 1, .3, 1),
      transform 560ms cubic-bezier(.16, 1, .3, 1) !important;
    transition-delay: calc(var(--motion-item-index, 0) * 45ms) !important;
  }
  html.scroll-motion-ready [data-scroll-motion-section].is-scroll-motion-visible [data-scroll-motion-item] {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
  }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  body:has(.editorial-hero) .editorial-hero::before,
  html.scroll-motion-ready .editorial-hero-copy,
  html.scroll-motion-ready [data-scroll-motion-section],
  html.scroll-motion-ready [data-scroll-motion-item] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    transition-delay: 0ms !important;
    will-change: auto !important;
  }
}
}
