/*
 * TCC Design System 1.0 — Golden Foundation
 * Frozen semantic layer for the public website.
 * Component modules consume these roles instead of inventing local pixel values.
 */
body.tcc-design-sync{
  /* Core scale */
  --tcc-space-1:4px;
  --tcc-space-2:8px;
  --tcc-space-3:12px;
  --tcc-space-4:16px;
  --tcc-space-5:20px;
  --tcc-space-6:24px;
  --tcc-space-7:32px;
  --tcc-space-8:40px;
  --tcc-space-9:48px;
  --tcc-space-10:64px;
  --tcc-radius-control:10px;
  --tcc-radius-card:18px;
  --tcc-radius-stage:24px;
  --tcc-shadow-card:0 14px 34px rgba(21,39,32,.075);
  --tcc-shadow-hover:0 18px 42px rgba(21,39,32,.11);

  /* Golden layout */
  --tcc-layout-container:min(1320px,calc(100vw - 48px));
  --tcc-layout-grid-gap:28px;
  --tcc-layout-section-y:64px;
  --tcc-layout-section-y-tablet:48px;
  --tcc-layout-section-y-mobile:36px;

  /* Shared card roles */
  --tcc-card-height-desktop:560px;
  --tcc-card-height-tablet:520px;
  --tcc-card-padding-x:28px;
  --tcc-card-padding-y:26px;
  --tcc-card-title-lines:2;
  --tcc-card-copy-lines:3;
  --tcc-card-cta-height:44px;

  /* Image roles */
  --tcc-image-product-ratio:1.35/1;
  --tcc-image-experience-ratio:16/8.4;
  --tcc-image-journal-ratio:16/9;

  /* Marketplace compact stage */
  --tcc-marketplace-stage-min-height:112px;
  --tcc-marketplace-stage-padding-y:10px;
  --tcc-marketplace-title-size:14px;
  --tcc-marketplace-title-gap:8px;
  --tcc-marketplace-logo-size:52px;
}

body.tcc-design-sync :where(.container,.tcc-container,.tcc-platform-footer__inner){
  width:var(--tcc-layout-container);
  max-width:100%;
  margin-inline:auto;
}

body.tcc-design-sync .tcc-home :where(.tcc-products-grid,.tcc-experience-grid,.tcc-journal-grid,.tcc-process-grid){
  gap:var(--tcc-layout-grid-gap)!important;
  align-items:stretch;
}

/* One premium card skeleton: media + flexible body + CTA baseline. */
@media (min-width:1025px){
  body.tcc-design-sync .tcc-home :where(.tcc-product-card,.tcc-experience-card,.tcc-journal-card){
    height:var(--tcc-card-height-desktop)!important;
    min-height:var(--tcc-card-height-desktop)!important;
    max-height:var(--tcc-card-height-desktop)!important;
    display:flex!important;
    flex-direction:column;
    overflow:hidden;
    border-radius:var(--tcc-radius-card)!important;
    box-shadow:var(--tcc-shadow-card)!important;
  }
}
@media (min-width:769px) and (max-width:1024px){
  body.tcc-design-sync .tcc-home :where(.tcc-product-card,.tcc-experience-card,.tcc-journal-card){
    height:var(--tcc-card-height-tablet)!important;
    min-height:var(--tcc-card-height-tablet)!important;
    max-height:var(--tcc-card-height-tablet)!important;
    display:flex!important;
    flex-direction:column;
    overflow:hidden;
  }
}
body.tcc-design-sync .tcc-home :where(.tcc-product-card,.tcc-experience-card,.tcc-journal-card):hover{
  box-shadow:var(--tcc-shadow-hover)!important;
}
body.tcc-design-sync .tcc-home :where(.tcc-product-card__body,.tcc-experience-card__body,.tcc-journal-card__body){
  min-height:0;
  flex:1 1 auto;
  display:flex!important;
  flex-direction:column!important;
  padding:var(--tcc-card-padding-y) var(--tcc-card-padding-x)!important;
}
body.tcc-design-sync .tcc-home :where(.tcc-product-card h3,.tcc-experience-card h3,.tcc-journal-card h3){
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--tcc-card-title-lines);
  overflow:hidden;
}
body.tcc-design-sync .tcc-home :where(
  .tcc-product-card__body>p:not(.price),
  .tcc-experience-card__body>p:not(.tcc-experience-category):not(.tcc-experience-address),
  .tcc-journal-card__body>p
){
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--tcc-card-copy-lines);
  overflow:hidden;
}
body.tcc-design-sync .tcc-home :where(.tcc-product-card__footer,.tcc-experience-card__body>a,.tcc-journal-card__body>a){
  margin-top:auto!important;
}
body.tcc-design-sync .tcc-home .tcc-product-card__media{aspect-ratio:var(--tcc-image-product-ratio)!important;flex:0 0 auto}
body.tcc-design-sync .tcc-home .tcc-experience-card__media{aspect-ratio:var(--tcc-image-experience-ratio)!important;flex:0 0 auto}
body.tcc-design-sync .tcc-home .tcc-journal-card__media{aspect-ratio:var(--tcc-image-journal-ratio)!important;flex:0 0 auto}
body.tcc-design-sync .tcc-home :where(.tcc-product-card__media img,.tcc-experience-card__media img,.tcc-journal-card__media img){width:100%;height:100%;object-fit:cover}
body.tcc-design-sync .tcc-home .tcc-product-card__media img{object-fit:contain}

/* Footer Marketplace: full section width, compact vertical rhythm. */
body.tcc-design-sync.tcc-frontend-engine :is(.tcc-platform-footer__marketplaces,.tcc-theme-footer-marketplaces){
  width:100%!important;
  max-width:none!important;
  min-height:var(--tcc-marketplace-stage-min-height)!important;
  padding-top:var(--tcc-marketplace-stage-padding-y)!important;
  padding-bottom:var(--tcc-marketplace-stage-padding-y)!important;
}
body.tcc-design-sync.tcc-frontend-engine :is(.tcc-platform-footer__marketplaces,.tcc-theme-footer-marketplaces) :is(h3,h4,.tcc-marketplace-title){
  margin-top:0!important;
  margin-bottom:var(--tcc-marketplace-title-gap)!important;
  font-size:var(--tcc-marketplace-title-size)!important;
  line-height:1.2!important;
}
body.tcc-design-sync.tcc-frontend-engine :is(.tcc-marketplace-card,.tcc-theme-market-card){
  min-height:0!important;
}
body.tcc-design-sync.tcc-frontend-engine :is(.tcc-marketplace-card,.tcc-theme-market-card) img{
  width:var(--tcc-marketplace-logo-size)!important;
  height:var(--tcc-marketplace-logo-size)!important;
  object-fit:contain!important;
}

@media (max-width:768px){
  body.tcc-design-sync{
    --tcc-layout-container:min(100% - 28px,1320px);
    --tcc-layout-grid-gap:18px;
    --tcc-card-padding-x:20px;
    --tcc-card-padding-y:20px;
  }
  body.tcc-design-sync .tcc-home :where(.tcc-product-card,.tcc-experience-card,.tcc-journal-card){
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
}

@media print{
  body.tcc-design-sync .tcc-home :where(.tcc-product-card,.tcc-experience-card,.tcc-journal-card){height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important}
}
