/* Responsive retreat experience. Loaded after retreat-final.css. */

@media (max-width: 1120px) and (min-width: 761px) {
  .retreat-masthead {
    width: min(960px, calc(100% - 32px)) !important;
    grid-template-columns: minmax(220px, .9fr) 120px minmax(360px, 1.45fr) !important;
    gap: 18px !important;
    margin: 20px auto 12px !important;
  }

  .retreat-logo strong { font-size: clamp(32px, 3.7vw, 46px) !important; }
  .retreat-logo small { font-size: 9px !important; letter-spacing: .24em !important; }
  .retreat-heartline { width: 120px !important; max-width: 120px !important; }
  .retreat-tagline .main { font-size: clamp(22px, 2.55vw, 31px) !important; white-space: nowrap !important; }
  .retreat-tagline small { font-size: 7px !important; letter-spacing: .18em !important; }
}

@media (max-width: 900px) and (min-width: 761px) {
  .retreat-masthead {
    grid-template-columns: minmax(190px, .9fr) 88px minmax(310px, 1.45fr) !important;
    gap: 12px !important;
  }
  .retreat-logo strong { font-size: 34px !important; }
  .retreat-heartline { width: 88px !important; max-width: 88px !important; }
  .retreat-tagline .main { font-size: 23px !important; }
  .retreat-tagline small { font-size: 6.5px !important; letter-spacing: .14em !important; }
}

/* Mobile-first participant experience: preserve the retreat identity while keeping the
   important action and prompt visible without excessive first-screen scrolling. */
@media (max-width: 760px) {
  .retreat-masthead {
    width: calc(100% - 20px) !important;
    min-height: 70px !important;
    display: grid !important;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 8px auto 6px !important;
    text-align: left !important;
  }

  .retreat-logo {
    align-items: flex-start !important;
    justify-self: start !important;
    min-width: 0 !important;
  }
  .retreat-logo strong {
    font-size: clamp(25px, 7.6vw, 34px) !important;
    line-height: .9 !important;
    white-space: nowrap !important;
  }
  .retreat-logo small {
    margin-top: 5px !important;
    padding-left: 1px !important;
    font-size: 6.5px !important;
    letter-spacing: .20em !important;
    white-space: nowrap !important;
  }
  .retreat-heartline { display: none !important; }
  .retreat-tagline {
    display: block !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    text-align: right !important;
  }
  .retreat-tagline .main {
    font-size: clamp(16px, 5vw, 22px) !important;
    line-height: .98 !important;
    white-space: normal !important;
  }
  .retreat-tagline small { display: none !important; }

  .shell {
    width: calc(100% - 16px) !important;
    margin: 4px auto 12px !important;
    padding-bottom: 18px !important;
    border-radius: 18px !important;
  }
  .shell::before { inset: 56px 0 0 !important; }

  .topbar {
    min-height: 56px !important;
    padding: 0 14px !important;
  }
  body:has(#app) .topbar {
    grid-template-columns: 38px 1fr auto !important;
  }
  .brand-icon,.cross {
    width: 30px !important;
    height: 30px !important;
  }
  .brand-mark,.brand {
    font-size: 10px !important;
    letter-spacing: .08em !important;
    gap: 8px !important;
  }
  body:has(#app) .topbar::after,.day-pill {
    font-size: 7.5px !important;
    padding: 5px 9px !important;
    letter-spacing: .12em !important;
  }

  body:has(#app) .content,
  body:has(#friday-app) .content,
  body:has(#saturday-app) .content,
  body:has(#sunday-app) .content {
    padding: 24px 20px 22px !important;
  }

  /* First Thursday screen should feel like an app landing screen, not a desktop card. */
  body:has(#app) .welcome-content {
    justify-content: flex-start !important;
    min-height: 0 !important;
    padding-top: 22px !important;
    padding-bottom: 18px !important;
  }
  body:has(#app) .welcome-kicker {
    margin-bottom: 10px !important;
    font-size: 9px !important;
    letter-spacing: .14em !important;
  }
  body:has(#app) .welcome-content h1 {
    max-width: 310px !important;
    font-size: clamp(36px, 11vw, 45px) !important;
    line-height: .96 !important;
  }
  body:has(#app) .welcome-copy {
    margin-top: 12px !important;
    max-width: 330px !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
  }
  body:has(#app) .welcome-content .action-area {
    margin-top: 20px !important;
    padding-top: 0 !important;
  }
  body:has(#app) .welcome-content .primary-button {
    min-height: 50px !important;
    border-radius: 12px !important;
    font-size: 11px !important;
  }
  body:has(#app) .welcome-content .disclaimer {
    margin-top: 11px !important;
    font-size: 9px !important;
    line-height: 1.35 !important;
  }

  /* Keep decorative art present, but let the words and controls lead on a phone. */
  body:has(#app) .shell::after,
  body:has(#friday-app) .shell::after,
  body:has(#saturday-app) .shell::after,
  body:has(#sunday-app) .shell::after {
    width: 90px !important;
    height: 190px !important;
    top: 110px !important;
    opacity: .10 !important;
  }

  h2 { font-size: clamp(29px, 8.5vw, 35px) !important; }
  .progress-wrap { margin: 12px 20px 16px !important; }
  .options { margin-top: 18px !important; gap: 8px !important; }
  .option { min-height: 54px !important; padding: 12px 13px !important; }
  .action-area { padding-top: 20px !important; }
  .exact-footer {
    width: calc(100% - 24px) !important;
    margin-bottom: 16px !important;
    font-size: 6.5px !important;
    letter-spacing: .12em !important;
    gap: 5px !important;
  }
  .exact-footer::before,.exact-footer::after { font-size: 16px !important; }
}

@media (max-width: 390px) {
  .retreat-masthead { grid-template-columns: .95fr 1.05fr !important; gap: 6px !important; }
  .retreat-logo strong { font-size: 24px !important; }
  .retreat-tagline .main { font-size: 16px !important; }
  body:has(#app) .content,
  body:has(#friday-app) .content,
  body:has(#saturday-app) .content,
  body:has(#sunday-app) .content { padding-left: 17px !important; padding-right: 17px !important; }
  body:has(#app) .welcome-content h1 { font-size: 36px !important; }
}
