/* =========================================================
   MODUŁ: Proces / Ścieżka współpracy (zigzag timeline)
   ========================================================= */

.sp-proc {
	--sppr-font:        'Inter', sans-serif;
	--sppr-size-label:  14px;
	--sppr-size-tytul:  48px;
	--sppr-weight-tytul: 700;
	--sppr-lh-tytul:    1.2;
	--sppr-size-krok-tytul: 28px;
	--sppr-weight-krok-tytul: 700;
	--sppr-size-krok-opis:   16px;
	--sppr-lh-krok-opis:     1.65;
	--sppr-max-width:   1180px;
	--sppr-pad-y:       90px;
	--sppr-pad-x:       32px;
	--sppr-gap-kroki:   64px;
	--sppr-gap-naglowek: 90px;
	--sppr-radius-sec:  0px;
	--sppr-margin-y:    0px;
	--sppr-obr-radius:  18px;
	--sppr-linia-grub:  2px;
	--sppr-linia-styl:  solid;
	--sppr-numer-size:  52px;
	--sppr-numer-font:  13px;
	--sppr-tlo:           #FFFFFF;
	--sppr-label:         #1A2540;
	--sppr-label-dot:     #D4A017;
	--sppr-tytul:         #1A2540;
	--sppr-cta-tlo:       #1A2540;
	--sppr-cta-tekst:     #FFFFFF;
	--sppr-linia:         #E8DFCB;
	--sppr-numer-tlo:     #1A2540;
	--sppr-numer-tekst:   #FFFFFF;
	--sppr-krok-tytul:    #1A2540;
	--sppr-krok-opis:     #5A5A5A;
	--sppr-link:          #1A2540;
	--sppr-link-hover:    #D4A017;

	font-family: var(--sppr-font);
	background: var(--sppr-tlo);
	padding: var(--sppr-pad-y) var(--sppr-pad-x);
	border-radius: var(--sppr-radius-sec);
	margin-top: var(--sppr-margin-y);
	margin-bottom: var(--sppr-margin-y);
	color: var(--sppr-krok-opis);
	position: relative;
	overflow: hidden;
}
.sp-proc * { box-sizing: border-box; }

.sp-proc--w-full {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.sp-proc--w-container {
	width: 100%;
	max-width: var(--sppr-max-width);
	margin-left: auto;
	margin-right: auto;
}

.sp-proc__inner {
	max-width: var(--sppr-max-width);
	margin: 0 auto;
}

/* =========================================================
   NAGŁÓWEK
   ========================================================= */
.sp-proc__head {
	text-align: center;
	margin-bottom: var(--sppr-gap-naglowek);
}

.sp-proc__label {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-size: var(--sppr-size-label);
	font-weight: 600;
	color: var(--sppr-label);
	letter-spacing: .01em;
	margin-bottom: 1.25rem;
}
.sp-proc__label-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--sppr-label-dot);
	box-shadow: 0 0 0 4px rgba(212,160,23,.22);
	animation: sp-proc-dot-pulse 2.4s ease-in-out infinite;
}
@keyframes sp-proc-dot-pulse {
	0%, 100% { box-shadow: 0 0 0 4px rgba(212,160,23,.22); transform: scale(1); }
	50%      { box-shadow: 0 0 0 9px rgba(212,160,23,.05); transform: scale(1.15); }
}

.sp-proc__tytul {
	font-size: clamp(28px, 5vw, var(--sppr-size-tytul));
	font-weight: var(--sppr-weight-tytul);
	color: var(--sppr-tytul);
	line-height: var(--sppr-lh-tytul);
	letter-spacing: -.01em;
	margin: 0 0 2rem;
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}
.sp-proc--serif .sp-proc__tytul {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 600;
	letter-spacing: -.005em;
}
.sp-proc__tytul mark {
	background: transparent;
	color: var(--sppr-label-dot);
	font-weight: inherit;
}
.sp-proc__tytul em {
	font-style: italic;
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 600;
}

.sp-proc__cta {
	display: inline-flex;
	align-items: center;
	gap: .65em;
	padding: 1em 1.6em 1em 1.85em;
	background: var(--sppr-cta-tlo);
	color: var(--sppr-cta-tekst);
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .015em;
	text-decoration: none;
	box-shadow: 0 12px 30px rgba(26,37,64,.18), inset 0 1px 0 rgba(255,255,255,.10);
	transition: transform .25s cubic-bezier(.4,0,.2,1),
	            box-shadow .25s cubic-bezier(.4,0,.2,1),
	            filter .2s ease;
	position: relative;
	overflow: hidden;
	border-bottom: none !important;
}
.sp-proc__cta::after {
	content: "";
	display: inline-flex;
	width: 32px;
	height: 32px;
	background: rgba(255,255,255,.18);
	border-radius: 50%;
	margin-right: -.35em;
	margin-left: .15em;
	transition: background .2s ease;
}
.sp-proc__cta svg {
	width: 16px;
	height: 16px;
	margin-left: -28px;
	z-index: 2;
	transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.sp-proc__cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 38px rgba(26,37,64,.28);
	color: var(--sppr-cta-tekst);
	filter: brightness(1.08);
}
.sp-proc__cta:hover svg {
	transform: translateX(3px);
}

/* =========================================================
   TIMELINE
   ========================================================= */
.sp-proc__timeline {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--sppr-gap-kroki);
}

/* Centralna linia — pionowy element decoracyjny */
.sp-proc--linia .sp-proc__timeline::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: var(--sppr-linia-grub);
	background: var(--sppr-linia);
	border-radius: 4px;
	transform: translateX(-50%);
	z-index: 0;
}
.sp-proc--linia .sp-proc__timeline {
	background-image: none;
}
/* Style linii: dashed/dotted */
.sp-proc--linia .sp-proc__timeline {
	--_line-color: var(--sppr-linia);
}
.sp-proc--linia .sp-proc__timeline::before {
	background: linear-gradient(180deg, var(--sppr-linia), var(--sppr-linia));
}

/* =========================================================
   KROK
   ========================================================= */
.sp-proc__krok {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
	position: relative;
	z-index: 1;
}

.sp-proc__krok--image-left  .sp-proc__col--image { grid-column: 1; }
.sp-proc__krok--image-left  .sp-proc__col--text  { grid-column: 2; }
.sp-proc__krok--image-right .sp-proc__col--image { grid-column: 2; }
.sp-proc__krok--image-right .sp-proc__col--text  { grid-column: 1; }

/* =========================================================
   NUMER (kółko na linii)
   ========================================================= */
.sp-proc__numer {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: var(--sppr-numer-size);
	height: var(--sppr-numer-size);
	background: var(--sppr-numer-tlo);
	color: var(--sppr-numer-tekst);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--sppr-numer-font);
	font-weight: 700;
	letter-spacing: .02em;
	box-shadow:
		0 8px 22px rgba(26,37,64,.25),
		0 0 0 6px var(--sppr-tlo);
	z-index: 4;
	transition: transform .35s cubic-bezier(.4,0,.2,1),
	            box-shadow .35s cubic-bezier(.4,0,.2,1);
}
.sp-proc__krok:hover .sp-proc__numer {
	transform: translate(-50%, -50%) scale(1.08);
	box-shadow:
		0 12px 30px rgba(26,37,64,.35),
		0 0 0 6px var(--sppr-tlo);
}

/* =========================================================
   OBRAZ
   ========================================================= */
.sp-proc__obraz {
	width: 100%;
	border-radius: var(--sppr-obr-radius);
	overflow: hidden;
	background: linear-gradient(135deg, #F0E8D0, #E8DFCB);
	box-shadow: 0 18px 50px rgba(26,37,64,.14),
	            0 4px 12px rgba(26,37,64,.06);
	transition: transform .45s cubic-bezier(.4,0,.2,1),
	            box-shadow .45s cubic-bezier(.4,0,.2,1);
	position: relative;
}
.sp-proc__obraz img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .55s cubic-bezier(.4,0,.2,1);
}
.sp-proc--prop-16-9 .sp-proc__obraz { aspect-ratio: 16/9; }
.sp-proc--prop-4-3  .sp-proc__obraz { aspect-ratio: 4/3; }
.sp-proc--prop-3-2  .sp-proc__obraz { aspect-ratio: 3/2; }
.sp-proc--prop-1-1  .sp-proc__obraz { aspect-ratio: 1/1; }

.sp-proc__obraz--empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	color: rgba(26,37,64,.40);
	background: #FBF7E8;
	border: 2px dashed var(--sppr-linia);
	box-shadow: none;
}
.sp-proc__obraz--empty svg {
	width: 56px;
	height: 56px;
}
.sp-proc__obraz--empty span {
	font-size: 13px;
	font-weight: 600;
}

/* Efekty hover */
.sp-proc--efekt-lift .sp-proc__krok:hover .sp-proc__obraz {
	transform: translateY(-6px);
	box-shadow: 0 26px 60px rgba(26,37,64,.20);
}
.sp-proc--efekt-zoom .sp-proc__krok:hover .sp-proc__obraz img {
	transform: scale(1.06);
}
.sp-proc--efekt-tilt .sp-proc__krok:hover .sp-proc__obraz {
	transform: rotate(-1.5deg);
	box-shadow: 0 22px 50px rgba(26,37,64,.18);
}

/* =========================================================
   KOLUMNA TEKSTU
   ========================================================= */
.sp-proc__col--text {
	display: flex;
	flex-direction: column;
	gap: .85rem;
}

.sp-proc__krok-tytul {
	font-size: var(--sppr-size-krok-tytul);
	font-weight: var(--sppr-weight-krok-tytul);
	color: var(--sppr-krok-tytul);
	line-height: 1.25;
	letter-spacing: -.005em;
	margin: 0;
}
.sp-proc__krok-opis {
	font-size: var(--sppr-size-krok-opis);
	color: var(--sppr-krok-opis);
	line-height: var(--sppr-lh-krok-opis);
	margin: 0;
	max-width: 480px;
}
.sp-proc__krok--image-right .sp-proc__krok-opis {
	margin-left: 0;
	margin-right: auto;
}

/* =========================================================
   LINK „Porozmawiaj z nami"
   ========================================================= */
.sp-proc__krok-link {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-weight: 700;
	font-size: 15px;
	color: var(--sppr-link);
	letter-spacing: .01em;
	text-decoration: none;
	margin-top: .75rem;
	transition: color .25s ease, gap .25s cubic-bezier(.4,0,.2,1);
	align-self: flex-start;
	border-bottom: none !important;
}
.sp-proc__krok-link svg {
	width: 16px;
	height: 16px;
	transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.sp-proc__krok-link:hover {
	color: var(--sppr-link-hover);
	gap: .7em;
}
.sp-proc__krok-link:hover svg {
	transform: translateX(3px);
}

/* Style linku */
.sp-proc--link-underline .sp-proc__krok-link {
	border-bottom: 2px solid currentColor !important;
	padding-bottom: 1px;
}
.sp-proc--link-arrow .sp-proc__krok-link {
	/* default już ma strzałkę */
}
.sp-proc--link-pill .sp-proc__krok-link {
	padding: .55em 1.1em;
	border-radius: 999px;
	border: 2px solid currentColor;
}
.sp-proc--link-pill .sp-proc__krok-link:hover {
	background: currentColor;
}
.sp-proc--link-pill .sp-proc__krok-link:hover * {
	color: var(--sppr-tlo);
}
.sp-proc--link-plain .sp-proc__krok-link svg {
	display: none;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 880px) {
	.sp-proc {
		--sppr-pad-y: 60px;
		--sppr-pad-x: 20px;
		--sppr-gap-kroki: 36px;
		--sppr-gap-naglowek: 50px;
	}
	.sp-proc__krok {
		grid-template-columns: 1fr;
		gap: 1.25rem;
		padding-left: 0;
	}
	.sp-proc__krok--image-left  .sp-proc__col--image,
	.sp-proc__krok--image-right .sp-proc__col--image,
	.sp-proc__krok--image-left  .sp-proc__col--text,
	.sp-proc__krok--image-right .sp-proc__col--text {
		grid-column: 1;
	}
	/* Linia po lewej, numer na boku */
	.sp-proc--linia .sp-proc__timeline::before {
		left: 24px;
		transform: none;
	}
	.sp-proc__krok {
		padding-left: 64px;
	}
	.sp-proc__numer {
		left: 24px;
		top: 0;
		transform: translate(-50%, 12px) !important;
		width: 44px;
		height: 44px;
		font-size: 11px;
	}
	.sp-proc__krok:hover .sp-proc__numer {
		transform: translate(-50%, 12px) scale(1.05) !important;
	}
	.sp-proc__col--image { order: -1; }
	.sp-proc__cta { font-size: 14px; padding: .9em 1.3em .9em 1.55em; }
}
