/* Shared public-page styling; page structure and interactions remain local. */
:root {
  --bg: #f7f5ef;
  --surface: #fffefa;
  --text: #293e3e;
  --muted: #647474;
  --line: #dce3dd;
  --accent: #326c6c;
  --accent-dark: #244f50;
  --soft: #e5eeea;
  --shadow: 0 5px 18px rgba(38, 70, 63, .04);
}
body { background: var(--bg); }
h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.07; letter-spacing: -1.8px; font-weight: 750; }
h2 { line-height: 1.2; letter-spacing: -.6px; font-weight: 700; }
.lead { font-size: clamp(18px, 1.9vw, 21px); line-height: 1.65; color: #4d6261; }
.button { border-radius: 10px; font-size: 15px; font-weight: 650; box-shadow: none; }
.button.secondary { background: #fffdf7; border-color: #b3c8c3; }
.button:hover:not(:disabled) { background: var(--accent-dark); }
.button.secondary:hover { background: var(--soft); }
.button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline-color: var(--accent); }
.quick-links a { border-color: #b3c8c3; font-weight: 650; }
.text-link, .post-link { font-weight: 650; text-decoration-thickness: 1px; }
.eyebrow, .date { font-weight: 650; border-radius: 7px; }
.info-panel, .panel, .total-panel, .donation-panel, .contact-panel, .schedule-panel, .route-panel, .notice-panel, .stat, .post, .update {
  border-color: var(--line); border-radius: 14px; box-shadow: var(--shadow);
}
.info-panel, .donation-panel, .contact-panel { border-top: 3px solid #65918a; }
.notice-panel { background: var(--soft); }
.photo-card { border: 5px solid #fffdf7; border-radius: 14px; box-shadow: 0 8px 24px rgba(38, 70, 63, .09); }
.visual figcaption { color: #536e69; font-weight: 500; font-size: 12px; }
.like-button, .comments-toggle, .comment-form button { border-color: #b3c8c3; border-radius: 9px; background: var(--soft); font-weight: 650; }
.like-button:hover:not(:disabled), .comments-toggle:hover, .comment-form button:hover:not(:disabled) { border-color: #65918a; background: #d6e6de; }
.like-button.is-liked { background: var(--accent); color: white; border-color: var(--accent); }
.comment, .message, .recent-donation, .cost-list li, .payment-note, .note, .empty { border-color: var(--line); background: #f0f4ed; }
.progress { background: #e0e9e2; }
.progress-bar { background: linear-gradient(90deg, var(--accent), #7ba497); }
input:not([type="checkbox"]), textarea, select { border-color: #b9cdc4; }
input[type="checkbox"] { accent-color: var(--accent); }
body:not(.home-page) .page { width: min(100% - 40px, 1080px); padding-top: 36px; }
body:not(.home-page) .page > .intro,
body:not(.home-page) .page > .hero { background: #e5ece5; border: 1px solid #d6e0d7; border-radius: 20px; padding: clamp(24px, 4vw, 44px); }
body:not(.home-page) .page > .hero { gap: 28px; }
body:not(.home-page) .story { border-radius: 14px; box-shadow: var(--shadow); }
body:not(.home-page) .info-panel h2 { font-size: clamp(24px, 3vw, 29px); }
@media (max-width: 900px) {
  body:not(.home-page) .page > .hero { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body:not(.home-page) .page { width: calc(100% - 24px); padding-top: 16px; }
  h1 { font-size: clamp(30px, 7.6vw, 46px); letter-spacing: -1px; overflow-wrap: anywhere; }
}
.weather-values div, .practical-list li, .location-card, .schedule-list li,
.total-card, .steps li, .sponsor-messages .message {
  background: #f0f4ed;
  border-color: var(--line);
}
.choice-label { background: var(--soft); }
