/* Compact, native scrolling carousels; no third-party slider library. */
.att-carousel { min-width:0; }
.att-carousel [hidden] { display:none!important; }
.att-carousel__track,
.home-tour-grid.att-carousel__track { display:flex; gap:16px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:1px; padding:4px 1px 12px; scrollbar-width:thin; }
.att-carousel__track > * { flex:0 0 calc((100% - 32px)/3); min-width:0; scroll-snap-align:start; }
.att-carousel__track:focus-visible { outline:3px solid #1d70ce; outline-offset:4px; border-radius:14px; }
.att-carousel__controls { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:6px; }
.att-carousel__controls[hidden] { display:none!important; }
.att-carousel__button { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; flex:0 0 auto; border:1px solid #b9d4e9; border-radius:50%; background:#f0f7ff; color:#1264b1; cursor:pointer; transition:background .16s ease; }
.att-carousel__button:hover { background:#e0efff; }
.att-carousel__button:disabled { opacity:.35; cursor:default; }
.att-carousel__button:focus-visible { outline:3px solid #1d70ce; outline-offset:3px; }
.att-carousel__button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.att-carousel__toggle { width:auto; min-width:92px; gap:6px; padding:0 12px; border-radius:22px; font-size:13px; }
.att-carousel__counter { min-width:90px; color:#53697e; font-size:13px; text-align:center; font-variant-numeric:tabular-nums; }
.att-carousel .home-tour-card { box-shadow:none; }
.att-carousel .home-tour-card:hover { transform:none; box-shadow:none; }
.att-carousel .home-tour-photo { aspect-ratio:8/5; }
.att-carousel .home-tour-body { display:flex; flex:1; flex-direction:column; padding:12px 14px; gap:6px; }
.att-carousel .home-tour-summary { margin:0; line-height:1.4; }
.att-carousel .home-tour-facts { margin:0; gap:2px; }
.att-carousel .home-tour-price { margin-top:1px; }
.att-carousel .home-tour-open { margin-top:auto; min-height:44px; padding:8px 10px; }
.att-carousel .home-tour-card[data-home-tour="zookhaokheow"] .home-tour-price strong { font-size:1.35rem; }
/* Keep the icon and title together in the three useful-place cards. */
.tools-grid .tool-card { display:grid; grid-template-columns:40px minmax(0,1fr); grid-template-rows:minmax(40px,auto) 1fr auto; column-gap:12px; row-gap:10px; min-height:0; padding:18px 20px; box-shadow:none; }
.tools-grid .tool-icon { width:40px; height:40px; grid-column:1; grid-row:1; align-self:center; border-radius:12px; box-shadow:none; font-size:1.35rem; }
.tools-grid .tool-card h3 { grid-column:2; grid-row:1; min-width:0; align-self:center; margin:0; font-size:1.05rem; line-height:1.3; }
.tools-grid .tool-card p,.tools-grid .tool-link { grid-column:1/-1; margin:0; }
.tools-grid .tool-card p { line-height:1.45; }
.tools-grid .tool-link { align-self:end; margin-top:2px; }
.att-news-section { padding-top:24px; padding-bottom:24px; }
.att-news-section .section-kicker { color:#1264b1; }
.att-news-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.att-news-heading h2 { margin:.35rem 0 0; color:#12324a; font-size:clamp(1.55rem,3vw,2rem); line-height:1.2; }
.att-news-heading p { margin:.6rem 0 0; color:#53697e; line-height:1.5; }
.att-news-all { flex:0 0 auto; color:#1264b1; font-weight:700; text-underline-offset:3px; }
.att-news-card { display:flex; flex-direction:column; gap:11px; min-height:250px; padding:20px; border:1px solid #d7e5f1; border-radius:18px; background:linear-gradient(155deg,#f5faff,#fff 60%); color:#12324a; }
.att-news-date { color:#5d7184; font-size:13px; }
.att-news-card h3 { margin:0; font-size:18px; font-weight:750; line-height:1.35; overflow-wrap:anywhere; }
.att-news-card h3 a { color:#12324a; text-decoration:none; }
.att-news-card h3 a:hover { color:#1264b1; text-decoration:underline; text-underline-offset:3px; }
.att-news-card p { margin:0; color:#4b6277; font-size:14px; line-height:1.6; }
.att-news-summary { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
.att-news-source { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 12px; margin-top:auto; padding-top:8px; border-top:1px solid #e2edf5; }
.att-news-source a { display:inline-block; min-height:24px; color:#57778f; font-size:12px; line-height:1.5; text-decoration:underline; text-underline-offset:3px; }
.att-news-source a:hover { color:#1264b1; }
.att-news-source a:focus-visible,.att-news-all:focus-visible,.att-news-card h3 a:focus-visible { outline:3px solid #1d70ce; outline-offset:3px; }
.att-news-note { margin:12px 0 0; color:#6a7c8d; font-size:12px; line-height:1.6; }
.att-news-empty { padding:24px; border:1px solid #d7e5f1; border-radius:16px; color:#53697e; }
.att-news-page { max-width:1180px; margin:0 auto; padding:32px 20px; }
.att-news-page h1 { margin:10px 0; color:#12324a; font-size:clamp(1.9rem,4vw,2.7rem); line-height:1.2; }
.att-news-page__intro { max-width:760px; color:#53697e; line-height:1.65; }
.att-news-page__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:24px; }
.att-news-page__grid .att-news-summary { -webkit-line-clamp:6; }
.att-news-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; color:#61758a; font-size:14px; }
.att-news-breadcrumbs a { color:#1264b1; text-decoration:none; }
.att-news-breadcrumbs a:hover { text-decoration:underline; }
.att-news-more { display:block; min-height:44px; margin:24px auto 0; padding:10px 22px; border:1px solid #b9d4e9; border-radius:22px; color:#1264b1; background:#f0f7ff; font-weight:700; cursor:pointer; }
@media(max-width:1000px) {
 .att-carousel__track > * { flex-basis:calc((100% - 16px)/2); }
 .att-news-page__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
 .att-carousel__track > * { flex-basis:100%; }
 .att-carousel__track,.home-tour-grid.att-carousel__track { gap:12px; }
 .att-carousel__controls { justify-content:center; }
 .att-news-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 .att-news-card { min-height:238px; padding:18px; }
 .att-news-card h3 { font-size:18px; }
 .att-news-page { padding:24px 16px; }
 .att-news-page__grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
 .att-carousel__track { scroll-behavior:auto; }
 .att-carousel__button { transition:none; }
}

/* Complete short announcements with optional source links. */
.att-news-card { gap:10px; min-height:235px; background:#eef6ff; border-color:#cfdff0; border-top:3px solid #9dbfe0; }
.att-news-card:nth-child(6n+2) { background:#f5f0ff; border-color:#ded4ef; border-top-color:#baa4d9; }
.att-news-card:nth-child(6n+3) { background:#fff0f4; border-color:#eed2dd; border-top-color:#dca9bd; }
.att-news-card:nth-child(6n+4) { background:#eff9f3; border-color:#cfe4d8; border-top-color:#9ac7ae; }
.att-news-card:nth-child(6n+5) { background:#fff3e9; border-color:#ecd8c4; border-top-color:#dcac7f; }
.att-news-card:nth-child(6n) { background:#fff9e8; border-color:#e8deb7; border-top-color:#d5c27b; }
.att-news-card .att-news-date { width:fit-content; margin:0; padding:4px 9px; border-radius:10px; background:rgb(255 255 255 / .6); color:#465f75; font-size:13px; line-height:1.5; }
.att-news-card h3 { cursor:text; }
.att-news-card .att-news-event-name { font-size:13px; line-height:1.5; color:#405a70; overflow-wrap:anywhere; }
.att-news-card .att-news-location,.att-news-card .att-news-time { font-size:14px; line-height:1.55; color:#405a70; }
.att-news-fact-label { font-weight:650; }
.att-news-card .att-news-source a { min-height:32px; color:#3f5c74; font-size:12px; line-height:1.5; padding:4px 0; }
.att-news-card .att-news-source { border-top-color:rgb(87 119 143 / .2); }
.att-news-card--highlight { outline:2px solid #2270b7; outline-offset:3px; }
