@charset "UTF-8";
/* =========================================================================
   ginza.css — 銀座店 差分上書き（中洲 layout.css の後に読み込む）
   ・layout 全体は import せず「差分のみ」を上書き
   ・色/英語フォントは tokens 変数に集約（ブランド変更は変数1箇所）
   ・[1] 自動生成トークン … layout.css のセレクタをミラー（再生成可）
   ・[2] コンポーネント別 … 銀座固有のレイアウト差分（ページ上→下の順）
   ========================================================================= */
/* ---- tokens ---------------------------------------------------------- */
/* =========================================================================
   [1] グローバルトークン上書き（color / english-font）
       ※ layout.css から自動抽出・宣言ごとにセレクタを集約（gen_ginza_override2.py）
   ========================================================================= */
.en {
  font-family: "trajan-sans-pro", sans-serif;
}

body {
  font-family: "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
}

@media screen and (min-width: 0px) {
  main .topicpath a,
  .modal.modal-nav .main a,
  .modal.modal-nav .sub a,
  .modal.modal-nav .sns a,
  .loading .status,
  .btn.btn-back,
  .hl01,
  .area-cast-main .interview .row dt,
  .area-cast-other .control .count,
  .area-location-info .body dl dd a,
  .area-location-ginza-info .body dl dd a,
  .area-location-price .body .atn span,
  .area-location-price .body dl dd a,
  .area-howto-anchor .body a,
  .area-howto-step .step .txt h3,
  .area-howto-point .point .txt h3,
  .area-howto-word .body dt,
  .area-howto-faq .article .q,
  .area-company-msg .title p.en,
  .area-company-msg .body .profile .imgtxt .txt h3,
  .area-company-philosophy .title .en,
  .area-company-philosophy .body .mvs .item h3,
  .area-company-outline .title .en,
  .area-company-outline .body dl dd a {
    color: #07544e;
  }
  header.sub .tgl p::before,
  header.sub .tgl p::after,
  .ticker,
  .area-howto-faq .article .q .tgl::before,
  .area-howto-faq .article .q .tgl::after {
    background: #07544e;
  }
  header.sub .tgl p,
  .modal.modal-nav .main li {
    border-top: 1px solid #07544e;
  }
  .modal.modal-nav .sub li {
    border-bottom: 1px solid #07544e;
  }
  .modal.modal-nav .sub li:nth-of-type(odd) {
    border-right: 1px solid #07544e;
  }
  .loading .status p,
  .area-cast-img .imgs .count,
  .area-gravure-detail .count,
  .area-howto-member .merit .serial p span,
  .area-howto-faq .article .q::before,
  .communication .comments-list .comment .wpulike .count-box,
  .communication .comment-body .comment-meta {
    font-family: "trajan-sans-pro", sans-serif;
  }
  .go {
    width: auto;
    display: none;
  }
  .btn.btn-primary,
  .communication .comment-respond .submit {
    background: #07544e;
  }
  .btn.btn-primary.has-map {
    padding: 7px 12px 10px;
  }
  .btn.btn-primary.has-map span {
    font-size: 12px;
    padding: 2px 0 0 1.4em;
    background-size: auto 15px;
  }
  .modal.modal-nav .sub {
    border-bottom: 1px solid #07544e;
    border-top: 1px solid #07544e;
  }
  .area-cast-filter .title p,
  .area-cast-filter .body ul li label.is-active,
  .area-cast-filter .body ul li input:checked + label {
    border: 1px solid #07544e;
    color: #07544e;
  }
  .btn.btn-secondary {
    color: #07544e;
    border: 1px solid #07544e;
  }
  .area-howto-step .step .txt h3 span.serial {
    background: #07544e;
    font-family: "trajan-sans-pro", sans-serif;
  }
  .area-howto-faq .article .a::before {
    color: #07544e;
    font-family: "trajan-sans-pro", sans-serif;
  }
  .bg-main {
    background: #07544e;
    color: #fff;
  }
}
@media screen and (min-width: 1024px) {
  .area-top-lead .inner,
  .area-top-cast .title-body,
  .area-location-ginza-info .body,
  .area-location-price .inner,
  .area-faq .inner,
  .area-ginza-bnr .inner,
  .area-kv .kv-open,
  main .topicpath ul,
  footer .inner {
    width: calc(100% - 48px);
    max-width: 1258px;
    margin-left: auto;
    margin-right: auto;
  }
  .area-kv .txt .link .sub a,
  .area-kv .txt .link .sns a,
  .area-company-philosophy .body .mvs .item h3 {
    color: #07544e;
  }
  .area-kv .txt .link .main a {
    color: #07544e;
    border-bottom: 1px solid #07544e;
  }
  .area-howto-step .step::before {
    border-left: 2px dashed #07544e;
  }
  .area-howto-step .step::after {
    border-color: #07544e transparent transparent transparent;
  }
  .area-howto-step .step div.serial p {
    background: #07544e;
    font-family: "trajan-sans-pro", sans-serif;
  }
}
@media screen and (min-width: 1620px) {
  .area-top-cast .title {
    max-width: 1258px;
  }
}
/* =========================================================================
   [2] コンポーネント別 差分（銀座固有レイアウト）
       ※ 色/余白の一部は Figma スクショ＋ピクセルサンプリングの暫定値。要微調整
   ========================================================================= */
@media screen and (min-width: 0px) {
  /* ── ヘッダー：最初から fixed・ダークグリーン・常時表示（中洲のスクロール切替を無効化）
        左=BARCELONA GINZAロゴ / SP=白3本線ハンバーガー / PC=ナビ+SNS([3]) ── */
  header.second {
    display: none !important;
  }
  header.top {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    padding: 0;
    background: #07544e;
    display: block !important;
    border: none;
  }
  body#ginza header.top {
    background: rgba(7, 84, 78, 0);
    transition: background-color 0.4s ease;
  }
  body#ginza header.top.is-scrolled {
    background: #07544e;
  }
  header.top .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 21px 19px;
  }
  header.top .logo {
    margin: 0;
    line-height: 1;
  }
  header.top .logo a {
    display: inline-flex;
    align-items: center;
  }
  header.top .logo a img {
    width: 162px;
    height: auto;
  }
  header.top .logo a .en {
    margin-left: 10px;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
  }
  header.top .gnav {
    display: none;
  }
  header.top .gnav .links {
    line-height: 1;
  }
  header.top .tgl {
    position: relative;
    top: -2px;
    right: auto;
    width: 37px;
    height: 8px;
    background: none;
    border-radius: 0;
  }
  header.top .tgl p {
    width: 37px;
    height: 8px;
    border: none;
    text-indent: -9999px;
  }
  header.top .tgl p::before, header.top .tgl p::after {
    content: "";
    position: absolute;
    right: 0;
    height: 1px;
    margin: 0;
    background: #fff;
    transform: none;
  }
  header.top .tgl p::before {
    top: 0;
    width: 37px;
  }
  header.top .tgl p::after {
    top: 5px;
    width: 27px;
  }
  header.top .tgl span:before {
    content: "";
    display: block;
    width: 17px;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 10px;
    right: 0;
    margin-top: 0;
    transition: all 0.5s;
  }
  /* ── キャスト詳細(SP)：ヘッダーは非fixedでページ先頭に置き、
        冒頭スライダー(.area-cast-img)を過ぎたら複製ヘッダー(.cast-header-fixed)が
        上から降りてきて固定表示（すすきのheader.second準拠）。PC[3]で無効化 ── */
  body.cast header.top {
    position: relative;
  }
  body.cast .cast-header-fixed header.top {
    position: fixed;
    top: 0;
    left: 0;
    transform: translateY(-100%);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  body.cast .cast-header-fixed.is-show header.top {
    transform: translateY(0);
    opacity: 1;
  }
  /* ── ハンバーガーメニュー（modal-nav）：ダークグリーン全画面。固定ヘッダー(緑)が上に重なりロゴ＋X ── */
  .has-glnv header.top .tgl {
    top: 4px;
    right: -10px;
  }
  .has-glnv header.top .tgl p {
    border: none;
  }
  .has-glnv header.top .tgl p::before {
    top: -2px;
    width: 24px;
    transform: rotate(45deg);
  }
  .has-glnv header.top .tgl p::after {
    top: -2px;
    width: 24px;
    transform: rotate(-45deg);
  }
  .modal.modal-nav {
    background: #07544e;
  }
  .modal.modal-nav .logo {
    display: none;
  }
  .modal.modal-nav .scroll {
    height: 100vh;
    height: 100dvh;
  }
  .modal.modal-nav .scroll-inner {
    padding: 120px 20px 0;
  }
  .modal.modal-nav .main li {
    margin-bottom: 36px;
    border-top: none;
    text-align: left;
    font-size: 22px;
    line-height: 1.4;
    font-weight: 600;
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
  }
  .modal.modal-nav .main a {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 0;
    color: #fff;
  }
  .modal.modal-nav .main a::before {
    content: "";
    width: 40px;
    height: 1px;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
  }
  .modal.modal-nav .sub,
  .modal.modal-nav .go {
    display: none;
  }
  .modal.modal-nav .branch {
    margin-top: 72px;
  }
  .modal.modal-nav .branch li {
    margin-bottom: 22px;
  }
  .modal.modal-nav .branch a {
    display: inline-flex;
    align-items: baseline;
    gap: 14px;
    color: #D9E3E2;
  }
  .modal.modal-nav .branch a .en {
    font-family: "trajan-sans-pro", sans-serif;
    font-size: 20px;
  }
  .modal.modal-nav .branch a .jp {
    font-size: 14px;
    color: #D9E3E2;
  }
  .modal.modal-nav .sns {
    display: flex;
    justify-content: center;
    gap: 40px;
    bottom: 10%;
    left: 50%;
    transform: translateX(-50%);
    position: absolute;
  }
  .modal.modal-nav .sns img,
  .modal.modal-nav .sns span {
    display: none;
  }
  .modal.modal-nav .sns a {
    display: block;
    width: 21px;
    height: 21px;
    background: #FFF;
    -webkit-mask: var(--i) center/contain no-repeat;
    mask: var(--i) center/contain no-repeat;
  }
  .modal.modal-nav .sns .ig a {
    --i: url(/asset-new/img/ginza/icn-ig.svg);
  }
  .modal.modal-nav .sns .tt a {
    width: 18px;
    --i: url(/asset-new/img/ginza/icn-tt.svg);
  }
  .modal.modal-nav .sns .yt a {
    width: 27px;
    height: 19px;
    --i: url(/asset-new/img/ginza/icn-yt.svg);
  }
  /* ── 共通：見出し hl-gz（EN Trajan＋「──小JP──」装飾線。明背景=緑 / .is-dark=cream）──
     markup: <h2 class="hl02 hl-gz"><span class="en">EN</span><span class="jp">JP</span></h2> */
  .hl-gz {
    font-weight: 400;
    text-align: center;
    margin: 0 auto 40px;
  }
  .hl-gz a {
    color: inherit;
  }
  .hl-gz .en {
    display: block;
    color: #07544e;
    font-size: 32px;
    line-height: 1.2;
  }
  .hl-gz .jp {
    display: block;
    position: relative;
    margin-top: 10px;
    width: 100%;
    height: 13px;
  }
  .hl-gz .jp .jp-inner {
    position: absolute;
    display: inline-block;
    margin: 0 auto;
    background: #fff;
    z-index: 2;
    color: #07544e;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 1;
    padding: 0 10px;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
  }
  .hl-gz .jp::after {
    z-index: 1;
    position: absolute;
    content: "";
    width: 100%;
    left: 0;
    top: 50%;
    height: 1px;
    background: #07544e;
  }
  .hl-gz.is-dark .en, .hl-gz.is-dark .jp {
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  /* ── KV：全面ヒーロー＋中央下にロゴ/GRAND OPEN/日付を重ねる
        （中洲PCの右パネル・すりガラス・テキスト分割を解除しフルブリード化）── */
  .area-kv .inner {
    padding: 0;
  }
  .area-kv .inner .title-body {
    max-width: 100%;
  }
  .area-kv .txt {
    display: none;
  }
  .area-kv .imgtxt {
    display: block;
  }
  .area-kv .img {
    width: 100%;
    min-height: 0;
    padding: 0;
    background: #07544e;
    position: relative;
  }
  .area-kv .img::after {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);
    width: 100%;
    z-index: 2;
    height: 50%;
    bottom: 0;
    left: 0;
    content: "";
    position: absolute;
    backdrop-filter: none;
    top: auto;
  }
  .area-kv .img .bg {
    display: none;
  }
  .area-kv .img .kv-pc {
    display: none;
  }
  .area-kv .img .movie {
    width: 100%;
    margin: 0;
    object-fit: cover;
    height: 100vh;
    height: 100svh;
  }
  .area-kv .img.has-kv-poster {
    background-image: var(--kv-poster-sp, var(--kv-poster-pc));
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }
  .area-kv .img.has-kv-poster .movie {
    opacity: 0;
  }
  .area-kv .img.has-kv-poster .movie.is-playing {
    opacity: 1;
  }
  .area-kv .kv-open {
    position: absolute;
    z-index: 3;
    bottom: 6%;
    left: 0;
    right: 0;
    padding: 0;
    text-align: center;
    color: #FFF;
  }
  .area-kv .kv-open .kv-open-logo {
    width: 201px;
    height: 55px;
    margin: 0 auto 15px;
  }
  .area-kv .kv-open .kv-open-logo img {
    display: block;
    width: 100%;
    height: 100%;
  }
  .area-kv .kv-open .kv-open-en {
    font-family: "trajan-sans-pro", sans-serif;
    font-size: clamp(30px, 17.7px + 3.3vw, 80px);
    line-height: 1.2;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .area-kv .kv-open .kv-open-date {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 90%;
    margin: 15px auto 0;
    overflow: hidden;
    font-family: "trajan-sans-pro", sans-serif;
    font-size: 18px;
    letter-spacing: 0.05em;
  }
  .area-kv .kv-open .kv-open-date::before, .area-kv .kv-open .kv-open-date::after {
    content: "";
    width: 50%;
    height: 1px;
    background: currentColor;
    opacity: 0.8;
  }
  /* ── lead：中洲の画像ポイント → 銀座は明朝見出し＋八角二重線フレーム（ダーク）── */
  .area-top-lead {
    padding: 80px 20px;
    background: #07544e;
    color: #FFF;
  }
  .area-top-lead .title {
    padding: 0;
    margin-bottom: 40px;
    text-align: center;
    color: #FFF;
    font-weight: 400;
  }
  .area-top-lead .title .ttl {
    display: block;
    margin-bottom: 0;
    font-size: clamp(26px, 16.8px + 2.44vw, 52px);
    letter-spacing: 0.18em;
  }
  .area-top-lead .title .ttl .en {
    font-size: clamp(32px, 20.7px + 3vw, 64px);
  }
  .area-top-lead .title .logo img {
    width: 219px;
    height: auto;
  }
  .area-top-lead .body ul {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    justify-items: center;
    gap: 24px;
  }
  .area-top-lead .body li {
    margin: 0;
    width: 100%;
    aspect-ratio: 335/146;
    max-width: 335px;
  }
  .area-top-lead .body li:last-child {
    margin-bottom: 0;
  }
  .area-top-lead .card {
    position: relative;
    padding: 20px;
    text-align: center;
    background: #07544e;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  .area-top-lead .card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 335 146' preserveAspectRatio='none' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='73' x2='335' y2='73' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FCEEC8'/%3E%3Cstop offset='1' stop-color='%23D1C4A5'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M302.071 145.487H32.9114C20.2542 132.831 13.1523 125.729 0.484863 113.062V32.8994C13.1523 20.2427 20.2542 13.1411 32.9114 0.484375H302.071C314.729 13.1411 321.83 20.2427 334.498 32.9096V113.072C321.841 125.729 314.739 132.831 302.071 145.497V145.487Z' stroke='url(%23g)' stroke-width='1' stroke-miterlimit='10' vector-effect='non-scaling-stroke'/%3E%3Cg transform='translate(5,5)'%3E%3Cpath d='M309.443 134.557H14.8978C9.26102 128.921 6.09671 125.756 0.459961 120.12V14.8982C6.09671 9.26163 9.26102 6.09745 14.8978 0.460938H309.443C315.08 6.09745 318.244 9.26163 323.881 14.8982V120.13C318.244 125.767 315.08 128.931 309.443 134.567V134.557Z' stroke='url(%23g)' stroke-width='1' stroke-miterlimit='10' vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;
  }
  .area-top-lead .card .card-title,
  .area-top-lead .card .sub {
    position: relative;
    z-index: 1;
  }
  .area-top-lead .card .card-title {
    font-family: "mfw-yuminpr6n-medium", "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
    font-size: 30px;
    line-height: 1.2;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    letter-spacing: 0.06em;
  }
  .area-top-lead .card .sub {
    margin: 10px auto 0;
    position: relative;
    line-height: 1;
    width: 100%;
  }
  .area-top-lead .card .sub .sub-bg {
    background: #07544e;
    padding: 0 10px;
    text-align: center;
    width: fit-content;
    display: inline-block;
  }
  .area-top-lead .card .sub .sub-text {
    font-size: 11px;
    font-weight: 700;
    font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    line-height: 1;
    letter-spacing: 0.08em;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  .area-top-lead .card .sub::after {
    content: "";
    position: absolute;
    width: 90%;
    top: 50%;
    left: 5%;
    height: 1px;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    z-index: -1;
  }
  /* ── SELECTED CAST：中洲3カラム/画像上に名前 → 銀座2カラム/写真下にJP名+EN名。下部に COMING SOON+CTA ── */
  .area-top-cast {
    background: #fff;
    padding: 0;
  }
  .area-top-cast .inner {
    padding: 80px 20px 10px;
  }
  .area-top-cast .casts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 7px;
  }
  .area-top-cast .cast {
    width: 100%;
    margin: 0;
  }
  .area-top-cast .cast:nth-of-type(3n) {
    margin-right: 4%;
  }
  .area-top-cast .cast:nth-of-type(2n) {
    margin-right: 0;
  }
  .area-top-cast .cast .img .name {
    display: none;
  }
  .area-top-cast .cast .img picture {
    display: block;
    background: #ececec;
    aspect-ratio: 249/386;
    clip-path: polygon(12px 0, calc(100% - 12px) 0, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0 calc(100% - 12px), 0 12px);
  }
  .area-top-cast .cast .img picture::before {
    display: none;
  }
  .area-top-cast .cast .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    color: transparent;
    font-size: 0;
  }
  .area-top-cast .cast .txt {
    padding: 0;
    text-align: left;
  }
  .area-top-cast .cast .txt .name {
    display: block;
    margin-top: 6px;
    font-size: 16px;
    font-weight: 500;
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    letter-spacing: 0.08em;
  }
  .area-top-cast .cast .txt .name-en {
    font-family: "trajan-sans-pro", sans-serif;
    margin-top: 0;
    font-size: 9px;
    text-transform: uppercase;
  }
  .area-top-cast .cast .txt .group-award {
    display: none;
  }
  .area-top-cast .coming {
    margin-bottom: 28px;
    font-family: "trajan-sans-pro", sans-serif;
    font-size: 48px;
    color: #07544e;
    text-align: center;
    padding: 40px 0 0;
    margin: 0 auto;
    position: relative;
    line-height: 1.2;
  }
  .area-top-cast .coming::after {
    width: 2px;
    height: 60px;
    background-color: #07544e;
    display: block;
    position: relative;
    content: "";
    bottom: -10px;
    left: 50%;
  }
  /* ── STORE INFO / location：ダークグリーン化＋イメージ画像プレースホルダ ── */
  .area-ginza-location {
    background: #07544e;
    color: #fff;
  }
  .area-location-ginza-info {
    color: #fff;
    padding: 80px 0 0;
  }
  .area-location-ginza-info .title {
    width: 100%;
  }
  .area-location-ginza-info .hl-gz .en {
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-size: 32px;
  }
  .area-location-ginza-info .hl-gz .jp {
    margin: 10px auto 0;
    position: relative;
    line-height: 1;
  }
  .area-location-ginza-info .hl-gz .jp .jp-bg {
    background: #07544e;
    z-index: 2;
    line-height: 0;
    position: absolute;
    padding: 0 10px;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
  }
  .area-location-ginza-info .hl-gz .jp .jp-bg .jp-text {
    font-size: 13px;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-weight: 600;
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    line-height: 1;
  }
  .area-location-ginza-info .hl-gz .jp::after {
    content: "";
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    z-index: 1;
  }
  .area-location-ginza-info .body {
    display: flex;
    flex-direction: column;
  }
  .area-location-ginza-info .img {
    margin-top: 24px;
    aspect-ratio: 16/10;
    background: rgba(255, 255, 255, 0.08);
  }
  .area-location-ginza-info .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .area-location-ginza-info .body dl {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 40px;
    margin-bottom: 0;
  }
  .area-location-ginza-info .body dl .row {
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(217, 227, 226, 0.5);
    font-size: 18px;
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    letter-spacing: -0.01em;
  }
  .area-location-ginza-info .body dl .row:last-of-type {
    border: none;
  }
  .area-location-ginza-info .body dl .row dt {
    font-size: 14px;
  }
  .area-location-ginza-info .body dl .row dd {
    text-align: right;
    font-size: 16px;
    line-height: 1.5;
  }
  .area-location-ginza-info .body dl .row dd h1 {
    font-size: 16px;
    line-height: 1.5;
  }
  .area-location-ginza-info .body dl .row .map {
    width: 100%;
  }
  .area-location-ginza-info .body dl .row .map iframe {
    width: 100%;
    max-height: 300px;
  }
  .area-location-ginza-info .atn {
    font-size: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .area-location-ginza-info .atn .en {
    text-align: left;
    font-size: 30px;
    white-space: nowrap;
    padding-right: 30px;
  }
  .area-location-ginza-info .body dl dd {
    color: #fff;
  }
  .area-location-ginza-info .body dl dd a {
    color: #fff;
  }
  .area-location-ginza-info.area-location-ginza-price .body dl .row:last-of-type {
    border-bottom: 1px solid rgba(217, 227, 226, 0.5);
  }
  .area-location-ginza-info.area-location-ginza-price .body .img {
    display: none;
  }
  .area-location-ginza-info .descript {
    margin-top: 30px;
    font-size: 11px;
  }
  /* ── PRICE：中洲2カラム表 → 銀座は全面ダーク・全幅行（文字白） ── */
  .area-location-price {
    padding-top: 48px;
    padding-bottom: 56px;
    background: #07544e;
    color: #fff;
  }
  .area-location-price .body .atn span {
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  .area-location-price .body dl {
    display: block;
    margin: 1.4em 0;
    border: none;
  }
  .area-location-price .body dl .row {
    width: 100%;
    justify-content: space-between;
    padding: 14px 4px;
    border-bottom: 1px solid rgba(209, 196, 165, 0.3);
    font-size: 15px;
  }
  .area-location-price .body dl dt,
  .area-location-price .body dl dd {
    width: auto;
    padding: 0;
    background: none;
    border: none;
  }
  .area-location-price .body dl dd {
    text-align: right;
    font-weight: bold;
    font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    color: #fff;
  }
  .area-location-price .body dl dd a {
    color: #fff;
  }
  .area-location-price .body .descript {
    margin-top: 1.2em;
    font-size: 12px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.85);
  }
  /* ── Q&A（新規）：ダーク。見出しに装飾線／Q白太字＋「Q.」アクセント／A.プレフィックス無し ── */
  .area-faq {
    padding: 0 0 60px;
  }
  .area-faq .inner {
    border-bottom: 1px solid;
    border-image: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%) 1;
    padding: 40px 0 40px;
    margin: 0 20px;
  }
  .area-faq .title {
    position: relative;
    height: 18px;
    line-height: 1;
  }
  .area-faq .title .en-bg {
    background: #07544e;
    z-index: 2;
    line-height: 0;
    position: absolute;
    padding: 0 10px;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
  }
  .area-faq .title .en-bg .en {
    font-size: 18px;
    font-weight: 400;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    line-height: 1;
  }
  .area-faq .title::after {
    content: "";
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, #fceec8 0%, #d1c4a5 100%);
    z-index: 1;
  }
  .area-faq .articles {
    margin: 40px auto 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .area-faq .article {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
    color: #fff;
  }
  .area-faq .article .q {
    font-size: 11px;
    font-weight: bold;
    font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    line-height: 1.5;
  }
  .area-faq .article .q::before {
    content: "Q.";
    margin-right: 0.4em;
    font-weight: 700;
  }
  .area-faq .article .a {
    font-size: 11px;
    line-height: 1.5;
  }
  .area-faq .more {
    margin-top: 30px;
    text-align: right;
    font-size: 11px;
    font-weight: 700;
    font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
  }
  .area-faq .more a {
    color: #fff;
    letter-spacing: 0.08em;
  }
  .area-ginza-bnr .inner {
    padding: 40px 20px 0;
  }
  .area-ginza-bnr .body ul {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .area-ginza-bnr .body li {
    margin: 0;
  }
  /* ── SNS（バナーエリア下）：mask で cream に統一 ── */
  .area-sns {
    padding: 32px 0 40px;
  }
  .area-sns ul {
    display: flex;
    justify-content: center;
    gap: 48px;
  }
  .area-sns li a {
    display: block;
    width: 23px;
    height: 23px;
    background: #FFF;
    -webkit-mask: var(--icn) center/contain no-repeat;
    mask: var(--icn) center/contain no-repeat;
  }
  .area-sns .ig a {
    --icn: url(/asset-new/img/ginza/icn-ig.svg);
  }
  .area-sns .tt a {
    width: 19px;
    --icn: url(/asset-new/img/ginza/icn-tt.svg);
  }
  .area-sns .yt a {
    width: 32px;
    height: 23px;
    --icn: url(/asset-new/img/ginza/icn-yt.svg);
  }
  main .topicpath {
    padding: 40px 20px 20px;
    margin: 0 auto;
    position: static;
  }
  main .topicpath li {
    font-size: 11px;
    color: #9FA1A4;
  }
  main .topicpath li:before {
    font-size: 12px;
    margin: 0 4px;
  }
  main .topicpath a {
    color: #fff;
  }
  footer {
    background: #051918;
    padding: 40px 0;
  }
  footer.footer-home {
    color: #D9E3E2;
  }
  footer .inner {
    padding: 0 20px;
  }
  footer .pages.sub {
    margin-bottom: 32px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }
  footer .pages.sub .page {
    width: 100%;
  }
  footer .pages.sub .page .img::after {
    display: none;
  }
  footer .pages.sub .page .txt {
    width: 100%;
    left: auto;
  }
  footer .pages.sub .page .txt p {
    font-weight: 700;
    font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    line-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }
  footer .pages.sub .page .txt p span {
    margin: 0 !important;
    font-size: 14px !important;
  }
  footer .pages.sub .page .txt p .en {
    font-weight: 400;
    font-size: 18px !important;
  }
  footer .logo {
    margin-bottom: 32px;
  }
  footer .logo img {
    width: 162px;
  }
  footer .sitenv li {
    font-size: 12px;
    color: #D9E3E2;
    font-weight: 500;
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    display: flex;
    align-items: center;
    line-height: 1;
  }
  footer .sitenv li::after {
    background-color: #D9E3E2;
    height: 13px;
  }
  footer .sitenv li a {
    color: #D9E3E2;
  }
  footer .sitenv-sns {
    display: block;
  }
  footer .sitenv ul {
    display: flex;
    flex-wrap: wrap;
    row-gap: 10px;
  }
  footer .sitenv ul li {
    font-size: 11px;
    color: #D9E3E2;
    font-weight: 500;
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
    display: flex;
    align-items: center;
    line-height: 1;
  }
  footer .sitenv ul li:after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 16px;
    background: #fff;
    margin: 0 10px;
    vertical-align: middle;
  }
  footer .sitenv ul li:nth-child(8):after {
    display: none;
  }
  .copyright {
    font-size: 10px;
    text-align: center;
    margin-top: 64px;
  }
}
/* =========================================================================
   [3] PC（min-width:1024px）— SPベース([2])を上書きしデザインの多カラムに
       ※ inner 最大幅 1056px は中洲 layout.css 準拠
   ========================================================================= */
@media screen and (min-width: 1024px) {
  .is_sp {
    display: none !important;
  }
  /* ── ヘッダー：PCはナビ＋SNSを表示、ハンバーガー非表示（全幅・高さ約63px） ── */
  header.top .inner {
    padding: 20px 28px;
  }
  header.top .logo a .en {
    font-size: 16.5px;
  }
  header.top .gnav {
    display: flex;
    align-items: center;
    gap: 40px;
  }
  header.top .gnav .links {
    display: flex;
    align-items: center;
    gap: 40px;
  }
  header.top .gnav .links a {
    color: #fff;
    font-size: 14px;
    letter-spacing: 0.04em;
  }
  header.top .gnav .sns {
    display: flex;
    align-items: center;
    gap: 30px;
  }
  header.top .gnav .sns a {
    display: block;
    width: 22px;
    height: 22px;
    background: #fff;
    -webkit-mask: var(--i) center/contain no-repeat;
    mask: var(--i) center/contain no-repeat;
  }
  header.top .gnav .sns .ig a {
    --i: url(/asset-new/img/ginza/icn-ig.svg);
  }
  header.top .gnav .sns .tt a {
    width: 18px;
    --i: url(/asset-new/img/ginza/icn-tt.svg);
  }
  header.top .gnav .sns .yt a {
    width: 27px;
    height: 19px;
    --i: url(/asset-new/img/ginza/icn-yt.svg);
  }
  header.top .tgl {
    display: none;
  }
  .btn.btn-primary.has-map {
    padding: 12px 20px;
  }
  .btn.btn-primary.has-map span {
    font-size: 24px;
    padding: 1px 0 0 1.2em;
    background-size: auto;
  }
  /* ── KV：overlay を左下寄せ（1056px センター内で左揃え）── */
  .area-kv .img {
    padding-top: 0;
  }
  .area-kv .img .kv-sp {
    display: none;
  }
  .area-kv .img .kv-pc {
    display: block;
    height: 100vh;
    height: 100svh;
  }
  .area-kv .img.has-kv-poster {
    background-image: var(--kv-poster-pc, var(--kv-poster-sp));
  }
  .area-kv .kv-open {
    left: 50%;
    right: auto;
    bottom: 42px;
    padding: 0;
    transform: translateX(-50%);
    text-align: left;
    width: calc(100% - 88px);
    max-width: 1258px;
  }
  .area-kv .kv-open .kv-open-logo {
    width: 263px;
    height: 72px;
    margin: 0;
  }
  .area-kv .kv-open .kv-open-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-bottom: 24px;
  }
  .area-kv .kv-open .kv-open-en {
    line-height: 1;
  }
  .area-kv .kv-open .kv-open-date {
    font-size: 26px;
    width: 100%;
  }
  .area-kv .kv-open .kv-open-date::before, .area-kv .kv-open .kv-open-date::after {
    width: 50%;
  }
  /* ── lead：3カラム横並び＋見出しは横並び1行 ── */
  .area-top-lead {
    padding: 80px 40px;
  }
  .area-top-lead .title h2 {
    display: inline-flex;
    align-items: center;
    gap: 30px;
  }
  .area-top-lead .title h2 .ttl {
    margin-bottom: 0;
    line-height: 0;
  }
  .area-top-lead .title h2 .ttl .en {
    font-weight: 400;
    font-family: "trajan-sans-pro", sans-serif;
  }
  .area-top-lead .title h2 .logo {
    line-height: 0;
  }
  .area-top-lead .title h2 .logo img {
    width: 377px;
  }
  .area-top-lead .body ul {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    justify-content: center;
  }
  .area-top-lead .body li {
    width: 100%;
    margin: 0;
    max-width: 100%;
    min-width: 335px;
  }
  .area-top-lead .card {
    height: 100%;
    padding: 20px;
  }
  .area-top-lead .card .card-title {
    font-size: 30px;
  }
  .area-top-lead .card .sub {
    line-height: 1.2;
  }
  .area-top-lead .card .sub .sub-text {
    font-size: 13px;
  }
  /* ── SELECTED CAST：3カラム・白背景 ── */
  .area-top-cast .inner {
    background: #fff;
    padding: 80px 40px 0;
  }
  .area-top-cast .title-body {
    margin: 0 auto;
  }
  .area-top-cast .title-body .title {
    margin-bottom: 64px;
  }
  .area-top-cast .title-body .hl-gz .en {
    font-size: 48px;
  }
  .area-top-cast .title-body .hl-gz .jp-inner {
    font-size: 18px;
  }
  .area-top-cast .casts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
  .area-top-cast .cast .img picture {
    clip-path: polygon(24px 0, calc(100% - 24px) 0, 100% 24px, 100% calc(100% - 24px), calc(100% - 24px) 100%, 24px 100%, 0 calc(100% - 24px), 0 24px);
  }
  .area-top-cast .cast .txt {
    text-align: left;
  }
  .area-top-cast .cast .txt .name {
    font-size: 24px;
    margin: 10px 0 0;
  }
  .area-top-cast .cast .txt .name-en {
    font-size: 14px;
    margin-top: 0;
  }
  .area-top-cast .coming {
    font-size: 64px;
    padding-top: 60px;
  }
  .area-top-cast .coming:after {
    height: 100px;
  }
  /* ── STORE INFO：左テーブル＋右画像の2カラム（画像は列いっぱいに） ── */
  .area-location-ginza-info {
    padding: 80px 40px 0;
  }
  .area-location-ginza-info .atn {
    font-size: 18px;
    align-items: baseline;
  }
  .area-location-ginza-info .atn .en {
    font-size: 32px;
  }
  .area-location-ginza-info .hl-gz .en {
    font-size: 48px;
  }
  .area-location-ginza-info .hl-gz .jp {
    height: 18px;
  }
  .area-location-ginza-info .hl-gz .jp .jp-bg .jp-text {
    font-size: 18px;
  }
  .area-location-ginza-info .body {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 32px;
    margin: 0 auto;
    align-items: stretch;
  }
  .area-location-ginza-info .body > .img {
    width: 44%;
    margin-bottom: 0;
    aspect-ratio: auto;
  }
  .area-location-ginza-info .body > dl {
    flex: 1;
  }
  .area-location-ginza-info .body .area-location-info {
    margin: 0;
    padding: 0;
    width: 100%;
    min-width: 616px;
  }
  .area-location-ginza-info .body .area-location-info dl .row dt {
    font-size: 20px;
  }
  .area-location-ginza-info .body .area-location-info dl .row dd {
    font-size: 20px;
  }
  .area-location-ginza-info .body .area-location-info dl .row dd h1 {
    font-size: 20px;
  }
  .area-location-ginza-info .body .area-location-info dl .row dd br {
    display: none;
  }
  .area-location-ginza-info .body .movie,
  .area-location-ginza-info .body .img {
    width: 100%;
    max-width: 408px;
    height: 100%;
    object-fit: cover;
  }
  .area-location-ginza-info.area-location-ginza-price .body {
    grid-template-columns: auto 1fr;
  }
  .area-location-ginza-info.area-location-ginza-price .body .img {
    display: block;
  }
  .area-location-ginza-info .descript {
    font-size: 14px;
  }
  /* ── PRICE：左画像＋右テーブルの2カラム（価格行は全幅1行） ── */
  .area-location-price .inner {
    display: flex;
    gap: 48px;
    align-items: stretch;
  }
  .area-location-price .inner .price-img {
    width: 45%;
  }
  .area-location-price .inner .price-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .area-location-price .inner .title-body {
    flex: 1;
  }
  .area-location-price .title {
    text-align: left;
  }
  .area-location-price .body dl .row {
    width: 100%;
  }
  /* ── Q&A：2カラム（コンテンツ幅を1184にキャップ） ── */
  .area-faq {
    padding: 0 40px 100px;
  }
  .area-faq .inner {
    margin: 0 auto;
    padding: 80px 0 40px;
  }
  .area-faq .articles {
    display: flex;
    flex-direction: column;
    gap: 32px;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .area-faq .article {
    width: 100%;
  }
  .area-faq .article .q {
    font-size: 16px;
  }
  .area-faq .article .a {
    font-size: 14px;
  }
  .area-faq .more {
    font-size: 16px;
  }
  /* ── INSIDE BARCELONA（bnr）：3カラム ── */
  .area-ginza-bnr {
    padding: 0 40px;
  }
  .area-ginza-bnr .inner {
    padding: 0;
  }
  .area-ginza-bnr .body ul {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
  }
  .area-ginza-bnr .body li {
    margin: 0;
  }
  main .topicpath {
    padding: 40px 40px 20px;
    width: 100%;
    max-width: 100%;
  }
  main .topicpath li {
    font-size: 14px;
  }
  footer {
    padding: 80px 40px;
  }
  footer .inner {
    padding: 0;
  }
  footer .pages.sub {
    grid-template-columns: repeat(3, 1fr);
  }
  footer .sitenv ul li {
    font-size: 12px;
  }
  footer .sitenv ul li:after {
    height: 14px;
  }
  footer .copyright {
    font-size: 11px;
  }
}
/* =========================================================================
    CAST詳細
   ========================================================================= */
body.cast .area-cast-img.wow {
  visibility: hidden;
}
body.cast .area-cast-img .imgs .sub li {
  padding: 0;
}
body.cast .area-cast-img .imgs .slider-main .prev-next ul li {
  text-indent: 0;
}
body.cast .area-cast-img .imgs .slider-main .prev-next ul li:after {
  content: "";
  background: url(../img/ginza/arrow.svg) no-repeat;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translatY(-50%);
  color: #fff;
  width: 16px;
  height: 38px;
}
body.cast .area-cast-img .imgs .slider-main .prev-next ul li.prev:after {
  transform: rotate(180deg);
  left: 20px;
  right: auto;
}
body.cast .area-cast-img .slide-progress {
  display: none;
}
body.cast .area-cast-main .name {
  margin-bottom: 0;
}
body.cast .area-cast-main .name .name-text {
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  gap: 16px;
}
body.cast .area-cast-main .name .name-text h1 {
  font-size: 32px;
  font-weight: 700;
  font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
}
body.cast .area-cast-main .name .group img {
  width: 89px;
  height: auto;
}
body.cast .area-cast-main .data .row {
  border: none;
  padding: 24px 0 0;
}
body.cast .area-cast-main .data .row .en {
  font-size: 16px;
  margin: 0;
  flex: 1;
  padding-left: 0;
  position: relative;
}
body.cast .area-cast-main .data .row .en .ig {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 10px;
}
body.cast .area-cast-main .data .row .en .ig img {
  width: 26px;
  height: auto;
}
body.cast .area-cast-main .data .row .en .ig:before {
  content: "";
  display: block;
  width: 1px;
  background: #dedede;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: -16px;
  height: 32px;
}
body.cast .area-cast-main .data .list-tag a {
  background: #D9E3E2;
  pointer-events: none;
  cursor: default;
}
body.cast .area-cast-main .award {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  padding: 24px 0 0;
  margin: 0 auto;
}
body.cast .area-cast-main .award .award-item {
  width: calc((100% - 14px) / 3);
}
body.cast .area-cast-main .award .rank.rank-media img {
  margin-top: 0;
}
body.cast .area-cast-main .interview .row {
  letter-spacing: -0.01em;
}
body.cast .area-cast-main .communication {
  padding: 40px 0;
  margin-bottom: 0;
}
body.cast .area-cast-main .communication h2 {
  color: #07544e;
}
body.cast .area-cast-main .interview {
  background: #fff;
}
body.cast .area-cast-main .interview .row dt {
  font-size: 16px;
  font-weight: 700;
  font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
}
body.cast .area-cast-main .interview .row dt::before {
  font-family: inherit;
}
body.cast .area-cast-main .interview .row dd {
  font-size: 14px;
}
body.cast .area-cast-other {
  margin-bottom: 0;
}
body.cast .area-cast-other .cast {
  padding: 0 6px 0 0;
}
body.cast .area-cast-other .cast .txt .name {
  margin-top: 5px;
  display: block;
  font-size: 16px;
  font-weight: 600;
  font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
}
body.cast .area-cast-other .cast .txt .name-en {
  font-family: "trajan-sans-pro", sans-serif;
  font-size: 8px;
}
body.cast .area-cast-other .cast .txt .group-award {
  display: none;
}
body.cast .area-cast-other .cast .txt .tags li {
  background: #D9E3E2;
}
body.cast .area-cast-other .cast .img picture {
  display: block;
  background: #ececec;
  aspect-ratio: 107/166;
  clip-path: polygon(12px 0, calc(100% - 12px) 0, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0 calc(100% - 12px), 0 12px);
}
body.cast .area-cast-other .cast .img picture::before {
  display: none;
}
body.cast .area-cast-other .cast .img picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.cast main .topicpath a {
  color: #07544e;
}
body.cast .btn.btn-secondary.has-comment span {
  background: url(../img/ginza/icn-comment.svg) 100% 50% no-repeat;
}
body.cast .btn.btn-secondary {
  padding: 0.8em 25px 0.8em 20px;
  width: 165px;
}
body.cast .btn.btn-secondary.has-tgl span {
  background-position: 100% 50%;
  background-image: url(../img/ginza/icn-plus.svg);
}

@media screen and (min-width: 1024px) {
  body.cast header.top {
    position: fixed;
  }
  body.cast .cast-header-fixed {
    display: none !important;
  }
  body.cast .area-cast-img {
    padding-top: var(--header-h, 62px);
  }
  body.cast .area-cast-img .body {
    padding: 0;
  }
  body.cast .area-cast-img .body:after {
    display: none;
  }
  body.cast .area-cast-img .imgs .count {
    display: none;
  }
  body.cast .area-cast-img .imgs .main img {
    height: 721px;
  }
  body.cast .area-cast-img .imgs .main li {
    padding: 0;
  }
  body.cast .area-cast-img .imgs .slider-sub {
    display: none;
  }
  body.cast .area-cast-img .slide-progress {
    display: block;
    position: relative;
    width: calc(100% - 48px);
    max-width: 1258px;
    height: 4px;
    margin: 12px auto 0;
    border-radius: 60px;
    background-color: #D9E3E2;
    overflow: hidden;
  }
  body.cast .area-cast-img .slide-progress .active {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 0%;
    height: 100%;
    border-radius: 60px;
    background-color: #07544e;
    transition: left 0.3s ease;
  }
  body.cast .area-cast-img .slide-progress.is-dragging .active {
    transition: none;
  }
  body.cast .bg-main {
    padding-top: 80px;
  }
  body.cast .area-cast-main .communication h2 {
    background: url(../img/ginza/icn-comment.svg) 0 10px no-repeat;
    background-size: 20px;
  }
  body.cast .area-cast-main .inner {
    width: calc(100% - 48px);
    max-width: 1258px;
  }
  body.cast .area-cast-main .stats {
    width: 250px;
    margin-left: 40px;
  }
  body.cast .area-cast-main .stats .award {
    padding-top: 32px;
  }
  body.cast .area-cast-main .stats .award-item {
    width: 161px;
    margin-bottom: 16px;
  }
  body.cast .area-cast-main .name .name-text h1 {
    font-size: 42px;
  }
  body.cast .area-cast-main .name .name-text .en {
    font-size: 16px;
  }
  body.cast .area-cast-main .name .group {
    display: none;
  }
  body.cast .area-cast-main .name .ig {
    right: 16px;
  }
  body.cast .area-cast-main .name .ig img {
    width: 30px;
  }
  body.cast .area-cast-main .name .ig::before {
    display: none;
  }
  body.cast .area-cast-main .info,
  body.cast .area-cast-main .interview {
    border-color: #07544e;
  }
  body.cast .area-cast-main .interview .row {
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
  }
  body.cast .area-cast-main .interview .row dt,
  body.cast .area-cast-main .interview .row dd {
    width: 100%;
    display: block;
    padding: 0;
  }
  body.cast .area-cast-main .interview .row dt {
    font-size: 19px;
  }
  body.cast .area-cast-main .interview .row dd {
    font-size: 18px;
  }
  body.cast .area-cast-other .control {
    top: 5px;
  }
  body.cast .area-cast-other .control .prev-next li {
    width: 32px;
    height: 32px;
    cursor: pointer;
  }
  body.cast .area-cast-other .control .prev-next li.prev {
    background-image: url(../img/ginza/arw-prev-w.svg);
  }
  body.cast .area-cast-other .control .prev-next li.next {
    background-image: url(../img/ginza/arw-next-w.svg);
  }
  body.cast .area-cast-other .inner {
    width: calc(100% - 48px);
    max-width: 1258px;
  }
  body.cast .area-cast-other .title h2 {
    font-size: 24px;
  }
  body.cast .area-cast-other .cast .img picture {
    clip-path: polygon(24px 0, calc(100% - 24px) 0, 100% 24px, 100% calc(100% - 24px), calc(100% - 24px) 100%, 24px 100%, 0 calc(100% - 24px), 0 24px);
  }
  body.cast .area-cast-other .cast .txt .name {
    font-size: 24px;
    margin: 0;
    font-weight: 600;
    font-family: "mfw-yugopr6n-demi", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
  }
  body.cast .area-cast-other .cast .txt .name-en {
    font-size: 14px;
  }
  body.cast .area-cast-other .cast .txt .tags li {
    font-size: 11px;
  }
}
@media screen and (max-width: 1023px) {
  .area-cast-other .slider {
    padding-left: 6px;
  }
}
/* =========================================================================
    HOME
   ========================================================================= */
#home .home-header {
  padding: 32px 0;
}
#home .home-header .logo {
  line-height: 1;
}
#home .home-group {
  margin-bottom: 48px;
}
#home .home-group-list {
  gap: 30px 0;
}
#home .home-group-list picture.img {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}
#home .home-group-list picture.img:before {
  display: none;
}
#home .home-group-list picture.img:after {
  content: "";
  position: absolute;
  background: linear-gradient(0, #000 0%, rgba(255, 255, 255, 0) 60%);
  background-blend-mode: multiply;
  width: 100%;
  height: 100%;
  display: block;
  bottom: 0;
  left: 0;
}
#home .home-group-item .name-wrapper {
  padding: 24px;
}
#home .home-group-item .name-wrapper-inner {
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
}
#home .home-group-item .item-main {
  aspect-ratio: 1/0.512;
}
#home .home-group-item .title {
  font-size: 12px;
  font-weight: 700;
  font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
  position: relative;
  padding-right: 36px;
  line-height: 1.5;
}
#home .home-group-item .title:after {
  content: "";
  background: url(../img/home/arw.svg) 100% 100% no-repeat;
  width: 28px;
  height: 28px;
  right: 0;
  top: calc(50% - 14px);
  position: absolute;
}
#home .home-group-item .name {
  font-size: 14px;
  font-weight: 400;
}
#home .home-group-item .name span {
  font-size: 34px;
}
#home .home-group-item .btn-wrapper {
  margin-top: 20px;
  justify-content: space-between;
  gap: 28px;
  padding: 0 24px;
  line-height: 1;
}
#home .home-group-item .btn-recruit {
  background: none;
  margin: 0;
  width: auto;
  padding: 0 20px 0 0;
  color: #767676;
}
#home .home-group-item .btn-recruit:after {
  background-image: url(../img/home/arw-next-s.svg);
  right: 0;
  width: 13px;
  height: 11px;
}
#home .home-group-item .btn-recruit h3 {
  font-size: 15px;
  font-family: "mfw-yugopr6n-bold", "mfw-yugopr6n-medium", "游ゴシック", "Yu Gothic", YuGothic, sans-serif;
}
#home .footer-home {
  padding: 64px 32px;
}
#home .footer-home .logo {
  margin: 0 auto;
}
#home .footer-home .inner {
  padding: 0;
}
#home .footer-home .logo img {
  width: 162px;
}
#home .footer-home .sitenv-wrapepr {
  margin-top: 42px;
}
#home .footer-home .sitenv-main-wrapper {
  flex-direction: column;
  gap: 42px;
}
#home .footer-home .sitenv-main-wrapper .sitenv-main ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
#home .footer-home .sitenv-main-wrapper .sitenv-main + .sitenv-main {
  margin: 0;
}
#home .footer-home .sitenv-sub-wrapper {
  margin: 42px 0 0;
  padding: 0;
  border: none;
}
#home .footer-home .sitenv-sub-wrapper .sitenv-sub ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}
#home .footer-home .sitenv-sub-wrapper .sitenv-sub ul li {
  margin: 0;
  padding: 0;
  font-size: 13px;
}
#home .footer-home .sitenv-sub-wrapper .sitenv-sub ul li:nth-child(2) {
  margin: 0;
  border: none;
}
#home .footer-home .area-sns {
  margin-top: 42px;
  padding: 0;
}
#home .footer-home .copyright {
  margin-top: 42px;
  font-size: 11px;
}

@media screen and (min-width: 1024px) {
  #home .home-header {
    padding: 48px 0;
  }
  #home .home-group {
    margin-bottom: 80px;
  }
  #home .home-group-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  #home .home-group-list .item-main {
    aspect-ratio: 1/1.55;
    border-radius: 0;
  }
  #home .home-group-item .name-wrapper {
    justify-content: center;
    padding: 0 0 40px;
  }
  #home .home-group-item .name-wrapper-inner {
    flex-direction: column;
    align-items: center;
  }
  #home .home-group-item .name {
    text-align: center;
    font-size: 22px;
  }
  #home .home-group-item .name span {
    font-size: 50px;
  }
  #home .home-group-item .title {
    padding-right: 40px;
  }
  #home .home-group-item .title:after {
    width: 31px;
    height: 31px;
    top: calc(50% - 15px);
    background-size: cover;
  }
  #home .home-group-item .title span {
    font-size: 15px;
  }
  #home .home-group-item .title span br {
    display: none;
  }
  #home .home-group-item .btn-wrapper {
    margin-top: 20px;
    padding: 0 20px;
    justify-content: center;
  }
  #home .home-group-item .btn-recruit h3 {
    font-size: 12px;
  }
  #home .footer-home {
    padding: 80px 0;
  }
  #home .footer-home .footer-home-inner {
    flex-direction: column;
  }
  #home .footer-home .sitenv-main-wrapper {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 96px;
  }
  #home .footer-home .sitenv-main-wrapper .sitenv-main ul {
    display: block;
  }
  #home .footer-home .sitenv-wrapepr {
    margin-top: 64px;
    gap: 96px;
    justify-content: center;
  }
  #home .footer-home .sitenv-sub-wrapper {
    margin: 0;
  }
  #home .footer-home .area-sns {
    margin-top: 64px;
  }
  #home .footer-home .copyright {
    margin-top: 64px;
    text-align: center;
  }
}

/*# sourceMappingURL=ginza.css.map */
