/* =====================================================================
   Prova — content.css
   Typography & elements for CMS content rendered into $content_for_layout
   (page bodies, notices, results tables, teacher/student profiles, etc.)
   Scoped under .pv-content so it never fights the theme chrome.
   ===================================================================== */

.pv-content{ font-size:15.5px; color:var(--pv-ink); }

.pv-content h1{ font-size:28px; margin:0 0 14px; }
.pv-content h2{ font-size:23px; margin:26px 0 12px; padding-bottom:6px; border-bottom:2px solid var(--pv-line); }
.pv-content h3{ font-size:19px; margin:22px 0 10px; color:var(--pv-pine-700); }
.pv-content h4{ font-size:16px; margin:18px 0 8px; }
.pv-content p{ margin:0 0 14px; }
.pv-content a{ color:var(--pv-pine); text-decoration:underline; text-underline-offset:2px; }
.pv-content a:hover{ color:var(--pv-gold); }

.pv-content :lang(bn){ font-family:var(--pv-bn); }
.pv-content :lang(ar){ font-family:var(--pv-ar); direction:rtl; }

/* Lists */
.pv-content ul, .pv-content ol{ margin:0 0 16px; padding-left:22px; }
.pv-content li{ margin:5px 0; }

/* Blockquote / callout */
.pv-content blockquote{
  margin:18px 0; padding:12px 18px; color:var(--pv-pine-700);
  background:var(--pv-paper); border-left:4px solid var(--pv-gold); border-radius:0 10px 10px 0;
}

/* Images inside content */
.pv-content img{ border-radius:10px; }
.pv-content figure{ margin:18px 0; }
.pv-content figcaption{ color:var(--pv-muted); font-size:13px; margin-top:6px; text-align:center; }

/* Tables — results, mark sheets, rosters (very common on this platform) */
.pv-content table{
  width:100%; border-collapse:collapse; margin:16px 0; font-size:14px;
  background:var(--pv-surface); border:1px solid var(--pv-line);
  border-radius:10px; overflow:hidden;
}
.pv-content thead th{
  background:var(--pv-pine); color:#fff; text-align:left; font-weight:600;
  padding:10px 12px; font-size:13.5px; letter-spacing:.01em;
}
.pv-content tbody td, .pv-content tbody th{
  padding:9px 12px; border-top:1px solid var(--pv-line); vertical-align:top;
}
.pv-content tbody tr:nth-child(even){ background:var(--pv-paper); }
.pv-content tbody tr:hover{ background:#eef5f1; }

/* Definition-style profile rows */
.pv-content dl{ display:grid; grid-template-columns:170px 1fr; gap:6px 14px; margin:14px 0; }
.pv-content dt{ font-weight:600; color:var(--pv-pine-700); }
.pv-content dd{ margin:0; }

/* Bare CakePHP scaffold forms (login, search, cpanel) get sensible styling */
.pv-content input[type="text"],
.pv-content input[type="email"],
.pv-content input[type="password"],
.pv-content input[type="number"],
.pv-content input[type="date"],
.pv-content select,
.pv-content textarea{
  width:100%; max-width:420px; padding:10px 12px; font:inherit; color:var(--pv-ink);
  background:#fff; border:1px solid var(--pv-line); border-radius:9px; outline:none;
}
.pv-content textarea{ max-width:100%; }
.pv-content input:focus, .pv-content select:focus, .pv-content textarea:focus{
  border-color:var(--pv-pine-300); box-shadow:0 0 0 3px rgba(46,125,109,.18);
}
.pv-content label{ display:block; font-weight:600; margin:12px 0 5px; color:var(--pv-pine-700); }

.pv-content input[type="submit"],
.pv-content button:not(.btn),
.pv-content .submit input{
  display:inline-block; cursor:pointer; font:inherit; font-weight:600;
  background:var(--pv-pine); color:#fff; border:0; padding:10px 20px;
  border-radius:9px; margin-top:8px;
}
.pv-content input[type="submit"]:hover,
.pv-content button:not(.btn):hover,
.pv-content .submit input:hover{ background:var(--pv-pine-700); }

/* Cake's validation error markup */
.pv-content .error-message, .pv-content .error{ color:#9b2c22; font-size:13px; margin:4px 0 0; }
.pv-content .required label{ position:relative; }

@media (max-width:575px){
  .pv-content{ padding:18px 16px; }
  .pv-content dl{ grid-template-columns:1fr; gap:2px; }
  .pv-content dd{ margin:0 0 8px; }
}
