/* ==========================================================================
   validation.html — verification & validation case studies
   Each case is a <section class="v-case"> with an anchor id that the product
   pages deep-link to. Blocks sit on the plain .container edge; only figures
   are width-capped, never text.
   ========================================================================== */

.v-intro p,
.v-case p,
.v-case li {
	color: #4d4d4d;
	font-size: 1rem;
	line-height: 1.7;
}

/* Case index cards */
.v-index-card {
	display: block;
	height: 100%;
	background: #fff;
	border: 1px solid #b6c8f0;
	border-radius: 6px;
	padding: 1.25rem;
	color: #1a3870;
	text-decoration: none;
}
.v-index-card:hover { border-color: #4b81e8; text-decoration: none; color: #1a3870; }
.v-index-card .v-tag { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; color: #4b81e8; font-weight: 700; }
.v-index-card strong { display: block; margin: 0.3rem 0; font-size: 1.05rem; }
.v-index-card span.v-sub { font-size: 0.9rem; color: #555; }

/* Case sections */
/* The rule is drawn by ::before so it sits inside the container padding and
   lines up with the text, rather than as a border-top on the padded box. */
.v-case { padding-bottom: 2.5rem; }
.v-case::before { content: ""; display: block; border-top: 2px solid #cedcff; margin-bottom: 2.5rem; }
.v-case h2 { color: rgb(93, 147, 234); font-size: clamp(20px, 3.2vw, 28px); margin-bottom: 0.4rem; }
.v-case h3 { color: #2F5496; font-size: 1.2rem; margin-top: 2rem; margin-bottom: 0.8rem; }
.v-meta { font-size: 0.9rem; color: #666; margin-bottom: 1.2rem; }
.v-meta span { display: inline-block; margin-right: 1.2rem; }

/* Headline result tiles */
.v-result {
	background: #f4f7ff;
	border: 1px solid #cedcff;
	border-radius: 6px;
	padding: 1rem;
	height: 100%;
}
.v-result .v-label { font-size: 0.85rem; color: #555; }
.v-result .v-values { font-size: 1.05rem; color: #1a3870; margin-top: 0.3rem; }
.v-result .v-diff { font-size: 1.4rem; font-weight: 700; color: #2F5496; }

/* Data tables. Scoped to .v-table so the global table rules in tables.css
   (not loaded here) and style.css cannot leak in or out. */
.v-table-wrap { overflow-x: auto; margin-bottom: 1rem; }
table.v-table { width: 100%; border-collapse: collapse; font-size: 0.92rem; margin: 0; }
table.v-table th,
table.v-table td { border: 1px solid #cfd8ea; padding: 0.4rem 0.6rem; text-align: center; color: #333; }
table.v-table th { background: #e8efff; color: #1a3870; font-weight: 700; }
/* Only the depth/label column is left-aligned; in a two-row header the second
   row's first cell is a data column, so it must stay centred. */
table.v-table td:first-child,
table.v-table tr:first-child th:first-child { text-align: left; }
table.v-table caption { caption-side: top; color: #2F5496; font-weight: 700; padding: 0 0 0.4rem; }

/* Figures */
.v-fig { margin: 0 auto 1.5rem; text-align: center; }
.v-fig img { width: 100%; max-width: 560px; height: auto; border: 1px solid #e3e7ef; border-radius: 4px; background: #fff; }
.v-fig figcaption { font-size: 0.88rem; color: #555; margin-top: 0.5rem; }

/* Worked calculation */
.v-calc { background: #fafbff; border-left: 4px solid #4b81e8; padding: 0.8rem 1rem; font-family: "Roboto Mono", monospace; font-size: 0.9rem; color: #333; overflow-x: auto; }
.v-calc div { white-space: nowrap; line-height: 1.9; }

/* Full data tables, collapsed by default */
.v-details summary { cursor: pointer; color: #4b81e8; font-weight: 700; margin: 0.5rem 0 1rem; }

.v-refs li { margin-bottom: 0.4rem; }
