
@charset "UTF-8";
/* ==========================================================================
   Thai Local Smart — Design System
   1. Tokens          2. Reset/Base      3. Accessibility
   4. Layout          5. Components      6. Header/Nav
   7. Homepage        8. Inner pages     9. Footer/Floating
   10. Responsive
   ========================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* Brand */
  --tls-primary:#0F766E;
  --tls-primary-600:#0d675f;
  --tls-primary-700:#0a534d;
  --tls-primary-50:#e7f3f1;
  --tls-secondary:#0D47A1;
  --tls-secondary-50:#e8effa;
  --tls-dark:#12372A;
  --tls-gold:#D4AF37;
  --tls-gold-50:#faf4e2;
  --tls-bg:#F7F9F8;
  --tls-white:#FFFFFF;

  /* Neutrals — contrast checked against --tls-white */
  --tls-ink:#12211d;        /* 15.8:1 */
  --tls-body:#3a4a45;       /* 8.6:1  */
  --tls-muted:#5c6b66;      /* 5.4:1  */
  --tls-line:#dfe6e3;
  --tls-line-soft:#eef2f1;

  /* Status */
  --tls-success:#116b3d;
  --tls-warning:#8a5a00;
  --tls-danger:#a4262c;
  --tls-info:#0D47A1;

  /* Type — Sarabun */
  --tls-font:"Sarabun","Noto Sans Thai","Helvetica Neue",Arial,sans-serif;
  --tls-fs-root:16px;
  --tls-lh:1.75;
  --tls-lh-tight:1.4;

  /* Space (8pt grid) */
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem; --s7:3rem; --s8:4rem; --s9:5.5rem;

  /* Radius + elevation */
  --r-sm:8px; --r:14px; --r-lg:20px; --r-full:999px;
  --sh-1:0 1px 2px rgba(18,55,42,.06),0 1px 3px rgba(18,55,42,.08);
  --sh-2:0 4px 10px rgba(18,55,42,.07),0 2px 4px rgba(18,55,42,.05);
  --sh-3:0 12px 28px rgba(18,55,42,.10),0 4px 8px rgba(18,55,42,.05);
  --sh-focus:0 0 0 3px #fff,0 0 0 6px var(--tls-secondary);

  --tls-container:1240px;
  --tls-transition:180ms cubic-bezier(.4,0,.2,1);
}

/* ---------- 2. RESET / BASE ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--tls-fs-root);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body{
  margin:0;font-family:var(--tls-font);font-size:1rem;line-height:var(--tls-lh);
  color:var(--tls-body);background:var(--tls-bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6{margin:0 0 var(--s3);font-weight:700;line-height:var(--tls-lh-tight);color:var(--tls-ink);letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem)}
h2{font-size:clamp(1.55rem,1.2rem + 1.5vw,2.25rem)}
h3{font-size:clamp(1.2rem,1.05rem + .7vw,1.55rem)}
h4{font-size:1.125rem}
p{margin:0 0 var(--s4)}
a{color:var(--tls-secondary);text-underline-offset:.2em}
a:hover{color:var(--tls-primary-700)}
img,video,iframe{max-width:100%;height:auto;display:block}
/* Icons sit inline with text; full-bleed artwork opts back into block below. */
svg{max-width:100%;display:inline-block;vertical-align:-.15em;flex-shrink:0}
.tls-hero__bg svg,.tls-vision__bg svg,.tls-map svg,.tls-thumb svg,.tls-act__item svg{display:block;vertical-align:baseline}
ul,ol{padding-left:1.35rem}
figure{margin:0}
table{width:100%;border-collapse:collapse}
button,input,select,textarea{font:inherit;color:inherit}
hr{border:0;border-top:1px solid var(--tls-line);margin:var(--s6) 0}
/* Class-based display rules must never beat the hidden attribute. */
[hidden]{display:none!important}
blockquote{margin:0 0 var(--s5);padding:var(--s4) var(--s5);border-left:4px solid var(--tls-primary);background:var(--tls-primary-50);border-radius:0 var(--r) var(--r) 0}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}

/* ---------- 3. ACCESSIBILITY ---------- */
.tls-skip{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--tls-secondary);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 var(--r-sm) 0;font-weight:600}
.tls-skip:focus{left:0;color:#fff}
.screen-reader-text,.tls-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;clip:auto;margin:0;padding:.5rem 1rem;background:#fff;color:var(--tls-ink)}
:focus-visible{outline:3px solid var(--tls-secondary);outline-offset:2px;border-radius:4px}
.tls-topbar :focus-visible,.tls-hero :focus-visible,.tls-footer :focus-visible,.tls-vision :focus-visible{outline-color:#ffd767}

/* Toolbar-driven modes (set on <html> by assets/js/a11y.js) */
/* High-contrast: black ground, white text, amber links — WCAG AAA throughout.
   Decorative artwork and gradients are removed rather than recoloured. */
html.tls-contrast body{background:#000;color:#fff}
html.tls-contrast :is(h1,h2,h3,h4,h5,h6,p,li,td,th,span,strong,em,b,dt,dd,label,figcaption,time,small,summary,i){color:#fff!important}
html.tls-contrast :is(a,a:hover,a:focus){color:#ffe066!important}
html.tls-contrast :is(
	div,section,header,footer,aside,article,nav,main,form,
	.tls-card,.tls-modal__box,.tls-chat__panel,.tls-a11y__panel,.tls-drawer__panel,
	.tls-search__live,.tls-survey,.tls-acc,.tls-qs__card,.tls-qa__item,.tls-widget,
	.tls-article,.tls-stat,.tls-trans__item,.tls-exec__card,.tls-vision__m,
	.tls-fab__item,.tls-cal__box,.tls-cal__ev,.tls-news__row,.tls-proc__item,.tls-links a,
	.tls-brand__logo,.tls-qs__icon,.tls-stat__icon,.tls-contact__ico,.tls-proc__ico,
	.tls-qa__av,.tls-chat__av,.tls-news__date,.tls-fab__item i,.tls-social a
){background:#000!important;background-image:none!important;box-shadow:none!important;backdrop-filter:none!important}
html.tls-contrast :is(
	.tls-card,.tls-modal__box,.tls-chat__panel,.tls-a11y__panel,.tls-search__live,
	.tls-survey,.tls-acc,.tls-qs__card,.tls-qa__item,.tls-widget,.tls-article,.tls-stat,
	.tls-trans__item,.tls-exec__card,.tls-vision__m,.tls-fab__item,.tls-cal__box,
	.tls-cal__ev,.tls-news__row,.tls-proc__item,.tls-links a,.tls-header,.tls-nav,.tls-footer
){border:1px solid #ffe066!important}
html.tls-contrast :is(.tls-btn,.tls-chip,.tls-tab,.tls-a11y__btn,input,select,textarea,button){background:#000!important;color:#fff!important;border:2px solid #ffe066!important}
html.tls-contrast :is(.tls-btn:hover,.tls-btn:focus-visible,.tls-tab.is-active,.tls-chip.is-active,.tls-a11y__btn[aria-pressed=true],.tls-cal__day--has){background:#ffe066!important;color:#000!important}
html.tls-contrast :is(.tls-cal__day--has,.tls-cal__day--has *){color:#000!important}
/* Remove decorative artwork, overlays and tinted fills. */
html.tls-contrast :is(.tls-hero__bg,.tls-vision__bg,.tls-thumb,.tls-act__item>div,.tls-act__item>img,.tls-survey__fill,.tls-brand__logo>svg){display:none!important}
html.tls-contrast :is(.tls-smart,.tls-hero,.tls-vision,.tls-trans)::before,
html.tls-contrast :is(.tls-hero__bg,.tls-vision__bg)::after,
html.tls-contrast .tls-act__item::after{display:none!important}
html.tls-contrast :is(.tls-badge,.tls-hero__eyebrow){background:#000!important;color:#ffe066!important;border:1px solid #ffe066!important}
html.tls-contrast :focus-visible{outline:3px solid #ffe066!important;outline-offset:2px}
html.tls-contrast img{filter:grayscale(1) contrast(1.3)}
/* Grayscale: a fixed backdrop-filter layer instead of filter on <body>.
   filter on body turns it into the containing block for position:fixed, so the
   accessibility button, chatbot and quick buttons would scroll away. */
html.tls-grayscale body::before,body.tls-grayscale::before{content:"";position:fixed;inset:0;z-index:2147483000;pointer-events:none;-webkit-backdrop-filter:grayscale(100%);backdrop-filter:grayscale(100%)}
@supports not ((backdrop-filter:grayscale(1)) or (-webkit-backdrop-filter:grayscale(1))){
  html.tls-grayscale body::before,body.tls-grayscale::before{display:none}
  html.tls-grayscale .tls-site>:not(.tls-a11y):not(.tls-fab):not(.tls-chat):not(.tls-bottombar):not(.tls-drawer),
  body.tls-grayscale .tls-site>:not(.tls-a11y):not(.tls-fab):not(.tls-chat):not(.tls-bottombar):not(.tls-drawer){filter:grayscale(100%)}
}
html.tls-underline :is(main,.tls-footer,.tls-header) a{text-decoration:underline!important}
html.tls-readable body{line-height:2.1;letter-spacing:.02em;word-spacing:.08em}

/* ---------- 4. LAYOUT ---------- */
.tls-container{width:100%;max-width:var(--tls-container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.tls-container--narrow{max-width:860px}
.tls-section{padding-block:clamp(2.5rem,6vw,4.5rem)}
.tls-section--tint{background:var(--tls-white)}
.tls-section--mint{background:linear-gradient(180deg,var(--tls-primary-50),var(--tls-bg))}
.tls-grid{display:grid;gap:var(--s5)}
.tls-grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.tls-grid--3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.tls-grid--4{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.tls-grid--5{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.tls-stack>*+*{margin-top:var(--s4)}
.tls-flow{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.tls-flow--between{justify-content:space-between}

/* Section heading */
.tls-shead{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:flex-end;justify-content:space-between;margin-bottom:var(--s6)}
.tls-shead__eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tls-primary);margin-bottom:.4rem}
.tls-shead__eyebrow::before{content:"";width:26px;height:3px;border-radius:2px;background:var(--tls-gold)}
.tls-shead h2{margin:0}
.tls-shead__sub{margin:.5rem 0 0;color:var(--tls-muted);max-width:62ch}
.tls-shead--center{flex-direction:column;align-items:center;text-align:center}
.tls-shead--center .tls-shead__eyebrow{justify-content:center}

/* ---------- 5. COMPONENTS ---------- */
.tls-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.72rem 1.4rem;border-radius:var(--r-full);border:2px solid transparent;
  font-weight:600;font-size:.975rem;line-height:1.25;text-decoration:none;cursor:pointer;
  transition:var(--tls-transition);background:var(--tls-primary);color:#fff;
}
.tls-btn:hover{background:var(--tls-primary-700);color:#fff;transform:translateY(-1px);box-shadow:var(--sh-2)}
.tls-btn:active{transform:translateY(0)}
.tls-btn--gold{background:var(--tls-gold);color:#3a2f05}
.tls-btn--gold:hover{background:#c19f2d;color:#3a2f05}
.tls-btn--navy{background:var(--tls-secondary)}
.tls-btn--navy:hover{background:#093a86}
.tls-btn--ghost{background:transparent;color:var(--tls-primary);border-color:var(--tls-primary)}
.tls-btn--ghost:hover{background:var(--tls-primary);color:#fff}
.tls-btn--light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(6px)}
.tls-btn--light:hover{background:#fff;color:var(--tls-primary-700);border-color:#fff}
.tls-btn--sm{padding:.45rem .95rem;font-size:.875rem}
.tls-btn--lg{padding:.95rem 1.9rem;font-size:1.0625rem}
.tls-btn--block{width:100%}
.tls-btn[disabled],.tls-btn[aria-disabled=true]{opacity:.55;pointer-events:none}

.tls-card{background:var(--tls-white);border:1px solid var(--tls-line);border-radius:var(--r);box-shadow:var(--sh-1);transition:var(--tls-transition);overflow:hidden;display:flex;flex-direction:column;height:100%}
.tls-card:hover{box-shadow:var(--sh-3);transform:translateY(-3px);border-color:var(--tls-primary-50)}
.tls-card__body{padding:var(--s5);display:flex;flex-direction:column;gap:var(--s2);flex:1}
.tls-card__title{font-size:1.0625rem;font-weight:700;margin:0;color:var(--tls-ink)}
.tls-card__title a{color:inherit;text-decoration:none}
.tls-card__title a:hover{color:var(--tls-primary)}
.tls-card__excerpt{margin:0;font-size:.9375rem;color:var(--tls-muted)}
.tls-card__meta{display:flex;flex-wrap:wrap;gap:var(--s3);font-size:.8125rem;color:var(--tls-muted);margin-top:auto;padding-top:var(--s3)}
.tls-card__meta span{display:inline-flex;align-items:center;gap:.3rem}

.tls-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--tls-primary-50),var(--tls-secondary-50))}
.tls-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 400ms ease}
.tls-card:hover .tls-thumb img{transform:scale(1.05)}
.tls-thumb__ph{width:100%;height:100%;display:grid;place-items:center;color:var(--tls-primary);opacity:.35}

.tls-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .7rem;border-radius:var(--r-full);font-size:.75rem;font-weight:700;background:var(--tls-primary-50);color:var(--tls-primary-700);white-space:nowrap}
.tls-badge--gold{background:var(--tls-gold-50);color:#7a5f00}
.tls-badge--navy{background:var(--tls-secondary-50);color:var(--tls-secondary)}
.tls-badge--danger{background:#fbeaea;color:var(--tls-danger)}
.tls-badge--success{background:#e6f4ec;color:var(--tls-success)}
.tls-badge--abs{position:absolute;top:.75rem;left:.75rem;z-index:2;background:rgba(15,118,110,.94);color:#fff;box-shadow:var(--sh-1)}

.tls-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem 1rem;border-radius:var(--r-full);border:1px solid var(--tls-line);background:#fff;color:var(--tls-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--tls-transition);text-decoration:none}
.tls-chip:hover{border-color:var(--tls-primary);color:var(--tls-primary)}
.tls-chip.is-active,.tls-chip[aria-pressed=true]{background:var(--tls-primary);border-color:var(--tls-primary);color:#fff}

/* Tabs */
.tls-tabs{display:flex;flex-wrap:wrap;gap:.5rem;border-bottom:2px solid var(--tls-line);margin-bottom:var(--s5);padding:0}
.tls-tab{appearance:none;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-2px;padding:.7rem 1.1rem;font-weight:600;color:var(--tls-muted);cursor:pointer;border-radius:var(--r-sm) var(--r-sm) 0 0;transition:var(--tls-transition);white-space:nowrap}
.tls-tab:hover{color:var(--tls-primary);background:var(--tls-primary-50)}
.tls-tab.is-active{color:var(--tls-primary-700);border-bottom-color:var(--tls-primary)}
.tls-tabpanel[hidden]{display:none}

/* Accordion */
.tls-acc{border:1px solid var(--tls-line);border-radius:var(--r);background:#fff;overflow:hidden}
.tls-acc+.tls-acc{margin-top:var(--s3)}
.tls-acc__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:1.05rem 1.25rem;background:none;border:0;text-align:left;font-weight:600;font-size:1rem;color:var(--tls-ink);cursor:pointer}
.tls-acc__btn:hover{background:var(--tls-primary-50)}
.tls-acc__btn svg{flex-shrink:0;transition:transform var(--tls-transition);color:var(--tls-primary)}
.tls-acc__btn[aria-expanded=true] svg{transform:rotate(180deg)}
.tls-acc__panel{padding:0 1.25rem 1.25rem;color:var(--tls-body);border-top:1px solid var(--tls-line-soft);padding-top:1rem}
.tls-acc__panel[hidden]{display:none}

/* Forms */
.tls-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:var(--s4)}
.tls-label{font-weight:600;font-size:.9375rem;color:var(--tls-ink)}
.tls-label .req{color:var(--tls-danger)}
.tls-input,.tls-select,.tls-textarea{
  width:100%;padding:.7rem .9rem;border:1px solid var(--tls-line);border-radius:var(--r-sm);
  background:#fff;color:var(--tls-ink);transition:var(--tls-transition);
}
.tls-input:focus,.tls-select:focus,.tls-textarea:focus{border-color:var(--tls-primary);box-shadow:0 0 0 3px rgba(15,118,110,.15);outline:none}
.tls-input[aria-invalid=true],.tls-textarea[aria-invalid=true]{border-color:var(--tls-danger);box-shadow:0 0 0 3px rgba(164,38,44,.12)}
.tls-textarea{min-height:130px;resize:vertical}
.tls-help{font-size:.8125rem;color:var(--tls-muted)}
.tls-hp{position:absolute!important;left:-9999px}
.tls-notice{padding:.9rem 1.15rem;border-radius:var(--r-sm);border-left:4px solid;margin-bottom:var(--s4);font-size:.9375rem}
.tls-notice--ok{background:#e6f4ec;border-color:var(--tls-success);color:#0b4b2b}
.tls-notice--err{background:#fbeaea;border-color:var(--tls-danger);color:#7d1c21}
.tls-notice--info{background:var(--tls-secondary-50);border-color:var(--tls-secondary);color:#08306e}

/* Modal */
.tls-modal{position:fixed;inset:0;z-index:9500;display:grid;place-items:center;padding:var(--s4);background:rgba(18,33,29,.62);backdrop-filter:blur(3px)}
.tls-modal[hidden]{display:none}
.tls-modal__box{background:#fff;border-radius:var(--r-lg);max-width:640px;width:100%;max-height:86vh;overflow:auto;box-shadow:var(--sh-3);animation:tlsPop 220ms ease}
@keyframes tlsPop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.tls-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);padding:var(--s5) var(--s5) var(--s3);border-bottom:1px solid var(--tls-line-soft)}
.tls-modal__body{padding:var(--s5)}
.tls-modal__x{appearance:none;border:0;background:var(--tls-bg);width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--tls-ink);flex-shrink:0}
.tls-modal__x:hover{background:var(--tls-danger);color:#fff}

/* Breadcrumb + pagination */
.tls-crumb{background:var(--tls-white);border-bottom:1px solid var(--tls-line);padding-block:.85rem;font-size:.875rem}
.tls-crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;color:var(--tls-muted)}
.tls-crumb li{display:flex;align-items:center;gap:.4rem}
.tls-crumb li+li::before{content:"›";color:var(--tls-line);font-weight:700}
.tls-crumb a{color:var(--tls-primary);text-decoration:none}
.tls-crumb a:hover{text-decoration:underline}
.tls-pagination{display:flex;justify-content:center;gap:.35rem;flex-wrap:wrap;margin-top:var(--s7)}
.tls-pagination .page-numbers{display:grid;place-items:center;min-width:42px;height:42px;padding-inline:.6rem;border-radius:var(--r-sm);border:1px solid var(--tls-line);background:#fff;color:var(--tls-body);text-decoration:none;font-weight:600}
.tls-pagination .page-numbers:hover{border-color:var(--tls-primary);color:var(--tls-primary)}
.tls-pagination .page-numbers.current{background:var(--tls-primary);border-color:var(--tls-primary);color:#fff}

/* Table */
.tls-table-wrap{overflow-x:auto;border:1px solid var(--tls-line);border-radius:var(--r);background:#fff}
.tls-table{min-width:640px}
.tls-table th,.tls-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--tls-line-soft);font-size:.9375rem;vertical-align:top}
.tls-table thead th{background:var(--tls-primary-50);color:var(--tls-primary-700);font-weight:700;white-space:nowrap}
.tls-table tbody tr:hover{background:var(--tls-bg)}
.tls-table tbody tr:last-child td{border-bottom:0}

/* ---------- 6. HEADER / NAV ---------- */
.tls-topbar{background:var(--tls-dark);color:#d9e5e0;font-size:.8125rem}
.tls-topbar .tls-container{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;justify-content:space-between;min-height:40px;padding-block:.35rem}
.tls-topbar__l,.tls-topbar__r{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.1rem}
.tls-topbar a{color:#d9e5e0;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}
.tls-topbar a:hover{color:var(--tls-gold)}
.tls-topbar__item{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;min-height:28px}
button.tls-topbar__item{appearance:none;-webkit-appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}
button.tls-topbar__item:hover{color:var(--tls-gold)}
.tls-topbar__sep{width:1px;height:16px;background:rgba(255,255,255,.2)}
.tls-lang{display:inline-flex;border:1px solid rgba(255,255,255,.28);border-radius:var(--r-full);overflow:hidden}
.tls-lang a{padding:.15rem .6rem;font-weight:700;font-size:.75rem}
.tls-lang a.is-active{background:var(--tls-gold);color:#3a2f05}
.tls-social{display:inline-flex;gap:.4rem}
.tls-social a{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center}
.tls-social a:hover{background:var(--tls-primary)}

.tls-header{background:#fff;border-bottom:1px solid var(--tls-line);position:relative;z-index:900}
.tls-header__main{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding-block:var(--s4)}
.tls-brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;min-width:0}
.tls-brand__logo{width:64px;height:64px;flex-shrink:0;border-radius:50%;background:linear-gradient(140deg,var(--tls-primary),var(--tls-dark));display:grid;place-items:center;overflow:hidden;box-shadow:var(--sh-1)}
.tls-brand__logo img{width:100%;height:100%;object-fit:contain}
.tls-brand__txt{min-width:0}
.tls-brand__name{display:block;font-size:clamp(1.05rem,.9rem + .6vw,1.45rem);font-weight:700;color:var(--tls-dark);line-height:1.25}
.tls-brand__sub{display:block;font-size:.8125rem;color:var(--tls-muted)}
.tls-brand__en{display:block;font-size:.6875rem;color:var(--tls-primary);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.tls-header__tools{display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.tls-iconbtn{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--tls-line);background:#fff;color:var(--tls-primary-700);cursor:pointer;transition:var(--tls-transition)}
.tls-iconbtn:hover{background:var(--tls-primary);color:#fff;border-color:var(--tls-primary)}
.tls-iconbtn.is-open{background:var(--tls-primary);color:#fff}

.tls-search{position:relative}
.tls-search__form{display:flex;align-items:center;gap:.4rem;border:1px solid var(--tls-line);border-radius:var(--r-full);padding:.25rem .3rem .25rem 1rem;background:var(--tls-bg);transition:var(--tls-transition)}
.tls-search__form:focus-within{border-color:var(--tls-primary);background:#fff;box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.tls-search__input{border:0;background:none;width:190px;padding:.45rem 0;outline:none}
.tls-search__go{width:36px;height:36px;border-radius:50%;border:0;background:var(--tls-primary);color:#fff;display:grid;place-items:center;cursor:pointer}
.tls-search__go:hover{background:var(--tls-primary-700)}
.tls-search__live{position:absolute;top:calc(100% + .5rem);right:0;width:min(420px,86vw);background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);box-shadow:var(--sh-3);z-index:950;max-height:60vh;overflow:auto;padding:.5rem}
.tls-search__live[hidden]{display:none}
.tls-search__live a{display:block;padding:.6rem .75rem;border-radius:var(--r-sm);text-decoration:none;color:var(--tls-ink)}
.tls-search__live a:hover,.tls-search__live a:focus{background:var(--tls-primary-50)}
.tls-search__live .t{font-weight:600;display:block;font-size:.9375rem}
.tls-search__live .m{font-size:.75rem;color:var(--tls-muted)}

/* Nav bar */
.tls-nav{background:linear-gradient(90deg,var(--tls-primary),var(--tls-primary-700) 60%,var(--tls-dark));position:sticky;top:0;z-index:880;box-shadow:var(--sh-2)}
.tls-nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
.tls-menu{display:flex;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.tls-menu>li{position:relative}
.tls-menu>li>a{display:flex;align-items:center;gap:.3rem;padding:.95rem .9rem;color:#fff;text-decoration:none;font-weight:600;font-size:.9375rem;border-bottom:3px solid transparent;transition:var(--tls-transition)}
.tls-menu>li>a:hover,.tls-menu>li.is-open>a,.tls-menu>li.current-menu-item>a,.tls-menu>li.current-menu-parent>a{background:rgba(255,255,255,.12);color:#fff;border-bottom-color:var(--tls-gold)}
.tls-menu .tls-caret{width:12px;height:12px;transition:transform var(--tls-transition)}
.tls-menu>li.is-open .tls-caret{transform:rotate(180deg)}
.tls-nav__cta{display:flex;gap:.5rem;align-items:center;padding-block:.4rem}
.tls-nav__cta .tls-btn{padding:.5rem 1.1rem;font-size:.875rem}

/* Mega menu */
.tls-mega{position:absolute;top:100%;left:0;min-width:290px;background:#fff;border-radius:0 0 var(--r) var(--r);box-shadow:var(--sh-3);border:1px solid var(--tls-line);border-top:3px solid var(--tls-gold);padding:var(--s4);list-style:none;margin:0;z-index:920;opacity:0;visibility:hidden;transform:translateY(8px);transition:var(--tls-transition)}
.tls-menu>li.is-open>.tls-mega{opacity:1;visibility:visible;transform:none}
.tls-mega--wide{width:min(760px,92vw);columns:2;column-gap:var(--s5)}
/* Menus in the right half open right-aligned so a wide panel never
   pushes the page sideways. JS adds .tls-mega--right for custom menus. */
.tls-nav .tls-menu>li:nth-last-child(-n+5)>.tls-mega,
.tls-nav .tls-menu>li>.tls-mega--right{left:auto;right:0}
.tls-mega li{break-inside:avoid;list-style:none}
.tls-mega a{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:var(--r-sm);color:var(--tls-body);text-decoration:none;font-size:.9375rem;transition:var(--tls-transition)}
.tls-mega a::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--tls-gold);flex-shrink:0}
.tls-mega a:hover,.tls-mega a:focus{background:var(--tls-primary-50);color:var(--tls-primary-700);transform:translateX(3px)}
.tls-mega .tls-mega__title{font-weight:700;color:var(--tls-primary-700);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;padding:.4rem .7rem;margin-top:.4rem}

/* Mobile drawer */
.tls-burger{display:none}
.tls-drawer{position:fixed;inset:0;z-index:9600;visibility:hidden}
.tls-drawer[data-open="1"]{visibility:visible}
.tls-drawer__scrim{position:absolute;inset:0;background:rgba(18,33,29,.6);opacity:0;transition:opacity var(--tls-transition)}
.tls-drawer[data-open="1"] .tls-drawer__scrim{opacity:1}
.tls-drawer__panel{position:absolute;top:0;right:0;height:100%;width:min(360px,88vw);background:#fff;box-shadow:var(--sh-3);transform:translateX(100%);transition:transform 260ms cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.tls-drawer[data-open="1"] .tls-drawer__panel{transform:none}
.tls-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:var(--s4);border-bottom:1px solid var(--tls-line);background:var(--tls-primary);color:#fff}
.tls-drawer__head strong{color:#fff}
.tls-drawer__body{overflow-y:auto;padding:var(--s3) var(--s4) var(--s8);flex:1}
.tls-drawer .tls-menu{display:block}
.tls-drawer .tls-menu>li>a{color:var(--tls-ink);border-bottom:1px solid var(--tls-line-soft);padding:.85rem .25rem;justify-content:space-between}
.tls-drawer .tls-menu>li>a:hover{background:var(--tls-primary-50);border-bottom-color:var(--tls-line-soft)}
.tls-drawer .tls-mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--tls-primary-50);border-radius:0;padding:.25rem 0 .5rem .75rem;columns:1;width:auto;min-width:0;display:none}
.tls-drawer li.is-open>.tls-mega{display:block}

/* ---------- 7. HOMEPAGE ---------- */
/* Hero */
.tls-hero{position:relative;background:var(--tls-dark);color:#fff;overflow:hidden}
.tls-hero__slides{position:relative;min-height:clamp(430px,58vh,620px)}
.tls-hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 700ms ease;display:grid;align-items:center;pointer-events:none}
.tls-hero__slide.is-active{opacity:1;pointer-events:auto}
.tls-hero__bg{position:absolute;inset:0;z-index:0}
.tls-hero__bg img,.tls-hero__bg svg{width:100%;height:100%;object-fit:cover}
.tls-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(18,55,42,.94) 0%,rgba(15,118,110,.82) 42%,rgba(13,71,161,.35) 100%)}
.tls-hero__inner{position:relative;z-index:2;padding-block:clamp(3rem,8vw,5rem);max-width:820px}
.tls-hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;background:rgba(212,175,55,.2);border:1px solid rgba(212,175,55,.5);color:#f6e6a8;padding:.35rem 1rem;border-radius:var(--r-full);font-size:.8125rem;font-weight:700;margin-bottom:var(--s4)}
.tls-hero h1,.tls-hero h2{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.3);margin-bottom:var(--s3)}
.tls-hero__lead{font-size:clamp(1rem,.95rem + .4vw,1.25rem);color:rgba(255,255,255,.92);max-width:60ch;margin-bottom:var(--s5)}
.tls-hero__cta{display:flex;flex-wrap:wrap;gap:var(--s3)}
.tls-hero__nav{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:5;display:flex;gap:.5rem}
/* 5px bar, 25px hit area — background-clip keeps the visual slim. */
.tls-hero__dot{width:34px;height:25px;padding:10px 0;border-radius:3px;border:0;background-color:rgba(255,255,255,.4);background-clip:content-box;cursor:pointer;transition:var(--tls-transition)}
.tls-hero__dot.is-active{background-color:var(--tls-gold);width:52px}
.tls-hero__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.25);color:#fff;display:grid;place-items:center;cursor:pointer}
.tls-hero__arrow:hover{background:var(--tls-gold);color:#3a2f05;border-color:var(--tls-gold)}
.tls-hero__arrow--prev{left:1rem}
.tls-hero__arrow--next{right:1rem}

/* Quick service */
.tls-qs{position:relative;margin-top:-3.5rem;z-index:20}
.tls-qs__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s4)}
.tls-qs__card{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);padding:var(--s5) var(--s4);text-align:center;text-decoration:none;color:var(--tls-body);box-shadow:var(--sh-1);transition:var(--tls-transition);display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative;overflow:hidden}
.tls-qs__card::after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--tls-primary),var(--tls-gold));transform:scaleX(0);transform-origin:left;transition:transform 260ms ease}
.tls-qs__card:hover{transform:translateY(-5px);box-shadow:var(--sh-3);border-color:transparent;color:var(--tls-body)}
.tls-qs__card:hover::after{transform:scaleX(1)}
.tls-qs__icon{width:58px;height:58px;border-radius:var(--r);display:grid;place-items:center;background:linear-gradient(140deg,var(--tls-primary-50),var(--tls-secondary-50));color:var(--tls-primary);transition:var(--tls-transition)}
.tls-qs__card:hover .tls-qs__icon{background:linear-gradient(140deg,var(--tls-primary),var(--tls-dark));color:#fff;transform:rotate(-6deg) scale(1.05)}
.tls-qs__name{font-weight:700;color:var(--tls-ink);font-size:1rem;line-height:1.35}
.tls-qs__desc{font-size:.8125rem;color:var(--tls-muted);margin:0}
.tls-qs__go{margin-top:auto;font-size:.8125rem;font-weight:700;color:var(--tls-primary);display:inline-flex;align-items:center;gap:.3rem}

/* Smart dashboard */
.tls-smart{background:linear-gradient(135deg,var(--tls-dark) 0%,var(--tls-primary-700) 55%,var(--tls-secondary) 130%);color:#fff;position:relative;overflow:hidden}
.tls-smart::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 18% 22%,rgba(212,175,55,.16),transparent 42%),radial-gradient(circle at 82% 78%,rgba(255,255,255,.1),transparent 46%)}
.tls-smart>*{position:relative;z-index:1}
.tls-smart h2,.tls-smart .tls-shead__sub{color:#fff}
.tls-smart .tls-shead__eyebrow{color:var(--tls-gold)}
.tls-smart__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s4)}
.tls-stat{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:var(--r);padding:var(--s5) var(--s4);text-align:center;backdrop-filter:blur(8px);transition:var(--tls-transition)}
.tls-stat:hover{background:rgba(255,255,255,.16);transform:translateY(-4px)}
.tls-stat__icon{width:46px;height:46px;margin:0 auto .75rem;border-radius:var(--r-sm);display:grid;place-items:center;background:rgba(212,175,55,.2);color:var(--tls-gold)}
.tls-stat__num{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.6rem);font-weight:700;line-height:1.1;color:#fff;font-variant-numeric:tabular-nums}
.tls-stat__label{font-size:.875rem;color:rgba(255,255,255,.82);margin-top:.25rem}
.tls-stat__unit{font-size:.9rem;color:var(--tls-gold);margin-left:.2rem}

/* Executives */
.tls-exec{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s5)}
/* Homepage shows five executives — fit them on one row on wide screens. */
.tls-exec--home{grid-template-columns:repeat(auto-fit,minmax(186px,1fr))}
.tls-exec__card{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-lg);overflow:hidden;text-align:center;box-shadow:var(--sh-1);transition:var(--tls-transition);display:flex;flex-direction:column}
.tls-exec__card:hover{box-shadow:var(--sh-3);transform:translateY(-4px)}
.tls-exec__photo{aspect-ratio:3/4;background:linear-gradient(160deg,var(--tls-primary-50),var(--tls-secondary-50));position:relative;overflow:hidden}
.tls-exec__photo img{width:100%;height:100%;object-fit:cover}
.tls-exec__photo .ph{width:100%;height:100%;display:grid;place-items:center;color:var(--tls-primary);opacity:.3}
.tls-exec__body{padding:var(--s4);display:flex;flex-direction:column;gap:.3rem;flex:1}
.tls-exec__role{display:inline-block;background:var(--tls-gold-50);color:#7a5f00;font-size:.75rem;font-weight:700;padding:.2rem .7rem;border-radius:var(--r-full);align-self:center}
.tls-exec__name{font-size:1.0625rem;font-weight:700;color:var(--tls-ink);margin:.35rem 0 0}
.tls-exec__vision{font-size:.8125rem;color:var(--tls-muted);font-style:italic;margin:.35rem 0}
.tls-exec__tel{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--tls-line-soft);font-size:.875rem;color:var(--tls-primary);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}

/* Vision */
.tls-vision{position:relative;color:#fff;text-align:center;overflow:hidden;background:var(--tls-dark)}
.tls-vision__bg{position:absolute;inset:0;z-index:0}
.tls-vision__bg img,.tls-vision__bg svg{width:100%;height:100%;object-fit:cover}
.tls-vision__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,55,42,.9),rgba(15,118,110,.86))}
.tls-vision__inner{position:relative;z-index:2;padding-block:clamp(3.5rem,9vw,6rem)}
.tls-vision h2{color:#fff}
.tls-vision__quote{font-size:clamp(1.35rem,1.05rem + 1.8vw,2.4rem);font-weight:700;line-height:1.55;max-width:22ch;margin:var(--s5) auto;color:#fff;position:relative}
.tls-vision__quote::before,.tls-vision__quote::after{content:"”";font-size:3.5rem;color:var(--tls-gold);line-height:0;position:relative;top:.35em}
.tls-vision__quote::before{content:"“"}
.tls-vision__mission{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s4);margin-top:var(--s6);text-align:left}
.tls-vision__m{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:var(--r);padding:var(--s4);backdrop-filter:blur(6px)}
.tls-vision__m strong{display:block;color:var(--tls-gold);margin-bottom:.3rem;font-size:.9375rem}
.tls-vision__m span{font-size:.875rem;color:rgba(255,255,255,.88)}

/* News */
.tls-news__feat{display:grid;grid-template-columns:1.35fr 1fr;gap:var(--s5)}
.tls-news__hero{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:340px;display:flex;align-items:flex-end;color:#fff;text-decoration:none;background:var(--tls-dark)}
.tls-news__hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 500ms ease}
.tls-news__hero:hover img{transform:scale(1.05)}
.tls-news__hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(18,33,29,.9))}
.tls-news__hero-body{position:relative;z-index:2;padding:var(--s5)}
.tls-news__hero-body h3{color:#fff;margin:.5rem 0}
.tls-news__list{display:flex;flex-direction:column;gap:var(--s3)}
.tls-news__row{display:flex;gap:var(--s3);padding:var(--s3);background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);text-decoration:none;transition:var(--tls-transition)}
.tls-news__row:hover{border-color:var(--tls-primary);box-shadow:var(--sh-2);transform:translateX(3px)}
.tls-news__date{flex-shrink:0;width:58px;text-align:center;background:var(--tls-primary-50);border-radius:var(--r-sm);padding:.4rem 0;color:var(--tls-primary-700)}
.tls-news__date b{display:block;font-size:1.3rem;line-height:1}
.tls-news__date span{font-size:.75rem}
.tls-news__row h4{margin:0 0 .25rem;font-size:.975rem;color:var(--tls-ink)}
.tls-news__row p{margin:0;font-size:.8125rem;color:var(--tls-muted)}

/* Procurement */
.tls-proc__filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:var(--s5);align-items:center}
.tls-proc__filters select{max-width:200px}
.tls-proc__item{display:flex;gap:var(--s4);align-items:flex-start;padding:var(--s4);border-bottom:1px solid var(--tls-line-soft);transition:var(--tls-transition)}
.tls-proc__item:hover{background:var(--tls-primary-50)}
.tls-proc__item:last-child{border-bottom:0}
.tls-proc__ico{flex-shrink:0;width:44px;height:44px;border-radius:var(--r-sm);background:var(--tls-secondary-50);color:var(--tls-secondary);display:grid;place-items:center}
.tls-proc__main{flex:1;min-width:0}
.tls-proc__main h4{margin:0 0 .3rem;font-size:1rem}
.tls-proc__main h4 a{color:var(--tls-ink);text-decoration:none}
.tls-proc__main h4 a:hover{color:var(--tls-primary)}
.tls-proc__meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.8125rem;color:var(--tls-muted)}
.tls-proc__dl{flex-shrink:0}

/* Calendar */
.tls-cal{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s5);align-items:start}
.tls-cal__box{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--sh-1)}
.tls-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s4)}
.tls-cal__title{font-weight:700;font-size:1.15rem;color:var(--tls-ink)}
.tls-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.tls-cal__dow{text-align:center;font-size:.75rem;font-weight:700;color:var(--tls-muted);padding:.35rem 0}
.tls-cal__day{position:relative;aspect-ratio:1;border-radius:var(--r-sm);border:1px solid transparent;background:var(--tls-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.875rem;color:var(--tls-body);cursor:default;padding:0}
.tls-cal__day--out{opacity:.35}
.tls-cal__day--today{border-color:var(--tls-gold);font-weight:700;color:var(--tls-primary-700);background:var(--tls-gold-50)}
.tls-cal__day--has{background:var(--tls-primary);color:#fff;font-weight:700;cursor:pointer;border:0}
.tls-cal__day--has:hover{background:var(--tls-primary-700);transform:scale(1.06)}
.tls-cal__dot{width:5px;height:5px;border-radius:50%;background:var(--tls-gold);margin-top:2px}
.tls-cal__list{display:flex;flex-direction:column;gap:.6rem;max-height:420px;overflow:auto;padding-right:.25rem}
.tls-cal__ev{display:flex;gap:.75rem;padding:.75rem;background:#fff;border:1px solid var(--tls-line);border-left:4px solid var(--tls-primary);border-radius:var(--r-sm);text-align:left;cursor:pointer;width:100%;transition:var(--tls-transition)}
.tls-cal__ev:hover{box-shadow:var(--sh-2);border-left-color:var(--tls-gold)}
.tls-cal__ev b{display:block;font-size:.9375rem;color:var(--tls-ink)}
.tls-cal__ev span{font-size:.8125rem;color:var(--tls-muted)}

/* Activities gallery */
.tls-act{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s4)}
.tls-act__item{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;display:block;background:var(--tls-dark);text-decoration:none;color:#fff}
.tls-act__item img{width:100%;height:100%;object-fit:cover;transition:transform 500ms ease}
.tls-act__item:hover img{transform:scale(1.08)}
.tls-act__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(18,33,29,.88))}
.tls-act__cap{position:absolute;inset:auto 0 0 0;z-index:2;padding:var(--s4)}
.tls-act__cap h4{color:#fff;margin:0 0 .2rem;font-size:1rem}
.tls-act__cap span{font-size:.8125rem;color:rgba(255,255,255,.85);display:inline-flex;gap:.75rem;flex-wrap:wrap}

/* FAQ + Q&A */
.tls-faq__search{max-width:520px;margin:0 auto var(--s5)}
.tls-qa__item{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);padding:var(--s4);margin-bottom:var(--s3)}
.tls-qa__q{display:flex;gap:.75rem;align-items:flex-start}
.tls-qa__av{width:38px;height:38px;border-radius:50%;background:var(--tls-primary-50);color:var(--tls-primary-700);display:grid;place-items:center;font-weight:700;flex-shrink:0;font-size:.9rem}
.tls-qa__meta{font-size:.8125rem;color:var(--tls-muted)}
.tls-qa__a{margin:.85rem 0 0 3rem;padding:.85rem 1rem;background:var(--tls-primary-50);border-radius:var(--r-sm);border-left:3px solid var(--tls-primary);font-size:.9375rem}
.tls-qa__a strong{color:var(--tls-primary-700)}

/* Multimedia */
.tls-media__main{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#000;aspect-ratio:16/9}
.tls-media__main iframe{width:100%;height:100%;border:0}
.tls-media__play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(18,33,29,.45);border:0;cursor:pointer;width:100%}
.tls-media__play span{width:74px;height:74px;border-radius:50%;background:var(--tls-gold);color:#3a2f05;display:grid;place-items:center;box-shadow:var(--sh-3)}
.tls-media__side{display:flex;flex-direction:column;gap:.75rem;max-height:460px;overflow:auto}
.tls-media__row{display:flex;gap:.75rem;padding:.6rem;border:1px solid var(--tls-line);border-radius:var(--r-sm);background:#fff;cursor:pointer;text-align:left;transition:var(--tls-transition);width:100%}
.tls-media__row:hover,.tls-media__row.is-active{border-color:var(--tls-primary);background:var(--tls-primary-50)}
.tls-media__thumb{width:104px;aspect-ratio:16/9;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--tls-dark);position:relative}
.tls-media__thumb img{width:100%;height:100%;object-fit:cover}

/* Tourism / products */
.tls-tour__card .tls-thumb{aspect-ratio:4/3}
.tls-tour__loc{font-size:.8125rem;color:var(--tls-muted);display:flex;gap:.35rem;align-items:center}
.tls-prod__price{font-weight:700;color:var(--tls-primary-700)}
.tls-prod__group{font-size:.8125rem;color:var(--tls-muted)}

/* Transparency */
.tls-trans{background:var(--tls-dark);color:#fff}
.tls-trans h2,.tls-trans .tls-shead__sub{color:#fff}
.tls-trans .tls-shead__eyebrow{color:var(--tls-gold)}
.tls-trans__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--s4)}
.tls-trans__item{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:var(--r);padding:var(--s5) var(--s3);text-align:center;text-decoration:none;color:#fff;transition:var(--tls-transition);display:flex;flex-direction:column;align-items:center;gap:.6rem}
.tls-trans__item:hover{background:var(--tls-gold);color:#3a2f05;transform:translateY(-4px);border-color:var(--tls-gold)}
.tls-trans__item svg{width:34px;height:34px}
.tls-trans__item span{font-size:.9rem;font-weight:600;line-height:1.35}

/* Survey */
.tls-survey{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,2.25rem);box-shadow:var(--sh-1)}
.tls-survey__opt{display:block;margin-bottom:var(--s3);cursor:pointer}
.tls-survey__opt input{position:absolute;opacity:0;width:0;height:0}
.tls-survey__bar{display:block;position:relative;border:1px solid var(--tls-line);border-radius:var(--r-sm);padding:.7rem .9rem;overflow:hidden;transition:var(--tls-transition);background:#fff}
.tls-survey__opt:hover .tls-survey__bar{border-color:var(--tls-primary)}
.tls-survey__opt input:focus-visible+.tls-survey__bar{outline:3px solid var(--tls-secondary);outline-offset:2px}
.tls-survey__opt input:checked+.tls-survey__bar{border-color:var(--tls-primary);background:var(--tls-primary-50)}
.tls-survey__fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,rgba(15,118,110,.18),rgba(212,175,55,.22));width:0;transition:width 800ms cubic-bezier(.4,0,.2,1);z-index:0}
.tls-survey__txt{position:relative;z-index:1;display:flex;justify-content:space-between;gap:1rem;font-size:.9375rem;color:var(--tls-ink)}
.tls-survey__pct{font-weight:700;color:var(--tls-primary-700);font-variant-numeric:tabular-nums}
.tls-survey.is-result .tls-survey__opt{cursor:default}

/* Links / network */
.tls-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s3)}
.tls-links a{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-sm);text-decoration:none;color:var(--tls-body);font-size:.9rem;font-weight:600;transition:var(--tls-transition)}
.tls-links a:hover{border-color:var(--tls-primary);color:var(--tls-primary-700);box-shadow:var(--sh-2)}

/* Contact / map */
.tls-contact{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--s6);align-items:stretch}
.tls-contact__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s4)}
.tls-contact__list li{display:flex;gap:var(--s3);align-items:flex-start}
.tls-contact__ico{width:42px;height:42px;flex-shrink:0;border-radius:var(--r-sm);background:var(--tls-primary-50);color:var(--tls-primary);display:grid;place-items:center}
.tls-contact__list b{display:block;color:var(--tls-ink);font-size:.9375rem}
.tls-contact__list span,.tls-contact__list a{font-size:.9375rem;color:var(--tls-muted);text-decoration:none}
.tls-contact__list a:hover{color:var(--tls-primary);text-decoration:underline}
.tls-map{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--tls-line);min-height:380px;background:var(--tls-primary-50);position:relative}
.tls-map iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

/* ---------- 8. INNER PAGES ---------- */
.tls-page-hero{background:linear-gradient(115deg,var(--tls-dark),var(--tls-primary-700));color:#fff;padding-block:clamp(2.25rem,5vw,3.5rem);position:relative;overflow:hidden}
.tls-page-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(212,175,55,.22),transparent 70%)}
.tls-page-hero h1{color:#fff;margin:0}
.tls-page-hero p{color:rgba(255,255,255,.85);margin:.5rem 0 0;max-width:64ch}
.tls-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s6);align-items:start}
.tls-layout--full{grid-template-columns:1fr}
.tls-article{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-lg);padding:clamp(1.25rem,3vw,2.5rem);box-shadow:var(--sh-1)}
.tls-article img{border-radius:var(--r);margin-block:var(--s4)}
.tls-article h2,.tls-article h3{margin-top:var(--s6)}
.tls-entry-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.875rem;color:var(--tls-muted);padding-bottom:var(--s4);margin-bottom:var(--s5);border-bottom:1px solid var(--tls-line-soft)}
.tls-widget{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);padding:var(--s5);margin-bottom:var(--s5)}
.tls-widget__title{font-size:1rem;font-weight:700;color:var(--tls-ink);padding-bottom:.6rem;margin-bottom:.9rem;border-bottom:2px solid var(--tls-primary-50);position:relative}
.tls-widget__title::after{content:"";position:absolute;left:0;bottom:-2px;width:52px;height:2px;background:var(--tls-gold)}
.tls-widget ul{list-style:none;padding:0;margin:0}
.tls-widget li{padding:.45rem 0;border-bottom:1px dashed var(--tls-line-soft);font-size:.9375rem}
.tls-widget li:last-child{border-bottom:0}
.tls-widget a{color:var(--tls-body);text-decoration:none}
.tls-widget a:hover{color:var(--tls-primary)}
.tls-empty{text-align:center;padding:var(--s8) var(--s4);color:var(--tls-muted)}
.tls-empty svg{opacity:.3;margin:0 auto var(--s4)}
.tls-filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);padding:var(--s4);margin-bottom:var(--s5)}

/* Search results */
.tls-sr-item{background:#fff;border:1px solid var(--tls-line);border-radius:var(--r);padding:var(--s4);margin-bottom:var(--s3);transition:var(--tls-transition)}
.tls-sr-item:hover{border-color:var(--tls-primary);box-shadow:var(--sh-2)}
.tls-sr-item h3{margin:0 0 .3rem;font-size:1.05rem}
.tls-sr-item h3 a{color:var(--tls-ink);text-decoration:none}
.tls-sr-item mark{background:var(--tls-gold-50);color:#7a5f00;padding:0 .2em;border-radius:3px}

/* Progress / steps / timeline */
.tls-steps{list-style:none;padding:0;margin:0;counter-reset:st}
.tls-steps li{position:relative;padding:0 0 var(--s5) var(--s7);counter-increment:st}
.tls-steps li::before{content:counter(st);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--tls-primary);color:#fff;display:grid;place-items:center;font-weight:700}
.tls-steps li::after{content:"";position:absolute;left:18px;top:42px;bottom:6px;width:2px;background:var(--tls-line)}
.tls-steps li:last-child::after{display:none}
.tls-steps b{display:block;color:var(--tls-ink)}
.tls-track{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--s4)}
.tls-track__st{padding:.35rem .9rem;border-radius:var(--r-full);font-size:.8125rem;font-weight:700;background:var(--tls-line-soft);color:var(--tls-muted)}
.tls-track__st.is-done{background:#e6f4ec;color:var(--tls-success)}
.tls-track__st.is-now{background:var(--tls-gold);color:#3a2f05}

/* ---------- 9. FOOTER / FLOATING ---------- */
.tls-footer{background:var(--tls-dark);color:#c8d6d1;padding-top:clamp(2.5rem,6vw,4rem);margin-top:var(--s7)}
.tls-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:var(--s6)}
.tls-footer h3{color:#fff;font-size:1rem;margin-bottom:var(--s4);position:relative;padding-bottom:.6rem}
.tls-footer h3::after{content:"";position:absolute;left:0;bottom:0;width:40px;height:3px;background:var(--tls-gold);border-radius:2px}
.tls-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}
.tls-footer a{color:#c8d6d1;text-decoration:none;font-size:.9rem;display:inline-flex;align-items:center;gap:.4rem;transition:var(--tls-transition)}
.tls-footer a:hover{color:var(--tls-gold);transform:translateX(3px)}
.tls-footer__brand{display:flex;gap:var(--s3);align-items:flex-start;margin-bottom:var(--s4)}
.tls-footer__brand .tls-brand__logo{width:56px;height:56px;background:rgba(255,255,255,.1)}
.tls-footer__brand strong{color:#fff;display:block;font-size:1.05rem}
.tls-footer__brand span{font-size:.8125rem}
.tls-footer p{font-size:.875rem;color:#a9bbb5}
.tls-footer__bottom{margin-top:var(--s6);border-top:1px solid rgba(255,255,255,.12);padding-block:var(--s4);display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between;font-size:.8125rem}
.tls-footer__legal{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem}
.tls-footer__count{display:inline-flex;gap:1rem;flex-wrap:wrap}
.tls-footer__count b{color:var(--tls-gold)}

/* Floating action */
.tls-fab{position:fixed;right:1rem;bottom:1rem;z-index:9200;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}
.tls-fab__list{display:flex;flex-direction:column;gap:.55rem;align-items:flex-end}
.tls-fab__list[hidden]{display:none}
.tls-fab__item{display:inline-flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-full);padding:.4rem .5rem .4rem 1rem;text-decoration:none;color:var(--tls-ink);font-size:.875rem;font-weight:600;box-shadow:var(--sh-2);transition:var(--tls-transition);animation:tlsFabIn 220ms ease backwards}
.tls-fab__item:hover{background:var(--tls-primary);color:#fff;border-color:var(--tls-primary)}
.tls-fab__item i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--tls-primary-50);color:var(--tls-primary);flex-shrink:0}
.tls-fab__item:hover i{background:rgba(255,255,255,.22);color:#fff}
@keyframes tlsFabIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tls-fab__main{width:56px;height:56px;border-radius:50%;border:0;background:linear-gradient(140deg,var(--tls-primary),var(--tls-dark));color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-3);transition:var(--tls-transition)}
.tls-fab__main:hover{transform:scale(1.06)}
.tls-fab__main[aria-expanded=true]{transform:rotate(135deg)}
.tls-top{width:44px;height:44px;border-radius:50%;border:1px solid var(--tls-line);background:#fff;color:var(--tls-primary);display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-2);opacity:0;visibility:hidden;transition:var(--tls-transition)}
.tls-top.is-show{opacity:1;visibility:visible}

/* Accessibility toolbar */
.tls-a11y{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:9300}
.tls-a11y__toggle{width:46px;height:46px;border:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--tls-secondary);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-2)}
.tls-a11y__toggle:hover{background:#093a86}
.tls-a11y__panel{position:absolute;left:46px;top:50%;transform:translateY(-50%);background:#fff;border:1px solid var(--tls-line);border-radius:0 var(--r) var(--r) 0;box-shadow:var(--sh-3);padding:var(--s4);width:258px}
.tls-a11y__panel[hidden]{display:none}
.tls-a11y__panel h3{font-size:.9375rem;margin:0 0 .75rem}
.tls-a11y__row{display:flex;gap:.4rem;margin-bottom:.6rem;flex-wrap:wrap}
.tls-a11y__btn{flex:1;min-width:56px;padding:.5rem;border:1px solid var(--tls-line);background:#fff;border-radius:var(--r-sm);cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--tls-body);transition:var(--tls-transition);display:inline-flex;align-items:center;justify-content:center;gap:.35rem}
.tls-a11y__btn:hover{border-color:var(--tls-primary);color:var(--tls-primary)}
.tls-a11y__btn[aria-pressed=true]{background:var(--tls-primary);border-color:var(--tls-primary);color:#fff}
.tls-a11y__btn--wide{flex-basis:100%}
.tls-a11y__reset{background:var(--tls-danger);border-color:var(--tls-danger);color:#fff}
.tls-a11y__reset:hover{background:#8a1f24;color:#fff;border-color:#8a1f24}

/* Chatbot */
.tls-chat{position:fixed;right:1rem;bottom:1rem;z-index:9250}
.tls-chat__fab{width:60px;height:60px;border-radius:50%;border:0;background:linear-gradient(140deg,var(--tls-gold),#b8912a);color:#3a2f05;display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-3);position:relative}
.tls-chat__fab:hover{transform:scale(1.06)}
.tls-chat__fab::after{content:"";position:absolute;top:4px;right:4px;width:12px;height:12px;border-radius:50%;background:#22c55e;border:2px solid #fff}
.tls-chat__panel{position:absolute;right:0;bottom:72px;width:min(370px,92vw);height:min(540px,74vh);background:#fff;border:1px solid var(--tls-line);border-radius:var(--r-lg);box-shadow:var(--sh-3);display:flex;flex-direction:column;overflow:hidden;animation:tlsPop 220ms ease}
.tls-chat__panel[hidden]{display:none}
.tls-chat__head{background:linear-gradient(120deg,var(--tls-primary),var(--tls-dark));color:#fff;padding:var(--s4);display:flex;align-items:center;gap:.75rem}
.tls-chat__av{width:42px;height:42px;border-radius:50%;background:var(--tls-gold);color:#3a2f05;display:grid;place-items:center;font-weight:700;flex-shrink:0}
.tls-chat__head b{display:block;color:#fff;font-size:.975rem}
.tls-chat__head b+span{font-size:.75rem;color:rgba(255,255,255,.8);display:inline-flex;align-items:center;gap:.3rem}
.tls-chat__head b+span::before{content:"";width:7px;height:7px;border-radius:50%;background:#4ade80}
.tls-chat__x{margin-left:auto;background:rgba(255,255,255,.15);border:0;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer}
.tls-chat__body{flex:1;overflow-y:auto;padding:var(--s4);background:var(--tls-bg);display:flex;flex-direction:column;gap:.75rem}
.tls-chat__msg{max-width:84%;padding:.65rem .9rem;border-radius:var(--r);font-size:.9rem;line-height:1.6;animation:tlsPop 200ms ease}
.tls-chat__msg--bot{background:#fff;border:1px solid var(--tls-line);border-bottom-left-radius:4px;align-self:flex-start}
.tls-chat__msg--me{background:var(--tls-primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.tls-chat__msg a{color:var(--tls-secondary);font-weight:600}
.tls-chat__msg--me a{color:#ffe9a8}
.tls-chat__sug{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 var(--s4) var(--s3);background:var(--tls-bg)}
.tls-chat__sug button{padding:.35rem .75rem;border-radius:var(--r-full);border:1px solid var(--tls-primary);background:#fff;color:var(--tls-primary);font-size:.8125rem;cursor:pointer;font-weight:600}
.tls-chat__sug button:hover{background:var(--tls-primary);color:#fff}
.tls-chat__foot{display:flex;gap:.4rem;padding:var(--s3);border-top:1px solid var(--tls-line);background:#fff}
.tls-chat__foot input{flex:1;border:1px solid var(--tls-line);border-radius:var(--r-full);padding:.55rem .9rem;outline:none}
.tls-chat__foot input:focus{border-color:var(--tls-primary)}
.tls-chat__send{width:42px;height:42px;border-radius:50%;border:0;background:var(--tls-primary);color:#fff;cursor:pointer;display:grid;place-items:center;flex-shrink:0}
.tls-chat__typing{display:inline-flex;gap:3px;align-items:center}
.tls-chat__typing i{width:6px;height:6px;border-radius:50%;background:var(--tls-muted);animation:tlsBlink 1.2s infinite}
.tls-chat__typing i:nth-child(2){animation-delay:.2s}
.tls-chat__typing i:nth-child(3){animation-delay:.4s}
@keyframes tlsBlink{0%,60%,100%{opacity:.25}30%{opacity:1}}

/* Reveal on scroll */
.tls-reveal{opacity:0;transform:translateY(22px);transition:opacity 620ms ease,transform 620ms cubic-bezier(.2,.7,.3,1)}
.tls-reveal.is-in{opacity:1;transform:none}

/* WP core alignment classes */
.alignleft{float:left;margin:.4rem 1.5rem 1rem 0}
.alignright{float:right;margin:.4rem 0 1rem 1.5rem}
.aligncenter{margin-inline:auto}
.alignwide{max-width:1100px;margin-inline:auto}
.wp-caption-text,.wp-element-caption{font-size:.8125rem;color:var(--tls-muted);text-align:center;margin-top:.4rem}
.sticky .tls-card{border-color:var(--tls-gold)}

/* ---------- 10. RESPONSIVE ---------- */
@media (max-width:1100px){
  .tls-footer__grid{grid-template-columns:repeat(2,1fr)}
  .tls-news__feat{grid-template-columns:1fr}
  .tls-cal{grid-template-columns:1fr}
  .tls-contact{grid-template-columns:1fr}
  .tls-layout{grid-template-columns:1fr}
}
@media (max-width:1024px){
  .tls-nav__inner{justify-content:flex-end}
  .tls-menu{display:none}
  .tls-nav__cta{display:none}
  .tls-burger{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;padding:.55rem 1rem;border-radius:var(--r-full);font-weight:600;cursor:pointer;margin-block:.45rem}
  .tls-burger:hover{background:rgba(255,255,255,.24)}
  .tls-search__input{width:140px}
}
@media (max-width:820px){
  .tls-topbar__l .tls-topbar__item--hide{display:none}
  .tls-qs{margin-top:-2rem}
  .tls-media-2col{grid-template-columns:1fr!important}
}
@media (max-width:640px){
  :root{--tls-fs-root:15.5px}
  .tls-topbar .tls-container{justify-content:center;font-size:.75rem}
  .tls-header__main{gap:var(--s3)}
  .tls-brand__logo{width:52px;height:52px}
  .tls-search{display:none}
  .tls-shead{flex-direction:column;align-items:flex-start}
  .tls-qs{margin-top:0}
  .tls-qs__grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}
  .tls-qs__card{padding:var(--s4) .75rem}
  .tls-qs__icon{width:46px;height:46px}
  .tls-qs__desc{display:none}
  .tls-footer__grid{grid-template-columns:1fr;gap:var(--s5)}
  .tls-footer__bottom{flex-direction:column;align-items:flex-start}
  .tls-a11y{top:auto;bottom:5.5rem;transform:none}
  .tls-a11y__panel{top:auto;bottom:0;transform:none}
  .tls-fab{bottom:.75rem;right:.75rem}
  .tls-chat{bottom:.75rem;right:.75rem}
  .tls-chat__fab{width:52px;height:52px}
  .tls-chat__panel{bottom:64px}
  .tls-hero__arrow{display:none}
  .tls-mega--wide{columns:1}
  .tls-exec{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--s3)}
  .tls-modal{padding:0;align-items:flex-end}
  .tls-modal__box{border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:92vh}
}

/* Mobile bottom bar (shown < 640px) */
.tls-bottombar{display:none}
@media (max-width:640px){
  .tls-bottombar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:9100;background:#fff;border-top:1px solid var(--tls-line);box-shadow:0 -2px 12px rgba(18,55,42,.1);padding-bottom:env(safe-area-inset-bottom)}
  .tls-bottombar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:.5rem .25rem;font-size:.6875rem;color:var(--tls-muted);text-decoration:none;font-weight:600}
  .tls-bottombar a:hover,.tls-bottombar a.is-active{color:var(--tls-primary)}
  body{padding-bottom:62px}
  .tls-fab,.tls-chat{bottom:4.5rem}
  .tls-a11y{bottom:9rem}
}

/* Print */
@media print{
  .tls-topbar,.tls-nav,.tls-fab,.tls-chat,.tls-a11y,.tls-bottombar,.tls-footer__bottom,.tls-hero__nav,.tls-hero__arrow{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .tls-card,.tls-article{box-shadow:none;border:1px solid #ccc}
  a[href]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}

/* ---- preview-only chrome ---- */
.tls-preview-flag{
  position:sticky;top:0;z-index:9999;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;
  background:#12372A;color:#f2ead2;padding:.6rem clamp(1rem,4vw,2rem);
  font-family:"Sarabun",sans-serif;font-size:.8125rem;line-height:1.6;
  border-bottom:3px solid #D4AF37;
}
.tls-preview-flag strong{color:#D4AF37;font-weight:700;letter-spacing:.02em}
.tls-preview-flag span{color:#cfded7}
html.tls-contrast .tls-preview-flag{background:#000!important;color:#fff!important}

.tls-brand__short{display:none}
@media (max-width:600px){.tls-brand__full{display:none}.tls-brand__short{display:inline}}
