Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

603 lignes
12 KiB

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