/* ============================================================
   YAMATO MUSIC ENTERTAINMENT — コーポレート（白基調）
   装飾を足さず、余白・ヘアライン罫・文字サイズの落差で組む。
   オーディションLPとは色を反転させ、朱ピンクだけ共通にする。
   ============================================================ */
:root{
  --paper:   #FFFFFF;
  --paper-2: #F4F4F2;
  --ink:     #101014;
  --ink-2:   #55555E;
  --ink-3:   #8A8A93;
  --rule:    rgba(16,16,20,.13);
  --rule-2:  rgba(16,16,20,.07);
  --accent:  #FF2E7E;

  --jp: "Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",YuGothic,Meiryo,sans-serif;
  --mono: ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;

  --wrap: 1180px;
  --pad: clamp(22px,5vw,56px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--jp);font-size:16px;line-height:1.95;
  font-feature-settings:"palt" 1;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
::selection{background:var(--accent);color:#fff}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}

/* 極小の等幅ラベル。英字はすべてこの役割に限定する */
.lb{
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-3);display:block;
}
.lb--ac{color:var(--accent)}
/* 日本語のラベル。英字用の字間・等幅だと読みにくいので別立てにする */
.lb--jp{
  font-family:var(--jp);font-size:13.5px;font-weight:800;letter-spacing:.08em;
  text-transform:none;
}

/* 見出しは日本語を特大で。ラベルとの落差が全体の設計 */
.h1{font-size:clamp(29px,5.5vw,66px);font-weight:900;line-height:1.28;letter-spacing:.005em;margin:0;
    word-break:auto-phrase;line-break:strict}
.h2{font-size:clamp(26px,3.8vw,44px);font-weight:900;line-height:1.4;margin:0;
    word-break:auto-phrase;line-break:strict}
.h3{font-size:clamp(16px,1.8vw,19px);font-weight:800;line-height:1.65;margin:0;word-break:auto-phrase}
.tx{font-size:15.5px;color:var(--ink-2);line-height:2.05;margin:0;max-width:64ch;word-break:auto-phrase}
.tx strong{color:var(--ink);font-weight:800}

.sec{padding:clamp(64px,9vw,132px) 0}
.sec--band{background:var(--paper-2)}
.sec__hd{margin-bottom:clamp(34px,4.6vw,60px)}
.sec__hd .lb{margin-bottom:14px}

/* ヘッダー */
.hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);
    backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.hd__in{display:flex;align-items:center;gap:26px;min-height:64px}
.hd__lg{margin-right:auto;display:flex;flex-direction:column;line-height:1.2;padding:9px 0}
.hd__lg b{font-size:15px;font-weight:900;letter-spacing:.01em}
.hd__lg span{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--ink-3);margin-top:3px}
.hd__nv{display:flex;gap:24px}
.hd__nv a{font-size:12.5px;font-weight:700;color:var(--ink-2);transition:.2s}
.hd__nv a:hover{color:var(--accent)}
.hd__ct{font-size:12px;font-weight:800;letter-spacing:.04em;background:var(--ink);color:#fff;padding:11px 18px}
.hd__ct:hover{background:var(--accent)}
.hd__bg{display:none;width:42px;height:42px;border:1px solid var(--rule);background:none;cursor:pointer}
.hd__bg span{display:block;width:17px;height:1.5px;background:var(--ink);margin:4px auto}
.hd__short{display:none}
.hd__ct{white-space:nowrap}
/* 狭い画面では社名を略記に切り替え、ヘッダーを1行に収める */
@media(max-width:620px){
  .hd__full{display:none}
  .hd__short{display:block;font-size:14px;font-weight:900;letter-spacing:.02em}
  .hd__lg span{font-size:8px;letter-spacing:.14em}
  .hd__ct{font-size:11px;padding:10px 13px}
  .hd__in{gap:12px}
}

/* ヒーロー：文字だけで見せる */
.hero{padding:clamp(56px,10vw,132px) 0 clamp(40px,6vw,72px)}
.hero .lb{margin-bottom:clamp(20px,3vw,32px)}
.hero__h{max-width:none}
.hero__h em{font-style:normal;color:var(--accent)}
/* 幅が足りない端末では明示改行を無効化し、自動折り返しに任せる */
@media(max-width:560px){ .hero__h br{display:none} }
.hero__tx{margin-top:clamp(26px,3.4vw,40px);max-width:52ch}
.hero__ac{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(30px,4vw,44px)}

/* ボタン */
.bt{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:800;
    padding:16px 26px;border:1.5px solid var(--ink);transition:.2s;letter-spacing:.02em}
.bt:hover{background:var(--ink);color:#fff}
.bt--fill{background:var(--ink);color:#fff}
.bt--fill:hover{background:var(--accent);border-color:var(--accent)}
.bt i{font-style:normal;font-family:var(--mono)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}


/* 定義リスト（会社概要） */
.dl{border-top:1.5px solid var(--ink)}
.dl>div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(14px,3vw,36px);
        padding:20px 0;border-bottom:1px solid var(--rule)}
.dl dt{font-size:12.5px;font-weight:800;letter-spacing:.1em;color:var(--ink-3);padding-top:4px}
.dl dd{margin:0;font-size:15.5px;font-weight:600;line-height:1.95}
.dl dd small{display:block;font-size:12.5px;font-weight:400;color:var(--ink-3);margin-top:5px}

/* 事業内容 */
.bz{border-top:1.5px solid var(--ink)}
.bz>li{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1.5fr);
       gap:clamp(16px,3.4vw,48px);padding:clamp(24px,3.2vw,38px) 0;
       border-bottom:1px solid var(--rule);align-items:baseline}
.bz__n{font-family:var(--mono);font-size:12px;color:var(--accent);font-weight:600}
.bz__t small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;
             color:var(--ink-3);font-weight:400;margin-top:7px;text-transform:uppercase}
.bz__d{margin:0;font-size:14.5px;color:var(--ink-2);line-height:2}

/* 2カラム本文 */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
.cols p{margin:0 0 18px;font-size:15px;color:var(--ink-2);line-height:2.05}
.cols p:last-child{margin-bottom:0}
.cols strong{color:var(--ink);font-weight:800}

/* 3項目 */
.gr{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);
    border:1px solid var(--rule);margin-top:clamp(30px,4vw,50px)}
.gr>li{background:var(--paper);padding:clamp(24px,3vw,36px)}
.sec--band .gr>li{background:var(--paper-2)}
.gr .lb{margin-bottom:12px}
.gr h3{margin:0 0 10px}
.gr p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.95}

/* 導線ブロック */
.cta{border:1.5px solid var(--ink);padding:clamp(28px,4.4vw,60px);
     display:grid;grid-template-columns:1fr auto;gap:clamp(20px,3vw,40px);align-items:center}
.cta p{margin:14px 0 0;font-size:14.5px;color:var(--ink-2);max-width:52ch}

/* フッター */
.ft{background:var(--ink);color:#fff;padding:clamp(46px,6vw,76px) 0 30px}
.ft__t{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(24px,4vw,48px);
       padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.16)}
.ft__id b{display:block;font-size:16px;font-weight:900;margin-bottom:12px}
.ft__id p{margin:0;font-size:12.5px;color:rgba(255,255,255,.6);line-height:2}
.ft h4{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--accent);
       margin:0 0 14px;font-weight:600;text-transform:uppercase}
.ft li{margin-bottom:10px}
.ft li a{font-size:13px;color:rgba(255,255,255,.68)}
.ft li a:hover{color:#fff}
.ft__b{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding-top:24px}
.ft__b small{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:rgba(255,255,255,.5)}

@media(max-width:900px){
  .hd__nv{display:none}
  .hd__bg{display:block}
  .dl>div{grid-template-columns:1fr;gap:5px}
  .bz>li{grid-template-columns:44px minmax(0,1fr);row-gap:12px}
  .bz__d{grid-column:2}
  .cols,.gr,.ft__t{grid-template-columns:1fr}
  .cta{grid-template-columns:1fr}
}

/* ============================================================
   規約・方針ページ
   ============================================================ */
.doc{padding:clamp(44px,7vw,96px) 0 clamp(60px,9vw,120px)}
.doc__hd{border-bottom:1.5px solid var(--ink);padding-bottom:clamp(22px,3vw,34px);margin-bottom:clamp(30px,4vw,50px)}
.doc__hd .lb{margin-bottom:12px}
.doc__up{margin:16px 0 0;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em}
.doc__note{
  border-left:3px solid var(--accent);background:var(--paper-2);
  padding:16px 20px;margin:0 0 clamp(30px,4vw,46px);font-size:13.5px;color:var(--ink-2);line-height:1.95;
}
.doc__note b{color:var(--ink)}
.doc section{margin-bottom:clamp(32px,4.4vw,52px)}
.doc h2{font-size:clamp(17px,2vw,21px);font-weight:900;margin:0 0 14px;padding-bottom:10px;
        border-bottom:1px solid var(--rule);word-break:auto-phrase}
.doc h3{font-size:15px;font-weight:800;margin:22px 0 8px}
.doc p{margin:0 0 14px;font-size:15px;color:var(--ink-2);line-height:2.05;word-break:auto-phrase}
.doc p:last-child{margin-bottom:0}
.doc ul{margin:0 0 14px;padding:0}
.doc ul li{position:relative;padding-left:18px;margin-bottom:8px;font-size:15px;color:var(--ink-2);line-height:2}
.doc ul li::before{content:"";position:absolute;left:2px;top:15px;width:5px;height:1.5px;background:var(--accent)}
.doc ol{counter-reset:d;margin:0 0 14px;padding:0}
.doc ol li{counter-increment:d;position:relative;padding-left:28px;margin-bottom:8px;font-size:15px;color:var(--ink-2);line-height:2}
.doc ol li::before{content:counter(d) ".";position:absolute;left:0;font-family:var(--mono);font-size:13px;color:var(--accent)}
.doc a{border-bottom:1px solid currentColor}
.doc__back{display:inline-block;margin-top:clamp(30px,4vw,46px);font-size:13px;font-weight:700}
.doc__back:hover{color:var(--accent)}


/* ============================================================
   ロゴ（暫定トレース）※正式データが届いたら差し替える
   ============================================================ */
.hd__lg{gap:0}
.hd__mk{height:24px;width:auto;display:block;color:var(--ink)}
.hd__lg span{
  font-family:var(--mono);font-size:7.5px;font-weight:600;letter-spacing:.055em;
  text-transform:uppercase;color:var(--ink-3);margin-top:6px;white-space:nowrap;display:block;
}
@media(max-width:620px){
  .hd__mk{height:20px}
  .hd__lg span{font-size:6.8px;margin-top:5px}
}
