/*
Theme Name: Thryve Biz
Theme URI: https://thryvewp.com/themes/thryve-biz
Author: thryvewp
Author URI: https://thryvewp.com/
Description: Thryve Biz is a modern and versatile Full Site Editing (FSE) WordPress theme designed for businesses, consulting firms, agencies, and professional service providers. Built entirely with Gutenberg blocks, it enables easy, code-free customization while maintaining a clean design, fast performance, and fully responsive layouts. With full WooCommerce compatibility, Thryve Biz makes it simple to build corporate websites, service-based platforms, and professional online stores, making it a reliable choice for startups, growing companies, and established enterprises seeking a flexible and polished web presence.
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.0
Version: 1.12
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thryve-biz
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations,  blog, portfolio, education
*/

html {
	scroll-behavior: smooth;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--white);
    color: var(--wp--preset--color--black);
    border: 1px solid #ffffff;
}

.sticky-header {
  position: sticky;
  z-index: 9;
  top: 0;
}

footer.wp-block-template-part {
  margin-top: 0;
}

.thryve-biz-no-underline a {
  text-decoration: none;
}

/* sub menu style for desktop */

@media (min-width: 599px) {
  .main-header ul.wp-block-navigation__submenu-container li {
    border-bottom: 1px solid #eee;
  }

  .main-header ul.wp-block-navigation__submenu-container {
    border-radius: 5px !important;
	box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  }
}

/* navigation link hover css */

@media (min-width: 1024px) {

  /* Navigation links */
  .wp-block-navigation__container a {
    position: relative;
    text-decoration: none;
    color: #000;
    transition: color 0.3s ease;
  }

  /* Underline line */
  .wp-block-navigation__container a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 2px;
    background: var(--wp--preset--color--primary);
    transition: width 0.3s ease;
  }

  /* Hover underline slides from left to right */
  .wp-block-navigation__container a:hover::after {
    width: 100%;
  }

  /* Active (current page) underline */
  .wp-block-navigation__container .is-active>a::after,
  .wp-block-navigation__container .current-menu-item>a::after {
    width: 100%;
  }

  /* Optional: active link color */
  .wp-block-navigation__container .is-active>a,
  .wp-block-navigation__container .current-menu-item>a {
    color: var(--wp--preset--color--primary);
  }
}

/* pagination css */

.page-numbers {
  padding: 0 10px 10px;
  text-decoration: none;
}

.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
  text-decoration: none;
}

.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:hover {
  color: var(--wp--preset--color--primary);
}

.page-numbers.current,
.page-numbers:hover {
  border-bottom: 1px solid var(--wp--preset--color--primary);
}

/* sidebar css */

.wp-block-categories-list a:hover,
.wp-block-latest-posts__post-title:hover {
  color: var(--wp--preset--color--primary);
}

.wp-block-latest-posts.wp-block-latest-posts__list{
	overflow: hidden;
}

/* search css */

.wp-block-search__inside-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.wp-block-search__input {
  width: 100%;
  border: none;
  border-bottom: 1px solid #8d8d8d;
  background: transparent !important;
  padding: 8px 35px 8px 0;
  font-size: 14px;
  color: #000;
  outline: none;
  border-radius: 0 !important;
}

.wp-block-search__input::placeholder {
  color: #000;
}

.wp-block-search__button {
  position: absolute;
  right: 0;
  background: transparent !important;
  border: none;
  padding: 0 !important;
  cursor: pointer;
}

.wp-block-search__button svg {
  width: 16px;
  height: 16px;
  fill: #000;
}

/* contact us section */

.contact-us form label, 
.contact-us form input::placeholder,
.contact-us form textarea::placeholder {
	color: #ffffff;
}

.contact-us form input.wpcf7-form-control,
.contact-us form textarea {
  width: -webkit-fill-available;
  height: 30px;
  background: transparent;
  padding: 10px;
  border: 1px solid #a4a4a4;
  max-width: 100%;
  border-radius: 5px;
  margin-top: 10px;
  font-family: inherit;
  color: #ffffff;
}

.contact-us form textarea {
  height: 100px;
}

.contact-us input.wpcf7-form-control.wpcf7-submit.has-spinner {
  background: #ffffff;
  color: #000000;
  height: 50px;
  border-radius: 50px;
  cursor: pointer;
  width: 120px;
  border: none;
  font-size: 14px;
  text-transform: uppercase;
  font-weight: 600;
  font-family: inherit;
}

/* responsive style */

@media (max-width: 768px) {
  .wp-block-site-logo img {
    width: 170px;
  }

  .thryve-biz-header-btn {
    display: none !important;
  }

  .thryve-biz-banner-header {
    font-size: 36px !important;
  }

  .responsive-spacing {
    padding: 60px 20px !important;
  }

  .responsive-image {
    min-height: 300px !important;
  }

  /* 移动端首页 hero 海报：仅移动端换成竖版 hero-mobile.jpg，桌面端 packmashine-01.jpg 不变 */
  body.home .wp-block-cover,
  body.home .wp-block-cover .wp-block-cover__background {
    background-image: url('assets/images/hero-mobile.jpg') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }

  /* 修复：移动端隐藏 cover block 自带横版 img，避免与 hero-mobile.jpg 叠加成两张图 */
  body.home .wp-block-cover img.wp-block-cover__image-background {
    display: none !important;
  }

  /* 文字移到上半部分安全区，避让位于下半部分的产品；顶部渐变蒙层保证可读 */
  body.home .wp-block-cover {
    justify-content: flex-start;
    align-items: flex-start;
  }
  body.home .wp-block-cover .wp-block-cover__inner-container {
    justify-content: flex-start;
    align-items: flex-start;
    margin-top: 0 !important;
    max-width: 100% !important;
    width: 100%;
    padding: 52px 24px 0;
    text-align: left;
  }
  body.home .wp-block-cover .wp-block-cover__inner-container h1,
  body.home .wp-block-cover .wp-block-cover__inner-container p {
    color: #ffffff;
    text-shadow: 0 1px 8px rgba(0,0,0,0.55);
  }

  .wp-block-button__link {
    padding: 10px 20px !important;
  }

  .thryve-biz-section-title-wrapper {
    padding-bottom: 40px !important;
  }

  .footer-wrapper {
    padding: 40px 0 !important;
  }

	.service-spacing{
		padding: 30px !important;
	}
}

/* ── Footer pattern: block editor generated container classes ──
   Custom PHP templates using block_template_part() do not
   auto-inject these. Added 2026-07-14 to fix machine page footer.
   Source: wp-container-core-* rules from contact page.          */
.wp-container-core-group-is-layout-f0b6b26e { gap: 0px; flex-direction: column; align-items: flex-start; }
.wp-container-core-group-is-layout-bce0c455 { gap: var(--wp--preset--spacing--10); flex-direction: column; align-items: flex-start; }
.wp-container-core-navigation-is-layout-bce0c455 { gap: var(--wp--preset--spacing--10); flex-direction: column; align-items: flex-start; }
.wp-container-core-group-is-layout-d8dce8eb { flex-direction: column; align-items: stretch; }
.wp-container-core-group-is-layout-cf54d0a6 { justify-content: space-between; align-items: flex-start; }
.wp-container-core-columns-is-layout-3a84d418 { flex-wrap: nowrap; gap: 1.2rem var(--wp--preset--spacing--50); }
.wp-container-core-group-is-layout-7c695195 { justify-content: space-between; }
.wp-container-core-group-is-layout-1772f56a > .alignfull { margin-right: calc(-20px); margin-left: calc(-20px); }

/* ===== Missing block layout CSS =====
   Pre-rendered template content (wp_template DB record) bypasses
   FSE inline style generation. These would normally be auto-injected
   by the block editor style engine. Added 2026-07-14.
   ============================================================ */

/* Content justification utilities (for Group, Columns, etc.) */
.is-content-justification-left { justify-content: flex-start !important; }
.is-content-justification-center { justify-content: center !important; }
.is-content-justification-right { justify-content: flex-end !important; }
.is-content-justification-space-between { justify-content: space-between !important; }
.is-content-justification-stretch { align-items: stretch !important; }

/* Flex wrap utility */
.is-nowrap { flex-wrap: nowrap !important; }

/* Header: main flex container (logo left, nav right) */
.wp-container-core-group-is-layout-1d0a7695 {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}

/* Header: nav + button group */
.wp-container-core-group-is-layout-ef60ef25 {
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}

/* Header: navigation right-aligned */
.wp-container-core-navigation-is-layout-fb1c21fe {
    flex-wrap: wrap;
    gap: 1.2rem;
    justify-content: flex-end;
    align-items: center;
}

/* Header: main-header constrained wrapper */
.wp-container-core-group-is-layout-2eadce09 > .alignfull {
    margin-right: calc(20px * -1);
    margin-left: calc(20px * -1);
}

/* Header: nav wrapper constrained */
.wp-container-core-group-is-layout-aa2a43b6 > .alignfull {
    margin-right: calc(0px * -1);
    margin-left: calc(0px * -1);
}

/* Body content: intro block constrained wrapper */
.wp-container-core-group-is-layout-f85523ce > .alignfull {
    margin-right: calc(var(--wp--preset--spacing--50) * -1);
    margin-left: calc(var(--wp--preset--spacing--50) * -1);
}

/* Body content: center constrained inner */
.wp-container-core-group-is-layout-895b816c > * {
    max-width: 720px;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Containers used in body sections */
.wp-container-core-group-is-layout-08712b09 {
    justify-content: center;
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}
.wp-container-core-buttons-is-layout-dfc69a47 {
    justify-content: center;
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}
.wp-container-core-group-is-layout-dd24c7fa {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.wp-container-core-buttons-is-layout-977e0fea {
    justify-content: flex-start;
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}
.wp-container-core-group-is-layout-acec27c0 {
    gap: 1.2rem;
    flex-wrap: nowrap;
    align-items: center;
}
.wp-container-core-group-is-layout-8f4d0cb1 {
    justify-content: flex-start;
}

/* Footer: inner bottom bar */
.wp-container-core-group-is-layout-8307adad {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.wp-container-core-group-is-layout-394a7d63 > .alignfull {
    margin-right: calc(var(--wp--preset--spacing--50) * -1);
    margin-left: calc(var(--wp--preset--spacing--50) * -1);
}
.wp-container-core-group-is-layout-5dfad9db {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}

/* ===== Missing block layout CSS =====
   Pre-rendered template content (wp_template DB record) bypasses
   FSE inline style generation. These would normally be auto-injected
   by the block editor style engine. Added 2026-07-14.
   ============================================================ */

/* Content justification utilities (for Group, Columns, etc.) */
.is-content-justification-left { justify-content: flex-start !important; }
.is-content-justification-center { justify-content: center !important; }
.is-content-justification-right { justify-content: flex-end !important; }
.is-content-justification-space-between { justify-content: space-between !important; }
.is-content-justification-stretch { align-items: stretch !important; }

/* Flex wrap utility */
.is-nowrap { flex-wrap: nowrap !important; }

/* Header: main flex container (logo left, nav right) */
.wp-container-core-group-is-layout-1d0a7695 {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}

/* Header: nav + button group */
.wp-container-core-group-is-layout-ef60ef25 {
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}

/* Header: navigation right-aligned */
.wp-container-core-navigation-is-layout-fb1c21fe {
    flex-wrap: wrap;
    gap: 1.2rem;
    justify-content: flex-end;
    align-items: center;
}

/* Header: main-header constrained wrapper */
.wp-container-core-group-is-layout-2eadce09 > .alignfull {
    margin-right: calc(20px * -1);
    margin-left: calc(20px * -1);
}

/* Header: nav wrapper constrained */
.wp-container-core-group-is-layout-aa2a43b6 > .alignfull {
    margin-right: calc(0px * -1);
    margin-left: calc(0px * -1);
}

/* Body content: intro block constrained wrapper */
.wp-container-core-group-is-layout-f85523ce > .alignfull {
    margin-right: calc(var(--wp--preset--spacing--50) * -1);
    margin-left: calc(var(--wp--preset--spacing--50) * -1);
}

/* Body content: center constrained inner */
.wp-container-core-group-is-layout-895b816c > * {
    max-width: 720px;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Containers used in body sections */
.wp-container-core-group-is-layout-08712b09 {
    justify-content: center;
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}
.wp-container-core-buttons-is-layout-dfc69a47 {
    justify-content: center;
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}
.wp-container-core-group-is-layout-dd24c7fa {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.wp-container-core-buttons-is-layout-977e0fea {
    justify-content: flex-start;
    gap: 1.2rem;
    flex-wrap: wrap;
    align-items: center;
}
.wp-container-core-group-is-layout-acec27c0 {
    gap: 1.2rem;
    flex-wrap: nowrap;
    align-items: center;
}
.wp-container-core-group-is-layout-8f4d0cb1 {
    justify-content: flex-start;
}

/* Footer: inner bottom bar */
.wp-container-core-group-is-layout-8307adad {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.wp-container-core-group-is-layout-394a7d63 > .alignfull {
    margin-right: calc(var(--wp--preset--spacing--50) * -1);
    margin-left: calc(var(--wp--preset--spacing--50) * -1);
}
.wp-container-core-group-is-layout-5dfad9db {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.2rem;
}

/* [TEMP-HIDE] 暂时隐藏页眉多语言切换模块 .lang-switch。需要恢复显示时删除本段即可。 added 20260716 */
.lang-switch { display: none !important; }

/* [2026-07-17] RFQ cart variation fix A: remove default p margin/padding inside dl.variation dd so spec values align on same line as labels */
.woocommerce table.cart dl.variation dd p { margin: 0 !important; padding: 0 !important; }



































/* === 整站字体更换 2026-07-25: Archivo 标题 / Inter 正文 (中文回退系统字体, 已移除 Noto 自托管) === */
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;}
h1,h2,h3,h4,h5,h6{font-family:'Archivo',system-ui,sans-serif;}

/* 修复首页 hero 封面横向溢出：封面为 content-box + 8% 内边距，渲染宽 1485px 溢出视口；
   强制 border-box 使内边距计入宽度内。2026-07-25 */
.wp-block-cover,
.wp-block-cover__inner-container { box-sizing: border-box !important; }

@media (max-width: 600px) {
  /* 修复：原 .brand img{max-width:130px} 会把 logo 锁宽并压扁；
     改由页眉专用选择器等比缩放，并把搜索按钮移入抽屉。2026-07-30 */
  .site-header .hdr-inner { padding: 0 16px; gap: 10px; }
  .site-header .brand { min-width: 0; flex: 0 1 auto; }
  .site-header .brand-logo-img { height: 30px; width: auto; max-width: 170px; object-fit: contain; }
  .site-header .hdr-actions { min-width: 0; flex: 0 1 auto; gap: 8px; }
  .site-header .icon-btn { width: 38px; height: 38px; }
  .site-header .burger { width: 40px; height: 40px; }
  .site-header .quote-btn { height: 38px; padding: 0 14px; }
  /* 搜索入口移入汉堡抽屉：移动端页眉隐藏搜索按钮与全屏搜索层 */
  .site-header .hdr-actions .icon-btn[aria-label="Search"] { display: none; }
  .site-header .search-overlay { display: none !important; }
}

/* [2026-07-29] 隐藏 Woo Variation Gallery 主图右上角的放大/灯箱触发角标（小方框） */
.woo-variation-gallery-trigger { display: none !important; }

/* 2026-08-03: 短说明与产品尺寸间距 fix */
.wp-block-post-excerpt { margin-bottom: 32px !important; }
/* ===== WorkBuddy FAQ Module (scoped: .wb-faq) — native <details>/<summary>, no JS =====
   Specificity deliberately raised (.wb-faq.wb-faq root + .wb-faq descendant prefix) so the
   module is immune to generic resets like ".df-resources *" that would otherwise zero its
   margin/padding and break the layout on category landing pages. */
.wb-faq.wb-faq{ max-width:1200px; margin:0 auto; padding:80px 20px; font-family:inherit; color:#1a1a1a; line-height:1.5; }
.wb-faq *{ box-sizing:border-box; }
.wb-faq .wb-faq__head{ margin-bottom:48px; }
.wb-faq .wb-faq__eyebrow{ display:inline-block; font-size:13px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#000; padding-bottom:8px; border-bottom:2px solid #000; margin:0 0 16px; }
.wb-faq .wb-faq__title, .wb-product-table-h2{ font-family:inherit; font-size:34px; line-height:1.15; font-weight:700; margin:0; letter-spacing:-.01em; }
.wb-product-table-h2{ margin-block:2rem 1.5rem; }
.wb-faq .wb-faq__list{ border-top:1px solid #e2e2e2; }
.wb-faq .wb-faq__item{ border-bottom:1px solid #e2e2e2; }
.wb-faq .wb-faq__q{ width:100%; display:flex; align-items:center; gap:20px; background:none; border:0; margin:0; padding:12px 4px; text-align:left; font-family:inherit; font-size:17px; font-weight:600; color:#1a1a1a; cursor:pointer; list-style:none; }
.wb-faq .wb-faq__q:hover{ color:#000; }
.wb-faq .wb-faq__q:focus-visible{ outline:2px solid #000; outline-offset:2px; }
.wb-faq .wb-faq__q::-webkit-details-marker{ display:none; }
.wb-faq .wb-faq__q::marker{ content:""; }
.wb-faq .wb-faq__num{ font-size:14px; font-weight:700; color:#000; min-width:34px; font-variant-numeric:tabular-nums; }
.wb-faq .wb-faq__text{ flex:1; }
.wb-faq .wb-faq__icon{ position:relative; width:18px; height:18px; flex:0 0 18px; }
.wb-faq .wb-faq__icon::before, .wb-faq .wb-faq__icon::after{ content:""; position:absolute; background:#000; transition:transform .3s ease, opacity .3s ease; }
.wb-faq .wb-faq__icon::before{ top:8px; left:0; width:18px; height:2px; }
.wb-faq .wb-faq__icon::after{ top:0; left:8px; width:2px; height:18px; }
.wb-faq details[open] .wb-faq__icon::after{ transform:scaleY(0); opacity:0; }
.wb-faq .wb-faq__a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.wb-faq .wb-faq__item[open] .wb-faq__a{ max-height:1200px; }
.wb-faq .wb-faq__a-inner{ padding:0 4px 8px 54px; font-size:15px; line-height:1.75; color:#555; max-width:900px; }
.wb-faq .wb-faq__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:14px 0 24px; }
.wb-faq .wb-faq__btn{ display:inline-flex; align-items:center; gap:8px; background:#000; color:#fff; font-family:inherit; font-size:14px; font-weight:600; text-decoration:none; padding:11px 20px; border:1px solid #000; cursor:pointer; transition:background .2s ease, transform .2s ease; }
.wb-faq .wb-faq__btn:hover{ background:#222; transform:translateX(2px); }
.wb-faq .wb-faq__btn:focus-visible{ outline:2px solid #000; outline-offset:2px; }
.wb-faq .wb-faq__link{ font-size:14px; font-weight:600; color:#000; text-decoration:underline; text-underline-offset:3px; }
.wb-faq .wb-faq__link:hover{ text-decoration-thickness:2px; }
.wb-faq .wb-faq__foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; margin-top:48px; padding:30px 34px; background:#000; color:#fff; }
.wb-faq .wb-faq__foot-strong{ display:block; font-size:20px; font-weight:700; margin-bottom:6px; }
.wb-faq .wb-faq__foot-sub{ font-size:14px; color:#cfcfcf; }
.wb-faq .wb-faq__btn--invert{ background:#fff; color:#000; border-color:#fff; }
.wb-faq .wb-faq__btn--invert:hover{ background:#e6e6e6; }
.wb-faq .wb-faq__products{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,300px)); gap:14px; margin:18px 0 4px; }
.wb-faq .wb-faq__pcard{ display:flex; flex-direction:column; border:1px solid #e2e2e2; background:#fff; text-decoration:none; color:inherit; transition:border-color .2s ease, transform .2s ease; }
.wb-faq .wb-faq__pcard:hover{ border-color:#000; transform:translateY(-2px); }
.wb-faq .wb-faq__pcard-img{ width:100%; aspect-ratio:4/3; object-fit:cover; background:#f2f2f2; display:block; }
.wb-faq .wb-faq__pcard-body{ padding:14px 16px 16px; flex:1; display:flex; flex-direction:column; }
.wb-faq .wb-faq__pcard-name{ font-size:15px; font-weight:700; color:#1a1a1a; margin:0 0 6px; }
.wb-faq .wb-faq__pcard-desc{ font-size:13px; line-height:1.6; color:#666; margin:0 0 12px; }
.wb-faq .wb-faq__pcard-meta{ margin-top:auto; font-size:13px; font-weight:600; color:#000; }
.wb-faq .wb-faq__pcard-meta::after{ content:" \2192"; }
@media (max-width:640px){ .wb-faq.wb-faq{ padding:56px 16px; } .wb-faq .wb-faq__title, .wb-product-table-h2{ font-size:26px; } .wb-faq .wb-faq__a-inner{ padding-left:4px; } .wb-faq .wb-faq__foot{ padding:24px 20px; } .wb-faq .wb-faq__products{ grid-template-columns:1fr; } }

/* 隐藏联系页提交后的报价进度面板（用户要求，2026-08-17） */
.df-quote-tracker { display: none !important; }
