/* ============================================================
   THANNECT — パーソナルトレーニング 専用ページ (.tp-*)
   ============================================================ */
.tp{--tp-bg:#faf5ec;--tp-bg2:#f6efe1;--tp-line:#e7d9bd;--tp-ink:#4a4038;background:var(--tp-bg)}
.tp .wrap{width:min(92%,var(--maxw));margin-inline:auto}
.tp section{position:relative;overflow:hidden}
.tp-eyebrow{font-family:'Cormorant Garamond',serif;letter-spacing:.42em;text-transform:uppercase;
  color:#b98d43;font-size:clamp(.72rem,1vw,.82rem);font-weight:600;display:flex;align-items:center;justify-content:center;gap:1em}
.tp-eyebrow::before,.tp-eyebrow::after{content:"";width:clamp(28px,4vw,58px);height:1px;background:var(--gold-light)}
.tp-eyebrow.l{justify-content:flex-start}.tp-eyebrow.l::before{display:none}
.tp-h2{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.7rem,3.4vw,2.7rem);
  letter-spacing:.1em;color:#41382e;line-height:1.5;text-align:center;margin:.5em 0 .3em}
.tp-h2 em{font-style:normal;background:linear-gradient(180deg,#d0aa64,#96773c);-webkit-background-clip:text;background-clip:text;color:transparent}
.tp-lead{font-family:'Shippori Mincho',serif;font-size:clamp(.85rem,1.05vw,1rem);line-height:2.1;color:#6a5f50;
  letter-spacing:.04em;text-align:center;max-width:60ch;margin:0 auto}
.tp-dia{width:14px;height:14px;fill:#b98d43;display:inline-block;vertical-align:middle}
.tp-leaf{position:absolute;width:clamp(70px,9vw,140px);opacity:.5;pointer-events:none;color:#d9bc85;z-index:0}

/* FV写真の見せる位置（このページ専用の上下調整） */
.tp .sp-fv .bgph img{object-position:50% 28%}

/* ---------- FV ---------- */
.tp-fv{padding:clamp(6.5rem,10vw,8.5rem) 0 clamp(3rem,6vw,5rem);
  background:radial-gradient(120% 120% at 80% 10%,#fff 0%,#fdf8ee 45%,#f7efe1 100%)}
.tp-fv .wrap{display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.tp-fv .tx .tp-eyebrow{margin-bottom:1.4em}
.tp-fv h1{font-family:'Shippori Mincho',serif;font-weight:700;font-size:clamp(2rem,4.4vw,3.6rem);
  letter-spacing:.1em;color:#41382e;line-height:1.35}
.tp-fv .rule{width:64px;height:1px;background:var(--gold);margin:1.3rem 0}
.tp-fv .sub{font-family:'Shippori Mincho',serif;font-size:clamp(.92rem,1.3vw,1.2rem);line-height:2;color:#5c5348;letter-spacing:.05em}
.tp-fv .pic{position:relative}
.tp-fv .pic .ph{aspect-ratio:1.05;border-radius:46% 46% 46% 46%/60% 60% 40% 40%;box-shadow:var(--shadow)}
.tp-fv .pic::after{content:"";position:absolute;inset:-4%;border:1px solid var(--gold-light);
  border-radius:46% 46% 46% 46%/60% 60% 40% 40%;translate:14px 14px;z-index:-1}
.tp-fv .leaf-1{right:-1%;top:6%;transform:scaleX(-1)}

/* ---------- CHANGE (before/after) ---------- */
.tp-change{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--tp-bg)}
.tp-change-wrap{display:grid;grid-template-columns:.66fr 1.34fr;gap:clamp(1.8rem,4vw,3.8rem);align-items:start}
.tp-change-head{text-align:left;position:relative;padding-top:.4rem}
.tp-change-head .tp-h2{text-align:left;margin:.5em 0 .9em}
.tp-change-head .lead{font-family:'Shippori Mincho',serif;font-size:clamp(.84rem,1vw,.96rem);line-height:2.05;color:#6a5f50;letter-spacing:.04em}
.tp-change-head .leaf{display:block;width:clamp(78px,10vw,128px);color:#d9bc85;margin-top:2.2rem;opacity:.75}
.tp-change-grid{display:grid;gap:clamp(1.3rem,2.4vw,2rem)}
.tp-change-card{background:#fff;border:1px solid var(--tp-line);border-radius:22px;box-shadow:var(--shadow-soft);
  display:grid;grid-template-columns:clamp(290px,50%,460px) 1fr;overflow:hidden}
.tp-change-card .face{position:relative}
.tp-change-card .face .ph{width:100%;height:100%;min-height:270px;border-radius:0}
.tp-change-card .face .badge{position:absolute;left:12px;top:12px;background:rgba(48,45,40,.55);color:#fff;
  font-family:'Shippori Mincho',serif;font-size:.7rem;letter-spacing:.08em;padding:.25em .9em;border-radius:999px}
.tp-change-card .body{padding:clamp(1.2rem,2vw,1.7rem)}
.tp-change-card .result{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.15rem,1.55vw,1.5rem);letter-spacing:.04em;
  background:linear-gradient(180deg,#d0aa64,#96773c);-webkit-background-clip:text;background-clip:text;color:transparent;
  padding-bottom:.6em;margin-bottom:.9em;border-bottom:1px solid var(--tp-line)}
.tp-change-card .result small{display:block;font-size:.6em;-webkit-text-fill-color:#8a7d6a;font-weight:400;margin:.2em 0 0;letter-spacing:.06em}
.tp-ba{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:clamp(.6rem,1.4vw,1.4rem)}
.tp-ba .col .cap{font-family:'Shippori Mincho',serif;letter-spacing:.1em;font-size:.76rem;color:#8a7d6a;margin-bottom:.6em}
.tp-ba .col.after .cap{color:var(--gold-deep);font-weight:600}
.tp-ba ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5em}
.tp-ba li{font-family:'Shippori Mincho',serif;font-size:clamp(.78rem,.95vw,.9rem);color:var(--tp-ink);line-height:1.55;display:flex;align-items:flex-start;gap:.5em}
.tp-ba li .lf{width:14px;height:14px;flex:0 0 auto;margin-top:.15em}
.tp-ba .arrow{width:32px;height:32px;border-radius:50%;background:linear-gradient(120deg,var(--gold),var(--gold-deep));color:#fff;display:grid;place-items:center;flex:0 0 auto;margin-top:1.5em}
.tp-ba .arrow svg{width:13px;height:13px}
.tp-change-card .note{margin-top:1.1rem;padding-top:1rem;border-top:1px dotted var(--tp-line);
  font-family:'Shippori Mincho',serif;font-size:clamp(.8rem,.95vw,.9rem);color:#6a5f50;line-height:1.85;display:flex;align-items:flex-start;gap:.55em}
.tp-change-card .note .lf{width:15px;height:15px;flex:0 0 auto;margin-top:.25em}

/* ---------- RESULT SUPPORT ---------- */
.tp-result{padding:clamp(3.5rem,7vw,6rem) 0;background:linear-gradient(180deg,#f7efe1,#f3e9d6)}
.tp-result .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,4.5vw,4.5rem);align-items:center}
/* Before/After 風の重ね配置 */
.tp-result .pics{position:relative;aspect-ratio:1/1.02}
.tp-result .pics .ph{position:absolute;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.tp-result .pics .ph img{object-position:56% 50%}
.tp-result .pics .p1{left:0;bottom:0;width:47%;aspect-ratio:.86}
.tp-result .pics .p2{right:0;top:0;width:60%;aspect-ratio:.9;z-index:2;
  border:5px solid #f7efe1;border-radius:16px}
.tp-result .pics .ba-tag{position:absolute;top:11px;left:11px;z-index:3;font-family:'Cormorant Garamond',serif;
  letter-spacing:.12em;font-size:.66rem;padding:.28em 1em;border-radius:999px;color:#fff}
.tp-result .pics .ba-tag.b{background:rgba(64,60,52,.72)}
.tp-result .pics .ba-tag.a{background:linear-gradient(120deg,var(--gold),var(--gold-deep))}
.tp-result .tx .tp-h2{text-align:left}
.tp-result .tx .tp-lead{text-align:left;margin:0 0 2rem}
.tp-result-list{display:flex;flex-direction:column;gap:1.1rem}
.tp-result-item{display:flex;align-items:flex-start;gap:1.2rem;background:rgba(255,255,255,.6);border:1px solid var(--tp-line);
  border-radius:16px;padding:1.1rem 1.4rem}
.tp-result-item .no{font-family:var(--f-num);font-weight:600;font-size:1.9rem;
  color:var(--gold);line-height:1;flex:0 0 auto;min-width:1.5em}
.tp-result-item h3{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1rem,1.3vw,1.2rem);color:#41382e;letter-spacing:.04em}
.tp-result-item p{font-family:'Shippori Mincho',serif;font-size:clamp(.78rem,.95vw,.9rem);color:#6a5f50;line-height:1.85;margin-top:.35em}

/* ---------- TRAINING MENU ---------- */
.tp-menu{padding:clamp(3.5rem,7vw,6rem) 0 0;background:var(--tp-bg)}
.tp-menu .head{text-align:center;margin-bottom:clamp(2rem,4vw,3rem)}
.tp-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,1.8vw,1.5rem);max-width:1240px;margin:0 auto}
.tp-menu-card{background:#fff;border:1px solid var(--tp-line);border-radius:16px;box-shadow:var(--shadow-soft);
  padding:clamp(1.3rem,2.2vw,1.9rem);display:flex;gap:1.1rem;align-items:flex-start;transition:.4s var(--ease)}
.tp-menu-card:hover{transform:translateY(-4px)}
.tp-menu-card .no{font-family:var(--f-num);font-weight:600;font-size:2.1rem;
  color:var(--gold-light);line-height:1;flex:0 0 auto}
.tp-menu-card h3{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.02rem,1.3vw,1.22rem);color:#41382e;letter-spacing:.04em}
.tp-menu-card .bar{width:38px;height:1px;background:var(--gold);margin:.6em 0 .7em}
.tp-menu-card p{font-family:'Shippori Mincho',serif;font-size:clamp(.78rem,.95vw,.9rem);color:#6a5f50;line-height:1.85}
.tp-menu-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(2rem,4vw,3rem)}
.tp-menu-photos .ph{aspect-ratio:1.4;border-radius:0}

/* ---------- PRICE ---------- */
.tp-price{padding:clamp(3.5rem,7vw,6rem) 0;background:linear-gradient(180deg,#f6efe1,#f3e9d6)}
.tp-price .head{text-align:center;margin-bottom:clamp(2.2rem,4vw,3.2rem)}
.tp-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,1.8vw,1.5rem);max-width:1240px;margin:0 auto}
.tp-plan{background:#fffdf9;border:1px solid var(--gold-light);border-radius:18px;box-shadow:var(--shadow-soft);
  padding:clamp(2rem,3vw,2.8rem) clamp(1.4rem,2.2vw,2rem);text-align:center;position:relative}
.tp-plan .en{font-family:'Cormorant Garamond',serif;letter-spacing:.22em;text-transform:uppercase;font-size:.84rem;color:#b98d43;font-weight:600}
.tp-plan .jp{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.25rem,1.7vw,1.55rem);color:#41382e;margin:.35em 0 .2em;letter-spacing:.04em}
.tp-plan .jp{margin-bottom:1rem}
.tp-plan .rows{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.tp-plan .row{display:flex;align-items:baseline;justify-content:center;gap:.6em}
.tp-plan .row .k{font-family:'Shippori Mincho',serif;font-size:1rem;color:#6a5f50}
.tp-plan .row .v{font-family:var(--f-num);font-weight:600;font-size:clamp(1.7rem,2.5vw,2.4rem);color:var(--gold-deep);letter-spacing:.02em}
.tp-plan .row .v small{font-size:.5em;font-family:'Shippori Mincho',serif;margin-left:.15em;color:#6a5f50}
.tp-plan .desc{font-family:'Shippori Mincho',serif;font-size:.88rem;color:#8a7d6a;line-height:1.8;border-top:1px dotted var(--tp-line);padding-top:.9rem}
.tp-price-note{text-align:center;font-family:'Shippori Mincho',serif;font-size:.76rem;color:#8a7d6a;margin-top:1.4rem}
.tp-price .cta{text-align:center;margin-top:2rem}

/* ---------- FLOW ---------- */
.tp-flow{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--tp-bg)}
.tp-flow .wrap{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
.tp-flow .lead-wrap{margin-bottom:1.6rem}
.tp-flow .pic .ph{aspect-ratio:.82;border-radius:20px;box-shadow:var(--shadow-soft);position:sticky;top:90px}
.tp-flow-list{display:flex;flex-direction:column}
.tp-flow-step{display:flex;gap:1.3rem;padding:1.1rem 0;position:relative}
.tp-flow-step:not(:last-child){border-bottom:1px solid var(--tp-line)}
.tp-flow-step .no{font-family:var(--f-num);font-weight:600;font-size:1.6rem;
  color:#fff;background:linear-gradient(120deg,var(--gold),var(--gold-deep));width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;flex:0 0 auto;box-shadow:0 8px 18px -10px rgba(150,120,60,.6)}
.tp-flow-step .ic{width:34px;height:34px;color:var(--gold-deep);flex:0 0 auto;align-self:center}
.tp-flow-step .ct h3{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1rem,1.3vw,1.2rem);color:#41382e;letter-spacing:.04em}
.tp-flow-step .ct p{font-family:'Shippori Mincho',serif;font-size:clamp(.78rem,.95vw,.9rem);color:#6a5f50;line-height:1.8;margin-top:.3em}

/* ---------- FAQ ---------- */
.tp-faq{padding:clamp(3.5rem,7vw,6rem) 0;background:linear-gradient(180deg,#f6efe1,#f1e6d2)}
.tp-faq .head{text-align:center;margin-bottom:clamp(2rem,4vw,3rem)}
.tp-faq .subnote{text-align:center;font-family:'Shippori Mincho',serif;font-size:.82rem;color:#8a7d6a;margin-bottom:2rem}
.tp-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,1.8vw,1.5rem);max-width:1000px;margin:0 auto}
.tp-faq-card{background:#fffdf9;border:1px solid var(--gold-light);border-radius:16px;box-shadow:var(--shadow-soft);padding:clamp(1.4rem,2.2vw,2rem)}
.tp-faq-card .q{display:flex;align-items:center;gap:.8em;margin-bottom:.9rem}
.tp-faq-card .qm{font-family:var(--f-num);font-weight:600;font-size:1.5rem;
  color:#fff;background:linear-gradient(120deg,var(--gold),var(--gold-deep));width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.tp-faq-card .q h3{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(.98rem,1.2vw,1.14rem);color:#41382e;line-height:1.6;letter-spacing:.03em}
.tp-faq-card .a{font-family:'Shippori Mincho',serif;font-size:clamp(.82rem,.98vw,.92rem);color:#6a5f50;line-height:1.95;letter-spacing:.03em}

/* ---------- responsive ---------- */
@media(max-width:1024px){
  .tp-change-wrap{grid-template-columns:1fr;gap:clamp(2rem,5vw,3.5rem)}
  .tp-change-card .result-main{display:block}
  .tp-change-card .result small{display:block;font-size:.68em;margin:.2em 0 0;letter-spacing:.04em}
}
@media(min-width:769px) and (max-width:1024px){
  .tp-plan .row{flex-direction:column;align-items:center;gap:.15rem}
  .tp-plan .row .k{white-space:nowrap}
}
@media(max-width:768px){
  .tp-change > .wrap,
  .tp-result > .wrap,
  .tp-menu > .wrap,
  .tp-price > .wrap,
  .tp-flow > .wrap,
  .tp-faq > .wrap{max-width:600px}
  .tp-fv .wrap,.tp-result .wrap,.tp-flow .wrap,.tp-change-wrap{grid-template-columns:1fr}
  .tp-change-head .leaf{display:none}
  .tp-fv .tx{order:2}.tp-fv .pic{order:1;max-width:460px;margin-inline:auto}
  .tp-menu-grid,.tp-price-grid,.tp-faq-grid,.tp-menu-photos{grid-template-columns:1fr}
  .tp-flow .pic .ph{position:static;max-width:460px;margin-inline:auto}
  .tp-menu-photos{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  /* 768px時は画像を少し控えめにして、縦積み後の横幅の圧迫感を抑える */
  .tp .sp-fv .bgph,.tp .sp-fv .bgph img{display:block;visibility:visible}
  .tp-fv .pic{width:min(100%,400px);max-width:400px}
  .tp-result .pics{display:block;width:min(100%,400px);max-width:400px;min-height:400px;margin-inline:auto}
  .tp-result .pics .ph{display:block}
  .tp-flow .pic{width:100%}
  .tp-flow .pic .ph{display:block;width:min(100%,400px);max-width:400px;min-height:400px}
  .tp-change-card{grid-template-columns:1fr}
  .tp-change-card .face{display:block;width:min(100%,600px);max-width:600px;margin-inline:auto}
  .tp-change-card .face .ph{display:block;width:100%;height:auto;aspect-ratio:1.284/1;min-height:0}
  .tp-change-card .face .ph img{display:block;width:100%;height:100%;object-fit:cover}
}
@media(max-width:560px){
  .tp-change-card{grid-template-columns:1fr}
  .tp-ba{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.55rem;align-items:start}
  .tp-ba .arrow{transform:none;margin:1.35rem auto 0}
}
@media(max-width:400px){
  .tp-change-card .body{padding:1rem 1rem 1.1rem}
  .tp-change-card .result{font-size:1.05rem;line-height:1.5;padding-bottom:.5em;margin-bottom:.65em}
  .tp-change-card .result-main{display:block}
  .tp-change-card .result small{display:block;font-size:.68em;margin:.2em 0 0;letter-spacing:.04em}
  .tp-ba{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.45rem}
  .tp-ba .col .cap{font-size:.7rem;margin-bottom:.3em}
  .tp-ba ul{gap:.2em}
  .tp-ba li{font-size:.78rem;line-height:1.4}
  .tp-ba .arrow{width:28px;height:28px;margin:1.15rem auto 0!important}
  .tp-ba .arrow svg{width:12px;height:12px}
  .tp-change-card .note{margin-top:.75rem;padding-top:.7rem;font-size:.78rem;line-height:1.6}
}
@media(max-width:768px){
  .tp-result .pics{display:none}
  .tp-menu-photos{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:601px) and (max-width:768px){
  .tp .sp-fv h1{font-size:clamp(2rem,5.7vw,5.4rem)}
}
