diff --git a/assets/sass/_theme/_configuration.sass b/assets/sass/_theme/_configuration.sass
index 4cee973588942fef4a8cdf79bf0060813608deba..b94b3c288593e81971eee821ca6fe63327c0e41c 100644
--- a/assets/sass/_theme/_configuration.sass
+++ b/assets/sass/_theme/_configuration.sass
@@ -125,7 +125,6 @@ $btn-padding-x: px2rem(20) !default
 $btn-padding-y: px2rem(13) !default
 $btn-border-radius: px2rem(4) !default
 
-
 // Spacing
 $spacing0: px2rem(12) !default
 $spacing1: px2rem(24) !default
@@ -135,7 +134,10 @@ $spacing4: px2rem(128) !default
 $spacing5: px2rem(256) !default
 $spacing-section-y: px2rem(36) !default
 
-// TODO: choisir entre margin top / bottom --> https://matthewjamestaylor.com/css-margin-top-vs-bottom
+// Form
+$form-btn-color: $color-background !default
+$form-btn-background-color: $color-accent !default
+$form-input-border-radius: 4px !default
 
 // Grid
 $grid-gutter: px2rem(64) !default
@@ -151,7 +153,7 @@ $zindex-toc: 60 !default
 $zindex-toc-cta: 49 !default
 $zindex-modal: 72 !default
 $zindex-aside: 48 !default
-$zindex-footer: 70 !default
+$zindex-footer: 50 !default
 
 // Header
 $header-color: $color-text !default
@@ -199,34 +201,35 @@ $breadcrumb-icon-color: $color-text-alt !default
 
 // Icons
 $icons: ()
-$icons: map-merge($icons, ("toc": "\e918"))
-$icons: map-merge($icons, ("search": "\e916"))
-$icons: map-merge($icons, ("play": "\e910"))
-$icons: map-merge($icons, ("pause": "\e90f"))
-$icons: map-merge($icons, ("eye": "\e901"))
-$icons: map-merge($icons, ("download": "\e900"))
-$icons: map-merge($icons, ("close": "\e90e"))
-$icons: map-merge($icons, ("burger": "\e902"))
-$icons: map-merge($icons, ("burger-close": "\e905"))
+$icons: map-merge($icons, ("arrow": "\ff01"))
+$icons: map-merge($icons, ("arrow-first": "\e906"))
+$icons: map-merge($icons, ("arrow-last": "\e907"))
+$icons: map-merge($icons, ("arrow-left": "\ff02"))
 $icons: map-merge($icons, ("arrow-next": "\e909"))
 $icons: map-merge($icons, ("arrow-previous": "\e908"))
-$icons: map-merge($icons, ("arrow-last": "\e907"))
-$icons: map-merge($icons, ("arrow-first": "\e906"))
 $icons: map-merge($icons, ("arrow-right": "\ff00"))
+$icons: map-merge($icons, ("burger": "\e902"))
+$icons: map-merge($icons, ("burger-close": "\e905"))
 $icons: map-merge($icons, ("caret": "\e904"))
 $icons: map-merge($icons, ("caret-top": "\e914"))
 $icons: map-merge($icons, ("caret-right": "\e913"))
 $icons: map-merge($icons, ("caret-left": "\e912"))
 $icons: map-merge($icons, ("caret-bottom": "\e911"))
-$icons: map-merge($icons, ("list-hyphen": "\e917"))
+$icons: map-merge($icons, ("close": "\e90e"))
+$icons: map-merge($icons, ("download": "\e900"))
+$icons: map-merge($icons, ("eye": "\e901"))
+$icons: map-merge($icons, ("facebook": "\e90b"))
+$icons: map-merge($icons, ("globe": "\ff10"))
+$icons: map-merge($icons, ("instagram": "\e90a"))
 $icons: map-merge($icons, ("link-blank": "\e903"))
-$icons: map-merge($icons, ("twitter": "\e90d"))
-$icons: map-merge($icons, ("social": "\e915"))
 $icons: map-merge($icons, ("linkedin": "\e90c"))
-$icons: map-merge($icons, ("instagram": "\e90a"))
-$icons: map-merge($icons, ("facebook": "\e90b"))
-$icons: map-merge($icons, ("arrow": "\ff01"))
-$icons: map-merge($icons, ("arrow-left": "\ff02"))
+$icons: map-merge($icons, ("list-hyphen": "\e917"))
+$icons: map-merge($icons, ("pause": "\e90f"))
+$icons: map-merge($icons, ("play": "\e910"))
+$icons: map-merge($icons, ("search": "\e916"))
+$icons: map-merge($icons, ("social": "\e915"))
+$icons: map-merge($icons, ("toc": "\e918"))
+$icons: map-merge($icons, ("twitter": "\e90d"))
 
 // Breakpoints
 // TODO: réécrire en sass les mixins bootstrap
@@ -246,6 +249,7 @@ $toc-title-font-family: $meta-font-family !default
 $toc-title-font-size: $meta-size !default
 $toc-title-font-size-desktop: $meta-size-desktop !default
 $toc-sticky-transition: 0.4s
+$toc-overlay-color: $body-overlay-color !default
 
 // Table
 $table-head-font-size: $h4-size !default
diff --git a/assets/sass/_theme/_utils.sass b/assets/sass/_theme/_utils.sass
index 690dca386eb5dc795833ec7469b5aa7a17c66ec5..35172dc770443a9c79dc953827628ec2062e45a2 100644
--- a/assets/sass/_theme/_utils.sass
+++ b/assets/sass/_theme/_utils.sass
@@ -39,13 +39,16 @@
 @function half($size)
     @return calc(#{$size} / 2)
 
-@mixin link($color: $link-color)
+@mixin link($color: $link-color, $unhover_decorated: true)
     color: $color
-    text-decoration-color: rgba($color, 0.3)
     text-decoration-line: underline
     text-decoration-thickness: 1px
     text-underline-offset: $link-underline-offset
     transition: text-decoration-color .3s ease
+    @if $unhover_decorated
+        text-decoration-color: rgba($color, 0.3)
+    @else 
+        text-decoration-color: transparent
     &:hover
         text-decoration-color: rgba($color, 1)
         text-decoration-thickness: 1px
@@ -175,13 +178,13 @@
     flex-direction: column
     .media
         @include handle-svg-fit
-        @if $article-media-aspect-ratio
-            @include aspect-ratio($article-media-aspect-ratio, 'img', $background)
         margin-bottom: $spacing1
         order: -1
         overflow: hidden
         img
             object-fit: cover
+            @if $article-media-aspect-ratio
+                aspect-ratio: $article-media-aspect-ratio
     h2, h3
         @include h3
         a
@@ -196,6 +199,14 @@
         color: $color-text-alt
         display: block
 
+@mixin post-time-author-flex
+    .post-meta
+        display: flex
+        flex-wrap: wrap
+    .post-author p::before
+        content: ' • '
+
+
 @mixin list-section
     @include list-reset
     > li
@@ -357,6 +368,15 @@
         @include media-breakpoint-up(desktop)
             &:before
                 padding-right: 0
+        @include media-breakpoint-down(desktop)
+            position: relative
+            background: $color-background
+            &::before
+                background: transparent
+            p
+                display: block
+                background: transparent
+                position: relative
 
     &:hover
         figcaption p
diff --git a/assets/sass/_theme/blocks/chapter.sass b/assets/sass/_theme/blocks/chapter.sass
index 059d9c45adf26d115f5f967177ed2bc595520d4d..f4453c6da51e42fd89ac7ab27365dcad456be773 100644
--- a/assets/sass/_theme/blocks/chapter.sass
+++ b/assets/sass/_theme/blocks/chapter.sass
@@ -69,6 +69,8 @@
                     width: col(4)
                     margin-left: col-offset(1)
                     margin-bottom: 0
+                    img
+                        margin-left: auto
     @include in-page-with-or-without-sidebar
         h2, h3
             @include h2
diff --git a/assets/sass/_theme/blocks/datatable.sass b/assets/sass/_theme/blocks/datatable.sass
index f4f4270746f9fd04dbdafbe005899c8b30951513..e3eb5c243aa22ac9c4cc5aa6daa7c52244ca8cb2 100644
--- a/assets/sass/_theme/blocks/datatable.sass
+++ b/assets/sass/_theme/blocks/datatable.sass
@@ -3,3 +3,7 @@
         white-space: nowrap
     caption
         color: $color-text-alt
+    @include media-breakpoint-up(desktop)
+        .top
+            p
+                width: col(8)
diff --git a/assets/sass/_theme/blocks/image.sass b/assets/sass/_theme/blocks/image.sass
index 4e186ab582b19c5199b226b0d4ed61095e9e5884..74c3817e018f973c74712b448ae5246befa3d0f1 100644
--- a/assets/sass/_theme/blocks/image.sass
+++ b/assets/sass/_theme/blocks/image.sass
@@ -33,7 +33,7 @@
                     // max-height: calc(100vh - var(--header-height))
                     width: auto
                     max-width: 100%
-            &.image-portrait
+            &.image-portrait, &.image-square
                 .block-content
                     position: relative
                     .top
@@ -56,9 +56,13 @@
                         display: block
                         text-align: right
             &.image-landscape
+                
                 picture
-                    margin-left: 0
-                    margin-right: 0
+                    margin-left: -$grid-gutter
+                    margin-right: -$grid-gutter
+                    @media screen and (min-width: 1400px)
+                        margin-left: 0
+                        margin-right: 0
                 figcaption
                     display: flex
                     justify-content: space-between
diff --git a/assets/sass/_theme/blocks/pages.sass b/assets/sass/_theme/blocks/pages.sass
index 851d2b3f590676412d1cff3315d9ff1826301f38..328a64b3ca5b51ce03d53281f865f50248d4fc82 100644
--- a/assets/sass/_theme/blocks/pages.sass
+++ b/assets/sass/_theme/blocks/pages.sass
@@ -137,7 +137,6 @@
                 + li
                     margin-top: $spacing0
                 a
-                    @include meta
                     @include icon(arrow, before, true)
                         padding-right: $spacing0
                     @include hover-translate-icon(before, 5)
diff --git a/assets/sass/_theme/blocks/partners.sass b/assets/sass/_theme/blocks/partners.sass
index 692a80b49e69f180a21d5f1f8e83956aa7df09cb..68eb9842bdc6b17e96b6be9c242725a6b3cb673f 100644
--- a/assets/sass/_theme/blocks/partners.sass
+++ b/assets/sass/_theme/blocks/partners.sass
@@ -5,5 +5,13 @@
                 max-width: col(8)
     @include in-page-with-sidebar
         .organizations
+            @include grid(2, md)
+            @include grid(3, lg)
             @include grid(4, xl)
             grid-column-gap: half($grid-gutter) !important
+    .organization
+        a[target="_blank"]
+            @include stretched-link(before)
+            @include icon(link-blank, after, true)
+                position: relative
+
diff --git a/assets/sass/_theme/blocks/posts.sass b/assets/sass/_theme/blocks/posts.sass
index 0fe62a5ac282abaa7757ecca8cf6523f1522acba..50e9fd89f9cffd317c74432a2f885b02ee038ad5 100644
--- a/assets/sass/_theme/blocks/posts.sass
+++ b/assets/sass/_theme/blocks/posts.sass
@@ -17,6 +17,8 @@
                 margin-top: $spacing0
             .media
                 margin-top: 0
+        @include post-time-author-flex
+
     &--grid
         @include media-breakpoint-down(desktop)
             article + article
@@ -40,25 +42,21 @@
             article
                 position: relative
                 padding-bottom: half($spacing3)
-                // display: flex
-                // flex-direction: row
                 + article
                     margin-top: half($spacing3)
                 .post-content
                     display: flex
                     flex-direction: column
-                    // width: 70%
+                    padding-top: $spacing0
                     h3
                         margin-bottom: 0
-                    time
-                        margin-top: half($spacing0)
-                        order: 2
-                    p
+                    .post-categories
+                        margin-bottom: 0
+                    p[itemprop="articleBody"]
                         margin-top: half($spacing0)
-                        order: 4
                 .media
-                    display: none
-                    order: 3
+                    order: -1
+                    max-width: 33%
 
         @include in-page-with-sidebar
             article
@@ -88,7 +86,7 @@
                         margin-left: $grid-gutter
                     + article
                         margin-top: $spacing3
-                    time
+                    .post-meta
                         position: absolute
                         right: 0
                         top: 0
@@ -131,19 +129,24 @@
                         grid-column: 1 / 7
                     .post-categories
                         grid-column: 1 / 7
-                    time
+                    .post-meta
                         grid-row: 1
                         grid-column: 7 / 9
                         text-align: right
                         order: 2
+                        display: block
                         margin-top: 0
-                    p
+                        .post-author p::before
+                            content: ''
+                    p[itemprop="articleBody"]
                         grid-column: 1 / 7
                         order: 3
         
         @include media-breakpoint-down(desktop)
             .list
                 border-top: 1px solid $color-border
+                p[itemprop="articleBody"]
+                    margin-top: 0
 
         @include media-breakpoint-up(desktop)
             .highlight
diff --git a/assets/sass/_theme/blocks/video.sass b/assets/sass/_theme/blocks/video.sass
index 4052c1745aa36aaced47235e3fefa4cdc276b6db..79806ff4e8f783efc00c7388c77d6a5228f030d2 100644
--- a/assets/sass/_theme/blocks/video.sass
+++ b/assets/sass/_theme/blocks/video.sass
@@ -6,10 +6,11 @@
                 min-height: 400px
         iframe
             background: black
-    @include in-page-without-sidebar
-        .transcription
-            width: col(7)
-            margin-left: auto
+    @include media-breakpoint-up(desktop)
+        @include in-page-without-sidebar
+            .transcription
+                width: col(7)
+                margin-left: auto
     @include media-breakpoint-down(desktop)
         .video
             margin-left: half(-$grid-gutter-sm)
diff --git a/assets/sass/_theme/design-system/form.sass b/assets/sass/_theme/design-system/form.sass
new file mode 100644
index 0000000000000000000000000000000000000000..9c25792eb4bb904d834fc7bebd62f701bc9ad184
--- /dev/null
+++ b/assets/sass/_theme/design-system/form.sass
@@ -0,0 +1,27 @@
+form
+    fieldset
+        border: none
+        padding: 0
+        margin-bottom: $spacing1
+    label
+        @include meta
+    .control--radio
+        @include body-text
+        + label
+            margin-left: half($spacing0)
+            @include body-text
+    .radio + .radio
+        margin-left: $spacing0
+    input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="password"]
+        @include body-text
+        border: 1px solid rgba(0, 0, 0, 0.3)
+        border-radius: $form-input-border-radius
+        padding: half($spacing0) 
+    input[type="submit"], button
+        @include button-reset
+        @include btn
+        @include meta
+        background: $form-btn-background-color
+        color: $form-btn-color
+    label + input
+        margin-bottom: $spacing3
\ No newline at end of file
diff --git a/assets/sass/_theme/design-system/header.sass b/assets/sass/_theme/design-system/header.sass
index 18d59951a754b18f8247a033a3168446be60c562..7b19cb5323c6b63701c1e9e600cc35e6a53c4438 100644
--- a/assets/sass/_theme/design-system/header.sass
+++ b/assets/sass/_theme/design-system/header.sass
@@ -24,8 +24,6 @@ header#document-header
             a:focus,
             a:active
                 color: inherit
-            a:not(:hover)
-                text-decoration-color: transparent
             span
                 color: $header-sticky-color
         @if $header-sticky-invert-logo
@@ -50,6 +48,7 @@ header#document-header
         html.has-menu-opened &
             nav
                 padding-bottom: 0
+
 // TODO : Est-ce au bon endroit ?
 body
     &::after
@@ -63,14 +62,18 @@ body
         z-index: $zindex-body-overlay
 
     html.has-menu-opened &,
-    html.has-offcanvas-opened &,
     html.has-modal-opened &
+    html.has-offcanvas-opened &
+        overflow: hidden
+        height: 100%
+        min-height: -webkit-fill-available
         &::after
             display: block
             opacity: 1
             pointer-events: inherit
     html.has-offcanvas-opened &
         &::after
+            background-color: $toc-overlay-color
             z-index: $zindex-header + 1
     html.has-modal-opened &
         &::after
diff --git a/assets/sass/_theme/design-system/hero.sass b/assets/sass/_theme/design-system/hero.sass
index 5162b4768c1b431718d4b73091edf2c75bf17992..28833f74a895687e32394e82c660311c4b10ce8f 100644
--- a/assets/sass/_theme/design-system/hero.sass
+++ b/assets/sass/_theme/design-system/hero.sass
@@ -13,7 +13,6 @@
         min-height: $hero-height-desktop
     *:focus-visible
         outline-color: $hero-color
-
     .content
         align-items: start
         padding-top: $spacing3
@@ -35,7 +34,8 @@
         padding-top: 0
     .content + .breadcrumb-nav
         margin-top: $spacing3
-
+    &--no-margin
+        margin-bottom: 0
     @include media-breakpoint-down(desktop)
         .breadcrumb-nav
             margin-left: half(-$grid-gutter-sm)
@@ -48,9 +48,10 @@
                 > h1, > hgroup
                     margin-bottom: $spacing2
         &--image-landscape
-            figure
-                margin-left: half(-$grid-gutter-sm)
-                margin-right: half(-$grid-gutter-sm)
+            .content
+                figure
+                    margin-left: half(-$grid-gutter-sm)
+                    margin-right: half(-$grid-gutter-sm)
         &--image-portrait, &--image-square
             .container
                 display: flex
@@ -84,4 +85,6 @@
                     width: col(8)
                 figure
                     width: col(3)
+    + .breadcrumb-container
+        margin-top: 0
 
diff --git a/assets/sass/_theme/design-system/nav.sass b/assets/sass/_theme/design-system/nav.sass
index 44755c444ca2fab33f42e8f4df9cea512c24722e..104527e036e960a8f95ffec4601eb789fdc6336f 100644
--- a/assets/sass/_theme/design-system/nav.sass
+++ b/assets/sass/_theme/design-system/nav.sass
@@ -12,12 +12,12 @@
         display: none
         flex-basis: 100vw
         margin-top: $spacing1
-        max-height: calc(100vh - var(--header-height) - #{$spacing1})
+        max-height: calc(100vh - var(--header-height) - #{$spacing4})
         overflow: auto
     a,
     a:focus,
     a:active
-        @include link($header-color)
+        @include link($header-color, false)
     span
         color: $header-color
     ul
@@ -30,8 +30,8 @@
         cursor: pointer
         transition: text-decoration 0.15s
         display: block
-        &:not(:hover)
-            text-decoration-color: transparent
+        // &:not(:hover)
+        //     text-decoration-color: transparent
         &[aria-expanded]
             @include icon(caret, after)
                 margin-left: px2rem(5)
@@ -53,8 +53,11 @@
         @include media-breakpoint-up(desktop)
             padding: $spacing1
             position: absolute
+            max-height: calc(100vh - var(--header-height))
+            max-height: calc(-webkit-fill-available - var(--header-height))
+            overflow: auto
         a
-            color: $header-dropdown-color 
+            color: $header-dropdown-color
             &:hover,
             &:focus
                 text-decoration-color: $header-dropdown-color
diff --git a/assets/sass/_theme/design-system/table.sass b/assets/sass/_theme/design-system/table.sass
index 98f688dab045b6250508d26acb3b7d2304cfa899..f4fdd19732c0a98188b0b53709510ea65eb9a777 100644
--- a/assets/sass/_theme/design-system/table.sass
+++ b/assets/sass/_theme/design-system/table.sass
@@ -4,6 +4,7 @@ table
     vertical-align: top
     width: 100%
     text-align: left
+    empty-cells: hide
     caption
         @include meta
         padding: $spacing0 0
@@ -29,10 +30,11 @@ table
         font-size: $table-body-size
         @include media-breakpoint-up(desktop)
             font-size: $table-body-size-desktop
-        tr
-            border-bottom: 1px solid $color-border
-        tr:first-child
+        td,
+        th
             border-top: 1px solid $color-border
+            &:empty
+                border-top: none
 
 .table-responsive
     overflow-x: auto
diff --git a/assets/sass/_theme/design-system/typography.sass b/assets/sass/_theme/design-system/typography.sass
index d80a093d7a250add3c87f8bacd2b106e4eacae4e..b85b2be26a50b0650259833c7dca1431154357d7 100644
--- a/assets/sass/_theme/design-system/typography.sass
+++ b/assets/sass/_theme/design-system/typography.sass
@@ -118,12 +118,16 @@ h2, .h2
 .lead
     @include lead
 
-.p,
-.li
+@mixin body-text
+    font-family: $body-font-family
     font-size: $body-size
     @include media-breakpoint-up(desktop)
         font-size: $body-size-desktop
 
+.p,
+.li
+    @include body-text
+
 @mixin meta
     font-family: $meta-font-family
     font-size: $meta-size
@@ -220,6 +224,7 @@ a,
     overflow-wrap: break-word
     &[target="_blank"]:not(.icon)
         @include icon(link-blank, after, true)
+            vertical-align: baseline
     &[href^="mailto"]
         &::after
             content: none
diff --git a/assets/sass/_theme/hugo-osuny.sass b/assets/sass/_theme/hugo-osuny.sass
index 6878b684cd7863407d37b590c0f83338e68ab35d..6d508a41e030b7eed0932e7f8fc628dc3cca5a42 100644
--- a/assets/sass/_theme/hugo-osuny.sass
+++ b/assets/sass/_theme/hugo-osuny.sass
@@ -21,6 +21,7 @@
 @import "design-system/button"
 @import "design-system/contacts"
 @import "design-system/footer"
+@import "design-system/form"
 @import "design-system/header"
 @import "design-system/hero"
 @import "design-system/image"
diff --git a/assets/sass/_theme/sections/diplomas.sass b/assets/sass/_theme/sections/diplomas.sass
index c5b2d68c5dd83fbc8aa7a5e8080d1885869f8763..45cddaa3979ee283544df60b9184f0d9db053eed 100644
--- a/assets/sass/_theme/sections/diplomas.sass
+++ b/assets/sass/_theme/sections/diplomas.sass
@@ -38,14 +38,30 @@ ul.diplomas
             @include media-breakpoint-down(desktop)
                 margin-top: $spacing1
             li
-                @include h3
                 display: block
                 border-bottom: 0
                 padding: 0
-                + li
-                    margin-top: $spacing1
+                + li, > ol
+                    margin-top: $spacing0
+                    @include media-breakpoint-up(sm) 
+                        margin-top: $spacing1
                 a:hover
                     color: $color-accent
+                ol li a   
+                    @include inherit-text
+                    @include icon(list-hyphen, before)
+                        margin-left: 1px
+                        margin-right: half($spacing0)
+                        margin-top: 6px
+                        @include media-breakpoint-up(sm)
+                            margin-right: $spacing0
+                        @include media-breakpoint-up(md)
+                            margin-top: 8px
+                    display: flex
+                    ol
+                        margin-left: $spacing1
+            > li a 
+                @include h3
                         
         .program
             div
@@ -149,4 +165,17 @@ ul.diplomas
     ol.programs
         li
             @include grid(2, desktop)
-            align-items: start
\ No newline at end of file
+            align-items: start
+            position: relative
+            a
+                @include stretched-link(before)
+                position: initial
+                @include media-breakpoint-down(desktop)
+                    margin-right: $spacing0
+                    &::after
+                        align-self: center
+                        bottom: unset
+                        position: relative
+                        margin-left: half($spacing0)
+                    + p
+                        margin-top: $spacing0
\ No newline at end of file
diff --git a/assets/sass/_theme/sections/organizations.sass b/assets/sass/_theme/sections/organizations.sass
index 19b8db695408f11ecc135b2b30ebb8a4d8521b01..c732d67c15d78c203c922c6126a8180edc2c1a7f 100644
--- a/assets/sass/_theme/sections/organizations.sass
+++ b/assets/sass/_theme/sections/organizations.sass
@@ -1,23 +1,31 @@
 .organization
     @include article
     position: relative
-    h2
+    h2, h3
         @include meta
         a
             @include stretched-link
             text-decoration: none
+            display: block
     .media
         background: $color-background-alt
         padding: $spacing1
         margin-bottom: half($spacing0)
         picture
-            aspect-ratio: 1/1
+            aspect-ratio: 1
             display: block
         img
             width: 100%
             height: 100%
             object-fit: contain
             object-position: center
+        &:empty
+            position: relative
+            &::after
+                content: ''
+                display: block
+                padding-bottom: 100%
+
 
 .organizations
     max-width: 100%
diff --git a/assets/sass/_theme/sections/persons.sass b/assets/sass/_theme/sections/persons.sass
index 87709e0f3898dfa940d73c12e5fcfe4be58c4bae..2553546c8aa292139787f4369abff2446df8da02 100644
--- a/assets/sass/_theme/sections/persons.sass
+++ b/assets/sass/_theme/sections/persons.sass
@@ -63,6 +63,7 @@
             order: 2
             margin-left: $spacing0
             margin-bottom: 0
+            width: 100px
     @include media-breakpoint-up(desktop)
         @include in-page-without-sidebar
             text-align: center
@@ -169,6 +170,11 @@ ol.persons--list
                 margin-left: auto
                 transform: translateY(100px)
                 margin-top: calc(#{$spacing1} - 100px)
+        @include media-breakpoint-down(sm)
+            margin-bottom: $spacing4
+            .avatar
+                transform: translateY(18vw)
+                margin-top: calc(#{$spacing1} - 18vw)
         @include media-breakpoint-up(desktop)
             .content
                 align-items: center
@@ -186,8 +192,20 @@ ol.persons--list
             @include small
     .blocks
         margin-top: $spacing3
-    .person-programs
+    .person-programs,
+    .person-objects,
+    .person-publications
         margin-top: $spacing4
+        .publication
+            border-bottom: 1px solid $color-border
+            padding-bottom: $spacing1
+            padding-top: $spacing0
+            .title
+                margin-bottom: calc(#{$spacing0}/2)
+            .ref
+                color: $color-text-alt
+                margin-top: 0
+                @include small
     @include media-breakpoint-down(lg)
         .roles
             margin-top: $spacing2
diff --git a/assets/sass/_theme/sections/posts.sass b/assets/sass/_theme/sections/posts.sass
index cbf241a8a7dc8909b72717475a7cdc564ac7648e..ad38b5a8fc56f240c04a1ae0fac2e2f0579930cc 100644
--- a/assets/sass/_theme/sections/posts.sass
+++ b/assets/sass/_theme/sections/posts.sass
@@ -2,6 +2,8 @@
     @include article($post-media-background)
     time
         color: $post-time-color
+        display: inline-block
+        vertical-align: middle
     .post-categories
         @include meta
         margin-top: $spacing0
@@ -15,12 +17,14 @@
             @include link($color-accent)
         li
             margin: 0
+    .post-author
+        @include meta
+        color: $color-text-alt
 
 .posts__section,
 .authors__term,
 .categories__term,
 .persons__page
-
     .posts--list
         article
             border-bottom: 1px solid $color-border
@@ -34,7 +38,7 @@
                 @include grid
                 margin-bottom: $spacing3
                 padding-bottom: $spacing3
-            div:not(.media)
+            .post-content
                 grid-column: 4/13
                 @include media-breakpoint-down(desktop)
                     flex: 1
@@ -52,19 +56,25 @@
                 &, img
                     aspect-ratio: auto
             @include media-breakpoint-up(desktop)
-                time 
-                    font-size: $h5-size
+                .post-meta
                     position: absolute
                     right: 0
+                    text-align: right
                     top: 0
-                div:not(.media)
+                    time
+                        font-size: $h5-size
+                .post-content
                     h2, h3,
-                    p
+                    > p
                         max-width: col(6, 9)
     .posts--grid
         @include grid(1)
         @include grid(2, desktop)
         @include grid($posts-grid-columns, xxl)
+        .post
+            @include post-time-author-flex
+            .post-meta
+                margin-top: $spacing0
 
 .posts__page
     @include media-breakpoint-down(desktop)
diff --git a/assets/sass/_theme/sections/programs.sass b/assets/sass/_theme/sections/programs.sass
index cee274383e3067218ae558e0e20fd35185d16c94..076fa264a174891e236ea66c3c96d7c6f4b4bb11 100644
--- a/assets/sass/_theme/sections/programs.sass
+++ b/assets/sass/_theme/sections/programs.sass
@@ -10,6 +10,7 @@ ol.programs
     @include list-section
     li
         a:nth-child(2)
+            margin-top: unset
             white-space: nowrap
             @include media-breakpoint-up(desktop)
                 margin-left: $spacing1
@@ -30,6 +31,8 @@ ol.programs
 
     ol.programs
         margin-bottom: $spacing3
+        li
+            line-height: 1
     .dropdown-share
         position: relative
         > button
@@ -175,26 +178,30 @@ ol.programs
             position: relative
             padding-bottom: $spacing0
             padding-top: $spacing0
-            @include media-breakpoint-up(desktop)
+            @include media-breakpoint-up(sm)
                 @include grid(2)
-            @include icon(arrow-right, after, true)
-                color: inherit
-                position: absolute
-                right: 0
-                top: $spacing0
-                margin-top: px2rem(12)
             a
+                align-items: center
+                display: flex
                 color: inherit
                 text-decoration: none
                 @include stretched-link(before)
                 @include media-breakpoint-down(desktop)
                     margin-right: $spacing1
+                @include icon(arrow-right, after, true)
+                    color: inherit
+                    position: absolute
+                    right: 0
+                @include media-breakpoint-down(sm)
+                    width: 100%
             p
                 align-self: center
                 margin-top: unset
                 @include small
                 @include media-breakpoint-up(desktop)
                     margin-right: $spacing1
+                @include media-breakpoint-down(sm)
+                    display: block
             &:hover
                 color: $color-accent
             &:first-child
diff --git a/config.yaml b/config.yaml
index f926a8e11fe05a84832e11318a2c4517b92a9f61..c634a5e60c72c77fa03062fdaa2189a59ab1ddab 100644
--- a/config.yaml
+++ b/config.yaml
@@ -7,8 +7,10 @@ params:
   breadcrumb:
     position: hero-start #  hero-start |  hero-end | after-hero
   posts:
+    default_image: false
     index:
       show_categories: false
+      show_author: false
       truncate_description: 200 # Set to 0 to disable truncate
       layout: list # grid | list
   pages:
@@ -17,13 +19,17 @@ params:
   persons:
     index:
       layout: list # grid | list
+  programs:
+    related_posts:
+      quantity: 4
   home:
     toc:
       disabled: true
   logo:
     header: "/assets/images/logo.svg"
     footer: "/assets/images/logo.svg"
-
+  organizations:
+    dark_logo_background: false
   image_sizes:
     design_system:
       lightbox:
diff --git a/i18n/en.yml b/i18n/en.yml
index 90f5e8f3f106b546243c14c023452583fbd37cd2..c77712b5272cfe16c5d3921bd026ea169a2b017b 100644
--- a/i18n/en.yml
+++ b/i18n/en.yml
@@ -150,6 +150,7 @@ pages:
 persons:
   posts: News
   programs: Programs
+  papers: Papers
   publications: Publications
 posts:
   author: Author
diff --git a/i18n/fr.yml b/i18n/fr.yml
index 9ceee926ff0f08284d4204492f0f32d21cde7ae2..1a8dce2a542b1a318413023d78dcd197ef351b2a 100644
--- a/i18n/fr.yml
+++ b/i18n/fr.yml
@@ -150,6 +150,7 @@ pages:
 persons:
   posts: Actualités publiées récemment
   programs: Enseignements
+  papers: Papiers
   publications: Publications
   papers: Papiers publiés récemment
 posts:
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index a9459f1b2ec1d509dac4b959f384955c09a06d6f..8dd9d91db41e715f57aca9ba2af5741c1cacc9dc 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -15,7 +15,7 @@
   {{ $body_class = printf "%s %s" $body_class $pageclass }}
   <body class="{{ $body_class }}">
     {{- partial "header/accessibility.html" -}}
-    {{- partial "header/header.html" -}}
+    {{- partial "header/header.html" . -}}
     <main{{ if .Params.blocks }} class="page-with-blocks"{{ end }} id="main" tabindex="-1">
       {{- block "main" . }}{{- end }}
       {{- partial "hooks/before-main-end" . -}}
diff --git a/layouts/categories/term.html b/layouts/categories/term.html
index 861797356883e6a1ce363513419d332cfcc77281..eeaa72e7fc8541cc1a806a2a54925b4f04ab9cc0 100644
--- a/layouts/categories/term.html
+++ b/layouts/categories/term.html
@@ -9,7 +9,7 @@
         )
     }}
 
-    {{ partial "posts/summary.html" (dict
+    {{ partial "categories/summary.html" (dict
       "context" .
       "block_wrapped" true
       ) }}
diff --git a/layouts/diplomas/term.html b/layouts/diplomas/term.html
index 6e518d4f47056245898355502807edfae5657258..807600e004d965ff28e56ef214cb0b84a2e45e2f 100644
--- a/layouts/diplomas/term.html
+++ b/layouts/diplomas/term.html
@@ -8,13 +8,15 @@
         {{- range .Pages -}}
           <li>
             {{- $title := partial "PrepareHTML" .Title -}}
+            {{/*  TODO: check title class relevance */}}
             <a href="{{ .Permalink }}" class="title" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">
               {{- $title -}}
             </a>
-            <p class="description">
-              {{/*  TODO: replace with description_short  */}}
-              {{- partial "PrepareHTML" .Params.presentation -}}
-            </p>
+            {{ if .Params.summary }}
+              <p class="description">
+                {{- partial "PrepareHTML" .Params.summary -}}
+              </p>
+            {{ end }}
           </li>
         {{- end -}}
       </ol>
diff --git a/layouts/index.html b/layouts/index.html
index 1c7b0e34b339b63c08514e5912ad63ba69e31b97..ee48d39ae32f4e591c01bf3ca6f59fe9412d35de 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -32,6 +32,4 @@
       </section>
     {{ end }}
   </div>
-
 {{ end }}
-{{/*  TODO: refacto avec pages/list.html  */}}
\ No newline at end of file
diff --git a/layouts/partials/FilterIframeLazy b/layouts/partials/FilterIframeLazy
new file mode 100644
index 0000000000000000000000000000000000000000..8c0fbf22c6b3ebb27b2a864f4231f3a4ed72cd92
--- /dev/null
+++ b/layouts/partials/FilterIframeLazy
@@ -0,0 +1,5 @@
+{{ $chunks := split . "<iframe" }}
+{{ $text := delimit $chunks "<iframe loading=\"lazy\"" }}
+{{ $chunks = split $text "</iframe>" }}
+{{ $text = delimit $chunks "</iframe>" }}
+{{ return $text }}
diff --git a/layouts/partials/FixIframeRatio b/layouts/partials/FixIframeRatio
deleted file mode 100644
index cc0e13398fa046df1b169ecb70fcf5357e4289a9..0000000000000000000000000000000000000000
--- a/layouts/partials/FixIframeRatio
+++ /dev/null
@@ -1,5 +0,0 @@
-{{ $chunks := split . "<iframe" }}
-{{ $text := delimit $chunks "<div class=\"ratio ratio-16x9\"><iframe loading=\"lazy\" title=\"\"" }}
-{{ $chunks = split $text "</iframe>" }}
-{{ $text = delimit $chunks "</iframe></div>" }}
-{{ return $text }}
diff --git a/layouts/partials/GetMenu b/layouts/partials/GetMenu
new file mode 100644
index 0000000000000000000000000000000000000000..5408d56b535001be29e7ffe04ed6494a5ef96b19
--- /dev/null
+++ b/layouts/partials/GetMenu
@@ -0,0 +1,20 @@
+{{ $kind := . }}
+{{ $menus := index site.Data.menus (printf "%s" site.Language) }}
+{{ $menu := "" }}
+{{/*  Try to get menus from the data/menus/<lang> directory  */}}
+{{ if (and $menus (isset $menus $kind)) }}
+  {{/* Menu found in data/menus/<lang>  */}}
+  {{ $menu = index $menus $kind }}
+{{ else }}
+  {{/*  Fallback to menu in the data/menus directory  */}}
+  {{ $menu = index site.Data.menus $kind }}
+{{ end }}
+
+{{ if reflect.IsSlice $menu }}
+  {{/*  LEGACY  */}}
+  {{ $menu = (dict
+    "items" $menu
+  ) }}
+{{ end }}
+
+{{ return $menu }}
\ No newline at end of file
diff --git a/layouts/partials/PrepareHTML b/layouts/partials/PrepareHTML
index 796c3fbd2f9d461382302962f86eb86dc50b5dea..2d3f25ddfb724d20fa61e92c060b353106bed059 100644
--- a/layouts/partials/PrepareHTML
+++ b/layouts/partials/PrepareHTML
@@ -2,7 +2,7 @@
 safeHTML (
   chomp (
     partial "CorrectPunctuation" (
-      partial "FixIframeRatio" (
+      partial "FilterIframeLazy" (
         .
       )
     )
diff --git a/layouts/partials/blocks/templates/contact.html b/layouts/partials/blocks/templates/contact.html
index 41e3fd30c2d235337f2163e7d41c40c98a71de57..5a7c81d4149464747a2fcccf0438d0aaec3aa523 100644
--- a/layouts/partials/blocks/templates/contact.html
+++ b/layouts/partials/blocks/templates/contact.html
@@ -44,7 +44,7 @@
                   </span>
                   {{ end }}
                   {{ if .country }}
-                  <span itemprop="postalCode">
+                  <span itemprop="addressCountry">
                     {{ partial "PrepareHTML" .country }}
                   </span>
                   {{ end }}
diff --git a/layouts/partials/blocks/templates/datatable.html b/layouts/partials/blocks/templates/datatable.html
index c8c19a3716ef3e98dd5995f99bdd9fff97ca0e7c..54153fabd852343f13c6464b306e653b620a87e1 100644
--- a/layouts/partials/blocks/templates/datatable.html
+++ b/layouts/partials/blocks/templates/datatable.html
@@ -11,6 +11,11 @@
         {{ else }}
           <div class="top">
             <h2>{{ partial "PrepareHTML" $title }}</h2>
+            {{ with .description }}
+              <div class="description">
+                {{ partial "PrepareHTML" . }}
+              </div>
+            {{ end }}
           </div>
         {{ end -}}
         <div class="table-responsive">
@@ -40,4 +45,4 @@
       </div>
     </div>
   </section>
-{{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/layouts/partials/blocks/templates/pages.html b/layouts/partials/blocks/templates/pages.html
index 33dbefd8e83b39bb5d307b2419e407829b154cb6..e749a50fe1f1c82f90c5d371c163d081a4358a9f 100644
--- a/layouts/partials/blocks/templates/pages.html
+++ b/layouts/partials/blocks/templates/pages.html
@@ -37,8 +37,7 @@
       {{ $title = .Title }}
     {{ end }}
     {{ if .Params.bodyclass }}
-      {{- $page_class = partial "GetBodyclass" . }}
-      {{- $page_class = printf "block-%s" $page_class }}
+      {{- $page_class = printf "block-page-%s" .Params.bodyclass }}
     {{ end }}
     {{ if site.Params.pages.index.truncate_description }}
       {{- $main_description = partial "GetTruncateContent" ( dict 
@@ -46,7 +45,7 @@
           "length" site.Params.pages.index.truncate_description
           ) -}}
     {{ else }}
-      {{- $main_description = partial "PrepareHTML" .Params.summary -}}
+      {{- $main_description = partial "PrepareText" .Params.summary -}}
     {{ end }}
   {{ end -}}
 
diff --git a/layouts/partials/blocks/templates/pages/cards.html b/layouts/partials/blocks/templates/pages/cards.html
index f6bf4e3bc28f8e6363842d9f6314324bb3a0e809..30ee5e70794a3149523e0e88c1cff9b91a469a55 100644
--- a/layouts/partials/blocks/templates/pages/cards.html
+++ b/layouts/partials/blocks/templates/pages/cards.html
@@ -4,10 +4,6 @@
 <div class="cards">
   {{ range .pages }}
     {{- $page := partial "GetPageByUrl" .page -}}
-    {{- if .slug -}}
-      {{/*  LEGACY  */}}
-      {{- $page = partial "GetPageByUrl" .slug -}}
-    {{- end -}}
     {{ with $page }}
       <article class="card">
         <h3>
@@ -23,7 +19,7 @@
               "length" site.Params.pages.index.truncate_description
               ) }}</p>
           {{ else }}
-            <p>{{ partial "PrepareHTML" .Params.summary }}</p>
+            <p>{{ partial "PrepareText" .Params.summary }}</p>
           {{ end }}
         {{ end }}
 
diff --git a/layouts/partials/blocks/templates/pages/grid.html b/layouts/partials/blocks/templates/pages/grid.html
index fd28a25a403dea8157e9582023d2319389e4eb3c..54c096d8c0fc39f816de0ef79d91589aa05a4c3a 100644
--- a/layouts/partials/blocks/templates/pages/grid.html
+++ b/layouts/partials/blocks/templates/pages/grid.html
@@ -4,15 +4,9 @@
 <div class="grid">
   {{ range .pages }}
     {{- $page := false -}}
-
-    {{/*  Check if . is a map or page url  */}}
+    {{/*  Check if . is a map or page url, necessary when pages/grid is called outside block context */}}
     {{ if reflect.IsMap . }}
-      {{- if .page -}}
-        {{- $page = partial "GetPageByUrl" .page -}}
-      {{- else if .slug -}}
-        {{/*  LEGACY  */}}
-        {{- $page = partial "GetPageByUrl" .slug -}}
-      {{ end }}
+      {{- $page = partial "GetPageByUrl" .page -}}
     {{ else }}
       {{- $page =  partial "GetPageByUrl" . -}}
     {{ end }}
@@ -31,7 +25,7 @@
               "length" site.Params.pages.index.truncate_description
               ) }}</p>
           {{ else }}
-            <p>{{ partial "PrepareHTML" .Params.summary }}</p>
+            <p>{{ partial "PrepareText" .Params.summary }}</p>
           {{ end }}
         {{ end }}
         {{ if $show_images }}
diff --git a/layouts/partials/blocks/templates/pages/list.html b/layouts/partials/blocks/templates/pages/list.html
index f30cb416d2672df18b51fb0562d2d89c035478ed..7f1d103b3fedf403763491f425289418622a9ddc 100644
--- a/layouts/partials/blocks/templates/pages/list.html
+++ b/layouts/partials/blocks/templates/pages/list.html
@@ -1,10 +1,6 @@
 <ul>
   {{ range .pages }}
     {{- $page := partial "GetPageByUrl" .page -}}
-    {{- if .slug -}}
-      {{/*  LEGACY  */}}
-      {{- $page = partial "GetPageByUrl" .slug -}}
-    {{- end -}}
     {{ with $page }}
       <li>
         <a href="{{- .Permalink -}}">
diff --git a/layouts/partials/blocks/templates/partners.html b/layouts/partials/blocks/templates/partners.html
index 20ce1f6c01183be94956f2b12f22242848de2fe3..167f0bcd101e8f170a80d38ad98c557beb4c20c1 100644
--- a/layouts/partials/blocks/templates/partners.html
+++ b/layouts/partials/blocks/templates/partners.html
@@ -1,6 +1,10 @@
 {{- $template := .block.template -}}
 {{- $position := .block.position -}}
 {{- $title := .block.title -}}
+{{ $logo_index := "logo" }}
+{{ if site.Params.organizations.dark_logo_background }}
+  {{ $logo_index = "logo_on_dark_background" }}
+{{ end }}
 {{- with .block.data -}}
   <section class="block block-partners{{ if $title }} block-with-title{{ end }}" id="block-{{ $position }}">
     <div class="container">
@@ -22,45 +26,53 @@
 
         <div class="organizations">
           {{- range .partners }}
-            <div>
-              {{- if .slug }}
-                {{ with (site.GetPage (printf "/organizations/%s" .slug )) }}
-                  {{- partial "organizations/organization.html" . -}}
-                {{ end }}
-              {{- else -}}
-                <article class="organization">
-                  {{- $title := "" -}}
-                  {{ if .name }}
-                    <div>
-                      {{ $title = partial "PrepareHTML" .name -}}
-                      <h3>
-                        {{- if .url }}
-                        <a href="{{ .url }}" title="{{ safeHTML (i18n "commons.link.blank_aria" (dict "Title" $title)) }}">
-                        {{ end }}
-                          {{- $title -}}
-                        {{ if .url }}
-                        </a>
-                        {{ end -}}
-                      </h3>
-                    </div>
-                  {{ end -}}
-                  <div class="media">
-                    {{- if .logo -}}
-                      {{- partial "commons/image.html"
-                            (dict
-                              "image"    .logo
-                              "alt"      $title
-                              "sizes"    site.Params.image_sizes.blocks.partners
-                            ) -}}
-                    {{- end -}}
-                  </div>
-                </article>
-              {{ end -}}
-
-            </div>
+            {{ if .slug }}
+              {{ with (site.GetPage (printf "/organizations/%s" .slug )) }}
+                {{ template "partner" (dict 
+                    "title" .Title
+                    "url" .Permalink
+                    "logo" (index .Params $logo_index)
+                  )}}
+              {{ end }}
+            {{ else }}
+              {{ template "partner" (dict 
+                  "title" .name
+                  "url" .url
+                  "external" true
+                  "logo" .logo
+                )}}
+            {{ end }}
           {{ end -}}
         </div>
       </div>
     </div>
   </section>
 {{- end -}}
+
+{{- define "partner" -}}
+<article class="organization">
+  {{ $title := "" }}
+  {{ if .title }}
+    {{ $title = partial "PrepareHTML" .title -}}
+    <h3>
+      {{- if .url }}
+        <a href="{{ .url }}" {{ if .external }} target="_blank" rel="noopener" {{ end }} title="{{ safeHTML (i18n "commons.link.blank_aria" (dict "Title" $title)) }}">
+      {{ end -}}
+        {{- $title -}}
+      {{- if .url }}
+        </a>
+      {{ end -}}
+    </h3>
+  {{ end -}}
+  <div class="media">
+    {{- if .logo -}}
+      {{- partial "commons/image.html"
+        (dict
+          "image"    .logo
+          "alt"      $title
+          "sizes"    site.Params.image_sizes.blocks.partners
+        ) -}}
+    {{- end -}}
+  </div>
+</article>
+{{- end  -}}
\ No newline at end of file
diff --git a/layouts/partials/blocks/templates/posts.html b/layouts/partials/blocks/templates/posts.html
index 89509900b746ce775a1977a30950d64da3e942cd..922dc01ce7ad65dc0c07eb2a8494b729b9d4d731 100644
--- a/layouts/partials/blocks/templates/posts.html
+++ b/layouts/partials/blocks/templates/posts.html
@@ -28,7 +28,6 @@
                 "link" $title_link
                 ) }}
             {{ end -}}
-
           </div>
         {{- end }}
 
diff --git a/layouts/partials/blocks/templates/posts/highlight.html b/layouts/partials/blocks/templates/posts/highlight.html
index aea4626d2e2c380278d141e8f9ea1bc3dd6b3284..9a2cc62ff41f977a36dbe0f6bdf29ea54b1adf27 100644
--- a/layouts/partials/blocks/templates/posts/highlight.html
+++ b/layouts/partials/blocks/templates/posts/highlight.html
@@ -31,10 +31,16 @@
                     "length" site.Params.posts.index.truncate_description
                     ) }}</p>
                 {{ else }}
-                  <p itemprop="articleBody">{{ partial "PrepareHTML" .Params.summary }}</p>
+                  <p itemprop="articleBody">{{ partial "PrepareText" .Params.summary }}</p>
                 {{ end }}
               {{- end -}}
-              <time itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04" }}">{{ .Date | time.Format ":date_long" }}</time>
+
+              <div class="post-meta">
+                <time itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04" }}">{{ .Date | time.Format ":date_long" }}</time>
+                {{ if site.Params.posts.index.show_author }}
+                  {{- partial "posts/author" . -}}
+                {{ end }}
+              </div>
             </article>
           {{ end }}
         {{ end }}
diff --git a/layouts/partials/commons/lang-switch.html b/layouts/partials/commons/lang-switch.html
new file mode 100644
index 0000000000000000000000000000000000000000..7c95fe1fd1e1b58d0c0aab1df2ca4d38054b6eef
--- /dev/null
+++ b/layouts/partials/commons/lang-switch.html
@@ -0,0 +1,18 @@
+{{ $page := . }}
+{{ $siteLang := "" }}
+{{ $url := "" }}
+{{ with site.Languages }}
+  <ul>
+    {{ range site.Languages }}
+      {{/*  .Lang  */}}
+      {{ $siteLang := . }}
+      {{ $url = printf "/%s/" .Lang }}
+      {{ range $page.Translations }}
+        {{ if eq .Lang $siteLang.Lang }}
+          {{ $url = .Permalink }}
+        {{ end }}
+      {{ end }}
+      <li><a href="{{ $url }}">{{ $siteLang.LanguageName }}</a></li>
+    {{ end }}
+  </ul>
+{{ end }}
diff --git a/layouts/partials/commons/menu.html b/layouts/partials/commons/menu.html
index 767c06198974698a0b7d258c95fbfa6f82b01cdb..531f292ed865f4fd0c5774873782ab493ddfaefd 100644
--- a/layouts/partials/commons/menu.html
+++ b/layouts/partials/commons/menu.html
@@ -1,3 +1,10 @@
+{{- $kind := .kind -}}
+{{ $items := .items }}
+{{ $context := .context }}
+{{ if $kind }}
+  {{ $menu := partial "GetMenu" $kind }}
+  {{ $items = $menu.items }}
+{{ end }}
 {{- $level := .level -}}
 {{- $stop := .stop -}}
 {{- $dropdown := .dropdown }}
@@ -7,13 +14,16 @@
 {{- end -}}
 {{ $extern_link := i18n "commons.link.blank" }}
 <ul class="{{ $ulClass }}{{ if $level }}nav-level-{{ $level }}{{ end }}">
-  {{ range .items -}}
+  {{ range $items -}}
     {{- $slug := urlize .title -}}
     {{- $itemClass := "" -}}
     {{- $linkClass := "" -}}
     {{- $attr := "" -}}
     {{- $attr_title := "" -}}
     {{- $hasDropdown := false -}}
+    {{ if eq $context.RelPermalink .target }}
+      {{ $linkClass = "active" }}
+    {{ end }}
     {{- if gt (len .children) 0 -}}
       {{- $itemClass = printf "%shas-children" $itemClass -}}
     {{- end -}}
@@ -42,6 +52,7 @@
                 (dict
                   "items" .children
                   "level" $nextLevel
+                  "context" $context
                 ) -}}
         {{- end -}}
         {{- if $hasDropdown -}}
diff --git a/layouts/partials/commons/summary.html b/layouts/partials/commons/summary.html
index 62f87cd003bffc307ed2745f7939b7e47b3df415..ba373dae0ab485522d315405e034689c36c3c5c1 100644
--- a/layouts/partials/commons/summary.html
+++ b/layouts/partials/commons/summary.html
@@ -10,9 +10,9 @@
   <div class="container">
   {{- end -}}
 
-    <p class="lead" role="heading" aria-level="2">
-      {{ partial "PrepareHTML" .context.Params.summary }}
-    </p>
+  <p class="lead" role="heading" aria-level="2">
+    {{ partial "PrepareText" .context.Params.summary }}
+  </p>
 
   {{- if .block_wrapped -}}
       </div>
diff --git a/layouts/partials/diplomas/diplomas.html b/layouts/partials/diplomas/diplomas.html
index aa7c86ce5d780de048d1b0768fa34873128c0d53..aed223f94b3b370eb0c20090d28b0cf16419c2fe 100644
--- a/layouts/partials/diplomas/diplomas.html
+++ b/layouts/partials/diplomas/diplomas.html
@@ -11,20 +11,35 @@
       </a>
       <div class="content">
         <div class="description">
-          {{- partial "PrepareHTML" .Params.summary -}}
+          {{- partial "PrepareText" .Params.summary -}}
         </div>
 
         <ol class="programs">
-          {{- range .Pages -}}
-            <li>
-              <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" .Title)) }}">
-                {{- partial "PrepareHTML" .Title -}}
-              </a>
-            </li>
+          {{- range .Params.programs -}}
+            {{- template "programsList" . -}}
           {{- end -}}
         </ol>
-
       </div>
     </li>
   {{ end }}
 </ul>
+
+{{- define "programsList" -}}
+  <li>
+    <a href="{{ .path }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" .label)) }}">
+      {{- partial "PrepareHTML" .label -}}
+    </a>
+    <ol>
+      {{- range .children -}}
+      <li>
+        <a href="{{ .path }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" .label)) }}">
+          {{- partial "PrepareHTML" .label -}}
+        </a>
+        {{ if .children }}
+          {{- template "programsList" . -}}
+        {{ end }}
+      </li>
+      {{ end }}
+    </ol>
+  </li>
+{{- end -}}
\ No newline at end of file
diff --git a/layouts/partials/footer/footer-simple.html b/layouts/partials/footer/footer-simple.html
index 01a5b6e083a726ef62af92d8bf930c8fa19bd452..40f8d28809f71acfc48a40e80154b05198405d20 100644
--- a/layouts/partials/footer/footer-simple.html
+++ b/layouts/partials/footer/footer-simple.html
@@ -6,6 +6,7 @@
     {{ partial "footer/site.html" }}
   </div>
 </div>
+{{ partial "footer/i18n.html" . }}
 <div class="container">
   <div class="footer-social">
     {{ partial "footer/social.html" }}
diff --git a/layouts/partials/footer/footer.html b/layouts/partials/footer/footer.html
index 21183ce4fba865f7ba6c361de74049d086968d96..c736c8a8ae42a3d5189070e3571a2bbafb64164a 100644
--- a/layouts/partials/footer/footer.html
+++ b/layouts/partials/footer/footer.html
@@ -1,3 +1,3 @@
 <footer id="document-footer">
-  {{ partial "footer/footer-simple.html" }}
+  {{ partial "footer/footer-simple.html" . }}
 </footer>
diff --git a/layouts/partials/footer/i18n.html b/layouts/partials/footer/i18n.html
new file mode 100644
index 0000000000000000000000000000000000000000..2419989bd94135de099090b87e98b0e82b0d01de
--- /dev/null
+++ b/layouts/partials/footer/i18n.html
@@ -0,0 +1,24 @@
+{{ $page := . }}
+{{ $pageWithTranslations := $page.Translations | append $page }}
+{{ $siteLang := "" }}
+{{ $url := "" }}
+{{ if gt (len site.Languages) 1 }}
+<div class="container">
+  <div class="footer-i18n">
+    {{ with site.Languages }}
+      <ul class="small">
+        {{ range site.Languages }}
+          {{ $siteLang := . }}
+          {{ $url = printf "/%s/" .Lang }}
+          {{ range $pageWithTranslations }}
+            {{ if eq .Lang $siteLang.Lang }}
+              {{ $url = .Permalink }}
+            {{ end }}
+          {{ end }}
+          <li><a href="{{ $url }}">{{ $siteLang.LanguageName }}</a></li>
+        {{ end }}
+      </ul>
+    {{ end }}
+  </div>
+</div>
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/footer/legals.html b/layouts/partials/footer/legals.html
index 2338c9d862d5a2a9cf8400cddf86436a0dee9bb0..9faf4ad75385d6e74eda00c3da605e35719f1969 100644
--- a/layouts/partials/footer/legals.html
+++ b/layouts/partials/footer/legals.html
@@ -1,11 +1,10 @@
-<div class="footer-legal">
-  {{ if site.Data.menus.legal }}
-    {{ partial "commons/menu.html"
-      (dict
-        "items"       site.Data.menus.legal
-        "level"       1
-        "class"       "nav-legal"
-      )}}
-  {{ end }}
-  {{ partial "footer/credit.html" }}
-</div>
\ No newline at end of file
+{{ $menu := partial "GetMenu" "legal" }}
+{{ if $menu }}
+  {{ partial "commons/menu.html"
+    (dict
+      "kind"        "legal"
+      "level"       1
+      "class"       "nav-legal"
+    )}}
+{{ end }}
+{{ partial "footer/credit.html" }}
diff --git a/layouts/partials/footer/social.html b/layouts/partials/footer/social.html
index a591f5e5cee997ea3fe7e5518ca32222e0f2631c..4b7cb175f65b328a081e31a50adbe295f0e4c890 100644
--- a/layouts/partials/footer/social.html
+++ b/layouts/partials/footer/social.html
@@ -1,10 +1,10 @@
-<div class="footer-social">
-  {{ if site.Data.menus.social }}
-    {{ partial "commons/menu.html"
-      (dict
-        "items"       site.Data.menus.social
-        "level"       1
-        "class"       "nav-social"
-      )}}
-  {{ end }}
-</div>
+{{ $menu := partial "GetMenu" "social" }}
+{{ if $menu }}
+  {{ partial "commons/menu.html"
+    (dict
+      "kind"        "social"
+      "level"       1
+      "class"       "nav-social"
+    )}}
+{{ end }}
+
diff --git a/layouts/partials/head/seo.html b/layouts/partials/head/seo.html
index 1a4694524eead60fee5462b39ccaf5e3ef0a3a75..93ad3f2eb3ea8913e27db9c6a28168623771e057 100644
--- a/layouts/partials/head/seo.html
+++ b/layouts/partials/head/seo.html
@@ -8,7 +8,7 @@
 {{- else if .Params.description -}}
   {{- $seoDescription = partial "PrepareHTML" .Params.description -}} {{/*  LEGACY  */}}
 {{- else if .Params.summary -}}
-  {{- $seoDescription = partial "PrepareHTML" .Params.summary -}}
+  {{- $seoDescription = partial "PrepareText" .Params.summary -}}
 {{- else if .Content -}}
   {{- $seoDescription = partial "GetTruncateContent" ( dict "text" .Content ) -}}
 {{- else if .Params.legacy_text -}}
diff --git a/layouts/partials/header/header.html b/layouts/partials/header/header.html
index a37e6b1fd9f9681a3bf26540c4770d2acdd7c543..f0ab7dce143b4e88d003861bd9cff212c7f9dda6 100644
--- a/layouts/partials/header/header.html
+++ b/layouts/partials/header/header.html
@@ -1,18 +1,18 @@
+{{ $context := . }}
 <header id="document-header">
   <nav aria-label="{{ i18n "commons.menu.main" }}">
     <div class="container">
       {{ partial "header/logo.html" }}
-      {{ if isset site.Data.menus "primary"}}
-        {{ partial "header/button.html" }}
-        <div class="menu" id="navigation">
-          {{ partial "commons/menu.html"
-                (dict
-                  "items" site.Data.menus.primary
-                  "dropdown" true
-                  "level" 1
-                )}}
-        </div>
-      {{ end }}
+      {{ partial "header/button.html" }}
+      <div class="menu" id="navigation">
+        {{ partial "commons/menu.html"
+            (dict
+              "kind" "primary"
+              "dropdown" true
+              "level" 1
+              "context" .
+            ) }}
+      </div>
     </div>
   </nav>
 </header>
diff --git a/layouts/partials/header/hero.html b/layouts/partials/header/hero.html
index 45be3537a1e573cdda176e5593423074eb0519b7..cb14b4bce0bb5c8b80ab2d2a34cc33cf94f0ab3d 100644
--- a/layouts/partials/header/hero.html
+++ b/layouts/partials/header/hero.html
@@ -1,9 +1,10 @@
 {{- $direction := "" -}}
+{{- $breadcrumb_is_after_hero := eq site.Params.breadcrumb.position "after-hero"  -}}
 {{ if .image }}
   {{- $direction = partial "GetImageDirection" .image -}}
 {{ end }}
 
-<header class="hero {{ if .image -}}hero--with-image hero--image-{{- $direction -}}{{- end -}}">
+<header class="hero {{ if .image -}}hero--with-image hero--image-{{- $direction -}}{{- end }} {{ if $breadcrumb_is_after_hero -}} hero--no-margin {{- end }}">
   <div class="container">
     {{- if eq site.Params.breadcrumb.position "hero-start" -}}
       {{- if .breadcrumb | default true -}}
@@ -32,7 +33,7 @@
                 "sizes"    ( .sizes | default site.Params.image_sizes.design_system.hero )
                 "lazy"     false
               ) }}
-              {{ if .image.credit }}
+              {{ if partial "GetTextFromHTML" .image.credit }}
                 <figcaption tabindex="0">
                   <p>
                     {{- partial "GetTextFromHTML" .image.credit -}}
@@ -51,9 +52,9 @@
   </div>
 </header>
 
-{{- if eq site.Params.breadcrumb.position "after-hero" -}}
+{{- if $breadcrumb_is_after_hero -}}
   {{- if .breadcrumb | default true -}}
-    <div class="container">
+    <div class="container breadcrumb-container">
       {{ partial "header/breadcrumbs.html" .context }}
     </div>
   {{- end -}}
diff --git a/layouts/partials/organizations/logo.html b/layouts/partials/organizations/logo.html
index 9d919c1b310b8e669e67e5af867acd0002428ccd..586ead648b88f877a43f76e02e459d2a5e8db316 100644
--- a/layouts/partials/organizations/logo.html
+++ b/layouts/partials/organizations/logo.html
@@ -1,10 +1,14 @@
 {{- if .Params.logo -}}
+  {{ $logo_index := "logo" }}
+  {{ if site.Params.organizations.dark_logo_background }}
+    {{ $logo_index = "logo_on_dark_background" }}
+  {{ end }}
   <figure class="logo">
     {{- partial "commons/image.html"
-          (dict
-            "image"    .Params.logo
-            "alt"      .Title
-            "sizes"    site.Params.image_sizes.sections.organizations.logo
-          ) -}}
+        (dict
+          "image"    (index .Params $logo_index)
+          "alt"      .Title
+          "sizes"    site.Params.image_sizes.sections.organizations.logo
+        ) -}}
   </figure>
 {{- end -}}
diff --git a/layouts/partials/organizations/organization.html b/layouts/partials/organizations/organization.html
index a82c6cc2991269d6327df5c96d3137d61d2d24e0..a2d88bc418f25facee2ef920df1d9a3768f35297 100644
--- a/layouts/partials/organizations/organization.html
+++ b/layouts/partials/organizations/organization.html
@@ -1,13 +1,21 @@
 <article class="organization">
   <div>
     {{ $title := partial "PrepareHTML" .Title }}
-    <h2><a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">{{ $title }}</a></h2>
+    <h2>
+      <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">
+        {{ $title }}
+      </a>
+    </h2>
   </div>
   <div class="media">
     {{- if .Params.logo -}}
+    {{ $logo_index := "logo" }}
+    {{ if site.Params.organizations.dark_logo_background }}
+      {{ $logo_index = "logo_on_dark_background" }}
+    {{ end }}
       {{- partial "commons/image.html"
             (dict
-              "image"    .Params.logo
+              "image"    (index .Params  $logo_index)
               "alt"      $title
               "sizes"    site.Params.image_sizes.sections.organizations.item
             ) -}}
diff --git a/layouts/partials/pages/page.html b/layouts/partials/pages/page.html
index d2836679ee130bb6c47f718093b99d730d795c81..d3ecfcf867cfed43f13ebcba2891b9fa42c25f64 100644
--- a/layouts/partials/pages/page.html
+++ b/layouts/partials/pages/page.html
@@ -17,7 +17,7 @@
       </a>
     {{- partial "PrepareHTML" (printf "</%s>" $heading) -}}
     {{- if .Params.summary }}
-      <p>{{ partial "PrepareHTML" .Params.summary }}</p>
+      <p>{{ partial "PrepareText" .Params.summary }}</p>
     {{ end -}}
   </div>
 </article>
diff --git a/layouts/partials/persons/list-item.html b/layouts/partials/persons/list-item.html
index 327244c7b3c7a14308f218752105c61f0b9cdd65..8f004ecad97f163238cfcac35d618fd13c9a17e9 100644
--- a/layouts/partials/persons/list-item.html
+++ b/layouts/partials/persons/list-item.html
@@ -1,6 +1,6 @@
 <li itemscope itemtype="https://schema.org/Person">
   <p itemprop="name"><a href="{{ .Permalink }}">{{ partial "PrepareHTML" .Title }}</a></p>
   {{- if partial "GetTextFromHTML" .Params.summary }}
-    <p itemprop="jobTitle">{{- partial "PrepareHTML" .Params.summary -}}</p>
+    <p itemprop="jobTitle">{{- partial "PrepareText" .Params.summary -}}</p>
   {{ end -}}
 </li>
\ No newline at end of file
diff --git a/layouts/partials/persons/papers.html b/layouts/partials/persons/papers.html
index 904b50f6fcb52be859b577685125093f2afd3c27..a0c9bac3de6145f2bf359fa4537d1ad5f03767bd 100644
--- a/layouts/partials/persons/papers.html
+++ b/layouts/partials/persons/papers.html
@@ -1,7 +1,8 @@
 {{ $researchers := site.GetPage (printf "/researchers/%s" .slug) }}
 <section>
   <div class="top">
-    <h2><a href="{{ $researchers.Permalink }}">{{ i18n "persons.papers" }}</a></h2>
+    <h2>{{ i18n "persons.papers" }}</h2>
+    <a href="{{ $researchers.Permalink }}" class="link">{{ i18n "persons.papers" }}</a>
   </div>
   <ul class="papers">
     {{ range first 3 .papers }}
diff --git a/layouts/partials/persons/person.html b/layouts/partials/persons/person.html
index 6d48c7f950269ccceb868168f5f82d08f365b20b..2b709098481da6ad98ff1ab8d8c67670776f97a6 100644
--- a/layouts/partials/persons/person.html
+++ b/layouts/partials/persons/person.html
@@ -3,7 +3,7 @@
     {{- $title := partial "PrepareHTML" .Title }}
     <p class="name"><a href="{{ .Permalink }}">{{- $title -}}</a></p>
     {{- if partial "GetTextFromHTML" .Params.summary }}
-      <p>{{- partial "PrepareHTML" .Params.summary -}}</p>
+      <p>{{- partial "PrepareText" .Params.summary -}}</p>
     {{ else if (partial "GetTextFromHTML" .Content) }}
       <p>{{- partial "GetTruncateContent" ( dict "text" .Content ) -}}</p>
     {{ end -}}
diff --git a/layouts/partials/persons/publications.html b/layouts/partials/persons/publications.html
new file mode 100644
index 0000000000000000000000000000000000000000..1d6bda5fc96420180680e0d9ccce0f8383d32bb5
--- /dev/null
+++ b/layouts/partials/persons/publications.html
@@ -0,0 +1,10 @@
+<section class="person-publications">
+  <div class="top">
+    <h2 class="h5">{{ i18n "persons.publications" }}</h2>
+  </div>
+  <div class="publications">
+    {{ range . }}
+      {{ partial "publications/publication.html" . }}
+    {{ end }}
+  </div>
+</section>
diff --git a/layouts/partials/posts/author.html b/layouts/partials/posts/author.html
new file mode 100644
index 0000000000000000000000000000000000000000..f0766546acc949643375f77b8c2218d66ddd53e4
--- /dev/null
+++ b/layouts/partials/posts/author.html
@@ -0,0 +1,8 @@
+{{ range .GetTerms "authors" }}
+  {{- $person := site.GetPage (printf "/persons/%s" .Slug) -}}
+  {{ with $person }}
+    <div class="post-author" itemscope itemtype="https://schema.org/Person" itemprop="author">
+      <p itemprop="name">{{ partial "PrepareText" .Title }}</p>
+    </div>
+  {{ end }}
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/posts/post.html b/layouts/partials/posts/post.html
index 10cdc4cb563b993e03bf929606d4cc6953992840..df3fbd9a69246688e9ee3edf6383dfe4fcf6205d 100644
--- a/layouts/partials/posts/post.html
+++ b/layouts/partials/posts/post.html
@@ -14,32 +14,42 @@
       <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">{{ $title }}</a>
     {{ $heading_tag.close }}
 
-    {{ if $.Site.Params.posts.index.show_categories }}
+    {{ if site.Params.posts.index.show_categories }}
       {{- partial "posts/categories" . -}}
     {{ end }}
+
     {{- if (partial "GetTextFromHTML" .Params.summary) -}}
-      {{ if $.Site.Params.posts.index.truncate_description }}
+      {{ if site.Params.posts.index.truncate_description }}
         <p itemprop="articleBody">{{ partial "GetTruncateContent" ( dict 
           "text" .Params.summary
-          "length" $.Site.Params.posts.index.truncate_description
+          "length" site.Params.posts.index.truncate_description
           ) }}</p>
       {{ else }}
-        <p itemprop="articleBody">{{ partial "PrepareHTML" .Params.summary }}</p>
+        <p itemprop="articleBody">{{ partial "PrepareText" .Params.summary }}</p>
       {{ end }}
     {{- end -}}
     
-    <time itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04" }}">{{ .Date | time.Format ":date_long" }}</time>
+    <div class="post-meta">
+      <time itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04" }}">{{ .Date | time.Format ":date_long" }}</time>
+      {{ if site.Params.posts.index.show_author }}
+        {{- partial "posts/author" . -}}
+      {{ end }}
+    </div>
+
+
   </div>
-  <div class="media">
-    {{- if .Params.image -}}
+  {{- if .Params.image -}}
+    <div class="media">
       {{- partial "commons/image.html"
             (dict
               "image"    .Params.image
               "sizes"    site.Params.image_sizes.sections.posts.item
             ) -}}
-    {{- else -}}
+    </div>
+  {{- else if site.Params.posts.default_image -}}
+    <div class="media">
       {{- partial "commons/image-default.html" -}}
-    {{- end -}}
-  </div>
+    </div>
+  {{- end -}}
 </article>
 {{ end }}
\ No newline at end of file
diff --git a/layouts/partials/programs/presentation.html b/layouts/partials/programs/presentation.html
index 2d3893b74e62307847a64d7e2e33f795f90e06a8..a3076eda67e4911aeed3ee047343230e6f201afe 100644
--- a/layouts/partials/programs/presentation.html
+++ b/layouts/partials/programs/presentation.html
@@ -29,21 +29,21 @@
                   {{- $diploma := site.GetPage (printf "/diplomas/%s" .) -}}
                   {{- with $diploma.Params.ects -}}
                     <tr>
-                      <th>{{ i18n "programs.ects_credits" }}</th>
+                      <th scope="row">{{ i18n "programs.ects_credits" }}</th>
                       <td>{{ partial "PrepareHTML" . }}</td>
                     </tr>
                   {{- end -}}
                 {{- end -}}
                 <tr>
-                  <th>{{ i18n "programs.type.initial" }}</th>
+                  <th scope="row">{{ i18n "programs.type.initial" }}</th>
                   <td>{{ if .Params.initial }}{{ i18n "commons.true" }}{{ else }}{{ i18n "commons.false" }}{{ end }}</td>
                 </tr>
                 <tr>
-                  <th>{{ i18n "programs.type.continuing" }}</th>
+                  <th scope="row">{{ i18n "programs.type.continuing" }}</th>
                   <td>{{ if .Params.continuing }}{{ i18n "commons.true" }}{{ else }}{{ i18n "commons.false" }}{{ end }}</td>
                 </tr>
                 <tr>
-                  <th>{{ i18n "programs.type.apprenticeship" }}</th>
+                  <th scope="row">{{ i18n "programs.type.apprenticeship" }}</th>
                   <td>{{ if .Params.apprenticeship }}{{ i18n "commons.true" }}{{ else }}{{ i18n "commons.false" }}{{ end }}</td>
                 </tr>
                 {{- if partial "GetTextFromHTML" .Params.capacity -}}
diff --git a/layouts/partials/programs/related.html b/layouts/partials/programs/related.html
index 0c0dd60f2f63bcb9444e64fcac2ecdece1e2d607..7a284027a0f2a55670faec061794f0763da766cb 100644
--- a/layouts/partials/programs/related.html
+++ b/layouts/partials/programs/related.html
@@ -7,9 +7,14 @@
         {{ $category_name := safeHTML .Title | truncate 30 }}
         {{ i18n "posts.see_all_in_program" (dict "Title" $category_name) }}
       </a>
-      <div class="blocks">
-        {{ partial "posts/block-posts-layout.html" (dict "posts" .Pages ) }}
-      </div>
+
+      {{/*  Related posts  */}}
+      {{ $posts := first site.Params.programs.related_posts.quantity .Pages }}
+      {{ if gt (len $posts) 0 }}
+        <div class="blocks">
+          {{ partial "posts/block-posts-layout.html" (dict "posts" $posts ) }}
+        </div>
+      {{ end }}
     </div>
   </div>
 </section>
diff --git a/layouts/partials/programs/toc.html b/layouts/partials/programs/toc.html
index 42a04f3a6432fbda54fdb92640d39db13838d21f..2a0746a92db9ca4bf80c5a44bc6a92e50412c671 100644
--- a/layouts/partials/programs/toc.html
+++ b/layouts/partials/programs/toc.html
@@ -42,7 +42,7 @@
         </ol>
     </li>
     <li>
-      <a href="#pedagogy">{{ i18n "programs.toc.pedagogy" }}</a>
+      <a href="#{{ urlize (i18n "programs.toc.pedagogy") }}">{{ i18n "programs.toc.pedagogy" }}</a>
       {{- if or $content $pedagogy $evaluation $teachers }}
       <ol>
         {{- if $content -}}
@@ -61,7 +61,7 @@
       {{ end -}}
     </li>
     <li>
-      <a href="#results">{{ i18n "programs.toc.results" }}</a>
+      <a href="#{{ urlize (i18n "programs.toc.results") }}">{{ i18n "programs.toc.results" }}</a>
       {{- if or $opportunities $results }}
       <ol>
         {{- if $opportunities -}}
@@ -74,7 +74,7 @@
       {{ end -}}
     </li>
     <li>
-      <a href="#admission">{{ i18n "programs.toc.admission" }}</a>
+      <a href="#{{ urlize (i18n "programs.toc.admission") }}">{{ i18n "programs.toc.admission" }}</a>
       {{- if or $prerequisites $pricing $registration $accessibility $other $roles $contacts }}
       <ol>
         {{- if $prerequisites -}}
diff --git a/layouts/partials/publications/publication.html b/layouts/partials/publications/publication.html
new file mode 100644
index 0000000000000000000000000000000000000000..f2dc59dab000f61e7192656c5d6cb835f5bd83db
--- /dev/null
+++ b/layouts/partials/publications/publication.html
@@ -0,0 +1,8 @@
+<article class="publication">
+  <p class="title">
+    {{ partial "PrepareHTML" .title }}
+  </p>
+  <p class="ref">
+    {{ partial "PrepareHTML" .ref }}
+  </p>
+</article>
diff --git a/layouts/persons/single.html b/layouts/persons/single.html
index af7ba655f7def355827d4da56049be80cdfad625..eb83802839dffd17220a57d263f4a561d18d6064 100644
--- a/layouts/persons/single.html
+++ b/layouts/persons/single.html
@@ -13,6 +13,7 @@
     {{ $papersForResearcher = index site.Taxonomies.researchers $slug}}
   {{ end }}
   {{ $author := site.GetPage (printf "/authors/%s" $slug) }}
+  {{ $publications := .Params.publications }}
 
   {{ partial "persons/hero-single.html" . }}
 
@@ -37,7 +38,7 @@
         <div>
           {{ if (partial "GetTextFromHTML" .Params.summary) }}
             <div class="lead" itemprop="description">
-              {{ partial "PrepareHTML" .Params.summary }}
+              {{ partial "PrepareText" .Params.summary }}
             </div>
           {{ end }}
           {{ if (partial "GetTextFromHTML" .Content) }}
@@ -68,7 +69,7 @@
 
     {{ partial "blocks/list.html" . }}
 
-    <div class="container">
+    <div class="container person-objects">
       {{ if $programsForTeacher }}
         {{ partial "persons/programs.html" (dict "programs" $programsForTeacher "slug" $slug) }}
       {{ end }}
@@ -80,6 +81,10 @@
       {{ if $papersForResearcher }}
         {{ partial "persons/papers.html" (dict "papers" $papersForResearcher "slug" $slug) }}
       {{ end }}
+  
+      {{ if $publications }}
+        {{ partial "persons/publications.html" $publications }}
+      {{ end }}
     </div>
   </div>
 {{ end }}
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index 4be3de9bad1ff5bb728b164ace32720386f5ac90..75f978ef76ba4b6b1e6353cf0314affbff9f4f30 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -5,8 +5,8 @@
     <meta itemprop="headline" content="{{ partial "PrepareHTML" .Title }}">
     <meta itemprop="url" content="{{ .Permalink }}">
     {{ if .Date }}<meta itemprop="datePublished" content="{{ .Date.Format "2006-01-02T15:04" }}">{{ end }}
-    {{ if .Params.summary }}<meta itemprop="abstract" content="{{ partial "PrepareHTML" .Params.summary }}">{{ end }}
-    {{ if .Summary }}<meta itemprop="description" content="{{ partial "PrepareHTML" .Summary }}">{{ end }}
+    {{ if .Params.summary }}<meta itemprop="abstract" content="{{ partial "PrepareText" .Params.summary }}">{{ end }}
+    {{ if .Summary }}<meta itemprop="description" content="{{ partial "PrepareText" .Summary }}">{{ end }}
 
     {{ partial "posts/sidebar.html" . }}
 
diff --git a/static/assets/fonts/fonticons/IconFont.ttf b/static/assets/fonts/fonticons/IconFont.ttf
index 330990416174df467bdf918ebf4dd4c201897499..2a33ea9c7378a8b278b92fc9e09539e2844537a0 100644
Binary files a/static/assets/fonts/fonticons/IconFont.ttf and b/static/assets/fonts/fonticons/IconFont.ttf differ
diff --git a/static/assets/fonts/fonticons/IconFont.woff b/static/assets/fonts/fonticons/IconFont.woff
index 32131224ecaa0733a8eca9ac87e4ba81e1464926..7d97eb6a063b9d56851a64216c87f2bb070c0452 100644
Binary files a/static/assets/fonts/fonticons/IconFont.woff and b/static/assets/fonts/fonticons/IconFont.woff differ
diff --git a/static/assets/fonts/fonticons/IconFont.woff2 b/static/assets/fonts/fonticons/IconFont.woff2
index dcab885d075aa66e55151293d18fe34621c9cc76..c9f07b1f8586aab5f3e321e12e696bf96fa2551e 100644
Binary files a/static/assets/fonts/fonticons/IconFont.woff2 and b/static/assets/fonts/fonticons/IconFont.woff2 differ
diff --git a/static/osuny-theme-version b/static/osuny-theme-version
index 9539b9db87be7cb2b2d91477be31fbbd0e59ec94..745d277231e31adf21ccce1e6587be4f77a98161 100644
--- a/static/osuny-theme-version
+++ b/static/osuny-theme-version
@@ -1 +1 @@
-v3.0.12
\ No newline at end of file
+v3.1.9
\ No newline at end of file