@charset "UTF-8";
@import url("//hello.myfonts.net/count/340d13");
* {
  -webkit-box-sizing: border-box;
  /* Safari/Chrome, other WebKit */
  -moz-box-sizing: border-box;
  /* Firefox, other Gecko */
  box-sizing: border-box;
  /* Opera/IE 8+ */
  margin: 0;
  padding: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary {
  display: block; }

audio, canvas, video {
  display: inline-block;
  *display: inline;
  *zoom: 1; }

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  font-size: 1em; }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden] {
  display: none; }

html {
  font-size: 100%;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

html, button, input, select, textarea {
  font-family: sans-serif; }

a, a:active, a:hover {
  outline: 0;
  text-decoration: none; }

abbr[title] {
  border-bottom: 1px dotted; }

b, strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

mark {
  background: #ff0;
  color: #000; }

code, kbd, pre, samp {
  font-family: monospace, serif;
  _font-family: 'courier new', monospace;
  font-size: 1em; }

pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

q {
  quotes: none; }

q:before, q:after {
  content: '';
  content: none; }

small {
  font-size: 75%; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

dl, menu, ol, ul {
  list-style: none; }

img {
  border: 0;
  /* 1 */
  -ms-interpolation-mode: bicubic;
  /* 2 */ }

svg:not(:root) {
  overflow: hidden; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  border: 0;
  /* 1 */
  white-space: normal;
  /* 2 */
  *margin-left: -7px;
  /* 3 */ }

button, input, select, textarea {
  font-size: 100%;
  /* 1 */
  vertical-align: baseline;
  /* 3 */
  *vertical-align: middle;
  /* 3 */ }

button, input {
  line-height: normal; }

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
  *overflow: visible;
  /* 4 */ }

button[disabled],
input[disabled] {
  cursor: default; }

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  *height: 13px;
  /* 3 */
  *width: 13px;
  /* 3 */ }

input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

table {
  border-collapse: collapse;
  border-spacing: 0; }

@keyframes rotation {
  0% {
    transform: rotate(-90deg); }
  100% {
    transform: rotate(0deg); } }

@-webkit-keyframes rotation {
  0% {
    -webkit-transform: rotate(-90deg); }
  100% {
    -webkit-transform: rotate(0deg); } }

@-webkit-keyframes $animation-name {
  0% {
    transform: rotate(0deg); }
  33% {
    transform: rotate(-45deg); }
  66% {
    transform: rotate(45deg); }
  100% {
    transform: rotate(0deg); } }

@-moz-keyframes $animation-name {
  0% {
    transform: rotate(0deg); }
  33% {
    transform: rotate(-45deg); }
  66% {
    transform: rotate(45deg); }
  100% {
    transform: rotate(0deg); } }

@keyframes $animation-name {
  0% {
    transform: rotate(0deg); }
  33% {
    transform: rotate(-45deg); }
  66% {
    transform: rotate(45deg); }
  100% {
    transform: rotate(0deg); } }

/**
 * @license
 * MyFonts Webfont Build ID 3411219, 2017-06-25T11:42:08-0400
 * 
 * The fonts listed in this notice are subject to the End User License
 * Agreement(s) entered into by the website owner. All other parties are 
 * explicitly restricted from using the Licensed Webfonts(s).
 * 
 * You may obtain a valid license at the URLs below.
 * 
 * Webfont: HelveticaLTWXX-Light by Linotype
 * URL: https://www.myfonts.com/fonts/linotype/helvetica/pro-light/
 * Copyright: Copyright &#x00A9; 2014 Monotype Imaging Inc. All rights reserved.
 * Licensed pageviews: 250,000
 * 
 * 
 * License: https://www.myfonts.com/viewlicense?type=web&buildid=3411219
 * 
 * © 2017 MyFonts Inc
*/
/* @import must be at top of file, otherwise CSS will not work */
@font-face {
  font-family: 'HelveticaLTWXX-Light';
  font-weight: normal;
  font-style: normal;
  src: url("../fonts/340D13_0_0.eot");
  src: url("../fonts/340D13_0_0.eot?#iefix") format("embedded-opentype"), url("../fonts/340D13_0_0.woff2") format("woff2"), url("../fonts/340D13_0_0.woff") format("woff"), url("../fonts/340D13_0_0.ttf") format("truetype"); }

html, body {
  height: 100%; }

body {
  line-height: 1.25;
  font-size: 24px;
  font-family: 'HelveticaLTWXX-Light', sans-serif;
  color: #000;
  text-align: left;
  background-color: #fff; }
  @media (max-width: 1440px) {
    body {
      font-size: 21px; } }
  @media (max-width: 960px) {
    body {
      font-size: 18px; } }
  @media (max-width: 640px) {
    body {
      font-size: 16px; } }

a, a:visited, a:focus {
  text-decoration: none;
  color: #000;
  outline: none; }

.entry-content a, a:hover, a:hover > * {
  color: #0000ff !important; }

img {
  display: inline-block;
  max-width: 100%;
  height: auto; }

.left {
  float: left; }

.right {
  float: right; }

.one {
  width: 100%; }

.one-two {
  width: 50%; }
  @media (max-width: 640px) {
    .one-two {
      width: 100%; } }

.one-three {
  width: 33.333333%; }
  @media (max-width: 640px) {
    .one-three {
      width: 100%; } }

.two-three {
  width: 66.666666%; }
  @media (max-width: 640px) {
    .two-three {
      width: 100%; } }

.hide {
  display: none; }

.show {
  display: block; }

.wrapper {
  margin: 0 auto;
  max-width: 50em;
  padding: 0 2em;
  position: relative;
  *zoom: 1; }
  .wrapper:before, .wrapper:after {
    content: "";
    display: table; }
  .wrapper:after {
    clear: both; }
  @media (max-width: 640px) {
    .wrapper {
      padding: 0 1.5em; } }

.full-height {
  max-height: 100%;
  overflow: hidden;
  position: relative; }
  @media (max-width: 960px) {
    .full-height {
      height: auto; } }
  @media screen and (max-aspect-ratio: 4 / 3) {
    .full-height {
      height: auto; } }

.black {
  color: #000; }
  .black a, .black a:visited, .black a:focus {
    color: #000; }

.white {
  color: #fff; }
  .white a, .white a:visited, .white a:focus {
    color: #fff; }

.light-grey {
  color: #B4B4B4; }
  .light-grey a, .light-grey a:visited, .light-grey a:focus {
    color: #B4B4B4; }

.dark-grey {
  color: #464646; }
  .dark-grey a, .dark-grey a:visited, .dark-grey a:focus {
    color: #464646; }

.middle-grey {
  color: #7A7A7A; }
  .middle-grey a, .middle-grey a:visited, .middle-grey a:focus {
    color: #7A7A7A; }

.entry-categories {
  margin: 1.25em 0 0 0.3em; }

.columns-two {
  -webkit-columns: 2;
  -moz-columns: 2;
  columns: 2;
  -webkit-column-gap: 2em;
  -moz-column-gap: 2em;
  column-gap: 2em; }
  @media (max-width: 640px) {
    .columns-two {
      -webkit-columns: 1;
      -moz-columns: 1;
      columns: 1; } }

.big-title {
  display: inline-block;
  font-size: 6em;
  line-height: 1;
  word-wrap: break-word; }
  @media (max-width: 780px) {
    .big-title {
      font-size: 4em; } }
  @media (max-width: 640px) {
    .big-title {
      font-size: 2.5em; } }
  @media (max-width: 380px) {
    .big-title {
      font-size: 2.0em; } }

.single-title, .home-entry-header {
  position: absolute;
  left: 5%;
  top: 10%;
  width: 90%; }
  @media (max-width: 960px) {
    .single-title, .home-entry-header {
      top: 4em; } }
  @media (max-width: 780px) {
    .single-title, .home-entry-header {
      top: 3em; } }
  @media (max-width: 640px) {
    .single-title, .home-entry-header {
      top: 2.2em; } }
  @media screen and (max-aspect-ratio: 4 / 3) {
    .single-title, .home-entry-header {
      position: absolute; } }

/*
 *	------------------------------------------------------- 	MENU
 */
.logged-in #access {
  top: 32px; }

.category #access + *, .page-template-info #access + *, .blog #access + * {
  padding-top: 100px; }
  @media (max-width: 640px) {
    .category #access + *, .page-template-info #access + *, .blog #access + * {
      padding-top: 4em; } }

#access {
  position: fixed;
  z-index: 8; }
  #access ul {
    position: fixed;
    top: 40px;
    padding: 20px 0;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9;
    text-align: center; }
  #access li {
    display: inline-block;
    padding: 0 1em; }
    @media (max-width: 780px) {
      #access li {
        padding: 0 .75em; } }
    @media (max-width: 640px) {
      #access li {
        padding: 0 .5em; } }
    @media (max-width: 380px) {
      #access li {
        padding: 0 .3em; } }
    @media (max-width: 340px) {
      #access li {
        padding: 0 .25em; } }
  #access li:first-child {
    padding-left: 0; }
  #access li:last-child {
    padding-right: 0; }
    #access li:last-child a {
      text-transform: uppercase; }
  #access a {
    float: left;
    display: block;
    text-shadow: 0 0 1px #fff;
    color: #000; }

/* If property is supported */
@supports (mix-blend-mode: difference) {
  #access {
    mix-blend-mode: difference; }
    #access ul {
      mix-blend-mode: difference; }
    #access a {
      color: #fff;
      text-shadow: none; }
    #access a:hover {
      color: #fff !important; } }

/*
 *	------------------------------------------------------- 	HOME
 */

/* Hero cards */
.home-entry {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #fff;
  color: #000; }

.home-entry a {
  display: block;
  color: #000; }

.home-entry a:hover {
  color: #0000ff !important; }

.home-entry img {
  width: 100%;
  display: block;
  height: auto; }

@media (max-width: 1024px) {
  .home-entry {
    height: 100svh; }

  .home-entry-header,
  .home-entry-header.white,
  .home-entry-header.white a,
  .home-entry-header.white a:visited {
    color: #000; }

  .home-entry a {
    height: 100%;
    display: flex;
    flex-direction: column; }

  .home-entry img {
    flex: 1;
    height: 100%;
    object-fit: cover; } }

/* Overlaid title/cats */
.home-entry-header {
  position: absolute;
  left: 5%;
  top: 8%;
  width: 90%;
  pointer-events: none; }

.home-entry-header .big-title {
  pointer-events: auto; }

.home-entry-header .entry-cats {
  display: block;
  margin-top: 1em;
  margin-left: 0.3em;
  font-size: 1em;
  pointer-events: auto; }

/* About / contact section */
.home-info {
  background-color: #fff;
  padding-top: 4em; }

.home-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em; }

.home-info-grid--contact {
  margin-top: 3em; }

.home-info-grid p {
  margin-bottom: 1em; }

.home-info-grid p:last-child {
  margin-bottom: 0; }

.contact-block h4 {
  margin-bottom: 1.25em; }

.contact-list p {
  margin: 0; }

@media (max-width: 640px) {
  .home-info-grid {
    grid-template-columns: 1fr;
    gap: 2em; } }

/* Legacy (kept for compatibility) */
.full-thumbnail {
  width: 100%;
  display: block;
  height: auto; }

/*
 *	------------------------------------------------------- 	CIRCLE
 */
.kolo-wrap {
  padding: 100px 0 60px;
  text-align: center;
  background-color: #fff; }
  @media (max-width: 960px) {
    .kolo-wrap {
      width: 100%;
      padding: 6em 4em 4em; } }
  @media (max-width: 640px) {
    .kolo-wrap {
      padding: 4em 1.5em 1.5em; } }


#kolo {
  display: inline-block;
  width: auto;
  height: 100%;
  margin: 0 auto;
  padding: 0; }
  @media (max-width: 960px) {
    #kolo {
      width: 100%;
      height: auto;
      float: left; } }
  @media (max-width: 640px) {
    #kolo {
      max-height: 100%;
      max-width: 100%; } }
  #kolo a {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent; }

.pizza-slice .pizza-slice-bg {
  fill: #fff;
  transition: fill 0.2s linear; }

.pizza-slice:hover .pizza-slice-bg {
  fill: #0000ff !important; }

.pizza-slice:hover g {
  fill: #fff; }

.pizza-slice-child.active .pizza-slice-bg {
  fill: #0000ff !important;
  transition: fill 0.2s linear; }

.pizza-slice-child.active g {
  fill: #fff; }

/*
 *	------------------------------------------------------- 	SINGLE & 404
 */
.error404 .full-height {
  height: 100%; }

.error404 .bg-cover {
  background-image: url(../images/404.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-attachment: fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  padding: 4em 0; }

.error404 #footer {
  margin-top: 0;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 4; }

.single .entry-footer span, .error404 .entry-footer span {
  display: block; }

.single .entry-categories {
  margin: 0; }

.single-title {
  top: 0.8em; }
  @media (max-width: 960px) {
    .single-title {
      top: 1.5em; } }
  @media (max-width: 640px) {
    .single-title {
      top: 2em; } }

.single-title.affix {
  position: absolute;
  left: 5%;
  top: auto;
  bottom: 60px; }

.single-title.affix-top {
  position: fixed; }

.single-content {
  padding: 3.5em 0;
  background-color: #fff; }
  .single-content .entry-content {
    margin: 0.625em 0 2em; }

.single-gallery {
  background-color: #000;
  color: #fff; }
  @media (max-width: 640px) {
    .single-gallery {
      padding-bottom: 1.5em; } }

.single-videos > * {
  margin: 1.5em 0; }
  @media (max-width: 640px) {
    .single-videos > * {
      margin-bottom: 0; } }

.gallery-item {
  margin: 1.5em 0;
  clear: both;
  max-width: 580px; }
  @media (max-width: 640px) {
    .gallery-item {
      margin-bottom: 0; } }
  .gallery-item figcaption {
    margin-top: 1em; }

/*
 *	------------------------------------------------------- 	PROJECTS GRID
 */

/* Outer two-column: sidebar + grid */
.page-projects {
  display: grid;
  grid-template-columns: 24vw 1fr;
  align-items: start;
  padding-top: 80px;
  max-width: 100%;
  box-sizing: border-box; }

/* Sticky category sidebar */
.projects-sidebar {
  position: sticky;
  top: 80px;
  align-self: start;
  display: flex;
  justify-content: center; }

.projects-nav {
  padding: 0; }

.projects-nav ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.projects-nav > ul > li {
  padding: calc(1.8em + 5px) 0 0; }

.projects-nav > ul > li > ul > li {
  padding: calc(0.8em + 5px) 0 0; }

.projects-nav li a {
  display: block;
  text-align: left;
  font-size: 0.9em; }

.projects-nav li a:hover,
.projects-nav li a.active-filter {
  color: #0000ff; }

/* Indent child categories */
.projects-nav .children {
  padding-left: 1em; }

/* 3-column grid */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  width: 52vw;
  justify-self: start; }

.project-card {
  display: block;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  position: relative; }

.project-card-inner {
  width: 100%;
  height: 100%;
  position: relative; }

.project-card-front {
  width: 100%;
  height: 100%; }

.project-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.project-card-back {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s ease; }

.project-card:hover .project-card-back {
  opacity: 1; }

.project-card-title {
  color: #fff;
  font-size: 1em;
  text-align: center;
  padding: 0 1em; }

@media (min-width: 641px) and (max-width: 1024px) {
  #access ul {
    top: 20px; }

  #access li {
    padding: 0 1.4em; }

  #access a {
    font-size: 1.2em; }

  .projects-nav li a {
    font-size: 1.2em; }

  .projects-nav > ul > li {
    padding: 0.8em 0 0; }

  .page-projects {
    display: flex;
    flex-direction: column;
    padding: 80px 0 0; }

  .projects-sidebar {
    position: static;
    align-self: stretch;
    padding: 0 1em 0.5em; }

  .projects-nav {
    width: 100%; }

  .projects-nav > ul {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 0 1.5em;
    list-style: none;
    margin: 0;
    padding: 0; }

  .projects-nav > ul > li {
    padding: 0.6em 0 0;
    list-style: none; }

  .projects-nav > ul > li > ul.children {
    display: none; }

  .projects-nav > ul > li.is-open > a {
    color: #0000ff; }

  .mobile-sub-nav {
    display: none;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    gap: 0 1.5em;
    list-style: none;
    margin: 0;
    padding: 0.6em 0 0; }

  .mobile-sub-nav.is-visible {
    display: flex; }

  .mobile-sub-nav li {
    list-style: none;
    padding: 0; }

  .mobile-sub-nav li a {
    font-size: 0.9em; }

  .projects-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    width: 70%;
    margin: 3em auto 0; } }

@media (min-width: 641px) and (max-width: 1024px) {
  .projects-sidebar {
    position: sticky;
    top: 80px;
    z-index: 7;
    background: #fff; } }

@media (max-width: 640px) {
  .page-projects {
    display: flex;
    flex-direction: column;
    padding: 80px 0 0; }

  .projects-sidebar {
    position: static;
    align-self: stretch;
    padding: 0 1em 0.5em; }

  .projects-nav {
    width: 100%; }

  .projects-nav > ul {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 0 1.5em;
    list-style: none;
    margin: 0;
    padding: 0; }

  .projects-nav > ul > li {
    padding: 0.6em 0 0;
    list-style: none; }

  /* hide nested children — shown via .mobile-sub-nav instead */
  .projects-nav > ul > li > ul.children {
    display: none; }

  .projects-nav > ul > li.is-open > a {
    color: #0000ff; }

  /* second row that JS populates */
  .mobile-sub-nav {
    display: none;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    gap: 0 1.5em;
    list-style: none;
    margin: 0;
    padding: 0.6em 0 0; }

  .mobile-sub-nav.is-visible {
    display: flex; }

  .mobile-sub-nav li {
    list-style: none;
    padding: 0; }

  .mobile-sub-nav li a {
    font-size: 0.9em; }

  .projects-grid {
    grid-template-columns: 1fr;
    gap: 6px;
    width: 69%;
    margin: 0 auto; } }

/*
 *	------------------------------------------------------- 	INFO
 */
.info {
  background-color: #fff; }
  .info .one-two header {
    margin-bottom: 1.25em; }
  .info .studio header {
    margin-bottom: 0; }
  .info .one-two.right {
    padding-left: 1.25em; }
    @media (max-width: 640px) {
      .info .one-two.right {
        margin-top: 1.25em;
        padding-left: 0; } }
  .info .one-two.left {
    padding-right: 1.25em; }
    @media (max-width: 640px) {
      .info .one-two.left {
        padding-right: 0; } }
  .info .studio {
    clear: right; }
  .info .exhibitions .info-section-title:hover {
    color: #0000ff; }

.page-template-info .info-section-title {
  cursor: pointer; }

.page-template-info .info-section-content {
  display: none;
  margin-bottom: 1.25em; }

.page-template-info article {
  margin-bottom: 2.5em; }

.page-template-info article.exhibitions {
  margin-bottom: 0; }

.page-template-info .roberto {
  padding: 3em 2em 0 3em; }
  @media (max-width: 960px) {
    .page-template-info .roberto {
      padding: 3em 2em 0 2em; } }

.page-template-info #footer {
  margin-top: 0; }

#map {
  margin-top: 2.5em;
  height: 600px;
  height: 60vh; }

/*
 *	------------------------------------------------------- 	FOOTER
 */
.single #footer {
  margin-top: 0; }

#footer {
  background-color: #000;
  margin-top: 4em; }
  #footer .wrapper {
    padding-top: 1.2em;
    padding-bottom: 1.2em; }
  #footer p {
    font-size: 0.8em; }
  #footer p, #footer a {
    color: #fff; }
  @media (max-width: 640px) {
    #footer p.right {
      width: 100%;
      float: left;
      padding-top: 1em; } }
  #footer p.right, #footer p.right a {
    color: #777; }
  #footer a:visited, #footer a:focus {
    color: #777; }
  #footer a:hover {
    color: #ccc; }

.category #footer {
  margin-top: 0; }

.category .sticky-footer-wrapper {
  min-height: 100%;
  /* Equal to height of footer */
  /* But also accounting for potential margin-bottom of last child */
  margin-bottom: -3.4em; }
  @media (max-width: 640px) {
    .category .sticky-footer-wrapper {
      margin-bottom: -5.2em; } }

.category #footer,
.category .footer-push {
  height: 3.4em; }
  @media (max-width: 640px) {
    .category #footer,
    .category .footer-push {
      height: 5.2em; } }

/*
 * ------------------------------------------------------- PROCESS PAGE
 */

/*
 *	------------------------------------------------------- 	RPDS
 */

.page-rpds {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 80px 2em 2em; }

.rpds-wheel {
  width: min(90vh, 95vw);
  max-width: 900px;
  height: auto;
  display: block; }

.rpds-wheel text {
  font-size: 13px;
  font-family: inherit;
  fill: #000; }

/*
 *	------------------------------------------------------- 	PROCESS
 */

/* Wider content wrapper scoped to the process page */
.page-process .wrapper {
  max-width: 64em; }

.page-process {
  padding-top: 14vh; }

/* Sections */
.process-section {
  margin-bottom: 22vh; }

/* Two-column row */
.process-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  align-items: start;
  min-height: 55vh; }

.process-row > div:first-child {
  align-self: start; }

.process-row > div:last-child {
  align-self: start; }

.process-row > div.process-col--bottom {
  align-self: end; }

.process-row h2 {
  font-family: 'HelveticaLTWXX-Light', sans-serif;
  font-size: 3em;
  line-height: 1;
  font-weight: normal;
  margin-bottom: 0.5em; }

/* Right-aligned heading (separate class avoids conflict with existing .right float) */
.process-h2-right {
  font-size: 5em;
  line-height: 1;
  font-weight: 300;
  margin-bottom: 0.5em;
  text-align: right; }

/* Spacing between consecutive rows */
.process-row + .process-row {
  margin-top: 70vh; }

.research-img-wrap {
  margin-left: 50%;
  margin-top: 200px; }

.process-row + .process-row--prototyping-img {
  margin-top: 20vh; }

.process-row p {
  margin-bottom: 0.8em; }

.process-row p:last-child {
  margin-bottom: 0; }

/* Placeholder boxes (blue, to be replaced with real photos via ACF) */
.placeholder-box {
  background: #6e6fff;
  width: 100%;
  height: 55vh; }

.process-section > .placeholder-box,
.process-row + .placeholder-box {
  margin-top: 35vh; }

.placeholder-box + .process-row {
  margin-top: 14vh; }

.process-row .placeholder-box {
  margin: 0; }

.placeholder-box--tall  { height: 80vh; }
.placeholder-box--short { height: 40vh; }
.placeholder-box--wide  { height: 70vh; }

/* Real images replacing placeholders */
.process-image {
  width: 100%;
  display: block;
  object-fit: cover;
  height: 55vh; }

.process-section > .process-image,
.process-row + .process-image {
  margin-top: 35vh; }

.process-image + .process-row {
  margin-top: 14vh; }

.process-row .process-image {
  margin: 0; }

.process-image--tall  { height: 80vh; }
.process-image--short { height: 40vh; }
.process-image--wide  { height: 70vh; }

/* Areas sub-items */
.process-area-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  margin-bottom: 14vh;
  align-items: start; }

.process-area-title {
  font-size: 1em;
  font-weight: normal;
  text-align: right;
  margin-bottom: 0.75em; }

.process-row + .process-area-item {
  margin-top: -15vh; }

.process-row--area-img {
  margin-top: -25vh; }

.process-row--area-img .placeholder-box,
.process-row--area-img .process-image {
  width: 55%; }

.process-area-item p {
  margin-bottom: 0.8em; }

.process-area-item p:last-child {
  margin-bottom: 0; }

/* Design section — text pushed down */
.process-section--design .process-row > div:last-child {
  padding-top: 12em; }

/* Cooperation section — compact rows, full width */
.process-section--coop .process-row {
  min-height: auto;
  grid-template-columns: 1fr; }

.process-section--coop .process-row > div:first-child {
  display: none; }

.process-section--coop .process-row + .process-row {
  margin-top: calc(3em + 250px); }

/* Cooperation lists */
.process-coop-list {
  font-size: 0.85em;
  line-height: 1.45;
  margin-bottom: 0.75em; }

.process-coop-list strong {
  font-weight: 400; }

/* Contact section — reduced bottom space */
#contact {
  margin-top: 30vh;
  margin-bottom: 0; }

#contact .process-row {
  min-height: auto; }

#contact .process-row:first-child {
  padding-top: 0; }

#contact h2 {
  margin-top: 0; }

#contact .process-row--contact-form {
  margin-top: 100px; }

/* Contact form */
.process-contact-form {
  max-width: 22em;
  margin-left: auto; }

.process-field {
  border-bottom: 1px solid #000;
  display: flex;
  justify-content: flex-end;
  margin-bottom: 2em; }

.process-field input,
.process-field textarea {
  font-family: 'HelveticaLTWXX-Light', sans-serif;
  font-size: 0.9em;
  border: none;
  outline: none;
  background: transparent;
  padding: 0.4em 0;
  width: 100%;
  text-align: right;
  color: #b4b4b4;
  resize: none; }

.process-field input::placeholder,
.process-field textarea::placeholder {
  color: #b4b4b4; }

.process-field textarea {
  min-height: 4em; }

.process-field--submit {
  border-bottom: none;
  justify-content: flex-end;
  margin-top: 0.75em; }

.process-field--submit button {
  font-family: 'HelveticaLTWXX-Light', sans-serif;
  font-size: 0.85em;
  background: none;
  border: 1px solid #0000ff;
  color: #0000ff;
  padding: 0.4em 1.4em;
  cursor: pointer;
  transition: background 0.2s, color 0.2s; }

.process-field--submit button:hover {
  background: #0000ff;
  color: #fff; }

.process-form-success {
  color: #0000ff;
  font-size: 0.85em; }

.process-form-error {
  font-size: 0.8em;
  color: #cc0000;
  margin-top: 0.4em; }

/* Floating "Get in touch" circle (fixed, vertically centred, left of wrapper) */
.process-cta-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7em;
  height: 7em;
  border-radius: 50%;
  border: 1px solid #0000ff;
  color: #0000ff;
  text-align: center;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  position: fixed;
  top: calc(65% + 100px);
  /* left edge of circle flush with left content edge of 64em wrapper (100% excludes scrollbar, 100vw does not) */
  left: calc((100% - 64em) / 2 + 2em);
  transform: translateY(-50%);
  background: transparent;
  z-index: 7; }

.process-cta-circle:hover,
.process-cta-circle:hover:visited {
  background: #0000ff;
  color: #fff !important; }

@media (max-width: 1100px) {
  .process-cta-circle {
    left: 1.5em;
    font-size: 0.85em; } }

@media (max-width: 640px) {
  .process-cta-circle {
    top: auto;
    bottom: 1em;
    left: 1em;
    transform: none;
    font-size: 0.7em;
    width: 6em;
    height: 6em;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08); }

  .process-row {
    grid-template-columns: 1fr;
    gap: 1em; }

  .process-h2-right {
    text-align: left; }

  .process-area-item {
    grid-template-columns: 1fr;
    gap: 1em; }

  .process-area-title {
    text-align: left; }

  .process-contact-form {
    max-width: 100%;
    margin-left: 0; }

  .process-field {
    justify-content: flex-start; }

  .process-field input,
  .process-field textarea {
    text-align: left; }

  .process-field--submit {
    justify-content: flex-start; } }
