You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

365 lines
7.3 KiB

  1. @import '../../_global/styles/mixins';
  2. @import '../../_global/styles/vars';
  3. .teaser {
  4. --hero-background: var(--theme-color-white);
  5. position: relative;
  6. display: flex;
  7. flex-direction: column;
  8. height: 100%;
  9. text-decoration: none;
  10. font-size: var(--font-size-small);
  11. &::before {
  12. content: '';
  13. @include full-size;
  14. margin: -6px;
  15. border-radius: var(--border-radius-xs);
  16. transition: 0.2s ease;
  17. }
  18. &:focus {
  19. outline: none;
  20. }
  21. &.focus-visible:focus::before {
  22. @include focus-standalone;
  23. }
  24. &:focus-visible::before, &.-moz-focusring::before {
  25. @include focus-standalone;
  26. }
  27. &.text {
  28. margin-bottom: 0;
  29. }
  30. .image-box {
  31. position: relative;
  32. display: block;
  33. border-radius: var(--border-radius-xs);
  34. background-color: var(--theme-color-primary-dimmed-04);
  35. overflow: hidden;
  36. flex-grow: 0;
  37. flex-shrink: 0;
  38. &::before {
  39. content: "";
  40. position: relative;
  41. display: block;
  42. padding-top: 66.6667%;
  43. margin-bottom: 7px;
  44. }
  45. &::after {
  46. content: "";
  47. position: absolute;
  48. left: 0;
  49. bottom: 0;
  50. width: 100%;
  51. display: block;
  52. height: 8px;
  53. background-color: var(--theme-color-secondary);
  54. transition: 0.3s ease;
  55. z-index: 1;
  56. border-bottom-right-radius: 4px;
  57. border-bottom-left-radius: 4px;
  58. }
  59. &.chart {
  60. display: flex;
  61. align-items: center;
  62. justify-content: center;
  63. background: linear-gradient(130deg, var(--theme-color-gradient-01) 10%, var(--theme-color-gradient-02) 90%, var(--theme-color-gradient-03) 160%);
  64. }
  65. }
  66. img {
  67. position: absolute;
  68. top: 0;
  69. left: 0;
  70. max-width: 100%;
  71. width: 100%;
  72. height: calc(100% - 7px);
  73. object-fit: cover;
  74. opacity: 1;
  75. transition: 0.3s linear;
  76. &.loading {
  77. opacity: 0;
  78. }
  79. }
  80. .copyright {
  81. @include copyright;
  82. bottom: 8px;
  83. }
  84. .picto-box {
  85. position: absolute;
  86. left: 50%;
  87. top: 50%;
  88. transform: translate(-50%,-50%);
  89. .icon {
  90. width: 90px;
  91. height: 90px;
  92. overflow: hidden;
  93. position: relative;
  94. margin: 0 auto;
  95. @media(min-width: 568px) {
  96. width: 100px;
  97. height: 100px;
  98. }
  99. &:before {
  100. display: block;
  101. position: absolute;
  102. left: 0;
  103. top: 0;
  104. font-family: "Pictograms", sans-serif;
  105. color: var(--theme-color-white);
  106. font-size: 90px;
  107. line-height: 1;
  108. @media(min-width: 568px) {
  109. font-size: 100px;
  110. }
  111. }
  112. }
  113. .picto-title {
  114. @include h3;
  115. margin: 10px 0 0 0;
  116. width: calc(100vw - 80px);
  117. overflow: hidden;
  118. height: 38px;
  119. display: block;
  120. font-weight: 400 !important;
  121. color: var(--theme-color-background) !important;
  122. text-decoration-color: transparent !important;
  123. text-align: center;
  124. @media(max-width: 999px) {
  125. font-size: 28px;
  126. height: 32px;
  127. }
  128. }
  129. }
  130. &.pictoHero {
  131. .picto-box {
  132. margin-top: -20px;
  133. .icon {
  134. @media(min-width: 568px) {
  135. width: 150px;
  136. height: 150px;
  137. }
  138. &:before {
  139. @media(min-width: 568px) {
  140. font-size: 150px;
  141. }
  142. }
  143. }
  144. }
  145. }
  146. .chart-title {
  147. @include h3;
  148. display: block;
  149. font-weight: 500 !important;
  150. padding: 30px;
  151. margin: 0 0 0.4em;
  152. color: var(--theme-color-background) !important;
  153. text-decoration-color: transparent !important;
  154. text-align: center;
  155. @media(max-width: 999px) {
  156. font-size: 28px;
  157. margin-bottom: 0;
  158. padding: 20px;
  159. }
  160. }
  161. .kicker + .text-box {
  162. margin-top: 0.1em;
  163. border-top: 8px solid var(--theme-color-secondary);
  164. }
  165. .text-box {
  166. position: relative;
  167. &:not(:last-child) {
  168. padding-bottom: 20px;
  169. > *:last-child {
  170. margin-bottom: 0;
  171. &::after {
  172. content: '';
  173. position: relative;
  174. float: right;
  175. height: 0.75em;
  176. display: inline-block;
  177. width: 150px;
  178. }
  179. }
  180. }
  181. }
  182. .title {
  183. text-decoration: underline;
  184. text-underline-offset: 0.07em;
  185. text-decoration-thickness: 0.08em;
  186. margin: 0.5em 0;
  187. }
  188. &:hover {
  189. .image-box::after {
  190. height: var(--border-width-hover);
  191. }
  192. .copyright {
  193. bottom: 14px;
  194. @media(max-width: 767px) {
  195. bottom: 10px;
  196. }
  197. }
  198. }
  199. }
  200. [date-type='hero'], .teaser.hero, .teaser.pictoHero {
  201. .image-box ~ .text-box {
  202. padding-top: 0.9em;
  203. .title {
  204. position: absolute;
  205. bottom: 100%;
  206. z-index: 1;
  207. background-color: var(--hero-background);
  208. margin-right: 40px;
  209. padding-top: 0.4em;
  210. padding-right: 0.8em;
  211. margin-bottom: -0.05em;
  212. }
  213. }
  214. }
  215. .col.extern, .col.download, .col.intranet, .col.extranet,
  216. .teaser.extern, .teaser.download, .teaser.intranet, .teaser.extranet {
  217. &:before {
  218. display: none;
  219. }
  220. .title:after {
  221. @include icon-small-stern;
  222. font-family: 'Icons', sans-serif;
  223. position: relative;
  224. font-size: var(--icon-size-small);
  225. line-height: 1;
  226. text-decoration: none;
  227. display: inline-block;
  228. vertical-align: top;
  229. margin-left: 0.2em;
  230. @media(min-width: 983px) {
  231. margin-top: 0.1rem;
  232. }
  233. @media(min-width: 1340px) {
  234. margin-top: 0.27rem;
  235. }
  236. }
  237. }
  238. .col.extern .title:after,
  239. .teaser.extern .title:after {
  240. @include icon-small-link-external;
  241. }
  242. .col.download .title:after,
  243. .teaser.download .title:after {
  244. @include icon-small-download;
  245. }
  246. .col.intranet .title:after,
  247. .teaser.intranet .title:after {
  248. @include icon-small-schloss;
  249. }
  250. @media(min-width: 568px) {
  251. [date-type='fullwidth'], .teaser.fullwidth, .teasers[data-items="1"] {
  252. display: block;
  253. &::after {
  254. content: '';
  255. display: block;
  256. clear: both;
  257. }
  258. .title {
  259. @include h4;
  260. margin-top: 0.25em;
  261. }
  262. .image-box {
  263. float: left;
  264. }
  265. .kicker, .text-box {
  266. float: right;
  267. }
  268. &[data-image-size='s'] {
  269. .image-box::before {
  270. padding-top: 100%;
  271. }
  272. }
  273. &[data-image-size='l'] {
  274. .image-box::before {
  275. padding-top: 55%;
  276. }
  277. }
  278. @media(max-width: 999px) {
  279. .kicker, .text-box, .image-box {
  280. width: calc(50% - var(--col-padding));
  281. @media(min-width: 568px) {
  282. max-width: calc(50% - var(--col-padding));
  283. min-width: calc(50% - var(--col-padding));
  284. }
  285. }
  286. }
  287. @media(min-width: 1000px) {
  288. &[data-image-size='s'] {
  289. .image-box {
  290. width: calc((100% + var(--col-padding) * 2) / 12 * 5 - var(--col-padding) * 2);
  291. }
  292. .kicker, .text-box {
  293. width: calc((100% + var(--col-padding) * 2) / 12 * 7 - var(--col-padding) * 2);
  294. }
  295. }
  296. &[data-image-size='m'] {
  297. .image-box, .kicker, .text-box {
  298. width: calc(50% - var(--col-padding));
  299. }
  300. }
  301. &[data-image-size='l'] {
  302. .image-box {
  303. width: calc((100% + var(--col-padding) * 2) * 2 / 3 - var(--col-padding) * 2);
  304. }
  305. .kicker, .text-box {
  306. width: calc((100% + var(--col-padding) * 2) / 3 - var(--col-padding) * 2);
  307. }
  308. }
  309. }
  310. }
  311. }
  312. [data-background='lightblue'] .teaser {
  313. --hero-background: var(--theme-color-primary-dimmed-04);
  314. .image-box {
  315. background-color: rgba(#fff, 0.4);
  316. }
  317. }