jekyll-theme-isotc154 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ ---
2
+ # NOTE: Pages using this layout, or inheriting layouts,
3
+ # must specify frontmatter variables:
4
+ # - event_id, matching the ID of appropriate event under _data/events
5
+ # - permalink, full page path including appropriate event ID
6
+
7
+ layout: default
8
+
9
+ extra_scripts:
10
+ - src: /assets/vendor/openlayers/ol.js
11
+ - src: "https://unpkg.com/popper.js@1"
12
+ - src: "https://unpkg.com/tippy.js@5"
13
+ - src: /assets/js/event_map.js
14
+
15
+ extra_stylesheets:
16
+ - href: /assets/vendor/openlayers/ol.css
17
+ ---
18
+
19
+ {{ content }}
@@ -0,0 +1,64 @@
1
+ ---
2
+ layout: event_base
3
+ ---
4
+
5
+ {% assign event = site.data.events[page.event_id] %}
6
+
7
+ {% comment %}
8
+ Sort out whether the event is past or future relative to now.
9
+ Assumes that site is rebuilt with CDN cache reset,
10
+ and that rebuilds will be triggered around event start and end dates.
11
+ {% endcomment %}
12
+ {% assign now_unix = 'now' | date: '%s' %}
13
+ {% assign event_start_unix = event.time.from.date | date: '%s' %}
14
+ {% assign event_finish_unix = event.time.to.date | date: '%s' %}
15
+
16
+ {% if now_unix > event_start_unix %}
17
+ {% assign started = true %}
18
+ {% else %}
19
+ {% assign started = false %}
20
+ {% endif %}
21
+
22
+ {% if now_unix > event_finish_unix %}
23
+ {% assign finished = true %}
24
+ {% else %}
25
+ {% assign finished = false %}
26
+ {% endif %}
27
+
28
+ {% comment %}Main event layout.{% endcomment %}
29
+
30
+ <main class="{% if started %}event-started{% endif %} {% if finished %}event-finished{% endif %}">
31
+ <header>
32
+ <h2 class="entity"><span class="type">Event</span></h2>
33
+ <h1 class="headline">{{ event.title }}</h1>
34
+ </header>
35
+
36
+ <section class="meta">
37
+ <div class="time">
38
+ <i class="fas fa-calendar icon"></i>
39
+ {% unless finished %}
40
+ {%- include date_with_precision.html date=event.time.from default_precision="day" -%}
41
+
42
+ {%- include date_with_precision.html date=event.time.to default_precision="day" -%}
43
+ {% else %}
44
+ Ended on {% include date_with_precision.html date=event.time.to default_precision="day" %}
45
+ {% endunless %}
46
+ </div>
47
+ <div class="place">
48
+ <i class="fas fa-map-marker icon"></i>
49
+ {{ event.general_area }}
50
+ </div>
51
+ </section>
52
+
53
+ <section class="intro">
54
+ {{ event.intro | asciidocify }}
55
+ </section>
56
+
57
+ {% assign top_groups = event.primary_nav.items | slice: 0, 2 %}
58
+ <div class="main-nav">
59
+ {% include event_nav.html show_detail=true item_data=event.nav items=top_groups %}
60
+ </div>
61
+
62
+ {{ content }}
63
+
64
+ </main>
@@ -0,0 +1,80 @@
1
+ ---
2
+ layout: event_base
3
+ html_class: event-subpage
4
+ ---
5
+
6
+ {% assign event = site.data.events[page.event_id] %}
7
+
8
+
9
+ {% comment %}
10
+ Sort out whether the event is past or future relative to now.
11
+ Assumes that site is rebuilt with CDN cache reset,
12
+ and that rebuilds will be triggered around event start and end dates.
13
+ {% endcomment %}
14
+
15
+ {% assign now_unix = 'now' | date: '%s' %}
16
+ {% assign event_start_unix = event.time.from.date | date: '%s' %}
17
+ {% assign event_finish_unix = event.time.to.date | date: '%s' %}
18
+
19
+ {% if now_unix > event_start_unix %}
20
+ {% assign started = true %}
21
+ {% else %}
22
+ {% assign started = false %}
23
+ {% endif %}
24
+
25
+ {% if now_unix > event_finish_unix %}
26
+ {% assign finished = true %}
27
+ {% else %}
28
+ {% assign finished = false %}
29
+ {% endif %}
30
+
31
+
32
+ {% comment %}Main event layout.{% endcomment %}
33
+
34
+ <main class="{% if started %}event-started{% endif %} {% if finished %}event-finished{% endif %}">
35
+ <header>
36
+ <h2 class="entity">
37
+ <a class="name" href="{{ event.landing_url }}">{{ event.title }}</a>
38
+ <span class="type">Event</span>
39
+ <span class="meta time">
40
+ <i class="fas fa-calendar icon"></i>
41
+ {% unless finished %}
42
+ {%- include date_with_precision.html date=event.time.from default_precision="day" -%}
43
+
44
+ {%- include date_with_precision.html date=event.time.to default_precision="day" -%}
45
+ {% else %}
46
+ Ended on {% include date_with_precision.html date=event.time.to default_precision="day" %}
47
+ {% endunless %}
48
+ </span>
49
+ <span class="meta place">
50
+ <i class="fas fa-map-marker icon"></i>
51
+ {{ event.general_area }}
52
+ </span>
53
+ </h2>
54
+ <h1 class="headline">{{ page.title }}</h1>
55
+ </header>
56
+
57
+ <div class="page-body">
58
+ <div class="page-content">
59
+ {{ content }}
60
+ </div>
61
+
62
+ <div class="page-toc">
63
+ <h2 class="page-toc-title">Event navigation</h2>
64
+ {% include event_nav.html show_detail=false item_data=event.nav items=event.primary_nav.items %}
65
+ </div>
66
+ </div>
67
+ </main>
68
+
69
+ {% assign map = page.map | default: layout.map %}
70
+ {% if map %}
71
+ <div class="map"
72
+ data-map-container
73
+ data-map-id="{{ map.id }}"
74
+ data-map-center='{
75
+ "lon": {{ map.center.lon | default: event.map_defaults.center.lon }},
76
+ "lat": {{ map.center.lat | default: event.map_defaults.center.lat }},
77
+ "zoom": {{ map.zoom | default: event.map_defaults.zoom }}
78
+ }'>
79
+ </div>
80
+ {% endif %}
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <main>
6
+ <h1>{{ page.title }}</h1>
7
+ {{ content }}
8
+ </main>
@@ -0,0 +1,216 @@
1
+ // Asciidoctor-generated markup
2
+ // ============================
3
+
4
+ @mixin padded-code-snippet() {
5
+ padding: 0 .75em;
6
+ margin: 0 .2em;
7
+ background: $codeListingBackgroundColor;
8
+
9
+ border: 1px dashed $codeListingBorderColor;
10
+ border-radius: .25em;
11
+
12
+ font-size: 15px;
13
+ }
14
+
15
+ @mixin padded-code-snippet--reset() {
16
+ padding: 0;
17
+ margin: 0;
18
+ background: transparent;
19
+ border: 0;
20
+ border-radius: 0;
21
+ }
22
+
23
+ @mixin code-snippet-container() {
24
+ overflow-x: scroll;
25
+ overflow-y: hidden;
26
+ line-height: 1.2;
27
+
28
+ @include padded-code-snippet();
29
+ padding-top: .5em;
30
+ padding-bottom: .5em;
31
+
32
+ border-width: 0 0 0 1px;
33
+ border-radius: 0 .25em .25em 0;
34
+
35
+ margin-top: 1em;
36
+ margin-bottom: 1em;
37
+
38
+ margin-left: -.1em;
39
+
40
+ > code {
41
+ // Avoid bad formatting in case of <code> element nested
42
+ // inside a <pre>
43
+ @include padded-code-snippet--reset();
44
+ }
45
+ }
46
+
47
+ @mixin code-snippet() {
48
+ color: lighten($textColor, 24);
49
+
50
+ @include padded-code-snippet();
51
+ margin-top: -1px;
52
+ margin-bottom: -1px;
53
+
54
+ code {
55
+ // Avoid bad formatting in case of <code> elements nested
56
+ // into each other (possible with adoc output)
57
+ @include padded-code-snippet--reset();
58
+ }
59
+ }
60
+
61
+ @mixin asciidoc-markup() {
62
+
63
+ .paragraph + .paragraph {
64
+ p {
65
+ text-indent: 1rem;
66
+ }
67
+ }
68
+ p, .paragraph p {
69
+ margin: 0;
70
+ text-indent: 0;
71
+ }
72
+
73
+ ol, ul {
74
+ margin: 0;
75
+
76
+ li {
77
+ break-inside: avoid;
78
+ -webkit-column-break-inside: avoid;
79
+ -moz-column-break-inside: avoid;
80
+ column-break-inside: avoid;
81
+ break-inside: avoid-column;
82
+ }
83
+ }
84
+
85
+ // Code listing
86
+
87
+ .paragraph code {
88
+ word-break: break-word;
89
+ }
90
+ code {
91
+ @include code-snippet();
92
+ }
93
+ pre {
94
+ @include code-snippet-container();
95
+ }
96
+
97
+ // Generic block title
98
+
99
+ .admonitionblock,
100
+ .listingblock,
101
+ .imageblock {
102
+ .title {
103
+ text-transform: uppercase;
104
+ font-size: 12px;
105
+ border-radius: .25em;
106
+ background-color: $textColor;
107
+ color: white;
108
+ font-weight: bold;
109
+ padding: .3em .6em .25em .6em;
110
+ }
111
+ }
112
+
113
+ // Specific blocks
114
+
115
+ .admonitionblock,
116
+ .listingblock {
117
+ margin-top: 1em;
118
+ margin-bottom: 1em;
119
+ }
120
+
121
+ .admonitionblock.warning {
122
+ td.icon .title {
123
+ background-color: $warningColor;
124
+ }
125
+ }
126
+ .admonitionblock.important {
127
+ td.icon .title {
128
+ background-color: $importantColor;
129
+ }
130
+ }
131
+
132
+ .imageblock {
133
+ .title {
134
+ background-color: $accentColor;
135
+ color: white;
136
+ }
137
+ }
138
+
139
+ .listingblock {
140
+ display: flex;
141
+ flex-flow: column nowrap;
142
+
143
+ .title {
144
+ align-self: flex-start;
145
+ background-color: $codeListingBorderColor;
146
+ color: white;
147
+ border-radius: 0;
148
+ }
149
+
150
+ .content {
151
+ align-self: stretch;
152
+
153
+ pre {
154
+ margin: 0;
155
+ }
156
+ }
157
+ }
158
+
159
+ .admonitionblock {
160
+ table:first-child {
161
+ margin-top: 0;
162
+ }
163
+ table:last-child {
164
+ margin-bottom: 0;
165
+ }
166
+
167
+ td.icon {
168
+ vertical-align: top;
169
+ padding-left: 0;
170
+ padding-right: 1em;
171
+ font-size: 90%;
172
+ }
173
+
174
+ .title {
175
+ background-color: $linkColor;
176
+ color: white;
177
+ }
178
+
179
+ .content {
180
+ font-size: 90%;
181
+
182
+ .title {
183
+ background: transparent;
184
+ color: $textColor;
185
+ padding-left: 0;
186
+ }
187
+
188
+ .listingblock pre {
189
+ font-size: 100%;
190
+ }
191
+
192
+ > div:first-child {
193
+ > :first-child {
194
+ margin-top: 0;
195
+ }
196
+ }
197
+ > div:last-child {
198
+ > :last-child {
199
+ margin-bottom: 0;
200
+ }
201
+ &.ulist {
202
+ ul {
203
+ padding-left: 1.25em;
204
+ }
205
+
206
+ li:first-child > :first-child {
207
+ margin-top: 0;
208
+ }
209
+ li:last-child > :last-child {
210
+ margin-bottom: 0;
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
@@ -0,0 +1,562 @@
1
+ @mixin major-section-title {
2
+ text-transform: uppercase;
3
+ letter-spacing: .05em;
4
+ color: lighten($textColor, 50);
5
+ }
6
+
7
+ /* Maps and markers. Potentially not events-specific. */
8
+
9
+ [data-map-marker] {
10
+ .map-marker-reference {
11
+ display: inline-block;
12
+ text-align: center;
13
+ overflow: hidden;
14
+ background: $primaryColor;
15
+ color: white;
16
+ padding: 0 .25em;
17
+ font-size: 80%;
18
+ margin: 0 .25rem;
19
+ vertical-align: middle;
20
+ opacity: .5;
21
+
22
+ // It’s interactive.
23
+ cursor: pointer;
24
+ }
25
+ &.map-marker-selected {
26
+ .map-marker-reference {
27
+ opacity: 1;
28
+ }
29
+ }
30
+ }
31
+
32
+ body.layout--home {
33
+ section.events {
34
+ margin-top: -3rem;
35
+
36
+ article.event {
37
+ box-sizing: border-box;
38
+ margin: 0 -2rem 1rem -2rem;
39
+ background: $lightBackgroundColor;
40
+ padding: .5rem 0;
41
+
42
+ @media screen and (min-width: $bigscreenBreakpoint) {
43
+ padding: 0;
44
+ display: flex;
45
+ flex-flow: row nowrap;
46
+ margin: 0 0 1rem -1.2rem;
47
+ }
48
+
49
+ > .summary, > .mini-map {
50
+ flex-basis: 50%;
51
+ box-sizing: border-box;
52
+ }
53
+
54
+ .summary {
55
+ margin: 0 1rem 0 1.5rem;
56
+ }
57
+
58
+ header {
59
+ .meta {
60
+ .time {
61
+ .separator {
62
+ opacity: .5;
63
+ }
64
+ }
65
+ > * {
66
+ margin-right: 1em;
67
+ white-space: nowrap;
68
+
69
+ .icon {
70
+ width: 1em;
71
+ margin-right: .25em;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ body.event-subpage, body.layout--event_landing {
81
+ background: $lightBackgroundColor;
82
+
83
+ > footer {
84
+ margin-top: 1rem;
85
+ }
86
+
87
+ > main > header {
88
+ margin-bottom: 1rem;
89
+
90
+ h1.headline {
91
+ font-weight: normal;
92
+ margin-top: .6em;
93
+ line-height: 1.2;
94
+ }
95
+
96
+ @media screen and (min-width: $bigscreenBreakpoint) {
97
+ margin-bottom: 2rem;
98
+
99
+ h1.headline {
100
+ margin-top: .5rem;
101
+ font-size: 280%;
102
+ }
103
+ }
104
+ }
105
+
106
+ main > .meta, main > header .entity .meta {
107
+ .time .separator {
108
+ opacity: .5;
109
+ margin: 0 .05rem;
110
+ }
111
+ }
112
+
113
+ ul[role=nav] {
114
+ li.item-missing-page {
115
+ opacity: .5;
116
+ }
117
+ }
118
+ }
119
+
120
+ .page-content {
121
+ .accommodation-option, .sect1 {
122
+ margin-right: -2rem;
123
+ margin-left: -2rem;
124
+
125
+ @media screen and (min-width: $bigscreenBreakpoint) {
126
+ margin-right: 0;
127
+ margin-left: 0;
128
+ }
129
+ }
130
+ }
131
+
132
+
133
+ body.layout--event_landing {
134
+ > main {
135
+ display: flex;
136
+ flex-flow: column nowrap;
137
+ position: relative;
138
+
139
+ > header {
140
+ margin-bottom: 0;
141
+ }
142
+
143
+ > .meta {
144
+ margin-bottom: 2rem;
145
+ font-size: 120%;
146
+
147
+ display: flex;
148
+ flex-flow: row wrap;
149
+
150
+ > * {
151
+ margin-right: 1rem;
152
+ }
153
+ }
154
+
155
+ > .intro {
156
+ font-size: 120%;
157
+ margin-top: -2rem; // Compensates for meta’s bottom margin.
158
+ margin-bottom: 2rem;
159
+ }
160
+ }
161
+
162
+ > main.event-started {
163
+ .main-nav > ul {
164
+ // For started events, reverse sections
165
+ flex-flow: column-reverse nowrap;
166
+
167
+ @media screen and (min-width: $bigscreenBreakpoint) {
168
+ // Negate the above to avoid clash below.
169
+ flex-flow: row nowrap;
170
+ }
171
+ }
172
+ }
173
+
174
+ .main-nav {
175
+ ul, li {
176
+ list-style: none;
177
+ margin: 0;
178
+ padding: 0;
179
+ }
180
+
181
+ > ul {
182
+ display: flex;
183
+ flex-flow: column nowrap;
184
+
185
+ @media screen and (min-width: $bigscreenBreakpoint) {
186
+ flex-flow: row nowrap;
187
+ align-items: stretch;
188
+ }
189
+ }
190
+
191
+ > ul > li {
192
+ $borderRadius: 1rem;
193
+ $itemGapBase: $borderRadius;
194
+
195
+ flex: 1;
196
+ margin-top: 1rem;
197
+
198
+ display: flex;
199
+ flex-flow: column nowrap;
200
+
201
+ > .title {
202
+ @include major-section-title;
203
+ }
204
+
205
+ @media screen and (min-width: $bigscreenBreakpoint) {
206
+ width: $bigscreenBreakpoint - 100px;
207
+ margin: 0 auto;
208
+ }
209
+
210
+ a, li.with-url .icon {
211
+ color: $linkColor;
212
+ }
213
+
214
+ span {
215
+ color: lighten($textColor, 0.5);
216
+ }
217
+
218
+ > ul {
219
+ flex: 1;
220
+
221
+ display: flex;
222
+ flex-flow: column nowrap;
223
+
224
+ > li {
225
+ @include nmCard($bg: white);
226
+
227
+ flex: 1;
228
+ flex-basis: 50%;
229
+ box-sizing: border-box;
230
+ padding: .75rem 1rem;
231
+ margin: #{$itemGapBase * 0.5} #{$itemGapBase * 1.5} #{$itemGapBase * 0.5} -#{$itemGapBase * 0.5};
232
+
233
+ position: relative;
234
+ text-shadow: 0 0 5px white;
235
+ border-radius: $borderRadius;
236
+
237
+ display: flex;
238
+ flex-flow: column nowrap;
239
+ align-items: stretch;
240
+
241
+ > .title {
242
+ flex: 1;
243
+ margin-bottom: .5rem;
244
+
245
+ .icon {
246
+ width: 1.75em;
247
+ text-align: right;
248
+ margin-right: .5rem;
249
+ }
250
+ }
251
+
252
+ > .detail-text {
253
+ p:first-child {
254
+ margin: 0;
255
+ }
256
+ p:not(:first-child) {
257
+ display: none;
258
+ }
259
+ }
260
+
261
+ &.nav-item-arrival {
262
+ > .detail-include {
263
+ .mini-map {
264
+ filter: grayscale(1) contrast(0.3) brightness(1.5);
265
+ position: absolute;
266
+ top: 0;
267
+ right: 0;
268
+ bottom: 0;
269
+ left: 0;
270
+ z-index: -1;
271
+ overflow: hidden;
272
+ border-radius: $borderRadius;
273
+ }
274
+ }
275
+ }
276
+
277
+ > a, > span, > .icon {
278
+ font-size: 140%;
279
+ font-weight: bold;
280
+ }
281
+
282
+ > ul {
283
+ display: flex;
284
+ flex-flow: row nowrap;
285
+ overflow-x: auto;
286
+
287
+ > li {
288
+ margin-right: 1rem;
289
+ white-space: nowrap;
290
+
291
+ &:last-child {
292
+ margin-right: 0;
293
+ }
294
+ }
295
+ }
296
+ }
297
+ }
298
+ }
299
+ }
300
+ }
301
+
302
+
303
+ body.event-subpage {
304
+ ul[role=nav] {
305
+ li.item-missing-page {
306
+ .title:after {
307
+ content: "(TBA)";
308
+ margin-left: .25rem;
309
+ font-size: 80%;
310
+ }
311
+ }
312
+ }
313
+
314
+ > .map {
315
+ margin-top: 2rem;
316
+ height: 22rem;
317
+ width: 100%;
318
+
319
+ &.map-focused {
320
+ box-shadow: rgba(black, 0.2) 0 0 2rem;
321
+ background: white;
322
+ position: fixed;
323
+ margin-top: 0;
324
+ height: 38vh;
325
+ bottom: 0;
326
+ z-index: 4;
327
+ }
328
+ }
329
+ &.map-focused {
330
+ padding-bottom: 38vh;
331
+ }
332
+
333
+ .page-body {
334
+ .page-content {
335
+ @include asciidoc-markup();
336
+
337
+ h2 {
338
+ font-size: 120%;
339
+ font-weight: bold;
340
+ }
341
+ h3 {
342
+ font-size: 110%;
343
+ text-transform: uppercase;
344
+ font-weight: normal;
345
+ }
346
+
347
+ > div.sect1 {
348
+ padding: .75rem 1rem;
349
+ background: white;
350
+ margin-bottom: 1rem;
351
+
352
+ > h2 {
353
+ margin-top: 0;
354
+ }
355
+ }
356
+ }
357
+ .page-toc {
358
+ h2 {
359
+ font-size: 100%;
360
+ }
361
+
362
+ &.summoned {
363
+ // This class can be toggled when in narrow viewport only
364
+ position: fixed;
365
+ top: 0;
366
+ left: 0;
367
+ right: 0;
368
+ padding: 0 2rem;
369
+ background: $lightBackgroundColor;
370
+ }
371
+
372
+ // Menus
373
+ ul, li {
374
+ list-style: none;
375
+ margin: 0;
376
+ padding: 0;
377
+ }
378
+ li.selected span {
379
+ font-weight: bold;
380
+
381
+ &:after {
382
+ content: "←";
383
+ vertical-align: text-bottom;
384
+ color: lighten($textColor, 40);
385
+ font-size: 80%;
386
+ }
387
+ }
388
+ > ul {
389
+ > li {
390
+ margin-bottom: .5rem;
391
+ > .title {
392
+ @include major-section-title;
393
+ }
394
+ > ul {
395
+ padding: .5rem .75rem .5rem .5rem;
396
+ margin-bottom: 1rem;
397
+ margin-left: -.2rem;
398
+
399
+ > li {
400
+ > .title {
401
+ font-size: 120%;
402
+ .icon {
403
+ width: 1.5rem;
404
+ margin-right: .5rem;
405
+ text-align: right;
406
+ overflow: hidden;
407
+ }
408
+ }
409
+ > ul {
410
+ margin-left: 2rem;
411
+ }
412
+ }
413
+ }
414
+ }
415
+ }
416
+ }
417
+
418
+ @media screen and (min-width: $bigscreenBreakpoint) {
419
+ display: flex;
420
+ flex-flow: row-reverse nowrap;
421
+
422
+ .page-toc {
423
+ > .page-toc-title {
424
+ display: none;
425
+ }
426
+ margin-right: 2rem;
427
+ }
428
+ .page-content {
429
+ flex: 1;
430
+ }
431
+ }
432
+ }
433
+
434
+ div.place-list {
435
+ > ul {
436
+ padding: 0 0 0 1rem;
437
+
438
+ > li {
439
+ margin-bottom: 1rem;
440
+ list-style: square;
441
+
442
+ > p:first-child {
443
+ margin-bottom: .5rem;
444
+ }
445
+
446
+ font-size: 80%;
447
+
448
+ .title {
449
+ font-size: 130%;
450
+ font-weight: normal;
451
+ }
452
+
453
+ .quoteblock {
454
+ padding: 0 .5rem .5rem 1rem;
455
+ margin: 0 .5rem .5rem 0;
456
+ position: relative;
457
+
458
+ blockquote {
459
+ margin-left: 1rem;
460
+
461
+ &:before {
462
+ content: "“";
463
+ z-index: -1;
464
+ position: absolute;
465
+ top: 0;
466
+ left: 0;
467
+ transform: translateX(-10%) translateY(-10%);
468
+ color: $lightBackgroundColor;
469
+ font-size: 10em;
470
+ line-height: 1;
471
+ }
472
+ }
473
+ }
474
+ }
475
+ }
476
+ }
477
+ }
478
+
479
+ body.layout--event_accommodation, body.layout--event_places {
480
+ .accommodation-option-list {
481
+ .accommodation-option {
482
+ box-sizing: border-box;
483
+ margin-bottom: 1rem;
484
+ position: relative;
485
+ background: white;
486
+
487
+ > * {
488
+ margin-left: 1rem;
489
+ margin-right: 1rem;
490
+ }
491
+
492
+ > header {
493
+ padding-top: .75rem;
494
+ margin-bottom: .5rem;
495
+
496
+ .title {
497
+ margin: 0;
498
+ margin-right: 1rem;
499
+ }
500
+ .address {
501
+ font-size: 80%;
502
+ }
503
+ .feature {
504
+ position: absolute;
505
+ top: 0;
506
+ right: 2rem;
507
+ transform-origin: center center;
508
+ transform: translateY(-100%);
509
+
510
+ @media screen and (min-width: $bigscreenBreakpoint) {
511
+ right: auto;
512
+ left: 0;
513
+ transform: translateX(-50%) translateY(-50%) rotate(-90deg) translateY(-50%) translateX(-50%);
514
+ border-radius: .5em .5em 0 0;
515
+ }
516
+
517
+ white-space: nowrap;
518
+ font-size: 70%;
519
+ text-transform: uppercase;
520
+ letter-spacing: .07em;
521
+ padding: .2em .5em .1em .5em;
522
+ background: $primaryColor;
523
+ color: white;
524
+ }
525
+ }
526
+ > footer.actions {
527
+ margin-left: 0;
528
+ margin-right: 0;
529
+ margin-top: 1rem;
530
+ display: flex;
531
+ flex-flow: row nowrap;
532
+ overflow: hidden;
533
+
534
+ .action {
535
+ flex: 1;
536
+ overflow: hidden;
537
+ text-overflow: ellipsis;
538
+ padding-left: .75rem;
539
+ padding-right: .75rem;
540
+ padding-top: .25rem;
541
+ padding-bottom: .25rem;
542
+ background: $primaryColor;
543
+ color: white;
544
+ font-weight: bold;
545
+
546
+ a {
547
+ &, &:link, &:hover, &:visited {
548
+ color: inherit;
549
+ }
550
+ }
551
+
552
+ &.disabled {
553
+ background: lighten($textColor, 40);
554
+ &.with-description {
555
+ cursor: help;
556
+ }
557
+ }
558
+ }
559
+ }
560
+ }
561
+ }
562
+ }