
@font-face {
    font-family: 'zen_maru_gothic_regular';
    src: url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-regular-webfont.woff2') format('woff2'),
         url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'zen_maru_gothic_bold';
    src: url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-bold-webfont.woff2') format('woff2'),
         url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-bold-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'zen_maru_gothic_light';
    src: url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-light-webfont.woff2') format('woff2'),
         url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-light-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'zen_maru_gothic_medium';
    src: url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-medium-webfont.woff2') format('woff2'),
         url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-medium-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'zen_maru_gothic_black';
    src: url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-black-webfont.woff2') format('woff2'),
         url('../../assets-static/webfonts/zenmarugothic/zenmarugothic-black-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

:root {

    /* Typography. */

    --font-sans: "zen_maru_gothic_regular", "Helvetica Neue", "Segoe UI", "Calibri Light", "Liberation Sans", "sans-serif";
    --font-serif:               serif;
    --font-mono:                monospace;

    --font-regular:             "zen_maru_gothic_regular";
    --font-bold:                "zen_maru_gothic_bold";

    --font-size:                16px;
    --font-size-desktop:        19px;

    --line-height-compact:      1;
    --line-height-condensed:    1.3;
    --line-height:              1.6;
    --line-height-airy:         1.65;
    --line-height-spacious:     1.7;
    --line-height-headings:     var(--line-height-condensed);

    /* Layouts. */

    --page-min-width:           260px;
    --content-area-max-width:   840px;

    --grid-gutter-width:        1.5rem;

    --gap-micro:                0.5rem;
    --gap-small:                1rem;
    --gap:                      var(--grid-gutter-width);
    --gap-large:                3rem;
    --gap-mega:                 5rem;

    --vari-gap-micro:           var(--gap-micro);
    --vari-gap-small:           var(--gap-small);
    --vari-gap:                 var(--gap);
    --vari-gap-large:           var(--gap-large);
    --vari-gap-mega:            var(--gap-mega);

    --squeeze-width:            1000px;
}

@media (min-width: 500px) {
    :root {
        --vari-gap-micro:       0.75rem;
        --vari-gap-small:       1.25rem;
        --vari-gap:             2.25rem;
        --vari-gap-large:       4rem;
        --vari-gap-mega:        6rem;
    }
}

@media (min-width: 800px) {
    :root {
        --font-size:            var(--font-size-desktop);

        /*--vari-gap-micro:       1rem;*/
        /*--vari-gap-small:       1.5rem;*/
        /*--vari-gap:             2.75rem;*/
        /*--vari-gap-large:       5rem;*/
        /*--vari-gap-mega:        7rem;*/
    }
}


:root {

    /* Colors. */

    --color-brand:              #7c634c;
    --color-brand-rgb:          124, 99, 76;
    --color-accent-1:           #b34db3;
    --color-accent-2:           #24a8a8;

    --color-text:               #4c473c;
    --color-text-strong:        #26241e;
    --color-text-shy:           #7f755d;
    --color-text-weak:          #aaa;
    --color-text-invert:        #fff;
    --color-text-invert-rgb:    255, 255, 255;

    --color-titles-strong:      var(--color-brand);
    --color-titles-weak:        #d6bc93;

    --color-link:               var(--color-titles-strong);
    --color-link-visited:       var(--color-titles-strong);
    --color-link-hover:         var(--color-titles-strong);
    --color-link-visited-hover: var(--color-titles-strong);

    --color-blockfill:          #f2efe4;
    --color-bg-dark:            #333;
    --color-bg-dark-rgb:        51, 51, 51;
    --color-border:             var(--color-titles-weak);

    --color-info:               #515195;
    --color-info-light:         #eeeef6;
    --color-success:            #297d4e;
    --color-success-light:      #eaf3ee;
    --color-warning:            #815e08;
    --color-warning-light:      #f4edda;
    --color-alert:              #b01030;
    --color-alert-light:        #f8d0d8;

    /* Misc. */

    --border: 1px solid var(--color-border);
}


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

html,
body {
    margin: 0;
    padding: 0;

    background: white;
    color: var(--color-text);

    text-align: center;
}

html {
    font-family: var(--font-sans);
    font-size: var(--font-size);
    line-height: var(--line-height);
}

/*@media (min-width: 800px) {*/
    /*html {*/
        /*font-size: var(--font-size-desktop);*/
    /*}*/
/*}*/

p {
    margin: 0.85em 0;
}

a {
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
a,
a:active {
    color: var(--color-link);
}
a:focus {
    outline: 1px dotted currentColor;
    outline-offset: 1px;
}
a:visited {
    color: var(--color-link-visited);
}
a:hover {
    color: var(--color-link-hover);
}
a:visited:hover {
    color: var(--color-link-visited-hover);
}

strong {
    color: var(--color-text-strong);
    font-family: var(--font-bold);
    font-weight: normal;
}

ul {
    padding-left: 1em;
}

ol {
    padding-left: 1.35em;
}

dl {

}

dt {
    color: var(--color-text-strong);
    font-weight: 700;
}
dd + dt {
    margin-top: 0.3em;
}

dd {
    margin-left: 1em;
}

blockquote {
  margin: 2em 0 2em 2em;
  padding: 1.5em 0 1.5em 1.5em;

  border-left: 2px solid var(--color-border);
}

pre,
code,
kbd,
samp {
  font-family: var(--font-mono);

  background: var(--color-blockfill);
}

pre {
  padding: 1em;
}

code {
  /*Don't wrap, not even at hyphens.*/
  hyphens: none;
  white-space: nowrap;
}

pre code {
    display: block;
    max-width: 100%;
    overflow: auto;

    hyphens: initial;
    word-wrap: normal;
    white-space: pre;

    font-size: 0.9em;
}

hr {
  margin-top: var(--gap-small);
  margin-bottom: var(--gap-small);

  height: 0;
  background: 0;
  border: 0;
  border-top: 1px solid var(--color-border);
}

::selection {
  background: rgba(var(--color-brand-rgb), 1);
  color: var(--color-text-invert);
}
::-moz-selection {
  background: rgba(var(--color-brand-rgb), 1);
  color: var(--color-text-invert);
}

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


.color-zone--brand {
    background-color: var(--color-brand);
    color: rgba(var(--color-text-invert-rgb), 0.95);

    -webkit-tap-highlight-color: rgba(var(--color-brand-rgb), 0.25);
}

.color-zone--brand a:not(.button),
.color-zone--brand a:not(.button):active,
.color-zone--brand a:not(.button):visited {
    color: rgba(var(--color-text-invert-rgb), 0.95);
}
.color-zone--brand a:not(.button):hover,
.color-zone--brand a:not(.button):visited:hover {
    color: rgba(var(--color-text-invert-rgb), 0.95);
}

.color-zone--brand::selection,
.color-zone--brand ::selection {
    background: rgba(var(--color-bg-dark-rgb), 0.5);
    color: var(--color-text-invert);
}
.color-zone--brand::-moz-selection,
.color-zone--brand ::-moz-selection {
    background: rgba(var(--color-bg-dark-rgb), 0.5);
    color: var(--color-text-invert);
}







.color-zone--accent-1 {
  /*@include color-zone-accent-1();*/
}






.color-zone--accent-2 {
  /*@include color-zone-accent-2();*/
}






.color-zone--dark {
    background-color: var(--color-bg-dark);
    color: rgba(var(--color-text-invert-rgb), 0.95);
}
.color-zone--dark a:not(.button),
.color-zone--dark a:not(.button):active,
.color-zone--dark a:not(.button):visited {
    color: rgba(var(--color-text-invert-rgb), 0.95);
}
.color-zone--dark a:not(.button):hover,
.color-zone--dark a:not(.button):visited:hover {
    color: rgba(var(--color-text-invert-rgb), 0.95);
}





.color-zone--blockfill {
    background: var(--color-blockfill);
    color: var(--color-text-strong);
}






.color-zone:not(.color-zone--blockfill) strong,
.color-zone:not(.color-zone--blockfill) dt,
.color-zone:not(.color-zone--blockfill) h1,
.color-zone:not(.color-zone--blockfill) h2,
.color-zone:not(.color-zone--blockfill) h3,
.color-zone:not(.color-zone--blockfill) h4,
.color-zone:not(.color-zone--blockfill) h5,
.color-zone:not(.color-zone--blockfill) h6,
.color-zone:not(.color-zone--blockfill) .pseudo-heading,
.color-zone:not(.color-zone--blockfill) .box__title {
    color: var(--color-text-invert);
}


.description-appearance {
  font-style: italic;
}
.description-appearance strong {
    color: currentColor;
}
.description-appearance p,
.description-appearance ul,
.description-appearance ol {
    margin-top: 0.5em;
    margin-bottom: 0.5em;

    line-height: var(--line-height-condensed);
}
.description-appearance em {
    /*To make it stand out in an all-italic text.*/
    font-style: normal;
}


h1,
h2,
h3,
h4,
h5,
h6,
.pseudo-heading {
    display: block;
    line-height: var(--line-height-headings);

    font-family: var(--font-sans);
    font-weight: normal;
    font-style: normal;
    text-rendering: optimizeLegibility;

    color: var(--color-text-strong);
}

h1,
.h1 {
    font-size: 2rem;
    margin-top: 2em;
    margin-bottom: 1em;
}
h2,
.h2 {
    font-size: 2.15rem;
    margin-top: 1.75em;
    margin-bottom: 0.85em;
}
h3,
.h3 {
    font-size: 1.45rem;
    margin-top: 1.75em;
    margin-bottom: 0.85em;
}
h4,
.h4 {
    font-size: 1.3rem;
    margin-top: 1.5em;
    margin-bottom: 0.65em;
}
h5,
.h5 {
    font-size: 1.15rem;
    margin-top: 1.5em;
    margin-bottom: 0.65em;
}
h6,
.h6 {
    font-size: 1.05rem;
    margin-top: 1.5em;
    margin-bottom: 0.6em;
}

h2.underlined,
.h2.underlined {
    font-size: 1.6rem;
    margin-top: 1.75em;
    padding-bottom: 0.25em;
    margin-bottom: 0.85em;

    border-bottom: 1px solid var(--color-border);
}


.hero {
    line-height: var(--line-height);
}


/* Page header and footer. */

.page__header,
.page__footer {
    padding-left: var(--vari-gap-small);
    padding-right: var(--vari-gap-small);

    padding-top: var(--vari-gap-small);
    padding-bottom: var(--vari-gap-small);
}

html {
    height: 100%;
}

body,
.page__wrap {
    min-height: 100%;
}

body {
    /*padding-left: 12%;*/
    /*position: relative;*/
}

/* Page side decor. */
/*
.page-side-decor {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;

    // min-height: 100%;
    width: 12%;

    background-color: #5b564f;
    background-attachment: scroll;
    background-repeat: repeat;
    background-size: cover;
    background-image: url("/themes/custom-theme/assets-static/images/pexels-polina-kovaleva-6-e4.jpg");
    background-position: 31% 50%;

    box-shadow: rgba(0,7,0,0.33) -65px 0 65px -65px inset,
                rgba(0,7,0,0.65) -30px 0 30px -30px inset;
}

.theme-dev-mode .page-side-decor {
    background-image: url("../../assets-static/images/pexels-polina-kovaleva-6-e4.jpg");
}
.static-page .page-side-decor {
    background-image: url("../../assets-static/images/pexels-polina-kovaleva-6-e4.jpg");
}

@media (min-width: 700px) {
    body {
        padding-left: 15%;
    }
    .page-side-decor {
        width: 15%;

        background-image: url("/themes/custom-theme/assets-static/images/brad-west-unsplash-ec4.jpg");
        background-position: 63% 50%;

        box-shadow: rgba(0,7,0,0.95) -75px 0 75px -75px inset,
                    rgba(0,7,0,0.95) -45px 0 45px -45px inset;
    }
    .theme-dev-mode .page-side-decor {
        background-image: url("../../assets-static/images/brad-west-unsplash-ec4.jpg");
    }
    .static-page .page-side-decor {
        background-image: url("../../assets-static/images/brad-west-unsplash-ec4.jpg");
    }
}

@media (min-width: 1400px) {
    .page-side-decor {
        background-position: 61% 50%;
    }
}
*/

/* Page main. */

.page__title,
.page-title-appearance {
    margin-top: 0;
    margin-bottom: var(--vari-gap);
}

/* Misc. */

#svg-sprite-housing {
    position: absolute;
    left: -10000em;
}

.system-notifications {
    @include squeeze();
}



.page-header__site-name {
  font-weight: 700;
  font-size: 1.2em;
  letter-spacing: 0.075em;
}

.page-header__site-name,
.page-header__site-name a {
    text-decoration: none;
    border: none;
}

.page-header__site-tagline {
  margin-left: 0.75em;
  font-size: 1em;

  font-style: italic;
}


.page__footer {
    display: flex;

    align-items: center;
    justify-content: center;
}

.page__footer > * {
    flex: 0 1 auto;
}

/**
 * Layouts' shared rules.
 */

/*See http://nicolasgallagher.com/micro-clearfix-hack/ .*/
/*WARNING: This rule interferes with ::before and ::after pseudo-elements.*/
/*Take that into account when applying this anywhere.*/
.micro-clearfix::before,
.micro-clearfix::after {
    content: '';
    display: table;
}
.micro-clearfix::after {
    clear: both;
}



.fit-content > *:first-child {
    margin-top: 0;
}
.fit-content > *:last-child {
    margin-bottom: 0;
}


.grid-item + .grid-item {
    margin-top: var(--grid-gutter-width);
}

@media(min-width: 600px) {
    .grid {
        display: flex;
        align-items: stretch;

        margin-left: calc(var(--grid-gutter-width) * -1);
    }

    .grid-item {
        flex: 0 1 auto;

        margin-left: var(--grid-gutter-width);
    }

    .grid-item + .grid-item {
        margin-top: 0;
    }

    .grid-item--half {
        width: 50% !important;
    }

    .grid-item--third {
        width: 33.3% !important;
    }
}

.stackable--small {
    margin-top: var(--vari-gap-small);
    margin-bottom: var(--vari-gap-small);
}

.stackable {
    margin-top: var(--vari-gap);
    margin-bottom: var(--vari-gap);
}

.stackable--large {
    margin-top: var(--vari-gap-large);
    margin-bottom: var(--vari-gap-large);
}

.squeeze {
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 800px) {
    .squeeze {
        max-width: var(80%);
    }
}

@media (min-width: 1200px) {
    .squeeze {
        max-width: var(--squeeze-width);
    }
}

/**
Page levels and page centering.

Horizontal sections - often seen as full-width colourful stripes - on the page.
*/

.page-level {
    min-width: var(--page-min-width);

    padding-left: var(--vari-gap-small);
    padding-right: var(--vari-gap-small);
}

.page-level__content {
    max-width: var(--content-area-max-width);

    margin-top: var(--vari-gap-large);
    margin-bottom: var(--vari-gap-large);
    margin-left: auto;
    margin-right: auto;
}

.page-level:first-child {
    padding-top: var(--vari-gap-large);
}
.page-level:first-child .page-level__content {
    margin-top: 0;
}
.page-level:last-child {
    padding-bottom: var(--vari-gap-large);
}
.page-level:last-child .page-level__content {
    margin-bottom: 0;
}

.page-level.has-bg {
    padding-top: var(--vari-gap-large);
    padding-bottom: var(--vari-gap-large);
}

.page-level.has-bg .page-level__content {
    margin-top: 0;
    margin-bottom: 0;
}

.page-level__title,
.page-level-title-appearance {
    margin-top: 0;
    /*margin-bottom: var(--vari-gap);*/

    color: var(--color-titles-weak);
    font-family: "zen_maru_gothic_black";

    text-align: center;
}


.cta-tile {
    display: block;

    background-color: var(--color-blockfill);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: scroll;

    border: none;
    text-decoration: none;
}

.cta-tile__aspect-ratio {
    position: relative;

    display: block;
    padding-top: 70%;
}

.cta-tile__label {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;

    display: block;
    padding: 0.5rem 1em;

    font-size: 1.15em;
    font-weight: 700;

    background: rgba(255, 255, 255, 0.8);
    color: var(--color-text-shy);
    text-align: center;
}

.cta-tile--mountains {
    background-position: center bottom;
    background-size: 145%;
}

.cta-tile--drawings {
    background-position: 20% 61%;
    background-size: 160%;
}

@media (min-width: 1000px) {
    .cta-tile__label {
        padding: 1rem;

        font-size: 1.2rem;
    }
}

.textbox {

}

.textbox--highlight {

}

.textbox--note {

}

/* FIXME. */
.notification .svg-icon {
    display: none;
}
.notification,
.sys-note {
    padding: var(--gap-small);
}

.notification + .notification,
.sys-note + .sys-note {
    margin-top: var(--gap-micro);
}


/* FIXME. */

.notification--info,
.sys-note--info {
    background: var(--color-info-light);
    color: var(--color-info);
}

.notification--success,
.sys-note--success {
    background: var(--color-success-light);
    color: var(--color-success);
}

.notification--warning,
.sys-note--warning {
    background: var(--color-warning-light);
    color: var(--color-warning);
}

.notification--alert,
.sys-note--alert {
    background: var(--color-alert-light);
    color: var(--color-alert);
}


.c-images-display__description {
    margin-bottom: 2rem;
}

.c-images-display__image-frame {
    text-align: center;
}

.c-images-display__image-frame img {
    vertical-align: bottom;
}

.c-images-display__image-caption {
    margin-top: 0.5rem;
    text-align: center;
}

.c-images-display__image-caption:not(.squeeze) {
    padding-left: 5%;
    padding-right: 5%;
}

.c-images-display__item + .c-images-display__item {
    margin-top: 1.5rem;
}

@media (min-width: 600px) {
    .c-images-display__item.has-no-caption + .c-images-display__item {
        margin-top: 3rem;
    }
}

@media (min-width: 1200px) {
    .c-images-display__item.has-no-caption + .c-images-display__item {
        margin-top: 4.5rem;
    }
}

.section--greeter.has-bg {
    /*padding-bottom: var(--vari-gap);*/
}

.greeter__title {
    color: var(--color-titles-weak);
    font-family: "zen_maru_gothic_black";
    line-height: 1;
    text-align: center;
}

.greeter__title-1 {
    font-size: 1.5em;
}

.greeter__title-2 {
    margin-top: 0.25em;
    margin-bottom: var(--vari-gap-large);
    font-size: 2.5em;
}

.greeter__longtext {

}

.system-notifications {
    margin-bottom: var(--vari-gap-large);
}

@media (min-width: 500px) {
    .greeter__title-1 {
        font-size: 2em;
    }
    .greeter__title-2 {
        margin-top: 0.15em;

        font-size: 3.5em;
    }
}


.massage__title {
    /*margin-top: 2em;*/
    margin-top: 1.75em;
    /*margin-bottom: 0.65em;*/
    margin-bottom: 0.33em;

    color: var(--color-titles-strong);
}

.massage__desc {
    color: var(--color-text-shy);
}

.massage-warning {
    margin-top: var(--vari-gap);

    /*color: var(--color-alert);*/
    /*font-family: "zen_maru_gothic_medium";*/
}





.news__content {
    text-align: center;
}

.location {

}

.praxis__address {
    margin-top: 1em;
    margin-bottom: 1em;
}

.location-item {
    padding: var(--vari-gap-small);

    border: var(--border);
}

.location-item > :first-child {
    margin-top: 0;
}

.location-item > :last-child {
    margin-bottom: 0;
}

.location__mobil__regions {
    list-style: none;

    margin-top: 1em;
    margin-bottom: 1em;
}

@media(min-width: 600px) {
    .location-item {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .location-item > * {
        flex: 0 1 auto;
    }
}


.contact__tel {
    margin-bottom: 0;
}

.contact__tel a {
    border: none;
    font-size: 1.85em;
    text-decoration: none;
}

.contact .label p:last-child {
    margin-bottom: 0;
}

@media (min-width: 600px) {
    .contact__tel a {
        border: none;
        font-size: 2.5em;
        text-decoration: none;
    }
}


/* ######################################################################### */
/* Image-decors. */

.section--image-decor {
    position: relative;
}

.section--image-decor .page-level__content {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 3em;
    padding-right: 3em;
}

.section--image-decor::before {
    content: '';

    position: absolute;
    left: 0;
    right: 0;
    height: 50%;
}

.section--image-decor.extends::before {
    top: 0;
}
.section--image-decor.meets::before {
    bottom: 0;
}

.section--image-decor.extends-blockfill::before,
.section--image-decor.meets-blockfill::before {
    background-color: var(--color-blockfill);
}

.image-border {
    position: relative;
    z-index: 10;

    display: inline-block;
    padding: 5px;

    background-color: #fff;
    border: var(--border)
}

.section--image-decor .decor__image {
    display: inline-block;

    /*max-height: 15em;*/
    max-height: 18em;
    max-width: 100%;

    vertical-align: bottom;
}

/* -------------------------------------------------------------------------- */

/*.section--image-decor.is-single .page-level__content {*/

/*}*/

/*.section--image-decor.is-multi .page-level__content {*/
    
/*}*/


.lang-switcher {
    margin-top: 1em;
    /*margin-bottom: 2em;*/
}

.language {
    display: inline-block;
    line-height: 1;
    padding: 0.3em 0.25em;

    border: none;
    color: var(--color-titles-strong);
    font-size: 1.25em;
    text-decoration: none;
}

.language + .language {
    margin-left: 0.5em;
}

.language.is-active {
    background-color: var(--color-blockfill);
}




.text-smallish {
    font-size: 0.9em !important;
}

.text-largish {
    font-size: 1.05em !important;
}

.text-strong {
    color: var(--color-text-strong) !important;
}

.text-compact {
    line-height: var(--line-height-compact) !important;
}

.text-condensed {
    line-height: var(--line-height-condensed) !important;
}

.text-airy {
    line-height: var(--line-height-airy) !important;
}

.text-spacious {
    line-height: var(--line-height-spacious) !important;
}

.color-text-weak {
    color: var(--color-text-weak) !important;
}

.color-text-shy {
    color: var(--color-text-shy) !important;
}


.app-menu-toggle {
    background: var(--color-brand);
}


/* Meta-element for checking systems' wiring. */

.meta-check-systems-wiring--css-bg-image {
  padding-bottom: 66.7%;

  background: whitesmoke url('../../assets-static/demo/img3.png') scroll no-repeat center center;
  background-size: cover;
}
