@charset "utf-8";
@import "util";
@import "base/flextable";
@import "base/fragment";
@import "base/load";
@import "base/form";

/**
 * Basic global CSS rules for Kalamar
 */

body,
html,
select,
g > text {
  color: $dark-grey;
  font-family: verdana, tahoma, arial, Helvetica, sans-serif;
  margin: 0;
}

* {
  @include box-sizing-box;
}

/*
html {
//  @include box-sizing-box;
  box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}
*/

g > text {
  fill: $dark-grey;
}

html {
  height: 100%;
}

body {
  position: relative;
  min-height: 100%;
  font-size: 12pt;
  margin: 0;
  padding: 0;
}


a {
  &:link {
    color: $dark-orange;
    text-decoration: none;
    &:hover {
      color: $darkest-orange;
      @include color-transition;
    }
  }

  // External links
  &[href^="http://"]::after,
  &[href^="https://"]::after {
    font-family: FontAwesome;
    white-space: nowrap;
    content: " " + $fa-extlink;
    font-size: 75%;
  }
}

// Styles for Mojolicious::Plugin::TagHelpers::MailToChiffre
a[onclick$='return PArok(this,false)'] {
  direction:rtl;
  unicode-bidi:bidi-override;
  text-align:left;
  & > span {
    &:nth-child(1n+2){
      display:none
    }
    &:nth-child(1)::after{
      content:'@'
    }
  }
}

button {
  cursor: pointer;
}

button[type=submit] {
  font-weight: normal;
  @include choose-item;
  padding: 0;
  height: 100%;
  top: 0;
  width: $button-width;
  cursor:pointer;
  > span:nth-of-type(1) {
    @include blind;
  }
  &::after {
    font-family: "FontAwesome";
  }
  border: {
    width: $border-size;
    style: solid;
    color: $nearly-white;
  }
  &:hover, &:focus {
    @include choose-hover;
  }
  &::-moz-focus-inner {
    border: none;
  }
  &:active {
    @include choose-active;
  }
  /**
   * This is just for styling the last button,
   * in case there are more than one buttons.
   */
  &:last-of-type {
    // @include box-sizing-box();
    border: {
      right-width: $border-size;
      right-style: solid;
      top-right-radius: $standard-border-radius;
      bottom-right-radius: $standard-border-radius;
    }
  }
}

button + button {
  right: 0;
}
