/* Utility pages: contact, login, registration, terms, certificate, leftovers.
   Loaded only on page-templates/utility-*.php (inc/pages-utility.php), after content.css. */

/* plain reading page ---------------------------------------------------------- */
.nsp-pu-head { padding-block: 56px 8px; }
.nsp-pu-head .nsp-lede { max-width: 56ch; }
.nsp-pu-body { padding-top: 24px; padding-bottom: 88px; }
.nsp-pu-body > :first-child { margin-top: 0; }
.nsp-pu-body .nsp-row { margin-top: 1.6em; }
.nsp-pu-body .nsp-btn { text-decoration: none; }
.nsp-pu-body .nsp-btn-line { color: var(--fg); border-color: var(--line); }
.nsp-pu-body .nsp-btn-line:hover { border-color: var(--fg); }
.nsp-pu-box { padding: 20px 22px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); }
.nsp-pu-box > :last-child { margin-bottom: 0; }
.nsp-pu-orig { margin-top: 2.4em; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.nsp-pu-orig summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 12px; padding: 14px 18px; font: 600 16px/1.4 var(--sans); }
.nsp-pu-orig summary::-webkit-details-marker { display: none; }
.nsp-pu-orig summary::after { content: "+"; font: 600 20px/1 var(--latin); color: var(--vermilion); }
.nsp-pu-orig[open] summary::after { content: "−"; }
.nsp-pu-orig > div { padding: 0 18px 8px; font: 400 16px/1.7 var(--latin); }
.nsp-pu-help { margin: 22px 0 0; font-size: 15px; color: var(--muted); }

/* login and registration ---------------------------------------------------- */
.nsp-acct { padding-block: 64px 96px; }
.nsp-acct-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: 64px; align-items: start; }
.nsp-acct-copy { padding-top: 12px; max-width: 520px; }
.nsp-acct-copy p { margin: 0 0 14px; }
.nsp-acct-alt { font-weight: 600; }
.nsp-acct-card {
	--tutor-color-primary: #0B0A08; --tutor-color-primary-rgb: 11, 10, 8; --tutor-color-primary-hover: #A8341F;
	padding: 30px 28px 26px; border-radius: 18px; background: var(--paper);
	box-shadow: 0 30px 60px -28px rgba(30, 20, 0, .4), 0 0 0 1px rgba(0, 0, 0, .05);
	font-family: var(--sans);
}
/* Tutor wraps both forms in a fixed 520px card with inline margins; the theme card replaces it. */
.nsp-acct-card .tutor-page-wrap, .nsp-acct-card .tutor-login-wrap, .nsp-acct-card #tutor-registration-wrap {
	width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; background: none; border: 0; box-shadow: none;
}
.nsp-acct-card .tutor-login-form-wrapper, .nsp-acct-card #tutor-registration-form { padding: 0 !important; }
.nsp-acct-card .tutor-login-form-wrapper > .tutor-h3 { margin: 0 0 18px !important; font: 400 26px/1.25 var(--serif); color: var(--fg); }
.nsp-acct-card label, .nsp-acct-card .tutor-form-label { font: 600 15px/1.4 var(--sans); color: var(--fg); }
.nsp-acct-card .tutor-mb-8 { margin-bottom: 18px !important; }
.nsp-acct-card .tutor-mb-3 { margin-bottom: 6px !important; }
.nsp-acct-card .tutor-form-control {
	min-height: 50px; padding: 0 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff;
	color: var(--fg); font: 400 16.5px/1.2 var(--sans); box-shadow: none;
}
.nsp-acct-card .tutor-form-control::placeholder { color: #8a8273; }
.nsp-acct-card .tutor-form-control:focus { outline: 3px solid var(--vermilion); outline-offset: 2px; border-color: var(--fg); box-shadow: none; }
.nsp-acct-card .tutor-btn-primary {
	min-height: 52px; border-radius: 999px; background: var(--ink); border-color: var(--ink); color: var(--bone);
	font: 600 17px/1 var(--sans);
}
.nsp-acct-card .tutor-btn-primary:hover, .nsp-acct-card .tutor-btn-primary:focus { background: var(--vermilion); border-color: var(--vermilion); color: var(--white); }
.nsp-acct-card a, .nsp-acct-card .tutor-btn-link { color: var(--vermilion); font-weight: 600; }
.nsp-acct-card a:hover { color: var(--fg); }
.nsp-acct-card .tutor-checkbox:checked { background-color: var(--ink); border-color: var(--ink); }
.nsp-acct-card .tutor-small, .nsp-acct-card .tutor-fs-7 { font-size: 15px; }

/* contact --------------------------------------------------------------------- */
.nsp-ct { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 64px; align-items: start; padding-block: 80px 96px; }
.nsp-ct-list { margin: 8px 0 0; display: grid; }
.nsp-ct-list > div { padding-block: 16px; border-top: 1px solid var(--line); }
.nsp-ct-list > div:last-child { border-bottom: 1px solid var(--line); }
.nsp-ct-list dt { margin: 0 0 4px; font: 600 13.5px/1.3 var(--sans); letter-spacing: .02em; color: var(--muted); }
.nsp-ct-list dd { margin: 0; font-size: 18px; line-height: 1.55; }
.nsp-ct-list dd a { font-weight: 600; }
.nsp-ct-note { margin: 22px 0 0; color: var(--muted); font-size: 16px; }

/* WPForms card (contact form 459) */
.nsp-pu-form { padding: 30px 28px 26px; border-radius: 18px; background: var(--paper); box-shadow: 0 30px 60px -28px rgba(30, 20, 0, .4), 0 0 0 1px rgba(0, 0, 0, .05); }
.nsp-pu-form-t { margin: 0 0 4px; font: 400 28px/1.2 var(--serif); }
.nsp-pu-form-s { margin: 0 0 16px; color: var(--muted); font-size: 15.5px; }
.nsp-pu-form .wpforms-container { margin: 0 !important; }
.nsp-pu-form .wpforms-container .wpforms-form .wpforms-field { padding: 0 0 14px; }
.nsp-pu-form .wpforms-container .wpforms-form .wpforms-field-label { display: block; margin: 0 0 6px; font: 600 15px/1.4 var(--sans); color: var(--fg); }
.nsp-pu-form .wpforms-container .wpforms-form input[type="text"],
.nsp-pu-form .wpforms-container .wpforms-form input[type="email"],
.nsp-pu-form .wpforms-container .wpforms-form textarea {
	display: block; width: 100%; max-width: none; height: auto; min-height: 52px; padding: 12px 16px;
	border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--fg); font: 400 17px/1.4 var(--sans); box-shadow: none;
}
.nsp-pu-form .wpforms-container .wpforms-form textarea { min-height: 150px; resize: vertical; }
.nsp-pu-form .wpforms-container .wpforms-form input:focus, .nsp-pu-form .wpforms-container .wpforms-form textarea:focus { outline: 3px solid var(--vermilion); outline-offset: 2px; border-color: var(--fg); }
.nsp-pu-form .wpforms-container .wpforms-form ::placeholder { color: #8a8273; }
.nsp-pu-form .wpforms-container .wpforms-form .wpforms-submit-container { padding: 4px 0 0; }
.nsp-pu-form .wpforms-container .wpforms-form button.wpforms-submit { width: 100%; min-height: 52px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--ink); color: var(--bone); font: 600 17px/1 var(--sans); cursor: pointer; }
.nsp-pu-form .wpforms-container .wpforms-form button.wpforms-submit:hover { background: var(--vermilion); color: var(--white); }
.nsp-pu-form .wpforms-container .wpforms-form label.wpforms-error, .nsp-pu-form .wpforms-container .wpforms-form em.wpforms-error { color: var(--vermilion); font-size: 14px; }
.nsp-pu-form .wpforms-confirmation-container-full, .nsp-pu-form .wpforms-confirmation-container { padding: 16px 18px; border: 1px solid var(--line); border-left: 3px solid var(--vermilion); border-radius: 10px; background: #fff; color: var(--fg); }

/* responsive ------------------------------------------------------------------ */
@media (max-width: 900px) {
	.nsp-acct-in, .nsp-ct { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.nsp-acct { padding-block: 40px 72px; }
	.nsp-ct { padding-block: 56px 72px; }
}
@media (max-width: 560px) {
	.nsp-pu-head { padding-top: 36px; }
	.nsp-acct-card, .nsp-pu-form { padding: 22px 18px; }
}

/* Tutor's utility classes are not all loaded on these pages; lay the forms out here. */
.nsp-acct-card .tutor-input-field { position: relative; margin-bottom: 16px; }
.nsp-acct-card .tutor-flex { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.nsp-acct-card .tutor-justify-between { justify-content: space-between; }
.nsp-acct-card .tutor-justify-center { justify-content: center; }
.nsp-acct-card .tutor-input-wrapper { display: flex; align-items: center; gap: 8px; }
.nsp-acct-card .tutor-mt-9 { margin-top: 4px !important; }
.nsp-acct-card .tutor-mt-10 { margin-top: 20px !important; }
.nsp-acct-card .tutor-mt-7, .nsp-acct-card .tutor-mt-8 { margin-top: 16px !important; }
.nsp-acct-card .tutor-btn-link-gray, .nsp-acct-card .tutor-btn-link { padding: 0; background: none; border: 0; min-height: 0; }
.nsp-acct-card .tutor-input-field .tutor-form-control.tutor-input, .nsp-acct-card .tutor-form-control.tutor-input { min-height: 50px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.nsp-acct-card .tutor-btn.tutor-btn-primary { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; border-radius: 999px; background: var(--ink); border-color: var(--ink); color: var(--bone); font: 600 17px/1 var(--sans); }
.nsp-acct-card .tutor-btn.tutor-btn-primary:hover { background: var(--vermilion); border-color: var(--vermilion); color: var(--white); }
