:root{
  --bg:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --accent:#06b6d4; /* turquoise */
  --accent-ink:#0ea5b6;
  --border:#e5e7eb;
  --shadow:0 10px 30px rgba(0,0,0,.06);
  --radius:16px;
  --maxw:1380px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial;line-height:1.65;margin:0}

/* Subtle orthopedic watermark (SVG line-art), light turquoise */
body::before{
  content:"";
  position:fixed; inset:0;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="800" viewBox="0 0 1200 800"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="%2306b6d4" stop-opacity="0.06"/><stop offset="1" stop-color="%2306b6d4" stop-opacity="0.03"/></linearGradient></defs><g fill="none" stroke="url(%23g)" stroke-width="2"><path d="M80,120 C160,60 240,60 320,120 C400,180 480,180 560,120 C640,60 720,60 800,120 C880,180 960,180 1040,120" /><path d="M120,420 c40,-70 120,-70 160,0 s120,70 160,0 s120,-70 160,0 s120,70 160,0 s120,-70 160,0" /><path d="M200,700 Q400,540 600,700 T1000,700" /><circle cx="300" cy="260" r="40"/><rect x="720" y="250" width="120" height="40" rx="20" /><path d="M900,320 l60,0 a30,30 0 0 1 0,60 l-60,0 a30,30 0 0 1 0,-60 z" /></g></svg>');
  background-repeat: no-repeat;
  background-size: 1200px 800px;
  background-position: center 18%;
  opacity: .18;
  pointer-events:none;
  z-index:-1;
}


/* Container */
.jocd-case{margin:44px auto 60px;max-width:var(--maxw);padding:0 28px}

/* Title + meta */
.jocd-title{font-size:clamp(2.4rem,3.2vw,3.4rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 28px}
.jocd-meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:.98rem;color:var(--muted);margin-bottom:28px}
.jocd-meta .pill{background:#f8fafc;border:1px solid var(--border);padding:6px 10px;border-radius:999px}
.jocd-meta .sep{color:#d1d5db}
.jocd-ref{font-weight:600;color:#111827}

/* Two-column + sticky TOC */
.jocd-layout{display:grid;grid-template-columns:320px 1fr;gap:28px}
.jocd-sticky{position:sticky;top:24px;align-self:start}
@media (max-width:1100px){.jocd-layout{grid-template-columns:1fr}.jocd-sticky{position:static}}

/* TOC styles with turquoise numbers + links */
.jocd-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.jocd-toc h3{margin:0 0 8px;font-size:1.1rem;color:var(--accent-ink)}
.jocd-toc ol{margin:0;padding-left:18px}
.jocd-toc li{margin:6px 0;color:var(--accent-ink)}
.jocd-toc li::marker{color:var(--accent)}
.jocd-toc a{color:var(--accent-ink);text-decoration:none}
.jocd-toc a:hover{text-decoration:underline}

/* Sections */
.jocd-section{margin:28px 0 36px;padding-top:6px}
.jocd-section h2{font-size:clamp(1.7rem,2.1vw,2.2rem);margin:0 0 12px;line-height:1.22;letter-spacing:-.01em;position:relative}
/* Subtle turquoise underline for harmony */
.jocd-section h2::after{content:"";position:absolute;left:0;bottom:-6px;height:3px;width:72px;border-radius:3px;background:linear-gradient(90deg,var(--accent),transparent)}
.jocd-section.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
/* Soft turquoise accent bar on cards */
.jocd-section.card::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--accent),transparent);border-radius:4px;margin:-22px -22px 18px}

/* Case Details break */
.jocd-break{font-size:clamp(2rem,2.6vw,2.6rem);margin:12px 0 8px;color:#0b1220}
.jocd-break::after{content:"";display:block;height:4px;width:100px;background:linear-gradient(90deg,var(--accent),transparent);border-radius:4px;margin-top:6px}

/* Prose + figure grids */
.jocd-prose p{margin:0 0 14px;font-size:1.06rem}
.jocd-prose ul,.jocd-prose ol{padding-left:22px;margin:8px 0 16px}
.jocd-prose li{margin:6px 0}

/* Image frames with "broken edges" vibe */
.img-frame{position:relative;border:1px dashed #dbe3ea;border-radius:14px;padding:6px;background:#fff;box-shadow:0 6px 18px rgba(2,6,23,.06)}
.img-frame::before,.img-frame::after{content:"";position:absolute;width:24px;height:24px;border:1px solid #dbe3ea;border-radius:6px;transform:rotate(8deg)}
.img-frame::before{top:-10px;left:-10px}
.img-frame::after{bottom:-10px;right:-10px}
.img-frame img{display:block;width:100%;height:auto;border-radius:10px;cursor:pointer}

/* Thumbnails (smaller in non-Figure sections) */
.thumb img{max-height:170px;object-fit:cover}

/* Captions only visible inside Figures */
.img-caption{display:none;color:var(--muted);font-size:.95rem;margin-top:6px}
#figures .img-caption{display:block}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(2,6,23,.88);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px}
.lightbox.open{display:flex}
.lightbox img{max-width:96vw;max-height:90vh;border-radius:12px}
.lightbox .close{position:absolute;top:16px;right:20px;font-size:28px;color:#fff;cursor:pointer;font-weight:700}

/* Grids */
.jocd-grid{display:grid;gap:14px}
.jocd-grid-2{grid-template-columns:1fr 1fr}
.jocd-grid-3{grid-template-columns:repeat(3,1fr)}
.jocd-grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1200px){.jocd-grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.jocd-grid-2,.jocd-grid-3,.jocd-grid-4{grid-template-columns:1fr}}

/* Authors */
.jocd-authors{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.jocd-authors.jocd-authors--single{grid-template-columns:1fr}
@media (max-width:720px){.jocd-authors{grid-template-columns:1fr}}
.jocd-author{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px}

/* Buttons + pills */
.jocd-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow);text-decoration:none;font-weight:600;cursor:pointer}
.jocd-btn:hover{transform:translateY(-1px);transition:.2s ease}

/* Self-test questions */
.q-item{border:1px solid var(--border);border-radius:12px;padding:14px;margin:12px 0;background:#fff}
.q-item label{font-weight:700;display:block;margin-bottom:10px}
.q-textarea{width:100%;min-height:110px;resize:vertical;padding:12px;border:1px solid var(--border);border-radius:10px;font-size:1rem;line-height:1.55}
.q-actions{display:flex;gap:10px;align-items:center;margin-top:12px}
.q-msg{font-weight:600;color:var(--muted)}
.answer-panel{display:none;margin-top:12px;border-radius:14px;background:#f8fafc;color:#0f172a;padding:16px 18px;border:1px solid var(--border)}
.answer-panel h4{margin:0 0 10px;color:#0f172a}
.answer-panel li{margin:8px 0}

/* Forms (inquiries, comments) */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:720px){.form-grid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-weight:600}
.field input,.field textarea{padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:1rem}
.form-actions{margin-top:12px}
.muted{color:var(--muted);font-size:.95rem}

/* Rating */
.rating{display:flex;gap:6px;font-size:28px;cursor:pointer;user-select:none}
.star{color:#d1d5db}
.star.active{color:#f59e0b}

/* Reference list */
.jocd-refs li{margin:10px 0}

/* Relevant cases + archives */
.cards{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}
@media (max-width:1000px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.card h3{margin:0 0 8px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pill{border:1px solid var(--border);border-radius:999px;padding:8px 12px;background:#fff;font-weight:600}

/* Figure larger */
#figures .img-frame img{max-height:none}


/* --- concatenated from approved HTML template --- */


/* Question/Answer thumbnail grid: 2-up, square-ish, wraps to next row */
.q-thumb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0}
@media (max-width:720px){.q-thumb-grid{grid-template-columns:1fr}}
/* Make thumbs closer to square within Q/A grids */
.q-thumb-grid .img-frame.thumb img{aspect-ratio:1/1;object-fit:cover;max-height:none}

/* Laptop canvas widening */
:root{--maxw:1680px;}
.jocd-case{padding:0 18px;}
.jocd-layout{gap:24px;}
@media (min-width:1200px){.jocd-layout{grid-template-columns:320px 1fr;}}

/* Inline Qn prefix like Q1. Question... */
.q-question>p:first-child::before{content:"Q" attr(data-qnum) ". ";font-weight:800;margin-right:6px;color:#0b1220}

/* Lightbox above header and visible close button */
.lightbox{z-index:999999!important;}
.lightbox .close{display:block;position:absolute;top:16px;right:20px;color:#fff;background:rgba(0,0,0,.45);width:40px;height:40px;line-height:38px;text-align:center;border-radius:999px;font-size:26px;font-weight:800;z-index:1000000}

/* Image grid: at most 2 per row on desktop, no empty placeholders */
.img-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:10px 0 6px;justify-items:start}
.img-grid figure{margin:0}
.img-grid img{display:block;width:100%;height:auto;border-radius:10px;cursor:pointer;box-shadow:var(--shadow);object-fit:contain;margin:0}

/* Limit single inline images so small ones aren't over-stretched */
.jocd-prose img,#questions .q-question img,.answer-panel .jocd-prose img{max-width:130px;width:100%;height:auto;}

@media (max-width:820px){
  .jocd-case{padding:0 14px;}
  .img-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:10px 0 6px}
}

/* inline Qn. label */
.q-prefix{font-weight:800;margin-right:6px;color:#0b1220;display:inline-block}

.q-question{display:flex;align-items:flex-start;gap:6px}


/* widen JOCD case area on large screens */
@media (min-width: 1280px){
  .jocd-case{max-width:var(--maxw);padding-left:28px;padding-right:28px;}
}

/* === Q&A layout + image sizing adjustments (custom parade v4) === */

/* Card styling for Self‑Test questions */
.q-item{
  border-radius:16px;
  padding:18px 18px 16px;
  margin:18px 0 22px;
  background:#fff;
  box-shadow:var(--shadow);
}

/* Question line: "Qn. Question text" */
.q-question{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-bottom:12px;
}

.q-prefix{
  font-weight:800;
  margin-right:8px;
  color:#0b1220;
  display:inline-block;
}

.q-text{
  flex:1;
}

/* User answer area */
.q-textarea{
  margin-top:8px;
}

/* Show-answer row */
.q-actions{
  margin-top:14px;
}

/* Suggested answer panel */
.answer-panel{
  margin-top:16px;
  border-radius:16px;
  padding:18px 18px 16px;
}

/* Inline images inside questions/answers: compact thumbnails (about half-size)
   while the lightbox still shows the original full-size image. */
.jocd-prose img,
#questions .q-question img,
.answer-panel .jocd-prose img{
  max-width:100%;
  width:100%;
  height:auto;
}

/* === Q&A layout overrides to match HTML template === */

/* Let the Q label + text sit on one flex row, with any image grid forced onto its own row below, left-aligned. */
#questions .q-question{
  display:flex;
  align-items:flex-start;
  gap:8px;
  flex-wrap:wrap;
}

#questions .q-question .q-prefix{
  flex:0 0 auto;
}

#questions .q-question .q-text{
  flex:1 1 auto;
}

/* Make the auto-generated .img-grid occupy a full-width row under the question text. */
#questions .q-question .img-grid{
  order:1;
  flex:0 0 100%;
  max-width:100%;
  margin-top:10px;
}

/* Match question/answer thumbnail sizing to the HTML template's .thumb images. */
#questions .img-grid .img-frame img,
#questions .answer-panel .img-frame img{
  max-height:170px;
  object-fit:cover;
}

/* === Comments & Inquiries styling === */
#comments .comment-form.jocd-comment-form{
  margin-top:12px;
}
.jocd-comment-list .comment{
  margin:8px 0;
  padding:12px 14px;
  border-radius:12px;
  background:#fff;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.jocd-comment-list .comment-meta{
  font-size:.9rem;
  color:var(--muted);
}
.jocd-comment-list .comment-content{
  margin-top:6px;
}


/* CPD certificate claim button */
.jocd-cpd-claim-btn{
  background:#20c0cc;
  color:#ffffff;
  border-color:#20c0cc;
}
.jocd-cpd-claim-btn:hover{
  background:#159099;
  color:#ffffff;
  border-color:#159099;
}
.jocd-cpd-claim .jocd-cpd-message{
  margin-top:8px;
  font-size:0.9rem;
  color:#b91c1c;
}
