*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
html, body { overflow-x: hidden; max-width: 100%; }

/* Product gallery: thumbnails are cropped to a 4:3 grid; hovering pops out
   the uncropped image at full aspect ratio, eased in with a scale + fade.
   Restricted to real-hover pointers so a tap on touch devices can't leave
   the enlarged view stuck open. */
.tmk-gallery-thumb { aspect-ratio: 4/3; overflow: hidden; border-radius: 8px 8px 0 0; background: #F4F4F1; }
.tmk-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tmk-gallery-full { display: none; }
@media (hover: hover) and (pointer: fine) {
  .tmk-gallery-figure { position: relative; }
  .tmk-gallery-thumb { cursor: zoom-in; }
  .tmk-gallery-full {
    display: flex; align-items: center; justify-content: center;
    position: absolute; inset: 0; z-index: 1;
    background: #fff; border-radius: 8px; padding: 10px;
    box-shadow: 0 24px 60px rgba(24,38,26,0.28);
    opacity: 0; transform: scale(0.92); pointer-events: none;
    transition: opacity 0.35s cubic-bezier(0.22,1,0.36,1), transform 0.35s cubic-bezier(0.22,1,0.36,1);
  }
  .tmk-gallery-full img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
  .tmk-gallery-figure:hover .tmk-gallery-full { opacity: 1; transform: scale(1.75); z-index: 30; }
}
@media (max-width: 860px) {
    .tmk-nav-inner { padding-left: 20px !important; padding-right: 20px !important; gap: 16px !important; }
    .tmk-nav-links { order: 3; width: 100%; flex-basis: 100%; justify-content: flex-start !important; }
    .tmk-section { padding-left: 20px !important; padding-right: 20px !important; }
    .tmk-grid-2 { grid-template-columns: 1fr !important; gap: 40px !important; }
    .tmk-grid-4 { grid-template-columns: repeat(2,1fr) !important; }
    .tmk-grid-3 { grid-template-columns: 1fr !important; }
    .tmk-hero-h1 { font-size: 38px !important; }
    .tmk-h2 { font-size: 26px !important; }
    .tmk-table-row { padding-left: 14px !important; padding-right: 14px !important; }
    .tmk-footer-inner { grid-template-columns: 1fr !important; text-align: left !important; gap: 20px !important; }
    .tmk-footer-right { text-align: left !important; }
  }