/**
 * Registration & Admissions — "institutional ledger" theme.
 *
 * Scoped entirely under .capectg-reg-elegant so it only affects the
 * multi-step registration form template (frontend-registration-form.php)
 * and never touches the shared classes forms.css also serves to the
 * status-lookup page, student dashboard, or money-receipt print view.
 * Loaded after forms.css (see RegistrationForm::enqueue()) so these rules
 * can safely override it for this one template only.
 *
 * No external font requests — matches the standing decision on the CAPE
 * homepage build to keep the site to zero external font fetches. Serif
 * stack stands in for Cormorant Garamond, system sans for Plus Jakarta
 * Sans, system monospace for IBM Plex Mono.
 */
/* Compound selector (.capectg-reg-form-wrap.capectg-reg-elegant) rather than
   just .capectg-reg-elegant — guarantees this beats forms.css's
   .capectg-reg-form-wrap { max-width:720px; margin:0 auto; } on specificity
   alone, rather than relying on stylesheet load order (which still holds,
   via the dependency array in RegistrationForm::enqueue(), but shouldn't be
   the only thing keeping this rule winning). */
.capectg-reg-form-wrap.capectg-reg-elegant{
	--creg-navy:#14192B;
	--creg-navy-2:#1E2540;
	--creg-gold:#B08D2B;
	--creg-gold-light:#D4B45C;
	--creg-gold-ink:#8C6D1F;
	--creg-parchment:#F6F1E4;
	--creg-parchment-deep:#EFE7D2;
	--creg-cream:#FFFDF8;
	--creg-line:#DCD1AC;
	--creg-ink:#2A2A24;
	--creg-ink-soft:#5C5847;
	--creg-danger:#8C2F2F;
	--creg-serif: Georgia, 'Times New Roman', serif;
	--creg-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--creg-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

	width: 100%;
	max-width: none;
	margin: 0;
	font-family: var(--creg-sans);
	color: var(--creg-ink);
}

/* ---- Letterhead strip ---- */
.capectg-reg-elegant .creg-head{
	background: linear-gradient(160deg, var(--creg-navy) 0%, var(--creg-navy-2) 100%);
	color: #EDE9DC;
	padding: 26px 30px 22px;
	display: flex;
	align-items: center;
	gap: 16px;
}
.capectg-reg-elegant .creg-seal{
	width: 44px; height: 44px; border-radius: 50%;
	border: 1.5px dashed var(--creg-gold-light);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--creg-serif); font-weight: 700; font-size: .95rem;
	color: var(--creg-gold-light); flex: none; position: relative;
}
.capectg-reg-elegant .creg-seal::before{
	content:""; position:absolute; inset:5px; border-radius:50%;
	border:1px solid rgba(212,180,92,.35);
}
.capectg-reg-elegant .creg-head-text h2{
	font-family: var(--creg-serif); font-weight: 700; font-size: 1.4rem;
	margin: 0; color: #fff;
}
.capectg-reg-elegant .creg-head-text p{
	margin: 4px 0 0; font-size: .85rem; color: rgba(237,233,220,.7);
}

/* ---- Message banner (JS toggles .error / .success on this) ---- */
.capectg-reg-elegant .capectg-reg-msg{
	margin: 0; padding: 0;
	font-size: .88rem;
	transition: padding .15s ease;
}
.capectg-reg-elegant .capectg-reg-msg:empty{ padding: 0; }
.capectg-reg-elegant .capectg-reg-msg.error,
.capectg-reg-elegant .capectg-reg-msg.success{
	padding: 14px 30px;
	border-bottom: 1px solid var(--creg-line);
}
.capectg-reg-elegant .capectg-reg-msg.error{
	background: #FBEEEE; color: var(--creg-danger);
}
.capectg-reg-elegant .capectg-reg-msg.success{
	background: #F0F7F2; color: #2F6B4F;
}
.capectg-reg-elegant .capectg-reg-msg.success::before{ content: "✓  "; font-weight: 700; }

/* ---- Stepper ---- */
.capectg-reg-elegant .creg-stepper{
	display: flex; align-items: center;
	padding: 18px 30px 16px;
	background: var(--creg-parchment-deep);
	border-bottom: 1px solid var(--creg-line);
	overflow-x: auto;
}
.capectg-reg-elegant .creg-step{
	display: flex; align-items: center; gap: 8px; flex: 1; position: relative; white-space: nowrap;
}
.capectg-reg-elegant .creg-step:not(:last-child)::after{
	content: ""; flex: 1; height: 1px; background: var(--creg-line); margin: 0 8px; min-width: 12px;
}
.capectg-reg-elegant .creg-step-node{
	width: 26px; height: 26px; border-radius: 50%;
	border: 1.5px solid var(--creg-line);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--creg-mono); font-size: .72rem; font-weight: 600; color: var(--creg-ink-soft);
	background: var(--creg-cream); flex: none;
	transition: all .2s ease;
}
.capectg-reg-elegant .creg-step-label{
	font-size: .74rem; color: var(--creg-ink-soft); font-weight: 600;
}
.capectg-reg-elegant .creg-step.is-active .creg-step-node{
	border-color: var(--creg-gold); color: var(--creg-gold-ink); background: #fff;
	box-shadow: 0 0 0 3px rgba(176,141,43,.14);
}
.capectg-reg-elegant .creg-step.is-active .creg-step-label{ color: var(--creg-navy); }
.capectg-reg-elegant .creg-step.is-done .creg-step-node{ background: var(--creg-gold); border-color: var(--creg-gold); color: #fff; }
.capectg-reg-elegant .creg-step.is-done .creg-step-label{ color: var(--creg-gold-ink); }
.capectg-reg-elegant .creg-step.is-done{ cursor: pointer; }

/* ---- Body / panels ---- */
.capectg-reg-elegant .capectg-reg-form{ background: var(--creg-cream); border: 1px solid var(--creg-line); border-top: none; }
.capectg-reg-elegant .creg-panels{ padding: 30px 30px 6px; }
.capectg-reg-elegant .creg-panel{ display: none; animation: creg-fade .3s ease; }
.capectg-reg-elegant .creg-panel.is-active{ display: block; }
@keyframes creg-fade{ from{ opacity: 0; transform: translateY(6px); } to{ opacity: 1; transform: translateY(0); } }

.capectg-reg-elegant .creg-panel-title{
	font-family: var(--creg-serif); font-weight: 700; font-size: 1.2rem; color: var(--creg-navy);
	border-left: 4px solid var(--creg-gold); padding-left: 12px; margin: 0 0 4px;
}
.capectg-reg-elegant .creg-panel-hint{
	color: var(--creg-ink-soft); font-size: .85rem; margin: 0 0 20px; padding-left: 16px;
}

.capectg-reg-elegant .capectg-reg-form fieldset{
	border: none; padding: 0; margin: 0 0 22px;
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px;
}
.capectg-reg-elegant .capectg-reg-form fieldset.creg-single-col{ grid-template-columns: 1fr; }
.capectg-reg-elegant .capectg-reg-form legend{
	grid-column: 1 / -1;
	font-family: var(--creg-serif); font-weight: 700; font-size: 1rem; color: var(--creg-gold-ink);
	padding: 0 0 6px; border-bottom: 1px dashed var(--creg-line); margin-bottom: 4px;
}
.capectg-reg-elegant .capectg-reg-form label{
	font-size: .78rem; font-weight: 700; color: var(--creg-navy); margin: 0 0 6px;
	display: block;
}
.capectg-reg-elegant .creg-field{ display: flex; flex-direction: column; }
.capectg-reg-elegant .creg-field.creg-full{ grid-column: 1 / -1; }

.capectg-reg-elegant .capectg-reg-form input[type="text"],
.capectg-reg-elegant .capectg-reg-form input[type="email"],
.capectg-reg-elegant .capectg-reg-form input[type="tel"],
.capectg-reg-elegant .capectg-reg-form input[type="date"],
.capectg-reg-elegant .capectg-reg-form select,
.capectg-reg-elegant .capectg-reg-form textarea{
	font-family: var(--creg-sans); font-size: .9rem;
	padding: 10px 12px; border: 1px solid var(--creg-line); background: #fff;
	border-radius: 2px; color: var(--creg-ink); width: 100%; box-sizing: border-box;
	outline: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.capectg-reg-elegant .capectg-reg-form textarea{ min-height: 68px; resize: vertical; }
.capectg-reg-elegant .capectg-reg-form input:focus,
.capectg-reg-elegant .capectg-reg-form select:focus,
.capectg-reg-elegant .capectg-reg-form textarea:focus{
	border-color: var(--creg-gold); box-shadow: 0 0 0 3px rgba(176,141,43,.14);
}
.capectg-reg-elegant .capectg-reg-form select:disabled{ background: var(--creg-parchment-deep); color: var(--creg-ink-soft); }
.capectg-reg-elegant .capectg-reg-form .description{
	grid-column: 1 / -1; font-size: .78rem; color: var(--creg-ink-soft); margin: -8px 0 4px;
}

.capectg-reg-elegant .field-status{ font-size: .74rem; margin-top: 4px; display: block; }
.capectg-reg-elegant .field-status.ok{ color: #2F6B4F; }
.capectg-reg-elegant .field-status.error{ color: var(--creg-danger); }

.capectg-reg-elegant .creg-invalid input,
.capectg-reg-elegant .creg-invalid select{ border-color: var(--creg-danger); }
.capectg-reg-elegant .creg-invalid-msg{
	display: none; font-size: .74rem; color: var(--creg-danger); margin-top: 4px;
}
.capectg-reg-elegant .creg-invalid .creg-invalid-msg{ display: block; }

/* File inputs kept native but styled as a document slot */
.capectg-reg-elegant .creg-file{
	border: 1.5px dashed var(--creg-line); background: #fff; padding: 14px;
	display: flex; align-items: center; gap: 10px;
}
.capectg-reg-elegant .creg-file:focus-within{ border-color: var(--creg-gold); }
.capectg-reg-elegant .creg-file input[type="file"]{ font-size: .8rem; width: 100%; }
.capectg-reg-elegant .creg-file .creg-file-icon{ color: var(--creg-gold-ink); font-size: 1.1rem; flex: none; }
.capectg-reg-elegant .creg-file-size{ font-size: .72rem; color: var(--creg-ink-soft); flex: none; white-space: nowrap; }

/* ---- Review step ---- */
.capectg-reg-elegant .creg-review-top{
	display: flex; justify-content: space-between; align-items: flex-start;
	gap: 20px; margin-bottom: 18px;
}
.capectg-reg-elegant .creg-review-top .creg-panel-title,
.capectg-reg-elegant .creg-review-top .creg-panel-hint{ margin-bottom: 0; }
.capectg-reg-elegant .creg-review-top .creg-panel-hint{ margin-top: 6px; margin-bottom: 0; }
.capectg-reg-elegant .creg-review-photo{
	flex: none; width: 118px; height: 148px;
	border: 1.5px solid var(--creg-gold);
	background: var(--creg-parchment-deep);
	display: flex; align-items: center; justify-content: center;
	position: relative; overflow: hidden;
}
.capectg-reg-elegant .creg-review-photo img{
	width: 100%; height: 100%; object-fit: cover; display: none;
}
.capectg-reg-elegant .creg-review-photo span{
	font-size: .68rem; color: var(--creg-ink-soft); text-align: center; padding: 8px;
}

.capectg-reg-elegant .creg-review-block{ border: 1px solid var(--creg-line); background: #fff; margin-bottom: 14px; }
.capectg-reg-elegant .creg-review-head{
	display: flex; justify-content: space-between; align-items: center;
	background: var(--creg-parchment-deep); padding: 9px 14px;
	font-family: var(--creg-serif); font-weight: 700; color: var(--creg-navy); font-size: .95rem;
}
.capectg-reg-elegant .creg-review-head button{
	font-family: var(--creg-sans); font-size: .74rem; font-weight: 700; color: var(--creg-gold-ink);
	background: none; border: none; cursor: pointer; padding: 0;
}
.capectg-reg-elegant .creg-review-head button:hover{ text-decoration: underline; }
.capectg-reg-elegant .creg-review-rows{ padding: 12px 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.capectg-reg-elegant .creg-review-rows .rr{ font-size: .84rem; }
.capectg-reg-elegant .creg-review-rows .rr span{
	display: block; color: var(--creg-ink-soft); font-size: .68rem; text-transform: uppercase;
	letter-spacing: .04em; margin-bottom: 2px;
}
.capectg-reg-elegant .creg-review-rows .rr b{ color: var(--creg-ink); font-weight: 600; }

/* ---- Footer nav ---- */
.capectg-reg-elegant .creg-foot{
	display: flex; justify-content: space-between; align-items: center;
	padding: 18px 30px 26px; border-top: 1px solid var(--creg-line); margin-top: 4px;
}
.capectg-reg-elegant .creg-btn{
	font-family: var(--creg-sans); font-weight: 700; font-size: .84rem;
	padding: 11px 22px; border-radius: 2px; cursor: pointer;
	border: 1.5px solid transparent;
}
.capectg-reg-elegant .creg-btn-ghost{ background: transparent; color: var(--creg-navy); border-color: var(--creg-line); }
.capectg-reg-elegant .creg-btn-ghost:hover{ border-color: var(--creg-navy); }
.capectg-reg-elegant .creg-btn-ghost:disabled{ opacity: .4; cursor: not-allowed; }
.capectg-reg-elegant .creg-btn-ghost[hidden]{ display: none; }

.capectg-reg-elegant .capectg-reg-submit{
	font-family: var(--creg-sans);
	background: var(--creg-gold); color: #fff; border: 1.5px solid var(--creg-gold);
	padding: 11px 26px; border-radius: 2px; font-weight: 700; font-size: .86rem; cursor: pointer;
}
.capectg-reg-elegant .capectg-reg-submit:hover{ background: var(--creg-gold-ink); border-color: var(--creg-gold-ink); }
.capectg-reg-elegant .capectg-reg-submit:disabled{ opacity: .45; cursor: not-allowed; }

.capectg-reg-elegant .creg-declare{
	display: flex; gap: 10px; align-items: flex-start; font-size: .82rem; color: var(--creg-ink-soft);
	border: 1px solid var(--creg-line); background: var(--creg-parchment-deep); padding: 13px 15px; margin-top: 4px;
}
.capectg-reg-elegant .creg-declare input{ margin-top: 3px; }

@media (max-width: 640px){
	.capectg-reg-elegant .creg-head,
	.capectg-reg-elegant .creg-stepper,
	.capectg-reg-elegant .creg-panels,
	.capectg-reg-elegant .creg-foot{ padding-left: 18px; padding-right: 18px; }
	.capectg-reg-elegant .capectg-reg-form fieldset{ grid-template-columns: 1fr; }
	.capectg-reg-elegant .creg-review-rows{ grid-template-columns: 1fr; }
	.capectg-reg-elegant .creg-step-label{ display: none; }
	.capectg-reg-elegant .creg-review-top{ flex-direction: column-reverse; align-items: flex-start; }
	.capectg-reg-elegant .creg-review-photo{ width: 96px; height: 120px; align-self: flex-end; }
}
