.public-site-header .public-site-nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 8px 10px;
  font-size: 16px;
  line-height: 1.5;
}
.public-site-header .public-site-brand strong { font-size: 20px; }
.public-site-header .public-site-brand small { font-size: 12px; }
body:has(.public-page) .site-footer nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 6px 2px;
  font-size: 16px;
}
body:has(.public-page .mobile-bottom-nav) .site-footer {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
}
.public-home-page { font-size: 18px; line-height: 1.8; color: #29251f; }
.home-desktop { display: grid; gap: 32px; padding: 6px 0 28px; }
.home-intro { padding: 36px; border: 1px solid #d9d1c2; border-radius: 20px; background: #fffdf8; }
.home-title { max-width: 900px; margin: 0; font-size: clamp(32px, 4vw, 44px); line-height: 1.5; letter-spacing: 0; }
.home-lead { max-width: 760px; margin: 18px 0 0; font-size: 20px; line-height: 1.8; }
.home-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 24px; }
.home-button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; padding: 12px 24px; border: 2px solid #0d6d5c; border-radius: 12px; background: #0d6d5c; color: #fff; font-size: 18px; font-weight: 800; line-height: 1.5; text-align: center; }
.home-button:hover { background: #085447; border-color: #085447; }
.home-guide-link { display: inline-flex; min-height: 44px; align-items: center; color: #0d5f52; font-size: 18px; text-decoration: underline; text-underline-offset: 5px; }
.home-section-title { margin: 0 0 18px; font-size: 25px; line-height: 1.5; }
.home-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.home-feature { min-width: 0; padding: 22px; border: 1px solid #d9d1c2; border-radius: 16px; background: #fffdf8; }
.home-feature-number { display: inline-flex; min-width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 50%; background: #e4f1ec; color: #0d5f52; font-size: 16px; font-weight: 800; }
.home-feature h3 { margin: 14px 0 8px; font-size: 21px; line-height: 1.5; }
.home-feature p { margin: 0; color: #514a40; font-size: 18px; line-height: 1.8; }
.home-reading-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.home-reading-card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 24px; border: 1px solid #c8c2b7; border-radius: 16px; background: #fffdf8; }
.home-reading-card:hover { border-color: #0d6d5c; background: #f3faf6; }
.home-reading-label { color: #635b50; font-size: 16px; }
.home-reading-card h3 { margin: 6px 0 8px; color: #29251f; font-size: 24px; line-height: 1.5; }
.home-reading-card p { margin: 0 0 14px; color: #514a40; font-size: 18px; line-height: 1.8; }
.home-reading-link { margin-top: auto; color: #0d5f52; font-size: 18px; font-weight: 800; }
.public-home-page a:focus-visible,
.public-notes-page a:focus-visible { outline: 3px solid #995400; outline-offset: 4px; }
.public-home-page .mobile-home-shell { max-width: 640px; margin: 0 auto; gap: 24px; padding: 16px; }
.public-home-page .mobile-app-card { border: 1px solid #d9d1c2; border-radius: 16px; box-shadow: none; background: #fffdf8; }
.public-home-page .mobile-app-card-inner { padding: 22px 18px; }
.mobile-home-shell .home-intro { padding: 0; }
.mobile-home-shell .home-title { font-size: 30px; line-height: 1.5; }
.mobile-home-shell .home-lead { font-size: 18px; }
.mobile-home-shell .home-actions { flex-direction: column; align-items: stretch; gap: 8px; margin-top: 20px; }
.mobile-home-shell .home-guide-link { justify-content: center; text-align: center; }
.mobile-home-shell .home-section-title { font-size: 23px; }
.mobile-home-shell .home-feature-grid,
.mobile-home-shell .home-reading-grid { grid-template-columns: minmax(0, 1fr); }
.mobile-home-shell .home-feature-grid { gap: 0; }
.mobile-home-shell .home-feature { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start; gap: 12px; padding: 16px 0; border: 0; border-radius: 0; }
.mobile-home-shell .home-feature:first-child { padding-top: 0; }
.mobile-home-shell .home-feature:last-child { padding-bottom: 0; }
.mobile-home-shell .home-feature + .home-feature { border-top: 1px solid #ded8cd; }
.mobile-home-shell .home-feature h3 { margin: 0 0 6px; font-size: 20px; }
.mobile-home-shell .home-reading-card { padding: 20px; }
.mobile-home-shell .home-reading-card h3 { font-size: 23px; }
.public-home-page > .mobile-public-app,
.public-notes-page > .mobile-public-app { padding-bottom: 0; }
.notes-index-shell { padding: 24px 16px 36px; font-size: 18px; line-height: 1.8; }
.notes-index-heading { max-width: 780px; margin-bottom: 28px; }
.notes-index-heading h1 { margin: 0 0 14px; font-size: clamp(30px, 4vw, 40px); line-height: 1.5; }
.notes-index-heading p { margin: 0 0 16px; }
.notes-index-heading .button-link { min-height: 48px; font-size: 18px; }
.notes-index-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.notes-index-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 20px; border: 1px solid #c8c2b7; border-radius: 14px; background: #fffdf8; }
.notes-index-link:hover { border-color: #0d6d5c; background: #f3faf6; }
.notes-index-link h2 { margin: 0; font-size: 21px; line-height: 1.5; }
.notes-index-link > span { color: #0d5f52; font-size: 24px; }
.notes-index-note { margin: 28px 0 0; color: #635b50; font-size: 16px; }
.public-notes-page .mobile-public-app ~ .notes-index-shell { max-width: 680px; margin: 0 auto; }
.public-notes-page .mobile-public-app ~ .notes-index-shell .notes-index-grid { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 760px) {
  .home-intro { padding: 24px 20px; }
  .home-feature-grid,
  .home-reading-grid,
  .notes-index-grid { grid-template-columns: minmax(0, 1fr); }
  .home-lead { font-size: 18px; }
  .home-actions { flex-direction: column; align-items: stretch; }
  .home-guide-link { justify-content: center; }
  .notes-index-link { padding: 18px 16px; }
  .notes-index-link h2 { font-size: 20px; }
}
