组成内容:
51
Accordion Items Article Selection Author Info Basic Carousel Basic Hero Basic Map Blog Pull Out Contact Content Accordion Content Carousel Content Image Cta Cta Bar Cta Blocks Cta Collage Event Content Events Grid Example Find Firm Firm Search Firms By Town Gated Content Download Guides Carousel Hero History Homepage Hero Image Content Cta Image List Content 行业 Job Content Job Listings Local Firm Carousel Our Firms Pages Carousel Partners Partners Slider People Listing Post Carousel Post Feed Pullquote Section Wrap Service List Split Content Stats Tax Guides Team Grid Title Logos Two Column Video Video Carousel Video Old

Service List

View example

治理、风险与内部审计

在当今社会,风险管理和健全的企业治理已成为社会的期望和大多数司法管辖区的监管要求,适用于各类规模的企业。虽然许多公司出于法律、监管或利益相关方的要求必须落实相关流程和制度,但更多企业主动采纳这些做法,因为它们认识到这是实现成功商业战略的重要组成部分。

我们的会员公司为各行业企业提供专业支持,协助设计治理架构,提供多样化服务,帮助客户建立并维持稳健的治理与审计框架。同时,我们也为企业提供有效的风险管理建议,推动组织在治理与风险事务上实现透明化和问责制。

商务咨询服务

会员事务所每天都在帮助和指导企业主解决财务问题。我们深知,当企业遇到困难时,这种压力有多大。有些问题可以轻松解决,而有些则更为复杂,可能涉及多个国际司法管辖区

财务和运营问题需要专业技能,而我们丰富的经验和对复杂问题的深入理解,能够帮助我们为您和您的企业规划最佳方案。

我们与银行家、风险投资基金及律师等其他专业人士紧密合作,为各行各业的企业提供重组和再融资服务,涵盖国内及国际项目。我们的首要任务是关注企业及其公司结构的恢复。许多企业如果尽早寻求专业建议,可以避免进入管理程序或清算。

There are no ACF fields assigned to this component.

				
 @import "../../resources/scss/util/variables";
@import "../../resources/scss/util/mixins";

.block-service-list {
  p {
    line-height: 1.5;
  }

  &__sidebar {
		@include section-sidebar;
	}

  &__tabs {
    margin: 0;
    position: sticky;
    top: 0;
    background-color: $white;
    z-index: 1;

    ul {
      @include list-unstyled;
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      overflow-x: auto;
      -ms-overflow-style: none;
      scrollbar-width: none;
      margin: 0;
      scroll-behavior: smooth;

      @include bp($lg) {
        padding: 0 80px 0 83px;
      }

      &::-webkit-scrollbar {
        display: none;
      }

      &:after {
        content: "";
        width: 100%;
        bottom: 0;
        right: 0;
        position: absolute;
        height: 1px;
        background-color: $border-grey;

        @include bp($lg) {
          width: calc(100% - 83px);
        }
      }
    }

    li {
      @include fluid-type(16, 18, 375, $max-container-size);
      flex-shrink: 0;
      padding: 20px 24px;
      white-space: nowrap;
      cursor: pointer;
      border-right: 1px solid $border-grey;

      &:not(.current):hover {
        background-color: #f2f2f2;
      }

      &.current {
        font-weight: 600;
        background-color: $primary-blue;
        color: $white;
      }
    }
  }

  &__content {
    & > section {
      display: none;
      padding-left: 16px;
      padding-right: 16px;
      grid-template-columns: repeat(12, 1fr);
      column-gap: $grid-gutter-width;

      @include bp($lg) {
        padding-left: 80px;
        padding-right: 80px;
      }

      &.current {
        display: grid;
      }

      & > div {
        &:nth-of-type(1) {
          grid-row: 1;
          grid-column: 1 / 13;
          padding: 25px 0 45px;

          @include bp($lg) {
            grid-column: 1 / 5;
            padding: 75px 0;
          }

          @include bp($xl) {
            grid-column: 2 / 6;
          }

          & > div {
            position: sticky;
            top: 105px;
          }
        }

        &:nth-of-type(2) {
          grid-row: 2;
          grid-column: 1 / 13;

          @include bp($lg) {
            grid-row: 1;
            grid-column: 6 / 13;
          }

          @include bp($xl) {
            grid-column: 7 / 13;
          }
        }
      }

      .h4 {
        font-weight: 400;

        & + p {
          margin-bottom: 28px;
        }
      }

      .btn {
        @include fluid-type(16, 18, 375, $max-container-size);
        border-color: $primary;

        &:before {
          border-top: 52px solid $primary;
        }
      }
    }
  }

  &__links {
    @include list-unstyled;
    margin: 0;
    display: flex;
    flex-direction: column;
    row-gap: 16px;

    @include bp($lg) {
      padding-top: 60px;
    }

    a {
      display: flex;
      align-items: flex-start;
      flex-direction: column;
      position: relative;
      border: 1px solid $border-grey;
      text-decoration: none;
      transition: background-color .3s;
      row-gap: 20px;
			min-height: 150px;

      @include bp($sm) {
        flex-direction: row;
				align-items: center;
      }

      &:hover {
        background-color: #f2f2f2;
      }

      & > span {
        height: 100%;
				padding: 0 24px 32px;

				@include bp($sm) {
					padding: 24px 24px 32px;
				}

				@include bp($lg) {
					padding: clamp(24px, 2vw, 35px);
				}
      }

      h5 {
        margin: 0 0 12px;
      }

      p {
        margin: 0;
      }
    }

		&-link--image {
			@include bp($sm) {
				padding-left: 150px;
			}
		}

		&-link-icon {
			padding: 24px 24px 0;

			@include bp($sm) {
				padding: 24px 24px 32px;
			}

			@include bp($lg) {
        padding: clamp(24px, 2vw, 35px);
      }

			svg {
				width: 80px;
				height: 80px;
				flex-shrink: 0;
			}
		}

		&-link-image {
			width: 100%;
			position: relative;
			height: 150px;

			@include bp($sm) {
				position: absolute;
				width: 150px;
				height: 100%;
			}
		}

  }
}
class ServiceList {
  constructor() {
    this.init();
  }

  init() {
    // Find all service-list blocks on the page
    this.blocks = document.querySelectorAll('.block-service-list');

    if (!this.blocks.length) return;

    // Set up tab click handlers
    this.setupTabClickHandlers();
  }

  setupTabClickHandlers() {
    this.blocks.forEach(block => {
      const tabs = block.querySelectorAll('.tab-link');
      const tabContents = block.querySelectorAll('.tab-content');

      tabs.forEach(tab => {
        tab.addEventListener('click', () => {
          // Remove current class from all tabs and contents
          tabs.forEach(t => t.classList.remove('current'));
          tabContents.forEach(c => c.classList.remove('current'));

          // Add current class to clicked tab
          tab.classList.add('current');

          // Scroll the selected tab into view (at the start of the container)
          const tabsContainer = block.querySelector('.block-service-list__tabs ul');
          if (tabsContainer) {
            tabsContainer.scrollLeft = tab.offsetLeft;
          }

          // Show the corresponding tab content
          const tabId = tab.getAttribute('data-tab');
          const tabContent = block.querySelector(`#${tabId}`);
          if (tabContent) {
            tabContent.classList.add('current');
          }
        });
      });
    });
  }
}

// Initialize the service list functionality when the DOM is loaded
document.addEventListener('DOMContentLoaded', () => {
  new ServiceList();
});
{
  "$schema": "https://schemas.wp.org/trunk/block.json",
  "apiVersion": 2,
  "name": "strategiq/service-list",
  "title": "Service List",
  "description": "Example block to be used as a template",
  "category": "strategiq",
  "icon": "strategiq",
  "acf": {
      "mode": "preview",
      "renderTemplate": "block-service-list.php"
  },
  "supports": {
      "anchor": true,
      "align": false,
      "spacing": {
          "margin": [
              "top",
              "bottom"
          ],
          "padding": [
              "top",
              "bottom"
          ]
      }
  },
  "example": {
      "attributes": {
          "mode": "preview",
          "data": {
              "heading_type": "h2",
              "heading_text": "Example - Service List",
              "content": "This is some example content to represent what the content will look like"
          }
      }
  },
  "style": "file:../../assets/css/service-list/block-service-list.css",
  "viewScript": ["service-list"]
}
Page Title
Page Type
Page URL
There are is no readme file with this component.