Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

604 linhas
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. top: auto;
  252. }
  253. }
  254. }
  255. .contact-nav {
  256. display: flex;
  257. align-items: center;
  258. list-style: none;
  259. padding: 0;
  260. a {
  261. &.phone{
  262. &:before {
  263. @include icon-telefon;
  264. margin-left: 3px;
  265. }
  266. }
  267. &.contact:before, &.website:before {
  268. @include icon-kontakt;
  269. }
  270. &.mail:before {
  271. @include icon-email;
  272. }
  273. &.chat:before {
  274. @include icon-chat;
  275. }
  276. &.faq:before {
  277. @include icon-faq;
  278. }
  279. &.login:before{
  280. @include icon-login-header;
  281. }
  282. }
  283. .caruso-basket-link a:before {
  284. @include icon-fa-basket;
  285. font-family: "IHK24FontAwesome", sans-serif;
  286. }
  287. }
  288. .search form {
  289. position: absolute;
  290. display: flex;
  291. flex-direction: column;
  292. align-items: center;
  293. justify-content: center;
  294. top: 100%;
  295. left: 0;
  296. right: 0;
  297. height: calc(var(--viewport-height, 1vh) * 100 - 100px);
  298. background-color: var(--theme-color-primary-dimmed-04);
  299. @include hide;
  300. @media(max-width: 767px) {
  301. height: calc(var(--viewport-height, 1vh) * 100 - 80px);
  302. }
  303. .outer {
  304. position: relative;
  305. padding-bottom: 10px;
  306. }
  307. .container {
  308. margin: auto;
  309. }
  310. }
  311. .form-nav {
  312. width: 100%;
  313. background-color: var(--theme-color-white);
  314. .secondary {
  315. background-color: var(--theme-color-primary-dimmed-04);
  316. }
  317. }
  318. .close-search {
  319. position: absolute;
  320. right: 30px;
  321. top: 50%;
  322. padding: 20px 22px 20px 70px;
  323. cursor: pointer;
  324. transition: 0.3s ease;
  325. font-size: 20px;
  326. line-height: 1.5;
  327. font-weight: 600;
  328. border: 0;
  329. border-radius: 4px;
  330. color: var(--theme-color-white);
  331. background-color: var(--theme-color-primary);
  332. @include focus-visible;
  333. @include hide;
  334. z-index: 2;
  335. margin-top: -35px;
  336. @media (max-width: 1199px) and (min-width: 768px) {
  337. right: 20px;
  338. }
  339. @media(max-width: 767px) {
  340. font-size: 0;
  341. line-height: 0;
  342. padding: 0;
  343. right: 12px;
  344. margin-top: -28px;
  345. width: 56px;
  346. height: 56px;
  347. }
  348. &:before, &:after {
  349. content: "";
  350. position: absolute;
  351. top: 50%;
  352. left: 36px;
  353. width: 38px;
  354. height: 2px;
  355. border-radius: 2px;
  356. background-color: var(--theme-color-white);
  357. margin: -1px -19px;
  358. transform: translate3d(0, 0, 0) rotate(45deg);
  359. transition: 0.3s ease;
  360. @media(max-width: 767px) {
  361. left: 50%;
  362. }
  363. }
  364. &:after {
  365. transform: translate3d(0, 0, 0) rotate(-45deg);
  366. }
  367. }
  368. &.search-open {
  369. .logo {
  370. z-index: 1;
  371. }
  372. &:after {
  373. content: "";
  374. @include full-size;
  375. background-color: var(--theme-color-white);
  376. }
  377. .search form, .close-search {
  378. @include show;
  379. }
  380. }
  381. &.nav-open {
  382. .toggle-nav {
  383. background-color: var(--theme-color-primary);
  384. border-color: var(--theme-color-primary);
  385. color: var(--theme-color-white);
  386. transition: 0.2s ease 0s;
  387. &:before, &:after, span:before {
  388. margin-top: 0;
  389. transition: margin 0.2s ease 0s, transform 0.2s ease 0.2s, background-color 0.2s ease 0s, opacity 0.2s ease 0.2s;
  390. background-color: var(--theme-color-white);
  391. }
  392. }
  393. .toggle-nav:before {
  394. transform: translate3d(0, -1px, 0) rotate(45deg);
  395. }
  396. .toggle-nav:after {
  397. transform: translate3d(0, -1px, 0) rotate(-45deg);
  398. }
  399. .toggle-nav span:before {
  400. opacity: 0;
  401. }
  402. nav {
  403. transform: translate3d(-100%, 0, 0);
  404. transition: transform 0.25s $easeOutQuad, visibility 0s linear 0s;
  405. visibility: visible;
  406. .overlay-holder {
  407. @include show;
  408. opacity: 0.6;
  409. }
  410. }
  411. &:not(.scrolled) {
  412. ~ .page-wrapper, ~ .page-content {
  413. @media(min-width: 768px) {
  414. border-top-width: 100px;
  415. }
  416. }
  417. }
  418. }
  419. ~ .page-wrapper, ~ .page-content {
  420. transition: 0.25s $easeOutQuad;
  421. }
  422. @media(max-width: 1199px) and (min-width: 768px) {
  423. height: 100px;
  424. &:before {
  425. box-shadow: 0 1px 0 rgba(var(--theme-color-primary-rgb), 0.2);
  426. }
  427. .logo {
  428. height: 66px;
  429. margin-left: 20px;
  430. }
  431. .toggle-nav {
  432. margin-right: 20px;
  433. }
  434. nav {
  435. top: 100px;
  436. height: calc(var(--viewport-height, 1vh) * 100 - 100px);
  437. }
  438. }
  439. button::-moz-focus-inner {
  440. border: 0;
  441. }
  442. button, a {
  443. -webkit-tap-highlight-color: transparent;
  444. }
  445. }
  446. .toplink {
  447. position: fixed;
  448. right: 0;
  449. bottom: 105px;
  450. background-color: var(--theme-color-primary);
  451. color: white;
  452. width: 90px;
  453. height: 45px;
  454. display: flex;
  455. border-top-left-radius: 18px;
  456. border-bottom-left-radius: 18px;
  457. font-size: 16px;
  458. justify-content: center;
  459. align-items: center;
  460. text-transform: uppercase;
  461. text-decoration: none;
  462. @include hide;
  463. box-shadow: 0 0 0 1px rgba(#fff, 0.2);
  464. z-index: -1;
  465. &:hover, &:active, &:focus {
  466. color: white;
  467. text-decoration: none;
  468. }
  469. &:before {
  470. @include icon-pfeil-oben;
  471. font-family: 'Icons', sans-serif;
  472. font-size: var(--icon-size);
  473. line-height: 1;
  474. margin-right: 6px;
  475. }
  476. @media(max-width: 767px) {
  477. font-size: 0;
  478. width: 54px;
  479. bottom: 64px;
  480. justify-content: flex-start;
  481. padding-left: 10px;
  482. &:before {
  483. margin-right: 0;
  484. }
  485. }
  486. }
  487. .show-toplink .toplink {
  488. @include show;
  489. }
  490. .mobile .page-header {
  491. .primary a {
  492. -webkit-tap-highlight-color: rgba(var(--theme-color-primary-rgb), 0.1);
  493. }
  494. li.open > a {
  495. background-color: var(--theme-color-primary-dimmed-04);
  496. }
  497. }
  498. .desktop .page-header {
  499. &:not(.nav-open) .toggle-nav:hover {
  500. background-color: var(--theme-color-primary-dimmed-04);
  501. }
  502. .open-search:hover, .contact-nav a:hover {
  503. color: var(--theme-color-secondary-intensed);
  504. }
  505. }
  506. /*
  507. [data-browser="ie"] {
  508. .page-header .logo img {
  509. height: 50px;
  510. }
  511. .page-header .search form {
  512. display: block;
  513. .form-nav {
  514. position: absolute;
  515. bottom: 0;
  516. }
  517. .container {
  518. position: absolute;
  519. top: 50%;
  520. left: 50%;
  521. margin: -50px 0;
  522. transform: translate(-50%, -50%);
  523. }
  524. }
  525. }
  526. */