/* Tour Services v3 — Component-only styles */

.ts-block { max-width: 100%; }

/* Layout */
.ts-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: start; }
.ts-col-left, .ts-col-right { min-width: 0; }

/* Gallery */
.ts-gal-main { border-radius: 10px; overflow: hidden; aspect-ratio: 4/3; background: rgba(128,128,128,.1); }
.ts-gal-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-gal-thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; }
.ts-thumb { flex: 0 0 72px; width: 72px; height: 54px; border-radius: 6px; overflow: hidden; border: 2px solid rgba(128,128,128,.2); cursor: pointer; padding: 0; background: rgba(128,128,128,.1); transition: border-color .2s; }
.ts-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-thumb--on, .ts-thumb:hover { border-color: #25D366; }

/* Meta tags */
.ts-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 1.2rem; }
.ts-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; padding: 5px 12px; border-radius: 6px; border: 1px solid rgba(128,128,128,.25); background: rgba(128,128,128,.06); }
.ts-tag svg { opacity: .6; }

/* Description */
.ts-desc { font-size: 15px; line-height: 1.7; margin-bottom: 1.5rem; }
.ts-desc p:last-child { margin-bottom: 0; }

/* Section label */
.ts-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .45; margin-bottom: 10px; }

/* Features */
.ts-features { margin-bottom: 1.5rem; }
.ts-feat-list { list-style: none; margin: 0; padding: 0; }
.ts-feat-list li { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 14px; }
.ts-feat-list li svg { flex-shrink: 0; color: #25D366; }

/* Pricing */
.ts-pricing { margin-bottom: 1rem; }
.ts-tiers { border: 1px solid rgba(128,128,128,.2); border-radius: 10px; overflow: hidden; }
.ts-tier { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; gap: 12px; }
.ts-tier:not(:last-child) { border-bottom: 1px solid rgba(128,128,128,.12); }
.ts-tier:hover { background: rgba(128,128,128,.04); }
.ts-tier--info { background: rgba(128,128,128,.05); }
.ts-tier--info .ts-tier-price { opacity: .55; }
.ts-tier-left { display: flex; flex-direction: column; gap: 2px; }
.ts-tier-name { font-weight: 600; font-size: 15px; }
.ts-tier-sub { font-size: 12px; opacity: .5; }
.ts-tier-right { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.ts-tier-price { font-size: 17px; font-weight: 700; white-space: nowrap; }
.ts-note { font-size: 12px; opacity: .45; margin-top: 10px; font-style: italic; }

/* WhatsApp button */
.ts-wa { display: inline-flex; align-items: center; gap: 6px; background: #25D366; color: #fff !important; font-size: 13px; font-weight: 600; padding: 10px 20px; border-radius: 8px; text-decoration: none !important; white-space: nowrap; transition: background .2s, transform .15s; border: none; }
.ts-wa svg { fill: #fff; }
.ts-wa:hover, .ts-wa:focus, .ts-wa:visited { background: #1fb855; color: #fff !important; text-decoration: none !important; transform: translateY(-1px); }

/* Archive Grid */
.ts-grid { display: grid; grid-template-columns: repeat(var(--ts-cols, 3), 1fr); gap: 1.5rem; }
.ts-card { display: block; text-decoration: none !important; color: inherit !important; border: 1px solid rgba(128,128,128,.2); border-radius: 10px; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.ts-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); transform: translateY(-2px); }
.ts-card-img { aspect-ratio: 16/10; overflow: hidden; background: rgba(128,128,128,.08); }
.ts-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-card-ph { display: flex; align-items: center; justify-content: center; height: 100%; opacity: .3; }
.ts-card-body { padding: 1rem 1.2rem; }
.ts-card-title { font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.ts-card-meta { display: flex; gap: 10px; font-size: 13px; opacity: .55; margin-bottom: 6px; }
.ts-card-price { font-size: 14px; }
.ts-card-price strong { color: #25D366; }
.ts-empty { text-align: center; opacity: .5; padding: 3rem 0; }

/* Responsive */
@media (max-width: 768px) {
    .ts-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .ts-grid { grid-template-columns: 1fr !important; }
    .ts-tier { flex-direction: column; align-items: flex-start; gap: 10px; }
    .ts-tier-right { width: 100%; justify-content: space-between; }
    .ts-wa { flex: 1; justify-content: center; }
}
