/* Shared fixes and editorial layouts verified across the public route inventory. */
body .site-header .header-cta { background:#247550; border-color:#247550; color:#fff; box-shadow:none; }
body.oasis-modern .site-header .header-cta { background:#b7ee83; border-color:#b7ee83; color:#143b2a; }
body .mobile-panel .mobile-panel-call { color:#fff; border-color:#8aa4b1; background:#153746; }
body .site-footer .small.mb-0, body .site-footer .footer-standards-copy { color:#c0d0dc; }
body .site-footer .footer-standards-label { color:#e0e9ef; }
body .site-footer a:focus-visible, body .mobile-panel a:focus-visible { outline:3px solid #b7ee83; outline-offset:4px; }
body :is(.hi-why,.flooring-why,.kitchen-why) { background:#0b2533; color:#fff; }
body :is(.hi-why,.flooring-why,.kitchen-why) :is(h2,h3) { color:#fff; }
body :is(.hi-why,.flooring-why,.kitchen-why) p { color:#d5e2e8; }
body :is(.hi-why,.flooring-why,.kitchen-why) .hi-eyebrow { color:#b7ee83; }
body .jan-section--navy .jan-heading h2 { color:#fff; }
body .jan-section--navy .jan-heading > p, body .jan-section--navy .jan-heading > div > p:not(.jan-eyebrow) { color:#c6d9e5; }
body .jan-section--navy .jan-heading .jan-eyebrow { color:#b7ee83; }
body .property-explorer__controls button { color:#163c49; background:#fff; }
body .property-explorer__caption { color:#fff; background:#0b2533e8; padding:7px 10px; border-radius:4px; width:fit-content; }
body .property-explorer__stage[data-ready] .property-explorer__caption { background:#edf3f5; color:#244b5a; }
body .home-commercial-proof__media figcaption { background:#0b2533; color:#fff; padding:14px 18px; }
body .home-commercial-proof__media figcaption span { color:#fff; }
body .review-empty { color:#536777; }
body .ots-upload-more { border:1px solid #cbd7dd; border-radius:6px; padding:16px; margin-top:16px; }
body .ots-upload-more summary { color:#183c4d; font-weight:700; cursor:pointer; min-height:32px; }
body .ots-upload-more .field { margin-top:16px; }
/* Keep the desktop header within laptop widths; mobile controls take over at 980px. */
@media (min-width:981px) and (max-width:1360px) {
 body .site-header .navbar { gap:12px; }
 body .site-header .nav-links { gap:12px; }
 body .site-header .nav-links>a,body .site-header .nav-dropdown__trigger { font-size:.82rem; }
 body .site-header .header-call { display:none; }
 body .site-header .header-cta { padding:11px 14px; font-size:.85rem; }
}
body.ots-review { --ots-ink:#102c3a; --ots-muted:#49636e; --ots-green:#247550; color:var(--ots-ink); }
.ots-review .container { max-width:1240px; width:calc(100% - 80px); }
.ots-review :is(h1,h2,h3) { color:var(--ots-ink); letter-spacing:-.035em; font-weight:650; line-height:1.15; }
.ots-review p { line-height:1.75; }
.ots-review .ots-kicker { color:#247550; font-size:.77rem; line-height:1.5; font-weight:750; letter-spacing:.12em; text-transform:uppercase; margin:0 0 18px; }
.ots-hero { padding:64px 0 74px; color:#fff; background:#0b2533; }
.ots-review .ots-hero h1 { color:#fff; font-size:clamp(2.5rem,4.6vw,4.7rem); max-width:20ch; margin:0 0 26px; }
.ots-review .ots-hero .ots-kicker { color:#b7ee83; }
.ots-review .ots-hero .ots-lead { color:#c9dae2; max-width:64ch; }
.ots-lead { font-size:1.13rem; line-height:1.75; color:#49636e; }
.ots-hero .actions { margin-top:30px; }
.ots-review :is(.ots-hero,.ots-close) .btn-primary { background:#b7ee83; color:#173b29; border-color:#b7ee83; }
.ots-review :is(.ots-hero,.ots-close) .btn-ghost { background:transparent; color:#fff; border-color:#7b949f; }
.ots-review .ots-hero-note { font-size:.85rem; color:#c2d5df; margin-top:24px; max-width:53ch; }
.ots-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; font-size:.8rem; margin-bottom:34px; color:#b8ccd5; }
.ots-breadcrumb a { color:#c7dde6; }
.ots-section { padding:80px 0; }
.ots-tint { background:#f1f5f6; }
.ots-heading { max-width:850px; margin-bottom:38px; }
.ots-review .ots-heading h2 { font-size:clamp(1.95rem,3.3vw,3rem); margin:0; }
.ots-split { display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center; }
.ots-hero .ots-split { grid-template-columns:1fr 1.03fr; }
.ots-example-note { margin-top:30px; border-left:4px solid #247550; background:#edf5ed; padding:23px 28px; color:#224339; }
.ots-example-note strong { font-size:1.05rem; }
.ots-example-note p { margin:6px 0 0; max-width:105ch; }
.ots-list { padding-left:22px; margin:0; color:#36525e; font-size:1.05rem; line-height:1.7; }
.ots-list li+li { margin-top:16px; }
.ots-brief { padding:30px; border:1px solid #c9d8dd; border-radius:8px; background:#fff; }
.ots-review .ots-brief h3 { font-size:1.35rem; margin:0 0 24px; }
.ots-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.ots-card { padding:30px; border:1px solid #d6e2e6; border-radius:8px; background:#fff; display:flex; flex-direction:column; align-items:flex-start; }
.ots-review .ots-card h3 { font-size:1.4rem; margin:0 0 18px; }
.ots-card h3 a { color:#102c3a; text-decoration:none; }
.ots-card h3 a:hover { text-decoration:underline; }
.ots-card p:not(.ots-kicker) { color:#49636e; font-size:.95rem; }
.ots-review .ots-link { color:#18573d; font-weight:700; text-underline-offset:5px; margin-top:auto; line-height:1.6; }
.ots-card .ots-link { padding-top:10px; font-size:.87rem; }
.ots-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; list-style:none; margin:0; padding:0; }
.ots-steps li { border-top:1px solid #aebfc6; padding-top:24px; }
.ots-steps li>span,.ots-number { color:#247550; font-size:.85rem; font-weight:750; display:block; margin-bottom:20px; }
.ots-review .ots-steps h3 { font-size:1.35rem; }
.ots-steps p { color:#49636e; }
.ots-prose { max-width:85ch; font-size:1.05rem; color:#36525e; }
.ots-inline-links { display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:25px; }
.ots-inline-links a { color:#18573d; text-underline-offset:4px; font-weight:650; }
.ots-hero-photo { margin:0; overflow:hidden; border-radius:6px 60px 6px 6px; }
.ots-hero-photo img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.ots-hero-photo figcaption { background:#163c49; color:#d9e7ec; font-size:.8rem; padding:15px 20px; }
.ots-editorial-photo { max-width:880px; margin:42px 0 0; }
.ots-editorial-photo img { width:100%; height:auto; border-radius:6px; display:block; max-height:500px; object-fit:cover; }
.ots-editorial-photo figcaption { color:#49636e; padding-top:12px; font-size:.82rem; line-height:1.6; }
.ots-close { padding:70px 0; background:#0b2533; color:#d3e1e8; }
.ots-review .ots-close h2 { color:#fff; font-size:clamp(2rem,3.7vw,3rem); }
.ots-review .ots-close .ots-kicker { color:#b7ee83; }
.ots-close .actions { justify-content:flex-end; }
.ots-close p { max-width:58ch; }
.ots-portal-demo { min-width:0; margin:0; background:#fff; border:1px solid #cbdbe3; border-radius:10px; overflow:hidden; box-shadow:0 20px 65px #00000015; color:#183c4d; }
.ots-portal-demo>figcaption { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; padding:18px 22px; background:#e9f0f4; border-bottom:1px solid #d2dfe6; color:#183c4d; }
.ots-portal-demo>figcaption strong { font-size:.9rem; }
.ots-portal-demo>figcaption>span { font-size:.71rem; color:#456474; }
.ots-demo-body { padding:26px; }
.ots-review .ots-demo-body .ots-kicker { color:#4c6572; font-size:.66rem; margin-bottom:10px; }
.ots-review .ots-demo-body :is(h2,h3) { color:#173a4c; font-size:1.3rem; margin:0 0 24px; }
.ots-demo-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:22px; }
.ots-demo-stats>div { padding:16px 12px; background:#f2f6f8; border:1px solid #d9e4e8; border-radius:6px; }
.ots-demo-stats strong { display:block; font-size:1.7rem; line-height:1.1; color:#173a4c; }
.ots-demo-stats span { display:block; font-size:.72rem; line-height:1.5; color:#4d6571; margin-top:8px; }
.ots-demo-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:17px 0; border-bottom:1px solid #dde7ec; }
.ots-demo-row>div { min-width:0; }
.ots-demo-row strong { display:block; font-size:.84rem; color:#234958; }
.ots-demo-row>div>span { display:block; color:#506d7c; font-size:.74rem; margin-top:5px; }
.ots-status { background:#e8f0fc; color:#265180; border:1px solid #c9d9f0; font-size:.69rem; font-weight:700; padding:5px 9px; border-radius:5px; white-space:nowrap; }
.ots-status-done { background:#e9f4ed; color:#28603e; border-color:#c9e2d2; }
.ots-review .ots-demo-note,.ots-note { font-size:.81rem; color:#49636e; line-height:1.65; margin:20px 0 0; }
.ots-faq { max-width:940px; }
.ots-faq details { border-bottom:1px solid #cddde3; padding:18px 0; }
.ots-faq summary { cursor:pointer; color:#173b4c; font-size:1.1rem; font-weight:650; min-height:32px; }
.ots-faq p { color:#49636e; max-width:83ch; padding:4px 22px 0; }
@media(max-width:980px){
 .ots-review .container { width:calc(100% - 40px); }
 .ots-split,.ots-hero .ots-split { grid-template-columns:1fr; gap:32px; }
 .ots-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ots-hero-photo img { aspect-ratio:1.65; }
 .ots-close .actions { justify-content:flex-start; }
 .ots-hero { padding:44px 0 54px; }
 .ots-section { padding:55px 0; }
}
@media(max-width:600px){
 .ots-review .container { width:calc(100% - 32px); }
 .ots-cards,.ots-steps { grid-template-columns:1fr; }
 .ots-review .ots-hero h1 { font-size:2.6rem; }
 .ots-card,.ots-brief { padding:25px; }
 .ots-demo-body { padding:18px; }
 .ots-demo-stats { gap:7px; }
 .ots-demo-stats>div { padding:13px 8px; }
 .ots-demo-row { gap:8px; }
 .ots-demo-row strong { font-size:.78rem; }
 .ots-status { padding:5px 7px; font-size:.64rem; }
 .ots-example-note { padding:20px; }
 .ots-review .ots-hero .btn,.ots-review .ots-close .btn { width:100%; }
 .ots-review .ots-hero .actions,.ots-review .ots-close .actions { width:100%; }
 .ots-heading { margin-bottom:28px; }
}
/* Explicit surface ownership beats legacy page-level white section selectors. */
body :is(.hi-section.hi-why,.hi-section.flooring-why,.hi-section.kitchen-why) { background:#0b2533; color:#fff; }
body.ots-review .site-footer h3 { color:#fff; letter-spacing:0; }
body .home-skip-link { position:fixed; top:0; left:16px; z-index:12000; transform:translateY(-150%); background:#fff; color:#12394c; padding:14px 20px; border:2px solid #247550; border-radius:0 0 6px 6px; }
body .home-skip-link:focus { transform:translateY(0); }
body .industry-all-link { color:#d3e4f1; text-decoration:underline; text-underline-offset:4px; }
body .industry-all-link { color:#18573d; background:#edf5ed; padding:6px 10px; border-radius:4px; display:inline-flex; line-height:1.5; }
body .renovation-cta-shell .btn.btn-ghost { color:#fff; background:transparent; border-color:#8ba5b2; }
