/* Skytrain Doctors — directory + profile.
   Design ported from Claude Design "Skytrain Team Redesign.dc.html".
   Everything is prefixed .skdoc-* / scoped under .skdoc so nothing leaks into the theme. */
/* tokens live on every top-level block. The booking modal renders as a sibling of .skdoc
   (outside it), so it must carry the tokens too or var()s fall back to invalid → text goes blue. */
.skdoc,.skdoc-single,.skdoc-book-modal{
  --sk-teal:#0E8FB0;--sk-teal-d:#0B7591;--sk-ink:#16323A;--sk-muted:#5F7580;--sk-muted2:#7A8E97;
  --sk-ph:#90A4AC;--sk-line:#E3EAEC;--sk-bg:#F4F7F8;--sk-field:#FAFCFC;--sk-photo:#EDF3F4;
  font-family:'IBM Plex Sans Thai','Noto Sans Thai',sans-serif;color:var(--sk-ink);
}
.skdoc,.skdoc-single{max-width:1200px;margin:0 auto;padding:8px 0 40px;-webkit-font-smoothing:antialiased}
.skdoc *,.skdoc-single *,.skdoc-book-modal *{box-sizing:border-box}
/* force our font over the theme's (Dent-All applies Prompt with high specificity) */
.skdoc,.skdoc *,.skdoc-single,.skdoc-single *,.skdoc-book-modal,.skdoc-book-modal *{font-family:'IBM Plex Sans Thai','Noto Sans Thai',Tahoma,sans-serif!important}
/* hide the theme's page-title bar + breadcrumb on directory pages */
.skdoc-page .title_box{display:none!important}
/* kill empty <p>/<code> that wpautop/Markdown injects around the shortcode */
.skdoc-page .wpb_text_column>p:empty,
.skdoc-page .wpb_text_column>code:empty,
.skdoc-page .wpb_text_column>p:has(>code:only-child),
.skdoc-page .wpb_text_column>p:has(+.skdoc){display:none!important;margin:0!important}
/* a Markdown filter wraps our markup in <code> (Bootstrap paints it pink + monospace);
   display:contents removes the box so children behave as direct children again */
.skdoc code,.skdoc-modal code{display:contents!important;color:inherit!important;font-size:inherit!important;font-weight:inherit!important;background:none!important}

/* ---------- page header ---------- */
.skdoc-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.skdoc-hd-l{max-width:620px}
.skdoc-eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sk-teal);margin-bottom:10px}
.skdoc-hd h1,.skdoc-hd h2{font-size:40px;line-height:1.15;font-weight:700;margin:0 0 12px;letter-spacing:-.01em;color:var(--sk-ink)}
.skdoc-lead{font-size:16px;line-height:1.6;color:var(--sk-muted);margin:0}
.skdoc-stats{display:flex;gap:12px}
.skdoc-stat{text-align:center;background:#fff;border:1px solid var(--sk-line);border-radius:14px;padding:16px 22px;min-width:96px}
.skdoc-stat b{display:block;font-size:28px;font-weight:700;color:var(--sk-teal);line-height:1}
.skdoc-stat span{display:block;font-size:13px;color:var(--sk-muted);margin-top:6px}

/* ---------- filter toolbar ---------- */
.skdoc-toolbar{background:#fff;border:1px solid var(--sk-line);border-radius:18px;margin-bottom:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,50,58,.04)}

/* two-step filter: pick a branch, then narrow by specialty */
.skdoc-sec{padding:18px 20px}
.skdoc-sec2{border-top:1px solid var(--sk-line);background:var(--sk-bg);transition:background .2s,opacity .2s}
.skdoc-sec2.is-locked{opacity:.55}
.skdoc-sechead{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}
.skdoc-sechead b{font-size:14.5px;font-weight:600;color:var(--sk-ink)}
.skdoc-sechint{font-size:13px;color:var(--sk-muted2)}
.skdoc-step{flex:none;width:22px;height:22px;border-radius:50%;background:var(--sk-teal);color:#fff;
  font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background .2s}
.skdoc-sec2.is-locked .skdoc-step{background:var(--sk-ph)}
/* step 1 reads as done once a branch is chosen */
.skdoc-sec1.is-done .skdoc-step{font-size:0}
.skdoc-sec1.is-done .skdoc-step:after{content:"✓";font-size:12.5px}

.skdoc-row{display:flex;gap:12px;flex-wrap:wrap}
.skdoc-searchwrap{position:relative;flex:1 1 260px}
.skdoc-searchwrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none}
.skdoc-search{width:100%;height:48px;border:1px solid var(--sk-line);border-radius:12px;padding:0 16px 0 42px;font-size:15px;color:var(--sk-ink);background:var(--sk-field);outline:none}
.skdoc-search:focus{border-color:var(--sk-teal);background:#fff}
.skdoc-search::placeholder{color:var(--sk-ph)}
/* branch is the base filter, so it leads the row and turns teal once set */
.skdoc-branchwrap{position:relative;flex:1 1 300px}
.skdoc-pin{position:absolute;left:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--sk-ph);z-index:1}
.skdoc-branchwrap.is-set .skdoc-pin{color:var(--sk-teal)}
.skdoc-branch{width:100%;height:52px;border:1.5px solid var(--sk-line);border-radius:12px;padding:0 40px 0 44px;
  font-size:15px;font-weight:500;color:var(--sk-ph);
  background:var(--sk-field) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235F7580' stroke-width='2' stroke-linecap='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 14px center;
  appearance:none;-webkit-appearance:none;outline:none;cursor:pointer;transition:border-color .2s,color .2s}
.skdoc-branch:focus{border-color:var(--sk-teal);background-color:#fff}
.skdoc-branchwrap.is-set .skdoc-branch{border-color:var(--sk-teal);color:var(--sk-ink);font-weight:600;background-color:#fff}
/* Backstop for themes that run Select2 on every <select>: hide its widget and undo the
   1px-clipped styling it puts on the real control, in case our JS undo loses the race. */
.skdoc .select2-container{display:none!important}
.skdoc select.skdoc-branch{position:static!important;clip:auto!important;clip-path:none!important;
  width:100%!important;height:52px!important;margin:0!important;overflow:visible!important;display:block!important}
.skdoc-chips{display:flex;gap:8px;flex-wrap:wrap}
.skdoc-chip[disabled]{cursor:not-allowed;filter:grayscale(1)}
.skdoc-chip:not([disabled]){background:#fff}
.skdoc-chip{font-size:14px;font-weight:600;padding:8px 16px;border-radius:999px;cursor:pointer;transition:all .15s;
  background:var(--sk-bg);color:var(--sk-muted);border:1px solid var(--sk-line)}
.skdoc-chip:hover{border-color:#CFE0E4}
.skdoc-chip.is-active{background:var(--sk-teal);color:#fff;border-color:var(--sk-teal)}
.skdoc-chip-n{margin-left:7px;font-size:12px;font-weight:600;opacity:.75}
.skdoc-chip.is-active .skdoc-chip-n{opacity:.9}

/* ---------- result count row ---------- */
.skdoc-resultrow{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 20px}
.skdoc-found{font-size:14px;color:var(--sk-muted)}
.skdoc-found strong{color:var(--sk-ink)}
.skdoc-clear{font-size:14px;color:var(--sk-muted);background:none;border:0;cursor:pointer;padding:4px 8px}
.skdoc-clear:hover{color:var(--sk-teal)}

/* ---------- grid + cards ---------- */
.skdoc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.skdoc-card{background:#fff;border:1px solid var(--sk-line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.skdoc-card:hover{box-shadow:0 12px 28px rgba(16,50,58,.10);transform:translateY(-3px)}
.skdoc-photo{position:relative;aspect-ratio:4/5;background:var(--sk-photo)}
.skdoc-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.skdoc-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#E5F3F7,#D3E9EE)}
.skdoc-ph svg{width:38%;max-width:110px;height:auto;color:var(--sk-teal);opacity:.38}
.skdoc-modal-photo .skdoc-ph svg,.skdoc-profile-photo .skdoc-ph svg{width:34%}
/* clinic-mark variant: img must override the .skdoc-photo img cover/full-bleed rule */
.skdoc-ph-logo img{width:46%!important;max-width:140px;height:auto!important;object-fit:contain!important;opacity:.62}
.skdoc-modal-photo .skdoc-ph-logo img,.skdoc-profile-photo .skdoc-ph-logo img{width:40%!important}
/* playful badge: one soft colour per specialty, pulled from the clinic logo's palette */
.skdoc-tag{--c:var(--sk-teal);position:absolute;top:12px;left:12px;width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;color:var(--c);border-radius:50%;
  background:#fff;box-shadow:0 2px 8px rgba(16,50,58,.16);transition:transform .2s}
@supports (color:color-mix(in srgb,red 20%,transparent)){   /* tinted ring where supported */
  .skdoc-tag{box-shadow:0 2px 8px rgba(16,50,58,.16),inset 0 0 0 2px color-mix(in srgb,var(--c) 26%,transparent)}
}
.skdoc-card:hover .skdoc-tag{transform:scale(1.08) rotate(-6deg)}
.skdoc-tag svg{width:21px;height:21px}
.skdoc-tag-ortho{--c:#EC5F9E}
.skdoc-tag-pros {--c:#F0913C}
.skdoc-tag-perio{--c:#22AE9C}
.skdoc-tag-endo {--c:#8B7BD8}
.skdoc-tag-oms  {--c:#EF6B6B}
.skdoc-tag-oper {--c:#4C9BE8}
.skdoc-tag-pedo {--c:#F4B740}
.skdoc-tag-impl {--c:#6B7A99}
.skdoc-tag-gen  {--c:#0E8FB0}
/* label kept in the DOM for screen readers and the hover tooltip */
.skdoc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skdoc-body{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1}
.skdoc-body h3{font-size:16.5px;font-weight:600;margin:0 0 5px;line-height:1.3;color:var(--sk-ink)}
/* nickname "(หมอ…)" — a touch smaller and lighter than the name, in every place a name shows */
.skdoc-nick{font-size:.82em;font-weight:500;color:var(--sk-muted);white-space:nowrap}
.skdoc-edu{font-size:13px;line-height:1.5;color:var(--sk-muted);margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.skdoc-spec{font-size:13.5px;font-weight:600;line-height:1.45;color:var(--sk-teal);margin:0 0 8px}
.skdoc-loc{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--sk-muted2);margin-bottom:14px}
.skdoc-loc svg{flex:none}
.skdoc-actions{display:flex;gap:8px;margin-top:auto}
.skdoc-profile,.skdoc-book{flex:1;text-align:center;font-size:14px;font-weight:600;padding:10px 0;border-radius:10px;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.skdoc-profile{border:1px solid #CFE0E4;background:#fff;color:var(--sk-teal-d)}
.skdoc-profile:hover{background:#F0F7F8}
.skdoc-book{border:0;background:var(--sk-teal);color:#fff}
.skdoc-book:hover{background:var(--sk-teal-d)}

/* ---------- empty state ---------- */
.skdoc-empty{display:none;grid-column:1/-1;text-align:center;padding:64px 0;color:var(--sk-ph)}
.skdoc-empty b{display:block;font-size:17px;font-weight:600;color:var(--sk-muted);margin-bottom:6px}
.skdoc-empty span{font-size:14px}

/* ---------- profile modal ---------- */
.skdoc-modal[hidden]{display:none}
.skdoc-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px}
.skdoc-modal-backdrop{position:absolute;inset:0;background:rgba(12,40,48,.6)}
.skdoc-modal-box{position:relative;background:#fff;border-radius:20px;width:min(760px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 90px rgba(16,50,58,.3)}
.skdoc-modal-close{position:absolute;top:14px;right:14px;z-index:2;width:38px;height:38px;border:0;background:#EEF4F5;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;color:var(--sk-muted)}
.skdoc-modal-grid{display:grid;grid-template-columns:280px 1fr}
.skdoc-modal-photo{background:linear-gradient(160deg,#E5F3F7,#D3E9EE);min-height:320px;display:grid;place-items:center}
.skdoc-modal-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.skdoc-modal-content{padding:34px 30px 30px}
.skdoc-modal-spec{color:var(--sk-teal);font-weight:600;margin:0 0 6px;font-size:14px}
.skdoc-modal-name{margin:0 0 4px;font-size:26px;font-weight:700;color:var(--sk-ink);line-height:1.2}
.skdoc-modal-name-th[hidden]{display:none}
.skdoc-modal-name-th{margin:0 0 4px;font-size:16px;font-weight:500;color:var(--sk-muted)}
.skdoc-modal-edu,.skdoc-modal-branches{margin-top:18px}
.skdoc-modal-edu h4,.skdoc-modal-branches h4{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--sk-ink)}
.skdoc-modal-edu ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.skdoc-modal-edu li{position:relative;padding-left:20px;line-height:1.55;font-size:14px;color:var(--sk-muted)}
.skdoc-modal-edu li:before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--sk-teal)}
.skdoc-modal-brlist{display:flex;flex-wrap:wrap;gap:7px}
.skdoc-branch-chip{font-size:12.5px;background:#F0F7F8;color:var(--sk-teal-d);border:1px solid #CFE0E4;border-radius:999px;padding:6px 11px}
.skdoc-modal-actions{display:flex;gap:14px;align-items:center;margin-top:24px;flex-wrap:wrap}
.skdoc-modal-book{padding:10px 24px!important;flex:0 0 auto!important}
.skdoc-modal-full{color:var(--sk-teal-d);font-weight:600;font-size:14px}

/* ---------- booking modal (phone / LINE / Facebook) ---------- */
.skdoc-book-modal[hidden]{display:none}
.skdoc-book-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px}
.skdoc-book-backdrop{position:absolute;inset:0;background:rgba(12,40,48,.6)}
.skdoc-book-box{position:relative;background:#fff;border-radius:20px;width:min(420px,100%);padding:26px 24px 24px;box-shadow:0 30px 90px rgba(16,50,58,.3)}
.skdoc-book-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;background:#EEF4F5;border-radius:50%;font-size:21px;line-height:1;cursor:pointer;color:var(--sk-muted)}
.skdoc-book-head{text-align:center;margin-bottom:18px}
.skdoc-book-head h3{margin:0 0 4px;font-size:20px;font-weight:700;color:var(--sk-ink)}
.skdoc-book-head p{margin:0;font-size:13px;color:var(--sk-muted)}
.skdoc-book-list{display:flex;flex-direction:column;gap:10px}
.skdoc-book-ch{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:14px;border:1px solid var(--sk-line);
  background:#fff;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.skdoc-book-ch:hover{border-color:transparent;box-shadow:0 8px 22px rgba(16,50,58,.13);transform:translateY(-1px)}
.skdoc-ch-ic{flex:none;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}
.skdoc-ch-ic svg{width:24px;height:24px}
.skdoc-ch-line .skdoc-ch-ic{background:#06C755}
.skdoc-ch-phone .skdoc-ch-ic{background:var(--sk-teal)}
.skdoc-ch-fb .skdoc-ch-ic{background:#1877F2}
.skdoc-ch-tx{flex:1;display:flex;flex-direction:column;line-height:1.3;min-width:0}
.skdoc-ch-tx b{font-size:15px;font-weight:600;color:var(--sk-ink)}
.skdoc-ch-tx small{font-size:12.5px;color:var(--sk-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skdoc-ch-go{flex:none;font-size:13px;font-weight:600;color:var(--sk-muted2)}
.skdoc-book-ch:hover .skdoc-ch-go{color:var(--sk-teal-d)}

/* ---------- single profile page ---------- */
.skdoc-single{max-width:1000px}
.skdoc-back{display:inline-block;margin:8px 0 18px;color:var(--sk-teal-d);font-weight:600}
.skdoc-profilewrap{display:grid;grid-template-columns:340px 1fr;gap:34px;align-items:start}
.skdoc-profile-photo{aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#E5F3F7,#D3E9EE);display:grid;place-items:center;box-shadow:0 12px 28px rgba(16,50,58,.10)}
.skdoc-profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.skdoc-profile-tag{color:var(--sk-teal);font-weight:600;margin:0 0 6px}
.skdoc-profile-name{margin:0 0 6px;font-size:30px;font-weight:700;color:var(--sk-ink)}
.skdoc-profile-en{margin:0 0 8px;color:var(--sk-muted)}
.skdoc-edu-list{margin-top:22px}
.skdoc-edu-list h2{font-size:17px;font-weight:600;color:var(--sk-ink);margin:0 0 10px}
.skdoc-edu-list ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.skdoc-edu-list li{position:relative;padding-left:22px;line-height:1.6;color:var(--sk-muted)}
.skdoc-edu-list li:before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;background:var(--sk-teal)}

.skdoc-single .skdoc-branch-chip{text-decoration:none;display:inline-block}
.skdoc-single .skdoc-branch-chip:hover{background:#E4F1F4}
.skdoc-bio{margin-top:20px;line-height:1.7;color:var(--sk-muted)}
.skdoc-profile-cta{margin-top:26px}
.skdoc-profile-cta .skdoc-book{flex:0 0 auto;padding:12px 32px}

@media(max-width:900px){.skdoc-hd h1,.skdoc-hd h2{font-size:32px}}
@media(max-width:760px){
  .skdoc-hd{align-items:flex-start}
  /* column flex makes flex-basis vertical — reset it or the search box grows 320px tall */
  .skdoc-row{flex-direction:column}
  .skdoc-searchwrap,.skdoc-branchwrap{flex:0 0 auto;width:100%}
  .skdoc-sec{padding:16px}
  .skdoc-grid{grid-template-columns:repeat(2,1fr);gap:14px}  /* keep 2 columns on mobile */
  .skdoc-body{padding:12px 12px 14px}.skdoc-body h3{font-size:15px}
  .skdoc-actions{gap:6px}.skdoc-profile,.skdoc-book{font-size:13px;padding:9px 0}
  .skdoc-modal-grid{grid-template-columns:1fr}.skdoc-modal-photo{min-height:240px;max-height:300px}
  .skdoc-modal-content{padding:22px}.skdoc-modal-name{font-size:22px}
  .skdoc-profilewrap{grid-template-columns:1fr;gap:20px}.skdoc-profile-photo{max-width:320px}
}

/* ---------- promotions grid ([skytrain_promotions]) ---------- */
.skdoc-promos{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.skpromo-card{background:#fff;border:1px solid var(--sk-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(16,50,58,.04)}
.skpromo-thumb{aspect-ratio:16/9;background:var(--sk-photo);display:flex;align-items:center;justify-content:center}
.skpromo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.skpromo-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.skpromo-title{font-size:19px;font-weight:700;line-height:1.35;color:var(--sk-ink);margin:0 0 10px}
.skpromo-price{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.skpromo-price .pp{font-size:24px;font-weight:800;color:var(--sk-teal)}
.skpromo-price .pn{font-size:15px;color:var(--sk-muted2);text-decoration:line-through}
.skpromo-desc{font-size:14.5px;line-height:1.6;color:var(--sk-muted);margin-bottom:12px}
.skpromo-desc p{margin:0 0 6px}
.skpromo-meta{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:12px;border-top:1px solid var(--sk-line);font-size:13px;color:var(--sk-muted2)}
.skpromo-branch{color:var(--sk-teal-d);font-weight:600}
.skdoc-promo-empty{text-align:center;color:var(--sk-muted);padding:40px;font-family:'IBM Plex Sans Thai','Noto Sans Thai',sans-serif}
@media(max-width:640px){.skdoc-promos{grid-template-columns:1fr}}
