/* clockthyme — หน้าเว็บแนะนำระบบ
   ใช้ร่วมกันทั้งหน้าไทย (/) และหน้าอังกฤษ (/en/) แก้ที่นี่ที่เดียว */
/* ── ธีมกลางอยู่ที่ /brand/theme.css ─────────────────────────────────────
   สี ฟอนต์ ความมน วงแหวนโฟกัส และโลโก้ lockup ทั้งหมดอยู่ในไฟล์นั้น หน้าเว็บนี้
   ลิงก์ theme.css ก่อน site.css แล้วไฟล์นี้เหลือแต่เลย์เอาต์ของหน้าแนะนำระบบ
   อย่าประกาศค่าสีซ้ำที่นี่ — หน้าแอปใช้ค่าชุดเดียวกัน ถ้าแยกกันเมื่อไหร่ก็เพี้ยนกัน */
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--font-sans);
  font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
img,svg{max-width:100%}
h1,h2,h3{line-height:1.25;letter-spacing:-.015em;margin:0}
p{margin:0}
a{color:var(--brand)}

.skip{position:absolute;left:-9999px;top:0;background:var(--btn-bg);color:var(--btn-ink);
  padding:12px 18px;border-radius:0 0 10px 0;z-index:99}
.skip:focus{left:0}

.wrap{width:min(1220px,100% - 48px);margin-inline:auto}
@media (max-width:600px){.wrap{width:min(1220px,100% - 32px)}}
section{padding:clamp(56px,8vw,104px) 0}
section.tinted{background:var(--alt);border-block:1px solid var(--line)}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--brand);margin-bottom:12px}
h2{font-size:clamp(25px,3.2vw,35px);text-wrap:balance}
.lede{color:var(--ink-2);font-size:clamp(16px,1.6vw,18.5px);max-width:62ch;margin-top:14px}
.head{margin-bottom:clamp(30px,4vw,48px)}

/* ── header ──────────────────────────────────────────────────────────── */
header.site{position:sticky;top:0;z-index:40;background:var(--ground);
  background:color-mix(in srgb,var(--ground) 88%,transparent);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:22px;min-height:66px}
header.site nav{display:flex;gap:4px;margin-left:auto}
header.site nav a{padding:9px 13px;border-radius:9px;text-decoration:none;color:var(--ink-2);
  font-size:15.5px;transition:background .15s,color .15s}
header.site nav a:hover{background:var(--tint);color:var(--brand)}
@media (max-width:860px){header.site nav{display:none}}
header.site .lang{margin-left:6px}
header.site .cta{margin-left:6px}
@media (max-width:860px){header.site .lang{margin-left:auto}}

/* ── language switch ─────────────────────────────────────────────────── */
.lang{display:inline-flex;flex:none;border:1px solid var(--edge);border-radius:9px;overflow:hidden}
.lang a{padding:7px 11px;font-size:14px;font-weight:600;line-height:1.35;
  text-decoration:none;color:var(--ink-2);transition:background .15s,color .15s}
.lang a+a{border-left:1px solid var(--edge)}
.lang a:hover{background:var(--tint);color:var(--brand)}
.lang a[aria-current="page"]{background:var(--btn-bg);color:var(--btn-ink)}

/* The header carries logo + switch + button on a phone. Shrink the parts
   rather than dropping one — all three are the reason someone taps here. */
@media (max-width:520px){
  header.site .wrap{gap:10px}
  .lockup{gap:8px}
  .lockup svg{width:30px;height:30px}
  .lockup .word{font-size:19px}
  .lang a{padding:7px 9px;font-size:13.5px}
  header.site .cta{padding:8px 12px;font-size:14.5px}
}
@media (max-width:440px){.lockup .word .tld{display:none}}
/* Under ~400px the word, the switch and the button stop fitting together.
   The mark alone still says whose site this is; the other two are taps. */
@media (max-width:400px){.lockup .word{display:none}}

/* ── buttons ─────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;
  min-height:46px;padding:11px 22px;border-radius:var(--r-btn);text-decoration:none;
  font-weight:600;font-size:16px;border:1px solid transparent;cursor:pointer;
  transition:transform .12s ease,box-shadow .15s ease,background .15s}
.btn.pri{background:var(--btn-bg);color:var(--btn-ink);box-shadow:0 6px 16px -8px rgba(28,53,151,.7)}
.btn.pri:hover{background:var(--navy-deep);transform:translateY(-1px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.pri:hover{background:#6fc3ec}}
.btn.sec{background:var(--surface);color:var(--ink);border-color:var(--edge)}
.btn.sec:hover{border-color:var(--brand);color:var(--brand)}
.btn.sm{min-height:40px;padding:8px 16px;font-size:15px}

/* ── hero ────────────────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding-top:clamp(44px,6vw,80px)}
.hero::before{content:"";position:absolute;inset:-30% -10% auto -10%;height:120%;
  background:radial-gradient(50% 50% at 8% 0%,var(--tint),transparent 72%);
  background:radial-gradient(60% 55% at 72% 18%,color-mix(in srgb,var(--cyan) 22%,transparent),transparent 70%),
             radial-gradient(50% 50% at 8% 0%,var(--tint),transparent 72%);
  pointer-events:none;z-index:-1}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(32px,5vw,64px);align-items:center}
@media (max-width:920px){.hero .wrap{grid-template-columns:1fr}}
.hero h1{font-size:clamp(31px,4.3vw,46px);letter-spacing:-.03em;text-wrap:balance}
.hero h1 .hl{color:var(--brand)}
.hero .lede{margin-top:20px;font-size:clamp(17px,1.8vw,20px)}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero .under{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:24px;color:var(--ink-3);font-size:14.5px}
.hero .under span{display:inline-flex;align-items:center;gap:7px}
.hero .under svg{width:16px;height:16px;color:var(--cyan-deep);flex:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero .under svg{color:var(--cyan)}}

/* product mock — decoration only, aria-hidden */
.mock{background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow);overflow:hidden;position:relative}
.mock .bar{display:flex;align-items:center;gap:10px;padding:12px 16px;
  background:var(--alt);border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink-3)}
.mock .bar .clock{margin-left:auto;font-size:19px;font-weight:600;color:var(--ink)}
.mock .tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}
.tile{border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:var(--ground)}
.tile .nm{font-weight:600;font-size:15px;display:flex;align-items:center;gap:9px}
.tile .av{width:28px;height:28px;border-radius:50%;background:var(--tint);color:var(--brand);
  display:grid;place-items:center;font-size:12.5px;font-weight:700;flex:none}
.tile .st{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-3);margin-top:9px}
.tile .dot{width:9px;height:9px;border-radius:50%;background:var(--line-2);flex:none}
.tile.on{border-color:var(--cyan)}
.tile.on .dot{background:var(--cyan-deep)}
.tile.on .st{color:var(--brand)}
.tile.brk .dot{background:#d79a3c}
.mock .foot{border-top:1px solid var(--line);padding:13px 16px;display:flex;
  align-items:center;gap:12px;font-size:14px;color:var(--ink-2);background:var(--alt)}
.mock .foot b{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:17px;color:var(--ink)}
.float{position:absolute;right:-14px;bottom:0;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow);padding:13px 16px;font-size:13.5px;color:var(--ink-2);
  max-width:230px}
.float .v{font-family:"IBM Plex Mono",monospace;font-size:21px;font-weight:600;color:var(--ink);
  display:block;margin-top:2px}
@media (max-width:920px){.float{display:none}}
.mockwrap{position:relative;padding-bottom:78px}

/* ── stat strip ──────────────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:16px;overflow:hidden}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}}
.stats div{background:var(--surface);padding:22px 20px}
.stats .k{font-size:clamp(20px,2.4vw,27px);font-weight:700;color:var(--brand);letter-spacing:-.02em;line-height:1.1}
.stats .d{font-size:14.5px;color:var(--ink-2);margin-top:4px;line-height:1.55}

/* ── feature cards ───────────────────────────────────────────────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;
  transition:border-color .15s,transform .15s,box-shadow .15s}
.card:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--shadow)}
.card .ico{width:42px;height:42px;border-radius:11px;background:var(--tint);color:var(--brand);
  display:grid;place-items:center;margin-bottom:15px}
.card .ico svg{width:22px;height:22px}
.card h3{font-size:17.5px;margin-bottom:7px}
.card p{color:var(--ink-2);font-size:15.5px;line-height:1.7}

/* ── steps ───────────────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
@media (max-width:820px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding-top:18px;border-top:2px solid var(--line)}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:-17px;left:0;
  width:32px;height:32px;border-radius:50%;background:var(--btn-bg);color:var(--btn-ink);
  display:grid;place-items:center;font-size:15px;font-weight:700;
  font-family:"IBM Plex Mono",monospace}
.step h3{font-size:18px;margin:22px 0 7px}
.step p{color:var(--ink-2);font-size:15.5px}

/* ── faq ─────────────────────────────────────────────────────────────── */
/* Two columns on a wide screen: a single 820px stack left half the section
   empty and the page read lopsided. The heading sticks while the list scrolls. */
#faq .wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(28px,5vw,72px);align-items:start}
#faq .head{margin-bottom:0;position:sticky;top:90px}
@media (max-width:900px){
  #faq .wrap{grid-template-columns:1fr;gap:0}
  #faq .head{position:static;margin-bottom:clamp(30px,4vw,48px)}
}
details{border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:10px}
details[open]{border-color:var(--line-2)}
summary{cursor:pointer;padding:17px 20px;font-weight:600;font-size:16.5px;
  display:flex;align-items:center;gap:12px;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"";margin-left:auto;width:9px;height:9px;flex:none;
  border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);
  transform:rotate(45deg) translateY(-2px);transition:transform .18s}
details[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
details .body{padding:0 20px 19px;color:var(--ink-2);font-size:15.5px}

/* ── sign-in ─────────────────────────────────────────────────────────── */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:820px){.doors{grid-template-columns:1fr}}
.door{display:block;text-decoration:none;color:inherit;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;padding:24px;
  transition:border-color .15s,transform .15s,box-shadow .15s}
.door:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow)}
.door .ico{width:42px;height:42px;border-radius:11px;background:var(--tint);color:var(--brand);
  display:grid;place-items:center;margin-bottom:15px}
.door .ico svg{width:22px;height:22px}
.door h3{font-size:17.5px;margin-bottom:6px}
.door p{color:var(--ink-2);font-size:15px}
.door .go{display:inline-flex;align-items:center;gap:7px;margin-top:13px;
  color:var(--brand);font-weight:600;font-size:15px}

/* ── cta band ────────────────────────────────────────────────────────── */
.band{background:var(--navy);color:#fff;border-radius:20px;padding:clamp(32px,5vw,52px);
  display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.band h2{color:#fff}
.band p{color:#cdd8ee;margin-top:10px;max-width:56ch}
.band .btn{margin-left:auto;background:#fff;color:var(--navy)}
.band .btn:hover{background:var(--tint)}
@media (max-width:760px){.band .btn{margin-left:0}}

/* ── footer ──────────────────────────────────────────────────────────── */
footer.site{border-top:1px solid var(--line);background:var(--alt);padding:44px 0 56px;
  font-size:15px;color:var(--ink-2)}
footer.site .cols{display:flex;gap:40px;flex-wrap:wrap;justify-content:space-between}
footer.site nav{display:flex;gap:28px;flex-wrap:wrap}
footer.site a{color:var(--ink-2);text-decoration:none}
footer.site a:hover{color:var(--brand);text-decoration:underline}
footer.site .fine{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);
  color:var(--ink-3);font-size:13.5px;line-height:1.7;max-width:80ch}
