/* Derived from the live Baba Supersign service-page design, 9 September 2026. */
    :root {
      --yellow: #f7db05;
      --logo-yellow: #fed700;
      --dark: #0f172a;
      --dark-soft: #172337;
      --ink: #111827;
      --muted: #5b6476;
      --page: #f5f7fb;
      --cream: #f1eada;
      --border: rgba(15, 23, 42, .09);
      --radius: 26px;
      --shadow: 0 28px 70px rgba(15, 23, 42, .1)
    }

    * {
      box-sizing: border-box
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 96px
    }

    body {
      margin: 0;
      font: 400 16px/1.75 'Poppins', sans-serif;
      color: var(--ink);
      background: var(--page)
    }

    h1,
    h2,
    h3,
    h4,
    .nav-link,
    summary,
    .heading-font {
      font-family: 'Hanken Grotesk', sans-serif
    }

    h1,
    h2,
    h3,
    h4 {
      font-weight: 800;
      line-height: 1.12;
      margin: 0 0 18px
    }

    h1 {
      font-size: clamp(2.55rem, 4.8vw, 4.65rem)
    }

    h2 {
      font-size: clamp(2rem, 3vw, 2.7rem)
    }

    h3 {
      font-size: 1.35rem
    }

    h4 {
      font-size: 1.15rem
    }

    p {
      margin: 0 0 18px
    }

    a {
      color: inherit;
      text-decoration: none
    }

    a:hover {
      color: #806c00
    }

    a:focus-visible,
    button:focus-visible,
    summary:focus-visible,
    input:focus-visible,
    textarea:focus-visible {
      outline: 3px solid #09a5cc;
      outline-offset: 4px
    }

    button,
    input,
    textarea {
      font: inherit
    }

    button,
    summary {
      cursor: pointer
    }

    img {
      max-width: 100%;
      display: block
    }

    ul,
    ol {
      padding-left: 22px
    }

    li {
      margin-bottom: 9px
    }

    figure {
      margin: 0
    }

    section[id] {
      scroll-margin-top: 100px
    }

    .container {
      max-width: 1336px;
      margin: auto;
      padding: 0 24px
    }

    .skip {
      position: fixed;
      z-index: 100;
      top: -100px;
      left: 20px;
      background: var(--yellow);
      padding: 10px 20px
    }

    .skip:focus {
      top: 10px
    }

    .site-header {
      height: 64px;
      background: #000;
      color: #fff;
      position: relative;
      z-index: 30;
      border-bottom: 1px solid #303030
    }

    .header-inner {
      max-width: 1390px;
      margin: auto;
      padding: 0 38px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 28px;
      height: 64px
    }

    .brand {
      height: 110px;
      width: 110px;
      flex: 0 0 110px;
      align-self: flex-start;
      background: var(--logo-yellow);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 16px
    }

    .brand img {
      width: 100%;
      height: auto;
      mix-blend-mode: multiply
    }

    .desktop-nav {
      display: flex;
      align-items: center;
      gap: 28px
    }

    .nav-link {
      font-size: 17px;
      font-weight: 500;
      white-space: nowrap;
      line-height: 64px;
      display: block
    }

    .nav-link:hover,
    .nav-link.active {
      color: var(--yellow)
    }

    .pay-link {
      background: var(--logo-yellow);
      color: #111 !important;
      border-radius: 6px;
      font-size: 14px;
      font-weight: 600;
      padding: 10px 20px;
      line-height: 25px
    }

    .nav-drop {
      position: relative
    }

    .nav-drop>summary {
      list-style: none
    }

    .nav-drop>summary::-webkit-details-marker {
      display: none
    }

    .menu-panel {
      position: absolute;
      top: 61px;
      left: -30px;
      width: 670px;
      max-width: 85vw;
      background: #fff;
      color: var(--ink);
      padding: 20px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 5px 14px;
      border: 1px solid var(--border);
      box-shadow: var(--shadow);
      border-radius: 0 0 16px 16px
    }

    .menu-panel a {
      padding: 9px 10px;
      border-radius: 7px;
      font-size: 14px;
      line-height: 1.5
    }

    .menu-panel a:hover {
      background: #fff9c8;
      color: var(--ink)
    }

    .menu-panel .all-link {
      grid-column: 1/-1;
      background: #f5f7fb;
      font-weight: 600;
      margin-bottom: 8px
    }

    .menu-toggle {
      display: none;
      border: 1px solid #555;
      background: none;
      color: #fff;
      border-radius: 8px;
      padding: 8px 12px;
      font-size: 14px
    }

    .mobile-nav {
      display: none
    }

    .hero {
      position: relative;
      overflow: hidden;
      padding: 75px 0 66px;
      color: #fff;
      background: radial-gradient(circle at top left, rgba(247, 219, 5, .2), transparent 32%), radial-gradient(circle at 86% 14%, rgba(255, 255, 255, .16), transparent 24%), linear-gradient(135deg, #09101c 0%, #0f172a 52%, #172337 100%)
    }

    .breadcrumbs {
      display: flex;
      gap: 9px;
      flex-wrap: wrap;
      margin: 0 0 28px;
      color: #b9c1cc;
      font-size: 13px
    }

    .breadcrumbs a:hover {
      color: var(--yellow)
    }

    .breadcrumbs .current {
      color: var(--yellow)
    }

    .hero-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
      gap: 34px;
      align-items: start
    }

    .kicker {
      display: inline-flex;
      gap: 10px;
      align-items: center;
      padding: 9px 15px;
      border-radius: 999px;
      background: rgba(255, 255, 255, .1);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: white
    }

    .kicker .page-no {
      color: var(--yellow)
    }

    .hero h1 {
      margin-top: 20px;
      text-align: center;
      letter-spacing: -.018em
    }

    .hero-lead {
      color: rgba(255, 255, 255, .8);
      line-height: 1.75;
      margin: 20px 0 0
    }

    .hero-pills {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 24px
    }

    .hero-pills a {
      padding: 10px 16px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, .14);
      background: rgba(255, 255, 255, .08);
      color: #dce0e8;
      font-size: 14px
    }

    .hero-pills a:hover {
      background: rgba(255, 255, 255, .14);
      border-color: var(--yellow);
      color: #fff
    }

    .actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 28px
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 54px;
      padding: 12px 24px;
      border-radius: 15px;
      background: var(--yellow);
      color: #111;
      font-weight: 700;
      border: 1px solid transparent;
      line-height: 1.5;
      text-align: center;
      transition: transform .2s, box-shadow .2s
    }

    .btn:hover {
      transform: translateY(-2px);
      color: #111;
      box-shadow: 0 15px 30px rgba(247, 219, 5, .2)
    }

    .btn-secondary {
      background: rgba(247, 219, 5, .12);
      color: #fff;
      border-color: rgba(247, 219, 5, .55)
    }

    .btn-secondary:hover {
      background: rgba(247, 219, 5, .2);
      color: #fff
    }

    .btn-light {
      background: #fff;
      color: #111;
      border: 1px solid var(--border)
    }

    .micro {
      font-size: 14px;
      line-height: 1.8;
      color: #bfc7d3;
      margin: 15px 0 0
    }

    .micro strong {
      color: white
    }

    .contactline {
      display: flex;
      gap: 14px 22px;
      flex-wrap: wrap;
      font-size: 14px;
      color: #d2d7df;
      margin-top: 16px
    }

    .contactline a {
      overflow-wrap: anywhere
    }

    .contactline a:hover {
      color: var(--yellow)
    }

    .hero-figure {
      padding: 18px;
      background: rgba(255, 255, 255, .08);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 34px;
      margin-top: 12px;
      box-shadow: 0 25px 55px rgba(0, 0, 0, .16)
    }

    .hero-figure img {
      width: 100%;
      height: auto;
      aspect-ratio: 1.5;
      object-fit: cover;
      border-radius: 24px;
      background: #fff
    }

    .hero-figure figcaption {
      font-size: 12px;
      color: #bbc4d1;
      margin: 12px 4px 0;
      line-height: 1.55
    }

    .hero-spec {
      padding: 32px;
      border-radius: 30px;
      background: rgba(255, 255, 255, .07);
      border: 1px solid rgba(255, 255, 255, .13);
      margin-top: 12px
    }

    .hero-spec h2 {
      font-size: 2rem;
      margin-top: 15px
    }

    .hero-spec ol {
      counter-reset: item;
      list-style: none;
      padding: 0;
      margin: 24px 0 0
    }

    .hero-spec li {
      display: flex;
      gap: 15px;
      border-top: 1px solid #ffffff26;
      padding: 17px 0;
      margin: 0;
      line-height: 1.6
    }

    .hero-spec li:before {
      counter-increment: item;
      content: '0' counter(item);
      color: var(--yellow);
      font-weight: 600;
      font-size: 14px
    }

    .hero-spec li span {
      color: #d1d9e4;
      font-size: 14px
    }

    .hero-stats {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 16px;
      margin-top: 42px
    }

    .hero-stat {
      padding: 21px;
      border: 1px solid rgba(255, 255, 255, .12);
      background: rgba(255, 255, 255, .06);
      border-radius: 20px
    }

    .hero-stat strong {
      display: block;
      font-family: 'Hanken Grotesk', sans-serif;
      font-size: 19px;
      margin-bottom: 6px;
      color: #fff
    }

    .hero-stat span {
      font-size: 14px;
      line-height: 1.7;
      color: #c1c9d4
    }

    .section {
      padding: 72px 0
    }

    .section.compact {
      padding: 48px 0
    }

    .section.white {
      background: white
    }

    .eyebrow {
      font-size: 12px;
      letter-spacing: .14em;
      font-weight: 700;
      text-transform: uppercase;
      color: #767036;
      display: block;
      margin-bottom: 12px
    }

    .section-title {
      max-width: 800px;
      margin-bottom: 32px
    }

    .section-title p {
      color: var(--muted);
      margin-bottom: 0
    }

    .two-col {
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
      gap: 26px;
      align-items: start
    }

    .surface {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 34px;
      box-shadow: 0 12px 32px rgba(15, 23, 42, .035)
    }

    .surface p {
      color: var(--muted)
    }

    .surface p:last-child {
      margin: 0
    }

    .surface h2 {
      font-size: clamp(1.7rem, 2.6vw, 2.4rem)
    }

    .fit-panel {
      background: var(--dark);
      color: #fff
    }

    .fit-panel .eyebrow {
      color: var(--yellow)
    }

    .fit-panel li {
      border-bottom: 1px solid #ffffff1f;
      padding: 12px 0;
      margin: 0;
      list-style: none;
      color: #e0e4eb
    }

    .fit-panel ul {
      padding: 0;
      margin: 0
    }

    .fit-panel li:last-child {
      border: 0
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 20px
    }

    .card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 22px;
      padding: 26px;
      transition: transform .2s, box-shadow .2s;
      position: relative
    }

    .card:hover {
      transform: translateY(-3px);
      box-shadow: 0 16px 38px rgba(15, 23, 42, .08)
    }

    .card .num {
      width: 40px;
      height: 40px;
      border-radius: 12px;
      background: #fff8c5;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font: 700 15px 'Hanken Grotesk', sans-serif;
      margin-bottom: 18px
    }

    .card h3 {
      font-size: 21px;
      line-height: 1.2
    }

    .card p {
      font-size: 14px;
      line-height: 1.8;
      color: var(--muted);
      margin: 0
    }

    .card a.inline-link {
      display: inline-block;
      font-size: 14px;
      font-weight: 600;
      border-bottom: 1px solid #d4bb05;
      margin-top: 20px
    }

    .checklist {
      padding: 0;
      list-style: none
    }

    .checklist li {
      position: relative;
      padding-left: 24px;
      color: var(--muted)
    }

    .checklist li:before {
      content: '✓';
      position: absolute;
      left: 0;
      color: #827000;
      font-weight: 700
    }

    .process-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 22px
    }

    .process {
      border-top: 3px solid var(--yellow);
      padding: 22px 8px 0
    }

    .process .step {
      font: 800 32px 'Hanken Grotesk', sans-serif;
      color: #88929f;
      margin-bottom: 15px;
      display: block
    }

    .process h3 {
      font-size: 22px
    }

    .process p {
      font-size: 14px;
      color: var(--muted);
      line-height: 1.8
    }

    .gallery {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px
    }

    .gallery figure {
      border-radius: 22px;
      overflow: hidden;
      border: 1px solid var(--border);
      background: white
    }

    .gallery img {
      width: 100%;
      aspect-ratio: 1.5;
      object-fit: cover
    }

    .gallery figcaption {
      padding: 20px;
      font-size: 14px;
      line-height: 1.65;
      color: var(--muted)
    }

    .project-links {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 15px;
      margin-top: 26px
    }

    .project-link {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 18px;
      border: 1px solid var(--border);
      border-radius: 17px;
      background: #fff;
      padding: 22px;
      font-family: 'Hanken Grotesk', sans-serif;
      font-size: 19px;
      font-weight: 700
    }

    .project-link:hover {
      border-color: #cab000;
      color: #111
    }

    .project-link b {
      color: #877800
    }

    .faq-list {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 5px 30px
    }

    .faq-list details {
      border-bottom: 1px solid var(--border)
    }

    .faq-list details:last-child {
      border: 0
    }

    .faq-list summary {
      font-size: 21px;
      font-weight: 700;
      line-height: 1.45;
      padding: 24px 34px 24px 0;
      position: relative;
      list-style: none
    }

    .faq-list summary::-webkit-details-marker {
      display: none
    }

    .faq-list summary:after {
      content: '+';
      position: absolute;
      right: 0;
      top: 24px;
      color: #746400;
      font-size: 25px
    }

    .faq-list details[open] summary:after {
      content: '−'
    }

    .faq-list p {
      max-width: 1040px;
      color: var(--muted);
      padding: 0 30px 24px 0;
      margin: 0
    }

    .related {
      display: flex;
      flex-wrap: wrap;
      gap: 12px
    }

    .related a {
      display: flex;
      gap: 10px;
      border: 1px solid #dbe0e7;
      background: #fff;
      border-radius: 12px;
      padding: 14px 18px;
      font-size: 14px;
      font-weight: 500
    }

    .related a span {
      color: #8b7900;
      font-weight: 700
    }

    .related a:hover {
      background: #fffad7;
      border-color: #e0c705;
      color: #111
    }

    .parent-link {
      display: inline-flex;
      gap: 10px;
      margin-top: 22px;
      font-size: 14px;
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 5px
    }

    .quote-section {
      background: linear-gradient(135deg, #09101c, #172337);
      color: #fff
    }

    .quote-section .eyebrow {
      color: var(--yellow)
    }

    .quote-section h2 {
      font-size: clamp(2rem, 3vw, 2.8rem)
    }

    .quote-section p {
      color: #c5cdd8
    }

    .quote-section .checklist li {
      color: #d2d9e2
    }

    .quote-section .checklist li:before {
      color: var(--yellow)
    }

    .quote-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 50px;
      align-items: start
    }

    .quote-form {
      background: white;
      border-radius: 26px;
      padding: 32px;
      color: var(--ink)
    }

    .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px
    }

    .field label {
      display: block;
      font-size: 14px;
      font-weight: 600;
      margin-bottom: 7px
    }

    .field input,
    .field textarea {
      width: 100%;
      border: 1px solid #ccd3dd;
      border-radius: 10px;
      padding: 12px;
      font-size: 16px;
      background: #fbfcfe;
      color: #111;
      line-height: 1.5
    }

    .field textarea {
      min-height: 116px;
      resize: vertical
    }

    .field.full {
      grid-column: 1/-1
    }

    .quote-form .note {
      font-size: 13px;
      color: #5b6476;
      margin: 18px 0
    }

    .quote-form .btn {
      width: 100%
    }

    .form-status {
      font-size: 14px;
      margin-top: 12px;
      color: #265341
    }

    .quote-contact {
      margin-top: 25px;
      display: grid;
      gap: 8px
    }

    .quote-contact a {
      overflow-wrap: anywhere
    }

    .quote-contact a:hover {
      color: var(--yellow)
    }

    .service-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr))
    }

    .service-card {
      padding: 28px;
      display: flex;
      flex-direction: column
    }

    .service-card h3 {
      font-size: 25px
    }

    .service-card p {
      flex: 1
    }

    .service-card .inline-link {
      align-self: flex-start
    }

    .service-card .mini-types {
      font-size: 13px;
      color: #646e7c;
      line-height: 1.7;
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid var(--border)
    }

    .division-bar {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px
    }

    .division-bar a {
      padding: 22px;
      border-radius: 17px;
      background: #fff;
      border: 1px solid var(--border);
      font: 700 22px 'Hanken Grotesk', sans-serif
    }

    .division-bar a:hover {
      background: var(--yellow);
      color: #111
    }

    .directory-hero h1 {
      text-align: left
    }

    .directory-hero .hero-grid {
      grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr)
    }

    .quick-actions {
      position: fixed;
      right: 20px;
      bottom: 26px;
      z-index: 20;
      display: flex;
      flex-direction: column;
      gap: 10px
    }

    .quick-actions a {
      border-radius: 999px;
      font-size: 14px;
      font-weight: 600;
      padding: 14px 24px;
      min-width: 148px;
      text-align: center;
      box-shadow: 0 8px 20px #0002;
      color: #101610;
      background: var(--yellow)
    }

    .quick-actions .whatsapp {
      background: #20cf60
    }

    .quick-actions a:hover {
      filter: brightness(.96)
    }

    .visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0)
    }

    @media(min-width:1450px) {
      .container {
        max-width: 1336px
      }

      .hero h1 {
        font-size: 65px
      }
    }

    @media(max-width:1190px) {
      .desktop-nav {
        gap: 17px
      }

      .header-inner {
        padding: 0 24px;
        gap: 20px
      }

      .nav-link {
        font-size: 15px
      }

      .pay-link {
        padding: 8px 12px;
        font-size: 13px
      }

      .cards {
        grid-template-columns: repeat(2, minmax(0, 1fr))
      }

      .hero h1 {
        font-size: clamp(2.6rem, 4.6vw, 3.65rem)
      }
    }

    @media(max-width:1000px) {
      .desktop-nav {
        display: none
      }

      .menu-toggle {
        display: block
      }

      .site-header,
      .header-inner {
        height: 76px
      }

      .brand {
        height: 84px;
        width: 100px;
        flex-basis: 100px;
        padding: 12px
      }

      .mobile-nav[open] {
        display: block;
        position: absolute;
        top: 76px;
        left: 0;
        right: 0;
        background: #111;
        box-shadow: 0 20px 25px #0003;
        padding: 20px 24px;
        max-height: 80vh;
        overflow: auto
      }

      .mobile-nav a {
        display: block;
        padding: 9px 0;
        font-size: 16px
      }

      .mobile-nav .mobile-services {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 20px;
        border-top: 1px solid #ffffff26;
        margin-top: 12px;
        padding-top: 12px
      }

      .mobile-nav .mobile-services a {
        font-size: 14px;
        color: #d2d7df
      }

      .hero {
        padding-top: 28px
      }

      .hero-grid,
      .directory-hero .hero-grid {
        grid-template-columns: 1fr 1fr;
        gap: 24px
      }

      .hero h1 {
        font-size: 2.7rem
      }

      .hero-figure {
        padding: 12px;
        border-radius: 25px
      }

      .hero-figure img {
        border-radius: 17px
      }

      .hero-stats {
        grid-template-columns: 1fr 1fr
      }

      .service-grid {
        grid-template-columns: 1fr 1fr
      }

      .two-col {
        grid-template-columns: 1fr 1fr
      }

      .surface {
        padding: 26px
      }

      .quote-grid {
        gap: 28px
      }

      .process-grid {
        grid-template-columns: 1fr 1fr
      }

      .footer-grid {
        gap: 24px
      }

      .footer-top {
        grid-template-columns: 140px 1fr
      }

      .footer-address {
        grid-column: 1/-1
      }

      .quick-actions a {
        min-width: 110px;
        padding: 11px 17px
      }
    }

    @media(max-width:760px) {
      .container {
        padding: 0 20px
      }

      .header-inner {
        padding: 0 20px
      }

      .hero-grid,
      .directory-hero .hero-grid,
      .two-col,
      .quote-grid {
        grid-template-columns: 1fr
      }

      .hero h1 {
        text-align: left;
        font-size: clamp(2.25rem, 7vw, 3.5rem)
      }

      .hero-figure {
        margin-top: 12px
      }

      .hero {
        padding-bottom: 38px
      }

      .hero-stats {
        gap: 12px;
        margin-top: 30px
      }

      .hero-stat {
        padding: 18px
      }

      .hero-stat strong {
        font-size: 18px
      }

      .hero-stat span {
        font-size: 14px
      }

      .hero-lead {
        font-size: 16px
      }

      .section {
        padding: 48px 0
      }

      .section.compact {
        padding: 36px 0
      }

      .cards,
      .service-grid {
        gap: 14px
      }

      .card {
        padding: 22px
      }

      .card h3 {
        font-size: 21px
      }

      .gallery {
        grid-template-columns: 1fr
      }

      .gallery img {
        max-height: 380px
      }

      .gallery figcaption {
        padding: 18px
      }

      .project-links {
        grid-template-columns: 1fr
      }

      .division-bar {
        grid-template-columns: 1fr 1fr
      }

      .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 26px
      }

      .footer-top {
        grid-template-columns: 1fr
      }

      .footer-address {
        grid-column: auto
      }

      .footer-top {
        gap: 20px
      }

      .footer-logo {
        width: 150px
      }

      .site-footer {
        padding-bottom: 105px
      }

      .quick-actions {
        bottom: 0;
        left: 0;
        right: 0;
        padding: 10px 16px;
        background: #fff;
        border-top: 1px solid #dbe0e7;
        flex-direction: row;
        gap: 10px
      }

      .quick-actions a {
        flex: 1;
        min-height: 45px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 10px;
        font-size: 14px
      }

      .quote-form {
        padding: 25px
      }

      .faq-list {
        padding: 0 22px
      }

      .faq-list summary {
        font-size: 20px
      }

      .faq-list p {
        padding-right: 0;
        font-size: 16px
      }

      .hero-spec {
        padding: 28px
      }
    }

    @media(max-width:480px) {

      .cards,
      .service-grid {
        grid-template-columns: 1fr
      }

      .hero h1 {
        font-size: 2.35rem
      }

      .form-grid {
        grid-template-columns: 1fr
      }

      .form-grid .field.full {
        grid-column: auto
      }

      .hero-pills a {
        font-size: 13px;
        padding: 9px 12px
      }

      .btn {
        padding: 12px 19px;
        font-size: 15px
      }

      .actions {
        gap: 10px
      }

      .hero-stats {
        grid-template-columns: 1fr 1fr
      }

      .hero-stat {
        padding: 15px
      }

      .hero-stat strong {
        font-size: 17px
      }

      .hero-stat span {
        font-size: 13px
      }

      .process-grid {
        gap: 18px
      }

      .surface {
        padding: 24px
      }

      .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px 20px
      }

      .footer-grid>div:first-child {
        grid-column: 1/-1
      }

      .mobile-nav .mobile-services {
        grid-template-columns: 1fr
      }

      .breadcrumbs {
        font-size: 12px
      }

      .division-bar a {
        font-size: 20px;
        padding: 18px
      }
    }

    @media(prefers-reduced-motion:reduce) {
      html {
        scroll-behavior: auto
      }

      *,
      *:before,
      *:after {
        transition: none !important;
        animation: none !important
      }
    }

    @media print {

      .site-header,
      .quick-actions,
      .quote-form,
      .actions,
      .hero-pills,
      .mobile-nav,
      .skip {
        display: none !important
      }

      body {
        font-size: 11pt;
        background: #fff;
        color: #111
      }

      .hero {
        background: #fff !important;
        color: #111;
        padding: 20px 0
      }

      .hero h1,
      .hero-lead,
      .micro,
      .contactline,
      .kicker {
        color: #111 !important
      }

      .hero-stats {
        display: none
      }

      .hero-grid {
        grid-template-columns: 1.1fr .9fr
      }

      .hero h1 {
        font-size: 30pt
      }

      .section {
        padding: 20px 0
      }

      .cards {
        grid-template-columns: 1fr 1fr
      }

      .card,
      .surface,
      .faq-list,
      .hero-figure {
        box-shadow: none;
        break-inside: avoid
      }

      .quote-section {
        background: white;
        color: #111
      }

      .quote-section p,
      .quote-section li {
        color: #111 !important
      }

      .site-footer {
        padding-bottom: 10px
      }

      .footer-grid {
        display: none
      }

      .faq-list details>* {
        display: block
      }

      .faq-list summary:after {
        display: none
      }

      a {
        color: inherit
      }
    }

    [data-prime="signage"] {
      --prime-tint: #E7E1D7;
      --prime-soft: #FBFAF7;
      --prime-ink: #433A32;
      --prime-body: #554A40;
      --prime-border: #C8BCAB;
    }

    [data-prime="wayfinding"] {
      --prime-tint: #CFCBC2;
      --prime-soft: #FBFAF7;
      --prime-ink: #433A32;
      --prime-body: #554A40;
      --prime-border: #ABA696;
    }

    [data-prime="decor"] {
      --prime-tint: #E7D4D0;
      --prime-soft: #FCF8F5;
      --prime-ink: #4B3A34;
      --prime-body: #68564E;
      --prime-border: #C5AAA5;
    }

    [data-prime="retail-work"] {
      --prime-tint: #CDBEAE;
      --prime-soft: #FBFAF7;
      --prime-ink: #433A32;
      --prime-body: #554A40;
      --prime-border: #AB9580;
    }

    /* Prime-category colour is always paired with a visible text label. */
    .prime-badge {
      display: inline-flex;
      flex-direction: column;
      align-items: flex-start;
      padding: 12px 20px;
      border-radius: 14px;
      background: var(--prime-tint);
      color: var(--prime-ink);
      border: 1px solid var(--prime-border);
      border-left: 5px solid var(--prime-ink);
      margin: 16px 0 0;
      max-width: 100%;
      line-height: 1.4
    }

    .prime-badge span {
      font-size: 12px;
      font-weight: 500;
      letter-spacing: .07em;
      text-transform: uppercase
    }

    .prime-badge strong {
      font-family: 'Hanken Grotesk', sans-serif;
      font-size: 23px;
      font-weight: 800;
      margin-top: 3px
    }

    .prime-badge:hover {
      background: var(--prime-soft);
      color: var(--prime-ink)
    }

    .category-chip {
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: 6px 12px;
      background: var(--prime-tint);
      color: var(--prime-ink);
      font-size: 13px;
      line-height: 1.5;
      font-weight: 600;
      max-width: 100%
    }

    body[data-prime]:not([data-prime="all"]) {
      background: var(--prime-soft)
    }

    body[data-prime]:not([data-prime="all"]) .hero {
      background: linear-gradient(125deg, var(--prime-tint) 0%, var(--prime-soft) 100%);
      color: var(--ink);
      border-bottom: 1px solid var(--prime-border)
    }

    body[data-prime]:not([data-prime="all"]) .hero h1,
    body[data-prime]:not([data-prime="all"]) .hero h2 {
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .hero .kicker {
      background: rgba(255, 255, 255, .66);
      color: var(--prime-ink);
      border: 1px solid var(--prime-border)
    }

    body[data-prime]:not([data-prime="all"]) .hero .page-no {
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .hero-lead,
    body[data-prime]:not([data-prime="all"]) .hero .micro,
    body[data-prime]:not([data-prime="all"]) .hero .micro strong,
    body[data-prime]:not([data-prime="all"]) .hero .contactline,
    body[data-prime]:not([data-prime="all"]) .hero-figure figcaption {
      color: var(--prime-body)
    }

    body[data-prime]:not([data-prime="all"]) .hero .contactline a:hover {
      color: var(--prime-ink);
      text-decoration: underline
    }

    body[data-prime]:not([data-prime="all"]) .hero .breadcrumbs {
      color: var(--prime-body)
    }

    body[data-prime]:not([data-prime="all"]) .hero .breadcrumbs .current,
    body[data-prime]:not([data-prime="all"]) .hero .breadcrumbs a:hover {
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .hero-pills a {
      color: var(--prime-ink);
      border-color: var(--prime-border);
      background: rgba(255, 255, 255, .6)
    }

    body[data-prime]:not([data-prime="all"]) .hero-pills a:hover {
      color: var(--prime-ink);
      background: #fff
    }

    body[data-prime]:not([data-prime="all"]) .hero .btn-secondary {
      background: rgba(255, 255, 255, .72);
      color: var(--prime-ink);
      border-color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .hero .btn-secondary:hover {
      color: var(--prime-ink);
      background: #fff
    }

    body[data-prime]:not([data-prime="all"]) .hero-figure,
    body[data-prime]:not([data-prime="all"]) .hero-spec,
    body[data-prime]:not([data-prime="all"]) .hero-stat {
      background: rgba(255, 255, 255, .68);
      border-color: var(--prime-border);
      box-shadow: none
    }

    body[data-prime]:not([data-prime="all"]) .hero-stat strong,
    body[data-prime]:not([data-prime="all"]) .hero-spec .eyebrow,
    body[data-prime]:not([data-prime="all"]) .hero-spec li:before {
      color: var(--prime-ink) !important
    }

    body[data-prime]:not([data-prime="all"]) .hero-stat span,
    body[data-prime]:not([data-prime="all"]) .hero-spec li span {
      color: var(--prime-body)
    }

    body[data-prime]:not([data-prime="all"]) .hero-spec li {
      border-color: var(--prime-border)
    }

    body[data-prime]:not([data-prime="all"]) .hero .prime-badge {
      display: flex;
      width: fit-content
    }

    body[data-prime]:not([data-prime="all"]) .section:not(.quote-section) .eyebrow {
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .card .num {
      background: var(--prime-tint);
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .fit-panel {
      background: var(--prime-tint);
      border-color: var(--prime-border);
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .fit-panel li {
      color: var(--prime-ink);
      border-color: var(--prime-border)
    }

    body[data-prime]:not([data-prime="all"]) .process {
      border-top-color: var(--prime-border)
    }

    body[data-prime]:not([data-prime="all"]) .process .step,
    body[data-prime]:not([data-prime="all"]) .faq-list summary:after {
      color: var(--prime-ink)
    }

    body[data-prime]:not([data-prime="all"]) .section:not(.quote-section) .checklist li:before {
      color: var(--prime-ink)
    }

    .related .category-related {
      background: var(--prime-soft);
      border-color: var(--prime-border);
      color: var(--prime-ink);
      align-items: flex-start;
      max-width: 100%
    }

    .related .category-related:hover {
      background: var(--prime-tint);
      color: var(--prime-ink);
      border-color: var(--prime-border)
    }

    .related .category-related .related-number {
      color: var(--prime-ink)
    }

    .related .category-related .related-label {
      display: flex;
      flex-direction: column;
      gap: 3px;
      font-weight: 500;
      color: var(--prime-ink)
    }

    .related .category-related small {
      font-size: 12px;
      font-weight: 400;
      color: var(--prime-ink)
    }

    .category-jump {
      display: block;
      background: var(--prime-tint) !important;
      border-color: var(--prime-border) !important;
      color: var(--prime-ink) !important
    }

    .category-jump small {
      display: block;
      font: 500 14px/1.5 'Poppins', sans-serif;
      margin-top: 8px;
      color: var(--prime-body)
    }

    .category-jump:hover {
      background: var(--prime-soft) !important
    }

    .category-group {
      padding: 28px;
      border-radius: 26px;
      background: var(--prime-soft);
      border: 1px solid var(--prime-border);
      margin-bottom: 32px
    }

    .category-group:last-child {
      margin-bottom: 0
    }

    .category-group-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 0 0 24px;
      border-bottom: 1px solid var(--prime-border);
      margin-bottom: 24px
    }

    .category-group-head .eyebrow {
      color: var(--prime-ink);
      margin-bottom: 6px
    }

    .category-group-head h3 {
      font-size: 32px;
      line-height: 1.2;
      margin: 0;
      color: var(--prime-ink)
    }

    .category-count {
      font-size: 14px;
      padding: 8px 14px;
      border-radius: 999px;
      background: var(--prime-tint);
      color: var(--prime-ink);
      font-weight: 600;
      white-space: nowrap
    }

    .category-service-card {
      border-top: 5px solid var(--prime-border)
    }

    .category-service-card .service-card-meta {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 20px
    }

    .category-service-card .service-card-meta .num {
      margin: 0;
      background: var(--prime-tint);
      color: var(--prime-ink)
    }

    .category-service-card .inline-link {
      border-color: var(--prime-border)
    }

    .category-group .cards {
      grid-template-columns: repeat(3, minmax(0, 1fr))
    }

    .category-group .service-card h3,
    .category-group .service-card h4 {
      font-size: 24px;
      line-height: 1.2
    }

    @media(max-width:1000px) {
      .category-group .cards {
        grid-template-columns: repeat(2, minmax(0, 1fr))
      }
    }

    @media(max-width:760px) {
      .category-group {
        padding: 22px
      }

      .category-group-head {
        align-items: flex-start
      }

      .category-group-head h3 {
        font-size: 28px
      }

      .prime-badge strong {
        font-size: 22px
      }
    }

    @media(max-width:600px) {
      .category-group .cards {
        grid-template-columns: 1fr
      }

      .category-group {
        padding: 18px
      }

      .category-group-head {
        flex-wrap: wrap;
        gap: 12px
      }

      .category-count {
        font-size: 13px
      }

      .prime-badge {
        padding: 11px 16px
      }

      .category-jump small {
        font-size: 13px
      }
    }

    @media print {

      .prime-badge,
      .category-chip {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact
      }

      .category-group {
        break-inside: auto
      }

      .category-group-head {
        break-after: avoid
      }
    }
