/* Shared visual system for the reviewed OTS customer journey. */
body.oasis-modern {
  --oasis-ink: #102c3a; --oasis-navy: #0b2533; --oasis-green: #b7ee83;
  --oasis-muted: #52656e; --oasis-line: #dce4e7; --oasis-paper: #f4f7f8;
  --home-navy-deep: #102c3a; --home-green: #247550; --home-green-dark: #18573d;
  color: var(--oasis-ink); background: #fff;
}
.oasis-modern .container { max-width: 1360px; width: calc(100% - 80px); padding-inline: 0; }
.oasis-modern :where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #187a63; outline-offset: 5px; }
.oasis-modern .site-header {
  background: #0b2533 !important; border-bottom: 1px solid #ffffff21;
  box-shadow: none; backdrop-filter: none;
}
.oasis-modern .navbar { min-height: 88px; gap: 22px; }
.oasis-modern .brand-lockup { height: 58px !important; width: auto; }
.oasis-modern .nav-links { gap: 20px; }
.oasis-modern .nav-links > a,.oasis-modern .nav-dropdown__trigger { color: #f2f7f9; font-size: .875rem; font-weight: 550; }
.oasis-modern .header-call { color: #fff; font-size: .875rem; border: 0; padding: 0; }
.oasis-modern .header-cta { background: var(--oasis-green); border-color: var(--oasis-green); color: #123a27; border-radius: 6px; box-shadow: none; padding: 13px 18px; }
.oasis-modern .nav-dropdown__panel { border-radius: 8px; box-shadow: 0 18px 48px #061f3526; }
.oasis-modern .mobile-panel { background: #0b2533; }
.oasis-modern .mobile-panel-nav a { color: #f2f7f9; }
.oasis-modern :where(.btn,.commercial-btn-secondary,.hi-btn-secondary) {
  border-radius: 6px; min-height: 48px; font-size: .9375rem; font-weight: 650;
  box-shadow: none; transition: background .18s, color .18s, border-color .18s;
}
.oasis-modern .btn-primary { background: #247550; border-color: #247550; color: #fff; }
.oasis-modern .btn-primary:hover { background: #18573d; border-color: #18573d; transform: none; }
.oasis-modern :where(h1,h2,h3) { text-wrap: balance; }
.oasis-modern :where(p,li) { text-wrap: pretty; }
.oasis-modern .home-hero {
  background: var(--oasis-navy); padding: 64px 0 76px; color: #fff;
}
.oasis-modern .home-hero::before,.oasis-modern .home-hero::after,.oasis-modern .home-hero__visual::before,.oasis-modern .home-hero__visual::after { display: none; }
.oasis-modern .home-hero__grid { grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: center; }
.oasis-modern .home-hero .home-eyebrow { color: #b7ee83; font-size: .8125rem; letter-spacing: .13em; margin-bottom: 26px; }
.oasis-modern .home-hero h1 { color: #fff; font-size: clamp(3.2rem,5.15vw,5rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 650; max-width: 12ch; margin-bottom: 28px; }
.oasis-modern .home-hero__lead { color: #c0d0d7; font-size: 1.0625rem; line-height: 1.8; max-width: 50ch; }
.oasis-modern .home-hero__actions { gap: 12px; margin-top: 28px; flex-wrap: wrap; }
.oasis-modern .home-hero__actions .btn { padding: 16px 20px; font-size: .875rem; }
.oasis-modern .home-hero__actions .btn-primary { background: #b7ee83; border-color: #b7ee83; color: #173828; }
.oasis-modern .home-hero__actions .btn-primary:hover { background: #cff5ac; }
.oasis-modern .home-hero__actions .btn-ghost { border: 1px solid #67818c; color: #fff; background: transparent; }
.oasis-modern .home-hero__actions .btn-ghost:hover { background: #ffffff12; }
.oasis-modern .home-hero__phone { color: #dce8ed; font-size: .9375rem; font-weight: 500; margin-top: 22px; }
.oasis-modern .home-trust-list { margin-top: 30px; gap: 10px 20px; color: #bbccd4; font-size: .8125rem; font-weight: 500; }
.oasis-modern .home-trust-list li::before { background: #b7ee83; width: 4px; height: 4px; }
.oasis-modern .home-explore-link { display: inline-block; margin-top: 20px; color: #b7ee83; font-size: .875rem; text-decoration: underline; text-underline-offset: 5px; }
.oasis-modern .home-hero__visual { min-height: 540px; padding: 0 32px 48px 0; }
.oasis-modern .home-hero__primary-image { width: 100%; border-radius: 4px 72px 4px 4px; box-shadow: none; aspect-ratio: 4/4.7; min-height: 0; }
.oasis-modern .home-hero__primary-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.oasis-modern .home-hero__primary-image::after { background: linear-gradient(transparent 70%,#071e35c9); }
.oasis-modern .home-hero__primary-image figcaption { left: 24px; bottom: 24px; padding: 0; border: 0; border-radius: 0; background: none; color: #fff; font-size: .875rem; text-transform: none; letter-spacing: 0; }
.oasis-modern .home-hero__secondary-image { width: 43%; right: 0; bottom: 0; border: 6px solid #0b2533; border-radius: 8px; box-shadow: none; }
.oasis-modern .home-hero__secondary-image figcaption { background: #153e45; font-size: .75rem; text-transform: none; padding: 12px; }
.oasis-modern .home-proof-strip { background: #b7ee83; color: #153b2a; border: 0; }
.oasis-modern .home-proof-strip__grid { padding: 0; }
.oasis-modern .home-proof-strip__grid > div { border-color: #19463230; padding: 26px 28px; }
.oasis-modern .home-proof-strip strong { color: #133b29; font-size: 1.125rem; font-weight: 650; }
.oasis-modern .home-proof-strip span { color: #244b37; font-size: .8125rem; }
.oasis-modern .home-section { padding: 96px 0; }
.oasis-modern .home-section-heading { max-width: 820px; }
.oasis-modern :where(.home-section-heading h2,.home-trust h2,.home-commercial-proof h2,.home-areas h2,.home-closing h2) { font-size: clamp(2rem,3.8vw,3.4rem); font-weight: 600; line-height: 1.12; letter-spacing: -.045em; }
.oasis-modern .home-eyebrow { color: #247550; font-size: .8125rem; letter-spacing: .1em; font-weight: 650; }
.oasis-modern .home-audience-grid { gap: 32px; grid-template-columns: 1.2fr 1fr; align-items: start; }
.oasis-modern .home-audience-card { border: 0; border-radius: 0; box-shadow: none; background: none; overflow: visible; }
.oasis-modern .home-audience-card__media { border-radius: 8px; overflow: hidden; aspect-ratio: 1.65; }
.oasis-modern .home-audience-card__body { padding: 28px 0 0; }
.oasis-modern .home-audience-card--commercial { border-top: 0; }
.oasis-modern .home-audience-card--residential { padding-top: 64px; border-top: 0; }
.oasis-modern .home-audience-card h3 { font-size: 1.8rem; letter-spacing: -.025em; font-weight: 600; }
.oasis-modern .home-audience-card__label { font-size: .75rem; color: #52656e; }
.oasis-modern .home-service-links a { border-radius: 4px; background: #f4f7f8; color: #254953; border-color: #e2e9ec; font-size: .8125rem; }
.oasis-modern .home-btn-commercial { border-radius: 6px; background: #247550; }
.oasis-modern .home-trust { background: #f4f7f8; border: 0; }
.oasis-modern .home-trust__cards { gap: 32px; }
.oasis-modern .home-trust__cards article { border: 0; border-left: 1px solid #ccd9dd; padding: 8px 0 8px 24px; background: none; border-radius: 0; box-shadow: none; }
.oasis-modern .home-trust__cards h3 { font-size: 1.25rem; }
/* Light sections need an explicit text palette; the legacy proof block used white text. */
.oasis-modern .home-commercial-proof { background: #fff; color: var(--oasis-ink); }
.oasis-modern .home-commercial-proof h2 { color: var(--oasis-ink); }
.oasis-modern .home-commercial-proof__content > p { color: var(--oasis-muted); }
.oasis-modern .home-commercial-proof .home-eyebrow { color: #247550; }
.oasis-modern .home-commercial-proof .home-check-list li { color: var(--oasis-ink); }
.oasis-modern .home-commercial-proof .home-check-list li::before { color: #247550; }
.oasis-modern .home-commercial-proof .home-case-links a { color: #18573d; }
.oasis-modern .home-commercial-proof__media { border-radius: 8px; box-shadow: none; }
.oasis-modern .home-work { background: #f4f7f8; }
.oasis-modern .home-work-card { border-radius: 6px; box-shadow: none; }
.oasis-modern .home-work-card img { transition: transform .5s; }
.oasis-modern .home-services { background: #fff; }
.oasis-modern :where(.home-service-card,.home-industry-card,.home-process-card,.home-area-card) { border-radius: 6px; box-shadow: none; }
.oasis-modern .home-process-card { background: #fff; border: 1px solid #dce4e7; }
.oasis-modern .home-closing { background: #0b2533; }
.oasis-modern .home-closing h2 { color: #fff; }
.oasis-modern .home-closing .home-eyebrow { color: #b7ee83; }
.oasis-modern .site-footer { background: #081e2a; }
/* The explorer has complete linked content before JavaScript or WebGL loads. */
.property-explorer { background: #0b2533; color: #fff; padding: 90px 0; }
.property-explorer__heading { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 38px; }
.property-explorer .home-eyebrow { color: #b7ee83; }
.property-explorer h2 { font-size: clamp(2rem,3.8vw,3.5rem); color: #fff; font-weight: 550; line-height: 1.1; letter-spacing: -.04em; margin: 0; max-width: 16ch; }
.property-explorer__heading > p { color: #bbced7; max-width: 37ch; font-size: 1rem; line-height: 1.75; margin: 0; }
.property-explorer__layout { display: grid; grid-template-columns: 1.45fr 1fr; min-height: 500px; border: 1px solid #35525e; border-radius: 10px; overflow: hidden; }
.property-explorer__stage { position: relative; min-width: 0; background: #e6eef0; overflow: hidden; }
.property-explorer__poster { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.property-explorer__stage::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,#0b2533d9); pointer-events: none; }
.property-explorer__stage[data-ready]::after { display: none; }
.property-explorer__canvas { position: absolute; inset: 0; }
.property-explorer__canvas canvas { width: 100%; height: 100%; display: block; touch-action: pan-y; }
.property-explorer__start { position: absolute; left: 28px; bottom: 54px; z-index: 2; background: #fff; color: #123a32; border: 0; border-radius: 6px; padding: 16px 22px; cursor: pointer; font-weight: 650; min-height: 48px; }
.property-explorer__start:hover { background: #b7ee83; }
.property-explorer__start:disabled { opacity: .8; cursor: wait; }
.property-explorer__caption { position: absolute; bottom: 20px; left: 28px; right: 24px; z-index: 2; color: #eaf0f3; font-size: .75rem; margin: 0; }
.property-explorer__stage[data-ready] .property-explorer__caption { color: #345462; }
.property-explorer__panel { padding: 34px; background: #112f3d; }
.property-explorer__switch { display: flex; padding: 4px; border: 1px solid #45616e; border-radius: 6px; margin-bottom: 28px; gap: 4px; }
.property-explorer__switch button { flex: 1; background: transparent; color: #cddce2; border: 0; border-radius: 3px; padding: 12px; font-size: .875rem; cursor: pointer; min-height: 46px; }
.property-explorer__switch button[aria-pressed='true'] { background: #b7ee83; color: #173b29; font-weight: 650; }
.property-explorer__list { margin: 0; padding: 0; list-style: none; }
.property-explorer__list li { border-bottom: 1px solid #36515e; }
.property-explorer__list a { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #e9f0f4; text-decoration: none; padding: 16px 0; font-size: 1rem; }
.property-explorer__list a::after { content: '↗'; color: #b7ee83; font-size: 1.2rem; }
.property-explorer__list a:hover,.property-explorer__list a:focus-visible { color: #b7ee83; }
.property-explorer__hint { color: #bacdd7; font-size: .8125rem; line-height: 1.6; margin: 22px 0 0; }
.property-explorer__hint a { color: #b7ee83; text-underline-offset: 4px; }
.property-explorer__controls { display: flex; gap: 8px; position: absolute; top: 20px; right: 20px; z-index: 2; }
.property-explorer__controls button { min-width: 44px; min-height: 44px; border: 1px solid #c1d1d7; border-radius: 4px; background: #fff; color: #163c49; cursor: pointer; }
.property-explorer [hidden] { display: none !important; }
/* Shared landing, gallery and intake treatment; existing form contracts stay intact. */
.oasis-modern :is(.commercial-hero,.hi-hero,.quote-hero,.project-hero,.contact-hero) { background: #0b2533; color: #fff; }
.oasis-modern :is(.commercial-hero,.hi-hero,.quote-hero,.project-hero,.contact-hero)::after { display: none; }
.oasis-modern :is(.commercial-hero,.hi-hero,.quote-hero,.project-hero,.contact-hero) h1 { color: #fff; font-weight: 600; line-height: 1.08; letter-spacing: -.045em; }
.oasis-modern :is(.commercial-hero,.hi-hero,.quote-hero,.project-hero,.contact-hero) :is(.lead,.commercial-hero__lead,.hi-hero__lead) { color: #c2d3db; }
.oasis-modern :is(.commercial-hero,.hi-hero,.quote-hero,.project-hero,.contact-hero) :is(.kicker,.hi-eyebrow,.commercial-eyebrow) { color: #b7ee83; }
.oasis-modern :is(.commercial-hero,.hi-hero,.quote-hero,.project-hero,.contact-hero) .btn-primary { background: #b7ee83; color: #143b2a; border-color: #b7ee83; }
.oasis-modern :is(.commercial-hero__media,.hi-hero__media) { border-radius: 6px 60px 6px 6px; box-shadow: none; border: 0; }
.oasis-modern :is(.commercial-model-card,.commercial-priority-card,.hi-service-card,.hi-process-card,.commercial-process-card) { border-radius: 6px; box-shadow: none; }
.oasis-modern :is(.commercial-section,.hi-section) { padding-top: 88px; padding-bottom: 88px; }
.oasis-modern :is(.commercial-section,.hi-section) h2 { font-weight: 600; letter-spacing: -.035em; }
.oasis-modern :is(.commercial-proof,.hi-proof) { background: #edf5ed; color: var(--oasis-ink); }
.oasis-modern :is(.commercial-proof,.hi-proof) strong { color: var(--oasis-ink); }
.oasis-modern :is(.commercial-proof,.hi-proof) span { color: var(--oasis-muted); }
.oasis-modern :is(.short-form-card,.quote-next-card,.quote-sidebar-card,.project-intake-guide,.contact-card) { border-radius: 8px; box-shadow: none; }
.oasis-modern :is(input,select,textarea) { border-radius: 5px; }
.oasis-modern :is(.quote-mode-links a,.trust-pill) { border-radius: 5px; }
.oasis-modern .quote-hero .trust-pill { color: #d5e5ec; background: #ffffff0a; border-color: #44606d; }
.oasis-modern .sticky-cta-bar .btn { border-radius: 6px; }
.oasis-modern .navbar .header-cta { background: #b7ee83; border-color: #b7ee83; color: #143b2a; }
.oasis-modern :is(.home-service-card-grid,.home-industry-grid,.home-area-links) a { border-radius: 4px; box-shadow: none; }
.oasis-modern .home-process-grid > article { border-radius: 6px; box-shadow: none; background: #fff; border: 1px solid #dce4e7; }
.oasis-modern :is(.services-hero,.case-hero) { background: #0b2533; color: #fff; padding: 72px 0; }
.oasis-modern :is(.services-hero,.case-hero)::before,.oasis-modern :is(.services-hero,.case-hero)::after { display: none; }
.oasis-modern :is(.services-hero,.case-hero) h1 { color: #fff; font-size: clamp(2.7rem,4.6vw,4.7rem); line-height: 1.07; font-weight: 600; letter-spacing: -.045em; }
.oasis-modern :is(.services-hero__lead,.case-hero__lead) { color: #c2d3db; }
.oasis-modern :is(.services-hero,.case-hero) :is(.services-eyebrow,.case-eyebrow,.kicker) { color: #b7ee83; }
.oasis-modern :is(.services-hero,.case-hero) .btn-primary { background: #b7ee83; color: #143b2a; border-color: #b7ee83; }
.oasis-modern :is(.services-hero,.case-hero) .btn-ghost { background: transparent; color: #fff; border-color: #7d929b; }
.oasis-modern :is(.residential-work-card,.case-archive-card,.service-card,.service-path-card,.featured-case) { border-radius: 6px; box-shadow: none; }
.oasis-modern .quote-hero .quote-next-card { background: #153746; border: 1px solid #49626d; }
.oasis-modern .quote-hero .quote-next-card h2 { color: #fff; }
.oasis-modern .quote-next-card :is(p,li,span) { color: #d0dfe5; }
.oasis-modern .quote-next-card a:not(.btn) { color: #b7ee83; }
.oasis-modern .quote-hero .quote-mode-links a { background: #173b4a; border-color: #49626d; color: #fff; }
.oasis-modern .quote-hero .quote-mode-links a :is(span,strong) { color: #e2edf2; }
.oasis-modern .quote-hero .quote-mode-links a[aria-current] { border-color: #b7ee83; }
.oasis-modern :is(.hi-hero,.commercial-hero) :is(.hi-text-link,.commercial-text-link,.hi-btn-secondary,.commercial-btn-secondary) { color: #e2edf2; border-color: #718993; }
.oasis-modern :is(.hi-trust-list,.commercial-trust-list,.project-hero__facts,.contact-hero__facts) { color: #d0e0e6; }
.oasis-modern .hi-hero__media figcaption { background: #163e47; color: #fff; }
.oasis-modern :is(.commercial-hero,.hi-hero) { padding: 64px 0 72px; }
.oasis-modern :is(.commercial-hero,.hi-hero) h1 { font-size: clamp(2.65rem,4.8vw,4.2rem); max-width: 17ch; }
.oasis-modern :is(.commercial-hero__grid,.hi-hero__grid) { gap: 52px; align-items: center; }
.oasis-modern :is(.hi-hero,.commercial-hero) :is(.hi-btn-secondary,.commercial-btn-secondary) { background: transparent; border: 1px solid #718993; }
.oasis-modern.quote-page .quote-hero { padding: 40px 0; }
.oasis-modern.quote-page .quote-hero h1 { font-size: clamp(2rem,3.1vw,3.4rem); max-width: 23ch; }
.oasis-modern.quote-page .quote-next-card { padding: 26px; }
.oasis-modern.quote-page .quote-next-card h2 { font-size: 1.7rem; }
.oasis-modern.quote-page .quote-next-card__steps { gap: 14px; font-size: .9375rem; }
.oasis-modern.quote-page .quote-next-card__step-num { color: #153e2c; }
@media (min-width: 981px) and (max-width: 1320px) {
  .oasis-modern .nav-links { gap: 14px; }
  .oasis-modern .nav-links > a,.oasis-modern .nav-dropdown__trigger { font-size: .8125rem; }
  .oasis-modern .header-call { display: none !important; }
  .oasis-modern .navbar .header-cta { margin-left: auto; }
  .oasis-modern .home-hero__grid { gap: 36px; }
}
@media (max-width: 980px) {
  .oasis-modern .container { width: calc(100% - 48px); }
  .oasis-modern .navbar { min-height: 76px; }
  .oasis-modern .home-hero { padding: 48px 0 56px; }
  .oasis-modern .home-hero__grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .oasis-modern .home-hero h1 { font-size: clamp(2.75rem,5.6vw,4rem); }
  .oasis-modern .home-hero__visual { min-height: 400px; padding: 0 0 32px; }
  .oasis-modern .home-hero__primary-image { aspect-ratio: 3/4; }
  .oasis-modern .home-hero__secondary-image { width: 53%; right: -12px; }
  .oasis-modern .home-hero__actions .btn { width: 100%; }
  .oasis-modern .home-section { padding: 64px 0; }
  .property-explorer__panel { padding: 24px; }
  .property-explorer__layout { grid-template-columns: 1.1fr 1fr; }
}
@media (max-width: 680px) {
  .oasis-modern .container { width: calc(100% - 40px); }
  .oasis-modern .navbar { min-height: 72px; }
  .oasis-modern .brand-lockup { height: 48px !important; }
  .oasis-modern .home-hero { padding: 34px 0 40px; }
  .oasis-modern .home-hero__grid { grid-template-columns: 1fr; gap: 32px; }
  .oasis-modern .home-hero .home-eyebrow { font-size: .75rem; margin-bottom: 22px; line-height: 1.7; }
  .oasis-modern .home-hero h1 { max-width: 13ch; font-size: clamp(2.75rem,10.5vw,4.25rem); letter-spacing: -.045em; margin-bottom: 22px; }
  .oasis-modern .home-hero__lead { font-size: 1rem; line-height: 1.75; }
  .oasis-modern .home-hero__actions { margin-top: 22px; gap: 10px; }
  .oasis-modern .home-hero__actions .btn { padding: 15px 12px; min-height: 52px; }
  .oasis-modern .home-trust-list { margin-top: 22px; font-size: .75rem; gap: 10px 15px; }
  .oasis-modern .home-hero__visual { min-height: 0; padding: 0; }
  .oasis-modern .home-hero__primary-image { aspect-ratio: 1.4; border-radius: 4px 42px 4px 4px; }
  .oasis-modern .home-hero__secondary-image { display: none; }
  .oasis-modern .home-proof-strip__grid { grid-template-columns: repeat(2,1fr); }
  .oasis-modern .home-proof-strip__grid > div { padding: 20px 12px; }
  .oasis-modern .home-proof-strip strong { font-size: 1rem; }
  .oasis-modern .home-proof-strip span { font-size: .75rem; }
  .oasis-modern .home-audience-grid { grid-template-columns: 1fr; gap: 40px; }
  .oasis-modern .home-audience-card--residential { padding-top: 0; }
  .oasis-modern .home-audience-card h3 { font-size: 1.65rem; }
  .oasis-modern .home-trust__cards { grid-template-columns: 1fr; gap: 28px; }
  .oasis-modern .home-trust__cards article { padding: 0 0 0 20px; }
  .property-explorer { padding: 60px 0; }
  .property-explorer__heading { display: block; margin-bottom: 28px; }
  .property-explorer__heading > p { margin-top: 18px; }
  .property-explorer__layout { grid-template-columns: 1fr; }
  .property-explorer__stage { min-height: 330px; }
  .property-explorer__panel { padding: 24px; }
  .property-explorer__start { left: 20px; bottom: 58px; font-size: .875rem; }
  .property-explorer__caption { left: 20px; }
  .oasis-modern :is(.commercial-section,.hi-section) { padding-top: 56px; padding-bottom: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .oasis-modern *, .oasis-modern *::before, .oasis-modern *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
