:root{--cm-pink:#ed2563;--cm-pink-dark:#cf1550;--cm-ink:#111827;--cm-muted:#667085;--cm-line:#e8eaf0;--cm-shell:1200px}
html{scroll-behavior:smooth}.cm-shell{width:min(var(--cm-shell),calc(100% - 40px));margin-inline:auto}.cm-alert{background:#ed3138;color:#fff;position:relative;z-index:91}.cm-alert__inner{min-height:44px;display:flex;align-items:center;gap:8px;font-size:15px}.cm-alert__inner button{margin-left:auto;width:32px;height:32px;border:0;background:transparent;color:#fff;cursor:pointer}.cm-alert__dot{width:14px;height:14px;border-radius:50%;background:#fff;opacity:.85}.cm-alert[hidden]{display:none}.cm-livebar{background:#111526;color:#d5dae5;position:relative;z-index:90}.cm-livebar__inner{height:36px;display:flex;align-items:center;gap:13px;font-size:12px;overflow:hidden}.cm-livebar__badge{background:linear-gradient(135deg,#ea1770,#bd2ccf);color:#fff;font-weight:700;padding:5px 11px;border-radius:6px;white-space:nowrap}.cm-livebar__ticker{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-livebar__clock{margin-left:auto;color:#ff70b9;font:700 12px monospace;letter-spacing:1.4px}.cm-header{position:sticky;top:0;z-index:89;background:rgba(255,255,255,.98);border-bottom:1px solid #e9e9ee;box-shadow:0 3px 14px rgba(17,24,39,.05);backdrop-filter:blur(14px)}.cm-header__row{height:130px;display:flex;align-items:center;justify-content:space-between;gap:26px}.cm-brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:305px}.cm-brand__logo{width:56px;height:56px;border-radius:17px;display:grid;place-items:center;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(237,37,99,.22)}.cm-brand__logo img{width:100%;height:100%;object-fit:contain}.cm-brand__logo--fallback{background:linear-gradient(135deg,#f43f75,#e91e63);color:#fff;font-size:25px}.cm-brand__text{display:flex;flex-direction:column;line-height:1.15}.cm-brand__text strong{font:700 24px Kanit,Prompt,sans-serif;color:var(--cm-ink);white-space:nowrap}.cm-brand__text small{font:700 11px Prompt,sans-serif;letter-spacing:1.3px;color:#c42cb2;margin-top:5px}.cm-nav{display:flex;align-items:center;height:100%;gap:3px;min-width:0}.cm-nav__item{height:100%;display:flex;align-items:center;position:relative}.cm-nav__link{border:0;background:none;text-decoration:none;color:#344054;font:700 16px Prompt,sans-serif;white-space:nowrap;padding:14px 11px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:7px;position:relative}.cm-nav__link:hover,.cm-nav__link[aria-expanded=true]{color:var(--cm-pink);background:#fff4f8}.cm-nav__link>i.fa-chevron-down{font-size:9px}.cm-nav__hot span{position:absolute;right:-3px;top:-9px;background:#f04444;color:#fff;font-size:8px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center}.cm-language{border-left:1px solid #d8dbe3;border-radius:0;margin-left:5px;padding-left:18px}.cm-citizen{margin-left:8px;background:linear-gradient(135deg,#dc2162,#f43f68);color:#fff;text-decoration:none;border-radius:999px;padding:15px 24px;font:700 14px Prompt,sans-serif;white-space:nowrap;box-shadow:0 10px 25px rgba(237,37,99,.18)}.cm-citizen:hover{background:var(--cm-pink-dark)}.cm-mega{position:absolute;top:calc(100% - 15px);left:50%;width:min(850px,calc(100vw - 40px));transform:translate(-50%,10px);background:#fff;border:1px solid #e9e9ee;border-radius:18px;box-shadow:0 24px 65px rgba(17,24,39,.16);opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;overflow:hidden}.cm-mega--service{left:0;transform:translate(-240px,10px)}.cm-mega--all{right:0;left:auto;transform:translate(50px,10px)}.cm-mega.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}.cm-mega--service.is-open{transform:translate(-240px,0)}.cm-mega--all.is-open{transform:translate(50px,0)}.cm-mega__grid{padding:20px 28px;display:grid;gap:24px 38px}.cm-mega__grid--service{grid-template-columns:repeat(3,1fr)}.cm-mega__grid--all{grid-template-columns:repeat(3,1fr)}.cm-mega section h3{font:700 17px Kanit,Prompt,sans-serif;color:#182031;border-bottom:1px solid var(--cm-line);padding-bottom:10px;margin:0 0 12px;display:flex;align-items:center;gap:10px}.cm-mega section:nth-child(3n+1) h3 i{color:#f02e72}.cm-mega section:nth-child(3n+2) h3 i{color:#14b87a}.cm-mega section:nth-child(3n) h3 i{color:#ff6b1a}.cm-mega section a{display:block;color:#677080;font-weight:600;font-size:14px;text-decoration:none;padding:7px 0}.cm-mega section a:hover{color:var(--cm-pink);transform:translateX(3px)}.cm-app-card{background:#fff1f5;border:1px solid #fde0e8;border-radius:18px;padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.cm-app-card>span{width:58px;height:58px;background:var(--cm-pink);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:24px}.cm-app-card>strong{font:700 15px Kanit;margin-top:13px;color:var(--cm-ink)}.cm-app-card>small{color:#687080;max-width:160px;margin:5px auto 16px}.cm-app-card div{display:flex;gap:8px}.cm-app-card div a{background:#111827;color:#fff;border-radius:8px;padding:9px 12px;text-decoration:none;font-size:10px;font-weight:700}.cm-mega__footer{display:block;padding:16px;text-align:center;background:#fafbfc;border-top:1px solid var(--cm-line);color:var(--cm-pink);font-weight:700;text-decoration:none}.cm-mayor-card{grid-column:2/4;background:#fff1f5;border:1px solid #f8dfe8;border-radius:18px;padding:24px;display:flex;align-items:center;gap:20px}.cm-mayor-card__photo{width:78px;height:78px;flex:0 0 78px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#64748b;font-size:34px;border:3px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.15)}.cm-mayor-card strong{font:700 16px Kanit;color:var(--cm-ink)}.cm-mayor-card p{margin:4px 0;color:#596274;font-size:12px;line-height:1.55}.cm-mayor-card a{color:var(--cm-pink);text-decoration:none;font-size:12px;font-weight:700}.cm-mobile-toggle,.cm-mobile-backdrop{display:none}.cm-access{position:fixed;left:0;top:44%;z-index:88;width:52px;background:#fff;border:1px solid #e5e7eb;border-left:0;border-radius:0 17px 17px 0;box-shadow:0 12px 28px rgba(15,23,42,.12);overflow:hidden}.cm-access button{width:52px;height:52px;border:0;border-bottom:1px solid #e5e7eb;background:#fff;color:#4b5563;font-weight:700;font-size:16px;cursor:pointer}.cm-access button:last-child{border-bottom:0}.cm-access button:hover{color:var(--cm-pink);background:#fff7fa}.cm-template-dark{filter:grayscale(1) contrast(1.15)}
/* Homepage content matching the Smart Chiang Mai template */
.cm-economy-column{display:flex;min-width:0;flex-direction:column}
.cm-job-list,.cm-product-grid{margin-bottom:16px}
.cm-economy-register{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:auto;padding:20px 24px;border:1px solid;border-radius:18px}
.cm-economy-register strong{display:block;color:#0d1930;font:700 15px Kanit,Prompt,sans-serif}
.cm-economy-register p{margin:3px 0 0;color:#5f6979;font-size:13px}
.cm-economy-register a{flex:0 0 auto;padding:12px 22px;border-radius:10px;color:#fff;text-decoration:none;font-size:13px;font-weight:700;transition:transform .2s,box-shadow .2s,background-color .2s}
.cm-economy-register a:hover{transform:translateY(-1px)}
.cm-economy-register a:focus-visible{outline:3px solid rgba(0,154,105,.25);outline-offset:3px}
.cm-economy-register--job{border-color:#ccebdd;background:#f0faf6}
.cm-economy-register--job a{background:#009a69;box-shadow:0 7px 16px rgba(0,154,105,.22)}
.cm-economy-register--job a:hover{background:#00865b;box-shadow:0 9px 20px rgba(0,154,105,.28)}
.cm-economy-register--product{border-color:#fde2c5;background:#fff6ec}
.cm-economy-register--product a{background:#ff6719;box-shadow:0 7px 16px rgba(255,103,25,.25)}
.cm-economy-register--product a:hover{background:#e95710;box-shadow:0 9px 20px rgba(255,103,25,.3)}
@media(max-width:760px){.cm-economy-register{display:block}.cm-economy-register a{display:inline-block;margin-top:14px}}
.cm-section{padding:70px 0;background:#fff}.cm-section--soft{background:#fbfcfe}.cm-content-shell{width:min(1120px,calc(100% - 48px));margin-inline:auto}.cm-economy-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px}.cm-section-kicker{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;display:flex;align-items:center;gap:9px;margin-bottom:8px}.cm-section-kicker--green{color:#009a69}.cm-section-kicker--orange{color:#f35b12}.cm-section-titlebar{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid #e8e9ee;padding-bottom:16px;margin-bottom:24px}.cm-section-titlebar h2,.cm-egp-heading h2{margin:0;font:700 32px/1.2 Kanit,Prompt,sans-serif;color:#0c1730}.cm-section-titlebar>a{color:#009a69;text-decoration:none;font-size:13px;font-weight:700}.cm-job-list{display:grid;gap:16px}.cm-job-card{background:#f7f9fb;border:1px solid #dfe3ea;border-radius:18px;padding:22px 24px;display:grid;grid-template-columns:1fr auto;gap:8px 16px}.cm-job-card h3{font:700 18px Kanit;margin:0;color:#07152c}.cm-job-card p{margin:2px 0 8px;color:#687386;font-size:13px}.cm-job-card__meta{display:flex;gap:8px;flex-wrap:wrap}.cm-job-card__meta span{background:#fff;border:1px solid #dce1e8;border-radius:5px;padding:5px 10px;color:#344054;font-size:12px;font-weight:600}.cm-job-card__meta .urgent{background:#d9fae9;border-color:#d9fae9;color:#008654}.cm-job-card__logo{grid-row:1/4;grid-column:2;width:62px;height:62px;border:1px solid #dfe3e8;background:#fff;border-radius:16px;display:grid;place-items:center;overflow:hidden;color:#9aa3b2;font-size:10px;font-weight:700}.cm-job-card__logo img{width:100%;height:100%;object-fit:contain}.cm-economy-empty{min-height:155px;border:1px dashed #cfd5df;border-radius:18px;display:grid;place-items:center;text-align:center;color:#737d8d;padding:28px}.cm-job-submit{margin-top:16px;border:1px dashed #cfd5df;border-radius:14px;padding:16px;text-align:center;color:#667085;font-weight:700}.cm-job-submit a{color:inherit;text-decoration:none}.cm-product-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cm-product-card{border:1px solid #dfe3e8;border-radius:18px;overflow:hidden;background:#fff}.cm-product-card__image{height:160px;background:#eef1f5;display:block;overflow:hidden}.cm-product-card__image img{width:100%;height:100%;object-fit:cover;transition:.3s}.cm-product-card:hover img{transform:scale(1.04)}.cm-product-card__body{padding:16px}.cm-product-card h3{font:700 14px/1.4 Kanit;color:#09162c;margin:0 0 6px}.cm-product-card strong{color:#f04a00}.cm-product-register{grid-column:1/-1;margin-top:12px;background:#fff6ec;border:1px solid #fde2c5;border-radius:18px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between}.cm-product-register strong{display:block;font:700 15px Kanit;color:#0d1930}.cm-product-register p{margin:3px 0 0;color:#5f6979;font-size:13px}.cm-product-register a{background:#ff6719;color:#fff;text-decoration:none;border-radius:10px;padding:12px 22px;font-weight:700;font-size:13px;box-shadow:0 7px 16px rgba(255,103,25,.25)}.cm-egp{padding:72px 0 95px;background:#fff}.cm-egp-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.cm-egp-heading p{color:#667085;margin:7px 0 0}.cm-egp-tools{display:flex;gap:8px}.cm-egp-tools input{width:150px;border:1px solid #dfe3e8;border-radius:9px;padding:11px 12px;color:#667085}.cm-egp-tools button{border:0;background:var(--cm-pink);color:#fff;border-radius:9px;padding:11px 22px;font-weight:700}.cm-egp-tablewrap{border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 12px 35px rgba(17,24,39,.05)}.cm-egp-table{width:100%;border-collapse:collapse}.cm-egp-table th{background:#f8f9fb;color:#344054;font-size:12px;text-align:left;padding:18px}.cm-egp-table td{padding:20px 18px;border-top:1px solid #eef0f3;font-size:13px;color:#667085}.cm-egp-table td:nth-child(2){font-weight:700;color:#1d2939}.cm-egp-table a{color:var(--cm-pink);text-decoration:none}.cm-egp-empty{text-align:center!important;padding:52px!important;color:#8991a0!important}.cm-egp-more{display:block;background:#fafbfc;border-top:1px solid #eceef2;text-align:center;padding:18px;color:var(--cm-pink);font-weight:700;text-decoration:none}
@media(max-width:1100px){.cm-header{z-index:121}.cm-header__row{height:94px}.cm-brand{min-width:260px}.cm-brand__text strong{font-size:20px}.cm-mobile-toggle{display:grid;width:46px;height:46px;border:1px solid #e6e8ee;background:#fff;border-radius:12px;place-items:center;font-size:20px;color:var(--cm-pink);z-index:123}.cm-mobile-toggle[aria-expanded=true]{position:fixed;right:18px;top:18px}.cm-nav{position:fixed;right:0;top:0;height:100dvh;width:min(390px,88vw);background:#fff;z-index:122;display:block;padding:90px 22px 30px;overflow:auto;transform:translateX(105%);transition:.25s;box-shadow:-15px 0 45px rgba(15,23,42,.18)}.cm-nav.is-open{transform:none}.cm-nav__item{height:auto;display:block}.cm-nav__link{width:100%;padding:15px 10px;border-bottom:1px solid #f0f1f4;border-radius:0;justify-content:space-between}.cm-citizen{display:flex;margin:18px 0 0;justify-content:center}.cm-language{margin:0;border-left:0}.cm-mobile-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:110}.cm-mobile-backdrop.is-open{display:block}.cm-mega,.cm-mega--service,.cm-mega--all{position:static;width:100%;transform:none!important;box-shadow:none;border-radius:12px;display:none;opacity:1;visibility:visible;margin:8px 0 14px}.cm-mega.is-open{display:block}.cm-mega__grid,.cm-mega__grid--service,.cm-mega__grid--all{grid-template-columns:1fr;padding:16px;gap:18px}.cm-mayor-card{grid-column:auto}.cm-app-card{display:none}}
@media(max-width:760px){.cm-shell,.cm-content-shell{width:min(100% - 28px,1120px)}.cm-alert__inner{font-size:11px;min-height:38px}.cm-alert__inner span:not(.cm-alert__dot){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-livebar__inner{height:32px}.cm-livebar__clock{display:none}.cm-header__row{height:78px}.cm-brand{min-width:0;gap:10px}.cm-brand__logo{width:44px;height:44px;border-radius:13px}.cm-brand__text strong{font-size:17px}.cm-brand__text small{font-size:8px;letter-spacing:.8px}.cm-section{padding:48px 0}.cm-economy-grid{grid-template-columns:1fr;gap:46px}.cm-section-titlebar h2,.cm-egp-heading h2{font-size:27px}.cm-product-grid{grid-template-columns:1fr}.cm-product-register{display:block}.cm-product-register a{display:inline-block;margin-top:14px}.cm-egp-heading{display:block}.cm-egp-tools{margin-top:18px}.cm-egp-tools input{min-width:0;flex:1}.cm-egp-tablewrap{overflow-x:auto}.cm-egp-table{min-width:720px}.cm-access{top:auto;bottom:95px;width:44px}.cm-access button{width:44px;height:44px;font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Database-driven navigation rendered from the menus table. */
.cm-mega--dynamic{left:50%;right:auto;width:min(var(--cm-menu-width,920px),calc(100vw - 40px));transform:translate(calc(-50% + var(--cm-menu-shift-x,0px)),10px)}
.cm-mega--dynamic.is-open{transform:translate(calc(-50% + var(--cm-menu-shift-x,0px)),0)}
.cm-mega__grid--dynamic{grid-template-columns:repeat(var(--cm-menu-columns,3),minmax(0,1fr));column-gap:30px;row-gap:10px;max-height:min(64vh,650px);overflow-y:auto;align-items:start}
.cm-mega__section{min-width:0}
.cm-mega--dynamic .cm-mega__section h3{min-height:52px;align-items:center;gap:8px;font-size:clamp(14px,.8vw,15px);line-height:1.3;letter-spacing:-.1px}
.cm-mega__heading-label{min-width:0;flex:1;color:inherit;white-space:normal;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;cursor:default;user-select:text}
.cm-mega__sub{display:flex!important;align-items:flex-start;gap:8px;color:#677080!important;font-weight:600;font-size:14px;text-decoration:none;padding:7px 0!important;line-height:1.45}
.cm-mega__sub--section-leaf{min-width:0;align-self:start}
.cm-mega--terminal-list .cm-mega__grid--dynamic{row-gap:4px}
.cm-mega--terminal-list .cm-mega__sub--section-leaf{padding-block:4px!important;line-height:1.35}
.cm-mega__sub>i{flex:0 0 16px;width:16px;margin-top:3px;color:var(--cm-pink);font-size:11px;text-align:center}
.cm-mega__sub:hover{color:var(--cm-pink)!important;transform:translateX(3px)}
.cm-mega__nested{margin-left:8px;padding-left:13px;border-left:1px solid var(--cm-line)}
.cm-mega__sub--depth-1,.cm-mega__sub--depth-2,.cm-mega__sub--depth-3{font-size:13px;padding-block:5px!important}
.cm-mega--about .cm-mega__section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px;align-items:start}
.cm-mega--about .cm-mega__section>h3{grid-column:1/-1}
@media(max-width:1100px){.cm-mega__grid--dynamic{grid-template-columns:1fr;max-height:none}.cm-mega--dynamic{width:100%}}

/* Switch the database-driven navigation to the drawer before long menu names
   can collide with the brand or account controls on notebook-sized screens. */
@media(max-width:1340px){
  .cm-header{z-index:121}
  .cm-header__row{height:94px}
  .cm-brand{min-width:260px}
  .cm-brand__text strong{font-size:20px}
  .cm-mobile-toggle{display:grid;width:46px;height:46px;border:1px solid #e6e8ee;background:#fff;border-radius:12px;place-items:center;font-size:20px;color:var(--cm-pink);z-index:123}
  .cm-mobile-toggle[aria-expanded=true]{position:fixed;right:18px;top:18px}
  .cm-nav{position:fixed;right:0;top:0;height:100dvh;width:min(390px,88vw);background:#fff;z-index:122;display:block;padding:90px 22px 30px;overflow:auto;transform:translateX(105%);transition:.25s;box-shadow:-15px 0 45px rgba(15,23,42,.18)}
  .cm-nav.is-open{transform:none}
  .cm-nav__item{height:auto;display:block}
  .cm-nav__link{width:100%;padding:15px 10px;border-bottom:1px solid #f0f1f4;border-radius:0;justify-content:space-between}
  .cm-citizen{display:flex;margin:18px 0 0;justify-content:center}
  .cm-language{margin:0;border-left:0}
  .cm-mobile-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:110}
  .cm-mobile-backdrop.is-open{display:block}
  .cm-mega,.cm-mega--service,.cm-mega--all,.cm-mega--dynamic{position:static;width:100%;transform:none!important;box-shadow:none;border-radius:12px;display:none;opacity:1;visibility:visible;margin:8px 0 14px}
  .cm-mega.is-open{display:block}
  .cm-mega__grid,.cm-mega__grid--service,.cm-mega__grid--all,.cm-mega__grid--dynamic{grid-template-columns:1fr;padding:16px;gap:18px;max-height:none}
  .cm-mega--about .cm-mega__section{grid-template-columns:1fr}
  .cm-mayor-card{grid-column:auto}
}

/* Three-language picker powered by the existing SiteI18n catalogs. */
.cm-language-picker{position:relative;display:flex;align-items:center}
.cm-language img{width:20px;height:14px;border-radius:2px;object-fit:cover;box-shadow:0 0 0 1px rgba(15,23,42,.12)}
.cm-language-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:140;width:220px;padding:8px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 20px 50px rgba(15,23,42,.18)}
.cm-language-menu[hidden]{display:none!important}
.cm-language-option{display:grid;grid-template-columns:28px 1fr 18px;align-items:center;gap:10px;padding:10px;border-radius:10px;text-decoration:none;color:#344054}
.cm-language-option:hover,.cm-language-option.is-current{background:#fff1f5;color:var(--cm-pink)}
.cm-language-option>img{width:25px;height:17px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(15,23,42,.12)}
.cm-language-option>span{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.cm-language-option strong{font-size:13px;white-space:nowrap}.cm-language-option small{font-size:10px;color:#98a2b3}.cm-language-option>i{font-size:11px;color:var(--cm-pink)}
@media(max-width:1340px){.cm-language-picker{display:block}.cm-language-menu{position:static;width:100%;margin:8px 0 14px;box-shadow:none}.cm-language img{margin-left:auto}.cm-language .fa-chevron-down{margin-left:0}}

/* Live data bar: scrolling bulletin, language switcher and staff portal.
   Keep this stacking context above the sticky mobile header so the language
   menu never opens underneath it on iOS or other narrow screens. */
.cm-livebar{position:relative;z-index:220;isolation:isolate;overflow:visible!important}
.cm-livebar__inner,.cm-livebar__tools,.cm-language-picker--top{overflow:visible!important}
.cm-livebar__ticker-window{flex:1;min-width:0;overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.cm-livebar__ticker{display:inline-block;min-width:max-content;padding-left:100%;overflow:visible;text-overflow:clip;font-size:14px;font-weight:600;animation:cm-livebar-marquee 24s linear infinite;will-change:transform}
.cm-livebar__ticker-window:hover .cm-livebar__ticker{animation-play-state:paused}
.cm-livebar__tools{flex:0 0 auto;display:flex;align-items:center;gap:8px;margin-left:auto}
.cm-language-picker--top{display:flex;align-items:center}
.cm-livebar__language{height:30px;margin:0;padding:5px 9px;border:1px solid rgba(255,255,255,.16);border-radius:7px;color:#e8ecf5;font-size:11px;background:rgba(255,255,255,.06)}
.cm-livebar__language:hover,.cm-livebar__language[aria-expanded=true]{color:#fff;background:rgba(255,255,255,.14)}
.cm-livebar__staff{height:30px;display:flex;align-items:center;gap:7px;padding:0 11px;border-left:1px solid rgba(255,255,255,.16);color:#e8ecf5;text-decoration:none;font-weight:600;white-space:nowrap}
.cm-livebar__staff:hover{color:#ff70b9}
.cm-language-picker--top .cm-language-menu{top:calc(100% + 8px);right:0;max-width:calc(100vw - 28px)}
@keyframes cm-livebar-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media(min-width:1341px){.cm-header__row{height:112px}}
@media(max-width:1340px){
  .cm-language-picker--top{display:flex}
  .cm-language-picker--top .cm-language-menu{position:absolute;right:0;top:calc(100% + 8px);width:220px;margin:0;box-shadow:0 20px 50px rgba(15,23,42,.18)}
  .cm-language-picker--top .cm-language img{margin-left:0}
}
@media(max-width:760px){
  .cm-livebar__inner{gap:7px}
  .cm-livebar__ticker{font-size:12px}
  .cm-livebar__badge{padding-inline:8px;font-size:10px}
  .cm-livebar__tools{gap:4px}
  .cm-livebar__language{min-width:72px;padding-inline:7px;touch-action:manipulation}
  /* Use the viewport as the containing block on phones. This prevents the first
     two rows from being painted underneath the sticky main header on iOS. */
  .cm-language-picker--top .cm-language-menu{position:fixed;z-index:1000;right:14px;left:auto;top:max(42px,calc(env(safe-area-inset-top) + 42px));width:min(220px,calc(100vw - 28px));max-height:calc(100dvh - 56px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .cm-language-picker--top .cm-language-option{min-height:44px}
  .cm-livebar__staff{width:30px;padding:0;justify-content:center;border-left:0}
  .cm-livebar__staff span{display:none}
}

/* Smart site search, adapted from the original header search control. */
.cm-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.cm-search-trigger{flex:0 0 46px;width:46px;height:46px;margin-left:8px;display:grid;place-items:center;border:1px solid #e3e7ee;border-radius:50%;background:#f8fafc;color:#667085;font-size:17px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .2s;box-shadow:0 7px 18px rgba(15,23,42,.06)}
.cm-search-trigger:hover,.cm-search-trigger:focus-visible,.cm-search-trigger[aria-expanded=true]{color:var(--cm-pink);border-color:#f8bfd2;background:#fff1f5;transform:translateY(-1px);outline:0}
.cm-search-modal[hidden]{display:none!important}
.cm-search-modal{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:20px}
.cm-search-modal__backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(15,23,42,.62);backdrop-filter:blur(5px);cursor:default}
.cm-search-modal__dialog{position:relative;width:min(570px,calc(100vw - 40px));padding:28px;background:#fff;border:1px solid #eef0f4;border-radius:24px;box-shadow:0 30px 70px rgba(15,23,42,.25);animation:cm-search-dialog-in .22s ease-out}
.cm-search-modal__dialog:focus{outline:0}
.cm-search-modal__header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:17px;border-bottom:1px solid #eceef2}
.cm-search-modal__header h2{display:flex;align-items:center;gap:10px;margin:0;color:#172033;font:700 21px/1.3 Kanit,Prompt,sans-serif}
.cm-search-modal__header h2 i{color:var(--cm-pink)}
.cm-search-modal__close{flex:0 0 34px;width:34px;height:34px;border:0;border-radius:50%;background:#f5f6f8;color:#7b8493;font-size:15px;cursor:pointer}
.cm-search-modal__close:hover{background:#eceef2;color:#172033}
.cm-search-modal__form{padding-top:22px}
.cm-search-modal__field{position:relative}
.cm-search-modal__field input{width:100%;height:54px;padding:0 54px 0 17px;border:1px solid #dce1e8;border-radius:13px;background:#f8fafc;color:#172033;font:500 14px Prompt,sans-serif;box-shadow:inset 0 1px 3px rgba(15,23,42,.04)}
.cm-search-modal__field input:focus{outline:0;border-color:var(--cm-pink);box-shadow:0 0 0 3px rgba(237,37,99,.12)}
.cm-search-modal__field>button{position:absolute;right:6px;top:6px;width:42px;height:42px;border:0;border-radius:10px;background:transparent;color:#7b8493;font-size:16px;cursor:pointer}
.cm-search-modal__field>button:hover{color:var(--cm-pink);background:#fff1f5}
.cm-search-modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:17px;border-top:1px solid #f0f1f4}
.cm-search-modal__actions button{min-height:42px;padding:0 20px;border-radius:11px;font:700 13px Prompt,sans-serif;cursor:pointer}
.cm-search-modal__cancel{border:1px solid #dfe3e9;background:#fff;color:#505a6b}
.cm-search-modal__cancel:hover{background:#f8fafc}
.cm-search-modal__submit{display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:linear-gradient(135deg,#dc2162,#f43f68);color:#fff;box-shadow:0 8px 18px rgba(237,37,99,.2)}
.cm-search-modal__submit:hover{background:var(--cm-pink-dark)}
.cm-search-open{overflow:hidden}
@keyframes cm-search-dialog-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:1340px){.cm-search-trigger{margin:18px 0 0 auto}}
@media(max-width:760px){
  .cm-search-modal{padding:14px}
  .cm-search-modal__dialog{width:100%;padding:21px;border-radius:19px}
  .cm-search-modal__header h2{font-size:18px}
  .cm-search-modal__actions{display:grid;grid-template-columns:1fr 1fr}
}

/* Keep shared public pages within the viewport. Hidden off-canvas navigation and
   closed mega panels must not contribute to the document's scrollable width. */
html,
body{
  max-width:100%;
  overflow-x:clip;
}

@media(max-width:1340px){
  .cm-nav:not(.is-open){
    display:none;
  }

  .cm-nav.is-open{
    display:block;
    transform:none;
  }
}

@media(min-width:1341px){
  .cm-mega:not(.is-open){
    display:none;
  }

  .cm-mega.is-open{
    display:block;
  }
}

/* IoT dashboard — follows the Smart Mobility & Environment card language from
   the municipal template while keeping all live dashboard data intact. */
.iot-dashboard-section{
  padding:64px 0;
  background:#f9fafb;
  border-top:1px solid #f3f4f6;
  border-bottom:1px solid #f3f4f6;
}
.iot-dashboard-shell{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 32px;
}
.iot-dashboard-heading{
  max-width:768px;
  margin:0 auto 48px;
  text-align:center;
}
.iot-dashboard-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  color:#059669;
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.iot-dashboard-title{
  margin:0 0 16px;
  color:#111827;
  font-family:Kanit,Prompt,sans-serif;
  font-size:36px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:-.025em;
}
.iot-dashboard-description{
  margin:0;
  color:#6b7280;
  font-size:16px;
  line-height:1.75;
}
.iot-connection{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  color:#4b5563;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
}
.iot-connection__dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.12),0 0 8px rgba(34,197,94,.55);
  animation:iot-connection-pulse 1.8s ease-in-out infinite;
}
.iot-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
}
.iot-card{
  --iot-accent:#2563eb;
  --iot-soft:#dbeafe;
  position:relative;
  min-width:0;
  min-height:270px;
  padding:24px;
  overflow:hidden;
  border:1px solid #f3f4f6;
  border-radius:24px;
  background:#fff;
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.iot-card:hover{
  z-index:1;
  transform:translateY(-4px);
  border-color:color-mix(in srgb,var(--iot-accent) 20%,#f3f4f6);
  box-shadow:0 18px 35px rgba(15,23,42,.1);
}
.iot-card--water{--iot-accent:#0891b2;--iot-soft:#cffafe}
.iot-card--traffic{--iot-accent:#f97316;--iot-soft:#ffedd5}
.iot-card--light{--iot-accent:#ca8a04;--iot-soft:#fef9c3}
.iot-theme-green{--iot-accent:#16a34a;--iot-soft:#dcfce7}
.iot-theme-yellow{--iot-accent:#ca8a04;--iot-soft:#fef9c3}
.iot-theme-orange{--iot-accent:#ea580c;--iot-soft:#ffedd5}
.iot-theme-red{--iot-accent:#dc2626;--iot-soft:#fee2e2}
.iot-theme-purple{--iot-accent:#9333ea;--iot-soft:#f3e8ff}
.iot-theme-rose{--iot-accent:#e11d48;--iot-soft:#ffe4e6}
.iot-card__corner{
  position:absolute;
  z-index:0;
  top:0;
  right:0;
  width:96px;
  height:96px;
  border-bottom-left-radius:100px;
  background:var(--iot-soft);
  opacity:.72;
  pointer-events:none;
}
.iot-card__header{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:14px;
  min-height:48px;
  margin-bottom:22px;
}
.iot-card__icon{
  display:flex;
  flex:0 0 48px;
  width:48px;
  height:48px;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:var(--iot-soft);
  color:var(--iot-accent);
  font-size:20px;
}
.iot-card__heading-copy{min-width:0}
.iot-card__title{
  margin:0 0 3px;
  color:#111827;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}
.iot-card__status{
  display:flex;
  align-items:center;
  gap:5px;
  margin:0;
  color:var(--iot-accent);
  font-size:11px;
  font-weight:700;
  line-height:1.35;
}
.iot-card__status-dot{
  flex:0 0 7px;
  width:7px;
  height:7px;
  border-radius:999px;
  background:currentColor;
}
.iot-card__body{
  position:relative;
  z-index:1;
}
.iot-card__metric{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:5px;
  margin:4px 0 7px;
  color:var(--iot-accent);
}
.iot-card__value{
  color:var(--iot-accent)!important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:42px!important;
  font-weight:900;
  line-height:1!important;
  letter-spacing:-.055em;
}
.iot-card__unit{
  color:#6b7280;
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}
.iot-card__unit--accent{
  color:var(--iot-accent);
  font-size:22px;
  font-weight:900;
}
.iot-card__caption{
  margin:0;
  color:#6b7280;
  font-size:12px;
  font-weight:500;
  line-height:1.55;
  text-align:center;
}
.iot-card__badge{
  display:flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  gap:5px;
  margin:14px auto 0;
  padding:6px 10px;
  border:1px solid color-mix(in srgb,var(--iot-accent) 14%,transparent);
  border-radius:10px;
  background:color-mix(in srgb,var(--iot-soft) 58%,#fff);
  color:var(--iot-accent);
  font-size:11px;
  font-weight:700;
  line-height:1.35;
}
.iot-card__updated{
  margin:8px 0 0;
  color:#9ca3af;
  font-size:10px;
  font-weight:500;
  text-align:center;
}
.iot-card__gauge{
  position:relative;
  height:10px;
  margin-top:18px;
  overflow:hidden;
  border-radius:999px;
  background:#f3f4f6;
}
.iot-card__gauge-fill{
  height:100%;
  border-radius:inherit;
  background:var(--iot-accent);
}
.iot-card__gauge-fill--traffic{
  background:linear-gradient(90deg,#4ade80,#fb923c,#ef4444);
}
.iot-card__critical{
  margin:7px 0 0;
  color:#9ca3af;
  font-size:10px;
  font-weight:700;
  text-align:right;
}
@keyframes iot-connection-pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.55;transform:scale(.8)}
}
@media(max-width:1023px){
  .iot-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  .iot-dashboard-section{padding:48px 0}
  .iot-dashboard-shell{padding:0 16px}
  .iot-dashboard-heading{margin-bottom:34px}
  .iot-dashboard-title{font-size:30px}
  .iot-dashboard-description{font-size:14px}
  .iot-dashboard-grid{grid-template-columns:1fr;gap:18px}
  .iot-card{min-height:0}
}
@media(prefers-reduced-motion:reduce){
  .iot-connection__dot{animation:none}
  .iot-card{transition:none}
}

/* Ongkharak: shared navigation and readable, photo-specific Highlights. */
.cm-brand__text small{max-width:310px;line-height:1.5;letter-spacing:.3px}
.cm-mega__overview{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 28px;color:var(--cm-pink);font-weight:700;text-decoration:none;border-bottom:1px solid #eee;background:#fff7fa}
.cm-mega__section-info{display:inline-block!important;font-size:12px!important;color:var(--cm-pink)!important;padding:0 0 7px!important}
.cm-nav__link:focus-visible,.cm-mega a:focus-visible,.ong-hero button:focus-visible{outline:3px solid #ec4899;outline-offset:3px}
.cm-mega__heading-label{-webkit-line-clamp:unset;display:block}
.ong-hero{position:relative;isolation:isolate;width:100%;height:clamp(480px,43vw,660px);overflow:hidden;background:#142844;color:#fff}
.ong-hero__slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .65s ease;pointer-events:none}
.ong-hero__slide.is-active{opacity:1;visibility:visible}
.ong-hero__image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.ong-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,30,62,.4),transparent 75%),linear-gradient(0deg,rgba(10,26,57,.85),rgba(12,32,69,.36) 42%,transparent 78%)}
.ong-hero__content{position:absolute;left:0;right:0;bottom:92px;pointer-events:auto}
.ong-hero__badge{display:inline-block;background:#d71568;border:1px solid #ff80b5;border-radius:999px;padding:5px 14px;font:600 12px/1.5 Prompt,sans-serif;margin-bottom:14px;box-shadow:0 3px 12px #0002}
.ong-hero__content h2{margin:0 0 14px;max-width:850px;font:700 clamp(30px,3.2vw,52px)/1.2 Kanit,Prompt,sans-serif;text-shadow:0 3px 18px #0008;color:#fff}
.ong-hero__content p{margin:0;max-width:760px;font:400 clamp(15px,1.35vw,20px)/1.7 Prompt,sans-serif;text-shadow:0 2px 10px #000a;color:#f1f5ff}
.ong-hero__controls{position:absolute;left:0;right:0;bottom:28px;display:flex;align-items:center;gap:14px}
.ong-hero__dots{display:flex;gap:4px}
.ong-hero__dot{position:relative;width:30px;height:36px;border:0;background:transparent;cursor:pointer;padding:0}
.ong-hero__dot:after{content:"";display:block;width:11px;height:11px;margin:auto;border-radius:50%;background:#ffffff80;border:1px solid #fff9;transition:.2s}
.ong-hero__dot.is-active:after{background:#ed2c89;box-shadow:0 0 0 4px #ed2c8933;border-color:#ffabd2}
.ong-hero__pause,.ong-hero__arrow{border:1px solid #fff8;background:#0f23446b;color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}
.ong-hero__pause{width:36px;height:36px;border-radius:50%;font-size:12px}
.ong-hero__arrow{position:absolute;top:45%;width:44px;height:44px;border-radius:50%;font-size:16px}
.ong-hero__arrow--prev{left:16px}.ong-hero__arrow--next{right:16px}
.ong-hero__arrow:hover,.ong-hero__pause:hover{background:#ec4899}
.ong-category-links{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}
.ong-category-links a{display:flex;align-items:center;gap:8px;padding:13px 18px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:#334155;text-decoration:none}
.ong-category-links a:hover{border-color:#ec4899;color:#be185d}
@media(max-width:760px){
 .cm-brand__text small{max-width:235px;font-size:8px}
 .ong-hero{height:510px}.ong-hero__content{bottom:90px;padding-inline:14px}
 .ong-hero__content h2{font-size:29px;line-height:1.3}
 .ong-hero__content p{font-size:14px;line-height:1.75}
 .ong-hero__badge{font-size:11px;margin-bottom:10px}
 .ong-hero__controls{padding-inline:14px;bottom:25px}
 .ong-hero__arrow{top:22%;width:36px;height:36px}
 .ong-hero__arrow--prev{left:12px}.ong-hero__arrow--next{right:12px}
 .cm-mega__overview{padding:13px 16px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.ong-hero__slide{transition:none}}
@media(max-width:1340px){.cm-header{backdrop-filter:none}.cm-nav:not(.is-open){visibility:hidden}.cm-nav.is-open{visibility:visible}}
@media(max-width:1340px){.cm-mobile-menu-open .cm-header{z-index:240}}
.cm-mega--about .cm-mega__section{display:block}
.cm-mega__section--links{display:flex;flex-direction:column;gap:2px}
.cm-mega--dynamic .cm-mega__section h3{min-height:0;line-height:1.55;padding-bottom:12px;margin-bottom:10px}
.cm-mega__grid--dynamic{row-gap:24px}
@media(min-width:1341px){.cm-mega--about .cm-mega__grid--dynamic{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Source parity: stable slide height and circular active indicator. */
.ong-hero{height:600px;isolation:isolate}
.ong-hero__dot.is-active:after{background:var(--site-seed,var(--site-accent,#f97316));border-color:var(--site-seed,var(--site-accent,#f97316))}
@media(max-width:767.98px){.ong-hero{height:500px}}

/* Keep the artwork focal area visible when wide desktop heroes crop 16:9 art. */
.ong-hero__image{object-position:center 20%}
.ong-hero__content h2,.ong-hero__content p{overflow-wrap:anywhere}

/* English and Chinese need flexible text boxes, not Thai-only fixed widths. */
html:not([lang="th"]) .cm-header__row{gap:20px}
html:not([lang="th"]) .cm-brand{min-width:0;flex:0 1 330px}
html:not([lang="th"]) .cm-brand__logo{flex-shrink:0}
html:not([lang="th"]) .cm-brand__text{min-width:0}
html:not([lang="th"]) .cm-brand__text strong{white-space:normal;font-size:20px;line-height:1.25;overflow-wrap:anywhere}
html:not([lang="th"]) .cm-brand__text small{letter-spacing:0;line-height:1.5}
html:not([lang="th"]) .cm-nav__link{white-space:normal;line-height:1.4;font-size:14px;padding-inline:8px}
html:not([lang="th"]) .cm-nav__link i{flex-shrink:0}
html:not([lang="th"]) .cm-mega a,html:not([lang="th"]) .cm-mega h3{overflow-wrap:anywhere;line-height:1.5}
html:not([lang="th"]) #executiveSection .ong-exec-person h3,
html:not([lang="th"]) #executiveSection .ong-exec-person p{height:auto!important;white-space:normal;overflow-wrap:anywhere;line-height:1.55}
html:not([lang="th"]) .city-vote-heading{flex-wrap:wrap;gap:20px}
html:not([lang="th"]) .city-vote-heading-copy{min-width:0;flex:1 1 480px}
html:not([lang="th"]) .city-vote-card h3,html:not([lang="th"]) .city-vote-card p,
html:not([lang="th"]) .soft-power-section h3,html:not([lang="th"]) .soft-power-section p{overflow-wrap:anywhere;line-height:1.6}
html:not([lang="th"]) .ep-form label{min-width:0;overflow-wrap:anywhere}
html:not([lang="th"]) .ep-form button{white-space:normal;height:auto;min-height:44px;line-height:1.5}
html:lang(zh) main{word-break:normal;line-break:auto}
html:not([lang="th"]) .person-card h3,html:not([lang="th"]) .person-card p{white-space:normal;overflow-wrap:anywhere;height:auto;line-height:1.55}
@media(min-width:1341px){html:not([lang="th"]) .cm-nav{flex:1;justify-content:flex-end}}
@media(max-width:760px){html:not([lang="th"]) .cm-brand{flex:1;max-width:calc(100% - 62px)}html:not([lang="th"]) .cm-brand__text strong{font-size:16px}html:not([lang="th"]) .cm-brand__text small{font-size:9px}html:not([lang="th"]) .ong-hero__content h2{font-size:26px;line-height:1.3}}
