/* Final shared colour rules. Loaded after the main theme stylesheet. */
:root {
  --nova-heading-accent: #171c25;
  --nova-eyebrow-text: #536174;
}
:is(.site-header, .site-footer, .repair-page-hero, .hero--urgent,
    .digital-hero, .service-detail-hero, .business-page-support__panel,
    .business-page-final__panel, .repair-page-final__panel, .final-cta,
    .about-method__panel, .about-final__panel, .portfolio-thinking,
    .portfolio-final__panel, .digital-dark, .digital-ux-note,
    .digital-price-card--featured, .digital-hosting-note,
    .digital-support-card, .digital-final-panel, .work-section,
    .web-ux-proof, .digital-entry-offer) {
  --nova-heading-accent: #fff;
  --nova-eyebrow-text: #e1e7ef;
}
:is(.repair-contact-form, .hero-enquiry-form, .enquiry-form,
    .digital-experience, .digital-service-card, .digital-care-options article,
    .pricing-card, .nova-native-review-card, .digital-inclusions-main) {
  --nova-heading-accent: #171c25;
  --nova-eyebrow-text: #536174;
}
html body #main-content :is(.section-kicker, .eyebrow, .hero__eyebrow,
    .repair-intro__eyebrow, .digital-hero-kicker, .service-detail-eyebrow,
    .digital-service-card > span, .digital-process article > span,
    .digital-process-grid article > span, .digital-price-card > p,
    .digital-hosting-note > span, .digital-support-card > span,
    .digital-care-options article > span, .repair-form-header > p:first-child) {
  color: var(--nova-eyebrow-text) !important;
}
html body #main-content :is(h1, h2, h3, h4, h5, h6) :is(span, em),
html body #main-content :is(.hero-title__accent, .hero-title__web-accent,
    .hero-title__repair-accent, .section-title__accent, .digital-ux-note strong) {
  color: var(--nova-heading-accent) !important;
}
/* All solid primary CTAs use dark orange, including hero and hover states. */
html body :is(.button--primary, .btn-primary, .repair-cta--primary,
    .repair-form-submit, .site-header__phone, .site-header__mobile-call) {
  background: #c94f00 !important;
  border-color: #c94f00 !important;
  color: #fff !important;
  text-decoration: none !important;
}
html body :is(.button--primary, .btn-primary, .repair-cta--primary,
    .repair-form-submit, .site-header__phone, .site-header__mobile-call):is(:hover, :focus-visible, :active) {
  background: #a94100 !important;
  border-color: #a94100 !important;
  color: #fff !important;
}
/* Keep light orange for phone numbers and textual links on dark surfaces. */
html body .repair-intro__call strong,
html body .hero__phone-number,
html body .digital-hero-phone strong,
html body .site-footer__phone,
html body .nova-category-links a,
html body .repair-services-jump {
  color: #ffab65 !important;
}
/* Desktop menu: regular labels; current page bold and light orange. */
html body .site-nav a {
  font-weight: 400 !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
html body .site-nav a:is(:hover, :focus-visible) {
  color: #ffab65 !important;
  text-decoration: none !important;
}
html body .site-nav a[aria-current="page"],
html body .site-nav :is(.current-menu-item, .current_page_item) > a {
  color: #ffab65 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
html body .site-nav a:focus-visible { outline: 2px solid #ffab65; outline-offset: 5px; }
/* Mobile remains rectangular; its selected state uses the solid CTA orange. */
html body .mobile-service-nav__item--active,
html body .mobile-service-nav__item--call,
html body .mobile-service-nav__item--more[aria-expanded="true"] {
  background: #c94f00 !important;
  color: #fff !important;
}

/* Repairs and Business use the same Bootstrap container as Digital. */
.repair-hero-inner.container-xl {
  width: 100%;
  margin-inline: auto;
  padding-left: 0;
  padding-right: 0;
}
@media (max-width: 1199.98px) {
  .repair-hero-inner.container-xl { padding-inline: calc(var(--bs-gutter-x, 1.5rem) * .5); }
}
/* Fill the whole Why Nova frame, including when the text column grows. */
.business-page-why__media { position: relative; }
.business-page-why__media > a.nova-image-link {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.business-page-why__media > a.nova-image-link > img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
}

/* 0.5.130: shared container edges, dark informational heroes and chapter rhythm. */
.site-header__inner.container-xl { width: 100%; padding-inline: 0; }
@media (max-width: 1199.98px) {
  .site-header__inner.container-xl { padding-inline: calc(var(--bs-gutter-x, 1.5rem) * .5); }
}
html body :is(.about-hero, .portfolio-hero) {
  background: linear-gradient(120deg, #10141e, #1c2432) !important;
  color: #f7f8fa;
  --hero-text: #f7f8fa;
  --hero-muted: #e1e7ef;
  --hero-accent: #fff;
  --nova-heading-accent: #fff;
  --nova-eyebrow-text: #e1e7ef;
  --nova-accent-text: #ffab65;
}
html body :is(.about-hero, .portfolio-hero) :is(.hero__copy, .hero__secondary, .hero__eyebrow) { color: #e1e7ef !important; }
html body :is(.about-hero__experience, .about-hero__chips span) {
  color: #171c25;
  --nova-heading-accent: #171c25;
  --nova-eyebrow-text: #536174;
}
.about-page { --about-blue: #536174; --about-orange: #a94100; }
.portfolio-page { --portfolio-accent: #a94100; }
html body .about-hero__experience-number { color: #171c25; }
html body #main-content .work-section .work-section__intro .feature-audience--web {
  display: block !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  color: #e1e7ef !important;
  padding: 0 !important;
  margin-bottom: 14px !important;
  height: auto;
  min-height: 0;
  overflow: visible;
  line-height: 1.5;
}
.repair-page .repair-process-steps li { background: #f1f1ef; border-color: #e4e4e1; }
.digital-page .digital-team { padding-bottom: 20px; }
.digital-page .digital-team + .digital-services { padding-top: 32px; }
.portfolio-page .service-owner { padding-bottom: 20px; }
.portfolio-page .service-owner + .portfolio-feature { padding-top: 32px; }
@media (max-width: 767.98px) {
  .digital-page .digital-team + .digital-services,
  .portfolio-page .service-owner + .portfolio-feature { padding-top: 24px; }
}

/* 0.5.131: readable capability pills and printable native service pages. */
html body .portfolio-hero .portfolio-proof span {
  color: #e1e7ef;
  background: #ffffff12;
  border-color: #ffffff55;
  line-height: 1.5;
  height: auto;
  white-space: normal;
}
.service-detail-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
#service-cta-title { scroll-margin-top: 120px; }
@media print {
  @page { margin: 15mm; }
  body { padding: 0 !important; background: #fff !important; }
  .site-header, .site-footer, .mobile-service-nav, .mobile-service-more,
  .nova-contact-buttons, .nova-whatsapp-button, .nova-chat-button,
  .service-detail-actions, .service-detail-breadcrumb, .service-detail-form,
  .service-detail-content__link, .service-detail-tool,
  .cmplz-cookiebanner, #tawkchat-container { display: none !important; }
  .service-detail-page, .service-detail-page * { color: #000 !important; background: transparent !important; box-shadow: none !important; }
  .service-detail-page .container-xl { width: 100% !important; max-width: none !important; padding-inline: 0 !important; }
  .service-detail-hero { padding: 0 0 8mm !important; }
  .service-detail-section { padding: 4mm 0 !important; }
  .service-detail-hero__grid, .service-detail-split, .service-detail-cta__panel { display: block !important; }
  .service-detail-cards { display: block !important; }
  .service-detail-cards article { break-inside: avoid; margin-bottom: 4mm; padding: 4mm !important; border: 1px solid #ccc; }
  .service-detail-page h1 { font-size: 25pt !important; }
  .service-detail-page h2 { font-size: 17pt !important; break-after: avoid; }
  .service-detail-page h3 { font-size: 13pt !important; break-after: avoid; }
  .service-detail-page p, .service-detail-page li { font-size: 10pt !important; line-height: 1.45; }
}


/* Category separators use one shared adaptive link area. */
:is(.repair-page-service-grid, .business-page-service-grid) .nova-category-links {
  box-sizing: border-box;
  min-height: var(--nova-category-links-height, 0px);
  padding-top: 14px;
  border-top: 1px solid #ffffff24;
}
@media (max-width: 767.98px) {
  :is(.repair-page-service-grid, .business-page-service-grid) .nova-category-links { min-height: 0; margin-top: 18px; }
}
/* Both service pages use the same native text/image and card components. */
.service-detail-split--with-image .service-detail-split__content { display: block; }
.service-detail-split--with-image .service-detail-split__content > p { margin-top: 18px; }
@media (min-width: 992px) {
  .service-detail-split--image-left > .service-detail-split__content { order: 2; }
  .service-detail-split--image-left > .service-detail-split__media { order: 1; }
}

/* Space before category dividers without losing their shared baseline. */
:is(.repair-page-service-grid, .business-page-service-grid) .nova-category-links { margin-top: 16px; }
:is(.repair-page-service-grid, .business-page-service-grid) article > p { flex-grow: 1; margin-bottom: 0; }
