/* EHCNYC - Partnership Request: brand-colored button + modal + form.
 * Same visual language as EHCNYC - Request Popup's contact form, but with
 * its own class names throughout (ehcnyc-partner-* instead of ehcnyc-
 * request-*) so this plugin never depends on that one being active.
 * Brand tokens:
 *   Light: #8BCBDD   Dark: #092E39   White: #FFFFFF
 */

:root {
	--ehcpr-light: #8BCBDD;
	--ehcpr-btn: #489BB2;
	--ehcpr-dark: #092E39;
	--ehcpr-white: #FFFFFF;
	--ehcpr-border: #D6E6EA;
	--ehcpr-muted: #4C6672;
	--ehcpr-font: "Hanken Grotesk", sans-serif;
}

/* ---- Trigger button ---- */

.ehcnyc-partner-trigger {
	margin: 1.5rem 0;
}

a.ehcnyc-open-partnership.ehcnyc-open-partnership,
button.ehcnyc-open-partnership.ehcnyc-open-partnership,
.ehcnyc-partner-btn.ehcnyc-partner-btn {
	position: relative;
	overflow: hidden;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	appearance: none;
	border: none !important;
	border-radius: 10px !important;
	background: var(--ehcpr-btn) !important;
	background-color: var(--ehcpr-btn) !important;
	color: var(--ehcpr-white) !important;
	padding: 1.1rem 2.6rem !important;
	min-width: 11rem;
	font-family: var(--ehcpr-font) !important;
	font-size: 1.15rem !important;
	line-height: 1.2;
	font-weight: 700 !important;
	letter-spacing: 0.01em;
	text-decoration: none !important;
	text-align: center;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(9, 46, 57, 0.18);
	transition: background-color 0.18s ease, transform 0.3s cubic-bezier( 0.34, 1.56, 0.64, 1 ), box-shadow 0.25s ease;
}

a.ehcnyc-open-partnership.ehcnyc-open-partnership::after,
button.ehcnyc-open-partnership.ehcnyc-open-partnership::after,
.ehcnyc-partner-btn.ehcnyc-partner-btn::after {
	content: '';
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient( 115deg, transparent, rgba(255, 255, 255, 0.4), transparent );
	transform: skewX(-20deg);
	transition: left 0.65s ease;
	pointer-events: none;
}

a.ehcnyc-open-partnership.ehcnyc-open-partnership:hover,
button.ehcnyc-open-partnership.ehcnyc-open-partnership:hover,
.ehcnyc-partner-btn.ehcnyc-partner-btn:hover {
	background: color-mix( in srgb, var(--ehcpr-btn) 82%, var(--ehcpr-dark) 18% ) !important;
	background-color: color-mix( in srgb, var(--ehcpr-btn) 82%, var(--ehcpr-dark) 18% ) !important;
	color: var(--ehcpr-white) !important;
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 12px 26px rgba(9, 46, 57, 0.3);
}

a.ehcnyc-open-partnership.ehcnyc-open-partnership:hover::after,
button.ehcnyc-open-partnership.ehcnyc-open-partnership:hover::after,
.ehcnyc-partner-btn.ehcnyc-partner-btn:hover::after {
	left: 120%;
}

@media (prefers-reduced-motion: reduce) {
	a.ehcnyc-open-partnership.ehcnyc-open-partnership,
	button.ehcnyc-open-partnership.ehcnyc-open-partnership,
	.ehcnyc-partner-btn.ehcnyc-partner-btn,
	a.ehcnyc-open-partnership.ehcnyc-open-partnership::after,
	button.ehcnyc-open-partnership.ehcnyc-open-partnership::after,
	.ehcnyc-partner-btn.ehcnyc-partner-btn::after {
		transition: none !important;
	}
}

a.ehcnyc-open-partnership.ehcnyc-open-partnership:focus-visible,
button.ehcnyc-open-partnership.ehcnyc-open-partnership:focus-visible,
.ehcnyc-partner-btn.ehcnyc-partner-btn:focus-visible {
	outline: 3px solid var(--ehcpr-dark);
	outline-offset: 2px;
	color: var(--ehcpr-white) !important;
}

/* ---- Modal shell ---- */

.ehcnyc-partner-modal[hidden] {
	display: none;
}

.ehcnyc-partner-modal {
	font-family: var(--ehcpr-font);
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.ehcnyc-partner-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(9, 46, 57, 0.62);
}

.ehcnyc-partner-modal__panel {
	position: relative;
	background: var(--ehcpr-white);
	width: 100%;
	max-width: 580px;
	max-height: 88vh;
	overflow-y: auto;
	border-radius: 16px;
	padding: 2.1rem 2rem 2rem;
	box-shadow: inset 0 6px 0 0 var(--ehcpr-light), 0 28px 70px rgba(9, 46, 57, 0.35);
}

.ehcnyc-partner-modal__close {
	position: absolute;
	top: 0.65rem;
	right: 0.9rem;
	width: 2.1rem;
	height: 2.1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	border-radius: 50%;
	font-size: 1.6rem;
	line-height: 1;
	color: var(--ehcpr-muted);
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.ehcnyc-partner-modal__close:hover {
	background: var(--ehcpr-border);
	color: var(--ehcpr-dark);
}

body.ehcnyc-partnership-open {
	overflow: hidden;
}

/* ---- Modal header (title + subtitle) ---- */

.ehcnyc-partner-modal__header {
	margin: 0 0 1.4rem;
}

.ehcnyc-partner-modal__title {
	margin: 0.15rem 0 0.2rem;
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--ehcpr-dark);
}

.ehcnyc-partner-modal__subtitle {
	margin: 0;
	font-size: 1rem;
	color: var(--ehcpr-muted);
}

/* ---- Gravity Forms field restyle, scoped to inside this modal ---- */

.ehcnyc-partner-modal__panel [class*="gform_confirmation_message"] {
	font-size: 1rem;
}

.ehcnyc-partner-modal__panel .gform_wrapper .gfield {
	margin-bottom: 1.1rem !important;
}

.ehcnyc-partner-modal__panel .gform_wrapper .gfield_label,
.ehcnyc-partner-modal__panel .gform_wrapper legend.gfield_label {
	color: var(--ehcpr-dark);
	font-weight: 600;
	font-size: 0.92rem;
	margin-bottom: 0.4rem;
}

.ehcnyc-partner-modal__panel .gform_wrapper .gfield_description {
	color: var(--ehcpr-muted);
	font-size: 0.85rem;
}

.ehcnyc-partner-modal__panel .gform_wrapper input[type="text"],
.ehcnyc-partner-modal__panel .gform_wrapper input[type="email"],
.ehcnyc-partner-modal__panel .gform_wrapper input[type="tel"],
.ehcnyc-partner-modal__panel .gform_wrapper select,
.ehcnyc-partner-modal__panel .gform_wrapper textarea {
	width: 100%;
	border: 1.5px solid var(--ehcpr-border);
	border-radius: 9px;
	padding: 0.7rem 0.85rem;
	font-size: 0.95rem;
	color: var(--ehcpr-dark);
	background: var(--ehcpr-white);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* Textareas otherwise inherit the browser's default `rows` sizing (tall,
   ~200px) - fix a shorter, more compact height. resize:vertical still lets
   people drag it taller if they need more room. */
.ehcnyc-partner-modal__panel .gform_wrapper textarea {
	height: 90px;
	min-height: 90px;
	resize: vertical;
}

.ehcnyc-partner-modal__panel .gform_wrapper input[type="text"]:focus,
.ehcnyc-partner-modal__panel .gform_wrapper input[type="email"]:focus,
.ehcnyc-partner-modal__panel .gform_wrapper input[type="tel"]:focus,
.ehcnyc-partner-modal__panel .gform_wrapper select:focus,
.ehcnyc-partner-modal__panel .gform_wrapper textarea:focus {
	outline: none;
	border-color: var(--ehcpr-light);
	box-shadow: 0 0 0 4px rgba(139, 203, 221, 0.35);
}

/* Multi-file drag-and-drop uploader: without its own bordered box, it falls
   back to Gravity Forms' default spacing/borders, which don't match the
   custom-styled fields around it - reads as fields crowding/overlapping
   each other even though .gfield's margin-bottom is still applying. */
.ehcnyc-partner-modal__panel .gform_wrapper .ginput_container_fileupload {
	border: 1.5px dashed var(--ehcpr-border);
	border-radius: 9px;
	padding: 0.9rem;
	margin-top: 0.2rem;
}

.ehcnyc-partner-modal__panel .gform_wrapper .ginput_container_fileupload + .gfield_description,
.ehcnyc-partner-modal__panel .gform_wrapper .instruction {
	margin-top: 0.5rem;
	display: block;
}

.ehcnyc-partner-modal__panel .gform_wrapper .gform_footer,
.ehcnyc-partner-modal__panel .gform_wrapper .gform_page_footer {
	margin-top: 0.4rem;
	padding: 0;
}

.ehcnyc-partner-modal__panel .gform_wrapper .gform_button {
	appearance: none;
	border: none;
	border-radius: 10px;
	background: var(--ehcpr-dark);
	color: var(--ehcpr-white);
	padding: 0.85rem 1.8rem;
	font-size: 0.98rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.18s ease, transform 0.15s ease;
}
.ehcnyc-partner-modal__panel .gform_wrapper .gform_button:hover {
	background: #0d3c4b;
	transform: translateY(-1px);
}

.ehcnyc-partner-modal__panel .gform_wrapper .validation_error,
.ehcnyc-partner-modal__panel .gform_wrapper .gfield_validation_message {
	color: #b3432b;
	font-size: 0.85rem;
}
