/* OH2STAY — Global App-Shell CSS
   Dark glass theme for ALL pages */

/* 1. Dark background all app pages */
body.o2s-app-page,body{background:#07101f!important;color:#e8eaf0;}
.o2s-page-app{min-height:calc(100vh - 64px);padding-bottom:80px;}

/* 2. Page hero */
.o2s-page-hero{background:linear-gradient(160deg,rgba(10,37,87,.92) 0%,rgba(7,16,31,.95) 100%);padding:20px 16px 18px;border-bottom:1px solid rgba(255,255,255,.07);}
.o2s-page-hero__title,.o2s-page-hero h1,.o2s-page-hero h2,.o2s-page-hero .page-title{color:#fff!important;font-size:1.3rem!important;font-weight:800!important;margin:4px 0 2px!important;text-shadow:0 2px 8px rgba(0,0,0,.4);}
.o2s-page-hero p,.o2s-page-hero__sub,.o2s-page-hero .archive-description p{color:rgba(255,255,255,.7)!important;font-size:.8rem!important;margin:0!important;}
.o2s-page-back{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:rgba(255,255,255,.6)!important;text-decoration:none!important;margin-bottom:8px;}
.o2s-page-back:hover{color:#fff!important;}

/* 3. Content sections */
.o2s-section{background:transparent!important;padding:14px 12px 20px!important;}
.o2s-container{background:transparent!important;}

/* 4. Blog cards — dark glass */
.o2s-blog-card{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.11)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border-radius:14px!important;overflow:hidden!important;transition:transform .2s,box-shadow .2s;}
.o2s-blog-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.4);}
.o2s-blog-card__thumb img{width:100%!important;height:120px!important;object-fit:cover!important;display:block!important;}
.o2s-blog-card__body{padding:12px!important;background:transparent!important;}
.o2s-blog-card__cat{font-size:.68rem!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:var(--app-accent,#ff4d8f)!important;margin-bottom:4px!important;}
.o2s-blog-card__title{font-size:.85rem!important;font-weight:700!important;line-height:1.35!important;margin:0 0 6px!important;}
.o2s-blog-card__title a{color:#fff!important;text-decoration:none!important;}
.o2s-blog-card__title a:hover{color:var(--app-accent,#ff4d8f)!important;}
.o2s-blog-card__meta{font-size:.7rem!important;color:rgba(255,255,255,.45)!important;margin-bottom:6px!important;}
.o2s-blog-card__excerpt,.o2s-blog-card__excerpt p{font-size:.78rem!important;color:rgba(255,255,255,.7)!important;line-height:1.55!important;margin:0 0 8px!important;}
.o2s-blog-card__more{display:inline-block!important;font-size:.72rem!important;font-weight:700!important;color:var(--app-accent,#ff4d8f)!important;text-decoration:none!important;}

/* 5. Entry / page content */
.o2s-section .entry-content,.o2s-post-content,.o2s-page-content{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.1)!important;backdrop-filter:blur(10px);border-radius:16px!important;padding:20px!important;color:rgba(255,255,255,.88)!important;}
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5{color:#fff!important;margin:1.2em 0 .5em!important;}
.entry-content p,.entry-content li{color:rgba(255,255,255,.82)!important;line-height:1.75!important;}
.entry-content a{color:var(--app-accent,#ff4d8f)!important;}
.entry-content strong,.entry-content b{color:#fff!important;}
.entry-content blockquote{border-left:3px solid var(--app-accent,#ff4d8f)!important;background:rgba(255,255,255,.06)!important;border-radius:0 10px 10px 0!important;padding:10px 16px!important;margin:12px 0!important;color:rgba(255,255,255,.8)!important;font-style:italic!important;}
.entry-content img{border-radius:10px!important;max-width:100%!important;}
.entry-content th{background:rgba(255,255,255,.1)!important;color:#fff!important;padding:8px!important;border:1px solid rgba(255,255,255,.12)!important;}
.entry-content td{color:rgba(255,255,255,.8)!important;padding:8px!important;border:1px solid rgba(255,255,255,.07)!important;}
.entry-title,.o2s-single-title,.o2s-page-title{color:#fff!important;font-size:1.2rem!important;font-weight:800!important;}
.o2s-post-meta,.post-meta,.entry-meta{color:rgba(255,255,255,.48)!important;font-size:.72rem!important;}

/* 6. 404 page */
.o2s-404-wrap{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 130px);padding:20px;}
.o2s-404-card{background:rgba(255,255,255,.06);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.13);border-radius:22px;padding:40px 28px;text-align:center;color:#fff;max-width:340px;width:100%;}
.o2s-404-emoji{font-size:3rem;margin-bottom:12px;line-height:1;}
.o2s-404-code{font-size:5rem;font-weight:900;margin:0;line-height:1;letter-spacing:-4px;color:#fff;}
.o2s-404-code span{color:var(--app-accent,#ff4d8f);}
.o2s-404-msg{color:rgba(255,255,255,.62);font-size:.88rem;margin:10px 0 24px;line-height:1.5;}
.o2s-404-home{display:inline-block;background:var(--app-accent,#ff4d8f);color:#fff!important;padding:12px 28px;border-radius:28px;text-decoration:none!important;font-size:.85rem;font-weight:700;box-shadow:0 4px 16px rgba(255,77,143,.35);}
.o2s-404-search{margin-top:20px;}
.o2s-404-search input[type=search]{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:10px;padding:10px 14px;font-size:.85rem;outline:none;box-sizing:border-box;}
.o2s-404-search input::placeholder{color:rgba(255,255,255,.4);}

/* 7. WooCommerce glass */
.woocommerce,.woocommerce-page{color:#e0e4f0;}
.woocommerce h1,.woocommerce h2,.woocommerce h3,.woocommerce-page h1,.woocommerce-page h2,.woocommerce-page h3{color:#fff!important;}
.woocommerce p,.woocommerce-page p{color:rgba(255,255,255,.8)!important;}
.woocommerce-MyAccount-navigation{background:rgba(255,255,255,.06)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:14px!important;padding:10px!important;margin:0 12px 14px!important;}
.woocommerce-MyAccount-navigation ul{list-style:none!important;margin:0!important;padding:0!important;}
.woocommerce-MyAccount-navigation li{border-bottom:1px solid rgba(255,255,255,.07)!important;}
.woocommerce-MyAccount-navigation li:last-child{border-bottom:none!important;}
.woocommerce-MyAccount-navigation li a{color:rgba(255,255,255,.78)!important;display:block!important;padding:10px 12px!important;font-size:.85rem!important;text-decoration:none!important;border-radius:8px!important;}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation li a:hover{background:rgba(255,255,255,.1)!important;color:#fff!important;}
.woocommerce-MyAccount-content{background:rgba(255,255,255,.05)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:14px!important;padding:20px!important;}
.woocommerce-MyAccount-content p,.woocommerce-MyAccount-content a{color:rgba(255,255,255,.8)!important;}
.woocommerce-MyAccount-content strong{color:#fff!important;background:transparent!important;}
.woocommerce form label,.woocommerce-page form label{color:rgba(255,255,255,.72)!important;font-size:.78rem!important;display:block!important;margin-bottom:5px!important;}
.woocommerce form input[type=text],.woocommerce form input[type=email],.woocommerce form input[type=password],.woocommerce form textarea,.woocommerce form select,.woocommerce-page form input[type=text],.woocommerce-page form input[type=email],.woocommerce-page form input[type=password]{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;border-radius:10px!important;padding:10px 14px!important;font-size:.85rem!important;}
.woocommerce form input::placeholder{color:rgba(255,255,255,.35)!important;}
.woocommerce .button,.woocommerce-page .button,.woocommerce button.button,.woocommerce a.button{background:var(--app-accent,#ff4d8f)!important;color:#fff!important;border:none!important;border-radius:24px!important;padding:10px 22px!important;font-weight:700!important;font-size:.85rem!important;}
.woocommerce table.shop_table th{background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.12)!important;padding:10px!important;}
.woocommerce table.shop_table td{color:rgba(255,255,255,.8)!important;border:1px solid rgba(255,255,255,.07)!important;padding:10px!important;}
.woocommerce-message,.woocommerce-info{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.25)!important;color:#fff!important;border-radius:10px!important;}
.woocommerce-error{background:rgba(220,30,30,.15)!important;border-color:rgba(255,80,80,.3)!important;color:#ffb3b3!important;border-radius:10px!important;}

/* 8. Pagination */
.page-numbers,.nav-links a,.nav-links span{color:rgba(255,255,255,.75)!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:8px!important;padding:6px 12px!important;font-size:.8rem!important;text-decoration:none!important;display:inline-block!important;}
.page-numbers.current{background:var(--app-accent,#ff4d8f)!important;border-color:transparent!important;color:#fff!important;}
.nav-links{display:flex!important;justify-content:center!important;gap:6px!important;padding:20px 0!important;flex-wrap:wrap!important;}

/* 9. General text safety net */
.o2s-app-page h1,.o2s-app-page h2,.o2s-app-page h3,.o2s-app-page h4{color:#fff!important;}


/* ── Fix: blog card thumb container &amp; link wrapper ── */
.o2s-blog-card&gt;a{display:flex!important;flex-direction:column!important;text-decoration:none!important;color:inherit!important;}
.o2s-blog-card__thumb{height:120px!important;min-height:0!important;max-height:120px!important;overflow:hidden!important;background:rgba(255,255,255,.05)!important;flex-shrink:0!important;}
.o2s-blog-card__thumb img{width:100%!important;height:120px!important;object-fit:cover!important;display:block!important;}
.o2s-blog-card__body{flex:1!important;background:transparent!important;}

/* ── Fix: search form styling ── */
.search-form{display:flex!important;gap:8px!important;}
.search-form label{flex:1!important;margin:0!important;}
.search-form input[type=search]{width:100%!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;border-radius:10px!important;padding:10px 14px!important;font-size:.85rem!important;outline:none!important;box-sizing:border-box!important;}
.search-form input::placeholder{color:rgba(255,255,255,.4)!important;}
.search-form button,.search-form input[type=submit]{background:var(--app-accent,#ff4d8f)!important;color:#fff!important;border:none!important;border-radius:10px!important;padding:10px 16px!important;font-size:.82rem!important;font-weight:700!important;cursor:pointer!important;}

/* ── Fix: text in sections always light ── */
.o2s-app-page .o2s-section p,.o2s-app-page .o2s-section li,.o2s-app-page .o2s-section span{color:rgba(255,255,255,.82);}


/* ── Fix: WooCommerce account nav UL white background ── */
.woocommerce-MyAccount-navigation ul{background:transparent!important;border:none!important;}
.woocommerce-MyAccount-navigation li{background:transparent!important;list-style:none!important;border-bottom:1px solid rgba(255,255,255,.07)!important;}
.woocommerce-MyAccount-navigation li:last-child{border-bottom:none!important;}
.woocommerce-MyAccount-navigation li a,.woocommerce-MyAccount-navigation li span{color:rgba(255,255,255,.75)!important;text-decoration:none!important;display:block!important;padding:10px 14px!important;font-size:.85rem!important;border-radius:8px!important;}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation li a:hover{background:rgba(255,255,255,.1)!important;color:#fff!important;}

/* ── Fix: WC account page layout ── */
.woocommerce-account .woocommerce{padding:12px!important;}
.woocommerce-account .woocommerce&gt;div,.woocommerce-account .woocommerce&gt;p{margin-bottom:14px!important;}

/* ── Fix: page hero breadcrumb ── */
.o2s-page-hero .breadcrumbs,.o2s-breadcrumb{color:rgba(255,255,255,.5)!important;font-size:.72rem!important;}
.o2s-breadcrumb a{color:rgba(255,255,255,.5)!important;text-decoration:none!important;}
/* page title (if outside hero) */
body.o2s-app-page .o2s-page-hero h1,body.o2s-app-page .o2s-page-hero__title{color:#fff!important;font-weight:800!important;}
/* &quot;My account&quot; title */
.o2s-app-page .page-title-wrap h1,.o2s-app-page&gt;.page-title{color:#fff!important;}


/* ── Fix: WooCommerce shop/product main light-gray wrapper ── */
main.o2s-wc-main,.o2s-wc-main{background:#07101f!important;}
body.o2s-app-page main:not([class*=&quot;o2s-app&quot;]){background:#07101f!important;}

/* ── Fix: WC product grid ── */
ul.products,ul.products li.product,.woocommerce-page .products{background:transparent!important;}
.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce-page ul.products li.product .woocommerce-loop-product__title{color:#fff!important;}
.woocommerce ul.products li.product .price,.woocommerce-page ul.products li.product .price{color:var(--app-accent,#ff4d8f)!important;}
.woocommerce ul.products li.product img{border-radius:10px!important;}

/* ── Fix: WC account nav glass (with UL reset) ── */
.woocommerce-MyAccount-navigation{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:14px!important;overflow:hidden!important;margin:0 0 14px!important;}
.woocommerce-MyAccount-navigation ul{background:transparent!important;margin:0!important;padding:0!important;list-style:none!important;border:none!important;}
.woocommerce-MyAccount-navigation li{background:transparent!important;border-bottom:1px solid rgba(255,255,255,.07)!important;list-style:none!important;}
.woocommerce-MyAccount-navigation li:last-child{border-bottom:none!important;}
.woocommerce-MyAccount-navigation li a{color:rgba(255,255,255,.78)!important;display:block!important;padding:11px 16px!important;font-size:.85rem!important;text-decoration:none!important;}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation li a:hover{background:rgba(255,255,255,.1)!important;color:#fff!important;}

/* -- Fix: blog single post text -- */
.o2s-blog-single__content p,.o2s-blog-single__content li{color:rgba(255,255,255,.82)!important;}
.o2s-blog-single__content h2,.o2s-blog-single__content h3,.o2s-blog-single__content h4{color:#fff!important;}
.o2s-blog-single__content a{color:var(--app-accent,#ff4d8f)!important;text-decoration:none!important;}
.o2s-blog-single__body,.o2s-blog-single__layout{background:transparent!important;}
/* -- Fix: category badge pink -- */
.o2s-blog-single__cat{background:rgba(255,77,143,.18)!important;color:var(--app-accent,#ff4d8f)!important;border:1px solid rgba(255,77,143,.3)!important;border-radius:20px!important;padding:3px 10px!important;font-size:.75rem!important;}
/* -- Fix: blog widget glass -- */
.o2s-blog-widget{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.12)!important;backdrop-filter:blur(12px)!important;border-radius:14px!important;overflow:hidden!important;}
.o2s-blog-widget h3,.o2s-blog-widget h4,.o2s-blog-widget .o2s-widget-title{color:#fff!important;}
.o2s-blog-widget p,.o2s-blog-widget a,.o2s-blog-widget span{color:rgba(255,255,255,.82)!important;}
.o2s-blog-widget time,.o2s-blog-widget .o2s-widget-post-date{color:rgba(255,255,255,.45)!important;font-size:.75rem!important;}
.o2s-blog-widget li,.o2s-blog-widget .o2s-widget-post{background:transparent!important;border-bottom:1px solid rgba(255,255,255,.07)!important;}
.o2s-share-btn{background:rgba(255,255,255,.08)!important;color:rgba(255,255,255,.85)!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:8px!important;}
/* -- Fix: contact form glass -- */
.o2s-contact-form-wrap{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.12)!important;backdrop-filter:blur(12px)!important;border-radius:18px!important;}
.o2s-contact-form-wrap label{color:rgba(255,255,255,.7)!important;}
.o2s-contact-form-wrap input,.o2s-contact-form-wrap select,.o2s-contact-form-wrap textarea{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.18)!important;color:#fff!important;border-radius:10px!important;}
.o2s-contact-form-wrap .o2s-btn,.o2s-contact-form-wrap button[type=submit]{background:var(--app-accent,#ff4d8f)!important;color:#fff!important;border:none!important;border-radius:24px!important;padding:11px 28px!important;font-weight:700!important;}
/* -- Fix: list-business form -- */
.o2s-list-form input,.o2s-list-form select,.o2s-list-form textarea{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.18)!important;color:#fff!important;border-radius:10px!important;}
.o2s-list-form label{color:rgba(255,255,255,.7)!important;}
.o2s-list-form .o2s-btn,.o2s-list-form button{background:var(--app-accent,#ff4d8f)!important;color:#fff!important;border-radius:24px!important;}
/* -- Fix: section headings -- */
.o2s-sec-title{color:#fff!important;}.o2s-sec-tag{color:var(--app-accent,#ff4d8f)!important;}.o2s-sec-head{background:transparent!important;}

/* ============================================================
   v1.0.8 — OODA fixes: CPT theming, white-on-white, adaptive text
   ============================================================ */

/* --- FIX 1: Kill stray white backgrounds section-level --- */
.o2s-app-listings,
.o2s-app-listing-single,
.o2s-cpt-wrap,
.o2s-archive,
.o2s-search-results,
.o2s-search-wrap,
.o2s-page-wrap,
.o2s-page,
.o2s-page-content,
.o2s-list-business,
.o2s-contact-wrap,
body.search-results main,
body.search-results .site-main,
body.single-vp_food main,
body.single-vp_staycation main,
body.single-vp_realestate main,
body.single-vp_interiors main,
body.single-vp_furniture main,
body.single-vp_clothing main,
body.single-vp_construction main,
body.page main,
body.page .site-main {
  background: transparent !important;
  color: rgba(255,255,255,.85) !important;
}

/* --- FIX 2: Per-CPT accent color theming --- */
body.post-type-archive-vp_food,
body.single-vp_food,
body.tax-vp_food_category,
body.tax-vp_food_tag { --app-accent: #ff6b2c; --app-accent-rgb: 255,107,44; }

body.post-type-archive-vp_staycation,
body.single-vp_staycation { --app-accent: #3ab7ff; --app-accent-rgb: 58,183,255; }

body.post-type-archive-vp_realestate,
body.single-vp_realestate { --app-accent: #3ddc97; --app-accent-rgb: 61,220,151; }

body.post-type-archive-vp_interiors,
body.single-vp_interiors { --app-accent: #b06bff; --app-accent-rgb: 176,107,255; }

body.post-type-archive-vp_furniture,
body.single-vp_furniture { --app-accent: #d89666; --app-accent-rgb: 216,150,102; }

body.post-type-archive-vp_clothing,
body.single-vp_clothing { --app-accent: #ff4d8f; --app-accent-rgb: 255,77,143; }

body.post-type-archive-vp_construction,
body.single-vp_construction { --app-accent: #ffb13b; --app-accent-rgb: 255,177,59; }

/* Tint CPT hero band */
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-cpt-header,
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-archive-header,
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-cpt-hero {
  background: linear-gradient(135deg, rgba(var(--app-accent-rgb,255,77,143),.22), rgba(7,16,31,0) 75%) !important;
  border-bottom: 1px solid rgba(var(--app-accent-rgb,255,77,143),.18) !important;
}

/* Category badge &amp; CTA use CPT accent */
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-card__cat,
body[class*=&quot;single-vp_&quot;] .o2s-card__cat {
  color: var(--app-accent,#ff4d8f) !important;
  background: rgba(var(--app-accent-rgb,255,77,143),.14) !important;
  border: 1px solid rgba(var(--app-accent-rgb,255,77,143),.3) !important;
  border-radius: 20px !important;
  padding: 3px 10px !important;
  font-size: .72rem !important;
  font-weight: 600 !important;
  letter-spacing: .3px !important;
}

body[class*=&quot;post-type-archive-vp_&quot;] .o2s-btn,
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-card__cta,
body[class*=&quot;single-vp_&quot;] .o2s-btn,
body[class*=&quot;single-vp_&quot;] .o2s-card__cta {
  background: var(--app-accent,#ff4d8f) !important;
  color: #fff !important;
}

/* --- FIX 3: Adaptive text in cards (prevent white-on-white) --- */
.o2s-card, .o2s-listing-card, .o2s-grid-card,
.o2s-card__body, .o2s-card__content {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(12px) !important;
  border-radius: 14px !important;
  color: rgba(255,255,255,.85) !important;
  overflow: hidden !important;
}
.o2s-card__title, .o2s-card__heading, .o2s-card h3, .o2s-card h4 {
  color: #fff !important;
}
.o2s-card__price, .o2s-card__rate {
  color: #fff !important;
  font-weight: 700 !important;
}
.o2s-card__meta, .o2s-card__loc, .o2s-card__subtitle,
.o2s-card__body p, .o2s-card__excerpt {
  color: rgba(255,255,255,.72) !important;
}
.o2s-card__rating, .o2s-card__stars { color: #ffc043 !important; }
.o2s-card__media, .o2s-card__thumb {
  background: rgba(255,255,255,.04) !important;
}
.o2s-card a, .o2s-listing-card a { color: inherit !important; }

/* Fallback for ANY card with forced white bg inline */
[class*=&quot;card&quot;][style*=&quot;background: #fff&quot;],
[class*=&quot;card&quot;][style*=&quot;background:#fff&quot;],
[class*=&quot;card&quot;][style*=&quot;background-color:#fff&quot;],
[class*=&quot;card&quot;][style*=&quot;background-color: #fff&quot;],
[class*=&quot;card&quot;][style*=&quot;background:white&quot;],
[class*=&quot;card&quot;][style*=&quot;background: white&quot;] {
  color: #1f2937 !important;
}
[class*=&quot;card&quot;][style*=&quot;background: #fff&quot;] *,
[class*=&quot;card&quot;][style*=&quot;background:#fff&quot;] *,
[class*=&quot;card&quot;][style*=&quot;background:white&quot;] * {
  color: inherit !important;
}

/* --- FIX 4: Page-level (About Us, static pages) glass wrap --- */
body.page article.page,
body.page article.type-page,
body.page .o2s-page-content,
body.page .entry-content,
body.page #primary,
body.page #content .page {
  background: transparent !important;
  color: rgba(255,255,255,.85) !important;
}
body.page .o2s-page-content,
body.page article.type-page .entry-content {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 16px !important;
  padding: 28px 32px !important;
  backdrop-filter: blur(12px) !important;
  margin: 24px auto !important;
  max-width: 900px !important;
}
body.page h1, body.page h2, body.page h3, body.page h4, body.page h5 {
  color: #fff !important;
}
body.page p, body.page li, body.page dd, body.page td {
  color: rgba(255,255,255,.82) !important;
}
body.page a { color: var(--app-accent,#ff4d8f) !important; text-decoration: none !important; }
body.page a:hover { text-decoration: underline !important; }
body.page blockquote {
  border-left: 3px solid var(--app-accent,#ff4d8f) !important;
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.9) !important;
  padding: 16px 20px !important;
  border-radius: 10px !important;
}

/* --- FIX 5: Search results look identical to default cards --- */
body.search-results .o2s-search-results,
body.search-results .search-results-wrap,
body.search-results main,
body.search-results .site-main { background: transparent !important; }

body.search-results .o2s-search-results { padding: 24px 0 !important; }

body.search-results .page-title,
body.search-results h1.page-title,
body.search-results .search-title { color: #fff !important; }

body.search-results article,
body.search-results .o2s-search-result,
body.search-results .search-result-item {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(12px) !important;
  border-radius: 14px !important;
  padding: 20px 24px !important;
  margin: 0 0 16px 0 !important;
  color: rgba(255,255,255,.85) !important;
  list-style: none !important;
  transition: transform .2s ease, border-color .2s ease !important;
}
body.search-results article:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(var(--app-accent-rgb,255,77,143),.35) !important;
}
body.search-results article h1,
body.search-results article h2,
body.search-results article h3,
body.search-results article .entry-title,
body.search-results article .entry-title a {
  color: #fff !important;
  font-weight: 700 !important;
  margin: 0 0 8px 0 !important;
}
body.search-results article .entry-meta,
body.search-results article .entry-summary,
body.search-results article p {
  color: rgba(255,255,255,.7) !important;
}
body.search-results article .entry-title a:hover { color: var(--app-accent,#ff4d8f) !important; }
body.search-results .search-form input[type=search],
body.search-results .search-form input {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #fff !important;
  border-radius: 24px !important;
  padding: 10px 18px !important;
}

/* --- FIX 6: Single post / single CPT pages --- */
body[class*=&quot;single-vp_&quot;] .o2s-listing-single,
body[class*=&quot;single-vp_&quot;] .o2s-single-wrap,
body[class*=&quot;single-vp_&quot;] article {
  background: transparent !important;
  color: rgba(255,255,255,.85) !important;
}
body[class*=&quot;single-vp_&quot;] h1,
body[class*=&quot;single-vp_&quot;] h2,
body[class*=&quot;single-vp_&quot;] h3 { color: #fff !important; }
body[class*=&quot;single-vp_&quot;] .o2s-single-body,
body[class*=&quot;single-vp_&quot;] .entry-content {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important;
  padding: 24px !important;
  backdrop-filter: blur(12px) !important;
  color: rgba(255,255,255,.85) !important;
}
body[class*=&quot;single-vp_&quot;] .price,
body[class*=&quot;single-vp_&quot;] .o2s-price,
body[class*=&quot;single-vp_&quot;] .o2s-listing-price { color: var(--app-accent,#ff4d8f) !important; font-weight:800 !important; }

/* --- FIX 7: Footer, contact, generic widgets in glass --- */
.o2s-widget, .widget, .wp-block-group {
  color: rgba(255,255,255,.85) !important;
}
.widget-title, .wp-block-heading { color: #fff !important; }

/* --- FIX 8: Safe override for any remaining .o2s-card__cat-badge --- */
.o2s-card__cat-badge,
.o2s-card__tag,
.o2s-card__label {
  color: var(--app-accent,#ff4d8f) !important;
  background: rgba(var(--app-accent-rgb,255,77,143),.14) !important;
  border: 1px solid rgba(var(--app-accent-rgb,255,77,143),.3) !important;
}

/* --- FIX 9: The pink/magenta hero we saw on staycation page — replace with CPT accent --- */
body[class*=&quot;post-type-archive-vp_&quot;] section[style*=&quot;background:&quot;][style*=&quot;rgb(140&quot;],
body[class*=&quot;post-type-archive-vp_&quot;] section[style*=&quot;background:&quot;][style*=&quot;rgb(128&quot;],
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-hero,
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-page-hero {
  background: linear-gradient(135deg, rgba(var(--app-accent-rgb,255,77,143),.35) 0%, rgba(var(--app-accent-rgb,255,77,143),.1) 55%, rgba(7,16,31,0) 100%) !important;
}
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-hero *,
body[class*=&quot;post-type-archive-vp_&quot;] .o2s-page-hero * { color: #fff !important; }

/* --- FIX 10: Ensure body text always visible over any bg --- */
.o2s-app, main.o2s-app { color: rgba(255,255,255,.9) !important; }
body { color: rgba(255,255,255,.9); }
body.page .site-content, body.page #content { color: rgba(255,255,255,.85) !important; }



/* ============================================================
   v1.0.8.1 — Per-CPT main app gradient + body hue
   ============================================================ */
body.post-type-archive-vp_food main.o2s-app,
body.single-vp_food main.o2s-app {
  background-image: linear-gradient(160deg, #7C2E10 0%, #4D1D0A 50%, #201103 100%) !important;
}
body.post-type-archive-vp_staycation main.o2s-app,
body.single-vp_staycation main.o2s-app {
  background-image: linear-gradient(160deg, #104A7C 0%, #0A2F4D 50%, #031220 100%) !important;
}
body.post-type-archive-vp_realestate main.o2s-app,
body.single-vp_realestate main.o2s-app {
  background-image: linear-gradient(160deg, #107C4A 0%, #0A4D2F 50%, #031A12 100%) !important;
}
body.post-type-archive-vp_interiors main.o2s-app,
body.single-vp_interiors main.o2s-app {
  background-image: linear-gradient(160deg, #4D107C 0%, #300A4D 50%, #130320 100%) !important;
}
body.post-type-archive-vp_furniture main.o2s-app,
body.single-vp_furniture main.o2s-app {
  background-image: linear-gradient(160deg, #7C4D10 0%, #4D300A 50%, #201303 100%) !important;
}
body.post-type-archive-vp_clothing main.o2s-app,
body.single-vp_clothing main.o2s-app {
  background-image: linear-gradient(160deg, #7C1040 0%, #4D0A28 50%, #200311 100%) !important;
}
body.post-type-archive-vp_construction main.o2s-app,
body.single-vp_construction main.o2s-app {
  background-image: linear-gradient(160deg, #7C6010 0%, #4D3C0A 50%, #201803 100%) !important;
}

/* Tab active indicator color per-CPT */
body.post-type-archive-vp_food .o2s-tab.is-active,
body.single-vp_food .o2s-tab.is-active,
body.post-type-archive-vp_staycation .o2s-tab.is-active,
body.single-vp_staycation .o2s-tab.is-active,
body.post-type-archive-vp_realestate .o2s-tab.is-active,
body.single-vp_realestate .o2s-tab.is-active,
body.post-type-archive-vp_interiors .o2s-tab.is-active,
body.single-vp_interiors .o2s-tab.is-active,
body.post-type-archive-vp_furniture .o2s-tab.is-active,
body.single-vp_furniture .o2s-tab.is-active,
body.post-type-archive-vp_clothing .o2s-tab.is-active,
body.single-vp_clothing .o2s-tab.is-active,
body.post-type-archive-vp_construction .o2s-tab.is-active,
body.single-vp_construction .o2s-tab.is-active {
  color: var(--app-accent,#fff) !important;
  border-color: var(--app-accent,#fff) !important;
}


/* ============================================================
   v1.0.8.2 — Override .o2s-app --app-accent that beats body-level
   ============================================================ */
body.post-type-archive-vp_food .o2s-app,
body.post-type-archive-vp_food .o2s-app-archive,
body.post-type-archive-vp_food .o2s-app-single,
body.single-vp_food .o2s-app,
body.single-vp_food .o2s-app-archive,
body.single-vp_food .o2s-app-single,
[data-post-type=&quot;vp_food&quot;] { --app-accent: #ff6b2c !important; --app-accent-rgb: 255,107,44 !important; --cpt-accent: #ff6b2c !important; }

body.post-type-archive-vp_staycation .o2s-app,
body.post-type-archive-vp_staycation .o2s-app-archive,
body.post-type-archive-vp_staycation .o2s-app-single,
body.single-vp_staycation .o2s-app,
body.single-vp_staycation .o2s-app-archive,
body.single-vp_staycation .o2s-app-single,
[data-post-type=&quot;vp_staycation&quot;] { --app-accent: #3ab7ff !important; --app-accent-rgb: 58,183,255 !important; --cpt-accent: #3ab7ff !important; }

body.post-type-archive-vp_realestate .o2s-app,
body.post-type-archive-vp_realestate .o2s-app-archive,
body.post-type-archive-vp_realestate .o2s-app-single,
body.single-vp_realestate .o2s-app,
body.single-vp_realestate .o2s-app-archive,
body.single-vp_realestate .o2s-app-single,
[data-post-type=&quot;vp_realestate&quot;] { --app-accent: #3ddc97 !important; --app-accent-rgb: 61,220,151 !important; --cpt-accent: #3ddc97 !important; }

body.post-type-archive-vp_interiors .o2s-app,
body.post-type-archive-vp_interiors .o2s-app-archive,
body.post-type-archive-vp_interiors .o2s-app-single,
body.single-vp_interiors .o2s-app,
body.single-vp_interiors .o2s-app-archive,
body.single-vp_interiors .o2s-app-single,
[data-post-type=&quot;vp_interiors&quot;] { --app-accent: #b06bff !important; --app-accent-rgb: 176,107,255 !important; --cpt-accent: #b06bff !important; }

body.post-type-archive-vp_furniture .o2s-app,
body.post-type-archive-vp_furniture .o2s-app-archive,
body.post-type-archive-vp_furniture .o2s-app-single,
body.single-vp_furniture .o2s-app,
body.single-vp_furniture .o2s-app-archive,
body.single-vp_furniture .o2s-app-single,
[data-post-type=&quot;vp_furniture&quot;] { --app-accent: #d89666 !important; --app-accent-rgb: 216,150,102 !important; --cpt-accent: #d89666 !important; }

body.post-type-archive-vp_clothing .o2s-app,
body.post-type-archive-vp_clothing .o2s-app-archive,
body.post-type-archive-vp_clothing .o2s-app-single,
body.single-vp_clothing .o2s-app,
body.single-vp_clothing .o2s-app-archive,
body.single-vp_clothing .o2s-app-single,
[data-post-type=&quot;vp_clothing&quot;] { --app-accent: #ff4d8f !important; --app-accent-rgb: 255,77,143 !important; --cpt-accent: #ff4d8f !important; }

body.post-type-archive-vp_construction .o2s-app,
body.post-type-archive-vp_construction .o2s-app-archive,
body.post-type-archive-vp_construction .o2s-app-single,
body.single-vp_construction .o2s-app,
body.single-vp_construction .o2s-app-archive,
body.single-vp_construction .o2s-app-single,
[data-post-type=&quot;vp_construction&quot;] { --app-accent: #ffb13b !important; --app-accent-rgb: 255,177,59 !important; --cpt-accent: #ffb13b !important; }

/* Force the CTA button to use the cpt-specific accent reliably */
.o2s-card__cta, .o2s-btn--cpt, .o2s-card__cta:hover, .o2s-card__cta:focus {
  background: var(--cpt-accent, var(--app-accent, #ff4d8f)) !important;
  color: #fff !important;
  border-color: transparent !important;
}


/* ============================================================
   v1.1.1 — Page templates (About, Contact, static) get mobile frame
   ============================================================ */

/* Body-page: constrain layout to mobile frame */
body.page .o2s-app-header,
body.page .o2s-page-hero,
body.page .o2s-section,
body.page .o2s-footer,
body.page &gt; header,
body.search-results .o2s-app-header,
body.search-results .o2s-page-hero,
body.search-results .o2s-section,
body.search-results .o2s-footer,
body.blog .o2s-app-header,
body.blog .o2s-page-hero,
body.blog .o2s-section,
body.blog .o2s-footer,
body.single-post .o2s-app-header,
body.single-post .o2s-page-hero,
body.single-post .o2s-section,
body.single-post .o2s-footer {
  max-width: 480px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Give body.page a matching dark gradient like CPT archives */
body.page,
body.search-results,
body.blog,
body.single-post {
  background:
    radial-gradient(1200px 600px at 50% -100px, rgba(255,77,143,.08), transparent 60%),
    linear-gradient(180deg, #07101f 0%, #0a1428 100%) !important;
  background-attachment: fixed !important;
  color: rgba(255,255,255,.88) !important;
  min-height: 100vh !important;
}

/* Create a visible &quot;app frame&quot; by wrapping page content */
body.page::after,
body.search-results::after,
body.blog::after,
body.single-post::after {
  content: &#039;&#039;;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(480px, 100vw);
  height: 100vh;
  background-image: linear-gradient(160deg, rgba(124,16,64,.25) 0%, rgba(77,10,40,.2) 50%, rgba(32,3,17,.15) 100%);
  pointer-events: none;
  z-index: 0;
}
body.page &gt; *,
body.search-results &gt; *,
body.blog &gt; *,
body.single-post &gt; * {
  position: relative;
  z-index: 1;
}

/* Page hero: proper frame */
body.page .o2s-page-hero,
body.search-results .o2s-page-hero,
body.blog .o2s-page-hero,
body.single-post .o2s-page-hero {
  padding: 30px 20px 24px !important;
  background: linear-gradient(135deg, rgba(255,77,143,.22), rgba(7,16,31,0) 75%) !important;
  border-bottom: 1px solid rgba(255,77,143,.18) !important;
}
body.page .o2s-page-hero__title,
body.page .o2s-page-hero h1,
body.search-results .o2s-page-hero h1,
body.blog .o2s-page-hero h1,
body.single-post .o2s-page-hero h1 {
  font-size: 1.8rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin: 6px 0 !important;
  text-align: center !important;
}
body.page .o2s-breadcrumb,
body.search-results .o2s-breadcrumb {
  color: rgba(255,255,255,.55) !important;
  font-size: .75rem !important;
  text-align: center !important;
}
body.page .o2s-breadcrumb a,
body.search-results .o2s-breadcrumb a {
  color: var(--app-accent, #ff4d8f) !important;
  text-decoration: none !important;
}

/* Body section glass wrap */
body.page .o2s-section,
body.blog .o2s-section,
body.single-post .o2s-section {
  padding: 20px 16px !important;
}
body.page .o2s-section .o2s-container,
body.blog .o2s-section .o2s-container,
body.single-post .o2s-section .o2s-container {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important;
  padding: 22px 20px !important;
  backdrop-filter: blur(12px) !important;
}

/* Typography inside pages */
body.page .o2s-section p,
body.blog .o2s-section p,
body.single-post .o2s-section p {
  color: rgba(255,255,255,.82) !important;
  line-height: 1.65 !important;
  margin: 0 0 14px !important;
}
body.page .o2s-section h1,
body.page .o2s-section h2,
body.page .o2s-section h3,
body.page .o2s-section h4,
body.blog .o2s-section h1,
body.blog .o2s-section h2,
body.blog .o2s-section h3,
body.blog .o2s-section h4,
body.single-post .o2s-section h1,
body.single-post .o2s-section h2,
body.single-post .o2s-section h3 {
  color: #fff !important;
  margin: 20px 0 10px !important;
}
body.page .o2s-section a,
body.blog .o2s-section a,
body.single-post .o2s-section a {
  color: var(--app-accent, #ff4d8f) !important;
  text-decoration: none !important;
}
body.page .o2s-section a:hover,
body.blog .o2s-section a:hover { text-decoration: underline !important; }
body.page .o2s-section ul,
body.page .o2s-section ol,
body.blog .o2s-section ul,
body.blog .o2s-section ol {
  padding-left: 20px !important;
  color: rgba(255,255,255,.82) !important;
}
body.page .o2s-section li,
body.blog .o2s-section li {
  color: rgba(255,255,255,.82) !important;
  margin: 6px 0 !important;
}
body.page .o2s-section img,
body.blog .o2s-section img,
body.single-post .o2s-section img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 10px !important;
  margin: 12px 0 !important;
}

/* Footer inside page */
body.page .o2s-footer,
body.blog .o2s-footer,
body.single-post .o2s-footer,
body.search-results .o2s-footer {
  background: rgba(0,0,0,.3) !important;
  padding: 18px 16px !important;
  color: rgba(255,255,255,.55) !important;
  font-size: .8rem !important;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
  margin-top: 30px !important;
}
body.page .o2s-footer a,
body.blog .o2s-footer a,
body.single-post .o2s-footer a { color: rgba(255,255,255,.75) !important; }

/* Header matches CPT pages */
body.page .o2s-app-header,
body.blog .o2s-app-header,
body.single-post .o2s-app-header,
body.search-results .o2s-app-header {
  background: rgba(0,0,0,.15) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 40 !important;
  backdrop-filter: blur(12px) !important;
}

/* SEARCH results page — list of cards in frame */
body.search-results .o2s-section,
body.search-results main,
body.search-results .site-main { padding: 20px 16px !important; }

body.search-results article,
body.search-results .o2s-search-result,
body.search-results .search-result-item {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(12px) !important;
  border-radius: 14px !important;
  padding: 18px 20px !important;
  margin: 0 0 14px 0 !important;
  color: rgba(255,255,255,.85) !important;
  display: block !important;
}
body.search-results .page-title,
body.search-results .search-title { color: #fff !important; text-align:center !important; margin: 14px 0 !important; }


/* ===================================================================
   FIX v1.1.2 — Override theme inline CPT styles (2025-04-18)
   =================================================================== */
html body[data-active-cpt] main.o2s-app .o2s-app-listings,
html body[data-active-cpt] .o2s-app-listings,
html body.post-type-archive-vp_food .o2s-app-listings,
html body.post-type-archive-vp_staycation .o2s-app-listings,
html body.post-type-archive-vp_realestate .o2s-app-listings,
html body.post-type-archive-vp_interiors .o2s-app-listings,
html body.post-type-archive-vp_furniture .o2s-app-listings,
html body.post-type-archive-vp_clothing .o2s-app-listings,
html body.post-type-archive-vp_construction .o2s-app-listings,
html body[class*=&quot;single-vp_&quot;] .o2s-app-listings {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
html body[data-active-cpt=&quot;vp_food&quot;] main.o2s-app,
html body.post-type-archive-vp_food main.o2s-app,
html body.single-vp_food main.o2s-app {
  background: linear-gradient(160deg, #7C2E10 0%, #4D1D0A 50%, #201103 100%) !important;
  background-image: linear-gradient(160deg, #7C2E10 0%, #4D1D0A 50%, #201103 100%) !important;
}
html body[data-active-cpt=&quot;vp_food&quot;],
html body.post-type-archive-vp_food,
html body.single-vp_food {
  background: #201103 !important;
  --cpt-accent: #ff7a3b !important;
  --tab-accent: #ff7a3b !important;
  --app-accent: #ff7a3b !important;
  --app-accent-rgb: 255,122,59 !important;
}
html body[data-active-cpt=&quot;vp_staycation&quot;] main.o2s-app,
html body.post-type-archive-vp_staycation main.o2s-app,
html body.single-vp_staycation main.o2s-app {
  background: linear-gradient(160deg, #104A7C 0%, #0A2E4D 50%, #031120 100%) !important;
  background-image: linear-gradient(160deg, #104A7C 0%, #0A2E4D 50%, #031120 100%) !important;
}
html body[data-active-cpt=&quot;vp_staycation&quot;],
html body.post-type-archive-vp_staycation,
html body.single-vp_staycation {
  background: #031120 !important;
  --cpt-accent: #3ba6ff !important;
  --tab-accent: #3ba6ff !important;
  --app-accent: #3ba6ff !important;
  --app-accent-rgb: 59,166,255 !important;
}
html body[data-active-cpt=&quot;vp_realestate&quot;] main.o2s-app,
html body.post-type-archive-vp_realestate main.o2s-app,
html body.single-vp_realestate main.o2s-app {
  background: linear-gradient(160deg, #107C4A 0%, #0A4D2E 50%, #032011 100%) !important;
  background-image: linear-gradient(160deg, #107C4A 0%, #0A4D2E 50%, #032011 100%) !important;
}
html body[data-active-cpt=&quot;vp_realestate&quot;],
html body.post-type-archive-vp_realestate,
html body.single-vp_realestate {
  background: #032011 !important;
  --cpt-accent: #3ddc97 !important;
  --tab-accent: #3ddc97 !important;
  --app-accent: #3ddc97 !important;
  --app-accent-rgb: 61,220,151 !important;
}
html body[data-active-cpt=&quot;vp_interiors&quot;] main.o2s-app,
html body.post-type-archive-vp_interiors main.o2s-app,
html body.single-vp_interiors main.o2s-app {
  background: linear-gradient(160deg, #4D107C 0%, #2E0A4D 50%, #110320 100%) !important;
  background-image: linear-gradient(160deg, #4D107C 0%, #2E0A4D 50%, #110320 100%) !important;
}
html body[data-active-cpt=&quot;vp_interiors&quot;],
html body.post-type-archive-vp_interiors,
html body.single-vp_interiors {
  background: #110320 !important;
  --cpt-accent: #a866ff !important;
  --tab-accent: #a866ff !important;
  --app-accent: #a866ff !important;
  --app-accent-rgb: 168,102,255 !important;
}
html body[data-active-cpt=&quot;vp_furniture&quot;] main.o2s-app,
html body.post-type-archive-vp_furniture main.o2s-app,
html body.single-vp_furniture main.o2s-app {
  background: linear-gradient(160deg, #7C4D10 0%, #4D300A 50%, #201403 100%) !important;
  background-image: linear-gradient(160deg, #7C4D10 0%, #4D300A 50%, #201403 100%) !important;
}
html body[data-active-cpt=&quot;vp_furniture&quot;],
html body.post-type-archive-vp_furniture,
html body.single-vp_furniture {
  background: #201403 !important;
  --cpt-accent: #d99c4c !important;
  --tab-accent: #d99c4c !important;
  --app-accent: #d99c4c !important;
  --app-accent-rgb: 217,156,76 !important;
}
html body[data-active-cpt=&quot;vp_clothing&quot;] main.o2s-app,
html body.post-type-archive-vp_clothing main.o2s-app,
html body.single-vp_clothing main.o2s-app {
  background: linear-gradient(160deg, #7C1040 0%, #4D0823 50%, #200510 100%) !important;
  background-image: linear-gradient(160deg, #7C1040 0%, #4D0823 50%, #200510 100%) !important;
}
html body[data-active-cpt=&quot;vp_clothing&quot;],
html body.post-type-archive-vp_clothing,
html body.single-vp_clothing {
  background: #200510 !important;
  --cpt-accent: #ff3b83 !important;
  --tab-accent: #ff3b83 !important;
  --app-accent: #ff3b83 !important;
  --app-accent-rgb: 255,59,131 !important;
}
html body[data-active-cpt=&quot;vp_construction&quot;] main.o2s-app,
html body.post-type-archive-vp_construction main.o2s-app,
html body.single-vp_construction main.o2s-app {
  background: linear-gradient(160deg, #7C6010 0%, #4D3C0A 50%, #201803 100%) !important;
  background-image: linear-gradient(160deg, #7C6010 0%, #4D3C0A 50%, #201803 100%) !important;
}
html body[data-active-cpt=&quot;vp_construction&quot;],
html body.post-type-archive-vp_construction,
html body.single-vp_construction {
  background: #201803 !important;
  --cpt-accent: #ffb13b !important;
  --tab-accent: #ffb13b !important;
  --app-accent: #ffb13b !important;
  --app-accent-rgb: 255,177,59 !important;
}
html body[data-active-cpt] .o2s-card__cat,
html body[data-active-cpt] .o2s-card__badge,
html body[class*=&quot;post-type-archive-vp_&quot;] .o2s-card__cat,
html body[class*=&quot;single-vp_&quot;] .o2s-card__cat,
.o2s-card .o2s-card__cat {
  background: var(--cpt-accent, var(--app-accent, #ff4d8f)) !important;
  background-color: var(--cpt-accent, var(--app-accent, #ff4d8f)) !important;
  color: #fff !important;
  border: 1px solid transparent !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.25) !important;
}
html body[class*=&quot;post-type-archive-vp_&quot;] .o2s-card,
html body[class*=&quot;single-vp_&quot;] .o2s-card,
html body[data-active-cpt] .o2s-card,
.o2s-card {
  background: rgba(255,255,255,.06) !important;
  background-color: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.15) !important;
}
.o2s-card h2, .o2s-card h3, .o2s-card h4,
.o2s-card .o2s-card__title,
.o2s-card a.o2s-card__title-link,
.o2s-card a:not(.o2s-card__cta),
.o2s-card p,
.o2s-card strong {
  color: #fff !important;
}
.o2s-card .o2s-card__meta,
.o2s-card .o2s-card__location,
.o2s-card .o2s-card__reviews,
.o2s-card .o2s-card__subtitle,
.o2s-card span:not(.o2s-card__cat):not(.o2s-card__stars):not(.o2s-card__badge) {
  color: rgba(255,255,255,.75) !important;
}
.o2s-card .o2s-card__price,
.o2s-card .o2s-price,
.o2s-card .o2s-card__price-row {
  color: #fff !important;
  font-weight: 700 !important;
  background: transparent !important;
}
html body[data-active-cpt] .o2s-card__cta,
html body[class*=&quot;post-type-archive-vp_&quot;] .o2s-card__cta,
html body[class*=&quot;single-vp_&quot;] .o2s-card__cta,
.o2s-card .o2s-card__cta {
  background: var(--cpt-accent, var(--app-accent, #ff4d8f)) !important;
  background-color: var(--cpt-accent, var(--app-accent, #ff4d8f)) !important;
  color: #fff !important;
  border: 1px solid transparent !important;
  font-weight: 600 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.2) !important;
}
.o2s-card .o2s-card__cta:hover,
.o2s-card .o2s-card__cta:focus {
  filter: brightness(1.1) !important;
}
.o2s-hero__title .o2s-hero-word--outline,
.o2s-archive-hero__title .o2s-hero-word--outline,
.o2s-hero-outline,
h1 span.outline,
h1 span[data-outline] {
  -webkit-text-stroke: 1.5px rgba(255,255,255,.9) !important;
  color: transparent !important;
  text-shadow: none !important;
}


/* =============================================
   Header + Footer visibility fix (v1.1.3)
   Theme bug: .o2s-app-page #o2s-header and .o2s-app-page .o2s-footer
   are in a display:none rule-list meant for legacy non-app hdr/ftr.
   Force the actual app header/footer visible with higher specificity.
   ============================================= */
html body.o2s-app-page header.o2s-app-header,
html body.o2s-app-page #o2s-header,
html body.o2s-app-page header#o2s-header,
html body[data-active-cpt] header.o2s-app-header,
html body[data-active-cpt] #o2s-header,
html body[class*="post-type-archive-vp_"] header.o2s-app-header,
html body[class*="post-type-archive-vp_"] #o2s-header,
html body[class*="single-vp_"] header.o2s-app-header,
html body[class*="single-vp_"] #o2s-header {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
html body.o2s-app-page footer.o2s-footer,
html body.o2s-app-page .o2s-footer,
html body[data-active-cpt] footer.o2s-footer,
html body[data-active-cpt] .o2s-footer,
html body[class*="post-type-archive-vp_"] footer.o2s-footer,
html body[class*="post-type-archive-vp_"] .o2s-footer,
html body[class*="single-vp_"] footer.o2s-footer,
html body[class*="single-vp_"] .o2s-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
html body.o2s-app-page .o2s-mobile-nav,
html body.o2s-app-page .o2s-mobile-header,
html body.o2s-app-page .o2s-topbar,
html body.o2s-app-page #o2s-mobile-nav {
  display: revert !important;
  visibility: visible !important;
}
/* Ensure header stays above page gradient backgrounds */
html body.o2s-app-page header.o2s-app-header {
  position: relative !important;
  z-index: 100 !important;
}
html body.o2s-app-page footer.o2s-footer {
  position: relative !important;
  z-index: 50 !important;
}
