/* License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE */
@import 'mixins';
@import 'components/animations';

// don't add any more classes here

@mixin button {
	border: none;
	cursor: pointer;
	font-weight: bold;
	@include no-select;
	@include transition(background-color, 0.1s, ease-out);
	@include open-sans;
	text-align: center;
	clear: both;
	color: white;
	display: inline-block;
	&:focus { outline: none; }
	&.blue {@include setBackgroundAndHover($light-logo-blue);}
	&.bluegreen {@include setBackgroundAndHover($bluegrass);}
	&.bluegrey {@include setBackgroundAndHover($sea-foam);}
	&.lightblue {@include setBackgroundAndHover($sky);}
	&.babyblue {@include setBackgroundAndHover($baby-blue);}
	&.green {@include setBackgroundAndHover($grass);}
	&.sage {@include setBackgroundAndHover(darken($sage, 5));}
	&.yellow {@include setBackgroundAndHover($pollen);}
	&.orange {@include setBackgroundAndHover(darken($oj, 5%));}
	&.pink {@include setBackgroundAndHover($watermelon);}
	&.red {@include setBackgroundAndHover(lighten($red, 5));}
	&.redText {
		padding: 0;
		@include setColorAndHover(rgba($red, 0.7));
		background: $trans;
		border-color: $trans;
		@include setBackgroundAndHover($trans);
	}
	&.red--strong {@include setBackgroundAndHover($red);}
	&.grey {@include setBackgroundAndHover($grey);}
	&.white {
		@include setColorAndHover($logo-blue);
		@include setBackgroundAndHover--subtle(darken(white, 5));
	}
	&.purple {@include setBackgroundAndHover($lavender);}
	&.facebook {@include setBackgroundAndHover($facebook);}
	&.google  {@include setBackgroundAndHover($google);}
	&.twitter {@include setBackgroundAndHover($twitter);}
	&.hasShadow {@include box-shadow(0.1em 0.1em 0.4em 0 rgba(black, 0.1));}
	&:hover {color: white; }
	a { color: white; &:hover{color: white;}}

	&.details,
	&.edit {
		@include setColorAndHover($logo-blue);
		@include setBackgroundAndHover--subtle(white);
		transform: translateY(1px)
	}
	&.details {
		border: 1px solid rgba($grey, 0.3);
	}
	&.edit {
		border: 1px dashed $sky;
	}
	&[disabled],
	&[disabled='disabled'],
	&.disabled,
	&.inactive {
		background: lighten($grey, 10) !important;
		color: white;
		pointer-events: none;
	}
	&.absolute {
		position: absolute;
		right: 10px;
		top: 10px;
	}
}

button {
	@include button;
}

@mixin defaultButton {
	@include button;
	@include setBackgroundAndHover($bluegrass);
	@include border-radius(0.5em !important);
	width: initial;
	border-bottom: 2px solid rgba(black, 0.1);
	&:active { @include transform(translateY(2px)); }
}

.button--micro  {
	@include defaultButton;
	font-size: 14px;
	line-height: 14px;
	padding: 4px 6px 3px 6px;
}

.button--tiny  {
	@include defaultButton;
	font-size: 15px;
	line-height: 15px;
	padding: 5px 8px 4px 8px;
}

.button--small  {
	@include defaultButton;
	font-size: 16px;
	line-height: 16px;
	padding: 6px 9px 5px 9px;
}

button[data-ff-confirm],
.ff-button,
.button {
	@include defaultButton;
	font-size: 18px;
	line-height: 18px;
	padding: 10px 13px 9px 13px;
}

button[data-ff-confirm] {
  margin-top: 30px;
}

button[data-ff-confirm]:first-of-type {
  margin-right: 30px;
}

button[data-ff-confirm='false'] {
  @include setBackgroundAndHover(red);
}

.button--large {
	@include defaultButton;
	font-size: 22px;
	line-height: 22px;
	padding: 12px 20px 11px 20px;
}

.button--jumbo {
	@include defaultButton;
	font-size: 24px;
	line-height: 24px;
	padding: 14px 22px 13px 22px;
}

.button--action {
	@include defaultButton;
	@extend .button--jumbo;
	width: 100%;
	@include setBackgroundAndHover($oj);
} // use for only most important actions, like donate


.button--admin {
	border-left: 1px dashed $sky;
	border-bottom: 1px dashed $sky;
	@include setColorAndHover($logo-blue);
	background: rgba(white, 0.95);
	@include box-shadow(-1px 1px 5px 1px rgba(black, 0.1));
	position: fixed;
	top: 0;
	right: 0;
	padding: 0;
	line-height: 0;
	@include transform(translateX(2px));
	width: 50px;
	height: 103px;
	@include border-radius(0 0 0 5px);
} // used to open admin sidepanels on fundraising pages

.button--admin:hover {
	@include transform(translateX(0));
}

.button--admin:before {
	content: 'super admin';
  position: absolute;
  top: 27px;
  width: 100px;
  height: 47px;
  text-align: center;
  right: -47px;
  font-size: 14px;
	@include rotate(-90deg);

}

.button--circle {
	@include button;
	width: 32px;
	line-height: 32px;
	display: inline-block;
	text-align: center;
	@include border-radius(50%);
	i { font-size: 19px; }
}// for social buttons containing just an icon

.button--circle--large {
	@include button;
	width: 50px;
	line-height: 50px;
	display: inline-block;
	text-align: center;
	@include border-radius(50%);
}

.button--circle--large i {
	font-size: 24px;
	@include transform(translateY(3px));
}

@mixin squareButton {
	border-right: 1px solid rgba(black, 0.1);
	border-bottom: 2px solid rgba(black, 0.1);
	color: white;
	@include setBackgroundAndHover($bluegrass);
}
@mixin squareButton--medium {
	@include squareButton;
	font-size: 15px;
	line-height: 29px;
	padding: 0 10px;
}
@mixin squareButton--large {
	@include squareButton;
	font-size: 20px;
	line-height: 36px;
	padding: 0 12px;

}

.button--square {
	border-right: 1px solid rgba(black, 0.1);
	border-bottom: 2px solid rgba(black, 0.1);
	color: white;
}

.button--input {
	@include squareButton--medium;
	@include transform(translateX(-5px) translateY(-1px));
}
.button--input--large {
	@include squareButton--large;
	@include transform(translateX(-5px) translateY(-1px));
}

// todo: nuke these janky inset buttons and replace with button--input

@mixin insetButton {
	top: 0;
	right: 0;
	position: absolute;
}
.button--inset {
	@include insetButton;
	@include squareButton--medium;
}
.button--inset--large {
	@include insetButton;
	@include squareButton--large;
}
.button--inset--tall {
	@include insetButton;
	@include squareButton;
	font-size: 16px;
  line-height: 43px;
  padding: 0 8px;
}

.button--socialLogin {
	@extend .button;
	margin: 0 auto 12px auto;
	width: 100%;
	text-align: center;
} // full wide buttons used in login and sign up modals only
// for other social buttons, just use a default button with
// either .twitter, of .facebook classes to set the background color

.shareButtons div {
	text-align: center;
}
.shareButtons p {
	margin: 5px 0 0 0;
	font-size: 14px;
	color: $grey;
}
// shareButtons is used in _social_button.html

@include keyframes(popUpToFade) {
	70% { @include transform(translateY(0)); }
	100% { @include transform(translateY(5px)); }
}

.button--tab {
  font-size: 15px;
  @include transform(translateY(200px));
  @include animation('popUpToFade 1s ease 2s forwards');
  line-height: 15px;
  padding: 8px 10px 13px 10px;
  @include border-radius(5px 5px 0 0);
  @include setBackgroundAndHover($logo-blue);
  @include box-shadow(0 0 10px 1px rgba(black, 0.1));
  color: white;
  font-weight: bold;
  &:hover {
    color: white;
  }
}

.button-subtext {
	display: inline-block;
	margin-top: 0.2em;
	@include opacity(0.9);
	font-weight: normal;
}