/* ============================================================
   el Majesta / Women Orchestra  —  共通スタイル
   日本語フォント指定: Noto Sans CJK JP 系のみ（SC/TC/HK/KR は使用しない）
   アラビア語: Noto Sans Arabic / Noto Kufi Arabic
   ============================================================ */
:root{
  --red:#c8102e;
  --red-bright:#e8112d;
  --red-deep:#7c0a1c;
  --gold:#c9a227;
  --ink:#0b0708;
  --ink-2:#140d0f;
  --paper:#f6f2ef;
  --white:#fff;
  --gray:#9a9092;
  --maxw:1320px;
  --ease:cubic-bezier(.16,1,.3,1);
  --font-jp:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Meiryo",sans-serif;
  --font-jp-serif:"Noto Serif CJK JP","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","MS PMincho",serif;
  --font-ar:"Noto Sans Arabic","Noto Naskh Arabic","Segoe UI",sans-serif;
  --font-ar-display:"Noto Kufi Arabic","Noto Sans Arabic",sans-serif;
  --font-body:var(--font-jp);
  --font-head:var(--font-jp-serif);
  --font-en:"Playfair Display",Georgia,serif;
  --font-cond:"Oswald","Noto Sans CJK JP","Noto Sans JP",sans-serif;
  --body-ls:.04em;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--ink);color:var(--white);
  font-family:var(--font-body);font-weight:400;line-height:1.9;
  letter-spacing:var(--body-ls);overflow-x:hidden;
  font-feature-settings:"palt" 1;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{margin:0;line-height:1.35;font-weight:700;}
.wrap{width:min(100% - 48px,var(--maxw));margin-inline:auto;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* ---------- 共通：セクションラベル・見出し ---------- */
.label{
  font-family:var(--font-cond);font-weight:300;font-size:.72rem;
  letter-spacing:.42em;text-transform:uppercase;color:var(--red-bright);
  display:flex;align-items:center;gap:14px;margin-bottom:22px;
}
.label::before{content:"";width:40px;height:1px;background:var(--red-bright);flex:none;}
.display{
  font-family:var(--font-en);font-weight:800;line-height:.92;
  font-size:clamp(3rem,10.5vw,9.5rem);letter-spacing:-.02em;
}
.display .it{font-style:italic;font-weight:600;}
.jp-head{
  font-family:var(--font-head);font-weight:600;
  font-size:clamp(1.25rem,2.6vw,2rem);line-height:1.7;letter-spacing:.08em;
}
.lead{color:#d9d0d2;font-size:clamp(.92rem,1.15vw,1.02rem);line-height:2.15;font-weight:300;}

/* ---------- ヘッダー ---------- */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:22px clamp(20px,3vw,44px);
  transition:background .5s var(--ease),padding .5s var(--ease),backdrop-filter .5s;
}
.header.scrolled{
  background:rgba(11,7,8,.86);backdrop-filter:blur(14px);
  padding-block:12px;border-bottom:1px solid rgba(255,255,255,.08);
}
.brand{display:flex;align-items:center;gap:12px;}
.brand__mark{
  width:38px;height:38px;border-radius:50%;object-fit:cover;
  border:1px solid rgba(255,255,255,.35);flex:none;background:#fff;
}
.brand__txt{display:flex;flex-direction:column;line-height:1.15;}
.brand__en{font-family:var(--font-cond);font-size:.82rem;letter-spacing:.34em;text-transform:uppercase;}
.brand__jp{font-size:.6rem;letter-spacing:.22em;color:var(--gray);}
.gnav{display:flex;align-items:center;gap:clamp(16px,2vw,34px);}
.gnav a{
  font-family:var(--font-cond);font-weight:300;font-size:.74rem;
  letter-spacing:.24em;text-transform:uppercase;position:relative;padding-block:6px;
}
.gnav a span{display:block;font-family:var(--font-body);font-size:.58rem;letter-spacing:.16em;color:var(--gray);margin-top:2px;}
.gnav a::after{
  content:"";position:absolute;inset-inline-start:0;bottom:0;width:100%;height:1px;
  background:var(--red-bright);transform:scaleX(0);transform-origin:right;
  transition:transform .5s var(--ease);
}
.gnav a:hover::after{transform:scaleX(1);transform-origin:left;}

/* ---------- 言語切替 ---------- */
.header__right{display:flex;align-items:center;gap:clamp(12px,1.6vw,22px);}
.langs{display:flex;align-items:center;gap:2px;}
.langs a{
  font-family:var(--font-cond);font-weight:300;font-size:.7rem;letter-spacing:.16em;
  padding:6px 10px;border-radius:999px;color:var(--gray);
  transition:color .35s,background .35s;
}
.langs a:hover{color:#fff;}
.langs a.on{color:#fff;background:rgba(255,255,255,.14);}
.langs span{color:rgba(255,255,255,.22);font-size:.6rem;}

.btn-contact{
  font-family:var(--font-cond);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;
  background:var(--red);color:#fff;padding:13px 26px;border-radius:999px;
  transition:background .35s,transform .35s var(--ease);white-space:nowrap;
}
.btn-contact:hover{background:var(--red-bright);transform:translateY(-2px);}
.burger{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:0;}
.burger i{display:block;height:1.5px;background:#fff;margin:6px auto;width:24px;transition:.4s var(--ease);}
.burger.open i:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.burger.open i:nth-child(2){opacity:0;}
.burger.open i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
.drawer{
  position:fixed;inset:0;z-index:99;background:rgba(11,7,8,.98);
  display:flex;flex-direction:column;justify-content:center;gap:6px;
  padding:100px 32px 40px;opacity:0;pointer-events:none;transition:opacity .45s var(--ease);
  overflow-y:auto;
}
.drawer.open{opacity:1;pointer-events:auto;}
.drawer a{
  font-family:var(--font-en);font-size:1.9rem;font-weight:600;padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.drawer a small{display:block;font-family:var(--font-body);font-size:.72rem;color:var(--gray);letter-spacing:.2em;}
.drawer__langs{display:flex;gap:10px;margin-top:26px;}
.drawer__langs a{
  font-family:var(--font-cond);font-size:.82rem;letter-spacing:.2em;padding:10px 22px;
  border:1px solid rgba(255,255,255,.24);border-radius:999px;
}
.drawer__langs a.on{background:var(--red);border-color:var(--red);}

/* ---------- ヒーロー ---------- */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;}
.hero__media{position:absolute;inset:0;}
.hero__slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.12);
  transition:opacity 1.8s var(--ease);
}
.hero__slide.on{opacity:1;animation:kenburns 9s linear forwards;}
@keyframes kenburns{from{transform:scale(1.14)}to{transform:scale(1)}}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(11,7,8,.82) 0%,rgba(11,7,8,.15) 38%,rgba(11,7,8,.55) 72%,var(--ink) 100%),
    radial-gradient(120% 80% at 15% 85%,rgba(200,16,46,.42) 0%,transparent 60%);
}
.hero__inner{
  position:relative;z-index:3;height:100%;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 clamp(20px,4vw,60px) clamp(60px,9vh,110px);
}
.hero__sub{
  font-family:var(--font-cond);font-weight:300;font-size:.74rem;letter-spacing:.4em;
  text-transform:uppercase;color:#fff;display:flex;align-items:center;gap:14px;margin-bottom:18px;
}
.hero__sub::before{content:"";width:56px;height:1px;background:var(--red-bright);}
.hero__title{
  font-family:var(--font-en);font-weight:800;line-height:.86;
  font-size:clamp(3rem,11.5vw,11rem);letter-spacing:-.025em;
  text-shadow:0 12px 60px rgba(0,0,0,.5);
}
.hero__title em{font-style:italic;font-weight:600;color:var(--red-bright);}
.hero__jp{
  font-family:var(--font-head);font-weight:500;letter-spacing:.24em;
  font-size:clamp(.85rem,1.7vw,1.2rem);margin-top:22px;color:#f0e8ea;
}
.hero__copy{margin-top:14px;max-width:34em;color:#ded4d6;font-weight:300;font-size:.95rem;line-height:2;}
.hero__scroll{
  position:absolute;inset-inline-end:clamp(20px,4vw,60px);bottom:0;z-index:4;
  writing-mode:vertical-rl;font-family:var(--font-cond);font-size:.66rem;
  letter-spacing:.35em;text-transform:uppercase;padding-bottom:96px;color:#fff;
}
.hero__scroll::after{
  content:"";position:absolute;inset-inline-end:calc(50% - .5px);bottom:0;width:1px;height:80px;
  background:linear-gradient(var(--red-bright),transparent);
  animation:scrollline 2.2s infinite var(--ease);transform-origin:top;
}
@keyframes scrollline{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- 赤い流れるバンド ---------- */
.ticker{
  background:var(--red);overflow:hidden;padding:14px 0;
  border-block:1px solid rgba(255,255,255,.14);
}
.ticker__row{display:flex;width:max-content;animation:slide 32s linear infinite;}
.ticker span{
  font-family:var(--font-cond);font-weight:300;font-size:clamp(.8rem,1.4vw,1.05rem);
  letter-spacing:.32em;text-transform:uppercase;padding:0 32px;white-space:nowrap;
  display:flex;align-items:center;gap:32px;
}
.ticker span::after{content:"\25C6";font-size:.5em;color:rgba(255,255,255,.6);}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- ABOUT ---------- */
.about{padding:clamp(90px,13vh,160px) 0;position:relative;}
.about__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,80px);align-items:center;}
.about__figure{position:relative;}
.about__figure img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;}
.about__figure::before{
  content:"";position:absolute;inset:auto -18px -18px auto;width:62%;height:62%;
  border:1px solid var(--red);z-index:-1;
}
.about__badge{
  position:absolute;inset-inline-start:-22px;bottom:34px;background:var(--red);
  padding:16px 22px;font-family:var(--font-cond);letter-spacing:.2em;font-size:.8rem;
  text-transform:uppercase;line-height:1.5;
}
.about__badge b{display:block;font-family:var(--font-en);font-size:1.9rem;font-weight:800;letter-spacing:0;}
.mission{margin-top:38px;display:grid;gap:2px;}
.mission li{
  display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:baseline;
  padding:20px 0;border-top:1px solid rgba(255,255,255,.12);
}
.mission li:last-child{border-bottom:1px solid rgba(255,255,255,.12);}
.mission b{font-family:var(--font-en);font-size:1.5rem;color:var(--red-bright);font-weight:800;}
.mission p{margin:0;font-size:.95rem;color:#e2d9db;font-weight:300;}
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.12);
  margin-top:clamp(60px,9vh,110px);border-block:1px solid rgba(255,255,255,.12);
}
.stats div{background:var(--ink);padding:34px 18px;text-align:center;}
.stats b{
  display:block;font-family:var(--font-en);font-weight:800;
  font-size:clamp(2.2rem,5vw,3.6rem);line-height:1;color:#fff;
}
.stats b i{font-style:normal;font-size:.42em;color:var(--red-bright);margin-inline-start:4px;}
.stats span{display:block;margin-top:10px;font-size:.72rem;letter-spacing:.2em;color:var(--gray);}

/* ---------- ステージ ギャラリー（自動スクロール／操作非連動） ---------- */
.hscroll{padding:clamp(90px,13vh,160px) 0;background:var(--ink-2);overflow:hidden;}
.hscroll__head{margin-bottom:clamp(38px,5.5vh,64px);}
.hscroll__head .lead{max-width:46em;margin-top:20px;}
.marquee{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
}
.marquee__track{
  display:flex;gap:clamp(14px,2vw,28px);width:max-content;
  animation:marquee 80s linear infinite;will-change:transform;
}
.marquee:hover .marquee__track{animation-play-state:paused;}
@keyframes marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
[dir="rtl"] .marquee__track{animation-direction:reverse;}
.hcard{
  flex:none;position:relative;width:clamp(230px,24vw,340px);height:clamp(330px,54vh,470px);
  overflow:hidden;background:#241618;
}
.hcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s;filter:saturate(.85) contrast(1.05);}
.hcard:hover img{transform:scale(1.06);filter:saturate(1.1);}
.hcard figcaption{
  position:absolute;inset:auto 0 0 0;padding:20px;
  background:linear-gradient(transparent,rgba(11,7,8,.9));
  font-family:var(--font-cond);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
}
.hcard figcaption em{display:block;font-family:var(--font-body);font-style:normal;font-size:.68rem;color:var(--gray);letter-spacing:.12em;margin-top:4px;}

/* ---------- サービス ---------- */
.service{padding:clamp(90px,13vh,160px) 0;}
.service__head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:52px;}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px;background:rgba(255,255,255,.1);}
.card{
  position:relative;background:var(--ink);padding:0;overflow:hidden;
  display:flex;flex-direction:column;min-height:430px;
}
.card__img{position:relative;height:220px;overflow:hidden;}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);filter:saturate(.9);}
.card:hover .card__img img{transform:scale(1.07);}
.card__img::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,var(--ink));}
.card__body{padding:26px clamp(20px,2.2vw,30px) 30px;flex:1;display:flex;flex-direction:column;}
.card__no{font-family:var(--font-cond);font-size:.68rem;letter-spacing:.3em;color:var(--red-bright);}
.card h3{margin:10px 0 6px;font-family:var(--font-head);font-size:1.16rem;letter-spacing:.06em;}
.card h3 span{display:block;font-family:var(--font-cond);font-weight:300;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gray);margin-top:6px;}
.card p{font-size:.86rem;color:#cdc2c4;font-weight:300;line-height:1.95;margin:14px 0 0;}
.card__more{
  margin-top:auto;padding-top:22px;font-family:var(--font-cond);font-size:.7rem;
  letter-spacing:.26em;text-transform:uppercase;display:flex;align-items:center;gap:10px;
}
.card__more::after{content:"";width:26px;height:1px;background:var(--red-bright);transition:width .5s var(--ease);}
.card:hover .card__more::after{width:52px;}

/* ---------- 実績 ---------- */
.works{padding:clamp(90px,13vh,160px) 0;background:var(--ink-2);}
.works__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(30px,4vw,60px);margin-top:46px;}
.works__grid h3{font-family:var(--font-cond);font-weight:400;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--red-bright);padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.14);}
.works__grid h3 span{display:block;font-family:var(--font-body);font-size:.92rem;letter-spacing:.1em;color:#fff;margin-top:8px;text-transform:none;}
.works__grid li{padding:11px 0;font-size:.87rem;font-weight:300;color:#d6cbcd;border-bottom:1px solid rgba(255,255,255,.06);}
.awards{margin-top:clamp(50px,7vh,80px);display:flex;flex-wrap:wrap;gap:10px;}
.awards span{
  border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:9px 18px;
  font-size:.76rem;letter-spacing:.1em;color:#e6dcde;
}

/* ---------- NEWS ---------- */
.news{padding:clamp(90px,13vh,160px) 0;}
.news__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,2.6vw,34px);margin-top:46px;}
.ncard{background:var(--ink-2);overflow:hidden;display:flex;flex-direction:column;transition:transform .6s var(--ease);}
.ncard:hover{transform:translateY(-8px);}
.ncard__img{aspect-ratio:16/10;overflow:hidden;}
.ncard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.ncard:hover .ncard__img img{transform:scale(1.08);}
.ncard__body{padding:22px 24px 28px;flex:1;display:flex;flex-direction:column;}
.ncard__meta{display:flex;align-items:center;gap:12px;font-family:var(--font-cond);font-size:.68rem;letter-spacing:.2em;color:var(--gray);}
.ncard__meta em{font-style:normal;background:var(--red);color:#fff;padding:4px 10px;letter-spacing:.14em;}
.ncard h3{margin:14px 0 10px;font-size:.98rem;font-family:var(--font-head);line-height:1.7;}
.ncard p{margin:0;font-size:.82rem;color:#b8adaf;font-weight:300;line-height:1.9;}
.news__more{margin-top:52px;text-align:center;}
.btn-line{
  display:inline-flex;align-items:center;gap:14px;border:1px solid rgba(255,255,255,.28);
  padding:16px 40px;border-radius:999px;font-family:var(--font-cond);font-size:.74rem;
  letter-spacing:.26em;text-transform:uppercase;transition:.45s var(--ease);
}
.btn-line:hover{background:var(--red);border-color:var(--red);transform:translateY(-3px);}

/* ---------- MOVIE ---------- */
.movie{position:relative;padding:clamp(90px,13vh,160px) 0;overflow:hidden;}
.movie__bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;filter:grayscale(.4) brightness(.32);}
.movie__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 50%,rgba(200,16,46,.35),transparent 70%);}
.movie__inner{position:relative;text-align:center;}
.play{
  width:104px;height:104px;border-radius:50%;border:1px solid rgba(255,255,255,.5);
  display:grid;place-items:center;margin:34px auto 0;transition:.5s var(--ease);position:relative;
}
.play::before{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--red-bright);animation:pulse 2.6s infinite;}
.play i{width:0;height:0;border-left:18px solid #fff;border-block:11px solid transparent;margin-left:5px;}
.play:hover{background:var(--red);border-color:var(--red);transform:scale(1.06);}
@keyframes pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.5);opacity:0}}

/* ---------- CONTACT ---------- */
.contact{background:var(--red);padding:clamp(80px,12vh,140px) 0;position:relative;overflow:hidden;}
.contact::before{
  content:"CONTACT";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--font-en);font-size:min(26vw,20rem);font-weight:800;color:rgba(255,255,255,.07);
  white-space:nowrap;pointer-events:none;
}
.contact__inner{position:relative;text-align:center;}
.contact .display{font-size:clamp(2.2rem,7vw,5.4rem);}
.contact p{color:rgba(255,255,255,.9);font-weight:300;margin:20px auto 34px;max-width:44em;}
.btn-white{
  display:inline-flex;align-items:center;gap:16px;background:#fff;color:var(--red);
  padding:20px 52px;border-radius:999px;font-family:var(--font-cond);font-size:.82rem;
  letter-spacing:.26em;text-transform:uppercase;transition:.45s var(--ease);
}
.btn-white:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(0,0,0,.3);}
.contact__tel{margin-top:26px;font-family:var(--font-en);font-size:1.5rem;letter-spacing:.06em;direction:ltr;}

/* ---------- フッター ---------- */
.footer{padding:clamp(60px,9vh,110px) 0 34px;background:var(--ink);}
.footer__top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.1);}
.footer__brand .brand__en{font-size:1rem;}
.footer address{font-style:normal;font-size:.82rem;color:var(--gray);line-height:2;margin-top:20px;font-weight:300;}
.footer h4{font-family:var(--font-cond);font-weight:300;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--red-bright);margin-bottom:16px;}
.footer li{padding:7px 0;font-size:.83rem;font-weight:300;color:#cdc2c4;}
.footer li a:hover{color:#fff;}
.sns{display:flex;gap:12px;margin-top:24px;}
.sns a{
  width:38px;height:38px;border:1px solid rgba(255,255,255,.24);border-radius:50%;
  display:grid;place-items:center;font-family:var(--font-cond);font-size:.68rem;transition:.4s var(--ease);
}
.sns a:hover{background:var(--red);border-color:var(--red);}
.copyright{margin-top:28px;font-family:var(--font-cond);font-size:.66rem;letter-spacing:.2em;color:#6c6062;text-align:center;text-transform:uppercase;}

/* ---------- スクロール演出 ---------- */
.rv{opacity:0;transform:translateY(46px);transition:opacity 1s var(--ease),transform 1.1s var(--ease);}
.rv.in{opacity:1;transform:none;}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}.rv.d4{transition-delay:.4s}

/* ============================================================
   RTL（アラビア語）対応
   ============================================================ */
[dir="rtl"]{
  --font-body:var(--font-ar);
  --font-head:var(--font-ar-display);
  --body-ls:normal;
}
/* アラビア文字は字が繋がるため letter-spacing を入れると崩れる。
   ラテン文字専用の要素（.label .brand__en .hero__sub 等）は元の字間を維持する。 */
[dir="rtl"] .hero__jp,
[dir="rtl"] .jp-head,
[dir="rtl"] .card h3,
[dir="rtl"] .works__grid h3 span,
[dir="rtl"] .awards span,
[dir="rtl"] .stats span,
[dir="rtl"] .gnav a span,
[dir="rtl"] .brand__jp,
[dir="rtl"] .hcard figcaption em,
[dir="rtl"] .drawer a small,
[dir="rtl"] .ncard h3,
[dir="rtl"] .mission p,
[dir="rtl"] .card p,
[dir="rtl"] .lead,
[dir="rtl"] .footer li,
[dir="rtl"] .footer address,
[dir="rtl"] .works__grid li,
[dir="rtl"] .contact p,
[dir="rtl"] .ncard p{letter-spacing:normal;}

/* 位置の左右反転 */
[dir="rtl"] .about__figure::before{inset:auto auto -18px -18px;}
[dir="rtl"] .hero__scroll{writing-mode:vertical-lr;}
[dir="rtl"] .ticker__row{animation-direction:reverse;}
[dir="rtl"] .play i{border-left:0;border-right:18px solid #fff;margin-left:0;margin-right:5px;}
[dir="rtl"] .contact::before{content:"\062A\0648\0627\0635\0644";font-family:var(--font-ar-display);font-size:min(20vw,14rem);}
[dir="rtl"] .display,
[dir="rtl"] .hero__title,
[dir="rtl"] .mission b,
[dir="rtl"] .stats b,
[dir="rtl"] .about__badge b{direction:ltr;unicode-bidi:isolate;}
[dir="rtl"] .display,
[dir="rtl"] .hero__title{text-align:right;}
[dir="rtl"] .contact .display{text-align:center;}
[dir="rtl"] .hero__copy{max-width:38em;}

/* ---------- レスポンシブ ---------- */
@media (max-width:1024px){
  .gnav,.header .btn-contact{display:none;}
  .burger{display:block;}
  .about__grid{grid-template-columns:1fr;}
  .about__figure{order:-1;}
  .about__badge{inset-inline-start:0;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .footer__top{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .wrap{width:calc(100% - 36px);}
  .footer__top{grid-template-columns:1fr;}
  .hero__scroll{display:none;}
}
/* ---------- スマホ：On Stage は自動スクロールをやめて2列グリッド ---------- */
@media (max-width:900px){
  .marquee{-webkit-mask-image:none;mask-image:none;}
  .marquee__track{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;width:auto;
    animation:none;transform:none;padding-inline:clamp(18px,5vw,32px);
  }
  .marquee__track .dup{display:none;}
  .hcard{width:auto;height:auto;aspect-ratio:3/4;}
  .hcard figcaption{padding:14px;font-size:.66rem;letter-spacing:.16em;}
  .hcard figcaption em{font-size:.62rem;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important;}
  .rv{opacity:1;transform:none;}
  .marquee{overflow-x:auto;}
}

/* ============================================================
   下層ページ
   ============================================================ */
.page-head{
  position:relative;padding:clamp(140px,20vh,210px) 0 clamp(50px,7vh,84px);
  background:var(--ink-2);overflow:hidden;
}
.page-head::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 70% at 12% 100%,rgba(200,16,46,.30) 0%,transparent 62%);
}
.page-head__inner{position:relative;z-index:2;}
.page-head .display{font-size:clamp(2.4rem,6.4vw,5.4rem);}
.page-head__jp{
  font-family:var(--font-head);font-weight:600;letter-spacing:.1em;
  font-size:clamp(1.05rem,2vw,1.5rem);margin-top:16px;color:#f0e8ea;
}
.page-head--photo{background:#1a1113;}
.page-head__bg{
  position:absolute;inset:0;background-size:cover;background-position:center 32%;
  filter:brightness(.34) saturate(.85);
}
.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  font-family:var(--font-cond);font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gray);margin-bottom:20px;
}
.crumbs a:hover{color:#fff;}
.crumbs span{color:rgba(255,255,255,.25);}

.section{padding:clamp(70px,10vh,130px) 0;}
.section--alt{background:var(--ink-2);}
.narrow{width:min(100% - 48px,860px);margin-inline:auto;}

/* 本文 */
.prose{font-size:.96rem;line-height:2.15;color:#ddd3d5;font-weight:300;}
.prose > * + *{margin-top:1.5em;}
.prose h2{
  font-family:var(--font-head);font-size:clamp(1.25rem,2.4vw,1.7rem);
  letter-spacing:.06em;color:#fff;font-weight:600;
  margin-top:2.4em;padding-bottom:.6em;border-bottom:1px solid rgba(255,255,255,.14);
}
.prose h2:first-child{margin-top:0;}
.prose h3{font-family:var(--font-head);font-size:1.08rem;color:#fff;margin-top:2em;font-weight:600;}
.prose strong{color:#fff;font-weight:700;}
.prose a{color:#f2a9b4;text-decoration:underline;text-underline-offset:3px;}
.prose a:hover{color:#fff;}
.prose ul{display:grid;gap:.6em;}
.prose ul li{padding-inline-start:1.3em;position:relative;}
.prose ul li::before{
  content:"";position:absolute;inset-inline-start:0;top:.85em;
  width:7px;height:1px;background:var(--red-bright);
}
.prose ol{display:grid;gap:.6em;counter-reset:n;}
.prose ol li{padding-inline-start:2em;position:relative;counter-increment:n;}
.prose ol li::before{
  content:counter(n,decimal-leading-zero);position:absolute;inset-inline-start:0;
  font-family:var(--font-en);font-weight:800;color:var(--red-bright);font-size:.9em;
}
.prose img{margin:2em 0;width:100%;}
.prose .embed{position:relative;aspect-ratio:16/9;margin:2em 0;}
.prose .embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* 仕様テーブル */
.spec{width:100%;border-collapse:collapse;font-size:.9rem;}
.spec th,.spec td{
  padding:16px 18px;text-align:start;vertical-align:top;
  border-bottom:1px solid rgba(255,255,255,.12);font-weight:300;line-height:1.9;
}
.spec th{
  width:11em;color:#fff;font-weight:500;background:rgba(255,255,255,.035);
  font-family:var(--font-head);letter-spacing:.06em;
}
.spec td{color:#ddd3d5;}

/* 流れ（ステップ） */
.flow{display:grid;gap:0;counter-reset:step;}
.flow li{
  display:grid;grid-template-columns:76px 1fr;gap:22px;
  padding:26px 0;border-top:1px solid rgba(255,255,255,.12);counter-increment:step;
}
.flow li:last-child{border-bottom:1px solid rgba(255,255,255,.12);}
.flow li::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--font-en);font-weight:800;font-size:1.7rem;color:var(--red-bright);line-height:1.2;
}
.flow h3{font-family:var(--font-head);font-size:1.05rem;color:#fff;margin-bottom:8px;font-weight:600;}
.flow p{margin:0;font-size:.9rem;color:#cdc2c4;font-weight:300;line-height:2;}

/* 注記 */
.notes{
  margin-top:2.2em;padding:24px 26px;border:1px solid rgba(255,255,255,.14);
  font-size:.84rem;color:#bdb1b3;font-weight:300;line-height:2;display:grid;gap:.5em;
}
.notes li{padding-inline-start:1.2em;position:relative;}
.notes li::before{content:"\203B";position:absolute;inset-inline-start:0;color:var(--red-bright);}

/* お知らせ一覧 */
.newslist{display:grid;gap:0;}
.newslist a{
  display:grid;grid-template-columns:210px 1fr;gap:clamp(20px,3vw,38px);
  padding:26px 0;border-top:1px solid rgba(255,255,255,.12);
  transition:background .4s var(--ease);
}
.newslist a:last-child{border-bottom:1px solid rgba(255,255,255,.12);}
.newslist a:hover{background:rgba(255,255,255,.03);}
.newslist__img{aspect-ratio:16/10;overflow:hidden;background:#241618;}
.newslist__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.newslist a:hover .newslist__img img{transform:scale(1.06);}
.newslist__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:var(--font-cond);font-size:.68rem;letter-spacing:.2em;color:var(--gray);}
.newslist__meta em{font-style:normal;background:var(--red);color:#fff;padding:4px 10px;letter-spacing:.12em;}
.newslist h3{font-family:var(--font-head);font-size:1.02rem;line-height:1.75;margin:12px 0 8px;color:#fff;font-weight:600;}
.newslist p{margin:0;font-size:.84rem;color:#b8adaf;font-weight:300;line-height:1.95;}

/* 記事下のページャ */
.pager{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:clamp(50px,7vh,80px);}
.pager a{
  font-family:var(--font-cond);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:14px 30px;
  transition:.4s var(--ease);
}
.pager a:hover{background:var(--red);border-color:var(--red);}

/* CTA帯 */
.cta{background:var(--red);padding:clamp(60px,9vh,100px) 0;text-align:center;}
.cta h2{font-family:var(--font-head);font-size:clamp(1.2rem,2.6vw,1.8rem);letter-spacing:.08em;}
.cta p{color:rgba(255,255,255,.9);font-weight:300;margin:16px auto 28px;max-width:40em;font-size:.92rem;}

@media (max-width:760px){
  .newslist a{grid-template-columns:110px 1fr;gap:16px;}
  .newslist h3{font-size:.94rem;margin:8px 0 6px;}
  .newslist p{display:none;}
  .flow li{grid-template-columns:56px 1fr;gap:14px;}
  .spec th{width:auto;}
  .spec,.spec tbody,.spec tr,.spec th,.spec td{display:block;}
  .spec th{border-bottom:0;padding-bottom:6px;}
  .spec td{padding-top:0;}
}

/* ---------- FAQ ---------- */
.faq{margin-top:clamp(56px,8vh,90px);}
.faq > h2{
  font-family:var(--font-head);font-size:clamp(1.25rem,2.4vw,1.7rem);
  letter-spacing:.06em;color:#fff;font-weight:600;
  padding-bottom:.6em;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:8px;
}
.faq__item{padding:26px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.faq__item h3{
  font-family:var(--font-head);font-size:1.02rem;color:#fff;font-weight:600;
  line-height:1.7;display:grid;grid-template-columns:1.6em 1fr;gap:6px;
}
.faq__item h3::before{
  content:"Q";font-family:var(--font-en);font-weight:800;color:var(--red-bright);font-size:1.15em;line-height:1.4;
}
.faq__item p{
  margin:10px 0 0;font-size:.9rem;line-height:2.1;color:#cdc2c4;font-weight:300;
  display:grid;grid-template-columns:1.6em 1fr;gap:6px;
}
.faq__item p::before{
  content:"A";font-family:var(--font-en);font-weight:800;color:var(--gray);font-size:1.05em;line-height:1.6;
}
.byline{
  margin-top:clamp(40px,6vh,64px);padding-top:22px;border-top:1px solid rgba(255,255,255,.12);
  font-size:.8rem;color:var(--gray);font-weight:300;
}
.byline a{color:#f2a9b4;text-decoration:underline;text-underline-offset:3px;}
.spec thead td{color:#fff;background:rgba(255,255,255,.035);}
