/*
Theme Name: 스마트 필라테스 (Smart Pilates)
Theme URI: https://growthmove.kr
Author: 스마트워크앤라이프
Description: 필라테스 프랜차이즈 통임대형 SEO 네트워크 테마. 지점 허브 구조(내장 15 + 관리자 추가), Rank Math 연동, 데모 고지 상시 노출.
Version: 2.0.3
Text Domain: gyeol-pilates
*/

/* ============ Tokens ============ */
:root{
  --oat:#F6F3EE;
  --linen:#EDE7DE;
  --paper:#FCFBF8;
  --ink:#262220;
  --ink-soft:#4A443F;
  --mocha:#8C6F5E;
  --mocha-deep:#6E5546;
  --stone:#A39B90;
  --line:#DDD5CA;
  --max:1120px;
  --serif:'Noto Serif KR',serif;
  --sans:'Pretendard Variable',Pretendard,-apple-system,'Noto Sans KR',sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--sans);color:var(--ink);background:var(--oat);line-height:1.75;font-size:16px;-webkit-font-smoothing:antialiased;word-break:keep-all}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
[hidden]{display:none !important}

.gp-wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.gp-serif{font-family:var(--serif);font-weight:300;letter-spacing:-.01em}

/* eyebrow: 얇은 수직 라인 + 라벨 — 시그니처 모티프의 축소형 */
.gp-eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.28em;color:var(--mocha);text-transform:uppercase;margin-bottom:22px}
.gp-eyebrow::before{content:'';width:1px;height:26px;background:var(--mocha);display:block}

/* ============ 데모 고지 바 (상시 노출 — 표시광고법 대응) ============ */
.gp-disclosure{position:sticky;top:0;z-index:120;background:var(--ink);color:#EDE7DE;font-size:12.5px;letter-spacing:.02em;text-align:center;padding:9px 16px;line-height:1.5}
.gp-disclosure strong{color:#fff;font-weight:600}
.gp-disclosure a{color:#D8C7B8;text-decoration:underline;text-underline-offset:2px}

/* ============ Header ============ */
.gp-header{position:sticky;top:37px;z-index:110;background:rgba(246,243,238,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.gp-header-in{max-width:var(--max);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:66px}
.gp-logo{font-family:var(--serif);font-size:21px;font-weight:400;letter-spacing:.06em}
.gp-logo em{font-style:normal;color:var(--mocha)}
.gp-nav{display:flex;gap:30px;align-items:center;font-size:14.5px;color:var(--ink-soft)}
.gp-nav a{padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.gp-nav a:hover{color:var(--ink);border-color:var(--mocha)}
.gp-nav .gp-cta{border:1px solid var(--ink);padding:9px 20px;border-radius:999px;color:var(--ink);transition:background .2s,color .2s}
.gp-nav .gp-cta:hover{background:var(--ink);color:var(--oat)}
.gp-menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px}
.gp-menu-btn span{display:block;width:22px;height:1.5px;background:var(--ink);margin:5px 0;transition:.25s}

/* 지점 드롭다운 */
.gp-drop{position:relative}
.gp-drop>a::after{content:'↓';font-size:10px;margin-left:6px;color:var(--stone)}
.gp-drop-panel{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(6px);background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px 22px;display:grid;grid-template-columns:repeat(3,max-content);gap:8px 26px;opacity:0;visibility:hidden;transition:.22s;box-shadow:0 18px 40px rgba(38,34,32,.08);white-space:nowrap}
.gp-drop:hover .gp-drop-panel,.gp-drop:focus-within .gp-drop-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.gp-drop-panel a{font-size:14px;color:var(--ink-soft);padding:4px 0}
.gp-drop-panel a:hover{color:var(--mocha)}

/* ============ Hero ============ */
.gp-hero{padding:88px 0 96px;position:relative;overflow:hidden}
.gp-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.gp-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(34px,4.6vw,56px);line-height:1.32;letter-spacing:-.015em}
.gp-hero h1 .gp-accent{color:var(--mocha)}
.gp-hero p.gp-lead{margin-top:26px;font-size:16.5px;color:var(--ink-soft);max-width:34em}
.gp-hero-actions{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap}
.gp-btn{display:inline-flex;align-items:center;gap:8px;font-size:15px;padding:14px 30px;border-radius:999px;border:1px solid var(--ink);transition:.22s;cursor:pointer}
.gp-btn-solid{background:var(--ink);color:var(--oat)}
.gp-btn-solid:hover{background:var(--mocha-deep);border-color:var(--mocha-deep)}
.gp-btn-ghost{color:var(--ink)}
.gp-btn-ghost:hover{background:var(--ink);color:var(--oat)}

/* 시그니처: 히어로를 관통하는 수직 라인 */
.gp-plumb{position:relative}
.gp-plumb::before{content:'';position:absolute;left:14px;top:-88px;bottom:-96px;width:1px;background:linear-gradient(to bottom,transparent,var(--mocha) 18%,var(--mocha) 82%,transparent);opacity:.55}
.gp-plumb>*{padding-left:52px}
.gp-plumb .gp-plumb-dot{position:absolute;left:11px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--mocha);padding:0}

.gp-hero-visual{position:relative}
.gp-hero-visual .gp-frame{aspect-ratio:4/5;border-radius:200px 200px 18px 18px;overflow:hidden;background:linear-gradient(160deg,var(--linen),#E3D9CC 55%,#D8CCBD)}
.gp-hero-visual img{width:100%;height:100%;object-fit:cover}
.gp-hero-visual .gp-caption{margin-top:14px;font-size:12.5px;color:var(--stone);letter-spacing:.14em;text-align:right}

/* ============ Section shell ============ */
.gp-sec{padding:96px 0}
.gp-sec-linen{background:var(--linen)}
.gp-sec-paper{background:var(--paper)}
.gp-sec-head{max-width:640px;margin-bottom:56px}
.gp-sec-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.2vw,38px);line-height:1.4}
.gp-sec-head p{margin-top:16px;color:var(--ink-soft);font-size:15.5px}

/* ============ 지점 그리드 ============ */
.gp-branch-groups{display:grid;gap:44px}
.gp-bgroup h3{font-size:13px;letter-spacing:.24em;color:var(--stone);margin-bottom:18px;font-weight:600}
.gp-bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gp-bcard{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:26px 26px 24px;transition:.24s;position:relative;overflow:hidden}
.gp-bcard::after{content:'';position:absolute;left:26px;bottom:0;width:0;height:2px;background:var(--mocha);transition:width .3s}
.gp-bcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(38,34,32,.07)}
.gp-bcard:hover::after{width:calc(100% - 52px)}
.gp-bcard .gp-bname{font-family:var(--serif);font-size:20px;font-weight:400}
.gp-bcard .gp-bkey{margin-top:6px;font-size:13.5px;color:var(--mocha)}
.gp-bcard .gp-bdesc{margin-top:12px;font-size:14px;color:var(--ink-soft);line-height:1.65}

/* ============ 프로그램 ============ */
.gp-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gp-pcard{border-radius:16px;overflow:hidden;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;transition:.24s}
.gp-pcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(38,34,32,.07)}
.gp-pcard .gp-pimg{aspect-ratio:3/2;background:linear-gradient(150deg,var(--linen),#DDD0C0)}
.gp-pcard .gp-pimg img{width:100%;height:100%;object-fit:cover}
.gp-pcard .gp-pbody{padding:22px 24px 24px}
.gp-pcard h3{font-family:var(--serif);font-size:19px;font-weight:400}
.gp-pcard .gp-psub{font-size:13px;color:var(--mocha);margin-top:4px}
.gp-pcard p{margin-top:10px;font-size:14px;color:var(--ink-soft);line-height:1.65}

/* ============ 철학 (결) ============ */
.gp-phil{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.gp-phil .gp-frame{aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:linear-gradient(160deg,#E9E1D5,#D8CCBD)}
.gp-phil .gp-frame img{width:100%;height:100%;object-fit:cover}
.gp-phil-list{display:grid;gap:0;margin-top:34px}
.gp-phil-item{display:flex;gap:22px;padding:20px 0;border-top:1px solid var(--line)}
.gp-phil-item:last-child{border-bottom:1px solid var(--line)}
.gp-phil-item .gp-k{font-family:var(--serif);color:var(--mocha);font-size:18px;min-width:2.4em}
.gp-phil-item div p{font-size:14.5px;color:var(--ink-soft);margin-top:4px}
.gp-phil-item div strong{font-weight:600;font-size:15.5px}

/* ============ 블로그 ============ */
.gp-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gp-blog-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:26px;transition:.24s;display:flex;flex-direction:column;gap:10px}
.gp-blog-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(38,34,32,.07)}
.gp-blog-card .gp-tag{font-size:12px;letter-spacing:.16em;color:var(--mocha)}
.gp-blog-card h3{font-family:var(--serif);font-size:17.5px;font-weight:400;line-height:1.5}
.gp-blog-card time{font-size:12.5px;color:var(--stone)}

/* ============ 제휴 밴드 ============ */
.gp-partner{background:var(--ink);color:var(--oat);border-radius:24px;padding:64px 56px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.gp-partner h2{font-family:var(--serif);font-weight:300;font-size:clamp(24px,3vw,34px);line-height:1.45}
.gp-partner p{margin-top:14px;color:#CBC2B7;font-size:15px}
.gp-partner .gp-btn{border-color:var(--oat);color:var(--oat);justify-self:end}
.gp-partner .gp-btn:hover{background:var(--oat);color:var(--ink)}

/* ============ 지점 상세 ============ */
.gp-branch-hero{padding:76px 0 64px}
.gp-branch-hero .gp-kicker{font-size:13px;letter-spacing:.26em;color:var(--mocha);margin-bottom:18px}
.gp-branch-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,46px);line-height:1.38}
.gp-branch-hero .gp-meta{margin-top:22px;display:flex;gap:26px;flex-wrap:wrap;font-size:14px;color:var(--ink-soft)}
.gp-branch-hero .gp-meta span::before{content:'—';color:var(--mocha);margin-right:8px}
.gp-branch-body{display:grid;grid-template-columns:1fr 320px;gap:64px;align-items:start}
.gp-article p{margin-bottom:20px;font-size:15.5px;color:var(--ink-soft)}
.gp-article h2{font-family:var(--serif);font-weight:400;font-size:24px;margin:44px 0 18px}
.gp-aside{position:sticky;top:130px;display:grid;gap:14px}
.gp-aside-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:24px}
.gp-aside-card h3{font-size:13px;letter-spacing:.2em;color:var(--stone);margin-bottom:14px;font-weight:600}
.gp-aside-card ul{display:grid;gap:9px}
.gp-aside-card li a{font-size:14px;color:var(--ink-soft)}
.gp-aside-card li a:hover{color:var(--mocha)}
.gp-faq{display:grid;gap:12px;margin-top:8px}
.gp-faq details{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:0 22px}
.gp-faq summary{cursor:pointer;font-size:15px;font-weight:600;padding:18px 0;list-style:none;position:relative;padding-right:28px}
.gp-faq summary::after{content:'+';position:absolute;right:2px;top:14px;font-size:20px;color:var(--mocha);font-weight:300}
.gp-faq details[open] summary::after{content:'−'}
.gp-faq details p{padding:0 0 18px;font-size:14.5px;color:var(--ink-soft)}

/* ============ 본문 공통 ============ */
.gp-content{padding:72px 0 96px}
.gp-content-narrow{max-width:760px;margin:0 auto;padding:0 24px}
.gp-content h1{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.6vw,40px);line-height:1.4;margin-bottom:14px}
.gp-content .gp-postmeta{font-size:13px;color:var(--stone);margin-bottom:38px;display:flex;gap:14px;align-items:center}
.gp-content .gp-postmeta::after{content:'';flex:1;height:1px;background:var(--line)}
.gp-content .gp-entry p{margin-bottom:20px;font-size:15.5px;color:var(--ink-soft)}
.gp-content .gp-entry h2{font-family:var(--serif);font-weight:400;font-size:23px;margin:40px 0 16px;color:var(--ink)}
.gp-content .gp-entry h3{font-size:17px;margin:30px 0 12px}
.gp-content .gp-entry ul{list-style:none;margin-bottom:20px}
.gp-content .gp-entry ul li{padding-left:20px;position:relative;margin-bottom:8px;font-size:15px;color:var(--ink-soft)}
.gp-content .gp-entry ul li::before{content:'';position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--mocha)}
.gp-content .gp-entry a{color:var(--mocha-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}

/* 블로그 목록 */
.gp-index-list{display:grid;gap:14px;max-width:760px;margin:0 auto;padding:0 24px}
.gp-index-item{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:26px 30px;transition:.22s}
.gp-index-item:hover{box-shadow:0 14px 30px rgba(38,34,32,.06)}
.gp-index-item h2{font-family:var(--serif);font-size:20px;font-weight:400;line-height:1.5}
.gp-index-item .gp-ex{margin-top:8px;font-size:14.5px;color:var(--ink-soft)}
.gp-index-item time{font-size:12.5px;color:var(--stone)}
.gp-pagenav{max-width:760px;margin:36px auto 0;padding:0 24px;display:flex;justify-content:space-between;font-size:14px;color:var(--mocha-deep)}

/* ============ Footer ============ */
.gp-footer{background:var(--linen);border-top:1px solid var(--line);padding:56px 0 40px;margin-top:0}
.gp-footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.gp-footer h4{font-family:var(--serif);font-size:19px;font-weight:400;margin-bottom:14px}
.gp-footer p,.gp-footer li{font-size:13.5px;color:var(--ink-soft);line-height:1.9}
.gp-footer .gp-flabel{font-size:12px;letter-spacing:.2em;color:var(--stone);margin-bottom:12px;font-weight:600}
.gp-footer-links{columns:2;column-gap:28px}
.gp-footer-bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);font-size:12.5px;color:var(--stone);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ============ Reveal ============ */
.gp-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.gp-reveal.gp-on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.gp-reveal{opacity:1;transform:none;transition:none}}

/* ============ Mobile ============ */
@media (max-width:960px){
  .gp-hero-grid{grid-template-columns:1fr;gap:44px}
  .gp-plumb::before{top:-64px}
  .gp-bgrid,.gp-pgrid,.gp-blog-grid{grid-template-columns:1fr 1fr}
  .gp-phil{grid-template-columns:1fr;gap:40px}
  .gp-phil .gp-frame{max-width:420px;margin:0 auto}
  .gp-branch-body{grid-template-columns:1fr}
  .gp-aside{position:static}
  .gp-footer-grid{grid-template-columns:1fr 1fr}
  .gp-partner{grid-template-columns:1fr;padding:48px 36px}
  .gp-partner .gp-btn{justify-self:start}
}
@media (max-width:640px){
  .gp-nav{position:fixed;inset:103px 0 auto 0;background:var(--paper);flex-direction:column;gap:0;padding:12px 24px 22px;border-bottom:1px solid var(--line);display:none}
  .gp-nav.gp-open{display:flex}
  .gp-nav a{padding:13px 0;width:100%;border-bottom:1px solid var(--line)}
  .gp-nav .gp-cta{border:1px solid var(--ink);margin-top:14px;text-align:center;justify-content:center;display:flex}
  .gp-menu-btn{display:block}
  .gp-drop-panel{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;background:transparent;padding:4px 0 4px 16px;grid-template-columns:1fr 1fr;display:none}
  .gp-drop.gp-open .gp-drop-panel{display:grid}
  .gp-hero{padding:56px 0 64px}
  .gp-plumb>*{padding-left:34px}
  .gp-plumb::before{left:8px}
  .gp-plumb .gp-plumb-dot{left:5px}
  .gp-sec{padding:64px 0}
  .gp-bgrid,.gp-pgrid,.gp-blog-grid{grid-template-columns:1fr}
  .gp-footer-grid{grid-template-columns:1fr}
  .gp-hero-visual .gp-frame{border-radius:120px 120px 14px 14px}
}


/* ===== v2.0.0: 통계 밴드 ===== */
.gp-stats{background:var(--ink);color:var(--oat);padding:34px 0}
.gp-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.gp-stat strong{display:block;font-family:'Noto Serif KR',serif;font-weight:300;font-size:30px;letter-spacing:.02em}
.gp-stat span{display:block;margin-top:6px;font-size:12px;letter-spacing:.14em;color:var(--stone)}
@media(max-width:640px){.gp-stats{padding:24px 0}.gp-stats-row{grid-template-columns:repeat(2,1fr);gap:18px 12px}.gp-stat strong{font-size:24px}}

/* ===== v2.0.0: 관련 글 ===== */
.gp-related{margin-top:56px;padding:32px 34px;background:var(--linen);border:1px solid var(--line)}
.gp-related-title{font-size:22px;margin:8px 0 18px}
.gp-related ul{list-style:none;margin:0;padding:0}
.gp-related li{padding:11px 0;border-bottom:1px solid var(--line)}
.gp-related li:last-child{border-bottom:0}
.gp-related a{color:var(--ink);text-decoration:none}
.gp-related a:hover{color:var(--mocha-deep);text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.gp-related{padding:24px 20px}}

/* ===== v2.0.0: 모바일 하단 고정 CTA ===== */
.gp-mobile-cta{display:none}
@media(max-width:640px){
	.gp-mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 -6px 24px rgba(38,34,32,.12)}
	.gp-mobile-cta a{display:flex;align-items:center;justify-content:center;min-height:54px;font-size:15px;letter-spacing:.04em;text-decoration:none;font-weight:500}
	.gp-mcta-call{background:var(--oat);color:var(--ink);border-top:1px solid var(--line)}
	.gp-mcta-partner{background:var(--ink);color:var(--oat)}
	body{padding-bottom:54px}
	.gp-disclosure{position:relative}
}

/* ===== v2.0.0: 모바일 터치 타깃·가독성 강화 ===== */
@media(max-width:640px){
	.gp-btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;width:100%;text-align:center}
	.gp-hero-actions{flex-direction:column;gap:10px}
	.gp-branch-card a,.gp-nav a{padding-top:12px;padding-bottom:12px}
	.gp-entry{font-size:16.5px;line-height:1.85}
	.gp-entry h2{font-size:21px;margin-top:34px}
	.gp-wrap{padding-left:20px;padding-right:20px}
	.gp-faq summary{min-height:48px;display:flex;align-items:center}
}
