/* @override 
	https://health-innovation.pincgestaltet.ch/wp-content/themes/bb-theme-child/style.css?* */

/*
Theme Name: Beaver Builder Child Theme
Theme URI: https://www.wpbeaverbuilder.com
Version: 1.0.5
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: https://www.fastlinemedia.com
template: bb-theme
*/

/* Add your custom styles here...Remember to change the Version number above! */ 






/* @group Font Import
------------------------------------------------------------- */

@font-face {
  	font-family: "TradeGothicProBold";
  	src: url('Fonts/TradeGothicProBold/font.woff2') format('woff2'),
  	   url('Fonts/TradeGothicProBold/font.woff')  format('woff');
	font-weight: normal;
    font-style: normal;
}

/* montserrat-300 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: normal;
  src: url('Fonts/montserrat-v26-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* montserrat-600 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: bold;
  src: url('Fonts/montserrat-v26-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* @end */






/* @group Font Reset
------------------------------------------------------------- */

html {
	-webkit-font-smoothing: antialiased!important;
	-moz-osx-font-smoothing: grayscale!important;
	text-rendering: optimizeLegibility!important;
	font-size: 16px;
}

/* @end */






/* @group Custom Properties - General
------------------------------------------------------------- */

:root {
  /* Viewport bounds */
  --min-viewport:     350;
  --mobile-max:       750;
  --desktop-min:      751;
  --max-viewport:     2000;

  /* font-size-base */
  --base-mobile-min:  calc( var(--base-desktop-min) * 1 );
  --base-mobile-max:  calc( var(--base-desktop-max) * 1 );
  --base-desktop-min: 14;
  --base-desktop-max: 20;

  /* font-size-m */
  --m-mobile-min:     calc( var(--m-desktop-min) * 0.9 );
  --m-mobile-max:     calc( var(--m-desktop-max) * 0.9 );
  --m-desktop-min:    18;
  --m-desktop-max:    27.5;

  /* font-size-l */
  --l-mobile-min:     calc( var(--l-desktop-min) * 0.8 );
  --l-mobile-max:     calc( var(--l-desktop-max) * 0.8 );
  --l-desktop-min:    26;
  --l-desktop-max:    46;

  /* font-size-xl */
  --xl-mobile-min:    calc( var(--xl-desktop-min) * 0.7 );
  --xl-mobile-max:    calc( var(--xl-desktop-max) * 0.7 );
  --xl-desktop-min:   45;
  --xl-desktop-max:   80;
}

@media (max-width: 750px) {
  :root {
    /* ── base ── */
    --base-slope:     calc((var(--base-mobile-max) - var(--base-mobile-min)) / (var(--mobile-max) - var(--min-viewport)));
    --base-intercept: calc(var(--base-mobile-min) - var(--base-slope) * var(--min-viewport));
    --font-size-base: clamp(
      calc(var(--base-mobile-min) * 1px),
      calc(var(--base-intercept) * 1px + var(--base-slope) * 100vw),
      calc(var(--base-mobile-max) * 1px)
    );

    /* ── m ── */
    --m-slope:        calc((var(--m-mobile-max) - var(--m-mobile-min)) / (var(--mobile-max) - var(--min-viewport)));
    --m-intercept:    calc(var(--m-mobile-min) - var(--m-slope) * var(--min-viewport));
    --font-size-m:    clamp(
      calc(var(--m-mobile-min) * 1px),
      calc(var(--m-intercept) * 1px + var(--m-slope) * 100vw),
      calc(var(--m-mobile-max) * 1px)
    );

    /* ── l ── */
    --l-slope:        calc((var(--l-mobile-max) - var(--l-mobile-min)) / (var(--mobile-max) - var(--min-viewport)));
    --l-intercept:    calc(var(--l-mobile-min) - var(--l-slope) * var(--min-viewport));
    --font-size-l:    clamp(
      calc(var(--l-mobile-min) * 1px),
      calc(var(--l-intercept) * 1px + var(--l-slope) * 100vw),
      calc(var(--l-mobile-max) * 1px)
    );

    /* ── xl ── */
    --xl-slope:       calc((var(--xl-mobile-max) - var(--xl-mobile-min)) / (var(--mobile-max) - var(--min-viewport)));
    --xl-intercept:   calc(var(--xl-mobile-min) - var(--xl-slope) * var(--min-viewport));
    --font-size-xl:   clamp(
      calc(var(--xl-mobile-min) * 1px),
      calc(var(--xl-intercept) * 1px + var(--xl-slope) * 100vw),
      calc(var(--xl-mobile-max) * 1px)
    );

    /* ── derived ── */
    --font-size-s:    calc(var(--font-size-base) * 0.85);
    --font-size-xxl:  calc(var(--font-size-xl)   * 1.25);
  }
}

@media (min-width: 751px) {
  :root {
    /* ── base ── */
    --base-slope:     calc((var(--base-desktop-max) - var(--base-desktop-min)) / (var(--max-viewport) - var(--desktop-min)));
    --base-intercept: calc(var(--base-desktop-min) - var(--base-slope) * var(--desktop-min));
    --font-size-base: clamp(
      calc(var(--base-desktop-min) * 1px),
      calc(var(--base-intercept) * 1px + var(--base-slope) * 100vw),
      calc(var(--base-desktop-max) * 1px)
    );

    /* ── m ── */
    --m-slope:        calc((var(--m-desktop-max) - var(--m-desktop-min)) / (var(--max-viewport) - var(--desktop-min)));
    --m-intercept:    calc(var(--m-desktop-min) - var(--m-slope) * var(--desktop-min));
    --font-size-m:    clamp(
      calc(var(--m-desktop-min) * 1px),
      calc(var(--m-intercept) * 1px + var(--m-slope) * 100vw),
      calc(var(--m-desktop-max) * 1px)
    );

    /* ── l ── */
    --l-slope:        calc((var(--l-desktop-max) - var(--l-desktop-min)) / (var(--max-viewport) - var(--desktop-min)));
    --l-intercept:    calc(var(--l-desktop-min) - var(--l-slope) * var(--desktop-min));
    --font-size-l:    clamp(
      calc(var(--l-desktop-min) * 1px),
      calc(var(--l-intercept) * 1px + var(--l-slope) * 100vw),
      calc(var(--l-desktop-max) * 1px)
    );

    /* ── xl ── */
    --xl-slope:       calc((var(--xl-desktop-max) - var(--xl-desktop-min)) / (var(--max-viewport) - var(--desktop-min)));
    --xl-intercept:   calc(var(--xl-desktop-min) - var(--xl-slope) * var(--desktop-min));
    --font-size-xl:   clamp(
      calc(var(--xl-desktop-min) * 1px),
      calc(var(--xl-intercept) * 1px + var(--xl-slope) * 100vw),
      calc(var(--xl-desktop-max) * 1px)
    );

    /* ── derived ── */
    --font-size-s:    calc(var(--font-size-base) * 0.85);
    --font-size-xxl:  calc(var(--font-size-xl)   * 1.25);
  }
}

:root {
	--line-height-s: 1.35;
	--line-height-base: 1.35;
	--line-height-m: 1.25;
	--line-height-l: 1.15;
	--line-height-xl: 1;
	--line-height-xxl: 1;

	--font-family-montserrat: "Montserrat", Helvetica, Arial, sans-serif;
	--font-family-lfgothic: "TradeGothicProBold", Helvetica, Arial, sans-serif;
	
	--font-weight-bold: bold;
	--font-weight-normal: normal;
	
	--font-style: normal;
	--letter-spacing: 0;
	--letter-spacing-heading: 0;
	--word-spacing: -0.05em;
	
	/* Spacing */
	--spacing-0-25: calc(var(--spacing-1) * 0.25);
	--spacing-0-5: calc(var(--spacing-1) * 0.5);
	--spacing-0-75: calc(var(--spacing-1) * 0.75);
	--spacing-1: var(--font-size-base);
	--spacing-1-5: calc(var(--spacing-1) * 1.5);
	--spacing-2: calc(var(--spacing-1) * 2);
	--spacing-3: calc(var(--spacing-1) * 3);
	
	--section-padding-block: calc( var(--spacing-1) + 5vh  );
	--section-padding-block-sm: var(--spacing-1);
		
	--container-padding-inline: var(--spacing-1);	
	--container-fixed-width-max-width: calc(var(--spacing-1) * 66.6);

	--flex-gap: calc( var(--spacing-1) + 5vh  );
	--flex-gap-md: calc( var(--spacing-1) + 2.5vh  );
	--flex-gap-sm: var(--spacing-1);
	
	--module-margin-block: var(--spacing-1);
	
	/* Focus */
	--ds-focus-color: rgba(255, 255, 0, 1);
	--ds-focus-width: 2px;
	--ds-focus-offset: 2px;
}

/* @end */






/* @group Typography - General
------------------------------------------------------------- */

body {
	font-family: var(--font-family-montserrat);
	font-weight: var(--font-weight-normal);
	font-style: var(--font-style);
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
}

p,
h1,
h2,
h3,
h4,
ul,
ol,
p.lead,
p.small {
	font-family: var(--font-family-montserrat);
	font-weight: var(--font-weight-normal);
	font-style: var(--font-style);
	letter-spacing: var(--letter-spacing);
	word-spacing: var(--word-spacing);
}

p {
	font-size: var(--font-size-m);
	line-height: var(--line-height-m);
}

h1 {
	font-family: var(--font-family-lfgothic);
	font-size: var(--font-size-xl);
	line-height: var(--line-height-xl);
}

h2 {
	font-family: var(--font-family-lfgothic);
	font-size: var(--font-size-xl);
	line-height: var(--line-height-xl);
}

h3 {
	font-family: var(--font-family-lfgothic);
	font-size: var(--font-size-l);
	line-height: var(--line-height-l);
}

h4 {
	font-size: var(--font-size-m);
	line-height: var(--line-height-m);
}

p.lead {
	font-size: var(--font-size-m);
	line-height: var(--line-height-m);
}

p.small {
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
}

.text-s,
.text-s * {
	font-size: var(--font-size-base) !important;
	line-height: var(--line-height-base) !important;
}

.text-base,
.text-base * {
	font-size: var(--font-size-base) !important;
	line-height: var(--line-height-base) !important;
}

.text-m,
.text-m * {
	font-size: var(--font-size-m) !important;
	line-height: var(--line-height-m) !important;
}

.text-l,
.text-l * {
	font-size: var(--font-size-l) !important;
	line-height: var(--line-height-l) !important;
}

.text-xl,
.text-xl * {
	font-size: var(--font-size-xl) !important;
	line-height: var(--line-height-xl) !important;
}

.text-xxl,
.text-xxl * {
	font-size: var(--font-size-xxl) !important;
	line-height: var(--line-height-xxl) !important;
}

/* @end */






/* @group Typography - Spacing
------------------------------------------------------------- */

p,
ul,
ol,
p.small {
	margin: var(--spacing-1) 0 0 0;
}

h1,
h2,
h3,
h4,
p.lead {
	margin: var(--spacing-0-75) 0 0 0;
}

p:first-child,
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
ul:first-child,
ol:first-child,
p.lead:first-child,
p.small:first-child {
	margin-top: 0;
}

p + h1,
p + h2,
p + h3,
p + h4,
ul + h1,
ul + h2,
ul + h3,
ul + h4 {
	margin: var(--spacing-3) 0 0 0;
}

/* @end */






/* @group Lists
   ------------------------------------------------------------- */
:is(.fl-rich-text, .fl-html, .entry-content, .fl-post-content, .fl-module-fl-post-content > .fl-module-content) > ul {
	padding-inline-start: var(--spacing-2);
	list-style-type: "– ";
	font-size: var(--font-size-m);
	line-height: var(--line-height-m);
}

:is(.fl-rich-text, .fl-html, .entry-content, .fl-post-content, .fl-module-fl-post-content > .fl-module-content) > ol {
	padding-inline-start: var(--spacing-3);
	font-size: var(--font-size-m);
	line-height: var(--line-height-m);
}

/* @end */



/* @group Links
------------------------------------------------------------- */

.fl-rich-text > * > a,
.fl-rich-text > * > a:visited,
.fl-rich-text > * > strong > a,
.fl-rich-text > * > strong > a:visited {
	position: relative;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	
	background: linear-gradient(to right, rgba(0, 0, 0, 0.25) 0%,rgba(0, 0, 0, 0.25) 100%);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
}

.fl-rich-text > * > a:hover,
.fl-rich-text > * > a:active,
.fl-rich-text > * > strong > a:hover,
.fl-rich-text > * > strong > a:active {
	background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%,rgba(0, 0, 0, 1) 100%);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
}

/* @end */






/* @group Text Selection Color
------------------------------------------------------------- */

::selection {
	background: rgba(0, 0, 0, 0.1)!important;
	color: inherit!important;
}

::-moz-selection {
	background: rgba(0, 0, 0, 0.1)!important;
	color: inherit!important;
}
	
/* @end */






/* @group Focus Styles
------------------------------------------------------------- */
/* BB-Theme-Regel neutralisieren: :focus alleine zeigt keinen Ring mehr */
:where(.fl-builder-content, .fl-page) :is(a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus {
	outline: none;
}

/* Ring nur, wenn der Browser ihn für sinnvoll hält (Tastatur, Textfelder) */
:where(.fl-builder-content, .fl-page) :is(a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline-color: var(--ds-focus-color);
	outline-style: solid;
	outline-width: var(--ds-focus-width);
	outline-offset: var(--ds-focus-offset);
}
/* @end */






/* @group Layout System
------------------------------------------------------------- */



/* @group Sections
------------------------------------------------------------- */

.lf-section {
	padding-block: var(--section-padding-block);
}

.lf-section--padding-sm {
	padding-block: var(--section-padding-block-sm);
}

.lf-section--padding-top-sm {
	padding-block-start: var(--section-padding-block-sm);
}

.lf-section--padding-bottom-sm {
	padding-block-end: var(--section-padding-block-sm);
}

.lf-section--padding-none {
	padding-block: 0;
}

.lf-section--padding-top-none { 
	padding-block-start: 0;
}

.lf-section--padding-bottom-none {
	padding-block-end: 0;
}

.lf-section:has([data-auto-padding="top"]) {
	padding-top: max(var(--auto-padding-top), var(--section-padding-block, 0px));
}

.lf-section:has([data-auto-padding="bottom"]) {
	padding-bottom: max(var(--auto-padding-bottom), var(--section-padding-block, 0px));
}

/* @end */



/* @group Container
------------------------------------------------------------- */

.lf-container {
	width: 100%;
	margin-inline: auto;
	padding-inline: var(--container-padding-inline);
}

.lf-container--fixed-width {
	max-width: var(--container-fixed-width-max-width);
}

.lf-container--padding-none {
	padding-inline: 0;
}

/* @end */



/* @group Flex
------------------------------------------------------------- */

.lf-flex {
	display: flex;
	gap: var(--flex-gap);
}

.lf-flex--gap-md {
	gap: var(--flex-gap-md);
}

.lf-flex--gap-sm {
	gap: var(--flex-gap-sm);
}

.lf-flex--gap-none {
	gap: 0;
}

/* @end */



/* @group Modules
------------------------------------------------------------- */

.fl-module {
	margin-block-start: var(--module-margin-block);
}

.fl-module:first-child {
	margin-block-start: 0;
}

.fl-module-box {
	margin-block-start: 0;
}

.lf-modules--margin-none .fl-module {
	margin-top: 0;
}

/* @end */



/* @end Layout System */






/* @group Smart Header
------------------------------------------------------------- */

/*

header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99998;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.5);
}

header.header--hidden {
    transform: translateY(-100%);
	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0);
}

.fl-page {
	margin-top: var(--header-height);
	overflow-x: hidden!important;
}

.admin-bar header {
	top: 32px !important;
}

.fl-builder-edit .admin-bar header {
	top: 0px !important;
}

@media screen and (max-width: 782px) {
	.admin-bar header {
		top: 46px !important;
	}
	
	.fl-builder-edit .admin-bar header {
		top: 0px !important;
	}
}

*/

/* @end */






/* @group Logo
------------------------------------------------------------- */

#lichtsteiner-foundation-logo a {
	display: block;
	line-height: 0;
}

#lichtsteiner-foundation-logo a svg {
	width: auto;
	height: calc( 3 * var(--spacing-1) );
	display: block;
	vertical-align: top;
	overflow: visible;
}

#lichtsteiner-foundation-logo a svg path {
	fill: #ffffff;
}

/* @end */






/* @group Menu
------------------------------------------------------------- */

.fl-page .lf-menu-main ul {
	gap: var(--spacing-1);
}

.fl-page .lf-menu-main li a {
	font-size: var(--font-size-base);
	padding: var(--spacing-0-25) 0;
	text-transform: uppercase;
	position: relative;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

.fl-page .lf-menu-main li a:hover,
.fl-page .lf-menu-main li a:active {
	background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%,rgba(255, 255, 255, 1) 100%);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
}

@media (max-width: 750px) {
	.fl-page .lf-menu-main li a {
		font-size: var(--font-size-s);
	}
}

/* @end */






/* @group Legals Menu
------------------------------------------------------------- */

.fl-page .lf-legals-menu {
	display: flex;
	justify-content: center;
	gap: var(--spacing-1);
}

.fl-page .lf-legals-menu a {
	font-size: var(--font-size-base);
	position: relative;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	
	background: linear-gradient(to right, rgba(0, 0, 0, 0.25) 0%,rgba(0, 0, 0, 0.25) 100%);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
}

.fl-page .lf-legals-menu a:hover,
.fl-page .lf-legals-menu a:active {
	background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%,rgba(0, 0, 0, 1) 100%);
	background-repeat: no-repeat;
	background-size: 100% 1px;
	background-position: 0 100%;
}

/* @end */






/* @group Accordion
------------------------------------------------------------- */

:root {
	--pinc-accordion-content-gap:    var(--module-margin-block);
	--pinc-accordion-line-gap:       var(--module-margin-block);
	--pinc-accordion-line-width:     75%;
	--pinc-accordion-line-thickness: 1px;
	--pinc-accordion-icon-size:      calc( var(--font-size-l) * .75 );
	--pinc-accordion-icon-thickness: 0.25em;
	--pinc-accordion-icon-gap:       0.75em;
}

.fl-module.fl-module-pinc-accordion + .fl-module.fl-module-pinc-accordion {
	margin-block-start: calc( var(--module-margin-block) * 2 );
}

/* @end */