/* JCM Single Memorial Page v2.2 */

.jcm-single-wrap { max-width:680px; margin:0 auto; padding:40px 20px 60px; font-family:'Outfit',-apple-system,BlinkMacSystemFont,sans-serif; color:#222; -webkit-font-smoothing:antialiased; }

.jcm-single-card { background:#fff; border-radius:16px; overflow:hidden; border:1px solid #e5e5e5; box-shadow:0 12px 48px rgba(0,0,0,0.08); margin-bottom:28px; }
.jcm-single-header { text-align:center; padding:40px 40px 24px; border-top:4px solid #1a1a2e; }
.jcm-single-label { font-family:'Lora',serif; font-size:16px; font-style:italic; color:#999; letter-spacing:1px; margin-bottom:8px; }
.jcm-single-name { font-family:'Lora',serif; font-size:34px; font-weight:700; color:#1a1a2e; line-height:1.2; margin-bottom:4px; }
.jcm-single-vehicle { font-size:16px; color:#777; margin-bottom:4px; }
.jcm-single-years { font-family:'Outfit',sans-serif; font-size:14px; font-weight:600; color:#999; letter-spacing:3px; margin-top:8px; }

.jcm-single-photo-wrap { border-top:1px solid #f0f0f0; border-bottom:1px solid #f0f0f0; }
.jcm-single-photo { width:100%; max-height:440px; object-fit:cover; display:block; }

.jcm-single-body { padding:28px 40px 8px; }
.jcm-single-details { text-align:center; font-size:14px; color:#888; margin-bottom:20px; }

.jcm-single-tribute { text-align:center; padding:8px 0 20px; }
.jcm-single-divider { width:40px; height:1px; background:#ddd; margin:0 auto 20px; }
.jcm-single-divider:last-child { margin:20px auto 0; }
.jcm-single-tribute-text { font-family:'Lora',serif; font-size:18px; font-style:italic; line-height:1.8; color:#333; max-width:500px; margin:0 auto; }

.jcm-single-diagnosis { text-align:center; padding:16px 0 0; border-top:1px solid #f0f0f0; margin-top:12px; }
.jcm-single-diagnosis-label { font-size:12px; font-weight:700; color:#e02b2b; letter-spacing:1px; text-transform:uppercase; }
.jcm-single-diagnosis-value { font-size:14px; color:#555; margin-left:6px; }

.jcm-single-extras { text-align:center; font-size:14px; color:#666; padding:12px 0 0; line-height:1.7; }
.jcm-single-extras p { margin-bottom:4px; }
.jcm-single-extras strong { color:#555; }

.jcm-single-memory { text-align:center; padding:24px 20px; margin-top:20px; background:#fafafa; border-radius:10px; border:1px solid #f0f0f0; }
.jcm-single-memory-label { font-size:12px; font-weight:700; color:#999; letter-spacing:1px; text-transform:uppercase; margin-bottom:8px; }
.jcm-single-memory-text { font-family:'Lora',serif; font-size:15px; font-style:italic; line-height:1.7; color:#444; }
.jcm-single-memory-by { font-size:13px; color:#999; margin-top:8px; }

.jcm-single-footer { text-align:center; padding:24px 40px 28px; border-top:1px solid #f0f0f0; display:flex; flex-direction:column; align-items:center; gap:6px; }
.jcm-single-footer p { font-size:12px; color:#aaa; }
.jcm-single-footer-submitted { font-size:12px; color:#bbb; }

/* Share */
.jcm-single-share { display:flex; align-items:center; justify-content:center; gap:16px; padding:16px 0; margin-bottom:28px; }
.jcm-single-share-label { font-size:14px; color:#999; }
.jcm-single-share-btns { display:flex; gap:8px; }
.jcm-single-share-btn { padding:8px 16px; border:2px solid #e5e5e5; border-radius:8px; font-size:13px; font-weight:600; font-family:'Outfit',sans-serif; color:#555; text-decoration:none; transition:all 0.15s; }
.jcm-single-share-btn:hover { border-color:#ccc; color:#222; text-decoration:none; }

/* Comments */
.jcm-single-comments { background:#fff; border:1px solid #e5e5e5; border-radius:16px; padding:32px 36px; margin-bottom:28px; }
.jcm-single-comments-title { font-family:'Outfit',sans-serif; font-size:22px; font-weight:700; color:#1a1a2e; margin-bottom:4px; }
.jcm-single-comments-sub { font-size:14px; color:#888; margin-bottom:24px; }
.jcm-comments-list { margin-bottom:28px; border-bottom:1px solid #f0f0f0; padding-bottom:8px; }
.jcm-comment { display:flex; gap:14px; padding:16px 0; border-top:1px solid #f0f0f0; }
.jcm-comment:first-child { border-top:none; }
.jcm-comment-avatar { width:40px; height:40px; border-radius:50%; background:#f0f0f0; color:#999; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; flex-shrink:0; }
.jcm-comment-body { flex:1; }
.jcm-comment-author { font-weight:600; color:#222; font-size:14px; margin-bottom:0; }
.jcm-comment-date { font-size:12px; color:#bbb; margin-bottom:6px; }
.jcm-comment-text { font-size:14px; line-height:1.6; color:#444; }
.jcm-comment-text p { margin:0 0 8px; }
.jcm-comment-text p:last-child { margin:0; }

.jcm-comment-form { display:flex; flex-direction:column; gap:16px; }
.jcm-cf-field { display:flex; flex-direction:column; gap:6px; }
.jcm-cf-field label { font-size:14px; font-weight:600; color:#222; }
.jcm-cf-field input, .jcm-cf-field textarea { background:#fff; border:2px solid #e5e5e5; border-radius:8px; padding:12px 14px; font-size:15px; color:#222; font-family:'Outfit',sans-serif; outline:none; transition:border-color 0.2s; width:100%; }
.jcm-cf-field input:focus, .jcm-cf-field textarea:focus { border-color:#e02b2b; box-shadow:0 0 0 3px rgba(224,43,43,0.08); }
.jcm-cf-field input::placeholder, .jcm-cf-field textarea::placeholder { color:#bbb; }
.jcm-cf-field textarea { resize:vertical; line-height:1.6; }
.jcm-cf-error { color:#e02b2b; font-size:14px; font-weight:500; padding:10px 14px; background:#fef2f2; border-radius:8px; }
.jcm-cf-submit { display:inline-flex; align-self:flex-start; background:#e02b2b; color:#fff; border:none; border-radius:8px; padding:14px 28px; font-size:15px; font-weight:700; font-family:'Outfit',sans-serif; cursor:pointer; transition:all 0.2s; box-shadow:0 2px 8px rgba(224,43,43,0.2); }
.jcm-cf-submit:hover { background:#c82323; transform:translateY(-1px); }
.jcm-cf-submit:disabled { opacity:0.5; cursor:not-allowed; transform:none; }
.jcm-cf-note { font-size:13px; color:#999; }

.jcm-memory-success { text-align:center; padding:20px 0; }
.jcm-memory-success p { font-size:14px; color:#555; margin:4px 0; }
.jcm-published-check { width:48px; height:48px; border-radius:50%; background:#f0fdf9; color:#2a9d8f; font-size:24px; font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }

.jcm-single-cta { text-align:center; padding:28px 24px; background:#f9fafb; border-radius:12px; border:1px solid #eee; }
.jcm-single-cta p { font-size:15px; color:#777; margin-bottom:12px; }
.jcm-single-cta-btn { display:inline-block; background:#e02b2b; color:#fff !important; border-radius:8px; padding:14px 28px; font-size:15px; font-weight:700; font-family:'Outfit',sans-serif; text-decoration:none; transition:all 0.2s; box-shadow:0 2px 8px rgba(224,43,43,0.2); }
.jcm-single-cta-btn:hover { background:#c82323; transform:translateY(-1px); text-decoration:none; color:#fff !important; }

@media (max-width:600px) {
  .jcm-single-wrap { padding:20px 16px 40px; }
  .jcm-single-header { padding:28px 22px 20px; }
  .jcm-single-name { font-size:26px; }
  .jcm-single-body { padding:24px 22px 8px; }
  .jcm-single-footer { padding:20px 22px 24px; }
  .jcm-single-comments { padding:24px 20px; }
  .jcm-single-share { flex-direction:column; gap:10px; }
}
