/* Catalogue styles stay within the new components; legacy home/shop is untouched. */
:is(.ts-home,.ts-catalogue,.ts-directory,.ts-profile,.ts-seller,.ts-editorial) {
  --ts-ink:#26352f; --ts-muted:#5c625b; --ts-paper:#f7f4ee; --ts-line:#d9d5ca; --ts-accent:#71552e;
  color:var(--ts-ink); font-family:"Avenir Next","Segoe UI",sans-serif; line-height:1.6;
  box-sizing:border-box; min-width:0;
}
:is(.ts-home,.ts-catalogue,.ts-directory,.ts-profile,.ts-seller,.ts-editorial) * { box-sizing:border-box; }
:is(.ts-home,.ts-catalogue,.ts-directory,.ts-profile,.ts-seller,.ts-editorial) :is(a,button,input,select):focus-visible { outline:3px solid #946c2c; outline-offset:4px; }
:is(.ts-home,.ts-catalogue,.ts-directory,.ts-profile,.ts-seller,.ts-editorial) a { text-underline-offset:4px; }
.ts-home,.ts-directory,.ts-catalogue { width:100%; max-width:1280px; margin-inline:auto; }
.ts-profile { max-width:1328px; padding:48px 24px; margin:auto; }
.ts-profile-header { max-width:850px; padding-bottom:38px; }
.ts-profile h1,.ts-hero h1 { font:400 clamp(34px,5vw,68px)/1.08 Georgia,"Times New Roman",serif; letter-spacing:-.035em; margin:0 0 24px; overflow-wrap:anywhere; }
.ts-eyebrow { font-size:11px; font-weight:650; letter-spacing:.15em; text-transform:uppercase; color:var(--ts-accent); margin:0 0 16px; }
.ts-hero { padding:72px 0 60px; border-bottom:1px solid var(--ts-line); max-width:100%; }
.ts-hero h1 { max-width:900px; }
.ts-lead { font-size:18px; line-height:1.75; max-width:710px; margin:0 0 24px; overflow-wrap:anywhere; }
.ts-actions,.ts-contacts { display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; margin-top:26px; }
.ts-button,.ts-filters button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 20px; border:1px solid var(--ts-ink); border-radius:2px; background:var(--ts-ink); color:#fff; font:600 14px/1.4 "Avenir Next","Segoe UI",sans-serif; text-decoration:none; cursor:pointer; white-space:normal; }
.ts-button:hover,.ts-filters button:hover { background:#405749; color:#fff; }
.ts-text-link,.ts-website { color:var(--ts-ink); font-size:14px; font-weight:600; padding-block:10px; overflow-wrap:anywhere; }
.ts-text-link span { margin-left:8px; }
.ts-section { padding:42px 0; }
.ts-section-title { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:26px; }
.ts-section h2,.ts-dealer-card h2,.ts-empty h2 { font:400 30px/1.25 Georgia,"Times New Roman",serif; margin:0; overflow-wrap:anywhere; }
.ts-category-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--ts-line); }
.ts-category-links a { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 16px; border-bottom:1px solid var(--ts-line); color:var(--ts-ink); text-decoration:none; overflow-wrap:anywhere; }
.ts-category-links a:hover { background:var(--ts-paper); }
.ts-category-count { color:var(--ts-muted); font-size:13px; font-variant-numeric:tabular-nums; flex:none; }
.ts-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:end; background:var(--ts-paper); padding:24px; border-block:1px solid var(--ts-line); margin:0; }
.ts-filters label { display:flex; flex-direction:column; gap:8px; min-width:0; margin:0; font-size:12px; font-weight:650; letter-spacing:.015em; }
.ts-filters .ts-search-label { grid-column:span 2; }
.ts-filters :is(input,select) { display:block; width:100%; min-width:0; min-height:46px; margin:0; padding:10px 12px; border:1px solid #bcbfb5; border-radius:2px; background:#fff; color:var(--ts-ink); font:400 16px/1.4 "Avenir Next","Segoe UI",sans-serif; }
.ts-filter-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; }
.ts-reset { padding:12px 6px; color:var(--ts-muted); font-size:13px; }
.ts-result-count { font-size:13px; color:var(--ts-muted); margin:24px 0; font-variant-numeric:tabular-nums; }
.ts-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px 24px; }
.ts-item { min-width:0; margin:0; border-bottom:1px solid var(--ts-line); }
.ts-item-photo { display:block; position:relative; aspect-ratio:4/3; background:#f1eee7; overflow:hidden; }
.ts-item-photo img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .2s ease; }
.ts-item-photo:hover img { transform:scale(1.025); }
.ts-status { position:absolute; bottom:10px; left:10px; right:auto; max-width:calc(100% - 20px); background:#fffdf8; padding:4px 9px; color:var(--ts-ink); font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.ts-item-body { padding:18px 0 20px; }
.ts-item h3 { font:400 22px/1.3 Georgia,"Times New Roman",serif; margin:0 0 12px; overflow-wrap:anywhere; }
.ts-item h3 a,.ts-dealer-card h2 a { color:var(--ts-ink); text-decoration:none; }
.ts-item h3 a:hover,.ts-dealer-card h2 a:hover { text-decoration:underline; }
.ts-dealer-name { display:block; color:var(--ts-accent); font-size:13px; overflow-wrap:anywhere; }
.ts-price { font-size:14px; margin-top:12px; }
.ts-pagination { margin:32px 0; }
.ts-pagination ul { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.ts-pagination li { margin:0; padding:0; list-style:none; }
.ts-pagination :is(a,span) { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--ts-line); color:var(--ts-ink); text-decoration:none; }
.ts-pagination .current { background:var(--ts-ink); color:#fff; border-color:var(--ts-ink); }
.ts-empty { padding:40px 24px; background:var(--ts-paper); border:1px solid var(--ts-line); }
.ts-empty h2 { font-size:26px; margin-bottom:12px; }
.ts-empty p { max-width:650px; margin:0; color:var(--ts-muted); }
.ts-dealer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ts-dealer-card { min-width:0; padding:30px; background:var(--ts-paper); border-top:2px solid #8a7655; }
.ts-dealer-card h2 { margin-bottom:14px; }
.ts-dealer-card p { overflow-wrap:anywhere; }
.ts-location { color:var(--ts-muted); margin:8px 0; font-size:14px; }
.ts-specialisation { margin:12px 0; font-size:14px; }
.ts-dealer-count { margin:24px 0 12px; padding-top:16px; border-top:1px solid var(--ts-line); font-size:13px; color:var(--ts-muted); }
.ts-directory-filters { grid-template-columns:2fr 1fr auto; }
.ts-seller { padding:24px; border:1px solid var(--ts-line); margin:24px 0; }
.ts-seller .ts-dealer-name { font:400 25px/1.35 Georgia,"Times New Roman",serif; }
.ts-editorial { max-width:1000px; margin:32px auto; padding:clamp(24px,4vw,48px); background:var(--ts-paper); border-left:3px solid var(--ts-accent); }
.ts-editorial :is(h2,h3) { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.ts-editorial p { max-width:760px; }
.ts-note { font-size:13px; color:var(--ts-muted); margin:18px 0 0; }
@media(max-width:900px) {
  .ts-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ts-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ts-category-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ts-directory-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ts-directory-filters label:first-child { grid-column:1/-1; }
}
@media(max-width:600px) {
  .ts-profile { padding:28px 16px; }
  .ts-hero { padding:36px 0; }
  .ts-lead { font-size:16px; }
  .ts-section { padding:30px 0; }
  .ts-section-title { display:block; }
  .ts-section-title .ts-text-link { display:inline-block; margin-top:12px; }
  .ts-grid,.ts-dealer-grid,.ts-category-links,.ts-filters,.ts-directory-filters { grid-template-columns:minmax(0,1fr); }
  .ts-filters { padding:18px 16px; gap:16px; }
  .ts-filters .ts-search-label,.ts-directory-filters label:first-child { grid-column:auto; }
  .ts-filter-actions button { flex:1; }
  .ts-grid { gap:26px; }
  .ts-dealer-card { padding:24px 20px; }
  .ts-item h3 { font-size:22px; }
  .ts-empty { padding:28px 20px; }
  .ts-profile-header { padding-bottom:28px; }
}
@media(prefers-reduced-motion:reduce) { .ts-item-photo img { transition:none; } }

/* Private workspace AI preparation: native forms also work without JavaScript. */
.tsw-ai { border:1px solid #d6d4ce; border-radius:10px; padding:clamp(16px,3vw,28px); margin:24px 0; background:#faf9f6; }
.tsw-ai h3 { margin-top:0; }
.tsw-ai-form label { display:block; line-height:1.5; }
.tsw-ai-form input:not([type=hidden]):not([type=checkbox]), .tsw-ai-form textarea, .tsw-ai-form select { display:block; width:100%; max-width:100%; box-sizing:border-box; font-size:16px; margin-top:6px; }
.tsw-ai-form textarea { min-height:120px; resize:vertical; }
.tsw-ai-form input[type=checkbox] { width:20px; height:20px; vertical-align:middle; margin-right:8px; }
.tsw-ai-form button { min-height:44px; max-width:100%; white-space:normal; }
.tsw-ai :focus-visible { outline:3px solid #6a531e; outline-offset:3px; }
.tsw-ai details, .tsw-ai li { overflow-wrap:anywhere; }
