
/* hero section */
.grid_3-col {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto;
    grid-auto-columns: 1fr;
    display: grid;
}



.gap-xsmall {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
}

.header-a-item {
    display: inline-block;
    grid-area: 1 / 2 / 2 / 4;
    max-width: 100%;
}

.image_cover {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block;
    object-position: center;
}

.header {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    flex-flow: column;
    grid-area: span 1 / span 3 / span 1 / span 3;
    margin-bottom: 3rem;
}

.heading_huge {
    text-wrap: balance;
    margin-bottom: 0.3em;
    font-family: Lexend, sans-serif;
    font-size: 5.61rem;
    line-height: 1.04em;
    font-weight: 500;
    letter-spacing: -.01em;
}

.button-group {
    margin-top: 2rem;
    grid-column-gap: .5rem; 
    grid-row-gap: .5rem;
    flex-wrap: wrap;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.subheading {
    grid-area: 1 / 1 / 2 / 2;
    align-self: end;
    max-width: 1000px;
    margin-bottom: 1.25rem;
    font-family: var(--body-font-family);
    font-size: 1.13rem;
    color: color-mix(in srgb, currentColor 70%, transparent);
    text-wrap: balance;
    background-color: #191d191a;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 6px;
    padding-left: 10px;
}


.subheading.margin-bottom_none.hero-section-subttle {
    text-align: left;
    max-width: 60%;
    line-height: 2rem;
}

.margin-bottom_none {
    margin-bottom: 0 !important;
}


/* product pick section */
/* fixed title */
.margin-bottom_small {
    margin-bottom: 2rem;
}

.link-content-block {
    color: inherit;
    text-decoration: none;
    transition-property: opacity, color;
    transition-duration: .3s, .3s;
    transition-timing-function: ease, ease-in-out;
}

.link-content-block:hover {
  color: inherit;
}

.gap-small {
    grid-column-gap: 2rem;
    grid-row-gap: 2rem;
}

.heading_h3 {
    margin-bottom: .5em;
    font-family: Lexend, sans-serif;
    font-size: 1.78rem;
    line-height: 1.04em;
    font-weight: 500;
    letter-spacing: -.01em;
}

.fixed-title {
    display: grid;
    grid-area: span 1 / span 1 / span 1 / span 1;
}

/* product pick section */
/* dynamic product display area */
.divider {
  -webkit-text-stroke-width: 0px;
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-bottom-color: color-mix(in srgb, currentColor 15%, transparent);
  align-self: stretch;
}

.ratio_1x1-2 {
  aspect-ratio: 1;
  position: relative;
}

.margin-bottom_xsmall {
    margin-bottom: 1rem;
}

.tag_group {
    grid-column-gap: .5rem;
    grid-row-gap: .5rem;
    background-color: #0000;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
}

.tag {
    grid-column-gap: .5rem;
    grid-row-gap: .5rem;
    border-radius: 0px;
    font-size: .75rem;
    letter-spacing: .035em;
    text-transform: uppercase;
    color: inherit;
    background-color: color-mix(in srgb, currentColor 20%, transparent);
    border: 1px solid #0000;
    justify-content: center;
    align-items: center;
    padding: .15em .75em;
    text-decoration: none;
    transition-property: border-color, color, background-color;
    transition-duration: .2s, .2s, .2s;
    transition-timing-function: ease, ease, ease;
    display: flex;
}

.heading_h4 {
    margin-bottom: 0.35em;
    font-family: Lexend, sans-serif;
    font-size: 1.33rem;
    line-height: 1.3em;
    font-weight: 500;
    letter-spacing: -0.01em;
}


/* get in touch section */
.eyebrow {
    margin-top: 0;
    margin-bottom: 1.25rem;
    font-size: .9rem;
    line-height: 1.3em;
    font-weight: 400;
    letter-spacing: -.01em;
    text-transform: uppercase;
    color: color-mix(in srgb, currentColor 60%, transparent);
    display: inline-block;
}

.heading_h2 {
    margin-bottom: .35em;
    font-family: Lexend, sans-serif;
    font-size: 2.37rem;
    line-height: 1.04em;
    font-weight: 500;
    letter-spacing: -.01em;
    text-wrap: balance;
}

.contact-subheading {
    max-width: 1000px;
    margin-bottom: 1.25rem;
    font-size: 1.13rem;
    line-height: 1.6em;
    letter-spacing: 0em;
    color: color-mix(in srgb, currentColor 70%, transparent);
    text-wrap: balance;
}

 .grid_2-col {
    grid-template-rows: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-auto-columns: 1fr;
    display: grid;
 }

 .gap-large {
    grid-column-gap: 4rem;
    grid-row-gap: 4rem;
 }

 .image {
    border-radius: 0px;
 }

 .image.image_cover {
    object-fit: cover;
    width: 100%;
    height: 100%;
 }

 .image.contact-image {
    align-self: start;
 }

 /* get in touch section */
 /* form section */
 .flex_horizontal.flex_vertical.is-space-between {
    justify-content: space-between;
 }

 .flex_vertical.gap-xsmall {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
 }

 .flex_horizontal.flex_vertical {
    flex-direction: column;
 }

 .flex_vertical {
    flex-flow: column;
    display: flex;
 }

 .heading_h5 {
    margin-bottom: .5em;
    font-family: Lexend, sans-serif;
    font-size: 1rem;
    line-height: 1.3em;
    font-weight: 500;
    letter-spacing: 0em;
 }

 .get-information-form {
    margin: 0 0 15px;
 }

 .get-information-form form {
    width: 100%;
    max-width: 720px;
 }

 .g-input {
    display: block;
    width: 100%;
    height: 38px;
    padding: 8px 12px;
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.4;
    color: #333;
    background-color: #fff;
    border: 1px solid #ccc;
 }

 .g-input,
textarea.g-input {
    width: 100%;    
    box-sizing: border-box;
}

 /* unified bottom message styles for forms */
.product-list-loading,
.product-list-empty {
    text-align: center;
    padding: 12px;
    color: #737373;
}
.form-tip {
    display: none;
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.45;
    border: 1px solid transparent;
    text-align: left;
}
.form-tip.is-success {
    background-color: #E8F8F0;
    color: #065F46;
    border-color: #A7F3D0;
}
.form-tip.is-error {
    background-color: #FEF2F2;
    color: #991B1B;
    border-color: #FECACA;
}

 /* keep legacy classes for compatibility */
 .form-submit {
     display: none;
     padding: 20px;
     text-align: center;
     background-color: #ddd;
 }
 .form-fail {
     display: none;
     margin-top: 10px;
     padding: 10px;
     background-color: #ffdede;
 }


 .is-large-1x1 {
    width: 3rem;
    height: 3rem;
    color: var(--color-core-accent-color-primary);
    justify-content: center;
    align-items: center;
    display: flex;
 }

 .text-color_secondary {
    color: #737373;
 }
 
 .display_block {
    display: block;
 }

 

/* auto layout */
@media screen and (max-width: 991px) {
    /* hero section */
    .grid_3-col.tablet-1-col {
    grid-template-columns: 1fr;
    }
    .header-a-item {
        grid-area: span 1 / span 1 / span 1 / span 1;
    }

    .header {
        order: -9999;
        grid-column: span 1 / span 1;
    }

    .heading_huge {
        font-size: 4.49rem;
        order: -9999;
    }

    .subheading {
        font-size: 1.13rem;
        order: -9999;
        grid-area: span 1 / span 1 / span 1 / span 1;
    }

    .margin-bottom_none {
        margin-bottom: 0;
    }

    /* product pick section */
    /* fixed title */
    .grid_3-col.tablet-1-col {
    grid-template-columns: 1fr;
  }


  /* product pick section */
  /* dynamic product display area */
  .heading_h4 {
    font-size: 1.2rem;
  }


  /* get in touch section */
  .eyebrow {
    font-size: .9rem;
  }

  .heading_h2 {
    font-size: 1.89rem;
  }

  .contact-subheading {
    font-size: 1.13rem;
  }

  .grid_2-col.tablet-1-col {
    grid-template-columns: 1fr;
  }

  /* get in touch section */
  /* form section */
  .heading_h5 {
    font-size: 1rem;
  }
}


@media screen and (max-width: 767px) {
    /* hero section */
    .heading_huge {
        font-size: 3.59rem;
    }

    .subheading {
        font-size: 1.1rem;
    }

    .margin-bottom_none {
        margin-bottom: 0;
    }

    .grid_3-col {
    grid-template-columns: 1fr;
  }

  /* product pick section */
  /* fixed title */
  .margin-bottom_small {
    margin-bottom: 1rem;
  }

  /* product pick section */
  /* dynamic product display area */
   .heading_h4 {
    font-size: 1.08rem;
  }

  /* get in touch section */
  .header {
    margin-bottom: 2rem;
  }

  .eyebrow {
    font-size: .8rem;
  }

   .heading_h2 {
    font-size: 1.52rem;
  }

   .contact-subheading {
    font-size: 1.1rem;
  }

  .grid_2-col {
    grid-template-columns: minmax(0, 1fr);
  }

  /* get in touch section */
  /* form section */
  .heading_h5 {
    font-size: 1rem;
  }

}


@media screen and (max-width: 479px) {
    .heading_huge {
        font-size: 2.87rem;
    }

    .button-group {
        flex-flow: column;
        justify-content: flex-start;
        align-items: stretch;
        width: 100%;
    }

    .subheading {
        font-size: 1.1rem;
    }

    .margin-bottom_none {
        margin-bottom: 0;
    }

     /* product pick section */
  /* dynamic product display area */
  .heading_h4 {
    font-size: .97rem;
  }

  /* get in touch section */
  .eyebrow {
    font-size: .8rem;
  }

  .heading_h2 {
    font-size: 1.21rem;
  }

   .contact-subheading {
    font-size: 1.1rem;
  }

  /* get in touch section */
  /* form section */
  .heading_h5 {
    font-size: 1rem;
  }
}


/* hero loading styles */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.hero-loading {
  min-height: 400px;
  display: none; /* 初始由 JS 控制显示 */
  align-items: center;
  justify-content: center;
}

.hero-loading__inner {
  text-align: center;
  /* 让提示横跨整行 */
  grid-column: 1 / -1;
}

.hero-loading__spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #f3f3f3;
  border-top: 3px solid #333;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto;
}

.hero-loading__text {
  margin-top: 16px;
  color: #666;
}

/* 可选：淡入效果（如需） */
/*
.fade-in {
  animation: fadeIn .2s ease-out;
}
@keyframes fadeIn {
  from { opacity: 0 }
  to { opacity: 1 }
}
*/