decidim-core 0.0.1.alpha2 → 0.0.1.alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -6
  3. data/app/assets/config/decidim_core_manifest.js +1 -0
  4. data/app/assets/images/decidim/badge-ajuntament-footer.png +0 -0
  5. data/app/assets/images/decidim/badge-ajuntament-header.svg +60 -0
  6. data/app/assets/images/decidim/cc-badge.png +0 -0
  7. data/app/assets/images/decidim/hero-home.jpg +0 -0
  8. data/app/assets/images/decidim/icons.svg +1 -0
  9. data/app/assets/javascripts/decidim.js +12 -1
  10. data/app/assets/stylesheets/{decidim.css → decidim.scss} +2 -1
  11. data/app/assets/stylesheets/decidim/application.sass +7 -0
  12. data/app/assets/stylesheets/decidim/layouts/_home.scss +244 -0
  13. data/app/assets/stylesheets/decidim/layouts/_user.scss +24 -0
  14. data/app/assets/stylesheets/decidim/layouts/_view.scss +22 -0
  15. data/app/assets/stylesheets/decidim/modules/_address.scss +26 -0
  16. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +119 -0
  17. data/app/assets/stylesheets/decidim/modules/_buttons.scss +120 -0
  18. data/app/assets/stylesheets/decidim/modules/_callout.scss +25 -0
  19. data/app/assets/stylesheets/decidim/modules/_card-grid.scss +22 -0
  20. data/app/assets/stylesheets/decidim/modules/_cards.scss +520 -0
  21. data/app/assets/stylesheets/decidim/modules/_comments.scss +119 -0
  22. data/app/assets/stylesheets/decidim/modules/_defintion-data.scss +54 -0
  23. data/app/assets/stylesheets/decidim/modules/_extra.scss +43 -0
  24. data/app/assets/stylesheets/decidim/modules/_filters.scss +96 -0
  25. data/app/assets/stylesheets/decidim/modules/_flag.scss +9 -0
  26. data/app/assets/stylesheets/decidim/modules/_footer.scss +90 -0
  27. data/app/assets/stylesheets/decidim/modules/_forms.scss +30 -0
  28. data/app/assets/stylesheets/decidim/modules/_help.scss +14 -0
  29. data/app/assets/stylesheets/decidim/modules/_icons.scss +32 -0
  30. data/app/assets/stylesheets/decidim/modules/_layout.scss +58 -0
  31. data/app/assets/stylesheets/decidim/modules/_list-docs.scss +30 -0
  32. data/app/assets/stylesheets/decidim/modules/_main-container.scss +70 -0
  33. data/app/assets/stylesheets/decidim/modules/_map.scss +72 -0
  34. data/app/assets/stylesheets/decidim/modules/_navbar.scss +258 -0
  35. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +30 -0
  36. data/app/assets/stylesheets/decidim/modules/_order-by.scss +66 -0
  37. data/app/assets/stylesheets/decidim/modules/_owl-carousel.scss +72 -0
  38. data/app/assets/stylesheets/decidim/modules/_phase-nav.scss +177 -0
  39. data/app/assets/stylesheets/decidim/modules/_popularity.scss +74 -0
  40. data/app/assets/stylesheets/decidim/modules/_process-header.scss +125 -0
  41. data/app/assets/stylesheets/decidim/modules/_process-info.scss +44 -0
  42. data/app/assets/stylesheets/decidim/modules/_process-nav.scss +99 -0
  43. data/app/assets/stylesheets/decidim/modules/_reference.scss +6 -0
  44. data/app/assets/stylesheets/decidim/modules/_reveal.scss +20 -0
  45. data/app/assets/stylesheets/decidim/modules/_share.scss +28 -0
  46. data/app/assets/stylesheets/decidim/modules/_signup.scss +39 -0
  47. data/app/assets/stylesheets/decidim/modules/_static-pages.scss +46 -0
  48. data/app/assets/stylesheets/decidim/modules/_status-labels.scss +14 -0
  49. data/app/assets/stylesheets/decidim/modules/_tags.scss +29 -0
  50. data/app/assets/stylesheets/decidim/modules/_timeline.scss +189 -0
  51. data/app/assets/stylesheets/decidim/modules/_title-action.scss +28 -0
  52. data/app/assets/stylesheets/decidim/modules/_typography.scss +116 -0
  53. data/app/assets/stylesheets/decidim/modules/_user-form.scss +14 -0
  54. data/app/assets/stylesheets/decidim/modules/_video.scss +18 -0
  55. data/app/assets/stylesheets/decidim/utils/_fontface.scss +1 -0
  56. data/app/assets/stylesheets/decidim/utils/_helpers.sass +21 -0
  57. data/app/assets/stylesheets/decidim/utils/_keyframes.sass +13 -0
  58. data/app/assets/stylesheets/decidim/utils/_mixins.sass +33 -0
  59. data/app/assets/stylesheets/decidim/utils/_settings.scss +570 -0
  60. data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +8 -0
  61. data/app/assets/stylesheets/decidim/utils/_variables.scss +25 -0
  62. data/app/controllers/concerns/decidim/needs_organization.rb +31 -0
  63. data/app/controllers/decidim/application_controller.rb +1 -0
  64. data/app/controllers/decidim/devise/confirmations_controller.rb +10 -0
  65. data/app/controllers/decidim/devise/invitations_controller.rb +20 -0
  66. data/app/controllers/decidim/devise/passwords_controller.rb +10 -0
  67. data/app/controllers/decidim/devise/registrations_controller.rb +19 -0
  68. data/app/controllers/decidim/devise/sessions_controller.rb +10 -0
  69. data/app/helpers/decidim/application_helper.rb +3 -0
  70. data/app/helpers/decidim/layout_helper.rb +27 -0
  71. data/app/helpers/decidim/translations_helper.rb +16 -0
  72. data/app/mailers/decidim/decidim_devise_mailer.rb +11 -0
  73. data/app/middleware/decidim/current_organization.rb +28 -0
  74. data/app/models/decidim/organization.rb +9 -0
  75. data/app/models/decidim/participatory_process.rb +14 -0
  76. data/app/models/decidim/user.rb +28 -4
  77. data/app/views/decidim/devise/confirmations/new.html.erb +15 -0
  78. data/app/views/decidim/devise/invitations/edit.html.erb +14 -0
  79. data/app/views/decidim/devise/passwords/edit.html.erb +20 -0
  80. data/app/views/decidim/devise/passwords/new.html.erb +15 -0
  81. data/app/views/decidim/devise/registrations/edit.html.erb +35 -0
  82. data/app/views/decidim/devise/registrations/new.html.erb +23 -0
  83. data/app/views/decidim/devise/sessions/new.html.erb +23 -0
  84. data/app/views/decidim/devise/shared/_links.html.erb +25 -0
  85. data/app/views/decidim/home/show.html.erb +16 -4
  86. data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
  87. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +10 -0
  88. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +11 -0
  89. data/app/views/devise/mailer/password_change.html.erb +3 -0
  90. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  91. data/app/views/layouts/decidim/_footer.html.erb +28 -2
  92. data/app/views/layouts/decidim/_header.html.erb +59 -2
  93. data/config/i18n-tasks.yml +120 -0
  94. data/config/initializers/devise.rb +58 -8
  95. data/config/locales/en.yml +35 -0
  96. data/config/routes.rb +12 -1
  97. data/db/migrate/20160919104837_create_decidim_organizations.rb +13 -0
  98. data/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +23 -0
  99. data/db/migrate/20160920141039_user_belongs_to_organization.rb +5 -0
  100. data/db/migrate/20160920141151_user_has_roles.rb +5 -0
  101. data/db/migrate/20161005130108_add_participatory_processes.rb +17 -0
  102. data/db/migrate/20161005153007_add_description_to_organizations.rb +9 -0
  103. data/db/migrate/20161006085629_add_confirmable_to_devise.rb +14 -0
  104. data/db/seeds.rb +35 -0
  105. data/lib/decidim/core.rb +0 -1
  106. data/lib/decidim/core/engine.rb +30 -0
  107. data/lib/decidim/core/version.rb +1 -1
  108. data/lib/decidim/devise_failure_app.rb +36 -0
  109. data/lib/decidim/form_builder.rb +38 -0
  110. data/lib/decidim/translatable_attributes.rb +86 -0
  111. data/lib/devise/models/decidim_validatable.rb +67 -0
  112. data/lib/tasks/factory_girl.rake +16 -0
  113. metadata +254 -9
  114. data/config/locales/devise.en.yml +0 -62
  115. data/lib/decidim/testing_support/common_rake.rb +0 -13
  116. data/lib/generators/decidim/dummy_generator.rb +0 -58
  117. data/lib/generators/decidim/install_generator.rb +0 -76
  118. data/lib/generators/decidim/templates/initializer.rb +0 -4
@@ -0,0 +1,30 @@
1
+ .opinion-toggle{
2
+ margin: 2rem 0;
3
+ }
4
+
5
+ .button-group .opinion-toggle--ok,
6
+ .button-group .opinion-toggle--ko{
7
+ @include breakpoint(small down){
8
+ margin-bottom: 2px;
9
+ }
10
+ }
11
+
12
+ .opinion-toggle--ok{
13
+ &:hover,
14
+ &.is-active{
15
+ background-color: $success;
16
+ }
17
+ .icon{
18
+ vertical-align: middle;
19
+ }
20
+ }
21
+
22
+ .opinion-toggle--ko{
23
+ &:hover,
24
+ &.is-active{
25
+ background-color: $alert;
26
+ }
27
+ .icon{
28
+ vertical-align: middle;
29
+ }
30
+ }
@@ -0,0 +1,66 @@
1
+ //Variables
2
+ $order-border: $border;
3
+
4
+ /*Order by styles*/
5
+ .order-by{
6
+ margin-bottom: 1rem;
7
+ display: flex;
8
+ align-items: baseline;
9
+ flex-wrap: wrap;
10
+ }
11
+
12
+ .order-by__dropdown{
13
+ display: flex;
14
+ flex-wrap: wrap;
15
+ .menu{
16
+ .is-dropdown-submenu-parent > a{
17
+ padding: 0;
18
+ margin-left: .5rem;
19
+ margin-top: .25rem;
20
+ }
21
+ }
22
+ }
23
+
24
+ .order-by__dropdown--right{
25
+ margin-left: auto;
26
+ }
27
+
28
+ .order-by__action{
29
+ margin-left: auto;
30
+ justify-content: flex-end;
31
+ .button{
32
+ margin-bottom: 0;
33
+ }
34
+ }
35
+
36
+ /*.order-by__text{
37
+ @include breakpoint(medium down){
38
+ font-size: 18px;
39
+ }
40
+ }*/
41
+
42
+ .order-by__tabs{
43
+ display: inline-block;
44
+ }
45
+
46
+ .order-by__tab{
47
+ color: $muted;
48
+ &:after{
49
+ content: "";
50
+ display: inline-block;
51
+ height: .75em;
52
+ border-left: $border;
53
+ margin: 0 .2em 0 .5em;
54
+ vertical-align: middle;
55
+ }
56
+ &.is-active{
57
+ color: $anchor-color;
58
+ }
59
+ &:first-of-type{
60
+ padding-left: 0;
61
+ }
62
+ &:last-of-type:after{
63
+ border-left: none;
64
+ }
65
+ }
66
+
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Core Owl Carousel CSS File
3
+ * v1.3.3
4
+ */
5
+
6
+ /* clearfix */
7
+ .owl-carousel .owl-wrapper:after {
8
+ content: ".";
9
+ display: block;
10
+ clear: both;
11
+ visibility: hidden;
12
+ line-height: 0;
13
+ height: 0;
14
+ }
15
+ /* display none until init */
16
+ .owl-carousel{
17
+ display: none;
18
+ position: relative;
19
+ width: 100%;
20
+ -ms-touch-action: pan-y;
21
+ }
22
+ .owl-carousel .owl-wrapper{
23
+ display: none;
24
+ position: relative;
25
+ -webkit-transform: translate3d(0px, 0px, 0px);
26
+ background: rgba($dark-gray, .9);
27
+ }
28
+ .owl-carousel .owl-wrapper-outer{
29
+ overflow: hidden;
30
+ position: relative;
31
+ width: 100%;
32
+ }
33
+ .owl-carousel .owl-wrapper-outer.autoHeight{
34
+ -webkit-transition: height 500ms ease-in-out;
35
+ -moz-transition: height 500ms ease-in-out;
36
+ -ms-transition: height 500ms ease-in-out;
37
+ -o-transition: height 500ms ease-in-out;
38
+ transition: height 500ms ease-in-out;
39
+ }
40
+
41
+ .owl-carousel .owl-item{
42
+ float: left;
43
+ }
44
+ .owl-controls .owl-page,
45
+ .owl-controls .owl-buttons div{
46
+ cursor: pointer;
47
+ }
48
+ .owl-controls {
49
+ -webkit-user-select: none;
50
+ -khtml-user-select: none;
51
+ -moz-user-select: none;
52
+ -ms-user-select: none;
53
+ user-select: none;
54
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
55
+ }
56
+
57
+ /* mouse grab icon */
58
+ .grabbing {
59
+ cursor:url(grabbing.png) 8 8, move;
60
+ }
61
+
62
+ /* fix */
63
+ .owl-carousel .owl-wrapper,
64
+ .owl-carousel .owl-item{
65
+ -webkit-backface-visibility: hidden;
66
+ -moz-backface-visibility: hidden;
67
+ -ms-backface-visibility: hidden;
68
+ -webkit-transform: translate3d(0,0,0);
69
+ -moz-transform: translate3d(0,0,0);
70
+ -ms-transform: translate3d(0,0,0);
71
+ }
72
+
@@ -0,0 +1,177 @@
1
+ /* Variables */
2
+
3
+ $arrow-width: 36px;
4
+
5
+ $active-border-height: 4px;
6
+ $active-triangle-height: 12px;
7
+
8
+
9
+ .phase-nav{
10
+ position: relative;
11
+ padding-right: $arrow-width !important;
12
+ padding-left: $arrow-width !important;
13
+ }
14
+
15
+ .phase-nav__wrapper{
16
+ display: flex;
17
+ overflow-y: scroll;
18
+ padding-bottom: $active-triangle-height + $active-border-height;
19
+ margin-bottom: -($active-triangle-height + $active-border-height);
20
+ &.owl-carousel{
21
+ overflow-y: hidden;
22
+ }
23
+ }
24
+
25
+ .phase-nav__item{
26
+ background: rgba($dark-gray, .9);
27
+ color: $white;
28
+ border-right: 1px solid rgba($white, .1);
29
+ min-height: 100%;
30
+ padding: 1rem 1.5rem .75rem .75rem;
31
+ flex-grow: 1;
32
+ flex-shrink: 0;
33
+ flex-basis: 250px;
34
+ display: flex;
35
+ align-items: center;
36
+ position: relative;
37
+ .owl-wrapper &{
38
+ background: none;
39
+ }
40
+
41
+ &:hover{
42
+ color: $primary;
43
+ }
44
+ &.is-active{
45
+ &:hover{
46
+ color: $white;
47
+ }
48
+ &:before,
49
+ &:after{
50
+ content: "";
51
+ display: block;
52
+ position: absolute;
53
+ }
54
+ &:before{
55
+ left: 0;
56
+ bottom: 0;
57
+ width: 100%;
58
+ height: $active-border-height;
59
+ background-color: $primary;
60
+ }
61
+ &:after{
62
+ left: 50%;
63
+ left: calc(50% - $active-border-height);
64
+ bottom: -$active-triangle-height;
65
+ width: 0;
66
+ height: 0;
67
+ border-left: 8px solid transparent;
68
+ border-right: 8px solid transparent;
69
+ border-top: $active-triangle-height solid $primary;
70
+ }
71
+ }
72
+ }
73
+
74
+ .phase-nav__number{
75
+ background-color: rgba($white, .9);
76
+ color: $dark-gray;
77
+ border-radius: 50%;
78
+ line-height: 1;
79
+ width: 2rem;
80
+ height: 2rem;
81
+ text-align: center;
82
+ font-weight: bold;
83
+ font-size: 1.3rem;
84
+ margin-top: -3px;
85
+ flex-shrink: 0;
86
+ display: flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+ .is-inactive & {
90
+ background-color: darken($muted, 20);
91
+ }
92
+ .is-active &{
93
+ background-color: $primary;
94
+ color: $white;
95
+ }
96
+ }
97
+
98
+ .phase-nav__info{
99
+ padding-left: .5em;
100
+ flex-grow: 1;
101
+ }
102
+
103
+ .phase-nav__title{
104
+ display: block;
105
+ font-weight: 600;
106
+ font-size: 1.1rem;
107
+ line-height: 1;
108
+ text-transform: uppercase;
109
+ .is-inactive & {
110
+ color: $muted;
111
+ }
112
+ }
113
+
114
+ .phase-nav__date{
115
+ color: $muted;
116
+ font-weight: 600;
117
+ font-size: 90%;
118
+ }
119
+
120
+ .next,
121
+ .prev{
122
+ display: none;
123
+ position: absolute;
124
+ top: 0;
125
+ left: 0;
126
+ z-index: 500;
127
+ background: rgba($dark-gray, .9);
128
+ height: 100%;
129
+ width: $arrow-width;
130
+ border-radius: 0;
131
+ border-right: 1px solid rgba($white, .1);
132
+ .icon{
133
+ fill: $white;
134
+ flex-shrink: 0;
135
+ width: 14px;
136
+ height: 14px;
137
+ margin: 0 12px;
138
+ }
139
+ &:hover{
140
+ .icon{
141
+ fill: $primary;
142
+ }
143
+ }
144
+ }
145
+
146
+ .next{
147
+ left: auto;
148
+ right: 1px;
149
+ border-right: 0;
150
+ border-left: 1px solid rgba($white, .1);
151
+ width: $arrow-width;
152
+ }
153
+
154
+ /* Carousel styles*/
155
+
156
+ .js .next,
157
+ .js .prev{
158
+ display: block;
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ }
163
+
164
+ .owl-wrapper{
165
+ display: flex !important;
166
+ }
167
+
168
+ .owl-item{
169
+ > div{
170
+ height: 100%;
171
+ }
172
+ }
173
+
174
+ .owl-wrapper-outer{
175
+ padding-bottom: $active-triangle-height + $active-border-height;
176
+ margin-bottom: -($active-triangle-height + $active-border-height);
177
+ }
@@ -0,0 +1,74 @@
1
+ $popularity1: #53c9c8;
2
+ $popularity2: #f9bc48;
3
+ $popularity3: #f85a39;
4
+
5
+ .popularity{
6
+ min-width: 100px;
7
+ margin-top: 5px;
8
+ @include clearfix;
9
+ &.extra__popularity{
10
+ margin-top: 1.5rem;
11
+ margin-bottom: 1.5rem;
12
+ }
13
+ }
14
+
15
+ .popularity__desc{
16
+ color: $muted;
17
+ text-transform: uppercase;
18
+ font-size: 90%;
19
+ padding-top: .3rem;
20
+ display: block;
21
+ clear: both;
22
+ }
23
+
24
+ .popularity__item{
25
+ float: left;
26
+ width: 18.4%;
27
+ height: 4px;
28
+ background-color: lightgrey;
29
+ margin-left: 2%;
30
+ &:first-of-type{
31
+ margin-left: 0;
32
+ }
33
+ }
34
+
35
+ .popularity__item:first-of-type{
36
+ .popularity--level1 &,
37
+ .popularity--level2 &,
38
+ .popularity--level3 &,
39
+ .popularity--level4 &,
40
+ .popularity--level5 &,
41
+ .popularity--level6 &{
42
+ background: $popularity1;
43
+ }
44
+ }
45
+ .popularity__item:nth-of-type(2){
46
+ .popularity--level2 &,
47
+ .popularity--level3 &,
48
+ .popularity--level4 &,
49
+ .popularity--level5 &,
50
+ .popularity--level6 &{
51
+ background: linear-gradient(to right, $popularity1, $popularity2);
52
+ }
53
+ }
54
+ .popularity__item:nth-of-type(3){
55
+ .popularity--level3 &,
56
+ .popularity--level4 &,
57
+ .popularity--level5 &,
58
+ .popularity--level6 &{
59
+ background: $popularity2;
60
+ }
61
+ }
62
+ .popularity__item:nth-of-type(4){
63
+ .popularity--level4 &,
64
+ .popularity--level5 &,
65
+ .popularity--level6 &{
66
+ background: linear-gradient(to right, $popularity2 50%, $popularity3);
67
+ }
68
+ }
69
+ .popularity__item:nth-of-type(5){
70
+ .popularity--level5 &,
71
+ .popularity--level6 &{
72
+ background: $popularity3;
73
+ }
74
+ }
@@ -0,0 +1,125 @@
1
+ .process-header{
2
+ margin-bottom: 3rem;
3
+ .heading2{
4
+ font-weight: bold;
5
+ }
6
+ }
7
+
8
+ .process-header__main{
9
+ background-size: cover;
10
+ position: relative;
11
+ z-index: 0;
12
+ display: flex;
13
+ flex-direction: column;
14
+ &:after{
15
+ content: "";
16
+ display: block;
17
+ position: absolute;
18
+ z-index: -1;
19
+ top: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ background-color: rgba($black, .6);
23
+ }
24
+ }
25
+
26
+ .process-header__container{
27
+ position: relative;
28
+ z-index: 1;
29
+ padding: 2rem 1.5rem 1rem;
30
+ @include breakpoint(mediumlarge){
31
+ display: flex;
32
+ align-items: center;
33
+ }
34
+ }
35
+
36
+ .process-header__hashtag{
37
+ font-weight: 600;
38
+ &:after{
39
+ content: "·";
40
+ margin-left: .5rem;
41
+ margin-right: .5rem;
42
+ }
43
+ }
44
+
45
+ .process-header__actions{
46
+ @include breakpoint(medium down){
47
+ margin-top: 1rem;
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ }
51
+ @include breakpoint(mediumlarge){
52
+ text-align: right;
53
+ }
54
+ }
55
+
56
+ .process-header__action{
57
+ display: inline-block;
58
+ //background: rgba($white, .6);
59
+ margin-bottom: 8px;
60
+ line-height: 1;
61
+ color: white;
62
+ font-weight: 600;
63
+ display: inline-flex;
64
+ border: 1px solid rgba($white,.8);
65
+ @include breakpoint(medium down){
66
+ margin-right: 1rem;
67
+ }
68
+ .action-title{
69
+ padding: .25rem 0 .25rem .5rem;
70
+ }
71
+ .action-icon{
72
+ background-color: rgba($white, .6);
73
+ fill: $body-font-color;
74
+ margin-left: .5rem;
75
+ display: flex;
76
+ align-items: center;
77
+ padding: 0 .25rem;
78
+ }
79
+ .icon{
80
+ width: 14px;
81
+ height: 14px;
82
+ }
83
+ &:hover{
84
+ color: white;
85
+ border-color: $primary;
86
+ .action-icon{
87
+ background-color: $primary;
88
+ }
89
+ .icon{
90
+ fill: $white;
91
+ }
92
+ }
93
+ }
94
+
95
+ .process-header__nav{
96
+ margin-top: auto;
97
+ z-index: 1;
98
+ }
99
+
100
+ // Process header home
101
+
102
+ .process-header--home{
103
+ .process-header__container{
104
+ padding-top: 0;
105
+ padding-bottom: 0;
106
+ @include breakpoint(mediumlarge){
107
+ padding: 0 3rem;
108
+ }
109
+ }
110
+ .process-header__main{
111
+ padding-top: 3rem;
112
+ padding-bottom: 3rem;
113
+ }
114
+ }
115
+
116
+ .process-header--home__cta{
117
+ position: relative;
118
+ z-index: 1;
119
+ text-align: center;
120
+ margin-top: 3rem;
121
+ .button{
122
+ margin-bottom: 0;
123
+ }
124
+
125
+ }