/* ==========================================================
   Nexos Portal UI — WooCommerce Skin
   Scope: body.nexos-portal-ui (and optionally body.nexoswp-page)
   ----------------------------------------------------------
   Goals:
   - Make Shop / Product / Cart / Checkout feel like Titanium
   - No template overrides required
   ========================================================== */

/* Ensure our background shows even if theme is plain */
body.nexos-portal-ui{
  background:
    radial-gradient(1200px 700px at 20% -10%, rgba(130,170,255,.16), transparent 60%),
    radial-gradient(900px 600px at 85% 10%, rgba(120,120,255,.12), transparent 55%),
    linear-gradient(180deg, rgba(5,8,22,.40), rgba(5,8,22,.90)),
    var(--nexos-page-bg, none) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

/* Wrapper injected around Woo content */
body.nexos-portal-ui .nexos-portal-shell{
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 56px 0 80px;
  display: block;
}
body.nexos-portal-ui .nexos-portal-container{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 22px;
}

/* Make native selects match dark UI (including dropdown where supported) */
body.nexos-portal-ui .woocommerce select{ color-scheme: dark; }

/* Ordering dropdown */
body.nexos-portal-ui .woocommerce .woocommerce-ordering{
  margin: 0;
}
body.nexos-portal-ui .woocommerce .woocommerce-ordering select{
  min-width: 220px;
}

/* ----------------------------------------------------------
   Woo general
----------------------------------------------------------- */
body.nexos-portal-ui .woocommerce{
  color: rgba(245,248,255,.92);
}

body.nexos-portal-ui .woocommerce a{
  color: rgba(140,190,255,.95);
  text-decoration: none;
}
body.nexos-portal-ui .woocommerce a:hover{
  color: rgba(245,248,255,.98);
}

/* Notices */
body.nexos-portal-ui .woocommerce-message,
body.nexos-portal-ui .woocommerce-info,
body.nexos-portal-ui .woocommerce-error{
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(245,248,255,.9);
  box-shadow: 0 22px 60px rgba(0,0,0,.35);
}

/* Headings */
body.nexos-portal-ui .woocommerce h1,
body.nexos-portal-ui .woocommerce h2,
body.nexos-portal-ui .woocommerce h3{
  color: rgba(245,248,255,.96);
  letter-spacing: -0.02em;
}

/* Forms */
body.nexos-portal-ui .woocommerce input.input-text,
body.nexos-portal-ui .woocommerce textarea,
body.nexos-portal-ui .woocommerce select{
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 12px !important;
  color: rgba(245,248,255,.92) !important;
  padding: 10px 12px !important;
}
body.nexos-portal-ui .woocommerce input.input-text:focus,
body.nexos-portal-ui .woocommerce textarea:focus,
body.nexos-portal-ui .woocommerce select:focus{
  outline: none !important;
  border-color: rgba(120,180,255,.45) !important;
  box-shadow: 0 0 0 4px rgba(90,150,255,.16) !important;
}

/* Buttons */
body.nexos-portal-ui.woocommerce-page .button,
body.nexos-portal-ui.woocommerce-page button.button,
body.nexos-portal-ui.woocommerce-page input.button,
body.nexos-portal-ui .woocommerce a.button{
  border-radius: 12px !important;
  padding: 12px 16px !important;
  font-weight: 900 !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(245,248,255,.95) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 16px 44px rgba(0,0,0,.42) !important;
}
body.nexos-portal-ui .woocommerce a.button:hover,
body.nexos-portal-ui .woocommerce button.button:hover,
body.nexos-portal-ui .woocommerce input.button:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.075) !important;
  border-color: rgba(130,170,255,.26) !important;
}
body.nexos-portal-ui .woocommerce a.button.alt,
body.nexos-portal-ui .woocommerce button.button.alt,
body.nexos-portal-ui .woocommerce input.button.alt{
  background: linear-gradient(180deg, rgba(90,150,255,.78), rgba(44,92,190,.55)) !important;
  border-color: rgba(255,255,255,.18) !important;
}

/* ----------------------------------------------------------
   Shop grid
----------------------------------------------------------- */
body.nexos-portal-ui .woocommerce ul.products{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
body.nexos-portal-ui .woocommerce ul.products li.product{
  float: none;
  width: auto;
  margin: 0;
  border-radius: 16px;
  padding: 18px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 26px 70px rgba(0,0,0,.36);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  overflow: hidden;
}
body.nexos-portal-ui .woocommerce ul.products li.product a img{
  border-radius: 14px;
}
body.nexos-portal-ui .woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size: 18px;
  margin: 14px 0 6px;
  color: rgba(245,248,255,.96);
}
body.nexos-portal-ui .woocommerce ul.products li.product .price{
  color: rgba(233,238,252,.78);
  font-weight: 900;
  margin: 0 0 12px;
}
body.nexos-portal-ui .woocommerce ul.products li.product .button{
  width: 100%;
  text-align: center;
}

/* ----------------------------------------------------------
   Single product
----------------------------------------------------------- */
body.nexos-portal-ui.single-product .woocommerce div.product{
  border-radius: 18px;
  padding: 22px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 26px 70px rgba(0,0,0,.36);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
body.nexos-portal-ui.single-product .woocommerce div.product .product_title{
  font-size: 34px;
  margin: 0 0 10px;
}
body.nexos-portal-ui.single-product .woocommerce div.product p.price,
body.nexos-portal-ui.single-product .woocommerce div.product span.price{
  font-size: 20px;
  font-weight: 900;
  color: rgba(233,238,252,.86);
}
body.nexos-portal-ui.single-product .woocommerce div.product form.cart{
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
body.nexos-portal-ui.single-product .woocommerce div.product form.cart .button{
  min-width: 220px;
}

/* ----------------------------------------------------------
   Cart
----------------------------------------------------------- */
body.nexos-portal-ui.woocommerce-cart .woocommerce-cart-form,
body.nexos-portal-ui.woocommerce-cart .cart-collaterals{
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 26px 70px rgba(0,0,0,.34);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
body.nexos-portal-ui.woocommerce-cart table.shop_table{
  border-collapse: separate;
  border-spacing: 0;
  border: 0;
}
body.nexos-portal-ui.woocommerce-cart table.shop_table th,
body.nexos-portal-ui.woocommerce-cart table.shop_table td{
  border-color: rgba(255,255,255,.10);
}

/* ----------------------------------------------------------
   Checkout
----------------------------------------------------------- */
body.nexos-portal-ui.woocommerce-checkout .woocommerce-checkout{
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
}
body.nexos-portal-ui.woocommerce-checkout #customer_details,
body.nexos-portal-ui.woocommerce-checkout #order_review{
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 26px 70px rgba(0,0,0,.34);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* ----------------------------------------------------------
   Pricing shortcode
----------------------------------------------------------- */
body.nexos-portal-ui .nexos-pricing-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
body.nexos-portal-ui .nexos-pricing-grid.cols-1{ grid-template-columns: 1fr; }
body.nexos-portal-ui .nexos-pricing-grid.cols-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.nexos-portal-ui .nexos-pricing-grid.cols-4{ grid-template-columns: repeat(4, minmax(0, 1fr)); }

body.nexos-portal-ui .nexos-pricing-card{
  border-radius: 16px;
  padding: 18px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 26px 70px rgba(0,0,0,.36);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
body.nexos-portal-ui .nexos-pricing-title{
  margin: 0;
  font-size: 18px;
}
body.nexos-portal-ui .nexos-pricing-price{
  margin-top: 8px;
  font-weight: 900;
  color: rgba(233,238,252,.88);
}
body.nexos-portal-ui .nexos-pricing-desc{
  margin-top: 12px;
  color: rgba(233,238,252,.70);
  line-height: 1.7;
}
body.nexos-portal-ui .nexos-pricing-actions{
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
body.nexos-portal-ui .nexos-pricing-actions .button{
  flex: 1 1 140px;
}

@media (max-width: 980px){
  body.nexos-portal-ui .woocommerce ul.products{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.nexos-portal-ui .nexos-pricing-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.nexos-portal-ui.woocommerce-checkout .woocommerce-checkout{ grid-template-columns: 1fr; }
}
@media (max-width: 640px){
  body.nexos-portal-ui .woocommerce ul.products{ grid-template-columns: 1fr; }
  body.nexos-portal-ui .nexos-pricing-grid{ grid-template-columns: 1fr; }
}
