/* 테마 ⑤ 루틴 필라테스 — Variant 시안 이식(B-10). 출처: design/variant/routine/v1-2026-09-26.html (2026-09-26).
   시안 값 그대로: 바탕 #0a0a09(위 가운데 #2b291c → #161510 방사 그라데이션, fixed) · 글 #e6dfcc(보조 70% · 선 15%) · 올리브 #827e36(버튼·강조 요금·후기 선) · 사진 자리 #2b291c, Didot 계열(시스템 세리프, 제목·시각·가격) + Pretendard(본문), 라운드 0, 1200 컨테이너(좌우 2rem). 대비: 푸터 글 55%·입력 라벨 70%(2026-09-26 대비 점검 — 시안 15%·30%는 안 보여서 올림) · 흐린 안내/작성자 49%(시안 그대로, 보고). */
:root {
  --bg: #0a0a09;
  --bg-mid: #161510;
  --bg-light: #2b291c;
  --surface: #161510;
  --ink: #e6dfcc;
  --ink-2: rgba(230, 223, 204, 0.7);
  --ink-3: rgba(230, 223, 204, 0.7);
  --faint: rgba(230, 223, 204, 0.72); /* 2026-09-29 taste-skill: 55% → 72%(AA) */ /* 푸터 글 — 시안 15%(1.4:1)는 사업자 정보·처리방침 링크가 안 보여서 올림(2026-09-26 대비 점검) */
  --hint: rgba(230, 223, 204, 0.3);
  --line: rgba(230, 223, 204, 0.15);
  --accent: #827e36;
  --accent-ink: #0a0a09;
  --accent-soft: #2b291c;
  --band: #161510;
  --hero-bg: transparent;
  --hero-ink: #e6dfcc;
  --header-bg: rgba(10, 10, 9, 0.9);
  --font-serif: 'Didot', 'Bodoni MT', 'Times New Roman', serif;
  --font-display: var(--font-serif);
  --display-weight: 400;
  --display-tracking: 0.02em;
  --step--1: 0.85rem;
  --step-0: 15px;
  --step-1: 1.3rem;
  --radius: 0;
  --radius-lg: 0;
  --measure: none;
  --container: 1200px; /* 시안 .container: max-width 1200 + 안쪽 좌우 2rem */
  --gutter: 20px;
  --sec-pad: 4rem;
  --shadow: none;
}
@media (min-width: 768px) { :root { --gutter: 2rem; --sec-pad: 8rem; } }

/* ---------- 바탕 · 글 ---------- */
html[data-theme="fitness-routine"] body {
  line-height: 1.6; color: var(--ink-2);
  background-color: var(--bg);
  background-image: radial-gradient(circle at 50% 0%, var(--bg-light) 0%, var(--bg-mid) 50%, var(--bg) 100%);
  background-attachment: fixed;
}
html[data-theme="fitness-routine"] h1, html[data-theme="fitness-routine"] h2, html[data-theme="fitness-routine"] h3, html[data-theme="fitness-routine"] h4 { font-family: var(--font-serif); font-weight: 400; letter-spacing: .02em; color: var(--ink); line-height: 1.6; text-wrap: initial; }
html[data-theme="fitness-routine"] a { transition: color .2s ease; }
html[data-theme="fitness-routine"] :focus-visible { outline-color: var(--ink); }
html[data-theme="fitness-routine"] .prose, html[data-theme="fitness-routine"] .prose p { color: var(--ink-2); } /* 처리방침·감사 페이지는 시안 밖 */

/* 시안 .container: 폭 100%(최대 1200) + 안쪽 좌우 여백. 섹션 선이 이 1200 폭에 그어진다 */
html[data-theme="fitness-routine"] .container { width: min(100%, var(--container)); margin-inline: auto; padding-inline: var(--gutter); }

/* 버튼: 라운드 0, 1rem 2rem, .9rem 600, 자간 .1em. 올리브 바탕 + 검정 글 · 투명 + 밝은 글 1px 테두리(호버 반전) */
html[data-theme="fitness-routine"] .btn {
  min-height: auto; padding: 1rem 2rem; border: 0; border-radius: 0;
  background: var(--accent); color: var(--accent-ink); font-family: var(--font-sans); font-size: .9rem; font-weight: 600; letter-spacing: .1em; line-height: 1.6;
  transition: all .3s ease;
}
html[data-theme="fitness-routine"] .btn:hover { background: var(--ink); color: var(--accent-ink); opacity: 1; }
html[data-theme="fitness-routine"] .btn:active { transform: none; }
html[data-theme="fitness-routine"] .btn.ghost { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
html[data-theme="fitness-routine"] .btn.ghost:hover { background: var(--ink); color: var(--accent-ink); }

/* ---------- 공지 · 헤더: 70px, 검정 90% + 블러, 아래 15% 선. 상호 | 내비 4개 | 작은 올리브 버튼 ---------- */
html[data-theme="fitness-routine"] .notice { background: var(--accent); color: var(--accent-ink); font-size: .85rem; letter-spacing: .05em; }
html[data-theme="fitness-routine"] .site-header { background: var(--header-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
html[data-theme="fitness-routine"] .site-header .row { min-height: 70px; height: 70px; }
html[data-theme="fitness-routine"] .site-header .logo { font-family: var(--font-serif); font-size: 1.4rem; font-weight: 700; letter-spacing: .1em; line-height: 1.6; color: var(--ink); }
html[data-theme="fitness-routine"] .site-header nav { gap: 4rem; font-size: .9rem; letter-spacing: .05em; }
html[data-theme="fitness-routine"] .site-header nav a { color: var(--ink-2); }
html[data-theme="fitness-routine"] .site-header nav a:hover { color: var(--ink); }
/* 시안 내비는 4개(시간표·가격·강사·오시는 길)뿐 */
html[data-theme="fitness-routine"] .site-header nav a[href="#gallery"], html[data-theme="fitness-routine"] .site-header nav a[href="#reviews"],
html[data-theme="fitness-routine"] .site-header nav a[href="#faq"], html[data-theme="fitness-routine"] .site-header nav a[href="#contact"] { display: none; }
html[data-theme="fitness-routine"] .site-header .btn.header-cta { padding: .5rem 1rem; font-size: .8rem; }
@media (min-width: 768px) {
  html[data-theme="fitness-routine"] .site-header nav { display: flex; }
  html[data-theme="fitness-routine"] .site-header .btn.header-cta { display: inline-flex; }
}

/* ---------- 첫 화면: 상호(한글 + 영문 대문자) · 설명 두 줄 · 버튼 2개 · 아래로 컨테이너 폭 사진(1px 선, 600px) ---------- */
html[data-theme="fitness-routine"] .hero.hero--fullbleed {
  display: flex; flex-direction: column; align-items: stretch; min-height: 0; color: var(--ink);
  width: min(100%, var(--container)); margin-inline: auto; padding: var(--sec-pad) var(--gutter);
}
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__body { order: 1; display: block; width: auto; margin: 0 0 calc(var(--sec-pad) - 2.4rem); padding: 0; }
html[data-theme="fitness-routine"] .hero.hero--fullbleed h1 {
  font-size: clamp(2.5rem, 8vw, 5.5rem); line-height: 1.05; letter-spacing: .05em; max-width: 800px; margin-bottom: 2rem;
  text-transform: uppercase; /* 시안 h1 그대로(영문 상호가 대문자로) */
}
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__sub { font-size: clamp(1rem, 2vw, 1.25rem); max-width: 600px; margin-bottom: 4rem; color: var(--ink-2); }
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__cta { gap: 1rem; margin: 0; }
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hours-now { margin-top: 1rem; font-size: .85rem; color: var(--ink-2); }
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hours-now.open { color: var(--ink); }
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__media { order: 2; position: relative; inset: auto; z-index: 0; width: 100%; height: 400px; background: var(--bg-light); border: 1px solid var(--line); overflow: hidden; }
html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__scrim { display: none; }
/* 시안 .hero-image::after 'STUDIO VIEW' 라벨은 2026-09-26 승민 지시로 뺐다(사진 위 글자) */
@media (min-width: 1024px) { html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__media { height: 600px; } }

/* ---------- 섹션 공통: 위아래 8rem(폰 4rem), 1200 폭 아래 15% 선, 제목 2rem 자간 .1em ---------- */
html[data-theme="fitness-routine"] .section { padding-block: 0; border-top: 0; }
html[data-theme="fitness-routine"] .section > .container { padding-block: var(--sec-pad); border-bottom: 1px solid var(--line); }
html[data-theme="fitness-routine"] .section-head { display: block; margin-bottom: 0; }
html[data-theme="fitness-routine"] .section-head h2 { font-size: 2rem; letter-spacing: .1em; margin-bottom: 2rem; }

/* ---------- 그룹 수업 시간표: 표(schedule layout: table). 머리 행 아래 올리브 선, 시각(세리프) | 수업 | 요일(오른쪽), 행마다 20% 선, 안내는 표 아래 ---------- */
html[data-theme="fitness-routine"] .schedule > .container { display: flex; flex-direction: column; }
html[data-theme="fitness-routine"] .schedule .section-head { display: contents; }
html[data-theme="fitness-routine"] .schedule .section-head h2 { order: 0; }
html[data-theme="fitness-routine"] .schedule .sched { order: 1; }
html[data-theme="fitness-routine"] .schedule .section-head p { order: 2; margin-top: 2rem; font-size: .85rem; color: var(--ink-2); }
html[data-theme="fitness-routine"] .schedule .sched__h { padding-block: 0 1rem; font-size: .75rem; font-weight: 400; letter-spacing: .15em; color: var(--ink-2); border-bottom: 1px solid var(--accent); }
html[data-theme="fitness-routine"] .schedule .sched__time, html[data-theme="fitness-routine"] .schedule .sched__title, html[data-theme="fitness-routine"] .schedule .sched__days { padding-block: 1.25rem; border-bottom-color: rgba(230, 223, 204, 0.2); vertical-align: baseline; }
html[data-theme="fitness-routine"] .schedule .sched__time { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 400; letter-spacing: .02em; line-height: 1.2; color: var(--ink); }
html[data-theme="fitness-routine"] .schedule .sched__title { font-size: .95rem; font-weight: 500; color: var(--ink); }
html[data-theme="fitness-routine"] .schedule .sched__days { font-size: .85rem; letter-spacing: .05em; color: var(--ink-2); }
@media (min-width: 768px) {
  html[data-theme="fitness-routine"] .schedule .sched__h--time { width: 150px; }
  html[data-theme="fitness-routine"] .schedule .sched__h--days { width: 180px; }
  html[data-theme="fitness-routine"] .schedule .sched__h--days, html[data-theme="fitness-routine"] .schedule .sched__days { text-align: right; padding-right: 0; }
  html[data-theme="fitness-routine"] .schedule .sched__time, html[data-theme="fitness-routine"] .schedule .sched__title, html[data-theme="fitness-routine"] .schedule .sched__days { padding-block: 1.75rem; }
  html[data-theme="fitness-routine"] .schedule .sched__time { font-size: 1.75rem; }
  html[data-theme="fitness-routine"] .schedule .sched__title { font-size: 1.05rem; }
}

/* ---------- 가격 안내: 1px 선 상자 4칸(폰 1 · 768 2 · 1024 4), 강조 요금은 올리브 바탕 ---------- */
html[data-theme="fitness-routine"] .pricing .plans { grid-template-columns: 1fr; gap: 2rem; border-top: 0; }
html[data-theme="fitness-routine"] .pricing .plans .plan { display: block; padding: 2rem; border: 1px solid var(--line); background: rgba(22, 21, 16, 0.5); transition: border-color .3s ease; }
html[data-theme="fitness-routine"] .pricing .plans .plan:hover { border-color: var(--accent); }
html[data-theme="fitness-routine"] .pricing .plans .plan.hl { padding-left: 2rem; background: var(--accent); border: 1px solid var(--accent); color: var(--accent-ink); }
html[data-theme="fitness-routine"] .pricing .plan__head { flex-wrap: nowrap; gap: .75rem; margin-bottom: 1rem; }
html[data-theme="fitness-routine"] .pricing .plan__head h3 { font-size: 1.3rem; margin-bottom: .5rem; }
html[data-theme="fitness-routine"] .pricing .plan__price { font-family: var(--font-serif); font-size: 1.35rem; font-weight: 400; letter-spacing: .02em; color: var(--ink); line-height: 1.6; }
html[data-theme="fitness-routine"] .pricing .plan__items { display: block; margin-top: 2rem; font-size: .9rem; color: var(--ink-2); }
html[data-theme="fitness-routine"] .pricing .plan__items li { padding: .5rem 0; border-top: 1px solid var(--line); letter-spacing: .05em; }
html[data-theme="fitness-routine"] .pricing .plan__items li::before { content: none; }
html[data-theme="fitness-routine"] .pricing .plan.hl h3, html[data-theme="fitness-routine"] .pricing .plan.hl .plan__price, html[data-theme="fitness-routine"] .pricing .plan.hl .plan__items { color: var(--accent-ink); }
html[data-theme="fitness-routine"] .pricing .plan.hl .plan__items li { border-top-color: rgba(10, 10, 9, 0.15); }
@media (min-width: 768px) { html[data-theme="fitness-routine"] .pricing .plans { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { html[data-theme="fitness-routine"] .pricing .plans { grid-template-columns: repeat(4, 1fr); } }

/* ---------- 강사: 2열, 이름(세리프 1.3rem) 옆 직함, 아래 소개. 시안에 사진 없음 ---------- */
html[data-theme="fitness-routine"] .staff .grid.cols-3 { grid-template-columns: 1fr; gap: 4rem; }
html[data-theme="fitness-routine"] .staff .person { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 1rem; row-gap: 0; }
html[data-theme="fitness-routine"] .staff .person img { display: none; }
html[data-theme="fitness-routine"] .staff .person h3 { font-size: 1.3rem; margin-bottom: .5rem; }
html[data-theme="fitness-routine"] .staff .person .label-mono { font-family: var(--font-sans); font-size: .85rem; letter-spacing: .05em; color: var(--ink-2); }
html[data-theme="fitness-routine"] .staff .person p { flex-basis: 100%; font-size: 15px; color: var(--ink-2); margin-top: .5rem; }
@media (min-width: 768px) { html[data-theme="fitness-routine"] .staff .grid.cols-3 { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 스튜디오: 4:3 사진 4칸(간격 .5rem, 1px 선), 왼쪽 아래 캡션(alt) ---------- */
html[data-theme="fitness-routine"] .gallery.gallery--frames .gallery__list { grid-template-columns: 1fr; gap: .5rem; }
html[data-theme="fitness-routine"] .gallery--frames .frame { position: relative; padding: 0; aspect-ratio: 4 / 3; background: var(--bg-light); border: 1px solid var(--line); box-shadow: none; }
html[data-theme="fitness-routine"] .gallery--frames .frame img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 0; }
html[data-theme="fitness-routine"] .gallery--frames .frame figcaption { position: absolute; left: 1rem; bottom: 1rem; margin: 0; text-align: left; font-style: normal; font-size: .75rem; font-weight: 600; letter-spacing: .1em; color: var(--ink); }
@media (min-width: 768px) { html[data-theme="fitness-routine"] .gallery.gallery--frames .gallery__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { html[data-theme="fitness-routine"] .gallery.gallery--frames .gallery__list { grid-template-columns: repeat(4, 1fr); } }

/* ---------- 회원 후기: 3칸, 왼쪽 올리브 2px 선, 세리프 이탤릭 1.25rem + 곧은 따옴표, 작성자 앞 대시 ---------- */
html[data-theme="fitness-routine"] .reviews > .container { display: flex; flex-direction: column; }
html[data-theme="fitness-routine"] .reviews .section-head { display: contents; }
html[data-theme="fitness-routine"] .reviews .section-head h2 { order: 0; }
html[data-theme="fitness-routine"] .reviews .reviews__list { order: 1; max-width: none; grid-template-columns: 1fr; gap: 2rem; }
html[data-theme="fitness-routine"] .reviews .section-head p { order: 2; margin-top: 2rem; font-size: .85rem; letter-spacing: .05em; }
html[data-theme="fitness-routine"] .reviews .section-head p a { color: var(--ink-2); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 4px; }
html[data-theme="fitness-routine"] .reviews .section-head p a:hover { color: var(--ink); text-decoration-color: var(--accent); }
html[data-theme="fitness-routine"] .reviews .reviews__list .review { display: block; padding: 0 0 0 2rem; border-top: 0; border-left: 2px solid var(--accent); }
html[data-theme="fitness-routine"] .reviews .reviews__list .review p { margin-bottom: 1rem; font-family: var(--font-serif); font-style: italic; font-size: 1.25rem; line-height: 1.5; color: var(--ink); }
html[data-theme="fitness-routine"] .reviews .reviews__list .review p::before, html[data-theme="fitness-routine"] .reviews .reviews__list .review p::after { content: '"'; }
html[data-theme="fitness-routine"] .reviews .review footer { font-size: .85rem; letter-spacing: .05em; color: var(--ink-2); opacity: .7; }
html[data-theme="fitness-routine"] .reviews .review footer::before { content: ""; display: inline-block; width: 1rem; height: 1px; margin-right: .5rem; vertical-align: middle; background: currentColor; }
@media (min-width: 768px) { html[data-theme="fitness-routine"] .reviews .reviews__list { grid-template-columns: repeat(3, 1fr); } }

/* ---------- 자주 묻는 질문: 전부 펼침, 위 선 행, 세리프 질문 1.1rem ---------- */
html[data-theme="fitness-routine"] .faq .faq__list { max-width: none; }
html[data-theme="fitness-routine"] .faq .faq__item { margin: 0; border-top: 1px solid var(--line); }
html[data-theme="fitness-routine"] .faq .faq__item:last-child { border-bottom: 1px solid var(--line); }
html[data-theme="fitness-routine"] .faq .faq__q { margin: 0; padding: 2rem 0; font-size: 1.1rem; font-weight: 400; letter-spacing: .02em; line-height: normal; }
html[data-theme="fitness-routine"] .faq .faq__a { padding-bottom: 2rem; color: var(--ink-2); }

/* ---------- 오시는 길: 항목 80px | 값, 지도 링크 2개(밑줄 글자) ---------- */
html[data-theme="fitness-routine"] .location .loc__list { display: block; }
html[data-theme="fitness-routine"] .location .loc__dl { grid-template-columns: 80px 1fr; gap: 1rem 0; margin-bottom: 2rem; font-size: 15px; }
html[data-theme="fitness-routine"] .location .loc__dl dt { font-size: .9rem; font-weight: 400; letter-spacing: .05em; color: var(--ink); }
html[data-theme="fitness-routine"] .location .loc__dl dd { color: var(--ink-2); }
html[data-theme="fitness-routine"] .location .loc__off { color: var(--ink-2); }
html[data-theme="fitness-routine"] .location .loc__cta { gap: 1rem; }
html[data-theme="fitness-routine"] .location .loc__cta .btn.ghost {
  min-height: auto; padding: 0; border: 0; background: none; color: var(--ink-2);
  font-size: .85rem; font-weight: 400; letter-spacing: .05em;
  text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 4px;
}
html[data-theme="fitness-routine"] .location .loc__cta .btn.ghost:hover { color: var(--ink); text-decoration-color: var(--accent); }

/* ---------- 체험 수업 신청: 밑줄 입력칸, 폭 전체 올리브 보내기, 그 아래 전화번호 ---------- */
html[data-theme="fitness-routine"] .contact .contact__grid { display: block; }
html[data-theme="fitness-routine"] .contact .section-head p { display: none; } /* 시안에 없는 안내 문장 */
html[data-theme="fitness-routine"] .contact .form { display: block; max-width: none; }
html[data-theme="fitness-routine"] .contact .form > label { display: block; margin-bottom: 2rem; font-weight: 400; }
html[data-theme="fitness-routine"] .contact .form > label > span { display: block; font-size: .85rem; letter-spacing: .05em; color: var(--ink-2); } /* 시안 30%(2.2:1)는 입력 칸 이름이 안 보여서 보조 글색으로(2026-09-26 대비 점검) */
html[data-theme="fitness-routine"] .contact .form input:not([type=checkbox]), html[data-theme="fitness-routine"] .contact .form textarea {
  min-height: auto; padding: 1rem 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent;
  font-size: 1rem; color: var(--ink); color-scheme: dark; transition: border-color .3s;
}
html[data-theme="fitness-routine"] .contact .form input:not([type=checkbox]):focus, html[data-theme="fitness-routine"] .contact .form textarea:focus { border-color: var(--accent); }
html[data-theme="fitness-routine"] .contact .form input::placeholder { color: var(--hint); }
html[data-theme="fitness-routine"] .contact .form textarea { min-height: 100px; }
html[data-theme="fitness-routine"] .contact .consent { margin-bottom: 2rem; padding: 1rem; border: 1px solid var(--line); border-radius: 0; background: transparent; font-size: .85rem; }
html[data-theme="fitness-routine"] .contact .consent__check span { color: var(--ink-2); }
html[data-theme="fitness-routine"] .contact .consent__items b { color: var(--ink); }
html[data-theme="fitness-routine"] .contact .form__actions { flex-direction: column-reverse; align-items: stretch; gap: 1rem; }
html[data-theme="fitness-routine"] .contact .form__actions .btn { width: 100%; }
html[data-theme="fitness-routine"] .contact .contact__phone { align-self: flex-start; font-size: .9rem; color: var(--ink-2); }

/* 시안 .contact-section: 오시는 길 | 신청 한 줄(가운데 간격 8rem), 1200 폭 선 하나. main을 4트랙 격자로 */
@media (min-width: 768px) {
  html[data-theme="fitness-routine"] main { display: grid; grid-template-columns: 1fr minmax(0, calc(var(--container) / 2)) minmax(0, calc(var(--container) / 2)) 1fr; }
  html[data-theme="fitness-routine"] main > * { grid-column: 1 / -1; min-width: 0; }
  html[data-theme="fitness-routine"] main > .location { grid-column: 2; }
  html[data-theme="fitness-routine"] main > .contact { grid-column: 3; }
  html[data-theme="fitness-routine"] main > .location > .container { width: auto; height: 100%; padding-right: 4rem; }
  html[data-theme="fitness-routine"] main > .contact > .container { width: auto; height: 100%; padding-left: 4rem; }
}

/* ---------- 푸터: 1200 폭 위 선, 15% 글(시안 그대로), 상호·사업자 정보 세로 → 링크 | © ---------- */
html[data-theme="fitness-routine"] .footer { padding: 0; border-top: 0; font-size: .85rem; letter-spacing: .05em; color: var(--faint); }
html[data-theme="fitness-routine"] .footer .footer__grid { display: flex; flex-wrap: wrap; gap: .5rem 2rem; padding-block: 4rem; border-top: 1px solid var(--line); }
html[data-theme="fitness-routine"] .footer .footer__brand { flex-basis: 100%; }
html[data-theme="fitness-routine"] .footer .footer__brand strong { font-size: .85rem; font-weight: 400; color: var(--faint); }
html[data-theme="fitness-routine"] .footer .footer__brand p { display: none; } /* 시안 푸터에 한 줄 소개 없음 */
html[data-theme="fitness-routine"] .footer .footer__biz { order: 2; flex-basis: 100%; margin: 0 0 1.5rem; color: var(--faint); font-size: .85rem; }
html[data-theme="fitness-routine"] .footer .footer__links { order: 3; gap: .5rem 2rem; }
html[data-theme="fitness-routine"] .footer .footer__links a { color: var(--faint); }
html[data-theme="fitness-routine"] .footer .footer__links a:hover { color: var(--ink); text-decoration: none; }
html[data-theme="fitness-routine"] .footer .footer__copy { order: 4; margin: 0; color: var(--faint); font-size: .85rem; }
html[data-theme="fitness-routine"] .example-note { margin: 0; border-top: 0; color: var(--ink-2); }
html[data-theme="fitness-routine"] .mobile-bar { background: var(--bg); border-top-color: var(--line); }
html[data-theme="fitness-routine"] .mobile-bar a { color: var(--ink-2); }
html[data-theme="fitness-routine"] .mobile-bar a strong { color: var(--ink); }
html[data-theme="fitness-routine"] .mobile-bar a.primary { background: var(--accent); }
html[data-theme="fitness-routine"] .mobile-bar a.primary, html[data-theme="fitness-routine"] .mobile-bar a.primary strong { color: var(--accent-ink); }


/* ---------- 2026-09-29 taste-skill 병합 + 연출 — 승민 "지금 강도가 제일 좋아요, 전부 샘플 사이트" ----------
   이야기 하나: "숨을 들이쉬고 내쉬는 필라테스" — 예약 버튼이 호흡하듯 천천히 부풀었다 가라앉고, 시간표 줄은 스트레칭하듯 옆으로 늘어나며 나타난다.
   공통: 첫 화면 글이 차례로 톡 떠오름 · 섹션 제목·항목·카드가 들어오면 튀어 오르듯 · 사진은 당겨졌다 제자리.
   전부 CSS(스크롤 타임라인 view(), 안 되는 브라우저는 그냥 보임) · transform·opacity·clip-path · 모션 줄이기면 멈춤. */
@media (prefers-reduced-motion: no-preference) {
  html[data-theme="fitness-routine"] .hero .hero__body > * { animation: rt-in .9s cubic-bezier(.34, 1.3, .64, 1) backwards; }
  html[data-theme="fitness-routine"] .hero .hero__body > :nth-child(2) { animation-delay: .12s; }
  html[data-theme="fitness-routine"] .hero .hero__body > :nth-child(3) { animation-delay: .24s; }
  html[data-theme="fitness-routine"] .hero .hero__body > :nth-child(4) { animation-delay: .36s; }
  html[data-theme="fitness-routine"] .hero .hero__body > :nth-child(n+5) { animation-delay: .48s; }
  @supports (animation-timeline: view()) {
    html[data-theme="fitness-routine"] .section-head, html[data-theme="fitness-routine"] .features .feat, html[data-theme="fitness-routine"] .staff .person, html[data-theme="fitness-routine"] .reviews .review, html[data-theme="fitness-routine"] .faq__item, html[data-theme="fitness-routine"] .loc__block, html[data-theme="fitness-routine"] .loc__col, html[data-theme="fitness-routine"] .pricing .plan, html[data-theme="fitness-routine"] .plan-card, html[data-theme="fitness-routine"] .menu .mrow, html[data-theme="fitness-routine"] .columns__cat, html[data-theme="fitness-routine"] .notices__list li, html[data-theme="fitness-routine"] .case, html[data-theme="fitness-routine"] .process .steps li, html[data-theme="fitness-routine"] .sched__table tbody tr, html[data-theme="fitness-routine"] .contact .form { animation: rt-up linear both; animation-timeline: view(); animation-range: entry 0% entry 80%; }
    html[data-theme="fitness-routine"] .gallery img, html[data-theme="fitness-routine"] .case img { animation: rt-settle linear both; animation-timeline: view(); animation-range: entry 0% cover 50%; }
  }
}
@keyframes rt-in { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes rt-up { from { opacity: 0; transform: translateY(40px) scale(.97); } 70% { opacity: 1; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes rt-settle { from { transform: scale(1.12); } to { transform: none; } }

html[data-theme="fitness-routine"] .sched__table tbody tr { transform-origin: left center; }
@media (prefers-reduced-motion: no-preference) {
  html[data-theme="fitness-routine"] .hero .hero__cta .btn:first-child { animation: rt-breathe 4.8s ease-in-out 2s infinite; }
  @supports (animation-timeline: view()) {
    html[data-theme="fitness-routine"] .sched__table tbody tr { animation-name: rt-stretch; }
    html[data-theme="fitness-routine"] .hero.hero--fullbleed .hero__media img { animation: rt-zoom linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
  }
}
@keyframes rt-breathe { 0%, 100% { transform: scale(1); } 45% { transform: scale(1.045); } }
@keyframes rt-stretch { from { opacity: 0; transform: scaleX(.8); } to { opacity: 1; transform: none; } }
@keyframes rt-zoom { from { transform: scale(1.15); } to { transform: scale(1); } }

/* 사진이 당겨졌다 제자리로 오는 동안 칸 밖으로 나가 가로 스크롤을 만들지 않게 */
html[data-theme="fitness-routine"] .gallery__list > li, html[data-theme="fitness-routine"] .gallery .frame, html[data-theme="fitness-routine"] .case { overflow: clip; }
