/*
 * Syntax Core brand overrides.
 *
 * Loaded LAST in both Views/Master.cshtml and Views/HomePage.cshtml, after
 * responsive.css. style.css is the hand-maintained theme source; rules for
 * the rebrand live here so they are easy to find and revert.
 *
 * Logo sizing follows docs/README-logos.md: the horizontal lockup renders at
 * 174px wide in the header, and never below 110px (use the mark instead).
 * The theme sizes logos by height from many high-specificity selectors
 * (style.css and responsive.css, per header style and breakpoint), so these
 * rules use !important on the dedicated sc-logo-* classes rather than trying
 * to out-specify each of them.
 *
 * Images are 2x web copies of the delivered masters:
 *   core-logo-{dark,light}-348w.png  (174px display)
 *   core-logo-{dark,light}-220w.png  (110px display)
 *
 * PALETTE SWAP (2026-09-15) — applied to style.css and assets/css/responsive.css
 * by a scripted, colour-token-only replacement. Rule, by HLS lightness (L) and
 * saturation (S) of each saturated blue/purple (hue 195-300) or orange (hue 5-45):
 *   #102b3e (title slate)          -> Graphite #2D2D2E
 *   S < 0.50 and L < 0.50          -> Graphite #2D2D2E   (muted blue-greys)
 *   S < 0.50 and L >= 0.50         -> unchanged
 *   L < 0.32                       -> Ink      #0B0B0C   (e.g. #03228f navy)
 *   0.32 <= L < 0.42               -> Red dark #8E1320   (hover shades)
 *   0.42 <= L < 0.80               -> Red      #BE1927   (e.g. #106eea, #0b70e1,
 *                                     #4e95ed, #787cf2, #f2541b, #ff7045)
 *   L >= 0.80                      -> Warm     #F4F2EF   (light tints)
 * Neutrals (S < 0.18, very dark or very light), cyans, greens, pinks and yellows
 * are untouched. Gradients whose stops map to Ink -> Red are flattened below,
 * so red is the only accent, as in the design mockups.
 *
 * CONTRAST ON DARK GROUNDS (2026-09-15, owner decision)
 * Syntax Red #BE1927 is only ~3:1 on Ink/#131313, below WCAG AA 4.5:1 for normal
 * text. Red TEXT on dark grounds is therefore lightened to off-white #F4F2EF;
 * hover states there keep a red underline so they stay visible. Red buttons,
 * decorative bars and icon glyphs stay red (non-text, >= 3:1). Red text on the
 * white blog pages stays red (~5.9:1).
 *
 * Imagery: the blue- and orange-tinted photographs and backgrounds, and the
 * multicolour service icons, are kept - blue and orange are also part of the
 * Syntax Core palette. Only CSS colours were swapped.
 */

:root {
    --sc-red: #BE1927;
    --sc-graphite: #2D2D2E;
    --sc-ink: #0B0B0C;
    --sc-bone: #F8F8F8;
}

/* Header lockup: topbar, normal and sticky states. */
img.sc-logo-header {
    width: 174px !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
}

/* Footer lockup. */
img.sc-logo-footer {
    width: 174px !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
}

/* Mobile and canvas menus: the minimum reproduction width. */
img.sc-logo-menu {
    width: 110px !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
}

/* Narrow screens: keep the header lockup legible without crowding the menu toggle. */
@media only screen and (max-width: 991px) {
    img.sc-logo-header {
        width: 140px !important;
    }
}

/* ---------------------------------------------------------------------------
 * Solid surfaces instead of the theme's two-tone gradients.
 * After the palette swap these gradients would run Ink -> Red; the mockups
 * use a dark ground with red as the only accent.
 * ------------------------------------------------------------------------- */

/* Dark bars and panels: solid Ink. */
.full-width-header .rs-header .menu-area,
.full-width-header .rs-header.style4 .menu-area,
.full-width-header .rs-header .topbar-area.style2,
.rs-banner.style3,
.rs-project.style3,
.rs-partner,
.rs-partner.style5,
.rs-contact .contact-box,
.rs-testimonial.style5 .testi-item,
.rs-testimonial.main-home.style2 .testi-item .author-desc,
.rs-testimonial.style3 .testi-item .author-desc {
    background-image: none !important;
    background-color: var(--sc-ink) !important;
}

/* Keep the theme's own light/transparent variants intact. */
.full-width-header .rs-header .topbar-area.style2.modify1,
.full-width-header .rs-header.style3 .menu-area {
    background-color: transparent !important;
}
.full-width-header .rs-header .menu-area.sticky,
.full-width-header .rs-header.style3 .menu-area.sticky {
    background-color: #ffffff !important;
}

/* Section eyebrows ("OUR BLOG", "ABOUT US"): the theme set these in deep navy,
 * which the lightness map turns to Ink. The mockups use red for eyebrows. */
.sec-title .sub-text,
.sec-title2 .sub-text {
    color: var(--sc-red) !important;
}
.sec-title .sub-text:before,
.sec-title .sub-text:after,
.sec-title2 .sub-text:before,
.sec-title2 .sub-text:after {
    background-color: var(--sc-red) !important;
}

/* Buttons, tags and small accents: solid red, darker on hover. */
.readon.started,
.submit-btn,
.submit,
.rs-footer .footer-top p input[type="submit"],
.rs-footer.style1 .footer-top p input[type="submit"],
#scrollUp i,
.rs-blog .blog-item .image-wrap .post-categories li a,
.rs-inner-blog .blog-item .blog-img .post-categories li a,
.rs-blog.style2 .blog-item .image-wrap .post-categories li a,
.rs-blog.style3 .blog-item .image-wrap .post-categories li a,
.rs-skillbar.style1 .cl-skill-bar .skillbar .skillbar-bar,
.rs-skillbar.style1.modify2 .cl-skill-bar .skillbar .skillbar-bar {
    background-image: none !important;
    background-color: var(--sc-red) !important;
}

.readon.started:hover,
.submit-btn:hover,
.submit:hover,
.rs-footer .footer-top p input[type="submit"]:hover,
#scrollUp i:hover,
.rs-blog .blog-item .image-wrap .post-categories li a:hover,
.rs-inner-blog .blog-item .blog-img .post-categories li a:hover {
    background-image: none !important;
    background-color: #8E1320 !important;
}

/* ---------------------------------------------------------------------------
 * Contrast on dark grounds.
 * The home page (body.home11) is dark throughout, apart from the white sticky
 * menu. Master pages have one dark surface with text on it: the Ink menu bar
 * before it becomes sticky. Audited 2026-09-15 at 1440px and 390px; the
 * failures were the hero eyebrow, every section eyebrow on the home page, and
 * the canvas-menu email link, all red at ~3:1.
 * ------------------------------------------------------------------------- */

:root {
    --sc-on-dark: #F4F2EF;
}

/* Static red text on dark grounds -> off-white. */
.home11 .rs-banner.style7 .banner-content .sub-title,
.home11 .sec-title .sub-text,
.home11 .sec-title2 .sub-text,
.home11 .canvas-contact .contact li a,
.home11 .rs-project .project-item .project-content .category a {
    color: var(--sc-on-dark) !important;
}

/* Hover and focus on dark grounds: off-white text with a red underline. */
.home11 .rs-banner a:hover,
.home11 .topbar-area a:hover,
.home11 .rs-header .menu-area:not(.sticky) .main-menu .rs-menu ul.nav-menu li a:hover,
.home11 .canvas-contact a:hover,
.home11 .rs-why-choose .services-wrap .services-text .title a:hover,
.home11 .rs-project .project-item .project-content .title a:hover,
.home11 .rs-project .project-item .project-content .category a:hover,
.home11 .rs-blog .blog-item .blog-content .blog-title a:hover,
.home11 .rs-footer .footer-top .site-map li a:hover,
.home11 .rs-footer .footer-top .address-widget li .desc a:hover,
.home11 .rs-footer .footer-bottom .copyright p a:hover,
.home11 .rs-footer .footer-bottom .copy-right-menu li a:hover,
.full-width-header .rs-header .menu-area:not(.sticky) .main-menu .rs-menu ul.nav-menu li a:hover,
.home11 .rs-banner a:focus-visible,
.home11 .rs-footer a:focus-visible,
.home11 .rs-blog .blog-item .blog-content .blog-title a:focus-visible,
.full-width-header .rs-header .menu-area:not(.sticky) .main-menu .rs-menu ul.nav-menu li a:focus-visible {
    color: var(--sc-on-dark) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--sc-red) !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 4px !important;
}

/* ---------------------------------------------------------------------------
 * Name-change announcement (2026-09-15).
 * Three pieces from the approved mockups: a dismissible sitewide strip, a note
 * in the home hero, and the notice page at /we-are-now-syntax-core. The theme
 * has no component close enough to reuse, so these are self-contained and
 * prefixed sc-. White on Syntax Red is ~5.9:1, so the strip passes AA.
 * ------------------------------------------------------------------------- */

/* Sitewide strip. */
.sc-strip {
    background-color: var(--sc-red);
    color: #fff;
    position: relative;
    z-index: 1000;
}

.sc-strip-inner {
    max-width: 1170px;
    margin: 0 auto;
    padding: 10px 44px 10px 15px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 14px;
    text-align: center;
}

.sc-strip-eyebrow {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    /* .8 white on Syntax Red is 4.4:1, just under AA for this size. */
    color: rgba(255, 255, 255, .92);
}

.sc-strip-text {
    font-size: 14px;
    line-height: 1.5;
    color: #fff;
}

.sc-strip-text strong {
    font-weight: 700;
}

.sc-strip-link,
.sc-strip-link:visited {
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .55);
}

.sc-strip-link:hover,
.sc-strip-link:focus-visible {
    color: #fff;
    border-bottom-color: #fff;
}

.sc-strip-close {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    background: none;
    border: 0;
    padding: 0 6px;
    font-size: 22px;
    line-height: 1;
    color: rgba(255, 255, 255, .92);
    cursor: pointer;
}

.sc-strip-close:hover,
.sc-strip-close:focus-visible {
    color: #fff;
}

/* Home hero note: sits on the dark banner, so the body text is off-white. */
.sc-hero-note {
    margin-top: 26px;
    max-width: 540px;
    padding: 16px 18px;
    border: 1px solid rgba(190, 25, 39, .55);
    /* The hero is a photograph, so the note carries its own dark scrim rather
       than the mockup's translucent red, which would leave the text sitting on
       whatever the image happens to be behind it. */
    background-color: rgba(11, 11, 12, .68);
}

.sc-hero-note-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--sc-on-dark);
    margin-bottom: 6px;
}

.sc-hero-note-text {
    font-size: 15px;
    line-height: 1.5;
    color: var(--sc-on-dark);
}

.sc-hero-note-text a,
.sc-hero-note-text a:visited {
    color: var(--sc-on-dark);
    font-weight: 600;
    border-bottom: 1px solid var(--sc-red);
}

.sc-hero-note-text a:hover,
.sc-hero-note-text a:focus-visible {
    color: #fff;
    border-bottom-color: #fff;
}

/* Notice page. */
.sc-notice-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
}

.sc-notice-tag {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #fff;
    background-color: var(--sc-red);
    padding: 5px 10px;
}

.sc-notice-date {
    font-size: 13px;
    color: #5a5a5c;
}

.sc-notice-title {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 700;
    color: var(--sc-ink);
    margin-bottom: 20px;
}

.sc-notice-title span {
    color: var(--sc-red);
}

.sc-notice-lead {
    font-size: 19px;
    line-height: 1.65;
    color: #47474a;
    margin-bottom: 0;
}

.sc-identity {
    margin-top: 46px;
}

.sc-identity-box {
    height: 100%;
    padding: 34px;
    border: 1px solid rgba(11, 11, 12, .12);
    background-color: #fff;
}

.sc-identity-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #75757a;
    margin-bottom: 22px;
}

.sc-identity-box.is-current .sc-identity-label {
    color: var(--sc-red);
}

.sc-identity-logo {
    display: block;
    width: 220px;
    max-width: 100%;
    height: auto;
}

.sc-identity-logo.is-retired {
    opacity: .4;
    filter: grayscale(1);
}

.sc-identity-note {
    font-size: 14px;
    line-height: 1.6;
    color: #5a5a5c;
    margin: 20px 0 0;
}

.sc-notice-lists {
    margin-top: 50px;
}

.sc-list-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #5a5a5c;
    margin-bottom: 16px;
}

.sc-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(11, 11, 12, .16);
}

.sc-list li {
    display: flex;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid rgba(11, 11, 12, .1);
}

.sc-list-mark {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--sc-red);
}

.sc-list-mark.is-arrow {
    color: var(--sc-ink);
}

.sc-list-title {
    font-size: 17px;
    font-weight: 600;
    color: var(--sc-ink);
    margin-bottom: 2px;
}

.sc-list-desc {
    font-size: 15px;
    line-height: 1.6;
    color: #5a5a5c;
}

.sc-list-desc a {
    color: var(--sc-red);
    text-decoration: underline;
}

.sc-list-desc a:hover,
.sc-list-desc a:focus-visible {
    color: #8E1320;
}

.sc-notice-cta {
    margin-top: 56px;
    padding: 42px;
    background-color: var(--sc-red);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.sc-notice-cta-text h3 {
    font-size: 32px;
    line-height: 1.15;
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px;
}

.sc-notice-cta-text p {
    font-size: 16px;
    line-height: 1.5;
    color: rgba(255, 255, 255, .88);
    margin-bottom: 0;
}

.sc-notice-cta-btn,
.sc-notice-cta-btn:visited {
    flex: 0 0 auto;
    display: inline-block;
    background-color: #fff;
    color: var(--sc-ink);
    font-size: 15px;
    font-weight: 700;
    padding: 15px 32px;
    border-radius: 2px;
}

.sc-notice-cta-btn:hover,
.sc-notice-cta-btn:focus-visible {
    background-color: var(--sc-ink);
    color: #fff;
}

@media (max-width: 767px) {
    .sc-strip-inner {
        justify-content: flex-start;
        text-align: left;
    }

    .sc-notice-title {
        font-size: 30px;
    }

    .sc-notice-lead {
        font-size: 17px;
    }

    .sc-identity .col-md-6:first-child .sc-identity-box {
        margin-bottom: 24px;
    }

    .sc-notice-cta {
        padding: 30px;
    }

    .sc-notice-cta-text h3 {
        font-size: 26px;
    }
}
