/* ==========================================================
   CoregenX: Solar Marketing page (solar-marketing.html)
   File: css/solar-marketing-page.css
   Loads after service-page.css and contact.css (this file is only used by this page).

   Theme palette only (WEBSITE-MASTER-PLAN.md): logo teal-green #359fad -> #4cdaa0 leads,
   pink CTA, violet bands, navy, white and soft #f8f6ff. No blue, no dot grids.

   Owner feedback 17 Oct 2026: clear type scale (H1 > H2 > H3 > body, intro text 10% smaller),
   tighter and consistent section spacing, single-line supporting lines, fewer boxes.

   Section order, pattern and background (they alternate):
   1 Intro: three photos (white)
   2 Why it matters: search view + rising solar-panel bar chart (soft)
   3 Services: branch diagram around one growth hub (white)
   4 Lead journey: sun-path arc with a travelling sun (soft)
   5 360°: rotating ring + synced list (white)
   6 Why CoregenX: numbered list on the violet band
   7 Portfolio: large square viewer + project index (soft)
   8 Enquiry (violet) · 9 FAQ (white)
   ========================================================== */

:root {
    --sl-ease: cubic-bezier(.2, .7, .2, 1);
    --sl-teal: #359fad;
    --sl-mint: #4cdaa0;
    --sl-teal-ink: #237f8b;
    --sl-teal-soft: rgba(53, 159, 173, .1);
    --sl-grad: linear-gradient(135deg, #359fad 0%, #4cdaa0 100%);
    --sl-grad-up: linear-gradient(0deg, #359fad 0%, #4cdaa0 100%);
    --sl-coral: #f9758f;
    --sl-pink: #d9265f;
    --sl-pgrad: linear-gradient(135deg, #f9758f 0%, #d9265f 100%);
    --sl-violet: #432d92;
    --sl-violet-soft: #f1edfb;
    --sl-navy: #1c1446;
    --sl-navy-2: #0f1a3c;
    --sl-ink: #343c55;
    --sl-body: #5e6371;
    --sl-muted: #6b7080;
    --sl-line: #e9e7f3;
    --sl-soft: #f8f6ff;
    --sl-card-shadow: 0 16px 36px -14px rgba(28, 20, 70, .14);

    /* Type scale for this page */
    --sl-h1: 38px;
    --sl-h2: 30px;
    --sl-h3: 18px;
    --sl-sub: 14.5px;   /* supporting line under section titles (16px - 10%) */
    --sl-lead: 15.5px;  /* hero intro (17px - 10%) */
    --sl-small: 13.5px; /* small points */
    --sl-pad: 60px;     /* section top and bottom */
}

/* Scroll-reveal animations (triggered by js/service-page.js via [data-reveal]) */
.wdd-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .65s ease, transform .65s var(--sl-ease);
    transition-delay: var(--d, 0s);
    will-change: opacity, transform;
}

.wdd-reveal.is-in {
    opacity: 1;
    transform: none;
}

/* Outline icons, one stroke weight */
.slInclusionIcon svg,
.slProofIcon svg,
.slSearchBar svg,
.slRiseIcon svg,
.slMapIcon svg,
.slPathNode svg,
.slOrbitIcon svg,
.slWhyIcon svg,
.slShowArrow svg,
.slEnqIcon svg,
.slFaqHelpIcon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

svg.slFill {
    fill: currentColor;
    stroke: none;
}

/* ---------- Shared type on this page ---------- */

.wddHead {
    max-width: none;
    margin-bottom: 36px;
}

.wddHead h2,
.slNeedHead h2,
.slOrbitHead h2,
.wddEnquiry h2 {
    font-size: var(--sl-h2);
    line-height: 1.25;
    margin-bottom: 10px;
}

.wddHead p:not(.wddEyebrow),
.slNeedHead p:not(.wddEyebrow),
.slOrbitHead p:not(.wddEyebrow),
.wddEnquiryLead {
    font-size: var(--sl-sub);
    line-height: 1.6;
}

.wddEyebrow {
    margin-bottom: 10px;
    font-size: 13.5px;
    letter-spacing: 4px;
}

/* Call only on phones; email/talk on wider screens */
.slOnlyPhone {
    display: none !important;
}

/* ==========================================================
   1. INTRO (white): three photos, content
   ========================================================== */

.slIntro {
    position: relative;
    padding: 52px 0 var(--sl-pad);
    background: #fff;
    overflow: hidden;
}

.slIntroInner {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: clamp(32px, 4.5vw, 64px);
}

.slHeroVisual {
    position: relative;
    min-width: 0;
    padding: 22px 22px 22px 0;
}

/* Two thin brand rings behind the photos (circles and lines only) */
.slHeroArc {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.slHeroArc--1 {
    top: -6%;
    right: -4%;
    width: 72%;
    aspect-ratio: 1;
    border: 1.5px solid rgba(53, 159, 173, .22);
}

.slHeroArc--2 {
    left: -8%;
    bottom: -10%;
    width: 46%;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(76, 218, 160, .16), transparent 68%);
}

.slHeroTrio {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.slHeroPic {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: 18px;
    aspect-ratio: 4 / 3;
    background: var(--sl-soft);
    box-shadow: 0 18px 40px -22px rgba(28, 20, 70, .45);
}

.slHeroPic--c {
    grid-column: span 2;
    aspect-ratio: 16 / 9;
}

.slHeroPic img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--sl-ease);
}

.slHeroPic:hover img {
    transform: scale(1.04);
}

.slContent {
    container-type: inline-size;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.slContent h1 {
    margin: 0 0 16px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h1);
    font-weight: 500;
    line-height: 1.18;
    color: var(--sl-ink);
}

.slContent .wddLead {
    margin-bottom: 22px;
    font-size: var(--sl-lead);
    line-height: 1.7;
}

.slInclusions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 10px;
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
}

.slInclusion {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 8px 10px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--sl-line);
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-small);
    font-weight: 600;
    line-height: 1.35;
    color: var(--sl-ink);
    transition: border-color .25s ease, box-shadow .25s ease;
}

.slInclusion:hover {
    border-color: rgba(53, 159, 173, .45);
    box-shadow: 0 10px 22px -16px rgba(53, 159, 173, .7);
}

.slInclusionIcon {
    display: grid;
    place-items: center;
    flex: none;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--sl-teal-soft);
    color: var(--sl-teal-ink);
}

.slInclusionIcon svg {
    width: 15px;
    height: 15px;
}

/* Two proof points, same size, one line */
.slProof {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    gap: 10px 32px;
    margin: 22px 0 0;
    padding: 18px 0 0;
    border-top: 1px solid var(--sl-line);
    list-style: none;
}

.slProofItem {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--sl-ink);
}

.slProofIcon {
    display: grid;
    place-items: center;
    flex: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--sl-grad);
    color: #fff;
}

.slProofIcon svg {
    width: 15px;
    height: 15px;
}

/* ==========================================================
   2. WHY IT MATTERS (soft): search view + rising chart
   ========================================================== */

.slNeedSec {
    position: relative;
    padding: var(--sl-pad) 0;
    background: var(--sl-soft);
    overflow: hidden;
}

.slNeedInner {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    align-items: center;
    gap: clamp(32px, 4.5vw, 64px);
}

.slNeedLeft {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
}

.slNeedHead h2 {
    margin-top: 0;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    color: var(--sl-ink);
}

.slNeedHead p:not(.wddEyebrow) {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    color: var(--sl-body);
}

/* Search view (illustrative UI) */
.slSearch {
    margin: 0;
    padding: 18px;
    border: 1px solid var(--sl-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 24px 50px -28px rgba(28, 20, 70, .3);
}

.slSearchWindow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.slSearchDots {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-left: 2px;
}

.slDot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.slDot--red { background: #ff5f56; }
.slDot--yellow { background: #ffbd2e; }
.slDot--green { background: #27c93f; }

.slSearchWindow .slSearchBar {
    flex: 1;
}

.slSearchBar {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 44px;
    padding: 0 16px;
    border: 1px solid var(--sl-line);
    border-radius: 999px;
    background: var(--sl-soft);
    color: var(--sl-teal-ink);
}

.slSearchBar svg {
    flex: none;
    width: 18px;
    height: 18px;
}

.slSearchQuery {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-family: 'Open Sans', sans-serif;
    font-size: 14.5px;
    color: var(--sl-ink);
}

.slSearchCaret {
    flex: none;
    width: 1.5px;
    height: 18px;
    margin-left: -6px;
    background: var(--sl-teal);
    animation: slCaret 1.1s steps(1) infinite;
}

@keyframes slCaret {
    50% { opacity: 0; }
}

.slSearchList {
    display: grid;
    gap: 4px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.slSearchRow {
    position: relative;
    display: grid;
    gap: 2px;
    padding: 10px 12px 10px 16px;
    border-radius: 12px;
    font-family: 'Open Sans', sans-serif;
}

.slSearchRow::before {
    content: '';
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--sl-grad);
}

.slSearchRow + .slSearchRow {
    border-top: 1px dashed var(--sl-line);
    border-radius: 0 0 12px 12px;
}

.slSearchKind {
    justify-self: start;
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--sl-violet-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--sl-violet);
}

.slSearchKind--map {
    background: var(--sl-teal-soft);
    color: var(--sl-teal-ink);
}

.slSearchKind--guide {
    background: #ffebf1;
    color: var(--sl-pink);
}

.slSearchRow b {
    font-family: 'Jost', sans-serif;
    font-size: 15.5px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--sl-ink);
}

.slSearchRow small {
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--sl-muted);
}

.slSearch figcaption {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--sl-line);
    font-family: 'Open Sans', sans-serif;
    font-size: 12.5px;
    color: var(--sl-muted);
}

/* Rising chart: four solar-panel bars */
.slRise {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-content: end;
    margin: 0;
    padding: 0;
    list-style: none;
}

.slRiseItem {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.slRiseBarWrap {
    position: relative;
    display: flex;
    align-items: flex-end;
    height: 440px;
    border-bottom: 2px solid rgba(67, 45, 146, .14);
}

.slRiseBar {
    position: relative;
    width: 100%;
    height: calc(var(--h) * 1%);
    border-radius: 16px 16px 4px 4px;
    background:
        linear-gradient(90deg, transparent calc(50% - .5px), rgba(255, 255, 255, .28) calc(50% - .5px), rgba(255, 255, 255, .28) calc(50% + .5px), transparent calc(50% + .5px)),
        repeating-linear-gradient(180deg, transparent 0 25px, rgba(255, 255, 255, .26) 25px 26px),
        var(--sl-grad-up);
    box-shadow: 0 18px 30px -18px rgba(53, 159, 173, .8);
    transform-origin: 50% 100%;
    transition: transform 1s var(--sl-ease);
    transition-delay: calc(var(--i, 0) * .12s);
}

.slRiseItem:nth-child(1) { --i: 0; }
.slRiseItem:nth-child(2) { --i: 1; }
.slRiseItem:nth-child(3) { --i: 2; }
.slRiseItem:nth-child(4) { --i: 3; }

.slRiseItem:nth-child(1) .slRiseBar { opacity: .72; }
.slRiseItem:nth-child(2) .slRiseBar { opacity: .82; }
.slRiseItem:nth-child(3) .slRiseBar { opacity: .92; }

/* JS arms the grow-in only when the chart starts below the screen */
.slRise.is-armed .slRiseBar {
    transform: scaleY(.06);
}

.slRise.is-armed.is-in .slRiseBar {
    transform: none;
}

.slRiseIcon {
    position: absolute;
    top: 12px;
    left: 50%;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-left: -22px;
    border-radius: 50%;
    background: #fff;
    color: var(--sl-teal-ink);
    box-shadow: 0 8px 18px -8px rgba(28, 20, 70, .4);
}

.slRiseIcon svg {
    width: 20px;
    height: 20px;
}

.slRiseNo {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 500;
    text-align: center;
    color: rgba(255, 255, 255, .92);
}

.slRiseText {
    padding-top: 16px;
}

.slRiseText h3 {
    margin: 0 0 6px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h3);
    font-weight: 500;
    line-height: 1.3;
    color: var(--sl-ink);
}

.slRiseText p {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-small);
    line-height: 1.55;
    color: var(--sl-body);
}

/* Owner batch 4 (20 Oct): calculator box removed; the chart now fills the full
   height of the left column, so no empty space on the right */
@media (min-width: 992px) {
    .slNeedInner {
        align-items: stretch;
    }

    .slRise {
        grid-template-rows: minmax(0, 1fr) auto;
        row-gap: 0;
        align-content: stretch;
    }

    /* Bars and texts share two rows, so all four titles line up */
    .slRiseItem {
        display: grid;
        grid-row: span 2;
        grid-template-rows: subgrid;
    }

    .slRiseBarWrap {
        flex: 1 1 auto;
        height: auto;
        min-height: 340px;
    }
}

/* ==========================================================
   3. SERVICES (white): branch diagram around one hub
   ========================================================== */

.slServicesSec {
    position: relative;
    padding: var(--sl-pad) 0;
    background: #fff;
    overflow: hidden;
}

.slMap {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px minmax(0, 1fr);
    align-items: center;
    gap: 48px;
}

.slMapWires {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.slMapWires path {
    fill: none;
    stroke: rgba(53, 159, 173, .4);
    stroke-width: 1.5;
    stroke-dasharray: 6 7;
    stroke-linecap: round;
    animation: slFlow 1.6s linear infinite;
    transition: stroke .3s ease, stroke-width .3s ease;
}

.slMapWires path.is-hot {
    stroke: var(--sl-teal);
    stroke-width: 2.4;
}

@keyframes slFlow {
    to { stroke-dashoffset: -26; }
}

.slMapCol {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 34px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.slMapItem {
    display: flex;
    align-items: center;
    gap: 16px;
    transition: transform .4s var(--sl-ease);
}

/* Items curve around the hub: top and bottom sit closer */
.slMapCol--l .slMapItem {
    flex-direction: row-reverse;
    text-align: right;
}

.slMapCol--l .slMapItem:nth-child(odd) { transform: translateX(34px); }
.slMapCol--r .slMapItem:nth-child(odd) { transform: translateX(-34px); }

.slMapIcon {
    position: relative;
    display: grid;
    place-items: center;
    flex: none;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    border: 1.5px solid rgba(53, 159, 173, .3);
    background: #fff;
    color: var(--sl-teal-ink);
    box-shadow: 0 10px 22px -14px rgba(53, 159, 173, .8);
    transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s var(--sl-ease);
}

.slMapIcon svg {
    width: 23px;
    height: 23px;
}

.slMapItem:hover .slMapIcon,
.slMapItem:focus-within .slMapIcon,
.slMapItem.is-hot .slMapIcon {
    border-color: transparent;
    background: var(--sl-grad);
    color: #fff;
    transform: scale(1.06);
}

.slMapText {
    min-width: 0;
}

.slMapText h3 {
    margin: 0 0 4px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h3);
    font-weight: 500;
    line-height: 1.3;
    color: var(--sl-ink);
}

.slMapText p {
    margin: 0 0 6px;
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-small);
    line-height: 1.5;
    color: var(--sl-body);
}

.slMapText a {
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--sl-pink);
}

.slMapText a span {
    display: inline-block;
    transition: transform .25s var(--sl-ease);
}

.slMapText a:hover span {
    transform: translateX(3px);
}

.slMapHub {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 290px;
    aspect-ratio: 1;
}

.slMapRing {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.slMapRing--1 {
    inset: 0;
    border: 1.5px dashed rgba(53, 159, 173, .4);
    animation: slSpin 40s linear infinite;
}

.slMapRing--1::after {
    content: '';
    position: absolute;
    top: 50%;
    left: -6px;
    width: 11px;
    height: 11px;
    margin-top: -5.5px;
    border-radius: 50%;
    background: var(--sl-mint);
    box-shadow: 0 0 0 5px rgba(76, 218, 160, .2);
}

.slMapRing--2 {
    inset: 30px;
    border: 1px solid rgba(67, 45, 146, .12);
    background: radial-gradient(circle, rgba(76, 218, 160, .1), transparent 70%);
}

@keyframes slSpin {
    to { transform: rotate(360deg); }
}

.slMapCore {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 178px;
    height: 178px;
    border: 3px solid transparent;
    border-radius: 50%;
    background: linear-gradient(#fff, #fff) padding-box, var(--sl-grad) border-box;
    box-shadow: 0 26px 50px -26px rgba(53, 159, 173, .75);
    text-align: center;
}

.slMapCore img {
    width: 54px;
    height: 54px;
    margin-bottom: 8px;
}

.slMapCore b {
    font-family: 'Jost', sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--sl-ink);
}

.slMapCore small {
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    color: var(--sl-muted);
}

/* Platforms and tools marquee: real brand logos */
.slStrip {
    margin-top: 56px;
    padding-top: 36px;
    border-top: 1px solid var(--sl-line);
    text-align: center;
}

.slStripLabel {
    margin: 0 0 18px;
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--sl-muted);
}

.slMarquee {
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.slMarqueeTrack {
    display: flex;
    width: max-content;
    animation: slMarqueeScroll 28s linear infinite;
}

.slMarquee:hover .slMarqueeTrack {
    animation-play-state: paused;
}

@keyframes slMarqueeScroll {
    to { transform: translateX(-50%); }
}

.slLogos {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 0 8px;
    list-style: none;
}

.slLogoItem {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 16px;
    border-radius: 999px;
    background: var(--sl-soft);
    border: 1px solid var(--sl-line);
    font-family: 'Jost', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--sl-ink);
    white-space: nowrap;
    transition: border-color .2s ease, transform .2s ease, background-color .2s ease;
}

.slLogoItem:hover {
    border-color: rgba(53, 159, 173, .4);
    background: #fff;
    transform: translateY(-1px);
}

.slLogoItem img,
.slLogoIcon {
    width: 20px;
    height: 20px;
    flex: none;
    object-fit: contain;
    color: var(--sl-teal-ink);
}

/* ==========================================================
   4. LEAD JOURNEY (soft): sun-path arc
   ========================================================== */

.slJourneySec {
    position: relative;
    padding: var(--sl-pad) 0;
    background: var(--sl-soft);
    overflow: hidden;
}

.slPath {
    position: relative;
}

.slPathWire {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.slPathTrack {
    fill: none;
    stroke: rgba(53, 159, 173, .35);
    stroke-width: 2;
    stroke-dasharray: 8 8;
    stroke-linecap: round;
}

.slPathLit {
    fill: none;
    stroke: var(--sl-teal);
    stroke-width: 3;
    stroke-linecap: round;
}

.slPathStops {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.slPathStop {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: var(--y);
    text-align: center;
}

/* Node heights follow the arc */
.slPathStop:nth-child(1),
.slPathStop:nth-child(4) { --y: 96px; }
.slPathStop:nth-child(2),
.slPathStop:nth-child(3) { --y: 14px; }

/* A thin "ray" drops from each node to its text, so all texts line up */
.slPathStop::before {
    content: '';
    width: 0;
    order: 2;
    height: calc(110px - var(--y));
    border-left: 1.5px dashed rgba(67, 45, 146, .18);
}

.slPathNode {
    order: 1;
    position: relative;
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 2px solid rgba(53, 159, 173, .35);
    background: #fff;
    color: var(--sl-teal-ink);
    box-shadow: 0 12px 26px -16px rgba(28, 20, 70, .45);
    transition: background .4s ease, color .4s ease, border-color .4s ease, box-shadow .4s ease;
}

.slPathNode svg {
    width: 26px;
    height: 26px;
}

.slPathNode.is-lit {
    border-color: transparent;
    background: var(--sl-grad);
    color: #fff;
    box-shadow: 0 0 0 8px rgba(76, 218, 160, .16), 0 16px 30px -14px rgba(53, 159, 173, .8);
}

.slPathText {
    order: 3;
    max-width: 280px;
    padding-top: 14px;
}

.slPathNo {
    display: block;
    margin-bottom: 4px;
    font-family: 'Jost', sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--sl-pink);
}

.slPathText h3 {
    margin: 0 0 6px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h3);
    font-weight: 500;
    line-height: 1.3;
    color: var(--sl-ink);
}

.slPathText p {
    margin: 0 0 12px;
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-small);
    line-height: 1.55;
    color: var(--sl-body);
}

.slPathChip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border: 1px solid var(--sl-line);
    border-radius: 999px;
    background: #fff;
    font-family: 'Open Sans', sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--sl-ink);
    box-shadow: 0 8px 18px -14px rgba(28, 20, 70, .4);
}

.slPathChip i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #c9c6d8;
    transition: background .4s ease, box-shadow .4s ease;
}

.slPathStop.is-lit .slPathChip i {
    background: var(--sl-mint);
    box-shadow: 0 0 0 4px rgba(76, 218, 160, .22);
}

/* ==========================================================
   5. 360° (white): rotating ring + synced list
   ========================================================== */

.slOrbitSec {
    position: relative;
    padding: var(--sl-pad) 0;
    background: #fff;
    overflow: hidden;
}

.slOrbitInner {
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    grid-template-areas:
        "ring head"
        "ring body";
    align-items: center;
    column-gap: clamp(40px, 6vw, 96px);
}

.slOrbitHead {
    grid-area: head;
    align-self: end;
    margin-bottom: 22px;
}

.slOrbitHead h2 {
    margin-top: 0;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    color: var(--sl-ink);
}

.slOrbitHead p:not(.wddEyebrow) {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    color: var(--sl-body);
}

.slOrbitBody {
    grid-area: body;
    align-self: start;
}

.slRing {
    grid-area: ring;
    position: relative;
    width: 100%;
    max-width: 380px;
    aspect-ratio: 1;
    margin: 0 auto;
}

.slRingSvg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.slRingSpin {
    transform-origin: 100px 100px;
    animation: slSpin 30s linear infinite;
}

.slRingSeg {
    fill: none;
    stroke-width: 22;
    stroke-dasharray: 23.4 76.6;
    opacity: .3;
    transition: opacity .5s ease, stroke-width .5s var(--sl-ease);
}

.slRingSeg--0 { stroke: var(--sl-teal); stroke-dashoffset: 0; }
.slRingSeg--1 { stroke: var(--sl-mint); stroke-dashoffset: -25; }
.slRingSeg--2 { stroke: var(--sl-violet); stroke-dashoffset: -50; }
.slRingSeg--3 { stroke: var(--sl-coral); stroke-dashoffset: -75; }

.slRing[data-active="0"] .slRingSeg--0,
.slRing[data-active="1"] .slRingSeg--1,
.slRing[data-active="2"] .slRingSeg--2,
.slRing[data-active="3"] .slRingSeg--3 {
    opacity: 1;
    stroke-width: 28;
}

.slRingTrack {
    fill: none;
    stroke: rgba(67, 45, 146, .14);
    stroke-width: .8;
    stroke-dasharray: 3 4;
}

.slRingDot {
    fill: var(--sl-mint);
}

.slRingCore {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 20px 44px -22px rgba(28, 20, 70, .4), inset 0 0 0 1px var(--sl-line);
    transform: translate(-50%, -50%);
    text-align: center;
}

.slRingCore b {
    font-family: 'Jost', sans-serif;
    font-size: 46px;
    font-weight: 500;
    line-height: 1;
    background: var(--sl-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.slRingCore small {
    margin-top: 6px;
    font-family: 'Open Sans', sans-serif;
    font-size: 12.5px;
    color: var(--sl-muted);
}

.slOrbitList {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.slOrbitRow {
    --c: var(--sl-teal);
    --t: rgba(53, 159, 173, .12);
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-radius: 14px;
    cursor: pointer;
    transition: background .35s ease, transform .25s var(--sl-ease);
}

.slOrbitRow:focus-visible {
    outline: 2px solid var(--c);
    outline-offset: 2px;
}

.slOrbitRow::before {
    content: '';
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--c);
    transform: scaleY(0);
    transition: transform .35s var(--sl-ease);
}

.slOrbitRow[data-sl-orbit-row="1"] { --c: #2fae86; --t: rgba(76, 218, 160, .16); }
.slOrbitRow[data-sl-orbit-row="2"] { --c: var(--sl-violet); --t: rgba(67, 45, 146, .1); }
.slOrbitRow[data-sl-orbit-row="3"] { --c: var(--sl-pink); --t: rgba(249, 117, 143, .14); }

.slOrbitRow.is-active {
    background: var(--sl-soft);
}

.slOrbitRow.is-active::before {
    transform: none;
}

.slOrbitIcon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--t);
    color: var(--c);
}

.slOrbitIcon svg {
    width: 21px;
    height: 21px;
}

.slOrbitRow h3 {
    margin: 0 0 2px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h3);
    font-weight: 500;
    line-height: 1.3;
    color: var(--sl-ink);
}

.slOrbitRow p {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-small);
    line-height: 1.5;
    color: var(--sl-body);
}

.slOrbitCta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 20px 0 0;
    padding: 10px 22px;
    border-radius: 999px;
    background: var(--sl-teal-soft);
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: var(--sl-teal-ink);
    border: 1px solid rgba(53, 159, 173, .28);
    transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s var(--sl-ease);
}

.slOrbitCta:hover,
.slOrbitCta:focus-visible {
    background: var(--sl-grad);
    color: #fff;
    border-color: transparent;
    transform: translateX(3px);
}

.slOrbitCta span {
    display: inline-block;
    transition: transform .25s var(--sl-ease);
}

.slOrbitCta:hover span {
    transform: translateX(3px);
}

/* ==========================================================
   6. WHY COREGENX: numbered list on the violet band
   ========================================================== */

.slWhySec {
    position: relative;
    padding: var(--sl-pad) 0;
    background: var(--sl-violet);
    color: rgba(255, 255, 255, .84);
    overflow: hidden;
    isolation: isolate;
}

.slWhySec .wddEyebrow {
    color: var(--sl-mint);
}

.slWhySec .wddHead h2 {
    color: #fff;
}

.slWhySec .wddHead p:not(.wddEyebrow) {
    color: rgba(255, 255, 255, .82);
}

/* Circles and lines, as on the homepage band (no dot grids) */
.slWhyDeco,
.slEnqDeco {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}

.slWhyCircle,
.slEnqCircle {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .14);
}

.slWhyCircle--1 {
    top: -160px;
    right: -120px;
    width: 420px;
    height: 420px;
    box-shadow: inset 0 0 0 60px rgba(255, 255, 255, .03);
}

.slWhyCircle--2 {
    bottom: -120px;
    left: -100px;
    width: 300px;
    height: 300px;
    border-color: rgba(76, 218, 160, .25);
}

.slWhyLines {
    position: absolute;
    right: 6%;
    bottom: 40px;
    width: 180px;
    height: 120px;
    background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 14px);
    -webkit-mask: linear-gradient(90deg, transparent, #000 40%);
    mask: linear-gradient(90deg, transparent, #000 40%);
}

.slWhySec .wddWrap {
    position: relative;
    z-index: 1;
}

.slWhyList {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px 40px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.slWhyRow {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    grid-template-areas:
        "no icon"
        "no title"
        "no text";
    column-gap: 16px;
    align-content: start;
    padding: 24px 0 22px;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

/* Mint line that slides in on hover */
.slWhyRow::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    width: 56px;
    height: 2px;
    background: var(--sl-grad);
    transition: width .4s var(--sl-ease);
}

.slWhyRow:hover::before {
    width: 100%;
}

.slWhyNo {
    grid-area: no;
    font-family: 'Jost', sans-serif;
    font-size: 40px;
    font-weight: 500;
    line-height: .9;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, .5);
}

.slWhyIcon {
    grid-area: icon;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 10px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .1);
    color: var(--sl-mint);
}

.slWhyIcon svg {
    width: 19px;
    height: 19px;
}

.slWhyRow h3 {
    grid-area: title;
    margin: 0 0 6px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h3);
    font-weight: 500;
    line-height: 1.3;
    color: #fff;
}

.slWhyRow p {
    grid-area: text;
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-small);
    line-height: 1.6;
    color: rgba(255, 255, 255, .8);
}

/* ==========================================================
   7. PORTFOLIO (soft): square viewer + project index
   ========================================================== */

.slPortfolioSec {
    position: relative;
    padding: var(--sl-pad) 0;
    background: var(--sl-soft);
    overflow: hidden;
}

/* Split header: left title + right meta/badges (no wasted space per Round C) */
.slHeadSplit {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 36px;
    flex-wrap: wrap;
}

.slHeadSplit__title {
    max-width: 580px;
}

.slHeadSplit__title .wddEyebrow {
    margin-bottom: 8px;
}

.slHeadSplit__title h2 {
    margin: 0;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h2);
    font-weight: 500;
    line-height: 1.25;
    color: var(--sl-ink);
}

.slHeadSplit__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    text-align: right;
}

.slHeadSplit__meta p {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: var(--sl-sub);
    color: var(--sl-body);
}

.slShow {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(28px, 4vw, 56px);
}

.slShowStage {
    position: relative;
    min-width: 0;
}

/* Brand circle and ring behind the viewer */
.slShowStage::before,
.slShowStage::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.slShowStage::before {
    top: -28px;
    left: -36px;
    width: 46%;
    aspect-ratio: 1;
    background: var(--sl-grad);
    opacity: .16;
}

.slShowStage::after {
    right: -26px;
    bottom: -26px;
    width: 38%;
    aspect-ratio: 1;
    border: 1.5px solid rgba(67, 45, 146, .18);
}

.slShowFrame {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 580px;
    aspect-ratio: 1;
    margin: 0 auto;
    overflow: hidden;
    border: 6px solid #fff;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 34px 70px -34px rgba(28, 20, 70, .5);
    touch-action: pan-y;
}

/* Category badge pill inside the viewer */
.slShowTag {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(28, 20, 70, .78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #fff;
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
    border: 1px solid rgba(255, 255, 255, .25);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
}

.slShowSlide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transform: scale(1.035);
    transition: opacity .6s ease, transform 1.2s var(--sl-ease);
}

.slShowSlide.is-active {
    opacity: 1;
    transform: none;
}

.slShowSlide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
}

.slShowArrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-top: -23px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--sl-ink);
    box-shadow: 0 10px 24px -10px rgba(28, 20, 70, .5);
    cursor: pointer;
    transition: background .25s ease, color .25s ease, transform .25s var(--sl-ease);
}

.slShowArrow svg {
    width: 20px;
    height: 20px;
    stroke-width: 2.4;
}

.slShowArrow--prev { left: 14px; }
.slShowArrow--next { right: 14px; }

.slShowArrow:hover,
.slShowArrow:focus-visible {
    background: var(--sl-violet);
    color: #fff;
}

.slShowArrow:focus-visible {
    outline: 3px solid rgba(67, 45, 146, .35);
    outline-offset: 2px;
}

.slShowCount {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 2;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: var(--sl-muted);
    box-shadow: 0 8px 18px -10px rgba(28, 20, 70, .4);
}

.slShowCount b {
    font-weight: 500;
    color: var(--sl-ink);
}

.slShowDots {
    display: none;
}

.slShowDot[hidden] {
    display: none;
}

/* Caption under the viewer: clear titles and descriptions on both desktop and mobile */
.slShowCap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 16px 0 0;
    text-align: center;
}

.slShowCapTitle,
.slShowCap b {
    display: block;
    font-family: 'Jost', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--sl-ink);
    line-height: 1.3;
}

.slShowCapDesc {
    font-family: 'Open Sans', sans-serif;
    font-size: 13.5px;
    color: var(--sl-body);
    line-height: 1.4;
}

.slShowSide {
    min-width: 0;
}

.slPortFilter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.slFilterBtn {
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid var(--sl-line);
    border-radius: 999px;
    background: #fff;
    font-family: 'Jost', sans-serif;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--sl-ink);
    cursor: pointer;
    transition: background .25s ease, color .25s ease, border-color .25s ease;
}

.slFilterBtn:hover {
    border-color: var(--sl-violet);
}

.slFilterBtn[aria-pressed="true"] {
    border-color: var(--sl-violet);
    background: var(--sl-violet);
    color: #fff;
}

.slFilterBtn:focus-visible {
    outline: 3px solid rgba(67, 45, 146, .35);
    outline-offset: 2px;
}

.slShowList {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.slShowList li[hidden] {
    display: none;
}

.slShowItem {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 6px 12px 6px 6px;
    border: 0;
    border-radius: 14px;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background .3s ease, box-shadow .3s ease;
}

.slShowItem img {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    object-fit: cover;
    filter: saturate(.75);
    opacity: .85;
    transition: filter .3s ease, opacity .3s ease;
}

.slShowItem b {
    display: block;
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--sl-ink);
}

.slShowItem small {
    display: block;
    max-height: 0;
    overflow: hidden;
    font-family: 'Open Sans', sans-serif;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--sl-muted);
    transition: max-height .35s ease;
}

.slShowItem:hover {
    background: rgba(255, 255, 255, .7);
}

.slShowItem[aria-current="true"] {
    background: #fff;
    box-shadow: 0 12px 26px -18px rgba(28, 20, 70, .45);
}

.slShowItem[aria-current="true"]::after {
    content: '';
    position: absolute;
    top: 12px;
    right: 12px;
    bottom: 12px;
    width: 3px;
    border-radius: 3px;
    background: var(--sl-grad);
}

.slShowItem[aria-current="true"] img {
    filter: none;
    opacity: 1;
}

.slShowItem[aria-current="true"] small {
    max-height: 40px;
}

.slShowItem:focus-visible {
    outline: 3px solid rgba(67, 45, 146, .35);
    outline-offset: 1px;
}

/* Owner 17 + 20 Oct: mockups clearly visible. Bigger viewer, and each photo is
   zoomed in on its device (zoom --z, offset --x/--y, edges never show) */
.slShow {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
}

.slShowFrame {
    max-width: 640px;
}

.slShowSlide {
    overflow: hidden;
    border-radius: 20px;
}

.slShowSlide img {
    position: absolute;
    top: var(--y, 0%);
    left: var(--x, 0%);
    width: calc(var(--z, 1) * 100%);
    height: calc(var(--z, 1) * 100%);
    max-width: none;
    border-radius: 0;
}

.slShowSlide[data-sl-slide="0"] { --z: 1.45; --x: -22.5%; --y: -2.2%; }
.slShowSlide[data-sl-slide="3"] { --z: 1.35; --x: -16.2%; --y: -18.9%; }
.slShowSlide[data-sl-slide="5"] { --z: 1.4; --x: -10.2%; --y: -17.2%; }
.slShowSlide[data-sl-slide="7"] { --z: 1.25; --x: 0%; --y: -11.3%; }
.slShowSlide[data-sl-slide="8"] { --z: 1.55; --x: -29%; --y: -10.5%; }
.slShowSlide[data-sl-slide="9"] { --z: 1.12; --x: -3%; --y: -6%; }
.slShowSlide[data-sl-slide="10"] { --z: 1.25; --x: -8.8%; --y: -15%; }

@media (max-width: 767px) {
    .slShowSlide {
        border-radius: 16px;
    }

    .slShowSlide img {
        border-radius: 0;
    }
}

/* ==========================================================
   8. ENQUIRY (violet band, shared wddEnquiry + contact.css form)
   ========================================================== */

.slEnquirySec {
    padding: 36px 0 var(--sl-pad);
    background: var(--sl-violet);
    isolation: isolate;
}

.slEnquirySec .wddWrap {
    position: relative;
    z-index: 1;
}

.slEnqCircle--1 {
    top: -140px;
    left: -120px;
    width: 380px;
    height: 380px;
    box-shadow: inset 0 0 0 50px rgba(255, 255, 255, .03);
}

.slEnqCircle--2 {
    right: -90px;
    bottom: -110px;
    width: 280px;
    height: 280px;
    border-color: rgba(76, 218, 160, .25);
}

.slEnquirySec .wddEyebrow {
    color: var(--sl-mint);
}

.slEnqPoints {
    display: grid;
    gap: 8px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.slEnqPoints li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    color: rgba(255, 255, 255, .88);
}

.slEnqPoints li::before {
    content: '';
    flex: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(76, 218, 160, .2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234cdaa0' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat;
}

.slEnqCards {
    display: grid;
    gap: 12px;
    max-width: 400px;
    margin-top: 24px;
}

.slEnqCards .wddCallCard {
    display: flex;
    margin-top: 0;
    padding: 10px 20px 10px 10px;
    border-radius: 16px;
}

.slEnqCards .wddCallIcon {
    width: 44px;
    height: 44px;
    color: var(--sl-violet);
}

.slEnqCards .wddCallIcon svg {
    width: 20px;
    height: 20px;
}

.slEnqCards .slEnqCard + .slEnqCard .wddCallIcon::before {
    animation: none;
}

.slEnqCards .wddCallCard strong {
    font-size: 18px;
}

.slEnquirySec .wddFormCard {
    --cgx-primary: #432d92;
    --cgx-border-focus: #432d92;
}

.slEnquirySec .wddFormCard .cgx-submit-btn {
    min-height: 50px;
    background: var(--sl-pgrad);
}

.slEnquirySec .wddFormCard .cgx-submit-btn:hover {
    background: linear-gradient(135deg, #f7637f 0%, #c51f54 100%);
}

/* ==========================================================
   9. FAQ (white)
   ========================================================== */

.slFaqSec {
    padding: 32px 0 var(--sl-pad);
    background: #fff;
}

.slFaqGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(16px, 3vw, 28px);
}

.slFaqCol {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.slFaqItem {
    border: 1px solid var(--sl-line);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.slFaqItem[open] {
    border-color: rgba(53, 159, 173, .4);
    box-shadow: 0 12px 26px -18px rgba(53, 159, 173, .6);
}

@media (max-width: 640px) {
    .slShowDots {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 7px;
        min-height: 32px;
        margin: 8px 0 2px;
    }

    .slShowDot {
        width: 8px;
        height: 8px;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: #d8d4e8;
        cursor: pointer;
    }

    .slShowDot.is-active {
        width: 22px;
        background: var(--sl-violet);
    }
}

.slFaqSummary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-height: 58px;
    margin: 0;
    padding: 14px 20px;
    font-family: 'Jost', sans-serif;
    font-size: 16.5px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--sl-ink);
    list-style: none;
    cursor: pointer;
}

.slFaqSummary::-webkit-details-marker {
    display: none;
}

.slFaqSummary:focus-visible {
    outline: 2px solid var(--sl-violet);
    outline-offset: -2px;
    border-radius: 14px;
}

.slFaqIcon {
    display: grid;
    place-items: center;
    flex: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--sl-teal-soft);
    font-size: 18px;
    line-height: 1;
    color: var(--sl-teal-ink);
    transition: transform .3s ease, background-color .3s ease, color .3s ease;
}

.slFaqItem[open] .slFaqIcon {
    transform: rotate(45deg);
    background: var(--sl-grad);
    color: #fff;
}

.slFaqBody {
    padding: 0 20px 18px;
    font-family: 'Open Sans', sans-serif;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--sl-body);
}

.slFaqBody p {
    margin: 0;
}

/* Still have a question: light card, buttons match the site buttons */
.slFaqHelpCard {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 16px;
    padding: 22px;
    border: 1px solid var(--sl-line);
    border-radius: 18px;
    background:
        radial-gradient(260px 160px at 100% 0%, rgba(76, 218, 160, .14), transparent 70%),
        var(--sl-soft);
}

.slFaqHelpIcon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--sl-grad);
    color: #fff;
}

.slFaqHelpIcon svg {
    width: 23px;
    height: 23px;
}

.slFaqHelpCard h3 {
    margin: 0 0 4px;
    font-family: 'Jost', sans-serif;
    font-size: var(--sl-h3);
    font-weight: 500;
    line-height: 1.3;
    color: var(--sl-ink);
}

.slFaqHelpCard p {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    line-height: 1.55;
    color: var(--sl-body);
}

.slFaqHelpActions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.slFaqHelpActions .wddBtn {
    height: 46px;
    padding: 0 18px;
    font-size: 15px;
}

.slFaqHelpActions .wddBtn .fa {
    font-size: 17px;
}

/* ==========================================================
   10. RESPONSIVE
   ========================================================== */

@media (max-width: 1199px) {
    :root {
        --sl-h1: 34px;
    }

    .slMap {
        grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr);
        gap: 32px;
    }

    .slMapHub {
        width: 240px;
    }

    .slMapCore {
        width: 156px;
        height: 156px;
    }

    .slMapCol--l .slMapItem:nth-child(odd) { transform: translateX(20px); }
    .slMapCol--r .slMapItem:nth-child(odd) { transform: translateX(-20px); }

    .slWhyList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .slOrbitInner {
        grid-template-columns: 320px minmax(0, 1fr);
    }
}

@media (max-width: 991px) {
    :root {
        --sl-h1: 31px;
        --sl-h2: 27px;
        --sl-pad: 56px;
    }

    .slIntroInner,
    .slNeedInner {
        grid-template-columns: minmax(0, 1fr);
        gap: 36px;
    }

    .slHeroVisual {
        order: -1;
        width: 100%;
        max-width: 560px;
        margin: 0 auto;
        padding: 12px 0;
    }

    .slNeedHead {
        text-align: center;
    }

    .slNeedHead p:not(.wddEyebrow) {
        margin-inline: auto;
    }

    .slSearch {
        width: 100%;
        max-width: 560px;
        margin: 0 auto;
    }

    .slRise {
        max-width: 640px;
        width: 100%;
        margin: 0 auto;
    }

    .slRiseBarWrap {
        height: 280px;
    }

    /* Services: hub on top, two lists under it with a connector line */
    .slMap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 32px;
    }

    .slMapWires {
        display: none;
    }

    .slMapHub {
        grid-column: 1 / -1;
        order: -1;
        width: 210px;
        margin: 0 auto;
    }

    .slMapCore {
        width: 140px;
        height: 140px;
    }

    .slMapCore img {
        width: 42px;
        height: 42px;
        margin-bottom: 6px;
    }

    .slMapCore b {
        font-size: 16px;
    }

    .slMapCol {
        gap: 24px;
    }

    .slMapCol::before {
        content: '';
        position: absolute;
        top: 27px;
        bottom: 27px;
        left: 26px;
        border-left: 1.5px dashed rgba(53, 159, 173, .4);
        z-index: -1;
    }

    .slMapCol--l .slMapItem,
    .slMapCol--r .slMapItem {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        transform: none !important;
    }

    /* Journey: vertical path, nodes on the left */
    .slPathStops {
        position: relative;
        grid-template-columns: minmax(0, 1fr);
        gap: 26px;
        max-width: 560px;
        margin: 0 auto;
    }

    .slPathStops::before {
        content: '';
        position: absolute;
        top: 32px;
        bottom: 32px;
        left: 31px;
        border-left: 2px dashed rgba(53, 159, 173, .35);
        z-index: 0;
        pointer-events: none;
    }

    .slPath.is-ready .slPathStops::before {
        display: none;
    }

    .slPathStop {
        display: grid;
        grid-template-columns: 64px minmax(0, 1fr);
        align-items: start;
        gap: 18px;
        padding-top: 0;
        text-align: left;
    }

    .slPathStop::before {
        display: none;
    }

    .slPathText {
        max-width: none;
        padding-top: 4px;
    }

    /* 360: heading, ring, list */
    .slOrbitInner {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "head"
            "ring"
            "body";
    }

    .slOrbitHead {
        text-align: center;
    }

    .slRing {
        max-width: 280px;
        margin-bottom: 24px;
    }

    .slOrbitBody {
        width: 100%;
        max-width: 560px;
        margin: 0 auto;
    }

    .slRingCore b {
        font-size: 38px;
    }

    /* Portfolio: viewer, caption, then a thumb strip */
    .slShow {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .slShowFrame {
        max-width: 560px;
    }

    .slShowCap {
        display: block;
    }

    .slShow {
        display: flex;
        flex-direction: column;
    }

    .slShowStage {
        order: 1;
        width: 100%;
    }

    .slShowSide {
        display: contents;
    }

    .slPortFilter {
        order: 0;
        justify-content: center;
        margin-bottom: 0;
    }

    .slShowList {
        order: 2;
        width: calc(100% + 2 * var(--wdd-gutter, 16px));
        max-width: none;
    }

    .slShowList {
        display: flex;
        gap: 8px;
        margin-inline: calc(-1 * var(--wdd-gutter, 16px));
        padding: 4px var(--wdd-gutter, 16px) 8px;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .slShowList::-webkit-scrollbar {
        display: none;
    }

    .slShowList li {
        flex: none;
        scroll-snap-align: center;
    }

    .slShowItem {
        display: block;
        width: auto;
        padding: 3px;
        border-radius: 14px;
    }

    .slShowItem img {
        display: block;
        width: 62px;
        height: 62px;
        border-radius: 11px;
    }

    .slShowItem span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .slShowItem[aria-current="true"] {
        box-shadow: 0 0 0 2px var(--sl-teal), 0 10px 20px -14px rgba(28, 20, 70, .5);
    }

    .slShowItem[aria-current="true"]::after {
        display: none;
    }

    .slFaqGrid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    :root {
        --sl-h1: 28px;
        --sl-h2: 24px;
        --sl-h3: 17px;
        --sl-sub: 14px;
        --sl-lead: 15px;
        --sl-small: 13.5px;
        --sl-pad: 48px;
    }

    .slOnlyPhone {
        display: flex !important;
    }

    .slOnlyWide {
        display: none !important;
    }

    .wddHead {
        margin-bottom: 28px;
    }

    .slIntro {
        padding-top: 32px;
    }

    .slInclusions {
        grid-template-columns: minmax(0, 1fr);
    }

    .slFilterBtn {
        min-height: 38px;
        padding: 7px 14px;
        font-size: 14px;
    }

    .slProof {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px 14px;
    }

    .slProofItem {
        font-size: 13px;
        line-height: 1.3;
    }

    /* Rising chart turns into horizontal bars */
    .slRise {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .slRiseBarWrap {
        height: 46px;
        border-bottom: 0;
        border-radius: 12px;
        background: rgba(67, 45, 146, .06);
    }

    .slRiseBar {
        width: calc(var(--h) * 1%);
        height: 100%;
        border-radius: 12px;
        transform-origin: 0 50%;
        background:
            repeating-linear-gradient(90deg, transparent 0 25px, rgba(255, 255, 255, .26) 25px 26px),
            var(--sl-grad);
    }

    .slRise.is-armed .slRiseBar {
        transform: scaleX(.06);
    }

    .slRiseIcon {
        top: 50%;
        left: 6px;
        width: 34px;
        height: 34px;
        margin: -17px 0 0;
    }

    .slRiseIcon svg {
        width: 17px;
        height: 17px;
    }

    .slRiseNo {
        top: 50%;
        right: 12px;
        bottom: auto;
        left: auto;
        transform: translateY(-50%);
        font-size: 14px;
    }

    .slRiseText {
        padding-top: 10px;
    }

    .slMap {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .slMapIcon {
        width: 50px;
        height: 50px;
    }

    .slMapCol::before {
        left: 24px;
    }

    .slSearch {
        padding: 14px;
    }

    .slSearchRow b {
        font-size: 14.5px;
    }

    .slPathStops::before {
        top: 28px;
        bottom: 28px;
        left: 27px;
    }

    .slPathStop {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 16px;
    }

    .slPathNode {
        width: 56px;
        height: 56px;
    }

    .slPathNode svg {
        width: 23px;
        height: 23px;
    }

    .slRing {
        max-width: 240px;
    }

    .slRingCore b {
        font-size: 34px;
    }

    .slOrbitRow {
        padding: 12px;
        gap: 14px;
    }

    .slOrbitCta {
        display: flex;
        width: 100%;
        justify-content: center;
        margin: 18px 0 0;
        padding: 12px 20px;
        text-align: center;
        box-sizing: border-box;
    }

    .slWhyList {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .slWhyRow {
        grid-template-columns: 44px minmax(0, 1fr);
        grid-template-areas:
            "no title"
            "no text";
        column-gap: 14px;
        padding: 18px 0;
    }

    .slWhyIcon {
        display: none;
    }

    .slWhyNo {
        font-size: 32px;
    }

    .slShowFrame {
        border-width: 4px;
        border-radius: 20px;
    }

    .slShowSlide img {
        border-radius: 16px;
    }

    .slShowArrow {
        width: 40px;
        height: 40px;
        margin-top: -20px;
    }

    .slShowArrow--prev { left: 10px; }
    .slShowArrow--next { right: 10px; }

    .slShowStage::before {
        left: -20px;
    }

    .slShowStage::after {
        right: -12px;
    }

    .slHeadSplit {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .slHeadSplit__meta {
        align-items: flex-start;
        text-align: left;
    }

    .slEnquirySec {
        padding-top: 28px;
    }

    .slEnqCards {
        max-width: none;
    }

    .slFaqSec {
        padding-top: 24px;
    }

    .slFaqSummary {
        font-size: 16px;
        padding: 14px 16px;
    }

    .slFaqBody {
        padding: 0 16px 16px;
    }

    .slFaqHelpCard {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        padding: 18px;
    }

    .slFaqHelpIcon {
        display: none;
    }

    .slFaqHelpActions .wddBtn {
        flex: 1 1 140px;
        padding: 0 12px;
    }
}

@media (max-width: 480px) {
    .wddCtas {
        display: flex;
        flex-direction: column;
        gap: 10px;
        width: 100%;
    }

    .wddCtas .wddBtn {
        width: 100%;
        justify-content: center;
    }

    .slStrip {
        margin-top: 40px;
        padding-top: 24px;
    }

    /* Mobile QA: "Chat on WhatsApp" was clipped at 360px; size buttons to their text */
    .slFaqHelpActions .wddBtn {
        flex: 1 1 auto;
    }
}

@media (max-width: 400px) {
    .slHeroTrio {
        gap: 10px;
    }

    .slHeroPic {
        border-radius: 14px;
    }

    .slProofIcon {
        width: 26px;
        height: 26px;
    }

    .slProofItem {
        gap: 8px;
        font-size: 12.5px;
    }

    .slSearchQuery {
        font-size: 13.5px;
    }

    .slFilterBtn {
        padding: 6px 12px;
        font-size: 13px;
    }

    .slShowItem img {
        width: 56px;
        height: 56px;
    }

    .slLogoItem {
        padding: 6px 12px;
        font-size: 12.5px;
    }
}

@media (max-width: 360px) {
    .slProof {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

}

/* ==========================================================
   11. REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
    .wdd-reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .slSearchCaret,
    .slMapWires path,
    .slMapRing--1,
    .slRingSpin,
    .slEnqCards .wddCallIcon::before,
    .slMarqueeTrack {
        animation: none !important;
    }

    .slMarquee {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .slRise.is-armed .slRiseBar {
        transform: none !important;
    }

    .slHeroPic img,
    .slRiseBar,
    .slMapItem,
    .slMapIcon,
    .slPathNode,
    .slRingSeg,
    .slOrbitRow,
    .slOrbitRow::before,
    .slWhyRow::before,
    .slShowSlide,
    .slShowItem small {
        transition: none !important;
    }

    .slHeroPic:hover img,
    .slMapItem:hover .slMapIcon {
        transform: none;
    }

    .slShowSlide {
        transform: none;
    }

}
