:root {
  --thm-navy: #111d2d;
  --thm-text: #111827;
  --thm-muted: #5f6875;
  --thm-white: #ffffff;
  --thm-light: #f5f7f9;
  --thm-border: #e3e7ec;
  --thm-orange: #ff671d;
  --thm-orange-hover: #d94f0d;
  --thm-wide: 1280px;
  --thm-reading: 760px;
  --thm-radius: 4px;
  --thm-gutter: clamp(1rem, 3vw, 2.5rem);
  --thm-section: clamp(4rem, 8vw, 7.5rem);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
a, button, input, select, textarea { transition: color .18s ease, background-color .18s ease, border-color .18s ease, opacity .18s ease; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(255, 103, 29, .35);
  outline-offset: 3px;
}

.thm-main { min-height: 32vh; }
.thm-front-page { min-height: 42vh; }
.thm-section { padding-block: var(--thm-section); }
.thm-container-wide { width: min(100%, var(--thm-wide)); margin-inline: auto; }
.thm-container-reading { width: min(100%, var(--thm-reading)); margin-inline: auto; }
.thm-eyebrow { color: var(--thm-orange); font-size: .75rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }

.thm-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--thm-border);
  box-shadow: 0 1px 0 rgba(17, 29, 45, .02);
}
.admin-bar .thm-site-header { top: 32px; }
.thm-header-inner { min-height: 52px; }
.thm-wordmark { max-width: 8.5rem; font-size: .95rem; font-weight: 800; letter-spacing: .09em; line-height: 1.05; text-transform: uppercase; }
.thm-wordmark a { text-decoration: none; }
.thm-primary-nav { margin-inline: auto; }
.thm-primary-nav a { text-decoration: none; }
.thm-header-actions { gap: .8rem; }
.thm-whatsapp-reserved { color: var(--thm-muted); font-size: .8125rem; margin: 0; }

.wp-block-button.thm-button-primary .wp-block-button__link,
.thm-button-primary .wp-element-button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--thm-orange);
  border: 1px solid var(--thm-orange);
  color: var(--thm-white);
  text-decoration: none;
}
.wp-block-button.thm-button-primary .wp-block-button__link:hover { background: var(--thm-orange-hover); border-color: var(--thm-orange-hover); }
.wp-block-button.is-style-outline .wp-block-button__link { min-height: 44px; border-color: var(--thm-navy); color: var(--thm-navy); }

.thm-card { height: 100%; border: 1px solid var(--thm-border); border-radius: var(--thm-radius); overflow: hidden; background: var(--thm-white); }
.thm-card > :not(figure) { margin-inline: 1.25rem; }
.thm-card > :last-child { margin-bottom: 1.25rem; }
.thm-product-card img { aspect-ratio: 4 / 3; object-fit: cover; }
.thm-project-card img { aspect-ratio: 16 / 9; object-fit: cover; }
.thm-resource-card img { aspect-ratio: 3 / 2; object-fit: cover; }
.thm-hero-media img, .thm-hero-media .wp-block-cover__image-background { aspect-ratio: 16 / 7; object-fit: cover; }
.thm-factory-media img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }

.thm-site-footer { margin-block-start: var(--thm-section); padding-block: clamp(3rem, 6vw, 5rem) 1.25rem; }
.thm-site-footer h3, .thm-site-footer h4 { color: var(--thm-white); }
.thm-site-footer a { color: rgba(255,255,255,.82); text-decoration: none; }
.thm-site-footer a:hover { color: var(--thm-white); }
.thm-site-footer p { color: rgba(255,255,255,.72); font-size: .875rem; }
.thm-footer-grid { gap: clamp(2rem, 5vw, 5rem); }
.thm-footer-bottom { border-top: 1px solid rgba(255,255,255,.16); margin-top: 2.5rem; padding-top: 1.25rem; }
.thm-contact-reserved { opacity: .72; }

.forminator-ui.forminator-custom-form {
  --thm-form-border: var(--thm-border);
  color: var(--thm-text);
  font-family: inherit !important;
}
.forminator-ui.forminator-custom-form .forminator-label { color: var(--thm-navy) !important; font-weight: 650 !important; }
.forminator-ui.forminator-custom-form input,
.forminator-ui.forminator-custom-form select,
.forminator-ui.forminator-custom-form textarea {
  min-height: 48px !important;
  font-family: inherit !important;
  border: 1px solid var(--thm-form-border) !important;
  border-radius: var(--thm-radius) !important;
  background: var(--thm-white) !important;
  color: var(--thm-text) !important;
}
.forminator-ui.forminator-custom-form textarea { min-height: 150px !important; }
.forminator-ui.forminator-custom-form input:focus,
.forminator-ui.forminator-custom-form select:focus,
.forminator-ui.forminator-custom-form textarea:focus { border-color: var(--thm-orange) !important; box-shadow: 0 0 0 3px rgba(255,103,29,.14) !important; }
.forminator-ui.forminator-custom-form .forminator-error-message { color: #a72b17 !important; }
.forminator-ui.forminator-custom-form .forminator-button-submit {
  min-height: 48px !important;
  border-radius: var(--thm-radius) !important;
  background: var(--thm-orange) !important;
  color: var(--thm-white) !important;
  font-weight: 750 !important;
  font-family: inherit !important;
  letter-spacing: .04em !important;
  text-transform: uppercase;
}
.forminator-ui.forminator-custom-form .forminator-button-submit:hover { background: var(--thm-orange-hover) !important; }

@media (max-width: 1100px) {
  .thm-primary-nav { order: 3; margin-inline: 0; }
  .thm-whatsapp-reserved { display: none; }
}

@media (max-width: 900px) {
  .thm-primary-nav .wp-block-navigation__responsive-container-open { display: flex; }
  .thm-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}

@media (max-width: 782px) {
  .admin-bar .thm-site-header { top: 46px; }
  .thm-header-inner { min-height: 48px; gap: .65rem; }
  .thm-header-actions .wp-block-button__link {
    min-height: 40px;
    padding: .65rem .85rem;
    font-size: .68rem;
  }
  .thm-footer-grid { gap: 1.75rem; }
}

@media (max-width: 600px) {
  .thm-wordmark { max-width: 7rem; font-size: .82rem; }
  .thm-site-header { padding-inline: .25rem; }
  .thm-site-footer { margin-block-start: 4rem; }
  .thm-card > :not(figure) { margin-inline: 1rem; }
  .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

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