@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;

.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 a {
					display: inline-block;
				}
			}

			& when ( @mobile_align = justify ) {
				a {
					display: block;
				}
			}
		}
	}

	a {
		.box-sizing(border-box);
		& when( isnumber( @button_width ) ) {
			width: @button_width;
			max-width: 100%;
		}
		.font(@button_font, @button_font_weight);
		font-style: @button_font_style;

		font-size: @font_size;
		padding: @padding @padding*2;
		background: transparent;
		border: 2px solid @button_color;

		color: @button_color !important;

		.rounded(@rounding);

		text-shadow: 0 1px 0 rgba(0,0,0,0.05);

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

		& > 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;
		}
	}
}
