/* Campaign and cuisine discovery modules, scoped to the search page. */
.ts .ts-discovery-section { margin-bottom:30px; }
.ts .ts-discovery-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:17px; }
.ts .ts-discovery-heading h2 { display:flex; align-items:center; gap:9px; color:var(--ts-ink); font-size:23px; font-weight:800; letter-spacing:-.65px; line-height:1.4; }
.ts .ts-discovery-heading h2>span { color:#9999a4; font-size:15px; font-weight:500; letter-spacing:0; }
.ts .ts-discovery-all { display:inline-flex; align-items:center; gap:7px; flex-shrink:0; color:#81818c; background:transparent; padding:5px 0; border:0; font-size:11px; font-weight:600; }
.ts .ts-discovery-all:hover { color:var(--ts-accent); }
.ts .ts-discovery-all .ts-icon { width:14px; height:14px; }
.ts .ts-carousel { position:relative; min-width:0; }
.ts .ts-carousel-track { display:grid; grid-auto-flow:column; overflow:auto; gap:15px; padding:2px 1px 5px; scrollbar-width:none; scroll-snap-type:x proximity; overscroll-behavior-x:contain; }
.ts .ts-carousel-track::-webkit-scrollbar { display:none; }
.ts .ts-carousel-track>a { scroll-snap-align:start; }
.ts .ts-campaign-track { grid-auto-columns:calc((100% - 45px)/3.6); }
.ts .ts-campaign-card { display:flex; flex-direction:column; min-width:0; border:1px solid #e9e9ee; border-radius:16px; background:#fff; overflow:hidden; transition:border-color .2s,box-shadow .2s,transform .2s; }
.ts .ts-campaign-card:hover,.ts .ts-campaign-card.is-active { border-color:rgba(var(--ts-rgb),.5); box-shadow:0 6px 18px #3c3d5010; }
.ts .ts-campaign-art { aspect-ratio:1.12; display:grid; place-items:center; background:linear-gradient(145deg,#fff4e5,#ffe5c7); overflow:hidden; }
.ts .ts-campaign-tone-1 .ts-campaign-art { background:linear-gradient(145deg,#eef9f2,#dceee4); }
.ts .ts-campaign-tone-2 .ts-campaign-art { background:linear-gradient(145deg,#edf3ff,#dfe7fa); }
.ts .ts-campaign-tone-3 .ts-campaign-art { background:linear-gradient(145deg,#fff0f3,#f8dfe8); }
.ts .ts-campaign-art>img { display:block; width:100%; height:100%; object-fit:contain; }
.ts .ts-campaign-fallback { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:13px; color:#b06f38; padding:20px; }
.ts .ts-campaign-fallback>.ts-icon { width:30px; height:30px; }
.ts .ts-campaign-fallback>strong { font-size:clamp(25px,3vw,40px); font-weight:800; letter-spacing:-1px; }
.ts .ts-campaign-fallback>span { font-size:12px; }
.ts .ts-campaign-body { display:flex; flex:1; flex-direction:column; padding:13px 14px 14px; }
.ts .ts-campaign-value { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:11px; font-weight:700; color:var(--ts-accent); }
.ts .ts-campaign-value .ts-icon { width:17px; height:17px; }
.ts .ts-campaign-body h3 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; font-size:12px; font-weight:700; line-height:1.6; color:#51515e; margin:8px 0; }
.ts .ts-campaign-body p { font-size:9px; line-height:1.7; color:#9797a2; margin-top:auto; }
.ts .ts-campaign-terms { font-size:9px; line-height:1.8; color:#a2a1ab; margin-top:9px; }
.ts .ts-campaign-empty { display:flex; align-items:center; gap:16px; padding:23px; border:1px dashed #e4e0da; border-radius:15px; background:#fffcf8; }
.ts .ts-campaign-empty>.ts-icon { width:40px; height:40px; padding:10px; color:var(--ts-accent); background:#fff1df; border-radius:12px; }
.ts .ts-campaign-empty strong { font-size:12px; font-weight:600; color:#8c8074; }
.ts .ts-campaign-empty p { font-size:10px; color:#aaa095; margin-top:7px; line-height:1.7; }
.ts .ts-carousel-arrow { display:grid; place-items:center; position:absolute; z-index:2; top:50%; transform:translateY(-50%); height:35px; width:35px; border:1px solid #e8e7ec; border-radius:50%; color:var(--ts-accent); background:#fff; box-shadow:0 4px 14px #20233113; transition:background .2s,opacity .2s; }
.ts .ts-carousel-arrow .ts-icon { width:16px; height:16px; }
.ts .ts-carousel-prev { left:-13px; }
.ts .ts-carousel-prev .ts-icon { transform:rotate(180deg); }
.ts .ts-carousel-next { right:-13px; }
.ts .ts-carousel-arrow:hover:not(:disabled) { background:#fff7ed; border-color:rgba(var(--ts-rgb),.3); }
.ts .ts-carousel-arrow:disabled { opacity:.4; cursor:default; }
.ts .ts-cuisine-track { grid-auto-columns:108px; gap:13px; }
.ts .ts-cuisine-tile { display:flex; min-width:0; flex-direction:column; align-items:center; text-align:center; border:1px solid #ecebf0; border-radius:15px; background:#fff; overflow:hidden; transition:border-color .2s,background .2s; }
.ts .ts-cuisine-art { display:block; width:100%; aspect-ratio:1.05; overflow:hidden; background:#f4f4f6; }
.ts .ts-cuisine-art>img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.ts .ts-cuisine-tile>span:last-child { display:flex; align-items:center; justify-content:center; min-height:43px; padding:7px 6px; color:#63636e; font-size:11px; font-weight:600; line-height:1.4; }
.ts .ts-cuisine-tile:hover,.ts .ts-cuisine-tile.is-active { border-color:rgba(var(--ts-rgb),.6); background:#fff8ef; }
.ts .ts-cuisine-tile.is-active>span:last-child { color:var(--ts-accent); }
.ts .ts-cuisine-tile:hover .ts-cuisine-art>img { transform:scale(1.04); }
.ts .ts-cuisine-all { margin-bottom:16px; }
.ts .ts-cuisine-list { max-height:none; overflow:visible; }
.ts .ts-cuisine-more { display:flex; align-items:center; gap:8px; padding:0 0 20px; border:0; background:transparent; color:#777783; font-size:11px; font-weight:600; }
.ts .ts-cuisine-more .ts-icon { width:13px; height:13px; transform:rotate(90deg); }
.ts .ts-cuisine-more[aria-expanded="true"] .ts-icon { transform:rotate(-90deg); }
.ts .ts-mobile-discovery-tools { display:none; }
.ts .ts-campaign-dialog { position:fixed; inset:0; width:calc(100% - 48px); max-width:1000px; max-height:87dvh; margin:auto; padding:30px; border:1px solid #eeedf3; border-radius:24px; color:var(--ts-ink); background:#f9f9fb; box-shadow:0 25px 80px #24263830; overflow:auto; overscroll-behavior:contain; }
.ts .ts-campaign-dialog::backdrop { background:#26283865; backdrop-filter:blur(4px); }
.ts .ts-campaign-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.ts .ts-campaign-dialog-head h2 { font-size:27px; font-weight:800; letter-spacing:-1px; margin-top:6px; }
.ts .ts-campaign-dialog-head h2>span { font-size:17px; font-weight:500; color:#9999a5; margin-left:7px; }
.ts .ts-campaign-dialog-intro { font-size:12px; line-height:1.8; color:#9696a1; margin:12px 0 24px; }
.ts .ts-all-campaigns-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
@media(max-width:1150px) { .ts .ts-campaign-track { grid-auto-columns:calc((100% - 28px)/2.5); } }
@media(max-width:850px) { .ts.ts-enhanced .ts-mobile-discovery-tools { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:22px; } .ts .ts-mobile-discovery-tools>span { color:#8d8d98; font-size:11px; } }
@media(max-width:600px) {
 .ts .ts-discovery-section { margin-bottom:25px; }
 .ts .ts-discovery-heading { margin-bottom:14px; }
 .ts .ts-discovery-heading h2 { font-size:21px; }
 .ts .ts-discovery-heading h2>span { font-size:13px; }
 .ts .ts-discovery-all { font-size:10px; }
 .ts .ts-campaign-track { grid-auto-columns:calc((100% - 14px)/1.35); gap:13px; }
 .ts .ts-campaign-body p { font-size:10px; }
 .ts .ts-campaign-terms { font-size:8px; }
 .ts .ts-cuisine-track { grid-auto-columns:92px; gap:11px; }
 .ts .ts-cuisine-tile { border-radius:13px; }
 .ts .ts-cuisine-tile>span:last-child { font-size:10px; min-height:39px; }
 .ts .ts-carousel-arrow { width:31px; height:31px; }
 .ts .ts-campaign-dialog { width:calc(100% - 24px); padding:22px 18px; border-radius:20px; }
 .ts .ts-campaign-dialog-head h2 { font-size:23px; }
 .ts .ts-all-campaigns-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
 .ts .ts-mobile-discovery-tools>span { font-size:10px; }
 .ts .ts-campaign-empty { padding:18px 15px; gap:12px; }
 .ts .ts-campaign-empty strong { font-size:11px; line-height:1.7; }
}
@media(max-width:440px) { .ts .ts-all-campaigns-grid { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .ts .ts-carousel-track { scroll-behavior:auto; } }
