/*
Theme Name: Robell Control Systems
Theme URI: https://robell.co.uk
Author: TradeForm
Author URI: https://tradeformhq.co.uk
Description: Standalone WordPress theme — an exact conversion of the approved Robell Control Systems design. No page builder required. All layout, typography, spacing, colours, animations and responsive behaviour are preserved from the approved build.
Version: 3.7.23
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary
Text Domain: robell
*/

/*
 * The approved design's compiled stylesheet lives in assets/app.css and is
 * enqueued from functions.php. This file only contains the theme header plus
 * defensive resets so WordPress-generated markup cannot introduce styling that
 * was not in the approved design.
 */

/* ---------------------------------------------------------------
 * Navigation: no bullets, markers, separators or generated content.
 * The hover underline is a real <span class="robell-navline">, so
 * there is nothing here that can render a stray dot.
 * --------------------------------------------------------------- */

.robell nav ul,
.robell nav ol,
.robell .menu,
.robell ul.menu,
.robell #main ul.wp-block-list {
  list-style: none;
}

.robell nav ul,
.robell nav ol,
.robell .menu {
  margin: 0;
  padding: 0;
}

.robell nav li {
  margin: 0;
  padding: 0;
  list-style: none;
  list-style-type: none;
  list-style-image: none;
}

.robell nav li::marker,
.robell nav li::before,
.robell nav li::after,
.robell nav a::before,
.robell nav a::after,
.robell nav .menu-item::before,
.robell nav .menu-item::after {
  content: none;
  display: none;
}

.robell nav li::marker {
  content: "";
  color: transparent;
  font-size: 0;
}

.robell img.wp-post-image,
.robell img[class*="wp-image-"] {
  max-width: 100%;
  height: auto;
}

.robell .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* WordPress admin bar must not shift the fixed header. */
body.admin-bar .robell-header-offset {
  top: 32px;
}

/* ---------------------------------------------------------------
 * Pluggable form slots (Fluent Forms today, any plugin later).
 * Plugin-rendered fields inherit the approved design's field styling
 * so the frontend is visually identical to the built-in forms.
 * --------------------------------------------------------------- */

.robell .robell-form .ff-el-group,
.robell .robell-form .fluentform .ff-el-group {
  margin-bottom: 1.5rem;
}

.robell .robell-form label,
.robell .robell-form .ff-el-input--label label {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}

.robell .robell-form input[type="text"],
.robell .robell-form input[type="email"],
.robell .robell-form input[type="tel"],
.robell .robell-form input[type="url"],
.robell .robell-form input[type="number"],
.robell .robell-form select,
.robell .robell-form textarea {
  width: 100%;
  margin-top: 0.75rem;
  padding: 0.75rem 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--ink);
  transition: border-color 0.3s ease;
}

.robell .robell-form textarea {
  resize: none;
}

.robell .robell-form input:focus,
.robell .robell-form select:focus,
.robell .robell-form textarea:focus {
  outline: none;
  border-bottom-color: var(--navy);
  box-shadow: none;
}

.robell .robell-form input[type="file"] {
  margin-top: 0.75rem;
  font-size: 13.5px;
  color: color-mix(in srgb, var(--ink) 80%, transparent);
}

.robell .robell-form input[type="file"]::file-selector-button {
  margin-right: 1rem;
  border: 0;
  background: var(--navy);
  padding: 0.625rem 1rem;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.robell .robell-form input[type="file"]::file-selector-button:hover {
  background: var(--navy-deep);
}

.robell .robell-form input[type="checkbox"] {
  accent-color: var(--accent);
  width: 1rem;
  height: 1rem;
}

.robell .robell-form button[type="submit"],
.robell .robell-form .ff-btn-submit {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  margin-top: 1rem;
  border: 0;
  border-radius: 0;
  background: var(--accent);
  padding: 0.95rem 1.75rem;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper);
  cursor: pointer;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.robell .robell-form button[type="submit"]:hover,
.robell .robell-form .ff-btn-submit:hover {
  background: #b8121f;
  box-shadow: 0 12px 28px -14px rgba(213, 32, 46, 0.9);
}

.robell .robell-form .ff-el-is-error input,
.robell .robell-form .ff-el-is-error textarea,
.robell .robell-form .ff-el-is-error select {
  border-bottom-color: var(--accent);
}

.robell .robell-form .error,
.robell .robell-form .text-danger,
.robell .robell-form .ff-el-is-error .error-text {
  margin-top: 0.5rem;
  font-size: 13px;
  color: var(--accent);
}

.robell .robell-form .ff-message-success {
  border: 1px solid var(--navy);
  background: var(--bone);
  padding: 1.25rem 1.5rem;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--navy);
}


/* Discourage casual saving, dragging and long-pressing of site imagery. */
.robell-protected-media,
img, picture, svg, canvas, video {
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

img, picture img, svg, canvas, video {
  pointer-events: none;
}

a img, button img, [role="button"] img {
  pointer-events: none;
}


/* ---------------------------------------------------------------
 * Homepage rotating hero line.
 * Mobile hero phrases now fit on one line, so the rotator no longer
 * reserves the height of a second line. Desktop remains unchanged.
 * --------------------------------------------------------------- */
.robell .robell-hero-rotator {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
  vertical-align: top;
}

.robell .robell-hero-rotator__text {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

@media (min-width: 768px) {
  .robell .robell-hero-rotator {
    display: inline-block;
    width: auto;
    max-width: none;
  }

  .robell .robell-hero-rotator__text {
    display: inline-block;
    width: auto;
    max-width: none;
    min-height: 0;
    white-space: nowrap;
  }
}


/* Sector landing pages — explicit styling for templates added after the compiled build. */
.robell-sector-hero {
  position: relative;
  min-height: 720px;
  overflow: hidden;
  background: var(--navy);
  color: var(--paper);
}
.robell-sector-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .48;
}
.robell-sector-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10,48,82,.98) 0%, rgba(10,48,82,.90) 55%, rgba(10,48,82,.50) 100%);
}
.robell-sector-hero__inner {
  position: relative;
  min-height: 720px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 190px;
  padding-bottom: 100px;
}
.robell-sector-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
.robell-sector-hero__title {
  max-width: 1050px;
  font-family: var(--font-display);
  font-size: clamp(3.6rem, 6.25vw, 6.6rem);
  font-weight: 600;
  line-height: .96;
  letter-spacing: -.045em;
}
.robell-sector-hero__intro {
  max-width: 720px;
  margin-top: 2rem;
  font-size: 1rem;
  line-height: 1.8;
  color: rgba(255,255,255,.86);
}
.robell-sector-overview {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: clamp(3rem, 7vw, 7rem);
  padding-top: 8rem;
  padding-bottom: 8rem;
}
.robell-sector-overview__crumb {
  margin-top: 2rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.robell-sector-overview__image-wrap {
  margin-top: 2.25rem;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--bone);
}
.robell-sector-overview__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .7s ease;
}
.robell-sector-overview__image-wrap:hover .robell-sector-overview__image { transform: scale(1.025); }
.robell-sector-overview__content { padding-top: .2rem; }
.robell-sector-heading {
  max-width: 780px;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 4.4vw, 4.5rem);
  font-weight: 500;
  line-height: 1.01;
  letter-spacing: -.04em;
  color: var(--navy);
}
.robell-sector-copy {
  max-width: 720px;
  margin-top: 2rem;
  white-space: pre-line;
  font-size: 1rem;
  line-height: 1.85;
  color: color-mix(in srgb, var(--ink) 85%, transparent);
}
@media (max-width: 767px) {
  .robell-sector-hero,
  .robell-sector-hero__inner { min-height: 650px; }
  .robell-sector-hero__inner { padding-top: 150px; padding-bottom: 64px; }
  .robell-sector-hero__title { font-size: clamp(2.65rem, 12.5vw, 4rem); line-height: .98; }
  .robell-sector-hero__intro { font-size: .95rem; margin-top: 1.5rem; }
  .robell-sector-overview { grid-template-columns: 1fr; gap: 3.5rem; padding-top: 5rem; padding-bottom: 5rem; }
  .robell-sector-overview__image-wrap { aspect-ratio: 16 / 11; }
  .robell-sector-heading { font-size: clamp(2.3rem, 10vw, 3.25rem); }
  .robell-sector-copy { font-size: .96rem; }
}


/* Sector page colour and CTA alignment fixes. */
.robell-sector-hero__title {
  color: var(--paper);
}
.robell-sector-hero__accent {
  color: var(--accent);
}
.robell-sector-approach {
  background: var(--navy);
  color: var(--paper);
}
.robell-sector-approach__eyebrow {
  color: var(--accent);
}
.robell-sector-approach__heading {
  margin-top: 1.75rem;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 4.4vw, 4.75rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.04em;
  color: var(--paper);
}
.robell-sector-approach__copy {
  margin-top: 1.75rem;
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.82);
}
.robell-sector-approach__services-label {
  color: rgba(255,255,255,.58);
}
.robell-sector-service-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(255,255,255,.2);
  color: var(--paper);
}
.robell-sector-service-link__title {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 1.75rem);
  line-height: 1.2;
  color: var(--paper);
}
.robell-sector-cta {
  position: relative;
  overflow: hidden;
  background: var(--navy);
  text-align: center;
  color: var(--paper);
}
.robell-sector-cta__eyebrow {
  color: var(--accent);
}
.robell-sector-cta__heading {
  max-width: 64rem;
  margin: 1.75rem auto 0;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5.6vw, 5.4rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.04em;
  color: var(--paper);
}
.robell-sector-cta__copy {
  max-width: 42rem;
  margin: 1.75rem auto 0;
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.82);
}

@media (max-width: 767px) {
  .robell-sector-approach__heading,
  .robell-sector-cta__heading {
    font-size: clamp(2.35rem, 10vw, 3.4rem);
  }
}


/* Robell 3.4.5 — sector project section aligned to homepage Selected Work. */
.robell-sector-projects {
  background: var(--bone);
}
.robell-sector-projects__inner {
  padding-top: 9rem;
  padding-bottom: 9rem;
}
.robell-sector-projects__header {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 2.5rem;
  align-items: end;
  margin-bottom: 4rem;
}
.robell-sector-projects__heading-wrap {
  grid-column: span 7 / span 7;
}
.robell-sector-projects__heading {
  margin-top: 1.75rem;
  max-width: 760px;
  font-family: var(--font-display);
  font-size: clamp(3rem, 5vw, 4.5rem);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -.04em;
  color: var(--navy);
}
.robell-sector-projects__heading span {
  color: var(--accent);
}
.robell-sector-projects__action {
  grid-column: 9 / span 4;
  color: color-mix(in srgb, var(--ink) 85%, transparent);
  font-size: .9375rem;
  line-height: 1.8;
}
.robell-sector-projects__button {
  width: auto;
  min-width: 0;
  min-height: 0;
  margin-top: 2rem;
  padding: .95rem 1.45rem;
  font-size: .67rem;
  line-height: 1;
  letter-spacing: .19em;
  white-space: nowrap;
}
.robell-sector-projects__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 2.5rem;
  row-gap: 6rem;
}
.robell-sector-projects__empty {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  padding: 2.5rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.robell-sector-projects__empty p:first-child {
  grid-column: span 7 / span 7;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--navy);
}
.robell-sector-projects__empty p:last-child {
  grid-column: 9 / span 4;
  font-size: .875rem;
  line-height: 1.7;
  color: color-mix(in srgb, var(--ink) 70%, transparent);
}
@media (max-width: 767px) {
  .robell-sector-projects__inner {
    padding-top: 5.5rem;
    padding-bottom: 5.5rem;
  }
  .robell-sector-projects__header {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-bottom: 3rem;
  }
  .robell-sector-projects__heading-wrap,
  .robell-sector-projects__action {
    grid-column: auto;
  }
  .robell-sector-projects__heading {
    font-size: clamp(2.45rem, 11vw, 3.5rem);
  }
  .robell-sector-projects__action {
    max-width: 32rem;
  }
  .robell-sector-projects__button {
    margin-top: 1.5rem;
  }
  .robell-sector-projects__grid {
    grid-template-columns: 1fr;
    row-gap: 4rem;
  }
  .robell-sector-projects__empty {
    grid-template-columns: 1fr;
  }
  .robell-sector-projects__empty p:first-child,
  .robell-sector-projects__empty p:last-child {
    grid-column: auto;
  }
}

/* Robell 3.4.5 — sector pages use the same typography and spacing scale as the homepage. */
:root {
  --robell-home-heading-lg: 3.75rem;
  --robell-home-heading-md: 3rem;
  --robell-home-heading-sm: 2.25rem;
  --robell-home-body: 15px;
  --robell-home-leading: 1.8;
}

/* Keep the sector hero intentionally large; normalise every section below it. */
.robell-sector-overview__content .robell-sector-heading,
.robell-sector-approach__heading {
  font-size: var(--robell-home-heading-md);
  line-height: 1.06;
  letter-spacing: -0.025em;
}

.robell-sector-copy,
.robell-sector-approach__copy,
.robell-sector-projects__action,
.robell-sector-cta__copy {
  font-size: var(--robell-home-body);
  line-height: var(--robell-home-leading);
}

/* Same heading rule as the homepage Selected Work section. */
.robell-sector-projects__heading {
  margin-top: 1.75rem;
  max-width: 760px;
  font-size: var(--robell-home-heading-lg);
  line-height: 1.04;
  letter-spacing: -0.025em;
}

.robell-sector-projects__header {
  gap: 2.5rem;
  align-items: end;
  margin-bottom: 4rem;
}

.robell-sector-projects__button {
  margin-top: 2rem;
  padding: 0.9rem 1.35rem;
  font-size: 0.67rem;
  letter-spacing: 0.19em;
}

/* Same scale as the homepage's dark CTA heading. */
.robell-sector-cta__heading {
  font-size: 4.5rem;
  line-height: 1.04;
  letter-spacing: -0.035em;
}

/* Match homepage list/subheading hierarchy. */
.robell-sector-approach .robell-sector-service-link__title,
.robell-sector-overview + section ol li > span:last-child {
  font-size: 1.5rem;
  line-height: 1.25;
  letter-spacing: -0.015em;
}

/* Match homepage section rhythm rather than oversized custom spacing. */
.robell-sector-overview {
  padding-top: 8rem;
  padding-bottom: 8rem;
}
.robell-sector-approach > .container-editorial,
.robell-sector-cta > .container-editorial {
  padding-top: 8rem;
  padding-bottom: 8rem;
}

@media (max-width: 767px) {
  .robell-sector-overview__content .robell-sector-heading,
  .robell-sector-approach__heading,
  .robell-sector-projects__heading {
    font-size: var(--robell-home-heading-sm);
    line-height: 1.06;
    letter-spacing: -0.025em;
  }

  .robell-sector-cta__heading {
    font-size: 2.25rem;
    line-height: 1.06;
    letter-spacing: -0.025em;
  }

  .robell-sector-overview,
  .robell-sector-approach > .container-editorial,
  .robell-sector-cta > .container-editorial {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .robell-sector-projects__inner {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .robell-sector-projects__header {
    margin-bottom: 4rem;
  }

  .robell-sector-approach .robell-sector-service-link__title,
  .robell-sector-overview + section ol li > span:last-child {
    font-size: 1.25rem;
  }
}


/* Robell 3.5.0 — complete sector-page editorial structure.
   Adds sector context and common-challenge sections while keeping the same
   typography, spacing and colour rules used throughout the homepage. */
.robell-sector-context {
  background: var(--paper);
  border-top: 1px solid var(--line);
}
.robell-sector-context__inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 2.5rem;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
.robell-sector-context__label {
  grid-column: span 4 / span 4;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
}
.robell-sector-context__index {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.robell-sector-context__content {
  grid-column: 6 / span 7;
  max-width: 780px;
}
.robell-sector-context__heading,
.robell-sector-challenges__heading {
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.025em;
  color: var(--navy);
}
.robell-sector-context__copy {
  margin-top: 2rem;
  max-width: 720px;
  color: color-mix(in srgb, var(--ink) 85%, transparent);
  font-size: 15px;
  line-height: 1.8;
}
.robell-sector-context__copy p + p { margin-top: 1.25rem; }
.robell-sector-challenges {
  background: var(--bone);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.robell-sector-challenges__heading { margin-top: 1.75rem; }
.robell-sector-challenges__intro {
  max-width: 30rem;
  margin-top: 1.5rem;
  font-size: 15px;
  line-height: 1.8;
  color: color-mix(in srgb, var(--ink) 72%, transparent);
}
/* The project heading is deliberately one step below the page hero and uses
   the same hierarchy as the homepage Selected Work heading. */
.robell-sector-projects__heading {
  font-size: 3.25rem;
  line-height: 1.045;
}
/* Give the closing CTA enough presence without competing with the hero. */
.robell-sector-cta__heading { font-size: 4.75rem; }

@media (max-width: 767px) {
  .robell-sector-context__inner {
    grid-template-columns: 1fr;
    gap: 2.75rem;
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
  .robell-sector-context__label,
  .robell-sector-context__content { grid-column: auto; }
  .robell-sector-context__label { gap: 1.25rem; }
  .robell-sector-context__heading,
  .robell-sector-challenges__heading,
  .robell-sector-projects__heading {
    font-size: 2.25rem;
    line-height: 1.06;
  }
  .robell-sector-cta__heading { font-size: 2.5rem; }
}

/* Robell 3.5.1 — refined opening sector sections. */
.robell-sector-overview-section {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.robell-sector-overview {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(2rem, 4vw, 4.5rem);
  row-gap: 3.25rem;
  padding-top: 7rem;
  padding-bottom: 8rem;
}
.robell-sector-overview__topline {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}
.robell-sector-overview__crumb {
  margin: 0;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: .64rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.robell-sector-overview__media {
  grid-column: 1 / span 5;
}
.robell-sector-overview__image-wrap {
  margin-top: 0;
  aspect-ratio: 5 / 4;
  min-height: 430px;
}
.robell-sector-overview__content {
  grid-column: 7 / span 6;
  align-self: center;
  padding-top: 0;
}
.robell-sector-overview__rule {
  display: block;
  width: 3.5rem;
  height: 2px;
  margin-bottom: 2rem;
  background: var(--accent);
}
.robell-sector-overview__content .robell-sector-heading {
  max-width: 680px;
  font-size: clamp(2.7rem, 4vw, 4rem);
  line-height: 1.02;
}
.robell-sector-overview__content .robell-sector-copy {
  max-width: 650px;
  margin-top: 2rem;
  padding-left: 1.5rem;
  border-left: 1px solid var(--accent);
}

.robell-sector-context {
  background: var(--bone);
  border-top: 0;
  border-bottom: 1px solid var(--line);
}
.robell-sector-context__inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 4rem);
  padding-top: 7rem;
  padding-bottom: 7rem;
}
.robell-sector-context__label {
  grid-column: 1 / span 2;
  gap: 1.5rem;
}
.robell-sector-context__statement {
  grid-column: 4 / span 4;
  padding-right: 1.5rem;
}
.robell-sector-context__content {
  grid-column: 9 / span 4;
  max-width: none;
  padding-top: .25rem;
}
.robell-sector-context__heading {
  font-size: clamp(2.55rem, 3.6vw, 3.75rem);
  line-height: 1.02;
}
.robell-sector-context__copy {
  margin-top: 0;
  max-width: 560px;
  padding-top: 1.75rem;
  border-top: 1px solid color-mix(in srgb, var(--navy) 22%, transparent);
}
.robell-sector-context__copy::before {
  content: "What this means";
  display: block;
  margin-bottom: 1.25rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
}

@media (max-width: 900px) {
  .robell-sector-overview__media { grid-column: 1 / span 6; }
  .robell-sector-overview__content { grid-column: 7 / span 6; }
  .robell-sector-context__label { grid-column: 1 / span 3; }
  .robell-sector-context__statement { grid-column: 4 / span 4; }
  .robell-sector-context__content { grid-column: 8 / span 5; }
}

@media (max-width: 767px) {
  .robell-sector-overview {
    grid-template-columns: 1fr;
    row-gap: 2.5rem;
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .robell-sector-overview__topline {
    grid-column: auto;
    align-items: flex-start;
    flex-direction: column;
    gap: .9rem;
  }
  .robell-sector-overview__media,
  .robell-sector-overview__content {
    grid-column: auto;
  }
  .robell-sector-overview__image-wrap {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .robell-sector-overview__content .robell-sector-heading {
    font-size: 2.45rem;
  }
  .robell-sector-overview__content .robell-sector-copy {
    padding-left: 1rem;
  }
  .robell-sector-context__inner {
    grid-template-columns: 1fr;
    gap: 2.25rem;
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .robell-sector-context__label,
  .robell-sector-context__statement,
  .robell-sector-context__content {
    grid-column: auto;
  }
  .robell-sector-context__heading {
    font-size: 2.35rem;
  }
}


/* Robell 3.5.2 — merge sector context into the opening editorial story. */
.robell-sector-overview {
  align-items: start;
}
.robell-sector-overview__content {
  align-self: start;
  padding-top: clamp(.25rem, 2vw, 2.25rem);
}
.robell-sector-overview__context {
  margin-top: clamp(3rem, 5vw, 4.75rem);
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}
.robell-sector-overview__context-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.robell-sector-overview__context-index {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.robell-sector-overview__context-heading {
  max-width: 650px;
  margin: 0;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(2rem, 2.8vw, 3rem);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -.045em;
}
.robell-sector-overview__context-copy {
  max-width: 650px;
  margin-top: 1.35rem;
  color: var(--muted-foreground);
  font-size: .95rem;
  line-height: 1.75;
}
.robell-sector-overview__context-copy p { margin: 0; }
.robell-sector-overview__context-copy p + p { margin-top: 1rem; }

/* The old standalone context section is no longer rendered, but keep it hidden
   defensively if stale cached markup is served during an update. */
.robell-sector-context { display: none !important; }

@media (max-width: 767px) {
  .robell-sector-overview__content { padding-top: 0; }
  .robell-sector-overview__context {
    margin-top: 2.75rem;
    padding-top: 1.5rem;
  }
  .robell-sector-overview__context-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: .75rem;
  }
  .robell-sector-overview__context-heading {
    font-size: 2.05rem;
  }
  .robell-sector-overview__context-copy {
    font-size: .95rem;
    line-height: 1.65;
  }
}

/* Robell 3.6.0 — sector pages rebuilt around the editorial rhythm of Sustainability,
   while keeping a distinct sector-specific composition. */
.robell-sector-hero--inner-page,
.robell-sector-hero--inner-page .robell-sector-hero__inner{min-height:540px}
.robell-sector-hero--inner-page .robell-sector-hero__inner{padding-top:150px;padding-bottom:72px;justify-content:flex-end}
.robell-sector-hero--inner-page .robell-sector-hero__title{max-width:860px;font-size:clamp(3rem,5.2vw,5.1rem);line-height:.98}
.robell-sector-hero--inner-page .robell-sector-hero__intro{max-width:620px;margin-top:1.5rem;font-size:15px;line-height:1.75}
.robell-sector-intro{background:var(--paper);border-bottom:1px solid var(--line)}
.robell-sector-intro__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3rem;padding-top:7rem;padding-bottom:7rem}
.robell-sector-intro__statement{grid-column:1/span 5}.robell-sector-intro__statement h2{margin-top:1.5rem;font-family:var(--font-display);font-size:clamp(2.65rem,4vw,4rem);font-weight:500;line-height:1.02;letter-spacing:-.035em;color:var(--navy)}
.robell-sector-intro__copy{grid-column:7/span 6;padding-top:.2rem}.robell-sector-intro__index{display:block;margin-bottom:1.75rem;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-foreground)}
.robell-sector-intro__copy>p,.robell-sector-intro__context{font-size:15px;line-height:1.8;color:color-mix(in srgb,var(--ink) 82%,transparent)}
.robell-sector-intro__context{margin-top:2.75rem;padding-top:2rem;border-top:1px solid var(--line)}.robell-sector-intro__context h3{margin-bottom:1.2rem;font-family:var(--font-display);font-size:1.8rem;line-height:1.1;color:var(--navy)}.robell-sector-intro__context p+p{margin-top:1rem}
.robell-sector-priorities{background:var(--bone);border-bottom:1px solid var(--line)}.robell-sector-priorities__inner{padding-top:7rem;padding-bottom:7rem}.robell-sector-priorities__header{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;margin-bottom:2.25rem}.robell-sector-priorities__header span{grid-column:1/span 3}.robell-sector-priorities__header h2{grid-column:4/span 6;font-family:var(--font-display);font-size:clamp(2.4rem,3.5vw,3.5rem);font-weight:500;line-height:1.04;letter-spacing:-.03em;color:var(--navy)}
.robell-sector-priorities__list{border-top:1px solid var(--line)}.robell-sector-priorities__list li{display:grid;grid-template-columns:3rem minmax(0,1.15fr) minmax(0,.85fr);gap:2.5rem;align-items:start;padding:2.5rem 0;border-bottom:1px solid var(--line)}.robell-sector-priorities__number{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.64rem;letter-spacing:.18em;color:var(--accent)}.robell-sector-priorities__list h3{font-family:var(--font-display);font-size:1.9rem;font-weight:500;line-height:1.15;color:var(--navy)}.robell-sector-priorities__list p{font-size:14px;line-height:1.75;color:var(--muted-foreground)}
.robell-sector-approach__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3rem;padding-top:7rem;padding-bottom:7rem}.robell-sector-approach__inner>div:first-child{grid-column:1/span 5}.robell-sector-approach__inner>div:last-child{grid-column:7/span 6}.robell-sector-approach__services{margin-top:1.75rem;border-top:1px solid rgba(255,255,255,.2)}
.robell-sector-proof{background:var(--paper)}.robell-sector-proof__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(3rem,7vw,7rem);align-items:center;padding-top:8rem;padding-bottom:8rem}.robell-sector-proof__image{overflow:hidden;aspect-ratio:4/3;background:var(--bone)}.robell-sector-proof__image img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}.robell-sector-proof__image a:hover img{transform:scale(1.035)}.robell-sector-proof__content h2{margin-top:1.5rem;font-family:var(--font-display);font-size:clamp(2.65rem,4vw,4rem);font-weight:500;line-height:1.02;letter-spacing:-.035em;color:var(--navy)}.robell-sector-proof__content p{margin-top:1.5rem;max-width:34rem;font-size:15px;line-height:1.8;color:var(--muted-foreground)}.robell-sector-proof__content h3{margin-top:2rem;font-family:var(--font-display);font-size:1.8rem;color:var(--navy)}.robell-sector-proof__content .btn-accent{margin-top:1.5rem}
.robell-sector-more-projects{background:var(--bone);padding:7rem 0 8rem}.robell-sector-more-projects__head{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:3.5rem}.robell-sector-more-projects__head .btn-ghost-dark{padding:.9rem 1.35rem;font-size:.67rem;letter-spacing:.18em}
.robell-sector-final-cta{background:var(--paper);border-top:1px solid var(--line)}.robell-sector-final-cta__inner{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(3rem,7vw,7rem);align-items:center;padding-top:8rem;padding-bottom:8rem}.robell-sector-final-cta__content h2{margin-top:1.5rem;font-family:var(--font-display);font-size:clamp(2.7rem,4.4vw,4.5rem);font-weight:500;line-height:1.02;letter-spacing:-.035em;color:var(--navy)}.robell-sector-final-cta__content p{margin-top:1.5rem;max-width:34rem;font-size:15px;line-height:1.8;color:var(--muted-foreground)}.robell-sector-final-cta__content .btn-accent{margin-top:2rem}.robell-sector-final-cta__image{aspect-ratio:4/3;overflow:hidden;background:var(--bone)}.robell-sector-final-cta__image img{width:100%;height:100%;object-fit:cover}
@media(max-width:767px){.robell-sector-hero--inner-page,.robell-sector-hero--inner-page .robell-sector-hero__inner{min-height:520px}.robell-sector-hero--inner-page .robell-sector-hero__inner{padding-top:132px;padding-bottom:56px}.robell-sector-hero--inner-page .robell-sector-hero__title{font-size:clamp(2.45rem,11vw,3.6rem)}.robell-sector-intro__inner,.robell-sector-priorities__header,.robell-sector-approach__inner,.robell-sector-proof__inner,.robell-sector-final-cta__inner{grid-template-columns:1fr}.robell-sector-intro__inner,.robell-sector-priorities__inner,.robell-sector-approach__inner,.robell-sector-proof__inner,.robell-sector-final-cta__inner{padding-top:5rem;padding-bottom:5rem}.robell-sector-intro__statement,.robell-sector-intro__copy,.robell-sector-priorities__header span,.robell-sector-priorities__header h2,.robell-sector-approach__inner>div:first-child,.robell-sector-approach__inner>div:last-child{grid-column:auto}.robell-sector-intro__copy{padding-top:0}.robell-sector-priorities__header{gap:1.25rem}.robell-sector-priorities__list li{grid-template-columns:2.5rem 1fr;gap:1rem 1.25rem;padding:2rem 0}.robell-sector-priorities__list p{grid-column:2}.robell-sector-priorities__list h3{font-size:1.55rem}.robell-sector-proof__inner,.robell-sector-final-cta__inner{gap:2.75rem}.robell-sector-proof__image,.robell-sector-final-cta__image{aspect-ratio:4/3}.robell-sector-more-projects{padding:5rem 0}.robell-sector-more-projects__head{align-items:flex-start;flex-direction:column;margin-bottom:2.5rem}}


/* Robell 3.7.0 — sector landing pages use the Sustainability editorial rhythm. */
.robell-sector-page .robell-sector-hero--inner-page,
.robell-sector-page .robell-sector-hero--inner-page .robell-sector-hero__inner{min-height:540px}
@media(max-width:767px){
  .robell-sector-page .robell-sector-hero--inner-page,
  .robell-sector-page .robell-sector-hero--inner-page .robell-sector-hero__inner{min-height:500px}
  .robell-sector-page .robell-sector-hero--inner-page .robell-sector-hero__inner{padding-top:128px;padding-bottom:52px}
  .robell-sector-page .robell-sector-hero--inner-page .robell-sector-hero__title{font-size:clamp(2.35rem,10.5vw,3.45rem)}
}

/* Project sector labels must display in title case on individual project pages. */
.rb-project-sector-value { text-transform: capitalize !important; }


/* Homepage sustainability badge — centred beneath the Net Zero eyebrow. */
.robell-sustainability-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  width: max-content;
}

.robell-sustainability-logo {
  display: block;
  width: 128px !important;
  max-width: 128px !important;
  height: auto !important;
  max-height: 96px !important;
  object-fit: contain;
  object-position: center;
}

@media (min-width: 768px) {
  .robell-sustainability-logo {
    width: 140px !important;
    max-width: 140px !important;
    max-height: 104px !important;
    transform: none !important;
  }
}


/* Robell 3.7.15 — mobile sector lists use an arrow marker instead of numbers.
   Desktop numbering and layout remain unchanged. */
@media (max-width: 767px) {
  .robell-sector-list .robell-sector-heading {
    display: grid !important;
    grid-template-columns: 2.35rem minmax(0, 1fr);
    align-items: center;
    column-gap: 0.8rem;
    width: 100%;
  }

  .robell-sector-list .robell-sector-heading > span:first-child {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 2.35rem;
    font-size: 0 !important;
    line-height: 1;
    letter-spacing: 0 !important;
  }

  .robell-sector-list .robell-sector-heading > span:first-child::before {
    content: "→";
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1;
    color: var(--accent);
  }

  .robell-sector-list .robell-sector-heading > a {
    min-width: 0;
    white-space: nowrap;
    font-size: clamp(1.7rem, 7.15vw, 2rem) !important;
    line-height: 1.08;
  }

  .robell-sector-list .robell-sector-heading > a > span[aria-hidden="true"] {
    display: none !important;
  }
}
