/**
 * GDC Save Trip Button + Email Capture Modal
 * S7 §Z1, S4 §8: Heart icon, modal form, toast feedback
 *
 * @package GDC
 * @since   0.9.0
 */

/* ==========================================================
   SAVE TRIP BUTTON — Zone 1 Hero overlay
   ========================================================== */

.gdc-save-trip-btn {
	position: absolute;
	top: var(--gdc-space-3);
	right: var(--gdc-space-3);
	z-index: 10;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 48px;
	height: 48px;
	padding: 0;

	background: rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: none;
	border-radius: var(--gdc-radius-full);

	cursor: pointer;
	transition: background var(--gdc-duration-fast) var(--gdc-ease-out);
}

.gdc-save-trip-btn:hover {
	background: rgba(0, 0, 0, 0.55);
}

.gdc-save-trip-btn:focus-visible {
	outline: 2px solid var(--gdc-accent-cta);
	outline-offset: 2px;
}

/* Heart icon — outline state */
.gdc-save-trip-btn__icon {
	fill: none;
	stroke: var(--gdc-white);
	stroke-width: 1.5;
	transition: fill 0.2s ease-out, stroke 0.2s ease-out;
}

/* Heart icon — saved state */
.gdc-save-trip-btn--saved .gdc-save-trip-btn__icon {
	fill: var(--gdc-accent-cta);
	stroke: var(--gdc-accent-cta);
}

/* ==========================================================
   EMAIL CAPTURE MODAL — Form elements
   ========================================================== */

.gdc-save-modal__subtitle {
	margin: 0 0 var(--gdc-space-3);
	font-family: var(--gdc-font-sans);
	font-size: var(--gdc-text-sm);
	color: var(--gdc-text-muted);
	line-height: var(--gdc-leading-normal);
}

.gdc-save-modal__form {
	display: flex;
	flex-direction: column;
	gap: var(--gdc-space-2);
}

.gdc-save-modal__field {
	display: flex;
	flex-direction: column;
	gap: var(--gdc-space-1);
}

.gdc-save-modal__input {
	width: 100%;
	height: 48px;
	padding: 0 var(--gdc-space-2);

	background: var(--gdc-bg-void);
	border: 1px solid var(--gdc-border-medium);
	border-radius: var(--gdc-radius-sm);

	font-family: var(--gdc-font-sans);
	font-size: var(--gdc-text-base);
	color: var(--gdc-text-primary);

	transition: border-color var(--gdc-duration-fast) var(--gdc-ease-out);
}

.gdc-save-modal__input::placeholder {
	color: var(--gdc-text-muted);
}

.gdc-save-modal__input:focus {
	outline: none;
	border-color: var(--gdc-accent-cta);
}

.gdc-save-modal__input[aria-invalid="true"] {
	border-color: var(--gdc-status-error);
}

.gdc-save-modal__error {
	margin: 0;
	font-family: var(--gdc-font-sans);
	font-size: var(--gdc-text-xs);
	color: var(--gdc-status-error);
	line-height: var(--gdc-leading-normal);
}

.gdc-save-modal__checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: var(--gdc-space-1);

	font-family: var(--gdc-font-sans);
	font-size: var(--gdc-text-xs);
	color: var(--gdc-text-muted);
	cursor: pointer;
}

.gdc-save-modal__checkbox-label input[type="checkbox"] {
	margin-top: 2px;
	accent-color: var(--gdc-accent-cta);
}

/* ==========================================================
   ACCESSIBILITY: prefers-reduced-motion
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
	.gdc-save-trip-btn__icon {
		transition: none;
	}
}
