/* ======================================================================
   TMB Solutions — universal-styling.css
   Purpose:
   - Single shared front-end stylesheet for TMB-driven themes and plugins.
   - Keep plugins lean: plugins output structure/content, this file outputs UI.
   - Theme variations should come from tokens + body classes, not duplicated CSS.

   Front-end architecture:
   - Plugins output function, data, and semantic structure.
   - The theme owns visual presentation through this single stylesheet.
   - TMB Settings owns admin interface styling and shared brand tokens.
   - Use tmb-* naming for all front-end classes.
   - Add plugin-specific front-end styles in clearly labeled sections below.
   ====================================================================== */

/* ----------------------------------------------------------------------
   1) Base Tokens
------------------------------------------------------------------------ */
:root{
  /* Brand */
  --tmb-primary: #0f2740;
  --tmb-secondary: #cfd7e2;
  --tmb-accent: #f4b400;

  /* Typography */
  --tmb-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tmb-font-serif: Georgia, Cambria, "Times New Roman", Times, serif;
  --tmb-font-primary: var(--tmb-font-sans);
  --tmb-font-heading: var(--tmb-font-sans);

  /* Surfaces */
  --tmb-page-bg: #f8fafc;
  --tmb-surface-bg: #ffffff;
  --tmb-surface-alt: #f1f5f9;
  --tmb-surface-soft: #ffffff;
  --tmb-surface-elevated: rgba(255,255,255,.82);

  /* Text */
  --tmb-text: #0f172a;
  --tmb-text-muted: #475569;
  --tmb-text-soft: #64748b;
  --tmb-text-inverse: #ffffff;

  /* Borders */
  --tmb-border: #dbe5ef;
  --tmb-border-strong: #cbd5e1;
  --tmb-border-soft: rgba(15,23,42,.08);

  /* UI treatment */
  --tmb-ui-surface: rgba(255,255,255,.76);
  --tmb-ui-border: rgba(15,23,42,.10);
  --tmb-ui-border-strong: rgba(15,23,42,.16);
  --tmb-ui-shadow: 0 14px 34px rgba(15,23,42,.10);
  --tmb-ui-shadow-soft: 0 8px 18px rgba(15,23,42,.07);
  --tmb-ui-shadow-none: none;
  --tmb-ui-blur: 14px;

  /* Radius */
  --tmb-radius-xs: 10px;
  --tmb-radius-sm: 14px;
  --tmb-radius: 18px;
  --tmb-radius-lg: 24px;
  --tmb-radius-pill: 999px;
  --tmb-radius-base: var(--tmb-radius);

  /* Site / legacy-safe aliases */
  --tmb-ink: var(--tmb-text);
  --tmb-muted: var(--tmb-text-muted);
  --tmb-white: #ffffff;
  --tmb-glass-bg: var(--tmb-ui-surface);
  --tmb-glass-bg-2: var(--tmb-surface-elevated);
  --tmb-glass-blur: var(--tmb-ui-blur);
  --tmb-shadow: var(--tmb-ui-shadow);
  --tmb-shadow-soft: var(--tmb-ui-shadow-soft);

  /* Sizing */
  --tmb-content-max: 1200px;
  --tmb-content-narrow: 980px;
  --tmb-content-wide: 1280px;
  --tmb-content-gutter: 18px;
  --tmb-section-space: clamp(48px, 6vw, 88px);

  /* Motion / focus */
  --tmb-focus: rgba(15,39,64,.18);
  --tmb-duration-fast: .16s;
  --tmb-duration-base: .22s;
  --tmb-ease: ease;

  /* Derived aliases used by existing templates */
  --tmb-color-primary: var(--tmb-primary);
  --tmb-color-secondary: var(--tmb-secondary);
  --tmb-color-accent: var(--tmb-accent);
  --tmb-color-10: var(--tmb-primary);
  --tmb-color-30: var(--tmb-secondary);
  --tmb-color-60: color-mix(in srgb, var(--tmb-primary) 12%, white);

  --tmb-surface-card: var(--tmb-ui-surface);
  --tmb-shadow-card: var(--tmb-ui-shadow);
  --tmb-border-color: var(--tmb-ui-border);
  --tmb-text-color: var(--tmb-text);
}

/* ----------------------------------------------------------------------
   2) Theme Mode Hooks
------------------------------------------------------------------------ */
body.tmb-theme-mode-light{
  --tmb-page-bg: #f8fafc;
  --tmb-surface-bg: #ffffff;
  --tmb-surface-alt: #f1f5f9;
  --tmb-surface-soft: #ffffff;
  --tmb-surface-elevated: rgba(255,255,255,.82);
  --tmb-text: #0f172a;
  --tmb-text-muted: #475569;
  --tmb-text-soft: #64748b;
  --tmb-border: #dbe5ef;
  --tmb-border-strong: #cbd5e1;
}

body.tmb-theme-mode-dark{
  --tmb-page-bg: #0b1220;
  --tmb-surface-bg: #111827;
  --tmb-surface-alt: #172033;
  --tmb-surface-soft: #0f172a;
  --tmb-surface-elevated: rgba(17,24,39,.82);
  --tmb-text: #f8fafc;
  --tmb-text-muted: #cbd5e1;
  --tmb-text-soft: #94a3b8;
  --tmb-border: rgba(255,255,255,.10);
  --tmb-border-strong: rgba(255,255,255,.16);
}

/* ----------------------------------------------------------------------
   3) Surface Mode Hooks
------------------------------------------------------------------------ */
body.tmb-surface-style-glass{
  --tmb-ui-surface: rgba(255,255,255,.76);
  --tmb-ui-border: rgba(15,23,42,.10);
  --tmb-ui-border-strong: rgba(15,23,42,.16);
  --tmb-ui-shadow: 0 14px 34px rgba(15,23,42,.10);
  --tmb-ui-shadow-soft: 0 8px 18px rgba(15,23,42,.07);
  --tmb-ui-blur: 14px;
}

body.tmb-theme-mode-dark.tmb-surface-style-glass{
  --tmb-ui-surface: rgba(17,24,39,.72);
  --tmb-ui-border: rgba(255,255,255,.10);
  --tmb-ui-border-strong: rgba(255,255,255,.18);
  --tmb-ui-shadow: 0 18px 42px rgba(0,0,0,.26);
  --tmb-ui-shadow-soft: 0 10px 22px rgba(0,0,0,.18);
}

body.tmb-surface-style-minimal{
  --tmb-ui-surface: var(--tmb-surface-bg);
  --tmb-ui-border: var(--tmb-border);
  --tmb-ui-border-strong: var(--tmb-border-strong);
  --tmb-ui-shadow: none;
  --tmb-ui-shadow-soft: none;
  --tmb-ui-blur: 0px;
}

/* ----------------------------------------------------------------------
   4) Reset + Base
------------------------------------------------------------------------ */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ min-height:100%; }
body{
  margin:0;
  background: var(--tmb-page-bg);
  color: var(--tmb-text);
  font-family: var(--tmb-font-primary);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img,svg,video,canvas{ display:block; max-width:100%; }
button,input,textarea,select{ font: inherit; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
hr{ border:0; border-top:1px solid var(--tmb-ui-border); margin:24px 0; }

:focus-visible{
  outline: 3px solid var(--tmb-focus);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
  }
}

/* ----------------------------------------------------------------------
   5) Shared Layout Primitives
------------------------------------------------------------------------ */
.tmb-container{
  width:min(100% - (var(--tmb-content-gutter) * 2), var(--tmb-content-max));
  margin-inline:auto;
}
.tmb-container--narrow{ max-width:var(--tmb-content-narrow); }
.tmb-container--wide{ max-width:var(--tmb-content-wide); }

.tmb-section{ padding: var(--tmb-section-space) 0; }
.tmb-section--tight{ padding: clamp(24px, 4vw, 40px) 0; }
.tmb-section--flush-top{ padding-top:0; }
.tmb-section--flush-bottom{ padding-bottom:0; }

.tmb-stack{ display:grid; gap:16px; }
.tmb-stack--xs{ gap:8px; }
.tmb-stack--sm{ gap:12px; }
.tmb-stack--lg{ gap:24px; }
.tmb-stack--xl{ gap:32px; }

.tmb-grid{ display:grid; gap:24px; }
.tmb-grid--sm{ gap:16px; }
.tmb-grid--lg{ gap:32px; }
.tmb-grid-2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.tmb-grid-3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.tmb-grid-4{ grid-template-columns:repeat(4, minmax(0, 1fr)); }

@media (max-width: 1024px){
  .tmb-grid-4{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px){
  .tmb-grid-2,
  .tmb-grid-3,
  .tmb-grid-4{ grid-template-columns:1fr; }
}

/* ----------------------------------------------------------------------
   Layout: Sidebar (Content + Aside)
------------------------------------------------------------------------ */
.tmb-layout-sidebar{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 28px;
  align-items: start;
}

.tmb-layout-sidebar--wide{
  grid-template-columns: minmax(0, 1fr) 320px;
}

.tmb-layout-sidebar--narrow{
  grid-template-columns: minmax(0, 1fr) 240px;
}

@media (max-width: 1024px){
  .tmb-layout-sidebar{
    grid-template-columns: 1fr;
  }
}

.tmb-cluster{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.tmb-cluster--center{ justify-content:center; }
.tmb-cluster--between{ justify-content:space-between; }

.tmb-shell{
  background: var(--tmb-ui-surface);
  border: 1px solid var(--tmb-ui-border);
  border-radius: var(--tmb-radius-lg);
  box-shadow: var(--tmb-ui-shadow);
  backdrop-filter: blur(var(--tmb-ui-blur));
  -webkit-backdrop-filter: blur(var(--tmb-ui-blur));
}

/* ----------------------------------------------------------------------
   6) Typography Primitives
------------------------------------------------------------------------ */
.tmb-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--tmb-primary);
}

.tmb-heading-xl,
.tmb-heading-lg,
.tmb-heading-md,
.tmb-heading-sm,
.tmb-heading,
.tmb-title{
  margin:0;
  color: var(--tmb-text);
  font-family: var(--tmb-font-heading);
  letter-spacing:-.03em;
}
.tmb-heading-xl{ font-size:clamp(2.15rem, 4.8vw, 3.8rem); line-height:1.02; }
.tmb-heading-lg{ font-size:clamp(1.9rem, 4vw, 3.2rem); line-height:1.08; }
.tmb-heading-md{ font-size:clamp(1.45rem, 2.8vw, 2.1rem); line-height:1.12; }
.tmb-heading-sm{ font-size:clamp(1.05rem, 1.8vw, 1.2rem); line-height:1.25; }

.tmb-text,
.tmb-copy,
.tmb-prose{
  color: var(--tmb-text-muted);
  line-height:1.75;
  font-size:1rem;
}
.tmb-text-sm{ font-size:.94rem; line-height:1.7; }
.tmb-text-xs{ font-size:.82rem; line-height:1.6; }
.tmb-text-muted{ color: var(--tmb-text-muted); }
.tmb-text-soft{ color: var(--tmb-text-soft); }
.tmb-text-strong{ color: var(--tmb-text); }
.tmb-text-center{ text-align:center; }
.tmb-prose p,
.tmb-copy p{ margin:0; }
.tmb-prose > * + *{ margin-top:1em; }

/* ----------------------------------------------------------------------
   7) Reusable Surfaces / Media / Dividers
------------------------------------------------------------------------ */
.tmb-card,
.tmb-surface-card,
.tmb-theme-card{
  background: var(--tmb-ui-surface);
  border: 1px solid var(--tmb-ui-border);
  border-radius: var(--tmb-radius);
  box-shadow: var(--tmb-ui-shadow);
  backdrop-filter: blur(var(--tmb-ui-blur));
  -webkit-backdrop-filter: blur(var(--tmb-ui-blur));
  color: var(--tmb-text);
  padding:20px;
}
.tmb-card--tight{ padding:14px; }
.tmb-card--soft{ box-shadow: var(--tmb-ui-shadow-soft); }
.tmb-card--pad-lg{ padding:28px; }

.tmb-quote{
  padding:20px 24px;
  border:1px solid var(--tmb-ui-border);
  border-left:4px solid var(--tmb-primary);
  border-radius:0 var(--tmb-radius) var(--tmb-radius) 0;
  background: var(--tmb-ui-surface);
  box-shadow: var(--tmb-ui-shadow);
  color: var(--tmb-text);
  line-height:1.75;
  font-weight:600;
}

.tmb-media-shell{
  overflow:hidden;
  border-radius: var(--tmb-radius-lg);
  border: 1px solid var(--tmb-ui-border);
  background: var(--tmb-ui-surface);
  box-shadow: var(--tmb-ui-shadow);
}
.tmb-media-shell img{
  width:100%;
  height:auto;
  object-fit:cover;
}

.tmb-rule,
.tmb-hr{
  height:1px;
  background: var(--tmb-ui-border);
  border:0;
  margin:16px 0;
}

.tmb-pill,
.tmb-badge,
.tmb-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:34px;
  padding:7px 12px;
  border-radius: var(--tmb-radius-pill);
  border:1px solid var(--tmb-ui-border);
  background: var(--tmb-ui-surface);
  box-shadow: var(--tmb-ui-shadow-soft);
  color: var(--tmb-text);
  font-size:.85rem;
  font-weight:700;
}

/* ----------------------------------------------------------------------
   8) Buttons / Links
------------------------------------------------------------------------ */
.tmb-button,
.tmb-btn,
.tmb-theme-button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:46px;
  padding:10px 18px;
  border-radius: var(--tmb-radius-pill);
  border:1px solid var(--tmb-primary);
  background: var(--tmb-primary);
  color: var(--tmb-text-inverse);
  cursor:pointer;
  font-weight:700;
  text-decoration:none !important;
  box-shadow: var(--tmb-ui-shadow-soft);
  transition:
    transform var(--tmb-duration-fast) var(--tmb-ease),
    opacity var(--tmb-duration-fast) var(--tmb-ease),
    background var(--tmb-duration-fast) var(--tmb-ease),
    border-color var(--tmb-duration-fast) var(--tmb-ease),
    color var(--tmb-duration-fast) var(--tmb-ease);
}
.tmb-button:hover,
.tmb-btn:hover,
.tmb-theme-button:hover{
  text-decoration:none !important;
  color: var(--tmb-text-inverse);
  opacity:.95;
  transform: translateY(-1px);
}

.tmb-button--secondary,
.tmb-btn--secondary,
.tmb-theme-button--secondary{
  background: transparent;
  color: var(--tmb-text);
  border-color: var(--tmb-ui-border-strong);
  box-shadow:none;
}
.tmb-button--secondary:hover,
.tmb-btn--secondary:hover,
.tmb-theme-button--secondary:hover{
  color: var(--tmb-text);
  background: color-mix(in srgb, var(--tmb-primary) 6%, transparent);
}

.tmb-button--ghost,
.tmb-btn--ghost{
  background: transparent;
  color: var(--tmb-text);
  border-color: transparent;
  box-shadow:none;
}

.tmb-link{
  color: var(--tmb-primary);
  font-weight:800;
}
.tmb-link:hover{
  color: var(--tmb-accent);
  text-decoration:none;
}

body.tmb-surface-style-minimal .tmb-button,
body.tmb-surface-style-minimal .tmb-btn,
body.tmb-surface-style-minimal .tmb-theme-button{
  box-shadow:none;
}

/* ----------------------------------------------------------------------
   9) Forms / Inputs / Notices
------------------------------------------------------------------------ */
.tmb-field,
.tmb-theme-input,
.tmb-form input[type="text"],
.tmb-form input[type="email"],
.tmb-form input[type="tel"],
.tmb-form input[type="password"],
.tmb-form input[type="search"],
.tmb-form input[type="number"],
.tmb-form textarea,
.tmb-form select,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
select,
textarea{
  width:100%;
  max-width:100%;
  padding:12px 14px;
  border-radius: var(--tmb-radius-sm);
  border:1px solid var(--tmb-ui-border);
  background: var(--tmb-surface-bg);
  color: var(--tmb-text);
  font-size:16px;
  box-shadow: inset 0 1px 2px rgba(15,23,42,.05);
  transition:
    border-color var(--tmb-duration-fast) var(--tmb-ease),
    box-shadow var(--tmb-duration-fast) var(--tmb-ease),
    background var(--tmb-duration-fast) var(--tmb-ease);
}
.tmb-field:focus,
.tmb-theme-input:focus,
.tmb-form input:focus,
.tmb-form textarea:focus,
.tmb-form select:focus,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus,
select:focus,
textarea:focus{
  outline:none;
  border-color: color-mix(in srgb, var(--tmb-primary) 30%, white);
  box-shadow: 0 0 0 4px var(--tmb-focus);
}

.tmb-form,
.tmb-form__inner{ display:grid; gap:16px; }
.tmb-form__field,
.tmb-field-wrap{ display:grid; gap:8px; }
.tmb-form__field label,
.tmb-label{
  font-weight:700;
  color: var(--tmb-text);
}
.tmb-form__actions{ display:flex; flex-wrap:wrap; gap:12px; }
.tmb-form__honeypot{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

.tmb-notice,
.tmb-form__notice{
  padding:14px 16px;
  border-radius: var(--tmb-radius);
  font-weight:600;
  border:1px solid var(--tmb-ui-border);
  background: var(--tmb-ui-surface);
}
.tmb-notice--success,
.tmb-form__notice--success{
  background: rgba(34,197,94,.10);
  border-color: rgba(34,197,94,.24);
  color:#166534;
}
.tmb-notice--error,
.tmb-form__notice--error{
  background: rgba(239,68,68,.08);
  border-color: rgba(239,68,68,.20);
  color:#991b1b;
}

/* ----------------------------------------------------------------------
   10) Generic Utility Helpers
------------------------------------------------------------------------ */
.tmb-center{ text-align:center; }
.tmb-sr-only{
  position:absolute !important;
  width:1px; height:1px;
  margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}
.tmb-w-full{ width:100%; }
.tmb-max-none{ max-width:none; }
.tmb-mx-auto{ margin-inline:auto; }
.tmb-hidden{ display:none !important; }
.tmb-rounded{ border-radius: var(--tmb-radius); }
.tmb-rounded-lg{ border-radius: var(--tmb-radius-lg); }
.tmb-shadow-none{ box-shadow:none !important; }
.tmb-surface{ background: var(--tmb-ui-surface); }
.tmb-border{ border:1px solid var(--tmb-ui-border); }

/* ----------------------------------------------------------------------
   11) Woo / Commerce Shared Layer
------------------------------------------------------------------------ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border-radius: var(--tmb-radius);
  border:1px solid var(--tmb-ui-border);
  box-shadow: var(--tmb-ui-shadow-soft);
  background: var(--tmb-ui-surface);
  padding:14px 16px;
}
.woocommerce-message{ border-color: color-mix(in srgb, var(--tmb-primary) 22%, white); }
.woocommerce-info{ border-color: var(--tmb-ui-border-strong); }
.woocommerce-error{ border-color: rgba(179,45,46,.28); }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit{
  appearance:none;
  border:1px solid var(--tmb-ui-border);
  background: var(--tmb-ui-surface);
  color: var(--tmb-text);
  border-radius: var(--tmb-radius-sm);
  padding:10px 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  cursor:pointer;
  transition: transform var(--tmb-duration-fast) var(--tmb-ease), background var(--tmb-duration-fast) var(--tmb-ease), border-color var(--tmb-duration-fast) var(--tmb-ease);
  box-shadow: var(--tmb-ui-shadow-soft);
  text-decoration:none !important;
  font-weight:800;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
  background: color-mix(in srgb, var(--tmb-surface-bg) 92%, white);
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--tmb-primary) 20%, white);
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{
  background: color-mix(in srgb, var(--tmb-accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--tmb-accent) 34%, white);
  color: var(--tmb-text);
}

.woocommerce table.shop_table{
  border:1px solid var(--tmb-ui-border);
  border-radius: var(--tmb-radius);
  overflow:hidden;
  background: var(--tmb-ui-surface);
  box-shadow: var(--tmb-ui-shadow-soft);
}
.woocommerce table.shop_table thead th{
  background: color-mix(in srgb, var(--tmb-primary) 5%, white);
  color: var(--tmb-text);
  font-weight:900;
  border-bottom:1px solid var(--tmb-ui-border);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
  padding:12px 14px;
  border-top:1px solid var(--tmb-ui-border);
  vertical-align:middle;
}
.woocommerce table.shop_table tr:first-child td{ border-top:0; }

.woocommerce-account .woocommerce{
  max-width: var(--tmb-content-max);
  margin:0 auto;
  padding:18px var(--tmb-content-gutter);
}
.woocommerce-account .tmb-myacct-layout{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.woocommerce-account .tmb-myacct-layout > .woocommerce-MyAccount-navigation,
.woocommerce-account .tmb-myacct-layout > .woocommerce-MyAccount-content{
  float:none !important;
  width:auto !important;
  margin:0 !important;
  min-width:0;
}
.woocommerce-account .woocommerce-MyAccount-navigation{
  border:1px solid var(--tmb-ui-border);
  border-radius: var(--tmb-radius);
  background: var(--tmb-ui-surface);
  box-shadow: var(--tmb-ui-shadow-soft);
  backdrop-filter: blur(var(--tmb-ui-blur));
  -webkit-backdrop-filter: blur(var(--tmb-ui-blur));
  padding:10px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.woocommerce-account .woocommerce-MyAccount-navigation a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  border-radius: var(--tmb-radius-sm);
  border:1px solid transparent;
  background: color-mix(in srgb, var(--tmb-surface-bg) 65%, transparent);
  font-weight:800;
  color: var(--tmb-text);
  text-decoration:none !important;
  transition: background var(--tmb-duration-base) var(--tmb-ease), border-color var(--tmb-duration-base) var(--tmb-ease), transform var(--tmb-duration-base) var(--tmb-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover{
  background: color-mix(in srgb, var(--tmb-primary) 8%, transparent);
  border-color: color-mix(in srgb, var(--tmb-primary) 14%, white);
  transform: translateY(-1px);
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active > a,
.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link.is-active > a{
  background: color-mix(in srgb, var(--tmb-accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--tmb-accent) 22%, white);
}
.woocommerce-account .woocommerce-MyAccount-content{
  border:1px solid var(--tmb-ui-border);
  border-radius: var(--tmb-radius);
  background: var(--tmb-ui-surface);
  box-shadow: var(--tmb-ui-shadow);
  backdrop-filter: blur(var(--tmb-ui-blur));
  -webkit-backdrop-filter: blur(var(--tmb-ui-blur));
  padding:18px;
  min-height:340px;
}
@media (max-width: 980px){
  .woocommerce-account .tmb-myacct-layout{ grid-template-columns:1fr; }
}

/* =========================================
   TMB Pages — Theme Styles
   Plugins output structure/content only.
========================================= */

.tmb-home-page,.tmb-about-page,.tmb-about-split,.tmb-contact-page,.tmb-faq-page,.tmb-home-cta,.tmb-home-hero-rail,.tmb-home-categories,.tmb-home-products{font-family:var(--tmb-font-primary, var(--tmb-font-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));}
.tmb-about-page__title,.tmb-about-split__title,.tmb-contact-page__title,.tmb-contact-page__details h2,.tmb-faq-page__title,.tmb-faq-page__question,.tmb-home-cta__title,.tmb-home-hero-rail__headline,.tmb-home-categories__title,.tmb-home-categories__card-title,.tmb-home-products__title,.tmb-home-products__empty-title,.tmb-form__title{font-family:var(--tmb-font-heading, var(--tmb-font-primary, var(--tmb-font-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)));}
.tmb-about-page__lead,.tmb-about-page__quote,.tmb-about-page__feature p,.tmb-about-page__button,.tmb-about-split__lead,.tmb-about-split__quote,.tmb-about-split__feature p,.tmb-about-split__button,.tmb-contact-page__lead,.tmb-contact-page__details-copy,.tmb-contact-page__item,.tmb-faq-page__lead,.tmb-faq-page__answer,.tmb-faq-page__button,.tmb-home-cta__eyebrow,.tmb-home-cta__text,.tmb-home-cta__button,.tmb-home-hero-rail__eyebrow,.tmb-home-hero-rail__subhead,.tmb-home-hero-rail__tile-label,.tmb-home-categories__text,.tmb-home-categories__card-text,.tmb-home-categories__cta,.tmb-home-products__text,.tmb-home-products__button,.tmb-form__description,.tmb-form__notice,.tmb-form__field label,.tmb-form__field input,.tmb-form__field textarea,.tmb-form__submit{font-family:var(--tmb-font-primary, var(--tmb-font-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));}

.tmb-about-page{padding:clamp(48px,7vw,88px) 0;}
.tmb-about-page,.tmb-about-page *{box-sizing:border-box;}
.tmb-about-page__container{max-width:1120px;margin:0 auto;padding:0 24px;display:grid;gap:32px;}
.tmb-about-page__stack{max-width:760px;margin:0 auto;display:grid;gap:18px;text-align:center;}
.tmb-about-page__title{margin:0;font-size:clamp(2rem,4vw,3.15rem);line-height:1.1;letter-spacing:-.025em;color:var(--tmb-text-color,#111827);}
.tmb-about-page__lead{margin:0;font-size:1rem;line-height:1.8;color:var(--tmb-text-muted,#4b5563);}
.tmb-about-page__lead p{margin:0;}
.tmb-about-page__quote{max-width:860px;margin:0 auto;padding:20px 24px;border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-lg,20px);background:var(--tmb-surface-card,#fafafa);box-shadow:var(--tmb-shadow-card,none);font-size:clamp(1rem,1.8vw,1.2rem);line-height:1.7;font-weight:600;color:var(--tmb-text-color,#1f2937);text-align:center;}
.tmb-about-page__features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.tmb-about-page__feature{padding:24px;border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-base,18px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);display:grid;gap:10px;align-content:start;}
.tmb-about-page__feature h3{margin:0;font-size:1.05rem;line-height:1.3;color:var(--tmb-text-color,#111827);}
.tmb-about-page__feature p{margin:0;font-size:.98rem;line-height:1.75;color:var(--tmb-text-muted,#4b5563);}
.tmb-about-page__image{max-width:980px;margin:0 auto;border-radius:var(--tmb-radius-lg,24px);overflow:hidden;border:1px solid var(--tmb-border-color,#e5e7eb);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);}
.tmb-about-page__image img{display:block;width:100%;height:auto;object-fit:cover;}
.tmb-about-page__actions{text-align:center;}
.tmb-about-page__button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--tmb-color-10,var(--tmb-color-primary,#111827));background:var(--tmb-color-10,var(--tmb-color-primary,#111827));color:#fff;text-decoration:none;font-weight:700;line-height:1;transition:opacity .18s ease, transform .18s ease;}
.tmb-about-page__button:hover{color:#fff;opacity:.94;transform:translateY(-1px);}
@media (max-width:960px){.tmb-about-page__features{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:680px){.tmb-about-page__container{padding:0 18px;gap:24px;}.tmb-about-page__features{grid-template-columns:1fr;}.tmb-about-page__feature{padding:20px;}}
.tmb-about-split{padding:clamp(48px,7vw,88px) 0;}
.tmb-about-split,.tmb-about-split *{box-sizing:border-box;}
.tmb-about-split__container{max-width:1180px;margin:0 auto;padding:0 24px;display:grid;gap:34px;}
.tmb-about-split__hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:28px;align-items:center;}
.tmb-about-split__copy{display:grid;gap:18px;}
.tmb-about-split__title{margin:0;font-size:clamp(2rem,4vw,3.3rem);line-height:1.06;letter-spacing:-.03em;color:var(--tmb-text-color,#111827);}
.tmb-about-split__lead{margin:0;font-size:1rem;line-height:1.85;color:var(--tmb-text-muted,#4b5563);}
.tmb-about-split__lead p{margin:0;}
.tmb-about-split__quote{padding:18px 20px;border-left:4px solid var(--tmb-color-10,var(--tmb-color-primary,#111827));background:var(--tmb-surface-card,#fafafa);border:1px solid var(--tmb-border-color,#e5e7eb);border-left-width:4px;border-radius:0 var(--tmb-radius-base,16px) var(--tmb-radius-base,16px) 0;box-shadow:var(--tmb-shadow-card,none);font-size:1rem;line-height:1.75;font-weight:600;color:var(--tmb-text-color,#1f2937);}
.tmb-about-split__actions{display:flex;flex-wrap:wrap;gap:12px;}
.tmb-about-split__button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--tmb-color-10,var(--tmb-color-primary,#111827));background:var(--tmb-color-10,var(--tmb-color-primary,#111827));color:#fff;text-decoration:none;font-weight:700;line-height:1;transition:opacity .18s ease, transform .18s ease;}
.tmb-about-split__button:hover{color:#fff;opacity:.94;transform:translateY(-1px);}
.tmb-about-split__media{border-radius:var(--tmb-radius-lg,24px);overflow:hidden;border:1px solid var(--tmb-border-color,#e5e7eb);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);min-height:100%;}
.tmb-about-split__media img{display:block;width:100%;height:100%;object-fit:cover;}
.tmb-about-split__features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.tmb-about-split__feature{padding:24px;border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-base,18px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);display:grid;gap:10px;align-content:start;}
.tmb-about-split__feature h3{margin:0;font-size:1.05rem;line-height:1.3;color:var(--tmb-text-color,#111827);}
.tmb-about-split__feature p{margin:0;font-size:.98rem;line-height:1.75;color:var(--tmb-text-muted,#4b5563);}
@media (max-width:900px){.tmb-about-split__hero{grid-template-columns:1fr;}.tmb-about-split__media{order:-1;}.tmb-about-split__features{grid-template-columns:1fr;}}
@media (max-width:680px){.tmb-about-split__container{padding:0 18px;gap:24px;}.tmb-about-split__feature{padding:20px;}}
.tmb-form__honeypot{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.tmb-contact-page{padding:clamp(48px,7vw,88px) 0;}
.tmb-contact-page,.tmb-contact-page *{box-sizing:border-box;}
.tmb-contact-page__container{max-width:1180px;margin:0 auto;padding:0 24px;display:grid;gap:28px;}
.tmb-contact-page__stack{max-width:760px;margin:0 auto;display:grid;gap:16px;text-align:center;}
.tmb-contact-page__title{margin:0;font-size:clamp(2rem,4vw,3.15rem);line-height:1.08;letter-spacing:-.03em;color:var(--tmb-text-color,#111827);}
.tmb-contact-page__lead{margin:0;font-size:1rem;line-height:1.8;color:var(--tmb-text-muted,#4b5563);}
.tmb-contact-page__lead p{margin:0;}
.tmb-contact-page__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);gap:24px;align-items:start;}
.tmb-contact-page__content,.tmb-contact-page__form-shell{padding:24px;border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-lg,24px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);}
.tmb-contact-page__details{display:grid;gap:14px;}
.tmb-contact-page__details h2{margin:0;font-size:1.2rem;line-height:1.2;color:var(--tmb-text-color,#111827);}
.tmb-contact-page__details-copy{color:var(--tmb-text-muted,#4b5563);line-height:1.75;}
.tmb-contact-page__details-copy p{margin:0;}
.tmb-contact-page__items{display:grid;gap:12px;}
.tmb-contact-page__item{padding:16px 18px;border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-base,18px);background:var(--tmb-surface-alt,#f8fafc);}
.tmb-contact-page__item strong{display:block;margin:0 0 4px;color:var(--tmb-text-color,#111827);}
.tmb-contact-page__item span{display:block;color:var(--tmb-text-muted,#4b5563);line-height:1.7;}
.tmb-contact-page__image{overflow:hidden;border-radius:var(--tmb-radius-lg,24px);border:1px solid var(--tmb-border-color,#e5e7eb);}
.tmb-contact-page__image img{display:block;width:100%;height:auto;object-fit:cover;}
.tmb-form,.tmb-form *{box-sizing:border-box;}
.tmb-form__inner{display:grid;gap:16px;}
.tmb-form__title{margin:0;font-size:1.35rem;line-height:1.15;color:var(--tmb-text-color,#111827);}
.tmb-form__description{color:var(--tmb-text-muted,#4b5563);line-height:1.75;}
.tmb-form__description p{margin:0;}
.tmb-form__notice{padding:14px 16px;border-radius:var(--tmb-radius-base,18px);font-weight:600;}
.tmb-form__notice--success{background:rgba(34,197,94,.10);border:1px solid rgba(34,197,94,.22);color:#166534;}
.tmb-form__notice--error{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.18);color:#991b1b;}
.tmb-form__form{display:grid;gap:14px;}
.tmb-form__field{display:grid;gap:8px;}
.tmb-form__field label{font-weight:700;color:var(--tmb-text-color,#111827);}
.tmb-form__field input,.tmb-form__field textarea{width:100%;padding:12px 14px;border-radius:var(--tmb-radius-base,18px);border:1px solid var(--tmb-border-color,#dbe5ef);background:#fff;color:var(--tmb-text-color,#111827);}
.tmb-form__field textarea{min-height:140px;resize:vertical;}
.tmb-form__actions{display:flex;}
.tmb-form__submit{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--tmb-color-10,var(--tmb-color-primary,#111827));background:var(--tmb-color-10,var(--tmb-color-primary,#111827));color:#fff;font-weight:700;cursor:pointer;transition:opacity .18s ease,transform .18s ease;}
.tmb-form__submit:hover{opacity:.94;transform:translateY(-1px);}
@media (max-width:920px){.tmb-contact-page__grid{grid-template-columns:1fr;}.tmb-contact-page__form-shell{order:-1;}}
@media (max-width:680px){.tmb-contact-page__container{padding:0 18px;}.tmb-contact-page__content,.tmb-contact-page__form-shell{padding:20px;}}
.tmb-faq-page{padding:clamp(48px,7vw,88px) 0;}
.tmb-faq-page,.tmb-faq-page *{box-sizing:border-box;}
.tmb-faq-page__container{max-width:980px;margin:0 auto;padding:0 24px;display:grid;gap:26px;}
.tmb-faq-page__head{max-width:760px;margin:0 auto;display:grid;gap:14px;text-align:center;}
.tmb-faq-page__title{margin:0;font-size:clamp(2rem,4vw,3.15rem);line-height:1.1;letter-spacing:-.025em;color:var(--tmb-text-color,#111827);}
.tmb-faq-page__lead{margin:0;font-size:1rem;line-height:1.8;color:var(--tmb-text-muted,#4b5563);}
.tmb-faq-page__lead p{margin:0;}
.tmb-faq-page__list{display:grid;gap:14px;}
.tmb-faq-page__item{border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-base,18px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);overflow:hidden;}
.tmb-faq-page__question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:0;background:transparent;color:var(--tmb-text-color,#111827);font-size:1.02rem;font-weight:700;text-align:left;cursor:pointer;}
.tmb-faq-page__question:after{content:'+';font-size:24px;line-height:1;color:var(--tmb-color-primary,#0f2740);}
.tmb-faq-page__item.is-open .tmb-faq-page__question:after{content:'−';}
.tmb-faq-page__answer{display:none;padding:0 20px 20px;color:var(--tmb-text-muted,#4b5563);font-size:.98rem;line-height:1.8;}
.tmb-faq-page__item.is-open .tmb-faq-page__answer{display:block;}
.tmb-faq-page__answer p{margin:0;}
.tmb-faq-page__actions{text-align:center;padding-top:6px;}
.tmb-faq-page__button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--tmb-color-10,var(--tmb-color-primary,#111827));background:var(--tmb-color-10,var(--tmb-color-primary,#111827));color:#fff;text-decoration:none;font-weight:700;line-height:1;transition:opacity .18s ease, transform .18s ease;}
.tmb-faq-page__button:hover{color:#fff;opacity:.94;transform:translateY(-1px);}
@media (max-width:680px){.tmb-faq-page__container{padding:0 18px;}}
#tmb-splash{
position: fixed;
inset: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
background: radial-gradient(closest-side at 50% 35%, rgba(17,153,187,.08), transparent 70%), #ffffff;
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
opacity: 0;
pointer-events: none;
transition: opacity .35s ease;
}
#tmb-splash.is-visible{opacity:1;pointer-events:auto;}
#tmb-splash.is-hidden{opacity:0;pointer-events:none;}
.tmb-splash__inner{
display:flex;
flex-direction:column;
align-items:center;
gap:14px;
padding:28px 34px;
border-radius:28px;
background:rgba(255,255,255,.82);
border:1px solid rgba(5,46,69,.12);
box-shadow:0 20px 50px rgba(2,10,25,.12), inset 0 1px 0 rgba(255,255,255,.6);
}
.tmb-splash__logo{width:min(320px,70vw);height:auto;display:block;}
.tmb-splash__welcome{margin:0;font-size:15px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--tmb-pages-text-soft, #6b7280);}
@media (prefers-reduced-motion: reduce){#tmb-splash{transition:none;}}
.tmb-home-cta{padding:clamp(48px,6vw,84px) 0;}
.tmb-home-cta,.tmb-home-cta *{box-sizing:border-box;}
.tmb-home-cta__container{max-width:1180px;margin:0 auto;padding:0 24px;}
.tmb-home-cta__panel{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(280px,.96fr);gap:26px;align-items:center;padding:28px;border:1px solid var(--tmb-border-color,#e5e7eb);border-radius:var(--tmb-radius-lg,24px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);}
.tmb-home-cta__copy{display:grid;gap:16px;align-content:start;}
.tmb-home-cta__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--tmb-color-primary,#0f2740);}
.tmb-home-cta__title{margin:0;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.08;letter-spacing:-.03em;color:var(--tmb-text-color,#111827);}
.tmb-home-cta__text{margin:0;font-size:1rem;line-height:1.8;color:var(--tmb-text-muted,#4b5563);max-width:64ch;}
.tmb-home-cta__text p{margin:0;}
.tmb-home-cta__actions{display:flex;flex-wrap:wrap;gap:12px;}
.tmb-home-cta__button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--tmb-color-10,var(--tmb-color-primary,#111827));background:var(--tmb-color-10,var(--tmb-color-primary,#111827));color:#fff;text-decoration:none;font-weight:700;line-height:1;transition:opacity .18s ease,transform .18s ease;}
.tmb-home-cta__button:hover{color:#fff;opacity:.94;transform:translateY(-1px);}
.tmb-home-cta__media{border-radius:var(--tmb-radius-base,18px);overflow:hidden;border:1px solid var(--tmb-border-color,#e5e7eb);background:var(--tmb-surface-alt,#f8fafc);min-height:100%;}
.tmb-home-cta__media img{display:block;width:100%;height:100%;object-fit:cover;}
@media (max-width:900px){.tmb-home-cta__panel{grid-template-columns:1fr;}.tmb-home-cta__media{order:-1;}}
@media (max-width:680px){.tmb-home-cta__container{padding:0 18px;}.tmb-home-cta__panel{padding:22px;gap:20px;}}
.tmb-home-hero-rail{padding:0;border-top:1px solid var(--tmb-section-border-strong,var(--tmb-border-color,#dbe5ef));border-bottom:1px solid var(--tmb-section-border-strong,var(--tmb-border-color,#dbe5ef));background:var(--tmb-section-surface,var(--tmb-surface-card,#ffffff));box-shadow:var(--tmb-section-shadow,var(--tmb-shadow-card,none));overflow:visible!important;}
.tmb-home-hero-rail{--tmb-hr-top:0px;}
.tmb-home-hero-rail__scrolly{position:relative;overflow:visible!important;}
.tmb-home-hero-rail__sticky{position:sticky;top:var(--tmb-hr-top);z-index:5;padding:20px 0 16px;background:var(--tmb-section-surface,var(--tmb-surface-card,#ffffff));backdrop-filter:blur(var(--tmb-section-backdrop-blur,0px));-webkit-backdrop-filter:blur(var(--tmb-section-backdrop-blur,0px));border-top:1px solid var(--tmb-section-border-strong,var(--tmb-border-color,#dbe5ef));border-bottom:1px solid var(--tmb-section-border-strong,var(--tmb-border-color,#dbe5ef));}
.tmb-home-hero-rail__top{padding:0 0 10px;}
.tmb-home-hero-rail__inner{max-width:1180px;margin:0 auto;padding:0 24px;}
.tmb-home-hero-rail__eyebrow{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--tmb-text-muted,#64748b);font-weight:800;}
.tmb-home-hero-rail__headline{margin:0 0 10px;font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.03;letter-spacing:-.03em;color:var(--tmb-text-color,#111827);}
.tmb-home-hero-rail__subhead{margin:0;max-width:64ch;color:var(--tmb-text-muted,#4b5563);font-size:1rem;line-height:1.7;}
.tmb-home-hero-rail__rail-wrap{overflow:hidden;width:100%;}
.tmb-home-hero-rail__rail{display:flex;gap:14px;padding:10px 24px 12px;will-change:transform;transform:translate3d(0,0,0);}
.tmb-home-hero-rail__tile{flex:0 0 auto;width:clamp(240px,36vw,420px);height:clamp(160px,22vw,240px);border-radius:22px;border:1px solid rgba(255,255,255,.22);box-shadow:0 22px 44px rgba(2,10,25,.18);text-decoration:none;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:18px;color:#fff;background-image:var(--tmb-hero-tile-bg);background-size:cover;background-position:center;background-repeat:no-repeat;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;}
.tmb-home-hero-rail__tile::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 520px at 30% 10%, rgba(0,0,0,.10), rgba(0,0,0,0) 60%),linear-gradient(to top, rgba(0,0,0,.62), rgba(0,0,0,.20) 58%, rgba(0,0,0,0));z-index:1;}
.tmb-home-hero-rail__tile::after{content:"";position:absolute;inset:0;border-radius:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.20);z-index:2;pointer-events:none;}
.tmb-home-hero-rail__tile:hover{transform:translateY(-3px);box-shadow:0 28px 60px rgba(2,10,25,.28);filter:saturate(1.05);}
.tmb-home-hero-rail__tile-label{position:relative;z-index:3;font-size:clamp(20px,2.4vw,30px);font-weight:900;letter-spacing:-.02em;color:#fff;text-shadow:0 8px 22px rgba(0,0,0,.42);}
.tmb-home-hero-rail__progress{max-width:1180px;margin:2px auto 0;padding:0 24px 4px;}
.tmb-home-hero-rail__progress-bar{display:block;height:3px;width:0%;border-radius:99px;background:var(--tmb-color-accent,var(--tmb-color-10,#f4b400));box-shadow:0 8px 18px rgba(244,180,0,.25);}
@media (max-width:880px){.tmb-home-hero-rail__sticky{position:relative;top:auto;}.tmb-home-hero-rail__rail-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;}.tmb-home-hero-rail__rail{transform:none!important;will-change:auto;padding-bottom:16px;}.tmb-home-hero-rail__tile{scroll-snap-align:start;width:clamp(240px,78vw,420px);height:190px;}}
@media (prefers-reduced-motion:reduce){.tmb-home-hero-rail__sticky{position:relative;}.tmb-home-hero-rail__rail-wrap{overflow-x:auto;scroll-snap-type:x mandatory;}.tmb-home-hero-rail__rail{transform:none!important;}.tmb-home-hero-rail__tile{scroll-snap-align:start;}}
.tmb-home-categories{padding:clamp(48px,6vw,84px) 0;}
.tmb-home-categories,.tmb-home-categories *{box-sizing:border-box;}
.tmb-home-categories__container{max-width:1180px;margin:0 auto;padding:0 24px;}
.tmb-home-categories__head{text-align:center;margin-bottom:22px;}
.tmb-home-categories__title{margin:0 0 8px 0;color:var(--tmb-text-color,#111827);font-size:clamp(2rem,3.4vw,3rem);letter-spacing:-0.03em;line-height:1.08;}
.tmb-home-categories__text{margin:0 auto;max-width:62ch;color:var(--tmb-text-muted,#4b5563);line-height:1.7;font-size:1rem;}
.tmb-home-categories__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;}
.tmb-home-categories__card{position:relative;padding:0;overflow:hidden;min-height:220px;display:flex;align-items:stretch;transform:translateY(8px);opacity:0;transition:opacity .5s ease,transform .5s ease;border:1px solid var(--tmb-border-color,#dbe5ef);border-radius:var(--tmb-radius-lg,24px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);}
.tmb-home-categories__card::before{content:"";position:absolute;inset:0;background-image:var(--tmb-cat-bg);background-size:cover;background-position:center;opacity:0;transform:scale(1.02);transition:opacity .35s ease,transform .6s ease;filter:saturate(1.05);}
.tmb-home-categories__card::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom, rgba(15,39,64,.15), rgba(15,39,64,.58));opacity:0;transition:opacity .35s ease;}
.tmb-home-categories__inner{position:relative;z-index:2;padding:18px 18px 16px;display:flex;flex-direction:column;gap:10px;width:100%;}
.tmb-home-categories__card-title{margin:0;color:var(--tmb-text-color,#111827);font-size:1.15rem;letter-spacing:-0.01em;}
.tmb-home-categories__card-text{margin:0;color:var(--tmb-text-muted,#4b5563);line-height:1.65;font-size:.95rem;max-width:48ch;}
.tmb-home-categories__cta{margin-top:auto;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:14px;border:1px solid var(--tmb-border-color,#dbe5ef);background:rgba(255,255,255,.78);color:var(--tmb-text-color,#111827);font-weight:800;text-decoration:none;box-shadow:0 8px 18px rgba(2,10,25,.06);transition:transform .15s ease,background .15s ease,border-color .15s ease;}
.tmb-home-categories__cta:hover{text-decoration:none;transform:translateY(-1px);background:rgba(255,255,255,.92);border-color:var(--tmb-color-30,var(--tmb-color-secondary,#cfd7e2));color:var(--tmb-text-color,#111827);}
.tmb-home-categories__arrow{font-size:16px;line-height:1;opacity:.9;}
.tmb-home-categories__card:hover::before{opacity:1;transform:scale(1.06);}
.tmb-home-categories__card:hover::after{opacity:1;}
.tmb-home-categories__card:hover .tmb-home-categories__card-title,
.tmb-home-categories__card:hover .tmb-home-categories__card-text{color:rgba(255,255,255,.94);}
.tmb-home-categories__card:hover .tmb-home-categories__cta{background:rgba(255,255,255,.9);border-color:rgba(255,255,255,.35);}
.tmb-home-categories__card:hover .tmb-home-categories__arrow{color:var(--tmb-color-accent,var(--tmb-color-10,#f4b400));}
.tmb-home-categories__card.is-inview{opacity:1;transform:translateY(0);}
@media (max-width:1024px){.tmb-home-categories__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:680px){.tmb-home-categories__container{padding:0 18px;}.tmb-home-categories__grid{grid-template-columns:1fr;}.tmb-home-categories__card{min-height:210px;}}
.tmb-home-products{padding:clamp(48px,6vw,84px) 0;}
.tmb-home-products,.tmb-home-products *{box-sizing:border-box;}
.tmb-home-products__container{max-width:1180px;margin:0 auto;padding:0 24px;}
.tmb-home-products__head{display:grid;gap:12px;justify-items:center;text-align:center;margin-bottom:18px;}
.tmb-home-products__title{margin:0;font-size:clamp(2rem,3.6vw,3rem);line-height:1.08;letter-spacing:-.03em;color:var(--tmb-text-color,#111827);}
.tmb-home-products__text{margin:0;max-width:64ch;font-size:1rem;line-height:1.75;color:var(--tmb-text-muted,#4b5563);}
.tmb-home-products__actions{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;}
.tmb-home-products__button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--tmb-border-color,#dbe5ef);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);color:var(--tmb-text-color,#111827);text-decoration:none;font-weight:700;transition:transform .15s ease,opacity .15s ease,border-color .15s ease;cursor:pointer;}
.tmb-home-products__button:hover{transform:translateY(-1px);opacity:.96;color:var(--tmb-text-color,#111827);border-color:var(--tmb-color-30,var(--tmb-color-secondary,#cfd7e2));}
.tmb-home-products__button--primary{background:var(--tmb-color-10,var(--tmb-color-primary,#0f2740));border-color:var(--tmb-color-10,var(--tmb-color-primary,#0f2740));color:#fff;}
.tmb-home-products__button--primary:hover{color:#fff;border-color:var(--tmb-color-10,var(--tmb-color-primary,#0f2740));}
.tmb-home-products__grid{margin-top:16px;}
.tmb-home-products__products{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:0 !important;margin:0 !important;}
.tmb-home-products__products::before,.tmb-home-products__products::after{content:none !important;}
.tmb-home-products__empty{padding:24px;border:1px solid var(--tmb-border-color,#dbe5ef);border-radius:var(--tmb-radius-lg,24px);background:var(--tmb-surface-card,#fff);box-shadow:var(--tmb-shadow-card,none);display:grid;gap:12px;justify-items:start;}
.tmb-home-products__empty-title{margin:0;font-size:1.15rem;color:var(--tmb-text-color,#111827);}
.tmb-home-products__empty-text{margin:0;color:var(--tmb-text-muted,#4b5563);line-height:1.7;}
@media (max-width:1024px){.tmb-home-products__products{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:680px){.tmb-home-products__container{padding:0 18px;}.tmb-home-products__products{grid-template-columns:1fr;}}
.tmb-hide-native-title .entry-title,.tmb-hide-native-title .page-title,.tmb-hide-native-title .wp-block-post-title{display:none !important;}

/* =========================================
   TMB Search — Theme Styles
========================================= */
.tmb-search{display:flex;flex-direction:column;gap:12px;position:relative;}
.tmb-search__field{width:100%;}
.tmb-search__input{width:100%;box-sizing:border-box;border-radius:9999px;border:1px solid var(--tmb-search-border-strong,var(--tmb-border-strong,rgba(166,189,208,.55)));background:var(--tmb-search-input-bg,var(--tmb-glass-bg,rgba(255,255,255,.70)));padding:12px 14px;font-size:16px;font-weight:800;color:var(--tmb-search-text,var(--tmb-ink,var(--tmb-primary,#1a2432)));outline:none;-webkit-appearance:none;box-shadow:var(--tmb-search-input-shadow,var(--tmb-shadow-soft,0 1px 1px rgba(15,23,32,.06)));}
.tmb-search__input::placeholder{color:var(--tmb-search-placeholder,rgba(33,45,58,.55));font-weight:800;}
.tmb-search__results{display:flex;flex-direction:column;gap:8px;}
.tmb-search__hint{padding:10px 12px;border-radius:14px;border:1px solid var(--tmb-search-border,var(--tmb-border,rgba(166,189,208,.35)));background:var(--tmb-search-hint-bg,rgba(255,255,255,.50));color:var(--tmb-search-muted,rgba(33,45,58,.72));font-weight:800;font-size:13px;}
.tmb-search__result{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;border:1px solid var(--tmb-search-border,var(--tmb-border,rgba(166,189,208,.32)));background:var(--tmb-search-result-bg,rgba(255,255,255,.52));text-decoration:none;color:inherit;}
.tmb-search__thumb{width:var(--tmb-search-thumb-size,44px);height:var(--tmb-search-thumb-size,44px);border-radius:12px;overflow:hidden;flex:0 0 auto;border:1px solid var(--tmb-search-border,var(--tmb-border,rgba(166,189,208,.35)));background:var(--tmb-search-thumb-bg,rgba(255,255,255,.65));display:flex;align-items:center;justify-content:center;}
.tmb-search__thumb img{display:block;width:100%;height:100%;object-fit:cover;}
.tmb-search__thumb--ph{font-weight:900;color:var(--tmb-search-placeholder,rgba(33,45,58,.55));font-size:12px;letter-spacing:.04em;}
.tmb-search__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.tmb-search__title{font-weight:900;font-size:14px;color:var(--tmb-search-text,var(--tmb-ink,var(--tmb-primary,#1a2432)));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tmb-search__sub{font-weight:800;font-size:12px;color:var(--tmb-search-subtext,rgba(33,45,58,.62));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tmb-search__chev{width:18px;height:18px;opacity:.65;flex:0 0 18px;color:var(--tmb-search-text,var(--tmb-ink,var(--tmb-primary,#1a2432)));}
.tmb-search__chev path{fill:currentColor;}
.tmb-search-notice{border-radius:14px;border:1px solid var(--tmb-search-border,var(--tmb-border,rgba(15,23,32,.12)));background:var(--tmb-search-notice-bg,rgba(255,255,255,.72));padding:12px 14px;font-weight:800;}
.tmb-search-notice--error{border-color:rgba(179,45,46,.35);color:#b32d2e;}


/* =========================================
   TMB Locations — Theme Styles
========================================= */
/* ==========================================================================
   TMB Locations locator styling (theme-controlled, scoped)
   Works alongside universal-styling.css without conflicts.
   ========================================================================== */

/* Scope all visuals inside the locator */
.tmb-locator{
  /* Local alias tokens mapped to universal TMB variables */
  --dl-ink: var(--tmb-text);
  --dl-muted: var(--tmb-text-muted);
  --dl-bg: var(--tmb-page-bg);
  --dl-surface: var(--tmb-ui-surface);
  --dl-surface-2: var(--tmb-surface-elevated);
  --dl-border: var(--tmb-ui-border);
  --dl-border-2: var(--tmb-ui-border-strong);
  --dl-shadow: var(--tmb-ui-shadow);
  --dl-shadow-soft: var(--tmb-ui-shadow-soft);
  --dl-radius: var(--tmb-radius-lg);
  --dl-radius-sm: var(--tmb-radius-sm);
  --dl-focus: var(--tmb-focus);

  --dl-accent: var(--tmb-primary);
  --dl-accent-2: var(--tmb-accent);
  --dl-title: var(--tmb-primary);
  --dl-card: var(--tmb-surface-bg);

  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 40px 20px;
  background: var(--dl-bg);
  box-sizing: border-box;
}

/* Left column (list) */
.tmb-locator .tmb-locator__list{
  flex: 1;
  max-width: 30%;
  height: 600px;
  display: flex;
  flex-direction: column;
  padding: 0;
  border-radius: var(--dl-radius);
  border: 1px solid var(--dl-border);
  background: var(--dl-surface);
  backdrop-filter: blur(var(--tmb-ui-blur));
  -webkit-backdrop-filter: blur(var(--tmb-ui-blur));
  box-shadow: var(--dl-shadow);
  overflow: hidden;
  box-sizing: border-box;
}

/* Header within list */
.tmb-locator .tmb-locator__list-header{
  padding: 18px;
  background: var(--dl-surface-2);
  border-bottom: 1px solid var(--dl-border);
  box-shadow: var(--dl-shadow-soft);
  z-index: 1;
}

.tmb-locator .tmb-locator__list h2{
  margin: 0 0 10px;
  font-family: var(--tmb-font-primary);
  font-size: 20px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--dl-title);
}

/* Unified search + select */
.tmb-locator .tmb-locator__search-group{
  display: flex;
  gap: 0;
  margin-top: 10px;
  margin-bottom: 0;
}

.tmb-locator .tmb-locator__search-input,
.tmb-locator .tmb-locator__distance-select{
  min-height: 44px;
  padding: 10px 12px;
  font-size: 15px;
  border: 1px solid var(--dl-border);
  background: rgba(255,255,255,.86);
  color: var(--dl-ink);
  box-shadow: inset 0 1px 2px rgba(15, 23, 32, .06);
  box-sizing: border-box;
}

.tmb-locator .tmb-locator__search-input{
  flex: 1;
  width: 100%;
  border-right: 0;
  border-radius: var(--dl-radius-sm) 0 0 var(--dl-radius-sm);
}

.tmb-locator .tmb-locator__distance-select{
  width: 140px;
  border-left: 0;
  border-radius: 0 var(--dl-radius-sm) var(--dl-radius-sm) 0;
  appearance: none;
  cursor: pointer;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(15,23,32,.55) 50%),
    linear-gradient(135deg, rgba(15,23,32,.55) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 34px;
}

/* Focus state aligned with TMB */
.tmb-locator .tmb-locator__search-input:focus,
.tmb-locator .tmb-locator__distance-select:focus{
  outline: none;
  border-color: rgba(31,182,166,.55);
  box-shadow: 0 0 0 4px var(--dl-focus);
}

/* Scroll only the list content */
.tmb-locator .tmb-locator__items-scroll{
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  box-sizing: border-box;
}

/* Scrollbar styling (apply to the actual scroll container) */
.tmb-locator .tmb-locator__items-scroll::-webkit-scrollbar{
  width: 8px;
}
.tmb-locator .tmb-locator__items-scroll::-webkit-scrollbar-thumb{
  background: rgba(31,182,166,.55);
  border-radius: 999px;
}
.tmb-locator .tmb-locator__items-scroll::-webkit-scrollbar-track{
  background: rgba(15, 23, 32, .06);
  border-radius: 999px;
}

/* Dealer cards */
.tmb-locator .tmb-locator__item{
  background: rgba(255,255,255,.86);
  border: 1px solid var(--dl-border);
  border-radius: var(--dl-radius);
  padding: 14px;
  margin-bottom: 14px;
  color: var(--dl-ink);
  box-shadow: var(--dl-shadow-soft);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
  cursor: pointer;
}

.tmb-locator .tmb-locator__item:last-child{
  margin-bottom: 0;
}

.tmb-locator .tmb-locator__item h3{
  margin: 0 0 6px;
  font-family: var(--tmb-font-primary);
  font-size: 16px;
  line-height: 1.2;
  font-weight: 900;
  color: var(--dl-title);
}

.tmb-locator .tmb-locator__item p{
  margin: 0 0 6px;
  font-family: var(--tmb-font-primary);
  font-size: 14px;
  line-height: 1.45;
  color: rgba(15,23,32,.78);
}

.tmb-locator .tmb-locator__item p:last-child{
  margin-bottom: 0;
}

.tmb-locator .tmb-locator__item a{
  color: inherit;
  text-decoration: none;
}
.tmb-locator .tmb-locator__item a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Distance line: make it read like a subtle badge */
.tmb-locator .tmb-locator__distance{
  margin-top: 8px;
  font-weight: 800;
  color: rgba(15,23,32,.72);
}

/* Active locator highlight */
.tmb-locator .tmb-locator__item.active{
  background: linear-gradient(135deg, rgba(31,182,166,.16), rgba(183,243,74,.10));
  border-color: rgba(31,182,166,.45);
  box-shadow: 0 14px 34px rgba(15, 23, 32, .12);
  transform: translateY(-1px);
}

.tmb-locator .tmb-locator__item.active h3{
  color: var(--dl-title);
}
.tmb-locator .tmb-locator__item.active p,
.tmb-locator .tmb-locator__item.active .tmb-locator__distance{
  color: rgba(15,23,32,.82);
}

/* Map */
.tmb-locator .tmb-locator__map{
  flex: 2;
  width: 70%;
  height: 600px;
  border-radius: var(--dl-radius);
  border: 1px solid var(--dl-border);
  background: rgba(15,23,32,.06);
  box-shadow: var(--dl-shadow);
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}

/* Responsive */
@media (max-width: 1024px){
  .tmb-locator{
    flex-direction: column;
  }
  .tmb-locator .tmb-locator__list,
  .tmb-locator .tmb-locator__map{
    width: 100%;
    max-width: 100%;
  }
  .tmb-locator .tmb-locator__map{
    height: 420px;
  }
}

@media (max-width: 768px){
  .tmb-locator{
    padding: 22px 14px;
  }
  .tmb-locator .tmb-locator__map{
    min-height: 400px;
  }

  /* Your JS uses .tmb-locator__items to collapse the list on mobile */
  .tmb-locator .tmb-locator__items{
    display: none;
  }

  /* Make select narrower on mobile */
  .tmb-locator .tmb-locator__distance-select{
    width: 130px;
  }
}


.tmb-locator-infowindow{
  text-align:center;
  color: var(--dl-ink);
}
.tmb-locator-infowindow__logo{
  width:100px;
  height:auto;
  margin:0 auto 10px;
  display:block;
}
.tmb-locator-infowindow__title{
  margin:0 0 6px;
  font-size:16px;
  line-height:1.2;
  font-weight:900;
  color:var(--dl-title);
}
.tmb-locator-infowindow__address,
.tmb-locator-infowindow__phone,
.tmb-locator-infowindow__distance{
  margin:5px 0 0;
  font-size:14px;
  line-height:1.45;
}
.tmb-locator-infowindow__distance{
  font-weight:700;
}

