html,
body {
  overflow-x: hidden;
}

@media (max-width: 820px) {
  .campaign-header {
    padding: 14px 0;
  }

  .campaign-header .header-row {
    width: calc(100% - 32px);
    min-height: 64px;
  }

  .hero-brand-lockup {
    gap: 8px!important;
    transform: none!important;
  }

  .hero-brand-logo--naza {
    max-height: 46px;
  }

  .hero-brand-logo--ohana {
    max-height: 50px;
  }

  .hero-brand-cross {
    font-size: 15px;
  }

  .campaign-header .header-access {
    display: none;
  }

  .campaign-header .menu-toggle {
    width: 40px;
    height: 40px;
    margin-left: auto;
    padding: 7px;
  }

  .hero {
    display: flex;
    min-height: 0!important;
    padding: 0;
    align-items: stretch;
    flex-direction: column;
    overflow: hidden;
  }

  .hero-content {
    position: relative;
    z-index: 2;
    order: 1;
    top: auto;
    width: 100%;
    margin: 0;
    padding: 112px 24px 36px;
    box-sizing: border-box;
    translate: none!important;
  }

  .hero-content .eyebrow {
    margin-bottom: 17px;
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: .15em;
  }

  .hero h1 {
    width: 100%;
    max-width: none;
    margin: 0 0 24px;
    font-size: clamp(3rem, 14vw, 4.6rem);
    line-height: .94;
    letter-spacing: -.04em;
    white-space: normal;
    transform: none;
  }

  .hero-intro {
    width: 100%;
    max-width: none;
    margin: 0 0 27px;
    font-size: 18px;
    line-height: 1.45;
  }

  .hero .gold-button {
    width: 100%;
    min-width: 0;
    min-height: 56px;
    padding: 16px 20px;
    font-size: 14px;
    line-height: 1.25;
    letter-spacing: .08em;
  }

  .hero-visual {
    position: relative;
    z-index: 0;
    inset: auto;
    order: 3;
    width: 100%;
    height: clamp(340px, 52vw, 400px);
    flex: 0 0 auto;
    overflow: hidden;
  }

  .hero-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 64% 52%!important;
    transform: none!important;
    transform-origin: center!important;
  }

  .hero-visual::before,
  .hero-visual::after,
  .hero-wash {
    display: none;
  }

  .hero-center-signature {
    position: relative;
    z-index: 2;
    order: 2;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    max-width: none;
    padding: 22px 24px 20px;
    box-sizing: border-box;
    background: var(--ivory, #f6f1e9);
    transform: none;
  }

  .hero-center-signature::before {
    display: none;
  }

  .partnership {
    padding: 42px 0 46px;
  }

  .partnership-grid,
  .location-panel,
  .access-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .privilege-card {
    width: 100%;
    max-width: none;
  }

  .partnership-copy {
    text-align: left;
  }

  .partnership-copy p {
    margin-inline: 0;
  }

  .privilege-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    overflow: visible;
  }

  .offer-card {
    min-width: 0;
    width: auto;
  }

  .care-panel {
    display: block;
    min-height: 0;
  }

  .care-values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .location-copy,
  .location-image {
    width: 100%;
  }

  .verification-panel,
  .booking-card {
    width: 100%;
  }

  .employee-form,
  #claim-form,
  #booking-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .employee-form label,
  #claim-form label,
  #booking-form label,
  #claim-form label:first-child,
  .claim-privacy,
  #claim-submit,
  .claim-progress,
  #booking-form label:last-of-type,
  #booking-form > .gold-button {
    grid-column: 1;
    width: 100%;
  }

  .claim-cta-card {
    padding: 42px 36px;
  }

  .claim-cta-card h2 {
    max-width: 100%;
    white-space: normal;
  }

  .claim-cta-card .booking-button {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .site-width {
    width: calc(100% - 48px);
  }

  .section-pad {
    padding: 38px 0;
  }

  .hero-content {
    width: 100%;
    padding: 106px 24px 32px;
  }

  .hero h1 {
    margin-bottom: 22px;
    font-size: clamp(3rem, 14vw, 4.15rem);
    line-height: .93;
  }

  .hero-intro {
    margin-bottom: 25px;
    font-size: 17px;
  }

  .hero .gold-button {
    min-height: 56px;
    font-size: 13px;
  }

  .hero-visual {
    height: clamp(320px, 92vw, 390px);
  }

  .hero-center-signature {
    width: 100%;
    padding: 20px 24px 18px;
    transform: none;
  }

  .partnership-grid {
    gap: 28px;
  }

  .privilege-card {
    aspect-ratio: 1.58;
  }

  .partnership-copy h2 {
    font-size: clamp(34px, 10.5vw, 44px);
  }

  .privilege-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding-bottom: 0;
  }

  .offer-card {
    flex: initial;
    scroll-snap-align: none;
  }

  .offer-visual,
  .offer-card[data-privilege-id="scaling"] .offer-visual {
    height: 190px;
  }

  .offer-card > p {
    min-height: 0;
  }

  .care-panel {
    padding: 32px 20px 36px;
  }

  .care-values {
    grid-template-columns: minmax(0, 1fr);
  }

  .location-image {
    height: 260px;
    min-height: 260px;
  }

  .verification-panel {
    padding: 30px 24px;
  }

  .claim-cta-card {
    padding: 36px 24px;
  }

  .claim-cta-card h2 {
    font-size: 34px;
  }

  .booking-button {
    min-height: 50px;
  }
}
