/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
*/
/**

    var(--theme-palette-color-1); you can use this as your primary brand colour.
    var(--theme-palette-color-2); alternative colour, used usually for the hover action
    var(--theme-palette-color-3); colour used for general text paragraphs
    var(--theme-palette-color-4); colour used for headings, subheadings and titles
    var(--theme-palette-color-5); colour used for borders
    var(--theme-palette-color-6); colour used for subtle backgrounds (page hero, footer)
    var(--theme-palette-color-7); colour used for the site’s background
    var(--theme-palette-color-8); lighter alternative colour, to be used in header backgrounds

	Blocksy Querys:
	@media (max-width: 767px) {}
	@media (min-width: 768px) {}
	@media (max-width: 999px) {}

	Aufteilung (Stand 09/2026):
	- style.css (diese Datei): projektübergreifende Basics + Design-Helfer, die zu scripte.js gehören
	- Customizer > Zusätzliches CSS: alles Seiten-/Block-spezifische (gsbp-IDs, page-id-*, Formular-Feinschliff)
*/


/* Variablen
__________________________________________________________________________________*/

:root {
  --step--2: clamp(0.75rem, 0.7rem + 0.2vw, 0.8125rem);        /* 12–13px */
  --step--1: clamp(0.84375rem, 0.8125rem + 0.25vw, 0.9375rem); /* 13.5–15px */
  --step-0:  clamp(1rem, 0.9375rem + 0.5vw, 1.125rem);         /* 16–18px Fließtext */
  --step-1:  clamp(1.1875rem, 1.0625rem + 0.7vw, 1.375rem);    /* 19–22px Lead */
  --step-2:  clamp(1.625rem, 1.375rem + 1.4vw, 2.25rem);       /* 26–36px */
  --step-3:  clamp(1.875rem, 1.5rem + 2vw, 2.75rem);           /* 30–44px H2 */
  --step-4:  clamp(2.375rem, 1.8rem + 3vw, 3.625rem);          /* 38–58px H1 */
  --step-5:  clamp(2.875rem, 2.1rem + 4vw, 4.375rem);          /* 46–70px Display */

  /* Seitenbreite (Sync mit Blocksy-Customizer) */
  --maxw: 1490px;

  /* https://www.joshwcomeau.com/shadow-palette/ */
  --shadow-color: 0deg 0% 0%;
  --shadow-elevation-low:
    0px 0.5px 0.8px hsl(var(--shadow-color) / 0),
    0px 1.5px 2.3px hsl(var(--shadow-color) / 0.08);
  --shadow-elevation-medium:
    0px 0.5px 0.8px hsl(var(--shadow-color) / 0),
    0px 7.4px 11.1px hsl(var(--shadow-color) / 0.11);
  --shadow-elevation-high:
    0px 0.5px 0.8px hsl(var(--shadow-color) / 0),
    0px 8.1px 12.1px hsl(var(--shadow-color) / 0.09),
    -0.1px 24.7px 37.1px hsl(var(--shadow-color) / 0.17);
}


/* Typografie
__________________________________________________________________________________*/

h1, h2, h3, h4, h5, h6 {
  margin-bottom: calc(var(--has-theme-content-spacing, 1)*(.5em + 8px)) !important;
  font-stretch: condensed !important;
}
h1, h2, h3, h4 { letter-spacing: -0.01em; line-height: 1.1; }

p { margin-bottom: 0.75em !important; }

/* Letztes <p> im Container: kein Abstand nach unten */
p:last-child { margin-bottom: 0 !important; }

/* Erstes Überschriften-Element im Container: kein Abstand nach oben */
h1:first-child, h2:first-child, h3:first-child,
h4:first-child, h5:first-child, h6:first-child { margin-top: 0 !important; }

b, strong { font-weight: 700 !important; }
hr { margin: 80px auto !important; }


/* Hilfsklassen
__________________________________________________________________________________*/

.schatten-small { box-shadow: var(--shadow-elevation-low); }
.schatten       { box-shadow: var(--shadow-elevation-medium); }
.schatten-large { box-shadow: var(--shadow-elevation-high); }

.small  { font-size: var(--step--1); }
.xsmall { font-size: var(--step--2); }
.large  { font-size: var(--step-4); }
.xlarge { font-size: var(--step-5); }

.blocksatz { text-align: justify; hyphens: auto; }
.hyphen p { overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }
.keine-linkmarkierung a { text-decoration: none; }
.margin-bottom-0 { margin-bottom: 0 !important; }
.max-w-46ch { max-width: 46ch; }
.max-w-400  { max-width: 400px; }

.box {
  background-color: rgba(255,255,255,0.75);
  border: 1px solid #ffffff !important;
  border-radius: 3px;
  padding: 4vw;
  box-shadow: var(--shadow-elevation-medium);
}
.box.klein { padding: 1vw; }
.box:hover {
  background-color: rgba(255,255,255,0.9);
  box-shadow: var(--shadow-elevation-high);
}

.blur { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.abgerundet, .abgerundet video { border-radius: 3px; }

/* Bilder */
.wp-block-image img,
.blocks-gallery-item img { border-radius: 3px !important; }

.entry-content figcaption {
  text-align: right !important;
  color: #787878;
  font-size: var(--step--2) !important;
  font-weight: 300;
}


/* Menü
__________________________________________________________________________________*/

@media (min-width: 1000px) {
  .sub-menu { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
}
#offcanvas .ct-panel-inner { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
#offcanvas .sub-menu .ct-menu-link:not(:empty) { padding: 0.5em 0; font-size: 0.875em; }


/* Blocksy
__________________________________________________________________________________*/

.ct-icon-container { margin-bottom: 2px; }
#main-container { padding-bottom: 0 !important; }
[class*=ct-contact-info] li { grid-column-gap: 5px !important; }
.ct-shortcuts-container { z-index: 99 !important; }
.ct-shortcuts-bar-items,
[data-header*="type-1"] #offcanvas { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }


/* Complianz
__________________________________________________________________________________*/

#cmplz-cookies-overview .cmplz-dropdown p,
#cmplz-document .cmplz-dropdown p,
#cmplz-document li,
#cmplz-document p,
#cmplz-document td { font-size: 1rem; }

#cmplz-document.impressum h2,
#cmplz-document.impressum h3 {
  font-size: 1.5rem;
  margin-top: 1.5em;
  margin-bottom: 0 !important;
  color: var(--theme-palette-color-3) !important;
  opacity: 1;
}
#cmplz-document a { text-decoration: none; }
#cmplz-document b { font-weight: 700; }
#cmplz-document h2, #cmplz-document h3 { margin-top: 2em !important; margin-bottom: 0 !important; }


/* JetFormBuilder – Grundlayout: Label über dem Feld (echtes <label>, barrierefrei)
__________________________________________________________________________________*/

.jet-form-builder .jet-form-builder__label-text {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #4a5158;
  margin-bottom: 6px;
}
.jet-form-builder__field:not(.checkboxes-field):not(.radio-field):not(.range-field) {
  background-color: #f6f8fa;
  border: none;
}
.jet-form-builder [type='text'],
.jet-form-builder [type='password'],
.jet-form-builder [type='date'],
.jet-form-builder [type='datetime'],
.jet-form-builder [type='datetime-local'],
.jet-form-builder [type='month'],
.jet-form-builder [type='week'],
.jet-form-builder [type='email'],
.jet-form-builder [type='number'],
.jet-form-builder [type='search'],
.jet-form-builder [type='tel'],
.jet-form-builder [type='time'],
.jet-form-builder [type='url'],
.jet-form-builder [type='color'],
.jet-form-builder textarea {
  margin-bottom: 0 !important;
  padding: 13px 16px !important;
  border-radius: 12px !important;
  background-color: #f6f8fa !important;
  box-shadow: 0 0 0 !important;
  border: 1.5px solid #0a2f4d1f !important;
}
.jet-form-builder__field-wrap select {
  width: 100%;
  padding: 8px 16px !important;
  line-height: 1.6;
  border-radius: 12px;
  border: 1.5px solid rgba(10,47,77,0.12);
  font-family: inherit;
  font-size: 15px;
  box-sizing: border-box;
}
.jet-form-builder input[required],
.jet-form-builder textarea[required],
.jet-form-builder select[required] {
  border: 1.5px solid var(--theme-palette-color-1) !important;
  background-color: #ffffff !important;
}
.jet-form-builder input:focus,
.jet-form-builder textarea:focus {
  background-color: #ffffff !important;
  color: #15181d;
  border: 1.5px solid var(--theme-palette-color-1) !important;
  box-shadow: 0 1px 1px rgba(0,0,0,0.11),
              0 2px 2px rgba(0,0,0,0.11),
              0 4px 4px rgba(0,0,0,0.11),
              0 6px 8px rgba(0,0,0,0.11),
              0 8px 16px rgba(0,0,0,0.11) !important;
  transform: scale(1.01);
}
.jet-form-builder__field-label.for-checkbox > span::before { background-color: #fff; }
.jet-form-builder__field-label.for-checkbox :checked + span::before {
  border-color: var(--theme-palette-color-1) !important;
  background-color: var(--theme-palette-color-1) !important;
}
.jet-form-builder__field-wrap.checkradio-wrap:not(:first-child) { padding-top: 0 !important; }
.jet-form-builder__desc { margin-top: 0.5em; line-height: 1.3em; }
.jet-form-builder__submit-wrap { justify-content: flex-end; }

/* Absende-Button: Blocksy-Buttonfarben (Kontrast wird über die Button-Variablen gesteuert) */
.jet-form-builder__submit { background-color: var(--theme-button-background-initial-color) !important; }
.jet-form-builder__submit:hover { background-color: var(--theme-button-background-hover-color) !important; }

/* Feld-Fehlermeldung */
.jet-form-builder .jet-form-builder-row.field-has-error .error-message {
  color: #9b1c1c;
  font-size: 13px;
  font-weight: 600;
  margin-top: 6px;
}


/* Design-Helfer (Effekte, die auf mehreren Seiten bzw. mit scripte.js genutzt werden)
__________________________________________________________________________________*/

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; }

/* Eyebrow-Label über Sektionsüberschriften */
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; color: var(--theme-palette-color-1); }
.eyebrow::before { content: ''; width: 22px; height: 2px; background: var(--theme-palette-color-2); }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 16px 30px; border-radius: 100px; font-weight: 700; font-size: 16px; cursor: pointer; border: none; font-family: inherit; transition: transform .25s ease, box-shadow .25s ease; }
.btn-primary { background: var(--theme-palette-color-1); color: #fff; box-shadow: 0 12px 30px -10px rgba(28,127,196,0.6); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -8px rgba(28,127,196,0.7); color: #fff; }
.btn-ghost { background: transparent; color: var(--theme-palette-color-4); border: 1.5px solid var(--theme-palette-color-5); }
.btn-ghost:hover { border-color: var(--theme-palette-color-1); color: var(--theme-palette-color-1); }

/* Glanz-Streifen beim Hover */
.fx-shine-sweep { position: relative; overflow: hidden; }
.fx-shine-sweep::after {
  content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,0.22), transparent);
  transform: skewX(-20deg);
  transition: left .65s cubic-bezier(.16,1,.3,1);
}
.fx-shine-sweep:hover::after { left: 130%; }

/* Fade-Maske hinter Text über Hintergrundbild */
.fx-fade-mask-r { position: relative; }
.fx-fade-mask-r::before { content: ''; position: absolute; top: -20px; bottom: -20px; left: -30px; right: -30%; background: linear-gradient(to right, #fff 0%, #fff 55%, transparent 100%); z-index: 0; pointer-events: none; }
.fx-fade-mask-r > * { position: relative; z-index: 1; }

/* Bullet-Trenner zwischen Inline-Wörtern (Hero-Slogan) */
.fx-bullet-sep > *:not(:first-child)::before { content: '•'; margin: 0 clamp(6px, 3vw, 14px); color: var(--theme-palette-color-2); }

/* Play-Button Pulse-Ringe */
.fx-pulse-ring { position: relative; box-shadow: 0 10px 30px rgba(0,0,0,0.35); }
.fx-pulse-ring::before, .fx-pulse-ring::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(255,255,255,0.6); animation: gs-pulse-ring 2.6s ease-out infinite; pointer-events: none; }
.fx-pulse-ring::after { animation-delay: 1.3s; }
@keyframes gs-pulse-ring { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.9); opacity: 0; } }

/* Reveal-Animationen (gesteuert über scripte.js) */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.tl-item-el { opacity: 0; filter: blur(10px); transform: translateY(20px); transition: background .3s ease, opacity 2.8s ease, filter 2.8s ease, transform 2.8s ease; }
.tl-item-el.is-visible { opacity: 1; filter: blur(0); transform: none; }


/* Übergänge
__________________________________________________________________________________*/

input,
textarea,
input[type=submit],
select,
label,
tr,
img { transition: all 0.3s ease !important; }
