/* 건강한 몸 연구소 · 공통 스타일 */
:root {
  --navy:#1F2A44; --navy-2:#2E3D61; --navy-3:#141B2D;
  --orange:#F07C28; --orange-d:#D9681A; --soft:#FFF3EA;
  --gray:#F5F5F7; --line:#E3E5EA; --ink:#1D1D1F; --sub:#6E6E73; --sub-dark:#A1A9BC;
  --r:28px; --nav:52px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:'Pretendard','Malgun Gothic','Apple SD Gothic Neo',sans-serif; font-size:17px; line-height:1.65; word-break:keep-all; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
img { max-width:100%; display:block; }
.wrap { max-width:1080px; margin:0 auto; padding:0 22px; }
.narrow { max-width:760px; }
.center { text-align:center; }

/* 글자 */
.eyebrow { color:var(--orange); font-weight:700; font-size:15px; margin:0 0 8px; letter-spacing:.2px; }
.display { font-size:clamp(38px,7vw,72px); line-height:1.12; font-weight:800; letter-spacing:-1.2px; margin:0 0 16px; }
.h1 { font-size:clamp(32px,5.4vw,56px); line-height:1.16; font-weight:800; letter-spacing:-0.9px; margin:0 0 14px; }
.h2 { font-size:clamp(26px,4vw,40px); line-height:1.22; font-weight:800; letter-spacing:-0.6px; margin:0 0 12px; }
.h3 { font-size:21px; line-height:1.35; font-weight:700; margin:0 0 6px; }
.lead { font-size:clamp(18px,2.2vw,22px); color:var(--sub); line-height:1.55; margin:0 0 10px; }
.accent { color:var(--orange); }
p { margin:0 0 12px; }

/* 링크·버튼 */
.links { display:flex; gap:22px; flex-wrap:wrap; margin-top:18px; }
.center .links, .hero .links, .hero-sub .links, .tile .links { justify-content:center; }
.more { color:var(--orange); text-decoration:none; font-weight:600; font-size:18px; }
.more::after { content:" ›"; }
.more:hover { text-decoration:underline; }
.btn { display:inline-flex; align-items:center; justify-content:center; padding:13px 24px; border-radius:980px; font-weight:700; font-size:16px; text-decoration:none; border:0; cursor:pointer; transition:background .15s, transform .15s; }
.btn:hover { transform:translateY(-1px); }
.btn-main { background:var(--orange); color:#fff; }
.btn-main:hover { background:var(--orange-d); }
.btn-line { background:transparent; color:var(--ink); border:1.5px solid #C9CCD3; }
.dark .btn-line { color:#fff; border-color:rgba(255,255,255,.45); }
.btn-kakao { background:#FEE500; color:#191919; }
.btn-kakao:hover { background:#F5DA00; }
.badge { display:inline-block; font-size:13px; font-weight:700; padding:3px 11px; border-radius:20px; background:var(--soft); color:var(--orange-d); }
.dark .badge { background:rgba(240,124,40,.18); color:#FFB27A; }

/* 섹션 */
.sec { padding:96px 0; }
.sec-sm { padding:64px 0; }
.gray { background:var(--gray); }
.dark { background:var(--navy); color:#fff; }
.dark .lead, .dark .sub { color:var(--sub-dark); }
.deep { background:var(--navy-3); color:#fff; }
.deep .lead { color:var(--sub-dark); }

/* 상단 메뉴 */
.nav { position:sticky; top:0; z-index:50; height:var(--nav); background:rgba(255,255,255,.82); backdrop-filter:saturate(180%) blur(18px); -webkit-backdrop-filter:saturate(180%) blur(18px); border-bottom:1px solid rgba(0,0,0,.06); }
.nav .wrap { height:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.nav .logo { font-weight:800; font-size:16px; text-decoration:none; color:var(--navy); white-space:nowrap; }
.nav .logo span { color:var(--orange); }
.nav ul { list-style:none; display:flex; gap:28px; margin:0; padding:0; }
.nav ul a { text-decoration:none; font-size:14px; color:#333; opacity:.85; }
.nav ul a:hover, .nav ul a.on { opacity:1; color:var(--orange-d); }
.nav .cta { padding:7px 15px; font-size:13px; }
.nav .menu { display:none; background:none; border:0; width:40px; height:40px; cursor:pointer; position:relative; }
.nav .menu span, .nav .menu span::before, .nav .menu span::after { position:absolute; left:10px; width:20px; height:2px; background:var(--navy); content:""; transition:transform .2s; }
.nav .menu span { top:19px; } .nav .menu span::before { top:-6px; left:0; } .nav .menu span::after { top:6px; left:0; }
.nav.open .menu span { background:transparent; }
.nav.open .menu span::before { transform:translateY(6px) rotate(45deg); }
.nav.open .menu span::after { transform:translateY(-6px) rotate(-45deg); }

/* 히어로 */
.hero { padding:110px 0 100px; text-align:center; }
.hero .lead { max-width:680px; margin:0 auto 10px; }
.hero-sub { padding:84px 0 72px; text-align:center; }
.hero-sub .lead { max-width:680px; margin:0 auto; }

/* 타일 (애플 스타일) */
.tiles { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:14px; max-width:1440px; margin:0 auto; }
.tile { border-radius:var(--r); padding:56px 36px 48px; text-align:center; min-height:520px; display:flex; flex-direction:column; align-items:center; overflow:hidden; position:relative; }
.tile.wide { grid-column:1 / -1; min-height:460px; }
.tile .h1 { font-size:clamp(30px,4vw,44px); }
.tile .lead { font-size:19px; max-width:460px; }
.tile .art { margin-top:auto; padding-top:28px; width:100%; display:flex; justify-content:center; }

/* 가이드 표지 그림 */
.cover { width:230px; aspect-ratio:210/297; border-radius:10px; padding:22px 18px; text-align:left; background:linear-gradient(160deg,#2A3963,#1A2440); color:#fff; box-shadow:0 30px 60px rgba(20,27,45,.35); display:flex; flex-direction:column; transform:rotate(-3deg); }
.cover small { color:var(--orange); font-weight:700; font-size:10px; }
.cover b { font-size:18px; line-height:1.35; margin:10px 0 8px; display:block; }
.cover b span { color:var(--orange); }
.cover i { font-style:normal; font-size:10.5px; color:#C9D1E3; }
.cover .bar { width:30px; height:3px; background:var(--orange); margin:14px 0; }
.cover .who { margin-top:auto; font-size:10px; color:#C9D1E3; }
.cover.big { width:300px; }
.cover.big b { font-size:23px; }

/* 4단계 그림 */
.steps4 { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; width:100%; max-width:860px; }
.steps4 div { background:#fff; border-radius:20px; padding:22px 14px; text-align:center; }
.dark .steps4 div, .deep .steps4 div { background:rgba(255,255,255,.07); }
.steps4 b { display:block; font-size:30px; color:var(--orange); line-height:1; margin-bottom:8px; font-weight:800; }
.steps4 span { font-size:15px; font-weight:700; }

/* 카드 */
.grid2 { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card { background:#fff; border-radius:24px; padding:32px 28px; }
.gray .card { background:#fff; }
.card.line { border:1px solid var(--line); }
.dark .card, .deep .card { background:rgba(255,255,255,.06); }
.card .num { font-size:46px; font-weight:800; color:var(--orange); line-height:1.05; margin-bottom:8px; }
.card .src { font-size:13px; color:var(--sub); margin-top:10px; }
.card p:last-child { margin-bottom:0; }
.ico { width:46px; height:46px; border-radius:14px; background:var(--soft); color:var(--orange); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:18px; margin-bottom:16px; }

/* 주차 */
.weeks { list-style:none; padding:0; margin:36px 0 0; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.weeks li { background:#fff; border-radius:20px; padding:22px 18px; }
.weeks .w { display:inline-block; background:var(--orange); color:#fff; font-weight:700; font-size:13px; border-radius:20px; padding:2px 11px; margin-bottom:10px; }
.weeks b { display:block; font-size:18px; margin-bottom:4px; color:var(--navy); }
.weeks span { display:block; font-size:14.5px; color:var(--sub); line-height:1.55; }

/* 체크 목록 */
.checks { list-style:none; padding:0; margin:24px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:12px 32px; text-align:left; }
.checks li { padding-left:32px; position:relative; }
.checks li::before { content:"✓"; position:absolute; left:0; top:3px; width:22px; height:22px; border-radius:50%; background:var(--orange); color:#fff; font-size:12px; display:flex; align-items:center; justify-content:center; }

/* 상품 비교 */
.compare { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }
.prod { background:#fff; border-radius:28px; padding:40px 30px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.prod .h2 { font-size:28px; margin-top:12px; }
.prod .for { color:var(--sub); font-size:15px; min-height:48px; }
.prod ul { list-style:none; padding:0; margin:18px 0 26px; text-align:left; width:100%; }
.prod li { padding:11px 0; border-top:1px solid var(--line); font-size:15.5px; }
.prod .btn { margin-top:auto; }

/* 안내 상자 */
.note { background:var(--soft); border-radius:20px; padding:22px 26px; }
.alert { background:#FFF0EE; border:1.5px solid #E5786F; border-radius:20px; padding:24px 28px; }
.alert .h3 { color:#C8372D; }
.alert ul { margin:8px 0 0; padding-left:20px; }

/* 소개 */
.about { display:grid; grid-template-columns:340px 1fr; gap:56px; align-items:center; }
.profile { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:28px; }
.photo { aspect-ratio:4/5; border-radius:28px; border:2px dashed #B9C1D1; background:var(--gray); color:var(--sub); font-size:14px; display:flex; align-items:center; justify-content:center; text-align:center; padding:18px; }
.creds { list-style:none; padding:0; margin:18px 0 22px; }
.creds li { padding:10px 0; border-bottom:1px solid var(--line); }
blockquote { margin:0; padding:20px 24px; border-left:4px solid var(--orange); background:var(--soft); border-radius:0 18px 18px 0; color:var(--navy); font-weight:700; font-size:19px; line-height:1.55; }

/* 유튜브 */
.yt-play { width:72px; height:50px; background:#FF0033; border-radius:16px; position:relative; margin:0 auto 18px; }
.yt-play::after { content:""; position:absolute; left:29px; top:15px; border-left:18px solid #fff; border-top:10px solid transparent; border-bottom:10px solid transparent; }
.vids { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px; }
.vid { background:#fff; border-radius:22px; overflow:hidden; text-align:left; }
.vid .thumb { aspect-ratio:16/9; background:linear-gradient(135deg,#2A3963,#1A2440); display:flex; align-items:center; justify-content:center; color:#C9D1E3; font-size:14px; }
.vid .body { padding:18px 20px 22px; }
.vid .tag { font-size:13px; color:var(--orange-d); font-weight:700; }

/* 알림 */
#toast { position:fixed; left:50%; bottom:28px; transform:translateX(-50%) translateY(30px); background:var(--navy); color:#fff; padding:13px 22px; border-radius:30px; font-size:15px; opacity:0; pointer-events:none; transition:.25s; z-index:99; box-shadow:0 10px 30px rgba(0,0,0,.25); }
#toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* 아래 */
.foot { background:var(--gray); color:var(--sub); font-size:13px; line-height:1.8; padding:44px 0 36px; }
.foot .cols { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-bottom:22px; border-bottom:1px solid #D2D2D7; margin-bottom:18px; }
.foot h4 { margin:0 0 6px; color:var(--ink); font-size:13px; }
.foot ul { list-style:none; padding:0; margin:0; }
.foot a { text-decoration:none; } .foot a:hover { text-decoration:underline; }
.foot .warn { margin-top:10px; }

@media (max-width:900px) {
  .nav ul { position:fixed; top:var(--nav); left:0; right:0; background:rgba(255,255,255,.97); flex-direction:column; gap:0; padding:8px 22px 18px; border-bottom:1px solid var(--line); display:none; }
  .nav.open ul { display:flex; }
  .nav ul a { display:block; padding:13px 0; font-size:17px; border-bottom:1px solid var(--line); }
  .nav .menu { display:block; }
  .nav .right { display:flex; align-items:center; gap:6px; }
  .tiles { grid-template-columns:1fr; padding:10px; gap:10px; }
  .tile { min-height:auto; padding:48px 22px 40px; }
  .grid2, .grid3, .compare, .vids, .checks { grid-template-columns:1fr; }
  .weeks { grid-template-columns:1fr; }
  .steps4 { grid-template-columns:1fr 1fr; }
  .about { grid-template-columns:1fr; gap:32px; }
  .about .photo, .about .profile { max-width:300px; }
  .foot .cols { grid-template-columns:1fr 1fr; }
  .sec { padding:72px 0; }
  .hero { padding:80px 0 72px; }
}
@media (max-width:420px) {
  .wrap { padding:0 16px; }
  .nav .cta { display:none; }
  .cover.big { width:240px; }
}
