/* Travel Affiliate Core — giao diện hiển thị. Mọi selector nằm trong .tac để không đụng theme. */
.tac{
	--tac-accent:#0b7a75;
	--tac-cols:3;
	--tac-gap:22px;
	--tac-radius:18px;
	--tac-bg:#fff;
	--tac-text:#14202b;
	--tac-muted:#64717f;
	--tac-line:#e6ebf0;
	--tac-soft:#f2f6f8;
	--tac-deal:#e4572e;
	--tac-star:#f5a623;
	--tac-shadow:0 1px 2px rgba(16,32,48,.05),0 8px 24px -12px rgba(16,32,48,.18);
	--tac-shadow-hover:0 2px 4px rgba(16,32,48,.06),0 18px 36px -14px rgba(16,32,48,.30);
	font-family:inherit;
	color:var(--tac-text);
	line-height:1.45;
	margin:1.75em 0;
}
.tac--dark{
	--tac-bg:#17212b;--tac-text:#eef3f7;--tac-muted:#98a7b6;--tac-line:#2a3744;--tac-soft:#202c38;
	--tac-shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px -12px rgba(0,0,0,.6);
	--tac-shadow-hover:0 2px 4px rgba(0,0,0,.35),0 20px 40px -14px rgba(0,0,0,.7);
	background:#0f171f;padding:clamp(16px,3vw,28px);border-radius:calc(var(--tac-radius) + 6px);
}
.tac,.tac *,.tac *::before,.tac *::after{box-sizing:border-box}
.tac :where(h2,h3,p,ul){margin:0;padding:0}
.tac :where(ul){list-style:none}
.tac :where(a){text-decoration:none;box-shadow:none}
.tac svg{display:inline-block;flex:none}

/* ---- tiêu đề khối ---- */
.tac-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.tac-head__title{font-size:clamp(1.25rem,1.1rem + .8vw,1.7rem);line-height:1.2;font-weight:750;letter-spacing:-.015em;color:var(--tac-text)}
.tac-head__sub{margin-top:6px;color:var(--tac-muted);font-size:.95rem}

/* ---- bố cục ---- */
.tac-list{display:grid;gap:var(--tac-gap);grid-template-columns:repeat(var(--tac-cols),minmax(0,1fr))}
@media (max-width:980px){.tac--grid .tac-list{grid-template-columns:repeat(min(var(--tac-cols),2),minmax(0,1fr))}}
@media (max-width:620px){.tac--grid .tac-list{grid-template-columns:minmax(0,1fr)}}
.tac--list .tac-list,.tac--feature .tac-list{grid-template-columns:minmax(0,1fr)}

.tac--slider .tac-list{
	display:flex;gap:var(--tac-gap);overflow-x:auto;scroll-snap-type:x mandatory;
	scroll-padding-left:2px;padding:4px 2px 22px;margin:-4px -2px -10px;
	scrollbar-width:thin;scrollbar-color:var(--tac-line) transparent;overscroll-behavior-x:contain;
}
.tac--slider .tac-card{flex:0 0 calc((100% - var(--tac-gap) * (var(--tac-cols) - 1)) / var(--tac-cols));scroll-snap-align:start}
@media (max-width:980px){.tac--slider .tac-card{flex-basis:calc((100% - var(--tac-gap)) / 2)}}
@media (max-width:620px){.tac--slider .tac-card{flex-basis:82%}}
.tac--slider .tac-list:focus-visible{outline:2px solid var(--tac-accent);outline-offset:4px;border-radius:12px}

.tac-nav{display:flex;gap:8px}
.tac-nav[hidden]{display:none}
.tac-nav--solo{justify-content:flex-end;margin-bottom:12px}
.tac-nav__btn{
	width:40px;height:40px;border-radius:50%;border:1px solid var(--tac-line);background:var(--tac-bg);color:var(--tac-text);
	display:grid;place-items:center;cursor:pointer;padding:0;transition:background .2s,color .2s,border-color .2s,transform .2s;
}
.tac-nav__btn:hover{background:var(--tac-accent);border-color:var(--tac-accent);color:#fff}
.tac-nav__btn:active{transform:scale(.94)}
.tac-nav__btn:disabled{opacity:.35;pointer-events:none}
.tac-nav__btn:focus-visible,.tac-btn:focus-visible{outline:2px solid var(--tac-accent);outline-offset:3px}

/* ---- thẻ ---- */
.tac-card{
	position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;
	background:var(--tac-bg);border:1px solid var(--tac-line);border-radius:var(--tac-radius);
	box-shadow:var(--tac-shadow);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;
}
.tac-card:hover,.tac-card:focus-within{transform:translateY(-4px);box-shadow:var(--tac-shadow-hover)}

.tac-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--tac-soft),color-mix(in srgb,var(--tac-accent) 16%,var(--tac-soft)))}
.tac-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);z-index:1;max-width:none}
.tac-card:hover .tac-img{transform:scale(1.06)}
.tac-ph{position:absolute;inset:0;display:grid;place-items:center;color:color-mix(in srgb,var(--tac-accent) 55%,var(--tac-muted))}
.tac-ph .tac-ico{width:44px;height:44px;opacity:.55}
.tac-card__media.is-broken .tac-img{display:none}
.tac-card__media::after{ /* lớp phủ tối nhẹ phía dưới ảnh giúp badge dễ đọc */
	content:"";position:absolute;inset:auto 0 0 0;height:42%;z-index:2;pointer-events:none;
	background:linear-gradient(to top,rgba(8,16,24,.38),transparent);
}
.tac-badge,.tac-chip{position:absolute;z-index:3;font-size:.74rem;font-weight:700;line-height:1;letter-spacing:.01em}
.tac-badge{top:12px;left:12px;background:var(--tac-deal);color:#fff;padding:7px 10px;border-radius:999px;box-shadow:0 4px 12px -4px rgba(228,87,46,.7)}
.tac-flag{position:absolute;z-index:3;top:12px;right:12px;display:inline-flex;align-items:center;gap:5px;max-width:calc(100% - 24px);padding:6px 10px;border-radius:999px;background:#f5b301;color:#2b1d00;font-size:.74rem;font-weight:800;line-height:1;letter-spacing:.01em;box-shadow:0 4px 12px -4px rgba(245,179,1,.8)}
.tac-flag .tac-ico{width:13px;height:13px;fill:currentColor;flex:none}
.tac-card--featured{border-color:var(--tac-accent);box-shadow:0 0 0 1px var(--tac-accent),var(--tac-shadow)}
.tac-chip{left:12px;bottom:12px;color:#fff;padding:6px 10px;border-radius:999px;background:rgba(10,20,30,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

.tac-card__body{display:flex;flex-direction:column;gap:10px;padding:16px 18px 18px;flex:1}
.tac-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-height:18px;font-size:.82rem;color:var(--tac-muted)}
.tac-dest{display:inline-flex;align-items:center;gap:4px;min-width:0}
.tac-dest .tac-ico{width:14px;height:14px;color:var(--tac-accent)}

.tac-stars{--tac-s:0;display:inline-block;font-size:.95rem;letter-spacing:2px;line-height:1;white-space:nowrap}
.tac-stars::before{
	content:"★★★★★";
	background:linear-gradient(90deg,var(--tac-star) calc(var(--tac-s) / 5 * 100%),color-mix(in srgb,var(--tac-muted) 38%,transparent) 0);
	-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}

.tac-card__title{
	font-size:1.08rem;line-height:1.3;font-weight:720;letter-spacing:-.01em;color:var(--tac-text);
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;
}

.tac-rating{display:flex;align-items:center;gap:10px}
.tac-score{
	display:grid;place-items:center;min-width:38px;height:32px;padding:0 8px;border-radius:10px 10px 10px 3px;
	background:var(--tac-accent);color:#fff;font-weight:800;font-size:.95rem;font-variant-numeric:tabular-nums;
}
.tac-rating__txt{display:flex;flex-direction:column;font-size:.8rem;line-height:1.25;color:var(--tac-muted)}
.tac-rating__txt strong{color:var(--tac-text);font-size:.88rem}

.tac-perks{display:flex;flex-wrap:wrap;gap:6px}
.tac-perks li{
	display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 10px;border-radius:999px;
	background:var(--tac-soft);color:var(--tac-text);font-size:.78rem;font-weight:550;
}
.tac-perks li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tac-perks .tac-ico{width:14px;height:14px;color:var(--tac-accent)}

.tac-card__foot{
	margin-top:auto;padding-top:14px;border-top:1px dashed var(--tac-line);
	display:flex;flex-direction:column;align-items:stretch;gap:12px;
}
.tac-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0}
.tac-price__from{font-size:.78rem;color:var(--tac-muted);flex-basis:100%}
.tac-price__old{font-size:.85rem;color:var(--tac-muted);text-decoration-thickness:1px}
.tac-price__now{font-size:1.4rem;line-height:1.1;font-weight:800;letter-spacing:-.02em;color:var(--tac-text);font-variant-numeric:tabular-nums}
.tac-price__now--ask{font-size:1rem;font-weight:700;color:var(--tac-muted)}
.tac-price__unit{font-size:.78rem;color:var(--tac-muted)}
.tac-price__note{flex-basis:100%;font-size:.72rem;color:var(--tac-muted);opacity:.9}

.tac-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;padding:12px 16px;border-radius:12px;
	background:var(--tac-accent);color:#fff!important;font-weight:700;font-size:.88rem;line-height:1.1;
	transition:filter .2s,transform .2s,gap .2s;
}
.tac-btn::after{content:"";position:absolute;inset:0;z-index:4;border-radius:var(--tac-radius)} /* cả thẻ bấm được */
.tac-btn .tac-ico{width:16px;height:16px;transition:transform .25s}
.tac-card:hover .tac-btn{filter:brightness(1.07)}
.tac-card:hover .tac-btn .tac-ico{transform:translateX(3px)}

/* ---- danh sách ngang & thẻ nổi bật ---- */
@media (min-width:700px){
	.tac--list .tac-card,.tac--feature .tac-card{flex-direction:row}
	.tac--list .tac-card__media,.tac--feature .tac-card__media{flex:0 0 min(36%,320px);aspect-ratio:auto;min-height:190px}
	.tac--feature .tac-card__media{flex-basis:min(44%,460px);min-height:260px}
	.tac--list .tac-card__body,.tac--feature .tac-card__body{padding:18px 22px;justify-content:center}
	.tac--list .tac-card__foot,.tac--feature .tac-card__foot{flex-direction:row;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
	.tac--feature .tac-card__title{font-size:1.4rem;-webkit-line-clamp:3;min-height:0}
	.tac--feature .tac-price__now{font-size:1.75rem}
	.tac--feature .tac-btn{padding:13px 20px;font-size:.95rem}
}
.tac--list .tac-card__title{min-height:0}

/* ---- thông báo ---- */
.tac-disclosure{margin-top:16px;padding:10px 14px;border-radius:12px;background:var(--tac-soft);color:var(--tac-muted);font-size:.78rem;line-height:1.5}
.tac--dark .tac-disclosure{background:#1c2733}
.tac-empty{padding:14px 16px;border:1px dashed #c9d2da;border-radius:12px;color:#64717f;font-size:.9rem}

@media (prefers-reduced-motion:reduce){
	.tac *,.tac *::before,.tac *::after{transition:none!important;animation:none!important}
	.tac-card:hover,.tac-card:focus-within{transform:none}
}
@media print{.tac-btn,.tac-nav{display:none}.tac-card{box-shadow:none;break-inside:avoid}}
.tac-disclosure--badge{background:none;padding:0;text-align:center}
/* Phù hiệu đối tác Agoda (class riêng, không dùng chung với nhãn giảm giá .tac-badge vốn position:absolute).
   Các selector có tiền tố bên dưới cũng vá cho bài cũ đã lưu class cũ "tac-badge". */
.tac-partner,.tac-disclosure--badge .tac-badge,.tac-wr-badge .tac-badge,.tacs-footer__badge .tac-badge{position:static!important;inset:auto!important;display:inline-block;line-height:0;background:none!important;padding:0!important;border-radius:0!important;box-shadow:none!important;z-index:auto}
.tac-partner img,.tac-disclosure--badge .tac-badge img,.tac-wr-badge .tac-badge img,.tacs-footer__badge .tac-badge img{display:block;width:auto;max-width:100%;height:auto;max-height:56px;border-radius:0}
