/*
Theme Name: CM108 News 2026
Theme URI: https://www.cm108.com/
Author: CM108 Local Development
Description: Modern Thai news theme built for CM108. Lightweight, responsive, and independent from Newspaper/tagDiv layouts.
Version: 1.2.6
Requires at least: 6.4
Requires PHP: 7.3
Text Domain: cm108-news-2026
*/

:root {
  --cm108-accent: #00c0fa;
  --cm108-accent-dark: #008fc0;
  --cm108-ink: #101820;
  --cm108-muted: #66717d;
  --cm108-line: #e6ebef;
  --cm108-bg: #f5f7f9;
  --cm108-card: #ffffff;
  --cm108-radius: 16px;
  --cm108-shadow: 0 8px 30px rgba(16,24,32,.08);
  --cm108-container: 1240px;
  /* รูปปกข่าวต้นฉบับ CM108 = 1200 × 686 (แนวนอน) */
  --cm108-cover-ratio: 1200 / 686;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--cm108-ink);
  background:var(--cm108-bg);
  font-family:"Noto Sans Thai",Tahoma,Arial,sans-serif;
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--cm108-accent-dark)}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit}

.cm108-container{width:min(calc(100% - 32px),var(--cm108-container));margin-inline:auto}
.cm108-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header */
.cm108-topbar{background:#0d151c;color:#dfe8ee;font-size:13px}
.cm108-topbar-inner{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cm108-topbar a{color:#dfe8ee}
.cm108-brand-row{background:#fff;border-bottom:1px solid var(--cm108-line)}
.cm108-brand-inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.cm108-brand{display:flex;align-items:center;gap:14px;min-width:0}
.cm108-brand .custom-logo{max-height:72px;width:auto}
.cm108-brand-text{display:flex;flex-direction:column;min-width:0}
.cm108-site-title{font-size:clamp(28px,4vw,48px);font-weight:900;letter-spacing:-1.8px;line-height:1;margin:0;color:#101820}
.cm108-site-title .accent{color:var(--cm108-accent)}
.cm108-tagline{color:var(--cm108-muted);font-size:14px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm108-header-actions{display:flex;align-items:center;gap:10px}
.cm108-icon-btn{width:44px;height:44px;border:1px solid var(--cm108-line);border-radius:999px;background:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s ease}
.cm108-icon-btn:hover{border-color:var(--cm108-accent);color:var(--cm108-accent-dark);transform:translateY(-1px)}

.cm108-nav-wrap{background:#fff;border-bottom:1px solid var(--cm108-line);position:sticky;top:0;z-index:50}
.admin-bar .cm108-nav-wrap{top:32px}
.cm108-nav-inner{display:flex;align-items:center;gap:24px;min-height:54px}
.cm108-primary-nav{flex:1;min-width:0}
.cm108-primary-nav ul{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.cm108-primary-nav ul::-webkit-scrollbar{display:none}
.cm108-primary-nav li{flex:0 0 auto}
.cm108-primary-nav a{display:block;padding:16px 12px 14px;font-weight:750;font-size:15px;line-height:1.2;border-bottom:3px solid transparent}
.cm108-primary-nav a:hover,.cm108-primary-nav .current-menu-item>a{color:#111;border-color:var(--cm108-accent)}
.cm108-breaking{display:flex;align-items:center;gap:10px;min-width:0;background:#eafaff;border-left:4px solid var(--cm108-accent);padding:8px 12px;border-radius:10px;margin:18px auto 0}
.cm108-breaking-label{font-weight:900;color:#007fa8;white-space:nowrap;font-size:13px}
.cm108-breaking-link{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Search drawer */
.cm108-search-drawer{display:none;background:#fff;border-bottom:1px solid var(--cm108-line);padding:16px 0}
.cm108-search-drawer.is-open{display:block}
.cm108-search-form{display:flex;gap:10px}
.cm108-search-form input[type="search"]{flex:1;min-width:0;border:1px solid #ccd5db;border-radius:12px;padding:12px 14px;outline:none;background:#fff}
.cm108-search-form input[type="search"]:focus{border-color:var(--cm108-accent);box-shadow:0 0 0 3px rgba(0,192,250,.14)}
.cm108-btn{border:0;border-radius:12px;background:var(--cm108-accent);color:#062a35;font-weight:900;padding:11px 18px;cursor:pointer}
.cm108-btn:hover{background:#29cbfa;color:#062a35}

/* Hero */
.cm108-main{padding:26px 0 56px}
.cm108-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:14px;margin-top:20px;align-items:start}
.cm108-hero-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cm108-story-card{overflow:hidden;border:1px solid var(--cm108-line);border-radius:var(--cm108-radius);background:#fff;min-height:0;transition:.2s ease}
.cm108-story-card:hover{transform:translateY(-2px);box-shadow:var(--cm108-shadow);border-color:#d8e1e6}
.cm108-story-card::after{display:none}
.cm108-story-media{display:block;width:100%;aspect-ratio:var(--cm108-cover-ratio);overflow:hidden;background:#e8edf0;position:relative}
.cm108-story-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;transition:transform .35s ease}
.cm108-story-card:hover .cm108-story-media img{transform:scale(1.025)}
.cm108-story-card-content{position:static;padding:14px 15px 16px;color:var(--cm108-ink);background:#fff}
.cm108-story-card-large .cm108-story-card-content{padding:18px 20px 20px}
.cm108-story-card-large .cm108-story-title{font-size:clamp(27px,3vw,40px)}
.cm108-story-title{font-size:19px;line-height:1.5;font-weight:900;margin:9px 0 0;text-wrap:balance}
.cm108-story-title a{display:block;color:var(--cm108-ink)}
.cm108-story-title a:hover{color:var(--cm108-accent-dark)}
.cm108-story-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#7d8790;margin-top:8px}
.cm108-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:var(--cm108-accent);color:#05313e;font-size:12px;font-weight:900;line-height:1}
.cm108-no-image{display:block;width:100%;height:100%;background:linear-gradient(135deg,#bfeefa,#ebfaff)}

/* Sections */
.cm108-section{margin-top:38px}
.cm108-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}
.cm108-section-title{font-size:26px;line-height:1.3;margin:0;font-weight:900;letter-spacing:-.4px}
.cm108-section-title::before{content:"";display:inline-block;width:7px;height:24px;border-radius:999px;background:var(--cm108-accent);margin-right:10px;vertical-align:-3px}
.cm108-section-more{font-size:14px;font-weight:800;color:#62707a}
.cm108-section-more:hover{color:var(--cm108-accent-dark)}

.cm108-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}
.cm108-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cm108-card{background:var(--cm108-card);border:1px solid var(--cm108-line);border-radius:var(--cm108-radius);overflow:hidden;transition:.2s ease;height:100%}
.cm108-card:hover{transform:translateY(-2px);box-shadow:var(--cm108-shadow);border-color:#d8e1e6}
.cm108-card-media{aspect-ratio:var(--cm108-cover-ratio);background:#e8edf0;overflow:hidden;position:relative}
.cm108-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.cm108-card:hover .cm108-card-media img{transform:scale(1.03)}
.cm108-card-body{padding:15px 16px 17px}
.cm108-card-title{font-size:20px;line-height:1.55;font-weight:850;margin:7px 0 6px;text-wrap:pretty}
.cm108-card-excerpt{font-size:14px;color:var(--cm108-muted);line-height:1.7;margin:0}
.cm108-card-meta{font-size:12px;color:#87919a;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Sidebar */
.cm108-sidebar{position:sticky;top:82px}
.admin-bar .cm108-sidebar{top:114px}
.cm108-sidebar-box{background:#fff;border:1px solid var(--cm108-line);border-radius:var(--cm108-radius);overflow:hidden}
.cm108-sidebar-title{margin:0;padding:15px 16px;border-bottom:1px solid var(--cm108-line);font-size:18px;font-weight:900;display:flex;align-items:center;gap:8px}
.cm108-sidebar-title::before{content:"";width:6px;height:20px;background:var(--cm108-accent);border-radius:999px}
.cm108-latest-list{list-style:none;margin:0;padding:0}
.cm108-latest-list li{border-bottom:1px solid var(--cm108-line)}
.cm108-latest-list li:last-child{border-bottom:0}
.cm108-latest-list a{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:13px 14px}
.cm108-latest-thumb{width:72px;height:58px;border-radius:9px;overflow:hidden;background:#e9eef1}
.cm108-latest-thumb img{width:100%;height:100%;object-fit:cover}
.cm108-latest-title{font-size:14px;line-height:1.48;font-weight:800;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cm108-latest-time{font-size:11px;color:#9099a1;margin-top:3px}

/* Category strips */
.cm108-cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cm108-cat-card{background:#fff;border:1px solid var(--cm108-line);border-radius:var(--cm108-radius);overflow:hidden}
.cm108-cat-card .cm108-card-media{aspect-ratio:var(--cm108-cover-ratio)}
.cm108-cat-card .cm108-card-title{font-size:18px}
.cm108-cat-list{list-style:none;margin:0;padding:0 16px 10px}
.cm108-cat-list li{border-top:1px solid var(--cm108-line)}
.cm108-cat-list a{display:block;padding:10px 0;font-size:14px;font-weight:750;line-height:1.5}

/* Single */
.cm108-single-wrap{display:grid;grid-template-columns:minmax(0,820px) 330px;gap:32px;align-items:start}
.cm108-article{background:#fff;border:1px solid var(--cm108-line);border-radius:20px;padding:clamp(20px,4vw,44px);overflow:hidden}
.cm108-breadcrumbs{font-size:13px;color:#78848d;margin-bottom:18px}
.cm108-entry-title{font-size:clamp(24px,3.7vw,38px);line-height:1.38;font-weight:900;letter-spacing:-.4px;margin:0 0 14px;text-wrap:balance}
.cm108-entry-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:#7d8790;font-size:13px;margin-bottom:24px}
.cm108-featured-image{border-radius:16px;overflow:hidden;margin:4px 0 26px;aspect-ratio:var(--cm108-cover-ratio);background:#e8edf0}
.cm108-featured-image img{width:100%;height:100%;object-fit:cover}
.cm108-entry-content{font-size:18px;line-height:1.95;color:#202830}
.cm108-entry-content p{margin:0 0 1.4em}
.cm108-entry-content h2,.cm108-entry-content h3{line-height:1.45;margin-top:1.7em}
.cm108-entry-content a{color:#007fa8;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.cm108-entry-content blockquote{margin:28px 0;padding:18px 22px;border-left:5px solid var(--cm108-accent);background:#effbfe;border-radius:0 12px 12px 0}
.cm108-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.cm108-tags a{border:1px solid var(--cm108-line);border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700}

/* Archive/Search/Page */
.cm108-page-header{margin-bottom:20px}
.cm108-page-title{font-size:clamp(28px,4vw,40px);line-height:1.35;margin:0;font-weight:900}
.cm108-page-description{color:var(--cm108-muted);margin-top:8px}
.cm108-list{display:grid;gap:14px}
.cm108-list-item{display:grid;grid-template-columns:260px minmax(0,1fr);background:#fff;border:1px solid var(--cm108-line);border-radius:var(--cm108-radius);overflow:hidden}
.cm108-list-media{aspect-ratio:var(--cm108-cover-ratio);min-height:0;background:#e9eef1;align-self:start}
.cm108-list-media img{width:100%;height:100%;object-fit:cover}
.cm108-list-content{padding:18px 20px}
.cm108-list-title{font-size:23px;line-height:1.5;font-weight:900;margin:6px 0}
.cm108-pagination{margin-top:26px}
.cm108-pagination .nav-links{display:flex;gap:7px;flex-wrap:wrap}
.cm108-pagination .page-numbers{min-width:40px;height:40px;border:1px solid var(--cm108-line);background:#fff;border-radius:9px;display:grid;place-items:center;font-weight:800;padding:0 10px}
.cm108-pagination .current{background:var(--cm108-accent);border-color:var(--cm108-accent)}

/* Footer */
.cm108-footer{background:#101820;color:#d8e0e5;margin-top:50px}
.cm108-footer-top{padding:42px 0;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.cm108-footer-title{color:#fff;font-size:22px;font-weight:900;margin:0 0 12px}
.cm108-footer p{color:#aeb9c1;margin:0}
.cm108-footer-menu ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cm108-footer-menu a{color:#d8e0e5}
.cm108-footer-bottom{border-top:1px solid rgba(255,255,255,.09);padding:16px 0;color:#89959d;font-size:13px}

/* Mobile menu */
.cm108-mobile-toggle{display:none}
.cm108-mobile-panel{display:none}

@media (max-width:1050px){
  .cm108-hero{grid-template-columns:1fr}
  .cm108-content-grid,.cm108-single-wrap{grid-template-columns:1fr}
  .cm108-sidebar{position:static}
  .cm108-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:782px){
  .admin-bar .cm108-nav-wrap{top:46px}
  .cm108-topbar-inner{min-height:30px}
  .cm108-topbar-right{display:none}
  .cm108-brand-inner{min-height:84px}
  .cm108-site-title{font-size:34px}
  .cm108-tagline{font-size:12px}
  .cm108-primary-nav{display:none}
  .cm108-mobile-toggle{display:grid}
  .cm108-nav-inner{justify-content:space-between}
  .cm108-nav-home{font-weight:900}
  .cm108-mobile-panel.is-open{display:block;background:#fff;border-bottom:1px solid var(--cm108-line)}
  .cm108-mobile-panel ul{list-style:none;margin:0;padding:8px 16px 15px}
  .cm108-mobile-panel a{display:block;padding:10px 4px;border-bottom:1px solid var(--cm108-line);font-weight:800}
  .cm108-hero-side{grid-template-columns:1fr 1fr}
  .cm108-news-grid{grid-template-columns:1fr}
  .cm108-list-item{grid-template-columns:180px minmax(0,1fr)}
  .cm108-footer-top{grid-template-columns:1fr 1fr}
}

@media (max-width:560px){
  .cm108-container{width:min(calc(100% - 20px),var(--cm108-container))}
  .cm108-brand-inner{min-height:72px}
  .cm108-brand .custom-logo{max-height:52px}
  .cm108-site-title{font-size:30px;letter-spacing:-1px}
  .cm108-header-actions .cm108-icon-btn:first-child{display:none}
  .cm108-main{padding-top:16px}
  .cm108-breaking{margin-top:12px}
  .cm108-hero{gap:10px;margin-top:12px}
  .cm108-hero-side{grid-template-columns:1fr}
  .cm108-story-card-large .cm108-story-title{font-size:27px}
  .cm108-story-card-content{padding:17px}
  .cm108-section{margin-top:30px}
  .cm108-section-title{font-size:22px}
  .cm108-cat-grid{grid-template-columns:1fr}
  .cm108-list-item{grid-template-columns:1fr}
  .cm108-article{border-radius:14px;padding:20px 16px}
  .cm108-entry-title{font-size:26px}
  .cm108-entry-content{font-size:17px}
  .cm108-footer-top{grid-template-columns:1fr}
}


/* Homepage section order v1.0.2 */
.cm108-section-chiangmai{margin-top:0}
.cm108-section-head-featured{margin-bottom:14px}
.cm108-section-title-featured{font-size:clamp(28px,3vw,38px)}
.cm108-section-title-featured::before{height:30px;vertical-align:-5px}
.cm108-cat-grid-home{grid-template-columns:repeat(4,minmax(0,1fr))}

@media (max-width:1050px){
  .cm108-cat-grid-home{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .cm108-cat-grid-home{grid-template-columns:1fr}
}


/* ===== v1.0.3: Cover images are always landscape 1200 × 686 =====
 * Use one consistent presentation ratio everywhere. Images are cropped visually
 * with object-fit only; this theme does NOT register any additional image size.
 */
.cm108-story-card,
.cm108-card-media,
.cm108-cat-card .cm108-card-media,
.cm108-list-media,
.cm108-featured-image,
.cm108-latest-thumb {
  aspect-ratio: 1200 / 686 !important;
  overflow: hidden;
  background: #e8edf0;
}

.cm108-story-card img,
.cm108-card-media img,
.cm108-list-media img,
.cm108-featured-image img,
.cm108-latest-thumb img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover !important;
  object-position: center center;
}

/* Sidebar thumbnails were previously 72 × 58, which looked almost square.
   Keep them horizontal too. */
.cm108-latest-list a {
  grid-template-columns: 96px minmax(0,1fr);
}
.cm108-latest-thumb {
  width: 96px;
  height: auto;
  min-height: 0;
  border-radius: 9px;
}

@media (max-width:560px){
  .cm108-latest-list a{grid-template-columns:88px minmax(0,1fr)}
  .cm108-latest-thumb{width:88px}
}


/* ===== v1.0.4: Landscape cards + headlines below images =====
 * Every cover frame is a real block with the native CM108 1200×686 ratio.
 * Theme-generated headlines never sit on top of the cover image.
 */
.cm108-card-media,
.cm108-cat-card .cm108-card-media,
.cm108-list-media,
.cm108-featured-image,
.cm108-latest-thumb,
.cm108-story-media {
  display:block;
  width:100%;
  aspect-ratio:1200 / 686 !important;
  overflow:hidden;
  background:#e8edf0;
  position:relative;
}

.cm108-card-media > img,
.cm108-cat-card .cm108-card-media > img,
.cm108-list-media > img,
.cm108-featured-image > img,
.cm108-latest-thumb > img,
.cm108-story-media > img {
  position:absolute;
  inset:0;
  display:block;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center;
}

/* Category cards: the anchor is a block, otherwise aspect-ratio on an inline <a>
   can collapse and make the image look portrait/tall. */
.cm108-cat-card > .cm108-card-media {
  display:block !important;
}

/* Headlines and metadata always live below the cover. */
.cm108-story-card-content,
.cm108-card-body {
  position:static !important;
  inset:auto !important;
  color:var(--cm108-ink) !important;
  background:#fff;
}
.cm108-story-card::after { display:none !important; }
.cm108-story-card { aspect-ratio:auto !important; }
.cm108-story-card > img { position:static !important; }
.cm108-cat-card .cm108-card-title {
  margin-top:6px;
  line-height:1.55;
}

@media (max-width:1050px){
  .cm108-hero{grid-template-columns:1fr}
}

/* ========================================================================== 
   v1.0.5 — CM108 Modern News Masthead
   Inspired by contemporary news portals, but with an original CM108 identity.
   ========================================================================== */
.cm108-site-header{
  position:relative;
  z-index:80;
  isolation:isolate;
}
.cm108-masthead{
  position:relative;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 76% 24%,rgba(255,255,255,.18),transparent 27%),
    linear-gradient(118deg,#002d43 0%,#004d69 36%,#00a9dc 100%);
  min-height:126px;
}
.cm108-masthead::after{
  content:"";
  position:absolute;
  inset:auto -8% -68px 26%;
  height:110px;
  background:rgba(0,192,250,.24);
  transform:skewX(-24deg);
  border-radius:80px;
  pointer-events:none;
}
.cm108-masthead-orb{
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  filter:blur(1px);
  opacity:.42;
  animation:cm108FloatOrb 9s ease-in-out infinite alternate;
}
.cm108-orb-one{
  width:240px;height:240px;
  right:18%;top:-155px;
  background:radial-gradient(circle,rgba(109,230,255,.65),rgba(0,192,250,0));
}
.cm108-orb-two{
  width:170px;height:170px;
  right:1%;bottom:-105px;
  background:radial-gradient(circle,rgba(255,255,255,.34),rgba(255,255,255,0));
  animation-delay:-3s;
}
.cm108-masthead-inner{
  min-height:126px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  position:relative;
  z-index:2;
  padding-top:10px;
  padding-bottom:22px;
}
.cm108-brand-modern{
  color:#fff;
  flex:0 1 auto;
}
.cm108-brand-modern:hover{color:#fff}
.cm108-brand-mark{
  width:48px;height:48px;
  display:grid;place-items:center;
  border-radius:15px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 12px 32px rgba(0,0,0,.14);
  font-weight:950;
  letter-spacing:-1px;
  backdrop-filter:blur(12px);
}
.cm108-brand-modern .cm108-site-title{
  color:#fff;
  font-size:clamp(34px,4.5vw,54px);
  letter-spacing:-2.2px;
  text-shadow:0 8px 26px rgba(0,0,0,.18);
}
.cm108-brand-modern .cm108-site-title .accent{color:#7fe9ff}
.cm108-brand-modern .cm108-tagline{
  color:rgba(255,255,255,.76);
  font-weight:650;
  letter-spacing:.1px;
}
.cm108-logo-wrap .custom-logo-link{display:block}
.cm108-brand-modern .custom-logo{max-height:74px;width:auto;filter:drop-shadow(0 8px 22px rgba(0,0,0,.16))}

.cm108-head-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  min-width:0;
}
.cm108-live-chip,
.cm108-quick-chip,
.cm108-search-pill{
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:0 16px;
  border-radius:999px;
  color:#fff;
  white-space:nowrap;
  font-size:14px;
  font-weight:850;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,20,33,.24);
  box-shadow:0 10px 30px rgba(0,23,37,.10),inset 0 1px 0 rgba(255,255,255,.09);
  backdrop-filter:blur(13px);
  -webkit-backdrop-filter:blur(13px);
  transition:transform .28s cubic-bezier(.2,.8,.2,1),background .28s ease,border-color .28s ease,box-shadow .28s ease;
  overflow:hidden;
}
.cm108-quick-chip{animation:cm108HeaderChipIn .55s both;animation-delay:var(--cm108-chip-delay,0ms)}
.cm108-quick-chip::before,
.cm108-search-pill::before{
  content:"";
  position:absolute;
  top:-120%;bottom:-120%;left:-55%;
  width:34%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transform:rotate(16deg) translateX(-220%);
  transition:transform .65s ease;
  z-index:-1;
}
.cm108-quick-chip:hover::before,.cm108-search-pill:hover::before{transform:rotate(16deg) translateX(560%)}
.cm108-quick-chip:hover,.cm108-search-pill:hover{
  color:#fff;
  transform:translateY(-3px);
  background:rgba(0,18,31,.42);
  border-color:rgba(255,255,255,.34);
  box-shadow:0 16px 38px rgba(0,25,40,.18),inset 0 1px 0 rgba(255,255,255,.14);
}
.cm108-search-pill{cursor:pointer}
.cm108-search-pill svg,.cm108-nav-search svg,.cm108-nav-home svg{
  width:19px;height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cm108-live-chip{background:rgba(255,255,255,.11);padding-left:13px}
.cm108-live-dot{
  width:8px;height:8px;border-radius:50%;
  background:#62ffbb;
  box-shadow:0 0 0 0 rgba(98,255,187,.5);
  animation:cm108LivePulse 2s ease-out infinite;
}

/* Floating navigation — an original dark glass band, not a copy of the reference. */
.cm108-nav-stage{
  position:sticky;
  top:0;
  z-index:90;
  margin-top:-23px;
  pointer-events:none;
  transition:transform .28s ease,filter .28s ease;
}
.admin-bar .cm108-nav-stage{top:32px}
.cm108-nav-shell{
  pointer-events:auto;
  min-height:58px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 9px;
  border-radius:19px;
  background:linear-gradient(100deg,rgba(7,19,28,.98),rgba(16,34,45,.97));
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 16px 42px rgba(3,21,33,.22),inset 0 1px 0 rgba(255,255,255,.06);
  transition:border-radius .28s ease,box-shadow .28s ease,transform .28s ease;
}
.cm108-site-header.is-scrolled .cm108-nav-shell{
  border-radius:0 0 16px 16px;
  box-shadow:0 12px 32px rgba(3,21,33,.26);
  transform:translateY(-1px);
}
.cm108-nav-home,.cm108-nav-search{
  width:44px;height:44px;
  flex:0 0 44px;
  display:grid;place-items:center;
  border-radius:13px;
  color:#fff;
  border:0;
  background:rgba(255,255,255,.07);
  cursor:pointer;
  transition:transform .22s ease,background .22s ease,color .22s ease;
}
.cm108-nav-home:hover,.cm108-nav-search:hover{
  color:#052b39;
  background:var(--cm108-accent);
  transform:translateY(-2px);
}
.cm108-primary-nav{flex:1;min-width:0}
.cm108-primary-nav ul{
  display:flex;
  align-items:center;
  gap:2px;
  list-style:none;
  margin:0;
  padding:0;
  overflow-x:auto;
  scrollbar-width:none;
}
.cm108-primary-nav li{position:relative;flex:0 0 auto}
.cm108-primary-nav a{
  position:relative;
  display:block;
  padding:12px 13px;
  color:#f5f9fb;
  font-weight:800;
  font-size:15px;
  line-height:1.2;
  border:0;
  border-radius:11px;
  transition:color .22s ease,background .22s ease,transform .22s ease;
}
.cm108-primary-nav a::after{
  content:"";
  position:absolute;
  left:13px;right:13px;bottom:7px;
  height:2px;
  border-radius:999px;
  background:var(--cm108-accent);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.cm108-primary-nav a:hover,
.cm108-primary-nav .current-menu-item>a,
.cm108-primary-nav .current-menu-ancestor>a{
  color:#fff;
  background:rgba(255,255,255,.06);
  transform:translateY(-1px);
}
.cm108-primary-nav a:hover::after,
.cm108-primary-nav .current-menu-item>a::after,
.cm108-primary-nav .current-menu-ancestor>a::after{transform:scaleX(1)}

/* Animated search panel */
.cm108-search-drawer{
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  visibility:hidden;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--cm108-line);
  box-shadow:0 18px 40px rgba(6,30,43,.09);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1),opacity .24s ease,visibility .32s;
}
.cm108-search-drawer.is-open{
  display:grid;
  grid-template-rows:1fr;
  opacity:1;
  visibility:visible;
}
.cm108-search-drawer-inner{
  min-height:0;
  overflow:hidden;
  padding-top:0;
  padding-bottom:0;
  transition:padding .32s ease;
}
.cm108-search-drawer.is-open .cm108-search-drawer-inner{padding-top:20px;padding-bottom:22px}
.cm108-search-label{font-size:13px;font-weight:850;color:#61717b;margin:0 0 8px 2px}
.cm108-search-form{display:flex;gap:10px}
.cm108-search-form input[type="search"]{
  min-height:50px;
  border-radius:15px;
  border:1px solid #d6e1e6;
  background:#f8fbfc;
  box-shadow:inset 0 1px 0 #fff;
}
.cm108-search-form input[type="search"]:focus{background:#fff}

/* Mobile menu morph */
.cm108-mobile-toggle{
  width:44px;height:44px;
  flex:0 0 44px;
  border:0;
  border-radius:13px;
  background:rgba(255,255,255,.07);
  place-items:center;
  padding:12px;
  cursor:pointer;
}
.cm108-mobile-toggle span{
  display:block;
  width:20px;height:2px;
  margin:3px auto;
  border-radius:999px;
  background:#fff;
  transition:transform .25s ease,opacity .2s ease;
}
.cm108-mobile-toggle.is-open span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.cm108-mobile-toggle.is-open span:nth-child(2){opacity:0}
.cm108-mobile-toggle.is-open span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.cm108-mobile-panel{
  display:grid;
  grid-template-rows:0fr;
  background:#101f29;
  color:#fff;
  opacity:0;
  overflow:hidden;
  transition:grid-template-rows .3s ease,opacity .24s ease;
}
.cm108-mobile-panel>.cm108-container{min-height:0;overflow:hidden}
.cm108-mobile-panel.is-open{display:grid;grid-template-rows:1fr;opacity:1}
.cm108-mobile-panel ul{list-style:none;margin:0;padding:10px 0 16px}
.cm108-mobile-panel a{display:block;padding:11px 4px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:800}

/* Header entrance */
.cm108-masthead-inner,.cm108-nav-shell{will-change:transform,opacity}
html:not(.cm108-ready) .cm108-masthead-inner{opacity:0;transform:translateY(-10px)}
html:not(.cm108-ready) .cm108-nav-shell{opacity:0;transform:translateY(12px)}
.cm108-ready .cm108-masthead-inner{animation:cm108HeaderIn .58s cubic-bezier(.2,.8,.2,1) both}
.cm108-ready .cm108-nav-shell{animation:cm108NavIn .62s .08s cubic-bezier(.2,.8,.2,1) both}

@keyframes cm108HeaderIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes cm108NavIn{from{opacity:0;transform:translateY(14px) scale(.992)}to{opacity:1;transform:none}}
@keyframes cm108HeaderChipIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@keyframes cm108LivePulse{0%{box-shadow:0 0 0 0 rgba(98,255,187,.52)}70%{box-shadow:0 0 0 9px rgba(98,255,187,0)}100%{box-shadow:0 0 0 0 rgba(98,255,187,0)}}
@keyframes cm108FloatOrb{from{transform:translate3d(-8px,-3px,0) scale(.96)}to{transform:translate3d(12px,11px,0) scale(1.06)}}

/* Remove legacy header styles from v1.0.x wherever they conflict. */
.cm108-topbar,.cm108-brand-row,.cm108-nav-wrap{display:none!important}

@media (max-width:1120px){
  .cm108-head-tools .cm108-quick-chip:nth-of-type(n+3){display:none}
  .cm108-head-tools{gap:7px}
}
@media (max-width:900px){
  .cm108-masthead{min-height:105px}
  .cm108-masthead-inner{min-height:105px;padding-bottom:19px}
  .cm108-live-chip,.cm108-quick-chip{display:none}
  .cm108-search-pill{min-width:44px;width:44px;padding:0}
  .cm108-search-pill span{display:none}
  .cm108-mobile-toggle{display:block}
  .cm108-primary-nav{display:none}
  .cm108-nav-shell{justify-content:space-between}
  .cm108-nav-home{margin-right:auto}
  .cm108-nav-search{display:grid}
}
@media (max-width:782px){
  .admin-bar .cm108-nav-stage{top:46px}
  .cm108-masthead-inner{padding-top:7px}
  .cm108-brand-modern .cm108-site-title{font-size:36px}
  .cm108-brand-modern .cm108-tagline{max-width:52vw}
}
@media (max-width:560px){
  .cm108-masthead{min-height:92px}
  .cm108-masthead-inner{min-height:92px;padding-bottom:16px;gap:14px}
  .cm108-brand-mark{width:40px;height:40px;border-radius:12px;font-size:14px}
  .cm108-brand-modern .cm108-site-title{font-size:31px;letter-spacing:-1.4px}
  .cm108-brand-modern .cm108-tagline{font-size:11px;margin-top:5px;max-width:58vw}
  .cm108-nav-stage{margin-top:-18px}
  .cm108-nav-shell{min-height:54px;border-radius:15px;padding:5px 7px}
  .cm108-nav-home,.cm108-nav-search,.cm108-mobile-toggle{width:42px;height:42px;flex-basis:42px;border-radius:11px}
  .cm108-search-drawer.is-open .cm108-search-drawer-inner{padding-top:14px;padding-bottom:16px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


/* ========================================================================== 
   v1.0.6 — Newspaper-style typography + uniform card surfaces
   Use a typography stack closer to the original Newspaper theme and remove
   exposed gray card backgrounds when adjacent cards have different text heights.
   ========================================================================== */
:root{
  --cm108-font-body: "Noto Sans Thai", Tahoma, Arial, sans-serif;
  --cm108-font-head: "Noto Sans Thai", Tahoma, Arial, sans-serif;
}

body,
button,
input,
select,
textarea{
  font-family:var(--cm108-font-body) !important;
}

.cm108-site-title,
.cm108-tagline,
.cm108-primary-nav,
.cm108-live-chip,
.cm108-quick-chip,
.cm108-search-pill,
.cm108-search-label,
.cm108-breaking,
.cm108-section-title,
.cm108-section-more,
.cm108-story-title,
.cm108-card-title,
.cm108-sidebar-title,
.cm108-latest-title,
.cm108-page-title,
.cm108-list-title,
.cm108-entry-title,
.cm108-footer-title,
h1,h2,h3,h4,h5,h6{
  font-family:var(--cm108-font-head) !important;
}

/* Keep Thai headlines compact and news-like, closer to the legacy Newspaper look. */
.cm108-story-title,
.cm108-card-title,
.cm108-latest-title,
.cm108-list-title{
  font-weight:700;
  letter-spacing:0;
}
.cm108-story-card-large .cm108-story-title{
  font-size:clamp(25px,2.55vw,36px);
  line-height:1.48;
}
.cm108-story-title{
  font-size:18px;
  line-height:1.52;
}
.cm108-card-title{
  font-size:18px;
  line-height:1.52;
}
.cm108-section-title{
  font-weight:700;
  letter-spacing:0;
}

/* All news cards use one continuous white surface.  The previous gray strip was
   the image placeholder background showing through when CSS Grid stretched a card. */
.cm108-story-card,
.cm108-cat-card,
.cm108-card{
  background:#fff !important;
}
.cm108-story-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.cm108-story-card-content{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  flex:1 1 auto;
  width:100%;
  background:#fff !important;
}
.cm108-story-card-content::after{
  content:"";
  display:block;
  flex:1 1 auto;
}
.cm108-hero-side{
  align-items:stretch;
}
.cm108-hero-side > .cm108-story-card{
  min-height:100%;
}
.cm108-card-body,
.cm108-cat-card .cm108-card-body{
  background:#fff !important;
}

@media (max-width:560px){
  .cm108-story-card-large .cm108-story-title{font-size:25px}
  .cm108-story-title,.cm108-card-title{font-size:17px}
}


/* ==========================================================================
   v1.0.7 — simplified main navigation + Noto Sans Thai
   ========================================================================== */
.cm108-masthead-simple{
  justify-content:flex-start;
}
.cm108-masthead-simple .cm108-brand{
  max-width:min(760px,100%);
}

/* No duplicate category pills in the cyan masthead. The dark bar is the single
   source of primary navigation. */
.cm108-head-tools{display:none!important}

.cm108-primary-nav ul{
  justify-content:flex-start;
  gap:4px;
}
.cm108-primary-nav a{
  font-family:var(--cm108-font-head)!important;
  font-size:14px;
  font-weight:700;
  padding:12px 11px;
}
.cm108-nav-search{margin-left:auto}

.cm108-mobile-panel ul{
  font-family:var(--cm108-font-head)!important;
}
.cm108-mobile-panel .current-menu-item>a{
  color:var(--cm108-accent);
}

/* Consistent Noto Sans Thai across news copy and UI. */
body,button,input,select,textarea,
.cm108-site-title,.cm108-tagline,.cm108-primary-nav,.cm108-search-label,
.cm108-section-title,.cm108-section-more,.cm108-story-title,.cm108-card-title,
.cm108-sidebar-title,.cm108-latest-title,.cm108-page-title,.cm108-list-title,
.cm108-entry-title,.cm108-entry-content,.cm108-footer-title,
h1,h2,h3,h4,h5,h6{
  font-family:"Noto Sans Thai",Tahoma,Arial,sans-serif!important;
}

@media (max-width:1180px) and (min-width:901px){
  .cm108-primary-nav a{font-size:13px;padding-inline:9px}
}


/* =========================================================
   v1.0.8 — Subtle cover-image hover zoom
   Keep the motion intentionally small so headlines stay the focus.
   ========================================================= */
.cm108-story-media,
.cm108-card-media,
.cm108-list-media,
.cm108-featured-image,
.cm108-latest-thumb {
  overflow: hidden;
}

.cm108-story-media img,
.cm108-card-media img,
.cm108-list-media img,
.cm108-featured-image img,
.cm108-latest-thumb img {
  transition: transform .42s cubic-bezier(.22,.61,.36,1);
  transform-origin: center center;
  will-change: transform;
}

@media (hover:hover) and (pointer:fine) {
  .cm108-story-media:hover img,
  .cm108-card-media:hover img,
  .cm108-list-media:hover img,
  .cm108-featured-image:hover img,
  .cm108-latest-thumb:hover img {
    transform: scale(1.018);
  }
}

@media (prefers-reduced-motion:reduce) {
  .cm108-story-media img,
  .cm108-card-media img,
  .cm108-list-media img,
  .cm108-featured-image img,
  .cm108-latest-thumb img {
    transition: none;
    transform: none !important;
  }
}


/* ==========================================================================
   v1.0.9 — CM108 supplied logo + exact six-item primary navigation
   ========================================================================== */
.cm108-brand-logo-badge{
  width:58px;
  height:58px;
  flex:0 0 58px;
  padding:2px;
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 22px rgba(0,35,53,.15);
}
.cm108-brand-logo-badge img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  border-radius:13px;
}
.cm108-primary-nav ul{
  gap:6px;
}
.cm108-primary-nav a{
  white-space:nowrap;
}
@media (max-width:560px){
  .cm108-brand-logo-badge{
    width:46px;
    height:46px;
    flex-basis:46px;
    border-radius:13px;
  }
  .cm108-brand-logo-badge img{border-radius:10px}
}


/* ==========================================================================
   v1.0.10 — clean logo, expanded category navigation, simplified contact footer
   ========================================================================== */
.cm108-brand-logo-badge{
  width:72px;
  height:72px;
  flex:0 0 72px;
  padding:0;
  border:0;
  border-radius:0;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.cm108-brand-logo-badge img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:0;
  filter:drop-shadow(0 7px 16px rgba(0,35,53,.16));
}
.cm108-primary-nav ul{gap:3px}
.cm108-primary-nav a{font-size:13px;padding-inline:9px}

.cm108-footer-top.cm108-footer-contact-layout{
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  align-items:start;
}
.cm108-footer-contact{
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.045);
}
.cm108-footer-contact .cm108-footer-title{margin-bottom:8px}
.cm108-footer-contact-label{
  margin:0 0 7px!important;
  color:#fff!important;
  font-weight:700;
}
.cm108-footer-line{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:3px;
  color:#d8e0e5;
  font-weight:650;
}
.cm108-footer-line strong{color:#7fe9ff;font-weight:800}

@media (max-width:1180px) and (min-width:901px){
  .cm108-primary-nav a{font-size:12px;padding-inline:7px}
}
@media (max-width:900px){
  .cm108-footer-top.cm108-footer-contact-layout{grid-template-columns:1fr}
}
@media (max-width:560px){
  .cm108-brand-logo-badge{
    width:56px;
    height:56px;
    flex-basis:56px;
    border-radius:0;
  }
  .cm108-brand-logo-badge img{border-radius:0}
}


/* =========================================================
   v1.0.11 — cleaner category archive
   - Category pages do not repeat the long category title/description.
   - Category cards show only the cover + headline.
   - Cover fills the full media panel; no empty strip caused by excerpts.
   ========================================================= */
body.category .cm108-main{padding-top:26px}
body.category .cm108-list{gap:16px}
body.category .cm108-list-item{
  grid-template-columns:minmax(290px,36%) minmax(0,1fr);
  align-items:stretch;
  min-height:176px;
}
body.category .cm108-list-media{
  display:block;
  width:100%;
  height:100%;
  min-height:176px;
  aspect-ratio:auto;
  align-self:stretch;
  background:#e9eef1;
}
body.category .cm108-list-media img,
body.category .cm108-list-media .cm108-cover-image{
  width:100%;
  height:100%;
  min-height:176px;
  object-fit:cover;
}
body.category .cm108-list-content{
  display:flex;
  align-items:center;
  padding:22px 24px;
}
body.category .cm108-list-title{
  margin:0;
  font-size:clamp(20px,2vw,27px);
  line-height:1.5;
}

@media (max-width:782px){
  body.category .cm108-list-item{
    grid-template-columns:1fr;
    min-height:0;
  }
  body.category .cm108-list-media{
    height:auto;
    min-height:0;
    aspect-ratio:var(--cm108-cover-ratio);
  }
  body.category .cm108-list-media img,
  body.category .cm108-list-media .cm108-cover-image{
    min-height:0;
    aspect-ratio:var(--cm108-cover-ratio);
  }
  body.category .cm108-list-content{
    padding:14px 16px 17px;
  }
}


/* ==========================================================================
   v1.0.12 — category covers without crop + larger masthead identity/navigation
   ========================================================================== */
/* Category archive: preserve the complete 1200×686 cover instead of stretching
   the media panel to the headline height. This keeps both left/right edges visible. */
body.category .cm108-list-item{
  grid-template-columns:minmax(320px,38%) minmax(0,1fr);
  align-items:center;
  min-height:0;
}
body.category .cm108-list-media{
  width:100%;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:var(--cm108-cover-ratio)!important;
  align-self:center!important;
  background:#fff;
}
body.category .cm108-list-media img,
body.category .cm108-list-media .cm108-cover-image{
  width:100%;
  height:100%!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center center;
  background:#fff;
}

/* Stronger header identity. */
.cm108-masthead,
.cm108-masthead-inner{min-height:142px}
.cm108-masthead-inner{padding-top:12px;padding-bottom:24px}
.cm108-brand-logo-badge{
  width:88px;
  height:88px;
  flex-basis:88px;
}
.cm108-brand-modern .cm108-site-title{
  font-size:clamp(38px,4.8vw,58px);
  line-height:1.02;
  letter-spacing:-1.8px;
  white-space:nowrap;
}
.cm108-site-title-thai{font-weight:900}
.cm108-brand-modern .cm108-tagline{font-size:14px;margin-top:9px}

/* Primary category bar: larger, easier-to-read labels while retaining horizontal
   scrolling when a narrower desktop cannot fit every category at once. */
.cm108-primary-nav ul{gap:2px}
.cm108-primary-nav a{
  font-size:15px;
  font-weight:750;
  padding:12px 9px;
}

@media (max-width:1180px) and (min-width:901px){
  .cm108-primary-nav a{font-size:14px!important;padding-inline:7px!important}
  .cm108-brand-logo-badge{width:80px;height:80px;flex-basis:80px}
  .cm108-brand-modern .cm108-site-title{font-size:42px}
}

@media (max-width:782px){
  body.category .cm108-list-item{grid-template-columns:1fr}
  body.category .cm108-list-media{aspect-ratio:var(--cm108-cover-ratio)!important}
  body.category .cm108-list-media img,
  body.category .cm108-list-media .cm108-cover-image{object-fit:contain!important}
}

@media (max-width:560px){
  .cm108-masthead,.cm108-masthead-inner{min-height:112px}
  .cm108-brand-logo-badge{width:64px;height:64px;flex-basis:64px}
  .cm108-brand-modern .cm108-site-title{font-size:34px;white-space:normal}
  .cm108-brand-modern .cm108-tagline{font-size:12px;margin-top:6px}
}

/* ==========================================================================
   v1.0.13 — category headline scale + home shortcut in primary bar
   ========================================================================== */
/* Category archive: keep headlines compact so the landscape cover remains the
   visual focus and more stories fit comfortably on screen. */
body.category .cm108-list-title{
  font-size:clamp(17px,1.35vw,21px)!important;
  line-height:1.55!important;
  font-weight:800;
}

/* Home shortcut uses the same glass button language as search. */
.cm108-nav-home{
  text-decoration:none;
}
.cm108-nav-home.is-current{
  color:#052b39;
  background:var(--cm108-accent);
}

@media (max-width:782px){
  body.category .cm108-list-title{font-size:18px!important;line-height:1.5!important}
}



/* v1.0.14 — reduce single-post headline size for a more balanced reading page */

/* ========================================================================== 
   v1.0.15 — minimal contact-focused footer
   ========================================================================== */
.cm108-footer-minimal .cm108-footer-contact-only{
  padding:34px 0 28px;
  text-align:center;
}
.cm108-footer-minimal .cm108-footer-title{
  margin:0 0 10px;
  font-size:22px;
}
.cm108-footer-minimal .cm108-footer-line{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#d8e0e5;
}
.cm108-footer-minimal .cm108-footer-line strong{
  color:#7fe9ff;
}
.cm108-footer-minimal .cm108-footer-bottom{
  text-align:center;
}


/* ========================================================================== 
   v1.0.16 — refined contemporary header redesign
   Give the masthead and main nav a cleaner, more premium newsroom feel.
   ========================================================================== */
.cm108-site-header{
  margin-bottom:10px;
}
.cm108-masthead{
  min-height:154px;
  background:
    radial-gradient(circle at 14% 18%, rgba(111,233,255,.16), transparent 18%),
    radial-gradient(circle at 80% 10%, rgba(255,255,255,.12), transparent 22%),
    linear-gradient(115deg,#032b40 0%,#08425d 38%,#0b97c8 100%);
}
.cm108-masthead::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 46%),
    radial-gradient(circle at 22% 0%, rgba(255,255,255,.08), transparent 28%),
    linear-gradient(120deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,0) 24%);
  opacity:.72;
}
.cm108-masthead::after{
  inset:auto 0 0 0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transform:none;
  border-radius:0;
}
.cm108-masthead-orb{opacity:.26;filter:blur(0)}
.cm108-orb-one{width:300px;height:300px;right:14%;top:-195px}
.cm108-orb-two{width:220px;height:220px;right:-1%;bottom:-135px}

.cm108-masthead-inner{
  min-height:154px;
  padding-top:14px;
  padding-bottom:30px;
  gap:26px;
}
.cm108-masthead-simple .cm108-brand{max-width:min(900px,100%)}
.cm108-brand{
  gap:18px;
  align-items:center;
}
.cm108-brand-logo-badge{
  width:90px;
  height:90px;
  flex-basis:90px;
  border-radius:0;
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.cm108-brand-logo-badge img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 10px 28px rgba(0,0,0,.22));
}
.cm108-brand-modern .cm108-site-title{
  font-size:clamp(40px, 4.8vw, 60px);
  line-height:1;
  letter-spacing:-1.7px;
  text-shadow:0 8px 24px rgba(0,0,0,.16);
}
.cm108-brand-modern .cm108-site-title .accent{color:#82ebff}
.cm108-brand-modern .cm108-tagline{
  margin-top:8px;
  font-size:15px;
  font-weight:700;
  color:rgba(255,255,255,.84);
  text-shadow:0 2px 10px rgba(0,0,0,.10);
}

.cm108-nav-stage{
  margin-top:-25px;
}
.cm108-nav-shell{
  position:relative;
  overflow:hidden;
  min-height:64px;
  padding:8px 10px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(5,15,24,.92), rgba(12,34,48,.88));
  border:1px solid rgba(121,224,255,.12);
  box-shadow:0 18px 44px rgba(4,20,31,.22), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(16px) saturate(135%);
  -webkit-backdrop-filter:blur(16px) saturate(135%);
}
.cm108-nav-shell::before{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  top:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  pointer-events:none;
}
.cm108-site-header.is-scrolled .cm108-nav-shell{
  border-radius:0 0 18px 18px;
  transform:translateY(-1px);
}

.cm108-nav-home,
.cm108-nav-search,
.cm108-mobile-toggle{
  width:46px;
  height:46px;
  flex:0 0 46px;
  border-radius:14px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.cm108-nav-home:hover,
.cm108-nav-search:hover,
.cm108-mobile-toggle:hover{
  background:rgba(0,192,250,.18);
  color:#fff;
  transform:translateY(-1px);
}
.cm108-nav-home.is-current{
  background:linear-gradient(135deg,#0aa7d9,#22cfff);
  color:#082433;
  border-color:transparent;
}

.cm108-primary-nav ul{
  gap:4px;
}
.cm108-primary-nav a{
  padding:13px 14px;
  font-size:15px !important;
  font-weight:800;
  letter-spacing:-.1px;
  border-radius:13px;
  color:rgba(255,255,255,.92);
}
.cm108-primary-nav a::after{display:none}
.cm108-primary-nav a:hover,
.cm108-primary-nav .current-menu-item > a,
.cm108-primary-nav .current-menu-ancestor > a{
  background:linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.05));
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(121,224,255,.10);
  transform:none;
}
.cm108-primary-nav .current-menu-item > a,
.cm108-primary-nav .current-menu-ancestor > a{
  background:linear-gradient(180deg, rgba(0,192,250,.22), rgba(0,192,250,.10));
  box-shadow:inset 0 0 0 1px rgba(121,224,255,.18), 0 8px 20px rgba(0,0,0,.10);
}

@media (max-width:1180px) and (min-width:901px){
  .cm108-brand-logo-badge{width:82px;height:82px;flex-basis:82px}
  .cm108-brand-modern .cm108-site-title{font-size:48px}
  .cm108-primary-nav a{font-size:14px !important;padding:13px 10px}
}
@media (max-width:900px){
  .cm108-masthead,
  .cm108-masthead-inner{min-height:118px}
  .cm108-masthead-inner{padding-top:10px;padding-bottom:22px}
  .cm108-brand-logo-badge{width:72px;height:72px;flex-basis:72px}
  .cm108-brand-modern .cm108-site-title{font-size:38px}
  .cm108-brand-modern .cm108-tagline{font-size:13px;max-width:60vw}
  .cm108-nav-stage{margin-top:-22px}
  .cm108-nav-shell{min-height:60px;padding:7px 8px;border-radius:20px}
}
@media (max-width:560px){
  .cm108-masthead,
  .cm108-masthead-inner{min-height:104px}
  .cm108-brand{gap:12px}
  .cm108-brand-logo-badge{width:58px;height:58px;flex-basis:58px}
  .cm108-brand-modern .cm108-site-title{font-size:31px;letter-spacing:-1.2px}
  .cm108-brand-modern .cm108-tagline{font-size:11px;margin-top:5px;max-width:58vw}
  .cm108-nav-stage{margin-top:-18px}
  .cm108-nav-shell{min-height:54px;border-radius:17px}
}


/* v1.0.17 — remove unwanted top background stripes */


/* v1.0.18 — canonical short category labels on single posts */


/* ========================================================================== 
   v1.0.19 — native YouTube/TikTok cards from embed code in posts
   ========================================================================== */
.cm108-card-video,
.cm108-list-video{
  position:relative;
  overflow:hidden;
  background:#05080a!important;
}
.cm108-card-video{aspect-ratio:16/9!important}
.cm108-list-video{aspect-ratio:16/9!important;align-self:start}
.cm108-video-embed{
  width:100%;
  height:100%;
  min-height:0;
  background:#05080a;
  overflow:hidden;
}
.cm108-video-embed iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  border:0;
  background:#05080a;
}
.cm108-video-card .cm108-card-body{
  border-top:1px solid var(--cm108-line);
}
.cm108-tiktok-blockquote{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
}
.cm108-tiktok-blockquote .tiktok-embed{
  margin:0 auto!important;
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
}
@media (max-width:782px){
  body.category .cm108-list-video{aspect-ratio:16/9!important}
}


/* ========================================================================== 
   v1.0.20 — social shortcuts in the upper-right masthead
   ========================================================================== */
.cm108-masthead-simple{
  justify-content:space-between;
}
.cm108-social-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex:0 0 auto;
  padding:8px;
  border-radius:18px;
  background:rgba(3,28,43,.22);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 32px rgba(0,18,29,.10);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.cm108-social-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.08);
  font-family:Arial,sans-serif!important;
  font-size:19px;
  font-weight:900;
  line-height:1;
  transition:transform .24s cubic-bezier(.2,.8,.2,1),background .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.cm108-social-icon:hover{
  color:#fff;
  transform:translateY(-3px) scale(1.03);
  background:rgba(0,192,250,.22);
  border-color:rgba(127,233,255,.32);
  box-shadow:0 10px 24px rgba(0,18,29,.18),inset 0 1px 0 rgba(255,255,255,.10);
}
.cm108-social-icon.is-empty{
  opacity:.72;
  cursor:default;
}
.cm108-social-icon.is-empty:hover{
  transform:none;
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.08);
  box-shadow:none;
}
.cm108-social-facebook span{font-size:22px;transform:translateY(1px)}
.cm108-social-youtube span{font-size:17px}
.cm108-social-tiktok span{font-size:22px}
.cm108-social-x span{font-size:19px}

@media (max-width:1050px){
  .cm108-social-links{gap:6px;padding:6px}
  .cm108-social-icon{width:38px;height:38px;flex-basis:38px;border-radius:11px}
}
@media (max-width:900px){
  .cm108-social-links{display:none}
}


/* ========================================================================== 
   v1.0.21 — TikTok section: vertical players, latest 4 clips
   ========================================================================== */
.cm108-section-tiktok .cm108-cat-grid-home{
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
}
.cm108-section-tiktok .cm108-cat-card{
  align-self:start;
}
.cm108-section-tiktok .cm108-card-video,
.cm108-section-tiktok .cm108-card-media{
  aspect-ratio:9 / 16 !important;
  background:#05080a;
}
.cm108-section-tiktok .cm108-card-video .cm108-video-embed,
.cm108-section-tiktok .cm108-card-video iframe{
  width:100%;
  height:100%;
  aspect-ratio:9 / 16;
}
.cm108-section-tiktok .cm108-card-media img,
.cm108-section-tiktok .cm108-card-media .cm108-cover-image{
  width:100%;
  height:100%;
  object-fit:cover;
}
.cm108-section-tiktok .cm108-card-title{
  font-size:17px;
  line-height:1.5;
}

@media (max-width:900px){
  .cm108-section-tiktok .cm108-cat-grid-home{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .cm108-section-tiktok .cm108-cat-grid-home{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .cm108-section-tiktok .cm108-card-body{padding:12px}
  .cm108-section-tiktok .cm108-card-title{font-size:15px}
}


/* ========================================================================== 
   v1.0.22 — recognizable brand social icons + live profile links
   ========================================================================== */
.cm108-social-links{
  gap:8px;
  padding:7px;
  background:rgba(3,28,43,.18);
  border-color:rgba(255,255,255,.08);
}
.cm108-social-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  padding:0;
  border-radius:50%;
  overflow:hidden;
  background:transparent;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 8px 20px rgba(0,18,29,.12);
}
.cm108-social-icon svg{
  width:100%;
  height:100%;
  display:block;
}
.cm108-social-icon:hover{
  transform:translateY(-3px) scale(1.07);
  background:transparent;
  border-color:rgba(255,255,255,.30);
  box-shadow:0 12px 26px rgba(0,18,29,.22),0 0 0 3px rgba(255,255,255,.06);
}
.cm108-social-facebook span,
.cm108-social-youtube span,
.cm108-social-tiktok span,
.cm108-social-x span{font-size:inherit;transform:none}
@media (max-width:1050px){
  .cm108-social-icon{width:38px;height:38px;flex-basis:38px}
}


/* v1.0.23 — exclude YouTube/TikTok posts from the Latest News sidebar */


/* ==========================================================================
   v1.0.24 — ultra-smooth, very slow cover-image hover zoom
   ========================================================================== */
.cm108-story-media img,
.cm108-card-media img,
.cm108-list-media img,
.cm108-featured-image img,
.cm108-latest-thumb img {
  transform:translateZ(0) scale(1) !important;
  transform-origin:center center;
  transition:transform 1.8s cubic-bezier(.16,1,.3,1) !important;
  backface-visibility:hidden;
  will-change:transform;
}

@media (hover:hover) and (pointer:fine) {
  .cm108-story-card:hover .cm108-story-media img,
  .cm108-story-media:hover img,
  .cm108-card:hover .cm108-card-media img,
  .cm108-card-media:hover img,
  .cm108-list-item:hover .cm108-list-media img,
  .cm108-list-media:hover img,
  .cm108-featured-image:hover img,
  .cm108-latest-list a:hover .cm108-latest-thumb img,
  .cm108-latest-thumb:hover img {
    transform:translateZ(0) scale(1.02) !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  .cm108-story-media img,
  .cm108-card-media img,
  .cm108-list-media img,
  .cm108-featured-image img,
  .cm108-latest-thumb img {
    transition:none !important;
    transform:none !important;
  }
}


/* ========================================================================== 
   v1.0.25 — top Latest News auto/manual slider (10 latest stories)
   ========================================================================== */
.cm108-latest-slider-section{
  margin-top:20px;
}
.cm108-latest-slider-head{
  margin-bottom:12px;
}
.cm108-latest-slider-controls{
  display:flex;
  align-items:center;
  gap:8px;
}
.cm108-slider-btn{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:12px;
  border:1px solid #dbe4e9;
  background:#fff;
  color:#18303e;
  cursor:pointer;
  box-shadow:0 5px 16px rgba(15,35,46,.06);
  transition:transform .22s ease,border-color .22s ease,background .22s ease,color .22s ease;
}
.cm108-slider-btn:hover{
  transform:translateY(-2px);
  border-color:rgba(0,192,250,.45);
  background:#eefdff;
  color:#007fa8;
}
.cm108-slider-btn svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cm108-latest-slider{
  --cm108-latest-gap:14px;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - (var(--cm108-latest-gap) * 3)) / 4);
  gap:var(--cm108-latest-gap);
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:2px 1px 8px;
}
.cm108-latest-slider::-webkit-scrollbar{display:none}
.cm108-latest-slide{
  scroll-snap-align:start;
  min-width:0;
  overflow:hidden;
  border:1px solid var(--cm108-line);
  border-radius:16px;
  background:#fff;
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.cm108-latest-slide:hover{
  transform:translateY(-3px);
  border-color:#d7e2e8;
  box-shadow:0 12px 30px rgba(14,36,48,.09);
}
.cm108-latest-slide-media{
  display:block;
  width:100%;
  aspect-ratio:var(--cm108-cover-ratio);
  overflow:hidden;
  background:#e8edf0;
}
.cm108-latest-slide-media img,
.cm108-latest-slide-media .cm108-cover-image{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:translateZ(0) scale(1);
  transition:transform 1.8s cubic-bezier(.16,1,.3,1);
}
@media (hover:hover) and (pointer:fine){
  .cm108-latest-slide:hover .cm108-latest-slide-media img,
  .cm108-latest-slide:hover .cm108-latest-slide-media .cm108-cover-image{
    transform:translateZ(0) scale(1.02);
  }
}
.cm108-latest-slide-body{
  padding:12px 14px 15px;
}
.cm108-latest-slide-meta{
  color:#89949c;
  font-size:11px;
  line-height:1.3;
  margin-bottom:5px;
}
.cm108-latest-slide-title{
  margin:0;
  font-size:17px;
  line-height:1.5;
  font-weight:800;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.cm108-latest-slide-title a:hover{color:var(--cm108-accent-dark)}

@media (max-width:1000px){
  .cm108-latest-slider{grid-auto-columns:calc((100% - (var(--cm108-latest-gap) * 2)) / 3)}
}
@media (max-width:760px){
  .cm108-latest-slider{grid-auto-columns:calc((100% - var(--cm108-latest-gap)) / 2)}
}
@media (max-width:520px){
  .cm108-latest-slider{grid-auto-columns:86%;scroll-padding-left:0}
  .cm108-slider-btn{width:38px;height:38px}
  .cm108-latest-slide-title{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .cm108-latest-slider{scroll-behavior:auto}
}


/* ======================================================================
   v1.0.26 — soften headline and menu weights for easier reading
   ====================================================================== */
.cm108-primary-nav a,
.cm108-mobile-panel a{
  font-weight:600 !important;
  letter-spacing:0 !important;
}

.cm108-section-title,
.cm108-section-title-featured,
.cm108-sidebar-title,
.cm108-page-title,
.cm108-footer-title{
  font-weight:800 !important;
}

.cm108-story-title,
.cm108-list-title,
.cm108-card-title,
.cm108-latest-title,
.cm108-cat-list a{
  font-weight:700 !important;
}

.cm108-entry-title{
  font-weight:780 !important;
  line-height:1.42 !important;
  letter-spacing:-0.2px !important;
}

.cm108-entry-content h2,
.cm108-entry-content h3,
.cm108-entry-content h4{
  font-weight:750 !important;
}


/* ======================================================================
   v1.0.27 — redesigned homepage Latest News section
   ====================================================================== */
.cm108-latest-slider-section{
  position:relative;
  margin-top:18px;
  padding:22px;
  border-radius:30px;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 14%, rgba(0,192,250,.22), transparent 22%),
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.08), transparent 18%),
    linear-gradient(135deg, #07141f 0%, #0a2231 45%, #0d3144 100%);
  box-shadow:0 28px 60px rgba(7,20,31,.18);
}
.cm108-latest-slider-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,0));
  pointer-events:none;
}
.cm108-latest-slider-section .cm108-section-head{
  position:relative;
  z-index:2;
}
.cm108-latest-slider-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.cm108-latest-head-copy{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.cm108-latest-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  align-self:flex-start;
  padding:8px 14px;
  border-radius:999px;
  color:#d9f7ff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.cm108-latest-kicker::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#20d4ff;
  box-shadow:0 0 0 6px rgba(32,212,255,.14);
}
.cm108-latest-slider-section .cm108-section-title{
  color:#fff;
  margin:0;
  font-size:34px;
  line-height:1.1;
  font-weight:900 !important;
}
.cm108-latest-intro{
  margin:0;
  color:rgba(227,242,247,.84);
  font-size:14px;
  line-height:1.65;
}
.cm108-latest-slider-controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.cm108-slider-btn{
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.08);
  color:#ecfbff;
  box-shadow:0 12px 24px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(8px);
}
.cm108-slider-btn:hover{
  transform:translateY(-2px);
  border-color:rgba(32,212,255,.45);
  background:rgba(32,212,255,.14);
  color:#fff;
}
.cm108-latest-slider{
  --cm108-latest-gap:16px;
  position:relative;
  z-index:2;
  padding:4px 2px 8px;
}
.cm108-latest-slide{
  position:relative;
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  box-shadow:0 18px 34px rgba(0,0,0,.16);
}
.cm108-latest-slide:hover{
  border-color:rgba(32,212,255,.26);
  box-shadow:0 22px 40px rgba(0,0,0,.22);
}
.cm108-latest-slide-media{
  position:relative;
  border-radius:22px 22px 0 0;
  overflow:hidden;
  background:#11202a;
}
.cm108-latest-slide-media::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:58%;
  background:linear-gradient(to top, rgba(4,12,18,.75), rgba(4,12,18,0));
  pointer-events:none;
}
.cm108-latest-slide-index,
.cm108-latest-slide-category{
  position:absolute;
  z-index:2;
}
.cm108-latest-slide-index{
  top:12px;
  left:12px;
  min-width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  padding:0 10px;
  color:#fff;
  font-size:15px;
  font-weight:900;
  line-height:1;
  background:linear-gradient(135deg, rgba(0,192,250,.9), rgba(0,122,255,.84));
  box-shadow:0 10px 22px rgba(0,122,255,.26);
}
.cm108-latest-slide-category{
  left:12px;
  bottom:12px;
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  max-width:calc(100% - 24px);
  color:#fff;
  font-size:11px;
  font-weight:800;
  line-height:1;
  background:rgba(5,17,24,.7);
  border:1px solid rgba(255,255,255,.12);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cm108-latest-slide-body{
  padding:14px 15px 16px;
}
.cm108-latest-slide-meta{
  color:rgba(225,239,245,.68);
  font-size:11px;
  line-height:1.3;
  margin-bottom:7px;
}
.cm108-latest-slide-title{
  font-size:18px;
  line-height:1.52;
  font-weight:800;
}
.cm108-latest-slide-title a{
  color:#fff;
}
.cm108-latest-slide-title a:hover{
  color:#9cecff;
}
@media (max-width:1000px){
  .cm108-latest-slider-section{padding:20px}
  .cm108-latest-slider-head{align-items:flex-start;flex-direction:column}
  .cm108-latest-slider-controls{align-self:flex-end}
}
@media (max-width:760px){
  .cm108-latest-slider-section{padding:18px 16px 16px;border-radius:24px}
  .cm108-latest-slider-section .cm108-section-title{font-size:28px}
  .cm108-latest-intro{font-size:13px}
}
@media (max-width:520px){
  .cm108-latest-kicker{padding:7px 12px;font-size:11px}
  .cm108-latest-slider-section .cm108-section-title{font-size:24px}
  .cm108-latest-slide{border-radius:20px}
  .cm108-latest-slide-media{border-radius:20px 20px 0 0}
  .cm108-latest-slide-index{width:38px;height:38px;min-width:38px;font-size:14px}
  .cm108-latest-slide-title{font-size:17px}
}


/* ======================================================================
   v1.0.28 — simplify homepage latest news strip
   ====================================================================== */
.cm108-latest-slider-section{
  margin-top:18px;
  padding:0;
  border-radius:0;
  overflow:visible;
  background:transparent !important;
  box-shadow:none !important;
}
.cm108-latest-slider-section::before{
  display:none !important;
}
.cm108-latest-slider-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.cm108-latest-head-copy{
  display:block;
}
.cm108-latest-kicker,
.cm108-latest-intro,
.cm108-latest-slide-index,
.cm108-latest-slide-category{
  display:none !important;
}
.cm108-latest-slider-section .cm108-section-title{
  margin:0;
  color:var(--cm108-heading) !important;
  font-size:34px;
  line-height:1.12;
  font-weight:800 !important;
}
.cm108-latest-slider-controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.cm108-slider-btn{
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid #dbe4e9;
  background:#fff;
  color:#18303e;
  box-shadow:0 8px 18px rgba(15,35,46,.06);
  backdrop-filter:none;
}
.cm108-slider-btn:hover{
  transform:translateY(-2px);
  border-color:rgba(0,192,250,.45);
  background:#f6fdff;
  color:#007fa8;
}
.cm108-latest-slider{
  --cm108-latest-gap:16px;
  position:relative;
  z-index:1;
  padding:2px 1px 8px;
}
.cm108-latest-slide{
  position:relative;
  border:1px solid var(--cm108-line);
  border-radius:18px;
  background:#fff;
  backdrop-filter:none;
  box-shadow:0 10px 24px rgba(14,36,48,.06);
}
.cm108-latest-slide:hover{
  border-color:#d7e2e8;
  box-shadow:0 16px 32px rgba(14,36,48,.09);
}
.cm108-latest-slide-media{
  border-radius:18px 18px 0 0;
  background:#e8edf0;
}
.cm108-latest-slide-media::after{
  display:none !important;
}
.cm108-latest-slide-body{
  padding:12px 14px 15px;
}
.cm108-latest-slide-meta{
  color:#89949c;
  font-size:11px;
  line-height:1.3;
  margin-bottom:5px;
}
.cm108-latest-slide-title{
  font-size:17px;
  line-height:1.5;
  font-weight:800;
}
.cm108-latest-slide-title a{
  color:var(--cm108-heading);
}
.cm108-latest-slide-title a:hover{
  color:var(--cm108-accent-dark);
}
@media (max-width:760px){
  .cm108-latest-slider-section .cm108-section-title{font-size:28px}
}
@media (max-width:520px){
  .cm108-latest-slider-section .cm108-section-title{font-size:24px}
}


/* ======================================================================
   v1.0.29 — tighten top spacing + unify Chiang Mai section heading size
   ====================================================================== */

/* Homepage: remove the oversized empty band below the floating navigation. */
body.home .cm108-main,
body.front-page .cm108-main{
  padding-top:8px;
}
body.home .cm108-latest-slider-section,
body.front-page .cm108-latest-slider-section{
  margin-top:0;
}

/* "ข่าวเชียงใหม่" should use the same heading scale as all other sections. */
.cm108-section-title-featured{
  font-size:26px !important;
  line-height:1.3 !important;
  font-weight:800 !important;
  letter-spacing:-.4px !important;
}
.cm108-section-title-featured::before{
  height:24px !important;
  vertical-align:-3px !important;
}

@media (max-width:560px){
  body.home .cm108-main,
  body.front-page .cm108-main{
    padding-top:6px;
  }
  .cm108-section-title-featured{
    font-size:22px !important;
  }
}


/* ======================================================================
   v1.0.30 — unify homepage section headings + consistent section spacing
   ====================================================================== */

/* Every homepage section heading uses the same size and rhythm. */
body.home .cm108-section-title,
body.front-page .cm108-section-title,
body.home .cm108-section-title-featured,
body.front-page .cm108-section-title-featured,
body.home .cm108-latest-slider-section .cm108-section-title,
body.front-page .cm108-latest-slider-section .cm108-section-title{
  font-size:26px !important;
  line-height:1.3 !important;
  font-weight:800 !important;
  letter-spacing:-.4px !important;
}

/* Keep the cyan marker identical for every section. */
body.home .cm108-section-title::before,
body.front-page .cm108-section-title::before,
body.home .cm108-section-title-featured::before,
body.front-page .cm108-section-title-featured::before{
  width:7px !important;
  height:24px !important;
  margin-right:10px !important;
  vertical-align:-3px !important;
}

/* Space between Latest News → Chiang Mai must match the other homepage sections. */
body.home .cm108-section-chiangmai,
body.front-page .cm108-section-chiangmai{
  margin-top:38px !important;
}

/* Keep subsequent homepage sections on the same vertical rhythm. */
body.home .cm108-section + .cm108-section,
body.front-page .cm108-section + .cm108-section{
  margin-top:38px;
}

@media (max-width:560px){
  body.home .cm108-section-title,
  body.front-page .cm108-section-title,
  body.home .cm108-section-title-featured,
  body.front-page .cm108-section-title-featured,
  body.home .cm108-latest-slider-section .cm108-section-title,
  body.front-page .cm108-latest-slider-section .cm108-section-title{
    font-size:22px !important;
  }

  body.home .cm108-section-chiangmai,
  body.front-page .cm108-section-chiangmai,
  body.home .cm108-section + .cm108-section,
  body.front-page .cm108-section + .cm108-section{
    margin-top:30px !important;
  }
}


/* ======================================================================
   v1.0.31 — compact + reliable mobile header/navigation
   ====================================================================== */
@media (max-width:900px){
  /* Make the masthead noticeably more compact on phones/tablets. */
  .cm108-masthead,
  .cm108-masthead-inner{
    min-height:88px !important;
  }
  .cm108-masthead-inner{
    padding:7px 0 12px !important;
    gap:10px !important;
    justify-content:flex-start !important;
  }
  .cm108-brand{gap:10px !important;min-width:0;}
  .cm108-brand-logo-badge{
    width:52px !important;
    height:52px !important;
    flex:0 0 52px !important;
  }
  .cm108-brand-modern .cm108-site-title{
    font-size:28px !important;
    line-height:1 !important;
    letter-spacing:-1px !important;
    white-space:nowrap !important;
  }
  .cm108-brand-modern .cm108-tagline{
    margin-top:4px !important;
    max-width:62vw !important;
    font-size:10px !important;
    line-height:1.35 !important;
  }
  .cm108-social-links{
    margin-left:auto !important;
    gap:4px !important;
  }
  .cm108-social-icon{
    width:30px !important;
    height:30px !important;
  }

  /* Mobile navigation sits directly under the header — no floating gap. */
  .cm108-nav-stage{
    margin-top:0 !important;
    position:sticky !important;
    top:0;
    z-index:100;
  }
  .admin-bar .cm108-nav-stage{top:46px !important;}
  .cm108-nav-stage > .cm108-container{
    width:100% !important;
    max-width:none !important;
  }
  .cm108-nav-shell{
    min-height:52px !important;
    padding:5px 10px !important;
    border-radius:0 !important;
    gap:7px !important;
    box-shadow:0 8px 22px rgba(3,21,33,.16) !important;
  }
  .cm108-site-header.is-scrolled .cm108-nav-shell{
    border-radius:0 !important;
    transform:none !important;
  }
  .cm108-primary-nav{display:none !important;}
  .cm108-mobile-toggle{
    display:grid !important;
    width:40px !important;
    height:40px !important;
    flex:0 0 40px !important;
    border-radius:11px !important;
    place-items:center !important;
  }
  .cm108-nav-home,
  .cm108-nav-search{
    width:40px !important;
    height:40px !important;
    flex:0 0 40px !important;
    border-radius:11px !important;
  }
  .cm108-nav-home{margin-right:auto !important;}
  .cm108-nav-search{margin-left:auto !important;}

  /* Use a simple max-height menu transition; this is more robust on mobile. */
  .cm108-mobile-panel{
    display:block !important;
    max-height:0;
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    background:#101f29 !important;
    color:#fff !important;
    border:0 !important;
    transition:max-height .32s ease, opacity .22s ease, visibility .32s !important;
  }
  .cm108-mobile-panel.is-open{
    display:block !important;
    max-height:640px;
    opacity:1;
    visibility:visible;
  }
  .cm108-mobile-panel > .cm108-container{
    width:min(calc(100% - 24px),var(--cm108-container)) !important;
    overflow:visible !important;
  }
  .cm108-mobile-panel ul{
    margin:0 !important;
    padding:8px 0 12px !important;
  }
  .cm108-mobile-panel a{
    display:block !important;
    padding:10px 4px !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:1.35 !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
  }
  .cm108-mobile-panel .current-menu-item > a{color:#63dcff !important;}

  /* Pull page content closer to the navigation. */
  .cm108-main{
    padding-top:12px !important;
    padding-bottom:38px !important;
  }

  /* Latest heading must stay left aligned. */
  .cm108-latest-slider-head{
    width:100% !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    text-align:left !important;
    margin-bottom:10px !important;
  }
  .cm108-latest-head-copy{
    display:block !important;
    width:auto !important;
    margin:0 !important;
    text-align:left !important;
  }
  .cm108-latest-slider-section .cm108-section-title{
    width:auto !important;
    margin:0 !important;
    text-align:left !important;
    font-size:22px !important;
  }
  .cm108-latest-slider-controls{margin-left:auto !important;align-self:center !important;}

  /* Cards and headings are smaller on mobile so the whole site no longer feels zoomed. */
  .cm108-section{margin-top:28px !important;}
  .cm108-section + .cm108-section{margin-top:28px !important;}
  .cm108-section-title,
  .cm108-section-title-featured{
    font-size:22px !important;
  }
  .cm108-latest-slider{
    grid-auto-columns:76% !important;
    gap:12px !important;
  }
  .cm108-latest-slide-title{
    font-size:15px !important;
    line-height:1.48 !important;
    font-weight:700 !important;
  }
  .cm108-card-title,
  .cm108-story-title{
    font-size:16px !important;
    line-height:1.48 !important;
  }
}

@media (max-width:560px){
  .cm108-container{width:min(calc(100% - 22px),var(--cm108-container));}
  .cm108-brand-modern .cm108-site-title{font-size:25px !important;}
  .cm108-brand-logo-badge{width:46px !important;height:46px !important;flex-basis:46px !important;}
  .cm108-brand-modern .cm108-tagline{max-width:56vw !important;font-size:9px !important;}
  .cm108-social-links{display:none !important;}
  .cm108-latest-slider{grid-auto-columns:72% !important;}
  .cm108-latest-slider-section .cm108-section-title,
  .cm108-section-title,
  .cm108-section-title-featured{font-size:21px !important;}
  .cm108-slider-btn{width:36px !important;height:36px !important;border-radius:10px !important;}
}


/* v1.0.32 — Thai Buddhist Era date formatting throughout the theme */


/* ======================================================================
   v1.0.33 — mobile homepage post limits + cleaner Chiang Mai hero
   ====================================================================== */

/* Chiang Mai no longer needs a category badge inside every card on homepage. */
body.home .cm108-section-chiangmai .cm108-badge,
body.front-page .cm108-section-chiangmai .cm108-badge{
  display:none !important;
}

/* Mobile: every homepage category except Latest News shows only 4 posts.
   Chiang Mai = 1 lead story + 3 supporting stories. */
@media (max-width:760px){
  body.home .cm108-section-chiangmai .cm108-hero-side > .cm108-story-card:nth-child(n+4),
  body.front-page .cm108-section-chiangmai .cm108-hero-side > .cm108-story-card:nth-child(n+4){
    display:none !important;
  }

  body.home .cm108-cat-grid-home > .cm108-cat-card:nth-child(n+5),
  body.front-page .cm108-cat-grid-home > .cm108-cat-card:nth-child(n+5){
    display:none !important;
  }
}


/* ======================================================================
   v1.0.34 — correct Thai dates + integrated newsroom navigation
   ====================================================================== */

/* The nav now belongs visually to the masthead instead of floating over it. */
.cm108-site-header{
  margin-bottom:0 !important;
}

.cm108-masthead{
  border-bottom:0 !important;
}

.cm108-nav-stage{
  position:sticky !important;
  top:0;
  z-index:100;
  margin-top:0 !important;
  pointer-events:auto !important;
  background:linear-gradient(90deg,#06283a 0%,#07364b 48%,#06435c 100%) !important;
  border-top:1px solid rgba(126,232,255,.12);
  border-bottom:1px solid rgba(0,0,0,.16);
  box-shadow:0 7px 18px rgba(3,24,36,.12);
}

.admin-bar .cm108-nav-stage{
  top:32px;
}

.cm108-nav-shell{
  min-height:58px !important;
  padding:0 !important;
  gap:4px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  overflow:visible !important;
}

.cm108-nav-shell::before{
  display:none !important;
}

.cm108-site-header.is-scrolled .cm108-nav-shell{
  border-radius:0 !important;
  transform:none !important;
  box-shadow:none !important;
}

.cm108-nav-home,
.cm108-nav-search,
.cm108-mobile-toggle{
  width:44px !important;
  height:44px !important;
  flex:0 0 44px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:rgba(255,255,255,.9) !important;
  box-shadow:none !important;
}

.cm108-nav-home:hover,
.cm108-nav-search:hover,
.cm108-mobile-toggle:hover,
.cm108-nav-home.is-current{
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  transform:none !important;
}

.cm108-primary-nav ul{
  gap:0 !important;
}

.cm108-primary-nav a{
  position:relative;
  padding:19px 10px 17px !important;
  border-radius:0 !important;
  background:transparent !important;
  color:rgba(255,255,255,.88) !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:1.2;
  box-shadow:none !important;
}

.cm108-primary-nav a::after{
  display:block !important;
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:0;
  height:3px;
  border-radius:3px 3px 0 0;
  background:#20cfff;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .22s ease;
}

.cm108-primary-nav a:hover,
.cm108-primary-nav .current-menu-item > a,
.cm108-primary-nav .current-menu-ancestor > a{
  color:#fff !important;
  background:rgba(255,255,255,.045) !important;
}

.cm108-primary-nav a:hover::after,
.cm108-primary-nav .current-menu-item > a::after,
.cm108-primary-nav .current-menu-ancestor > a::after{
  transform:scaleX(1);
}

/* Search panel attaches directly to the navigation. */
.cm108-search-drawer{
  border-top:0 !important;
}

/* Mobile: same integrated bar, compact controls and attached dropdown. */
@media (max-width:900px){
  .admin-bar .cm108-nav-stage{
    top:46px !important;
  }

  .cm108-nav-stage > .cm108-container{
    width:100% !important;
    max-width:none !important;
    padding-inline:12px;
  }

  .cm108-nav-shell{
    min-height:50px !important;
    padding:0 !important;
    gap:4px !important;
  }

  .cm108-mobile-toggle,
  .cm108-nav-home,
  .cm108-nav-search{
    width:38px !important;
    height:38px !important;
    flex:0 0 38px !important;
    border-radius:9px !important;
  }

  .cm108-mobile-panel{
    background:#082b3d !important;
    border-top:1px solid rgba(255,255,255,.06) !important;
    box-shadow:0 12px 24px rgba(2,20,31,.14) !important;
  }

  .cm108-mobile-panel > .cm108-container{
    width:100% !important;
    max-width:none !important;
    padding-inline:16px !important;
  }

  .cm108-mobile-panel ul{
    padding:8px 0 12px !important;
  }

  .cm108-mobile-panel a{
    padding:11px 4px !important;
    color:rgba(255,255,255,.9) !important;
    font-weight:600 !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
  }

  .cm108-mobile-panel li:last-child a{
    border-bottom:0 !important;
  }

  .cm108-mobile-panel .current-menu-item > a{
    color:#78e7ff !important;
  }
}


/* v1.0.35 — homepage order: TikTok before YouTube */


/* ======================================================================
   v1.0.36 — MOBILE ONLY: cleaner nav, compact search, tighter spacing/footer
   ====================================================================== */
@media (max-width:900px){

  /* 1) Hamburger: keep all 3 lines perfectly centered, then morph to a clean X. */
  .cm108-mobile-toggle{
    position:relative !important;
    display:block !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .cm108-mobile-toggle span{
    position:absolute !important;
    left:50% !important;
    width:18px !important;
    height:2px !important;
    margin:0 !important;
    border-radius:999px !important;
    background:#fff !important;
    transform-origin:center center !important;
    transition:top .22s ease, transform .22s ease, opacity .16s ease !important;
  }
  .cm108-mobile-toggle span:nth-child(1){
    top:12px !important;
    transform:translateX(-50%) !important;
  }
  .cm108-mobile-toggle span:nth-child(2){
    top:18px !important;
    transform:translateX(-50%) !important;
  }
  .cm108-mobile-toggle span:nth-child(3){
    top:24px !important;
    transform:translateX(-50%) !important;
  }
  .cm108-mobile-toggle.is-open span:nth-child(1){
    top:18px !important;
    transform:translateX(-50%) rotate(45deg) !important;
  }
  .cm108-mobile-toggle.is-open span:nth-child(2){
    top:18px !important;
    opacity:0 !important;
    transform:translateX(-50%) scaleX(.2) !important;
  }
  .cm108-mobile-toggle.is-open span:nth-child(3){
    top:18px !important;
    transform:translateX(-50%) rotate(-45deg) !important;
  }

  /* Compact mobile search drawer. */
  .cm108-search-drawer{
    box-shadow:0 8px 18px rgba(6,30,43,.07) !important;
  }
  .cm108-search-drawer.is-open .cm108-search-drawer-inner{
    padding-top:9px !important;
    padding-bottom:10px !important;
  }
  .cm108-search-label{
    display:none !important;
  }
  .cm108-search-form{
    gap:7px !important;
    align-items:center !important;
  }
  .cm108-search-form input[type="search"]{
    min-width:0 !important;
    min-height:40px !important;
    height:40px !important;
    padding:7px 12px !important;
    border-radius:10px !important;
    font-size:14px !important;
  }
  .cm108-search-form .cm108-btn{
    min-height:40px !important;
    height:40px !important;
    padding:6px 13px !important;
    border-radius:10px !important;
    font-size:13px !important;
    font-weight:700 !important;
    white-space:nowrap !important;
  }

  /* 2) Tighten the gap between the mobile nav and Latest News. */
  body.home .cm108-main,
  body.front-page .cm108-main{
    padding-top:5px !important;
  }
  body.home .cm108-latest-slider-section,
  body.front-page .cm108-latest-slider-section{
    margin-top:0 !important;
  }

  /* Keep the first heading visually aligned with the page edge. */
  body.home .cm108-latest-slider-head,
  body.front-page .cm108-latest-slider-head{
    margin-top:0 !important;
    padding-top:0 !important;
  }

  /* 3) Compact contact footer on phones. */
  .cm108-footer{
    margin-top:32px !important;
  }
  .cm108-footer-minimal .cm108-footer-contact-only{
    padding:20px 0 17px !important;
  }
  .cm108-footer-minimal .cm108-footer-title{
    margin:0 0 5px !important;
    font-size:17px !important;
    line-height:1.35 !important;
    font-weight:700 !important;
  }
  .cm108-footer-minimal .cm108-footer-line{
    gap:5px !important;
    font-size:13px !important;
    line-height:1.4 !important;
  }
  .cm108-footer-minimal .cm108-footer-line strong{
    font-weight:700 !important;
  }
  .cm108-footer-minimal .cm108-footer-bottom{
    padding:10px 0 !important;
    font-size:11px !important;
  }
}

@media (max-width:420px){
  .cm108-nav-stage > .cm108-container{
    padding-inline:9px !important;
  }
  .cm108-nav-shell{
    min-height:46px !important;
  }
  .cm108-mobile-toggle,
  .cm108-nav-home,
  .cm108-nav-search{
    width:36px !important;
    height:36px !important;
    flex:0 0 36px !important;
  }
  .cm108-mobile-toggle span:nth-child(1){top:11px !important}
  .cm108-mobile-toggle span:nth-child(2){top:17px !important}
  .cm108-mobile-toggle span:nth-child(3){top:23px !important}
  .cm108-mobile-toggle.is-open span:nth-child(1),
  .cm108-mobile-toggle.is-open span:nth-child(2),
  .cm108-mobile-toggle.is-open span:nth-child(3){top:17px !important}
}


/* v1.0.37 — update visible site tagline */


/* v1.0.38 — update visible site tagline */


/* ======================================================================
   v1.0.39 — MOBILE ONLY: reduce nav → Latest News gap further
   ====================================================================== */
@media (max-width:900px){
  body.home .cm108-main,
  body.front-page .cm108-main{
    padding-top:0 !important;
  }

  body.home .cm108-latest-slider-section,
  body.front-page .cm108-latest-slider-section{
    margin-top:-6px !important;
  }

  body.home .cm108-latest-slider-head,
  body.front-page .cm108-latest-slider-head{
    margin-top:0 !important;
    padding-top:0 !important;
  }
}


/* ======================================================================
   v1.0.40 — HOMEPAGE Chiang Mai section: make card areas more even
   ====================================================================== */
@media (min-width: 1051px){
  body.home .cm108-section-chiangmai .cm108-hero,
  body.front-page .cm108-section-chiangmai .cm108-hero{
    align-items: stretch;
  }

  body.home .cm108-section-chiangmai .cm108-story-card-large,
  body.front-page .cm108-section-chiangmai .cm108-story-card-large{
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  body.home .cm108-section-chiangmai .cm108-story-card-large .cm108-story-card-content,
  body.front-page .cm108-section-chiangmai .cm108-story-card-large .cm108-story-card-content{
    flex: 1 1 auto;
  }

  body.home .cm108-section-chiangmai .cm108-hero-side,
  body.front-page .cm108-section-chiangmai .cm108-hero-side{
    grid-auto-rows: 1fr;
    align-items: stretch;
  }

  body.home .cm108-section-chiangmai .cm108-hero-side .cm108-story-card,
  body.front-page .cm108-section-chiangmai .cm108-hero-side .cm108-story-card{
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  body.home .cm108-section-chiangmai .cm108-hero-side .cm108-story-card-content,
  body.front-page .cm108-section-chiangmai .cm108-hero-side .cm108-story-card-content{
    flex: 1 1 auto;
    display: flex;
    align-items: flex-start;
  }

  body.home .cm108-section-chiangmai .cm108-hero-side .cm108-story-title,
  body.front-page .cm108-section-chiangmai .cm108-hero-side .cm108-story-title{
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}


/* ======================================================================
   v1.0.41 — mobile tagline one-line + tighter single-post top spacing
   ====================================================================== */

/* All devices: reduce the empty area between the main nav and single-post card. */
body.single .cm108-main,
body.single-post .cm108-main{
  padding-top:10px !important;
}

body.single .cm108-single-wrap,
body.single-post .cm108-single-wrap{
  margin-top:0 !important;
}

/* Mobile only: show the full tagline on one line instead of truncating it. */
@media (max-width:560px){
  .cm108-masthead-inner{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .cm108-brand-modern{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .cm108-brand-text{
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:calc(100% - 56px) !important;
  }

  .cm108-brand-modern .cm108-tagline{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin-top:4px !important;
    font-size:clamp(7.5px,2.35vw,9px) !important;
    line-height:1.25 !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    letter-spacing:0 !important;
  }

  /* Phones: bring the article almost directly under the navigation. */
  body.single .cm108-main,
  body.single-post .cm108-main{
    padding-top:4px !important;
  }
}


/* ======================================================================
   v1.0.43 — Chiang Mai cards: date above headline like other sections
   ====================================================================== */
.cm108-section-chiangmai .cm108-story-meta{
  margin-top:0 !important;
  margin-bottom:6px;
}

.cm108-section-chiangmai .cm108-story-title{
  margin-top:0 !important;
}


/* ==========================================================================
   v1.1.0 — special publishing tools
   ========================================================================== */
.cm108-news-summary{
  margin:0 0 26px;
  padding:15px 17px;
  border-left:5px solid #0ea5e9;
  border-radius:10px;
  background:#f0f9ff;
  color:#222;
  font-size:16px;
  line-height:1.8;
}
.cm108-news-summary-title{
  margin-bottom:10px;
  color:#0f3b57;
  font-weight:700;
}
.cm108-news-summary ul{
  margin:0;
  padding:0;
  list-style:none;
}
.cm108-news-summary li{
  position:relative;
  margin:0 0 9px;
  padding-left:25px;
}
.cm108-news-summary li:last-child{
  margin-bottom:0;
}
.cm108-news-summary li::before{
  content:"•";
  position:absolute;
  left:2px;
  top:0;
  color:#111827;
  font-weight:700;
}
.cm108-entry-content .cm108-video-embed{
  margin:24px 0;
}
.cm108-video-embed iframe{
  display:block;
  width:100%;
  border:0;
}
.cm108-video-youtube iframe{
  aspect-ratio:16 / 9;
  height:auto;
  border-radius:14px;
}
.cm108-video-tiktok{
  max-width:520px;
  margin-left:auto !important;
  margin-right:auto !important;
}
.cm108-video-tiktok iframe{
  aspect-ratio:9 / 16;
  min-height:620px;
  border-radius:14px;
}

@media (max-width:560px){
  .cm108-news-summary{
    margin-bottom:20px;
    padding:13px 14px;
    font-size:15px;
    line-height:1.75;
  }
  .cm108-video-tiktok iframe{
    min-height:560px;
  }
}


/* v1.1.1 — summary input accepts bullet text and legacy HTML automatically */


/* v1.1.2 — configurable image optimization targets in Settings > Media */


/* v1.1.3 — delayed listing visibility options */


/* v1.1.4 — per-upload image size selector in WordPress media uploader */


/* v1.1.5 — Tag suggestions require explicit editor selection */


/* v1.1.6 — enforce upload target better by converting large PNG/JPEG to WebP */


/* ======================================================================
   v1.1.7 — MOBILE ONLY: larger site title + tagline without overflow
   ====================================================================== */
@media (max-width:560px){
  .cm108-brand-modern{
    width:100% !important;
    max-width:100% !important;
    gap:10px !important;
  }

  .cm108-brand-logo-badge{
    flex:0 0 54px !important;
    width:54px !important;
    height:54px !important;
  }

  .cm108-brand-logo-badge img{
    width:54px !important;
    height:54px !important;
  }

  .cm108-brand-text{
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:calc(100% - 64px) !important;
  }

  .cm108-brand-modern .cm108-site-title{
    font-size:clamp(31px,8.2vw,38px) !important;
    line-height:1.02 !important;
    letter-spacing:-1.15px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:clip !important;
  }

  .cm108-brand-modern .cm108-site-title-thai{
    white-space:nowrap !important;
  }

  .cm108-brand-modern .cm108-tagline{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin-top:5px !important;
    font-size:clamp(8.8px,2.55vw,10.5px) !important;
    line-height:1.2 !important;
    letter-spacing:-.05px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:clip !important;
  }
}

@media (max-width:390px){
  .cm108-brand-logo-badge,
  .cm108-brand-logo-badge img{
    width:50px !important;
    height:50px !important;
    flex-basis:50px !important;
  }

  .cm108-brand-text{
    max-width:calc(100% - 58px) !important;
  }

  .cm108-brand-modern .cm108-site-title{
    font-size:clamp(29px,7.9vw,34px) !important;
    letter-spacing:-1px !important;
  }

  .cm108-brand-modern .cm108-tagline{
    font-size:clamp(8.2px,2.35vw,9.5px) !important;
  }
}


/* ======================================================================
   v1.1.8 — MOBILE ONLY: TikTok cards fit the phone viewport correctly
   ====================================================================== */
@media (max-width:560px){

  /* TikTok's vertical player needs more width than a 2-column phone card.
     Use one full-width card per row on phones. */
  .cm108-section-tiktok .cm108-cat-grid-home{
    grid-template-columns:minmax(0,1fr) !important;
    gap:16px !important;
  }

  .cm108-section-tiktok .cm108-cat-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  .cm108-section-tiktok .cm108-card-video,
  .cm108-section-tiktok .cm108-card-media{
    width:100% !important;
    min-width:0 !important;
    aspect-ratio:9 / 16 !important;
    overflow:hidden !important;
  }

  .cm108-section-tiktok .cm108-card-video .cm108-video-embed,
  .cm108-section-tiktok .cm108-card-video iframe,
  .cm108-section-tiktok .cm108-card-media iframe{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:100% !important;
    min-height:0 !important;
    aspect-ratio:9 / 16 !important;
    margin:0 !important;
    border:0 !important;
  }

  .cm108-section-tiktok .cm108-card-body{
    padding:13px 14px 15px !important;
  }

  .cm108-section-tiktok .cm108-card-title{
    margin-top:6px !important;
    font-size:16px !important;
    line-height:1.5 !important;
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}


/* ======================================================================
   v1.1.9 — MOBILE ONLY: prevent Thai tone/vowel marks being clipped
   ====================================================================== */
@media (max-width:560px){
  .cm108-brand-modern .cm108-tagline{
    font-size:clamp(8.6px,2.45vw,10.2px) !important;
    line-height:1.55 !important;
    padding-top:2px !important;
    padding-bottom:1px !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .cm108-brand-text{
    overflow:visible !important;
  }
}

@media (max-width:390px){
  .cm108-brand-modern .cm108-tagline{
    font-size:clamp(8.1px,2.3vw,9.3px) !important;
    line-height:1.55 !important;
  }
}


/* ======================================================================
   v1.1.10 — MOBILE media sections
   TikTok: 2 compact cards side-by-side, max 5, horizontal swipe
   YouTube: max 2 cards on phones
   ====================================================================== */

/* Desktop/tablet keeps the previous TikTok amount/layout (4 visible). */
@media (min-width:761px){
  .cm108-section-tiktok .cm108-cat-card:nth-child(n+5){
    display:none !important;
  }
}

@media (max-width:760px){

  /* TikTok: override the generic mobile "max 4" rule and expose up to 5. */
  .cm108-section-tiktok .cm108-cat-card:nth-child(-n+5){
    display:block !important;
  }
  .cm108-section-tiktok .cm108-cat-card:nth-child(n+6){
    display:none !important;
  }

  /* Two cards are visible at once. Swipe horizontally for cards 3–5. */
  .cm108-section-tiktok .cm108-cat-grid-home{
    --cm108-tiktok-gap:12px;
    display:grid !important;
    grid-template-columns:none !important;
    grid-auto-flow:column !important;
    grid-auto-columns:calc((100% - var(--cm108-tiktok-gap)) / 2) !important;
    gap:var(--cm108-tiktok-gap) !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:0;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:2px 0 8px !important;
  }

  .cm108-section-tiktok .cm108-cat-grid-home::-webkit-scrollbar{
    display:none;
  }

  .cm108-section-tiktok .cm108-cat-card{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    scroll-snap-align:start;
    border-radius:15px !important;
    overflow:hidden !important;
  }

  .cm108-section-tiktok .cm108-card-video,
  .cm108-section-tiktok .cm108-card-media{
    width:100% !important;
    min-width:0 !important;
    aspect-ratio:9 / 16 !important;
    overflow:hidden !important;
  }

  .cm108-section-tiktok .cm108-card-video .cm108-video-embed,
  .cm108-section-tiktok .cm108-card-video iframe,
  .cm108-section-tiktok .cm108-card-media iframe{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:100% !important;
    min-height:0 !important;
    aspect-ratio:9 / 16 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
  }

  .cm108-section-tiktok .cm108-card-body{
    padding:9px 10px 11px !important;
  }

  .cm108-section-tiktok .cm108-card-meta{
    font-size:10.5px !important;
    line-height:1.35 !important;
  }

  .cm108-section-tiktok .cm108-card-title{
    margin:5px 0 0 !important;
    font-size:14px !important;
    line-height:1.45 !important;
    font-weight:700 !important;
    display:-webkit-box !important;
    -webkit-line-clamp:3 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
  }

  /* YouTube: on phones/tablets show only the first 2 cards. */
  .cm108-section-youtube .cm108-cat-card:nth-child(n+3){
    display:none !important;
  }
}

@media (max-width:390px){
  .cm108-section-tiktok .cm108-cat-grid-home{
    --cm108-tiktok-gap:10px;
  }

  .cm108-section-tiktok .cm108-card-body{
    padding:8px 9px 10px !important;
  }

  .cm108-section-tiktok .cm108-card-title{
    font-size:13.5px !important;
  }
}


/* ======================================================================
   v1.1.11 — MOBILE ONLY: slightly larger tagline, still one line
   ====================================================================== */
@media (max-width:560px){
  .cm108-brand-text,
  .cm108-brand-modern,
  .cm108-masthead-inner{
    overflow:visible !important;
  }

  .cm108-brand-modern .cm108-tagline{
    width:100% !important;
    max-width:100% !important;
    margin-top:4px !important;
    padding:3px 0 2px !important;
    font-size:clamp(9.2px,2.62vw,10.9px) !important;
    line-height:1.6 !important;
    letter-spacing:-.14px !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
}

/* Smaller phones scale down just enough to keep the whole sentence on one line. */
@media (max-width:390px){
  .cm108-brand-modern .cm108-tagline{
    font-size:clamp(8.9px,2.5vw,9.7px) !important;
    letter-spacing:-.16px !important;
  }
}

@media (max-width:350px){
  .cm108-brand-modern .cm108-tagline{
    font-size:8.7px !important;
    letter-spacing:-.18px !important;
  }
}


/* ======================================================================
   v1.1.12 — MOBILE ONLY: show social channel icons in the masthead
   ====================================================================== */
@media (max-width:560px){
  .cm108-masthead-inner{
    flex-wrap:wrap !important;
    row-gap:7px !important;
  }

  .cm108-brand-modern{
    flex:1 1 100% !important;
    width:100% !important;
  }

  /* Re-enable the same Facebook / YouTube / TikTok / X icons on phones. */
  .cm108-social-links{
    display:flex !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    gap:7px !important;
    justify-content:flex-end !important;
    align-items:center !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .cm108-social-icon{
    width:30px !important;
    height:30px !important;
    flex:0 0 30px !important;
    border-radius:50% !important;
    padding:0 !important;
    box-shadow:0 4px 12px rgba(0,0,0,.16) !important;
  }

  .cm108-social-icon svg{
    width:100% !important;
    height:100% !important;
    display:block !important;
  }

  .cm108-masthead-inner{
    padding-bottom:9px !important;
  }
}

@media (max-width:360px){
  .cm108-social-links{
    gap:6px !important;
  }

  .cm108-social-icon{
    width:28px !important;
    height:28px !important;
    flex-basis:28px !important;
  }
}


/* ======================================================================
   v1.1.13 — TikTok category archive uses vertical cover/cards
   User request: on the full TikTok category page, the cover should be
   portrait/vertical unlike other categories.
   ====================================================================== */
body.category-tiktok .cm108-list-item{
  grid-template-columns:minmax(240px, 280px) minmax(0,1fr) !important;
  align-items:stretch !important;
}

body.category-tiktok .cm108-list-media,
body.category-tiktok .cm108-list-video{
  aspect-ratio:9 / 16 !important;
  width:100% !important;
  min-height:0 !important;
  align-self:stretch !important;
  background:#e8edf0 !important;
}

body.category-tiktok .cm108-list-media img,
body.category-tiktok .cm108-list-video iframe,
body.category-tiktok .cm108-list-video .cm108-video-embed{
  width:100% !important;
  height:100% !important;
}

body.category-tiktok .cm108-list-media img{
  object-fit:cover !important;
  object-position:center top !important;
}

body.category-tiktok .cm108-list-content{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  padding:22px 24px !important;
}

body.category-tiktok .cm108-list-title{
  margin-top:0 !important;
}

/* Tablet: keep the portrait cover, just make it slightly narrower. */
@media (max-width: 960px){
  body.category-tiktok .cm108-list-item{
    grid-template-columns:minmax(180px, 220px) minmax(0,1fr) !important;
  }
  body.category-tiktok .cm108-list-content{
    padding:16px 18px !important;
  }
}

/* Phone: portrait cover remains portrait, but the whole card stacks neatly. */
@media (max-width: 560px){
  body.category-tiktok .cm108-list-item{
    grid-template-columns:1fr !important;
  }

  body.category-tiktok .cm108-list-media,
  body.category-tiktok .cm108-list-video{
    width:min(100%, 260px) !important;
    margin:0 auto !important;
    aspect-ratio:9 / 16 !important;
  }

  body.category-tiktok .cm108-list-content{
    padding:14px 14px 16px !important;
  }
}


/* ======================================================================
   v1.1.14 — Header alignment refinements
   Mobile: center logo/name/tagline/socials as one balanced group
   Desktop: move the brand group slightly downward for better vertical centering
   ====================================================================== */

/* Desktop only: the brand sat a little too close to the top of the masthead. */
@media (min-width:901px){
  .cm108-brand-modern{
    position:relative;
    top:7px;
  }
}

/* Mobile only: center the whole identity block and social channels. */
@media (max-width:560px){
  .cm108-masthead-inner{
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
  }

  .cm108-brand-modern{
    width:100% !important;
    max-width:100% !important;
    margin-inline:auto !important;
    justify-content:center !important;
    align-items:center !important;
    text-align:center !important;
  }

  .cm108-brand-text{
    flex:0 1 auto !important;
    min-width:0 !important;
    max-width:calc(100% - 64px) !important;
    align-items:center !important;
    text-align:center !important;
  }

  .cm108-brand-modern .cm108-site-title,
  .cm108-brand-modern .cm108-tagline{
    text-align:center !important;
  }

  .cm108-social-links{
    justify-content:center !important;
    align-items:center !important;
    margin-inline:auto !important;
  }
}

/* Very small phones: preserve center alignment while keeping everything inside. */
@media (max-width:390px){
  .cm108-brand-text{
    max-width:calc(100% - 58px) !important;
  }
}


/* ======================================================================
   v1.1.15 — Mobile socials in nav + reliable vertical TikTok archive
   ====================================================================== */

/* Mobile-nav social group is hidden on desktop. */
.cm108-nav-social-links{
  display:none;
}

/* TikTok full category page: vertical cover/player, regardless of actual slug. */
.cm108-archive-tiktok .cm108-list-item.cm108-list-item-tiktok{
  grid-template-columns:minmax(240px,280px) minmax(0,1fr) !important;
  align-items:stretch !important;
}

.cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-media,
.cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-video{
  width:100% !important;
  aspect-ratio:9 / 16 !important;
  min-height:0 !important;
  align-self:stretch !important;
  overflow:hidden !important;
  background:#e8edf0 !important;
}

.cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center top !important;
}

.cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-video .cm108-video-embed,
.cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-video iframe{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  aspect-ratio:9 / 16 !important;
  margin:0 !important;
  border:0 !important;
}

.cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-content{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  padding:22px 24px !important;
}

/* Tablet. */
@media (max-width:960px){
  .cm108-archive-tiktok .cm108-list-item.cm108-list-item-tiktok{
    grid-template-columns:minmax(180px,220px) minmax(0,1fr) !important;
  }
}

/* Mobile. */
@media (max-width:560px){

  /* Socials leave the masthead and live inside the navigation row. */
  .cm108-masthead .cm108-social-links{
    display:none !important;
  }

  .cm108-nav-social-links{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    margin:0 4px !important;
  }

  .cm108-nav-social-icon{
    display:block !important;
    width:28px !important;
    height:28px !important;
    flex:0 0 28px !important;
    border-radius:50% !important;
    overflow:hidden !important;
    box-shadow:0 3px 9px rgba(0,0,0,.14) !important;
  }

  .cm108-nav-social-icon svg{
    display:block !important;
    width:100% !important;
    height:100% !important;
  }

  .cm108-nav-shell{
    gap:5px !important;
  }

  .cm108-archive-tiktok .cm108-list-item.cm108-list-item-tiktok{
    grid-template-columns:1fr !important;
  }

  .cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-media,
  .cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-video{
    width:min(100%,280px) !important;
    margin:0 auto !important;
    aspect-ratio:9 / 16 !important;
  }

  .cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-content{
    padding:14px 14px 16px !important;
  }
}

@media (max-width:380px){
  .cm108-nav-social-links{
    gap:4px !important;
    margin-inline:2px !important;
  }

  .cm108-nav-social-icon{
    width:25px !important;
    height:25px !important;
    flex-basis:25px !important;
  }
}


/* ======================================================================
   v1.1.16 — MOBILE ONLY: social icons visually integrated into nav bar
   ====================================================================== */
@media (max-width:560px){
  .cm108-nav-social-links{
    display:flex !important;
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    align-items:center !important;
    justify-content:center !important;
    gap:2px !important;
    margin:0 auto !important;
    padding:3px 5px !important;
    border:1px solid rgba(255,255,255,.08) !important;
    border-radius:11px !important;
    background:rgba(255,255,255,.045) !important;
    box-shadow:none !important;
  }

  .cm108-nav-social-icon{
    display:grid !important;
    place-items:center !important;
    width:29px !important;
    height:29px !important;
    flex:0 0 29px !important;
    padding:5px !important;
    border-radius:8px !important;
    overflow:visible !important;
    color:rgba(255,255,255,.78) !important;
    background:transparent !important;
    box-shadow:none !important;
    transition:background .18s ease,color .18s ease,transform .18s ease !important;
  }

  .cm108-nav-social-icon:hover,
  .cm108-nav-social-icon:focus-visible,
  .cm108-nav-social-icon:active{
    color:#fff !important;
    background:rgba(255,255,255,.09) !important;
    transform:translateY(-1px);
  }

  .cm108-nav-social-icon svg{
    display:block !important;
    width:18px !important;
    height:18px !important;
  }

  /* Give the utility buttons visual priority over the social shortcuts. */
  .cm108-mobile-toggle,
  .cm108-nav-home,
  .cm108-nav-search{
    position:relative;
    z-index:2;
  }
}

@media (max-width:390px){
  .cm108-nav-social-links{
    gap:0 !important;
    padding:3px 4px !important;
  }

  .cm108-nav-social-icon{
    width:26px !important;
    height:26px !important;
    flex-basis:26px !important;
    padding:4px !important;
  }

  .cm108-nav-social-icon svg{
    width:17px !important;
    height:17px !important;
  }
}

@media (max-width:350px){
  .cm108-nav-social-icon{
    width:24px !important;
    height:24px !important;
    flex-basis:24px !important;
  }

  .cm108-nav-social-icon svg{
    width:15px !important;
    height:15px !important;
  }
}


/* v1.1.17 — Latest News autoplay resumes after manual swipe/drag */


/* v1.2.0 — production-ready safety/performance release */


/* ======================================================================
   v1.2.1 — mobile category headline width + clip menu labels/order
   ====================================================================== */
@media (max-width:560px){

  /* Let category headlines use more of the white card width. */
  body.category .cm108-list-content{
    width:100% !important;
    padding:12px 10px 15px !important;
  }

  body.category .cm108-list-title{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    hyphens:none !important;
    line-break:auto !important;
    text-wrap:wrap !important;
  }

  body.category .cm108-list-title a{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  /* TikTok archive uses the same wider text area below the vertical cover. */
  .cm108-archive-tiktok .cm108-list-item-tiktok .cm108-list-content{
    padding:12px 10px 15px !important;
  }
}


/* v1.2.2 — space-saving image optimization: do not retain originals */


/* v1.2.3 — reorder social icons: Facebook / TikTok / YouTube / X */


/* ======================================================================
   v1.2.4 — add Instagram social channel
   Social order: Facebook / Instagram / TikTok / YouTube / X
   ====================================================================== */
@media (max-width:390px){
  .cm108-nav-social-links{
    gap:0 !important;
    padding-inline:3px !important;
  }
  .cm108-nav-social-icon{
    width:25px !important;
    height:25px !important;
    flex-basis:25px !important;
  }
}


/* v1.2.5 — reorder social icons: Facebook / TikTok / YouTube / X / Instagram */


/* v1.2.6 — production compatibility: PHP minimum adjusted to 7.3 for current Plesk server */
