Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

652 Zeilen
14 KiB

  1. .page-header {
  2. position: fixed;
  3. display: flex;
  4. align-items: center;
  5. top: 0;
  6. width: 100%;
  7. z-index: 100;
  8. height: 159px;
  9. transition: 0.25s $easeOutQuad;
  10. padding: 0;
  11. margin: 0;
  12. border: 0;
  13. &:before {
  14. content: "";
  15. @include fullsize;
  16. box-shadow: 0 1px 0 $color-white;
  17. box-shadow: 0 1px 0 var(--theme-color-background, $color-white);
  18. background-color: $color-white;
  19. background-color: var(--theme-color-background, $color-white);
  20. transition: 0.25s $easeOutQuad;
  21. }
  22. @media(min-width: 768px) {
  23. &.scrolled, &.nav-open, &.search-open {
  24. height: 100px;
  25. &:before {
  26. box-shadow: 0 1px 0 rgba($color-primary, 0.2);
  27. box-shadow: 0 1px 0 rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 0.2);
  28. }
  29. .logo img {
  30. height: 50px;
  31. }
  32. nav {
  33. top: 100px;
  34. height: calc(100vh - 100px);
  35. height: calc(var(--viewport-height, 1vh) * 100 - 100px);
  36. transition: transform 0.25s $easeOutQuad, visibility 0s linear 0s;
  37. visibility: visible;
  38. }
  39. }
  40. }
  41. @media(max-width: 767px) {
  42. height: 80px;
  43. justify-content: flex-end;
  44. &:before {
  45. box-shadow: 0 1px 0 rgba($color-primary, 0.2);
  46. box-shadow: 0 1px 0 rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 0.2);
  47. }
  48. }
  49. @media(max-width: 359px) {
  50. height: 70px;
  51. }
  52. @media(max-width: 567px) {
  53. .logo-overlay {
  54. content: "";
  55. position: absolute;
  56. display: block;
  57. left: 90px;
  58. top: 0;
  59. height: 44px;
  60. width: 100vw;
  61. background-color: $color-white;
  62. background-color: var(--theme-color-background, $color-white);
  63. @include hide(0.3s);
  64. }
  65. .contact-nav, .open-search {
  66. @include hide;
  67. }
  68. &.scrolled {
  69. .contact-nav, .open-search {
  70. @include show(0.3s);
  71. }
  72. .logo-overlay {
  73. @include show;
  74. pointer-events: none;
  75. }
  76. }
  77. .logo img, .logo object {
  78. max-width: calc(100vw - 110px);
  79. }
  80. }
  81. .logo {
  82. position: relative;
  83. margin-left: 34px;
  84. margin-right: auto;
  85. padding: 8px 12px 8px 8px;
  86. border-radius: 4px;
  87. transition: 0.2s ease;
  88. @include focusvisible;
  89. img {
  90. height: 75px;
  91. width: auto;
  92. max-width: none;
  93. transition: 0.25s $easeOutQuad;
  94. transform: translate3d(0, 0, 0) scale(1);
  95. @media(max-width: 1199px) {
  96. height: 50px;
  97. transition: none;
  98. }
  99. }
  100. canvas {
  101. position: absolute;
  102. display: block;
  103. top: 0;
  104. left: 0;
  105. height: calc(100% - 20px);
  106. width: calc(100% - 16px);
  107. background-color: white;
  108. margin: 8px 12px 8px 8px;
  109. }
  110. @media(max-width: 767px) {
  111. position: fixed;
  112. display: flex;
  113. align-items: center;
  114. top: 0;
  115. left: 0;
  116. margin: 18px 20px;
  117. padding: 0;
  118. height: 44px;
  119. width: calc(100vw - 110px);
  120. img {
  121. position: relative;
  122. display: block;
  123. height: auto;
  124. max-height: 44px;
  125. //width: 100%;
  126. max-width: calc(100vw - 110px);
  127. object-fit: contain;
  128. }
  129. }
  130. @media(max-width: 359px) {
  131. margin: 13px 16px;
  132. img {
  133. max-width: calc(100vw - 100px);
  134. }
  135. }
  136. }
  137. nav {
  138. position: fixed;
  139. display: flex;
  140. flex-direction: column;
  141. top: 100px;
  142. left: 100%;
  143. width: 420px;
  144. max-width: 100%;
  145. transform: translate3d(1px, 0, 0);
  146. height: calc(100vh - 100px);
  147. height: calc(var(--viewport-height, 1vh) * 100 - 100px);
  148. background-color: white;
  149. transition: transform 0.25s $easeOutQuad, visibility 0s linear 0.25s;
  150. box-shadow: -1px 0 0 $color-grey-light;
  151. box-shadow: -1px 0 0 var(--theme-grey-light, $color-grey-light);
  152. z-index: -1;
  153. visibility: hidden;
  154. @media(max-width: 767px) {
  155. top: 80px;
  156. height: calc(100vh - 80px);
  157. height: calc(var(--viewport-height, 1vh) * 100 - 80px);
  158. }
  159. @media(max-width: 359px) {
  160. top: 70px;
  161. height: calc(100vh - 70px);
  162. height: calc(var(--viewport-height, 1vh) * 100 - 70px);
  163. }
  164. @media (max-width: 767px) and (orientation: landscape) {
  165. max-width: 65vw;
  166. }
  167. .overlay-holder {
  168. content: "";
  169. position: absolute;
  170. right: 100%;
  171. width: 100vw;
  172. top: -100px;
  173. bottom: 0;
  174. z-index: -1;
  175. background-color: $color-primary-light-04;
  176. background-color: var(--theme-color-primary-dimmed-04, $color-primary-light-04);
  177. border-right: 1px solid rgba($color-primary, 0.4);
  178. border-right: 1px solid rgba(var(--theme-color-primary-rgb, $color-primary-rgb), 0.4);
  179. @include hide;
  180. }
  181. }
  182. .toggle-nav {
  183. position: relative;
  184. display: block;
  185. border: 2px solid $color-primary-light-04;//$lightgrey;
  186. border: 2px solid var(--theme-color-primary-dimmed-04, $color-primary-light-04);
  187. background-color: transparent;
  188. padding: 18px 20px 18px 72px;
  189. margin: 0 30px 0 20px;
  190. cursor: pointer;
  191. transition: 0.3s ease;
  192. font-size: 20px;
  193. line-height: 1.5;
  194. font-weight: 600;
  195. border-radius: 4px;
  196. color: $color-primary;
  197. color: var(--theme-color-primary, $color-primary);
  198. @include focusvisible;
  199. @media(max-width: 767px) {
  200. font-size: 0;
  201. line-height: 0;
  202. padding: 0;
  203. width: 56px;
  204. height: 56px;
  205. margin-right: 12px;
  206. margin-left: 8px;
  207. }
  208. &:before, &:after, span:before {
  209. content: "";
  210. position: absolute;
  211. top: 50%;
  212. left: 40px;
  213. width: 38px;
  214. height: 2px;
  215. border-radius: 2px;
  216. background-color: $color-primary;
  217. background-color: var(--theme-color-primary, $color-primary);
  218. margin: 0 -19px;
  219. transform: translate3d(0, -1px, 0) rotate(0deg);
  220. transition: margin 0.2s ease 0.2s, transform 0.2s ease 0s, background-color 0.2s ease 0s, opacity 0.2s ease 0s;
  221. @media(max-width: 767px) {
  222. left: 50%;
  223. }
  224. }
  225. &:before {
  226. margin-top: -12px;
  227. }
  228. &:after {
  229. margin-top: 12px;
  230. }
  231. @media(max-width: 359px) {
  232. width: 50px;
  233. height: 50px;
  234. &:before, &:after, span:before {
  235. width: 32px;
  236. margin-left: -16px;
  237. }
  238. &:before {
  239. margin-top: -10px;
  240. }
  241. &:after {
  242. margin-top: 10px;
  243. }
  244. }
  245. }
  246. .open-search, .contact-nav a {
  247. background-color: transparent;
  248. border: 0;
  249. position: relative;
  250. display: block;
  251. padding: 20px 20px 20px 54px;
  252. margin: 0 2px;
  253. font-size: 20px;
  254. line-height: 1.5;
  255. font-weight: 600;
  256. text-decoration: none;
  257. color: $color-primary;
  258. color: var(--theme-color-primary, $color-primary);
  259. cursor: pointer;
  260. border-radius: 4px;
  261. transition: 0.25s $easeOutQuad;
  262. @include focusvisible;
  263. @media(max-width: 999px) {
  264. font-size: 0;
  265. line-height: 0;
  266. padding: 5px;
  267. margin-right: 5px;
  268. }
  269. &:before {
  270. @include icon-suche;
  271. font-family: "Icons";
  272. position: absolute;
  273. left: 14px;
  274. top: 50%;
  275. width: 30px;
  276. height: 30px;
  277. font-size: 30px;
  278. font-weight: 400;
  279. line-height: 1;
  280. margin: -15px 0;
  281. background-repeat: no-repeat;
  282. background-position: center;
  283. background-size: 100%;
  284. @media(max-width: 999px) {
  285. position: relative;
  286. display: block;
  287. margin: 0;
  288. left: 0;
  289. }
  290. }
  291. }
  292. .contact-nav {
  293. display: flex;
  294. align-items: center;
  295. list-style: none;
  296. padding: 0;
  297. a {
  298. &.phone{
  299. @extend .icon-telefon;
  300. &:before {
  301. margin-left: 3px;
  302. }
  303. }
  304. &.contact:before, &.website:before {
  305. @include icon-kontakt;
  306. }
  307. &.mail:before {
  308. @include icon-email;
  309. }
  310. &.chat:before {
  311. @include icon-chat;
  312. }
  313. &.login:before{
  314. @include icon-login-header;
  315. }
  316. }
  317. }
  318. .search form {
  319. position: absolute;
  320. display: flex;
  321. flex-direction: column;
  322. align-items: center;
  323. justify-content: center;
  324. top: 100%;
  325. left: 0;
  326. right: 0;
  327. height: calc(100vh - 100px);
  328. height: calc(var(--viewport-height, 1vh) * 100 - 100px);
  329. background-color: $color-primary-light-04;
  330. background-color: var(--theme-color-primary-dimmed-04, $color-primary-light-04);
  331. @include hide;
  332. @media(max-width: 767px) {
  333. height: calc(100vh - 80px);
  334. height: calc(var(--viewport-height, 1vh) * 100 - 80px);
  335. }
  336. .outer {
  337. position: relative;
  338. padding-bottom: 10px;
  339. }
  340. .container {
  341. margin: auto;
  342. }
  343. }
  344. .form-nav {
  345. width: 100%;
  346. background-color: $color-white;
  347. background-color: var(--theme-color-background, $color-white);
  348. .secondary {
  349. background-color: $color-primary-light-04;
  350. background-color: var(--theme-color-primary-dimmed-04, $color-primary-light-04);
  351. }
  352. }
  353. .close-search {
  354. position: absolute;
  355. right: 30px;
  356. top: 50%;
  357. padding: 20px 22px 20px 70px;
  358. cursor: pointer;
  359. transition: 0.3s ease;
  360. font-size: 20px;
  361. line-height: 1.5;
  362. font-weight: 600;
  363. border: 0;
  364. border-radius: 4px;
  365. color: $color-white;
  366. color: var(--theme-color-background, $color-white);
  367. background-color: $color-primary;
  368. background-color: var(--theme-color-primary, $color-primary);
  369. @include focusvisible;
  370. @include hide;
  371. z-index: 2;
  372. top: 50%;
  373. margin-top: -35px;
  374. @media (max-width: 1199px) and (min-width: 768px) {
  375. right: 20px;
  376. }
  377. @media(max-width: 767px) {
  378. font-size: 0;
  379. line-height: 0;
  380. padding: 0;
  381. right: 12px;
  382. margin-top: -28px;
  383. width: 56px;
  384. height: 56px;
  385. }
  386. &:before, &:after {
  387. content: "";
  388. position: absolute;
  389. top: 50%;
  390. left: 36px;
  391. width: 38px;
  392. height: 2px;
  393. border-radius: 2px;
  394. background-color: $color-white;
  395. background-color: var(--theme-color-background, $color-white);
  396. margin: -1px -19px;
  397. transform: translate3d(0, 0, 0) rotate(45deg);
  398. transition: 0.3s ease;
  399. @media(max-width: 767px) {
  400. left: 50%;
  401. }
  402. }
  403. &:after {
  404. transform: translate3d(0, 0, 0) rotate(-45deg);
  405. }
  406. }
  407. &.search-open {
  408. .logo {
  409. z-index: 1;
  410. }
  411. &:after {
  412. content: "";
  413. @include fullsize;
  414. background-color: $color-white;
  415. background-color: var(--theme-color-background, $color-white);
  416. }
  417. .search form, .close-search {
  418. @include show;
  419. }
  420. }
  421. &.nav-open {
  422. .toggle-nav {
  423. background-color: $color-primary;
  424. background-color: var(--theme-color-primary, $color-primary);
  425. border-color: $color-primary;
  426. border-color: var(--theme-color-primary, $color-primary);
  427. color: $color-white;
  428. color: var(--theme-color-background, $color-white);
  429. transition: 0.2s ease 0s;
  430. &:before, &:after, span:before {
  431. margin-top: 0;
  432. transition: margin 0.2s ease 0s, transform 0.2s ease 0.2s, background-color 0.2s ease 0s, opacity 0.2s ease 0.2s;
  433. background-color: $color-white;
  434. background-color: var(--theme-color-background, $color-white);
  435. }
  436. }
  437. .toggle-nav:before {
  438. transform: translate3d(0, -1px, 0) rotate(45deg);
  439. }
  440. .toggle-nav:after {
  441. transform: translate3d(0, -1px, 0) rotate(-45deg);
  442. }
  443. .toggle-nav span:before {
  444. opacity: 0;
  445. }
  446. nav {
  447. transform: translate3d(-100%, 0, 0);
  448. transition: transform 0.25s $easeOutQuad, visibility 0s linear 0s;
  449. visibility: visible;
  450. .overlay-holder {
  451. @include show;
  452. opacity: 0.6;
  453. }
  454. }
  455. &:not(.scrolled) {
  456. ~ .page-wrapper, ~ .page-content {
  457. @media(min-width: 768px) {
  458. border-top-width: 100px;
  459. }
  460. }
  461. }
  462. ~ .page-wrapper, ~ .page-content {
  463. //filter: blur(4px);
  464. }
  465. }
  466. ~ .page-wrapper, ~ .page-content {
  467. transition: 0.25s $easeOutQuad;
  468. //filter: blur(0);
  469. }
  470. @media(max-width: 1199px) and (min-width: 768px) {
  471. height: 100px;
  472. &:before {
  473. box-shadow: 0 1px 0 rgba($color-primary, 0.2);
  474. }
  475. .logo {
  476. height: 66px;
  477. margin-left: 20px;
  478. }
  479. .toggle-nav {
  480. margin-right: 20px;
  481. }
  482. nav {
  483. top: 100px;
  484. height: calc(var(--viewport-height, 1vh) * 100 - 100px);
  485. }
  486. }
  487. button::-moz-focus-inner {
  488. border: 0;
  489. }
  490. button, a {
  491. -webkit-tap-highlight-color: transparent;
  492. }
  493. }
  494. .toplink {
  495. position: fixed;
  496. right: 0;
  497. bottom: 105px;
  498. background-color: $color-primary;
  499. background-color: var(--theme-color-primary, $color-primary);
  500. color: white;
  501. width: 90px;
  502. height: 45px;
  503. display: flex;
  504. border-top-left-radius: 18px;
  505. border-bottom-left-radius: 18px;
  506. font-size: 16px;
  507. justify-content: center;
  508. align-items: center;
  509. text-transform: uppercase;
  510. text-decoration: none;
  511. @include hide;
  512. box-shadow: 0 0 0 1px rgba(white, 0.2);
  513. z-index: -1;
  514. &:hover, &:active, &:focus {
  515. color: white;
  516. text-decoration: none;
  517. }
  518. &:before {
  519. @include icon-pfeil-oben;
  520. font-family: "Icons";
  521. font-size: 30px;
  522. line-height: 1;
  523. margin-right: 6px;
  524. }
  525. @media(max-width: 767px) {
  526. font-size: 0;
  527. width: 54px;
  528. bottom: 64px;
  529. justify-content: flex-start;
  530. padding-left: 10px;
  531. &:before {
  532. margin-right: 0;
  533. }
  534. }
  535. }
  536. .show-toplink .toplink {
  537. @include show;
  538. }
  539. .mobile .page-header {
  540. .primary a {
  541. -webkit-tap-highlight-color: rgba($color-primary, 0.1);
  542. }
  543. li.open > a {
  544. background-color: $color-primary-light-04;//$lightgrey;
  545. }
  546. }
  547. .desktop .page-header {
  548. &:not(.nav-open) .toggle-nav:hover {
  549. background-color: $color-primary-light-04;//$lightgrey;
  550. }
  551. .open-search:hover, .contact-nav a:hover {
  552. color: $color-secondary-dark;
  553. }
  554. }
  555. [data-browser="ie"] {
  556. .page-header .logo img {
  557. height: 50px;
  558. }
  559. .page-header .search form {
  560. display: block;
  561. .form-nav {
  562. position: absolute;
  563. bottom: 0;
  564. }
  565. .container {
  566. position: absolute;
  567. top: 50%;
  568. left: 50%;
  569. margin: -50px 0;
  570. transform: translate(-50%, -50%);
  571. }
  572. }
  573. }