.site-footer {
	
	// row divider
	[data-row] {
		border-top: var(--borderTop);
		border-bottom: var(--borderBottom);
	}

	// columns divider
	[data-divider="columns"] {
		> * {
			position: relative;

			&:after {
				position: absolute;
				content: '';
			}
		}

		@include media-breakpoint-down (md) {
	 		> div {
				&:after {
					width: var(--width, 100%);
					left: var(--left, 0);
					bottom: calc(var(--itemsGap) / 2 * -1);
					border-bottom: var(--border);
				}

				&:last-of-type:after {
					display: none;
				}
			}

			> span {
				display: none;
			}
		}

		@include media-breakpoint-only (md) {
			&:not([data-stack="tablet"]) {
				position: relative;

				&:before {
					position: absolute;
					content: '';
					width: 0px;
					height: calc(100% + var(--containerSpacing) * 2);
					top: calc(var(--containerSpacing) * -1);
					left: 0;
					right: 0;
					margin: 0 auto;
					border-right: var(--border);
				}

				> div {
					&:after {
						--width: calc(100% + var(--itemsGap) / 2);
					}

					&:nth-of-type(even):after {
						--left: calc(var(--itemsGap) / 2 * -1);
					}

					&:last-of-type:after {
						display: none;
					}

					&:first-of-type:nth-last-of-type(2),
					&:first-of-type:nth-last-of-type(2) ~ * {
						&:nth-of-type(1):after {
							display: none;
						}
					}

					&:first-child:nth-last-child(4),
					&:first-child:nth-last-child(4) ~ * {
						&:nth-of-type(3):after {
							display: none;
						}
					}
				}
			}
		}

		@include media-breakpoint-up (lg) {
			> *:not(:last-child):after {
				height: calc(100% + var(--containerSpacing) * 2);
				top: calc(var(--containerSpacing) * -1);
				right: calc(var(--itemsGap) / 2 * -1);
				border-right: var(--border);
			}
		}
	}

	// widgets divider
	[data-divider="columns"] {
		.ct-widget {
			position: relative;

			&:before {
				position: absolute;
				content: '';
				width: var(--width, 100%);
				left: var(--left, 0);
				top: calc(var(--itemsGap) / 2 * -1);
				border-bottom: var(--border);
			}

			&:first-child:before {
				display: none;
			}
		}

		@include media-breakpoint-only (md) {
			&:not([data-stack="tablet"]) {
				.ct-widget:before {
					--width: calc(100% + var(--itemsGap) / 2);
				}

				> div:nth-of-type(even) {
					.ct-widget:before {
						--left: calc(var(--itemsGap) / 2 * -1);
					}
				}
			}
		}

		@include media-breakpoint-up (lg) {
			> * {
				&:first-child:not(:only-child),
				&:last-child:not(:only-child) {
					.ct-widget:before {
						--width: calc(100% + var(--itemsGap) / 2);
					}
				}

				&:last-child:not(:only-child) {
					.ct-widget:before {
						--left: calc(var(--itemsGap) / 2 * -1);
					}
				}

				&:not(:first-child):not(:last-child) {
					.ct-widget:before {
						--width: calc(100% + var(--itemsGap));
						--left: calc(var(--itemsGap) / 2 * -1);
					}
				}
			}
		}
	}
}