/*
 * 24H Pneus — Mobile edition (phones < 768 px)
 *
 * Standalone stylesheet: on phones the desktop stylesheets are not applied
 * (they are printed with media="(min-width: 768px)"), this file styles every
 * page on its own. Loaded with media="(max-width: 767.98px)".
 * Settings: Thème > Design > Mode Mobile.
 */

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
  --m-primary: var(--primary-color, #E63946);
  --m-primary-dark: var(--button-hover-bg, #C62D3B);
  --m-primary-soft: color-mix(in srgb, var(--m-primary) 10%, #fff);
  --m-dark: var(--secondary-color, #1D3557);
  --m-dark-2: #0f2140;
  --m-text: #161b22;
  --m-text-2: #4a5160;
  --m-muted: #7a8190;
  --m-line: #e6e8ee;
  --m-line-2: #f0f1f5;
  --m-bg: #f4f5f8;
  --m-card: #ffffff;
  --m-success: #12a150;
  --m-warning: #e7a008;
  --m-danger: #d92d20;
  --m-wa: #25D366;
  --m-wa-dark: #128C7E;

  --m-radius: 16px;
  --m-radius-md: 12px;
  --m-radius-sm: 10px;
  --m-pill: 999px;
  --m-shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);
  --m-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 4px 14px rgba(16, 24, 40, .06);
  --m-shadow-lg: 0 10px 40px rgba(16, 24, 40, .18);

  --m-gutter: 16px;
  --m-header-h: 58px;
  --m-bar-h: 64px;
  --m-safe-t: env(safe-area-inset-top, 0px);
  --m-safe-b: env(safe-area-inset-bottom, 0px);
  --m-ease: cubic-bezier(.2, .8, .2, 1);

  --m-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --m-font-head: 'Outfit', 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  scroll-padding-top: calc(var(--m-header-h) + 8px);
}
body {
  margin: 0;
  font-family: var(--m-font);
  font-size: 15px;
  line-height: 1.55;
  color: var(--m-text);
  background: var(--m-bg);
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.pneus24h-app-has-bar { padding-bottom: calc(var(--m-bar-h) + var(--m-safe-b)); }
#wrapper { overflow-x: clip; }

img, svg, video, canvas, picture { max-width: 100%; }
img { height: auto; border: 0; vertical-align: middle; }
svg { vertical-align: middle; flex-shrink: 0; }
a { color: var(--m-primary); text-decoration: none; }
a:active { opacity: .75; }
p { margin: 0 0 12px; }
ul, ol { margin: 0 0 12px; padding-left: 20px; }
hr { border: 0; border-top: 1px solid var(--m-line); margin: 20px 0; }
strong, b { font-weight: 700; }
small { font-size: 12px; }
blockquote {
  margin: 16px 0;
  padding: 12px 16px;
  border-left: 4px solid var(--m-primary);
  background: var(--m-primary-soft);
  border-radius: 0 var(--m-radius-sm) var(--m-radius-sm) 0;
  color: var(--m-text-2);
}
blockquote p:last-child { margin: 0; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 10px 8px; border-bottom: 1px solid var(--m-line); text-align: left; vertical-align: top; }
th { font-weight: 600; color: var(--m-text-2); }
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 10px;
  font-family: var(--m-font-head);
  font-weight: 700;
  line-height: 1.2;
  color: var(--m-text);
  letter-spacing: -.01em;
}
h1 { font-size: 24px; }
h2 { font-size: 20px; }
h3 { font-size: 17px; }
h4 { font-size: 16px; }
h5, h6 { font-size: 15px; }
button { font: inherit; color: inherit; cursor: pointer; }
button, a, input, select, textarea, label, [role="button"] { touch-action: manipulation; }
:focus-visible { outline: 2px solid var(--m-primary); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--m-primary) 25%, #fff); }

/* Icon font glyph box (icomoon) */
[class^="icon-"], [class*=" icon-"] { display: inline-block; line-height: 1; }
/* Line icons drawn with CSS masks: independent of the icon font */
.icon-bag::before,
.icon-close::before,
.icon-check::before, .icon-tick::before,
.icon-arrow-down::before,
.icon-arrow-up::before,
.icon-arrow-right::before,
.icon-arrow1-top-left::before,
.icon-view::before,
.icon-heart::before,
.icon-compare::before,
.icon-zoom::before, .icon-search::before,
.icon-warranty::before, .icon-safe::before,
.icon-time::before, .icon-clock::before,
.icon-suport::before,
.icon-shipping::before, .icon-car-order::before,
.icon-return::before,
.icon-lock::before,
.icon-flash::before, .icon-lightning::before, .icon-energy::before,
.icon-star::before,
.icon-sizes::before,
.icon-plant::before,
.icon-phone::before,
.icon-map-pin::before,
.icon-mail::before,
.icon-fill::before,
.icon-facebook::before, .icon-fb::before,
.icon-twitter::before,
.icon-instagram::before,
.icon-youtube::before,
.icon-whatsapp::before {
  content: "" !important; display: inline-block; width: 1em; height: 1em; vertical-align: -.125em;
  background-color: currentColor; -webkit-mask: var(--m-icon) center / contain no-repeat; mask: var(--m-icon) center / contain no-repeat;
}
.icon-bag::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/><path d='M3 6h18'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>"); }
.icon-close::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18M6 6l12 12'/></svg>"); }
.icon-check::before, .icon-tick::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>"); }
.icon-arrow-down::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); }
.icon-arrow-up::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m18 15-6-6-6 6'/></svg>"); }
.icon-arrow-right::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M12 5l7 7-7 7'/></svg>"); }
.icon-arrow1-top-left::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M17 17 7 7M7 17V7h10'/></svg>"); }
.icon-view::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/><circle cx='12' cy='12' r='3'/></svg>"); }
.icon-heart::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7z'/></svg>"); }
.icon-compare::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m16 3 4 4-4 4'/><path d='M20 7H4'/><path d='m8 21-4-4 4-4'/><path d='M4 17h16'/></svg>"); }
.icon-zoom::before, .icon-search::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>"); }
.icon-warranty::before, .icon-safe::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/><path d='m9 12 2 2 4-4'/></svg>"); }
.icon-time::before, .icon-clock::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 6v6l4 2'/></svg>"); }
.icon-suport::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3'/></svg>"); }
.icon-shipping::before, .icon-car-order::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/><path d='M15 18H9'/><path d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 8.38A1 1 0 0 0 17.52 8H14'/><circle cx='17' cy='18' r='2'/><circle cx='7' cy='18' r='2'/></svg>"); }
.icon-return::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12a9 9 0 1 0 3-6.7L3 8'/><path d='M3 3v5h5'/></svg>"); }
.icon-lock::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>"); }
.icon-flash::before, .icon-lightning::before, .icon-energy::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/></svg>"); }
.icon-star::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'><path d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z'/></svg>"); }
.icon-sizes::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><circle cx='12' cy='12' r='4'/><path d='M12 2v6M12 16v6M2 12h6M16 12h6'/></svg>"); }
.icon-plant::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 20h10'/><path d='M12 20V10'/><path d='M12 10c0-4 3-6 7-6 0 4-3 6-7 6z'/><path d='M12 13c0-3-2-5-6-5 0 3 2 5 6 5z'/></svg>"); }
.icon-phone::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/></svg>"); }
.icon-map-pin::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/><circle cx='12' cy='10' r='3'/></svg>"); }
.icon-mail::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='4' width='20' height='16' rx='2'/><path d='m22 7-10 6L2 7'/></svg>"); }
.icon-fill::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'><circle cx='12' cy='12' r='6'/></svg>"); }
.icon-facebook::before, .icon-fb::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'><path d='M14 8h3V4h-3a4 4 0 0 0-4 4v2H8v4h2v8h4v-8h3l1-4h-4V8.5a.5.5 0 0 1 .5-.5z'/></svg>"); }
.icon-twitter::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'><path d='M17.8 3h3.1l-6.8 7.7L22 21h-6.2l-4.9-6.3L5.3 21H2.2l7.2-8.3L2 3h6.4l4.4 5.8zm-1.1 16.2h1.7L7.4 4.7H5.6z'/></svg>"); }
.icon-instagram::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2' width='20' height='20' rx='5'/><circle cx='12' cy='12' r='4'/><path d='M17.5 6.5h.01'/></svg>"); }
.icon-youtube::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'><path d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12a31 31 0 0 0 .5 4.8 3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1 31 31 0 0 0 .5-4.8 31 31 0 0 0-.5-4.8zM9.8 15.1V8.9l5.7 3.1z'/></svg>"); }
.icon-whatsapp::before { --m-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'><path d='M17.5 14.4c-.3-.1-1.8-.9-2-1-.3-.1-.5-.1-.7.1-.2.3-.8 1-.9 1.2-.2.2-.3.2-.6.1-.3-.1-1.3-.5-2.4-1.5-.9-.8-1.5-1.8-1.7-2.1-.2-.3 0-.5.1-.6l.4-.5c.2-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.8-.7 2-1.4.2-.7.2-1.3.2-1.4-.1-.1-.3-.2-.6-.4zM12 21.8a9.8 9.8 0 0 1-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 1 1 12 21.8zm8.4-18.2A11.8 11.8 0 0 0 1.7 17.9L0 24l6.3-1.7a11.8 11.8 0 0 0 5.7 1.4A11.8 11.8 0 0 0 20.4 3.6z'/></svg>"); }


/* ==========================================================================
   3. Utilities used by the templates
   ========================================================================== */
.container, .container-full, .container-fluid {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding-left: var(--m-gutter);
  padding-right: var(--m-gutter);
}
.container .container { padding-left: 0; padding-right: 0; }
.row { display: flex; flex-wrap: wrap; margin: 0; gap: 0; }
.row > * { width: 100%; max-width: 100%; flex: 0 0 100%; padding: 0; }
.screen-reader-text, .visually-hidden, .sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
  overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.d-none, .tf-md-hidden, .tf-sm-hidden, .tf-xs-hidden, .d-md-none.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-lg-none, .tf-lg-hidden, .tf-md-hidden-inverse { display: revert; }
.d-none.d-lg-block, .d-none.d-md-block, .d-none.d-xl-block { display: none !important; }
.w-100 { width: 100% !important; }
.text-center { text-align: center !important; }
.justify-content-center { justify-content: center !important; }
.align-items-center { align-items: center !important; }
.mt-4 { margin-top: 16px !important; } .mb-3 { margin-bottom: 12px !important; } .mb-4 { margin-bottom: 16px !important; }
.fw-5 { font-weight: 500; } .fw-6 { font-weight: 600; }
.alignleft, .alignright { float: none; display: block; margin: 0 auto 12px; }
.aligncenter { display: block; margin: 0 auto 12px; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: var(--m-muted); text-align: center; }

/* Horizontal snap scroller (used for product rows, services, posts…) */
.m-scroller {
  display: flex !important;
  gap: 12px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--m-gutter);
  margin-left: calc(var(--m-gutter) * -1) !important;
  margin-right: calc(var(--m-gutter) * -1) !important;
  padding: 2px var(--m-gutter) 8px !important;
  scrollbar-width: none;
}
.m-scroller::-webkit-scrollbar { display: none; }
.m-scroller > * { scroll-snap-align: start; flex: 0 0 auto; }

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.tf-btn, .button, button.button, a.button, input[type="submit"], .btn, .btn-fill,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 20px;
  border: 1.5px solid transparent;
  border-radius: var(--m-radius-md);
  background: var(--m-primary);
  color: #fff !important;
  font-family: var(--m-font);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform .12s var(--m-ease), background-color .2s, box-shadow .2s;
  -webkit-appearance: none;
  appearance: none;
}
.tf-btn:active, .button:active, input[type="submit"]:active, .btn:active { transform: scale(.98); }
.tf-btn.btn-line, .btn-line, .tf-btn--outline, .button.alt-outline {
  background: #fff;
  color: var(--m-text) !important;
  border-color: var(--m-line);
}
.button:disabled, .button.disabled, button:disabled { opacity: .55; cursor: not-allowed; }
.button.alt, .checkout-button, #place_order, .single_add_to_cart_button {
  background: var(--m-primary);
  color: #fff !important;
}

/* ==========================================================================
   5. Forms
   ========================================================================== */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"],
input[type="search"], input[type="url"], input[type="date"], select, textarea, .input-text {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1.5px solid var(--m-line);
  border-radius: var(--m-radius-sm);
  background: #fff;
  color: var(--m-text);
  font-family: var(--m-font);
  font-size: 16px; /* no iOS zoom */
  line-height: 1.3;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .15s, box-shadow .15s;
}
textarea { min-height: 110px; resize: vertical; }
select {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237a8190' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 16px;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--m-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--m-primary) 18%, transparent);
}
input::placeholder, textarea::placeholder { color: #9aa1ad; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; accent-color: var(--m-primary); vertical-align: middle; }
label { display: inline-block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: var(--m-text-2); }
.form-row { margin: 0 0 14px; padding: 0; }
.form-row label { display: block; }
.required, abbr.required { color: var(--m-danger); text-decoration: none; border: 0; }
.optional { color: var(--m-muted); font-weight: 400; }
.woocommerce-input-wrapper { display: block; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }

/* ==========================================================================
   6. Bootstrap behaviour (offcanvas, modal, collapse) — JS is shared with desktop
   ========================================================================== */
.fade { transition: opacity .2s linear; }
.fade:not(.show) { opacity: 0; }
.collapse:not(.show) { display: none; }
.collapsing { height: 0; overflow: hidden; transition: height .3s var(--m-ease); }

.offcanvas {
  position: fixed;
  z-index: 1045;
  display: flex;
  flex-direction: column;
  max-width: 100%;
  visibility: hidden;
  background: #fff;
  outline: 0;
  transition: transform .32s var(--m-ease);
}
.offcanvas-start { top: 0; left: 0; bottom: 0; width: min(88vw, 380px); transform: translateX(-100%); }
.offcanvas-end { top: 0; right: 0; bottom: 0; width: 100vw; transform: translateX(100%); }
.offcanvas-bottom { left: 0; right: 0; bottom: 0; max-height: 92vh; transform: translateY(100%); border-radius: 20px 20px 0 0; }
.offcanvas.showing, .offcanvas.show:not(.hiding) { transform: none; }
.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { visibility: visible; }
.offcanvas-backdrop, .modal-backdrop { position: fixed; inset: 0; background: rgba(10, 15, 25, .55); }
.offcanvas-backdrop { z-index: 1040; }
.modal-backdrop { z-index: 1050; }
.offcanvas-backdrop.fade, .modal-backdrop.fade { opacity: 0; }
.offcanvas-backdrop.show, .modal-backdrop.show { opacity: 1; }

.modal { position: fixed; inset: 0; z-index: 1055; display: none; overflow-x: hidden; overflow-y: auto; outline: 0; -webkit-overflow-scrolling: touch; }
.modal-open { overflow: hidden; }
.modal-dialog { position: relative; width: auto; margin: 0; pointer-events: none; }
.modal-content { position: relative; display: flex; flex-direction: column; width: 100%; pointer-events: auto; background: #fff; outline: 0; }
/* Default modal = bottom sheet */
.modal .modal-dialog { min-height: 100%; display: flex; align-items: flex-end; transition: transform .3s var(--m-ease); }
.modal.fade .modal-dialog { transform: translateY(40px); }
.modal.show .modal-dialog { transform: none; }
.modal .modal-dialog > .modal-content {
  max-height: 92vh;
  overflow-y: auto;
  border-radius: 22px 22px 0 0;
  padding-bottom: var(--m-safe-b);
  box-shadow: var(--m-shadow-lg);
}
.modal-header, .modal-body, .modal-footer { padding: 16px var(--m-gutter); }
.modal-header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--m-line); }
.modal-title { margin: 0; font-size: 18px; }
.btn-close {
  width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
  background: var(--m-line-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23161b22' stroke-width='2.2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center/18px no-repeat;
}

/* Reusable round close button look */
.mobile-menu-close, .search-canvas-close, .cart-modal-close, .modal-close-modern, .tyre-guide-close,
.pneus-sidebar-close, .icon-close-popup {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--m-line-2);
  color: var(--m-text);
  flex-shrink: 0;
}
.mobile-menu-close svg, .search-canvas-close svg, .cart-modal-close svg, .modal-close-modern svg,
.tyre-guide-close svg, .pneus-sidebar-close svg { width: 20px; height: 20px; }
.icon-close-popup { font-size: 20px; }

/* ==========================================================================
   7. Header (app bar on top)
   ========================================================================== */
.tf-top-bar-modern { display: none !important; }
#header, .header-modern {
  position: sticky;
  top: 0;
  z-index: 1020;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid rgba(16, 24, 40, .06);
  padding-top: var(--m-safe-t);
}
.header-main .container { padding-left: 8px; padding-right: 8px; }
.header-inner {
  display: flex;
  align-items: center;
  gap: 4px;
  height: var(--m-header-h);
}
.mobile-menu-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
}
.mobile-menu-toggle .hamburger { display: inline-flex; flex-direction: column; gap: 4px; width: 20px; }
.mobile-menu-toggle .hamburger span { display: block; height: 2px; border-radius: 2px; background: var(--m-text); }
.mobile-menu-toggle .hamburger span:nth-child(2) { width: 70%; }
.header-logo { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; justify-content: center; }
.header-logo a { display: inline-flex; align-items: center; }
.header-logo img, .header-logo .custom-logo { width: auto; max-width: 150px; max-height: 34px; object-fit: contain; }
.header-logo .site-title, .header-logo .logo-text { font-family: var(--m-font-head); font-size: 20px; font-weight: 800; color: var(--m-text); }
.header-search { display: none !important; }
.header-actions { display: flex; align-items: center; gap: 2px; }
.header-action-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  color: var(--m-text) !important;
}
.header-action-btn .action-text { display: none; }
.header-action-btn svg { width: 22px; height: 22px; }
.header-action-btn.tf-xs-hidden, .header-action-btn.tf-sm-hidden { display: none !important; }
.header-action-btn.tf-md-hidden-inverse { display: inline-flex !important; }
.cart-count.is-zero { display: none !important; }
.header-cart .cart-count, .header-action-btn .cart-count {
  position: absolute;
  top: 4px;
  right: 2px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--m-primary);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}
.header-nav { display: none !important; }
.header-transparent { background: rgba(255, 255, 255, .92); }

/* ==========================================================================
   8. Side menu (offcanvas #mobileMenu)
   ========================================================================== */
.mobile-menu-modern { background: #fff; }
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: calc(12px + var(--m-safe-t)) var(--m-gutter) 12px;
  border-bottom: 1px solid var(--m-line);
}
.mobile-menu-logo img { max-height: 32px; width: auto; }
.mobile-menu-body { flex: 1 1 auto; overflow-y: auto; padding: 14px var(--m-gutter) 20px; -webkit-overflow-scrolling: touch; }
.mobile-menu-search form { position: relative; display: flex; margin-bottom: 14px; }
.mobile-menu-search input[type="text"] { padding-right: 52px; border-radius: var(--m-pill); background: var(--m-bg); border-color: transparent; }
.mobile-menu-search button {
  position: absolute; right: 4px; top: 4px; width: 40px; height: 40px; border: 0; border-radius: 50%;
  background: var(--m-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center;
}
.mobile-menu-search button svg { width: 18px; height: 18px; }
.mobile-nav-list, .mobile-menu-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav-item { border-bottom: 1px solid var(--m-line-2); }
.mobile-nav-item > a, .mobile-menu-nav .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  padding: 8px 4px;
  color: var(--m-text);
  font-size: 16px;
  font-weight: 600;
}
.mobile-nav-toggle svg, .mobile-nav-toggle i { transition: transform .2s; }
.mobile-nav-toggle[aria-expanded="true"] svg, .mobile-nav-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.mobile-sub-menu { list-style: none; margin: 0 0 10px; padding: 4px 0 4px 12px; border-left: 2px solid var(--m-line); }
.mobile-sub-menu a { display: block; padding: 10px 6px; color: var(--m-text-2); font-size: 15px; font-weight: 500; }
.mobile-menu-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 18px; }
.mobile-menu-quick a {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  min-height: 72px; padding: 10px 6px; border-radius: var(--m-radius-md);
  background: var(--m-bg); color: var(--m-text); font-size: 12px; font-weight: 600; text-align: center;
}
.mobile-menu-quick a svg { width: 22px; height: 22px; }
.mobile-menu-quick .wishlist-count:empty, .mobile-menu-quick .compare-count:empty { display: none; }
.mobile-menu-quick .wishlist-count, .mobile-menu-quick .compare-count {
  position: absolute; top: 8px; right: 12px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--m-primary); color: #fff; font-size: 11px; line-height: 18px;
}
.mobile-menu-footer { padding: 14px var(--m-gutter) calc(16px + var(--m-safe-b)); border-top: 1px solid var(--m-line); display: grid; gap: 10px; }
.mobile-menu-phone {
  display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px;
  border-radius: var(--m-radius-md); border: 1.5px solid var(--m-line); color: var(--m-text); font-weight: 700;
}
.mobile-menu-phone svg { width: 18px; height: 18px; }
.mobile-menu-cta {
  display: flex; align-items: center; justify-content: center; min-height: 50px; border-radius: var(--m-radius-md);
  background: var(--m-primary); color: #fff !important; font-weight: 700;
}
.mobile-menu-social { display: flex; justify-content: center; gap: 10px; padding-top: 4px; }
.mobile-menu-social a {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border-radius: 50%; background: var(--m-bg); color: var(--m-text);
}
.mobile-menu-social svg { width: 18px; height: 18px; }

/* ==========================================================================
   9. Search sheet (offcanvas #canvasSearch)
   ========================================================================== */
.canvas-search-modern { background: #fff; }
.search-canvas-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: calc(12px + var(--m-safe-t)) var(--m-gutter) 12px; border-bottom: 1px solid var(--m-line);
}
.search-canvas-title { margin: 0; font-size: 18px; }
.search-canvas-body { flex: 1 1 auto; overflow-y: auto; padding: 16px var(--m-gutter) 24px; }
.canvas-search-modern .search-form-modern { display: grid; gap: 10px; }
.search-input-wrapper { position: relative; display: flex; align-items: center; }
.search-input-icon { position: absolute; left: 14px; width: 20px; height: 20px; color: var(--m-muted); pointer-events: none; }
.search-input-modern { padding-left: 44px !important; padding-right: 44px !important; border-radius: var(--m-pill) !important; background: var(--m-bg) !important; border-color: transparent !important; }
.search-input-clear { position: absolute; right: 6px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--m-muted); display: inline-flex; align-items: center; justify-content: center; }
.search-input-clear svg { width: 16px; height: 16px; }
.search-submit-modern {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; width: 100%;
  border: 0; border-radius: var(--m-pill); background: var(--m-primary); color: #fff; font-weight: 700; font-size: 16px;
}
.search-submit-modern svg { width: 18px; height: 18px; }
.search-suggestions { margin-top: 20px; }
.search-suggestions-title { margin-bottom: 10px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--m-muted); }
.search-suggestions-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.search-tag {
  display: inline-flex; align-items: center; min-height: 38px; padding: 6px 14px; border-radius: var(--m-pill);
  background: var(--m-bg); color: var(--m-text); font-size: 14px; font-weight: 600;
}
.search-results-modern:empty { display: none; }

/* ==========================================================================
   10. Bottom app bar + floating buttons
   ========================================================================== */
.pneus24h-appbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
  display: grid; grid-template-columns: repeat(5, 1fr);
  height: calc(var(--m-bar-h) + var(--m-safe-b));
  padding: 0 4px var(--m-safe-b);
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: saturate(180%) blur(16px);
  backdrop-filter: saturate(180%) blur(16px);
  border-top: 1px solid var(--m-line);
  box-shadow: 0 -6px 24px rgba(16, 24, 40, .06);
}
.pneus24h-appbar__item {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  min-width: 0; padding: 6px 2px;
  color: var(--m-muted); font-size: 11px; font-weight: 600; line-height: 1.1;
  text-decoration: none !important;
}
.pneus24h-appbar__item > span:last-child { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pneus24h-appbar__item svg { width: 23px; height: 23px; }
.pneus24h-appbar__item:active { opacity: 1; }
.pneus24h-appbar__item:active .pneus24h-appbar__icon { transform: scale(.9); }
.pneus24h-appbar__item.is-active { color: var(--m-primary); }
.pneus24h-appbar__item.is-active::before {
  content: ""; position: absolute; top: 0; left: 50%; width: 28px; height: 3px; margin-left: -14px;
  border-radius: 0 0 3px 3px; background: var(--m-primary);
}
.pneus24h-appbar__item--whatsapp { color: var(--m-wa-dark); }
.pneus24h-appbar__icon {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 28px; border-radius: var(--m-pill);
  transition: transform .15s var(--m-ease), background-color .2s;
}
.pneus24h-appbar__item.is-active .pneus24h-appbar__icon { background: var(--m-primary-soft); }
.pneus24h-appbar__badge {
  position: absolute; top: -5px; right: 2px;
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; border: 2px solid #fff;
  background: var(--m-primary); color: #fff; font-size: 10px; font-weight: 700; line-height: 14px; text-align: center;
  box-sizing: content-box;
}
.pneus24h-appbar__badge .count-box { display: inline; position: static; width: auto; height: auto; padding: 0; margin: 0; background: none; color: inherit; font: inherit; }
.pneus24h-appbar__cart[data-count="0"] .pneus24h-appbar__badge { display: none; }

.pneus-floating-buttons {
  position: fixed; right: 14px; z-index: 1020;
  bottom: calc(18px + var(--m-safe-b));
  display: flex; flex-direction: column; gap: 10px;
}
body.pneus24h-app-has-bar .pneus-floating-buttons { bottom: calc(var(--m-bar-h) + var(--m-safe-b) + 14px); }
.pneus-floating-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border: 0; border-radius: 50%;
  background: var(--m-dark); color: #fff !important; box-shadow: var(--m-shadow-lg);
}
.pneus-floating-btn svg { width: 22px; height: 22px; }
.pneus-floating-btn--whatsapp { background: var(--m-wa); }
.pneus-floating-btn--phone { background: var(--m-primary); }
.pneus-floating-btn--top { width: 42px; height: 42px; background: #fff; color: var(--m-text) !important; border: 1px solid var(--m-line); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.pneus-floating-btn--top.visible, .pneus-floating-btn--top.show, .pneus-floating-btn--top.is-visible { opacity: 1; visibility: visible; transform: none; }
body.pneus24h-app-has-bar .pneus-floating-btn--whatsapp,
body.pneus24h-app-has-bar .pneus-floating-btn--phone { display: none !important; }
body.single-product .pneus-floating-buttons,
body.woocommerce-cart .pneus-floating-buttons,
body.woocommerce-checkout .pneus-floating-buttons { display: none; }

/* ==========================================================================
   11. Hero + tyre finder
   ========================================================================== */
.hero-horizontal {
  position: relative; overflow: hidden;
  padding: 22px 0 26px;
  background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--m-primary) 35%, var(--m-dark)) 0%, var(--m-dark) 55%, var(--m-dark-2) 100%);
  color: #fff;
}
.hero-bg-layer { position: absolute; inset: 0; z-index: 0; opacity: .18; pointer-events: none; }
.hero-bg-layer img, .hero-bg-img { width: 100%; height: 100%; object-fit: cover; }
.hero-horizontal > .container { position: relative; z-index: 1; }
.hero-center-layout { display: flex; flex-direction: column; gap: 14px; }
.hero-center-title { margin: 0; color: #fff; font-size: 26px; line-height: 1.15; letter-spacing: -.02em; }
.hero-center-title .title-highlight { color: var(--m-primary); }
.hero-center-subtitle { margin: -4px 0 0; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.hero-tyre-image { display: none; }

.hero-finder-horizontal-wrapper {
  background: #fff; color: var(--m-text);
  border-radius: 20px; padding: 16px; box-shadow: 0 18px 40px rgba(0,0,0,.25);
}
.finder-hero-form { display: grid; gap: 14px; margin: 0; }
.finder-hero-fields { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; align-items: end; }
.finder-hero-separator { display: none; }
.finder-hero-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.finder-hero-field label { display: flex; align-items: center; gap: 5px; margin: 0; font-size: 12px; font-weight: 700; color: var(--m-text-2); white-space: nowrap; }
.finder-hero-field .field-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.finder-hero-field .field-unit { display: none; }
.finder-hero-select { padding-left: 10px !important; padding-right: 24px !important; background-position: right 6px center !important; font-weight: 700 !important; text-align-last: center; }
.finder-hero-actions { display: flex; align-items: center; gap: 12px; }
.finder-hero-checkbox { display: inline-flex; align-items: center; gap: 8px; margin: 0; flex: none; font-size: 14px; font-weight: 600; color: var(--m-text-2); }
.finder-hero-checkbox input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.finder-hero-checkbox .checkbox-mark { width: 22px; height: 22px; border: 2px solid var(--m-line); border-radius: 6px; background: #fff; transition: all .15s; }
.finder-hero-checkbox input:checked + .checkbox-mark { background: var(--m-primary); border-color: var(--m-primary); box-shadow: inset 0 0 0 3px #fff; }
.finder-hero-checkbox input:focus-visible + .checkbox-mark { outline: 2px solid var(--m-primary); outline-offset: 2px; }
.finder-hero-submit {
  flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 0 16px; border: 0; border-radius: 14px;
  background: var(--m-primary); color: #fff; font-size: 16px; font-weight: 700;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--m-primary) 35%, transparent);
}
.finder-hero-submit:disabled { opacity: .5; box-shadow: none; }
.finder-hero-submit svg { width: 18px; height: 18px; }
.finder-hero-submit .submit-count { font-size: 12px; font-weight: 600; opacity: .9; }
.hero-guide-link {
  display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%;
  margin-top: 10px; padding: 6px; border: 0; background: none;
  color: var(--m-text-2); font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px;
}
.hero-guide-link svg { width: 16px; height: 16px; }
.hero-trust-row {
  display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none;
  margin: 0 calc(var(--m-gutter) * -1); padding: 0 var(--m-gutter);
}
.hero-trust-row::-webkit-scrollbar { display: none; }
.trust-badge {
  display: inline-flex; align-items: center; gap: 6px; flex: none;
  padding: 7px 12px; border-radius: var(--m-pill);
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14);
  color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap;
}
.trust-badge svg { width: 15px; height: 15px; }
.trust-badge-accent { background: var(--m-primary); border-color: var(--m-primary); }

/* "Search only" hero option: finder card only, no texts */
.hero-mobile-search-only { padding: 16px 0 18px; }
.hero-mobile-search-only .hero-center-title {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.hero-mobile-search-only .hero-guide-link,
.hero-mobile-search-only .hero-center-subtitle,
.hero-mobile-search-only .hero-trust-row,
.hero-mobile-search-only .hero-bg-layer { display: none !important; }
.hero-mobile-search-only .hero-finder-horizontal-wrapper { box-shadow: 0 10px 30px rgba(0,0,0,.22); }

/* Tyre size guide modal */
.tyre-guide-modal-content { padding: 20px var(--m-gutter) calc(20px + var(--m-safe-b)); }
.tyre-guide-close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--m-bg); display: inline-flex; align-items: center; justify-content: center; z-index: 2; }
.tyre-guide-header { padding-right: 44px; margin-bottom: 14px; }
.tyre-guide-header h3 { font-size: 19px; margin-bottom: 4px; }
.tyre-guide-header p { color: var(--m-muted); font-size: 14px; margin: 0; }
.tyre-photo-guide { position: relative; margin-bottom: 14px; border-radius: var(--m-radius-md); overflow: hidden; background: var(--m-bg); }
.tyre-photo-guide img { width: 100%; display: block; }
.tyre-guide-explanations { display: grid; gap: 10px; }
.tyre-guide-explanations > * { padding: 12px; border-radius: var(--m-radius-md); background: var(--m-bg); font-size: 14px; }
.tyre-guide-footer { margin-top: 16px; }
.btn-guide-understood { width: 100%; min-height: 50px; border: 0; border-radius: 14px; background: var(--m-dark); color: #fff; font-weight: 700; }

/* ==========================================================================
   12. Home sections
   ========================================================================== */
.tf-products-premium, .section-brands-marquee, .section-services, .section-blog,
.section-avantages, .section-categories, .section-testimonials-google { padding: 28px 0; }
.tf-products-premium + .tf-products-premium { padding-top: 4px; }

.section-header, .section-header-center, .testimonials-header { margin-bottom: 16px; text-align: left; }
.section-eyebrow, .section-badge {
  display: inline-block; margin-bottom: 6px; padding: 0;
  background: none; color: var(--m-primary); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.section-title, .section-title-lg { margin: 0 0 4px; font-size: 22px; line-height: 1.2; }
.section-desc, .section-subtitle { margin: 0; color: var(--m-muted); font-size: 14px; }
.section-cta, .brands-cta, .pneus-blog-cta, .testimonials-cta { margin-top: 14px; text-align: center; }
.btn-outline-premium, .btn-brands-all, .btn-blog-all, .btn-google-review {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%;
  min-height: 48px; padding: 10px 18px; border-radius: 14px;
  background: #fff; border: 1.5px solid var(--m-line); color: var(--m-text) !important; font-weight: 700; font-size: 15px;
}
.btn-outline-premium svg, .btn-brands-all svg, .btn-blog-all svg { width: 16px; height: 16px; }

/* Product rows on the home page scroll sideways */
.tf-products-premium .pneus-products-grid,
.section-services .services-grid,
.section-blog .pneus-blog-grid,
.section-testimonials-google .testimonials-grid,
.section-avantages .avantages-grid,
.tf-related-products .tf-grid-layout,
.related.products .tf-grid-layout {
  display: flex !important; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-left: var(--m-gutter);
  margin: 0 calc(var(--m-gutter) * -1) !important; padding: 2px var(--m-gutter) 10px !important;
  scrollbar-width: none;
}
.tf-products-premium .pneus-products-grid::-webkit-scrollbar,
.section-services .services-grid::-webkit-scrollbar,
.section-blog .pneus-blog-grid::-webkit-scrollbar,
.section-testimonials-google .testimonials-grid::-webkit-scrollbar,
.section-avantages .avantages-grid::-webkit-scrollbar,
.tf-related-products .tf-grid-layout::-webkit-scrollbar { display: none; }
.tf-products-premium .pneus-product-card,
.tf-related-products .pneus-product-card { flex: 0 0 46%; scroll-snap-align: start; }

/* Brands */
.section-brands-marquee { background: #fff; }
.brands-marquee-wrapper { position: relative; overflow: hidden; }
.brands-marquee-fade { display: none; }
.brands-marquee-track { display: flex; width: max-content; animation: m-marquee 40s linear infinite; }
.brands-marquee-content { display: flex; gap: 10px; padding-right: 10px; }
.brand-marquee-item {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 108px; height: 60px; padding: 10px; border-radius: var(--m-radius-md);
  background: var(--m-bg); border: 1px solid var(--m-line-2);
}
.brand-marquee-logo { max-width: 100%; max-height: 36px; object-fit: contain; }
.brand-marquee-fallback { font-weight: 700; font-size: 13px; color: var(--m-text); }
@keyframes m-marquee { to { transform: translateX(-50%); } }
.brands-marquee-wrapper:active .brands-marquee-track { animation-play-state: paused; }

/* Services */
.service-card {
  flex: 0 0 72%; scroll-snap-align: start;
  display: flex; flex-direction: column; gap: 10px;
  padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow);
  color: var(--m-text) !important;
}
.service-icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: var(--m-primary-soft); color: var(--m-primary); }
.service-icon svg { width: 24px; height: 24px; }
.service-title { margin: 0 0 4px; font-size: 16px; }
.service-desc { margin: 0; color: var(--m-muted); font-size: 13px; line-height: 1.45; }
.service-card > svg, .service-arrow { display: none; }
.services-cta {
  margin-top: 18px; padding: 20px 16px; border-radius: 20px; color: #fff;
  background: linear-gradient(135deg, var(--m-dark) 0%, var(--m-dark-2) 100%);
}
.services-cta h3 { color: #fff; font-size: 19px; margin-bottom: 4px; }
.services-cta p { color: rgba(255,255,255,.75); font-size: 14px; margin-bottom: 14px; }
.cta-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.btn-cta-primary, .btn-cta-secondary, .btn-cta-phone {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 46px; padding: 8px 12px; border-radius: 12px; font-size: 14px; font-weight: 700;
}
.btn-cta-primary { grid-column: 1 / -1; background: var(--m-primary); color: #fff !important; }
.btn-cta-secondary { background: rgba(255,255,255,.12); color: #fff !important; }
.btn-cta-phone { background: #fff; color: var(--m-dark) !important; }
.btn-cta-primary svg, .btn-cta-secondary svg, .btn-cta-phone svg { width: 16px; height: 16px; }

/* Blog cards */
.pneus-blog-card { flex: 0 0 78%; scroll-snap-align: start; overflow: hidden; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); display: flex; flex-direction: column; }
.pneus-blog-card__image { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--m-line-2); }
.pneus-blog-card__image img { width: 100%; height: 100%; object-fit: cover; }
.pneus-blog-card__overlay { display: none; }
.pneus-blog-card__placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--m-muted); }
.pneus-blog-card__category { position: absolute; top: 10px; left: 10px; padding: 4px 10px; border-radius: var(--m-pill); background: rgba(255,255,255,.92); color: var(--m-text); font-size: 11px; font-weight: 700; }
.pneus-blog-card__content { display: flex; flex-direction: column; gap: 6px; padding: 14px; flex: 1; }
.pneus-blog-card__meta { display: flex; flex-wrap: wrap; gap: 10px; color: var(--m-muted); font-size: 12px; }
.pneus-blog-card__meta svg { width: 13px; height: 13px; }
.pneus-blog-card__title { margin: 0; font-size: 16px; line-height: 1.3; }
.pneus-blog-card__title a { color: var(--m-text); }
.pneus-blog-card__excerpt { margin: 0; color: var(--m-text-2); font-size: 13px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pneus-blog-card__link { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; }
.pneus-blog-card__link svg { width: 14px; height: 14px; }

/* Avantages */
.avantage-item { flex: 0 0 64%; scroll-snap-align: start; padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); }
.avantage-highlight { background: var(--m-dark); color: #fff; }
.avantage-highlight .avantage-title { color: #fff; }
.avantage-highlight .avantage-desc { color: rgba(255,255,255,.75); }
.avantage-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 10px; border-radius: 12px; background: var(--m-primary-soft); color: var(--m-primary); }
.avantage-title { font-size: 16px; margin-bottom: 4px; }
.avantage-desc { margin: 0; font-size: 13px; color: var(--m-muted); }

/* Categories */
.categories-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.category-card { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); color: var(--m-text) !important; }
.category-card__image { aspect-ratio: 4 / 3; background: var(--m-line-2); overflow: hidden; }
.category-card__image img { width: 100%; height: 100%; object-fit: cover; }
.category-card__content { padding: 10px 12px 12px; }
.category-card__title { margin: 0; font-size: 15px; }
.category-card__count { color: var(--m-muted); font-size: 12px; }
.category-card__arrow { display: none; }

/* Google reviews */
.testimonials-header { display: grid; gap: 12px; }
.google-rating-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); color: var(--m-text) !important; }
.google-logo svg, .google-logo img { width: 28px; height: 28px; }
.google-rating-info { display: flex; flex-direction: column; flex: 1; }
.google-rating-score { display: flex; align-items: center; gap: 6px; }
.rating-number { font-size: 20px; font-weight: 800; }
.rating-stars, .testimonial-rating-google { color: #f5b301; display: inline-flex; gap: 1px; }
.rating-stars svg, .testimonial-rating-google svg { width: 14px; height: 14px; }
.google-reviews-count { color: var(--m-muted); font-size: 12px; }
.google-arrow { color: var(--m-muted); }
.testimonial-card-google { flex: 0 0 82%; scroll-snap-align: start; position: relative; display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow); }
.testimonial-google-icon { position: absolute; top: 14px; right: 14px; }
.testimonial-google-icon svg { width: 18px; height: 18px; }
.testimonial-text-google { margin: 0; font-size: 14px; color: var(--m-text-2); display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.testimonial-author-google { display: flex; align-items: center; gap: 10px; margin-top: auto; }
.author-avatar-google { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; overflow: hidden; background: var(--m-dark); color: #fff; font-weight: 700; }
.author-avatar-google img { width: 100%; height: 100%; object-fit: cover; }
.author-name-google { font-weight: 700; font-size: 14px; }
.author-time-google { color: var(--m-muted); font-size: 12px; }
.testimonials-cta-text { color: var(--m-muted); font-size: 13px; margin-bottom: 8px; }

/* ==========================================================================
   13. Product card
   ========================================================================== */
.pneus-products-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pneus-product-card {
  position: relative; display: flex; flex-direction: column; min-width: 0;
  overflow: hidden; border-radius: var(--m-radius); background: #fff;
  border: 1px solid var(--m-line-2); box-shadow: var(--m-shadow-sm);
}
.pneus-card-image { position: relative; background: #fff; }
.pneus-card-image-link { display: block; aspect-ratio: 1 / 1; padding: 10px; }
.pneus-card-image-link img, .pneus-card-img { width: 100%; height: 100%; object-fit: contain; }
.pneus-card-badges { position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; gap: 4px; z-index: 1; }
.pneus-card-badges:empty { display: none; }
.pneus-badge { display: inline-block; padding: 3px 8px; border-radius: var(--m-pill); background: var(--m-dark); color: #fff; font-size: 11px; font-weight: 800; line-height: 1.3; }
.pneus-badge-sale { background: var(--m-primary); }
.pneus-card-actions { position: absolute; top: 8px; right: 8px; display: flex; flex-direction: column; gap: 6px; z-index: 1; }
.pneus-action-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255,255,255,.95); color: var(--m-text) !important; box-shadow: 0 2px 8px rgba(16,24,40,.12);
}
.pneus-action-btn svg { width: 15px; height: 15px; }
.pneus-action-btn .icon { font-size: 15px; }
.pneus-action-view, .pneus-action-btn--view, .pneus-action-compare, .pneus-action-btn--compare, .pneus-action-btn--cart { display: none; }
.pneus-action-btn.active, .pneus-action-btn.is-active, .pneus-action-btn.added { color: var(--m-primary) !important; }

.pneus-card-info { display: flex; flex-direction: column; gap: 5px; flex: 1 1 auto; padding: 10px 10px 12px; border-top: 1px solid var(--m-line-2); }
.pneus-card-category { color: var(--m-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.pneus-card-brand { display: flex; align-items: center; height: 18px; color: var(--m-text-2); font-size: 12px; font-weight: 700; }
.pneus-card-brand img, .brand-logo-img { max-height: 18px; max-width: 70px; width: auto; object-fit: contain; }
.pneus-card-title { margin: 0; font-family: var(--m-font); font-size: 13px; font-weight: 600; line-height: 1.35; letter-spacing: 0; }
.pneus-card-title a { color: var(--m-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.pneus-card-size { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; padding: 3px 8px; border-radius: 6px; background: var(--m-bg); color: var(--m-text-2); font-size: 12px; font-weight: 700; }
.pneus-card-size svg, .pneus-card-size-icon svg { width: 13px; height: 13px; }
.pneus-card-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; margin-top: 2px; }
.pneus-price-current { color: var(--m-text); font-size: 16px; font-weight: 800; }
.pneus-price-old { color: var(--m-muted); font-size: 12px; text-decoration: line-through; }
.pneus-card-price ins { text-decoration: none; }
.pneus-card-stock { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; color: var(--m-success); }
.pneus-card-stock svg { width: 12px; height: 12px; }
.pneus-card-stock.out-of-stock, .pneus-card-stock--out { color: var(--m-danger); }
.pneus-card-cart { margin-top: auto; padding-top: 6px; }
.pneus-btn-cart {
  display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%;
  min-height: 40px; padding: 6px 8px; border-radius: 10px;
  background: var(--m-primary); color: #fff !important; font-size: 13px; font-weight: 700;
}
.pneus-btn-cart svg { display: none; }
.pneus-btn-cart span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pneus-btn-cart.loading { opacity: .6; pointer-events: none; }
.pneus-btn-cart.added { background: var(--m-success); }
.pneus-card-cart .added_to_cart, .pneus-product-card .added_to_cart { display: block; margin-top: 6px; text-align: center; font-size: 12px; font-weight: 700; }

/* ==========================================================================
   14. Shop / archives
   ========================================================================== */
.pneus-shop-page { padding-bottom: 20px; }
.pneus-finder-bar { padding: 12px 0; background: var(--m-dark); }
.pneus-finder-form { margin: 0; }
.pneus-finder-row { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 6px; align-items: center; }
.pneus-finder-row .pneus-separator { display: none; }
.pneus-select {
  min-height: 44px !important; padding: 8px 22px 8px 10px !important; font-size: 14px !important; font-weight: 700;
  background-color: rgba(255,255,255,.1) !important; border-color: rgba(255,255,255,.18) !important; color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-position: right 6px center !important;
}
.pneus-select option { color: var(--m-text); }
.pneus-btn-search {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: var(--m-primary); color: #fff;
}
.pneus-btn-search span { display: none; }
.pneus-btn-search svg { width: 20px; height: 20px; }

/* Active filters chips */
.pneus-active-filters { padding: 10px 0 0; }
.pneus-filters-bar { display: flex; align-items: center; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--m-gutter) * -1); padding: 0 var(--m-gutter); }
.pneus-filters-bar::-webkit-scrollbar { display: none; }
.pneus-filters-label { display: none; }
.pneus-filters-tags { display: flex; gap: 6px; flex: none; }
.pneus-filter-tag {
  display: inline-flex; align-items: center; gap: 4px; flex: none;
  min-height: 34px; padding: 4px 6px 4px 12px; border-radius: var(--m-pill);
  background: var(--m-primary-soft); color: var(--m-primary) !important; font-size: 13px; font-weight: 600; white-space: nowrap;
}
.pneus-filter-tag .tag-label { color: var(--m-text-2); font-weight: 500; }
.pneus-filter-tag .tag-remove { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; font-size: 15px; line-height: 1; }
.pneus-filters-clear { flex: none; font-size: 13px; font-weight: 700; color: var(--m-text-2) !important; text-decoration: underline; white-space: nowrap; padding-right: var(--m-gutter); }

.pneus-shop-main { padding-top: 0; }
.pneus-shop-layout { display: block; }
.pneus-shop-content { min-width: 0; }

/* Sticky controls bar */
.pneus-controls-bar {
  position: sticky; top: var(--m-header-h); z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin: 0 calc(var(--m-gutter) * -1) 12px; padding: 10px var(--m-gutter);
  background: color-mix(in srgb, var(--m-bg) 92%, transparent);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--m-line);
}
.pneus-controls-left, .pneus-controls-right { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pneus-controls-left { flex: 1 1 auto; }
.pneus-btn-filter {
  display: inline-flex !important; align-items: center; gap: 6px; flex: none;
  min-height: 40px; padding: 0 14px; border: 0; border-radius: var(--m-pill);
  background: var(--m-dark); color: #fff; font-size: 14px; font-weight: 700;
}
.pneus-btn-filter svg { width: 16px; height: 16px; }
.pneus-results-count { min-width: 0; }
.woocommerce-result-count { margin: 0; color: var(--m-muted); font-size: 12px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select.orderby {
  min-height: 40px !important; max-width: 150px; padding: 6px 28px 6px 12px !important; border-radius: var(--m-pill) !important;
  font-size: 13px !important; font-weight: 600; background-color: #fff !important;
}

/* Filters drawer */
.pneus-shop-sidebar {
  position: fixed; top: 0; bottom: 0; left: 0; z-index: 1060;
  width: min(88vw, 380px); display: flex; flex-direction: column;
  background: #fff; box-shadow: var(--m-shadow-lg);
  transform: translateX(-102%); visibility: hidden;
  transition: transform .3s var(--m-ease), visibility .3s;
}
.pneus-shop-sidebar.is-open { transform: none; visibility: visible; }
.pneus-sidebar-overlay {
  position: fixed; inset: 0; z-index: 1055; background: rgba(10, 15, 25, .5);
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
}
.pneus-shop-sidebar.is-open ~ .pneus-sidebar-overlay { opacity: 1; visibility: visible; }
.pneus-sidebar-header {
  display: flex !important; align-items: center; justify-content: space-between;
  padding: calc(12px + var(--m-safe-t)) var(--m-gutter) 12px; border-bottom: 1px solid var(--m-line);
}
.pneus-sidebar-header h3 { margin: 0; font-size: 18px; }
.pneus-sidebar-close { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--m-bg); }
.pneus-sidebar-close svg { width: 18px; height: 18px; }
.pneus-sidebar-content { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 16px var(--m-gutter) calc(24px + var(--m-safe-b)); }
.shop-filter-form { margin: 0; }
.shop-filter-widget + .shop-filter-widget { margin-top: 18px; }
.filter-header { margin-bottom: 12px; }
.filter-title, .facet-title { margin: 0; font-size: 16px; display: flex; align-items: center; justify-content: space-between; }
.facet-title .icon { display: none; }
.filter-content { display: grid; gap: 16px; }
.filter-section { display: grid; gap: 8px; }
.filter-label { margin: 0; font-size: 13px; font-weight: 700; color: var(--m-text-2); }
.dimension-selects { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.dimension-selects .filter-select { padding-left: 10px !important; padding-right: 22px !important; background-position: right 6px center !important; }
.price-inputs { display: flex; align-items: center; gap: 6px; }
.price-inputs .filter-input { flex: 1 1 0; min-width: 0; }
.price-separator { color: var(--m-muted); }
.price-currency { flex: none; font-size: 13px; font-weight: 700; color: var(--m-muted); }
.filter-actions {
  position: sticky; bottom: calc(-24px - var(--m-safe-b)); z-index: 1;
  grid-template-columns: 1fr auto; align-items: center;
  margin: 0 calc(var(--m-gutter) * -1); padding: 12px var(--m-gutter) calc(12px + var(--m-safe-b));
  background: #fff; border-top: 1px solid var(--m-line);
}
.btn-filter-search { min-height: 48px; border: 0; border-radius: 12px; background: var(--m-primary); color: #fff; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.btn-filter-search svg { width: 16px; height: 16px; }
.btn-filter-reset { padding: 0 6px; color: var(--m-text-2) !important; font-size: 14px; font-weight: 600; text-decoration: underline; }
.widget-trust ul, .widget-iconbox-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.widget-iconbox-list li { display: flex; gap: 10px; align-items: center; padding: 10px; border-radius: var(--m-radius-md); background: var(--m-bg); }
.box-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 38px; height: 38px; border-radius: 50%; background: #fff; color: var(--m-primary); }
.iconbox-title { margin: 0; font-size: 14px; }
.iconbox-desc { margin: 0; font-size: 12px; color: var(--m-muted); }
.widget-facet .collapse:not(.show) { display: block; }

/* Pagination */
.pneus-pagination, .woocommerce-pagination, .navigation.pagination { margin-top: 20px; }
.woocommerce-pagination ul.page-numbers, .nav-links {
  display: flex; flex-wrap: nowrap; gap: 6px; list-style: none; margin: 0 calc(var(--m-gutter) * -1); padding: 2px var(--m-gutter);
  overflow-x: auto; scrollbar-width: none;
}
.woocommerce-pagination ul.page-numbers::-webkit-scrollbar, .nav-links::-webkit-scrollbar { display: none; }
.woocommerce-pagination ul.page-numbers > li:first-child, .nav-links > :first-child { margin-left: auto; }
.woocommerce-pagination ul.page-numbers > li:last-child, .nav-links > :last-child { margin-right: auto; }
.woocommerce-pagination ul.page-numbers li { margin: 0; }
.page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px;
  border-radius: 12px; background: #fff; border: 1px solid var(--m-line); color: var(--m-text) !important; font-weight: 700; font-size: 14px;
}
ul.page-numbers { background: none; border: 0; height: auto; }
.page-numbers.current { background: var(--m-dark); border-color: var(--m-dark); color: #fff !important; }
.page-numbers.dots { background: none; border: 0; min-width: 20px; padding: 0; }

/* Category / archive header & empty state */
.woocommerce-products-header, .term-description { margin: 12px 0; }
.woocommerce-products-header__title, .page-title { font-size: 22px; }
.term-description { font-size: 14px; color: var(--m-text-2); }
.woocommerce-no-products-found, .woocommerce-info.woocommerce-no-products-found { margin: 20px 0; }
.pneus-no-products, .no-products-found { padding: 32px 16px; border-radius: var(--m-radius); background: #fff; text-align: center; }

/* ==========================================================================
   15. Single product
   ========================================================================== */
.single-product .site-main { padding-bottom: 76px; }
.tf-breadcrumb { padding: 10px 0; }
.tf-breadcrumb .breadcrumb-nav, .woocommerce-breadcrumb, .tf-breadcrumb-list {
  display: flex; align-items: center; gap: 6px; overflow-x: auto; white-space: nowrap; scrollbar-width: none;
  margin: 0; padding: 0; list-style: none; color: var(--m-muted); font-size: 12px;
}
.tf-breadcrumb .breadcrumb-nav::-webkit-scrollbar, .tf-breadcrumb-list::-webkit-scrollbar { display: none; }
.tf-breadcrumb a, .tf-breadcrumb-list a { color: var(--m-text-2); }
.tf-breadcrumb svg, .tf-breadcrumb-list svg { width: 12px; height: 12px; }

.tf-product-section { padding: 0 0 8px; }
.tf-product-media { position: relative; margin: 0 calc(var(--m-gutter) * -1); background: #fff; }
.tf-product-badges { position: absolute; top: 12px; left: 16px; z-index: 2; display: flex; gap: 6px; }
.tf-product-badges:empty { display: none; }
.tf-product-badges > * { padding: 4px 10px; border-radius: var(--m-pill); background: var(--m-primary); color: #fff; font-size: 12px; font-weight: 800; }
.tf-product-media__main { position: relative; }
.tf-product-media__image { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; max-height: 62vh; padding: 20px; margin: 0 auto; }
.tf-product-media__img, #main-product-image { width: 100%; height: 100%; object-fit: contain; }
.tf-product-media__zoom-hint { display: none; }
.tf-product-media__thumbs, .tf-product-thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 0 var(--m-gutter) 12px; scrollbar-width: none; }
.tf-product-media__thumbs img, .tf-product-thumbs img { width: 60px; height: 60px; object-fit: contain; border-radius: 10px; border: 1.5px solid var(--m-line); background: #fff; }

.tf-product-info {
  position: relative; margin: -14px calc(var(--m-gutter) * -1) 0; padding: 18px var(--m-gutter) 4px;
  border-radius: 22px 22px 0 0; background: var(--m-bg);
}
.tf-product-info__header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.tf-product-brand { display: inline-flex; align-items: center; height: 34px; padding: 4px 10px; border-radius: 10px; background: #fff; border: 1px solid var(--m-line); }
.tf-product-brand__logo { max-height: 24px; max-width: 100px; width: auto; object-fit: contain; }
.tf-product-info__title { margin: 0 0 10px; font-size: 21px; line-height: 1.25; }
.tf-product-info__price { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-bottom: 16px; }
.tf-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.tf-price__current { color: var(--m-primary); font-family: var(--m-font-head); font-size: 28px; font-weight: 800; line-height: 1; }
.tf-price__current ins { text-decoration: none; }
.tf-price__old { color: var(--m-muted); font-size: 15px; text-decoration: line-through; }
.tf-price__save, .tf-price__badge { padding: 3px 8px; border-radius: var(--m-pill); background: var(--m-primary-soft); color: var(--m-primary); font-size: 12px; font-weight: 800; }
.tf-price__unit { color: var(--m-muted); font-size: 13px; }

.tf-product-specs { margin-bottom: 16px; }
.tf-product-specs__title { margin: 0 0 8px; font-size: 14px; color: var(--m-text-2); font-family: var(--m-font); font-weight: 700; }
.tf-product-specs__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.tf-spec-item { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid var(--m-line-2); }
.tf-spec-item__icon { grid-row: span 2; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: var(--m-bg); color: var(--m-primary); }
.tf-spec-item__icon svg { width: 18px; height: 18px; }
.tf-spec-item__icon i { font-size: 18px; }
.tf-spec-item__label { font-size: 11px; color: var(--m-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }
.tf-spec-item__value { font-size: 15px; font-weight: 800; color: var(--m-text); }

.tf-product-form { margin-bottom: 14px; padding: 14px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.tf-product-form__form { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0; }
.tf-product-form__quantity { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; }
.tf-product-form__label { margin: 0; font-weight: 700; font-size: 14px; }
.tf-product-form__hint { flex-basis: 100%; color: var(--m-muted); font-size: 12px; }
.tf-quantity { display: inline-flex; align-items: center; height: 46px; border-radius: 12px; background: var(--m-bg); padding: 3px; }
.tf-quantity__btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 10px; background: #fff; box-shadow: var(--m-shadow-sm); color: var(--m-text); }
.tf-quantity__btn svg { width: 16px; height: 16px; }
.tf-quantity__input { width: 50px !important; min-height: 40px !important; height: 40px; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: center; font-weight: 800; -moz-appearance: textfield; }
.tf-quantity__input::-webkit-outer-spin-button, .tf-quantity__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tf-btn--add-to-cart, .single_add_to_cart_button { width: 100%; min-height: 54px; border-radius: 14px; font-size: 16px; font-weight: 800; box-shadow: 0 8px 20px color-mix(in srgb, var(--m-primary) 30%, transparent); }
.tf-btn--add-to-cart svg { width: 20px; height: 20px; }
.tf-product-form .pneus24h-wa-open { width: 100%; min-height: 50px; border-radius: 14px; background: var(--m-wa); color: #fff !important; }
.tf-product-form .stock.out-of-stock { margin: 0; padding: 10px; border-radius: 10px; background: #fdecea; color: var(--m-danger); font-weight: 700; text-align: center; }

.tf-product-delivery { display: grid; gap: 1px; margin-bottom: 14px; overflow: hidden; border-radius: var(--m-radius); background: var(--m-line-2); }
.tf-delivery-item { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; font-size: 13px; color: var(--m-text-2); }
.tf-delivery-item svg, .tf-delivery-item > i { width: 20px; height: 20px; font-size: 20px; flex: none; color: var(--m-primary); }
.tf-delivery-item strong { color: var(--m-text); }
.tf-delivery-item--stock svg, .tf-delivery-item--stock > i { color: var(--m-success); }
.tf-trust-badges { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.tf-trust-badge { display: flex; align-items: center; gap: 8px; padding: 10px; border-radius: 12px; background: #fff; font-size: 12px; font-weight: 600; color: var(--m-text-2); }
.tf-trust-badge svg, .tf-trust-badge > i { width: 18px; height: 18px; font-size: 18px; flex: none; color: var(--m-primary); }
.tf-payment-icons { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; font-size: 12px; color: var(--m-muted); }
.tf-payment-icons__list { display: flex; flex-wrap: wrap; gap: 6px; }
.tf-payment-icons__list > * { display: inline-flex; align-items: center; height: 28px; padding: 0 8px; border-radius: 6px; background: #fff; border: 1px solid var(--m-line); font-size: 11px; font-weight: 700; color: var(--m-text-2); }
.tf-payment-icons__list img, .tf-payment-icons__list svg { max-height: 18px; width: auto; }
.tf-product-meta { display: grid; gap: 8px; padding: 12px 0 4px; border-top: 1px solid var(--m-line); font-size: 13px; }
.tf-product-meta__item { display: flex; gap: 6px; flex-wrap: wrap; }
.tf-product-meta__label { color: var(--m-muted); }
.tf-product-meta__value { font-weight: 600; }
.tf-product-share { display: flex; align-items: center; gap: 10px; }
.tf-product-share__label { color: var(--m-muted); }
.tf-product-share__links { display: flex; gap: 8px; }
.tf-share-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 1px solid var(--m-line); color: var(--m-text) !important; }
.tf-share-btn svg { width: 16px; height: 16px; }
.tf-share-btn i { font-size: 16px; }
.tf-share-btn--whatsapp { color: var(--m-wa-dark) !important; }

/* Content blocks */
.tf-product-content { padding: 8px 0 4px; }
.tf-product-tabs, .tf-content-nav { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--m-gutter) * -1) 12px; padding: 0 var(--m-gutter); }
.tf-content-block { margin-bottom: 12px; padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); scroll-margin-top: calc(var(--m-header-h) + 12px); }
.tf-content-block__title { margin: 0 0 12px; font-size: 18px; }
.tf-content-block__body { font-size: 14px; color: var(--m-text-2); }
.tf-content-block__body h2, .tf-content-block__body h3 { color: var(--m-text); margin-top: 16px; }
.tf-content-block__body h2 { font-size: 17px; } .tf-content-block__body h3 { font-size: 15px; }
.tf-content-block__body img { border-radius: var(--m-radius-md); }
.tf-content-block__body table { display: block; overflow-x: auto; }
.tf-advantages__grid { display: grid; gap: 8px; }
.tf-advantage-card { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: start; padding: 12px; border-radius: 12px; background: var(--m-bg); }
.tf-advantage-card__icon { grid-row: span 2; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: #fff; color: var(--m-primary); }
.tf-advantage-card__icon svg { width: 20px; height: 20px; }
.tf-advantage-card__icon i { font-size: 20px; }
.tf-advantage-card__title { margin: 0 0 2px; font-size: 14px; }
.tf-advantage-card__desc { margin: 0; font-size: 13px; color: var(--m-muted); }
.tf-specs-table table { margin: 0; }
.tf-specs-table tr:nth-child(odd) { background: var(--m-bg); }
.tf-specs-table th, .tf-specs-table td { padding: 10px 12px; border: 0; font-size: 13px; }
.tf-specs-table th { width: 45%; color: var(--m-muted); font-weight: 600; }
.tf-specs-table td { font-weight: 700; color: var(--m-text); }
.tf-reviews__content { font-size: 14px; }
.tf-faq__accordion { display: grid; gap: 8px; }
.tf-faq__item { border-radius: 12px; background: var(--m-bg); overflow: hidden; }
.tf-faq__question {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
  min-height: 52px; padding: 12px 14px; border: 0; background: none; text-align: left;
  font-size: 14px; font-weight: 700; color: var(--m-text);
}
.tf-faq__question svg, .tf-faq__question > i { width: 18px; height: 18px; font-size: 18px; flex: none; transition: transform .2s; }
.tf-faq__question.active svg, .tf-faq__question.active > i { transform: rotate(180deg); }
.tf-faq__answer-inner { padding: 0 14px 14px; font-size: 14px; color: var(--m-text-2); }

/* Related products */
.tf-related-products { padding: 12px 0 8px; }
.tf-related-products h2, .related.products > h2 { font-size: 19px; margin-bottom: 12px; }

/* Sticky buy bars: desktop panel off, phone bar on */
.tf-sticky-buy { display: none !important; }
.tf-mobile-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035;
  display: flex; align-items: center; gap: 12px;
  padding: 10px var(--m-gutter) calc(10px + var(--m-safe-b));
  background: rgba(255,255,255,.96); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-top: 1px solid var(--m-line); box-shadow: 0 -8px 24px rgba(16,24,40,.08);
  transform: translateY(110%); transition: transform .3s var(--m-ease);
}
.tf-mobile-sticky.visible, .tf-mobile-sticky.is-visible { transform: none; }
.tf-mobile-sticky__price { flex: none; font-family: var(--m-font-head); font-size: 19px; font-weight: 800; color: var(--m-text); }
.tf-mobile-sticky__price del { display: block; font-size: 12px; color: var(--m-muted); font-weight: 500; }
.tf-mobile-sticky__price ins { text-decoration: none; }
.tf-mobile-sticky__btn { flex: 1 1 auto; min-height: 48px; border-radius: 14px; }
body.pneus24h-app-has-bar .tf-mobile-sticky { bottom: calc(var(--m-bar-h) + var(--m-safe-b)); padding-bottom: 10px; box-shadow: none; }
body.single-product.pneus24h-app-has-bar .site-main { padding-bottom: 80px; }
.tf-mobile-sticky:not(.visible):not(.is-visible) { visibility: hidden; opacity: 0; }
.tf-mobile-sticky { transition: transform .3s var(--m-ease), opacity .2s, visibility .3s; }

/* ==========================================================================
   16. Cart
   ========================================================================== */
.woocommerce-cart .page-content-section, .woocommerce-checkout .page-content-section { padding-top: 12px; }
.tf-page-cart > .container, .tf-one-page-checkout > form > .container { padding: 0; }
.woocommerce-cart-form { margin: 0; }
.tf-table-cart, .woocommerce-cart-form__contents { display: block; width: 100%; border: 0; }
.tf-table-cart thead { display: none; }
.tf-table-cart tbody { display: grid; gap: 10px; }
.tf-table-cart tr.cart_item {
  position: relative; display: grid;
  grid-template-columns: 84px 1fr; grid-auto-rows: auto; column-gap: 12px; row-gap: 4px;
  padding: 12px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm);
}
.tf-table-cart td { display: block; padding: 0; border: 0; text-align: left; }
.tf-table-cart td::before { display: none; }
.tf-table-cart .product-thumbnail { grid-column: 1; grid-row: 1 / span 3; }
.tf-table-cart .product-name { grid-column: 2; grid-row: 1; }
.tf-table-cart .product-price { grid-column: 2; grid-row: 2; }
.tf-table-cart .product-quantity { grid-column: 2; grid-row: 3; }
.tf-table-cart .product-subtotal { grid-column: 2; grid-row: 3; justify-self: end; white-space: nowrap; }
.tf-table-cart .product-montage { grid-row: 4; }
.tf-table-cart .product-thumbnail a { display: block; width: 84px; height: 84px; padding: 6px; border-radius: 12px; background: var(--m-bg); }
.tf-table-cart .product-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.tf-table-cart .product-name { padding-right: 34px; font-size: 14px; font-weight: 700; line-height: 1.35; }
.tf-table-cart .product-name a { color: var(--m-text); }
.tf-table-cart .product-name .variation, .tf-table-cart .product-name dl { margin: 4px 0 0; font-size: 12px; color: var(--m-muted); }
.tf-table-cart .product-price { color: var(--m-muted); font-size: 13px; }
.tf-table-cart .product-quantity { display: flex; align-items: center; }
.tf-table-cart .quantity .qty { width: 86px !important; min-height: 40px; height: 40px; padding: 6px 8px; text-align: center; font-weight: 700; border-radius: 10px; }
.tf-table-cart .product-subtotal { align-self: center; font-size: 16px; font-weight: 800; color: var(--m-text); }
.tf-table-cart .product-montage { grid-column: 1 / -1; margin-top: 6px; padding: 8px 10px; border-radius: 10px; background: var(--m-bg); font-size: 12px; color: var(--m-text-2); }
.tf-table-cart .product-montage:empty { display: none; }
.tf-montage-option .montage-note { color: var(--m-muted); }
.tf-table-cart .product-remove { position: absolute; top: 8px; right: 8px; }
.tf-table-cart .product-remove a.remove {
  display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%;
  background: var(--m-bg); color: var(--m-muted) !important; font-size: 18px; line-height: 1;
}
.tf-table-cart .product-remove svg { width: 15px; height: 15px; }
.tf-table-cart tr:not(.cart_item) { display: block; }
.tf-table-cart td.actions { padding: 12px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.tf-cart-actions { display: grid; gap: 8px; }
.tf-cart-actions .coupon { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.tf-cart-actions .coupon .button { background: var(--m-dark); }
.tf-cart-actions > button[name="update_cart"] { background: #fff; color: var(--m-text) !important; border-color: var(--m-line); }
.tf-cart-actions > button[name="update_cart"]:disabled { display: none; }

.cart-collaterals { margin-top: 12px; }
.cart-collaterals .row { gap: 12px; }
.cart-collaterals .col-lg-6:first-child { order: 2; }
.tf-montage-info-box { padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.montage-info-title { display: flex; align-items: center; gap: 8px; font-size: 16px; }
.montage-info-title svg { width: 20px; height: 20px; color: var(--m-primary); }
.montage-info-content { font-size: 14px; color: var(--m-text-2); }
.montage-features { list-style: none; padding: 0; margin: 0 0 14px; display: grid; gap: 6px; }
.montage-features li { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.montage-features svg { width: 16px; height: 16px; color: var(--m-success); }
.tf-montage-info-box .tf-btn { width: 100%; }
.cart_totals { padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.cart_totals h2 { font-size: 18px; margin-bottom: 8px; }
.cart_totals table, .cart_totals tbody { display: block; width: 100%; }
.cart_totals tr { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--m-line); }
.cart_totals th, .cart_totals td { display: block; padding: 0; border: 0; font-size: 14px; }
.cart_totals td { text-align: right; font-weight: 700; }
.cart_totals td::before { display: none; }
.cart_totals .order-total { border-bottom: 0; padding-top: 12px; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 18px; font-weight: 800; color: var(--m-text); }
.woocommerce-shipping-totals td { text-align: left; }
.woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; }
.wc-proceed-to-checkout {
  position: sticky; bottom: calc(var(--m-safe-b) + 8px); z-index: 20; margin-top: 14px;
}
body.pneus24h-app-has-bar .wc-proceed-to-checkout { bottom: calc(var(--m-bar-h) + var(--m-safe-b) + 8px); }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 54px; border-radius: 14px; font-size: 16px; font-weight: 800; box-shadow: 0 10px 24px color-mix(in srgb, var(--m-primary) 35%, transparent); }

.wc-empty-cart-message { margin: 10px 0 16px; }
.cart-empty.woocommerce-info {
  display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 40px 16px 24px !important;
  border: 0 !important; border-radius: var(--m-radius); background: #fff !important; text-align: center; font-size: 16px; font-weight: 600; color: var(--m-text) !important;
}
.cart-empty.woocommerce-info::before {
  content: ""; position: static !important; display: block; width: 72px; height: 72px; border-radius: 50%;
  background: var(--m-primary-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%23E63946' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='21' r='1'/%3E%3Ccircle cx='19' cy='21' r='1'/%3E%3Cpath d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/%3E%3C/svg%3E") center / 32px no-repeat;
}
.return-to-shop .button { width: 100%; }

/* ==========================================================================
   17. Checkout
   ========================================================================== */
.tf-one-page-checkout form.checkout { margin: 0; }
.tf-one-page-checkout .row { gap: 12px; }
.checkout-sidebar { display: grid; gap: 12px; }
.checkout-section { margin: 0 0 12px; padding: 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.checkout-sidebar .checkout-section { margin: 0; }
.checkout-section .section-header { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.section-number {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 28px; height: 28px; border-radius: 50%; background: var(--m-dark); color: #fff; font-size: 13px; font-weight: 800;
}
.checkout-section .section-title { margin: 0; flex: 1; font-size: 17px; }
.section-count, .section-optional { color: var(--m-muted); font-size: 12px; font-weight: 600; }
.section-header-small h4 { margin: 0 0 12px; font-size: 16px; }

.checkout-cart-items { display: grid; gap: 10px; }
.cart-item { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--m-line-2); }
.cart-item:last-child { padding-bottom: 0; border-bottom: 0; }
.cart-item-image a { display: block; width: 64px; height: 64px; padding: 4px; border-radius: 10px; background: var(--m-bg); }
.cart-item-image img { width: 100%; height: 100%; object-fit: contain; }
.cart-item-body { display: grid; gap: 8px; min-width: 0; }
.cart-item-name { font-size: 13px; font-weight: 700; line-height: 1.35; }
.cart-item-name a { color: var(--m-text); }
.cart-item-meta:empty { display: none; }
.cart-item-meta { font-size: 12px; color: var(--m-muted); }
.cart-item-price { font-size: 15px; font-weight: 800; }
.cart-item-actions { display: flex; align-items: center; justify-content: space-between; }
.cart-item-qty { display: inline-flex; align-items: center; height: 38px; padding: 2px; border-radius: 10px; background: var(--m-bg); }
.qty-btn { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 0; border-radius: 8px; background: #fff; box-shadow: var(--m-shadow-sm); }
.qty-btn svg { width: 14px; height: 14px; }
.cart-item-qty input.qty { width: 40px !important; min-height: 34px; height: 34px; padding: 0; border: 0; background: transparent; text-align: center; font-weight: 800; font-size: 15px; -moz-appearance: textfield; }
.cart-item-qty input.qty::-webkit-inner-spin-button, .cart-item-qty input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.cart-item-remove .remove-item { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; color: var(--m-muted) !important; background: var(--m-bg); }
.cart-item-remove svg { width: 16px; height: 16px; }

.delivery-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.delivery-mode-option { position: relative; display: block; margin: 0; cursor: pointer; }
.delivery-mode-option input { position: absolute; opacity: 0; pointer-events: none; }
.mode-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 8px; height: 100%;
  padding: 12px; border: 1.5px solid var(--m-line); border-radius: 14px; background: #fff; transition: border-color .15s, background-color .15s;
}
.mode-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: var(--m-bg); color: var(--m-text-2); }
.mode-icon svg { width: 20px; height: 20px; }
.mode-text { display: flex; flex-direction: column; gap: 2px; }
.mode-title { font-size: 14px; font-weight: 700; color: var(--m-text); line-height: 1.25; }
.mode-subtitle { font-size: 12px; color: var(--m-muted); font-weight: 500; }
.delivery-mode-option.active .mode-card, .delivery-mode-option input:checked + .mode-card { border-color: var(--m-primary); background: var(--m-primary-soft); }
.delivery-mode-option.active .mode-icon, .delivery-mode-option input:checked + .mode-card .mode-icon { background: var(--m-primary); color: #fff; }

.delivery-address-section, .store-selector-section { display: none; }
.delivery-address-section.active, .store-selector-section.active { display: block; }
.delivery-info { display: flex; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--m-bg); font-size: 13px; color: var(--m-text-2); }
.delivery-info svg { width: 16px; height: 16px; margin-top: 2px; }
.montage-included-info { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--m-success) 10%, #fff); }
.montage-included-icon { display: inline-flex; color: var(--m-success); }
.montage-included-icon svg { width: 22px; height: 22px; }
.montage-included-text { display: flex; flex-direction: column; font-size: 12px; color: var(--m-text-2); }
.montage-included-text strong { font-size: 13px; color: var(--m-text); }
.store-selector-intro { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.retrait-illustration { display: inline-flex; color: var(--m-primary); }
.retrait-illustration svg { width: 28px; height: 28px; }
.retrait-intro-text { margin: 0; font-size: 13px; color: var(--m-text-2); }
.store-search { display: grid; gap: 8px; }
.store-search-separator { display: flex; align-items: center; gap: 10px; color: var(--m-muted); font-size: 12px; }
.store-search-separator::before, .store-search-separator::after { content: ""; flex: 1; height: 1px; background: var(--m-line); }
.search-input-group { display: flex; gap: 6px; }
.search-input-group input { flex: 1 1 auto; min-width: 0; }
.search-input-group .search-btn, .search-input-group .locate-btn { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 0; border-radius: var(--m-radius-sm); background: var(--m-dark); color: #fff; }
.search-input-group .locate-btn { background: var(--m-bg); color: var(--m-text); }
.search-input-group svg { width: 18px; height: 18px; }
.store-results { margin-top: 10px; }
.store-loading { display: flex; align-items: center; gap: 8px; padding: 10px; font-size: 13px; color: var(--m-muted); }
.spinner { width: 18px; height: 18px; border: 2px solid var(--m-line); border-top-color: var(--m-primary); border-radius: 50%; animation: m-spin .8s linear infinite; }
@keyframes m-spin { to { transform: rotate(360deg); } }
.store-list { display: grid; gap: 8px; max-height: 340px; overflow-y: auto; overscroll-behavior: contain; }
.store-card, .store-item { padding: 12px; border: 1.5px solid var(--m-line); border-radius: 12px; background: #fff; cursor: pointer; }
.store-card.selected, .store-item.selected { border-color: var(--m-primary); background: var(--m-primary-soft); }
.store-card-header, .store-card-main { display: flex; align-items: flex-start; gap: 10px; }
.store-card-icon { display: inline-flex; color: var(--m-primary); }
.store-card-icon svg { width: 18px; height: 18px; }
.store-name { font-size: 14px; font-weight: 700; }
.store-address { font-size: 12px; color: var(--m-muted); }
.store-status { font-size: 11px; font-weight: 700; }
.store-services { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.store-service-tag { padding: 2px 8px; border-radius: var(--m-pill); background: var(--m-bg); font-size: 11px; }
.no-stores { padding: 12px; text-align: center; color: var(--m-muted); font-size: 13px; }
.selected-store-summary { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--m-primary-soft); font-size: 13px; }

.fields-row { display: grid; grid-template-columns: 1fr; gap: 0; }
.field-col .form-row { margin-bottom: 12px; }
.checkout-additional-fields .form-row { margin: 0; }
.checkout-additional-fields textarea { min-height: 84px; }
.select2-container { width: 100% !important; }
.select2-container .select2-selection--single { height: 48px; border: 1.5px solid var(--m-line); border-radius: var(--m-radius-sm); }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 45px; padding-left: 14px; font-size: 16px; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.select2-dropdown { border-color: var(--m-line); border-radius: var(--m-radius-sm); }
.select2-search--dropdown .select2-search__field { min-height: 42px; }
.select2-results__option { padding: 10px 12px; }

.coupon-input-group { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.apply-coupon-btn { min-height: 48px; padding: 0 16px; border: 0; border-radius: var(--m-radius-sm); background: var(--m-dark); color: #fff; font-weight: 700; }
.coupon-message { margin-top: 8px; font-size: 13px; }
.coupon-message:empty { display: none; }
.coupon-message.success { color: var(--m-success); }
.coupon-message.error { color: var(--m-danger); }

.checkout-review-section { padding: 0; overflow: hidden; }
.checkout-summary { font-size: 14px; }
.summary-header { padding: 14px 16px; background: var(--m-dark); color: #fff; font-family: var(--m-font-head); font-size: 16px; font-weight: 700; }
.summary-body { padding: 6px 16px; }
.summary-row { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--m-line); }
.summary-row:last-child { border-bottom: 0; }
.summary-row .left { color: var(--m-text-2); font-size: 13px; }
.summary-row .qty { color: var(--m-muted); font-weight: 700; }
.summary-row .right { font-weight: 700; white-space: nowrap; }
.summary-total { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: var(--m-bg); font-size: 16px; font-weight: 800; }
.summary-total .total-amount { color: var(--m-primary); font-size: 20px; }

#payment, .woocommerce-checkout-payment { background: none; }
#payment ul.payment_methods { display: grid; gap: 8px; list-style: none; margin: 0 0 14px; padding: 0; border: 0; }
#payment ul.payment_methods li { margin: 0; padding: 0; }
.payment-method-card { border: 1.5px solid var(--m-line); border-radius: 14px; background: #fff; overflow: hidden; transition: border-color .15s; }
.wc_payment_method.selected .payment-method-card, .wc_payment_method.chosen .payment-method-card { border-color: var(--m-primary); background: var(--m-primary-soft); }
.payment-method-label { display: flex !important; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; cursor: pointer; }
.payment-method-radio { position: relative; display: inline-flex; flex: none; }
.payment-method-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.payment-method-radio-dot { width: 20px; height: 20px; border: 2px solid var(--m-line); border-radius: 50%; background: #fff; transition: all .15s; }
.payment-method-radio input:checked + .payment-method-radio-dot { border: 6px solid var(--m-primary); }
.payment-method-icon { display: inline-flex; color: var(--m-text-2); }
.payment-method-icon svg { width: 22px; height: 22px; }
.payment-method-title { font-size: 14px; font-weight: 700; color: var(--m-text); }
.payment_box { padding: 0 14px 12px; }
.payment-box-inner { padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.75); font-size: 13px; color: var(--m-text-2); }
.payment-box-inner p:last-child { margin: 0; }
.place-order { margin: 0; }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 12px; font-size: 13px; }
#place_order { width: 100%; min-height: 56px; border-radius: 14px; font-size: 17px; font-weight: 800; box-shadow: 0 10px 24px color-mix(in srgb, var(--m-primary) 35%, transparent); }
.whatsapp-order-wrapper .whatsapp-btn { min-height: 52px; border-radius: 14px !important; }
.checkout-trust-badges { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.checkout-trust-badges .trust-badge { display: flex; align-items: flex-start; gap: 8px; padding: 10px; border: 0; border-radius: 12px; background: #fff; color: var(--m-text); white-space: normal; }
.trust-badge-icon { display: inline-flex; color: var(--m-primary); }
.trust-badge-icon svg { width: 20px; height: 20px; }
.trust-badge-text { display: flex; flex-direction: column; gap: 1px; }
.trust-badge-text strong { font-size: 12px; }
.trust-badge-text span { font-size: 11px; color: var(--m-muted); font-weight: 500; }
.checkout-loading, .blockUI.blockOverlay { background: rgba(255,255,255,.6) !important; }

/* Order received */
.woocommerce-order { display: grid; gap: 12px; }
.woocommerce-thankyou-order-received { padding: 18px 16px; border-radius: var(--m-radius); background: color-mix(in srgb, var(--m-success) 10%, #fff); color: var(--m-success); font-size: 16px; font-weight: 700; text-align: center; }
ul.woocommerce-order-overview { display: grid; gap: 1px; list-style: none; margin: 0; padding: 0; overflow: hidden; border-radius: var(--m-radius); background: var(--m-line); }
ul.woocommerce-order-overview li { padding: 12px 14px; background: #fff; font-size: 12px; color: var(--m-muted); text-transform: uppercase; }
ul.woocommerce-order-overview li strong { display: block; margin-top: 2px; font-size: 15px; color: var(--m-text); text-transform: none; }
.woocommerce-order-details, .woocommerce-customer-details, .woocommerce-bacs-bank-details { padding: 16px; border-radius: var(--m-radius); background: #fff; }
.woocommerce-table--order-details td, .woocommerce-table--order-details th { font-size: 13px; }

/* ==========================================================================
   18. WooCommerce notices, account & generic forms
   ========================================================================== */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  position: relative; display: block; margin: 0 0 12px; padding: 12px 14px 12px 44px; list-style: none;
  border: 0; border-radius: 12px; background: #eef4ff; color: #1d4ed8; font-size: 14px; font-weight: 500;
}
.woocommerce-message { background: color-mix(in srgb, var(--m-success) 11%, #fff); color: #0b6b36; }
.woocommerce-error { background: #fdecea; color: #b42318; }
.woocommerce-error li { margin: 0; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
  content: "i"; position: absolute; left: 14px; top: 12px; display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%; background: currentColor; color: #fff; font-size: 12px; font-weight: 800; font-family: var(--m-font);
}
.woocommerce-message::before { content: "\2713"; }
.woocommerce-error::before { content: "!"; }
.woocommerce-message .button, .woocommerce-info .button { float: none; display: flex; width: 100%; min-height: 40px; margin-top: 10px; font-size: 14px; }
.woocommerce-message .wc-forward, .woocommerce-info .wc-forward { order: 2; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: inherit; }
.woocommerce-message::before { background: var(--m-success); color: #fff; }
.woocommerce-info::before { background: #1d4ed8; color: #fff; }
.woocommerce-error::before { background: #b42318; color: #fff; }

.woocommerce-account .page-entry > .woocommerce > h2 { font-size: 20px; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .lost_reset_password, .woocommerce-EditAccountForm, .woocommerce-address-fields {
  margin: 0 0 16px; padding: 18px 16px; border: 0; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm);
}
.woocommerce-form-login .form-row:has(.woocommerce-form-login__rememberme) { display: grid; gap: 12px; }
.woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center; gap: 8px; margin: 0; font-weight: 500; }
.woocommerce-form-login__submit, .woocommerce-form-register__submit, .woocommerce-Button { width: 100%; }
.lost_password { margin: 12px 0 0; text-align: center; font-size: 14px; }
.u-columns.col2-set, .col2-set { display: grid; gap: 12px; }
.col2-set .col-1, .col2-set .col-2 { width: 100%; max-width: 100%; float: none; }
.googlesitekit-sign-in-with-google__frontend-output-button:empty { display: none; }

/* My account dashboard */
.woocommerce-MyAccount-navigation ul {
  display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; list-style: none;
  margin: 0 calc(var(--m-gutter) * -1) 14px; padding: 0 var(--m-gutter);
}
.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
.woocommerce-MyAccount-navigation li a {
  display: inline-flex; align-items: center; min-height: 38px; padding: 6px 14px; border-radius: var(--m-pill);
  background: #fff; border: 1px solid var(--m-line); color: var(--m-text) !important; font-size: 14px; font-weight: 600; white-space: nowrap;
}
.woocommerce-MyAccount-navigation li.is-active a { background: var(--m-dark); border-color: var(--m-dark); color: #fff !important; }
.woocommerce-MyAccount-content { padding: 16px; border-radius: var(--m-radius); background: #fff; font-size: 14px; }
.woocommerce-orders-table, .woocommerce-MyAccount-orders { display: block; overflow-x: auto; font-size: 13px; }
.woocommerce-orders-table .button { min-height: 36px; padding: 6px 12px; font-size: 13px; }
.woocommerce-Addresses { display: grid; gap: 12px; }

/* ==========================================================================
   19. Pages, blog, contact, 404, search
   ========================================================================== */
.page-hero {
  position: relative; padding: 18px 0 20px;
  background: linear-gradient(135deg, var(--m-dark) 0%, var(--m-dark-2) 100%); color: #fff;
}
.page-hero__inner { display: flex; flex-direction: column; gap: 6px; }
.page-hero__breadcrumb, .single-post-hero__breadcrumb {
  display: flex; align-items: center; gap: 6px; overflow-x: auto; white-space: nowrap; scrollbar-width: none;
  font-size: 12px; color: rgba(255,255,255,.6);
}
.page-hero__breadcrumb a, .single-post-hero__breadcrumb a { color: rgba(255,255,255,.85); }
.page-hero__title { margin: 0; color: #fff; font-size: 24px; }
.page-hero__subtitle, .page-hero__desc { margin: 0; color: rgba(255,255,255,.75); font-size: 14px; }
.page-hero--light { background: #fff; color: var(--m-text); }
.page-hero--light .page-hero__title { color: var(--m-text); }
.page-hero--light .page-hero__breadcrumb, .page-hero--light .page-hero__breadcrumb a { color: var(--m-muted); }
.page-content-section { padding: 16px 0 24px; }
.page-grid { display: block; }
.page-grid > aside, .page-sidebar, .blog-sidebar, .widget-area { margin-top: 20px; }
.page-article, .page-body { min-width: 0; }
.page-entry, .entry-content { font-size: 15px; color: var(--m-text-2); overflow-wrap: anywhere; }
.page-entry > *:not(.woocommerce) img, .entry-content img { border-radius: var(--m-radius-md); }
.page-entry > table, .entry-content table, .single-post-entry table { display: block; overflow-x: auto; }
.page-grid--boxed .page-article:not(:has(.woocommerce)) .page-body { padding: 18px 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.wp-block-image, figure { margin: 0 0 14px; }
iframe, embed, object { max-width: 100%; }
.wp-block-button__link { display: inline-flex; min-height: 48px; padding: 12px 20px; border-radius: 12px; background: var(--m-primary); color: #fff; font-weight: 700; }
.wp-block-columns { display: grid; gap: 12px; }

/* Theme page title (older templates) */
.tf-page-title { padding: 18px 0 14px; background: var(--m-dark); color: #fff; }
.tf-page-title .heading { margin: 0 0 6px; text-align: left !important; }
.tf-page-title h1, .tf-page-title .heading h1 { margin: 0; color: #fff; font-size: 24px; }
.tf-page-title .tf-breadcrumb { padding: 0; }
.tf-page-title .tf-breadcrumb .container { padding: 0; }
.tf-page-title .tf-breadcrumb-list, .tf-page-title .tf-breadcrumb-list a { color: rgba(255,255,255,.75); }
.flat-spacing-10, .flat-spacing-11, .flat-spacing-1, .flat-spacing-2 { padding: 18px 0 24px; }

/* Blog single */
.single-post-hero { padding: 16px 0 20px; background: linear-gradient(135deg, var(--m-dark) 0%, var(--m-dark-2) 100%); color: #fff; }
.single-post-hero .container { display: flex; flex-direction: column; gap: 10px; }
.single-post-hero__category { align-self: flex-start; padding: 4px 12px; border-radius: var(--m-pill); background: var(--m-primary); color: #fff !important; font-size: 12px; font-weight: 700; }
.single-post-hero__title { margin: 0; color: #fff; font-size: 24px; line-height: 1.2; }
.single-post-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; color: rgba(255,255,255,.75); font-size: 12px; }
.single-post-hero__meta-item { display: inline-flex; align-items: center; gap: 6px; }
.single-post-hero__meta-item svg { width: 14px; height: 14px; }
.single-post-hero__author-avatar img { width: 26px; height: 26px; border-radius: 50%; }
.single-post-content { padding: 0 0 24px; }
.single-post-grid { display: block; }
.single-post-featured { margin: 0 calc(var(--m-gutter) * -1) 0; }
.single-post-featured img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.single-post-body { position: relative; margin: -16px calc(var(--m-gutter) * -1) 0; padding: 20px var(--m-gutter) 8px; border-radius: 22px 22px 0 0; background: var(--m-bg); }
.single-post-entry { font-size: 16px; line-height: 1.7; color: var(--m-text-2); }
.single-post-entry h2 { margin: 26px 0 10px; font-size: 21px; color: var(--m-text); }
.single-post-entry h3 { margin: 20px 0 8px; font-size: 18px; color: var(--m-text); }
.single-post-entry ul, .single-post-entry ol { padding-left: 20px; }
.single-post-entry li { margin-bottom: 6px; }
.single-post-entry table { margin: 14px 0; border-radius: 12px; background: #fff; font-size: 13px; }
.single-post-entry th { background: var(--m-dark); color: #fff; white-space: nowrap; }
.single-post-entry td, .single-post-entry th { padding: 10px 12px; }
.single-post-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0; }
.single-post-tags a { padding: 5px 12px; border-radius: var(--m-pill); background: #fff; border: 1px solid var(--m-line); color: var(--m-text-2) !important; font-size: 13px; }
.single-post-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 18px 0; padding: 14px; border-radius: var(--m-radius); background: #fff; }
.single-post-share__links { display: flex; gap: 8px; }
.single-post-share__links a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--m-bg); color: var(--m-text) !important; }
.single-post-share__links svg { width: 18px; height: 18px; }
.single-post-author, .post-author-box { display: flex; gap: 12px; padding: 14px; border-radius: var(--m-radius); background: #fff; }
.single-post-nav, .post-navigation .nav-links { display: grid; gap: 8px; }
.single-post-related { margin-top: 18px; }
.single-post-related .pneus-blog-grid { display: grid; gap: 12px; }
.single-post-sidebar { display: none; }

/* Blog archive */
.blog .pneus-blog-grid, .archive .pneus-blog-grid, .search .pneus-blog-grid { display: grid; gap: 14px; }
.blog .pneus-blog-card, .archive .pneus-blog-card, .search .pneus-blog-card { flex: none; }

/* Comments */
.comments-area { margin-top: 20px; padding: 16px; border-radius: var(--m-radius); background: #fff; }
.comment-list { list-style: none; padding: 0; }
.comment-body { padding: 12px 0; border-bottom: 1px solid var(--m-line-2); font-size: 14px; }
.comment-form p { margin-bottom: 12px; }

/* Contact */
.contact-form-wrap, .contact-info-wrap { padding: 18px 16px; border-radius: var(--m-radius); background: #fff; box-shadow: var(--m-shadow-sm); }
.contact-info-wrap { margin-top: 12px; }
.contact-form-wrap h3, .contact-info-wrap h3 { font-size: 19px; }
.contact-form-wrap > p { color: var(--m-muted); font-size: 14px; }
.contact-form .row { gap: 0; }
.tf-field { position: relative; margin-bottom: 12px; }
.tf-field .tf-field-input { min-height: 54px; padding: 22px 14px 8px; }
.tf-field textarea.tf-field-input { min-height: 130px; padding-top: 26px; }
.tf-field .tf-field-label {
  position: absolute; left: 15px; top: 17px; margin: 0; pointer-events: none;
  color: var(--m-muted); font-size: 15px; font-weight: 500; transition: all .15s var(--m-ease);
}
.tf-field .tf-field-input:focus + .tf-field-label,
.tf-field .tf-field-input:not(:placeholder-shown) + .tf-field-label { top: 7px; font-size: 11px; font-weight: 700; color: var(--m-primary); }
.contact-form button[type="submit"] { width: 100%; }
.contact-info-item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--m-line-2); }
.contact-info-item:last-of-type { border-bottom: 0; }
.contact-info-item .icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 42px; height: 42px; border-radius: 12px; background: var(--m-primary-soft); color: var(--m-primary); font-size: 18px; }
.contact-info-item h5 { margin: 0 0 2px; font-size: 14px; }
.contact-info-item p { margin: 0; font-size: 14px; color: var(--m-text-2); }
.contact-whatsapp .tf-btn { background: var(--m-wa); }
.contact-social h5 { font-size: 14px; }
.tf-social-icon { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.tf-social-icon a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--m-bg); color: var(--m-text) !important; }
.contact-map iframe { display: block; width: 100%; height: 280px; border: 0; }
.contact-form-response, .contact-success, .contact-error { margin-top: 10px; padding: 10px 12px; border-radius: 10px; font-size: 14px; }

/* 404 + search */
.error-404, .not-found, .page-404 { padding: 32px 0; text-align: center; }
.error-404 h1, .page-404 h1 { font-size: 64px; color: var(--m-primary); margin-bottom: 6px; }
.error-404 .search-form, .search-form { display: flex; gap: 8px; margin: 16px 0; }
.search-form label { flex: 1; margin: 0; }
.search-form .search-submit { flex: none; }

/* Generic WP widgets (sidebars) */
.widget { margin-bottom: 16px; padding: 16px; border-radius: var(--m-radius); background: #fff; }
.widget-title, .widgettitle { font-size: 16px; margin-bottom: 10px; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget ul li { padding: 8px 0; border-bottom: 1px solid var(--m-line-2); font-size: 14px; }
.widget ul li:last-child { border-bottom: 0; }
.pneus-footer .widget, .shop-filter-widget .widget, .pneus-shop-sidebar .widget { padding: 0; background: none; border-radius: 0; margin: 0; }

/* ==========================================================================
   20. Account & cart sheets (modals)
   ========================================================================== */
.modal-auth-modern .modal-content { padding: 22px var(--m-gutter) calc(20px + var(--m-safe-b)); }
.modal-auth-modern .modal-close-modern { position: absolute; top: 12px; right: 12px; }
.modal-auth-header { margin-bottom: 18px; text-align: center; }
.modal-auth-icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 10px; border-radius: 18px; background: var(--m-primary-soft); color: var(--m-primary); }
.modal-auth-icon svg { width: 26px; height: 26px; }
.modal-auth-title { margin: 0 0 4px; font-size: 21px; }
.modal-auth-subtitle { margin: 0; color: var(--m-muted); font-size: 14px; }
.auth-form-modern { display: grid; gap: 14px; }
.form-group-modern { margin: 0; }
.form-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.form-label-modern { font-size: 13px; }
.form-link-modern { font-size: 13px; font-weight: 600; }
.input-wrapper-modern { position: relative; display: flex; align-items: center; }
.input-wrapper-modern > svg { position: absolute; left: 14px; width: 18px; height: 18px; color: var(--m-muted); pointer-events: none; }
.form-input-modern { padding-left: 44px !important; }
.input-wrapper-modern .password-toggle-modern { position: absolute; right: 4px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; background: none; color: var(--m-muted); }
.password-toggle-modern svg { width: 18px; height: 18px; }
.password-toggle-modern svg + svg { display: none; }
.password-toggle-modern.active svg:first-child, .password-toggle-modern.is-visible svg:first-child { display: none; }
.password-toggle-modern.active svg + svg, .password-toggle-modern.is-visible svg + svg { display: inline; }
.checkbox-modern { display: inline-flex !important; align-items: center; gap: 10px; margin: 0; font-weight: 500; cursor: pointer; }
.checkbox-modern input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.checkbox-box-modern { width: 22px; height: 22px; flex: none; border: 2px solid var(--m-line); border-radius: 6px; background: #fff; transition: all .15s; }
.checkbox-modern input:checked + .checkbox-box-modern { background: var(--m-primary); border-color: var(--m-primary); box-shadow: inset 0 0 0 3px #fff; }
.checkbox-label-modern { font-size: 14px; color: var(--m-text-2); }
.btn-auth-modern { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; border: 0; border-radius: 14px; background: var(--m-primary); color: #fff; font-size: 16px; font-weight: 700; }
.btn-auth-modern svg { width: 18px; height: 18px; }
.modal-auth-footer { margin-top: 16px; text-align: center; font-size: 14px; color: var(--m-muted); }
.auth-switch-text { margin: 0; }
.auth-switch-link { font-weight: 700; }
.form-hint-modern, .password-strength-modern { font-size: 12px; color: var(--m-muted); margin-top: 4px; }

/* Cart sheets slide in from the right, full height */
.modal.fullRight .modal-dialog, .modal-cart-modern .modal-dialog {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(92vw, 420px); min-height: 0; height: 100%; margin: 0;
  align-items: stretch; transform: translateX(100%);
}
.modal.fullRight.show .modal-dialog, .modal-cart-modern.show .modal-dialog { transform: none; }
.modal.fullRight .modal-dialog > .modal-content, .modal-cart-modern .modal-dialog > .modal-content {
  height: 100%; max-height: none; border-radius: 22px 0 0 22px; padding-bottom: 0; display: flex; flex-direction: column; overflow: hidden;
}
.modal-shopping-cart .header, .cart-modal-header {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: calc(14px + var(--m-safe-t)) var(--m-gutter) 14px; border-bottom: 1px solid var(--m-line);
}
.modal-shopping-cart .header .title { font-family: var(--m-font-head); font-size: 18px; font-weight: 700; }
.cart-header-title { display: flex; align-items: center; gap: 8px; }
.cart-header-title h5 { margin: 0; font-size: 18px; }
.cart-header-title svg { width: 20px; height: 20px; }
.cart-count-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--m-pill); background: var(--m-primary); color: #fff; font-size: 12px; font-weight: 800; }
.modal-shopping-cart .wrap, .tf-mini-cart-wrap { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.tf-mini-cart-main, .cart-modal-body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 12px var(--m-gutter); }
.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.woocommerce-mini-cart-item {
  position: relative; display: grid; grid-template-columns: 64px 1fr; column-gap: 12px; align-items: center;
  padding: 10px 40px 10px 10px; border-radius: 14px; background: var(--m-bg); font-size: 13px; font-weight: 600;
}
.woocommerce-mini-cart-item > a:not(.remove) { display: contents; color: var(--m-text); }
.woocommerce-mini-cart-item img { grid-row: span 2; width: 64px; height: 64px; object-fit: contain; border-radius: 10px; background: #fff; padding: 4px; }
.woocommerce-mini-cart-item .quantity { grid-column: 2; color: var(--m-muted); font-weight: 500; }
.woocommerce-mini-cart-item .remove { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--m-muted) !important; font-size: 18px; line-height: 1; }
.woocommerce-mini-cart__total, .woocommerce-mini-cart__buttons { display: none; }
.woocommerce-mini-cart__empty-message { padding: 40px 0; text-align: center; color: var(--m-muted); }
.tf-mini-cart-bottom, .cart-modal-footer { flex: none; padding: 14px var(--m-gutter) calc(14px + var(--m-safe-b)); border-top: 1px solid var(--m-line); background: #fff; display: grid; gap: 10px; }
.tf-mini-cart-bottom-wrap { display: grid; gap: 10px; }
.tf-cart-totals-discounts, .cart-modal-footer .cart-subtotal { display: flex; justify-content: space-between; align-items: center; font-size: 15px; font-weight: 700; }
.tf-totals-total-value, .subtotal-value { font-size: 19px; font-weight: 800; color: var(--m-text); }
.tf-mini-cart-terms-label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; font-weight: 500; }
.tf-mini-cart-view-checkout, .cart-buttons { display: grid; grid-template-columns: 1fr 1.3fr; gap: 8px; }
.tf-mini-cart-view-checkout .tf-btn, .btn-cart-view, .btn-cart-checkout { min-height: 50px; border-radius: 14px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.btn-cart-view { background: var(--m-bg); color: var(--m-text) !important; }
.btn-cart-checkout { background: var(--m-primary); color: #fff !important; }
.btn-cart-checkout svg { width: 16px; height: 16px; }
.tf-mini-cart-secure, .cart-note { margin: 0; text-align: center; color: var(--m-muted); font-size: 12px; }
.cart-items-list { display: grid; gap: 10px; }
.cart-item-modern { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding: 10px; border-radius: 14px; background: var(--m-bg); }
.cart-item-modern .cart-item-image a { display: block; width: 64px; height: 64px; padding: 4px; border-radius: 10px; background: #fff; }
.cart-item-modern .cart-item-image img { width: 100%; height: 100%; object-fit: contain; }
.cart-item-modern .cart-item-details { display: grid; gap: 6px; min-width: 0; }
.cart-item-title { color: var(--m-text) !important; font-size: 13px; font-weight: 700; line-height: 1.35; }
.cart-item-modern .cart-item-price { font-size: 14px; }
.quantity-selector-modern { display: inline-flex; align-items: center; height: 36px; padding: 2px; border-radius: 10px; background: #fff; }
.quantity-selector-modern .qty-btn { width: 32px; height: 32px; box-shadow: none; background: var(--m-bg); }
.quantity-selector-modern .qty-input { width: 36px; min-height: 32px; height: 32px; padding: 0; border: 0; background: none; text-align: center; font-weight: 800; font-size: 14px; }
.cart-item-modern .cart-item-remove { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #fff; color: var(--m-muted); }
.cart-item-modern .cart-item-remove svg { width: 15px; height: 15px; }
.cart-empty-state { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 40px 10px; text-align: center; color: var(--m-muted); }
.cart-empty-state svg { width: 56px; height: 56px; color: var(--m-line); }
.cart-empty-state .btn-continue-shopping, .cart-empty-state a { display: inline-flex; min-height: 46px; align-items: center; padding: 0 18px; border-radius: 12px; background: var(--m-primary); color: #fff !important; font-weight: 700; }

/* Quick view / compare / wishlist sheets fall back to the bottom-sheet look */
.modal .tf-product-info-wrap, .modal .tf-quick-view { padding: 16px var(--m-gutter); }

/* ==========================================================================
   21. Footer (accordions are enabled by assets/js/mobile/app.js)
   ========================================================================== */
.pneus-footer { margin-top: 8px; background: var(--m-dark-2); color: rgba(255,255,255,.72); font-size: 14px; }
.pneus-footer a { color: rgba(255,255,255,.82); }
.pneus-footer h2, .pneus-footer h3, .pneus-footer h4 { color: #fff; }

.pneus-footer-trust { padding: 18px 0; background: var(--m-dark); }
.pneus-footer-trust__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pneus-footer-trust__item { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 12px; background: rgba(255,255,255,.06); }
.pneus-footer-trust__icon { display: inline-flex; flex: none; color: var(--m-primary); }
.pneus-footer-trust__icon svg { width: 24px; height: 24px; }
.pneus-footer-trust[style] .pneus-footer-trust__icon { color: #fff; }
.pneus-footer-trust[style] .pneus-footer-trust__item { background: rgba(255,255,255,.14); }
.pneus-footer-trust[style] .pneus-footer-trust__text span { color: rgba(255,255,255,.8); }
.pneus-footer-trust__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.pneus-footer-trust__text strong { color: #fff; font-size: 12px; }
.pneus-footer-trust__text span { font-size: 11px; color: rgba(255,255,255,.6); }

.pneus-footer-seo { padding: 20px 0 6px; }
.pneus-footer-seo__title { margin: 0 0 8px; font-size: 16px; line-height: 1.35; }
.pneus-footer-seo__content { position: relative; font-size: 13px; line-height: 1.6; color: rgba(255,255,255,.65); }
.pneus-footer-seo__content strong { color: rgba(255,255,255,.85); font-weight: 600; }
.m-clamp { max-height: 7.8em; overflow: hidden; }
.m-clamp::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3em; background: linear-gradient(transparent, var(--m-dark-2)); pointer-events: none; }
.m-clamp.is-expanded { max-height: none; }
.m-clamp.is-expanded::after { display: none; }
.m-more {
  display: inline-flex; align-items: center; gap: 6px; margin: 8px 0 0; padding: 6px 0; border: 0; background: none;
  color: #fff; font-size: 13px; font-weight: 700;
}
.m-more::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.m-more[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-2px); }

.pneus-footer-seo-columns, .pneus-footer-main { padding: 6px 0; }
.pneus-footer-seo-columns__grid, .pneus-footer-main__grid { display: block; }
.pneus-footer-seo-columns__col, .pneus-footer-main__col { border-bottom: 1px solid rgba(255,255,255,.08); }
.pneus-footer-seo-columns__title, .footer-widget__title {
  position: relative; margin: 0; padding: 15px 30px 15px 0; font-family: var(--m-font); font-size: 15px; font-weight: 700; line-height: 1.3;
}
.footer-accordion-title.visually-hidden { display: none; }
.pneus-footer ul, .pneus-footer .menu { list-style: none; margin: 0; padding: 0 0 12px; }
.pneus-footer ul li { padding: 0; }
.pneus-footer ul li a { display: block; padding: 7px 0; font-size: 14px; }
.pneus-footer .textwidget { font-size: 13px; color: rgba(255,255,255,.65); padding-bottom: 12px; }
.pneus-footer .textwidget p { margin-bottom: 8px; }

/* Accordion behaviour (class set by JS so content stays readable without it) */
.m-acc-ready .m-acc-head { cursor: pointer; -webkit-user-select: none; user-select: none; }
.m-acc-ready .m-acc-head::after {
  content: ""; position: absolute; right: 4px; top: 50%; width: 8px; height: 8px; margin-top: -6px;
  border-right: 2px solid rgba(255,255,255,.7); border-bottom: 2px solid rgba(255,255,255,.7);
  transform: rotate(45deg); transition: transform .2s var(--m-ease);
}
.m-acc-ready .m-acc-item.is-open > .m-acc-head::after,
.m-acc-ready .m-acc-item.is-open .m-acc-head::after { transform: rotate(-135deg); margin-top: -2px; }
.m-acc-ready .m-acc-item:not(.is-open) .m-acc-body { display: none; }

.pneus-footer-copyright { padding: 16px 0 20px; text-align: center; font-size: 12px; color: rgba(255,255,255,.5); }
.pneus-footer-copyright__inner { display: grid; gap: 10px; }
.pneus-footer-copyright__payment { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pneus-footer-copyright__payment img, .pneus-footer-copyright__payment svg { max-height: 22px; width: auto; }

/* ==========================================================================
   22. Third-party widgets & motion
   ========================================================================== */
.grecaptcha-badge { visibility: hidden !important; }
.wpcf7 form { display: grid; gap: 12px; }
.wpcf7-not-valid-tip { font-size: 12px; color: var(--m-danger); }
.wpcf7-response-output { margin: 0 !important; padding: 10px 12px !important; border-radius: 10px; font-size: 14px; }
[data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .brands-marquee-track { animation: none; }
}

/* ==========================================================================
   23. Options (Thème > Design > Mode Mobile)
   ========================================================================== */
/* Home sections as a two-column grid instead of horizontal rows */
.m-rows-grid .tf-products-premium .pneus-products-grid,
.m-rows-grid .section-services .services-grid,
.m-rows-grid .section-avantages .avantages-grid {
  display: grid !important; grid-template-columns: 1fr 1fr; overflow: visible; margin: 0 !important; padding: 0 !important;
}
.m-rows-grid .section-blog .pneus-blog-grid,
.m-rows-grid .section-testimonials-google .testimonials-grid {
  display: grid !important; grid-template-columns: 1fr; overflow: visible; margin: 0 !important; padding: 0 !important;
}
.m-rows-grid .tf-products-premium .pneus-product-card,
.m-rows-grid .service-card, .m-rows-grid .avantage-item,
.m-rows-grid .pneus-blog-card, .m-rows-grid .testimonial-card-google { flex: none; width: auto; }
.single-post-entry > :first-child { margin-top: 0; }
