/* ==========================================================================
   TIT Multivendor — frontend manager
   Everything is scoped under .titmv-scope so it cannot leak into the theme.
   Light and dark are two token sets on the same scope.
   ========================================================================== */

.titmv-scope{
  --titmv-accent:#0C7C4B;
  --titmv-accent-alt:#F5B301;

  --titmv-bg:#FBFAF7;
  --titmv-surface:#FFFFFF;
  --titmv-surface-2:#F1F3EE;
  --titmv-text:#10150F;
  --titmv-muted:rgba(16,21,15,.6);
  --titmv-line:rgba(16,21,15,.14);
  --titmv-shadow:0 1px 2px rgba(16,21,15,.06),0 8px 24px rgba(16,21,15,.05);

  --titmv-ok:#0C7C4B;
  --titmv-warn:#C77700;
  --titmv-error:#C0392B;

  --titmv-radius:10px;
  --titmv-font:inherit;
  --titmv-mono:ui-monospace,SFMono-Regular,"DM Mono",Menlo,monospace;

  color:var(--titmv-text);
  font-family:var(--titmv-font);
  line-height:1.6;
}

.titmv-scope[data-mode="dark"]{
  --titmv-bg:#0E1310;
  --titmv-surface:#161C18;
  --titmv-surface-2:#1E2621;
  --titmv-text:#EDF1EA;
  --titmv-muted:rgba(237,241,234,.62);
  --titmv-line:rgba(237,241,234,.16);
  --titmv-shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.35);
  --titmv-warn:#E8A33D;
  --titmv-error:#E8695C;
}

@media (prefers-color-scheme:dark){
  .titmv-scope[data-mode="auto"]{
    --titmv-bg:#0E1310;
    --titmv-surface:#161C18;
    --titmv-surface-2:#1E2621;
    --titmv-text:#EDF1EA;
    --titmv-muted:rgba(237,241,234,.62);
    --titmv-line:rgba(237,241,234,.16);
    --titmv-shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.35);
    --titmv-warn:#E8A33D;
    --titmv-error:#E8695C;
  }
}

.titmv-scope *,.titmv-scope *::before,.titmv-scope *::after{box-sizing:border-box}

/* ---------- shell ---------- */
.titmv-shell{
  display:grid;grid-template-columns:238px 1fr;gap:1.25rem;
  background:var(--titmv-bg);padding:1.25rem;border-radius:16px;border:1px solid var(--titmv-line);
}
.titmv-shell--narrow{display:block;max-width:820px;margin-inline:auto}
.titmv-shell__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}

.titmv-side{
  background:var(--titmv-surface);border:1px solid var(--titmv-line);border-radius:var(--titmv-radius);
  padding:1rem;display:flex;flex-direction:column;gap:1rem;align-self:start;position:sticky;top:1rem;
}
.titmv-side__brand{display:flex;gap:.65rem;align-items:center}
.titmv-side__brand strong{display:block;font-size:.95rem;line-height:1.2}
.titmv-side__brand em{font-style:normal;font-size:.75rem;color:var(--titmv-muted);word-break:break-all}
.titmv-avatar{
  width:38px;height:38px;flex:none;border-radius:10px;display:grid;place-items:center;
  background:var(--titmv-accent);color:#fff;font-weight:700;
}
.titmv-nav{display:flex;flex-direction:column;gap:2px}
.titmv-nav__item{
  padding:.55rem .7rem;border-radius:8px;text-decoration:none;color:var(--titmv-muted);
  font-size:.92rem;font-weight:500;border-left:3px solid transparent;
}
.titmv-nav__item:hover{background:var(--titmv-surface-2);color:var(--titmv-text)}
.titmv-nav__item.is-active{background:var(--titmv-surface-2);color:var(--titmv-text);border-left-color:var(--titmv-accent-alt)}

.titmv-main{
  background:var(--titmv-surface);border:1px solid var(--titmv-line);
  border-radius:var(--titmv-radius);padding:1.4rem;min-height:340px;
}

/* ---------- typography ---------- */
.titmv-scope .titmv-h2{font-size:1.4rem;margin:0 0 .9rem;line-height:1.2}
.titmv-scope .titmv-h3{font-size:1.05rem;margin:1.75rem 0 .75rem}
.titmv-eyebrow{
  margin:0 0 .3rem;font-family:var(--titmv-mono);font-size:.68rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--titmv-accent);
}
.titmv-muted{color:var(--titmv-muted)}
.titmv-small{font-size:.82rem}
.titmv-req{color:var(--titmv-error);margin-left:2px}
.titmv-link{color:var(--titmv-accent);font-weight:600}

/* ---------- mode toggle ---------- */
.titmv-modetoggle{
  width:42px;height:42px;flex:none;border-radius:10px;cursor:pointer;
  border:1px solid var(--titmv-line);background:var(--titmv-surface);color:var(--titmv-text);
  font-size:1.05rem;line-height:1;display:grid;place-items:center;
}
.titmv-modetoggle::before{content:"☾"}
.titmv-scope[data-mode="dark"] .titmv-modetoggle::before{content:"☀"}
.titmv-modetoggle--block{width:100%;height:38px}
.titmv-modetoggle:hover{border-color:var(--titmv-accent)}

/* ---------- buttons ---------- */
.titmv-scope .titmv-btn{
  display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;
  padding:.7rem 1.1rem;border-radius:8px;font-size:.92rem;font-weight:600;
  text-decoration:none;border:1.5px solid var(--titmv-line);
  background:var(--titmv-surface-2);color:var(--titmv-text);
  transition:transform .14s ease,background .14s ease;
}
.titmv-scope .titmv-btn:hover{transform:translateY(-1px)}
.titmv-scope .titmv-btn--primary{background:var(--titmv-accent);border-color:var(--titmv-accent);color:#fff}
.titmv-scope a:focus-visible,.titmv-scope button:focus-visible,
.titmv-scope input:focus-visible,.titmv-scope select:focus-visible,.titmv-scope textarea:focus-visible{
  outline:3px solid var(--titmv-accent-alt);outline-offset:2px;
}

/* ---------- forms ---------- */
.titmv-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:1.1rem}
.titmv-field--wide{grid-column:1/-1}
.titmv-field label,.titmv-label{
  display:block;font-size:.82rem;font-weight:600;margin-bottom:.35rem;color:var(--titmv-text);
}
.titmv-scope input[type=text],.titmv-scope input[type=email],.titmv-scope input[type=tel],
.titmv-scope input[type=url],.titmv-scope input[type=number],.titmv-scope input[type=file],
.titmv-scope select,.titmv-scope textarea{
  width:100%;padding:.65rem .75rem;border-radius:8px;font-size:.95rem;
  border:1.5px solid var(--titmv-line);background:var(--titmv-bg);color:var(--titmv-text);
}
.titmv-scope textarea{resize:vertical}
.titmv-inline{display:flex;gap:.5rem;flex-wrap:wrap}
.titmv-inline input{flex:1 1 180px}
.titmv-check{font-weight:400;font-size:.9rem}
.titmv-hp{position:absolute;left:-9999px;height:0;overflow:hidden}

/* ---------- notices ---------- */
.titmv-notice{border-radius:10px;padding:.85rem 1rem;margin:0 0 1rem;border-left:4px solid var(--titmv-line);background:var(--titmv-surface-2)}
.titmv-notice p{margin:0}
.titmv-notice--ok{border-left-color:var(--titmv-ok)}
.titmv-notice--warn{border-left-color:var(--titmv-warn)}
.titmv-notice--error{border-left-color:var(--titmv-error)}
.titmv-notice--info{border-left-color:var(--titmv-accent-alt)}

.titmv-empty{
  border:1.5px dashed var(--titmv-line);border-radius:10px;padding:1.5rem;
  text-align:center;color:var(--titmv-muted);
}

/* ---------- stats ---------- */
.titmv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1.25rem}
.titmv-stat{background:var(--titmv-surface-2);border:1px solid var(--titmv-line);border-radius:10px;padding:.9rem}
.titmv-stat span{display:block;font-family:var(--titmv-mono);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;color:var(--titmv-muted);margin-bottom:.3rem}
.titmv-stat strong{font-size:1.3rem;line-height:1}

/* ---------- orders ---------- */
.titmv-orders{display:grid;gap:.9rem}
.titmv-order,.titmv-job,.titmv-panel{
  background:var(--titmv-surface-2);border:1px solid var(--titmv-line);
  border-radius:12px;padding:1.1rem;box-shadow:var(--titmv-shadow);
}
.titmv-order__head,.titmv-job__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}
.titmv-order__body{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem}
.titmv-lines{list-style:none;margin:0;padding:0;font-size:.9rem}
.titmv-lines li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--titmv-line)}
.titmv-order__meta p{margin:0 0 .5rem;font-size:.9rem}
.titmv-order__actions{margin-top:1rem;padding-top:1rem;border-top:1.5px dashed var(--titmv-line)}

.titmv-choice{display:grid;gap:.5rem;margin-bottom:.9rem}
.titmv-choice label{
  display:flex;gap:.7rem;align-items:flex-start;padding:.8rem;cursor:pointer;
  border:1.5px solid var(--titmv-line);border-radius:10px;background:var(--titmv-surface);
}
.titmv-choice label:hover{border-color:var(--titmv-accent)}
.titmv-choice strong{display:block;font-size:.92rem}
.titmv-choice em{font-style:normal;font-size:.82rem;color:var(--titmv-muted)}
.titmv-choice input{margin-top:.25rem}

.titmv-badge{
  font-family:var(--titmv-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.3rem .55rem;border-radius:99px;background:var(--titmv-surface);border:1px solid var(--titmv-line);
}
.titmv-badge--delivered,.titmv-badge--paid,.titmv-badge--publish{color:#fff;background:var(--titmv-ok);border-color:transparent}
.titmv-badge--awaiting_vendor,.titmv-badge--due,.titmv-badge--pending{color:#fff;background:var(--titmv-warn);border-color:transparent}
.titmv-badge--failed{color:#fff;background:var(--titmv-error);border-color:transparent}

.titmv-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.titmv-chip{
  font-size:.8rem;padding:.35rem .7rem;border-radius:99px;text-decoration:none;
  border:1px solid var(--titmv-line);color:var(--titmv-muted);
}
.titmv-chip.is-active{background:var(--titmv-accent);border-color:var(--titmv-accent);color:#fff}

/* ---------- code entry ---------- */
.titmv-codeform{margin-top:.9rem}
.titmv-codeinput{
  font-family:var(--titmv-mono);font-size:1.3rem;letter-spacing:.35em;text-transform:uppercase;text-align:center;
}
.titmv-ref{font-family:var(--titmv-mono);font-size:1.2rem;letter-spacing:.14em}

/* buyer-facing code panel (checkout / my account) */
.titmv-codepanel{
  border:2px solid var(--titmv-text);border-radius:14px;padding:1.2rem;margin:1.2rem 0;
  background:var(--titmv-surface);text-align:center;
}
.titmv-codepanel__label{
  margin:0 0 .6rem;font-family:var(--titmv-mono);font-size:.66rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--titmv-muted);
}
.titmv-codepanel__row{margin-bottom:.6rem}
.titmv-codepanel__store{display:block;font-size:.8rem;color:var(--titmv-muted)}
.titmv-codepanel__code{font-family:var(--titmv-mono);font-size:2rem;letter-spacing:.28em}

/* ---------- tables ---------- */
.titmv-table{width:100%;border-collapse:collapse;font-size:.9rem}
.titmv-table th{
  text-align:left;font-family:var(--titmv-mono);font-size:.65rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--titmv-muted);padding:.5rem .4rem;border-bottom:1.5px solid var(--titmv-line);
}
.titmv-table td{padding:.65rem .4rem;border-bottom:1px solid var(--titmv-line);vertical-align:top}

/* ---------- plans ---------- */
.titmv-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-bottom:1.2rem}
.titmv-plan{display:block;cursor:pointer}
.titmv-plan input{position:absolute;opacity:0}
.titmv-plan__body{
  display:block;padding:1.1rem;border-radius:12px;height:100%;
  border:1.5px solid var(--titmv-line);background:var(--titmv-surface);
}
.titmv-plan input:checked + .titmv-plan__body{border-color:var(--titmv-accent);box-shadow:0 0 0 3px rgba(12,124,75,.15)}
.titmv-plan__price{display:block;font-size:1.35rem;font-weight:700;margin:.3rem 0}
.titmv-plan__price em{font-style:normal;font-size:.75rem;font-weight:400;color:var(--titmv-muted);margin-left:.3rem}
.titmv-plan__features{display:block;margin-top:.6rem;font-size:.85rem}
.titmv-plan__features span{display:block;padding-left:1rem;position:relative;color:var(--titmv-muted)}
.titmv-plan__features span::before{content:"✓";position:absolute;left:0;color:var(--titmv-accent)}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .titmv-shell{grid-template-columns:1fr;padding:.9rem}
  .titmv-side{position:static}
  .titmv-nav{flex-direction:row;flex-wrap:wrap}
  .titmv-nav__item{border-left:0;border-bottom:3px solid transparent}
  .titmv-nav__item.is-active{border-left:0;border-bottom-color:var(--titmv-accent-alt)}
  .titmv-order__body{grid-template-columns:1fr}
  .titmv-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .titmv-scope *{transition:none!important;animation:none!important}
}

/* withdrawal states */
.titmv-badge--approved{color:#fff;background:var(--titmv-accent);border-color:transparent}
.titmv-badge--rejected{color:#fff;background:var(--titmv-error);border-color:transparent}

/* Frontend product manager: quick edits, small buttons, gallery. */
.titmv-inline-form{display:inline-flex;gap:.35rem;align-items:center;flex-wrap:wrap;margin:0}
.titmv-inline-form input[type=number]{width:6.5rem;padding:.35rem .5rem}
.titmv-btn--small{padding:.35rem .6rem;font-size:.8rem}
.titmv-btn--danger{background:#b3261e;color:#fff;border-color:#b3261e}
.titmv-gallery{display:flex;gap:.75rem;flex-wrap:wrap;margin:.5rem 0}
.titmv-gallery img{display:block;border-radius:.5rem}
.titmv-table td form{margin-top:.25rem}

/* ---------- inline listing editor ---------- */
.titmv-listings{display:grid;gap:1rem;margin-top:.75rem}
.titmv-listing{
  display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-start;
  background:var(--titmv-surface);border:1px solid var(--titmv-line);
  border-radius:var(--titmv-radius);box-shadow:var(--titmv-shadow);padding:1rem
}
.titmv-listing__form{display:flex;gap:1rem;flex-wrap:wrap;flex:1 1 420px;margin:0}
.titmv-listing__media{display:flex;flex-direction:column;gap:.4rem;width:150px}
.titmv-listing__media img{border-radius:var(--titmv-radius);max-width:100%;height:auto}
.titmv-listing__media input[type=file]{font-size:.75rem;max-width:100%}
.titmv-listing__fields{
  flex:1 1 320px;display:grid;gap:.6rem;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))
}
.titmv-listing__fields .titmv-field--wide{grid-column:1/-1}
.titmv-listing__actions{display:flex;gap:.75rem;align-items:center}

/* ---------- sold by ---------- */
.titmv-soldby{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin:.4rem 0;font-size:.9rem}
.titmv-soldby--small{font-size:.8rem;margin:.2rem 0}
.titmv-soldby__label{color:var(--titmv-muted)}
.titmv-soldby__link{font-weight:600;color:var(--titmv-accent);text-decoration:none}
.titmv-soldby__link:hover{text-decoration:underline}
.titmv-soldby__more{margin-left:auto;font-size:.8rem;text-decoration:underline;color:var(--titmv-muted)}

/* ---------- ratings ---------- */
.titmv-stars{display:inline-flex;gap:1px;line-height:1}
.titmv-rating-badge{display:inline-flex;gap:.35rem;align-items:center}
.titmv-rating-count{font-size:.8rem;color:var(--titmv-muted)}
.titmv-rating-link{text-decoration:none}
.titmv-reviews{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.titmv-review{border-bottom:1px solid var(--titmv-line);padding-bottom:.75rem}
.titmv-review strong{display:block}
.titmv-rating-form{margin-top:1rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.titmv-rating-form .titmv-field--wide,.titmv-rating-form button,.titmv-rating-form p{grid-column:1/-1}

/* ---------- public store page ---------- */
.titmv-store{max-width:1100px;margin:0 auto;padding:1.5rem 1rem}
.titmv-store__head{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}
.titmv-store__rating{display:flex;gap:.5rem;align-items:center;margin:.25rem 0}
.titmv-avatar--lg{width:64px;height:64px;font-size:1.6rem}
.titmv-store__grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.titmv-product{padding:.75rem;display:flex;flex-direction:column;gap:.4rem}
.titmv-product img{width:100%;height:auto;border-radius:var(--titmv-radius)}
.titmv-product a{text-decoration:none;color:inherit}
.titmv-product__title{font-size:.95rem;margin:.4rem 0 0}
.titmv-product__price{font-weight:600}
.titmv-store__pager{margin:1.25rem 0;display:flex;gap:.4rem;flex-wrap:wrap}
.titmv-store__reviews{margin-top:2rem}
.titmv-card{background:var(--titmv-surface);border:1px solid var(--titmv-line);border-radius:var(--titmv-radius);box-shadow:var(--titmv-shadow)}
.titmv-lead{font-size:1.05rem;color:var(--titmv-muted);margin:0 0 .75rem}

.titmv-tier{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle}
.titmv-tier-note{font-size:.8rem;opacity:.8}

/* Vendor dashboard product search */
.titmv-product-search {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 0 0 14px;
}
.titmv-product-search input[type="search"] {
	flex: 1 1 260px;
	min-width: 200px;
	padding: 9px 12px;
	border: 1px solid var(--titmv-border, #d9dee5);
	border-radius: 8px;
	font: inherit;
}


/* ---------- combined dashboard + registration chooser ---------- */
.titmv-roleswitch{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 auto 14px;max-width:1080px;padding:10px 14px;border:1px solid var(--titmv-line,#e5e5e5);border-radius:12px}
.titmv-choose{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.titmv-choose__card{display:flex;flex-direction:column;gap:10px;padding:22px;text-decoration:none;border-radius:14px;transition:transform .15s ease,box-shadow .15s ease}
.titmv-choose__card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.titmv-choose__card .titmv-plan__name{font-size:19px;font-weight:700}

/* =====================================================================
   Marketplace shopfront: category sliders, product flags, delivery
   promises, contact cards and plan-gated shop links.
   ===================================================================== */

/* --- expected delivery --------------------------------------------- */
.titmv-eta {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; font-weight: 600; color: #1f7a5a;
	margin: 6px 0;
}
.titmv-eta--small { font-size: 12px; font-weight: 500; }
.titmv-eta__dot {
	width: 8px; height: 8px; border-radius: 50%; background: #1f7a5a;
	box-shadow: 0 0 0 3px rgba(31, 122, 90, .15);
}

/* --- new / sale flags on the main product image --------------------- */
.titmv-media, .titmv-product__media { position: relative; display: block; overflow: hidden; border-radius: 4px; }
.titmv-flags {
	position: absolute; top: 0; left: 0; z-index: 3;
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	pointer-events: none;
}
.titmv-flag {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 4px 8px; border-radius: 3px;
	font-size: 11px; font-weight: 700; letter-spacing: .02em; line-height: 1.1;
	color: #fff; text-transform: uppercase;
}
.titmv-flag svg { width: 13px; height: 13px; fill: currentColor; }
.titmv-flag--new { background: #1f7a5a; margin: 8px 0 0 8px; }
.titmv-flag--tag {
	background: #4ade80; padding: 5px 9px 5px 7px;
	border-radius: 0 0 6px 0; transform: none;
}
.titmv-flag--tag .titmv-flag__word { font-size: 10px; letter-spacing: .06em; }
.titmv-flag--off {
	background: #166534; margin-left: 8px; padding: 5px 8px;
	flex-direction: column; align-items: flex-start; gap: 0; border-radius: 3px;
}
.titmv-flag--off .titmv-flag__up { font-size: 9px; opacity: .9; }
.titmv-flag--off .titmv-flag__pc { font-size: 14px; font-weight: 800; }
.titmv-flag--off .titmv-flag__off { font-size: 9px; letter-spacing: .08em; }

/* --- sliding category rows ------------------------------------------ */
.titmv-catrow { margin: 0 0 34px; position: relative; }
.titmv-catrow__head {
	display: flex; justify-content: space-between; align-items: flex-end;
	gap: 14px; flex-wrap: wrap; margin-bottom: 10px;
}
.titmv-catrow__tools { display: flex; gap: 8px; align-items: center; }
.titmv-slidebtn {
	width: 34px; height: 34px; border-radius: 50%;
	border: 1px solid var(--titmv-border, #dde3e8); background: #fff; color: inherit;
	font-size: 20px; line-height: 1; cursor: pointer;
}
.titmv-slidebtn:hover { border-color: var(--titmv-accent, #1f7a5a); }
.titmv-slidebtn[disabled] { opacity: .35; cursor: default; }
.titmv-slider {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc(50% - 7px);
	gap: 14px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory;
	padding-bottom: 6px; scrollbar-width: thin;
}
.titmv-slider > * { scroll-snap-align: start; }

.titmv-catall { margin-top: 18px; }
.titmv-catall[hidden] { display: none; }

/* --- who may open a shop -------------------------------------------- */
.titmv-soldby__link--open { color: #1f7a5a; font-weight: 600; text-decoration: none; }
.titmv-soldby__link--open:hover { text-decoration: underline; }
.titmv-soldby__link--closed { color: #c0392b; font-weight: 600; cursor: default; }
.titmv-soldby__more--open {
	display: inline-block; margin-left: 8px; padding: 3px 10px; border-radius: 999px;
	background: rgba(31, 122, 90, .12); color: #1f7a5a; font-size: 12px; text-decoration: none;
}
.titmv-access {
	display: inline-block; padding: 4px 12px; border-radius: 999px;
	font-size: 12px; font-weight: 700;
}
.titmv-access--on { background: rgba(31, 122, 90, .12); color: #1f7a5a; }
.titmv-access--off { background: rgba(192, 57, 43, .12); color: #c0392b; }

/* --- published contact details -------------------------------------- */
.titmv-contactcard {
	border: 1px solid var(--titmv-border, #dde3e8); border-radius: 12px;
	padding: 16px 18px; margin: 0 0 22px;
}
.titmv-contactlist { list-style: none; margin: 0; padding: 0; }
.titmv-contactlist li { display: flex; gap: 10px; padding: 5px 0; font-size: 14px; }
.titmv-contactlist span { min-width: 76px; opacity: .7; }

/* --- charts inside the dashboard ------------------------------------ */
.titmv-piewrap { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.titmv-chart { width: 100%; height: auto; }
.titmv-chart--pie { max-width: 220px; }
.titmv-legend { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.titmv-legend li { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.titmv-legend__dot { width: 12px; height: 12px; border-radius: 3px; }


/* ---------------------------------------------------------------------
   Storefront sizing: two products per line on phones, a comfortable
   multi-column grid on desktop, and no oversized theme page heading.
   --------------------------------------------------------------------- */

/* the theme's giant page title is redundant on a store page */
body.titmv-store-page .entry-title,
body.titmv-store-page .page-title,
body.titmv-store-page .woocommerce-products-header__title,
body.titmv-store-page header.entry-header,
body.titmv-store-page .page-header { display: none !important; }

.titmv-store { max-width: 1240px; }
.titmv-store__head { align-items: center; gap: 12px; margin-bottom: 18px; }
.titmv-store__ident { min-width: 0; }
.titmv-store__name { font-size: 1.15rem; font-weight: 700; margin: 0; line-height: 1.25; }
.titmv-avatar--lg { width: 46px; height: 46px; font-size: 1.15rem; flex: 0 0 auto; }

/* product tiles */
.titmv-product { padding: 12px; gap: .3rem; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,.10); border: 0; }
.titmv-product__media img { padding: 6px; }
.titmv-product__media img { aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
.titmv-scope .titmv-product__title {
	font-size: 14px; font-weight: 600; line-height: 1.3; margin: 2px 0 0;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden;
}
.titmv-product__price {
	display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px;
	font-size: 17px; font-weight: 700; margin-top: 2px;
}
.titmv-product__price .titmv-price__from { font-size: 12px; font-weight: 700; }
.titmv-product__price .titmv-price__now .amount { font-size: 17px; font-weight: 700; }
.titmv-product__price del.titmv-price__was {
	font-size: 13px; font-weight: 400; color: #8a9199; text-decoration: line-through;
}
.titmv-price__info {
	display: inline-flex; align-items: center; justify-content: center;
	width: 14px; height: 14px; border-radius: 50%; border: 1px solid #b6bcc3;
	font-size: 10px; font-style: italic; font-weight: 700; color: #8a9199;
}
.titmv-product__rating { display: flex; align-items: center; gap: 5px; font-size: 13px; }
.titmv-product__star { color: #f2b705; font-size: 14px; line-height: 1; }
.titmv-product__avg { font-weight: 600; }
.titmv-product__votes { color: #8a9199; }
.titmv-product__colours { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #4a5158; }
.titmv-product__wheel {
	width: 14px; height: 14px; border-radius: 50%;
	background: conic-gradient(#e94b4b, #f2b705, #4caf50, #4f9ce8, #9b59b6, #e94b4b);
}
.titmv-product__low { font-size: 13px; font-weight: 700; color: #d0021b; }
.titmv-product__actions { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 8px; }
.titmv-product__cart { flex: 1 1 auto; text-align: center; white-space: nowrap; padding: 8px 10px; font-size: 13px; }
.titmv-wishlist {
	flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
	border: 1px solid var(--titmv-border, #dde3e8); background: #fff; font-size: 16px; line-height: 1;
}
.titmv-wishlist:hover { border-color: #c0392b; color: #c0392b; }
.titmv-wishlist.is-on { border-color: #c0392b; color: #c0392b; }

/* category rows */
.titmv-catalog { max-width: 1240px; margin: 0 auto; }
.titmv-slider { gap: 14px; }
@media (min-width: 640px)  { .titmv-slider { grid-auto-columns: calc(33.333% - 10px); } .titmv-store__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px)  { .titmv-slider { grid-auto-columns: calc(25% - 11px); }    .titmv-store__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .titmv-slider { grid-auto-columns: calc(20% - 12px); }    .titmv-store__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.titmv-scope .titmv-catrow__head .titmv-h3 { font-size: 1.15rem; margin: 0; }

/* marketplace-style row: cards float on a light band, arrows sit on the edges */
.titmv-catrow__tools .titmv-slidebtn {
	position: absolute; top: 42%; z-index: 4; width: 38px; height: 38px;
	background: #cfd6dc; border: 0; color: #fff; font-size: 22px;
	box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.titmv-catrow__tools .titmv-slidebtn[data-titmv-slide="prev"] { left: -8px; }
.titmv-catrow__tools .titmv-slidebtn[data-titmv-slide="next"] { right: -8px; }
.titmv-catrow__tools .titmv-slidebtn:hover { background: #9aa4ad; }
.titmv-slider { padding: 4px 2px 10px; scroll-snap-type: none; }
.titmv-scope .titmv-product__title { min-height: 2.6em; font-weight: 400; }

/* ---------------------------------------------------------------------
   Desktop tile sizing fix (1.6.4)
   Cards were collapsing into narrow, tall slivers on desktop because the
   slider tracks were sized from percentages that could not resolve inside
   some theme containers. The rows are now flex based with hard minimum
   card widths, so a tile can never be squeezed.
   --------------------------------------------------------------------- */
.titmv-catalog,
.titmv-store { width: 100%; box-sizing: border-box; }

.titmv-slider {
	display: flex !important;
	flex-flow: row nowrap;
	align-items: stretch;
	width: 100%;
	grid-auto-flow: unset;
	grid-auto-columns: unset;
	grid-template-columns: none;
	overflow-x: auto;
	gap: 14px;
	scroll-snap-type: none;
}
.titmv-slider > * {
	flex: 0 0 auto;
	width: calc(50% - 7px);
	min-width: 155px;
	max-width: none;
	scroll-snap-align: none;
}
@media (min-width: 640px) {
	.titmv-slider > * { width: calc(33.333% - 10px); min-width: 185px; }
}
@media (min-width: 900px) {
	.titmv-slider > * { width: calc(25% - 11px); min-width: 200px; }
}
@media (min-width: 1200px) {
	.titmv-slider > * { width: calc(20% - 12px); min-width: 210px; }
}

/* full grids (store page + "view all") keep a real minimum tile width */
.titmv-store__grid {
	width: 100%;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
@media (min-width: 640px) { .titmv-store__grid { grid-template-columns: repeat(auto-fill, minmax(185px, 1fr)); } }
@media (min-width: 900px) { .titmv-store__grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } }

/* the tile itself */
.titmv-product {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	background: #fff;
	overflow: hidden;
}
.titmv-product__media { width: 100%; }
.titmv-product__media img,
.titmv-product img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}
.titmv-scope .titmv-product__title { white-space: normal; word-break: break-word; }
.titmv-product__price { white-space: nowrap; }
.titmv-product__actions { flex-wrap: nowrap; }
.titmv-product__cart { white-space: nowrap; }

/* ---------------------------------------------- shop directory & brands */
.titmv-vendorgrid,
.titmv-brandgrid {
	display: grid;
	grid-template-columns: repeat(var(--titmv-cols, 6), minmax(0, 1fr));
	gap: 18px;
	margin: 16px 0;
}
@media (max-width: 900px) {
	.titmv-vendorgrid,
	.titmv-brandgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.titmv-vendorgrid,
	.titmv-brandgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.titmv-vendorcard,
.titmv-brandcard {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
	text-decoration: none;
	color: inherit;
}
.titmv-vendorcard:hover .titmv-circle,
.titmv-brandcard:hover .titmv-circle {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
}
.titmv-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .1);
	flex: 0 0 auto;
	transition: transform .15s ease, box-shadow .15s ease;
}
.titmv-circle img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 12%;
	box-sizing: border-box;
	display: block;
}
.titmv-circle__letter,
.titmv-circle--letter {
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--titmv-accent, #333);
}
.titmv-vendorcard__name,
.titmv-brandcard__name {
	font-weight: 600;
	font-size: .92rem;
	line-height: 1.25;
}
