/* Solution pages: built on the site's brand colour and Poppins. */
.sol { --sol-ink:#0a1121; --sol-text:#4b5563; --sol-line:#e6ebf2; --sol-soft:#f6f8fc; --sol-tint:#eef4fc; color:var(--sol-ink); font-size:16px; line-height:1.65; }
.sol section { position:relative; }
.sol [id] { scroll-margin-top:110px; }
.sol h2, .sol h3 { color:var(--sol-ink); }
.sol p { color:var(--sol-text); }
.sol-sec { padding:76px 0; }
.sol-soft { background:var(--sol-soft); }
.sol-tint { background:var(--sol-tint); }
.sol-title { font-size:34px; font-weight:800; line-height:1.25; margin:0 0 10px; max-width:820px; }
.sol-sub { margin:0 0 34px; max-width:760px; }
.sol-head-only { margin-bottom:30px; }
.sol-grid-2,.sol-grid-3,.sol-grid-4 { display:grid; gap:20px; }
.sol-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px; }
.sol-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sol-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }

/* Hero */
.sol-hero { background:var(--sol-tint); overflow:hidden; }
/* Fades out toward the left so text inside a cover image never clashes with the heading */
.sol-hero-img { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.22; -webkit-mask-image:linear-gradient(to right, transparent 25%, #000 75%); mask-image:linear-gradient(to right, transparent 25%, #000 75%); }
.sol-hero-icons { position:absolute; inset:0; pointer-events:none; }
.sol-hero-icons i { position:absolute; color:var(--main-color-one); opacity:.09; }
.sol-hero-icons i:nth-child(1){ top:6%; left:2%; font-size:80px; }
.sol-hero-icons i:nth-child(2){ bottom:6%; left:2%; font-size:64px; }
.sol-hero-icons i:nth-child(3){ top:5%; left:46%; font-size:58px; }
.sol-hero-icons i:nth-child(4){ bottom:5%; left:40%; font-size:66px; }
.sol-hero-icons i:nth-child(5){ top:6%; right:2%; font-size:70px; }
.sol-hero-icons i:nth-child(6){ bottom:6%; right:2%; font-size:76px; }
.sol-hero-inner { position:relative; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:48px; align-items:center; padding:60px 0; }
.sol-crumbs { font-size:13px; color:var(--sol-text); margin-bottom:12px; }
.sol-crumbs a { color:var(--sol-text); }
.sol-eyebrow { font-size:13px; font-weight:700; letter-spacing:1.3px; text-transform:uppercase; color:var(--main-color-one) !important; margin:0 0 10px; }
.sol-hero h1 { font-size:44px; line-height:1.18; font-weight:800; margin:0 0 16px; color:var(--sol-ink); }
.sol-hero-text { font-size:18px; color:#374151 !important; margin:0 0 22px; }
.sol-points { list-style:none; margin:0 0 26px; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; }
.sol-points li { display:flex; gap:10px; align-items:baseline; font-size:15px; font-weight:500; color:var(--sol-ink); }
.sol-points li { align-items:center; }
.sol-points i { flex:0 0 20px; width:20px; height:20px; border-radius:50%; background:#fff; color:var(--main-color-one); font-size:10px; display:flex; align-items:center; justify-content:center; }
.sol-btn-line { display:inline-block; padding:12px 22px; border:2px solid var(--main-color-one); border-radius:8px; color:var(--main-color-one); font-weight:700; font-size:15px; }
.sol-btn-line:hover { background:var(--main-color-one); color:#fff; }

/* Form */
.sol-form-card { background:#fff; border-radius:16px; padding:28px; box-shadow:0 18px 44px rgba(10,17,33,.12); }
.sol-form-card h2 { font-size:22px; font-weight:700; margin:0 0 4px; }
.sol-form-card .sol-fsub { font-size:14px; margin:0 0 16px; }
.sol-field { margin-bottom:11px; }
.sol-field input,.sol-field select,.sol-field textarea { width:100%; box-sizing:border-box; background:#f7f9fc; border:1.5px solid #dfe5ef; border-radius:8px; padding:11px 13px; font:inherit; font-size:14px; color:var(--sol-ink); outline:none; }
.sol-field input:focus,.sol-field select:focus,.sol-field textarea:focus { border-color:var(--main-color-one); background:#fff; }
.sol-field-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.sol-err { color:#c81e1e; font-size:12px; margin-top:3px; display:none; }
.sol-submit { width:100%; min-height:48px; background:var(--main-color-one); color:#fff; border:none; border-radius:8px; font:inherit; font-weight:700; cursor:pointer; }
.sol-submit:hover { opacity:.92; }
.sol-submit:disabled { opacity:.6; cursor:not-allowed; }
.sol-fnote { margin:10px 0 0; font-size:12.5px; text-align:center; }
.sol-success { display:none; text-align:center; padding:26px 8px; }
.sol-success .tick { font-size:44px; color:#16a34a; }

/* Proof */
.sol-proof { border-bottom:1px solid var(--sol-line); padding:28px 0; }
.sol-stat b { display:block; font-size:32px; font-weight:800; color:var(--main-color-one); line-height:1.1; }
.sol-stat span { font-size:14px; color:var(--sol-text); }
.sol-logos { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:20px 30px; align-items:center; margin-top:30px; }
.sol-logo { display:flex; align-items:center; justify-content:center; height:72px; }
.sol-logo img { max-height:68px; max-width:100%; width:auto; height:auto; object-fit:contain; }

/* Tables */
.sol-table-wrap { overflow-x:auto; border:1px solid var(--sol-line); border-radius:14px; background:#fff; }
.sol-table { width:100%; min-width:680px; border-collapse:collapse; font-size:15px; }
.sol-table th { background:var(--main-color-one); color:#fff; text-align:left; padding:15px 20px; font-weight:600; }
.sol-table td { padding:14px 20px; border-top:1px solid var(--sol-line); color:var(--sol-text); }
.sol-table td:first-child { font-weight:600; color:var(--sol-ink); }
.sol-table td.good { color:var(--sol-ink); font-weight:600; }

/* Screens */
.sol-dark { background:#0a1121; }
.sol-dark .sol-title,.sol-dark h3.sol-screen-name { color:#fff; }
.sol-dark .sol-sub { color:#c9d3e3; }
.sol-screen-name { font-size:18px; margin:0 0 12px; }
.sol-screen { background:#fff; border-radius:16px; padding:18px; }
.sol-screen h4 { font-size:15.5px; font-weight:700; margin:0; color:var(--sol-ink); }
.sol-screen .s-sub { font-size:12.5px; margin:0 0 10px; }
.sol-screen-row { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid #eef1f6; font-size:13.5px; color:var(--sol-ink); }
.sol-screen-row strong { white-space:nowrap; }
.sol-screens > div { display:flex; flex-direction:column; }
.sol-screens .sol-screen { flex:1; display:flex; flex-direction:column; }
.sol-screens .sol-screen-btn { margin-top:auto; }
.sol-screens .sol-screen-row:last-of-type { margin-bottom:12px; }
.sol-screen-btn { margin-top:12px; background:var(--main-color-one); color:#fff; text-align:center; padding:10px; border-radius:8px; font-weight:700; font-size:14px; }

/* Journey infographic: left to right, U-turn, then right to left */
.sol-path { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:1fr; row-gap:36px; }
.sol-step { position:relative; text-align:center; padding:0 14px; list-style:none; }
.sol-step::marker { content:""; }
.sol-step::before { content:none !important; display:none !important; }
.sol-node { position:relative; z-index:2; width:76px; height:76px; margin:0 auto 14px; border-radius:50%; background:#fff; border:3px solid var(--main-color-one); color:var(--main-color-one); display:flex; align-items:center; justify-content:center; font-size:27px; transition:background .2s,color .2s; }
.sol-step:hover .sol-node { background:var(--main-color-one); color:#fff; }
.sol-node span { position:absolute; top:-6px; right:-6px; width:26px; height:26px; border-radius:50%; background:var(--main-color-one); border:2px solid #fff; color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.sol-step h3 { font-size:17px; font-weight:700; margin:0 0 4px; }
.sol-step p { font-size:14px; margin:0 auto; max-width:230px; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(5) { grid-column:4; grid-row:2; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(6) { grid-column:3; grid-row:2; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(7) { grid-column:2; grid-row:2; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(8) { grid-column:1; grid-row:2; }
.sol-path:not(.sol-path-plain) .sol-step::after { content:""; position:absolute; top:37px; left:50%; width:100%; border-top:3px dashed #a9c4e6; z-index:1; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(n+5)::after { left:auto; right:50%; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(4)::after { width:50%; height:calc(100% + 36px); border:3px dashed #a9c4e6; border-left:0; border-radius:0 90px 90px 0; }
.sol-path:not(.sol-path-plain) .sol-step:nth-child(8)::after { display:none; }

/* Cards */
.sol-card { background:#fff; border:1px solid var(--sol-line); border-radius:14px; padding:24px; height:100%; }
.sol-card h3 { font-size:17px; font-weight:700; margin:0 0 6px; }
.sol-card p { font-size:14.5px; margin:0; }
.sol-card .value { color:var(--main-color-one); font-weight:700; font-size:13px; margin-top:10px; }
.sol-icon { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:19px; color:#fff; background:var(--main-color-one); margin-bottom:14px; }
.sol-num { width:36px; height:36px; border-radius:50%; background:var(--main-color-one); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
.sol-list { margin:12px 0 0; padding:0; list-style:none; }
.sol-list li { position:relative; padding:0 0 9px 30px; font-size:14.5px; color:var(--sol-text); }
.sol-list li::before,.sol-compare td:last-child::before { content:"\f00c"; font-family:"Font Awesome 5 Free"; font-weight:900; font-size:10px; line-height:1; width:20px; height:20px; border-radius:50%; background:#e3edfa; color:var(--main-color-one); display:inline-flex; align-items:center; justify-content:center; }
.sol-list li::before { position:absolute; left:0; top:2px; }
.sol-plan.featured .sol-list li::before { background:var(--main-color-one); color:#fff; }
.sol-compare td:last-child::before { margin-right:10px; vertical-align:middle; position:relative; top:-1px; }
.sol-rows-list .r { padding:12px 0; border-bottom:1px solid #dfe5ef; }
.sol-rows-list .r strong { color:var(--sol-ink); font-size:15.5px; }
.sol-rows-list .r p { font-size:14.5px; margin:0; }

/* Calculator */
.sol-calc { background:#fff; border-radius:16px; padding:28px; box-shadow:0 10px 30px rgba(10,17,33,.08); }
.sol-calc h3 { font-size:21px; font-weight:700; margin:0 0 4px; }
.sol-calc label { display:block; font-size:14px; font-weight:600; margin-bottom:16px; }
.sol-calc input[type=range] { width:100%; margin-top:6px; accent-color:var(--main-color-one); }
.sol-calc-out { background:var(--main-color-one); border-radius:12px; padding:18px 20px; color:#fff; }
.sol-calc-out b { display:block; font-size:32px; font-weight:800; line-height:1.2; }
.sol-calc-out span { font-size:14px; }

/* Plans */
.sol-plan { border:2px solid var(--sol-line); border-radius:16px; padding:26px; display:flex; flex-direction:column; }
.sol-plan.featured { border-color:var(--main-color-one); }
.sol-plan .tag { color:var(--main-color-one); font-size:13px; font-weight:700; margin:0 0 4px; }
.sol-plan h3 { font-size:22px; font-weight:700; margin:0 0 6px; }
.sol-plan .sol-list { flex:1; margin-bottom:16px; }
.sol-btn { display:block; text-align:center; padding:12px; border-radius:8px; background:var(--main-color-one); color:#fff !important; font-weight:700; }

/* Mid CTA, chips, FAQ, final */
.sol-mid { background:var(--main-color-one); padding:40px 0; }
.sol-mid-in { display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; }
.sol-mid h2 { color:#fff; font-size:27px; margin:0 0 4px; line-height:1.3; }
.sol-mid p { color:#dfe9f6; margin:0; }
.sol-mid a { background:#fff; color:var(--main-color-one); font-weight:700; padding:14px 26px; border-radius:8px; }
.sol-chips { display:flex; flex-wrap:wrap; gap:8px; }
.sol-chips span { background:#f3f6fb; border-radius:16px; padding:6px 13px; font-size:13.5px; color:var(--sol-ink); }
.sol-quote { background:#fff; border-radius:14px; padding:24px; height:100%; margin:0; }
.sol-quote blockquote { margin:0 0 14px; font-size:15px; color:var(--sol-ink); border:0; padding:0; }
.sol-quote figcaption { font-size:13.5px; color:var(--sol-text); }
.sol-quote.case { background:var(--main-color-one); }
.sol-quote.case h3,.sol-quote.case p,.sol-quote.case a { color:#fff; }
.sol-final { background:#0a1121; padding:64px 0; }
.sol-final .sol-title { color:#fff; }
.sol-final-in { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; align-items:center; }
.sol-final p.t { color:#c9d3e3; font-size:17px; }
.sol .sol-next-title { color:#fff; font-size:19px; font-weight:700; margin:26px 0 14px; }
.sol-next { margin:0; padding:0; }
.sol-next li { list-style:none; display:flex; gap:14px; padding:0 0 16px; color:#c9d3e3; font-size:15px; }
.sol-next li::marker { content:""; }
.sol-next li::before { content:none !important; display:none !important; }
.sol-next span { flex:0 0 32px; height:32px; border-radius:50%; background:#fff; color:var(--main-color-one); font-weight:700; display:flex; align-items:center; justify-content:center; }
.sol-next strong { display:block; color:#fff; font-size:16px; }
.sol .sol-proof-line { color:#fff; font-weight:600; font-size:15px; margin:6px 0 0; }

/* Listing */
.sol-list-hero { position:relative; padding:60px 0; max-width:820px; }
.sol-tile { display:block; height:100%; background:#fff; border:1px solid var(--sol-line); border-radius:14px; padding:26px; transition:box-shadow .2s, transform .2s; }
.sol-tile:hover { box-shadow:0 12px 30px rgba(10,17,33,.09); transform:translateY(-3px); }
.sol-tile h3 { font-size:18px; font-weight:700; margin:0 0 8px; color:var(--sol-ink); }
.sol-tile p { font-size:14px; margin:0 0 12px; }
.sol-tile .more { color:var(--main-color-one); font-weight:600; font-size:14px; }

@media (max-width:991px) {
    .sol-path,.sol-path .sol-step { grid-template-columns:minmax(0,1fr); }
    .sol-path { grid-auto-rows:auto; row-gap:0; }
    .sol-path .sol-step,.sol-path:not(.sol-path-plain) .sol-step:nth-child(n) { grid-column:1; grid-row:auto; display:flex; gap:16px; text-align:left; padding:0 0 26px; }
    .sol-node,.sol-path .sol-node { flex:0 0 60px; width:60px; height:60px; margin:0; font-size:21px; }
    .sol-step p { max-width:none; }
    .sol-path:not(.sol-path-plain) .sol-step:nth-child(n)::after { display:block; top:0; bottom:0; left:29px; right:auto; width:0; height:auto; border:0; border-left:3px dashed #a9c4e6; border-radius:0; }
    .sol-path:not(.sol-path-plain) .sol-step:last-child::after { display:none; }
    .sol-hero-inner,.sol-final-in,.sol-grid-2 { grid-template-columns:minmax(0,1fr); }
    .sol-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sol-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sol-logos { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .sol-hero h1 { font-size:36px; }
}
@media (max-width:640px) {
    .sol-sec { padding:48px 0; }
    .sol-grid-3,.sol-grid-4,.sol-points,.sol-field-row { grid-template-columns:minmax(0,1fr); }
    .sol-hero-inner { padding:36px 0; gap:28px; }
    .sol-hero h1 { font-size:29px; }
    .sol-title { font-size:26px; }
    .sol-mid h2 { font-size:22px; }
    .sol-hero-icons { display:none; }
    .sol-logos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 18px; }
    .sol-logo { height:56px; }
    .sol-logo img { max-height:52px; }
}

/* App-like phone layout. The tabs, dots and sheet are built by solutions.js, so they only apply under .sol-app */
.sol-nav,.sol-hero-cta,.sol-bar,.sol-shade,.sol-sheet-top,.sol-tabs,.sol-dots,.sol-more,.sol-next-step { display:none; }
@media (max-width:767px) {
    .sol { font-size:14.5px; line-height:1.55; }
    .sol [id] { scroll-margin-top:58px; }
    .sol-sec { padding:24px 0; }
    .sol-title { font-size:20px; margin-bottom:4px; }
    .sol-sub { font-size:13px; line-height:1.45; margin-bottom:12px; }
    .sol-head-only { margin-bottom:12px; }
    .sol-grid-2 { gap:22px; }

    /* Swipe rows run edge to edge so the next card peeks in */
    .sol .sol-swipe { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; margin:0 -15px; padding:2px 15px 6px; scroll-padding-left:15px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
    .sol-swipe::-webkit-scrollbar,.sol-tabs::-webkit-scrollbar,.sol-nav::-webkit-scrollbar,.sol-stats::-webkit-scrollbar,.sol-logos::-webkit-scrollbar,.sol-chips-row::-webkit-scrollbar { display:none; }
    .sol .sol-swipe > * { flex:0 0 84%; max-width:340px; box-sizing:border-box; scroll-snap-align:start; height:auto; min-width:0; }
    .sol .sol-swipe-2row { display:grid; grid-auto-flow:column; grid-template-rows:repeat(2,auto); grid-template-columns:none; grid-auto-columns:210px; }
    .sol .sol-swipe-2row .sol-card { padding:12px; }
    .sol-swipe-2row .sol-icon { width:32px; height:32px; font-size:14px; border-radius:9px; margin-bottom:8px; }
    .sol .sol-swipe-2row .sol-card h3 { font-size:14px; line-height:1.3; margin-bottom:2px; }
    .sol .sol-swipe-2row .sol-card p { font-size:12.5px; line-height:1.4; }
    .sol-app .sol-dots { display:flex; justify-content:center; gap:6px; padding-top:8px; }
    .sol-dots span { width:6px; height:6px; border-radius:3px; background:#c6d3e6; transition:width .2s,background .2s; }
    .sol-dots span.on { width:18px; background:var(--main-color-one); }
    .sol-dark .sol-dots span { background:#4a5670; }

    /* Cards */
    .sol-card { padding:16px; }
    .sol-card p { font-size:13.5px; }
    .sol-icon { width:38px; height:38px; font-size:16px; margin-bottom:10px; }
    .sol-list li { font-size:13.5px; padding:0 0 7px 28px; }
    .sol-app .sol-clip > li:nth-child(n+5) { display:none; }
    .sol-app .sol-more { display:block; width:100%; min-height:44px; border:0; background:none; color:var(--main-color-one); font:inherit; font-weight:700; }

    /* Hero */
    .sol-app .sol-hero-inner { padding:18px 0 22px; display:block; }
    .sol-app .sol-crumbs { font-size:12px; margin-bottom:8px; }
    .sol-app .sol-hero h1 { font-size:25px; line-height:1.22; margin-bottom:8px; }
    .sol-app .sol-hero-text { font-size:14px; margin-bottom:12px; }
    .sol-app .sol-points { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
    .sol-app .sol-points li { background:#fff; border-radius:10px; padding:8px; font-size:12.5px; line-height:1.3; gap:7px; }
    .sol-app .sol-hero .sol-btn-line { display:none; }
    .sol-app .sol-hero-cta { display:block; padding:14px; border-radius:12px; font-size:15px; }

    /* Proof */
    .sol-proof { padding:14px 0; }
    .sol .sol-stats { display:flex; gap:22px; overflow-x:auto; scrollbar-width:none; }
    .sol-stat { flex:0 0 auto; }
    .sol-stat b { font-size:20px; }
    .sol-stat span { font-size:11.5px; white-space:nowrap; }
    .sol .sol-logos { display:flex; gap:22px; overflow-x:auto; margin:12px -15px 0; padding:0 15px; scrollbar-width:none; }
    .sol .sol-logo { flex:0 0 76px; height:42px; }
    .sol .sol-logo img { max-height:40px; }

    /* Section nav */
    .sol-app .sol-nav { display:flex; gap:8px; position:sticky; top:0; z-index:50; overflow-x:auto; background:#fff; padding:9px 15px; border-bottom:1px solid var(--sol-line); scrollbar-width:none; }
    .sol-nav a { flex:0 0 auto; padding:6px 13px; border-radius:16px; background:#f3f6fb; color:var(--sol-ink); font-size:12.5px; font-weight:600; }
    .sol-nav a.on { background:var(--main-color-one); color:#fff; }

    /* Tables become cards */
    .sol .sol-table-wrap { border:0; border-radius:0; overflow:visible; background:none; }
    .sol .sol-table { min-width:0; display:block; font-size:13.5px; }
    .sol .sol-table thead { display:none; }
    .sol .sol-table td { display:block; padding:0; border:0; }
    .sol-table td[data-label]::after { content:none; }
    .sol-table-cards tr { display:block; background:var(--sol-soft); border-radius:14px; padding:14px; }
    .sol-table-cards td:first-child { font-size:15px; font-weight:700; margin-bottom:8px; }
    .sol-table-cards td[data-label] { margin-bottom:8px; }
    .sol-table-cards td[data-label]::before { content:attr(data-label); display:block; font-size:11.5px; font-weight:600; color:var(--sol-text); }
    .sol-table-cards td.good { color:var(--main-color-one); margin-bottom:0; }
    .sol .sol-compare tbody { display:block; }
    .sol .sol-compare tr { display:block; padding:10px 0; border-bottom:1px solid var(--sol-line); }
    .sol .sol-compare td:first-child { font-size:14px; font-weight:700; margin-bottom:4px; }
    .sol .sol-compare td { font-size:13px; }
    .sol .sol-compare td.good { color:var(--main-color-one); margin-top:4px; display:flex; align-items:flex-start; }
    .sol .sol-compare td:last-child::before { flex:0 0 18px; width:18px; height:18px; margin:1px 8px 0 0; top:0; }
    .sol-app .sol-compare[data-show="1"] td:nth-child(3),.sol-app .sol-compare[data-show="2"] td:nth-child(2) { display:none; }

    /* Tabs */
    .sol-app .sol-tabs { display:flex; gap:6px; overflow-x:auto; margin-bottom:12px; scrollbar-width:none; }
    .sol-tabs button { flex:1 0 auto; min-height:44px; padding:0 12px; border:0; border-radius:10px; background:#f3f6fb; color:var(--sol-ink); font:inherit; font-size:13px; font-weight:700; white-space:nowrap; }
    .sol-tabs button.on { background:var(--main-color-one); color:#fff; }
    .sol-dark .sol-tabs button:not(.on) { background:#1c2638; color:#fff; }
    .sol-app .sol-tabs-steps { margin:0 -15px 12px; padding:2px 15px; gap:8px; }
    .sol-tabs-steps button { flex:0 0 44px; width:44px; padding:0; border:2px solid var(--main-color-one); border-radius:50%; background:#fff; color:var(--main-color-one); }
    .sol-app [data-tabs] > .sol-off { display:none !important; }
    .sol-app [data-tabs] { display:block; }
    /* Same layout before solutions.js runs, so the page does not jump */
    .sol-app [data-tabs]:not(.sol-ready) > [data-tab]:not(:first-child),.sol-app ul[data-more]:not(.sol-ready) > li:nth-child(n+5) { display:none; }
    .sol-app .sol-path .sol-step:nth-child(n) { background:#fff; border-radius:14px; padding:16px; gap:14px; align-items:center; }
    .sol-app .sol-path .sol-step:nth-child(n)::after { display:none; }
    .sol-app .sol-path .sol-node { flex:0 0 52px; width:52px; height:52px; font-size:19px; }
    .sol-app .sol-node span { display:none; }
    .sol-step h3 { font-size:16px; }
    .sol-step p { font-size:13.5px; }
    .sol-app .sol-next-step { display:block; width:100%; min-height:44px; margin-top:10px; border:2px solid var(--main-color-one); border-radius:10px; background:none; color:var(--main-color-one); font:inherit; font-size:14px; font-weight:700; }
    .sol-screen { padding:14px; }
    /* The tab already names these */
    .sol-app [data-tabs] .sol-screen-name,.sol-app [data-tabs] > .sol-card > h3,.sol-app [data-tabs] > .sol-card > .sol-icon { display:none; }
    .sol-app .sol-clip-rows tr:nth-child(n+5) { display:none; }

    /* Rows as cards */
    .sol .sol-rows-list .r { background:#fff; border:1px solid var(--sol-line); border-radius:14px; padding:14px; }
    .sol-rows-list .r p { font-size:13.5px; }
    .sol .sol-chips-row { flex-wrap:nowrap; overflow-x:auto; margin:0 -15px; padding:0 15px; scrollbar-width:none; }
    .sol-chips-row span { flex:0 0 auto; font-size:12.5px; }

    /* Calculator: result first */
    .sol-calc { padding:16px; display:flex; flex-direction:column; }
    .sol-calc h3 { font-size:16px; }
    .sol-calc .sol-btn-line { padding:10px; }
    .sol-calc-out { order:-1; margin-bottom:12px; padding:12px 14px; }
    .sol-calc-out b { font-size:26px; }
    .sol-calc > p { font-size:12.5px !important; margin-bottom:12px !important; }
    .sol-calc label { margin-bottom:8px; font-size:13px; }

    /* Plans: the recommended stage comes first */
    .sol-plan { padding:16px; }
    .sol-plan.featured { order:-1; }
    .sol-plan h3 { font-size:18px; }
    .sol-plan p { font-size:13.5px; }

    .sol-quote { padding:16px; }
    .sol-quote blockquote { font-size:13.5px; }
    .sol-tile { padding:16px; }
    .sol-tile p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .sol-list-hero { padding:22px 0; }
    .sol .sol-tile-list { gap:10px; }
    .sol-tile-list .sol-tile { display:grid; grid-template-columns:40px minmax(0,1fr); column-gap:12px; padding:12px; }
    .sol-tile-list .sol-icon { grid-row:1 / span 2; margin:2px 0 0; width:40px; height:40px; }
    .sol-tile-list .sol-tile h3 { font-size:15px; line-height:1.3; margin:0 0 2px; }
    .sol-tile-list .sol-tile p { font-size:12.5px; line-height:1.4; margin:0; }
    .sol-tile-list .more { display:none; }

    /* The theme hides FAQ blocks on phones; these answers matter to buyers, so keep them */
    .sol .faq-area-bg { display:block; }
    .sol .service_faq,.sol-app .sol-mid,.sol-app .sol-final-form { display:none; }
    .sol .faq-area-bg #main > .container { padding:0; }
    .sol .faq-area-bg h2 { font-size:21px; }
    .sol #main #faq .card { border-radius:12px; box-shadow:none; border:1px solid var(--sol-line); }
    .sol #main #faq .card .card-header .btn-header-link { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 14px; font-size:13.5px; line-height:1.35; white-space:normal; border-radius:12px; }
    .sol #main #faq .card .collapse.show,.sol #main #faq .card .collapsing { line-height:1.5; }
    .sol .Faq-body { padding:0 14px 12px !important; font-size:13.5px; }
    .sol-final { padding:24px 0; }
    .sol-final p.t { font-size:14px; }
    .sol-next li { font-size:13.5px; padding-bottom:10px; }
    .sol-next strong { font-size:14.5px; }

    /* Bottom bar and enquiry sheet */
    .sol-app .sol-bar { display:flex; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:9000; background:#fff; border-top:1px solid var(--sol-line); padding:10px 15px calc(10px + env(safe-area-inset-bottom)); }
    .sol-bar-wa { flex:0 0 48px; height:48px; border:1.5px solid #25d366; border-radius:12px; color:#128c4b; font-size:24px; display:flex; align-items:center; justify-content:center; }
    .sol-bar-cta { flex:1; height:48px; border-radius:12px; background:var(--main-color-one); color:#fff; font-size:15px; font-weight:700; display:flex; align-items:center; justify-content:center; }
    .sol-bar-cta:hover,.sol-bar-cta:focus { color:#fff; }
    /* overflow-x:hidden on body stops the section nav sticking; clip does not */
    body.sol-has-bar { padding-bottom:calc(68px + env(safe-area-inset-bottom)); overflow-x:clip; overflow-y:visible; }
    body.sol-has-bar .whatsapp-float { display:none !important; }
    body.sol-has-chat .sol-bar-cta { margin-right:58px; }
    html.sol-lock,html.sol-lock body { overflow:hidden; }
    body.sol-sheet-open #support-agent { display:none !important; }

    .sol-app .sol-shade { display:block; position:fixed; inset:0; z-index:9010; background:rgba(10,17,33,.55); opacity:0; visibility:hidden; transition:opacity .25s,visibility .25s; }
    .sol-sheet-open .sol-app .sol-shade { opacity:1; visibility:visible; }
    .sol-app #sol-estimate { position:fixed; left:0; right:0; bottom:0; z-index:9020; max-height:90vh; max-height:90dvh; overflow-y:auto; overscroll-behavior:contain; box-sizing:border-box; padding:0 16px calc(16px + env(safe-area-inset-bottom)); border-radius:20px 20px 0 0; box-shadow:none; transform:translateY(102%); visibility:hidden; transition:transform .28s ease,visibility .28s; }
    .sol-sheet-open .sol-app #sol-estimate { transform:none; visibility:visible; }
    .sol-app .sol-sheet-top { display:block; position:sticky; top:0; z-index:2; height:36px; margin:0 -16px; background:#fff; }
    .sol-sheet-handle { position:absolute; left:0; right:0; top:0; height:36px; }
    .sol-sheet-handle::before { content:""; position:absolute; left:50%; top:9px; width:40px; height:4px; margin-left:-20px; border-radius:3px; background:#d7deea; }
    .sol-sheet-close { position:absolute; right:6px; top:0; width:44px; height:44px; border:0; background:none; color:var(--sol-text); font-size:26px; line-height:1; }
    #sol-estimate form h2 { padding-right:30px; }
    .sol-field input,.sol-field select,.sol-field textarea { font-size:16px; min-height:44px; }
    .sol-field-pair { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767px) {
    .sol button,.sol a { -webkit-tap-highlight-color:transparent; }
    .sol-bar-cta:active,.sol-hero-cta:active,.sol-tabs button:active,.sol-next-step:active { transform:scale(.97); }
}
@media (max-width:767px) and (prefers-reduced-motion:reduce) {
    .sol-app #sol-estimate,.sol-app .sol-shade { transition:none; }
}
