/*
 * BuyNeopoints Cheap — Basic Theme skin
 * Inspired by the palette and UI construction in the user-supplied Basic theme CSS.
 * No external Neopets image/font assets are required by this file.
 */

:root{
  --neo-yellow:#fed123;
  --neo-yellow-light:#fff7c5;
  --neo-cream:#fffacd;
  --neo-orange:#faa819;
  --neo-orange-dark:#d88400;
  --neo-blue:#2E72C0;
  --neo-blue-top:#539ff3;
  --neo-blue-bottom:#2556ba;
  --neo-green-top:#3bc92e;
  --neo-green-bottom:#2b8a27;
  --neo-red-top:#f0311e;
  --neo-red-bottom:#ac2f1d;
  --neo-purple-top:#9153f3;
  --neo-purple-bottom:#7223b7;
  --neo-pink-top:#ff98ff;
  --neo-pink-bottom:#ff37ff;
  --neo-ink:#363636;
  --neo-muted:#616161;
  --neo-border:#faa819;
  --neo-panel:#fff;
  --neo-page:#eaf5ff;

  /* Map the site's existing design tokens into the Basic palette. */
  --np-primary:var(--neo-blue);
  --np-primary-dark:#195de0;
  --np-ink:var(--neo-ink);
  --np-muted:var(--neo-muted);
  --np-bg:var(--neo-page);
  --np-success:#2b8a27;
}

html{background:#edf6ff}
body{
  color:var(--neo-ink);
  font-family:"MuseoSansRounded","Arial Rounded MT Bold",Arial,sans-serif;
  background-color:#edf6ff !important;
}

/* Keep public page content on the same responsive Bootstrap .container width
   used by the main navigation. Do not impose a narrower custom max-width here. */

a{color:var(--neo-blue);text-decoration:none}
a:hover{color:#ffb300}

h1,h2,h3,h4,h5,h6,
.navbar-brand,
.navbar .nav-link,
footer .fw-semibold,
footer .fw-bold,
.btn,
.page-title__2020{
  font-family:"MuseoSansRounded","Arial Rounded MT Bold",Arial,sans-serif;
}

h1,h2,h3,h4,h5,h6{color:var(--neo-ink);font-weight:800}

/* --------------------------------------------------------------------------
   BASIC THEME NAVIGATION
   -------------------------------------------------------------------------- */
.navbar{
  min-height:68px;
  background:var(--neo-yellow)!important;
  border:0!important;
  border-bottom:3px solid var(--neo-orange)!important;
  box-shadow:0 3px 0 rgba(0,0,0,.06);
  overflow:visible;
  isolation:isolate;
}
.navbar::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.34;
  background-image:
    radial-gradient(circle at 12px 10px,rgba(255,255,255,.75) 0 4px,transparent 4.5px),
    radial-gradient(circle at 42px 30px,rgba(250,168,25,.55) 0 5px,transparent 5.5px),
    linear-gradient(45deg,transparent 47%,rgba(255,255,255,.35) 48% 52%,transparent 53%);
  background-size:60px 40px,60px 40px,60px 40px;
}
.navbar>.container{position:relative;z-index:1}
.navbar-brand{
  color:var(--neo-ink)!important;
  font-size:1.22rem;
  font-weight:900!important;
  text-shadow:0 1px 0 rgba(255,255,255,.7);
}
.brand-logo{
  width:44px;height:44px;
  border-radius:13px;
  background:#fff;
  border:2px solid var(--neo-orange);
  padding:3px;
  box-shadow:0 3px 0 rgba(179,112,0,.35);
}
.brand-mark{
  width:40px;height:40px;
  border-radius:12px;
  color:#fff;
  font-weight:900;
  background:linear-gradient(var(--neo-blue-top),var(--neo-blue-bottom));
  border:1px solid #fff;
  box-shadow:inset 0 -3px 2px 2px #1d3f70,inset 0 2px 0 1px #d0e5fc,0 0 0 2px #000;
}
.navbar .nav-link{
  color:var(--neo-ink)!important;
  font-size:1.12rem;
  line-height:1.2;
  font-weight:800;
  border-radius:11px;
  padding:.55rem .72rem!important;
  margin:.12rem .08rem;
}
.navbar .nav-link:hover,
.navbar .nav-link:focus{
  color:var(--neo-ink)!important;
  background:#ffd35e;
  box-shadow:inset 0 0 0 2px rgba(250,168,25,.55);
}
.navbar-toggler{
  border:2px solid var(--neo-orange)!important;
  border-radius:10px!important;
  background:var(--neo-cream)!important;
  box-shadow:0 2px 0 rgba(179,112,0,.25);
}
.navbar-collapse.show,
.navbar-collapse.collapsing{
  margin-top:.65rem;
  padding:.65rem;
  border:2px solid var(--neo-orange);
  border-radius:12px;
  background:var(--neo-cream);
  box-shadow:0 4px 0 rgba(250,168,25,.35);
}
@media(min-width:992px){
  .navbar-collapse.show,.navbar-collapse.collapsing{margin-top:0;padding:0;border:0;background:transparent;box-shadow:none}
}

/* --------------------------------------------------------------------------
   BUTTON SYSTEM — CHUNKY BASIC-THEME CONSTRUCTION
   -------------------------------------------------------------------------- */
.btn:not(.navbar-toggler){
  position:relative;
  border:1px solid #fff!important;
  border-radius:15px!important;
  padding:.42rem .95rem .62rem!important;
  font-weight:900!important;
  line-height:1.2;
  text-align:center;
  text-decoration:none!important;
  transition:filter .12s ease,transform .05s ease,box-shadow .12s ease;
  overflow:visible;
}
.btn:not(.navbar-toggler):hover{filter:brightness(1.08)}
.btn:not(.navbar-toggler):active{transform:translateY(2px)}
.btn:not(.navbar-toggler):focus-visible{outline:3px solid rgba(46,114,192,.28)!important;outline-offset:4px}
.btn:not(.navbar-toggler):disabled,.btn.disabled{filter:grayscale(1);opacity:.62}

.btn-primary,.btn-outline-primary{
  color:#fff!important;
  text-shadow:0 0 4px #000;
  background:linear-gradient(var(--neo-blue-top),var(--neo-blue-bottom))!important;
  box-shadow:inset 0 0 0 1px #539ff3,inset 0 -3px 2px 3px #1d3f70,inset 0 2px 0 1px #d0e5fc,0 0 0 2px #000!important;
}
.btn-primary:hover,.btn-primary:focus,.btn-outline-primary:hover,.btn-outline-primary:focus{
  background:linear-gradient(#59c2ff,#195de0)!important;
  box-shadow:inset 0 0 0 1px #59c2ff,inset 0 -3px 2px 3px #0f3d82,inset 0 2px 0 1px #f5ffff,0 0 0 2px #000!important;
}
.btn-primary:active,.btn-outline-primary:active{
  background:linear-gradient(#2556ba,#539ff3)!important;
  box-shadow:inset 0 0 0 1px #2556ba,inset 0 -1px 2px 3px #1d3f70,inset 0 2px 0 1px #d0e5fc,0 0 0 2px #000!important;
}

.btn-success,.btn-outline-success{
  color:#111!important;
  text-shadow:none;
  background:linear-gradient(var(--neo-green-top),var(--neo-green-bottom))!important;
  box-shadow:inset 0 0 0 1px #3bc92e,inset 0 -3px 2px 3px #246717,inset 0 2px 0 1px #c9f0c6,0 0 0 2px #000!important;
}
.btn-success:hover,.btn-success:focus,.btn-outline-success:hover,.btn-outline-success:focus{
  background:linear-gradient(#37ef26,#2b8a27)!important;
  box-shadow:inset 0 0 0 1px #37ef26,inset 0 -3px 2px 3px #187607,inset 0 2px 0 1px #efffeb,0 0 0 2px #000!important;
}

.btn-danger,.btn-outline-danger{
  color:#fff!important;
  text-shadow:0 0 4px #000;
  background:linear-gradient(var(--neo-red-top),var(--neo-red-bottom))!important;
  box-shadow:inset 0 0 0 1px #f0311e,inset 0 -3px 2px 3px #820e0d,inset 0 2px 0 1px #fcdbd6,0 0 0 2px #000!important;
}
.btn-danger:hover,.btn-danger:focus,.btn-outline-danger:hover,.btn-outline-danger:focus{
  background:linear-gradient(#ff3721,#cf270b)!important;
  box-shadow:inset 0 0 0 1px #ff3721,inset 0 -3px 2px 3px #8f0200,inset 0 2px 0 1px #fff5f6,0 0 0 2px #000!important;
}

.btn-dark{
  color:#fff!important;
  text-shadow:0 0 4px #000;
  background:linear-gradient(var(--neo-purple-top),var(--neo-purple-bottom))!important;
  box-shadow:inset 0 0 0 1px #9153f3,inset 0 -3px 2px 3px #431d70,inset 0 2px 0 1px #e1d0fc,0 0 0 2px #000!important;
}
.btn-dark:hover,.btn-dark:focus{
  background:linear-gradient(#ac7bff,#ad22f6)!important;
  box-shadow:inset 0 0 0 1px #ac7bff,inset 0 -3px 2px 3px #5e15ae,inset 0 2px 0 1px #fdfdff,0 0 0 2px #000!important;
}

.btn-warning,.btn-light,.btn-secondary,.btn-outline-secondary{
  color:var(--neo-ink)!important;
  text-shadow:none;
  background:linear-gradient(#f6e250,#ebb233)!important;
  box-shadow:inset 0 0 0 1px #f6e250,inset 0 -3px 2px 3px #c47c19,inset 0 2px 0 1px #fdf9dc,0 0 0 2px #000!important;
}
.btn-warning:hover,.btn-light:hover,.btn-secondary:hover,.btn-outline-secondary:hover,
.btn-warning:focus,.btn-light:focus,.btn-secondary:focus,.btn-outline-secondary:focus{
  color:var(--neo-ink)!important;
  background:linear-gradient(#ffff54,#ffd328)!important;
  box-shadow:inset 0 0 0 1px #ffff54,inset 0 -3px 2px 3px #ea8f09,inset 0 2px 0 1px #fffff3,0 0 0 2px #000!important;
}

.btn-lg{font-size:1.08rem!important;padding:.62rem 1.2rem .82rem!important}
.btn-sm{font-size:.86rem!important;padding:.3rem .7rem .48rem!important}

/* --------------------------------------------------------------------------
   PAGE SHELL, HERO, PANELS, CARDS
   -------------------------------------------------------------------------- */
.hero{
  position:relative;
  padding:68px 0 50px;
  background:
    radial-gradient(circle at 85% 20%,rgba(254,209,35,.42),transparent 24%),
    radial-gradient(circle at 12% 75%,rgba(83,159,243,.20),transparent 25%),
    linear-gradient(180deg,#fffde8,#fff 62%,rgba(255,250,205,.68));
  border-bottom:3px solid var(--neo-orange);
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.26;
  background-image:radial-gradient(circle,rgba(250,168,25,.8) 0 2px,transparent 2.5px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,black,transparent 80%);
}
.hero>.container{position:relative;z-index:1}
.hero h1{color:var(--neo-ink);text-shadow:0 2px 0 #fff}
.hero-copy{color:#555}

.panel,.product-card,.feature-card,.seo-info-card,.stat-card,.auth-card{
  background:var(--neo-panel)!important;
  border:2px solid var(--neo-orange)!important;
  border-radius:15px!important;
  box-shadow:0 4px 0 rgba(250,168,25,.55),0 10px 24px rgba(46,114,192,.08)!important;
}
.product-card{transition:transform .15s ease,box-shadow .15s ease}
.product-card:hover{transform:translateY(-2px);box-shadow:0 6px 0 rgba(250,168,25,.62),0 14px 28px rgba(46,114,192,.12)!important}
.package-card-image-link{
  background:linear-gradient(#fffef3,var(--neo-cream))!important;
  border-bottom:2px solid var(--neo-orange)!important;
}
.package-card-image{
  object-fit:contain!important;
  object-position:center center!important;
}
.package-detail-image-wrap{
  border:2px solid var(--neo-orange)!important;
  border-radius:14px!important;
  background:var(--neo-cream)!important;
  box-shadow:0 3px 0 rgba(250,168,25,.4);
}
.feature-card,.seo-info-card{background:linear-gradient(#fff,#fffdf0)!important}
.feature-icon{
  color:var(--neo-blue)!important;
  background:var(--neo-yellow-light)!important;
  border:2px solid var(--neo-orange);
  border-radius:12px!important;
}
.trust-pill{
  background:var(--neo-cream)!important;
  border:2px solid var(--neo-orange)!important;
  color:var(--neo-ink);
  box-shadow:0 3px 0 rgba(250,168,25,.35)!important;
}
.secure-box{
  background:var(--neo-cream)!important;
  border:2px solid var(--neo-orange)!important;
  border-radius:12px!important;
  box-shadow:0 3px 0 rgba(250,168,25,.35);
}
.secure-box i{color:#2b8a27!important}

/* Reviews and horizontal cards */
.review-card{
  border:2px solid var(--neo-orange)!important;
  border-radius:15px!important;
  background:linear-gradient(#fff,#fffdf0)!important;
  box-shadow:0 4px 0 rgba(250,168,25,.45)!important;
}
.review-scroll-btn{min-width:44px}

/* --------------------------------------------------------------------------
   FORMS, TABLES, ACCORDIONS, ALERTS
   -------------------------------------------------------------------------- */
.form-control,.form-select,.input-group-text{
  border:2px solid #bfb89e!important;
  border-radius:10px;
  background-color:#fffef5;
  color:var(--neo-ink);
}
.input-group>.input-group-text:first-child{border-radius:10px 0 0 10px}
.input-group>.form-control:last-child,.input-group>.form-select:last-child{border-radius:0 10px 10px 0}
.form-control:focus,.form-select:focus{
  border-color:var(--neo-orange)!important;
  box-shadow:0 0 0 .24rem rgba(254,209,35,.38)!important;
  background:#fff;
}
.form-check-input:checked{background-color:var(--neo-blue);border-color:var(--neo-blue)}
.form-label{font-weight:800;color:var(--neo-ink)}
.form-text,.text-secondary{color:#666!important}

.table{
  --bs-table-bg:#fff;
  --bs-table-striped-bg:#fffdf0;
  --bs-table-hover-bg:#fff7c5;
  border-color:#d9cfa6;
}
.table thead th{
  background:var(--neo-yellow)!important;
  color:var(--neo-ink)!important;
  border-bottom:2px solid var(--neo-orange)!important;
  font-weight:900;
}
.table-responsive{
  border-radius:11px;
}

.accordion{
  --bs-accordion-border-color:var(--neo-orange);
  --bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(254,209,35,.35);
  --bs-accordion-active-bg:var(--neo-yellow);
  --bs-accordion-active-color:var(--neo-ink);
}
.accordion-item{border:2px solid var(--neo-orange)!important;background:#fff}
.accordion-button{font-weight:800;background:var(--neo-cream);color:var(--neo-ink)}
.accordion-button:not(.collapsed){background:var(--neo-yellow);color:var(--neo-ink);box-shadow:inset 0 -2px 0 var(--neo-orange)}

.alert{
  border-width:2px!important;
  border-style:solid!important;
  border-radius:12px!important;
  box-shadow:0 3px 0 rgba(0,0,0,.08);
}
.alert-primary{background:#e8f4ff;border-color:#539ff3!important;color:#183d70}
.alert-success{background:#eaf9e7;border-color:#3bc92e!important;color:#1b5d17}
.alert-warning{background:#fff7c5;border-color:#faa819!important;color:#6b4500}
.alert-danger{background:#fff0ed;border-color:#f0311e!important;color:#7f1d13}

.badge{font-weight:800}
.badge-soft{background:var(--neo-cream)!important;color:var(--neo-ink)!important;border:1px solid var(--neo-orange)}
.status-paid,.status-fulfilled{background:#dff5da!important;color:#1c6418!important;border:1px solid #3bc92e}
.status-pending,.status-pending_payment{background:#fff4b8!important;color:#714900!important;border:1px solid #faa819}
.status-canceled,.status-refunded{background:#ffe1dd!important;color:#8f1e14!important;border:1px solid #f0311e}

.breadcrumb{
  display:inline-flex;
  padding:.55rem .85rem;
  background:var(--neo-cream);
  border:2px solid var(--neo-orange);
  border-radius:10px;
  box-shadow:0 2px 0 rgba(250,168,25,.35);
}

/* --------------------------------------------------------------------------
   ADMIN
   -------------------------------------------------------------------------- */
.admin-body{background-color:#edf6ff}
.admin-sidebar{
  background:var(--neo-cream)!important;
  border-right:3px solid var(--neo-orange)!important;
  box-shadow:3px 0 0 rgba(250,168,25,.16);
}
.admin-sidebar .nav-link{
  color:var(--neo-ink)!important;
  font-weight:800;
  border-radius:10px;
}
.admin-sidebar .nav-link:hover{
  color:var(--neo-ink)!important;
  background:#ffd35e!important;
  box-shadow:inset 0 0 0 2px var(--neo-orange);
}
.stat-card{background:linear-gradient(#fff,#fffdf1)!important}
.stat-value{color:var(--neo-blue)}

/* --------------------------------------------------------------------------
   FOOTER
   -------------------------------------------------------------------------- */
footer{
  position:relative;
  background:var(--neo-yellow)!important;
  border:0!important;
  border-top:3px solid var(--neo-orange)!important;
  color:var(--neo-ink);
  overflow:hidden;
  isolation:isolate;
}
footer::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.30;
  pointer-events:none;
  background-image:
    radial-gradient(circle at 10px 12px,rgba(255,255,255,.8) 0 4px,transparent 4.5px),
    radial-gradient(circle at 45px 28px,rgba(250,168,25,.55) 0 5px,transparent 5.5px);
  background-size:60px 40px;
}
footer .text-secondary{color:#4f4f4f!important}
.footer-link{
  display:block;
  color:var(--neo-ink)!important;
  font-size:1.10rem;
  line-height:1.25;
  font-weight:800;
  margin:.48rem 0;
}
.footer-link:hover{color:var(--neo-blue)!important;text-decoration:underline}

/* --------------------------------------------------------------------------
   SMALL DETAILS
   -------------------------------------------------------------------------- */
hr{border-top:2px solid #ead99a;opacity:1}
.stock-dot{background:#36b82d!important;box-shadow:0 0 0 4px rgba(59,201,46,.18)!important}
.price,.np-amount,.product-detail-amount{color:var(--neo-blue)}
.compare-price{color:#777!important}
.cart-badge{border:2px solid #000}
.oauth-btn{min-height:48px}
.order-timeline{border-left-color:var(--neo-orange)!important}
.order-timeline>div:before{background:var(--neo-yellow)!important;border:2px solid #000}

/* Selection and scrollbars add a little of the playful Basic-theme polish. */
::selection{background:#fed123;color:#363636}
@supports selector(::-webkit-scrollbar){
  ::-webkit-scrollbar{width:13px;height:13px}
  ::-webkit-scrollbar-track{background:#fffacd}
  ::-webkit-scrollbar-thumb{background:#faa819;border:3px solid #fffacd;border-radius:999px}
}

@media(max-width:991px){
  .admin-sidebar{border-right:0!important;border-bottom:3px solid var(--neo-orange)!important}
  .hero{padding-top:48px}
}

@media(max-width:575px){
  .btn:not(.navbar-toggler){border-radius:13px!important}
  .panel,.product-card,.feature-card,.seo-info-card,.stat-card,.auth-card{border-radius:13px!important}
  .hero h1{font-size:2.55rem}
}


/* --------------------------------------------------------------------------
   HOTFIX: PRODUCT DETAIL STICKY PURCHASE SUMMARY
   The old product row used Bootstrap align-items-start. In a flex row that kept
   the purchase column only as tall as the card, leaving position:sticky with no
   containing-block height to travel through. Stretch the column to the height of
   the product content and keep all sticky ancestors overflow-visible.
   -------------------------------------------------------------------------- */
.product-detail-row{
  align-items:stretch!important;
  overflow:visible!important;
}
.product-detail-content,
.product-summary-column{
  overflow:visible!important;
}
.product-summary-column{
  align-self:stretch!important;
  position:relative;
}
.product-summary-column>.sticky-summary{
  position:-webkit-sticky!important;
  position:sticky!important;
  top:88px!important;
  z-index:20;
}
@media(max-width:991.98px){
  .product-summary-column>.sticky-summary{
    position:static!important;
    top:auto!important;
  }
}


/* --------------------------------------------------------------------------
   DROPDOWN ARROW HOTFIX
   Keep Bootstrap/native select arrows visible after the Basic-theme skin.
   -------------------------------------------------------------------------- */
.form-select{
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  appearance:none!important;
  background-color:#fffef5!important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23363636' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important;
  background-repeat:no-repeat!important;
  background-position:right .75rem center!important;
  background-size:16px 12px!important;
  padding-right:2.5rem!important;
}
.form-select:focus{
  background-color:#fff!important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%232E72C0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important;
}
.form-select[multiple],
.form-select[size]:not([size="1"]){
  background-image:none!important;
  padding-right:.75rem!important;
}

/* Bootstrap button dropdowns: restore a clear caret even under themed buttons. */
.dropdown-toggle::after{
  display:inline-block!important;
  width:0!important;
  height:0!important;
  margin-left:.45em!important;
  vertical-align:.18em!important;
  content:""!important;
  border-top:.42em solid currentColor!important;
  border-right:.34em solid transparent!important;
  border-bottom:0!important;
  border-left:.34em solid transparent!important;
  opacity:.95;
}
.dropup .dropdown-toggle::after{
  border-top:0!important;
  border-right:.34em solid transparent!important;
  border-bottom:.42em solid currentColor!important;
  border-left:.34em solid transparent!important;
}
.dropend .dropdown-toggle::after{
  border-top:.34em solid transparent!important;
  border-right:0!important;
  border-bottom:.34em solid transparent!important;
  border-left:.42em solid currentColor!important;
  vertical-align:0!important;
}
.dropstart .dropdown-toggle::before{
  display:inline-block!important;
  margin-right:.45em!important;
  vertical-align:.18em!important;
  content:""!important;
  border-top:.34em solid transparent!important;
  border-right:.42em solid currentColor!important;
  border-bottom:.34em solid transparent!important;
  border-left:0!important;
}

/* --------------------------------------------------------------------------
   TYPOGRAPHY HOTFIX — CAFETERIA UI + MUSEO SANS ROUNDED BODY

   User-provided fonts expected in /assets/fonts/.
   Supported Museo filenames (first existing file wins):
   - museosansrounded-500.otf
   - museosansrounded-500.ttf
   - museo-sans-rounded.otf
   - museo-sans-rounded.ttf

   Cafeteria files:
   - cafeteria-black.otf
   - cafeteria-black.ttf

   Font binaries are bundled locally in /assets/fonts/.
   -------------------------------------------------------------------------- */
@font-face{
  font-family:"Cafeteria";
  src:url("../fonts/cafeteria-black.otf") format("opentype"),
      url("../fonts/cafeteria-black.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

@font-face{
  font-family:"MuseoSansRounded";
  src:url("../fonts/museosansrounded-500.woff") format("woff"),
      url("../fonts/MuseoSansRounded500.otf") format("opentype");
  font-style:normal;
  font-weight:500;
  font-display:swap;
}

@font-face{
  font-family:"MuseoSansRounded";
  src:url("../fonts/MuseoSansRounded700.otf") format("opentype");
  font-style:normal;
  font-weight:700;
  font-display:swap;
}

/* Default/site copy: Museo Sans Rounded. */
html,body,
input,select,textarea,button,
.form-control,.form-select,.input-group-text,
table,thead,tbody,tfoot,tr,th,td{
  font-family:"MuseoSansRounded","Arial Rounded MT Bold",Arial,sans-serif;
  font-weight:500;
}

strong,b,.fw-semibold,.fw-bold,.table th,label,.form-label{
  font-family:"MuseoSansRounded","Arial Rounded MT Bold",Arial,sans-serif;
  font-weight:700;
}

/* Basic-theme display/UI typography. */
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6,
.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,
.section-title,.card-title,.panel-title,
.navbar-brand,
.navbar .nav-link,
.navbar .dropdown-item,
.admin-sidebar .nav-link,
.btn,
.accordion-button,
.nav-tabs .nav-link,
.nav-pills .nav-link,
.card-header,
.modal-title,
.offcanvas-title,
.page-title__2020,
.footer-link,
footer h1,footer h2,footer h3,footer h4,footer h5,footer h6{
  font-family:"Cafeteria","MuseoSansRounded","Arial Rounded MT Bold",Arial,sans-serif!important;
  letter-spacing:.01em;
}

/* Cafeteria Black is already a heavy display face. */
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6,
.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,
.section-title,.card-title,.panel-title,
.navbar-brand,
.navbar .nav-link,
.admin-sidebar .nav-link,
.btn,
.accordion-button,
.nav-tabs .nav-link,
.nav-pills .nav-link,
.footer-link{
  font-weight:400!important;
}

/* Data/content stays Museo Sans Rounded even when the component sits inside display UI. */
.form-label,.form-text,
.form-control,.form-select,.input-group-text,
.table,.table th,.table td,
.alert,.badge,
.price,.np-amount,.product-detail-amount,.stat-value,
.seo-copy,.hero-copy,.trust-pill{
  font-family:"MuseoSansRounded","Arial Rounded MT Bold",Arial,sans-serif!important;
}


/* --------------------------------------------------------------------------
   NAV + FOOTER LINK SIZE HOTFIX
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px){
  .navbar .nav-link{
    font-size:1.16rem;
    padding:.64rem .78rem!important;
  }
}

/* --------------------------------------------------------------------------
   BODY / NAV CONTAINER WIDTH HOTFIX
   Public content intentionally uses Bootstrap's native .container breakpoints,
   exactly matching .navbar > .container (540/720/960/1140/1320px).
   -------------------------------------------------------------------------- */

/* =========================================================
   REVIEWS + STOREFRONT STATS
   ========================================================= */
.store-stat-card{
    display:flex;
    align-items:center;
    gap:.9rem;
    height:100%;
    padding:1rem 1.1rem;
    background:#fffef5;
    border:2px solid #faa819;
    border-radius:15px;
    box-shadow:0 4px 0 rgba(250,168,25,.24);
}
.store-stat-icon{
    width:44px;
    height:44px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    font-size:1.05rem;
}
.store-stat-value{
    font-family:"Cafeteria",Arial,sans-serif;
    font-size:1.55rem;
    line-height:1.05;
    color:#363636;
}
.product-review-list{display:grid;gap:1rem}
.product-review-item{
    padding:1.05rem 0;
    border-bottom:1px solid rgba(250,168,25,.45);
}
.product-review-item:first-child{padding-top:0}
.product-review-item:last-child{border-bottom:0;padding-bottom:0}
.product-reviews-panel .review-stars,.review-section .review-stars{color:#ff8a00;letter-spacing:1px}
.review-submit-icon{
    width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
    background:#fed123;border:2px solid #faa819;color:#363636;font-size:1.2rem;flex:0 0 52px;
    box-shadow:inset 0 2px 0 rgba(255,255,255,.7),0 2px 0 rgba(250,168,25,.35)
}
.review-admin-excerpt{max-width:520px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.status-pending{background:#fff3cd!important;color:#664d03!important}
.status-approved{background:#d1e7dd!important;color:#0f5132!important}
.status-rejected{background:#f8d7da!important;color:#842029!important}
@media (max-width:575.98px){.store-stat-value{font-size:1.3rem}.store-stat-card{padding:.85rem;gap:.65rem}.store-stat-icon{width:38px;height:38px;flex-basis:38px}}


/* Review carousel empty-slot fillers.
   These are calls to action, not customer testimonials. */
.review-card-placeholder{
  background:linear-gradient(180deg,#fffdf0,#fff7c5)!important;
  border-style:dashed!important;
}
.review-card-placeholder .review-placeholder-stars{
  color:#d7b94a;
  opacity:.45;
  letter-spacing:1px;
}
.review-placeholder-icon{
  width:48px;
  height:48px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 48px;
  background:var(--neo-yellow-light);
  border:2px solid var(--neo-orange);
  color:var(--neo-blue);
  font-size:1.2rem;
}


/* =========================================================
   PASSWORD SHOW / HIDE TOGGLE
   ========================================================= */
.password-toggle-wrap,
.password-toggle-host {
    position: relative;
}

.password-toggle-wrap {
    width: 100%;
}

.password-toggle-wrap .has-password-toggle,
.password-toggle-host .has-password-toggle {
    padding-right: 3.25rem !important;
}

.password-toggle-button {
    position: absolute;
    top: 50%;
    right: .55rem;
    transform: translateY(-50%);
    z-index: 7;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #2E72C0;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: none !important;
}

.password-toggle-button:hover,
.password-toggle-button:focus {
    color: #FFB300;
    background: #fff7c5;
}

.password-toggle-button:focus-visible {
    outline: 2px solid #2E72C0;
    outline-offset: 1px;
}

.password-toggle-button:active {
    transform: translateY(-50%) scale(.94);
}

.password-toggle-button i {
    pointer-events: none;
}

/* Keep the eye vertically centered for Bootstrap large controls. */
.form-control-lg.has-password-toggle + .password-toggle-button,
.password-toggle-wrap:has(.form-control-lg) .password-toggle-button {
    width: 2.55rem;
    height: 2.55rem;
    right: .65rem;
}

/* A disabled password can still be viewed if already populated, but make the icon subdued. */
.has-password-toggle:disabled ~ .password-toggle-button {
    opacity: .55;
}


/* --------------------------------------------------------------------------
   CART COUPON FIELD — keep chunky Basic-theme button clear of the input
   -------------------------------------------------------------------------- */
.coupon-code-row{
  display:flex;
  align-items:stretch;
  gap:.65rem;
  width:100%;
}
.coupon-code-row .form-control{
  flex:1 1 auto;
  min-width:0;
  width:1%;
  border-radius:10px!important;
}
.coupon-code-row .coupon-apply-btn{
  flex:0 0 auto;
  white-space:nowrap;
  margin:2px 2px 2px 0;
  min-width:68px;
}
@media(max-width:420px){
  .coupon-code-row{
    gap:.5rem;
  }
  .coupon-code-row .coupon-apply-btn{
    min-width:62px;
    padding-left:.75rem!important;
    padding-right:.75rem!important;
  }
}


/* =========================================================
   WISHLIST
   ========================================================= */.wishlist-form{margin:0}
.wishlist-nav-badge{
  position:absolute;
  top:-8px;
  right:-8px;
  min-width:1.35rem;
  line-height:1;
  padding:.28rem .38rem;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:.7rem!important;
}
.wishlist-card{
  position:relative;
}
.wishlist-card-image{
  width:96px;
  height:96px;
  object-fit:contain;
  border:1px solid #eadfce;
  border-radius:12px;
  background:#fffef5;
  flex:0 0 96px;
}
@media(max-width:575.98px){
  .wishlist-card-image{
    width:78px;
    height:78px;
    flex-basis:78px;
  }
}


/* Affiliate program */
.affiliate-link-group{
  display:flex;
  align-items:stretch;
  gap:.65rem;
}
.affiliate-link-group .form-control{
  min-width:0;
  border-radius:10px!important;
}
.affiliate-link-group .btn{
  flex:0 0 auto;
  border-radius:10px!important;
}
@media(max-width:575.98px){
  .affiliate-link-group{display:grid;grid-template-columns:1fr}
  .affiliate-link-group .btn{width:100%}
}


/* =========================================================
   USER NAVIGATION DROPDOWN
   ========================================================= */
.user-nav-dropdown{
  position:relative;
}
.user-nav-toggle{
  display:inline-flex;
  align-items:center;
  gap:.15rem;
  max-width:220px;
}
.user-nav-toggle .user-nav-label{
  display:inline-block;
  max-width:145px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.user-nav-toggle.dropdown-toggle::after{
  margin-left:.4rem;
  vertical-align:.12em;
}
.user-nav-menu{
  width:270px;
  margin-top:.7rem!important;
  padding:.45rem 0 .55rem;
  border:2px solid #faa819;
  border-radius:14px;
  background:#fffef5;
  box-shadow:0 7px 0 rgba(0,0,0,.16),0 14px 28px rgba(0,0,0,.12);
  overflow:hidden;
}
.user-nav-summary{
  line-height:1.3;
}
.user-nav-menu .dropdown-divider{
  border-top-color:#eadfce;
  margin:.35rem 0;
}
.user-nav-menu .dropdown-item{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:.65rem 1rem;
  color:#2f3540;
  font-weight:700;
}
.user-nav-menu .dropdown-item i{
  width:20px;
  text-align:center;
}
.user-nav-menu .dropdown-item:hover,
.user-nav-menu .dropdown-item:focus{
  background:#fff3bd;
  color:#1f5f9e;
}
.user-nav-menu .user-nav-logout{
  color:#b32636!important;
}
.user-nav-menu .user-nav-logout:hover,
.user-nav-menu .user-nav-logout:focus{
  background:#fff0f2;
  color:#8c1724!important;
}

@media(max-width:991.98px){
  .user-nav-dropdown{
    width:100%;
  }
  .user-nav-toggle{
    width:100%;
    max-width:none;
    justify-content:space-between;
  }
  .user-nav-toggle .user-nav-label{
    max-width:calc(100% - 70px);
  }
  .user-nav-menu{
    width:100%;
    margin-top:.5rem!important;
    position:static!important;
    transform:none!important;
  }
}


/* =========================================================
   BUY ITEMS — NP / NC NAVIGATION DROPDOWN
   ========================================================= */
.shop-items-nav-dropdown{position:relative}
.shop-items-mega-menu{
  width:min(620px,calc(100vw - 2rem));
  padding:0;
  margin-top:.55rem!important;
  border:2px solid #faa819;
  border-radius:15px;
  background:#fffef5;
  box-shadow:0 7px 0 rgba(0,0,0,.16),0 16px 30px rgba(0,0,0,.13);
  overflow:hidden;
  grid-template-columns:1fr 1fr;
}
.shop-items-mega-menu.show{display:grid}
.shop-items-column{min-width:0;padding:.8rem}
.shop-items-column + .shop-items-column{border-left:1px solid #eadfce}
.shop-items-column-heading{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.5rem .45rem .85rem;
  margin-bottom:.35rem;
  border-bottom:1px solid #eadfce;
}
.shop-items-column-heading strong{display:block;font-size:1.12rem}
.shop-items-type-icon{
  width:44px;
  height:44px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
  border:2px solid rgba(0,0,0,.12);
  font-weight:900;
  line-height:1;
}
.shop-items-type-icon-np{background:#fff0a8;color:#6f5600;border-color:#e3b72d}
.shop-items-type-icon-nc{background:#e8ddff;color:#6944a8;border-color:#a987df}
.shop-items-menu-link{
  display:flex;
  align-items:center;
  gap:.2rem;
  min-height:44px;
  padding:.62rem .7rem;
  border-radius:10px;
  color:#343a40;
  font-weight:700;
  text-decoration:none!important;
}
.shop-items-menu-link:hover,.shop-items-menu-link:focus{background:#fff3bd;color:#1f5f9e}
.shop-items-column-nc .shop-items-menu-link:hover,
.shop-items-column-nc .shop-items-menu-link:focus{background:#f0eaff;color:#64409d}
.shop-items-menu-link-all{margin-bottom:.25rem}
.shop-items-menu-footer{
  grid-column:1 / -1;
  padding:.72rem 1rem;
  border-top:1px solid #eadfce;
  background:#fff8d7;
  text-align:center;
  font-weight:700;
}
.shop-items-menu-footer a{text-decoration:none}
@media(min-width:992px){
  .shop-items-nav-dropdown .shop-items-mega-menu{left:50%;transform:translateX(-34%)}
}
@media(max-width:991.98px){
  .shop-items-nav-dropdown{width:100%}

  /* Keep the mobile menu collapsed until Bootstrap toggles .show. */
  .shop-items-mega-menu{
    width:100%;
    display:none!important;
    position:static!important;
    transform:none!important;
    margin:.4rem 0 .7rem!important;
    box-shadow:none;
  }

  .shop-items-mega-menu.show{
    display:block!important;
  }

  .shop-items-column + .shop-items-column{
    border-left:0;
    border-top:1px solid #eadfce;
  }
}


/* =========================================================
   SOCIAL LOGIN BUTTONS — PROVIDER BRAND COLORS
   ========================================================= */
.oauth-btn{
  min-height:48px;
  font-size:1.05rem!important;
}

/* Google: actual multicolor G logo on a clean white brand button. */
.oauth-google{
  color:#1f1f1f!important;
  text-shadow:none!important;
  background:linear-gradient(#ffffff,#f3f4f5)!important;
  border:1px solid #fff!important;
  box-shadow:
    inset 0 0 0 1px #a9adb3,
    inset 0 -3px 2px 3px #c7c9cc,
    inset 0 2px 0 1px #ffffff,
    0 0 0 2px #000!important;
}
.google-login-logo{
  width:24px;
  height:24px;
  object-fit:contain;
  flex:0 0 24px;
  border-radius:50%;
}
.oauth-google:hover,
.oauth-google:focus{
  color:#1f1f1f!important;
  background:linear-gradient(#ffffff,#e8eaed)!important;
  box-shadow:
    inset 0 0 0 1px #8d9298,
    inset 0 -3px 2px 3px #adb0b5,
    inset 0 2px 0 1px #ffffff,
    0 0 0 2px #000!important;
}
.oauth-google:active{
  background:linear-gradient(#e8eaed,#ffffff)!important;
  box-shadow:
    inset 0 0 0 1px #8d9298,
    inset 0 -1px 2px 3px #adb0b5,
    inset 0 2px 0 1px #ffffff,
    0 0 0 2px #000!important;
}

/* Discord: official blurple family with white text/icon. */
.oauth-discord{
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.35)!important;
  background:linear-gradient(#6d78f5,#5865f2)!important;
  border:1px solid #fff!important;
  box-shadow:
    inset 0 0 0 1px #7c86ff,
    inset 0 -3px 2px 3px #3f48b9,
    inset 0 2px 0 1px #aeb5ff,
    0 0 0 2px #000!important;
}
.oauth-discord .discord-dot{
  color:#fff!important;
  text-shadow:none!important;
}
.oauth-discord:hover,
.oauth-discord:focus{
  color:#fff!important;
  background:linear-gradient(#7984ff,#6571f5)!important;
  box-shadow:
    inset 0 0 0 1px #8e97ff,
    inset 0 -3px 2px 3px #343da8,
    inset 0 2px 0 1px #c8ccff,
    0 0 0 2px #000!important;
}
.oauth-discord:active{
  background:linear-gradient(#4c57d6,#6974f7)!important;
  box-shadow:
    inset 0 0 0 1px #5662dc,
    inset 0 -1px 2px 3px #343da8,
    inset 0 2px 0 1px #aeb5ff,
    0 0 0 2px #000!important;
}


/* =========================================================
   BUY ITEMS — FILTER SIDEBAR + GRID/LIST VIEW
   ========================================================= */
.buy-items-layout-row{
  align-items:stretch!important;
  overflow:visible!important;
}
.buy-items-sidebar-column{
  align-self:stretch!important;
  position:relative;
  overflow:visible!important;
}
.buy-items-filter-panel{
  overflow:hidden;
}
@media(min-width:992px){
  .buy-items-sidebar-column>.buy-items-filter-panel{
    position:-webkit-sticky!important;
    position:sticky!important;
    top:88px!important;
    z-index:20;
  }
}
@media(max-width:991.98px){
  .buy-items-sidebar-column>.buy-items-filter-panel{
    position:static!important;
    top:auto!important;
  }
}
.buy-items-filter-panel .form-label{
  margin-bottom:.4rem;
}
.buy-items-filter-toggle{
  width:calc(100% - 2rem);
}
.buy-items-results-toolbar{
  min-height:78px;
}
.store-view-toggle{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:nowrap;
}
.store-view-toggle .btn{
  min-width:46px;
  margin:0!important;
  flex:0 0 auto;
}
.store-view-toggle .btn.is-active,
.store-view-toggle .btn[aria-pressed="true"]{
  background:var(--bs-primary);
  color:#fff;
}
.store-result-card{
  min-height:100%;
}
.store-result-image-empty{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fffef5;
  color:#9a8d78;
  font-size:3rem;
}

/* Grid view */
.store-results.is-grid .store-result-card{
  display:flex;
  flex-direction:column;
}
.store-results.is-grid .store-card-body{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
}
.store-results.is-grid .store-card-actions{
  margin-top:auto!important;
  padding-top:1rem;
}

/* List view */
.store-results.is-list .store-result-item{
  width:100%;
  flex:0 0 100%;
  max-width:100%;
}
.store-results.is-list .store-result-card{
  display:flex;
  flex-direction:row;
  min-height:210px;
}
.store-results.is-list .store-result-image-link{
  width:220px;
  flex:0 0 220px;
  min-height:210px;
  border-right:1px solid #eadfce;
  border-bottom:0;
}
.store-results.is-list .store-result-image{
  width:100%;
  height:100%;
  min-height:210px;
  max-height:240px;
  object-fit:contain;
}
.store-results.is-list .store-result-image-empty{
  min-height:210px;
}
.store-results.is-list .store-card-body{
  flex:1 1 auto;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(165px,190px);
  column-gap:1.25rem;
  align-content:center;
}
.store-results.is-list .store-card-body > *:not(.store-card-actions){
  grid-column:1;
}
.store-results.is-list .store-card-badges{
  align-self:end;
}
.store-results.is-list .store-card-title{
  margin-top:1rem!important;
}
.store-results.is-list .store-card-actions{
  grid-column:2;
  grid-row:1 / span 6;
  align-self:center;
  margin-top:0!important;
}

@media(max-width:767.98px){
  .store-results.is-list .store-result-card{
    flex-direction:column;
  }
  .store-results.is-list .store-result-image-link{
    width:100%;
    flex:0 0 auto;
    min-height:190px;
    border-right:0;
    border-bottom:1px solid #eadfce;
  }
  .store-results.is-list .store-result-image{
    min-height:190px;
    max-height:220px;
  }
  .store-results.is-list .store-card-body{
    display:block;
  }
  .store-results.is-list .store-card-actions{
    margin-top:1.5rem!important;
  }
}


/* =========================================================
   ADMIN FLASH / LAYOUT STABILITY
   ========================================================= */
.admin-shell{
  padding-left:0!important;
  padding-right:0!important;
}
.admin-layout-row{
  min-height:calc(100vh - 68px);
  align-items:stretch;
}
.admin-main{
  min-width:0;
}
.admin-page-toolbar{
  min-height:42px;
}
.admin-flash-stack{
  width:100%;
  position:relative;
  clear:both;
}
.admin-flash-stack .alert{
  width:100%;
  margin-left:0!important;
  margin-right:0!important;
  padding:.9rem 1rem!important;
  line-height:1.35;
}
.admin-flash-stack .alert:last-child{
  margin-bottom:0!important;
}
@media(min-width:992px){
  .admin-sidebar{
    min-height:calc(100vh - 68px);
  }
}


/* =========================================================
   DISMISSIBLE ALERT CLOSE BUTTON
   ========================================================= */
.alert-dismissible{
  padding-right:3.25rem!important;
}
.alert-dismissible .btn-close{
  top:50%!important;
  right:.9rem!important;
  transform:translateY(-50%);
  padding:.65rem!important;
  opacity:.58;
}
.alert-dismissible .btn-close:hover,
.alert-dismissible .btn-close:focus{
  opacity:1;
}
.admin-flash-stack .alert-dismissible .btn-close{
  top:50%!important;
}


/* Prevent buy-items view toggle buttons from overlapping */
.store-view-toggle .btn + .btn{
  margin-left:0!important;
}


/* =========================================================
   LIVE CHAT
   ========================================================= */
.live-chat-widget{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:1090;
  font-family:inherit;
}
.live-chat-launcher{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-width:110px;
  min-height:52px;
  padding:.65rem 1rem .8rem;
  border:2px solid #fff;
  border-radius:16px;
  background:linear-gradient(#4f91eb,#2e72c0);
  color:#fff;
  font-weight:900;
  box-shadow:
    inset 0 0 0 1px #75aaf0,
    inset 0 -3px 2px 3px #1c4f91,
    inset 0 2px 0 1px #9bc4fa,
    0 0 0 2px #000;
}
.live-chat-launcher:hover{filter:brightness(1.05)}
.live-chat-unread-badge{
  position:absolute;
  top:-8px;
  right:-8px;
  min-width:24px;
  height:24px;
  padding:0 6px;
  border:2px solid #fff;
  border-radius:999px;
  background:#dc3545;
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font:700 12px/1 Arial,sans-serif;
}
.live-chat-panel{
  position:absolute;
  right:0;
  bottom:66px;
  width:min(380px,calc(100vw - 24px));
  height:min(570px,calc(100vh - 110px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fffef5;
  border:2px solid var(--neo-orange);
  border-radius:16px;
  box-shadow:0 7px 0 rgba(0,0,0,.16),0 16px 34px rgba(0,0,0,.20);
}
.live-chat-header{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem;
  background:linear-gradient(#ffd84f,#fed123);
  border-bottom:2px solid var(--neo-orange);
  color:var(--neo-ink);
}
.live-chat-close{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--neo-orange);
  border-radius:10px;
  background:#fffef5;
  color:var(--neo-ink);
}
.live-chat-start,
.live-chat-conversation{
  min-height:0;
  flex:1 1 auto;
}
.live-chat-conversation{
  display:flex;
  flex-direction:column;
}
.live-chat-messages{
  flex:1 1 auto;
  overflow-y:auto;
  padding:1rem;
  background:linear-gradient(#f8fbff,#fffef5);
}
.live-chat-message{
  display:flex;
  margin-bottom:.75rem;
}
.live-chat-message.is-customer{justify-content:flex-end}
.live-chat-message.is-admin{justify-content:flex-start}
.live-chat-bubble{
  max-width:82%;
  padding:.7rem .8rem;
  border-radius:13px;
  border:1px solid #d9d3c4;
  background:#fff;
  box-shadow:0 2px 0 rgba(0,0,0,.05);
}
.live-chat-message.is-customer .live-chat-bubble{
  background:#eaf4ff;
  border-color:#9fc7f5;
}
.live-chat-message.is-admin .live-chat-bubble{
  background:#fff7c5;
  border-color:#f0c95f;
}
.live-chat-message-text{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.live-chat-message-time{
  margin-top:.35rem;
  color:#777;
  font-size:.72rem;
}
.live-chat-composer{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.55rem;
  padding:.75rem;
  border-top:1px solid #eadfce;
  background:#fffef5;
}
.live-chat-composer textarea{
  resize:none;
  min-height:54px;
  max-height:110px;
}
.live-chat-composer .btn{
  min-width:54px;
}
.live-chat-closed-note{
  flex:0 0 auto;
  padding:.8rem 1rem;
  text-align:center;
  border-top:1px solid #eadfce;
  background:#f6f3eb;
}

/* Admin chat thread */
.live-chat-admin-thread{overflow:hidden}
.live-chat-admin-messages{
  height:min(58vh,620px);
  min-height:380px;
  overflow-y:auto;
  padding:1.25rem;
  background:linear-gradient(#f8fbff,#fffef5);
}
.live-chat-admin-message{
  display:flex;
  margin-bottom:1rem;
}
.live-chat-admin-message.is-admin{justify-content:flex-end}
.live-chat-admin-message.is-customer{justify-content:flex-start}
.live-chat-admin-bubble{
  width:min(75%,680px);
  padding:.8rem 1rem;
  border:1px solid #d9d3c4;
  border-radius:14px;
  background:#fff;
}
.live-chat-admin-message.is-admin .live-chat-admin-bubble{
  background:#eaf4ff;
  border-color:#9fc7f5;
}
.live-chat-admin-message.is-customer .live-chat-admin-bubble{
  background:#fff7c5;
  border-color:#f0c95f;
}

@media(max-width:575.98px){
  .live-chat-widget{
    right:10px;
    bottom:10px;
  }
  .live-chat-panel{
    position:fixed;
    inset:72px 8px 8px 8px;
    width:auto;
    height:auto;
  }
  .live-chat-launcher{
    min-width:58px;
  }
  .live-chat-launcher>span:not(.live-chat-unread-badge){
    display:none;
  }
  .live-chat-admin-bubble{
    width:88%;
  }
}


/* =========================================================
   LIVE ACTIVITY TICKER
   ========================================================= */
.live-activity-ticker{
  position:fixed;
  z-index:1080;
  width:min(390px,calc(100vw - 24px));
  pointer-events:none;
}
.live-activity-ticker.position-bottom-left{left:18px;bottom:18px}
.live-activity-ticker.position-bottom-right{right:18px;bottom:18px}
.live-activity-ticker.position-top-left{left:18px;top:86px}
.live-activity-ticker.position-top-right{right:18px;top:86px}

.live-activity-toast{
  position:relative;
  overflow:hidden;
  pointer-events:auto;
  background:#fffef5;
  border:2px solid var(--neo-orange);
  border-radius:15px;
  box-shadow:0 6px 0 rgba(250,168,25,.52),0 14px 28px rgba(0,0,0,.16);
  opacity:0;
  transform:translateY(16px);
  transition:opacity .22s ease,transform .22s ease;
}
.live-activity-toast.is-visible{
  opacity:1;
  transform:translateY(0);
}
.live-activity-link{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding:.9rem 2.8rem .9rem .9rem;
  color:var(--neo-ink)!important;
  text-decoration:none!important;
}
.live-activity-link:hover{
  background:#fff9d8;
}
.live-activity-icon{
  width:54px;
  height:54px;
  flex:0 0 54px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:2px solid var(--neo-orange);
  border-radius:12px;
  background:#fff;
  color:var(--neo-blue);
  font-size:1.15rem;
}
.live-activity-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  padding:3px;
  background:#fff;
}
.live-activity-content{
  min-width:0;
  flex:1 1 auto;
}
.live-activity-copy{
  line-height:1.32;
}
.live-activity-copy [data-activity-title]{
  font-weight:800;
  color:var(--neo-blue);
}
.live-activity-time{
  margin-top:.2rem;
  color:#6f6f6f;
  font-size:.76rem;
}
.live-activity-example-badge{
  display:inline-flex;
  align-items:center;
  margin-bottom:.3rem;
  padding:.18rem .45rem;
  border:1px solid #a987df;
  border-radius:999px;
  background:#eee7ff;
  color:#5d3c91;
  font-size:.69rem;
  line-height:1;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.live-activity-close{
  position:absolute;
  top:.45rem;
  right:.45rem;
  z-index:2;
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#686868;
}
.live-activity-close:hover{
  background:#eee9dd;
  color:#222;
}

@media(max-width:575.98px){
  .live-activity-ticker{
    width:calc(100vw - 20px);
    left:10px!important;
    right:auto!important;
  }
  .live-activity-ticker.position-bottom-left,
  .live-activity-ticker.position-bottom-right{bottom:82px}
  .live-activity-ticker.position-top-left,
  .live-activity-ticker.position-top-right{top:76px}
}



/* =========================================================
   FLOATING CART SHORTCUT
   ========================================================= */
.floating-cart-launcher{
  position:fixed;
  right:146px;
  bottom:20px;
  z-index:1089;
  min-width:110px;
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.65rem 1rem .8rem;
  border:2px solid #fff;
  border-radius:16px;
  background:linear-gradient(#4f91eb,#2e72c0);
  color:#fff!important;
  font-weight:900;
  text-decoration:none!important;
  box-shadow:
    inset 0 0 0 1px #75aaf0,
    inset 0 -3px 2px 3px #1c4f91,
    inset 0 2px 0 1px #9bc4fa,
    0 0 0 2px #000;
}
.floating-cart-launcher:hover,
.floating-cart-launcher:focus{
  color:#fff!important;
  filter:brightness(1.06);
}
.floating-cart-count{
  position:absolute;
  top:-8px;
  right:-8px;
  min-width:24px;
  height:24px;
  padding:0 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:2px solid #fff;
  border-radius:999px;
  background:#dc3545;
  color:#fff;
  font:700 12px/1 Arial,sans-serif;
}

/* =========================================================
   RECENTLY VIEWED / PRODUCT HISTORY
   ========================================================= */
.product-history-launcher{
  position:fixed;
  right:272px;
  bottom:20px;
  z-index:1088;
  min-width:116px;
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.65rem 1rem .8rem;
  border:2px solid #fff;
  border-radius:16px;
  background:linear-gradient(#8a64db,#6d45bd);
  color:#fff!important;
  font-weight:900;
  text-decoration:none!important;
  box-shadow:
    inset 0 0 0 1px #a88ae8,
    inset 0 -3px 2px 3px #4d2d90,
    inset 0 2px 0 1px #cbb8f4,
    0 0 0 2px #000;
}
.product-history-launcher:hover,
.product-history-launcher:focus{
  color:#fff!important;
  filter:brightness(1.06);
}
.product-history-count{
  position:absolute;
  top:-8px;
  right:-8px;
  min-width:24px;
  height:24px;
  padding:0 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:2px solid #fff;
  border-radius:999px;
  background:#dc3545;
  color:#fff;
  font:700 12px/1 Arial,sans-serif;
}
.product-history-card{
  display:flex;
  flex-direction:column;
}
.product-history-image-empty{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fffef5;
  color:#9a8d78;
  font-size:3rem;
}

@media(max-width:575.98px){
  .floating-cart-launcher{
    right:78px;
    bottom:10px;
    min-width:58px;
    width:58px;
    padding:.65rem;
  }
  .floating-cart-launcher>span:not(.floating-cart-count){
    display:none;
  }
}

@media(max-width:575.98px){
  .product-history-launcher{
    right:146px;
    bottom:10px;
    min-width:58px;
    width:58px;
    padding:.65rem;
  }
  .product-history-launcher>span:not(.product-history-count){
    display:none;
  }
}


/* =========================================================
   PUBLIC AFFILIATE PROGRAM PAGE
   ========================================================= */
.affiliate-public-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 20%,rgba(255,216,79,.34),transparent 26%),
    radial-gradient(circle at 88% 26%,rgba(111,74,198,.13),transparent 28%),
    linear-gradient(180deg,#fffdf2,#f8fbff);
  border-bottom:1px solid #eadfce;
}
.affiliate-public-badge{
  padding:.5rem .7rem;
  color:#65439c;
  background:#eee7ff;
  border:1px solid #aa89df;
}
.affiliate-public-mini-note{
  display:inline-flex;
  align-items:center;
  padding:.75rem 1rem;
  border:1px solid #ead493;
  border-radius:12px;
  background:#fff8d7;
  color:#5c5140;
}
.affiliate-reward-preview{
  position:relative;
  overflow:hidden;
}
.affiliate-reward-preview::before{
  content:"";
  position:absolute;
  width:160px;
  height:160px;
  right:-60px;
  top:-60px;
  border-radius:50%;
  background:rgba(111,74,198,.09);
}
.affiliate-reward-value{
  color:#6d45bd;
  font-size:3rem;
  line-height:1;
  font-weight:900;
}
.affiliate-reward-rule{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.7rem 0;
  border-bottom:1px solid #ece5d8;
}
.affiliate-reward-rule:last-of-type{
  border-bottom:0;
}
.affiliate-reward-rule strong{
  color:#1f7a45;
}
.affiliate-step-card{
  position:relative;
  overflow:hidden;
}
.affiliate-step-number{
  position:absolute;
  top:.7rem;
  right:1rem;
  color:rgba(46,114,192,.12);
  font-size:4.2rem;
  line-height:1;
  font-weight:900;
}
.affiliate-step-icon{
  width:54px;
  height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
  border:2px solid #faa819;
  border-radius:15px;
  background:#fff4bd;
  color:#2e72c0;
  font-size:1.25rem;
}
.affiliate-public-soft-section{
  background:#f8fbff;
  border-top:1px solid #e8edf3;
  border-bottom:1px solid #e8edf3;
}
.affiliate-qualifier{
  display:flex;
  align-items:center;
  gap:.9rem;
}
.affiliate-qualifier-icon{
  width:45px;
  height:45px;
  flex:0 0 45px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fff3bd;
  color:#2e72c0;
  border:1px solid #e6bd50;
}
.affiliate-check-list{
  list-style:none;
  padding:0;
  margin:0;
}
.affiliate-check-list li{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  padding:.65rem 0;
  border-bottom:1px solid #eee6d7;
}
.affiliate-check-list li:last-child{
  border-bottom:0;
}
.affiliate-check-list i{
  margin-top:.16rem;
  color:#2f9b5e;
}
.affiliate-faq .accordion-item{
  overflow:hidden;
  margin-bottom:.75rem;
  border:1px solid #e4dac8;
  border-radius:12px!important;
  background:#fffef5;
}
.affiliate-faq .accordion-button{
  font-weight:800;
  background:#fffef5;
}
.affiliate-faq .accordion-button:not(.collapsed){
  color:#2e72c0;
  background:#fff8d7;
  box-shadow:none;
}
.affiliate-public-cta{
  background:
    radial-gradient(circle at 0 0,rgba(255,216,79,.25),transparent 34%),
    radial-gradient(circle at 100% 100%,rgba(111,74,198,.12),transparent 35%),
    #fffef5;
}
.affiliate-cta-icon{
  width:66px;
  height:66px;
  margin-left:auto;
  margin-right:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:2px solid #a987df;
  background:#eee7ff;
  color:#65439c;
  font-size:1.5rem;
}
@media(max-width:767.98px){
  .affiliate-reward-value{
    font-size:2.5rem;
  }
}


/* =========================================================
   CHECKOUT POLICY AGREEMENT
   ========================================================= */
.checkout-policy-agreement{
  background:#fff9dc;
  border-color:#e7c65c!important;
}
.checkout-policy-agreement .form-check{
  display:flex;
  align-items:flex-start;
  gap:.6rem;
  padding-left:0;
}
.checkout-policy-agreement .form-check-input{
  flex:0 0 auto;
  width:1.2rem;
  height:1.2rem;
  margin:.12rem 0 0 0;
}
.checkout-policy-agreement .form-check-label{
  line-height:1.45;
}
.checkout-policy-agreement .form-check-label a{
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:2px;
}
.checkout-policy-agreement .form-check-label a:hover,
.checkout-policy-agreement .form-check-label a:focus{
  text-decoration-thickness:2px;
}


/* =========================================================
   SUCCESS BUTTON TEXT COLOR
   ========================================================= */
.btn-success,
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.show > .btn-success.dropdown-toggle{
  color:#fff!important;
}
.btn-success i{
  color:inherit!important;
}


/* =========================================================
   FLASH SALES
   ========================================================= */
.flash-sale-badge{
  color:#fff!important;
  background:linear-gradient(#ec4a56,#bf2433)!important;
  border:1px solid #8d1721!important;
  box-shadow:0 2px 0 rgba(0,0,0,.12);
  font-weight:900;
  letter-spacing:.02em;
}
.product-card .flash-sale-badge{
  animation:flashSalePulse 1.8s ease-in-out infinite;
}
@keyframes flashSalePulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.035)}
}

/* --------------------------------------------------------------------------
   CATEGORY SEO / BUYING GUIDE CONTENT
   -------------------------------------------------------------------------- */
.category-seo-content{margin-top:2.5rem}
.category-content-card{
  background:#fff;
  border:1px solid rgba(216,132,0,.28);
  border-radius:16px;
  box-shadow:0 2px 0 rgba(216,132,0,.05);
}
.category-content-card p{line-height:1.65}
.category-feature-card{
  background:#fff;
  border:1px solid rgba(216,132,0,.30);
  border-radius:16px;
  box-shadow:0 2px 0 rgba(216,132,0,.05);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.category-feature-card:hover{
  transform:translateY(-2px);
  border-color:rgba(216,132,0,.48);
  box-shadow:0 10px 24px rgba(77,53,20,.07);
}
.category-feature-card h3{line-height:1.25}
.category-feature-card p{line-height:1.7}
.category-feature-card-footer{
  color:var(--neo-orange);
  font-size:.86rem;
  font-weight:800;
}
.category-feature-card-button{
  border-radius:10px;
  font-weight:800;
  width:100%;
}
.category-step-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:var(--neo-orange);
  color:#fff;
  font-weight:900;
  font-size:.9rem;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
}
.category-before-order{
  background:#fff1d5;
  border:1px solid rgba(216,132,0,.3);
  border-radius:16px;
}
.category-before-order ul{padding-left:1.25rem}
.category-before-order li+li{margin-top:.35rem}
.category-admin-html>:last-child{margin-bottom:0}
.category-admin-html p,.category-admin-html li{line-height:1.65}
.category-faq-grid{align-items:flex-start}
.category-faq-accordion,.category-faq-item{height:auto}
.category-faq-item{
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(216,132,0,.28)!important;
  border-radius:16px!important;
  box-shadow:0 2px 0 rgba(216,132,0,.05);
}
.category-faq-button{
  min-height:74px;
  padding:1.15rem 1.25rem;
  background:#fff;
  color:var(--neo-text,#222c38);
  font-weight:800;
  line-height:1.35;
  box-shadow:none!important;
}
.category-faq-button:not(.collapsed){
  background:#fff8ec;
  color:var(--neo-text,#222c38);
}
.category-faq-button:focus{box-shadow:0 0 0 .2rem rgba(242,133,0,.12)!important}
.category-faq-button::after{
  width:2rem;
  height:2rem;
  margin-left:1rem;
  border-radius:999px;
  background-color:#fff1d5;
  background-position:center;
  background-size:.9rem;
  flex:0 0 2rem;
}
.category-faq-item .accordion-body{
  padding:0 1.25rem 1.25rem;
  line-height:1.7;
  border-top:1px solid rgba(216,132,0,.12);
  padding-top:1rem;
}
@media (max-width:767.98px){
  .category-seo-content{margin-top:2rem}
  .category-content-card{border-radius:14px}
}
/* Compact Items row with a quick Add Item action aligned to the right. */
.admin-sidebar .admin-sidebar-items-row{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  width:100%;
  padding-right:8px;
}
.admin-sidebar .admin-sidebar-items-link{
  flex:1 1 auto!important;
  min-width:0;
  width:auto!important;
  margin-right:4px!important;
}
.admin-sidebar .admin-sidebar-add-item{
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  margin-left:auto!important;
  padding:.18rem .42rem!important;
  min-height:0!important;
  border-radius:6px!important;
  font-size:.70rem!important;
  line-height:1.1!important;
  font-weight:700;
  white-space:nowrap;
  text-decoration:none;
  box-shadow:none;
}
.admin-sidebar .admin-sidebar-add-item:hover,
.admin-sidebar .admin-sidebar-add-item:focus{
  transform:translateY(-1px);
}


/* --------------------------------------------------------------------------
   ITEM DETAIL - RELATED ITEMS
   -------------------------------------------------------------------------- */
.related-items-section{
  scroll-margin-top:90px;
}
.related-items-grid .related-item-card{
  min-height:100%;
}
.related-items-grid .related-item-image-link{
  min-height:190px;
  height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.related-items-grid .related-item-image{
  width:100%;
  height:100%;
  padding:14px;
}
.related-items-grid .store-card-title{
  line-height:1.25;
}
@media(max-width:575px){
  .related-items-grid .related-item-image-link{
    min-height:170px;
    height:170px;
  }
}

/* =========================================================
   ADMIN SETTINGS — RESPONSIVE CARD LAYOUT
   ========================================================= */
.admin-settings-form{
  width:100%;
  max-width:1380px;
}
.admin-settings-intro{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.1rem;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(250,168,25,.65);
  border-radius:12px;
}
.admin-settings-kicker{
  font-family:"Cafeteria","MuseoSansRounded",Arial,sans-serif;
  font-size:1.18rem;
  line-height:1;
  margin-bottom:.35rem;
}
.admin-settings-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1.25rem;
  align-items:start;
}
.admin-settings-card{
  overflow:hidden;
  min-width:0;
}
.admin-settings-card-wide{
  grid-column:1 / -1;
}
.admin-settings-card-header{
  display:flex;
  align-items:center;
  gap:.85rem;
  padding:1rem 1.15rem;
  background:linear-gradient(180deg,#fffdf1 0%,#fff8cd 100%);
  border-bottom:2px solid var(--neo-orange);
}
.admin-settings-card-header h2{
  margin:0;
}
.admin-settings-card-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(var(--neo-blue-top),var(--neo-blue-bottom));
  border:1px solid #174f98;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 0 rgba(0,0,0,.12);
}
.admin-settings-card-body{
  padding:1.2rem;
}
.admin-settings-card .form-label{
  margin-bottom:.4rem;
  color:#30343a;
}
.admin-settings-card .form-control,
.admin-settings-card .form-select,
.admin-settings-card .input-group-text{
  min-height:42px;
}
.admin-settings-card textarea.form-control{
  min-height:unset;
}
.admin-settings-card .form-text{
  line-height:1.42;
  margin-top:.4rem;
}
.admin-settings-subpanel{
  padding:1rem;
  background:#fffdf4;
  border:1px solid #f2c76a;
  border-radius:11px;
}
.admin-settings-preview{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding:.75rem;
  background:#f8fbff;
  border:1px solid #d7e6f6;
  border-radius:10px;
}
.admin-settings-provider{
  padding:1rem;
  background:#f8fbff;
  border:1px solid #d7e6f6;
  border-radius:11px;
}
.admin-settings-provider-icon{
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#fff;
  border:1px solid #d7e6f6;
  color:var(--neo-blue);
}
.admin-settings-switch{
  padding-top:.15rem;
  padding-bottom:.15rem;
}
.admin-settings-switch .form-check-label{
  font-weight:700;
  color:#30343a;
}
.admin-settings-savebar{
  position:sticky;
  bottom:14px;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.9rem 1rem;
  background:rgba(255,255,255,.96);
  border:2px solid var(--neo-orange);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(31,74,120,.16);
  backdrop-filter:blur(8px);
}
.admin-settings-savebar .btn{
  min-width:170px;
}
@media(max-width:1199.98px){
  .admin-settings-grid{
    grid-template-columns:1fr;
  }
  .admin-settings-card-wide{
    grid-column:auto;
  }
}
@media(max-width:767.98px){
  .admin-settings-intro{
    align-items:flex-start;
    flex-direction:column;
  }
  .admin-settings-save-top{
    width:100%;
  }
  .admin-settings-card-header,
  .admin-settings-card-body{
    padding:.95rem;
  }
  .admin-settings-savebar{
    position:static;
    align-items:stretch;
    flex-direction:column;
  }
  .admin-settings-savebar .btn{
    width:100%;
  }
}
