
*, *:before, *:after
{
	box-sizing: border-box;

	// remove tap highlighting to fix nasty android behaviour ...
	-webkit-tap-highlight-color: rgba(0,0,0,0);
	-webkit-tap-highlight-color: transparent;
}

p
{
  margin: 0;
}

p + p
{
  margin-top: 0.5em;
}


// media

img
{
  display: inline-block;
  vertical-align: middle;
}

img, object, embed
{
  max-width: 100%;
  height: auto;
}

object, embed
{
  height: 100%;
}


// links

a, a:visited, a:link
{
  /*color: var(--color-text);*/
  text-decoration: none;
  //transition: color .2s, transform .2s, background .2s;
}


button
{
  -webkit-appearance: none;
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 0;
  margin: 0;
  text-align: left;
}


// headlines

h1
{
  font-size: calc(1.4rem + 0.1vmin);
  font-weight: 400;
  margin: -0.3rem 0 3rem;
}

h2
{
  font-size: calc(1.4rem + 0.1vmin);
  font-weight: 400;
  margin: 0 0 2rem;
}


// lists

ul
{
  margin: 0;
  padding: 0;
}

ul li
{
  list-style: none inside;
  margin-bottom: 0;
  padding-left: 16px;
  position: relative;
}

ul li:last-child
{
  margin-bottom: 0;
}

ul li:before
{
  content: ' ';
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 12px;
  background: var(--color-text);
  position: absolute;
  left: 1px;
  top: 9px;
}


ol
{
  margin: 0;
  padding: 0;
}

ol li
{
  list-style-position: outside;
	margin-left: 1em;
  margin-bottom: 20px;
  position: relative;
}

ol li:last-child
{
  margin-bottom: 0;
}

li
{
	line-height: 1.8;
}

li > *
{
	margin: 0 !important;
	padding: 0 !important;
	display: inline;
}

// remove outline from active elements

a[href], button
{
  &:focus
  {
    outline: var(--color-button-focus-outline);
    outline-offset: 2px;
    outline: none; // TODO deactivated for now as it always shows on clicks
  }
}

/*a[href], button
{
  position: relative;
  overflow: visible !important;

  &:focus
  {
    outline: none;
  }

  &:focus:after
  {
    content: '';
    position: absolute;
    z-index: 10;
    left: -4px;
    top: -4px;
    right: -4px;
    bottom: -4px;
    border-radius: 7px;
    border: var(--color-button-focus-outline);
  }
}*/


// tables

table
{
  border-collapse: collapse;
}


// misc

hr
{
	margin: 20px 0;
	border: none;
	border-bottom: 1px solid var(--color-line);
}

sup
{
	margin-left: 5px;
	font-size: 0.7em;
}

// media

iframe, video
{
	margin-top: 20px;
}

code
{
  border-radius: 3px;
  padding: 1px 4px;
  border: 1px dashed var(--color-line-dashed);
  background: var(--color-bg-shade-2);
  color: var(--color-text);
}


// screenreader

.sr-only
{
  height: 1px;
  width: 1px;
  clip: rect(1px, 1px, 1px, 1px);
  overflow: hidden;
  position: absolute;
  opacity: 0.01;
}


/// scrollbar

*
{
  //scrollbar-color: var(--color-bg-mid) transparent;
  scrollbar-width: thin;
}

::-webkit-scrollbar
{
  width: 7px;
  height: 7px;
  background-color: transparent;
}

/*::-webkit-scrollbar-thumb
{
  background: var(--color-bg-mid);
}*/


/// ui resizable

.ui-resizing
{
  user-select: none;
}


.media-pattern
{
  position: relative;
  z-index: 0;
  overflow: hidden;
  background: transparent;
  border-radius: var(--radius);

  --media-pattern-size: 10px;

  &:before
  {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-position: 0px 0px, calc(var(--media-pattern-size) / 2) calc(var(--media-pattern-size) / 2);
    background-size: var(--media-pattern-size) var(--media-pattern-size);

    background-image: 
      linear-gradient(
        45deg, 
        var(--color-pattern-transparent-b) 25%, 
        transparent 25%, 
        transparent 75%, 
        var(--color-pattern-transparent-b) 75%, 
        var(--color-pattern-transparent-b) 100%
      ),
      linear-gradient(
        45deg, 
        var(--color-pattern-transparent-b) 25%, 
        var(--color-pattern-transparent-a) 25%, 
        var(--color-pattern-transparent-a) 75%, 
        var(--color-pattern-transparent-b) 75%, 
        var(--color-pattern-transparent-b) 100%
      );

    border-radius: var(--radius);
  }
}


.ui-editor-overlay,
.ui-overlay-editor,
.ui-trinity
{
  > content
  {
    position: relative;
    padding-top: 0 !important;
  } 

  .ui-box
  {
    margin: 0;
  }

  .ui-box + .ui-box:not(.ui-tab)
  {
    margin-top: var(--padding-s); 
  }

  .ui-tabs-list, .editor
  {
    padding: 0;
  }

  .ui-property.ui-modules
  {
    margin: 0;
    padding: 0; 
  }

  .ui-loading
  {
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -14px 0 0 -14px;
  }
}

.show-dark, .hide-light,
.theme-dark .show-light, .theme-dark .hide-dark
{
  display: none !important;
}

.theme-dark .show-dark, .theme-dark .hide-light
{
  display: initial !important;
}


.feather 
{
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}


// maxlines attribute from directive
.ui-maxlines
{
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
}

.ui-maxlines.is-expanded
{
  -webkit-line-clamp: inherit !important;
}