/* Stable owner-managed copy beside an image-only carousel. */
.tps-carousel [hidden] { display:none!important; }
.tps-hero.tps-carousel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:#DADAD6; }
.tps-hero-copy { align-self:stretch; display:flex; flex-direction:column; justify-content:center; min-width:0; padding:clamp(2rem,4vw,4.5rem); overflow-wrap:anywhere; }
.tps-carousel .tps-carousel-title { font-family:var(--tps-serif); font-size:clamp(2rem,3.2vw,3.6rem); font-weight:500; line-height:1.4; letter-spacing:.06em; margin:.7rem 0 1.5rem; }
.tps-carousel .tps-lead { max-width:34em; }
.tps-carousel-copy-mobile { display:none; }
.tps-hero-gallery { position:relative; min-width:0; min-height:clamp(24rem,33.333vw,40rem); background:#C9C9C4; overflow:hidden; }
.tps-carousel-slides { min-height:0; }
.tps-carousel-slide { position:relative; aspect-ratio:3/2; min-width:0; }
.tps-carousel .tps-carousel-banner-image { display:block; width:100%; max-width:100%; height:100%; object-fit:cover; object-position:center; margin:0; transform:none; }
/* No JS keeps all images available; enhancement stacks the same bounded stage. */
.tps-carousel.is-enhanced .tps-carousel-slides,
.tps-carousel .tps-hero-gallery.is-single .tps-carousel-slides { position:absolute; inset:0; display:grid; }
.tps-carousel .tps-hero-gallery.is-single .tps-carousel-slide { aspect-ratio:auto; min-height:0; }
.tps-carousel.is-enhanced .tps-carousel-slide { grid-area:1/1; aspect-ratio:auto; min-height:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity 650ms ease,visibility 0s 650ms; }
.tps-carousel.is-enhanced .tps-carousel-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; transition:opacity 650ms ease,visibility 0s; }
.tps-carousel.is-initializing .tps-carousel-slide { transition:none; }
.tps-carousel-controls { position:absolute; z-index:2; bottom:12px; left:50%; transform:translateX(-50%); display:flex; width:max-content; max-width:calc(100% - 24px); box-sizing:border-box; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px; padding:4px; background:rgba(242,242,240,.94); border:1px solid rgba(26,26,26,.15); }
.tps-carousel-controls button { box-sizing:border-box; min-width:44px; min-height:44px; padding:6px; background:transparent; color:var(--tps-ink); border:1px solid var(--tps-line); font:inherit; cursor:pointer; }
.tps-carousel-controls button:focus-visible { outline:2px solid var(--tps-ink); outline-offset:-3px; }
.tps-carousel-dots { display:flex; flex-wrap:wrap; justify-content:center; min-width:0; }
.tps-carousel-dots button { border-color:transparent; color:var(--tps-muted); }
.tps-carousel-dots button[aria-current="true"] { color:var(--tps-ink); border-bottom-color:var(--tps-ink); }
.tps-carousel-controls [data-carousel-pause] { min-inline-size:6em; }
.tps-carousel-controls button:disabled { opacity:.65; cursor:default; }
@media (max-width:900px) {
 .tps-hero.tps-carousel { grid-template-columns:minmax(0,1fr); }
 .tps-hero-copy { padding:2rem max(1rem,5vw); }
 .tps-hero-gallery { min-height:0; }
 .tps-carousel.is-enhanced .tps-hero-gallery,
 .tps-carousel .tps-hero-gallery.is-single { aspect-ratio:3/2; }
}
@media (max-width:600px) {
 .tps-carousel-copy-desktop { display:none; }
 .tps-carousel-copy-mobile { display:block; }
 .tps-carousel .tps-carousel-title { font-size:clamp(1.8rem,7vw,2.5rem); max-inline-size:none; }
 .tps-carousel .tps-lead { font-size:.95rem; line-height:1.8; }
 .tps-carousel .tps-actions { flex-wrap:wrap; }
 .tps-hero-copy { padding:1.5rem max(1rem,5vw); }
 .tps-carousel .tps-carousel-title { margin:.5rem 0 .75rem; }
 .tps-carousel .tps-carousel-title:after { margin-top:.8rem; }
 .tps-carousel .tps-actions { margin-top:1rem; gap:.6rem; }
 .tps-carousel-controls { bottom:8px; max-width:calc(100% - 16px); gap:2px; }
}
@media (prefers-reduced-motion:reduce) { .tps-carousel *, .tps-carousel *:before, .tps-carousel *:after { animation:none!important; transition:none!important; scroll-behavior:auto; } }

.tps-carousel .tps-carousel-banner { position:absolute; inset:0; display:block; width:100%; height:100%; }
.tps-carousel .tps-hero-number { position:absolute; top:1rem; left:1rem; z-index:1; pointer-events:none; opacity:.22; font:clamp(2.5rem,5vw,5rem)/1 var(--tps-serif); }
.tps-carousel .tps-hero-vertical { position:absolute; right:.7rem; top:1rem; z-index:1; pointer-events:none; opacity:.45; writing-mode:vertical-rl; font-size:.6rem; letter-spacing:.17em; }

/* Empty media stays a quiet grey field, without a tall mobile placeholder. */
.tps-carousel .tps-hero-gallery.is-empty .tps-carousel-slides { min-height:0; }
.tps-carousel .tps-hero-gallery.is-empty .tps-hero-number,
.tps-carousel .tps-hero-gallery.is-empty .tps-hero-vertical { display:none; }
@media (max-width:900px) {
 .tps-carousel .tps-hero-gallery.is-empty { min-height:96px; aspect-ratio:auto; }
}
