@import "../../../base/less/mixins";

@responsive_breakpoint: 780px;
@align: center;
@mobile_align: center;

@button_width: '';
@button_color: #41a9d5;
@text_color: #FFFFFF;
@icon_size: 1.3em;

@hover_background_color: #41a9d5;
@hover_text_color:  #FFFFFF;

@button_font: default;
@button_font_weight: default;
@button_font_style: default;

@font_size: 1em;
@rounding: 0.25em;
@padding: 1em;
@has_text: true;
@has_button_icon: false;

.ow-button-base {
	.clearfix();

	@media (max-width: @responsive_breakpoint) {
		&.ow-button-align-@{align} {
			text-align: @mobile_align;

			& when not ( @mobile_align = justify ) {
				&.ow-button-align-justify .sowb-button {
					display: inline-block;
				}
			}

			& when ( @mobile_align = justify ) {
				.sowb-button {
					display: block;
				}
			}
		}
	}

	.sowb-button {
		.box-sizing(border-box);
		.font(@button_font, @button_font_weight);
		.rounded(@rounding);
		background: transparent;
		border: 2px solid @button_color;
		color: @button_color !important;
		font-size: @font_size;
		font-style: @button_font_style;
		padding: @padding;
		text-shadow: 0 1px 0 rgba(0,0,0,0.05);

		& when( isnumber( @button_width ) ) {
			width: @button_width;
			max-width: 100%;
		}

		& when ( @has_text = true ) {
			padding-inline: @padding * 2;
		}

		& when not ( @has_text = true ) {
			.sow-icon-image,
			[class^="sow-icon-"] {
				margin: 0;
			}
		}

		& when ( @has_button_icon = true ) {
			& > span {
				display: flex;
				justify-content: center;

				[class^="sow-icon-"] {
					font-size: @icon_size;
				}
			}

			&.ow-icon-placement-top > span {
				flex-direction: column;
			}

			&.ow-icon-placement-right > span {
				flex-direction: row-reverse;
			}

			&.ow-icon-placement-bottom > span {
				flex-direction: column-reverse;
			}

			&.ow-icon-placement-left > span {
				align-items: start;
			}
		}

		&.ow-button-hover:active,
		&.ow-button-hover:hover {
			background: @hover_background_color;
			border-color: @hover_background_color;
			color: @hover_text_color !important;
		}
	}
}
