/* ===========================================================================
   간다GO · 광명 출장마사지 / 홈타이 — 고급 스파(Premium Spa) 디자인
   세이지 그린 · 웜 크림 · 골드 악센트 / 명조 제목 + 노토산스 본문
   =========================================================================== */
:root{
  --serif:"Nanum Myeongjo",serif;
  --sans:"Noto Sans KR","Pretendard","Apple SD Gothic Neo",system-ui,sans-serif;

  --ink:#2b322e;          /* 진한 본문 */
  --ink-2:#535d55;        /* 보조 */
  --muted:#8b938a;        /* 흐림 */
  --line:#e8e1d4;         /* 웜 헤어라인 */
  --line-2:#ddd4c2;
  --bg:#f5f1e8;           /* 크림 배경 */
  --bg-2:#efe8da;
  --card:#fffdf8;         /* 카드(아이보리) */
  --brand:#3c5a4c;        /* 세이지/포레스트 */
  --brand-d:#2c4437;
  --brand-l:#eef3ef;      /* 연한 세이지 */
  --gold:#b08d57;         /* 골드 */
  --gold-d:#97743d;
  --gold-l:#d8c39b;
  --head:#22302a;         /* 다크 포레스트 헤더 */
  --head-2:#1a2520;
  --shadow:0 10px 40px rgba(40,52,44,.08);
  --shadow-lg:0 24px 60px rgba(30,42,34,.18);
  --radius:18px;
  --max:1040px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.95;
  letter-spacing:.005em;word-break:keep-all;overflow-wrap:break-word;
  background-image:radial-gradient(circle at 12% -5%,rgba(176,141,87,.06),transparent 40%),
                   radial-gradient(circle at 100% 0%,rgba(60,90,76,.05),transparent 42%);
  background-attachment:fixed;
}
a{color:var(--brand-d);text-decoration:none;transition:.2s}
a:hover{color:var(--gold-d);text-decoration:none}
img{max-width:100%}
.container{max-width:var(--max);margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:14px;top:14px;background:#fff;padding:10px 16px;z-index:200;border-radius:10px;border:1px solid var(--gold)}

/* 작은 라벨(스파 느낌 자간) */
.eyebrow,.cta-brand,.foot-label{font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.32em;text-transform:uppercase}

/* ============================ 헤더 ============================ */
.site-header{position:sticky;top:0;z-index:80;background:var(--head);
  background:linear-gradient(180deg,var(--head),var(--head-2));
  box-shadow:0 2px 0 rgba(176,141,87,.25),0 8px 26px rgba(0,0,0,.22)}
.bar{max-width:var(--max);margin:0 auto;padding:16px 22px;display:flex;align-items:center;gap:16px}
.logo{color:#f5efe2;font-family:var(--serif);font-weight:800;font-size:23px;
  display:flex;flex-direction:column;line-height:1.05;letter-spacing:.02em}
.logo span{font-family:var(--sans);font-size:10.5px;font-weight:400;color:var(--gold-l);
  margin-top:5px;letter-spacing:.26em;text-transform:uppercase}
.header-phone{margin-left:auto;border:1px solid var(--gold);color:#f3ead8;font-weight:500;
  padding:11px 22px;border-radius:999px;font-size:14.5px;letter-spacing:.02em;white-space:nowrap;
  background:linear-gradient(135deg,rgba(176,141,87,.18),rgba(176,141,87,.05))}
.header-phone:hover{background:var(--gold);color:#23302a;text-decoration:none}
.menu-toggle{display:none;background:transparent;color:#f3ead8;border:1px solid rgba(216,195,155,.4);
  border-radius:10px;padding:10px 15px;font-size:14px;font-weight:500;cursor:pointer}

/* 내비 */
.site-nav{background:var(--head-2);border-top:1px solid rgba(216,195,155,.14)}
.nav-list{max-width:var(--max);margin:0 auto;padding:0 12px;list-style:none;display:flex;flex-wrap:wrap}
.nav-list>li{position:relative}
.nav-list a,.nav-list button{color:#d6ddd2;background:none;border:0;font-family:var(--sans);
  font-size:14.5px;font-weight:400;letter-spacing:.04em;padding:15px 18px;display:block;cursor:pointer;transition:.2s}
.nav-list a:hover,.nav-list button:hover{color:#fff;background:rgba(176,141,87,.14)}
.nav-list [aria-current="page"]{color:var(--gold-l);box-shadow:inset 0 -2px 0 var(--gold)}
.has-sub>button::after{content:"›";margin-left:7px;font-size:14px;opacity:.7;transform:rotate(90deg);display:inline-block}
.sub{list-style:none;margin:0;padding:10px 0;position:absolute;top:100%;left:0;min-width:240px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);display:none;z-index:90}
.has-sub:hover .sub,.has-sub.open .sub{display:block}
.sub a{color:var(--ink);padding:11px 20px;font-size:14.5px}
.sub a:hover{background:var(--brand-l);color:var(--brand-d)}

/* ============================ 본문 ============================ */
main{padding:0 0 80px}
main .container{background:var(--card);margin-top:34px;border-radius:var(--radius);
  box-shadow:var(--shadow);border:1px solid var(--line);padding:46px 52px 50px;position:relative}
main .container::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:18px 18px 0 0;
  background:linear-gradient(90deg,var(--gold),var(--gold-l),var(--brand))}
.breadcrumb{font-size:13px;color:var(--muted);margin:0 0 22px;letter-spacing:.03em}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--gold-d)}
.breadcrumb .sep{margin:0 7px;color:var(--gold-l)}
.breadcrumb [aria-current="page"]{color:var(--ink-2)}

/* 제목 — 명조 */
h1{font-family:var(--serif);font-size:34px;line-height:1.42;margin:0 0 22px;
  letter-spacing:-.01em;font-weight:800;color:var(--ink)}
h1::after{content:"";display:block;width:60px;height:2px;margin-top:20px;
  background:linear-gradient(90deg,var(--gold),var(--gold-l))}
h2{font-family:var(--serif);font-size:24px;line-height:1.5;margin:48px 0 16px;font-weight:700;color:var(--brand-d);
  padding-bottom:12px;border-bottom:1px solid var(--line)}
h2 .num,h2::before{}
p{margin:0 0 18px;color:var(--ink-2);font-weight:300}
p strong,strong{color:var(--ink);font-weight:500}

/* 리드 */
.lead{font-family:var(--sans);font-size:19px;line-height:1.9;color:#39433c;font-weight:300;
  background:linear-gradient(135deg,var(--brand-l),#f3f6f2);
  border:1px solid #d8e2da;border-left:3px solid var(--gold);
  border-radius:4px 16px 16px 4px;padding:24px 28px;margin:0 0 10px}

/* 카드 그리드 */
.card-list{list-style:none;padding:0;margin:22px 0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:16px}
.card-list a{display:block;border:1px solid var(--line-2);border-radius:14px;padding:22px 22px;
  background:linear-gradient(180deg,#fffefb,#fbf7ef);transition:.25s;height:100%;position:relative;overflow:hidden}
.card-list a::after{content:"";position:absolute;left:22px;bottom:0;width:0;height:2px;background:var(--gold);transition:.3s}
.card-list a:hover{border-color:var(--gold-l);box-shadow:var(--shadow);transform:translateY(-4px)}
.card-list a:hover::after{width:40px}
.card-list strong{display:block;color:var(--brand-d);font-family:var(--serif);font-size:18px;font-weight:700}
.card-list strong::before{content:"";display:inline-block;width:7px;height:7px;margin-right:9px;
  transform:rotate(45deg);background:var(--gold);vertical-align:middle}
.card-list span{display:block;color:var(--muted);font-size:13.5px;margin-top:8px;font-weight:300;letter-spacing:.02em}

/* 절차 */
.steps{counter-reset:s;list-style:none;padding:0;margin:20px 0}
.steps li{position:relative;padding:16px 20px 16px 64px;margin:12px 0;background:var(--bg);
  border:1px solid var(--line);border-radius:12px;color:var(--ink-2);font-weight:300}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:16px;top:50%;
  transform:translateY(-50%);width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand),var(--brand-d));color:var(--gold-l);
  font-family:var(--serif);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:16px;
  border:1px solid var(--gold)}
.bullet{padding:0;margin:16px 0;list-style:none}
.bullet li{position:relative;padding:11px 0 11px 30px;color:var(--ink-2);border-bottom:1px solid var(--line);font-weight:300}
.bullet li:last-child{border-bottom:0}
.bullet li::before{content:"";position:absolute;left:4px;top:18px;width:7px;height:7px;
  transform:rotate(45deg);background:var(--gold)}
.contact-phone{font-family:var(--serif);font-size:clamp(30px,7vw,44px);font-weight:800;margin:10px 0 6px;letter-spacing:.01em}
.contact-phone a{color:var(--gold-d)}

/* 관련 링크 */
.related{margin:48px 0 0;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px}
.related h2{margin:0 0 16px;border:0;padding:0;font-size:19px;color:var(--ink)}
.related-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:11px}
.related-list a{background:var(--card);border:1px solid var(--line-2);border-radius:999px;padding:10px 20px;
  font-size:14px;font-weight:400;color:var(--brand-d);letter-spacing:.02em;transition:.2s}
.related-list a::before{content:"";display:inline-block;width:6px;height:6px;margin-right:9px;border-radius:50%;
  background:var(--gold);vertical-align:middle}
.related-list a:hover{border-color:var(--gold);background:#fff;transform:translateY(-2px)}

/* CTA */
.cta{margin:36px 0 0;color:#f3ead8;border-radius:22px;padding:44px 30px;text-align:center;position:relative;overflow:hidden;
  background:linear-gradient(150deg,var(--brand-d) 0%,var(--brand) 55%,#2a4337 100%);
  box-shadow:0 20px 50px rgba(34,48,40,.3)}
.cta::before,.cta::after{content:"";position:absolute;border:1px solid rgba(216,195,155,.35);border-radius:14px;inset:14px;pointer-events:none}
.cta::after{inset:20px;border-color:rgba(216,195,155,.18)}
.cta-brand{margin:0 0 12px;color:var(--gold-l)}
.cta-phone{display:inline-block;color:#fff;font-family:var(--serif);font-size:clamp(32px,8vw,46px);font-weight:800;letter-spacing:.02em}
.cta-phone:hover{color:var(--gold-l)}
.cta-note{font-size:14px;color:#d8e2da;margin:14px 0 0;font-weight:300}

/* 플로팅 전화 */
.float-call{position:fixed;right:22px;bottom:22px;z-index:120;display:flex;align-items:center;gap:11px;
  background:linear-gradient(135deg,var(--gold),var(--gold-d));color:#23302a;padding:14px 22px;border-radius:999px;
  font-weight:500;letter-spacing:.02em;box-shadow:0 14px 34px rgba(151,116,61,.45);border:1px solid rgba(255,255,255,.25);transition:.25s}
.float-call:hover{transform:translateY(-3px);color:#1a2520;box-shadow:0 18px 40px rgba(151,116,61,.55)}
.float-call .ico{font-size:18px;line-height:1}
.float-call .txt{display:flex;flex-direction:column;line-height:1.15;font-size:16px;font-weight:700}
.float-call .txt b{font-size:10.5px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;opacity:.85}

/* ============================ 푸터 ============================ */
.site-footer{background:linear-gradient(180deg,var(--head-2),var(--head));color:#a9b2a8;
  padding:54px 0 36px;font-size:14px;border-top:2px solid var(--gold)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:36px}
.foot-col{min-width:0}
.foot-brand{color:#f3ead8;font-family:var(--serif);font-weight:700;margin:0 0 12px;font-size:22px;letter-spacing:.03em}
.foot-desc{font-size:13.5px;color:#9aa49a;line-height:1.85;font-weight:300;margin:0 0 20px;max-width:34ch}
.foot-label{color:var(--gold-l);margin:0 0 16px}
.foot-menu{list-style:none;padding:0;margin:0}
.foot-menu li{margin:0 0 11px}
.foot-menu a{color:#c0c9bf;font-weight:300;letter-spacing:.02em;font-size:14px}
.foot-menu a:hover{color:var(--gold-l)}
.foot-phone{margin:0 0 16px}
.foot-phone a{color:var(--gold-l);font-family:var(--serif);font-weight:700;font-size:21px;letter-spacing:.02em}
.foot-meta{font-size:13px;color:#9aa49a;font-weight:300;margin:0 0 8px}
.foot-meta a{color:#c0c9bf}
.foot-meta a:hover{color:var(--gold-l)}
.foot-bottom{margin-top:38px;padding-top:24px;border-top:1px solid rgba(216,195,155,.16);
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
.foot-note{font-size:12.5px;color:#7f897e;margin:0;line-height:1.8;font-weight:300;max-width:62ch}
.foot-copy{font-size:12.5px;color:#7f897e;margin:0;font-weight:300;letter-spacing:.03em}
.foot-build{display:inline-flex;align-items:center;gap:9px;
  padding:12px 26px;border-radius:999px;font-size:14px;font-weight:500;letter-spacing:.03em;
  color:#23302a;background:linear-gradient(135deg,var(--gold-l),var(--gold));
  border:1px solid rgba(255,255,255,.3);box-shadow:0 10px 26px rgba(151,116,61,.35);transition:.25s}
.foot-build:hover{transform:translateY(-2px);color:#1a2520;
  box-shadow:0 14px 32px rgba(151,116,61,.5)}
.foot-build .ico{font-size:14px;line-height:1}

/* ============================ 반응형 ============================ */
@media(max-width:760px){
  body{font-size:16px}
  .menu-toggle{display:block;margin-left:auto;order:3}
  .header-phone{order:2;padding:9px 16px;font-size:13.5px}
  .logo{order:1;font-size:21px}
  .bar{flex-wrap:wrap;gap:12px;padding:14px 18px}
  .site-nav{display:none}
  .site-nav.open{display:block;max-height:72vh;overflow:auto}
  .nav-list{flex-direction:column;padding:0}
  .nav-list>li{border-bottom:1px solid rgba(216,195,155,.1)}
  .nav-list [aria-current="page"]{box-shadow:inset 3px 0 0 var(--gold)}
  .sub{position:static;display:block;box-shadow:none;border:0;border-radius:0;background:#16201b;padding:0}
  .sub a{color:#b3bdb1;padding-left:36px}
  .sub a:hover{background:#1d2a23}
  main .container{padding:28px 20px 32px;margin-top:18px;border-radius:14px}
  h1{font-size:26px}
  h2{font-size:21px;margin-top:38px}
  .lead{font-size:16.5px;padding:18px 18px}
  .cta{padding:34px 20px}
  .cta::before{inset:10px}.cta::after{inset:15px}
  .float-call .txt{display:none}
  .float-call{padding:16px;right:16px;bottom:16px}
  .float-call .ico{font-size:22px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px 24px}
  .foot-about{grid-column:1 / -1}
  .foot-bottom{flex-direction:column;align-items:flex-start}
}
@media(max-width:440px){.foot-grid{grid-template-columns:1fr}}
@media print{.site-header,.site-nav,.float-call,.cta{display:none}}
