/* ==========================================================================
   TemplateMate home page
   ========================================================================== */

:root {
   --tm-yellow: #ffc20d;
   --tm-yellow-hover: #f2b400;
   --tm-gold: #e2a70f;
   --tm-yellow-soft: #fff1c7;
   --tm-num: #fde9ad;
   --tm-dark: #272523;
   --tm-darker: #1f1f1f;
   --tm-cream: #f6f5ee;
   --tm-text: #232220;
   --tm-muted: #5d5b57;
   --tm-line: #ecebe6;
   --tm-white: #ffffff;
   --tm-radius: 18px;
   --tm-radius-lg: 22px;
   --tm-font-head: "Outfit", "Segoe UI", Arial, sans-serif;
   --tm-font-body: "DM Sans", "Segoe UI", Arial, sans-serif;
}

/* Page using the TemplateMate template */
.tm-page { margin: 0; background: var(--tm-white); }
.tm-page #tm-main { display: block; }
html:has(.tm-page) { scroll-behavior: smooth; }

/* Every TM widget renders inside .tm-root */
.tm-root {
   color: var(--tm-text);
   font-family: var(--tm-font-body);
   font-size: 16px;
   line-height: 1.6;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

.tm-root,
.tm-root *,
.tm-root *::before,
.tm-root *::after { box-sizing: border-box; }

.tm-root img { display: block; max-width: 100%; height: auto; }
.tm-root a { color: inherit; text-decoration: none; box-shadow: none; }
.tm-root h1, .tm-root h2, .tm-root h3, .tm-root h4 { margin: 0; padding: 0; font-family: var(--tm-font-head); color: inherit; text-transform: none; }
.tm-root p { margin: 0; }
.tm-root ul { margin: 0; padding: 0; list-style: none; }

.tm-root[id],
.tm-root [id] { scroll-margin-top: 90px; }

/* Elementor containers holding TM widgets: no extra spacing */
.e-con:has(> .elementor-widget[class*="elementor-widget-tm-"]) { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.elementor-widget[class*="elementor-widget-tm-"] { width: 100%; }
.elementor-widget-tm-stats { position: relative; z-index: 2; }

.tm-container {
   width: 100%;
   max-width: 1328px;
   margin: 0 auto;
   padding: 0 24px;
}

/* ---------- Shared bits ---------- */

.tm-hl { color: var(--tm-yellow); }
.tm-hl-gold { color: var(--tm-gold); }

.tm-h2 {
   font-size: 44px;
   font-weight: 700;
   line-height: 1.16;
   letter-spacing: -0.02em;
}
.tm-h2--center { text-align: center; }

.tm-pill {
   display: inline-block;
   padding: 5px 14px;
   border-radius: 999px;
   background: var(--tm-yellow-soft);
   color: #6b5410;
   font-size: 12px;
   font-weight: 600;
   line-height: 1.5;
}
.tm-pill--dark {
   background: rgba(255, 255, 255, 0.08);
   color: var(--tm-yellow);
}

.tm-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 12px;
   min-height: 54px;
   padding: 6px 26px;
   border: 2px solid transparent;
   border-radius: 999px;
   font-family: var(--tm-font-body);
   font-size: 15px;
   font-weight: 700;
   line-height: 1.2;
   white-space: nowrap;
   cursor: pointer;
   transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.tm-btn:has(.tm-btn__badge) { padding-right: 7px; }
.tm-btn:hover { transform: translateY(-1px); }

.tm-btn__badge {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 38px;
   height: 38px;
   border-radius: 50%;
   background: var(--tm-yellow);
   color: var(--tm-dark);
   flex-shrink: 0;
}
.tm-btn__badge--dark { background: var(--tm-dark); color: var(--tm-yellow); }

.tm-btn--yellow { background: var(--tm-yellow); color: var(--tm-dark) !important; }
.tm-btn--yellow:hover { background: var(--tm-yellow-hover); }

.tm-btn--dark { background: var(--tm-dark); color: var(--tm-white) !important; }
.tm-btn--dark:hover { background: #000; }

.tm-btn--outline-light { border-color: rgba(255, 255, 255, 0.9); color: var(--tm-white) !important; }
.tm-btn--outline-light:hover { background: var(--tm-white); color: var(--tm-dark) !important; }

.tm-btn--outline-dark { border-color: var(--tm-dark); color: var(--tm-dark) !important; background: transparent; }
.tm-btn--outline-dark:hover { background: var(--tm-dark); color: var(--tm-white) !important; }

.tm-btn--sm { min-height: 42px; padding: 4px 20px; font-size: 13px; }

/* ---------- Top bar ---------- */

.tm-topbar {
   background: var(--tm-darker);
   color: rgba(255, 255, 255, 0.85);
   font-size: 12px;
   font-weight: 500;
}
.tm-topbar__inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   min-height: 36px;
}
.tm-topbar__left { display: flex; gap: 32px; }
.tm-topbar__right { color: var(--tm-yellow); font-weight: 700; }

/* ---------- Header ---------- */

.tm-header {
   position: relative;
   background: var(--tm-white);
   border-bottom: 1px solid var(--tm-line);
}

/* Sticky header: JS adds .tm-sticky to the Elementor container holding TM Header
   and sets --tm-topbar-h so only the top bar scrolls away. */
.tm-sticky {
   position: sticky !important;
   top: calc(var(--tm-admin-h, 0px) - var(--tm-topbar-h, 36px));
   z-index: 100;
}
.admin-bar { --tm-admin-h: 32px; }

.tm-header__inner {
   display: flex;
   align-items: center;
   gap: 32px;
   min-height: 84px;
}

.tm-logo img { height: 50px; width: auto; }

.tm-nav { margin-left: auto; margin-right: auto; }
.tm-nav ul { display: flex; align-items: center; gap: 30px; }
.tm-nav a {
   font-size: 15px;
   font-weight: 600;
   color: var(--tm-text);
   transition: color .2s ease;
}
.tm-nav ul a:hover,
.tm-nav ul a.is-current { color: var(--tm-gold); }
.tm-nav__cta-mobile { display: none !important; }

.tm-header__cta { min-height: 52px; font-size: 14px; }

.tm-burger {
   display: none;
   width: 46px;
   height: 46px;
   margin-left: auto;
   padding: 0;
   border: 0;
   border-radius: 12px;
   background: var(--tm-cream);
   cursor: pointer;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: 5px;
}
.tm-burger span {
   display: block;
   width: 20px;
   height: 2px;
   border-radius: 2px;
   background: var(--tm-dark);
   transition: transform .25s ease, opacity .25s ease;
}
.tm-nav-open .tm-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tm-nav-open .tm-burger span:nth-child(2) { opacity: 0; }
.tm-nav-open .tm-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */

.tm-hero {
   background: var(--tm-dark);
   color: var(--tm-white);
   padding: 94px 0 148px;
}
.tm-hero__grid {
   display: grid;
   grid-template-columns: minmax(0, 1fr) 500px;
   gap: 64px;
   align-items: end;
}
.tm-hero__title {
   margin-top: 26px !important;
   font-size: 60px;
   font-weight: 700;
   line-height: 1.14;
   letter-spacing: -0.025em;
   max-width: 720px;
}
.tm-hero__lead {
   margin-top: 26px !important;
   max-width: 560px;
   color: rgba(255, 255, 255, 0.82);
   font-size: 16px;
   line-height: 1.85;
}
.tm-hero__actions {
   display: flex;
   flex-wrap: wrap;
   gap: 14px;
   margin-top: 32px;
}

.tm-hero__image {
   border-radius: var(--tm-radius);
   overflow: hidden;
   aspect-ratio: 500 / 280;
}
.tm-hero__image img { width: 100%; height: 100%; object-fit: cover; }

.tm-hero__card {
   margin-top: 16px;
   padding: 20px 22px;
   border-radius: var(--tm-radius);
   background: var(--tm-white);
   color: var(--tm-text);
}
.tm-hero__card strong {
   display: block;
   font-family: var(--tm-font-head);
   font-size: 16px;
   font-weight: 600;
}
.tm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.tm-chips span {
   padding: 5px 13px;
   border-radius: 999px;
   background: var(--tm-yellow-soft);
   color: #4a3c10;
   font-size: 12px;
   font-weight: 600;
}

/* ---------- Stats ---------- */

.tm-stats { margin-top: -76px; position: relative; z-index: 2; }
.tm-stats--flat { margin-top: 0; padding-top: 60px; }
.tm-stats__grid {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 18px;
}
.tm-stat {
   min-height: 142px;
   padding: 24px 26px;
   border-radius: var(--tm-radius);
   background: var(--tm-white);
   border: 1px solid var(--tm-line);
   box-shadow: 0 10px 30px rgba(20, 20, 20, 0.05);
}
.tm-stat strong {
   display: block;
   font-family: var(--tm-font-head);
   font-size: 40px;
   font-weight: 700;
   line-height: 1.1;
   letter-spacing: -0.02em;
}
.tm-stat span {
   display: block;
   margin-top: 8px;
   max-width: 250px;
   color: var(--tm-muted);
   font-size: 13px;
   line-height: 1.5;
}
.tm-stat--yellow { background: var(--tm-yellow); border-color: var(--tm-yellow); }
.tm-stat--yellow span { color: var(--tm-dark); font-weight: 600; }

/* ---------- Why accuracy ---------- */

.tm-why { padding: 100px 0 120px; }
.tm-why__grid {
   display: grid;
   grid-template-columns: minmax(0, 1fr) 580px;
   gap: 60px;
   align-items: center;
}
.tm-why__content .tm-h2 { margin-top: 20px; max-width: 620px; }
.tm-why__content p {
   margin-top: 24px;
   color: var(--tm-muted);
   font-size: 15px;
   line-height: 1.95;
}
.tm-checklist { margin-top: 22px !important; display: grid; gap: 12px; }
.tm-checklist li {
   display: flex;
   align-items: center;
   gap: 12px;
   font-size: 14px;
   font-weight: 600;
}
.tm-check {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 22px;
   height: 22px;
   border-radius: 50%;
   background: var(--tm-yellow);
   color: var(--tm-dark);
   flex-shrink: 0;
}

.tm-why__gallery {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 16px;
   height: 440px;
}
.tm-why__tall,
.tm-why__small {
   border-radius: var(--tm-radius);
   overflow: hidden;
   min-height: 0;
}
.tm-why__tall img,
.tm-why__small img { width: 100%; height: 100%; object-fit: cover; }
.tm-why__stack {
   display: grid;
   grid-template-rows: 1fr 1fr;
   gap: 16px;
   min-height: 0;
}
.tm-why__dark {
   display: flex;
   flex-direction: column;
   justify-content: space-between;
   align-items: flex-start;
   padding: 26px 24px;
   border-radius: var(--tm-radius);
   background: var(--tm-darker);
   color: var(--tm-white);
}
.tm-why__dark strong {
   font-family: var(--tm-font-head);
   font-size: 20px;
   font-weight: 700;
   line-height: 1.3;
}

/* ---------- Services ---------- */

.tm-services {
   padding: 104px 0 100px;
   background: var(--tm-cream);
}
.tm-services__head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 24px;
}
.tm-services__head .tm-h2 { margin-top: 18px; }
.tm-services__head .tm-btn { min-height: 52px; font-size: 14px; }

.tm-services__grid {
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   gap: 18px;
   margin-top: 40px;
}
.tm-service {
   display: flex;
   flex-direction: column;
   min-height: 366px;
   padding: 26px 26px 30px;
   border-radius: var(--tm-radius);
   background: var(--tm-white);
   transition: transform .25s ease, box-shadow .25s ease;
}
.tm-service:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(20, 20, 20, 0.07); }
.tm-service__top { display: flex; align-items: flex-start; justify-content: space-between; }
.tm-service__icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 50px;
   height: 50px;
   border-radius: 12px;
   background: var(--tm-yellow-soft);
   color: var(--tm-dark);
}
.tm-service__icon i { font-size: 20px; }
.tm-service__icon svg { width: 20px; height: 20px; }
.tm-service__num {
   font-family: var(--tm-font-head);
   font-size: 30px;
   font-weight: 600;
   line-height: 1;
   color: var(--tm-num);
}
.tm-service h3 {
   margin-top: 22px;
   font-size: 17px;
   font-weight: 600;
   line-height: 1.35;
}
.tm-service p {
   margin-top: 12px;
   color: var(--tm-muted);
   font-size: 13.5px;
   line-height: 1.75;
}
.tm-service__link {
   margin-top: auto;
   padding-top: 24px;
   font-size: 13px;
   font-weight: 600;
   text-decoration: underline !important;
   text-underline-offset: 3px;
   align-self: flex-start;
}
.tm-service__link:hover { color: var(--tm-gold); }

/* ---------- Steps ---------- */

.tm-steps { padding: 120px 0 128px; }
.tm-steps__grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 18px;
   margin-top: 50px;
}
.tm-step {
   min-height: 212px;
   padding: 30px 30px 32px;
   border: 1px solid var(--tm-line);
   border-radius: var(--tm-radius);
   background: var(--tm-white);
}
.tm-step__num {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 44px;
   height: 44px;
   border-radius: 50%;
   background: var(--tm-yellow);
   font-family: var(--tm-font-head);
   font-size: 16px;
   font-weight: 700;
}
.tm-step h3 {
   margin-top: 20px;
   font-size: 18px;
   font-weight: 700;
}
.tm-step p {
   margin-top: 12px;
   max-width: 340px;
   color: var(--tm-muted);
   font-size: 13.5px;
   line-height: 1.75;
}

/* ---------- Contact ---------- */

.tm-contact {
   padding: 80px 0 100px;
   background: var(--tm-dark);
   color: var(--tm-white);
}
.tm-contact__info {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 18px;
}
.tm-contact__info > div {
   padding: 20px 22px;
   border: 1px solid rgba(255, 255, 255, 0.1);
   border-radius: var(--tm-radius);
   color: rgba(255, 255, 255, 0.85);
   font-size: 14px;
   line-height: 1.5;
}
.tm-contact__info a:hover { color: var(--tm-yellow); }
.tm-contact__info span {
   display: block;
   margin-bottom: 2px;
   color: var(--tm-yellow);
   font-weight: 700;
}

.tm-contact__grid {
   display: grid;
   grid-template-columns: 520px minmax(0, 1fr);
   gap: 40px;
   align-items: start;
   margin-top: 46px;
}
.tm-contact__intro .tm-h2 { font-size: 42px; max-width: 470px; }
.tm-contact__intro p {
   margin-top: 18px;
   color: rgba(255, 255, 255, 0.82);
   font-size: 15px;
   line-height: 1.8;
}
.tm-contact__image {
   margin-top: 24px;
   border-radius: var(--tm-radius);
   overflow: hidden;
   aspect-ratio: 520 / 200;
}
.tm-contact__image img { width: 100%; height: 100%; object-fit: cover; }

.tm-form-card {
   padding: 32px 30px;
   border-radius: var(--tm-radius-lg);
   background: var(--tm-white);
   color: var(--tm-text);
}

/* Contact Form 7 */
.tm-form-card .wpcf7 form { margin: 0; }
.tm-form-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 18px 16px;
}
.tm-field { display: block; }
.tm-field--full { grid-column: 1 / -1; }
.tm-field > span:first-child {
   display: block;
   margin-bottom: 8px;
   font-size: 12px;
   font-weight: 700;
   color: var(--tm-text);
}
.tm-field .wpcf7-form-control-wrap { display: block; }
.tm-form-card input[type="text"],
.tm-form-card input[type="email"],
.tm-form-card input[type="tel"],
.tm-form-card select,
.tm-form-card textarea {
   display: block;
   width: 100%;
   height: 48px;
   padding: 10px 14px;
   border: 1px solid #e3e2dc;
   border-radius: 10px;
   background: var(--tm-white);
   color: var(--tm-text);
   font-family: var(--tm-font-body);
   font-size: 14px;
   font-weight: 500;
   outline: none;
   box-shadow: none;
   transition: border-color .2s ease, box-shadow .2s ease;
}
.tm-form-card select {
   appearance: none;
   -webkit-appearance: none;
   padding-right: 40px;
   font-weight: 600;
   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='%23272523' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right 14px center;
}
.tm-form-card textarea { height: 76px; min-height: 76px; resize: vertical; }
.tm-form-card input:focus,
.tm-form-card select:focus,
.tm-form-card textarea:focus {
   border-color: var(--tm-yellow);
   box-shadow: 0 0 0 3px rgba(255, 194, 13, 0.22);
}
.tm-form-submit { margin-top: 18px; position: relative; }
.tm-form-card .wpcf7-submit {
   display: block;
   width: 100%;
   height: 54px;
   border: 0;
   border-radius: 999px;
   background: var(--tm-yellow);
   color: var(--tm-dark);
   font-family: var(--tm-font-body);
   font-size: 15px;
   font-weight: 700;
   cursor: pointer;
   transition: background-color .2s ease;
}
.tm-form-card .wpcf7-submit:hover { background: var(--tm-yellow-hover); }
.tm-form-card .wpcf7-spinner { position: absolute; right: 18px; top: 15px; margin: 0; }
.tm-form-card .wpcf7-not-valid-tip { margin-top: 4px; font-size: 12px; }
.tm-form-card .wpcf7 form .wpcf7-response-output {
   margin: 16px 0 0;
   padding: 10px 14px;
   border-radius: 10px;
   font-size: 13px;
}

/* ---------- Sourcing / technology ---------- */

.tm-split { padding: 100px 0; }
.tm-split__grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 22px;
}
.tm-split__card {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   min-height: 374px;
   padding: 40px 40px 44px;
   border-radius: var(--tm-radius-lg);
}
.tm-split__card--yellow { background: var(--tm-yellow); color: var(--tm-dark); }
.tm-split__card--cream { background: var(--tm-cream); }
.tm-eyebrow { font-size: 12px; font-weight: 600; }
.tm-eyebrow--gold { color: #a07a0c; }
.tm-split__card h2 {
   margin-top: 16px;
   max-width: 470px;
   font-size: 30px;
   font-weight: 700;
   line-height: 1.25;
   letter-spacing: -0.01em;
}
.tm-split__card p {
   margin-top: 16px;
   max-width: 560px;
   font-size: 15px;
   line-height: 1.85;
}
.tm-split__card--cream p { color: var(--tm-muted); }
.tm-split__card .tm-btn { margin-top: 28px; min-height: 48px; font-size: 14px; }
.tm-split__card--cream .tm-btn { margin-top: auto; }

/* ---------- Footer ---------- */

.tm-footer {
   padding: 76px 0 40px;
   background: var(--tm-darker);
   color: rgba(255, 255, 255, 0.78);
   font-size: 14px;
}
.tm-footer__grid {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 32px;
   padding-bottom: 40px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.tm-footer__logo img { height: 52px; width: auto; }
.tm-footer__brand p { margin-top: 18px; max-width: 270px; line-height: 1.75; }
.tm-footer h4 {
   margin-bottom: 14px;
   color: var(--tm-white);
   font-family: var(--tm-font-body);
   font-size: 14px;
   font-weight: 700;
}
.tm-footer__col li { line-height: 1.95; }
.tm-footer__col a { transition: color .2s ease; }
.tm-footer__col a:hover { color: var(--tm-yellow); }

.tm-footer__legal { padding-top: 26px; font-size: 12px; line-height: 1.75; color: rgba(255, 255, 255, 0.62); }
.tm-footer__legal p + p { margin-top: 10px; }
.tm-footer__bottom { display: flex; flex-wrap: wrap; gap: 26px; }
.tm-footer__bottom a { text-decoration: underline !important; text-underline-offset: 3px; }
.tm-footer__bottom a:hover { color: var(--tm-yellow); }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1240px) {
   .tm-nav ul { gap: 22px; }
   .tm-nav a { font-size: 14px; }
   .tm-hero__grid { grid-template-columns: minmax(0, 1fr) 440px; gap: 44px; }
   .tm-hero__title { font-size: 52px; }
   .tm-why__grid { grid-template-columns: minmax(0, 1fr) 500px; gap: 44px; }
   .tm-services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
   .tm-contact__grid { grid-template-columns: 440px minmax(0, 1fr); }
}

@media (max-width: 1200px) {
   .tm-burger { display: inline-flex; }
   .tm-header__cta { display: none; }
   .tm-nav {
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      margin: 0;
      padding: 12px 24px 24px;
      background: var(--tm-white);
      border-bottom: 1px solid var(--tm-line);
      box-shadow: 0 20px 30px rgba(0, 0, 0, 0.08);
      display: none;
   }
   .tm-nav-open .tm-nav { display: block; }
   .tm-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
   .tm-nav ul a { display: block; padding: 13px 0; border-bottom: 1px solid var(--tm-line); font-size: 16px; }
   .tm-nav__cta-mobile { display: inline-flex !important; margin-top: 18px; }
}

@media (max-width: 991px) {
   .tm-h2 { font-size: 36px; }
   .tm-hero { padding: 64px 0 120px; }
   .tm-hero__grid { grid-template-columns: 1fr; gap: 40px; }
   .tm-hero__title { font-size: 46px; }
   .tm-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .tm-why { padding: 80px 0; }
   .tm-why__grid { grid-template-columns: 1fr; }
   .tm-services { padding: 80px 0; }
   .tm-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .tm-steps { padding: 80px 0; }
   .tm-steps__grid { grid-template-columns: 1fr; }
   .tm-contact__info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .tm-contact__grid { grid-template-columns: 1fr; }
   .tm-contact__intro .tm-h2 { font-size: 36px; }
   .tm-split { padding: 80px 0; }
   .tm-split__grid { grid-template-columns: 1fr; }
   .tm-split__card { min-height: 0; }
   .tm-split__card--cream .tm-btn { margin-top: 28px; }
   .tm-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 782px) {
   .admin-bar { --tm-admin-h: 46px; }
}

@media (max-width: 640px) {
   .tm-container { padding: 0 16px; }
   .tm-topbar { font-size: 11px; }
   .tm-topbar__inner { flex-wrap: wrap; justify-content: center; gap: 2px 14px; padding: 7px 0; }
   .tm-topbar__left { gap: 14px; }
   .tm-header__inner { min-height: 72px; }
   .tm-logo img { height: 40px; }
   .tm-h2 { font-size: 30px; }
   .tm-hero__title { font-size: 36px; }
   .tm-hero__actions .tm-btn { width: 100%; }
   .tm-stats__grid { grid-template-columns: 1fr; gap: 12px; }
   .tm-stat { min-height: 0; }
   .tm-stat strong { font-size: 34px; }
   .tm-why__gallery { grid-template-columns: 1fr; height: auto; }
   .tm-why__tall { aspect-ratio: 4 / 5; }
   .tm-why__stack { grid-template-rows: auto auto; }
   .tm-why__small { aspect-ratio: 4 / 3; }
   .tm-why__dark { min-height: 180px; }
   .tm-services__head { flex-direction: column; align-items: flex-start; }
   .tm-services__grid { grid-template-columns: 1fr; }
   .tm-service { min-height: 0; }
   .tm-contact__info { grid-template-columns: 1fr; gap: 12px; }
   .tm-contact__intro .tm-h2 { font-size: 30px; }
   .tm-form-card { padding: 24px 18px; }
   .tm-form-grid { grid-template-columns: 1fr; }
   .tm-split__card { padding: 30px 22px 32px; }
   .tm-split__card h2 { font-size: 26px; }
   .tm-split__card .tm-btn { white-space: normal; text-align: center; }
   .tm-footer__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Inner pages: shared section options
   ========================================================================== */

.tm-bg--white { background: var(--tm-white); }
.tm-bg--cream { background: var(--tm-cream); }
.tm-bg--dark { background: var(--tm-dark); color: var(--tm-white); }

.tm-space--normal { padding: 100px 0; }
.tm-space--compact { padding: 60px 0; }
.tm-space--top-none { padding: 0 0 100px; }

.tm-section-head { max-width: 760px; margin-bottom: 40px; }
.tm-section-head .tm-h2 { margin-top: 18px; }
.tm-section-head .tm-pill + .tm-h2 { margin-top: 18px; }
.tm-section-head > .tm-h2:first-child { margin-top: 0; }
.tm-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.tm-section-head__intro { margin-top: 16px !important; color: var(--tm-muted); font-size: 16px; line-height: 1.85; }
.tm-bg--dark .tm-section-head__intro { color: rgba(255, 255, 255, 0.8); }

/* Rich text inside sections */
.tm-prose { color: var(--tm-muted); font-size: 16px; line-height: 1.9; }
.tm-prose > * + * { margin-top: 18px !important; }
.tm-prose p { margin: 0; }
.tm-prose h2, .tm-prose h3, .tm-prose h4 { color: var(--tm-text); line-height: 1.3; margin-top: 34px !important; }
.tm-prose h2 { font-size: 30px; font-weight: 700; }
.tm-prose h3 { font-size: 22px; font-weight: 700; }
.tm-prose h4 { font-size: 18px; font-weight: 700; }
.tm-prose strong { color: var(--tm-text); font-weight: 700; }
.tm-prose a { color: var(--tm-text); text-decoration: underline; text-decoration-color: var(--tm-yellow); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.tm-prose a:hover { color: var(--tm-gold); }
.tm-root .tm-prose ul,
.tm-root .tm-prose ol { padding-left: 0; display: grid; gap: 10px; }
.tm-root .tm-prose ul li { position: relative; padding-left: 26px; list-style: none; }
.tm-root .tm-prose ul li::before {
   content: "";
   position: absolute;
   left: 4px;
   top: 0.72em;
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: var(--tm-yellow);
}
.tm-root .tm-prose ol { counter-reset: tm-ol; }
.tm-root .tm-prose ol li { position: relative; padding-left: 38px; list-style: none; counter-increment: tm-ol; }
.tm-root .tm-prose ol li::before {
   content: counter(tm-ol);
   position: absolute;
   left: 0;
   top: 2px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 26px;
   height: 26px;
   border-radius: 50%;
   background: var(--tm-yellow);
   color: var(--tm-dark);
   font-family: var(--tm-font-head);
   font-size: 13px;
   font-weight: 700;
   line-height: 1;
}
.tm-bg--dark .tm-prose,
.tm-bg--dark .tm-prose strong,
.tm-bg--dark .tm-prose h2,
.tm-bg--dark .tm-prose h3 { color: rgba(255, 255, 255, 0.86); }

/* ---------- Dropdown menu ---------- */

.tm-nav li { position: relative; }
.tm-nav .tm-has-sub { display: flex; align-items: center; gap: 4px; }
.tm-sub-toggle {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 22px;
   height: 22px;
   padding: 0;
   border: 0;
   background: transparent;
   color: var(--tm-text);
   cursor: pointer;
   transition: transform .2s ease;
}
.tm-root .tm-nav .tm-sub {
   position: absolute;
   top: calc(100% + 14px);
   left: -18px;
   z-index: 60;
   display: block;
   min-width: 270px;
   padding: 10px;
   border: 1px solid var(--tm-line);
   border-radius: 16px;
   background: var(--tm-white);
   box-shadow: 0 22px 44px rgba(20, 20, 20, 0.12);
   opacity: 0;
   visibility: hidden;
   transform: translateY(6px);
   transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.tm-root .tm-nav .tm-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.tm-nav .tm-has-sub:hover > .tm-sub,
.tm-nav .tm-has-sub:focus-within > .tm-sub,
.tm-nav .tm-has-sub.is-open > .tm-sub { opacity: 1; visibility: visible; transform: translateY(0); }
.tm-nav .tm-has-sub:hover > .tm-sub-toggle,
.tm-nav .tm-has-sub.is-open > .tm-sub-toggle { transform: rotate(180deg); }
.tm-nav .tm-sub a {
   display: block;
   padding: 10px 14px;
   border-radius: 10px;
   font-size: 14px;
   white-space: nowrap;
}
.tm-nav .tm-sub a:hover,
.tm-nav .tm-sub a.is-current { background: var(--tm-yellow-soft); color: var(--tm-text); }

/* ---------- Page hero ---------- */

.tm-page-hero {
   padding: 70px 0 90px;
   background: var(--tm-dark);
   color: var(--tm-white);
}
.tm-page-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; align-items: center; }
.tm-page-hero--image .tm-page-hero__grid { grid-template-columns: minmax(0, 1fr) 460px; }
.tm-page-hero__content { max-width: 860px; }
.tm-breadcrumb {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin-bottom: 22px;
   color: rgba(255, 255, 255, 0.6);
   font-size: 13px;
   font-weight: 500;
}
.tm-breadcrumb a:hover { color: var(--tm-yellow); }
.tm-breadcrumb [aria-current] { color: rgba(255, 255, 255, 0.9); }
.tm-page-hero__title {
   margin-top: 22px !important;
   font-size: 54px;
   font-weight: 700;
   line-height: 1.14;
   letter-spacing: -0.025em;
}
.tm-breadcrumb + .tm-page-hero__title { margin-top: 0 !important; }
.tm-page-hero__lead {
   margin-top: 22px !important;
   max-width: 700px;
   color: rgba(255, 255, 255, 0.82);
   font-size: 17px;
   line-height: 1.85;
}
.tm-page-hero__meta { margin-top: 14px !important; color: var(--tm-yellow); font-size: 14px; font-weight: 600; }
.tm-page-hero__image { border-radius: var(--tm-radius); overflow: hidden; aspect-ratio: 460 / 320; }
.tm-page-hero__image img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Feature section ---------- */

.tm-feature__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 60px; align-items: start; }
.tm-feature:not(.tm-feature--side) .tm-feature__content { max-width: 860px; }
.tm-feature--side .tm-feature__grid { grid-template-columns: minmax(0, 1fr) 480px; }
.tm-feature--side-left .tm-feature__grid { grid-template-columns: 480px minmax(0, 1fr); }
.tm-feature--side-left .tm-feature__content { order: 2; }
.tm-feature__content .tm-h2 { margin-top: 18px; }
.tm-feature__content > .tm-h2:first-child { margin-top: 0; }
.tm-feature__content .tm-prose { margin-top: 22px; }
.tm-feature__list-title { margin-top: 28px !important; font-size: 18px; font-weight: 700; }
.tm-checklist--rich { margin-top: 18px !important; }
.tm-checklist--rich li { align-items: flex-start; font-weight: 500; line-height: 1.7; color: var(--tm-text); }
.tm-checklist--rich .tm-check { margin-top: 2px; }
.tm-bg--dark .tm-checklist--rich li { color: rgba(255, 255, 255, 0.88); }

.tm-receive {
   margin-top: 28px;
   padding: 20px 24px;
   border-left: 4px solid var(--tm-yellow);
   border-radius: 0 14px 14px 0;
   background: var(--tm-yellow-soft);
   color: var(--tm-text);
}
.tm-receive strong { display: block; font-family: var(--tm-font-head); font-size: 16px; font-weight: 700; }
.tm-receive p { margin-top: 6px !important; font-size: 15px; line-height: 1.75; }
.tm-feature__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }

.tm-feature__image { border-radius: var(--tm-radius); overflow: hidden; position: sticky; top: 120px; }
.tm-feature__image img { width: 100%; height: auto; aspect-ratio: 480 / 400; object-fit: cover; }
.tm-feature__card {
   position: sticky;
   top: 120px;
   padding: 30px 30px 32px;
   border-radius: var(--tm-radius);
   background: var(--tm-darker);
   color: var(--tm-white);
}
.tm-feature__card strong { display: block; font-family: var(--tm-font-head); font-size: 22px; font-weight: 700; line-height: 1.3; }
.tm-feature__card .tm-prose { margin-top: 14px; color: rgba(255, 255, 255, 0.8); font-size: 15px; }
.tm-feature__card .tm-prose strong { display: inline; font-family: inherit; font-size: inherit; color: var(--tm-white); }
.tm-bg--dark .tm-feature__card { background: rgba(255, 255, 255, 0.06); }

/* ---------- Card grid ---------- */

.tm-cards__grid { display: grid; gap: 18px; }
.tm-cols-1 { grid-template-columns: minmax(0, 1fr); }
.tm-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tm-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tm-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tm-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tm-card {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   padding: 30px 30px 32px;
   border: 1px solid var(--tm-line);
   border-radius: var(--tm-radius);
   background: var(--tm-white);
}
.tm-bg--cream .tm-card { border-color: transparent; }
.tm-bg--dark .tm-card { border-color: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.03); }
.tm-card .tm-service__num { margin-bottom: 4px; }
.tm-card h3 { margin-top: 20px !important; font-size: 19px; font-weight: 700; line-height: 1.35; }
.tm-card > h3:first-child { margin-top: 0 !important; }
.tm-card p { margin-top: 12px !important; color: var(--tm-muted); font-size: 14.5px; line-height: 1.8; }
.tm-bg--dark .tm-card p { color: rgba(255, 255, 255, 0.75); }
.tm-card .tm-service__link { padding-top: 18px; }
.tm-cards__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 36px; }
.tm-cards__bottom p { max-width: 760px; color: var(--tm-muted); font-size: 14px; line-height: 1.75; }
.tm-bg--dark .tm-cards__bottom p { color: rgba(255, 255, 255, 0.7); }

/* ---------- Table ---------- */

.tm-table-section__inner { max-width: 980px; }
.tm-table-wrap {
   overflow-x: auto;
   border: 1px solid var(--tm-line);
   border-radius: var(--tm-radius);
   background: var(--tm-white);
}
.tm-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.tm-table th,
.tm-table td { padding: 16px 24px; text-align: left; border-bottom: 1px solid var(--tm-line); vertical-align: top; }
.tm-table thead th {
   background: var(--tm-dark);
   color: var(--tm-white);
   font-family: var(--tm-font-head);
   font-size: 15px;
   font-weight: 600;
}
.tm-table tbody th { width: 55%; font-weight: 600; color: var(--tm-text); }
.tm-table tbody td { color: var(--tm-text); font-weight: 600; }
.tm-table tbody tr:nth-child(even) { background: #fbfaf6; }
.tm-table tbody tr:last-child th,
.tm-table tbody tr:last-child td { border-bottom: 0; }
.tm-table-note { margin-top: 18px !important; color: var(--tm-muted); font-size: 14px; line-height: 1.75; }

/* ---------- FAQ ---------- */

.tm-faq__inner { max-width: 980px; }
.tm-faq__group { margin: 40px 0 16px !important; font-size: 22px; font-weight: 700; }
.tm-faq__inner > .tm-faq__group:first-child,
.tm-section-head + .tm-faq__group { margin-top: 0 !important; }
.tm-faq__list { display: grid; gap: 12px; }
.tm-faq__item {
   border: 1px solid var(--tm-line);
   border-radius: 16px;
   background: var(--tm-white);
   transition: border-color .2s ease, box-shadow .2s ease;
}
.tm-faq__item[open] { border-color: var(--tm-yellow); box-shadow: 0 12px 30px rgba(20, 20, 20, 0.05); }
.tm-faq__item summary {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   padding: 20px 24px;
   font-family: var(--tm-font-head);
   font-size: 17px;
   font-weight: 600;
   cursor: pointer;
   list-style: none;
}
.tm-faq__item summary::-webkit-details-marker { display: none; }
.tm-faq__icon {
   position: relative;
   flex-shrink: 0;
   width: 30px;
   height: 30px;
   border-radius: 50%;
   background: var(--tm-yellow-soft);
}
.tm-faq__icon::before,
.tm-faq__icon::after {
   content: "";
   position: absolute;
   left: 50%;
   top: 50%;
   width: 12px;
   height: 2px;
   margin: -1px 0 0 -6px;
   border-radius: 2px;
   background: var(--tm-dark);
   transition: transform .2s ease;
}
.tm-faq__icon::after { transform: rotate(90deg); }
.tm-faq__item[open] .tm-faq__icon { background: var(--tm-yellow); }
.tm-faq__item[open] .tm-faq__icon::after { transform: rotate(0deg); }
.tm-faq__answer { padding: 0 24px 22px; font-size: 15px; }

/* ---------- Call to action ---------- */

.tm-cta__card {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: 30px 40px;
   padding: 48px 50px;
   border-radius: var(--tm-radius-lg);
}
.tm-cta__card--yellow { background: var(--tm-yellow); color: var(--tm-dark); }
.tm-cta__card--dark { background: var(--tm-dark); color: var(--tm-white); }
.tm-cta__text { max-width: 720px; }
.tm-cta__text .tm-h2 { font-size: 38px; }
.tm-cta__hl { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.tm-cta__text p { margin-top: 14px !important; font-size: 16px; line-height: 1.8; }
.tm-cta__card--dark .tm-cta__text p { color: rgba(255, 255, 255, 0.8); }
.tm-cta__text .tm-cta__small { margin-top: 10px !important; font-size: 13px; opacity: 0.8; }
.tm-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- Rich text ---------- */

.tm-richtext--narrow .tm-richtext__inner { max-width: 820px; }
.tm-richtext__inner > .tm-h2 + .tm-prose { margin-top: 22px; }
.tm-richtext--boxed .tm-richtext__inner {
   padding: 36px 40px;
   border-radius: var(--tm-radius);
   background: var(--tm-cream);
}
.tm-bg--cream.tm-richtext--boxed .tm-richtext__inner { background: var(--tm-white); }
.tm-richtext--boxed .tm-prose { font-size: 14.5px; }

/* ---------- Blog grid ---------- */

.tm-blog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.tm-post-card {
   display: flex;
   flex-direction: column;
   overflow: hidden;
   border: 1px solid var(--tm-line);
   border-radius: var(--tm-radius);
   background: var(--tm-white);
   transition: transform .25s ease, box-shadow .25s ease;
}
.tm-post-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(20, 20, 20, 0.07); }
.tm-post-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--tm-dark); }
.tm-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.tm-post-card__placeholder {
   display: flex;
   align-items: center;
   justify-content: center;
   height: 100%;
   padding: 0 18%;
   background:
      radial-gradient(circle at 85% 15%, rgba(255, 194, 13, 0.28), transparent 45%),
      var(--tm-dark);
}
.tm-root .tm-post-card__placeholder img { width: 100%; height: auto; object-fit: contain; opacity: 0.9; }
.tm-post-card__body { display: flex; flex-direction: column; flex: 1; padding: 24px 26px 28px; }
.tm-post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--tm-muted); font-size: 13px; }
.tm-post-card h3 { margin-top: 14px !important; font-size: 20px; font-weight: 700; line-height: 1.35; }
.tm-post-card h3 a:hover { color: var(--tm-gold); }
.tm-post-card p { margin-top: 10px !important; color: var(--tm-muted); font-size: 14.5px; line-height: 1.75; }
.tm-post-card .tm-service__link { margin-top: auto; padding-top: 18px; }
.tm-blog__empty { color: var(--tm-muted); }

/* ---------- Mobile quote bar ---------- */

.tm-mobile-bar { display: none; }

@media (max-width: 1240px) {
   .tm-cols-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
   .tm-feature--side .tm-feature__grid { grid-template-columns: minmax(0, 1fr) 400px; }
   .tm-feature--side-left .tm-feature__grid { grid-template-columns: 400px minmax(0, 1fr); }
}

@media (max-width: 1200px) {
   .tm-nav .tm-has-sub { flex-wrap: wrap; gap: 0; }
   .tm-nav .tm-has-sub > a { flex: 1; }
   .tm-sub-toggle { width: 44px; height: 48px; border-bottom: 1px solid var(--tm-line); }
   .tm-root .tm-nav .tm-sub {
      position: static;
      flex-basis: 100%;
      min-width: 0;
      padding: 4px 0 8px 14px;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      opacity: 1;
      visibility: visible;
      transform: none;
      display: none;
   }
   .tm-root .tm-nav .tm-sub::before { display: none; }
   .tm-nav .tm-has-sub:hover > .tm-sub,
   .tm-nav .tm-has-sub:focus-within > .tm-sub { display: none; }
   .tm-nav .tm-has-sub.is-open > .tm-sub { display: block; }
   .tm-nav .tm-has-sub:hover > .tm-sub-toggle { transform: none; }
   .tm-nav .tm-has-sub.is-open > .tm-sub-toggle { transform: rotate(180deg); }
   .tm-nav .tm-sub a { padding: 11px 0; border-radius: 0; font-size: 15px; white-space: normal; }
   .tm-nav .tm-sub a:hover { background: transparent; }
}

@media (max-width: 991px) {
   .tm-space--normal { padding: 76px 0; }
   .tm-space--top-none { padding: 0 0 76px; }
   .tm-page-hero { padding: 56px 0 70px; }
   .tm-page-hero--image .tm-page-hero__grid { grid-template-columns: 1fr; gap: 36px; }
   .tm-page-hero__title { font-size: 42px; }
   .tm-feature--side .tm-feature__grid,
   .tm-feature--side-left .tm-feature__grid { grid-template-columns: 1fr; gap: 36px; }
   .tm-feature--side-left .tm-feature__content { order: 0; }
   .tm-feature__image,
   .tm-feature__card { position: static; }
   .tm-cols-3,
   .tm-cols-4,
   .tm-cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .tm-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .tm-cta__card { padding: 40px 34px; }
   .tm-cta__text .tm-h2 { font-size: 32px; }
}

@media (max-width: 767px) {
   .tm-mobile-bar {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 200;
      display: flex;
      gap: 10px;
      padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
      background: var(--tm-white);
      border-top: 1px solid var(--tm-line);
      box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.08);
   }
   .tm-mobile-bar .tm-btn { flex: 1; min-height: 48px; padding: 6px 16px; }
   body:has(.tm-mobile-bar) { padding-bottom: 72px; }
}

@media (max-width: 640px) {
   .tm-space--normal { padding: 60px 0; }
   .tm-space--compact { padding: 44px 0; }
   .tm-space--top-none { padding: 0 0 60px; }
   .tm-page-hero__title { font-size: 34px; }
   .tm-page-hero__lead { font-size: 16px; }
   .tm-cols-2,
   .tm-cols-3,
   .tm-cols-4,
   .tm-cols-5,
   .tm-blog__grid { grid-template-columns: 1fr; }
   .tm-card { padding: 24px 22px 26px; }
   .tm-table th,
   .tm-table td { padding: 13px 16px; font-size: 14px; }
   .tm-faq__item summary { padding: 18px; font-size: 16px; }
   .tm-faq__answer { padding: 0 18px 18px; }
   .tm-cta__card { padding: 32px 22px; }
   .tm-cta__text .tm-h2 { font-size: 28px; }
   .tm-cta__actions .tm-btn { width: 100%; }
   .tm-richtext--boxed .tm-richtext__inner { padding: 26px 22px; }
   .tm-prose { font-size: 15px; }
}

/* ---------- Full quote form: choices, uploads, consent ---------- */

.tm-form-card .tm-field__hint { display: block; margin-top: 6px; color: var(--tm-muted); font-size: 12px; font-weight: 500; }
.tm-form-card .wpcf7-checkbox,
.tm-form-card .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.tm-form-card .wpcf7-list-item { margin: 0; }
.tm-form-card .wpcf7-list-item label {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 9px 14px;
   border: 1px solid #e3e2dc;
   border-radius: 999px;
   font-size: 13px;
   font-weight: 600;
   cursor: pointer;
   transition: border-color .2s ease, background-color .2s ease;
}
.tm-form-card .wpcf7-list-item label:hover { border-color: var(--tm-yellow); }
.tm-form-card .wpcf7-list-item label:has(input:checked) { border-color: var(--tm-yellow); background: var(--tm-yellow-soft); }
.tm-form-card .wpcf7-list-item input { width: 16px; height: 16px; margin: 0; accent-color: var(--tm-dark); }
.tm-form-card .tm-uploads { display: grid; gap: 8px; }
.tm-form-card input[type="file"] {
   display: block;
   width: 100%;
   padding: 9px 12px;
   border: 1px dashed #d6d4cb;
   border-radius: 10px;
   background: #fbfaf6;
   font-family: var(--tm-font-body);
   font-size: 13px;
   color: var(--tm-muted);
}
.tm-form-card input[type="file"]::file-selector-button {
   margin-right: 12px;
   padding: 7px 14px;
   border: 0;
   border-radius: 999px;
   background: var(--tm-dark);
   color: var(--tm-white);
   font-family: var(--tm-font-body);
   font-size: 12px;
   font-weight: 700;
   cursor: pointer;
}
.tm-form-card .wpcf7-acceptance .wpcf7-list-item label {
   align-items: flex-start;
   padding: 0;
   border: 0;
   border-radius: 0;
   background: none;
   font-size: 13px;
   font-weight: 500;
   line-height: 1.6;
}
.tm-form-card .wpcf7-acceptance .wpcf7-list-item label:has(input:checked) { background: none; }
.tm-form-card .wpcf7-acceptance input { margin-top: 3px; }
.tm-form-card .wpcf7-acceptance a { text-decoration: underline; }

/* Links inside dark cards/sections */
.tm-feature__card .tm-prose a,
.tm-bg--dark .tm-prose a { color: var(--tm-yellow); }
.tm-feature__card .tm-prose a:hover,
.tm-bg--dark .tm-prose a:hover { color: var(--tm-white); }
