@charset "utf-8";
/* ==========================================================================
   담소 — 페이지 컴포넌트 (지역·업소·종목·홈)
   원본(헬스랜드)은 이 스타일을 PHP 안 <style> 블록으로 매 요청 찍어 냈다.
   파일로 빼면 브라우저가 한 번만 받고, ?v= 로 버전을 끊을 수 있다.
   ========================================================================== */

/* 페이지가 h1 을 따로 그리므로 테마 컨테이너 타이틀은 숨긴다(제목 중복 방지) */
#container_title{display:none !important;}

.ds-wrap{max-width:none;margin:0;padding:0;}
.ds-h1{
  font-family:var(--ds-serif);font-size:1.9rem;line-height:1.35;color:var(--ds-ink);
  margin:.4rem 0 .5rem;letter-spacing:-.02em;font-weight:700;
}
.ds-sub{color:var(--ds-muted);font-size:.92rem;margin:0 0 1rem;line-height:1.7;}
.ds-lead{color:var(--ds-body);font-size:1.02rem;line-height:1.9;margin:0 0 1.6rem;max-width:52rem;}
.ds-muted{color:var(--ds-muted);}

/* ── 빵부스러기 ─────────────────────────────────────────── */
.ds-bc{font-size:.84rem;color:var(--ds-muted);margin:.2rem 0 .9rem;line-height:1.8;}
.ds-bc a{color:var(--ds-forest-2);}
.ds-bc a:hover{text-decoration:underline;text-underline-offset:3px;}

/* ── 섹션 ───────────────────────────────────────────────── */
.ds-sec{margin:2.4rem 0;}
.ds-sec>h2{
  font-family:var(--ds-serif);font-size:1.25rem;color:var(--ds-ink);margin:0 0 .9rem;
  padding-left:.7rem;border-left:4px solid var(--ds-forest-2);line-height:1.4;
}
.ds-sec-head{margin:0 0 1.1rem;}
.ds-sec-head h3{font-family:var(--ds-serif);font-size:1.45rem;color:var(--ds-ink);margin:.2rem 0 .4rem;}
.ds-sec-head p{color:var(--ds-muted);font-size:.93rem;margin:0;line-height:1.8;}
.ds-sec-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.ds-eyebrow{
  display:inline-block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ds-forest-3);font-weight:700;
}
.ds-more{font-size:.9rem;color:var(--ds-forest-2);white-space:nowrap;}

/* ── 버튼 ───────────────────────────────────────────────── */
.ds-btn{
  display:inline-flex;align-items:center;gap:.45rem;padding:.72rem 1.3rem;
  border-radius:999px;font-weight:700;font-size:.95rem;text-decoration:none;
  border:1px solid transparent;transition:.16s;
}
.ds-btn-primary{background:var(--ds-forest);color:#fff !important;}
.ds-btn-primary:hover{background:var(--ds-forest-2);text-decoration:none !important;}
.ds-btn-ghost{background:#fff;color:var(--ds-forest) !important;border-color:var(--ds-sage);}
.ds-btn-ghost:hover{background:var(--ds-sage-soft);text-decoration:none !important;}
.ds-btn-accent{background:var(--ds-gold);color:#fff !important;}
.ds-btn-accent:hover{background:#a9782a;text-decoration:none !important;}
.ds-ctarow{margin:1.2rem 0 1.8rem;}
.ds-tel{font-weight:700;color:var(--ds-forest-2);}

/* ── 업소 카드 ──────────────────────────────────────────── */
.ds-grid{
  display:grid;gap:1rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));
}
.ds-card{
  display:flex;flex-direction:column;background:var(--ds-surface);
  border:1px solid var(--ds-line);border-radius:var(--ds-radius);overflow:hidden;
  text-decoration:none !important;box-shadow:var(--ds-shadow);transition:.18s;
}
.ds-card:hover{transform:translateY(-2px);box-shadow:var(--ds-shadow-lg);border-color:var(--ds-sage);}
.ds-card-thumb{display:block;background:var(--ds-cream-2);}
.ds-card-thumb img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;}
.ds-card-body{display:block;padding:.85rem .95rem 1rem;}
.ds-card-name{
  display:block;font-family:var(--ds-serif);font-weight:700;font-size:1.02rem;
  color:var(--ds-ink);line-height:1.45;margin-bottom:.4rem;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.ds-card-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-bottom:.45rem;}
.ds-where{font-size:.82rem;color:var(--ds-muted);}
.ds-tag{
  font-size:.7rem;font-weight:700;padding:.16rem .5rem;border-radius:999px;line-height:1.5;
}
.ds-tag-out{background:var(--ds-sage-soft);color:var(--ds-forest);}
.ds-tag-24{background:#FBF1DF;color:#8A6320;}
.ds-card-jong{display:flex;flex-wrap:wrap;gap:.3rem;}
.ds-card-jong em{
  font-style:normal;font-size:.74rem;color:var(--ds-body);
  background:var(--ds-cream-2);border-radius:6px;padding:.14rem .44rem;
}
.ds-empty{
  padding:2.2rem 1rem;text-align:center;color:var(--ds-muted);
  background:var(--ds-cream);border:1px dashed var(--ds-line);border-radius:var(--ds-radius);
}

/* ── 칩 ─────────────────────────────────────────────────── */
.ds-chips{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0;margin:0;}
.ds-chips li{list-style:none;}
.ds-chips a,.ds-chips span{
  display:inline-block;padding:.42rem .85rem;border-radius:999px;
  border:1px solid var(--ds-line);background:#fff;font-size:.88rem;
  color:var(--ds-body);text-decoration:none !important;
}
.ds-chips a:hover{border-color:var(--ds-forest-3);color:var(--ds-forest);}
.ds-chips a.on{border-color:var(--ds-forest-2);color:var(--ds-forest);font-weight:700;background:var(--ds-sage-soft);}
.ds-chips-static span{background:var(--ds-cream);}

/* ── 롱테일 링크 그리드 ─────────────────────────────────── */
.ds-ltgrid{
  display:grid;gap:.5rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,13.5rem),1fr));
}
.ds-ltgrid a{
  display:block;padding:.62rem .85rem;border-radius:var(--ds-radius-sm);
  border:1px solid var(--ds-line);background:#fff;font-size:.9rem;
  color:var(--ds-body);text-decoration:none !important;line-height:1.5;
}
.ds-ltgrid a:hover{border-color:var(--ds-forest-3);color:var(--ds-forest);background:var(--ds-sage-soft);}
.ds-ltgrid a em{display:block;font-style:normal;font-size:.76rem;color:var(--ds-muted);margin-top:.15rem;}

/* ── 페이지네이션 ───────────────────────────────────────── */
.ds-pager{display:flex;gap:.35rem;justify-content:center;margin:1.6rem 0;flex-wrap:wrap;}
.ds-pager a,.ds-pager strong{
  min-width:2.2rem;text-align:center;padding:.4rem .6rem;border-radius:var(--ds-radius-sm);
  border:1px solid var(--ds-line);background:#fff;font-size:.9rem;text-decoration:none !important;
}
.ds-pager strong{border-color:var(--ds-forest-2);color:var(--ds-forest);background:var(--ds-sage-soft);}

/* ── 안내 상자 ──────────────────────────────────────────── */
.ds-note{
  background:var(--ds-cream);border:1px solid var(--ds-line);border-left:4px solid var(--ds-sage);
  border-radius:var(--ds-radius-sm);padding:1.1rem 1.2rem;color:var(--ds-body);
  font-size:.92rem;line-height:1.9;
}
.ds-note a{color:var(--ds-forest-2);text-decoration:underline;text-underline-offset:3px;}

/* ── FAQ ────────────────────────────────────────────────── */
.ds-faq dl{margin:0;}
.ds-faq dt{
  font-weight:700;color:var(--ds-ink);margin:1rem 0 .35rem;font-size:.98rem;line-height:1.6;
  padding-left:1.4rem;position:relative;
}
.ds-faq dt::before{content:"Q";position:absolute;left:0;color:var(--ds-forest-3);font-weight:800;}
.ds-faq dd{
  margin:0 0 .2rem;padding-left:1.4rem;color:var(--ds-body);font-size:.93rem;line-height:1.9;
  position:relative;
}
.ds-faq dd::before{content:"A";position:absolute;left:0;color:var(--ds-gold);font-weight:800;}

/* ── 업소 상세 ──────────────────────────────────────────── */
.ds-detail-top{
  display:grid;grid-template-columns:minmax(0,19rem) minmax(0,1fr);gap:1.5rem;
  align-items:start;margin:1.4rem 0 2rem;
}
@media (max-width:720px){.ds-detail-top{grid-template-columns:minmax(0,1fr);}}
.ds-hero-img{
  margin:0;border-radius:var(--ds-radius);overflow:hidden;
  border:1px solid var(--ds-line);box-shadow:var(--ds-shadow);
}
.ds-hero-img img{display:block;width:100%;height:auto;}
.ds-facts{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));margin:0;}
.ds-fact{
  background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-sm);padding:.7rem .85rem;
}
.ds-fact b{display:block;font-size:.74rem;color:var(--ds-muted);font-weight:600;margin-bottom:.25rem;letter-spacing:.02em;}
.ds-fact span{font-size:.92rem;color:var(--ds-ink);line-height:1.6;}
.ds-prose{max-width:46rem;line-height:1.95;color:var(--ds-body);font-size:1rem;}
.ds-course-list{margin:0;padding-left:1.2rem;line-height:2;color:var(--ds-body);}

/* ── 홈 ─────────────────────────────────────────────────── */
.ds-home{margin:0;}
.ds-hero{
  border-radius:var(--ds-radius);overflow:hidden;margin:0 0 1.6rem;
  background:
    radial-gradient(700px 340px at 88% 8%, rgba(228,195,139,.22), transparent 60%),
    linear-gradient(135deg,#671E5F 0%,#962C8C 52%,#BD42B0 100%);
  color:#fff;box-shadow:var(--ds-shadow-lg);
}
.ds-hero-inner{padding:3rem 2.2rem 3.2rem;max-width:46rem;}
.ds-hero .ds-eyebrow{color:var(--ds-gold-soft);}
.ds-hero-title{
  font-family:var(--ds-serif);font-size:2.2rem;line-height:1.4;margin:.6rem 0 .9rem;
  color:#fff;letter-spacing:-.02em;
}
.ds-hero-lead{font-size:1rem;line-height:1.95;color:rgba(255,255,255,.9);margin:0 0 1.5rem;}
.ds-hero-lead b{color:#fff;}
.ds-hero-cta{display:flex;gap:.6rem;flex-wrap:wrap;}
.ds-hero .ds-btn-ghost{background:rgba(255,255,255,.1);color:#fff !important;border-color:rgba(255,255,255,.45);}
.ds-hero .ds-btn-ghost:hover{background:rgba(255,255,255,.2);}
.ds-hero .ds-btn-primary{background:#fff;color:var(--ds-forest) !important;}
.ds-hero .ds-btn-primary:hover{background:var(--ds-sage-soft);}

/* 종목 아이콘 바 — 타일 모양(정사각 라운드)과 픽토그램 전부 원본과 다르다 */
.ds-iconbar{
  display:grid;gap:.7rem;margin:0 0 2rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,7.4rem),1fr));
}
.ds-ic{
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  padding:1rem .5rem .9rem;background:#fff;border:1px solid var(--ds-line);
  border-radius:var(--ds-radius);text-decoration:none !important;transition:.16s;
}
.ds-ic:hover{border-color:var(--ic);transform:translateY(-2px);box-shadow:var(--ds-shadow);}
.ds-ic .ico{
  display:grid;place-items:center;width:3rem;height:3rem;
  border-radius:1.1rem 1.1rem 1.1rem .4rem;   /* 원본은 원형이었다 — 모양을 갈랐다 */
  background:var(--icbg);color:var(--ic);
}
.ds-ic .ico svg{width:1.6rem;height:1.6rem;}
.ds-ic .tx{font-size:.8rem;color:var(--ds-body);text-align:center;line-height:1.45;font-weight:600;}

.ds-panel{
  background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius);
  padding:1.8rem;margin:0 0 2rem;box-shadow:var(--ds-shadow);
}
.ds-panel-in h3{font-family:var(--ds-serif);font-size:1.45rem;color:var(--ds-ink);margin:.3rem 0 .5rem;}
.ds-panel-in>p{color:var(--ds-muted);font-size:.93rem;line-height:1.85;margin:0 0 1.1rem;max-width:48rem;}

.ds-steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:.7rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));}
.ds-steps li{
  counter-increment:s;background:#fff;border:1px solid var(--ds-line);
  border-radius:var(--ds-radius-sm);padding:1rem 1.1rem 1.1rem 3rem;position:relative;
}
.ds-steps li::before{
  content:counter(s);position:absolute;left:1rem;top:1rem;width:1.5rem;height:1.5rem;
  border-radius:.5rem .5rem .5rem .15rem;background:var(--ds-forest-2);color:#fff;
  display:grid;place-items:center;font-size:.8rem;font-weight:800;
}
.ds-steps li b{display:block;color:var(--ds-ink);margin-bottom:.3rem;font-size:.98rem;}
.ds-steps li span{color:var(--ds-muted);font-size:.88rem;line-height:1.8;}

.ds-guide-grid{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));}
.ds-guide{
  display:block;background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-sm);
  padding:1rem 1.1rem;text-decoration:none !important;transition:.16s;
}
.ds-guide:hover{border-color:var(--ds-forest-3);background:var(--ds-sage-soft);}
.ds-guide b{display:block;color:var(--ds-ink);margin-bottom:.3rem;}
.ds-guide span{color:var(--ds-muted);font-size:.86rem;line-height:1.7;}

.ds-banner-wrap{margin:2.4rem 0 1rem;}
.ds-banner{
  display:flex;gap:1.4rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:linear-gradient(120deg,#2A1029 0%,#671E5F 100%);color:#fff;
  border-radius:var(--ds-radius);padding:1.8rem 2rem;box-shadow:var(--ds-shadow-lg);
}
.ds-banner h3{font-family:var(--ds-serif);color:#fff;font-size:1.35rem;margin:.35rem 0 .5rem;}
.ds-banner p{color:rgba(255,255,255,.85);font-size:.92rem;line-height:1.85;margin:0;max-width:34rem;}
.ds-banner-tag{
  display:inline-block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ds-gold-soft);font-weight:700;
}

@media (max-width:640px){
  .ds-hero-inner{padding:2.2rem 1.3rem 2.4rem;}
  .ds-hero-title{font-size:1.7rem;}
  .ds-h1{font-size:1.5rem;}
  .ds-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
  .ds-card-name{font-size:.92rem;}
}
