/* Site canvas shared by every public page. */
body.tg-site { background:#edece6; }
.tg-page-frame { width:min(1440px,100%); margin:0 auto; background:#fff; min-height:100vh; box-shadow:0 12px 50px rgba(34,40,27,.10); overflow:clip; }
.tg-page-frame .tg-container { width:min(1360px,calc(100% - 80px)); }
.tg-page-frame .tg-mega { left:50%; right:auto; width:min(1440px,100%); transform:translateX(-50%); }
.tg-company-nav-item { position:relative; align-self:stretch; display:flex; align-items:center; }
.tg-page-frame .tg-nav .tg-company-menu { position:absolute; top:100%; left:0; right:auto; width:290px; transform:none; }
.tg-layout-full-wide .tg-page-frame { width:100%; max-width:none; box-shadow:none; }
.tg-layout-full-wide .tg-page-frame .tg-mega { width:100%; }
.tg-layout-full-wide .tg-home-hero .tg-hero-grid { width:min(1360px,calc(100% - 80px)); margin:0 auto; grid-template-columns:40% 60%; }
.tg-layout-full-wide .tg-home-hero .tg-hero-copy { padding-left:0; }

/* Homepage hero: a 560px flush editorial panel and a full-height image slider. */
.tg-home-hero { padding:0; background:#fff; }
.tg-home-hero .tg-hero-grid { width:100%; max-width:none; height:560px; grid-template-columns:44.7% 55.3%; align-items:stretch; }
.tg-home-hero .tg-hero-copy { box-sizing:border-box; width:100%; max-width:none; min-width:0; display:flex; flex-direction:column; justify-content:center; padding:34px 46px 34px 40px; }
.tg-home-hero .tg-hero-media { min-height:0; height:560px; display:block; }
.tg-home-hero .tg-hero-media::before { display:none; }
.tg-home-hero .tg-hero-media-inner { position:relative; display:block; min-height:0; height:100%; width:100%; overflow:hidden; }
.tg-home-hero .tg-hero-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .55s ease,visibility .55s ease; }
.tg-home-hero .tg-hero-slide.is-active { opacity:1; visibility:visible; z-index:1; }
.tg-home-hero .tg-hero-slide img,
.tg-home-hero .tg-hero-slide .tg-ai-image { display:block; width:100%; height:100%; min-height:0; object-fit:cover; object-position:center; }
.tg-hero-slider-controls { position:absolute; z-index:2; left:24px; right:24px; bottom:20px; display:flex; align-items:end; justify-content:space-between; pointer-events:none; }
.tg-hero-dots,.tg-hero-arrows { display:flex; align-items:center; gap:7px; pointer-events:auto; }
.tg-hero-dots { transform:translateY(6px); }
.tg-hero-dot { position:relative; width:12px; height:22px; border:0; border-radius:0; background:transparent; padding:0; cursor:pointer; }
.tg-hero-dot::after { content:""; position:absolute; top:10px; left:0; right:0; height:2px; background:rgba(255,255,255,.75); box-shadow:0 1px 3px rgba(0,0,0,.25); }
.tg-hero-dot.is-active { width:27px; }
.tg-hero-dot.is-active::after { background:#fff; }
.tg-hero-arrow { display:grid; place-items:center; width:36px; height:36px; border:1px solid #fff; background:rgba(255,255,255,.14); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); color:#fff; cursor:pointer; }
.tg-hero-arrow svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.tg-hero-arrow:hover,.tg-hero-arrow:focus-visible { background:rgba(255,255,255,.22); outline-color:#fff; }
@media(max-width:860px) {
  .tg-page-frame { box-shadow:none; }
  .tg-page-frame .tg-container { width:calc(100% - 40px); }
  .tg-home-hero .tg-hero-grid { height:auto; display:flex; flex-direction:column; }
  .tg-layout-full-wide .tg-home-hero .tg-hero-grid { width:100%; }
  .tg-home-hero .tg-hero-copy,
  .tg-layout-full-wide .tg-home-hero .tg-hero-copy { padding:36px 20px; }
  .tg-home-hero .tg-hero-media,
  .tg-home-hero .tg-hero-media-inner { height:280px; min-height:0; }
  .tg-hero-slider-controls { left:20px; right:20px; bottom:16px; }
}
@media(prefers-reduced-motion:reduce) { .tg-home-hero .tg-hero-slide { transition:none; } }
