/* ============================================================
   キャスト個別ページ 共通スタイル
   12ページすべてがこの1ファイルを読み込んでいます。
   見た目を変えるときは、ここだけ直せば全ページに反映されます。
   ============================================================ */
:root{
  --bg:#000;
  --fg:#f1eeea;
  --fg-dim:rgba(241,238,234,.66);
  --fg-fade:rgba(241,238,234,.42);
  --gold:#c2a465;
  --gold-lt:#f2e0af;
  --gold-dk:#8a6a24;
  --gold-dim:rgba(194,164,101,.6);
  --line:rgba(241,238,234,.14);
  --line-gold:rgba(194,164,101,.32);
  --mincho:"Shippori Mincho B1","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
  --eng:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --hd:72px;
  --logo-clip:circle(48.4% at 49.7% 50.3%);
}
*{margin:0;padding:0;box-sizing:border-box}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--mincho);
  line-height:2;
  letter-spacing:.06em;
  overflow-x:hidden;
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:rgba(201,167,94,.22);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.wrap{width:min(760px,88vw);margin-inline:auto}
/* 文章が語の途中で折り返さないよう、意味の区切りごとに包むための印。
   幅が足りればつながって1行、足りなければこの単位で改行される */
.kg{display:inline-block}

/* ===== ヘッダー ===== */
.hd{
  position:fixed;inset:0 0 auto 0;z-index:60;height:var(--hd);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 clamp(18px,4.6vw,44px);
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.hd-logo{justify-self:start;display:flex;align-items:center;min-height:44px}
.hd-logo img{
  width:clamp(34px,8.5vw,44px);aspect-ratio:1;object-fit:cover;
  clip-path:var(--logo-clip);
}
.hd-title{justify-self:center;display:flex;align-items:center;min-height:44px}
.hd-title span{
  font-family:var(--eng);font-weight:400;
  font-size:clamp(1.28rem,4.4vw,1.62rem);
  letter-spacing:.38em;text-indent:.38em;white-space:nowrap;
  background:linear-gradient(100deg,
    var(--gold-dk) 0%, var(--gold) 22%, var(--gold-lt) 38%,
    #fff8e6 46%, var(--gold-lt) 54%, var(--gold) 70%, var(--gold-dk) 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 8px rgba(194,164,101,.5))
         drop-shadow(0 0 20px rgba(194,164,101,.24));
  animation:goldShine 9s ease-in-out infinite;
}
@keyframes goldShine{
  0%,100%{background-position:12% 50%}
  50%    {background-position:88% 50%}
}
.hd-back{
  justify-self:end;display:flex;align-items:center;
  min-height:44px;padding:0 .2em;
  font-size:clamp(.74rem,2vw,.82rem);letter-spacing:.14em;color:var(--fg-dim);
  transition:color .3s;
}
.hd-back:hover{color:var(--gold)}

/* ===== 本文 ===== */
.profile{padding:calc(var(--hd) + clamp(36px,7vw,70px)) 0 clamp(60px,9vw,96px)}

.pf-photo{
  width:min(420px,78vw);margin:0 auto;
  border:1px solid var(--line-gold);padding:5px;
}
.pf-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top}
.pf-photo .none{
  width:100%;aspect-ratio:3/4;background:#0b0b0b;
  display:grid;place-items:center;color:var(--gold-dim);font-size:2rem;
}

.pf-head{text-align:center;margin-top:clamp(26px,4.6vw,40px)}
.pf-role{
  font-size:clamp(.74rem,2vw,.82rem);letter-spacing:.12em;
  line-height:1.8;color:var(--gold-dim);
}
.pf-name{
  margin-top:.35em;
  font-size:clamp(1.7rem,6vw,2.5rem);font-weight:500;
  letter-spacing:.2em;text-indent:.2em;line-height:1.5;
}
/* ◇ 区切り */
.div{
  display:flex;align-items:center;justify-content:center;gap:1em;
  max-width:300px;margin:1.5em auto 0;color:var(--gold-dim);
}
.div::before,.div::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold-dim))}
.div::after{background:linear-gradient(90deg,var(--gold-dim),transparent)}
.div i{font-style:normal;font-size:.66rem;line-height:1}

/* ===== プロフィールの項目表 ===== */
.pf-data{margin-top:clamp(28px,5vw,46px)}
.pf-data > div{
  display:grid;grid-template-columns:8em 1fr;gap:.5em 1.3em;
  padding:1.1em .2em;border-bottom:1px solid var(--line);
}
.pf-data > div:first-child{border-top:1px solid var(--line)}
.pf-data dt{
  font-size:clamp(.74rem,1.95vw,.8rem);letter-spacing:.12em;
  line-height:1.9;color:var(--gold-dim);
}
.pf-data dd{
  font-size:clamp(.86rem,2.2vw,.96rem);line-height:2.1;color:var(--fg);
}
.pf-data .stars{
  color:var(--gold);letter-spacing:.24em;
  font-size:1.15em;line-height:1.6;
}
@media(max-width:480px){
  .pf-data > div{grid-template-columns:1fr;gap:.15em}
}

/* ===== フォトギャラリー（写真が2枚以上あるキャスト用） =====
   1枚しか無いキャストは .pf-photo をそのまま使えばよい */
/* 1枚を大きく見せ、横スワイプで送る。指を離すと中央で止まる */
.pf-gallery{
  display:grid;gap:clamp(10px,2.6vw,16px);
  grid-auto-flow:column;
  grid-auto-columns:min(300px,72vw);
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;
  padding-bottom:4px;
}
.pf-gallery::-webkit-scrollbar{display:none}
.pf-gallery > *{scroll-snap-align:center}
.pf-gallery a{
  display:block;border:1px solid var(--line-gold);padding:5px;
  overflow:hidden;transition:border-color .3s;
}
.pf-gallery a:hover{border-color:var(--gold)}
.pf-gallery img{
  width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.pf-gallery a:hover img{transform:scale(1.05)}
.pf-gallery .none{
  width:100%;aspect-ratio:3/4;background:#0b0b0b;
  display:grid;place-items:center;color:var(--gold-dim);font-size:2rem;
}
.pf-gallery-cap{
  margin-top:1em;text-align:center;
  display:flex;align-items:center;justify-content:center;gap:1em;
  font-size:clamp(.72rem,1.8vw,.78rem);letter-spacing:.12em;color:var(--fg-fade);
}
.pf-gallery-cap i{font-style:normal;color:var(--gold-dim)}
.pf-gallery-cap i:first-child{animation:swipeL 2.6s ease-in-out infinite}
.pf-gallery-cap i:last-child{animation:swipeR 2.6s ease-in-out infinite}
@keyframes swipeL{0%,100%{transform:none}50%{transform:translateX(-4px)}}
@keyframes swipeR{0%,100%{transform:none}50%{transform:translateX(4px)}}
@media(prefers-reduced-motion:reduce){.pf-gallery-cap i{animation:none}}

/* ===== 写真の拡大表示 ===== */
.lb{
  position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,.95);
  display:flex;align-items:center;justify-content:center;
  padding:clamp(58px,9vh,84px) 4vw clamp(80px,12vh,104px);
  animation:lbIn .25s ease;
}
.lb[hidden]{display:none}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb-body{max-width:100%;max-height:100%;display:flex;justify-content:center}
.lb-body img{
  max-width:100%;max-height:74vh;width:auto;height:auto;object-fit:contain;
  border:1px solid var(--line-gold);cursor:zoom-in;
}
/* 原寸表示。はみ出した分はスクロールで見る */
.lb.zoom .lb-body{
  width:100%;height:100%;
  overflow:auto;-webkit-overflow-scrolling:touch;
  align-items:flex-start;justify-content:flex-start;
}
.lb.zoom .lb-body img{
  max-width:none;max-height:none;width:auto;height:auto;
  margin:auto;cursor:zoom-out;
}
.lb-zoom{
  position:absolute;top:8px;left:8px;z-index:2;
  min-height:48px;padding:0 1.1em;display:grid;place-items:center;
  background:none;border:0;cursor:pointer;
  font-family:var(--mincho);
  font-size:clamp(.76rem,2vw,.84rem);letter-spacing:.12em;color:var(--gold);
}
.lb-zoom:hover{color:var(--fg)}
.lb-x{
  position:absolute;top:8px;right:8px;z-index:2;
  width:48px;height:48px;display:grid;place-items:center;
  background:none;border:0;cursor:pointer;
  font-family:var(--eng);font-size:1.75rem;line-height:1;color:var(--gold);
}
.lb-x:hover{color:var(--fg)}
.lb-back{
  position:absolute;left:50%;bottom:clamp(20px,3.5vh,32px);translate:-50% 0;z-index:2;
  min-height:48px;padding:.75em 2.4em;cursor:pointer;
  background:rgba(255,255,255,.05);
  border:1px solid var(--gold);color:var(--gold);
  font-family:var(--mincho);font-size:clamp(.82rem,2.1vw,.9rem);letter-spacing:.18em;
  transition:background .3s,color .3s;
}
.lb-back:hover{background:var(--gold);color:#0a0a0a}
body.lb-open{overflow:hidden}

/* 本文（文章で紹介する場合はこちらを使う） */
.pf-body{margin-top:clamp(30px,5vw,48px)}
.pf-body p{
  font-size:clamp(.88rem,2.3vw,1rem);
  line-height:2.6;color:var(--fg-dim);
}
.pf-body p + p{margin-top:1.7em}

/* 本文がまだ無いキャストの表示（お客様に見える文言） */
.pf-soon{
  border:1px solid var(--line-gold);
  padding:clamp(34px,7vw,56px) clamp(20px,4.5vw,36px);
  text-align:center;
}
.pf-soon .en{
  display:block;
  font-family:var(--eng);font-size:clamp(.72rem,1.8vw,.78rem);
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold-dim);
}
.pf-soon p{
  margin-top:1.4em;
  font-size:clamp(.88rem,2.3vw,1rem);line-height:2.4;color:var(--fg-dim);
}

/* 未入稿のときの表示。本文を入れたらこのブロックごと消してください */
.pf-todo{
  border:1px dashed var(--line-gold);
  padding:clamp(24px,5vw,38px);text-align:center;
  color:var(--gold);font-size:clamp(.8rem,2.1vw,.9rem);line-height:2.2;
}
.pf-todo code{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.85em;background:rgba(194,164,101,.12);
  padding:.2em .6em;letter-spacing:0;
}

/* ===== 個人のSNS =====
   数が増えても必ず横1行。アイコンのみで、アカウント名は
   title / aria-label に持たせている（cast.js が自動で付与） */
.pf-sns{
  margin-top:clamp(30px,5.5vw,48px);
  display:flex;flex-wrap:nowrap;justify-content:center;
  gap:clamp(10px,3vw,18px);
}
.pf-sns a{
  display:grid;place-items:center;flex:none;
  width:clamp(48px,13vw,56px);aspect-ratio:1;
  border:1px solid var(--gold);border-radius:50%;color:var(--gold);
  position:relative;overflow:hidden;transition:color .4s;
}
.pf-sns a span{display:none}   /* 表示はアイコンのみ */
.pf-sns a::before{
  content:"";position:absolute;inset:0;background:var(--gold);
  transform:scaleX(0);transform-origin:right;
  transition:transform .45s cubic-bezier(.7,0,.3,1);
}
.pf-sns a:hover{color:#0a0a0a}
.pf-sns a:hover::before{transform:scaleX(1);transform-origin:left}
.pf-sns svg{position:relative;z-index:2;width:22px;height:22px}

/* ===== 専用メニュー表 =====
   画像自体が黒地の装飾パネルなので、外側に枠は付けず地続きに見せる */
.pf-menu{margin-top:clamp(46px,8vw,76px)}
.pf-menu figure{margin:clamp(24px,4.5vw,36px) 0 0}
/* aspect-ratio が無いと読み込み前の高さが0になり、
   ページ内リンクで飛んだあとに画像が入って位置がずれる */
.pf-menu img{
  display:block;width:100%;max-width:640px;height:auto;margin-inline:auto;
  aspect-ratio:1054/1492;
}
.pf-menu .none{
  display:grid;place-items:center;text-align:center;gap:.8em;padding:2em;
  aspect-ratio:1054/1492;max-width:640px;margin-inline:auto;
  border:1px dashed var(--line-gold);
  color:var(--gold);font-size:clamp(.76rem,1.9vw,.88rem);line-height:2;
}
.pf-menu .cap{
  display:block;text-align:center;
  margin-top:1em;padding:.85em 1em;min-height:44px;
  font-size:clamp(.72rem,1.8vw,.78rem);letter-spacing:.12em;color:var(--fg-fade);
}

/* ===== 動画 ===== */
.pf-movie{margin-top:clamp(34px,6vw,56px)}
.pf-movie-head{text-align:center;margin-bottom:clamp(16px,3vw,24px)}
.pf-movie-head span{
  font-family:var(--eng);font-size:clamp(.72rem,1.8vw,.78rem);
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold-dim);
}
.pf-movie-grid{
  display:grid;gap:clamp(8px,2vw,14px);
  grid-template-columns:repeat(2,1fr);
  width:min(600px,88vw);margin-inline:auto;
}
.pf-movie-grid video{
  width:100%;aspect-ratio:9/16;object-fit:contain;
  background:#000;border:1px solid var(--line-gold);display:block;
}
/* 動画が1本だけのときは大きく見せる */
.pf-movie-grid:has(video:only-child){grid-template-columns:1fr;width:min(360px,78vw)}

/* ===== SNS実績（求人ページと同じ内容を黒地向けに配色調整） ===== */
.pf-power{margin-top:clamp(46px,8vw,76px)}
.pf-power-head{text-align:center}
.pf-power-head h2{
  font-size:clamp(1.06rem,3.2vw,1.36rem);font-weight:600;
  letter-spacing:.14em;line-height:1.7;color:var(--fg);
}
.pf-power-head .en{
  display:block;margin-top:.7em;
  font-family:var(--eng);font-size:clamp(.72rem,1.8vw,.78rem);
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold-dim);
}

/* 閲覧数のドーナツグラフ */
.pf-donut{
  margin-top:clamp(24px,4.5vw,36px);
  display:flex;align-items:center;gap:clamp(10px,3vw,22px);
}
.pf-donut .ring{position:relative;width:clamp(78px,34%,150px);flex:none;aspect-ratio:1}
.pf-donut .ring svg{display:block;width:100%;height:100%}
.pf-donut .ring .c{
  position:absolute;inset:0;display:grid;place-content:center;justify-items:center;
  text-align:center;gap:.3em;pointer-events:none;
}
.pf-donut .ring .lbl{
  font-size:clamp(.72rem,1.8vw,.76rem);letter-spacing:.18em;
  color:var(--fg-fade);line-height:1;
}
.pf-donut .ring b{
  font-size:clamp(.94rem,3vw,1.18rem);font-weight:600;
  letter-spacing:.01em;line-height:1.2;color:var(--fg);
}
.pf-donut ul{flex:1;min-width:0;display:grid;gap:.55em}
.pf-donut li{
  display:flex;align-items:center;flex-wrap:wrap;gap:.1em .5em;
  font-size:clamp(.74rem,1.95vw,.82rem);letter-spacing:.02em;
  line-height:1.6;color:var(--fg-dim);
}
.pf-donut i{width:8px;height:8px;border-radius:50%;flex:none;font-style:normal}
.pf-donut .d1{background:var(--gold)}
.pf-donut .d2{background:var(--fg)}
.pf-donut b.v{margin-left:auto;font-weight:600;color:var(--fg);white-space:nowrap}

/* 数値の行 */
.pf-metric{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:.9em;padding:.85em 0;border-top:1px solid var(--line);
}
.pf-metric .l{
  font-size:clamp(.75rem,1.9vw,.8rem);letter-spacing:.08em;
  line-height:1.6;color:var(--fg-fade);
}
.pf-metric .v{text-align:right;line-height:1.3;white-space:nowrap;flex:none}
.pf-metric .v b{
  display:block;font-size:clamp(1rem,3vw,1.22rem);font-weight:600;
  letter-spacing:.02em;color:var(--fg);
}
.pf-metric .v em{
  display:block;margin-top:.3em;font-style:normal;
  font-size:clamp(.72rem,1.8vw,.76rem);letter-spacing:.04em;color:var(--gold);
}

/* 帯グラフ */
.pf-bar{padding:.9em 0;border-top:1px solid var(--line)}
.pf-bar .h{display:flex;align-items:baseline;justify-content:space-between;gap:.9em}
.pf-bar .h span{
  font-size:clamp(.75rem,1.9vw,.8rem);letter-spacing:.08em;color:var(--fg-fade);
}
.pf-bar .h b{
  font-size:clamp(.94rem,2.6vw,1.06rem);font-weight:600;
  color:var(--fg);white-space:nowrap;
}
.pf-bar .track{
  margin-top:.65em;height:7px;border-radius:4px;
  background:rgba(194,164,101,.18);overflow:hidden;
}
.pf-bar .track span{
  display:block;height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--gold-dk),var(--gold-lt) 46%,var(--gold));
}
.pf-note{
  margin-top:1em;
  font-size:clamp(.72rem,1.7vw,.76rem);line-height:2;color:var(--fg-fade);
}
.pf-note a{
  display:inline-block;padding:.45em .25em;white-space:nowrap;
  color:var(--gold);border-bottom:1px solid var(--line-gold);
}
.pf-note a:hover{border-bottom-color:var(--gold)}
@media(max-width:360px){
  .pf-donut{flex-direction:column;align-items:center;gap:.9em}
  .pf-donut .ring{width:min(140px,58%)}
  .pf-donut ul{width:100%;flex:none}
}

/* ===== 経営する他店舗 ===== */
.pf-biz{margin-top:clamp(46px,8vw,76px)}
.biz-item{margin-top:clamp(24px,4.5vw,36px)}
.biz-item + .biz-item{
  padding-top:clamp(26px,5vw,40px);
  border-top:1px solid var(--line);
}
.pf-biz .name{
  margin-top:0;text-align:center;
  font-family:var(--eng);font-size:clamp(1.14rem,3.8vw,1.5rem);
  letter-spacing:.14em;line-height:1.5;color:var(--fg);
}
.pf-biz .name em{
  display:block;margin-top:.5em;font-style:normal;
  font-family:var(--mincho);font-size:.62em;letter-spacing:.2em;color:var(--gold-dim);
}
.pf-biz .desc{
  margin-top:clamp(16px,3vw,24px);
  font-size:clamp(.84rem,2.2vw,.92rem);line-height:2.4;color:var(--fg-dim);
}
.pf-biz .pf-data{margin-top:clamp(20px,4vw,30px)}
/* 施術メニューのタグ */
.biz-tags{
  margin-top:clamp(14px,2.6vw,20px);
  display:flex;flex-wrap:wrap;justify-content:center;gap:.5em;
}
.biz-tags li{
  border:1px solid var(--line-gold);
  padding:.42em .95em;
  font-size:clamp(.74rem,1.9vw,.8rem);letter-spacing:.06em;line-height:1.5;
  color:var(--fg-dim);
}
/* 外部サイトへのテキストリンク */
.biz-links{margin-top:clamp(14px,2.6vw,20px);text-align:center}
.biz-links a{
  display:inline-block;min-height:44px;padding:.7em .4em;
  font-size:clamp(.74rem,1.9vw,.8rem);letter-spacing:.1em;
  color:var(--gold);border-bottom:1px solid var(--line-gold);
}
.biz-links a:hover{border-bottom-color:var(--gold)}

/* ===== LINEスタンプ ===== */
.pf-line{margin-top:clamp(34px,6vw,56px)}
.pf-line-head{text-align:center;margin-bottom:clamp(16px,3vw,24px)}
.pf-line-head span{
  font-family:var(--eng);font-size:clamp(.72rem,1.8vw,.78rem);
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold-dim);
}
.pf-line a{
  display:flex;align-items:center;gap:clamp(14px,3vw,20px);
  max-width:440px;margin-inline:auto;
  border:1px solid var(--line-gold);
  padding:clamp(18px,3.6vw,24px) clamp(18px,3.6vw,26px);
  transition:border-color .3s,background .3s;
}
.pf-line a:hover{border-color:var(--gold);background:rgba(194,164,101,.06)}
.pf-line .mk{
  width:clamp(38px,10vw,46px);aspect-ratio:1;flex:none;
  display:grid;place-items:center;border-radius:22%;
  background:#06c755;color:#fff;
  font-family:var(--eng);font-weight:600;font-size:clamp(.6rem,1.7vw,.68rem);
  letter-spacing:.04em;
}
.pf-line .t{min-width:0;flex:1}
.pf-line .t b{
  display:block;font-weight:600;
  font-size:clamp(.92rem,2.6vw,1rem);letter-spacing:.06em;line-height:1.7;
}
.pf-line .t span{
  display:block;margin-top:.3em;
  font-size:clamp(.76rem,2vw,.82rem);letter-spacing:.1em;color:var(--fg-fade);
}
.pf-line .go{flex:none;color:var(--gold);font-size:1.1rem;line-height:1}

/* ===== SNSコンサルティング ===== */
.pf-consult{margin-top:clamp(46px,8vw,76px)}
.pf-consult .lead{
  margin-top:clamp(24px,4.5vw,36px);text-align:center;
  font-size:clamp(.86rem,2.3vw,.96rem);line-height:2.5;color:var(--fg-dim);
}
.cs-list{
  margin-top:clamp(20px,4vw,30px);
  display:grid;gap:clamp(10px,2.4vw,14px);
  grid-template-columns:1fr;
}
@media(min-width:600px){
  .cs-list{grid-template-columns:1fr 1fr}
}
.cs-list li{
  border:1px solid var(--line-gold);
  padding:clamp(16px,3.4vw,22px) clamp(14px,3vw,20px);
  text-align:center;
}
.cs-list b{
  display:block;font-weight:600;
  font-size:clamp(.92rem,2.6vw,1rem);letter-spacing:.1em;line-height:1.7;
}
.cs-list span{
  display:block;margin-top:.5em;
  font-size:clamp(.78rem,2vw,.84rem);line-height:2;color:var(--fg-fade);
}
/* 専用ページへ誘導する大きめのボタン */
.cs-cta{margin-top:clamp(26px,5vw,40px);text-align:center}
/* 文字を flex で並べると語の間に隙間が入り、狭い画面で
   「…見／る」のように途中で折り返してしまうため inline-block にしている */
.cs-cta a{
  display:inline-block;text-align:center;
  padding:1.05em clamp(1.2em,4.5vw,2.2em);
  position:relative;overflow:hidden;
  border:1px solid var(--gold);color:var(--gold);
  font-size:clamp(.84rem,2.3vw,.94rem);letter-spacing:.14em;line-height:1.9;
  transition:color .35s;
}
.cs-cta a::before{
  content:"";position:absolute;inset:0;background:var(--gold);
  transform:scaleX(0);transform-origin:right;
  transition:transform .45s cubic-bezier(.7,0,.3,1);
}
.cs-cta a:hover{color:#0a0a0a}
.cs-cta a:hover::before{transform:scaleX(1);transform-origin:left}
.cs-cta a > *{position:relative;z-index:2}

/* 実績（SNS広告力）へ誘導するリンク */
.cs-proof{
  margin-top:clamp(20px,4vw,30px);text-align:center;
}
.cs-proof a{
  display:inline-block;min-height:44px;padding:.7em .4em;
  font-size:clamp(.78rem,2vw,.84rem);letter-spacing:.1em;
  color:var(--gold);border-bottom:1px solid var(--line-gold);
  transition:border-color .3s;
}
.cs-proof a:hover{border-bottom-color:var(--gold)}

/* 一覧へ戻る */
.pf-foot{margin-top:clamp(44px,7vw,72px);text-align:center}
.pf-back{
  display:inline-block;min-height:48px;padding:1em 2.6em;
  border:1px solid var(--gold);color:var(--gold);
  font-size:clamp(.8rem,2.1vw,.88rem);letter-spacing:.24em;text-indent:.24em;
  position:relative;overflow:hidden;transition:color .4s;
}
.pf-back::before{
  content:"";position:absolute;inset:0;background:var(--gold);
  transform:scaleX(0);transform-origin:right;
  transition:transform .45s cubic-bezier(.7,0,.3,1);
}
.pf-back:hover{color:#0a0a0a}
.pf-back:hover::before{transform:scaleX(1);transform-origin:left}
.pf-back span{position:relative;z-index:2}

/* ===== フッター ===== */
.ft{
  padding:clamp(48px,7vw,80px) 6vw 34px;text-align:center;
  border-top:1px solid var(--line);
}
.ft img{
  width:min(120px,32vw);aspect-ratio:1;object-fit:cover;
  margin:0 auto clamp(16px,3vw,24px);opacity:.9;
  clip-path:var(--logo-clip);
}
.ft .nm{
  font-family:var(--eng);font-style:italic;
  font-size:1rem;letter-spacing:.34em;text-indent:.34em;color:var(--fg-dim);
}
.ft .sns{display:flex;justify-content:center;gap:20px;margin:22px 0 26px}
.ft .sns a{
  width:44px;height:44px;border:1px solid var(--line-gold);border-radius:50%;
  display:grid;place-items:center;color:var(--gold);transition:.35s;
}
.ft .sns a:hover{background:var(--gold);color:#0a0a0a}
.ft .sns svg{width:18px;height:18px}
.ft .copy{
  font-family:var(--eng);font-size:.75rem;letter-spacing:.1em;color:var(--fg-fade);
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hd-title span{animation:none;background-position:50% 50%}
}
