diff --git a/assets/sass/_theme/_utils.sass b/assets/sass/_theme/_utils.sass
index 8c16a60f52c980d9b9a7427d577b3bb829c1a7e8..89dcfdf3987bb5d82060f9a157e7cc0bd88e7178 100644
--- a/assets/sass/_theme/_utils.sass
+++ b/assets/sass/_theme/_utils.sass
@@ -130,9 +130,9 @@
     $width: calc( (100% + #{$grid-gutter}) / 12 * #{$quantity-on-base} + #{$grid-gutter})
     @return #{$width}
 
-@function col-outside-container($quantity)
+@function col-outside-container($quantity, $base: 12)
     $responsive-grid-width: Min(100vw, (#{$grid-max-width}))
-    @return calc((#{$responsive-grid-width} + #{$grid-gutter} * 2) / 12 * #{$quantity} - #{$grid-gutter} * 2)
+    @return calc((#{$responsive-grid-width} + #{$grid-gutter} * 2) / #{$base} * #{$quantity} - #{$grid-gutter} * 2)
 
 @mixin container-margin-left
     margin-left: Max(#{$grid-gutter}, calc(50vw - #{$grid-max-width} / 2 + #{$grid-gutter}))
diff --git a/assets/sass/_theme/blocks/call_to_action.sass b/assets/sass/_theme/blocks/call_to_action.sass
index 7ff5ae7eb6af5c3967c66317758fb839f93c7ae8..5b796be16f54952a76232277901e36f15aa90603 100644
--- a/assets/sass/_theme/blocks/call_to_action.sass
+++ b/assets/sass/_theme/blocks/call_to_action.sass
@@ -58,22 +58,30 @@
             .call_to_action
                 display: flex
                 flex-direction: column
-                margin-left: -$grid-gutter
-                margin-right: -$grid-gutter
                 > *
                     order: 2
                 > div
                     background-color: $block-call-to-action-background
-                    padding: $grid-gutter
+                    padding: col(1, 8)
                     width: 100%
+                    position: relative
+                    &::after
+                        background-color: $block-call-to-action-background
+                        content: ''
+                        display: block
+                        position: absolute
+                        top: 0
+                        bottom: 0
+                        left: 100%
+                        width: Max(#{$grid-gutter}, calc(50vw - #{half($grid-max-width)} + #{$grid-gutter}))
                 &--with-image
                     picture
                         order: 1
-                        padding-left: $grid-gutter
-                        padding-right: $grid-gutter
+                        padding-left: col(1, 8)
+                        padding-right: col(1, 8)
                         position: relative
                         img
-                            width: col(3, 7)
+                            width: col(3, 6)
                             margin-bottom: calc(-#{$grid-gutter} + -#{$spacing1})
                     > div
                         padding-top: calc(#{$grid-gutter} + #{$spacing3})
diff --git a/layouts/diplomas/list.html b/layouts/diplomas/list.html
index 10585d3e3d481588aeb31099b44b52a51d6f2eff..90957484baf2e0366199c2885049094c29811e3e 100644
--- a/layouts/diplomas/list.html
+++ b/layouts/diplomas/list.html
@@ -3,14 +3,11 @@
 
   <div class="document-content">
     <div class="container">
-      {{ partial "diplomas/image.html" .Params.image }}
       {{ partial "diplomas/chapo.html" .Params.description_short }}
     </div>
     {{ partial "blocks/list.html" . }}
     <div class="container">
-      {{ .Scratch.Set "show_programs" true }}
       {{ partial "diplomas/diplomas.html" . }}
-      {{ .Scratch.Delete "show_programs" }}
     </div>
   </div>
 
diff --git a/layouts/partials/GetBodyclass b/layouts/partials/GetBodyclass
index 8663c304c5ed0d448370c09f9751fccb55dbe543..019f78a334e243ff886bbdd7dd5854c43cf7fa55 100644
--- a/layouts/partials/GetBodyclass
+++ b/layouts/partials/GetBodyclass
@@ -4,7 +4,7 @@
   {{- $bodyclass = printf "page-%s" $bodyclass -}}
 {{- end -}}
 
-{{- if or .Params.full_width (and (eq .Kind "section") (eq .Type "posts")) -}}
+{{- if or .Params.full_width (and (eq .Kind "section") (eq .Type "posts")) (and (or (eq .Type "programs") (eq .Type "diplomas") ) (not .Params.diplomas)) -}}
   {{- $bodyclass = printf "full-width %s" $bodyclass -}}
 {{- end -}}
 
diff --git a/layouts/partials/diplomas/diplomas.html b/layouts/partials/diplomas/diplomas.html
index f7a297eb7c72328a454b6415a8a9be500830a96e..cf025d6bb3903d4f4034c66f36b35ac67926ab8a 100644
--- a/layouts/partials/diplomas/diplomas.html
+++ b/layouts/partials/diplomas/diplomas.html
@@ -1,7 +1,3 @@
-{{ $show_programs := false }}
-{{- if .Scratch.Get "show_programs" }}
-  {{ $show_programs = true }}
-{{ end -}}
 <ul class="diplomas">
   {{ range .Paginator.Pages }}
     <li>
@@ -18,17 +14,17 @@
           Lorem, ipsum dolor sit amet consectetur adipisicing elit. Esse labore aliquid nobis quasi, molestiae voluptatum ullam et consequatur voluptas. Eligendi quaerat veniam, sequi repellat illo dignissimos quasi libero itaque dolorum?
           {{- partial "PrepareHTML" .Params.description_short -}}
         </div>
-        {{- if $show_programs }}
-          <ol class="programs">
-            {{- range .Pages -}}
-              <li>
-                <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" .Title)) }}">
-                  {{- partial "PrepareHTML" .Title -}}
-                </a>
-              </li>
-            {{- end -}}
-          </ol>
-        {{ end -}}
+
+        <ol class="programs">
+          {{- range .Pages -}}
+            <li>
+              <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" .Title)) }}">
+                {{- partial "PrepareHTML" .Title -}}
+              </a>
+            </li>
+          {{- end -}}
+        </ol>
+
       </div>
     </li>
   {{ end }}
diff --git a/layouts/partials/diplomas/hero-list.html b/layouts/partials/diplomas/hero-list.html
index d989fe21231ac352c6f61792a19853092bdff120..8e7e675c055dce99ef4dda14b248d20db258f721 100644
--- a/layouts/partials/diplomas/hero-list.html
+++ b/layouts/partials/diplomas/hero-list.html
@@ -2,5 +2,6 @@
 {{- partial "header/hero.html"
       (dict
         "title" $title
+        "image" .Params.image
         "context" .
       ) -}}
diff --git a/layouts/partials/diplomas/hero-single.html b/layouts/partials/diplomas/hero-single.html
index 0d4312a1536df56034877eb40ee5bc6bcdaf66e4..abe6f4f9c2ebc7bc15338bebca2343edcbaaf0a9 100644
--- a/layouts/partials/diplomas/hero-single.html
+++ b/layouts/partials/diplomas/hero-single.html
@@ -6,6 +6,22 @@
     {{- end -}}
     <div class="content">
       <h1>{{ partial "PrepareHTML" $title }}</h1>
+      {{- if .Params.image }}
+        <figure>
+          {{ partial "commons/image.html"
+            (dict
+              "image"    .image
+              "mobile"   "351"
+              "tablet"   "456"
+              "desktop"  "856"
+            ) }}
+          {{ if .image.credit }}
+            <figcaption>
+              {{- partial "PrepareHTML" .image.credit -}}
+            </figcaption>
+          {{ end }}
+        </figure>
+      {{ end -}}
     </div>
   </div>
   <div id="essential">
diff --git a/layouts/partials/programs/list.html b/layouts/partials/programs/list.html
index c45261d76a422d0c54fa1858265e887dc1a63b25..6d96dc91b3a1469cba1f570bc8a21f0527e50010 100644
--- a/layouts/partials/programs/list.html
+++ b/layouts/partials/programs/list.html
@@ -1,6 +1,5 @@
 <div class="document-content">
   <div class="container">
-    {{ partial "programs/image.html" .Params.image }}
     {{ partial "programs/chapo.html" .Params.description_short }}
   </div>
   {{ partial "blocks/list.html" . }}