/* Mobile art-direction lock, 2026-09-10.
   Hero, region and heritage are each a single visual composition. On phones
   the artwork is the section background and the copy lives inside it. */

@media (max-width: 900px) {
  /* 1. HERO: header + hero fill exactly one mobile viewport. */
  .hero {
    position: relative;
    display: block;
    height: calc(100vh - 72px);
    min-height: calc(100vh - 72px);
    height: calc(100svh - 72px);
    min-height: calc(100svh - 72px);
    padding: 0;
    isolation: isolate;
    overflow: hidden;
    background-color: var(--paper);
    background-image:
      linear-gradient(180deg, rgba(245,244,240,.44) 0%, rgba(245,244,240,.30) 30%, rgba(245,244,240,.16) 52%, rgba(245,244,240,.04) 72%, rgba(245,244,240,0) 86%),
      url('/assets/hero-coast-960.webp');
    background-size: cover;
    background-position: 64% 64%;
    background-repeat: no-repeat;
  }

  .hero-photo,
  .hero-photo-fade {
    display: none;
  }

  .hero-copy {
    position: relative;
    left: auto;
    top: auto;
    z-index: 3;
    width: auto;
    height: 100%;
    min-height: 0;
    padding: 44px 22px 34px;
    background: transparent;
  }

  .hero-copy::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 auto 0;
    height: 62%;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(245,244,240,.48), rgba(245,244,240,.14) 72%, transparent);
  }

  .hero-actions {
    gap: 16px;
    flex-wrap: wrap;
  }

  .hero-meta {
    position: absolute;
    left: 22px;
    bottom: 30px;
    margin-top: 0;
  }

  /* 2. REGION */
  .region-section {
    position: relative;
    display: block;
    grid-template-columns: none;
    height: clamp(780px, 132vw, 930px);
    min-height: 780px;
    overflow: hidden;
    isolation: isolate;
    background-color: var(--paper-region);
    background-image:
      linear-gradient(180deg, rgba(245,245,243,.32) 0%, rgba(245,245,243,.12) 42%, rgba(245,245,243,.08) 70%, rgba(245,245,243,.28) 100%),
      url('/assets/region-map-960.webp');
    background-size: cover;
    background-position: center 46%;
    background-repeat: no-repeat;
  }

  .region-section::before {
    display: none;
  }

  .region-section > .map-panel,
  .region-section > .region-list,
  .region-section > .region-story,
  .region-section > .grass-panel {
    position: absolute;
    z-index: 2;
  }

  .map-panel {
    inset: 0;
    min-height: 0;
    overflow: hidden;
    pointer-events: none;
    background: transparent;
  }

  .map-art {
    display: none;
  }

  .map-caption {
    top: 24px;
    left: auto;
    right: 24px;
    font-size: 20px;
    opacity: .72;
  }

  .map-compass {
    display: block;
    left: auto;
    right: 24px;
    bottom: 26px;
    width: 40px;
    height: 40px;
    opacity: .42;
  }

  .map-coordinates {
    left: 22px;
    bottom: 25px;
    font-size: 5.5px;
    opacity: .9;
  }

  .region-story {
    inset: 0 0 auto 0;
    min-height: 0;
    padding: 54px 22px 24px;
    border: 0;
    background: linear-gradient(180deg, rgba(245,245,243,.38), rgba(245,245,243,.08));
  }

  .region-story h2 {
    max-width: 470px;
    font-size: clamp(48px, 11vw, 62px);
    line-height: .91;
    margin-bottom: 20px;
  }

  .region-copy {
    max-width: 560px;
    font-size: 11px;
    line-height: 1.48;
    color: #294856;
  }

  .region-list {
    left: 22px;
    right: 22px;
    bottom: 92px;
    min-height: 0;
    padding: 18px 0 0;
    border: 0;
    border-top: 1px solid rgba(23,58,74,.20);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px 24px;
    background: rgba(245,245,243,.10);
  }

  .region-list article {
    min-width: 0;
  }

  .region-list article p {
    white-space: normal;
  }

  .grass-panel {
    inset: 0;
    min-height: 0;
    overflow: hidden;
    z-index: 1 !important;
    pointer-events: none;
    background: transparent;
  }

  .grass-panel img {
    display: block;
    position: absolute;
    right: -7%;
    bottom: 0;
    width: 58%;
    height: 48%;
    object-fit: cover;
    object-position: 72% 50%;
    mix-blend-mode: multiply;
    opacity: .18;
    filter: saturate(.68) contrast(.95) brightness(1.02);
  }

  .micro-note {
    left: auto;
    right: 77px;
    bottom: 26px;
    opacity: .72;
  }

  /* 3. HERITAGE */
  .heritage {
    position: relative;
    display: block;
    height: clamp(560px, 116vw, 690px);
    min-height: 560px;
    overflow: hidden;
    isolation: isolate;
    background-color: rgba(241,240,236,.94);
    background-image:
      linear-gradient(180deg, rgba(241,240,236,.28), rgba(241,240,236,.10) 60%, rgba(241,240,236,.32)),
      url('/assets/heritage-house-600.webp');
    background-size: auto, min(104%, 760px);
    background-position: center, center 42%;
    background-repeat: no-repeat;
  }

  .heritage-sketch {
    display: none;
  }

  .heritage-year,
  .heritage-copy,
  .heritage-note,
  .heritage-values {
    position: absolute;
    right: auto;
    margin: 0;
    z-index: 3;
  }

  .heritage-year {
    left: 22px;
    top: 42px;
    width: 158px;
    height: 160px;
    border-right: 1px solid rgba(23,58,74,.18);
  }

  .heritage-year span {
    margin-left: 0;
  }

  .heritage-year strong {
    font-size: 70px;
  }

  .heritage-copy {
    left: 205px;
    top: 62px;
    width: 150px;
  }

  .heritage-note {
    left: auto;
    right: 34px;
    top: 325px;
    width: 105px;
  }

  .heritage-values {
    left: 22px;
    right: 22px;
    bottom: 30px;
    height: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-left: 1px solid rgba(23,58,74,.16);
    border-top: 1px solid rgba(23,58,74,.16);
    background: rgba(241,240,236,.36);
  }

  .heritage-values div {
    min-height: 66px;
  }
}

@media (max-width: 580px) {
  .hero {
    background-position: 61% 64%;
  }

  .hero-copy {
    padding-top: 28px;
  }

  .hero-copy h1 {
    width: min(84vw, 330px);
    font-size: clamp(50px, 14.2vw, 58px);
  }

  .hero-meta {
    bottom: 24px;
  }

  .region-section {
    height: clamp(810px, 210vw, 940px);
    min-height: 810px;
    background-position: 46% 46%;
  }

  .region-story {
    padding-top: 46px;
  }

  .region-story h2 {
    max-width: 340px;
    font-size: clamp(45px, 13vw, 56px);
  }

  .region-copy {
    max-width: 94%;
    font-size: 10.5px;
  }

  .region-list {
    grid-template-columns: 1fr;
    gap: 13px;
    bottom: 82px;
  }

  .region-list article p {
    font-size: 9.5px;
    line-height: 1.35;
  }

  .heritage {
    height: 620px;
    min-height: 620px;
    background-size: auto, 120%;
    background-position: center, center 44%;
  }

  .heritage-year {
    left: 22px;
    top: 38px;
    width: 145px;
  }

  .heritage-year strong {
    font-size: 64px;
  }

  .heritage-copy {
    left: auto;
    right: 22px;
    top: 62px;
    width: 128px;
  }

  .heritage-note {
    right: 25px;
    top: 330px;
  }

  .heritage-values {
    bottom: 24px;
  }
}

/* Höhn logo patch: approved reconstruction, 2026-09-30. */
.site-header.site-header--logo {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  height: auto;
  min-height: 104px;
  padding: 12px 46px;
}
.site-header.site-header--logo .brand {
  position: static;
  display: flex;
  min-width: 0;
  line-height: 1;
}
.site-header.site-header--logo .brand-logo {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
.site-header.site-header--logo .main-nav {
  position: static;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 4px 16px;
  height: auto;
  min-width: 0;
  overflow: visible;
  border: 0;
}
.site-header.site-header--logo .main-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 4px 0;
  font-size: 13px;
  line-height: 1.3;
  flex: 0 0 auto;
}
.site-header.site-header--logo .header-cta {
  position: static;
  width: 170px;
  max-width: 100%;
  min-height: 44px;
  height: auto;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.3;
}
.site-header.site-header--logo .brand:focus-visible,
.site-header.site-header--logo .header-cta:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
}
@media (max-width: 1100px) {
  .site-header.site-header--logo {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px 20px;
    padding: 12px 22px;
  }
  .site-header.site-header--logo .main-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }
}
@media (max-width: 480px) {
  .site-header.site-header--logo {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 12px 18px 16px;
  }
  .site-header.site-header--logo .brand {
    justify-content: center;
  }
  .site-header.site-header--logo .main-nav {
    justify-content: center;
    gap: 0 18px;
  }
  .site-header.site-header--logo .header-cta {
    justify-self: center;
  }
}
