/* MSM Certificate Verification — public "Classic" style. Scoped to .msmcv to resist theme styles. */
.msmcv {
	--msmcv-teal: #4b7774;
	--msmcv-teal-light: #5a8784;
	--msmcv-teal-dark: #3f6865;
	--msmcv-gold: #c9a043;
	--msmcv-gold-light: #e3c47a;
	--msmcv-text: #2b2b2b;
	--msmcv-green: #1f7a52;
	--msmcv-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--msmcv-sans: 'Raleway', 'Helvetica Neue', Arial, sans-serif;
	font-family: var(--msmcv-sans);
	color: #fff;
	line-height: 1.5;
	font-variant-numeric: lining-nums;
	font-feature-settings: "lnum" 1;
	-webkit-font-smoothing: antialiased;
}
.msmcv input, .msmcv button { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; }
.msmcv *, .msmcv *::before, .msmcv *::after { box-sizing: border-box; }

.msmcv .msmcv-band {
	background: radial-gradient(circle at 50% 0%, var(--msmcv-teal-light), var(--msmcv-teal-dark));
	background-color: var(--msmcv-teal);
	padding: 56px 20px 60px;
	text-align: center;
}

.msmcv .msmcv-eyebrow {
	display: flex; align-items: center; justify-content: center; gap: 14px;
	margin: 0; color: var(--msmcv-gold-light);
	font: 600 12px/1.4 var(--msmcv-sans); letter-spacing: .25em; text-transform: uppercase;
}
.msmcv .msmcv-eyebrow::before, .msmcv .msmcv-eyebrow::after {
	content: ''; width: 44px; height: 1px; background: var(--msmcv-gold); flex: 0 0 auto;
}
.msmcv .msmcv-title {
	margin: 14px 0 10px; padding: 0; color: #fff;
	font: 500 clamp(30px, 5vw, 46px)/1.15 var(--msmcv-serif); letter-spacing: .01em; text-transform: none;
}
.msmcv .msmcv-intro { margin: 0 auto 28px; max-width: 560px; font-size: 15px; color: rgba(255,255,255,.92); }

.msmcv .msmcv-form {
	display: flex; max-width: 500px; margin: 0 auto;
	border: 1px solid var(--msmcv-gold); background: rgba(255,255,255,.97);
	box-shadow: 0 10px 28px rgba(0,0,0,.18);
}
.msmcv .msmcv-input {
	flex: 1 1 auto; min-width: 0; margin: 0; height: auto;
	padding: 16px 18px; border: 0; border-radius: 0; outline: 0; box-shadow: none; background: transparent;
	font: 500 17px/1.2 var(--msmcv-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--msmcv-text);
}
.msmcv .msmcv-input::placeholder { color: #9aa5a4; letter-spacing: .06em; text-transform: none; font-weight: 400; }
.msmcv .msmcv-form:focus-within { outline: 2px solid var(--msmcv-gold-light); outline-offset: 2px; }
.msmcv .msmcv-button {
	flex: 0 0 auto; margin: 0; padding: 0 30px; min-height: 54px;
	border: 0; border-radius: 0; box-shadow: none; cursor: pointer;
	background: var(--msmcv-gold); color: #fff;
	font: 700 13px/1 var(--msmcv-sans); letter-spacing: .2em; text-transform: uppercase;
	transition: background-color .15s ease;
}
.msmcv .msmcv-button:hover, .msmcv .msmcv-button:focus-visible { background: #b38c33; color: #fff; }
.msmcv .msmcv-button[disabled] { cursor: progress; opacity: .8; }
.msmcv .msmcv-button[aria-busy="true"]::after {
	content: ''; display: inline-block; width: 12px; height: 12px; margin-left: 10px; vertical-align: -1px;
	border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%;
	animation: msmcv-spin .7s linear infinite;
}
@keyframes msmcv-spin { to { transform: rotate(360deg); } }

.msmcv .msmcv-hint { margin: 14px 0 0; font-size: 13px; color: rgba(255,255,255,.75); }
.msmcv .msmcv-sr {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px,1px,1px,1px); white-space: nowrap;
}

.msmcv .msmcv-result:empty { display: none; }
.msmcv .msmcv-result { max-width: 780px; margin: 34px auto 0; text-align: left; }

/* Messages */
.msmcv .msmcv-msg { padding: 18px 20px; border-left: 4px solid; color: var(--msmcv-text); }
.msmcv .msmcv-msg p { margin: 0; }
.msmcv .msmcv-msg__title { font: 700 16px/1.3 var(--msmcv-sans); margin-bottom: 4px !important; }
.msmcv .msmcv-msg__text { font-size: 14px; }
.msmcv .msmcv-msg--notfound { background: #fbeeee; border-color: #b54343; color: #7d2626; }
.msmcv .msmcv-msg--withdrawn { background: #fdf5e4; border-color: var(--msmcv-gold); color: #6e5110; }

/* Certificate card */
.msmcv .msmcv-card {
	position: relative; background: #fff; color: var(--msmcv-text);
	padding: 38px 34px 34px; border-radius: 2px;
	box-shadow: 0 14px 40px rgba(0,0,0,.28);
}
.msmcv .msmcv-card::before {
	content: ''; position: absolute; inset: 9px; border: 1px solid var(--msmcv-gold); pointer-events: none;
}
.msmcv .msmcv-card__head { text-align: center; }
.msmcv .msmcv-seal {
	width: 64px; height: 64px; margin: 0 auto 10px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	border: 2px solid var(--msmcv-gold); color: var(--msmcv-gold);
	box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 5px rgba(201,160,67,.45);
}
.msmcv .msmcv-status {
	margin: 0; color: var(--msmcv-green);
	font: 700 12px/1.4 var(--msmcv-sans); letter-spacing: .3em; text-transform: uppercase;
}
.msmcv .msmcv-number {
	margin: 4px 0 10px; padding: 0; color: var(--msmcv-text);
	font: 500 clamp(21px, 3.4vw, 27px)/1.25 var(--msmcv-serif); letter-spacing: .01em; text-transform: none;
	overflow-wrap: anywhere;
}
.msmcv .msmcv-valid-msg { margin: 0 auto; max-width: 560px; font-size: 14px; color: #555; }

.msmcv .msmcv-images {
	display: grid; grid-template-columns: 2fr 1fr; gap: 14px; margin: 26px 0 0;
}
.msmcv .msmcv-images--single { grid-template-columns: 1fr; }
.msmcv .msmcv-image { margin: 0; position: relative; background: #f3f1ea; border: 1px solid #ece6d6; }
.msmcv .msmcv-image a { display: block; height: 100%; cursor: zoom-in; }
.msmcv .msmcv-image img {
	display: block; width: 100%; height: 280px; object-fit: contain; max-width: 100%;
	border: 0; border-radius: 0; box-shadow: none; margin: 0;
}
.msmcv .msmcv-images--single .msmcv-image img { height: 340px; }
.msmcv .msmcv-image figcaption {
	position: absolute; left: 10px; bottom: 8px; padding: 2px 8px; background: rgba(255,255,255,.85);
	font: 600 10px/1.6 var(--msmcv-sans); letter-spacing: .18em; text-transform: uppercase; color: #6b6b6b;
}

.msmcv .msmcv-table {
	width: 100%; margin: 24px 0 0; border-collapse: collapse; border: 0;
	font-size: 14px; background: #fff;
}
.msmcv .msmcv-table th, .msmcv .msmcv-table td {
	padding: 12px 14px; border: 1px solid #ece6d6; vertical-align: top; text-align: left; color: var(--msmcv-text);
}
.msmcv .msmcv-table th { width: 150px; font-weight: 600; background: #faf7ef; }
.msmcv .msmcv-table td { overflow-wrap: anywhere; }

/* Lightbox (appended to <body>, so not scoped under .msmcv) */
.msmcv-lightbox {
	position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center;
	padding: 24px; background: rgba(16, 28, 27, .9); cursor: zoom-out;
}
.msmcv-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 10px 40px rgba(0,0,0,.5); background: #fff; }
.msmcv-lightbox button {
	position: absolute; top: 14px; right: 16px; width: 44px; height: 44px; padding: 0;
	border: 1px solid rgba(255,255,255,.4); border-radius: 50%; background: transparent; color: #fff;
	font: 400 26px/1 Arial, sans-serif; cursor: pointer;
}

@media (max-width: 600px) {
	.msmcv .msmcv-band { padding: 42px 16px 46px; }
	.msmcv .msmcv-button { padding: 0 18px; letter-spacing: .14em; }
	.msmcv .msmcv-input { padding: 14px; font-size: 16px; letter-spacing: .08em; }
	.msmcv .msmcv-card { padding: 30px 20px 22px; }
	.msmcv .msmcv-images { grid-template-columns: 1fr; }
	.msmcv .msmcv-image img, .msmcv .msmcv-images--single .msmcv-image img { height: 240px; }
	.msmcv .msmcv-table th, .msmcv .msmcv-table td { display: block; width: auto; }
	.msmcv .msmcv-table th { border-bottom: 0; padding-bottom: 4px; }
	.msmcv .msmcv-table td { padding-top: 4px; }
}
@media (prefers-reduced-motion: reduce) {
	.msmcv .msmcv-button[aria-busy="true"]::after { animation: none; }
}
