/* Scope every rule to the homepage composition. Preserve the theme header/footer. */
.ths-page { background:var(--ths-bg,#fbf6f2); color:var(--ths-text,#172854); font-family:inherit; padding:32px 0 60px; line-height:1.6; }
.ths-page * { box-sizing:border-box; }
.ths-page .ths-page-inner { width:min(calc(100% - 40px),var(--ths-width,1240px)); margin:0 auto; }
.ths-page .ths-section { margin:0 0 24px; padding:var(--ths-padding,32px); background:var(--ths-section-bg,#fff); color:var(--ths-section-text,#172854); border-radius:var(--ths-radius,24px); overflow:hidden; }
.ths-page .ths-section-title { color:inherit; font-size:clamp(25px,3.5vw,44px); line-height:1.15; margin:0 0 22px; letter-spacing:-.025em; }
.ths-page a { color:inherit; }
.ths-page .ths-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; height:auto; min-height:48px; padding:12px 22px; margin:12px 0 0; background:var(--ths-accent,#7f372e); color:#fff; border-radius:999px; text-decoration:none; font-weight:750; line-height:1.4; white-space:normal; }
.ths-page .ths-section-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.ths-page .ths-section-heading .ths-section-title,.ths-page .ths-section-heading .ths-button { margin:0; }
.ths-page .ths-banner { position:relative; isolation:isolate; display:flex; align-items:center; min-height:var(--ths-banner-height,420px); padding:clamp(24px,5vw,64px); text-decoration:none; }
.ths-page .ths-banner-picture { position:absolute; inset:0; z-index:-2; }
.ths-page .ths-banner-picture img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; }
.ths-page .ths-banner.ths-has-image::before { content:''; position:absolute; inset:0; background:rgba(0,0,0,var(--ths-overlay,.35)); z-index:-1; }
.ths-page .ths-banner-copy { width:100%; }
.ths-page .ths-banner-copy .ths-section-title { font-size:clamp(30px,4.5vw,64px); margin-bottom:16px; }
.ths-page .ths-banner-copy p { max-width:760px; margin:0 0 18px; font-size:clamp(16px,2vw,22px); color:inherit; }
.ths-page .ths-banner[style*="text-align:center"] .ths-banner-copy p { margin-left:auto; margin-right:auto; }
.ths-page .ths-banner[style*="text-align:right"] .ths-banner-copy p { margin-left:auto; }
.ths-page .ths-banner .ths-button { background:#fff; color:var(--ths-accent,#7f372e); }
.ths-page .ths-kicker { display:block; font-size:12px; letter-spacing:.14em; font-weight:800; text-transform:uppercase; margin-bottom:14px; }
.ths-page .ths-richtext { font-size:17px; }
.ths-page .ths-richtext p { margin:0 0 18px; }
.ths-page .ths-richtext a { text-decoration:underline; text-underline-offset:3px; }
.ths-page .ths-richtext img { max-width:100%; height:auto; }
.ths-page .ths-story-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; }
.ths-page .ths-story-image { border-radius:calc(var(--ths-radius,24px) * .75); overflow:hidden; background:rgba(0,0,0,.03); min-height:200px; }
.ths-page .ths-story-image img { display:block; width:100%; max-height:600px; object-fit:cover; }
.ths-page .ths-image-right .ths-story-image { order:2; }
.ths-page .ths-cards-grid { display:grid; grid-template-columns:repeat(var(--ths-columns,3),minmax(0,1fr)); gap:18px; }
.ths-page .ths-card { display:block; text-decoration:none; background:rgba(255,255,255,.65); color:inherit; border:1px solid rgba(0,0,0,.08); border-radius:calc(var(--ths-radius,24px) * .75); overflow:hidden; }
.ths-page .ths-card img { display:block; width:100%; height:220px; object-fit:cover; }
.ths-page .ths-card-copy { padding:20px; }
.ths-page .ths-card h3 { margin:0 0 10px; font-size:21px; color:inherit; }
.ths-page .ths-card p { margin:0; font-size:15px; }
.ths-page .ths-notice { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ths-page .ths-notice .ths-section-title { font-size:25px; margin:0 0 10px; }
.ths-page .ths-notice p { margin:0; }
/* High specificity intentionally overrides fixed shop columns from Tribu theme versions. */
html body .ths-page .ths-products .woocommerce ul.products { display:grid!important; grid-template-columns:repeat(var(--ths-columns,4),minmax(0,1fr))!important; gap:24px 16px!important; width:100%!important; max-width:none!important; margin:0!important; padding:0!important; justify-content:stretch!important; list-style:none; }
html body .ths-page .ths-products .woocommerce ul.products::before,html body .ths-page .ths-products .woocommerce ul.products::after { display:none!important; }
html body .ths-page .ths-products .woocommerce ul.products > li.product { float:none!important; width:auto!important; min-width:0!important; max-width:none!important; margin:0!important; }
.ths-page a:focus-visible { outline:3px solid var(--ths-accent,#7f372e); outline-offset:4px; }
@media(min-width:768px) and (max-width:1024px) {
  html body .ths-page .ths-products .woocommerce ul.products { grid-template-columns:repeat(min(3,var(--ths-columns,4)),minmax(0,1fr))!important; }
  .ths-page .ths-cards-grid { grid-template-columns:repeat(min(3,var(--ths-columns,3)),minmax(0,1fr)); }
}
@media(max-width:767px) {
  .ths-page { padding:20px 0 40px; }
  .ths-page .ths-page-inner { width:calc(100% - 24px); }
  .ths-page .ths-section { padding:min(var(--ths-padding,32px),22px); margin-bottom:18px; }
  .ths-page .ths-banner { min-height:var(--ths-banner-mobile-height,320px); padding:24px 20px; }
  .ths-page .ths-story-grid { grid-template-columns:1fr; gap:22px; }
  .ths-page .ths-image-right .ths-story-image { order:0; }
  .ths-page .ths-notice { flex-direction:column; align-items:flex-start; }
  .ths-page .ths-cards-grid { grid-template-columns:repeat(var(--ths-mobile-columns,1),minmax(0,1fr)); gap:12px; }
  html body .ths-page .ths-products .woocommerce ul.products { grid-template-columns:repeat(var(--ths-mobile-columns,1),minmax(0,1fr))!important; gap:18px 12px!important; }
}
.ths-page .ths-carousel { position:relative; padding:0; }
.ths-page .ths-carousel .ths-banner { margin:0; border-radius:0; background:var(--ths-section-bg); color:var(--ths-section-text); }
.ths-page .ths-carousel-slide[hidden] { display:none!important; }
.ths-page .ths-banner-hitarea { position:absolute; inset:0; z-index:1; }
.ths-page .ths-carousel .ths-banner-copy { pointer-events:none; position:relative; z-index:2; }
.ths-page .ths-banner-button { position:absolute; z-index:3; left:var(--ths-btn-x,8%); top:var(--ths-btn-y,82%); transform:translate(calc(-1 * var(--ths-btn-x,8%)),calc(-1 * var(--ths-btn-y,82%))); max-width:calc(100% - 32px); margin:0!important; }
.ths-page .ths-carousel-arrow { position:absolute; z-index:4; top:50%; transform:translateY(-50%); border:0; background:#ffffffdf; color:#172854; width:38px; height:44px; border-radius:10px; font-size:32px; cursor:pointer; line-height:1; padding:0; }
.ths-page .ths-carousel-prev { left:10px; }.ths-page .ths-carousel-next { right:10px; }
.ths-page .ths-carousel-controls { position:relative; z-index:4; display:flex; justify-content:center; align-items:center; gap:14px; padding:10px; background:var(--ths-section-bg); }
.ths-page .ths-carousel-dots { display:flex; flex-wrap:wrap; gap:7px; }
.ths-page .ths-carousel-dots button { width:12px; height:12px; padding:0; border:1px solid var(--ths-accent); border-radius:50%; background:transparent; cursor:pointer; }
.ths-page .ths-carousel-dots button[aria-current="true"] { background:var(--ths-accent); }
.ths-page .ths-carousel-pause { padding:4px 10px; border:1px solid #d7d7d7; border-radius:8px; color:#172854; background:#fff; cursor:pointer; font:inherit; font-size:12px; }
@media(max-width:767px){.ths-page .ths-banner-button { left:var(--ths-btn-mx,8%); top:var(--ths-btn-my,82%); transform:translate(calc(-1 * var(--ths-btn-mx,8%)),calc(-1 * var(--ths-btn-my,82%))); }}

/* Animate individual translate/scale properties to preserve dragged button positions. */
.ths-page .ths-carousel-slide:not([hidden]) .ths-appear { animation-duration:var(--ths-title-duration,700ms); animation-delay:var(--ths-title-delay,0ms); animation-timing-function:cubic-bezier(.2,.7,.2,1); animation-fill-mode:both; animation-iteration-count:1; }
.ths-page .ths-carousel-slide:not([hidden]) .ths-appear-button { animation-duration:var(--ths-button-duration,700ms); animation-delay:var(--ths-button-delay,0ms); }
.ths-page .ths-appear-fade { animation-name:ths-appear-fade; }
.ths-page .ths-appear-up { animation-name:ths-appear-up; }
.ths-page .ths-appear-left { animation-name:ths-appear-left; }
.ths-page .ths-appear-right { animation-name:ths-appear-right; }
.ths-page .ths-appear-zoom { animation-name:ths-appear-zoom; }
@keyframes ths-appear-fade { from { opacity:0; } to { opacity:1; } }
@keyframes ths-appear-up { from { opacity:0; translate:0 28px; } to { opacity:1; translate:0 0; } }
@keyframes ths-appear-left { from { opacity:0; translate:-36px 0; } to { opacity:1; translate:0 0; } }
@keyframes ths-appear-right { from { opacity:0; translate:36px 0; } to { opacity:1; translate:0 0; } }
@keyframes ths-appear-zoom { from { opacity:0; scale:.88; } to { opacity:1; scale:1; } }
@media (prefers-reduced-motion:reduce) { .ths-page .ths-carousel-slide .ths-appear { animation:none!important; } }

/* Studio 1.0.7: mobile products owned by the composition. */
/* v1.6.36 — mobile homepage cards matching the compact reference. */
@media (max-width:767px) {
  html body .ths-page .ths-products .woocommerce ul.products { align-items:start!important; }
  html body .ths-page .ths-products .woocommerce ul.products > li.product {
    height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;align-self:start!important;justify-content:flex-start!important;
    background:#fff!important;border:1px solid #172854!important;border-radius:12px!important;padding:16px!important;box-shadow:none!important;
  }
  html body .ths-page .ths-products .woocommerce ul.products > li.product a.woocommerce-LoopProduct-link,
  html body .ths-page .ths-products .woocommerce ul.products > li.product a.woocommerce-loop-product__link {
    display:block!important;height:auto!important;min-height:0!important;max-height:none!important;flex:0 0 auto!important;
    aspect-ratio:auto!important;padding:0!important;margin:0!important;
  }
  html body .ths-page .ths-products .woocommerce ul.products > li.product .tc-loop-gallery {
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:180px 44px!important;gap:8px!important;
    width:100%!important;height:232px!important;min-height:0!important;max-height:232px!important;padding:0!important;aspect-ratio:auto!important;
    margin:0 0 8px!important;overflow:hidden!important;
  }
  html body .ths-page .ths-products .woocommerce ul.products > li.product .tc-loop-gallery .tc-loop-gallery-main {
    order:0!important;grid-row:1!important;flex:0 0 auto!important;width:100%!important;padding:0!important;margin:0!important;aspect-ratio:auto!important;
    height:180px!important;min-height:0!important;max-height:180px!important;overflow:hidden!important;
  }
  html body .ths-page .ths-products .woocommerce ul.products > li.product .tc-loop-gallery .tc-loop-gallery-main > img,
  html body .ths-page .ths-products .woocommerce ul.products > li.product a.woocommerce-LoopProduct-link > img,
  html body .ths-page .ths-products .woocommerce ul.products > li.product a.woocommerce-loop-product__link > img {
    display:block!important;width:100%!important;max-width:100%!important;
    height:180px!important;max-height:180px!important;min-height:0!important;
    aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;margin:0!important;
  }
  html body .ths-page .ths-products .woocommerce ul.products > li.product .tc-loop-gallery .tc-loop-gallery-dots {
    order:1!important;grid-row:2!important;position:static!important;inset:auto!important;flex:0 0 auto!important;
    flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;
    width:100%!important;max-width:100%!important;height:44px!important;max-height:44px!important;min-height:0!important;
    padding:3px!important;gap:8px!important;overflow-x:auto!important;overflow-y:hidden!important;
    overscroll-behavior:contain;scrollbar-width:thin;
  }
  html body .ths-page .ths-products .woocommerce ul.products > li.product .woocommerce-loop-product__title {
    margin:8px 0!important;min-height:0!important;padding:0 10px!important;font-size:20px!important;line-height:1.2!important;
  }
}

@media(max-width:767px) {
 html body .ths-page .ths-products .woocommerce ul.products > li.product .tc-loop-gallery::before,
 html body .ths-page .ths-products .woocommerce ul.products > li.product .tc-loop-gallery::after,
 html body .ths-page .ths-products .woocommerce ul.products > li.product a.woocommerce-LoopProduct-link::before,
 html body .ths-page .ths-products .woocommerce ul.products > li.product a.woocommerce-LoopProduct-link::after { content:none!important;display:none!important; }
 html body .ths-page .ths-products .woocommerce ul.products > li.product .price { display:block!important;margin:0 0 10px!important;line-height:1.3!important; }
 html body .ths-page .ths-products .woocommerce ul.products > li.product .price .amount,
 html body .ths-page .ths-products .woocommerce ul.products > li.product .price { font-size:18px!important; }
 html body .ths-page .ths-products .woocommerce ul.products > li.product .price .woocommerce-price-suffix { font-size:13px!important; }
 html body .ths-page .ths-products .woocommerce ul.products > li.product .button { width:calc(100% - 20px)!important;min-height:48px!important;height:auto!important;max-height:none!important;margin:10px auto 0!important; }
}
