/**
 * Brand override for the Kraken CRM partner portal (login / registration / account / add+edit).
 * Loads after Kraken's base stylesheet and re-skins it to the exploresiouxland brand by
 * remapping Kraken's CSS variables and aligning fonts + buttons with the site.
 */

.kraken-crm-partner-portal {
	/* Remap Kraken's design tokens to the site palette (theme.json). */
	--kraken-crm--color--primary: #0033A1;   /* nav-blue */
	--kraken-crm--color--secondary: #001B56; /* blue (hover/active) */
	--kraken-crm--color--dark-gray: #1c2226; /* black */
	--kraken-crm--color--gray: #d9d9d9;
	--kraken-crm--color--white: #ffffff;
	--kraken-crm--color--success: #00904c;
	--kraken-crm--color--error: #EA0029;     /* red */

	font-family: 'Open Sans', sans-serif;
	color: #1c2226;

	/* Constrain to the site content width (the portal <section> is a direct child of .main). */
	max-width: 74.062rem;
	width: 90%;
	margin: 3rem auto 4rem;
}

/* Headings use the site display font. */
.kraken-crm-partner-portal h1,
.kraken-crm-partner-portal h2,
.kraken-crm-partner-portal h3,
.kraken-crm-partner-portal h4 {
	font-family: 'bebas-neue', sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1.1;
}

/* Form fields: consistent, full-width, branded focus. */
.kraken-crm-partner-portal input[type="text"],
.kraken-crm-partner-portal input[type="email"],
.kraken-crm-partner-portal input[type="url"],
.kraken-crm-partner-portal input[type="tel"],
.kraken-crm-partner-portal input[type="number"],
.kraken-crm-partner-portal input[type="password"],
.kraken-crm-partner-portal textarea,
.kraken-crm-partner-portal select {
	width: 100%;
	max-width: 100%;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--kraken-crm--color--gray);
	border-radius: 4px;
	font-family: 'Open Sans', sans-serif;
	font-size: 1rem;
	background: #fff;
}

.kraken-crm-partner-portal input:focus,
.kraken-crm-partner-portal textarea:focus,
.kraken-crm-partner-portal select:focus {
	outline: none;
	border-color: var(--kraken-crm--color--primary);
	box-shadow: 0 0 0 2px rgba(0, 51, 161, 0.15);
}

.kraken-crm-partner-portal label {
	font-weight: 600;
	margin-bottom: 0.25rem;
}

/* Primary buttons: the site's signature gradient + display font. */
.kraken-crm-partner-portal input[type="submit"],
.kraken-crm-partner-portal .kraken-crm-btn-primary,
.kraken-crm-partner-portal .button-primary,
.kraken-crm-partner-portal .gform_footer .gform_button,
.kraken-crm-partner-portal .gform_wrapper .gform_button {
	background: linear-gradient(to left, #4AC1E0 50%, #EA0029 50%) right / 205% 100%;
	color: #fff !important;
	border: 0;
	border-radius: 4px;
	font-family: 'bebas-neue', sans-serif;
	font-size: 1.125rem;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	padding: 0.9rem 2.2rem;
	cursor: pointer;
	transition: background-position 0.3s ease;
}

.kraken-crm-partner-portal input[type="submit"]:hover,
.kraken-crm-partner-portal .kraken-crm-btn-primary:hover,
.kraken-crm-partner-portal .button-primary:hover,
.kraken-crm-partner-portal .gform_footer .gform_button:hover,
.kraken-crm-partner-portal .gform_wrapper .gform_button:hover {
	background-position: left;
}

/* Secondary buttons (View / Edit on the dashboard) stay outlined but on-brand. */
.kraken-crm-partner-portal .kraken-crm-btn-secondary {
	font-family: 'bebas-neue', sans-serif;
	letter-spacing: 0.6px;
	text-transform: uppercase;
}

.kraken-crm-partner-portal a {
	color: var(--kraken-crm--color--primary);
}

/* Login form: tidy card. */
.kraken-crm-partner-portal.login #loginform {
	border: 1px solid var(--kraken-crm--color--gray);
	border-radius: 8px;
	padding: 2rem;
	max-width: 24rem;
	background: #fff;
}

/* Rebrand the Gravity Forms registration form to brand-blue accents. */
.kraken-crm-partner-portal .gform_wrapper.gravity-theme,
.kraken-crm-partner-portal .gform-theme--framework {
	--gf-color-primary: #0033A1;
	--gf-color-primary-rgb: 0, 51, 161;
	--gf-color-primary-contrast: #fff;
	--gf-color-primary-darker: #001B56;
	--gf-ctrl-border-color-focus: #0033A1;
}

/* Account dashboard layout polish. */
.kraken-crm-partner-portal.account-dashboard .partner-account-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.kraken-crm-partner-portal .partner-listings-results {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5rem;
}

/* Form notifications. */
.kraken-crm-partner-portal .kraken-form-notification {
	border-radius: 6px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}
.kraken-crm-partner-portal .kraken-form-notification.success {
	background: rgba(0, 144, 76, 0.1);
	border: 1px solid var(--kraken-crm--color--success);
}
.kraken-crm-partner-portal .kraken-form-notification.error {
	background: rgba(234, 0, 41, 0.08);
	border: 1px solid var(--kraken-crm--color--error);
}
