/*
Theme Name: Robell Control Systems
Theme URI: https://robell.co.uk
Author: Kingdom of Web
Author URI: https://kingdomofweb.com/
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.28
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;
  }
}


/* Robell 3.7.25 — stable mobile sector spacing across current iPhone widths.
   The title is allowed to size to its actual word width, while the description
   owns the remaining column. This prevents long names such as Pharmaceutical
   drifting into the description on devices with slightly different Safari
   font metrics. */
@media (min-width: 375px) and (max-width: 767px) {
  .robell-sector-list {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .robell-sector-list .robell-sector-row {
    display: grid !important;
    grid-template-columns: 2.35rem max-content minmax(0, 1fr) !important;
    column-gap: 0.7rem !important;
    row-gap: 0 !important;
    align-items: center !important;
  }

  .robell-sector-list .robell-sector-heading {
    display: contents !important;
  }

  .robell-sector-list .robell-sector-heading > span:first-child {
    grid-column: 1 !important;
    align-self: center !important;
    width: 2.35rem !important;
    padding-top: 0 !important;
  }

  .robell-sector-list .robell-sector-heading > a {
    grid-column: 2 !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: nowrap !important;
    font-size: clamp(1.65rem, 6.75vw, 1.78rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.03em !important;
  }

  .robell-sector-list .robell-sector-description {
    grid-column: 3 !important;
    align-self: center !important;
    justify-self: end !important;
    width: 100% !important;
    max-width: 8.25rem !important;
    min-width: 0 !important;
    text-align: right !important;
    font-size: clamp(0.74rem, 3.05vw, 0.82rem) !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}


/* ---------------------------------------------------------------
 * v3.7.26 — Homepage viewport hero and consistent service/project cards.
 * Keep all of these rules home-scoped; sector and service inner pages unchanged.
 * --------------------------------------------------------------- */
.robell .robell-home-hero,
.robell .robell-home-hero__inner {
  min-height: 100vh;
  min-height: 100svh;
}
.robell .robell-home-hero__inner {
  padding-top: clamp(112px, 15vh, 155px);
  padding-bottom: clamp(55px, 9vh, 96px);
}
.robell .robell-home-hero__image { opacity: .85; object-position: center 53%; }
.robell .robell-home-hero__content { width: 100%; max-width: 1050px; }
.robell .robell-home-hero__eyebrow { margin-bottom: clamp(16px, 3vh, 28px); }
.robell .robell-home-hero__title {
  font-size: clamp(3rem, 4.6vw, 5rem);
  line-height: .965;
  letter-spacing: -.042em;
  text-wrap: balance;
}
.robell .robell-home-hero__lead {
  margin-top: clamp(17px, 3vh, 27px);
  font-size: 14px;
  line-height: 1.7;
  max-width: 560px;
}
.robell .robell-home-hero__actions { margin-top: clamp(20px, 3.5vh, 30px); }
.robell .robell-home-hero__scroll {
  position: absolute;
  bottom: 27px;
  right: max(32px, calc((100% - 1360px) / 2));
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font: 500 10px/1.5 var(--font-sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.76);
  transition: color .25s ease;
}
.robell .robell-home-hero__scroll:hover { color: white; }
.robell .robell-home-hero__scroll-line { width: 27px; height: 1px; background: var(--accent); }

.robell .robell-home-services__inner { padding-top: 100px; padding-bottom: 118px; }
.robell .robell-home-services__head { margin-bottom: 44px; }
.robell .robell-home-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.robell .robell-home-service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 236px;
  padding: 27px 30px 29px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.robell .robell-home-service-card:hover,
.robell .robell-home-service-card:focus-visible {
  border-color: rgba(23,64,109,.28);
  box-shadow: 0 20px 46px -27px rgba(15,45,79,.25);
  transform: translateY(-3px);
}
.robell .robell-home-service-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; }
.robell .robell-home-service-card__index {
  font: 500 10px/1.5 var(--default-mono-font-family, monospace);
  color: var(--accent);
  letter-spacing: .19em;
}
.robell .robell-home-service-card__arrow {
  color: var(--navy);
  opacity: .45;
  font-size: 22px;
  line-height: 1;
  transform: translateY(0);
  transition: color .3s ease, opacity .3s ease, transform .3s ease;
}
.robell .robell-home-service-card:hover .robell-home-service-card__arrow { color: var(--accent); opacity: 1; transform: translate(3px,-3px); }
.robell .robell-home-service-card__title {
  margin-top: 19px;
  max-width: 510px;
  color: var(--navy);
  font-size: clamp(1.5rem, 2vw, 1.875rem); /* same desktop scale as sector links */
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.16;
}
.robell .robell-home-service-card__desc {
  margin-top: 12px;
  max-width: 460px;
  color: #4e5a6d;
  font-size: 14px;
  line-height: 1.7;
}
.robell .robell-home-service-card__rule {
  position: absolute;
  left: 30px;
  bottom: 0;
  width: 36px;
  height: 3px;
  background: var(--accent);
  transition: width .35s ease;
}
.robell .robell-home-service-card:hover .robell-home-service-card__rule { width: calc(100% - 60px); }

/* The same real project cards appear elsewhere; only the homepage grid changes. */
.robell .robell-home-project-grid .robell-project-tile { margin-top: 0 !important; min-width: 0; }
.robell .robell-home-project-grid .robell-project-tile__link {
  height: 100%;
  border: 1px solid var(--line);
  background: var(--paper);
  overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.robell .robell-home-project-grid .robell-project-tile__link:hover {
  border-color: rgba(23,64,109,.28);
  box-shadow: 0 20px 48px -28px rgba(15,45,79,.22);
  transform: translateY(-3px);
}
.robell .robell-home-project-grid .robell-project-tile__media img { height: 320px; }
.robell .robell-home-project-grid .robell-project-tile__body { margin: 0; padding: 26px 28px 30px; }
.robell .robell-home-project-grid .robell-project-tile__body h3 { font-size: clamp(1.5rem, 2vw, 1.875rem); line-height: 1.16; }

@media (max-width: 767px) {
  .robell .robell-home-hero,
  .robell .robell-home-hero__inner { min-height: 100svh; }
  .robell .robell-home-hero__inner { padding-top: 105px; padding-bottom: 52px; }
  .robell .robell-home-hero__title { font-size: clamp(2.45rem, 9vw, 4rem); line-height: 1.01; letter-spacing: -.035em; text-wrap: initial; }
  .robell .robell-home-hero__eyebrow { margin-bottom: 19px; }
  .robell .robell-home-hero__lead { font-size: 13.5px; margin-top: 20px; line-height: 1.65; }
  .robell .robell-home-hero__actions { margin-top: 23px; gap: 12px; }
  .robell .robell-home-hero__actions a { font-size: 10px; }
  .robell .robell-home-hero__scroll { display: none; }
  .robell .robell-home-services__inner { padding-top: 78px; padding-bottom: 80px; }
  .robell .robell-home-services__head { margin-bottom: 30px; }
  .robell .robell-home-service-grid { grid-template-columns: 1fr; gap: 12px; }
  .robell .robell-home-service-card { min-height: 185px; padding: 22px 23px 25px; }
  .robell .robell-home-service-card__title { margin-top: 14px; font-size: 1.5rem; }
  .robell .robell-home-service-card__desc { font-size: 13.5px; }
  .robell .robell-home-service-card__rule { left: 23px; }
  .robell .robell-home-project-grid .robell-project-tile__media img { height: 250px; }
  .robell .robell-home-project-grid .robell-project-tile__body { padding: 23px; }
}
@media (max-height: 670px) and (min-width: 768px) {
  .robell .robell-home-hero__inner { padding-top: 92px; padding-bottom: 42px; }
  .robell .robell-home-hero__title { font-size: clamp(2.5rem, 3.8vw, 4rem); }
  .robell .robell-home-hero__lead { margin-top: 13px; line-height: 1.55; }
  .robell .robell-home-hero__actions { margin-top: 15px; }
  .robell .robell-home-hero__scroll { bottom: 12px; }
}
@media (max-height: 620px) and (max-width: 767px) {
  .robell .robell-home-hero, .robell .robell-home-hero__inner { min-height: 620px; }
}
@media (prefers-reduced-motion: reduce) {
  .robell .robell-home-service-card,
  .robell .robell-home-project-grid .robell-project-tile__link { transition: none; }
}

/* ---------------------------------------------------------------
 * v3.7.27 — Company navigation and responsive submenu.
 * --------------------------------------------------------------- */
.robell .robell-company-nav { position: relative; display: flex; align-items: center; align-self: stretch; }
.robell .robell-company-nav__trigger {
  display: inline-flex; align-items: center; gap: 6px;
  height: 100%; cursor: pointer; background: none; border: 0;
  font: inherit; font-size: 12.5px; white-space: nowrap;
}
.robell .robell-company-nav__chevron { transition: transform .22s ease; }
.robell .robell-company-nav.is-open .robell-company-nav__chevron { transform: rotate(180deg); }
.robell .robell-company-nav__menu {
  position: absolute; right: -24px; top: calc(100% + 17px);
  width: 275px; padding: 14px 12px 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: #173e68;
  box-shadow: 0 24px 60px rgba(0,15,34,.3);
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(8px);
  transition: opacity .22s ease, transform .22s ease;
  z-index: 60;
}
/* A bridge across the gap means the dropdown doesn't close during pointer travel. */
.robell .robell-company-nav__menu:before {
  content: ''; position: absolute; top: -19px; left: 0; right: 0; height: 20px;
}
.robell .robell-company-nav.is-open .robell-company-nav__menu {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.robell .robell-company-nav__eyebrow {
  display: block; padding: 9px 13px 13px;
  font-size: 10px; letter-spacing: .18em; font-weight: 600;
  text-transform: uppercase; color: #ed2437;
}
.robell .robell-company-nav__menu a {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 13px; border-top: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.85); font-size: 13px; letter-spacing: .015em;
  transition: background .18s ease, color .18s ease;
}
.robell .robell-company-nav__menu a span { color: #db1d30; transition: transform .18s ease; }
.robell .robell-company-nav__menu a:hover,
.robell .robell-company-nav__menu a:focus-visible,
.robell .robell-company-nav__menu a[aria-current="page"] { background: rgba(255,255,255,.07); color: #fff; }
.robell .robell-company-nav__menu a:hover span { transform: translate(2px,-2px); }
.robell .robell-company-nav__trigger:focus-visible,
.robell .robell-mobile-company__trigger:focus-visible,
.robell .robell-company-nav__menu a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.robell .robell-mobile-nav-link {
  display: block; width: 100%; padding: 13px 0; color: rgba(255,255,255,.9);
  font-size: 14px; letter-spacing: .025em; text-align: left;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.robell .robell-mobile-company__trigger {
  display: flex; justify-content: space-between; align-items: center;
  background: none; cursor: pointer;
}
.robell .robell-mobile-company__trigger svg { transition: transform .22s ease; }
.robell .robell-mobile-company.is-open .robell-mobile-company__trigger svg { transform: rotate(180deg); }
.robell .robell-mobile-company__links {
  display: grid; grid-template-rows: 0fr; opacity: 0;
  transition: grid-template-rows .26s ease, opacity .18s ease;
  overflow: hidden; padding: 0 0 0 15px;
  max-height: 0;
}
.robell .robell-mobile-company.is-open .robell-mobile-company__links {
  grid-template-rows: 1fr; opacity: 1; max-height: 350px;
}
.robell .robell-mobile-company__links a {
  display: block; padding: 11px 0; color: rgba(255,255,255,.78);
  font-size: 13.5px; border-bottom: 1px solid rgba(255,255,255,.08);
}
.robell .robell-mobile-company__links a:last-child { border: 0; }
.robell [data-mobile-panel].robell-menu-open {
  max-height: calc(100dvh - 75px) !important;
  overflow-y: auto; overscroll-behavior: contain;
}
@media (prefers-reduced-motion: reduce) {
  .robell .robell-company-nav__menu,
  .robell .robell-company-nav__chevron,
  .robell .robell-mobile-company__links { transition: none; }
}
.robell .robell-mobile-company__links { visibility: hidden; pointer-events: none; }
.robell .robell-mobile-company.is-open .robell-mobile-company__links { visibility: visible; pointer-events: auto; }

/* v3.7.28 — no decorative section counters; keep headings aligned */
.robell .robell-home-service-card__top { min-height: 21px; justify-content: flex-end; }
.robell .robell-home-service-card__title { margin-top: 12px; }
.robell .robell-home-services .robell-home-service-card__arrow { opacity: .7; }
.robell .robell-sector-heading { gap: .5rem; }
.robell .robell-home-project-grid .robell-project-tile__body { gap: 12px; }
