/* =========================================================================
   HSQ Stone Finder — scoped styles (.hsq-stone-finder)  v2
   Quiet luxury 70% + friendly beginner guide 30%.
   Mobile-first. Palette + type aligned to hobbystonequartz-custom.css.

   v2 adds: option icons, helper line, hero pills, result type badge,
   stone image cards (with text-row fallback), CTA camera/DM icon.

   - All selectors namespaced under .hsq-stone-finder (no global side effects).
   - No !important, no position:fixed, no large box-shadows.
   - Pairs with stone-finder.js v2 (icon / image / note data). Falls back
     gracefully to text rows when an option has no icon / a link has no image.
   - Fonts (Noto Serif/Sans Thai, Cormorant Garamond) provided by the theme.
   ========================================================================= */

.hsq-stone-finder {
  --sf-bg: #ffffff;
  --sf-bg-warm: #fffdfa;       /* slightly warm white for option cards */
  --sf-surface: #fbf8f2;       /* question + result card */
  --sf-surface-2: #f3eee4;     /* selected / soft fill */
  --sf-sand: #efe7d6;          /* CTA panel / icon badge */
  --sf-pill: #f1ebdf;
  --sf-border: #e6ddcb;
  --sf-hairline: #ece4d4;
  --sf-text: #2a2620;
  --sf-text-soft: #6f6757;
  --sf-text-mute: #9a917f;
  --sf-accent: #5a4a6e;        /* plum */
  --sf-accent-soft: #9a8ba0;
  --sf-taupe: #7c6f5d;
  --sf-radius: 14px;

  --sf-ff-serif: "Noto Serif Thai", "Cormorant Garamond", Georgia, serif;
  --sf-ff-eyebrow: "Cormorant Garamond", "Noto Serif Thai", Georgia, serif;
  --sf-ff-sans: "Noto Sans Thai", "Inter", system-ui, sans-serif;

  box-sizing: border-box;
  max-width: 720px;
  margin: clamp(1rem, 3vw, 2rem) auto clamp(2rem, 6vw, 3rem);
  font-family: var(--sf-ff-sans);
  color: var(--sf-text);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

.hsq-stone-finder *,
.hsq-stone-finder *::before,
.hsq-stone-finder *::after { box-sizing: border-box; }

/* ---- Hero / lead (page body) ------------------------------------------- */
.hsq-stone-finder .hsq-sf-eyebrow {
  display: block;
  font-family: var(--sf-ff-eyebrow);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--sf-accent-soft);
  margin: 0 0 0.6em;
}

.hsq-stone-finder .hsq-sf-lead {
  font-size: 1rem;
  color: var(--sf-text-soft);
  margin: 0 0 0.85em;
}

/* Friendly pills — replaces the old note card.
   Markup: <div class="hsq-sf-pills"><span>…</span><span>…</span></div> */
.hsq-stone-finder .hsq-sf-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 1.1em;
  padding: 0;
  list-style: none;
}

.hsq-stone-finder .hsq-sf-pills span,
.hsq-stone-finder .hsq-sf-pills li {
  display: inline-flex;
  align-items: center;
  background: var(--sf-pill);
  border: 1px solid #e4dac7;
  color: var(--sf-text-mute);
  font-size: 0.78rem;
  border-radius: 999px;
  padding: 5px 12px;
}

/* Disclaimer note — placed at the FOOTER (below the tool). Small & muted so it
   doesn't dominate the first view. */
.hsq-stone-finder .hsq-sf-note {
  display: block;
  background: var(--sf-surface-2);
  border-radius: 10px;
  padding: 0.8em 1.05em;
  font-size: 0.8rem;
  line-height: 1.6;
  color: var(--sf-text-mute);
  margin: 1.3em 0 0;
}

/* ---- Intro hero (eyebrow / H1 / lead / pills) -------------------------- */
.hsq-stone-finder .hsq-sf-intro {
  margin: 0 0 1.4em;
  padding-bottom: 1.3em;
  border-bottom: 1px solid var(--sf-hairline);
}

.hsq-stone-finder .hsq-sf-h1 {
  font-family: var(--sf-ff-serif);
  font-size: clamp(1.5rem, 5vw, 2rem);
  font-weight: 500;
  line-height: 1.3;
  color: var(--sf-text);
  margin: 0.15em 0 0.4em;
  padding: 0;
}

/* Heading-interference guard: these UI headings must NEVER inherit SWELL's
   .post_content h1/h2/h3/h4 bar / underline / left-border decorations.
   (JS renders the dynamic ones as role="heading" divs; this also protects the
   real <h1> in the intro. Class specificity (0,2,0) beats .post_content hN.) */
.hsq-stone-finder .hsq-sf-h1,
.hsq-stone-finder .hsq-sf-question,
.hsq-stone-finder .hsq-sf-result-title,
.hsq-stone-finder .hsq-sf-links-title,
.hsq-stone-finder .hsq-sf-guides-title {
  background: none;
  border: 0;
  box-shadow: none;
}
.hsq-stone-finder .hsq-sf-h1::before,
.hsq-stone-finder .hsq-sf-h1::after,
.hsq-stone-finder .hsq-sf-question::before,
.hsq-stone-finder .hsq-sf-question::after,
.hsq-stone-finder .hsq-sf-result-title::before,
.hsq-stone-finder .hsq-sf-result-title::after,
.hsq-stone-finder .hsq-sf-links-title::before,
.hsq-stone-finder .hsq-sf-links-title::after,
.hsq-stone-finder .hsq-sf-guides-title::before,
.hsq-stone-finder .hsq-sf-guides-title::after {
  content: none;
  display: none;
}

/* ---- Card --------------------------------------------------------------- */
.hsq-stone-finder .hsq-sf-card {
  background: var(--sf-surface);
  border: 1px solid var(--sf-border);
  border-radius: var(--sf-radius);
  padding: 1.4em 1.15em;
}

/* ---- Progress ----------------------------------------------------------- */
.hsq-stone-finder .hsq-sf-progress { margin-bottom: 1.25em; }

.hsq-stone-finder .hsq-sf-progress-label {
  font-size: 0.8rem;
  letter-spacing: 0.02em;
  color: var(--sf-text-mute);
  margin-bottom: 0.55em;
}

.hsq-stone-finder .hsq-sf-progress-bar {
  width: 100%;
  height: 3px;
  background: #e7decd;
  border-radius: 999px;
  overflow: hidden;
}

.hsq-stone-finder .hsq-sf-progress-fill {
  height: 100%;
  background: var(--sf-accent-soft);
  border-radius: 999px;
  transition: width 0.45s ease;
}

/* ---- Question + helper -------------------------------------------------- */
.hsq-stone-finder .hsq-sf-question {
  font-family: var(--sf-ff-serif);
  font-size: 1.25rem;
  line-height: 1.5;
  font-weight: 500;
  color: var(--sf-text);
  margin: 0 0 0.3em;
  padding: 0;
  border: 0;
}

.hsq-stone-finder .hsq-sf-helper {
  margin: 0 0 1em;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--sf-text-mute);
}

/* ---- Options (with icon) ------------------------------------------------ */
.hsq-stone-finder .hsq-sf-options {
  display: flex;
  flex-direction: column;
  gap: 0.65em;
}

.hsq-stone-finder .hsq-sf-option {
  display: flex;
  align-items: center;
  gap: 0.85em;
  width: 100%;
  min-height: 58px;
  text-align: left;
  background: var(--sf-bg-warm);
  border: 1px solid var(--sf-border);
  border-radius: 12px;
  padding: 0.7em 0.85em;
  font: inherit;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--sf-text);
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
  word-break: break-word;
  -webkit-tap-highlight-color: transparent;
}

/* icon badge */
.hsq-stone-finder .hsq-sf-option-icon {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--sf-pill);
  color: var(--sf-accent);
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.hsq-stone-finder .hsq-sf-option-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}

/* color-swatch variant (Q3) — JS sets the swatch color inline / as a CSS var */
.hsq-stone-finder .hsq-sf-option-icon.is-swatch {
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.hsq-stone-finder .hsq-sf-option-text {
  flex: 1 1 auto;
  min-width: 0;
}

/* trailing check (shown when selected) */
.hsq-stone-finder .hsq-sf-option-check {
  flex: 0 0 auto;
  display: none;
  color: var(--sf-accent);
}
.hsq-stone-finder .hsq-sf-option-check svg { width: 15px; height: 15px; display: block; }

@media (hover: hover) {
  .hsq-stone-finder .hsq-sf-option:hover {
    border-color: #c9bca0;
    background: var(--sf-surface);
  }
}

.hsq-stone-finder .hsq-sf-option:focus-visible {
  outline: none;
  border-color: var(--sf-accent);
  box-shadow: 0 0 0 2px rgba(90, 74, 110, 0.2);
}

.hsq-stone-finder .hsq-sf-option:active { background: var(--sf-surface-2); }

.hsq-stone-finder .hsq-sf-option.is-selected {
  border-color: var(--sf-accent);
  background: var(--sf-surface-2);
  box-shadow: inset 0 0 0 1px var(--sf-accent);
}

.hsq-stone-finder .hsq-sf-option.is-selected .hsq-sf-option-icon {
  background: var(--sf-accent);
  color: #fbf8f2;
}
.hsq-stone-finder .hsq-sf-option.is-selected .hsq-sf-option-icon.is-swatch {
  color: inherit;
  box-shadow: 0 0 0 2px var(--sf-accent), inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}
.hsq-stone-finder .hsq-sf-option.is-selected .hsq-sf-option-check { display: inline-flex; }

/* ---- Nav (back) --------------------------------------------------------- */
.hsq-stone-finder .hsq-sf-nav { margin-top: 1.2em; min-height: 1em; }

.hsq-stone-finder .hsq-sf-back {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  background: transparent;
  border: 0;
  padding: 0.5em 0;
  font: inherit;
  font-size: 0.9rem;
  color: var(--sf-text-mute);
  cursor: pointer;
  transition: color 0.18s ease;
}

.hsq-stone-finder .hsq-sf-back:hover,
.hsq-stone-finder .hsq-sf-back:focus-visible { color: var(--sf-accent); outline: none; }

/* ---- Result head + type badge ------------------------------------------ */
.hsq-stone-finder .hsq-sf-result-head {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  column-gap: 14px;
  align-items: center;
  margin-bottom: 1.1em;
}

/* type badge — JS adds <span class="hsq-sf-result-badge">…icon…</span> */
.hsq-stone-finder .hsq-sf-result-badge {
  grid-row: 1 / span 3;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--sf-sand);
  border: 1px solid #e2d8c5;
  color: var(--sf-accent);
}
.hsq-stone-finder .hsq-sf-result-badge svg { width: 23px; height: 23px; display: block; }

/* eyebrow — JS adds <span class="hsq-sf-result-eyebrow">Curated for your space</span>;
   falls back to ::before if absent */
.hsq-stone-finder .hsq-sf-result-eyebrow,
.hsq-stone-finder .hsq-sf-result-head:not(:has(.hsq-sf-result-eyebrow))::before {
  grid-column: 2;
  font-family: var(--sf-ff-eyebrow);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--sf-accent-soft);
}
.hsq-stone-finder .hsq-sf-result-head:not(:has(.hsq-sf-result-eyebrow))::before {
  content: "Curated for your space";
}

.hsq-stone-finder .hsq-sf-result-title {
  grid-column: 2;
  font-family: var(--sf-ff-serif);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--sf-text);
  margin: 0.3em 0 0.25em;
  padding: 0;
  border: 0;
}

.hsq-stone-finder .hsq-sf-result-subtitle {
  grid-column: 2;
  font-size: 0.93rem;
  color: var(--sf-text-soft);
  margin: 0;
}

/* When the head can't lay out as grid (older markup), keep it readable */
.hsq-stone-finder .hsq-sf-result-head > .hsq-sf-result-title { min-width: 0; }

.hsq-stone-finder .hsq-sf-result-desc {
  margin: 1em 0 1.3em;
  padding-top: 1.1em;
  border-top: 1px solid var(--sf-hairline);
  color: var(--sf-text);
}

/* ---- Reason block (v3): "จากคำตอบของคุณ: ..." + 1 conclusion line ------- */
.hsq-stone-finder .hsq-sf-reason {
  background: #f7f4eb;
  border: 1px solid #e6dfcc;
  border-radius: 8px;
  padding: 12px 16px;
  margin: 14px 0 18px;
}
.hsq-stone-finder .hsq-sf-reason-from {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 600;
  color: #444;
}
.hsq-stone-finder .hsq-sf-reason-line {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: #555;
}
@media (max-width: 767px) {
  .hsq-stone-finder .hsq-sf-reason {
    padding: 10px 12px;
    margin: 12px 0 14px;
  }
  .hsq-stone-finder .hsq-sf-reason-from,
  .hsq-stone-finder .hsq-sf-reason-line {
    font-size: 14px;
  }
}

/* ---- Recommended: stone cards + fallback rows -------------------------- */
.hsq-stone-finder .hsq-sf-links { margin-bottom: 1.3em; }

.hsq-stone-finder .hsq-sf-links-title {
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sf-text-mute);
  margin: 0 0 0.7em;
  padding: 0;
  border: 0;
}

.hsq-stone-finder .hsq-sf-link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

/* stone card (image present) */
.hsq-stone-finder .hsq-sf-stone-card {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--sf-border);
  border-radius: var(--sf-radius);
  background: var(--sf-bg);
  text-decoration: none;
  color: var(--sf-text);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.hsq-stone-finder .hsq-sf-stone-card:hover,
.hsq-stone-finder .hsq-sf-stone-card:focus-visible {
  border-color: #d8ccb6;
  outline: none;
}

.hsq-stone-finder .hsq-sf-stone-img {
  width: 80px;
  height: 80px;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: var(--sf-surface-2);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05);
}

.hsq-stone-finder .hsq-sf-stone-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hsq-stone-finder .hsq-sf-stone-name {
  display: block;
  font-family: var(--sf-ff-serif);
  font-size: 1.12rem;
  line-height: 1.25;
  color: var(--sf-text);
}

.hsq-stone-finder .hsq-sf-stone-note {
  display: block;
  margin-top: 4px;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--sf-text-soft);
}

/* "Why this stone" — short matching reason; a touch smaller + soft (still readable) */
.hsq-stone-finder .hsq-sf-stone-reason {
  display: block;
  margin-top: 4px;
  font-family: var(--sf-ff-sans);
  font-size: 0.84rem;
  line-height: 1.55;
  color: var(--sf-text-soft);
}

.hsq-stone-finder .hsq-sf-stone-more {
  display: block;
  margin-top: 7px;
  font-size: 0.76rem;
  letter-spacing: 0.02em;
  color: var(--sf-accent-soft);
}

/* fallback text row (no confirmed image yet) */
.hsq-stone-finder .hsq-sf-link-item { margin: 0; padding: 0; }

.hsq-stone-finder .hsq-sf-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75em;
  min-height: 48px;
  padding: 0.7em 0.9em;
  border: 1px solid var(--sf-border);
  border-radius: 12px;
  background: var(--sf-bg);
  font-family: var(--sf-ff-serif);
  font-size: 1.08rem;
  line-height: 1.3;
  color: var(--sf-text);
  text-decoration: none;
}

/* fallback row text column (name + note + reason stack) */
.hsq-stone-finder .hsq-sf-link-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  font-family: var(--sf-ff-sans);
}

.hsq-stone-finder .hsq-sf-link-name {
  display: block;
  font-family: var(--sf-ff-serif);
  font-size: 1.08rem;
  line-height: 1.3;
  color: var(--sf-text);
}

.hsq-stone-finder .hsq-sf-link::after {
  content: "→";
  flex: 0 0 auto;
  font-family: var(--sf-ff-sans);
  font-size: 1rem;
  color: #b3a890;
  transition: transform 0.18s ease, color 0.18s ease;
}

.hsq-stone-finder .hsq-sf-link:hover,
.hsq-stone-finder .hsq-sf-link:focus-visible { color: var(--sf-accent); outline: none; }
.hsq-stone-finder .hsq-sf-link:hover::after,
.hsq-stone-finder .hsq-sf-link:focus-visible::after { color: var(--sf-accent); transform: translateX(3px); }

/* ---- Guide links (compact "read more" list) ---------------------------- */
.hsq-stone-finder .hsq-sf-guides {
  background: var(--sf-bg);
  border: 1px solid var(--sf-border);
  border-radius: var(--sf-radius);
  padding: 0.1em 1.1em 0.4em;
  margin-bottom: 1.3em;
}

.hsq-stone-finder .hsq-sf-guides-title {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sf-text-mute);
  margin: 1em 0 0;
}

.hsq-stone-finder .hsq-sf-guide-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75em;
  min-height: 44px;
  padding: 0.7em 0;
  border-top: 1px solid var(--sf-hairline);
  color: var(--sf-text);
  text-decoration: none;
  font-size: 0.95rem;
}
.hsq-stone-finder .hsq-sf-guide-link::after { content: "→"; color: #b3a890; flex: 0 0 auto; }
.hsq-stone-finder .hsq-sf-guide-link:hover,
.hsq-stone-finder .hsq-sf-guide-link:focus-visible { color: var(--sf-accent); outline: none; }

/* ---- CTA (Instagram, with camera/DM icon) ------------------------------ */
.hsq-stone-finder .hsq-sf-cta {
  background: var(--sf-sand);
  border: 1px solid #e0d6c3;
  border-radius: var(--sf-radius);
  padding: 1.4em 1.3em;
  text-align: center;
}

/* icon badge — JS adds <span class="hsq-sf-cta-icon">…camera…</span>;
   eyebrow falls back via ::before when no .hsq-sf-cta-eyebrow present */
.hsq-stone-finder .hsq-sf-cta-icon {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0.7em;
  background: #e3d7c1;
  color: #6f5f48;
}
.hsq-stone-finder .hsq-sf-cta-icon svg { width: 17px; height: 17px; display: block; }

.hsq-stone-finder .hsq-sf-cta-eyebrow,
.hsq-stone-finder .hsq-sf-cta:not(:has(.hsq-sf-cta-eyebrow)) .hsq-sf-cta-body::before {
  display: block;
  font-family: var(--sf-ff-eyebrow);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--sf-taupe);
  margin-bottom: 0.6em;
}
.hsq-stone-finder .hsq-sf-cta:not(:has(.hsq-sf-cta-eyebrow)) .hsq-sf-cta-body::before {
  content: "Personal consultation";
}

.hsq-stone-finder .hsq-sf-cta-body {
  margin: 0 0 1em;
  font-size: 0.9rem;
  line-height: 1.75;
  color: #5a5346;
}

.hsq-stone-finder .hsq-sf-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55em;
  min-height: 48px;
  background: #26221c;
  color: #f6f1e8;
  text-decoration: none;
  padding: 0.75em 1.8em;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 500;
  transition: background 0.18s ease;
}
.hsq-stone-finder .hsq-sf-cta-btn svg { width: 16px; height: 16px; display: block; }
.hsq-stone-finder .hsq-sf-cta-btn:hover,
.hsq-stone-finder .hsq-sf-cta-btn:focus-visible { background: #38322a; color: #f6f1e8; outline: none; }

/* ---- Result actions (restart) ------------------------------------------ */
.hsq-stone-finder .hsq-sf-result-actions { margin-top: 1.2em; text-align: center; }

.hsq-stone-finder .hsq-sf-restart {
  background: transparent;
  border: 0;
  padding: 0.5em 0.6em;
  font: inherit;
  font-size: 0.85rem;
  color: var(--sf-text-mute);
  cursor: pointer;
  transition: color 0.18s ease;
}
.hsq-stone-finder .hsq-sf-restart:hover,
.hsq-stone-finder .hsq-sf-restart:focus-visible { color: var(--sf-accent); outline: none; }

/* ---- noscript ----------------------------------------------------------- */
.hsq-stone-finder .hsq-sf-noscript {
  display: block;
  background: var(--sf-surface-2);
  border-radius: 10px;
  padding: 1em 1.1em;
  color: var(--sf-text-soft);
  font-size: 0.9rem;
}

/* ---- 768px+ : modest expansion ----------------------------------------- */
@media (min-width: 768px) {
  .hsq-stone-finder .hsq-sf-card { padding: 1.8em 1.7em; }
  .hsq-stone-finder .hsq-sf-question { font-size: 1.35rem; }
  .hsq-stone-finder .hsq-sf-result-title { font-size: 1.55rem; }
  .hsq-stone-finder .hsq-sf-stone-card { grid-template-columns: 96px minmax(0, 1fr); }
  .hsq-stone-finder .hsq-sf-stone-img { width: 96px; height: 96px; }
}

/* ---- 1024px+ : centered, comfortable reading --------------------------- */
@media (min-width: 1024px) {
  .hsq-stone-finder { max-width: 760px; }
  .hsq-stone-finder .hsq-sf-cta { padding: 1.8em 2em; }
}

/* =========================================================================
   Page chrome — Stone Finder page ONLY (#body_wrap.page-id-502).
   This file is enqueued only on /tools/stone-finder/, and these rules are
   additionally guarded by the page-id class, so no other page is affected.
   Goal: remove SWELL's page-title block (its b_bottom underline = the stray
   line, and its large vertical rhythm) since we render our own intro hero,
   and seat the tool on a calm warm canvas.
   ========================================================================= */
#body_wrap.page-id-502 .c-pageTitle { display: none !important; }

#body_wrap.page-id-502 #content {
  padding-top: 28px !important;
  background: #f6f1e8;
}

@media (max-width: 480px) {
  #body_wrap.page-id-502 #content { padding-top: 16px !important; }
}

/* Instagram / SNS top bar: now hidden site-wide via SWELL show_icon_list=false
   + the global #body_wrap .l-header__bar rule in hobbystonequartz-custom.css.
   The former per-page #body_wrap.page-id-502 .l-header__bar hide was removed
   (2026-06-12) — do not re-add it here. */

/* =========================================================================
   Result-page polish (page-scoped). Keeps the tool from getting too wide on
   desktop, removes SWELL's leaked <a> underline/color inside the tool, and
   makes the image-less stone rows read as calm small cards.
   ========================================================================= */
#body_wrap.page-id-502 .post_content .hsq-stone-finder {
  width: min(100%, 760px);
  max-width: 760px;
  margin-inline: auto;
}
@media (max-width: 600px) {
  #body_wrap.page-id-502 .post_content .hsq-stone-finder {
    width: 100%;
    max-width: 100%;
  }
}

/* compact result card + comfortable reading measure */
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-result {
  padding: clamp(1.25rem, 3vw, 1.8rem);
}
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-result-desc {
  max-width: 58em;
  line-height: 1.85;
}

/* neutralize SWELL link decoration inside the tool (it loads its own
   .post_content a underline from the parent theme stylesheet) */
#body_wrap.page-id-502 .hsq-stone-finder a,
#body_wrap.page-id-502 .hsq-stone-finder a span {
  text-decoration: none !important;
}

/* text-row fallback → calm small card even before an image is set */
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-link {
  text-decoration: none !important;
  min-height: 56px;
  padding: 0.85em 1em;
  border: 1px solid var(--sf-border);
  border-radius: 12px;
  background: #fffdfa;
  color: var(--sf-text) !important;
}
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-link:visited { color: var(--sf-text) !important; }
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-link:hover  { color: var(--sf-accent) !important; }

/* guide links: no underline, readable color */
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-guide-link,
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-guide-link:visited { color: var(--sf-text) !important; }
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-guide-link:hover   { color: var(--sf-accent) !important; }

/* stone image card (when an image is later added): keep text color */
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-stone-card,
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-stone-card:visited { color: var(--sf-text) !important; }

/* CTA button text must stay light on the dark pill (SWELL link color must
   not override it) */
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-cta-btn,
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-cta-btn:visited,
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-cta-btn:hover,
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-cta-btn:focus {
  color: #f6f1e8 !important;
  text-decoration: none !important;
}
#body_wrap.page-id-502 .hsq-stone-finder .hsq-sf-cta-btn svg { color: currentColor; }

/* =========================================================================
   Result view — mobile width + stone-card sizing (SF result-width batch)
   Scoped to .hsq-stone-finder only (NO page-id / NO #body_wrap new selectors).
   On phones the result + stone cards use more of the content width so 1–2
   stones show in the first view. grid minmax(0,1fr) keeps it overflow-safe.
   ========================================================================= */
@media (max-width: 767px) {
  /* result card: trim side padding so cards sit closer to the content width.
     !important beats the page-scoped .hsq-sf-result padding (clamp, no !important). */
  .hsq-stone-finder .hsq-sf-result {
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
  }

  /* stone list + cards use the full width */
  .hsq-stone-finder .hsq-sf-link-list { width: 100%; }

  /* stone image card: slightly smaller image (104px) so the Thai text column is
     wider/easier to read. minmax(0,1fr) keeps it overflow-safe (no h-scroll). */
  .hsq-stone-finder .hsq-sf-stone-card {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 0.9rem;
    padding: 9px;
    width: 100%;
    max-width: 100%;
  }
  .hsq-stone-finder .hsq-sf-stone-img {
    width: 104px;
    height: 88px;
    aspect-ratio: auto;
  }

  /* readable text: bigger name + bigger note/reason/"ดูบทความ" */
  .hsq-stone-finder .hsq-sf-stone-name {
    font-size: 1.12rem;
    line-height: 1.22;
  }
  .hsq-stone-finder .hsq-sf-stone-note,
  .hsq-stone-finder .hsq-sf-stone-reason,
  .hsq-stone-finder .hsq-sf-stone-more {
    font-size: 0.98rem;
    line-height: 1.55;
  }

  /* keep the result top compact so stone cards reach the first view sooner */
  .hsq-stone-finder .hsq-sf-result-desc {
    margin: 0.85rem 0 1rem;
    padding-top: 0.9rem;
  }
  .hsq-stone-finder .hsq-sf-links-title {
    margin-bottom: 0.55rem;
  }
}

/* =========================================================================
   Underline guard — ROOT-CAUSE FIX (verified via headless computed style).
   The canonical hobbystonequartz-custom.css underlines every non-article page
   link with:
     #body_wrap.page:not(.hsq-has-article-template) .post_content a
       { text-decoration: underline !important; text-decoration-color: rgba(118,92,138,.32) !important }
   Specificity (1,3,1) + !important. That underline is set on the <a> itself and
   PROPAGATES visually through the child spans (name / note / ดูบทความ) — which is
   why earlier (0,2,1) / (1,2,1) guards on `a` / `a span` never removed it.
   We override ON THE <a>, matching (1,3,1) and winning by source order, WITHOUT
   page-id / postid / category-id / #body_wrap / any new id: we reuse the existing
   JS-mount id #hsq-stone-finder-app + wrapper class .hsq-stone-finder.
   a[class*="hsq-sf-"] = stone-card / link / guide-link / cta-btn (all tool anchors).
   ========================================================================= */
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a[class*="hsq-sf-"],
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a[class*="hsq-sf-"]:link,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a[class*="hsq-sf-"]:visited,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a[class*="hsq-sf-"]:hover,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a[class*="hsq-sf-"]:focus {
  text-decoration: none !important;
  text-decoration-line: none !important;
  text-decoration-color: transparent !important;
  border-bottom: 0 !important;
  background-image: none !important;
}
/* belt-and-suspenders: also clear any decoration on the inner spans */
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a[class*="hsq-sf-"] span {
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-bottom: 0 !important;
  background-image: none !important;
}

/* =========================================================================
   v3.1 fixes (root cause verified via headless computed style + CDP matched
   rules). The SAME canonical page-link family also hit Stone Finder result
   anchors / lists and won on specificity (1,3,1) + !important:
     #body_wrap.page:not(.hsq-has-article-template) .post_content a
        { color: var(--hsq-purple) !important }     → dark/purple CTA text on the
                                                       near-black pill = unreadable
     #body_wrap.page:not(.hsq-has-article-template) .post_content ul
        { padding-left: 1.35em !important }          → 21.6px left indent on the
                                                       stone list (left gap)
   The existing CTA cream lock was only (1,3,0) and the list reset only (0,2,0),
   so both lost. We override at matching (1,3,1) via the existing mount id
   #hsq-stone-finder-app + .hsq-stone-finder wrapper (no page-id / #body_wrap /
   new id), winning by source order.
   ========================================================================= */

/* (1) CTA button text + icon: cream, readable on the dark pill (bg kept #26221c) */
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn:link,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn:visited,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn:hover,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn:focus,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn:active {
  color: #f6f1e8 !important;
  text-decoration: none !important;
  text-decoration-line: none !important;
  opacity: 1;
}
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn span,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result a.hsq-sf-cta-btn svg {
  color: #f6f1e8 !important;
  stroke: currentColor;
  opacity: 1;
}

/* (2) stone list: drop the inherited .post_content ul left indent so cards sit
   flush with the result card (left edge matches the right edge gap) */
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result ul.hsq-sf-link-list {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-inline-start: 0 !important;
  list-style: none !important;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result .hsq-sf-link-item,
.hsq-stone-finder #hsq-stone-finder-app .hsq-sf-result .hsq-sf-stone-card {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
