/* MatchaOEM button and text-link system v2.0.4.
 * This file is loaded last so shared action states remain predictable.
 */

.tm-btn {
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:10px;
 min-height:52px;
 padding:13px 22px;
 border:1px solid var(--tm-matcha);
 border-radius:999px;
 background:var(--tm-matcha);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 font-weight:760;
 line-height:1.2;
 box-shadow:0 10px 26px rgba(111,150,56,.22);
 transition:background-color .22s ease,border-color .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.tm-btn:visited { color:#fff!important; }
.tm-btn:hover,
.tm-btn:focus-visible {
 background:var(--tm-forest);
 border-color:var(--tm-forest);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 transform:translateY(-2px);
 box-shadow:0 16px 34px rgba(18,59,44,.23);
}
.tm-btn svg { width:18px;height:18px;fill:currentColor; }

.tm-btn--ghost,
.tm-btn--ghost:visited {
 background:transparent;
 color:var(--tm-forest)!important;
 -webkit-text-fill-color:var(--tm-forest);
 border-color:rgba(18,59,44,.24);
 box-shadow:none;
}
.tm-btn--ghost:hover,
.tm-btn--ghost:focus-visible {
 background:var(--tm-forest);
 border-color:var(--tm-forest);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
}

/* Buttons placed on deep-green surfaces share one contrast-safe interaction. */
.tm-btn--on-dark,
.tm-btn--on-dark:visited,
.tm-btn--final,
.tm-btn--final:visited,
.tm-section--dark .tm-btn:not(.tm-btn--ghost),
.tm-section--dark .tm-btn:not(.tm-btn--ghost):visited,
.tm-dark-surface .tm-btn:not(.tm-btn--ghost),
.tm-dark-surface .tm-btn:not(.tm-btn--ghost):visited {
 background:var(--tm-matcha);
 border-color:var(--tm-matcha);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 box-shadow:0 10px 26px rgba(0,0,0,.16);
}
.tm-btn--on-dark:hover,
.tm-btn--on-dark:focus-visible,
.tm-btn--final:hover,
.tm-btn--final:focus-visible,
.tm-section--dark .tm-btn:not(.tm-btn--ghost):hover,
.tm-section--dark .tm-btn:not(.tm-btn--ghost):focus-visible,
.tm-dark-surface .tm-btn:not(.tm-btn--ghost):hover,
.tm-dark-surface .tm-btn:not(.tm-btn--ghost):focus-visible {
 background:#fff;
 border-color:#fff;
 color:var(--tm-forest)!important;
 -webkit-text-fill-color:var(--tm-forest);
 box-shadow:0 16px 36px rgba(0,0,0,.2);
}
.tm-section--dark .tm-btn--ghost,
.tm-section--dark .tm-btn--ghost:visited,
.tm-dark-surface .tm-btn--ghost,
.tm-dark-surface .tm-btn--ghost:visited {
 background:transparent;
 border-color:rgba(255,255,255,.72);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 box-shadow:none;
}
.tm-section--dark .tm-btn--ghost:hover,
.tm-section--dark .tm-btn--ghost:focus-visible,
.tm-dark-surface .tm-btn--ghost:hover,
.tm-dark-surface .tm-btn--ghost:focus-visible {
 background:#fff;
 border-color:#fff;
 color:var(--tm-forest)!important;
 -webkit-text-fill-color:var(--tm-forest);
}

.header-cta,
.header-cta:visited,
.primary-nav .mobile-menu-cta,
.primary-nav .mobile-menu-cta:visited {
 background:var(--tm-matcha);
 border-color:var(--tm-matcha);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 box-shadow:0 8px 20px rgba(73,111,43,.16);
 transition:background-color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.header-cta:hover,
.header-cta:focus-visible,
.primary-nav .mobile-menu-cta:hover,
.primary-nav .mobile-menu-cta:focus-visible {
 background:var(--tm-forest);
 border-color:var(--tm-forest);
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 transform:translateY(-1px);
 box-shadow:0 12px 26px rgba(16,53,38,.2);
}

/* Fluent Forms ships highly specific button rules, so only the plugin override uses !important. */
.tm-form-panel .ff-btn-submit {
 background:var(--tm-matcha)!important;
 border-color:var(--tm-matcha)!important;
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 box-shadow:0 10px 26px rgba(111,150,56,.22);
 transition:background-color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.tm-form-panel .ff-btn-submit:hover,
.tm-form-panel .ff-btn-submit:focus {
 background:var(--tm-forest)!important;
 border-color:var(--tm-forest)!important;
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 transform:translateY(-2px);
 box-shadow:0 16px 34px rgba(18,59,44,.23);
}

@media(prefers-reduced-motion:reduce) {
 .tm-btn,.header-cta,.primary-nav .mobile-menu-cta,.tm-form-panel .ff-btn-submit {
  transition:none!important;
  transform:none!important;
 }
}

/* v1.31.0 — Unified inline text-link palette across light and dark sections. */
:root{--tm-text-link-accent:#7fa247;--tm-text-link-dark:var(--tm-forest)}

:where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-product-card__cta,
 .tm-about-capability-card__body>span:last-child,
 .tm-about-buyer-card>span:last-child,
 .tm-ind-overview-card__body>span,
 .tm-ind-portfolio__body>span,
 .tm-res-hero__routes b,
 .tm-res-decision-card b,
 .tm-res-topic-grid span,
 .tm-products-map__assist a,
 .tm-products-final__link
){
 display:inline-flex;
 align-items:center;
 gap:7px;
 color:var(--tm-text-link-accent)!important;
 -webkit-text-fill-color:var(--tm-text-link-accent)!important;
 font-weight:780;
 text-decoration:none;
 transition:color .22s ease,-webkit-text-fill-color .22s ease;
}

:where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-product-card__cta,
 .tm-about-capability-card__body>span:last-child,
 .tm-about-buyer-card>span:last-child,
 .tm-ind-overview-card__body>span,
 .tm-ind-portfolio__body>span,
 .tm-res-hero__routes b,
 .tm-res-decision-card b,
 .tm-res-topic-grid span,
 .tm-products-map__assist a,
 .tm-products-final__link
) svg{
 width:16px;
 height:16px;
 flex:0 0 16px;
 fill:currentColor;
 transition:transform .22s ease;
}

:where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-products-map__assist a,
 .tm-products-final__link
):hover,
:where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-products-map__assist a,
 .tm-products-final__link
):focus-visible,
.tm-product-card:hover .tm-product-card__cta,
.tm-product-card:focus-within .tm-product-card__cta,
.tm-about-capability-card:hover .tm-about-capability-card__body>span:last-child,
.tm-about-capability-card:focus-visible .tm-about-capability-card__body>span:last-child,
.tm-about-buyer-card:hover>span:last-child,
.tm-about-buyer-card:focus-visible>span:last-child,
.tm-ind-overview-card:hover .tm-ind-overview-card__body>span,
.tm-ind-overview-card:focus-within .tm-ind-overview-card__body>span,
.tm-ind-portfolio article:hover .tm-ind-portfolio__body>span,
.tm-ind-portfolio article:focus-within .tm-ind-portfolio__body>span,
.tm-res-hero__routes a:hover b,
.tm-res-hero__routes a:focus-visible b,
.tm-res-decision-card:hover b,
.tm-res-decision-card:focus-visible b,
.tm-res-topic-grid>a:hover span,
.tm-res-topic-grid>a:focus-visible span{
 color:var(--tm-text-link-dark)!important;
 -webkit-text-fill-color:var(--tm-text-link-dark)!important;
}

:where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-products-map__assist a,
 .tm-products-final__link
):hover svg,
:where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-products-map__assist a,
 .tm-products-final__link
):focus-visible svg,
.tm-product-card:hover .tm-product-card__cta svg,
.tm-product-card:focus-within .tm-product-card__cta svg,
.tm-about-capability-card:hover .tm-about-capability-card__body>span:last-child svg,
.tm-about-capability-card:focus-visible .tm-about-capability-card__body>span:last-child svg,
.tm-about-buyer-card:hover>span:last-child svg,
.tm-about-buyer-card:focus-visible>span:last-child svg,
.tm-ind-overview-card:hover .tm-ind-overview-card__body>span svg,
.tm-ind-overview-card:focus-within .tm-ind-overview-card__body>span svg,
.tm-ind-portfolio article:hover .tm-ind-portfolio__body>span svg,
.tm-ind-portfolio article:focus-within .tm-ind-portfolio__body>span svg,
.tm-res-hero__routes a:hover b svg,
.tm-res-hero__routes a:focus-visible b svg,
.tm-res-decision-card:hover b svg,
.tm-res-decision-card:focus-visible b svg,
.tm-res-topic-grid>a:hover span svg,
.tm-res-topic-grid>a:focus-visible span svg{
 transform:translateX(3px);
}

/* Reverse inline links on dark panels so contrast remains strong. */
:where(
 .tm-section--dark,
 .tm-dark-surface,
 .tm-pd-section--dark,
 .tm-pd-hero__tech,
 .tm-blog-framework__panel,
 .tm-res-tools,
 .tm-cta,
 .tm-ind-final__panel,
 .tm-products-map,
 .tm-products-final__panel,
 .tm-cert-page-evidence
) :where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-product-card__cta,
 .tm-res-hero__routes b,
 .tm-res-decision-card b,
 .tm-res-topic-grid span,
 .tm-products-map__assist a,
 .tm-products-final__link
){
 color:var(--tm-lime)!important;
 -webkit-text-fill-color:var(--tm-lime)!important;
}

:where(
 .tm-section--dark,
 .tm-dark-surface,
 .tm-pd-section--dark,
 .tm-pd-hero__tech,
 .tm-blog-framework__panel,
 .tm-res-tools,
 .tm-cta,
 .tm-ind-final__panel,
 .tm-products-map,
 .tm-products-final__panel,
 .tm-cert-page-evidence
) :where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-product-card__cta,
 .tm-res-hero__routes b,
 .tm-res-decision-card b,
 .tm-res-topic-grid span,
 .tm-products-map__assist a,
 .tm-products-final__link
):hover,
:where(
 .tm-section--dark,
 .tm-dark-surface,
 .tm-pd-section--dark,
 .tm-pd-hero__tech,
 .tm-blog-framework__panel,
 .tm-res-tools,
 .tm-cta,
 .tm-ind-final__panel,
 .tm-products-map,
 .tm-products-final__panel,
 .tm-cert-page-evidence
) :where(
 .tm-text-link,
 .tm-blog-card__link,
 .tm-products-card__link,
 .tm-capability-card__link,
 .tm-ship-controls__link,
 .tm-product-card__cta,
 .tm-res-hero__routes b,
 .tm-res-decision-card b,
 .tm-res-topic-grid span,
 .tm-products-map__assist a,
 .tm-products-final__link
):focus-visible{
 color:#fff!important;
 -webkit-text-fill-color:#fff!important;
}

@media(prefers-reduced-motion:reduce){
 :where(.tm-text-link,.tm-blog-card__link,.tm-products-card__link,.tm-capability-card__link,.tm-ship-controls__link,.tm-product-card__cta,.tm-products-map__assist a,.tm-products-final__link) svg{transition:none!important;transform:none!important}
}
