/* tm-groups-6689d7b4: built by TM Core (theme/page-blocks.php) from 3 files */

/* tm-global.css */
/*
 * TM CSS - global
 * Generated 2026-09-03 from the inline <style> blocks that site-wide
 * snippets were echoing into wp_head on every page. Loaded by tm-css-router.
 * Blocks keep their original document order, so the cascade is unchanged.
 */

/* ---- tm-global-fixes ---- */
/* TM Global fixes  [merged 2026-07-01: 3688 + 3889] */

/* Atomic container overflow fix (3688) */
/* Site-wide responsive fix.
   Elementor v4 "atomic" containers (.e-con) were rendering with a hard-coded
   width:1200px and no max-width, so on any screen narrower than 1200px (tablet
   and mobile) they could not shrink and spilled off the sides of the page.
   Capping them to the available width lets them shrink responsively.
   No effect on desktop, where they already fit within 1200px. */
.e-con, .e-con-full { max-width: 100% !important; }

/* Hide page titles (3889) */
/* Never show the theme page title on any WordPress Page */
body.page h1.entry-title,
body.page .page-header h1.entry-title,
body.page .elementor-page-title,
body.page header.page-header{ display:none !important; }

/* ---- tm-account-auth-css (header sections) ---- */
/* ===== Header account menu (3872) ===== */
.tm-acct{ position:relative; display:inline-flex; align-items:center; }
.tm-acct-trigger{ display:inline-flex; align-items:center; gap:8px; color:#283071; font-weight:600; text-decoration:none; padding:8px 12px; border-radius:8px; line-height:1; cursor:pointer; transition:transform .15s ease, color .15s ease, background .15s ease; }
.tm-acct-name{ font-size:15px; white-space:nowrap; }
.tm-acct-trigger:hover, .tm-acct-trigger:focus-visible{ color:#F57B20; transform:translateY(-2px); background:rgba(40,48,113,.06); }

/* Menu button — matching hover */
.elementor-element-313916bc .elementor-widget-button .elementor-button{ transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.elementor-element-313916bc .elementor-widget-button .elementor-button:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(40,48,113,.28); }

/* position account widget on the right, next to Menu */
.elementor-element-313916bc .elementor-element-a19ba31{ margin-left:auto; align-self:center; display:flex; align-items:center; }

/* don't clip the dropdown */
.elementor-element-313916bc, .elementor-element-313916bc > .e-con-inner{ overflow:visible; }

/* ===== Dropdown (header bar) ===== */
.tm-acct-menu{ position:absolute; top:calc(100% + 10px); right:0; min-width:195px; margin:0; padding:6px; list-style:none; background:#fff; border:1px solid #e1e4ed; border-radius:12px; box-shadow:0 14px 34px rgba(27,33,80,.16); opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .15s ease, transform .15s ease, visibility .15s; z-index:9999; }
.tm-acct--in:hover .tm-acct-menu, .tm-acct--in:focus-within .tm-acct-menu, .tm-acct--in.is-open .tm-acct-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.tm-acct-menu li{ margin:0; }
.tm-acct-menu li a{ display:block; padding:10px 14px; border-radius:8px; color:#283071; font-weight:600; font-size:14px; text-decoration:none; transition:background .12s ease, color .12s ease; }
.tm-acct-menu li a:hover{ background:#ECF0FB; color:#F57B20; }
.tm-acct-menu .tm-acct-logout{ color:#d33a3a; }
.tm-acct-menu .tm-acct-logout:hover{ background:#fbeaea; }

/* ===== Mobile: hide the name in the header bar ===== */
@media (max-width:767px){
  .elementor-element-a19ba31 .tm-acct-name{ display:none; }
  .elementor-element-a19ba31 .tm-acct-trigger{ padding:8px; }
}

/* ===== Inside the slide-out Menu panel: static stacked list ===== */
.elementor-element-601d08c .tm-acct{ display:block; width:100%; }
.elementor-element-601d08c .tm-acct-trigger{ padding:8px 0; color:#283071; transform:none; background:none; pointer-events:none; }
.elementor-element-601d08c .tm-acct-name{ display:inline; font-size:18px; }
.elementor-element-601d08c .tm-acct-menu, .tmb-panel .tm-acct-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0; min-width:0; margin-top:2px; }
.elementor-element-601d08c .tm-acct-menu li a, .tmb-panel .tm-acct-menu li a{ padding:9px 0; font-size:15px; }
.elementor-element-601d08c .tm-acct-menu li a:hover, .tmb-panel .tm-acct-menu li a:hover{ background:none; color:#F57B20; }
.elementor-element-601d08c .tm-acct--out{ pointer-events:auto; }

/* ---- tm-popup-1330-css ---- */
/* Modal shell */
#elementor-popup-modal-1330 .dialog-widget-content{background:#fff!important;border-radius:20px!important}
#elementor-popup-modal-1330 .dialog-close-button{color:#283071;opacity:.5;transition:opacity .15s ease}
#elementor-popup-modal-1330 .dialog-close-button:hover{opacity:1}
#elementor-popup-modal-1330 .dialog-close-button svg{width:15px;height:15px;fill:#283071}

/* Inner padding */
.elementor-1330 .elementor-element-68abece{padding:36px 38px 32px!important}

/* Product name -> orange eyebrow */
.elementor-1330 .elementor-element-4bcfb8b .elementor-heading-title{font-family:Poppins,sans-serif!important;font-size:13px!important;font-weight:700!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:#C85A0E!important;line-height:1.4!important;margin:0 0 5px!important}

/* "Let's Get Started!" -> navy headline */
.elementor-1330 .elementor-element-02854f2 .elementor-heading-title{font-family:Poppins,sans-serif!important;font-size:28px!important;font-weight:700!important;color:#283071!important;line-height:1.14!important;letter-spacing:-.01em!important;margin:0 0 16px!important}

/* Form labels */
.elementor-1330 .elementor-element-60b88d6 .elementor-field-group>label{font-family:Poppins,sans-serif!important;font-weight:600!important;color:#283071!important;font-size:14px!important;margin-bottom:6px!important}

/* Fields */
.elementor-1330 .elementor-element-60b88d6 .elementor-field:not(.elementor-select-wrapper),
.elementor-1330 .elementor-element-60b88d6 textarea.elementor-field{background:#ECF0FB!important;border:1.5px solid #e1e4ed!important;border-radius:10px!important;padding:12px 14px!important;font-size:15px!important;font-family:Poppins,sans-serif!important;color:#283071!important;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.elementor-1330 .elementor-element-60b88d6 .elementor-field:not(.elementor-select-wrapper):focus,
.elementor-1330 .elementor-element-60b88d6 textarea.elementor-field:focus{border-color:#F57B20!important;background:#fff!important;box-shadow:0 0 0 3px rgba(245,123,32,.12)!important;outline:none!important}
.elementor-1330 .elementor-element-60b88d6 textarea.elementor-field{min-height:96px}

/* Submit -> orange, full width, brand 8px corners */
.elementor-1330 .elementor-element-60b88d6 .elementor-button[type="submit"]{background:#F57B20!important;color:#fff!important;border-radius:8px!important;padding:14px 30px!important;font-family:Poppins,sans-serif!important;font-weight:600!important;font-size:15px!important;letter-spacing:.2px!important;width:100%!important;justify-content:center!important;transition:background .18s ease,transform .18s ease}
.elementor-1330 .elementor-element-60b88d6 .elementor-button[type="submit"]:hover{background:#283071!important;transform:translateY(-1px)}

@media(max-width:600px){
  .elementor-1330 .elementor-element-68abece{padding:28px 22px 24px!important}
  .elementor-1330 .elementor-element-02854f2 .elementor-heading-title{font-size:24px!important}
}

/* ---- anon-3 removed 2026-10-05 ----
   Was Elementor's background lazy-load CSS (copied from its inline styles):
   it blanks background images from the 4th section down until Elementor's
   script adds .e-lazyloaded. With Elementor gone that never happens, so every
   later gradient/image vanished (homepage Sample Work and closing CTA). */

/* ---- tm-mobile-header-fixes ---- */
@media (max-width:1024px){
  .elementor-2491 .elementor-element-a19ba31,
  .elementor-2491 .elementor-sticky .elementor-element-a19ba31,
  .elementor-2491 .elementor-sticky__spacer .elementor-element-a19ba31{
    display:inline-flex !important;
  }
  .elementor-element-a19ba31 .tm-acct-name{ display:none !important; }
  .elementor-element-a19ba31 .tm-acct-menu{
    display:none !important;
    pointer-events:none !important;
  }
}
@media (max-width:1024px){
  .elementor-element-2d5fa15c .elementor-element-4b9be595 nav.elementor-nav-menu--main,
  .elementor-element-2d5fa15c .elementor-element-4b9be595 ul.elementor-nav-menu,
  .elementor-element-2d5fa15c .elementor-element-4b9be595 ul.elementor-nav-menu > li{
    display:block !important;
  }
  .elementor-element-2d5fa15c .elementor-element-287257ba nav.elementor-nav-menu--main,
  .elementor-element-2d5fa15c .elementor-element-287257ba ul.elementor-nav-menu,
  .elementor-element-2d5fa15c .elementor-element-287257ba ul.elementor-nav-menu > li{
    display:block !important;
  }
}

/* ---- tm-offcanvas-polish ---- */
.elementor-element-2d5fa15c .elementor-element-5a44ab6c{
  padding-left:20px !important;
  padding-right:20px !important;
}

.elementor-element-2d5fa15c .elementor-element-4fb743c,
.elementor-element-2d5fa15c .elementor-element-09e9dd2{
  align-self:center !important;
  width:auto !important;
  max-width:100% !important;
}
.elementor-element-2d5fa15c .elementor-element-4fb743c .elementor-button,
.elementor-element-2d5fa15c .elementor-element-09e9dd2 .elementor-button{
  width:auto !important;
  min-width:270px !important;
  max-width:100% !important;
  padding-left:24px !important;
  padding-right:24px !important;
  text-align:center !important;
  justify-content:center !important;
}
.elementor-element-2d5fa15c .elementor-element-09e9dd2{
  margin-top:-6px !important;
}

.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-menu{
  display:block !important;
  position:static !important;
  visibility:inherit !important;
  opacity:1 !important;
  transform:none !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:2px 0 6px !important;
  padding:0 0 0 14px !important;
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
}
.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-menu .elementor-sub-item{
  display:block !important;
  padding:9px 12px 9px 16px !important;
  border-radius:8px !important;
  font-size:15px !important;
  font-weight:500 !important;
  color:#FFFFFF !important;
  opacity:.82 !important;
}
.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover{
  opacity:1 !important;
  color:#F57B20 !important;
  background:rgba(255,255,255,.05) !important;
}

.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-arrow,
.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .elementor-item .sub-arrow{
  display:none !important;
}

/* ---- tm-acct-ico-mask ---- */
.tm-acct-trigger .tm-acct-ico{display:none !important;}.tm-acct-trigger::after{content:"" !important;display:inline-block !important;width:28px !important;height:28px !important;margin-left:8px !important;vertical-align:middle !important;background-color:#283071 !important;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%20stroke=%27%23283071%27%20stroke-width=%272%27%3E%3Ccircle%20cx=%2712%27%20cy=%2712%27%20r=%279%27/%3E%3Ccircle%20cx=%2712%27%20cy=%2710%27%20r=%273%27/%3E%3Cpath%20d=%27M6.2%2018.8a4%204%200%200%201%203.8-2.8h4a4%204%200%200%201%203.8%202.8%27/%3E%3C/svg%3E") center / contain no-repeat !important;mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%20stroke=%27%23283071%27%20stroke-width=%272%27%3E%3Ccircle%20cx=%2712%27%20cy=%2712%27%20r=%279%27/%3E%3Ccircle%20cx=%2712%27%20cy=%2710%27%20r=%273%27/%3E%3Cpath%20d=%27M6.2%2018.8a4%204%200%200%201%203.8-2.8h4a4%204%200%200%201%203.8%202.8%27/%3E%3C/svg%3E") center / contain no-repeat !important;}.tm-acct-trigger:hover::after,.tm-acct-trigger:focus-visible::after{background-color:#F57B20 !important;}.e-off-canvas .tm-acct-trigger::after{background-color:#ffffff !important;}.e-off-canvas .tm-acct-trigger:hover::after,.e-off-canvas .tm-acct-trigger:focus-visible::after{background-color:#ffffff !important;}

/* ---- tm-art-css ---- */
.tm-art-raw{display:block;margin:0 auto;width:100%;height:auto;}.tm-art{display:block;margin:0 auto;width:100%;}@media (max-width:767px){.tm-art-raw,.tm-art{max-width:50% !important;width:50% !important;}.e-con-inner > .e-con:has(.tm-art-raw),.e-con-inner > .e-con:has(.tm-art),.e-con > .e-con:has(.tm-art-raw),.e-con > .e-con:has(.tm-art){order:-1 !important;}.elementor-widget:has(.tm-art-raw),.elementor-widget:has(.tm-art){order:-1 !important;}}

/* ---- tm-footer-css ---- */
.elementor-element-7ac3a44{background:#ffffff;border-top:1px solid #E1E4ED;padding:64px 24px 0;}
.elementor-element-a29ced3{text-align:center;margin-bottom:40px;}
.elementor-element-a29ced3 .elementor-widget-container{text-align:center;}
.elementor-element-a29ced3 img{display:inline-block;}
.elementor-element-1384e81{max-width:1200px;margin:0 auto;padding-bottom:48px;}
.elementor-element-1384e81 > .e-con-inner{max-width:1200px;}
.elementor-element-1384e81 .e-706aadc-3a27085{display:flex;flex-direction:row;gap:40px;align-items:flex-start;width:100%;}
.e-706aadc-3a27085 .elementor-element-d888294{order:1;flex:2 1 0;min-width:0;display:flex;flex-direction:row;gap:40px;}
.e-706aadc-3a27085 .elementor-element-3b5f952{order:2;flex:1 1 0;min-width:0;align-items:flex-start;}
.elementor-element-d888294 .elementor-element-6550b98{flex:1 1 0;min-width:0;}
.elementor-element-d888294 .elementor-element-0831f3f{flex:1 1 0;min-width:0;}
.elementor-element-3b5f952 .elementor-widget-heading,.elementor-element-3b5f952 .elementor-widget-text-editor{text-align:left;}
.elementor-element-171f719 p,.elementor-element-28e202c p{margin:0;padding-top:12px;}
.elementor-element-28e202c a{color:#283071;text-decoration:none;}
.elementor-element-28e202c a:hover{color:#F57B20;}
.elementor-element-0cfac96{display:flex;flex-direction:row;justify-content:flex-start;gap:10px;}
.elementor-element-0cfac96 .elementor-icon{width:38px !important;height:38px !important;border:1px solid #E1E4ED !important;border-radius:50% !important;display:flex !important;align-items:center;justify-content:center;color:#283071 !important;font-size:16px;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;}
.elementor-element-0cfac96 .elementor-icon:hover{background:#F57B20 !important;border-color:#F57B20 !important;color:#fff !important;transform:translateY(-2px);}
.elementor-element-0cfac96 .elementor-icon svg{width:16px;height:16px;fill:currentColor;}
.elementor-element-0cfac96 .elementor-icon i{color:inherit;}
.elementor-element-a2dc2a9{border-top:1px solid #E1E4ED;padding:0 24px;margin-top:8px;}
.elementor-element-82aceab{max-width:1200px;margin:0 auto;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:22px 0;}
.elementor-element-316f5c9 p{margin:0;color:#6B7090;font-size:13px;}
.elementor-element-91b52b2 .elementor-widget-container{display:flex;justify-content:flex-end;}
.elementor-element-91b52b2 p{margin:0;display:flex;gap:26px;}
.elementor-element-91b52b2 a{color:#6B7090;font-size:13px;text-decoration:none;transition:color .15s ease;}
.elementor-element-91b52b2 a:hover{color:#283071;}
@media(max-width:1024px){
.elementor-element-1384e81{padding-bottom:8px;}
.elementor-element-1384e81 .e-706aadc-3a27085{flex-direction:column;gap:0;}
.e-706aadc-3a27085 .elementor-element-d888294{flex-direction:column;gap:0;width:100%;}
.e-706aadc-3a27085 .elementor-element-3b5f952{width:100%;order:2;}
.tm-fcol{border-top:1px solid #E1E4ED;}
.tm-fcol .elementor-widget-heading{cursor:pointer;margin:0 !important;display:flex;align-items:center;justify-content:space-between;padding:18px 0 !important;width:100%;}
.tm-fcol .elementor-widget-heading .elementor-widget-container{flex:1;}
.tm-fcol .elementor-widget-heading:after{content:'+';color:#6B7090;font-size:24px;font-weight:400;line-height:1;margin-left:12px;transition:transform .2s ease;}
.tm-fcol.tm-open .elementor-widget-heading:after{content:'';width:13px;height:2px;background:#6B7090;border-radius:2px;margin-left:12px;flex:0 0 auto;}
.tm-fcol > *:not(:first-child){max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .25s ease;}
.tm-fcol.tm-open > *:not(:first-child){max-height:900px;opacity:1;}
.tm-fcol.tm-open > *:last-child{padding-bottom:18px;}
.tm-fcol > *{align-self:flex-start;}
.tm-fcol .elementor-widget-nav-menu,.tm-fcol .elementor-widget-icon-list{width:100%;}
.tm-fcol .elementor-nav-menu,.tm-fcol .elementor-nav-menu .elementor-item,.tm-fcol .elementor-icon-list-items,.tm-fcol .elementor-icon-list-item{text-align:left;justify-content:flex-start;padding-left:0;}
.elementor-element-82aceab{flex-direction:column;align-items:flex-start;}
.elementor-element-91b52b2 .elementor-widget-container{justify-content:flex-start;}
.elementor-element-91b52b2 p{justify-content:flex-start;}
}
@media(min-width:1025px){
.tm-fcol > *:not(:first-child){max-height:none !important;overflow:visible !important;opacity:1 !important;}
.tm-fcol .elementor-widget-heading:after{display:none;}
}

/* ---- anon-9 ---- */
.tm-qbadge{position:relative;display:inline-flex;align-items:center;justify-content:center;color:#283071;text-decoration:none;line-height:1}.tm-qbadge:hover{opacity:.8}.tm-qbadge-icon{display:block;flex:none}.tm-qbadge-count{position:absolute;top:-6px;right:-10px;min-width:20px;height:20px;padding:0 5px;border-radius:4px;background:#d33a3a;color:#fff;font-size:11px;font-weight:700;font-family:Poppins,system-ui,sans-serif;line-height:20px;text-align:center;pointer-events:none;box-shadow:0 1px 4px rgba(211,58,58,.35)}

/* ---- anon-10 ---- */
.page-id-3330 .tm-minus .elementor-button,.page-id-3330 .tm-plus .elementor-button{cursor:pointer;min-width:42px;text-align:center;line-height:1;}
.page-id-3330 .tm-price .elementor-heading-title{line-height:1;}

/* ---- Toggle widget open/close icons (1.61.22) ----
   Elementor shows the closed "+" as an inline-block span but switches the
   open "-" svg to display:block. In the right-aligned 30px icon box the block
   sat 5px further left, so the icon jumped sideways on every click (FAQ page).
   Inline-block puts the "-" exactly where the "+" was. */
.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-opened{display:inline-block}

/* ---- one button shape, site-wide (1.61.59, owner 2026-10-02) ----
   House shape: 8px corners, no pills. The homepage was done in 1.61.52; this
   covers every other page the scan found. Filter chips (blog topic chips) are
   not buttons and stay round. "body" + !important because several of these
   come from inline <style> blocks printed later in the page. */
body .elementor-widget-button .elementor-button,
body .tm-tile__lnk,
body .tm-add-request,
body .reqbtn,
body .tm-btn,
body .tm-btn-start,
body .tm-aside-btn,
body .tm-bsvc-lnk,
body .acc-cta,
body .elementor-element-a06cd89 .btn,
body .elementor-element-a06cd89 .btn-ghost{border-radius:8px !important}

/* ---- light backgrounds: two guide colours (1.61.60, owner 2026-10-03) ----
   Nine near-identical pale tints became the brand guide's Mist (#ECF0FB, the
   blue family: #FFFFFF, #FFFFFF, #ECF0FB, #B9CEFF, #B9CEFF) and Cloud (#ECF0FB,
   the greys: #FFFFFF, #ECF0FB, #FFFFFF). owner did not want Cream added. IDs
   from a scan of every page; a section added later keeps whatever it is given. */
body .elementor-element-3a71a93,
body .elementor-element-272ed3b,
body .elementor-element-ce89bf1,
body .elementor-element-6e7e5a5,
body .elementor-element-c559d08,
body .elementor-element-87a8030,
body .elementor-element-6c88ea4,
body .elementor-element-7d45945,
body .elementor-element-cff8f29,
body .elementor-element-eb8a336,
body .elementor-element-48627d7,
body .elementor-element-5e2c525,
body .elementor-element-4098083,
body .elementor-element-9793f36,
body .elementor-element-2c1f0df,
body .elementor-element-9f868f2,
body .elementor-element-a261e21,
body .elementor-element-6315b3f,
body .elementor-element-e94edde,
body .elementor-element-60fabf1,
body .elementor-element-3c38a45,
body .elementor-element-96abcb5,
body .elementor-element-8122cea,
body .elementor-element-41d334f,
body .elementor-element-1968228,
body .elementor-element-bd9797e,
body .elementor-element-d6a1485,
body .elementor-element-963cf2c,
body .elementor-element-bf90b2e,
body .elementor-element-40cfeb7,
body .elementor-element-1b3967d,
body .elementor-element-a09cc9f,
body .elementor-element-c9b249e,
body .elementor-element-7b38aa9,
body .elementor-element-62bdd7b,
body .elementor-element-0e437e4,
body .elementor-element-19616b1,
body .elementor-element-63553a7,
body .elementor-element-7273300,
body .elementor-element-ea1efc5c,
body .elementor-element-7b2f3c3b,
body .elementor-element-b6bc5d0,
body .elementor-element-6bea8e6,
body .tm-rp,
body .tmhp-blog,
body .tm-pw-r,
body .tm-qhow-band{background-color:#ECF0FB !important}
body .elementor-element-31219b7,
body .elementor-element-31169bd,
body .elementor-element-7bd6e1bd{background-color:#ECF0FB !important}

/* ---- section headings: the homepage bold look everywhere (1.61.61, owner 2026-10-03) ----
   42px bold, as on the homepage (38px tablet, 30px phone). Elementor heading
   widgets by id (scan of every page) plus the H2s TM Core prints itself. Not
   touched: the homepage (already this), hero titles, card titles, the H2s
   inside blog articles, product page subsections, Contact and Sample Work. */
body .elementor-element-208beb1 .elementor-heading-title,
body .elementor-element-fe97f6b .elementor-heading-title,
body .elementor-element-4ef988a .elementor-heading-title,
body .elementor-element-4a18065 .elementor-heading-title,
body .elementor-element-742068a .elementor-heading-title,
body .elementor-element-524095b .elementor-heading-title,
body .elementor-element-3be6305 .elementor-heading-title,
body .elementor-element-d4c5898 .elementor-heading-title,
body .elementor-element-7d17360 .elementor-heading-title,
body .elementor-element-2512d8a .elementor-heading-title,
body .elementor-element-9c4e69f .elementor-heading-title,body .tm-sec--cta h2,
body .elementor-element-e92ef90 .elementor-heading-title,
body .elementor-element-a125e37 .elementor-heading-title,
body .elementor-element-f4189b1 .elementor-heading-title,
body .elementor-element-0a54a81 .elementor-heading-title,
body .elementor-element-91555ae .elementor-heading-title,
body .elementor-element-40aaf0d .elementor-heading-title,
body .elementor-element-2bf946c .elementor-heading-title,
body .elementor-element-e86b203 .elementor-heading-title,
body .elementor-element-247ad12 .elementor-heading-title,
body .elementor-element-02c93c8 .elementor-heading-title,
body .elementor-element-0aa4bcc .elementor-heading-title,
body .elementor-element-8763ebe .elementor-heading-title,
body .elementor-element-6131145 .elementor-heading-title,
body .elementor-element-3ba2f5a .elementor-heading-title,
body .elementor-element-e3e1877 .elementor-heading-title,
body .elementor-element-f9e5fca .elementor-heading-title,
body .elementor-element-b168662 .elementor-heading-title,
body .elementor-element-7ae2b83 .elementor-heading-title,
body .elementor-element-8c5833f .elementor-heading-title,
body .elementor-element-a3f34d8 .elementor-heading-title,
body .elementor-element-592596d .elementor-heading-title,
body .elementor-element-dbfa3d5 .elementor-heading-title,
body .elementor-element-31a0f39 .elementor-heading-title,
body .elementor-element-42e5a0f .elementor-heading-title,
body .elementor-element-0744b13 .elementor-heading-title,
body .elementor-element-a3a9711 .elementor-heading-title,
body .elementor-element-d5186af .elementor-heading-title,
body .elementor-element-0931043 .elementor-heading-title,
body .elementor-element-5d08647 .elementor-heading-title,
body .elementor-element-c3f69d7 .elementor-heading-title,
body .elementor-element-f5723de .elementor-heading-title,
body .elementor-element-006ef77 .elementor-heading-title,
body .elementor-element-87b69a0 .elementor-heading-title,
body .elementor-element-8fb924c .elementor-heading-title,
body .elementor-element-6dd2ecd .elementor-heading-title,
body .elementor-element-2913918 .elementor-heading-title,
body .elementor-element-39e0514 .elementor-heading-title,
body .elementor-element-956678b .elementor-heading-title,
body .elementor-element-76a994b .elementor-heading-title,
body .elementor-element-0ffc477 .elementor-heading-title,
body .elementor-element-527eb50 .elementor-heading-title,
body .elementor-element-ca8f5a3 .elementor-heading-title,
body .elementor-element-26ef96d .elementor-heading-title,
body .elementor-element-7d36fc4 .elementor-heading-title,
body .elementor-element-a9343bd .elementor-heading-title,
body .elementor-element-99689df .elementor-heading-title,
body .elementor-element-e11697e .elementor-heading-title,
body .elementor-element-3a5ca71 .elementor-heading-title,
body .elementor-element-dd347f0 .elementor-heading-title,
body .elementor-element-da91f1c .elementor-heading-title,
body .elementor-element-fae2ab6 .elementor-heading-title,
body .elementor-element-1f6c8db .elementor-heading-title,
body .elementor-element-d288ed1 .elementor-heading-title,
body .elementor-element-e972f29 .elementor-heading-title,
body .elementor-element-5515a49 .elementor-heading-title,
body .elementor-element-d851ebd .elementor-heading-title,
body .elementor-element-e5300c5 .elementor-heading-title,
body .elementor-element-c5ad349 .elementor-heading-title,
body .elementor-element-db4cee4 .elementor-heading-title,
body .elementor-element-aaf2ed7 .elementor-heading-title,
body h2.tm-cat__title,
body h2.tm-rp-h,
body .tm-seas h2,
body .elementor-element-c37bae8 h2,
body h2.tm-bsvc-head,
body .tm-qhow__h,
body .elementor-element-3d6058b h2,body .tm-sec--refer h2,
body .elementor-element-a06cd89 h2,
body .tm-p2-final h2{font-size:42px !important;font-weight:700 !important;line-height:1.14 !important;letter-spacing:-.6px !important}
@media(max-width:1024px){body .elementor-element-208beb1 .elementor-heading-title,body .elementor-element-fe97f6b .elementor-heading-title,body .elementor-element-4ef988a .elementor-heading-title,body .elementor-element-4a18065 .elementor-heading-title,body .elementor-element-742068a .elementor-heading-title,body .elementor-element-524095b .elementor-heading-title,body .elementor-element-3be6305 .elementor-heading-title,body .elementor-element-d4c5898 .elementor-heading-title,body .elementor-element-7d17360 .elementor-heading-title,body .elementor-element-2512d8a .elementor-heading-title,body .elementor-element-9c4e69f .elementor-heading-title,body .tm-sec--cta h2,body .elementor-element-e92ef90 .elementor-heading-title,body .elementor-element-a125e37 .elementor-heading-title,body .elementor-element-f4189b1 .elementor-heading-title,body .elementor-element-0a54a81 .elementor-heading-title,body .elementor-element-91555ae .elementor-heading-title,body .elementor-element-40aaf0d .elementor-heading-title,body .elementor-element-2bf946c .elementor-heading-title,body .elementor-element-e86b203 .elementor-heading-title,body .elementor-element-247ad12 .elementor-heading-title,body .elementor-element-02c93c8 .elementor-heading-title,body .elementor-element-0aa4bcc .elementor-heading-title,body .elementor-element-8763ebe .elementor-heading-title,body .elementor-element-6131145 .elementor-heading-title,body .elementor-element-3ba2f5a .elementor-heading-title,body .elementor-element-e3e1877 .elementor-heading-title,body .elementor-element-f9e5fca .elementor-heading-title,body .elementor-element-b168662 .elementor-heading-title,body .elementor-element-7ae2b83 .elementor-heading-title,body .elementor-element-8c5833f .elementor-heading-title,body .elementor-element-a3f34d8 .elementor-heading-title,body .elementor-element-592596d .elementor-heading-title,body .elementor-element-dbfa3d5 .elementor-heading-title,body .elementor-element-31a0f39 .elementor-heading-title,body .elementor-element-42e5a0f .elementor-heading-title,body .elementor-element-0744b13 .elementor-heading-title,body .elementor-element-a3a9711 .elementor-heading-title,body .elementor-element-d5186af .elementor-heading-title,body .elementor-element-0931043 .elementor-heading-title,body .elementor-element-5d08647 .elementor-heading-title,body .elementor-element-c3f69d7 .elementor-heading-title,body .elementor-element-f5723de .elementor-heading-title,body .elementor-element-006ef77 .elementor-heading-title,body .elementor-element-87b69a0 .elementor-heading-title,body .elementor-element-8fb924c .elementor-heading-title,body .elementor-element-6dd2ecd .elementor-heading-title,body .elementor-element-2913918 .elementor-heading-title,body .elementor-element-39e0514 .elementor-heading-title,body .elementor-element-956678b .elementor-heading-title,body .elementor-element-76a994b .elementor-heading-title,body .elementor-element-0ffc477 .elementor-heading-title,body .elementor-element-527eb50 .elementor-heading-title,body .elementor-element-ca8f5a3 .elementor-heading-title,body .elementor-element-26ef96d .elementor-heading-title,body .elementor-element-7d36fc4 .elementor-heading-title,body .elementor-element-a9343bd .elementor-heading-title,body .elementor-element-99689df .elementor-heading-title,body .elementor-element-e11697e .elementor-heading-title,body .elementor-element-3a5ca71 .elementor-heading-title,body .elementor-element-dd347f0 .elementor-heading-title,body .elementor-element-da91f1c .elementor-heading-title,body .elementor-element-fae2ab6 .elementor-heading-title,body .elementor-element-1f6c8db .elementor-heading-title,body .elementor-element-d288ed1 .elementor-heading-title,body .elementor-element-e972f29 .elementor-heading-title,body .elementor-element-5515a49 .elementor-heading-title,body .elementor-element-d851ebd .elementor-heading-title,body .elementor-element-e5300c5 .elementor-heading-title,body .elementor-element-c5ad349 .elementor-heading-title,body .elementor-element-db4cee4 .elementor-heading-title,body .elementor-element-aaf2ed7 .elementor-heading-title,body h2.tm-cat__title,body h2.tm-rp-h,body .tm-seas h2,body .elementor-element-c37bae8 h2,body h2.tm-bsvc-head,body .tm-qhow__h,body .elementor-element-3d6058b h2,body .tm-sec--refer h2,body .elementor-element-a06cd89 h2,body .tm-p2-final h2{font-size:38px !important}}
@media(max-width:767px){body .elementor-element-208beb1 .elementor-heading-title,body .elementor-element-fe97f6b .elementor-heading-title,body .elementor-element-4ef988a .elementor-heading-title,body .elementor-element-4a18065 .elementor-heading-title,body .elementor-element-742068a .elementor-heading-title,body .elementor-element-524095b .elementor-heading-title,body .elementor-element-3be6305 .elementor-heading-title,body .elementor-element-d4c5898 .elementor-heading-title,body .elementor-element-7d17360 .elementor-heading-title,body .elementor-element-2512d8a .elementor-heading-title,body .elementor-element-9c4e69f .elementor-heading-title,body .tm-sec--cta h2,body .elementor-element-e92ef90 .elementor-heading-title,body .elementor-element-a125e37 .elementor-heading-title,body .elementor-element-f4189b1 .elementor-heading-title,body .elementor-element-0a54a81 .elementor-heading-title,body .elementor-element-91555ae .elementor-heading-title,body .elementor-element-40aaf0d .elementor-heading-title,body .elementor-element-2bf946c .elementor-heading-title,body .elementor-element-e86b203 .elementor-heading-title,body .elementor-element-247ad12 .elementor-heading-title,body .elementor-element-02c93c8 .elementor-heading-title,body .elementor-element-0aa4bcc .elementor-heading-title,body .elementor-element-8763ebe .elementor-heading-title,body .elementor-element-6131145 .elementor-heading-title,body .elementor-element-3ba2f5a .elementor-heading-title,body .elementor-element-e3e1877 .elementor-heading-title,body .elementor-element-f9e5fca .elementor-heading-title,body .elementor-element-b168662 .elementor-heading-title,body .elementor-element-7ae2b83 .elementor-heading-title,body .elementor-element-8c5833f .elementor-heading-title,body .elementor-element-a3f34d8 .elementor-heading-title,body .elementor-element-592596d .elementor-heading-title,body .elementor-element-dbfa3d5 .elementor-heading-title,body .elementor-element-31a0f39 .elementor-heading-title,body .elementor-element-42e5a0f .elementor-heading-title,body .elementor-element-0744b13 .elementor-heading-title,body .elementor-element-a3a9711 .elementor-heading-title,body .elementor-element-d5186af .elementor-heading-title,body .elementor-element-0931043 .elementor-heading-title,body .elementor-element-5d08647 .elementor-heading-title,body .elementor-element-c3f69d7 .elementor-heading-title,body .elementor-element-f5723de .elementor-heading-title,body .elementor-element-006ef77 .elementor-heading-title,body .elementor-element-87b69a0 .elementor-heading-title,body .elementor-element-8fb924c .elementor-heading-title,body .elementor-element-6dd2ecd .elementor-heading-title,body .elementor-element-2913918 .elementor-heading-title,body .elementor-element-39e0514 .elementor-heading-title,body .elementor-element-956678b .elementor-heading-title,body .elementor-element-76a994b .elementor-heading-title,body .elementor-element-0ffc477 .elementor-heading-title,body .elementor-element-527eb50 .elementor-heading-title,body .elementor-element-ca8f5a3 .elementor-heading-title,body .elementor-element-26ef96d .elementor-heading-title,body .elementor-element-7d36fc4 .elementor-heading-title,body .elementor-element-a9343bd .elementor-heading-title,body .elementor-element-99689df .elementor-heading-title,body .elementor-element-e11697e .elementor-heading-title,body .elementor-element-3a5ca71 .elementor-heading-title,body .elementor-element-dd347f0 .elementor-heading-title,body .elementor-element-da91f1c .elementor-heading-title,body .elementor-element-fae2ab6 .elementor-heading-title,body .elementor-element-1f6c8db .elementor-heading-title,body .elementor-element-d288ed1 .elementor-heading-title,body .elementor-element-e972f29 .elementor-heading-title,body .elementor-element-5515a49 .elementor-heading-title,body .elementor-element-d851ebd .elementor-heading-title,body .elementor-element-e5300c5 .elementor-heading-title,body .elementor-element-c5ad349 .elementor-heading-title,body .elementor-element-db4cee4 .elementor-heading-title,body .elementor-element-aaf2ed7 .elementor-heading-title,body h2.tm-cat__title,body h2.tm-rp-h,body .tm-seas h2,body .elementor-element-c37bae8 h2,body h2.tm-bsvc-head,body .tm-qhow__h,body .elementor-element-3d6058b h2,body .tm-sec--refer h2,body .elementor-element-a06cd89 h2,body .tm-p2-final h2{font-size:30px !important}}

/* ---- card corners: 12px (1.61.61, owner 2026-10-03) ----
   Every regular card. Not touched: the homepage blog photo cards, the Sample
   Work previews and phone mockup, buttons (8px) and filter chips. */
body .elementor-element-84583034 .e-con,
body .tm-st-card,
body .tm-tile,
body .reqbtn-wrap .card,
body .elementor-element-b682bda .card,
body .elementor-element-b33fb0d .card,
body .elementor-element-0f515dd .card,
body .elementor-element-1491c88 .card,
body .elementor-element-e412311 .card,
body .elementor-element-54066f1,
body .tm-seas-card,
body .elementor-element-63553a7 .e-con,
body .elementor-element-1effb4d2 .e-con,
body .tm-shortcut,
body .elementor-element-a06cd89 .rtier,
body .tm-step,
body .tm-refpage-offer,
body .tm-smx-card,
body .tm-qhow__item,
body .elementor-element-0f40da7 .e-con,
body .elementor-element-4d10b1d .e-con,
body .elementor-author-box,
body .tm-toc-box,
body .tm-aside-card,
body .tm-bsvc-card,
body .elementor-post__card,
body .tm-p2-card,
body .tm-p2-step{border-radius:12px !important}

/* ---- Learn more + quote button: one look everywhere (owner 2026-10-06) ----
   Learn more is navy (darker on hover) with a heavier arrow. The quote button
   keeps ONE footprint: "Add to quote" and its added state ("View quote" + a
   delete) sit in the same grid cell and swap visibility, so the box never
   changes size. Service tiles and the blog services block (.tm-req-slot),
   product pages (.tm-qb) and the hub-page deck (.tmd .reqbtnwrap). "body" +
   !important because each of these also prints its own inline styles. */
body .tm-tile .tm-tile__lnk,body .tm-bsvc .tm-bsvc-lnk{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;height:44px!important;padding:0 18px!important;border:0!important;border-radius:8px!important;background:#283071!important;color:#fff!important;font:600 14px/1 Poppins,sans-serif!important;text-decoration:none!important;box-shadow:none!important;transform:none;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease!important}
body .tm-tile .tm-tile__lnk:hover,body .tm-tile .tm-tile__lnk:focus-visible,body .tm-bsvc .tm-bsvc-lnk:hover,body .tm-bsvc .tm-bsvc-lnk:focus-visible{background:#1B2150!important;color:#fff!important;transform:translateY(-1px)!important;box-shadow:0 6px 14px rgba(40,48,113,.24)!important}
body .tm-lnk-arrow{width:16px;height:16px;flex:none;display:block}

/* Tiles: one 168x44 box. */
body .tm-req-slot{display:inline-grid!important;width:168px;height:44px;flex:none!important;min-width:0}
body .tm-req-slot>.tm-add-request,body .tm-req-slot>.tm-req-added{grid-area:1/1!important;width:100%!important;height:44px!important;margin:0!important}
body .tm-req-slot>.tm-add-request{display:inline-flex!important;align-items:center;justify-content:center;padding:0 12px!important;border:0!important;border-radius:8px!important;background:#F57B20!important;color:#fff!important;font:600 14px/1 Poppins,sans-serif!important;cursor:pointer;box-shadow:none!important;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease!important}
body .tm-req-slot>.tm-add-request:hover,body .tm-req-slot>.tm-add-request:focus-visible{background:#C85A0E!important;transform:translateY(-1px)!important;box-shadow:0 6px 14px rgba(245,123,32,.3)!important}
body .tm-req-slot>.tm-add-request.tm-added{display:inline-flex!important;visibility:hidden}
body .tm-req-slot>.tm-req-added{display:flex!important;visibility:hidden;box-sizing:border-box;border:1.5px solid #BFDCCB;border-radius:8px;overflow:hidden;gap:0!important}
body .tm-req-slot>.tm-add-request.tm-added~.tm-req-added{visibility:visible}

/* The added state, shared by tiles, product pages and the deck. */
body .tm-req-slot .tm-req-view,body .tm-qb .tm-qb-view{flex:1 1 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;height:100%!important;min-width:0;padding:0 10px!important;border:0!important;border-radius:0!important;background:#E6F4EC!important;color:#1E8E4E!important;font:600 14px/1 Poppins,sans-serif!important;text-decoration:none!important;box-shadow:none!important;transition:background-color .2s ease,color .2s ease!important}
body .tm-req-slot .tm-req-view:hover,body .tm-req-slot .tm-req-view:focus-visible,body .tm-qb .tm-qb-view:hover,body .tm-qb .tm-qb-view:focus-visible{background:#1E8E4E!important;color:#fff!important}
body .tm-req-slot .tm-req-x,body .tm-qb .tm-qb-x{flex:0 0 44px!important;width:44px!important;height:100%!important;padding:0!important;border:0!important;border-left:1.5px solid #F1C9C9!important;border-radius:0!important;background:#FBEAEA!important;color:#D33A3A!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer;transition:background-color .2s ease,color .2s ease!important}
body .tm-req-slot .tm-req-x:hover,body .tm-req-slot .tm-req-x:focus-visible,body .tm-qb .tm-qb-x:hover,body .tm-qb .tm-qb-x:focus-visible{background:#D33A3A!important;color:#fff!important}
body .tm-req-slot .tm-req-x svg,body .tm-qb .tm-qb-x svg{width:16px!important;height:16px!important;display:block}

/* Product pages: same look, the box takes the button's own width. */
body .tm-qb{display:inline-grid!important}
body .tm-qb>.tm-qb-add,body .tm-qb>.tm-qb-split{grid-area:1/1!important;height:48px!important;margin:0!important;box-sizing:border-box!important}
body .tm-qb>.tm-qb-add{display:inline-flex!important;align-items:center;justify-content:center;padding:0 32px!important;border:0!important;border-radius:8px!important;font:600 15px/1 Poppins,sans-serif!important}
body .tm-qb>.tm-qb-split{display:flex!important;visibility:hidden;gap:0!important;border:1.5px solid #BFDCCB!important;border-radius:8px!important;overflow:hidden!important}
body .tm-qb.is-added>.tm-qb-add{display:inline-flex!important;visibility:hidden}
body .tm-qb.is-added>.tm-qb-split{visibility:visible}
body .tm-qb .tm-qb-view{font-size:15px!important}
body .tm-qb .tm-qb-x{flex-basis:48px!important;width:48px!important}

/* Hub-page deck (dark background): a fixed 220x48 box; the delete joins it. */
body .tmd .reqbtnwrap{gap:0!important;width:220px;margin-left:auto!important;margin-right:auto!important}
body .tmd .reqbtn{flex:1 1 auto;height:48px;padding:0 16px!important;border:0!important;border-radius:8px!important;font:600 15px/1 Poppins,sans-serif!important}
body .tmd .reqbtn.is-added{background:#E6F4EC!important;color:#1E8E4E!important;border-radius:8px 0 0 8px!important}
body .tmd .reqbtn.is-added:hover{background:#1E8E4E!important;color:#fff!important}
body .tmd .removebtn{width:48px!important;height:48px!important;border:0!important;border-left:1.5px solid #F1C9C9!important;border-radius:0 8px 8px 0!important;background:#FBEAEA!important;color:#D33A3A!important}
body .tmd .removebtn:hover{background:#D33A3A!important;color:#fff!important}
/* Where the product card stretches the button, the box stretches too. */
body .tm-p2-card .tm-qb,body .tm-hx-card .tm-qb{display:grid!important;width:100%!important}

/* WooCommerce marks required fields in its own #a00; the house red instead (palette, 2026-10-07). */
body.tmb-site .woocommerce form .required { color: #D33A3A; }

/* ---- THE house button (moved from tm-home.css in 1.75.7 so every page can use it) (owner 2026-10-08: every navy and orange button
   matches the hero pair - same border, arrow and hover). Also used by Sample
   Work (home/sample-work.php) and Visit the blog (blog/recent-posts.php), and
   shown in the Branding Guide. */
.tmb-site .tm-hm-btns { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px; width: 100%; padding: 10px; }
.tmb-site .tm-hm-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; padding: 12px 24px;
	border: 2px solid rgba(185, 206, 255, .5); border-radius: 8px; color: #fff;
	font-family: Poppins, sans-serif; font-size: 16px; font-weight: 700; line-height: 1.65; text-align: center; text-decoration: none; white-space: nowrap; transition: all .3s;
}
.tmb-site .tm-hm-btn svg { flex: none; width: 16px; height: 16px; fill: currentColor; }
.tmb-site .tm-hm-btn--orange { background: #F57B20; }
.tmb-site .tm-hm-btn--navy { background: #283071; }
.tmb-site .tm-hm-btn:hover, .tmb-site .tm-hm-btn:focus-visible { border-color: #fff; color: #fff; }
.tmb-site .tm-hm-btn--orange:hover, .tmb-site .tm-hm-btn--orange:focus-visible { background: #C85A0E; }
.tmb-site .tm-hm-btn--navy:hover, .tmb-site .tm-hm-btn--navy:focus-visible { background: #1B2150; }



/* tm-ui.css */
/*
 * TM UI - the shared component library (TM Core 1.80.59, 2026-10-29, Kirk).
 *
 * ONE place for the building blocks every page reuses, so no page reinvents a
 * button or an accordion. See them all, with their sizes, on
 * /branding-guide/components/ ([tm_ui_kit], includes/brand/ui.php), and build
 * pages with the tm_ui_*() helpers in the same file rather than hand-written
 * markup. Rules come from the branding guide (/branding-guide/) and from the
 * patterns the site already uses (the FAQ accordion, the homepage bands and
 * glass cards). Change a component HERE and every page that uses it follows.
 *
 * Breakpoints: tablet <= 1024px, phone <= 767px.
 * Every class starts with tmu-. Loaded on every page (css-router.php).
 */

.tmu {
	--tmu-navy: #283071; --tmu-deep: #1B2150; --tmu-orange: #F57B20; --tmu-burnt: #C85A0E;
	--tmu-ink: #3F4150; --tmu-mute: #6B7090; --tmu-pale: #B9CEFF; --tmu-mist: #ECF0FB;
	--tmu-line: #E1E4ED; --tmu-line-dark: #3A4179; --tmu-tint: #FFF1E3; --tmu-tint-line: #F6D4B0;
	--tmu-green: #1E8E4E; --tmu-green-tint: #E6F4EC; --tmu-green-line: #BFDCCB;
	--tmu-shadow: 0 2px 4px rgba(40, 48, 113, .06), 0 14px 32px rgba(40, 48, 113, .12);
	font-family: Poppins, sans-serif; color: var(--tmu-ink); font-size: 16px; line-height: 1.65;
}
.tmu *, .tmu *::before, .tmu *::after { box-sizing: border-box; }
.tmu a { text-decoration: none; }
.tmu p { margin: 0; }
.tmu-wrap { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.tmu-narrow { max-width: 860px; margin: 0 auto; }

/* ---------- Sections: four tones, alternate them for color ---------- */
.tmu-sec { padding: 80px 0; background: #fff; }
.tmu-sec--mist { background: var(--tmu-mist); }
.tmu-sec--navy { background: radial-gradient(circle at top right, #2f3880, #283071 55%); color: var(--tmu-pale); }
.tmu-sec--deep { background: radial-gradient(circle at bottom left, #283071, #1B2150 70%); color: var(--tmu-pale); }
.tmu-sec--tight { padding: 56px 0; }

/* ---------- Type ---------- */
.tmu em { font-style: italic; color: var(--tmu-orange); font-weight: inherit; }
.tmu-label { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--tmu-orange); }
.tmu-label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.tmu-page-label { display: block; margin: 0 0 10px; font-size: 30px; font-weight: 700; line-height: 1.2; color: var(--tmu-orange); }
.tmu-h1 { margin: 0 0 18px; font-size: 46px; font-weight: 600; line-height: 1.2; color: #fff; }
.tmu-h1--hero { font-size: 64px; font-weight: 700; line-height: 1.08; letter-spacing: -1.2px; }
.tmu-h2 { margin: 0 0 12px; font-size: 42px; font-weight: 700; line-height: 1.2; color: var(--tmu-navy); }
.tmu-h3 { margin: 0 0 10px; font-size: 28px; font-weight: 600; line-height: 1.3; color: var(--tmu-orange); }
.tmu-title { margin: 0 0 8px; font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--tmu-navy); }
.tmu-lead { font-size: 18px; line-height: 1.65; }
.tmu-small { font-size: 13px; color: var(--tmu-mute); line-height: 1.6; }
.tmu-sec--navy .tmu-h2, .tmu-sec--deep .tmu-h2, .tmu-sec--navy .tmu-title, .tmu-sec--deep .tmu-title { color: #fff; }

/* Section head: label, H2, one line under it. */
.tmu-head { max-width: 720px; margin: 0 auto 40px; text-align: center; }
.tmu-head .tmu-lead { margin-top: 4px; }
.tmu-head--left { margin-left: 0; text-align: left; }

/* ---------- Hero ---------- */
.tmu-hero { padding: 88px 0 80px; text-align: center; color: var(--tmu-pale); background: radial-gradient(circle at top right, #283071, #1B2150); }
.tmu-hero .tmu-lead { max-width: 700px; margin: 0 auto; color: var(--tmu-pale); }
.tmu-hero .tmu-h1 { max-width: 880px; margin-left: auto; margin-right: auto; }

/* ---------- Buttons (the house button) ---------- */
.tmu-btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 30px; }
.tmu-btns--left { justify-content: flex-start; }
.tmu .tmu-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; padding: 12px 24px; border: 2px solid rgba(185, 206, 255, .5); border-radius: 8px; background: var(--tmu-orange); color: #fff; font: 700 16px/1.65 Poppins, sans-serif; text-align: center; white-space: nowrap; cursor: pointer; transition: background .3s, border-color .3s; }
.tmu .tmu-btn svg { flex: none; width: 16px; height: 16px; fill: currentColor; }
.tmu .tmu-btn:hover, .tmu .tmu-btn:focus-visible { background: var(--tmu-burnt); border-color: #fff; color: #fff; }
.tmu .tmu-btn--navy { background: var(--tmu-navy); }
.tmu .tmu-btn--navy:hover, .tmu .tmu-btn--navy:focus-visible { background: var(--tmu-deep); }
/* Card buttons: smaller, inside cards. */
.tmu .tmu-btn--card { min-height: 44px; padding: 8px 18px; font-size: 14px; font-weight: 600; }
/* Quiet text link with an arrow, on its own line. */
.tmu .tmu-link { display: flex; align-items: center; gap: 6px; width: fit-content; margin-top: 14px; font-size: 15px; font-weight: 600; color: var(--tmu-navy); transition: color .2s; }
.tmu .tmu-link svg { width: 12px; height: 12px; fill: currentColor; transition: transform .2s; }
.tmu a:hover .tmu-link, .tmu .tmu-link:hover { color: var(--tmu-burnt); }
.tmu a:hover .tmu-link svg, .tmu .tmu-link:hover svg { transform: translateX(3px); }
.tmu-sec--navy .tmu-link, .tmu-sec--deep .tmu-link { color: #fff; }
.tmu-sec--navy a:hover .tmu-link, .tmu-sec--deep a:hover .tmu-link { color: var(--tmu-orange); }

/* ---------- Badges ---------- */
.tmu-badge { display: inline-block; padding: 3px 12px; border-radius: 999px; background: var(--tmu-navy); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
.tmu-badge--orange { background: var(--tmu-orange); }
/* Savings: green (Kirk, 2026-10-29). */
.tmu-save { display: inline-block; padding: 4px 14px; border-radius: 999px; background: var(--tmu-green-tint); border: 1px solid var(--tmu-green-line); color: var(--tmu-green); font-size: 13px; font-weight: 700; }

/* ---------- Grids ---------- */
.tmu-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.tmu-grid--2 { grid-template-columns: repeat(2, 1fr); }
.tmu-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* ---------- Cards ---------- */
.tmu-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; height: 100%; padding: 26px; border: 1px solid var(--tmu-line); border-radius: 12px; background: #fff; box-shadow: var(--tmu-shadow); color: var(--tmu-ink); transition: border-color .25s, transform .25s; }
a.tmu-card:hover { border-color: var(--tmu-navy); transform: translateY(-2px); }
/* Accent: a 4px orange bar on top. Use for problem or feature cards. */
.tmu-card--accent { border-top: 4px solid var(--tmu-orange); }
/* Glass: on navy and deep sections, like the homepage service tiles. */
.tmu-card--glass { background: rgba(255, 255, 255, .07); border: 1px solid rgba(185, 206, 255, .28); box-shadow: none; color: var(--tmu-pale); }
.tmu-card--glass .tmu-title { color: #fff; }
a.tmu-card--glass:hover { border-color: rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .11); }
/* Featured: the one card that matters most in a row. */
.tmu-card--featured { border: 2px solid var(--tmu-orange); }
.tmu-card .tmu-icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-bottom: 14px; border-radius: 50%; background: var(--tmu-mist); color: var(--tmu-navy); font-weight: 700; }
.tmu-card--glass .tmu-icon { background: rgba(255, 255, 255, .12); color: #fff; }
.tmu-card > * { max-width: 100%; }
.tmu-card > p { margin: 0 0 16px; }
.tmu-card > p:last-child { margin-bottom: 0; }
.tmu-card-foot { display: flex; align-self: stretch; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--tmu-line); font-weight: 700; color: var(--tmu-navy); }
.tmu-card-foot .tmu-link { margin-top: 0; }
.tmu-card > .tmu-link { margin-top: auto; padding-top: 4px; }
.tmu-card .tmu-checks, .tmu-card .tmu-panel, .tmu-card .tmu-btns { align-self: stretch; }
.tmu-card--glass .tmu-card-foot { border-top-color: rgba(185, 206, 255, .25); color: #fff; }

/* ---------- Lists ---------- */
.tmu-checks { list-style: none; margin: 0; padding: 0; }
.tmu-checks li { position: relative; padding: 6px 0 6px 30px; }
.tmu-checks li::before { content: ""; position: absolute; left: 6px; top: 11px; width: 7px; height: 12px; border: solid var(--tmu-navy); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.tmu-sec--navy .tmu-checks li::before, .tmu-sec--deep .tmu-checks li::before { border-color: var(--tmu-orange); }
.tmu-panel { padding: 18px 20px; border-radius: 12px; background: var(--tmu-mist); }

/* ---------- Steps ---------- */
.tmu-steps { display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); counter-reset: tmu-step; }
.tmu-step { text-align: center; }
.tmu-step::before { counter-increment: tmu-step; content: counter(tmu-step); display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin: 0 auto 14px; border-radius: 50%; background: var(--tmu-navy); color: #fff; font-size: 20px; font-weight: 700; }

/* ---------- Split: text one side, a panel the other ---------- */
.tmu-split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }

/* ---------- Price block ---------- */
.tmu-price { font-size: 38px; font-weight: 700; line-height: 1.2; color: var(--tmu-navy); }
.tmu-price small { display: block; margin-top: 4px; font-size: 12px; font-weight: 500; letter-spacing: .5px; text-transform: uppercase; color: var(--tmu-mute); }

/* ---------- Accordion: the site standard (FAQ page, product pages) ---------- */
.tmu-acc details { margin-bottom: 12px; overflow: hidden; border: 1px solid var(--tmu-line); border-radius: 14px; background: #fff; box-shadow: 0 2px 4px rgba(40, 48, 113, .08), 0 16px 36px rgba(40, 48, 113, .16); }
.tmu-acc summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; list-style: none; cursor: pointer; font-size: 18px; font-weight: 600; line-height: 1.4; color: var(--tmu-navy); transition: background .2s, color .2s; }
.tmu-acc summary::-webkit-details-marker { display: none; }
.tmu-acc summary::after { content: ""; flex: 0 0 20px; width: 20px; height: 20px; background: linear-gradient(currentColor, currentColor) center / 20px 4px no-repeat, linear-gradient(currentColor, currentColor) center / 4px 20px no-repeat; }
.tmu-acc summary:hover { background: var(--tmu-tint); }
.tmu-acc details[open] summary { color: var(--tmu-orange); background: var(--tmu-tint); border-bottom: 1px solid var(--tmu-line); }
.tmu-acc details[open] summary::after { background: linear-gradient(currentColor, currentColor) center / 20px 4px no-repeat; }
.tmu-acc details > div { padding: 20px 24px 24px; font-size: 16px; line-height: 1.7; color: var(--tmu-ink); }

/* ---------- Closing call to action band ---------- */
.tmu-cta { padding: 80px 0; text-align: center; color: var(--tmu-pale); background: radial-gradient(circle at bottom left, #283071, #1B2150); }
.tmu-cta .tmu-h2 { color: #fff; }
.tmu-cta .tmu-lead { max-width: 640px; margin: 0 auto; }

/* ---------- Note under a section ---------- */
.tmu-note { margin-top: 18px; text-align: center; font-size: 13px; color: var(--tmu-mute); }
.tmu-sec--navy .tmu-note, .tmu-sec--deep .tmu-note { color: var(--tmu-pale); }

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	.tmu-h1 { font-size: 38px; }
	.tmu-h1--hero { font-size: 40px; }
	.tmu-h2 { font-size: 38px; }
	.tmu-grid--4, .tmu-steps { grid-template-columns: repeat(2, 1fr); }
	.tmu-grid { grid-template-columns: repeat(2, 1fr); }
	.tmu-split { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------- Phone ---------- */
@media (max-width: 767px) {
	.tmu-sec, .tmu-cta { padding: 56px 0; }
	.tmu-hero { padding: 60px 0 56px; }
	.tmu-page-label { font-size: 24px; }
	.tmu-h1 { font-size: 30px; }
	.tmu-h1--hero { font-size: 34px; }
	.tmu-h2 { font-size: 30px; }
	.tmu-h3 { font-size: 24px; }
	.tmu-lead { font-size: 16px; }
	.tmu-grid, .tmu-grid--2, .tmu-grid--4, .tmu-steps { grid-template-columns: 1fr; }
	.tmu .tmu-btn { width: 100%; white-space: normal; }
	.tmu-acc summary { font-size: 16px; padding: 16px 18px; }
	.tmu-card { padding: 22px; }
}

/* ---------- Site-wide rules (every page, not only .tmu) ----------
 * Added 1.80.61 after the style scan of 2026-10-29 (Kirk: "fix them").
 * One highlighted phrase per heading is orange italic (branding guide); 14
 * pages built before TM UI set it navy or white. Page titles are Poppins 600;
 * only the homepage hero is 700. !important because the older pages carry
 * per-element rules from their Elementor days. */
body.tmb-site h1 em, body.tmb-site h2 em { color: #F57B20 !important; font-style: italic; }
body.tmb-site:not(.home) h1.wp-block-heading { font-weight: 600 !important; }
/* How Quotes Work: its quote panel heading is the page title there (1.80.62). */
body.tmb-site h1.tm-qhow__h { font-size: 46px !important; font-weight: 600 !important; line-height: 1.2; }
@media (max-width: 1024px) { body.tmb-site h1.tm-qhow__h { font-size: 38px !important; } }
@media (max-width: 767px) { body.tmb-site h1.tm-qhow__h { font-size: 30px !important; } }

/* Section headings brought onto the scale (1.80.63, style rescan, Kirk: "yes").
 * 42px desktop, 38 tablet, 30 phone. The homepage "Sample Work" display
 * headline (.tm-sw-h) stays large on purpose; Sitemap, legal pages and blog
 * body subheads keep their smaller document headings. */
body.tmb-site #tm-pw .tm-pw-h,
body.tmb-site .tm-hm-bundle-txt h2,
body.home.tmb-site .tm-sec h2.wp-block-heading:not(.tm-sw-h),
body.tmb-site .tm-bp-guide h2,
body.tmb-site .tmck-faq h2,
body.tmb-site.page-id-8194 .band-head .h2 { font-size: 42px !important; font-weight: 700 !important; line-height: 1.2 !important; }
@media (max-width: 1024px) {
	body.tmb-site #tm-pw .tm-pw-h, body.tmb-site .tm-hm-bundle-txt h2, body.home.tmb-site .tm-sec h2.wp-block-heading:not(.tm-sw-h), body.tmb-site .tm-bp-guide h2, body.tmb-site .tmck-faq h2, body.tmb-site.page-id-8194 .band-head .h2 { font-size: 38px !important; }
}
@media (max-width: 767px) {
	body.tmb-site #tm-pw .tm-pw-h, body.tmb-site .tm-hm-bundle-txt h2, body.home.tmb-site .tm-sec h2.wp-block-heading:not(.tm-sw-h), body.tmb-site .tm-bp-guide h2, body.tmb-site .tmck-faq h2, body.tmb-site.page-id-8194 .band-head .h2 { font-size: 30px !important; }
}
/* Contact page: its headings sit inside two side-by-side cards, so they take the
 * subhead size (28px, 24 on phones) rather than the 42px section size. */
body.tmb-site.page-id-2562 h2[class*="e-heading"] { font-size: 28px !important; font-weight: 700 !important; line-height: 1.25 !important; }
@media (max-width: 767px) { body.tmb-site.page-id-2562 h2[class*="e-heading"] { font-size: 24px !important; } }
/* Contact page: "Email" and "Based In" label contact cards, so they are card titles. */
body.tmb-site.page-id-2562 h2.wp-block-heading:not([class*="e-heading"]) { font-size: 18px !important; font-weight: 700 !important; line-height: 1.35 !important; }

/* ---------- Callout: a readable one-line aside with a link (1.80.68) ----------
 * For a sentence that matters (not small print), set apart below a section. */
.tmu-sec--tight > .tmu-wrap > .tmu-callout:first-child { margin-top: 0; }
.tmu-callout { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px 18px; max-width: 760px; margin: 56px auto 0; padding: 22px 28px; border: 1px solid var(--tmu-line); border-radius: 12px; background: #fff; box-shadow: var(--tmu-shadow); text-align: center; font-size: 16px; line-height: 1.6; color: var(--tmu-ink); }
.tmu-callout b { color: var(--tmu-navy); }
.tmu-callout .tmu-link { margin-top: 0; }
.tmu-sec--navy .tmu-callout, .tmu-sec--deep .tmu-callout { background: rgba(255, 255, 255, .07); border-color: rgba(185, 206, 255, .28); box-shadow: none; color: var(--tmu-pale); }
.tmu-sec--navy .tmu-callout b, .tmu-sec--deep .tmu-callout b { color: #fff; }
@media (max-width: 767px) { .tmu-callout { margin-top: 40px; padding: 20px; flex-direction: column; } }

/* Link cards keep their text colors on hover (1.80.69, Kirk): the site's
 * general a:hover color was turning card descriptions orange. Only the card's
 * own link (.tmu-link) changes color. */
.tmu a.tmu-card:hover, .tmu a.tmu-card:focus-visible { color: var(--tmu-ink); }
.tmu a.tmu-card:hover .tmu-title { color: var(--tmu-navy); }
.tmu a.tmu-card--glass:hover, .tmu a.tmu-card--glass:focus-visible { color: var(--tmu-pale); }
.tmu a.tmu-card--glass:hover .tmu-title, .tmu a.tmu-card--glass:hover .tmu-card-foot > span:first-child { color: #fff; }


/* tm-header.css */
/*
 * Header and off-canvas menu fixes. Site-wide - the header is on every page.
 *
 * Moved out of assets/header-ui.php in 1.54.0, where it was printed inline in
 * wp_head on every page view (4.6KB of HTML no browser could cache). As a file
 * it is cached across pages. Enqueued straight after tm-global.css, which was
 * verified to give identical computed style to the old inline position (every
 * element, 3 pages desktop + 2 phone).
 *
 * THESE SELECTORS ARE HARD-CODED ELEMENTOR ELEMENT IDs (a19ba31, 2d5fa15c,
 * 4b9be595, 287257ba, 5a44ab6c, 4fb743c, 09e9dd2 in header template 2491 and its
 * off-canvas). If the header is rebuilt they go stale silently. When it is next
 * rebuilt, give those widgets CSS classes and switch these rules to them.
 */

/* tm-mobile-header-fixes */
@media (max-width:1024px){
  .elementor-2491 .elementor-element-a19ba31,
  .elementor-2491 .elementor-sticky .elementor-element-a19ba31,
  .elementor-2491 .elementor-sticky__spacer .elementor-element-a19ba31{
    display:inline-flex !important;
  }
  .elementor-element-a19ba31 .tm-acct-name{ display:none !important; }
  .elementor-element-a19ba31 .tm-acct-menu{
    display:none !important;
    pointer-events:none !important;
  }
}
@media (max-width:1024px){
  .elementor-element-2d5fa15c .elementor-element-4b9be595 nav.elementor-nav-menu--main,
  .elementor-element-2d5fa15c .elementor-element-4b9be595 ul.elementor-nav-menu,
  .elementor-element-2d5fa15c .elementor-element-4b9be595 ul.elementor-nav-menu > li{
    display:block !important;
  }
  .elementor-element-2d5fa15c .elementor-element-287257ba nav.elementor-nav-menu--main,
  .elementor-element-2d5fa15c .elementor-element-287257ba ul.elementor-nav-menu,
  .elementor-element-2d5fa15c .elementor-element-287257ba ul.elementor-nav-menu > li{
    display:block !important;
  }
}

/* tm-offcanvas-polish */
.elementor-element-2d5fa15c .elementor-element-5a44ab6c{
  padding-left:20px !important;
  padding-right:20px !important;
}

.elementor-element-2d5fa15c .elementor-element-4fb743c,
.elementor-element-2d5fa15c .elementor-element-09e9dd2{
  align-self:center !important;
  width:auto !important;
  max-width:100% !important;
}
.elementor-element-2d5fa15c .elementor-element-4fb743c .elementor-button,
.elementor-element-2d5fa15c .elementor-element-09e9dd2 .elementor-button{
  width:auto !important;
  min-width:270px !important;
  max-width:100% !important;
  padding-left:24px !important;
  padding-right:24px !important;
  text-align:center !important;
  justify-content:center !important;
}
.elementor-element-2d5fa15c .elementor-element-09e9dd2{
  margin-top:-6px !important;
}

.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-menu{
  display:block !important;
  position:static !important;
  visibility:inherit !important;
  opacity:1 !important;
  transform:none !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:2px 0 6px !important;
  padding:0 0 0 14px !important;
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
}
.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-menu .elementor-sub-item{
  display:block !important;
  padding:9px 12px 9px 16px !important;
  border-radius:8px !important;
  font-size:15px !important;
  font-weight:500 !important;
  color:#FFFFFF !important;
  opacity:.82 !important;
}
.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover{
  opacity:1 !important;
  color:#F57B20 !important;
  background:rgba(255,255,255,.05) !important;
}

.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .sub-arrow,
.elementor-element-2d5fa15c .elementor-element-4b9be595 .elementor-nav-menu--main .elementor-item .sub-arrow{
  display:none !important;
}

/* tm-acct-ico-mask */
.tm-acct-trigger .tm-acct-ico{display:none !important;}.tm-acct-trigger::after{content:"" !important;display:inline-block !important;width:28px !important;height:28px !important;margin-left:8px !important;vertical-align:middle !important;background-color:#283071 !important;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%20stroke=%27%23283071%27%20stroke-width=%272%27%3E%3Ccircle%20cx=%2712%27%20cy=%2712%27%20r=%279%27/%3E%3Ccircle%20cx=%2712%27%20cy=%2710%27%20r=%273%27/%3E%3Cpath%20d=%27M6.2%2018.8a4%204%200%200%201%203.8-2.8h4a4%204%200%200%201%203.8%202.8%27/%3E%3C/svg%3E") center / contain no-repeat !important;mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2024%2024%27%20fill=%27none%27%20stroke=%27%23283071%27%20stroke-width=%272%27%3E%3Ccircle%20cx=%2712%27%20cy=%2712%27%20r=%279%27/%3E%3Ccircle%20cx=%2712%27%20cy=%2710%27%20r=%273%27/%3E%3Cpath%20d=%27M6.2%2018.8a4%204%200%200%201%203.8-2.8h4a4%204%200%200%201%203.8%202.8%27/%3E%3C/svg%3E") center / contain no-repeat !important;}.tm-acct-trigger:hover::after,.tm-acct-trigger:focus-visible::after{background-color:#F57B20 !important;}.e-off-canvas .tm-acct-trigger::after{background-color:#ffffff !important;}.e-off-canvas .tm-acct-trigger:hover::after,.e-off-canvas .tm-acct-trigger:focus-visible::after{background-color:#ffffff !important;}

